Prev: ECAB Up: Map Next: EE09
ED52: Playing Instruction display routine
ED52 EXX Exchange BC, DE, and HL with shadow registers with BC', DE', and HL'
ED53 LD DE,$4000 DE=$4000 (top of the screen buffer)
ED56 EXX Exchange BC, DE, and HL with shadow registers with BC', DE', and HL'
ED57 LD HL,$EE74 Point HL to INSTRUCTIONS_HEADER ($20 characters in length) and call PRINT_STRING
ED5A LD B,$20
ED5C CALL PRINT_STRING
ED5F LD A,$9F Point HL to PRESSANYKEY_TEXT and call the subroutine at PRINT_BIKE_GRAPHIC_1 with $9F (magenta/ white with flash toggled)
ED61 LD HL,$EE94
ED64 CALL PRINT_BIKE_GRAPHIC_1
Colours the screen for page one.
ED67 LD HL,$5840 Write $28 (cyan/ black) to the attribute buffer $A0 times, starting from $5840
ED6A LD B,$A0
ED6C LD (HL),$28
ED6E INC HL
ED6F DJNZ $ED6C
ED71 LD B,$C0 Write $30 (yellow/ black) to the attribute buffer $C0 times
ED73 LD (HL),$30
ED75 INC HL
ED76 DJNZ $ED73
ED78 LD B,$E0 Write $20 (green/ black) to the attribute buffer $E0 times
ED7A LD (HL),$20
ED7C INC HL
ED7D DJNZ $ED7A
ED7F LD B,$60 Write $28 (cyan/ black) to the attribute buffer $60 times
ED81 LD (HL),$28
ED83 INC HL
ED84 DJNZ $ED81
Displays the instructions for page one.
ED86 LD HL,$F000 Point HL to INSTRUCTIONS and call PRINT_INSTRUCTIONS
ED89 CALL PRINT_INSTRUCTIONS
ED8C PUSH HL Store our position in the instructions for later
ED8D CALL PAUSE Pause before allowing input (debounce)
ED90 CALL $6828 Loop until a key is pressed (using 6828)
ED93 AND A
ED94 JR Z,$ED90
Displays the instructions for page two.
ED96 LD HL,$5840 Writes $0F (blue/ white) to the attribute buffer $029F times starting at $5840
ED99 LD (HL),$0F
ED9B LD DE,$5841
ED9E LD BC,$029F
EDA1 LDIR
EDA3 POP HL Restore our place in the instructions and call PRINT_INSTRUCTIONS
EDA4 CALL PRINT_INSTRUCTIONS
EDA7 PUSH HL Store our position in the instructions for later
EDA8 CALL PAUSE Pause before allowing input (debounce)
EDAB CALL $6828 Loop until a key is pressed (using 6828)
EDAE AND A
EDAF JR Z,$EDAB
Colours the screen for page three.
EDB1 LD HL,$5960 Write $28 (cyan/ black) to the attribute buffer $80 times, starting from $5960
EDB4 LD B,$80
EDB6 LD (HL),$28
EDB8 INC HL
EDB9 DJNZ $EDB6
EDBB LD B,$A0 Write $20 (green/ black) to the attribute buffer $A0 times
EDBD LD (HL),$20
EDBF INC HL
EDC0 DJNZ $EDBD
EDC2 LD B,$60 Write $30 (yellow/ black) to the attribute buffer $60 times
EDC4 LD (HL),$30
EDC6 INC HL
EDC7 DJNZ $EDC4
EDC9 LD HL,$5860 Cycles through the following $04 times (initially starting at $5860);
  • Write $1B (magenta/ magenta) to the attribute buffer $09 times
  • Add $0037 to the position of the attribute buffer
One this is finished, it "pokes a hole" at $5924 making it the same colour as the background $09 (blue/ blue) this gives a 4x4 magenta strip on the bottom row as the text refers to keys on the left and right.
EDCC LD DE,$0037
EDCF LD C,$04
EDD1 LD B,$09
EDD3 LD (HL),$1B
EDD5 INC HL
EDD6 DJNZ $EDD3
EDD8 ADD HL,DE
EDD9 DEC C
EDDA JR NZ,$EDD1
EDDC LD L,$24
EDDE LD (HL),$09
Displays the instructions for page three.
EDE0 POP HL Restore our place in the instructions and call PRINT_INSTRUCTIONS
EDE1 CALL PRINT_INSTRUCTIONS
EDE4 PUSH HL Store our position in the instructions for later
EDE5 CALL PAUSE Pause before allowing input (debounce)
EDE8 CALL $6828 Loop until a key is pressed (using 6828)
EDEB AND A
EDEC JR Z,$EDE8
EDEE LD HL,$5840 Writes $30 (yellow/ black) to the attribute buffer $029F times starting at $5840
EDF1 LD (HL),$30
EDF3 LD DE,$5841
EDF6 LD BC,$029F
EDF9 LDIR
EDFB POP HL Restore our place in the instructions and call PRINT_INSTRUCTIONS
EDFC CALL PRINT_INSTRUCTIONS
EDFF CALL PAUSE Pause before allowing input (debounce)
EE02 CALL $6828 Loop until a key is pressed (using 6828)
EE05 AND A
EE06 JR Z,$EE02
EE08 RET Return
Prev: ECAB Up: Map Next: EE09