Prev: 27363 Up: Map Next: 27418
27364: Copy a graphic buffer to the screen
Used by the routines at 27462 (to print a message box above a character's head, or to print the lesson), 29716 (to restore the area of the screen overwritten by a message box) and 62910 (to print the Back to Skool logo and the Score/Lines/Hi-Sc box).
Input
DE Attribute file address
HL Graphic buffer address
27364 PUSH DE Save the attribute file address temporarily
27365 LD A,3 There are 3 rows of character squares
27367 LD BC,8 There are 8 character squares in each row
27370 LDIR Copy one row of attribute bytes to the screen
27372 LD C,24 Point DE at the start of the next row down
27374 EX DE,HL
27375 ADD HL,BC
27376 EX DE,HL
27377 DEC A
27378 JR NZ,27367 Jump back to copy the remaining attributes to the screen
The attribute bytes have been copied to the screen. Now for the graphic bytes.
27380 POP DE Restore the attribute file address to DE
27381 LD A,D Set DE to the appropriate display file address
27382 SUB 80
27384 ADD A,A
27385 ADD A,A
27386 ADD A,A
27387 LD D,A
27388 LD C,3 There are 3 rows of character squares
27390 LD A,8 There are 8 rows of pixels per character square
27392 PUSH BC Save the character square row counter
27393 PUSH DE
27394 LD C,8 There are 8 bytes in each row of pixels
27396 LDIR Copy one row of pixels to the screen
27398 POP DE
27399 INC D Point to the display file address of the next pixel row
27400 DEC A
27401 JR NZ,27393 Jump back to fill in the remaining pixel rows for this row of character squares
27403 LD A,E Set DE to the start address of the first pixel row in the next row of character squares
27404 ADD A,32
27406 LD E,A
27407 JR C,27413
27409 LD A,D
27410 SUB 8
27412 LD D,A
27413 POP BC Restore the character square row counter to C
27414 DEC C
27415 JR NZ,27390 Jump back to fill in the remaining rows of character squares
27417 RET
Prev: 27363 Up: Map Next: 27418