Prev: F85D Up: Map Next: FCB3
FC43: Routine at FC43
Used by the routine at F85D.
FC43 LD HL,$D83A HL=Time.
FC46 BIT 0,(HL) Test bit 0 of *HL.
FC48 JP Z,$FCA4 Jump to FCA4 if is zero.
FC4B LD HL,$D85D HL=TimeBar_Active.
FC4E DEC (HL) Decrease *HL by one.
FC4F JP NZ,$FCA4 Jump to FCA4 if *HL is not zero.
FC52 LD (HL),$4B Write 4B to *HL.
FC54 LD HL,$D83A HL=Time.
FC57 BIT 5,(HL) Test bit 5 of *HL.
FC59 JP Z,$FC6D Jump to FC6D if *HL is zero.
FC5C LD A,$05 A=05.
FC5E LD D,$32 D=32.
FC60 LD E,$50 E=50.
FC62 XOR %00010000 Flip bit 4.
FC64 OUT ($FE),A Set border to the colour held by A.
FC66 LD B,D B=D.
FC67 DJNZ $FC67 Decrease counter by one and loop back to FC67 until counter is zero.
FC69 DEC E Decrease E by one.
FC6A JP NZ,$FC62 Jump to FC62 if E is not zero.
This entry point is used by the routine at LevelComplete.
FC6D LD HL,($D85B) HL=*TimeBar_CurrentPosition.
FC70 LD B,$04 B=04.
FC72 SLA (HL) Shift *HL left (with carry).
FC74 JP NC,$FC7D Jump to FC7D if E is higher.
FC77 INC H Increment H by one.
FC78 DJNZ $FC72 Decrease counter by one and loop back to FC72 until counter is zero.
FC7A JP $FCA4 Jump to FCA4.
FC7D LD A,($D85E) A=*TimeBar_Length.
FC80 DEC A Decrease A by one.
FC81 JP Z,$FC9B Jump to FC9B if A is zero.
FC84 LD ($D85E),A Write A to *TimeBar_Length.
FC87 CP $03 Compare A with 03.
FC89 JP P,$FC94 Jump to FC94 P.
FC8C LD A,($D83A) A=*Time.
FC8F SET 5,A Set bit 5 of A.
FC91 LD ($D83A),A Write A to *Time.
FC94 DEC HL Decrease HL by one.
FC95 LD ($D85B),HL Write HL to *TimeBar_CurrentPosition.
FC98 JP $FC72 Jump to FC72.
FC9B LD HL,$D83A HL=Time.
FC9E SET 4,(HL) Set bit 4 of *HL.
FCA0 RES 0,(HL) Reset bit 0 of *HL.
FCA2 RES 5,(HL) Reset bit 5 of *HL.
FCA4 LD HL,$D83A HL=Time.
FCA7 BIT 7,(HL) Test bit 7 of *HL.
FCA9 RET NZ Return if HL is not zero.
FCAA POP IX Restore IX from the stack.
FCAC POP HL Restore HL, DE, BC and AF from the stack.
FCAD POP DE
FCAE POP BC
FCAF POP AF
FCB0 EI Enable interrupts.
FCB1 RETI Return from the interrupt routine.
Prev: F85D Up: Map Next: FCB3