30 lines
428 B
ArmAsm
30 lines
428 B
ArmAsm
format elf64
|
|
|
|
public __pic_rtc_IRQ8
|
|
public __pic_rtc_IRQHandler;
|
|
|
|
|
|
section '.bss' writable
|
|
__pic_rtc_IRQHandler:
|
|
rq 1
|
|
|
|
section '.text' executable
|
|
__pic_rtc_IRQ8:
|
|
push rax
|
|
|
|
; read the register C byte or the interrupt will block
|
|
mov al, 0x0c
|
|
out 0x70, al
|
|
in al, 0x71
|
|
|
|
; tell if the irq handler is NULL
|
|
mov rax, [__pic_rtc_IRQHandler]
|
|
test rax, rax
|
|
pop rax
|
|
jz .end
|
|
jmp qword [__pic_rtc_IRQHandler]
|
|
.end:
|
|
iret
|
|
|
|
|