![]() |
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 |