]> git.sur5r.net Git - cc65/blobdiff - libsrc/runtime/incsp2.s
Add interrupt handling code from Stefan Haubenthal
[cc65] / libsrc / runtime / incsp2.s
index 959294326f59b52b45b60074d6719d53550e732d..639f8a44f14a55b3722d0b5f02b84e8301cc2880 100644 (file)
@@ -7,15 +7,21 @@
                .export         popax, incsp2
        .importzp       sp
 
+        .macpack        cpu
+
 ; Pop a/x from stack. This function will run directly into incsp2
 
 .proc  popax
 
        ldy     #1
-       lda     (sp),y          ; get hi byte
-               tax                     ; into x
+       lda     (sp),y          ; get hi byte
+               tax                     ; into x
+.if (.cpu .bitand ::CPU_ISET_65SC02)
+       lda     (sp)            ; get lo byte
+.else
        dey
        lda     (sp),y          ; get lo byte
+.endif
 
 .endproc
 
 
 .proc  incsp2
 
-       ldy     sp              ; 3
-               iny                     ; 2
-               beq     @L1             ; 2
-               iny                     ; 2
-               beq     @L2             ; 2
-               sty     sp              ; 3
-               rts
-
-@L1:           iny                     ; 2
-@L2:           sty     sp              ; 3
-               inc     sp+1            ; 5
-               rts
+        inc     sp              ; 5
+        beq     @L1             ; 2
+        inc     sp              ; 5
+        beq     @L2             ; 2
+        rts
+
+@L1:    inc     sp              ; 5
+@L2:    inc     sp+1            ; 5
+        rts
 
 .endproc