mirror of
https://github.com/thornAvery/kep-hack.git
synced 2026-02-22 15:12:18 +13:00
split code out of main.asm
This commit is contained in:
parent
10289bf7dd
commit
bf67f7174d
22 changed files with 2671 additions and 2675 deletions
73
engine/flag_action.asm
Normal file
73
engine/flag_action.asm
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
FlagActionPredef:
|
||||
call GetPredefRegisters
|
||||
|
||||
FlagAction:
|
||||
; Perform action b on bit c
|
||||
; in the bitfield at hl.
|
||||
; 0: reset
|
||||
; 1: set
|
||||
; 2: read
|
||||
; Return the result in c.
|
||||
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
|
||||
; bit
|
||||
ld a, c
|
||||
ld d, a
|
||||
and 7
|
||||
ld e, a
|
||||
|
||||
; byte
|
||||
ld a, d
|
||||
srl a
|
||||
srl a
|
||||
srl a
|
||||
add l
|
||||
ld l, a
|
||||
jr nc, .ok
|
||||
inc h
|
||||
.ok
|
||||
|
||||
; d = 1 << e (bitmask)
|
||||
inc e
|
||||
ld d, 1
|
||||
.shift
|
||||
dec e
|
||||
jr z, .shifted
|
||||
sla d
|
||||
jr .shift
|
||||
.shifted
|
||||
|
||||
ld a, b
|
||||
and a
|
||||
jr z, .reset
|
||||
cp 2
|
||||
jr z, .read
|
||||
|
||||
.set
|
||||
ld b, [hl]
|
||||
ld a, d
|
||||
or b
|
||||
ld [hl], a
|
||||
jr .done
|
||||
|
||||
.reset
|
||||
ld b, [hl]
|
||||
ld a, d
|
||||
xor $ff
|
||||
and b
|
||||
ld [hl], a
|
||||
jr .done
|
||||
|
||||
.read
|
||||
ld b, [hl]
|
||||
ld a, d
|
||||
and b
|
||||
.done
|
||||
pop bc
|
||||
pop de
|
||||
pop hl
|
||||
ld c, a
|
||||
ret
|
||||
Loading…
Add table
Add a link
Reference in a new issue