![]()  | 
Routines | 
| Prev: C03B | Up: Map | Next: C0A5 | 
| 
 
Used by the routine at B0E4.
 
 | 
||||
| 
 
Prints "Start tape, then press any key.".
 
 | 
||||
| SaveGame | C040 | LD HL,$09A2 | HL=09A2. | |
| C043 | CALL PrintStringAndWaitForKeypress | Call PrintStringAndWaitForKeypress. | ||
| C046 | LD ($C109),DE | Write DE to *C109. | ||
| C04A | LD ($C10B),IX | Write IX to *C10B. | ||
| C04E | LD IX,$C0FE | IX=C0FE. | ||
| C052 | LD DE,$0011 | DE=0011. | ||
| C055 | XOR A | Set A to 00 to indicate this is a header block. | ||
| C056 | CALL $04C2 | Call SA_BYTES. | ||
| C059 | LD B,$32 | B=32. | ||
| SaveGame_PauseLoop | C05B | HALT | Halt operation (suspend CPU until the next interrupt). | |
| C05C | DJNZ SaveGame_PauseLoop | Decrease counter by one and loop back to SaveGame_PauseLoop until counter is zero. | ||
| C05E | DI | Disable interrupts. | ||
| C05F | LD DE,($C109) | DE=*C109. | ||
| C063 | LD IX,($C10B) | IX=*C10B. | ||
| C067 | LD A,$FF | Set A to FF to indicate this is a data block. | ||
| C069 | CALL $04C2 | Call SA_BYTES. | ||
| C06C | DI | Disable interrupts. | ||
| 
 
Prints "REWIND TAPE.".
 
 | 
||||
| C06D | LD HL,$C0A5 | HL=Messaging_RewindTape. | ||
| C070 | CALL PrintString | Call PrintString. | ||
| 
 
Prints ", then press any key.".
 
 | 
||||
| C073 | LD HL,$09AC | HL=09AC. | ||
| C076 | CALL PrintStringAndWaitForKeypress | Call PrintStringAndWaitForKeypress. | ||
| C079 | LD IX,$C0FE | IX=C0FE. | ||
| C07D | LD DE,$0011 | DE=0011. | ||
| C080 | LD A,$00 | Set A to 00 to indicate this is a header block. | ||
| C082 | AND A | Set flags. | ||
| C083 | CALL $0556 | Call LD_BYTES. | ||
| C086 | JR NC,SaveGame_Error | Jump to SaveGame_Error if there was any error returned. | ||
| C088 | AND A | Set flags. | ||
| 
 
This entry point is used by the routine at LoadGame.
 
 | 
||||
| LoadGameData | C089 | LD DE,($C109) | DE=*C109. | |
| C08D | LD IX,($C10B) | IX=*C10B. | ||
| C091 | LD A,$FF | Set A to FF to indicate this is a data block. | ||
| C093 | CALL $0556 | Call LD_BYTES. | ||
| C096 | DI | Disable interrupts. | ||
| C097 | RET C | Return if there were no tape loading errors. | ||
| 
 
There were errors ... so alert the player.
 
 | 
||||
| SaveGame_Error | C098 | DI | Disable interrupts. | |
| 
 
Prints "TAPE ERROR.".
 
 | 
||||
| C099 | LD HL,$C0B1 | HL=Messaging_TapeError. | ||
| C09C | CALL PrintString | Call PrintString. | ||
| 
 
Prints " press any key.".
 
 | 
||||
| C09F | LD HL,$09B2 | HL=09B2. | ||
| C0A2 | JP PrintStringAndWaitForKeypress | Jump to PrintStringAndWaitForKeypress. | ||
| Prev: C03B | Up: Map | Next: C0A5 |