1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-18 16:29:15 +00:00

Squeezed out a few bytes

git-svn-id: svn://svn.cc65.org/cc65/trunk@3427 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2005-03-28 16:01:08 +00:00
parent 025221f44a
commit 0a7067e89b

View File

@ -1,5 +1,5 @@
; ;
; Kevin Ruland ; Ullrich von Bassewitz, 2005-03-28
; ;
; unsigned char __fastcall__ revers (unsigned char onoff) ; unsigned char __fastcall__ revers (unsigned char onoff)
; ;
@ -9,15 +9,14 @@
.include "apple2.inc" .include "apple2.inc"
_revers: _revers:
ldy INVFLG ; Stash old value tax ; Test onoff
and #$FF ; Test for any bit beq normal ; If zero, "normal" must be set
beq normal ; Nothing set ldx #$3F+1 ; Set "inverse"
lda #~$3F ; Not Inverse normal: dex ; $00->$FF, $40->$3F
normal: eor #$FF ; Xor Normal lda #$00 ; Preload return code for "normal"
sta INVFLG ldy INVFLG ; Load current flag value
tya ; What was the old value? stx INVFLG ; Save new flag value
eor #$FF ; Normal = $FF, Inverse = $3F bmi :+ ; Jump if current value is $FF (normal)
beq :+ lda #$01 ; Return "inverse"
lda #$01
: ldx #$00 : ldx #$00
rts rts