![]() |
Routines |
| Prev: DC4C | Up: Map | Next: DC77 |
|
Used by the routine at DC41.
|
||||||||
|
After drawing (DC4C) or erasing (DC41) 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
|
||||||||
| DC53 | DEC HL | Move back left one character square | ||||||
| DC54 | EX DE,HL | |||||||
| DC55 | POP HL | HL now back to the graphic address pointer | ||||||
|
This entry point is used by the routine at DBF5.
|
||||||||
| DC56 | LD A,D | Get high byte of screen address | ||||||
| DC57 | INC A | ...and increment (move down 1 pixel row) | ||||||
| DC58 | AND $07 | Are we crossing into a new character row (8th pixel row)? | ||||||
| DC5A | JR Z,$DC5F | |||||||
| DC5C | INC D | If not, increment screen display address pointer (move down 1 pixel row) | ||||||
| DC5D | JR $DC6D | |||||||
| DC5F | LD A,D | Otherwise, adjust high byte to the correct screen address | ||||||
| DC60 | AND $F8 | Reset the low 3 bits (pixel row number) to zero | ||||||
| DC62 | LD D,A | |||||||
| DC63 | LD A,E | Get the low byte of the screen address | ||||||
| DC64 | ADD A,$20 | Increment column by 32 to move down to next screen row | ||||||
| DC66 | LD E,A | |||||||
| DC67 | JR NC,$DC6D | Crossing a 1/3 screen boundary? ...If not, skip next 3 instructions | ||||||
| DC69 | LD A,D | ...If so, adjust high byte of screen address accordingly | ||||||
| DC6A | ADD A,$08 | |||||||
| DC6C | 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:
|
||||||||
| DC6D | LD A,D | |||||||
| DC6E | CP $50 | Are we into the last 3rd of the screen (encroaching onto ) | ||||||
| DC70 | DEC C | (Decrement number of tile bytes to print at this point) | ||||||
| DC71 | JR NC,$DC7A | Jump to DC7A if into last 3rd of screen (out of bounds) | ||||||
| DC73 | JR NZ,$DC23 | Bytes left to draw in the tile - continue to draw next tile byte | ||||||
| DC75 | JR $DC7E | |||||||
| Prev: DC4C | Up: Map | Next: DC77 |