![]() |
Routines |
| Prev: 55052 | Up: Map | Next: 55238 |
|
Used by the routine at 54098.
|
||||
| Handler_Bonus | 55139 | LD A,(59229) | A=*Tile_Horizontal_Position. | |
| 55142 | DEC A | Decrease A by one. | ||
| 55143 | LD B,A | B=A. | ||
| 55144 | LD A,(59230) | A=*Tile_Vertical_Position. | ||
| 55147 | DEC A | Decrease A by one. | ||
| 55148 | LD C,A | C=A. | ||
| 55149 | CALL Calculate_ScreenBlockAddress | Call Calculate_ScreenBlockAddress. | ||
| 55152 | CALL Calculate_AttributeAddress | Call Calculate_AttributeAddress. | ||
| 55155 | PUSH DE | Stash DE on the stack. | ||
| 55156 | LD IX,(55438) | IX=*55438. | ||
| 55160 | LD DE,46949 | IX+=GraphicsData_Items_02. | ||
| 55163 | ADD IX,DE | |||
| 55165 | LD D,4 | Set a counter in D for 4 rows. | ||
| Handler_Bonus_0 | 55167 | PUSH BC | Stash the co-ordinates on the stack. | |
| 55168 | LD B,8 | Set a counter in B for 8 columns. | ||
| Handler_Bonus_1 | 55170 | PUSH BC | Stash the column counter on the stack. | |
| 55171 | LD B,4 | Set a counter in B for 4 bytes per character. | ||
| 55173 | PUSH HL | Stash the screen position on the stack. | ||
| Handler_Bonus_2 | 55174 | LD A,(IX+0) | Write a byte from the object data to the screen buffer position. | |
| 55177 | LD (HL),A | |||
| 55178 | INC IX | Increment the object data pointer by one. | ||
| 55180 | INC HL | Increment the screen position by one. | ||
| 55181 | DJNZ Handler_Bonus_2 | Decrease the object byte counter by one and loop back to Handler_Bonus_2 until counter is zero. | ||
| 55183 | POP HL | Restore the original screen position for this row from the stack. | ||
| 55184 | INC H | Increment H by one. | ||
| 55185 | LD BC,16 | IX+=0016. | ||
| 55188 | ADD IX,BC | |||
| 55190 | POP BC | Restore the column counter from the stack. | ||
| 55191 | DJNZ Handler_Bonus_1 | Decrease the column counter by one and loop back to Handler_Bonus_1 until the column counter is zero. | ||
| 55193 | POP BC | Restore the co-ordinates from the stack. | ||
| 55194 | INC B | Increment B by one. | ||
| 55195 | CALL Calculate_ScreenBlockAddress | Call Calculate_ScreenBlockAddress. | ||
| 55198 | DEC D | Decrease D by one. | ||
| 55199 | JR NZ,Handler_Bonus_0 | Jump to Handler_Bonus_0 if D is not zero. | ||
| 55201 | LD IX,(55440) | IX=*55440. | ||
| 55205 | LD DE,46949 | IX+=GraphicsData_Items_02. | ||
| 55208 | ADD IX,DE | |||
| 55210 | POP HL | Restore HL from the stack. | ||
| 55211 | LD B,4 | B=4. | ||
| 55213 | LD DE,28 | DE=0028. | ||
| Handler_Bonus_3 | 55216 | PUSH BC | Stash BC on the stack. | |
| 55217 | LD B,4 | B=4. | ||
| Handler_Bonus_4 | 55219 | LD A,(IX+0) | Write *IX+0 to *HL. | |
| 55222 | LD (HL),A | |||
| 55223 | INC IX | Increment IX by one. | ||
| 55225 | INC HL | Increment HL by one. | ||
| 55226 | DJNZ Handler_Bonus_4 | Decrease counter by one and loop back to Handler_Bonus_4 until counter is zero. | ||
| 55228 | ADD HL,DE | HL+=DE. | ||
| 55229 | LD BC,16 | IX+=0016. | ||
| 55232 | ADD IX,BC | |||
| 55234 | POP BC | Restore BC from the stack. | ||
| 55235 | DJNZ Handler_Bonus_3 | Decrease counter by one and loop back to Handler_Bonus_3 until counter is zero. | ||
| 55237 | RET | Return. | ||
| Prev: 55052 | Up: Map | Next: 55238 |