![]() |
Routines |
| Prev: D5CA | Up: Map | Next: D5FA |
|
Used by the routines at Draw_Character, Draw_Playfield, TwoTone_Attributes_Buffer, Life_Images, CC9B, Draw_Number, Draw_CharacterInDoorway and Draw_DoorFrame1.
|
||||||||||||||
|
This routine copies bytes from DE TO HL and uses the BC register to track the number of bytes and the number of lines.
|
||||||||||||||
| Copy_Routine | D5E6 | PUSH BC | Stashes BC (the counter) and HL (screen buffer address) on the stack. | |||||||||||
| D5E7 | PUSH HL | |||||||||||||
| D5E8 | LD B,$00 | Copies bytes from DE TO HL x C number of times. | ||||||||||||
| D5EA | EX DE,HL | |||||||||||||
| D5EB | LDIR | |||||||||||||
| D5ED | EX DE,HL | Restores HL with the original screen buffer location. | ||||||||||||
| D5EE | POP HL | |||||||||||||
| D5EF | INC H | Move to the next line down. | ||||||||||||
| D5F0 | LD A,H | |||||||||||||
| D5F1 | AND %00000111 | Keep only bits 0-2. | ||||||||||||
| D5F3 | CALL Z,Calc_Attribute | If this crosses a screen boundary then call Calc_Attribute. | ||||||||||||
| D5F6 | POP BC | Grabs B and decreases it by one. Loop back round to Copy_Routine if B is not zero. | ||||||||||||
| D5F7 | DJNZ Copy_Routine | |||||||||||||
| D5F9 | RET | Return. | ||||||||||||
| Prev: D5CA | Up: Map | Next: D5FA |