pokegold-spaceworld/engine/smallflag.asm
jd-0 8900eb7ad0 Remove address comments
Regex patterns used:
 ; [0-9a-f]{1,5} \([0-9a-f]{1,2}:[0-9a-f]{1,4}\)
 ; [0-9a-f]{1,2}:[0-9a-f]{4}
 ; [0-9a-f]{4,5}

 ;[0-9a-f]{4,5}
 ;[0-9a-f]{1,2}:[0-9a-f]{1,4}
2020-09-20 12:07:01 -07:00

73 lines
829 B
NASM
Executable File

SECTION "engine/smallflag.asm", ROMX
SmallFarFlagAction:
; Perform action b on bit c in flag array hl.
; If checking a flag, check flag array d:hl unless d is 0.
; For longer flag arrays, see FlagAction.
push hl
push bc
; Divide by 8 to get the byte we want.
push bc
srl c
srl c
srl c
ld b, 0
add hl, bc
pop bc
; Which bit we want from the byte
ld a, c
and 7
ld c, a
; Shift left until we can mask the bit
ld a, 1
jr z, .shifted
.shift
add a
dec c
jr nz, .shift
.shifted
ld c, a
; What are we doing to this flag?
dec b
jr z, .set ; 1
dec b
jr z, .check ; 2
.reset
ld a, c
cpl
and [hl]
ld [hl], a
jr .done
.set
ld a, [hl]
or c
ld [hl], a
jr .done
.check
ld a, d
cp 0
jr nz, .farcheck
ld a, [hl]
and c
jr .done
.farcheck
call GetFarByte
and c
.done
pop bc
pop hl
ld c, a
ret