| Routines

7519: Copy a graphic buffer to the screen

Used by the routines at 6B0E (to print the Skool Daze logo and the score box), 7700 (to print a lines bubble), 7940 (to print the lesson box) and F955 (to print a safe combination letter in a bubble).
Input
DE | Attribute file address
HL | Graphic buffer address
7519 | PUSH DE | Save the attribute file address
751A | LD BC,$0008 | Copy the first row of attribute bytes from the graphic buffer to the screen
751D | LDIR
751F | LD C,$18 | Copy the second row of attribute bytes from the graphic buffer to the screen
7521 | EX DE,HL
7522 | ADD HL,BC
7523 | EX DE,HL
7524 | LD C,$08
7526 | LDIR
7528 | LD C,$18 | Copy the third row of attribute bytes from the graphic buffer to the screen
752A | EX DE,HL
752B | ADD HL,BC
752C | EX DE,HL
752D | LD C,$08
752F | LDIR
The attribute bytes have been copied to the screen. Now for the graphic bytes. This entry point is used by the routine at 75CC.
7531 | POP DE | Restore the attribute file address to DE
7532 | LD A,D | Set DE to the corresponding display file address
7533 | SUB $50
7535 | ADD A,A
7536 | ADD A,A
7537 | ADD A,A
7538 | LD D,A
7539 | LD C,$03 | There are three rows of UDGs to copy to the screen
753B | LD A,$08 | There are 8 pixel lines per row of UDGs
753D | PUSH BC | Save C (the row counter)
753E | PUSH DE | Copy a row of 8 UDGs from the graphic buffer to the screen
753F | LD C,$08
7541 | LDIR
7543 | POP DE
7544 | INC D
7545 | DEC A
7546 | JR NZ,$753E
7548 | LD A,E | Set DE to the display file address for the next row
7549 | ADD A,$20
754B | LD E,A
754C | JR C,$7552
754E | LD A,D
754F | SUB $08
7551 | LD D,A
7552 | POP BC | Restore the row counter to C
7553 | DEC C | Next row
7554 | JR NZ,$753B | Jump back until all three rows of UDGs have been copied
7556 | RET |