]> git.sur5r.net Git - cc65/commitdiff
Improved 65c02 support
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 10 Oct 2003 17:52:12 +0000 (17:52 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 10 Oct 2003 17:52:12 +0000 (17:52 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@2507 b7a2c559-68d2-44c3-8de9-860c34a00d81

14 files changed:
libsrc/common/atexit.s
libsrc/common/strdup.s
libsrc/runtime/add.s
libsrc/runtime/and.s
libsrc/runtime/condes.s
libsrc/runtime/incax1.s
libsrc/runtime/incsp2.s
libsrc/runtime/ldau0sp.s
libsrc/runtime/popa.s
libsrc/runtime/pusha.s
libsrc/runtime/pushb.s
libsrc/runtime/sub.s
libsrc/runtime/tosint.s
libsrc/runtime/toslong.s

index 940023300ddf56e7a8968a7da6daf39c92514881..40f392a678e4cd9332c1a2efd544fbed9db3fe0b 100644 (file)
 
        .include        "errno.inc"
 
+        .macpack        cpu
+
 ; ---------------------------------------------------------------------------
 
 .proc  _atexit
 
        ldy     exitfunc_index
                cpy     #exitfunc_max           ; Slot available?
-               beq     @Error                  ; Jump if no
+               beq     @Error                  ; Jump if no
 
 ; Enter the function into the table
 
@@ -63,7 +65,7 @@
        lda     exitfunc_table,y
        sty     exitfunc_index
                jsr     callax                  ; Call the function
-.ifpc02
+.if (.cpu .bitand ::CPU_ISET_65SC02)
        bra     doatexit
 .else
        jmp     doatexit                ; Next one
@@ -71,7 +73,7 @@
 
 @L9:   rts
 
-.endproc                      
+.endproc
 
 
 
index ed49ba485c2ec4532b36c4f8320a642e5e3abaa1..57cf914882fed9d24ad3054439b505a2933fa09a 100644 (file)
@@ -11,6 +11,7 @@
        .import         _strlen, _malloc, _memcpy
        .export         _strdup
 
+        .macpack        cpu
        .macpack        generic
 
 _strdup:
@@ -18,7 +19,7 @@ _strdup:
 ; Since we need some place to store the intermediate results, allocate a
 ; stack frame. To make this somewhat more efficient, create the stackframe
 ; as needed for the final call to the memcpy function.
-               
+
        pha                     ; decsp will destroy A (but not X)
        jsr     decsp4          ; Target/source
 
@@ -27,8 +28,8 @@ _strdup:
        ldy     #1
        txa
        sta     (sp),y
-       pla           
-.ifpc02
+       pla
+.if (.cpu .bitand CPU_ISET_65SC02)
        sta     (sp)
 .else
                dey
index b22e16ecc72b2f517d84473fa38d632e2a455cef..a4a058ddf48ba95ea054fced47831ba0521b3ad9 100644 (file)
                .export         tosadda0, tosaddax
        .importzp       sp
 
+        .macpack        cpu
+
 tosadda0:
        ldx     #0
 tosaddax:
        clc
-.ifpc02
-       adc     (sp)            ; 65C02 version - saves 2 cycles
+.if (.cpu .bitand CPU_ISET_65SC02)
+       adc     (sp)            ; 65SC02 version - saves 2 cycles
        ldy     #1
 .else
        ldy     #0
index 2b52c552ca9871577af5c990525461f96acead54..c38b47bb23b7abcb8bb0fe98d25ba987d46a4aea 100644 (file)
@@ -8,11 +8,13 @@
        .import         addysp1
        .importzp       sp, ptr4
 
+        .macpack        cpu
+
 tosanda0:
        ldx     #$00
 tosandax:
-.ifpc02
-       and     (sp)            ; 65C02 version, saves 2 cycles and 1 byte
+.if (.cpu .bitand CPU_ISET_65SC02)
+       and     (sp)            ; 65SC02 version, saves 2 cycles and 1 byte
        ldy     #1
 .else
        ldy     #0
index feffeaf35dea6c0af17a4b6f6fa5d33e8f8cbf34..77d0b1c00707c175b1dffa1a069aa0b9c1796cf0 100644 (file)
@@ -19,7 +19,7 @@
                .import __CONSTRUCTOR_TABLE__, __CONSTRUCTOR_COUNT__
        .import __DESTRUCTOR_TABLE__, __DESTRUCTOR_COUNT__
 
-
+        .macpack        cpu
 
 .code
 
@@ -58,7 +58,7 @@
 
        sta     getbyt+1
        stx     getbyt+2
-       sty     index 
+       sty     index
 
 loop:  ldy     index
        beq     done
@@ -69,7 +69,7 @@ loop: ldy     index
        jsr     getbyt
        sty     index
        jsr     callax
-.ifpc02
+.if (.cpu .bitand ::CPU_ISET_65SC02)
        bra     loop
 .else
        jmp     loop
index 8b8b1079aadb322ee3b964ebbdce87ba325d8f04..2d57b39811613e75537b336cb8f9c5b303afacf6 100644 (file)
@@ -7,10 +7,11 @@
                .export         incax1
 
        .macpack        generic
+        .macpack        cpu
 
 .proc  incax1
 
-.ifpc02
+.if (.cpu .bitand ::CPU_ISET_65SC02)
        ina                     ; 65C02 version
        bne     @L9
 .else
index deb29863139e098a593d77a76021c2ac1254351a..639f8a44f14a55b3722d0b5f02b84e8301cc2880 100644 (file)
@@ -7,14 +7,16 @@
                .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
-.ifpc02
+       lda     (sp),y          ; get hi byte
+               tax                     ; into x
+.if (.cpu .bitand ::CPU_ISET_65SC02)
        lda     (sp)            ; get lo byte
 .else
        dey
index ff91261c245c3d1abc57398b88b713481c1edb96..0be99d32018ecaded0487a2e1c2a353789d9b645 100644 (file)
@@ -7,6 +7,8 @@
        .export         ldau00sp, ldau0ysp
        .importzp       sp, ptr1
 
+        .macpack        cpu
+
 ldau00sp:
        ldy     #1
 ldau0ysp:
@@ -16,7 +18,7 @@ ldau0ysp:
        lda     (sp),y
        sta     ptr1
        ldx     #0
-.ifpc02
+.if (.cpu .bitand CPU_ISET_65SC02)
        lda     (ptr1)          ; Save one cycle for the C02
 .else
        lda     (ptr1,x)
index 81e18089c98a8a614642d7836499be141204d9f9..0534b24e50df381eac811b78986b487660246433 100644 (file)
@@ -7,9 +7,11 @@
                .export         popa
        .importzp       sp
 
+        .macpack        cpu
+
 .proc  popa
 
-.ifpc02
+.if (.cpu .bitand ::CPU_ISET_65SC02)
        lda     (sp)
 .else
        ldy     #0              ; (2)
index e3d2ba2eeaf519f760fb05afc131956b766426e0..c1f1e316081ba8b3e1cc4a1b060f2616b575c335 100644 (file)
@@ -7,6 +7,8 @@
                .export         pusha0sp, pushaysp, pusha
        .importzp       sp
 
+        .macpack        cpu
+
 ; Beware: The optimizer knows about this function!
 
 pusha0sp:
@@ -16,7 +18,7 @@ pushaysp:
 pusha: ldy     sp              ; (3)
                beq     @L1             ; (6)
        dec     sp              ; (11)
-.ifpc02
+.if (.cpu .bitand CPU_ISET_65SC02)
        sta     (sp)
 .else
        ldy     #0              ; (13)
index e5a44c777c37e05102c47d3f136501e4d20ffd13..d32c1c93027183f3d2337c532a491448e674e997 100644 (file)
@@ -8,6 +8,8 @@
        .import         pushax
        .importzp       ptr1
 
+        .macpack        cpu
+
 pushbidx:
        sty     ptr1
        clc
@@ -16,9 +18,9 @@ pushbidx:
        inx
 pushb: sta     ptr1
        stx     ptr1+1
-       ldx     #0              ; Load index/high byte
-.ifpc02
-       lda     (ptr1)          ; Save one cycle for the C02
+       ldx     #0              ; Load index/high byte
+.if (.cpu .bitand CPU_ISET_65SC02)
+       lda     (ptr1)          ; Save one cycle for the C02
 .else
        lda     (ptr1,x)
 .endif
index 1240737adcbcca44587d7b221e2605f932f7d19b..c9d427efd624a2ee408c7a666ab90392d59b2a5c 100644 (file)
@@ -8,16 +8,16 @@
        .import         addysp1
        .importzp       sp
 
-;
+        .macpack        cpu
+
 ; AX = TOS - AX
-;
 
 tossuba0:
        ldx     #0
 tossubax:
        sec
        eor     #$FF
-.ifpc02
+.if (.cpu .bitand CPU_ISET_65SC02)
         adc    (sp)
        ldy     #1
 .else
index 7bbab986e57334861229fce05eb0421900724197..d29fa2e8b71752222a4dc3487db545f3dd77ed92 100644 (file)
@@ -8,12 +8,14 @@
        .import         incsp2
        .importzp       sp
 
+        .macpack        cpu
+
 ; Convert TOS from long to int by cutting of the high 16bit
 
 .proc  tosint
 
        pha
-.ifpc02
+.if (.cpu .bitand ::CPU_ISET_65SC02)
        lda     (sp)
 .else
        ldy     #0
index a65a2cff2127634263543be50341a289babcf3f3..9bf66a321c8d733fae859cff3a725083bb7c0b6e 100644 (file)
@@ -8,6 +8,8 @@
        .import         decsp2
        .importzp       sp
 
+        .macpack        cpu
+
 ; Convert TOS from int to long
 
 tosulong:
@@ -15,7 +17,7 @@ tosulong:
        jsr     decsp2          ; Make room
        ldy     #2
        lda     (sp),y
-.ifpc02
+.if (.cpu .bitand CPU_ISET_65SC02)
        sta     (sp)            ; 65C02 version
        iny                     ; Y = 3
 .else
@@ -41,7 +43,7 @@ toslong:
        jsr     decsp2          ; Make room
        ldy     #2
        lda     (sp),y
-.ifpc02
+.if (.cpu .bitand CPU_ISET_65SC02)
        sta     (sp)            ; 65C02 version
        iny                     ; Y = 3
 .else