diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2021-03-28 08:32:15 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2021-03-28 08:32:15 -0700 |
commit | a3a7ffe4da72a27954b25d385ceec28714719377 (patch) | |
tree | 1c9b2845e9ebead29dad35302d0f5b2cec20aa6d /boot.subx | |
parent | dfda825e55439b6ab89e4715913ee749d4e27b80 (diff) | |
download | mu-a3a7ffe4da72a27954b25d385ceec28714719377.tar.gz |
.
Diffstat (limited to 'boot.subx')
-rw-r--r-- | boot.subx | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/boot.subx b/boot.subx index 21899dbc..06a9a426 100644 --- a/boot.subx +++ b/boot.subx @@ -258,8 +258,8 @@ idt_start: # By default, BIOS maps IRQ0-7 to interrupt vectors 8-15. # https://wiki.osdev.org/index.php?title=Interrupts&oldid=25102#Default_PC_Interrupt_Vector_Assignment -# entry 8: clock - null-interrupt-handler/imm16 # target[0:16] +# entry 8: https://wiki.osdev.org/Programmable_Interval_Timer + timer-interrupt-handler/imm16 # target[0:16] 8/imm16 # segment selector (gdt_code) 00 # unused 8e # 1/p 00/dpl 0 1110/type/32-bit-interrupt-gate @@ -317,6 +317,24 @@ $null-interrupt-handler:epilogue: fb/enable-interrupts cf/return-from-interrupt +timer-interrupt-handler: + # prologue + # Don't disable interrupts; the timer has the highest priority anyway, + # and this interrupt triggers extremely frequently. + fa/disable-interrupts + 60/push-all-registers + 9c/push-flags + # acknowledge interrupt + b0/copy-to-al 0x20/imm8 + e6/write-al-into-port 0x20/imm8 + 31/xor %eax 0/r32/eax +$timer-interrupt-handler:epilogue: + # epilogue + 9d/pop-flags + 61/pop-all-registers + fb/enable-interrupts + cf/return-from-interrupt + keyboard-interrupt-handler: # prologue fa/disable-interrupts |