Prev: E871 Up: Map Next: E8E0
E891: Display Start Screen
Used by the routine at InitialiseGame.
start-screen
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