Routines |
Prev: B7BA | Up: Map | Next: B82B |
|
||||||||||||||
This routine is done when only part of the screen needs updating eg: wall built, safe cracked.
|
||||||||||||||
B7F9 | PUSH AF | Remember main registers. | ||||||||||||
B7FA | PUSH HL | |||||||||||||
B7FB | PUSH BC | |||||||||||||
B7FC | PUSH DE | |||||||||||||
B7FD | EX DE,HL | Swap DE and HL. | ||||||||||||
B7FE | PUSH HL | Remember the co-ordinates. | ||||||||||||
B7FF | LD D,$FD | Point D to the attribute buffer. | ||||||||||||
B801 | LD E,L | Put the X co-ordinate minus 3 in E. | ||||||||||||
B802 | LD L,H | Put the Y co-ordinate in HL. | ||||||||||||
B803 | LD H,$00 | |||||||||||||
B805 | ADD HL,HL | Multiple by 16 to get a suitable offset. | ||||||||||||
B806 | ADD HL,HL | |||||||||||||
B807 | ADD HL,HL | |||||||||||||
B808 | ADD HL,HL | |||||||||||||
B809 | ADD HL,HL | |||||||||||||
B80A | ADD HL,DE | Add the X co-ordinate. | ||||||||||||
B80B | LD (HL),C | Set the attribute here. | ||||||||||||
B80C | POP HL | Restore HL with the graphic. | ||||||||||||
B80D | LD DE,$5300 | Add on the correct offset for the sprite buffer. | ||||||||||||
B810 | ADD HL,DE | |||||||||||||
B811 | EX DE,HL | Swap DE and HL. | ||||||||||||
B812 | LD L,A | Put the Y co-ordinate in HL. | ||||||||||||
B813 | LD H,$00 | |||||||||||||
B815 | ADD HL,HL | Multiply by 8 to get a suitable offset. | ||||||||||||
B816 | ADD HL,HL | |||||||||||||
B817 | ADD HL,HL | |||||||||||||
B818 | LD BC,($B7E9) | Put the offset to shift by in BC. | ||||||||||||
B81C | ADD HL,BC | Adjust this. | ||||||||||||
B81D | LDI | Copy from HL to DE | ||||||||||||
B81F | DEC E | Move forward a column. | ||||||||||||
B820 | LD A,E | Move down a row. | ||||||||||||
B821 | ADD A,$20 | |||||||||||||
B823 | LD E,A | |||||||||||||
B824 | JR NC,$B81D | Loop until the whole screen is done. | ||||||||||||
B826 | POP DE | Restore main registers and return. | ||||||||||||
B827 | POP BC | |||||||||||||
B828 | POP HL | |||||||||||||
B829 | POP AF | |||||||||||||
B82A | RET |
Prev: B7BA | Up: Map | Next: B82B |