Prev: D2A1 Up: Map Next: D469
D352: Routine at D352
Used by the routine at StartGame.
D352 LD DE,$0780 Write 0780 to *D88E.
D355 LD ($D88E),DE
D359 LD DE,$0AF0 Write 0AF0 to *D890.
D35C LD ($D890),DE
D360 CALL $F39E Call F39E.
D363 LD A,($D834) Jump to D387 if *D834 is equal to 09.
D366 CP $09
D368 JR Z,$D387
D36A LD A,($D835) Jump to D387 if *PlayerCursor_Flag is not equal to 00.
D36D CP $00
D36F JR NZ,$D387
D371 PUSH BC Stash BC on the stack.
D372 LD A,($D830) Write *D830 to *D82C.
D375 LD ($D82C),A
D378 LD A,($D831) Write *D831 to *D82D.
D37B LD ($D82D),A
D37E CALL Display_PlayerCursor Call Display_PlayerCursor.
D381 LD HL,$D839 HL=D839.
D384 RES 0,(HL) Reset bit 0 of *HL.
D386 POP BC Restore BC from the stack.
D387 BIT 4,B Jump to StartGame_0 if bit 4 of B is not set.
D389 JP Z,StartGame_0
D38C PUSH BC Stash BC on the stack.
D38D CALL $DABF Call DABF.
D390 CALL Print_Bonus Call Print_Bonus.
D393 LD HL,$D83A HL=Time.
D396 BIT 6,(HL) Call F349 if bit 6 of *HL is set.
D398 CALL NZ,$F349
D39B LD HL,$D83A HL=Time.
D39E SET 0,(HL) Set bit 0 of *HL.
D3A0 POP BC Restore BC from the stack.
D3A1 BIT 3,B Jump to D3C4 if bit 3 of B is not set.
D3A3 JR Z,$D3C4
D3A5 CALL Handler_Bonus Call Handler_Bonus.
D3A8 LD A,($E75D) A=*E75D.
D3AB DEC A Decrease A by one.
D3AC LD B,A B=A.
D3AD LD A,($E75E) A=*E75E.
D3B0 DEC A Decrease A by one.
D3B1 LD C,A C=A.
D3B2 LD DE,$D86B DE=D86B.
D3B5 LD A,$04 A=04.
D3B7 LD IX,$D83A IX=Time.
D3BB RES 1,(IX+$00) Reset bit 1 of *IX+00.
D3BF CALL Print_Numbers Call Print_Numbers.
D3C2 JR $D3DF Jump to D3DF.
D3C4 LD IX,$D83A IX=Time.
D3C8 BIT 2,(IX+$00) Jump to D40D if bit 2 of *IX+00 is set.
D3CC JR Z,$D40D
D3CE LD DE,$0510 Write 0510 to *D88E.
D3D1 LD ($D88E),DE
D3D5 LD DE,$0AB0 Write 0AB0 to *D890.
D3D8 LD ($D890),DE
D3DC CALL Handler_Bonus Call Handler_Bonus.
D3DF LD A,$05 A=05.
D3E1 LD C,$82 C=82.
D3E3 PUSH BC Stash BC on the stack.
D3E4 LD D,$05 D=05.
D3E6 OUT ($FE),A Set border to the colour held by A.
D3E8 XOR %00010000 Flip bit 4.
D3EA LD E,C E=C.
D3EB DEC E Decrease E by one.
D3EC JR NZ,$D3EB Jump to D3EB if E is not zero.
D3EE DEC D Decrease D by one.
D3EF JR NZ,$D3E6 Jump to D3E6 if D is not zero.
D3F1 DEC C Decrease C by one.
D3F2 JR NZ,$D3E4 Jump to D3E4 if C is not zero.
D3F4 POP BC Restore BC from the stack.
D3F5 LD D,$05 D=05.
D3F7 LD A,$05 A=05.
D3F9 OUT ($FE),A Set border to the colour held by A.
D3FB XOR %00010000 Flip bit 4.
D3FD LD E,C E=C.
D3FE DEC E Decrease E by one.
D3FF JR NZ,$D3FE Jump to D3FE if E is not zero.
D401 DEC D Decrease D by one.
D402 JR NZ,$D3F9 Jump to D3F9 if D is not zero.
D404 INC C Increment C by one.
D405 LD A,$82 Jump to D3F5 if C is not equal to 82.
D407 CP C
D408 JR NZ,$D3F5
D40A CALL $DABF Call DABF.
D40D LD IX,$D83A IX=Time.
D411 BIT 3,(IX+$00) Jump to StartGame_0 if bit 3 of *IX+00 is not set.
D415 JP Z,StartGame_0
D418 CALL $E9DA Call E9DA.
D41B CALL $E775 Call E775.
This entry point is used by the routine at F39E.
D41E LD A,($D82E) Write *PlayerCursor_Y_Position to *E75D.
D421 LD ($E75D),A
D424 LD A,($D82F) Write *PlayerCursor_X_Position to *E75E.
D427 LD ($E75E),A
D42A LD A,($D834) Jump to D456 if *D834 is not equal to 09.
D42D CP $09
D42F JR NZ,$D456
D431 LD A,($E75D) A=*E75D.
D434 LD ($E762),A Write A to *E762.
D437 INC A Increment A by one.
D438 LD ($E763),A Write A to *E763.
D43B LD A,($E75E) A=*E75E.
D43E LD ($E764),A Write A to *E764.
D441 INC A Increment A by one.
D442 LD ($E765),A Write A to *E765.
D445 CALL $E9DA Call E9DA.
D448 LD A,$2F A=INK: WHITE, PAPER: CYAN .
D44A CALL ColouriseHome Call ColouriseHome.
D44D CALL $E9A5 Call E9A5.
D450 HALT Halt operation (suspend CPU until the next interrupt).
D451 CALL $E7CC Call E7CC.
D454 JR $D45F Jump to D45F.
D456 CALL Remove_PlayerCursor
D459 CALL $E9DA
D45C CALL $E775
D45F LD HL,$D6FC
D462 LD B,$08
D464 DI
D465 CALL $EF4A
D468 EI
Prev: D2A1 Up: Map Next: D469