Prev: D234 Up: Map Next: D3F5
D2DE: Routine at D2DE
Used by the routine at StartGame.
D2DE LD DE,$0780 Write 0780 to *D5AA.
D2E1 LD ($D5AA),DE
D2E5 LD DE,$0AF0 Write 0AF0 to *D5AC.
D2E8 LD ($D5AC),DE
D2EC CALL $EFBB Call EFBB.
D2EF LD A,($D550) Jump to D313 if *D550 is equal to 09.
D2F2 CP $09
D2F4 JR Z,$D313
D2F6 LD A,($D551) Jump to D313 if *D551 is not equal to 00.
D2F9 CP $00
D2FB JR NZ,$D313
D2FD PUSH BC Stash BC on the stack.
D2FE LD A,($D54C) Write *D54C to *D548.
D301 LD ($D548),A
D304 LD A,($D54D) Write *D54D to *D549.
D307 LD ($D549),A
D30A CALL Display_PlayerCursor Call Display_PlayerCursor.
D30D LD HL,$D555 HL=D555.
D310 RES 0,(HL) Reset bit 0 of *HL.
D312 POP BC Restore BC from the stack.
D313 BIT 4,B Test bit 4 of B.
D315 JP Z,StartGame_0 Jump to StartGame_0 if A is equal to 00.
D318 PUSH BC Stash BC on the stack.
D319 CALL $D8CA Call D8CA.
D31C CALL $E80B Call E80B.
D31F LD HL,$D556 HL=D556.
D322 BIT 6,(HL) Test bit 6 of *HL.
D324 CALL NZ,$EF66 Call EF66 if A is not equal to 0.
D327 LD HL,$D556 HL=D556.
D32A SET 0,(HL) Set bit 0 of *HL.
D32C POP BC Restore BC from the stack.
D32D BIT 3,B Test bit 3 of B.
D32F JR Z,$D350 Jump to D350 if A is equal to 00.
D331 CALL $D609 Call D609.
D334 LD A,($E568) A=*E568.
D337 DEC A Decrease A by one.
D338 LD B,A B=A.
D339 LD A,($E569) A=*E569.
D33C DEC A Decrease A by one.
D33D LD C,A C=A.
D33E LD DE,$D587 DE=D587.
D341 LD A,$04 A=04.
D343 LD IX,$D556 IX=D556.
D347 RES 1,(IX+$00) Reset bit 1 of *IX+00.
D34B CALL $D939 Call D939.
D34E JR $D36B Jump to D36B.
D350 LD IX,$D556 IX=D556.
D354 BIT 2,(IX+$00) Test bit 2 of *IX+00.
D358 JR Z,$D399 Jump to D399 if A is equal to 04.
D35A LD DE,$0510 Write 0510 to *D5AA.
D35D LD ($D5AA),DE
D361 LD DE,$0AB0 Write 0AB0 to *D5AC.
D364 LD ($D5AC),DE
D368 CALL $D609 Call D609.
D36B LD A,$05 A=05.
D36D LD C,$82 C=82.
D36F PUSH BC Stash BC on the stack.
D370 LD D,$05 D=05.
D372 OUT ($FE),A Set border to the colour held by A.
D374 XOR %00010000 Flip bit 4.
D376 LD E,C E=C.
D377 DEC E Decrease E by one.
D378 JR NZ,$D377 Jump to D377 if E is not equal to 05.
D37A DEC D Decrease D by one.
D37B JR NZ,$D372 Jump to D372 if D is not equal to 05.
D37D DEC C Decrease C by one.
D37E JR NZ,$D370 Jump to D370 if C is not equal to 05.
D380 POP BC Restore BC from the stack.
D381 LD D,$05 D=05.
D383 LD A,$05 A=05.
D385 OUT ($FE),A Set border to the colour held by A.
D387 XOR %00010000 Flip bit 4.
D389 LD E,C E=C.
D38A DEC E Decrease E by one.
D38B JR NZ,$D38A Jump to D38A if E is not equal to 05.
D38D DEC D Decrease D by one.
D38E JR NZ,$D385 Jump to D385 if D is not equal to 05.
D390 INC C Increment C by one.
D391 LD A,$82 A=82.
D393 CP C Compare A with C.
D394 JR NZ,$D381 Jump to D381 if A is not equal to C.
D396 CALL $D8CA Call D8CA.
D399 LD IX,$D556 IX=D556.
D39D BIT 3,(IX+$00) Test bit 3 of *IX+00.
D3A1 JP Z,StartGame_0 Jump to StartGame_0 if A is equal to C.
D3A4 CALL $E7E5 Call E7E5.
D3A7 CALL $E580 Call E580.
This entry point is used by the routine at E901.
D3AA LD A,($D54A) Write *D54A to *E568.
D3AD LD ($E568),A
D3B0 LD A,($D54B) Write *D54B to *E569.
D3B3 LD ($E569),A
D3B6 LD A,($D550) Jump to D3E2 if *D550 is not equal to 09.
D3B9 CP $09
D3BB JR NZ,$D3E2
D3BD LD A,($E568) A=*E568.
D3C0 LD ($E56D),A Write A to *E56D.
D3C3 INC A Increment A by one.
D3C4 LD ($E56E),A Write A to *E56E.
D3C7 LD A,($E569) A=*E569.
D3CA LD ($E56F),A Write A to *E56F.
D3CD INC A Increment A by one.
D3CE LD ($E570),A Write A to *E570.
D3D1 CALL $E7E5 Call E7E5.
D3D4 LD A,$2F A=2F.
D3D6 CALL ColouriseHome Call ColouriseHome.
D3D9 CALL $E7B0 Call E7B0.
D3DC HALT Halt operation (suspend CPU until the next interrupt).
D3DD CALL $E5D7 Call E5D7.
D3E0 JR $D3EB Jump to D3EB.
D3E2 CALL Remove_PlayerCursor Call Remove_PlayerCursor.
D3E5 CALL $E7E5 Call E7E5.
D3E8 CALL $E580 Call E580.
D3EB LD HL,$D521 HL=D521.
D3EE LD B,$08 B=08.
D3F0 DI Disable interrupts.
D3F1 CALL $EB8C Call EB8C.
D3F4 EI Enable interrupts.
Prev: D234 Up: Map Next: D3F5