![]() |
Routines |
| Prev: 34317 | Up: Map | Next: 34426 |
|
Used by the routine at Print_Character.
Scrolls the attribute line up by five rows and restores the pointers.
|
||||
| Print_ScrollTheAttributeLine | 34378 | PUSH HL | Point at 20672. | |
| 34379 | PUSH DE | |||
| 34380 | PUSH BC | |||
| 34381 | PUSH AF | |||
| 34382 | LD HL,20672 | |||
| 34385 | LD DE,20704 | Point DE at the attribute line. | ||
| 34388 | LD A,5 | Load 5 before the day and night test. | ||
| Print_ScrollTheAttributeLine_ScrollOneRow | 34390 | PUSH HL | Count 8 passes. | |
| 34391 | PUSH DE | |||
| 34392 | LD B,8 | |||
| Print_ScrollTheAttributeLine_CopyThePreparedBytes | 34394 | PUSH HL | Copy the prepared bytes. | |
| 34395 | PUSH DE | |||
| 34396 | PUSH BC | |||
| 34397 | LD BC,32 | |||
| 34400 | LDIR | |||
| 34402 | POP BC | Restore BC, DE and HL from the stack, and step HL down one pixel row. | ||
| 34403 | POP DE | |||
| 34404 | POP HL | |||
| 34405 | INC H | |||
| 34406 | INC D | Step DE down one pixel row. | ||
| 34407 | DJNZ Print_ScrollTheAttributeLine_CopyThePreparedBytes | Loop back to Print_ScrollTheAttributeLine_CopyThePreparedBytes until all 8 pixel rows are done. | ||
| 34409 | POP DE | Restore the screen pointers and step HL back one row. | ||
| 34410 | POP HL | |||
| 34411 | LD BC,65504 | |||
| 34414 | ADD HL,BC | |||
| 34415 | EX DE,HL | Swap the two screen pointers. | ||
| 34416 | ADD HL,BC | Step the other pointer up one screen row. | ||
| 34417 | EX DE,HL | Swap the two screen pointers. | ||
| 34418 | DEC A | Jump back to Print_ScrollTheAttributeLine_ScrollOneRow until the row count in A reaches zero. | ||
| 34419 | JR NZ,Print_ScrollTheAttributeLine_ScrollOneRow | |||
| 34421 | POP AF | Restore AF, BC, DE and HL from the stack. | ||
| 34422 | POP BC | |||
| 34423 | POP DE | |||
| 34424 | POP HL | |||
| 34425 | RET | Return. | ||
| Prev: 34317 | Up: Map | Next: 34426 |