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( ) {
|
||||
gdt_init( );
|
||||
pic_init( );
|
||||
idt_init( );
|
||||
cpu_init( );
|
||||
}
|
|
@ -32,15 +32,18 @@ void _start( ) {
|
|||
fb_set_text_color(0x00D000);
|
||||
|
||||
mod_init( );
|
||||
// pit_init( );
|
||||
pit_init( );
|
||||
|
||||
fb_set_text_color(0x00FF00);
|
||||
LOG("Готово! Для выхода из симуляции удерживайте: ESCAPE\n");
|
||||
fb_set_text_color(0x00D000);
|
||||
|
||||
asm volatile("sti");
|
||||
|
||||
while (1) {
|
||||
uint64_t byte = inb(0x60);
|
||||
if (byte == 0x1) {
|
||||
switch (byte) {
|
||||
case 0x1:
|
||||
LOG("Выход для Bochs\n");
|
||||
outw(0xB004, 0x2000);
|
||||
|
||||
|
@ -52,6 +55,12 @@ void _start( ) {
|
|||
|
||||
LOG("Выход для облачного гипервизора\n");
|
||||
outw(0x600, 0x34);
|
||||
break;
|
||||
case 0x4F:
|
||||
LOG("Вызов прерывания переключения задач!\n");
|
||||
asm volatile("int $32");
|
||||
break;
|
||||
default: io_wait( ); break;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue