- ;;
- ;; 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