Routines |
Prev: ED39 | Up: Map | Next: EE09 |
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.
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.
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.
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.
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 |