Prev: 6B7F Up: Map Next: 6BCA
6B96: Save the game to tape if bit 0 in 5DEB is reset and P is held down, then S is pressed
Used by the routine at 657F.
This routine saves the state of the execution of the game's main BASIC, which is used immediately after the loading routine is executed. The RET at the end returns to BASIC, which is positioned at a "GOTO 1" statement that re-runs a program. The loading system picks up the system variables to match this state, which allows the game to start when it's loaded.
6B96 EX AF,AF'
6B97 LD A,$03
6B99 EX AF,AF'
6B9A POP HL
6B9B CALL $60AA Play an ascending sound
6B9E CALL $6B7F Play a descending sound
6BA1 LD A,$FE Check that "Z" is held down
6BA3 IN A,($FE)
6BA5 BIT 1,A
6BA7 JR Z,$6BAE Jump forward if so
6BA9 LD A,$01 Unset "save game to tape" flag
6BAB LD ($5DEB),A
6BAE LD A,$DF Check that "P" is held down
6BB0 IN A,($FE)
6BB2 BIT 0,A
6BB4 RET NZ
6BB5 LD A,$FD Wait for "S" to be pressed
6BB7 IN A,($FE)
6BB9 BIT 1,A
6BBB JR NZ,$6BB5
6BBD LD A,$FF Flag for headerless data block
6BBF LD IX,$4000 Start address
6BC3 LD DE,$3F48 Length
6BC6 CALL $04C2 SA-BYTES
6BC9 RET Exit to BASIC.
Prev: 6B7F Up: Map Next: 6BCA