Prev: EE61 Up: Map Next: EFD5
EF4A: Routine at EF4A
Used by the routines at Game_Loop, D352, LevelComplete and Handler_MainMenu.
EF4A LD DE,$07D0 DE=07D0.
EF4D DEC DE Decrease DE by one.
EF4E LD A,$32 A=32.
EF50 DEC A Decrease A by one.
EF51 JR NZ,$EF50 Jump to EF50 if A is not zero.
EF53 LD A,D Jump to EF4D if DE is not zero.
EF54 OR E
EF55 JR NZ,$EF4D
EF57 LD IX,$D838 IX=Bomb.
EF5B SET 7,(IX+$00) Set bit 7 of *IX+00.
Debounce__Loop EF5F CALL Handler_PlayerInput Call Handler_PlayerInput.
EF62 CP $00 Jump back to Debounce__Loop if there's any player input.
EF64 JR NZ,Debounce__Loop
EF66 RES 7,(IX+$00) Reset bit 7 of *IX+00.
This entry point is used by the routine at Controller_GameOver.
EF6A PUSH BC Stash BC on the stack.
EF6B INC HL Increment HL by one.
EF6C LD A,(HL) A=*HL.
EF6D DEC HL Decrease HL by one.
EF6E CP $FF Jump to EF80 if A is not equal to FF.
EF70 JP NZ,$EF80
EF73 INC HL Increment HL by two.
EF74 INC HL
EF75 LD BC,$4E20 BC=4E20.
EF78 DEC BC Decrease BC by one.
EF79 LD A,B Jump to EF78 if BC is not zero.
EF7A OR C
EF7B JR NZ,$EF78
EF7D JP $EFBF Jump to EFBF.
EF80 RLCA RLCA.
EF81 RLCA
EF82 LD IX,$F092 IX=F092.
EF86 LD B,$00 B=00.
EF88 LD C,A C=A.
EF89 ADD IX,BC IX+=BC.
EF8B PUSH HL Stash HL on the stack.
EF8C LD L,(IX+$00) L=*IX+00.
EF8F LD H,(IX+$01) H=*IX+01.
EF92 LD ($F04B),HL Write HL to *F04B.
EF95 LD C,(IX+$02) C=*IX+02.
EF98 LD B,(IX+$03) B=*IX+03.
EF9B POP HL Restore HL from the stack.
EF9C LD A,(HL) A=*HL.
EF9D INC HL Increment HL by two.
EF9E INC HL
EF9F PUSH HL Stash HL and BC on the stack.
EFA0 PUSH BC
EFA1 POP DE Restore DE from the stack.
EFA2 LD B,A B=A.
EFA3 LD HL,$0000 HL=0000.
EFA6 ADD HL,DE HL+=DE.
EFA7 DJNZ $EFA6 Decrease counter by one and loop back to EFA6 until counter is zero.
EFA9 AND A Set flags.
EFAA LD DE,$0000 DE=0000.
EFAD LD BC,$0032 BC=0032.
EFB0 INC DE Increment DE by one.
EFB1 SBC HL,BC HL-=BC.
EFB3 JP P,$EFB0 Jump to EFB0 P.
EFB6 DEC DE Decrease DE by one.
EFB7 LD ($F04D),DE Write DE to *F04D.
EFBB CALL $EFD5 Call EFD5.
EFBE POP HL Restore HL and BC from the stack.
EFBF POP BC
EFC0 LD IX,$D838 IX=Bomb.
EFC4 SET 7,(IX+$00) Set bit 7 of *IX+00.
EFC8 CALL Handler_PlayerInput Call Handler_PlayerInput.
EFCB CP $00 Was there any player input?
EFCD RES 7,(IX+$00) Reset bit 7 of *IX+00.
EFD1 RET NZ Return there was any kind of player input.
EFD2 DJNZ $EF6A Decrease counter by one and loop back to EF6A until counter is zero.
EFD4 RET Return.
Prev: EE61 Up: Map Next: EFD5