![]() |
Routines |
| DE | Attribute file address at which to print message |
| HL | Address of buffer to transfer to screen |
| 27364 | PUSH DE | Save the attribute file address temporarily |
| 27365 | LD A,3 | There are 3 rows of character squares in the message box |
| 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 |
| 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 in the message box |
| 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 |