mirror of
https://github.com/cc65/cc65.git
synced 2024-12-27 00:29:31 +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:
parent
025221f44a
commit
0a7067e89b
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user