Prev: ED39 Up: Map Next: EE09
ED52: Display Playing Instructions
Used by the routine at InitialiseGame.
DisplayInstructions ED52 EXX Switch to the shadow registers.
ED53 LD DE,$4000 DE'=4000 (screen buffer location).
ED56 EXX Switch back to the normal registers.
Prints the "HOW TO PLAY WHEELIE" banner.
ED57 LD HL,$EE74 HL=Messaging_HowToPlay.
ED5A LD B,$20 B=20 (length of banner).
ED5C CALL Print_Loop Call Print_Loop.
Prints the "PRESS ANY KEY FOR NEXT PAGE" footer messaging.
ED5F LD A,$9F A=9F (INK: WHITE, PAPER: MAGENTA FLASH: ON).
ED61 LD HL,$EE94 HL=Messaging_PressAnyKey.
ED64 CALL PrintFooterColourString Call PrintFooterColourString.
Display the instructions for page one.
instruction-01
Set the attributes.
ED67 LD HL,$5840 HL=5840 (attribute buffer location).
ED6A LD B,$A0 B=A0 (counter).
Instructions_Page1_CyanLoop ED6C LD (HL),$28 Write 28 (INK: BLACK, PAPER: CYAN ) to *HL.
ED6E INC HL Increment HL by one.
ED6F DJNZ Instructions_Page1_CyanLoop Decrease counter by one and loop back to Instructions_Page1_CyanLoop until counter is zero.
ED71 LD B,$C0 B=C0 (counter).
Instructions_Page1_YellowLoop ED73 LD (HL),$30 Write 30 (INK: BLACK, PAPER: YELLOW ) to *HL.
ED75 INC HL Increment HL by one.
ED76 DJNZ Instructions_Page1_YellowLoop Decrease counter by one and loop back to Instructions_Page1_YellowLoop until counter is zero.
ED78 LD B,$E0 B=E0 (counter).
Instructions_Page1_GreenLoop ED7A LD (HL),$20 Write 20 (INK: BLACK, PAPER: GREEN ) to *HL.
ED7C INC HL Increment HL by one.
ED7D DJNZ Instructions_Page1_GreenLoop Decrease counter by one and loop back to Instructions_Page1_GreenLoop until counter is zero.
ED7F LD B,$60 B=60 (counter).
Instructions_Page1_Cyan2Loop ED81 LD (HL),$28 Write 28 (INK: BLACK, PAPER: CYAN ) to *HL.
ED83 INC HL Increment HL by one.
ED84 DJNZ Instructions_Page1_Cyan2Loop Decrease counter by one and loop back to Instructions_Page1_Cyan2Loop until counter is zero.
Now display the text for page one on the screen.
ED86 LD HL,$F000 HL=Messaging_InstructionsPage1.
ED89 CALL PrintInstructions Call PrintInstructions.
ED8C PUSH HL Store the current position in the instructions for the next page later.
ED8D CALL PauseLong Debounce using PauseLong.
Instructions_InputLoop_Page1 ED90 CALL KeyboardInput Call KeyboardInput.
ED93 AND A Jump to Instructions_InputLoop_Page1 until any key is pressed.
ED94 JR Z,Instructions_InputLoop_Page1
Display the instructions for page two.
instruction-02
Set the attributes.
ED96 LD HL,$5840 HL=5840 (attribute buffer location).
ED99 LD (HL),$0F Write 0F (INK: WHITE, PAPER: BLUE ) to *HL.
ED9B LD DE,$5841 DE=5841 (attribute buffer location).
ED9E LD BC,$029F BC=029F.
EDA1 LDIR Copy INK: WHITE, PAPER: BLUE to the screen buffer 029F times.
Now display the text for page two on the screen.
EDA3 POP HL Restore the position of the instructions pointer from the stack.
EDA4 CALL PrintInstructions Call PrintInstructions.
EDA7 PUSH HL Store the current position in the instructions for the next page later.
EDA8 CALL PauseLong Debounce using PauseLong.
Instructions_InputLoop_Page2 EDAB CALL KeyboardInput Call KeyboardInput.
EDAE AND A Jump to Instructions_InputLoop_Page2 until any key is pressed.
EDAF JR Z,Instructions_InputLoop_Page2
Display the instructions for page three.
instruction-03
Set the attributes.
EDB1 LD HL,$5960 HL=5960 (attribute buffer location).
EDB4 LD B,$80 B=80 (counter).
Instructions_Page3_CyanLoop EDB6 LD (HL),$28 Write 28 (INK: BLACK, PAPER: CYAN ) to *HL.
EDB8 INC HL Increment HL by one.
EDB9 DJNZ Instructions_Page3_CyanLoop Decrease counter by one and loop back to Instructions_Page3_CyanLoop until counter is zero.
EDBB LD B,$A0 B=A0 (counter).
Instructions_Page3_GreenLoop EDBD LD (HL),$20 Write 20 (INK: BLACK, PAPER: GREEN ) to *HL.
EDBF INC HL Increment HL by one.
EDC0 DJNZ Instructions_Page3_GreenLoop Decrease counter by one and loop back to Instructions_Page3_GreenLoop until counter is zero.
EDC2 LD B,$60 B=60 (counter).
Instructions_Page3_YellowLoop EDC4 LD (HL),$30 Write 30 (INK: BLACK, PAPER: YELLOW ) to *HL.
EDC6 INC HL Increment HL by one.
EDC7 DJNZ Instructions_Page3_YellowLoop Decrease counter by one and loop back to Instructions_Page3_YellowLoop until counter is zero.
Colour the "keys" guide.
EDC9 LD HL,$5860 HL=5860 (attribute buffer location).
EDCC LD DE,$0037 DE=0037.
EDCF LD C,$04 C=04 (counter; rows of "keys").
HighlightKeys_RowLoop EDD1 LD B,$09 B=09 (counter; nine columns to colour).
HighlightKeys_LineLoop EDD3 LD (HL),$1B Write 1B (INK: MAGENTA, PAPER: MAGENTA ) to *HL.
EDD5 INC HL Increment HL by one.
EDD6 DJNZ HighlightKeys_LineLoop Decrease counter by one and loop back to HighlightKeys_LineLoop until counter is zero.
EDD8 ADD HL,DE Add DE to HL to move us down one whole row (20) and back to the beginning of where we need to colour in (20-09=17 ~ 20+17=37).
EDD9 DEC C Decrease C by one.
EDDA JR NZ,HighlightKeys_RowLoop Jump to HighlightKeys_RowLoop until C is zero.
Fill in the gap on the bottom row.
EDDC LD L,$24 Move the screen buffer pointer.
EDDE LD (HL),$09 Write 09 (INK: BLUE, PAPER: BLUE ) to *HL.
Now display the text for page three on the screen.
EDE0 POP HL Restore the position of the instructions pointer from the stack.
EDE1 CALL PrintInstructions Call PrintInstructions.
EDE4 PUSH HL Store the current position in the instructions for the next page later.
EDE5 CALL PauseLong Debounce using PauseLong.
Instructions_InputLoop_Page3 EDE8 CALL KeyboardInput Call KeyboardInput.
EDEB AND A Jump to Instructions_InputLoop_Page3 until any key is pressed.
EDEC JR Z,Instructions_InputLoop_Page3
Display the instructions for page four.
instruction-04
Set the attributes.
EDEE LD HL,$5840 HL=5840 (attribute buffer location).
EDF1 LD (HL),$30 Write 30 (INK: BLACK, PAPER: YELLOW ) to *HL.
EDF3 LD DE,$5841 DE=5841 (attribute buffer location).
EDF6 LD BC,$029F BC=029F.
EDF9 LDIR Copy INK: BLACK, PAPER: YELLOW to the screen buffer 029F times.
Now display the text for page four on the screen.
EDFB POP HL Restore the position of the instructions pointer from the stack.
EDFC CALL PrintInstructions Call PrintInstructions.
EDFF CALL PauseLong Debounce using PauseLong.
Instructions_InputLoop_Page4 EE02 CALL KeyboardInput Call KeyboardInput.
EE05 AND A Jump to Instructions_InputLoop_Page4 until any key is pressed.
EE06 JR Z,Instructions_InputLoop_Page4
EE08 RET Return.
Prev: ED39 Up: Map Next: EE09