Routines |
Prev: AC6F | Up: Map | Next: AD29 |
This draws a single zoombox border tile.
Used by the routine at zoombox_draw_border.
|
||||||||||||
zoombox_draw_tile | ACFC | PUSH BC | Preserve | |||||||||
ACFD | PUSH AF | Preserve | ||||||||||
ACFE | PUSH HL | Preserve | ||||||||||
ACFF | EX DE,HL | Move destination address into DE | ||||||||||
AD00 | LD L,A | Widen the tile index from A into HL | ||||||||||
AD01 | LD H,$00 | |||||||||||
AD03 | ADD HL,HL | Then multiply the tile index by eight | ||||||||||
AD04 | ADD HL,HL | |||||||||||
AD05 | ADD HL,HL | |||||||||||
AD06 | LD BC,$AF5E | Point BC at zoombox_tiles | ||||||||||
AD09 | ADD HL,BC | Combine to form a pointer to the required tile in HL | ||||||||||
AD0A | LD B,$08 | 8 iterations / 8 rows | ||||||||||
Start loop
|
||||||||||||
zoombox_draw_tile_0 | AD0C | LD A,(HL) | Copy a byte | |||||||||
AD0D | LD (DE),A | |||||||||||
AD0E | INC D | Next destination byte is 8 * 32 (=256) bytes ahead | ||||||||||
AD0F | INC HL | Next source byte is adjacent | ||||||||||
AD10 | DJNZ zoombox_draw_tile_0 | ...loop | ||||||||||
AD12 | LD A,D | Shunt D into A and undo the earlier INC D | ||||||||||
AD13 | DEC A | |||||||||||
AD14 | LD H,$58 | Point HL at the attributes bank | ||||||||||
AD16 | LD L,E | |||||||||||
AD17 | CP $48 | Was the tile on the middle or later third of the screen? | ||||||||||
AD19 | JR C,zoombox_draw_tile_1 | If not, jump to writing the attribute | ||||||||||
AD1B | INC H | If so, increment the attribute bank pointer | ||||||||||
AD1C | CP $50 | Was the tile on to the final third of the screen? | ||||||||||
AD1E | JR C,zoombox_draw_tile_1 | If not, jump to writing the attribute | ||||||||||
AD20 | INC H | If so, increment the attribute bank pointer | ||||||||||
zoombox_draw_tile_1 | AD21 | LD A,($AB6A) | Read our current game_window_attribute | |||||||||
AD24 | LD (HL),A | Write it to the attribute byte | ||||||||||
AD25 | POP HL | Restore | ||||||||||
AD26 | POP AF | Restore | ||||||||||
AD27 | POP BC | Restore | ||||||||||
AD28 | RET | Return |
Prev: AC6F | Up: Map | Next: AD29 |