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 |