Routines |
Prev: E871 | Up: Map | Next: E8E0 |
Used by the routine at InitialiseGame.
|
|||||
Colour the top two rows of the attribute buffer with magenta paper and white ink.
|
|||||
DisplayStartScreen | E891 | LD HL,$5800 | HL=5800 (attribute buffer location). | ||
E894 | LD B,$40 | B=40 (counter - two rows). | |||
HeaderAttributes_Loop | E896 | LD (HL),$1F | Write 1F (INK: WHITE, PAPER: MAGENTA ) to *HL. | ||
E898 | INC L | Move to the next column. | |||
E899 | DJNZ HeaderAttributes_Loop | Decrease counter by one and loop back to HeaderAttributes_Loop until counter is zero. | |||
Colour the rest of the rows down to the footer with black paper and yellow ink.
|
|||||
E89B | LD D,H | DE=HL+01. | |||
E89C | LD E,L | ||||
E89D | INC E | ||||
E89E | LD BC,$01BF | BC=01BF. | |||
E8A1 | LD (HL),$06 | Write 06 (INK: YELLOW, PAPER: BLACK ) to *HL. | |||
E8A3 | LDIR | Copy 06 from 5840 to 5A00 01BF times. | |||
Print the "WELCOME TO THE WORLD OF WHEELIE!" messaging.
|
|||||
E8A5 | EXX | Switch to the shadow registers. | |||
E8A6 | LD DE,$4000 | DE'=4000 (screen buffer location). | |||
E8A9 | EXX | Switch back to the normal registers. | |||
E8AA | LD HL,$E871 | HL=Messaging_Welcome. | |||
E8AD | LD B,$20 | B=20 (length of Messaging_Welcome messaging). | |||
E8AF | CALL Print_Loop | Call Print_Loop. | |||
This section of the routine handles the cute row of bike graphics in the top of the display.
|
|||||
E8B2 | LD B,$10 | B=10 (number of bike UDGs to display). | |||
HeaderBike_Loop | E8B4 | EXX | Switch to the shadow registers. | ||
E8B5 | LD L,$9C | L'=9C. | |||
Print the left side of the bike graphic.
|
|||||
E8B7 | CALL PrintGraphic | Call PrintGraphic. | |||
E8BA | EXX | Switch back to the normal registers. | |||
Print the right side of the bike graphic.
|
|||||
E8BB | CALL PrintGraphic | Call PrintGraphic. | |||
E8BE | DJNZ HeaderBike_Loop | Decrease counter by one and loop back to HeaderBike_Loop until counter is zero. | |||
The start screen messaging at Messaging_StartScreen is split into 04 blocks of text 40 characters long.
|
|||||
E8C0 | LD C,$04 | C=04 (blocks of text). | |||
E8C2 | EXX | Switch to the shadow registers. | |||
E8C3 | LD DE,$4060 | DE'=4060 (screen buffer location). | |||
E8C6 | EXX | Switch back to the normal registers. | |||
E8C7 | LD HL,$A800 | HL=Messaging_StartScreen. | |||
This entry point is used by the routine at DisplayChangeControls.
|
|||||
StartScreen_TextLoop | E8CA | LD B,$40 | B=40 (length of messaging). | ||
E8CC | CALL Print_Loop | Call Print_Loop. | |||
E8CF | EXX | Switch to the shadow registers. | |||
E8D0 | LD A,E | Jump to StartScreen_SkipRow if E is not zero. | |||
E8D1 | AND A | ||||
E8D2 | JR NZ,StartScreen_SkipRow | ||||
E8D4 | LD D,$48 | D=48. | |||
StartScreen_SkipRow | E8D6 | ADD A,$20 | Add 20 to leave a blank row between the blocks of text. | ||
E8D8 | LD E,A | E=A. | |||
E8D9 | EXX | Switch back to the normal registers. | |||
E8DA | DEC C | Decrease C by one. | |||
E8DB | JR NZ,StartScreen_TextLoop | Jump to StartScreen_TextLoop until C is zero. | |||
E8DD | JP PauseLong | Jump to PauseLong. |
Prev: E871 | Up: Map | Next: E8E0 |