Prev: 995A Up: Map Next: 99F0
9960: Game Initialisation
GameInitialisation 9960 CALL ClearBuffers Call ClearBuffers.
9963 XOR A Set the border to black.
9964 OUT ($FE),A
9966 CALL ResetAttributes Call ResetAttributes.
9969 CALL ResetScreen Call ResetScreen.
996C CALL $B902 Call B902.
Set the attributes for the top banner (the whole line is INK:47).
996F LD HL,$5800 HL=5800 (attribute buffer).
9972 LD BC,$2047 BC=counter:20 INK:47.
CreateWindow_Loop_Banner 9975 LD (HL),C Write 47 to the attribute buffer.
9976 INC L Move onto the next column.
9977 DJNZ CreateWindow_Loop_Banner Decrease counter by one and loop back to CreateWindow_Loop_Banner until counter is zero.
9979 CALL PrintBanner Call PrintBanner.
Set the attributes for the score line (the whole line is INK:46).
997C LD HL,$5820 HL=5820 (attribute buffer).
997F LD BC,$2046 BC=counter:20 INK:46.
CreateWindow_Loop_Score 9982 LD (HL),C Write 46 to the attribute buffer.
9983 INC L Move onto the next column.
9984 DJNZ CreateWindow_Loop_Score Decrease counter by one and loop back to CreateWindow_Loop_Score until counter is zero.
9986 CALL Score_1UP Call Score_1UP.
9989 CALL Score_2UP Call Score_2UP.
998C CALL Score_HI Call Score_HI.
This entry point is used by the routine at GameOver_1UP.
Game_Restart 998F CALL HandlerGameMenu Call HandlerGameMenu.
Writes 00 to every address from 1UP_Score_1 to SecurityCheck.
9992 LD HL,$9698 HL=9698.
9995 LD BC,$02C2 BC=02C2.
9998 CALL ClearBuffers_Loop Call ClearBuffers_Loop.
999B CALL Score_1UP Call Score_1UP.
999E CALL Score_2UP Call Score_2UP.
99A1 LD DE,$BD45 DE=MusicData_GameInitialisation.
99A4 CALL PlayAudio Call PlayAudio.
99A7 CALL $B1D4 Call B1D4.
This entry point is used by the routine at 9A1D.
GameInitialisation_0 99AA LD SP,$6000 SP=GameEntry.
99AD EI Enable interrupts.
99AE LD IX,$970E IX=970E.
This entry point is used by the routine at 99F0.
GameInitialisation_1 99B2 LD A,($5C78) C=FRAMES.
99B5 LD C,A
99B6 LD A,($9696) A=LastFrame.
99B9 CP C
99BA JR Z,GameInitialisation_2
FrameUpdate 99BC DI Disable interrupts.
99BD LD A,($5C78) Store FRAMES at LastFrame.
99C0 LD ($9696),A
99C3 LD A,$01 Set FrameUpdated to 01 (frame has updated).
99C5 LD ($9697),A
99C8 LD ($96A9),IX
99CC LD IX,$9702 IX=ImmortalData.
GameInitialisation_2 99D0 LD A,R
99D2 LD C,A
99D3 LD A,($9695)
99D6 ADC A,C
99D7 LD ($9695),A
99DA LD HL,$99F0 Push 99F0 onto the stack.
99DD PUSH HL
99DE LD BC,$9B3E BC=JumpTable.
99E1 LD A,(IX+$00)
99E4 LD L,A
99E5 LD H,$00
99E7 ADD HL,HL
99E8 ADD HL,BC
99E9 LD A,(HL)
99EA INC HL
99EB LD H,(HL)
99EC LD L,A
99ED JP IndirectJump
View the equivalent code in;
Prev: 995A Up: Map Next: 99F0