diff options
Diffstat (limited to 'engine/routines/flagpredef.asm')
-rw-r--r-- | engine/routines/flagpredef.asm | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/engine/routines/flagpredef.asm b/engine/routines/flagpredef.asm deleted file mode 100644 index 2a6d91ee1..000000000 --- a/engine/routines/flagpredef.asm +++ /dev/null @@ -1,70 +0,0 @@ -SmallFarFlagAction: ; 4d7c1 -; 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 |