Prev: 49164 Up: Map Next: 49317
49216: Save Game
Used by the routine at 45284.
Prints "Start tape, then press any key.".
SaveGame 49216 LD HL,2466 HL=2466.
49219 CALL 49600 Call 49600.
49222 LD (49417),DE Write DE to *49417.
49226 LD (49419),IX Write IX to *49419.
49230 LD IX,49406 IX=49406.
49234 LD DE,17 DE=0017.
49237 XOR A Set A to 0 to indicate this is a header block.
49238 CALL 1218 Call SA_BYTES.
49241 LD B,50 B=50.
SaveGame_PauseLoop 49243 HALT Halt operation (suspend CPU until the next interrupt).
49244 DJNZ SaveGame_PauseLoop Decrease counter by one and loop back to SaveGame_PauseLoop until counter is zero.
49246 DI Disable interrupts.
49247 LD DE,(49417) DE=*49417.
49251 LD IX,(49419) IX=*49419.
49255 LD A,255 Set A to 255 to indicate this is a data block.
49257 CALL 1218 Call SA_BYTES.
49260 DI Disable interrupts.
Prints "REWIND TAPE.".
49261 LD HL,49317 HL=Messaging_RewindTape.
49264 CALL PrintString Call PrintString.
Prints ", then press any key.".
49267 LD HL,2476 HL=2476.
49270 CALL 49600 Call 49600.
49273 LD IX,49406 IX=49406.
49277 LD DE,17 DE=0017.
49280 LD A,0 Set A to 0 to indicate this is a header block.
49282 AND A Set flags.
49283 CALL 1366 Call LD_BYTES.
49286 JR NC,SaveGame_Error Jump to SaveGame_Error if there was any error returned.
49288 AND A Set flags.
This entry point is used by the routine at LoadGame.
LoadGameData 49289 LD DE,(49417) DE=*49417.
49293 LD IX,(49419) IX=*49419.
49297 LD A,255 Set A to 255 to indicate this is a data block.
49299 CALL 1366 Call LD_BYTES.
49302 DI Disable interrupts.
49303 RET C Return if there were no tape loading errors.
There were errors ... so alert the player.
SaveGame_Error 49304 DI Disable interrupts.
Prints "TAPE ERROR.".
49305 LD HL,49329 HL=Messaging_TapeError.
49308 CALL PrintString Call PrintString.
Prints " press any key.".
49311 LD HL,2482 HL=2482.
49314 JP 49600 Jump to 49600.
Prev: 49164 Up: Map Next: 49317