Routines |
Prev: 53901 | Up: Map | Next: 54098 |
Used by the routine at Game_Loop.
|
||||||||||||||||||||||||||||||||||||||||||||
Game_Initialisation | 53921 | LD C,(HL) | The first byte is the length of the level data, store this in C. | |||||||||||||||||||||||||||||||||||||||||
53922 | LD A,C | A=data length. | ||||||||||||||||||||||||||||||||||||||||||
53923 | LD B,0 | Initialise B to 0 for the copy command. | ||||||||||||||||||||||||||||||||||||||||||
53925 | INC HL | Increment the level data pointer by one. | ||||||||||||||||||||||||||||||||||||||||||
53926 | LD DE,58023 | Copy the level data from the current level data to 58023. | ||||||||||||||||||||||||||||||||||||||||||
53929 | LDIR | |||||||||||||||||||||||||||||||||||||||||||
53931 | LD DE,55317 | The next 0018 bytes are timers for the doors and cracks, each level has a different set. Copy these starting at Timer_DoorTop. | ||||||||||||||||||||||||||||||||||||||||||
53934 | LD BC,18 | |||||||||||||||||||||||||||||||||||||||||||
53937 | LDIR | |||||||||||||||||||||||||||||||||||||||||||
53939 | LD E,(HL) | Fetch the pointer for the level graphics data and write this to *LevelGraphicsData. | ||||||||||||||||||||||||||||||||||||||||||
53940 | INC HL | |||||||||||||||||||||||||||||||||||||||||||
53941 | LD D,(HL) | |||||||||||||||||||||||||||||||||||||||||||
53942 | LD (55442),DE | |||||||||||||||||||||||||||||||||||||||||||
53946 | LD HL,55391 | HL=55391. | ||||||||||||||||||||||||||||||||||||||||||
53949 | LD B,12 | B=12. | ||||||||||||||||||||||||||||||||||||||||||
Game_Initialisation_0 | 53951 | LD (HL),1 | Write 1 to *HL. | |||||||||||||||||||||||||||||||||||||||||
53953 | INC HL | Increment HL by one. | ||||||||||||||||||||||||||||||||||||||||||
53954 | DJNZ Game_Initialisation_0 | Decrease counter by one and loop back to Game_Initialisation_0 until counter is zero. | ||||||||||||||||||||||||||||||||||||||||||
53956 | LD DE,57953 | Copy 0049 bytes of data from 54513 to InGame_Tiles_Top. | ||||||||||||||||||||||||||||||||||||||||||
53959 | LD HL,54513 | |||||||||||||||||||||||||||||||||||||||||||
53962 | LD BC,49 | |||||||||||||||||||||||||||||||||||||||||||
53965 | LDIR | |||||||||||||||||||||||||||||||||||||||||||
Populates Table_Tiles with:
|
||||||||||||||||||||||||||||||||||||||||||||
53967 | LD HL,58003 | HL=Table_Tiles. | ||||||||||||||||||||||||||||||||||||||||||
53970 | LD B,20 | Set a counter in B for each tile (5x4). | ||||||||||||||||||||||||||||||||||||||||||
53972 | LD A,1 | Tile numbering starts from 1. | ||||||||||||||||||||||||||||||||||||||||||
PopulateTileTable_Loop | 53974 | LD (HL),A | Write the tile ID to *HL. | |||||||||||||||||||||||||||||||||||||||||
53975 | INC HL | Increment the tile table pointer by one. | ||||||||||||||||||||||||||||||||||||||||||
53976 | INC A | Increment the tile ID by one. | ||||||||||||||||||||||||||||||||||||||||||
53977 | DJNZ PopulateTileTable_Loop | Decrease the tile counter by one and loop back to PopulateTileTable_Loop until the table has been populated. | ||||||||||||||||||||||||||||||||||||||||||
Copy default values to 55336.
|
||||||||||||||||||||||||||||||||||||||||||||
53979 | LD HL,55417 | HL=Defaults. | ||||||||||||||||||||||||||||||||||||||||||
53982 | LD DE,55336 | DE=55336. | ||||||||||||||||||||||||||||||||||||||||||
PopulateDefaults_Loop | 53985 | LD A,(HL) | Load the byte from *HL and store it in A. | |||||||||||||||||||||||||||||||||||||||||
53986 | CP 255 | Jump to PopulateDefaults_Done if this byte is the terminator (255). | ||||||||||||||||||||||||||||||||||||||||||
53988 | JR Z,PopulateDefaults_Done | |||||||||||||||||||||||||||||||||||||||||||
53990 | LD B,A | Load the byte into B this is the count/ repeater value. | ||||||||||||||||||||||||||||||||||||||||||
53991 | INC HL | Increment the defaults pointer by one. | ||||||||||||||||||||||||||||||||||||||||||
53992 | LD A,(HL) | Load the defaults byte from *HL and store it in A. | ||||||||||||||||||||||||||||||||||||||||||
53993 | INC HL | Increment the defaults pointer by one. | ||||||||||||||||||||||||||||||||||||||||||
RepeatDefault_Loop | 53994 | LD (DE),A | Write the defaults byte to the destination. | |||||||||||||||||||||||||||||||||||||||||
53995 | INC DE | Increment the destination pointer by one. | ||||||||||||||||||||||||||||||||||||||||||
53996 | DJNZ RepeatDefault_Loop | Decrease repeater count by one and loop back to RepeatDefault_Loop until the defaults byte has been written this number of times. | ||||||||||||||||||||||||||||||||||||||||||
53998 | JR PopulateDefaults_Loop | Jump back to PopulateDefaults_Loop. | ||||||||||||||||||||||||||||||||||||||||||
The computed values are done, copy the last six values over.
|
||||||||||||||||||||||||||||||||||||||||||||
PopulateDefaults_Done | 54000 | INC HL | Copy the last 0006 bytes from 55432 to 55370. | |||||||||||||||||||||||||||||||||||||||||
54001 | LD BC,6 | |||||||||||||||||||||||||||||||||||||||||||
54004 | LDIR | |||||||||||||||||||||||||||||||||||||||||||
54006 | LD B,3 | B=3. | ||||||||||||||||||||||||||||||||||||||||||
PickThreeRandomNumbers_Loop | 54008 | LD A,R | A=the contents of the Memory Refresh Register. | |||||||||||||||||||||||||||||||||||||||||
54010 | AND %00011111 | Ensure this number is between 1-32. | ||||||||||||||||||||||||||||||||||||||||||
54012 | INC A | |||||||||||||||||||||||||||||||||||||||||||
54013 | LD (DE),A | Write this number to the destination pointer. | ||||||||||||||||||||||||||||||||||||||||||
54014 | INC DE | Increment the destination pointer by one. | ||||||||||||||||||||||||||||||||||||||||||
54015 | DJNZ PickThreeRandomNumbers_Loop | Decrease counter by one and loop back to PickThreeRandomNumbers_Loop until counter is zero. | ||||||||||||||||||||||||||||||||||||||||||
54017 | LD HL,55839 | Write 55839 to: | ||||||||||||||||||||||||||||||||||||||||||
54020 | LD (55379),HL | |||||||||||||||||||||||||||||||||||||||||||
54023 | LD (55381),HL | |||||||||||||||||||||||||||||||||||||||||||
54026 | LD (55383),HL | |||||||||||||||||||||||||||||||||||||||||||
54029 | LD (55385),HL | |||||||||||||||||||||||||||||||||||||||||||
54032 | LD HL,58002 | HL=58002. | ||||||||||||||||||||||||||||||||||||||||||
54035 | LD BC,2000 | BC=2000. | ||||||||||||||||||||||||||||||||||||||||||
54038 | LD A,R | A=the contents of the Memory Refresh Register. | ||||||||||||||||||||||||||||||||||||||||||
54040 | ADD A,C | A+=C. | ||||||||||||||||||||||||||||||||||||||||||
54041 | LD C,A | C=A. | ||||||||||||||||||||||||||||||||||||||||||
Game_Initialisation_1 | 54042 | PUSH BC | Stash BC, HL and HL on the stack. | |||||||||||||||||||||||||||||||||||||||||
54043 | PUSH HL | |||||||||||||||||||||||||||||||||||||||||||
54044 | PUSH HL | |||||||||||||||||||||||||||||||||||||||||||
54045 | CALL GenerateRandomNumber | Call GenerateRandomNumber. | ||||||||||||||||||||||||||||||||||||||||||
54048 | ADD HL,BC | HL+=random number. | ||||||||||||||||||||||||||||||||||||||||||
54049 | EX DE,HL | Exchange the DE and HL registers. | ||||||||||||||||||||||||||||||||||||||||||
54050 | POP HL | Restore HL from the stack. | ||||||||||||||||||||||||||||||||||||||||||
54051 | CALL GenerateRandomNumber | Call GenerateRandomNumber. | ||||||||||||||||||||||||||||||||||||||||||
54054 | ADD HL,BC | HL+=random number. | ||||||||||||||||||||||||||||||||||||||||||
54055 | LD B,(HL) | B=*HL. | ||||||||||||||||||||||||||||||||||||||||||
54056 | LD A,(DE) | Write *DE to *HL. | ||||||||||||||||||||||||||||||||||||||||||
54057 | LD (HL),A | |||||||||||||||||||||||||||||||||||||||||||
54058 | LD A,B | Write B to *DE. | ||||||||||||||||||||||||||||||||||||||||||
54059 | LD (DE),A | |||||||||||||||||||||||||||||||||||||||||||
54060 | POP HL | Restore HL and BC from the stack. | ||||||||||||||||||||||||||||||||||||||||||
54061 | POP BC | |||||||||||||||||||||||||||||||||||||||||||
54062 | DEC BC | Decrease BC by one. | ||||||||||||||||||||||||||||||||||||||||||
54063 | LD A,B | Jump to Game_Initialisation_1 if BC is not zero. | ||||||||||||||||||||||||||||||||||||||||||
54064 | OR C | |||||||||||||||||||||||||||||||||||||||||||
54065 | JR NZ,Game_Initialisation_1 | |||||||||||||||||||||||||||||||||||||||||||
Populate the level, bonus and score numbering in the dashboard.
|
||||||||||||||||||||||||||||||||||||||||||||
54067 | CALL Print_Level | Call Print_Level. | ||||||||||||||||||||||||||||||||||||||||||
54070 | CALL Print_Bonus | Call Print_Bonus. | ||||||||||||||||||||||||||||||||||||||||||
54073 | CALL Print_Score | Call Print_Score. | ||||||||||||||||||||||||||||||||||||||||||
Paint the preview grid pattern.
|
||||||||||||||||||||||||||||||||||||||||||||
54076 | CALL Colourise_PreviewGrid | Call Colourise_PreviewGrid. | ||||||||||||||||||||||||||||||||||||||||||
Small pause...
|
||||||||||||||||||||||||||||||||||||||||||||
54079 | LD BC,40000 | BC=40000. | ||||||||||||||||||||||||||||||||||||||||||
SetUp_Pause_Loop | 54082 | DEC BC | Decrease BC by one. | |||||||||||||||||||||||||||||||||||||||||
54083 | LD A,B | Jump to SetUp_Pause_Loop until BC is zero. | ||||||||||||||||||||||||||||||||||||||||||
54084 | OR C | |||||||||||||||||||||||||||||||||||||||||||
54085 | JR NZ,SetUp_Pause_Loop | |||||||||||||||||||||||||||||||||||||||||||
Play the "static" animation in the preview area.
|
||||||||||||||||||||||||||||||||||||||||||||
54087 | CALL StaticAnimation | Call StaticAnimation. | ||||||||||||||||||||||||||||||||||||||||||
Display the current preview image.
|
||||||||||||||||||||||||||||||||||||||||||||
54090 | LD IX,(55442) | IX=*LevelGraphicsData. | ||||||||||||||||||||||||||||||||||||||||||
54094 | CALL GeneratePicture | Call GeneratePicture. | ||||||||||||||||||||||||||||||||||||||||||
54097 | RET | Return. |
Prev: 53901 | Up: Map | Next: 54098 |