From: cuz Date: Thu, 5 May 2005 10:00:17 +0000 (+0000) Subject: Adjusted IRQ handler for new callirq semantics X-Git-Tag: V2.12.0~343 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=107ead321125f53caa098b38961300a82804b9a0;p=cc65 Adjusted IRQ handler for new callirq semantics git-svn-id: svn://svn.cc65.org/cc65/trunk@3498 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- diff --git a/libsrc/cbm510/cbm510-stdser.s b/libsrc/cbm510/cbm510-stdser.s index 59675e0fe..223668fec 100644 --- a/libsrc/cbm510/cbm510-stdser.s +++ b/libsrc/cbm510/cbm510-stdser.s @@ -353,7 +353,7 @@ IRQ: lda #$0F ldy #ACIA::STATUS lda (acia),y ; Check ACIA status for receive interrupt and #$08 - beq @L9 ; Jump if no ACIA interrupt + beq @L10 ; Jump if no ACIA interrupt ldy #ACIA::DATA lda (acia),y ; Get byte from ACIA ldx RecvFreeCnt ; Check if we have free space left @@ -371,6 +371,7 @@ IRQ: lda #$0F ldy #ACIA::CMD sta (acia),y sta Stopped + sec ; Interrupt handled ; Done, switch back to the execution segment @@ -378,6 +379,13 @@ IRQ: lda #$0F sta IndReg rts +; No ACIA interrupt + +@L10: clc ; Interrupt not handled + lda ExecReg + sta IndReg + rts + ;---------------------------------------------------------------------------- ; Try to send a byte. Internal routine. A = TryHard diff --git a/libsrc/cbm610/cbm610-stdser.s b/libsrc/cbm610/cbm610-stdser.s index f844b3c2d..74fd480c8 100644 --- a/libsrc/cbm610/cbm610-stdser.s +++ b/libsrc/cbm610/cbm610-stdser.s @@ -353,7 +353,7 @@ IRQ: lda #$0F ldy #ACIA::STATUS lda (acia),y ; Check ACIA status for receive interrupt and #$08 - beq @L9 ; Jump if no ACIA interrupt + beq @L10 ; Jump if no ACIA interrupt ldy #ACIA::DATA lda (acia),y ; Get byte from ACIA ldx RecvFreeCnt ; Check if we have free space left @@ -371,6 +371,7 @@ IRQ: lda #$0F ldy #ACIA::CMD sta (acia),y sta Stopped + sec ; Interrupt handled ; Done, switch back to the execution segment @@ -378,6 +379,13 @@ IRQ: lda #$0F sta IndReg rts +; No ACIA interrupt + +@L10: clc ; Interrupt not handled + lda ExecReg + sta IndReg + rts + ;---------------------------------------------------------------------------- ; Try to send a byte. Internal routine. A = TryHard diff --git a/libsrc/plus4/plus4-stdser.s b/libsrc/plus4/plus4-stdser.s index e09c5ab90..53cec2875 100644 --- a/libsrc/plus4/plus4-stdser.s +++ b/libsrc/plus4/plus4-stdser.s @@ -352,7 +352,7 @@ IOCTL: lda #