]> git.sur5r.net Git - cc65/blobdiff - libsrc/apple2/revers.s
fix comments
[cc65] / libsrc / apple2 / revers.s
index 2e79e6c8fc7bb8660e51b7130e3a3ca5b980ad7f..474bf5760195e84b159027f8755dc53d6021f7f5 100644 (file)
@@ -1,23 +1,22 @@
 ;
-; Kevin Ruland
+; 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     INVFLG          ; Stash old value
-       and     #$FF            ; Test for any bit
-       beq     normal          ; Nothing set
-       lda     #~$3F           ; Not Inverse
-normal:        eor     #$FF            ; Xor Normal
-       sta     INVFLG
-       tya                     ; What was the old value?
-       eor     #$FF            ; Normal = $FF, Inverse = $3F
-       beq     :+
-       lda     #$01
-:      ldx     #$00
-       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