1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-24 11:31:31 +00:00
cc65/libsrc/gamate/irq.s
Oliver Schmidt 419eb700b5 Renamed INITBSS to INIT and INIT to ONCE.
The way we want to use the INITBSS segment - and especially the fact that it won't have the type bss on all ROM based targets - means that the name INITBSS is misleading. After all INIT is the best name from my perspective as it serves several purposes and therefore needs a rather generic name.

Unfortunately this means that the current INIT segment needs to be renamed too. Looking for a short (ideally 4 letter) name I came up with ONCE as it contains all code (and data) accessed only once during initialization.
2016-03-06 21:27:19 +01:00

53 lines
961 B
ArmAsm

;
; IRQ handling (Gamate version)
;
.export initirq, doneirq, IRQStub
.import __INTERRUPTOR_COUNT__, callirq_y
.include "gamate.inc"
.include "extzp.inc"
; ------------------------------------------------------------------------
.segment "ONCE"
; a constructor
;
initirq:
rts
; ------------------------------------------------------------------------
.code
; a destructor
;
doneirq:
rts
; ------------------------------------------------------------------------
; 256*32 interrupts in about 1minute 60s = 136hz
; -> guess 16384 clock cycles = 135,28hz (might be audio signal 1/512?)
IRQStub:
; A and Y are saved by the BIOS
;pha
;tya
;pha
ldy #<(__INTERRUPTOR_COUNT__ * 2)
beq @L1
txa
pha
jsr callirq_y
pla
tax
@L1: ;pla
;tay
;pla
rts