mirror of https://github.com/0Nera/BMOSP.git
При нажатии End будет вызвано переключение задач
This commit is contained in:
parent
acb527b874
commit
65b35be40f
|
@ -42,6 +42,7 @@ uint64_t arch_get_tick_l( ) {
|
||||||
|
|
||||||
void arch_init( ) {
|
void arch_init( ) {
|
||||||
gdt_init( );
|
gdt_init( );
|
||||||
|
pic_init( );
|
||||||
idt_init( );
|
idt_init( );
|
||||||
cpu_init( );
|
cpu_init( );
|
||||||
}
|
}
|
|
@ -32,15 +32,18 @@ void _start( ) {
|
||||||
fb_set_text_color(0x00D000);
|
fb_set_text_color(0x00D000);
|
||||||
|
|
||||||
mod_init( );
|
mod_init( );
|
||||||
// pit_init( );
|
pit_init( );
|
||||||
|
|
||||||
fb_set_text_color(0x00FF00);
|
fb_set_text_color(0x00FF00);
|
||||||
LOG("Готово! Для выхода из симуляции удерживайте: ESCAPE\n");
|
LOG("Готово! Для выхода из симуляции удерживайте: ESCAPE\n");
|
||||||
fb_set_text_color(0x00D000);
|
fb_set_text_color(0x00D000);
|
||||||
|
|
||||||
|
asm volatile("sti");
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
uint64_t byte = inb(0x60);
|
uint64_t byte = inb(0x60);
|
||||||
if (byte == 0x1) {
|
switch (byte) {
|
||||||
|
case 0x1:
|
||||||
LOG("Выход для Bochs\n");
|
LOG("Выход для Bochs\n");
|
||||||
outw(0xB004, 0x2000);
|
outw(0xB004, 0x2000);
|
||||||
|
|
||||||
|
@ -52,6 +55,12 @@ void _start( ) {
|
||||||
|
|
||||||
LOG("Выход для облачного гипервизора\n");
|
LOG("Выход для облачного гипервизора\n");
|
||||||
outw(0x600, 0x34);
|
outw(0x600, 0x34);
|
||||||
|
break;
|
||||||
|
case 0x4F:
|
||||||
|
LOG("Вызов прерывания переключения задач!\n");
|
||||||
|
asm volatile("int $32");
|
||||||
|
break;
|
||||||
|
default: io_wait( ); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue