1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-24 11:31:31 +00:00

Changes by Karri Kaksonen to implement interruptor support.

git-svn-id: svn://svn.cc65.org/cc65/trunk@4144 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz 2009-09-11 13:56:20 +00:00
parent 773e05b5f3
commit d95321f489

View File

@ -19,11 +19,12 @@
.export _exit
.export __STARTUP__ : absolute = 1 ; Mark as startup
.import initlib, donelib
.import callirq, initlib, donelib
.import zerobss
.import callmain
.import _main
.import __BSS_LOAD__
.import __INTERRUPTOR_COUNT__
.import __RAM_START__, __RAM_SIZE__
.include "zeropage.inc"
@ -132,9 +133,21 @@ sloop: ldy SuzyInitReg,x
jsr zerobss
; If we have IRQ functions, set the IRQ vector
; as Lynx is a console there is not much point in releasing the IRQ
lda #<__INTERRUPTOR_COUNT__
beq NoIRQ1
lda #<IRQStub
ldx #>IRQStub
sei
sta INTVECTL
stx INTVECTH
cli
; Call module constructors
jsr initlib
NoIRQ1: jsr initlib
; Push arguments and call main
@ -149,3 +162,14 @@ _exit: jsr donelib ; Run module destructors
noret: bra noret
IRQStub:
phy
phx
pha
cld
jsr callirq
pla
plx
ply
rti