]> git.sur5r.net Git - cc65/blobdiff - libsrc/apple2/revers.s
don't use constructor to setup runtime stack
[cc65] / libsrc / apple2 / revers.s
index 7020829006a70b50b6aed6645a4147c42a2bdd07..474bf5760195e84b159027f8755dc53d6021f7f5 100644 (file)
@@ -1,25 +1,22 @@
-       ;;
-       ;; Kevin Ruland
-       ;;
-       ;; unsigned char __fastcall__ revers (unsigned char onoff)
-       ;;
+;
+; Ullrich von Bassewitz, 2005-03-28
+;
+; unsigned char __fastcall__ revers (unsigned char onoff)
+;
 
-       .export         _revers
+        .export                _revers
 
-       .include        "apple2.inc"
+        .include       "apple2.inc"
 
 _revers:
-       ldy     TEXTTYP         ; Stash old value
-       and     #$FF            ; Test for any bit
-       bne     reverse         ; Nothing set
-       lda     #$FF
-reverse:       
-       ora     #$3F    
-       sta     TEXTTYP
-       tya                     ; What was the old value?
-       eor     #$FF            ; Normal = $FF, Reverse = $3F
-       beq     L2
-       lda     #01
-L2:    
-       rts
-
+        tax                    ; Test onoff
+        beq    normal          ; If zero, "normal" must be set
+        ldx    #$3F+1          ; Set "inverse"
+normal: dex                     ; $00->$FF, $40->$3F
+        lda    #$00            ; Preload return code for "normal"
+        ldy    INVFLG          ; Load current flag value
+        stx    INVFLG          ; Save new flag value
+        bmi    :+              ; Jump if current value is $FF (normal)
+        lda    #$01            ; Return "inverse"
+:       ldx    #$00
+        rts