![]() |
Startup routines |
| Prev: 56064 | Up: Map |
|
Used by the routine at 61630.
|
||||||||||||||||
| 56576 | NOP | |||||||||||||||
| 56577 | NOP | |||||||||||||||
| 56578 | NOP | |||||||||||||||
| 56579 | LD H,80 | Clear the bottom 4 lines (32 pixel rows) of the display file | ||||||||||||||
| 56581 | LD L,128 | |||||||||||||||
| 56583 | XOR A | |||||||||||||||
| 56584 | LD (HL),A | |||||||||||||||
| 56585 | INC L | |||||||||||||||
| 56586 | JR NZ,56584 | |||||||||||||||
| 56588 | INC H | |||||||||||||||
| 56589 | BIT 3,H | |||||||||||||||
| 56591 | JR Z,56581 | |||||||||||||||
|
Now the first 24 character squares on each of the bottom 3 lines (24 pixel rows) of the screen are filled with graphic data. The 576 bytes of graphic data are copied to the screen from the following 5 segments:
|
||||||||||||||||
| 56593 | LD HL,55040 | Point HL at the first byte to be copied to the screen | ||||||||||||||
| 56596 | LD DE,20640 | Point DE at the first display file location to be written | ||||||||||||||
| 56599 | LD C,24 | There are 24 bytes per row of pixels | ||||||||||||||
| 56601 | PUSH DE | Save the display file pointer | ||||||||||||||
| 56602 | LD B,24 | There are 24 rows of pixels to be drawn | ||||||||||||||
| 56604 | LD A,(HL) | Pick up a byte to copy | ||||||||||||||
| 56605 | LD (DE),A | Copy the byte to the screen | ||||||||||||||
| 56606 | INC L | Move HL along to the next byte to copy | ||||||||||||||
| 56607 | LD A,L | Have we reached the end of a segment? | ||||||||||||||
| 56608 | SUB 126 | |||||||||||||||
| 56610 | JR NZ,56614 | Jump if not | ||||||||||||||
| 56612 | LD L,A | Point HL at the first byte in the next segment | ||||||||||||||
| 56613 | INC H | |||||||||||||||
| 56614 | INC D | Point DE at the next pixel row down on the screen | ||||||||||||||
| 56615 | BIT 3,D | Have we just copied a byte to the 8th or 16th row of pixels? | ||||||||||||||
| 56617 | JR Z,56625 | Jump if not | ||||||||||||||
| 56619 | LD D,80 | Otherwise point DE at the 9th or 17th row of pixels | ||||||||||||||
| 56621 | LD A,E | |||||||||||||||
| 56622 | ADD A,32 | |||||||||||||||
| 56624 | LD E,A | |||||||||||||||
| 56625 | DJNZ 56604 | Jump back until a column of 24 bytes has been copied | ||||||||||||||
| 56627 | POP DE | Restore the display file pointer | ||||||||||||||
| 56628 | INC E | Point DE at the top byte in the next column along | ||||||||||||||
| 56629 | DEC C | Have we finished all 24 columns? | ||||||||||||||
| 56630 | JR NZ,56601 | Jump back if not | ||||||||||||||
|
Now that the bottom 4 lines of the display file are ready, it's time to prepare the bottom 4 lines of the attribute file.
|
||||||||||||||||
| 56632 | LD HL,23168 | Point HL at the first attribute byte of the line where on-screen messages will be displayed | ||||||||||||||
| 56635 | LD B,32 | There are 32 attribute bytes in this line | ||||||||||||||
| 56637 | LD (HL),15 | Set each attribute byte to 15 (INK 7: PAPER 1) | ||||||||||||||
| 56639 | INC L | |||||||||||||||
| 56640 | DJNZ 56637 | |||||||||||||||
| 56642 | LD C,3 | There are 3 lines at the bottom of the screen that still need their attribute bytes set | ||||||||||||||
| 56644 | LD B,8 | The first 8 bytes in each line correspond to the Contact Sam Cruise logo | ||||||||||||||
| 56646 | LD (HL),23 | Set these attribute bytes to 23 (INK 7: PAPER 2) | ||||||||||||||
| 56648 | INC L | |||||||||||||||
| 56649 | DJNZ 56646 | |||||||||||||||
| 56651 | LD B,12 | The next 12 bytes in each line correspond to the icon panel | ||||||||||||||
| 56653 | LD (HL),54 | Set these attribute bytes to 54 (INK 6: PAPER 6) | ||||||||||||||
| 56655 | INC L | |||||||||||||||
| 56656 | DJNZ 56653 | |||||||||||||||
| 56658 | LD B,9 | The next 9 bytes in each line correspond to the score box | ||||||||||||||
| 56660 | LD (HL),32 | Set these attribute bytes to 32 (INK 0: PAPER 4) | ||||||||||||||
| 56662 | INC L | |||||||||||||||
| 56663 | DJNZ 56660 | |||||||||||||||
| 56665 | LD B,3 | The last 3 bytes in each line correspond to the disguise box | ||||||||||||||
| 56667 | LD (HL),23 | Set these attribute bytes to 23 (INK 7: PAPER 2) | ||||||||||||||
| 56669 | INC L | |||||||||||||||
| 56670 | DJNZ 56667 | |||||||||||||||
| 56672 | DEC C | Have we done all 3 lines at the bottom of the screen? | ||||||||||||||
| 56673 | JR NZ,56644 | Jump back to do the next line if not | ||||||||||||||
| 56675 | RET | |||||||||||||||
| Prev: 56064 | Up: Map |