From d95321f489e91d439a6ad97bf2d0b64e59ca00a8 Mon Sep 17 00:00:00 2001 From: uz Date: Fri, 11 Sep 2009 13:56:20 +0000 Subject: [PATCH] Changes by Karri Kaksonen to implement interruptor support. git-svn-id: svn://svn.cc65.org/cc65/trunk@4144 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- libsrc/lynx/crt0.s | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/libsrc/lynx/crt0.s b/libsrc/lynx/crt0.s index db107fd94..4f210df7b 100644 --- a/libsrc/lynx/crt0.s +++ b/libsrc/lynx/crt0.s @@ -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 + 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 + -- 2.39.5