![]() |
Routines |
| Prev: 7C33 | Up: Map | Next: 7C82 |
|
This draws the required item at the specified screen address.
Used by the routine at draw_all_items.
|
||||||||||
| draw_item | 7C46 | PUSH HL | Save screen address of item | |||||||
| 7C47 | EX AF,AF' | Bank item index | ||||||||
|
Wipe the item's screen area.
|
||||||||||
| 7C48 | LD B,$02 | 2 bytes / pixels wide | ||||||||
| 7C4A | LD C,$10 | 16 pixels high | ||||||||
| 7C4C | CALL screen_wipe | Wipe the screen area pointed to by HL | ||||||||
|
Bail if no item.
|
||||||||||
| 7C4F | POP HL | Retrieve screen address | ||||||||
| 7C50 | EX AF,AF' | Retrieve item index | ||||||||
| 7C51 | CP $FF | Is the item index item_NONE? ($FF) | ||||||||
| 7C53 | RET Z | Return if so | ||||||||
|
Set screen attributes.
|
||||||||||
| 7C54 | PUSH HL | Save screen address again | ||||||||
| 7C55 | LD H,$5A | Set H to $5A which points HL at the attribute for the equivalent screen address | ||||||||
| 7C57 | PUSH AF | Save item index | ||||||||
| 7C58 | LD BC,$DD69 | Get the attribute byte for this item | ||||||||
| 7C5B | ADD A,C | |||||||||
| 7C5C | LD C,A | |||||||||
| 7C5D | JR NC,draw_item_0 | |||||||||
| 7C5F | INC B | |||||||||
| draw_item_0 | 7C60 | LD A,(BC) | ||||||||
| 7C61 | LD (HL),A | Write two attribute bytes | ||||||||
| 7C62 | INC L | |||||||||
| 7C63 | LD (HL),A | |||||||||
|
Move to next attribute row.
|
||||||||||
| 7C64 | DEC L | Move HL back for the next row | ||||||||
| 7C65 | SET 5,L | Move HL to the next attribute row | ||||||||
| 7C67 | LD (HL),A | Write two attribute bytes | ||||||||
| 7C68 | INC L | |||||||||
| 7C69 | LD (HL),A | |||||||||
| 7C6A | POP AF | Retrieve item index | ||||||||
|
Plot bitmap.
|
||||||||||
| 7C6B | ADD A,A | Point HL at the definition for this item | ||||||||
| 7C6C | LD C,A | |||||||||
| 7C6D | ADD A,A | |||||||||
| 7C6E | ADD A,C | |||||||||
| 7C6F | LD C,A | |||||||||
| 7C70 | LD B,$00 | |||||||||
| 7C72 | LD HL,$DD7D | |||||||||
| 7C75 | ADD HL,BC | |||||||||
| 7C76 | LD B,(HL) | Fetch width | ||||||||
| 7C77 | INC HL | |||||||||
| 7C78 | LD C,(HL) | Fetch height | ||||||||
| 7C79 | INC HL | |||||||||
| 7C7A | LD E,(HL) | Fetch sprite data pointer | ||||||||
| 7C7B | INC HL | |||||||||
| 7C7C | LD D,(HL) | |||||||||
| 7C7D | POP HL | Retrieve screen address saved at 7C54 | ||||||||
| 7C7E | CALL plot_bitmap | Plot the bitmap without masking | ||||||||
| 7C81 | RET | Return | ||||||||
| Prev: 7C33 | Up: Map | Next: 7C82 |