Prev: 600D Up: Map Next: 7C90
7C19: Game Entry Point
Used by the routine at SecurityCheck.
GameInitialisation 7C19 LD HL,$5E00 Write 00 to 10 bytes, from 5E00 to 5E10.
7C1C LD B,$10
GameInitialisation_0 7C1E LD (HL),$00
7C20 INC HL
7C21 DJNZ GameInitialisation_0
7C23 LD HL,$BE4C Write BE4C to 5E01.
7C26 LD ($5E01),HL
This entry point is used by the routine at 80CB.
GameInitialisation_1 7C29 CALL ResetScreenWrapper Call ResetScreenWrapper.
7C2C CALL $A311 Call A311.
GameInitialisation_2 7C2F CALL $7CAF Call 7CAF.
7C32 LD A,$F7 Read from the keyboard;
Port Number Bit
0 1 2 3 4
F7 1 2 3 4 5
7C34 OUT ($FD),A
7C36 IN A,($FE)
7C38 CPL Flip the bits.
7C39 LD E,A
7C3A LD A,($5E00)
7C3D BIT 0,E
7C3F JR Z,GameInitialisation_3
7C41 AND $F9
GameInitialisation_3 7C43 BIT 1,E
7C45 JR Z,GameInitialisation_4
7C47 AND $F9
7C49 OR $02
GameInitialisation_4 7C4B BIT 2,E
7C4D JR Z,GameInitialisation_5
7C4F AND $F9
7C51 OR $04
GameInitialisation_5 7C53 BIT 3,E
7C55 JR Z,GameInitialisation_6
7C57 AND $E7
GameInitialisation_6 7C59 BIT 4,E
7C5B JR Z,GameInitialisation_7
7C5D AND $E7
7C5F OR $08
GameInitialisation_7 7C61 LD D,A
7C62 LD A,$EF Read from the keyboard;
Port Number Bit
0 1 2 3 4
EF 0 9 8 7 6
7C64 OUT ($FD),A
7C66 IN A,($FE)
7C68 CPL Flip the bits.
7C69 LD E,A
7C6A LD A,D
Handle choosing "Serf".
GameSelect_Serf 7C6B BIT 4,E Has key "6" been pressed? ("SERF").
7C6D JR Z,GameInitialisation_8 If not skip to GameInitialisation_8.
7C6F AND %11100111 Keep only bits 0-2, 5-7.
7C71 OR %00010000 Set bit 4.
GameInitialisation_8 7C73 LD ($5E00),A
7C76 LD C,A
Handle starting a new game.
GameSelect_Start 7C77 BIT 0,E Has key "0" been pressed? ("START GAME").
7C79 JP NZ,$7D9A If so, jump to 7D9A.
This entry point is used by the routine at A311.
GameInitialisation_9 7C7C LD HL,$7CEA
7C7F LD B,$03
7C81 LD A,C
7C82 CALL $7C90
7C85 LD B,$03
7C87 LD A,C
7C88 RRCA
7C89 RRCA
7C8A CALL $7C90
7C8D JP GameInitialisation_2 Jump to GameInitialisation_2.
Prev: 600D Up: Map Next: 7C90