![]() |
Routines |
| Prev: 56396 | Up: Map | Next: 56439 |
|
Used by the routine at 56385.
|
||||||||
|
After drawing (56396) or erasing (56385) the screen graphic byte, this routine calculates the next screen address (1 pixel line lower) before continuing to draw/erase the graphic bytes of the tile
|
||||||||
| 56403 | DEC HL | Move back left one character square | ||||||
| 56404 | EX DE,HL | |||||||
| 56405 | POP HL | HL now back to the graphic address pointer | ||||||
|
This entry point is used by the routine at 56309.
|
||||||||
| 56406 | LD A,D | Get high byte of screen address | ||||||
| 56407 | INC A | ...and increment (move down 1 pixel row) | ||||||
| 56408 | AND 7 | Are we crossing into a new character row (8th pixel row)? | ||||||
| 56410 | JR Z,56415 | |||||||
| 56412 | INC D | If not, increment screen display address pointer (move down 1 pixel row) | ||||||
| 56413 | JR 56429 | |||||||
| 56415 | LD A,D | Otherwise, adjust high byte to the correct screen address | ||||||
| 56416 | AND 248 | Reset the low 3 bits (pixel row number) to zero | ||||||
| 56418 | LD D,A | |||||||
| 56419 | LD A,E | Get the low byte of the screen address | ||||||
| 56420 | ADD A,32 | Increment column by 32 to move down to next screen row | ||||||
| 56422 | LD E,A | |||||||
| 56423 | JR NC,56429 | Crossing a 1/3 screen boundary? ...If not, skip next 3 instructions | ||||||
| 56425 | LD A,D | ...If so, adjust high byte of screen address accordingly | ||||||
| 56426 | ADD A,8 | |||||||
| 56428 | LD D,A | Store correct screen address high byte back in D register | ||||||
|
Check if encroaching out of bounds into bottom third of screen, where the scroll status panel is:
|
||||||||
| 56429 | LD A,D | |||||||
| 56430 | CP 80 | Are we into the last 3rd of the screen (encroaching onto ) | ||||||
| 56432 | DEC C | (Decrement number of tile bytes to print at this point) | ||||||
| 56433 | JR NC,56442 | Jump to 56442 if into last 3rd of screen (out of bounds) | ||||||
| 56435 | JR NZ,56355 | Bytes left to draw in the tile - continue to draw next tile byte | ||||||
| 56437 | JR 56446 | |||||||
| Prev: 56396 | Up: Map | Next: 56439 |