Prev: D2DE Up: Map Next: D47D
D3F5: Start Game
Used by the routine at DemoEntryPoint.
The game always starts with the cursor inside the home box.
This is position 02/ 02:
demo-cursor-02-02
StartGame D3F5 LD A,$02 Write 02 to:
D3F7 LD ($D54C),A
D3FA LD ($D54D),A
D3FD LD ($D54A),A
D400 LD ($D54B),A
D403 LD A,$09 Write 09 to *D550.
D405 LD ($D550),A
D408 LD HL,$D543 HL=Lives.
D40B DEC (HL) Decrease *HL by one.
D40C JP Z,StartGame_2 Jump to StartGame_2 until *HL is equal to 00.
D40F LD HL,$D556 HL=D556.
D412 LD (HL),$00 Write 00 to *HL.
D414 CALL $EF3B Call EF3B.
D417 LD HL,($D58E) HL=*D58E.
D41A LD (HL),$2D Write INK: CYAN, PAPER: CYAN to *HL.
D41C INC HL Increment HL by one.
D41D LD (HL),$2D Write INK: CYAN, PAPER: CYAN to *HL.
D41F INC HL Increment HL by one.
D420 LD ($D58E),HL Write HL to *D58E.
D423 LD DE,$001E HL+=001E.
D426 ADD HL,DE
D427 LD (HL),$2D Write INK: CYAN, PAPER: CYAN to *HL.
D429 INC HL Increment HL by one.
D42A LD (HL),$2D Write INK: CYAN, PAPER: CYAN to *HL.
D42C LD HL,$D556 HL=D556.
D42F SET 0,(HL) Set bit 0 of *HL.
This entry point is used by the routine at D2DE.
StartGame_0 D431 LD A,($D556) A=*D556.
D434 AND %11110001 Keep only bits 0, 4-7.
D436 LD ($D556),A Write A to *D556.
D439 LD A,($D54C) Write *D54C to *D548.
D43C LD ($D548),A
D43F LD A,($D54D) Write *D54Dto *D549.
D442 LD ($D549),A
D445 LD A,($D540) Write *D540to *D54E.
D448 LD ($D54E),A
D44B LD A,($D551) Jump to StartGame_1 if *D551 is not equal to 00.
D44E CP $00
D450 JR NZ,StartGame_1
D452 LD A,($D550) Jump to StartGame_1 if *D550 is equal to 09.
D455 CP $09
D457 JR Z,StartGame_1
D459 CALL Display_PlayerCursor Call Display_PlayerCursor.
StartGame_1 D45C CALL $D789 Call D789.
D45F JP $D2DE Jump to D2DE.
StartGame_2 D462 LD HL,$D555 HL=D555.
D465 SET 7,(HL) Set bit 7 of *HL.
D467 LD B,$4B B=4B.
StartGame_3 D469 HALT Halt operation (suspend CPU until the next interrupt).
D46A DJNZ StartGame_3 Decrease counter by one and loop back to StartGame_3 until counter is zero.
D46C DI Disable interrupts.
D46D CALL $E901 Call E901.
D470 LD BC,$0000 BC=0000.
StartGame_4 D473 DEC BC Decrease BC by one.
D474 LD A,B Jump to StartGame_4 until BC is equal to 00.
D475 OR C
D476 JR NZ,StartGame_4
D478 POP IY Restore IY from the stack.
D47A JP DemoEntryPoint_0 Jump to DemoEntryPoint_0.
Prev: D2DE Up: Map Next: D47D