1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-05 06:28:57 +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)
;
@ -9,15 +9,14 @@
.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
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