]> git.sur5r.net Git - cc65/blobdiff - libsrc/runtime/sub.s
added sleep() implementation
[cc65] / libsrc / runtime / sub.s
index 9108b271059d1d5f8b8756b24ea04f0b7d76fd2f..1240737adcbcca44587d7b221e2605f932f7d19b 100644 (file)
@@ -5,8 +5,8 @@
 ;
 
                .export         tossuba0, tossubax
-       .import         addysp1         
-       .importzp       sp, ptr1
+       .import         addysp1
+       .importzp       sp
 
 ;
 ; AX = TOS - AX
 tossuba0:
        ldx     #0
 tossubax:
-       ldy     #0
-       sta     ptr1
-       stx     ptr1+1
-       lda     (sp),y          ; lo byte
-       sec
-       sbc     ptr1
-       sta     ptr1            ; save lo byte
+       sec
+       eor     #$FF
+.ifpc02
+        adc    (sp)
+       ldy     #1
+.else
+       ldy     #0
+       adc     (sp),y          ; Subtract low byte
        iny
-       lda     (sp),y
-       sbc     ptr1+1
-       tax
-       lda     ptr1
-       jmp     addysp1         ; drop TOS, set condition codes
+.endif
+       pha                     ; Save high byte
+        txa
+       eor     #$FF
+       adc     (sp),y          ; Subtract high byte
+       tax                     ; High byte into X
+       pla                     ; Restore low byte
+       jmp     addysp1         ; drop TOS