summaryrefslogtreecommitdiffstats
path: root/rspaint
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-07-31 02:40:18 +0200
committersalmonik <salmonik@tuta.io>2026-07-31 02:40:18 +0200
commit4b48b6938d91a91d7b1dd242991258fe47e284f0 (patch)
treed0d32321e9384370b72b3bda4105daaea6853196 /rspaint
parentinterrupts: IDT, PIC remap, PIT timer, PS/2 keyboard IRQ (diff)
downloadrs-dos-4b48b6938d91a91d7b1dd242991258fe47e284f0.tar.gz
rs-dos-4b48b6938d91a91d7b1dd242991258fe47e284f0.zip
fix: ISR dispatch calling convention + PS/2 interrupt enable
Root cause: x86_64-unknown-uefi uses the Microsoft x64 calling convention where the first argument is passed in rcx, not rdi. The ISR stub was setting rdi = rsp, but isr_dispatch() read the frame pointer from rcx, getting garbage → triple fault. Also: - Enable PS/2 keyboard IRQ via controller config byte (bit 0). - Expose read_scancode() and TICKS from interrupt module. - ps2::poll_key() uses 'sti; hlt' race-free sleep pattern.
Diffstat (limited to 'rspaint')
0 files changed, 0 insertions, 0 deletions