Routines |
Prev: 26030 | Up: Map | Next: 26368 |
Used by the routine at Door_Prep_01.
|
||||
It's only necessary to scroll 11 character blocks as the display moves for one door only.
|
||||
ScreenScroll_Right | 26112 | LD B,11 | B=11. | |
ScreenScroll_Right_Loop | 26114 | PUSH BC | Push the counter onto the stack. | |
26115 | CALL ScreenScroll_Main_Right | Call ScreenScroll_Main_Right. | ||
Calling this twice provides parallax scrolling!
|
||||
26118 | CALL ScreenScroll_Tellers_Right | Call ScreenScroll_Tellers_Right. | ||
26121 | CALL ScreenScroll_Tellers_Right | Call ScreenScroll_Tellers_Right again. | ||
26124 | POP BC | Restore the counter off the stack. | ||
26125 | DJNZ ScreenScroll_Right_Loop | Decrease counter by one and loop back to ScreenScroll_Right_Loop until counter is zero. | ||
26127 | RET | Return. | ||
Copies the playfield data into the buffer, and then out onto the screen.
|
||||
ScreenScroll_Main_Right | 26128 | LD IX,23296 | IX=BufferGeneral. | |
26132 | LD HL,16490 | HL=16490. | ||
26135 | LD B,13 | B=13. | ||
26137 | CALL ScreenScroll_Buffer_Right | Call ScreenScroll_Buffer_Right. | ||
26140 | LD HL,16510 | HL=16510. | ||
26143 | LD DE,16511 | DE=16511. | ||
26146 | LD IX,23296 | IX=BufferGeneral. | ||
26150 | LD B,13 | B=13. | ||
26152 | CALL ScreenScroll_Copy_Right | Call ScreenScroll_Copy_Right. | ||
26155 | LD HL,23018 | HL=23018. | ||
26158 | LD IX,23296 | IX=BufferGeneral. | ||
26162 | LD B,13 | B=13. | ||
26164 | CALL ScreenScroll_BufferAttrs_Right | Call ScreenScroll_BufferAttrs_Right. | ||
26167 | LD HL,23038 | HL=23038. | ||
26170 | LD DE,23039 | DE=23039. | ||
26173 | LD IX,23296 | IX=BufferGeneral. | ||
26177 | LD B,13 | B=13. | ||
26179 | CALL ScreenScroll_CopyAttrs_Right | Call ScreenScroll_CopyAttrs_Right. | ||
26182 | RET | Return. | ||
Scroll Tellers Desk right one character block.
|
||||
ScreenScroll_Tellers_Right | 26183 | LD IX,23296 | IX=BufferGeneral. | |
26187 | LD HL,20522 | HL=20522. | ||
26190 | LD B,4 | B=4. | ||
26192 | CALL ScreenScroll_Buffer_Right | Call ScreenScroll_Buffer_Right. | ||
26195 | LD HL,20542 | HL=20542. | ||
26198 | LD DE,20543 | DE=20543. | ||
26201 | LD IX,23296 | IX=BufferGeneral. | ||
26205 | LD B,4 | B=4. | ||
26207 | CALL ScreenScroll_Copy_Right | Call ScreenScroll_Copy_Right. | ||
26210 | RET | Return. | ||
26211 | RET | Return? Possibly unused. | ||
Copies screen data into the (general) buffer.
|
||||
ScreenScroll_Buffer_Right | 26212 | LD C,8 | C=8. | |
ScreenScroll_Buffer_Right_Loop | 26214 | LD A,(HL) | Store the contents of memory HL is referencing to IX. | |
26215 | LD (IX+0),A | |||
26218 | INC IX | Increment IX by one. | ||
26220 | INC H | Increment H by one. | ||
26221 | DEC C | Decrease C by one. | ||
26222 | JR NZ,ScreenScroll_Buffer_Right_Loop | |||
26224 | LD A,H | |||
26225 | SUB 8 | |||
26227 | LD H,A | |||
26228 | LD DE,32 | |||
26231 | ADD HL,DE | |||
26232 | LD A,H | |||
26233 | AND %00000111 | Keep only bits 0-2. | ||
26235 | CALL NZ,ScreenScroll_NextLine_Right | |||
26238 | DJNZ ScreenScroll_Buffer_Right | |||
26240 | RET | Return. | ||
Copies attribute data into the (general) buffer.
|
||||
ScreenScroll_BufferAttrs_Right | 26241 | LD A,(HL) | Store the contents of memory HL is referencing to IX. | |
26242 | LD (IX+0),A | |||
26245 | LD DE,65504 | DE=65504. | ||
26248 | ADD HL,DE | |||
26249 | INC IX | |||
26251 | DJNZ ScreenScroll_BufferAttrs_Right | Decrease counter by one and loop back to ScreenScroll_BufferAttrs_Right until counter is zero. | ||
26253 | RET | Return. | ||
Writes the attribute bytes out of the buffer and onto the screen.
|
||||
ScreenScroll_CopyAttrs_Right | 26254 | PUSH BC | ||
26255 | LD BC,31 | |||
26258 | LD A,(IX+0) | |||
26261 | LDDR | |||
26263 | LD (DE),A | |||
26264 | INC IX | |||
26266 | DEC HL | |||
26267 | DEC DE | |||
26268 | POP BC | |||
26269 | DJNZ ScreenScroll_CopyAttrs_Right | |||
26271 | RET | Return. | ||
Copies the data held in the buffer back to the screen.
|
||||
ScreenScroll_Copy_Right | 26272 | PUSH BC | ||
26273 | PUSH HL | |||
26274 | CALL ScreenScroll_CopyTeller_Right | |||
26277 | POP HL | |||
26278 | LD BC,32 | |||
26281 | ADD HL,BC | |||
26282 | LD A,H | |||
26283 | AND %00000111 | Keep only bits 0-2. | ||
26285 | JR Z,ScreenScroll_Copy_Right_Skip | |||
26287 | LD A,H | |||
26288 | ADD A,7 | |||
26290 | LD H,A | |||
Skips over moving down one line from above.
|
||||
ScreenScroll_Copy_Right_Skip | 26291 | PUSH HL | ||
26292 | POP DE | |||
26293 | INC DE | |||
26294 | POP BC | |||
26295 | DJNZ ScreenScroll_Copy_Right | |||
26297 | RET | Return. | ||
Scrolls the very top part of the tellers desks.
|
||||
ScreenScroll_CopyTeller_Right | 26298 | PUSH HL | ||
26299 | PUSH HL | |||
26300 | LD BC,31 | |||
26303 | LD A,(IX+0) | |||
26306 | INC IX | |||
26308 | LDDR | |||
26310 | LD (DE),A | |||
26311 | POP DE | |||
26312 | POP HL | |||
26313 | INC H | |||
26314 | INC D | |||
26315 | INC DE | |||
26316 | LD A,H | |||
26317 | AND %00000111 | Keep only bits 0-2. | ||
26319 | RET Z | |||
26320 | JR ScreenScroll_CopyTeller_Right | |||
Adds 7 to H (as part of HL).
|
||||
ScreenScroll_NextLine_Right | 26322 | LD A,H | Adds 7 to H. | |
26323 | ADD A,7 | |||
26325 | LD H,A | |||
26326 | RET | Return. |
Prev: 26030 | Up: Map | Next: 26368 |