Prev: 26030 Up: Map Next: 26368
26112: Scroll Screen Right
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