![]() |
Routines |
| Prev: 26190 | Up: Map | Next: 26361 |
|
Scrolls the play area horizontally by shifting pixel data right using
RRD instructions.
|
||||
| ScrollPlayarea_Right | 26192 | LD HL,(30743) | HL=*Current_ScreenPosition. | |
| 26195 | LD A,(30745) | Jump to ScrollPlayarea_Right_1 if *ScrollPhase_Counter is not zero. | ||
| 26198 | AND A | |||
| 26199 | JR NZ,ScrollPlayarea_Right_1 | |||
| 26201 | LD A,L | Jump to ScrollPlayarea_Right_0 if L is not zero. | ||
| 26202 | AND A | |||
| 26203 | JR NZ,ScrollPlayarea_Right_0 | |||
| 26205 | LD A,H | H-=5. | ||
| 26206 | SUB 5 | |||
| 26208 | LD H,A | |||
| ScrollPlayarea_Right_0 | 26209 | DEC L | Decrease L by one. | |
| 26210 | LD (30743),HL | Write HL to *Current_ScreenPosition. | ||
| 26213 | LD A,8 | A=8. | ||
| ScrollPlayarea_Right_1 | 26215 | DEC A | Decrease A by one. | |
| 26216 | LD (30745),A | Write A to *ScrollPhase_Counter. | ||
| 26219 | LD D,H | Copy HL to DE. | ||
| 26220 | LD E,L | |||
| 26221 | LD B,255 | B=255. | ||
| 26223 | CALL PrepareScrollData | Call PrepareScrollData. | ||
|
Start of screen buffer.
|
||||
| 26226 | LD HL,16384 | HL=16384 (screen buffer). | ||
| 26229 | LD D,H | Copy the screen position pointer into DE. | ||
| 26230 | LD E,L | |||
| 26231 | EXX | Switch to the shadow registers. | ||
| ScrollPlayarea_Right_2 | 26232 | LD A,(DE) | A=*DE. | |
| 26233 | INC E | Increment E by one. | ||
| 26234 | LD L,A | L=A. | ||
| 26235 | LD H,31 | H=31. | ||
| 26237 | ADD HL,HL | Multiply HL by 4. | ||
| 26238 | ADD HL,HL | |||
| 26239 | EXX | Switch to the shadow registers. | ||
|
Scroll one character row (32 characters) left by 1 pixel using
RRD.
|
||||
| 26240 | LD B,4 | Set a counter in B for 4 rows. | ||
| ScrollCharacterRow_Right | 26242 | EXX | Switch to the shadow registers. | |
| 26243 | LD A,(HL) | A=*HL. | ||
| 26244 | INC L | Increment L by one. | ||
| 26245 | EXX | Switch to the shadow registers. | ||
| 26246 | RRD | RRD. | ||
| 26248 | INC L | Increment L by one. | ||
| 26249 | RRD | RRD. | ||
| 26251 | INC L | Increment L by one. | ||
| 26252 | RRD | RRD. | ||
| 26254 | INC L | Increment L by one. | ||
| 26255 | RRD | RRD. | ||
| 26257 | INC L | Increment L by one. | ||
| 26258 | RRD | RRD. | ||
| 26260 | INC L | Increment L by one. | ||
| 26261 | RRD | RRD. | ||
| 26263 | INC L | Increment L by one. | ||
| 26264 | RRD | RRD. | ||
| 26266 | INC L | Increment L by one. | ||
| 26267 | RRD | RRD. | ||
| 26269 | INC L | Increment L by one. | ||
| 26270 | RRD | RRD. | ||
| 26272 | INC L | Increment L by one. | ||
| 26273 | RRD | RRD. | ||
| 26275 | INC L | Increment L by one. | ||
| 26276 | RRD | RRD. | ||
| 26278 | INC L | Increment L by one. | ||
| 26279 | RRD | RRD. | ||
| 26281 | INC L | Increment L by one. | ||
| 26282 | RRD | RRD. | ||
| 26284 | INC L | Increment L by one. | ||
| 26285 | RRD | RRD. | ||
| 26287 | INC L | Increment L by one. | ||
| 26288 | RRD | RRD. | ||
| 26290 | INC L | Increment L by one. | ||
| 26291 | RRD | RRD. | ||
| 26293 | INC L | Increment L by one. | ||
| 26294 | RRD | RRD. | ||
| 26296 | INC L | Increment L by one. | ||
| 26297 | RRD | RRD. | ||
| 26299 | INC L | Increment L by one. | ||
| 26300 | RRD | RRD. | ||
| 26302 | INC L | Increment L by one. | ||
| 26303 | RRD | RRD. | ||
| 26305 | INC L | Increment L by one. | ||
| 26306 | RRD | RRD. | ||
| 26308 | INC L | Increment L by one. | ||
| 26309 | RRD | RRD. | ||
| 26311 | INC L | Increment L by one. | ||
| 26312 | RRD | RRD. | ||
| 26314 | INC L | Increment L by one. | ||
| 26315 | RRD | RRD. | ||
| 26317 | INC L | Increment L by one. | ||
| 26318 | RRD | RRD. | ||
| 26320 | INC L | Increment L by one. | ||
| 26321 | RRD | RRD. | ||
| 26323 | INC L | Increment L by one. | ||
| 26324 | RRD | RRD. | ||
| 26326 | INC L | Increment L by one. | ||
| 26327 | RRD | RRD. | ||
| 26329 | INC L | Increment L by one. | ||
| 26330 | RRD | RRD. | ||
| 26332 | INC L | Increment L by one. | ||
| 26333 | RRD | RRD. | ||
| 26335 | INC L | Increment L by one. | ||
| 26336 | RRD | RRD. | ||
| 26338 | INC L | Increment L by one. | ||
| 26339 | RRD | RRD. | ||
| 26341 | LD L,E | L=E. | ||
| 26342 | INC H | Increment H by two. | ||
| 26343 | INC H | |||
| 26344 | DJNZ ScrollCharacterRow_Right | Decrease counter by one and loop back to ScrollCharacterRow_Right until counter is zero. | ||
| 26346 | LD A,32 | E+=32. | ||
| 26348 | ADD A,E | |||
| 26349 | LD E,A | |||
| 26350 | LD L,A | L=A. | ||
| 26351 | JR NC,ContinueScreenScroll_Right | Jump to ContinueScreenScroll_Right if {} is higher. | ||
| 26353 | LD D,72 | D=72. | ||
| ContinueScreenScroll_Right | 26355 | LD H,D | Update the screen pointer. | |
| 26356 | EXX | Switch to the shadow registers. | ||
| 26357 | DJNZ ScrollPlayarea_Right_2 | Decrease counter by one and loop back to ScrollPlayarea_Right_2 until counter is zero. | ||
| 26359 | EXX | Switch back to the normal registers. | ||
| 26360 | RET | Return. | ||
| Prev: 26190 | Up: Map | Next: 26361 |