diff --git a/boot/kernel.asm b/boot/kernel.asm index 7c94c61..a31d9a3 100644 --- a/boot/kernel.asm +++ b/boot/kernel.asm @@ -204,6 +204,15 @@ ldbpb: push ds pop ds ret + ; DOS 2+ - DOS IDLE INTERRUPT + ; Usually hooked by TSRs +idle: sti + ; sti takes one instruction to take effect + nop + ; Wait until next interrupt + hlt + iret + ; DOS 2+ - FAST CONSOLE OUTPUT ; IN al character to print fputc: push ax @@ -215,7 +224,7 @@ fputc: push ax pop ax iret -main: hlt +main: int 0x28 jmp main init: cli @@ -253,5 +262,5 @@ init: cli ivects: dw int20h, int21h, iret, iret dw iret, iret, iret, iret - dw iret, fputc, iret, iret + dw idle, fputc, iret, iret dw iret, iret, iret, iret