![]() |
Routines |
| Prev: 995A | Up: Map | Next: 99F0 |
|
|
||||
| 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 |