Prev: 42438 Up: Map Next: 42501
42442: Save Game
Used by the routines at 63649 and Action_Quit.
SaveGame 42442 LD A,(42992) A=*Count_ConfigurableExits.
42445 OR A Jump to SaveGame_2 if A is zero.
42446 JR Z,SaveGame_2
42448 LD B,A B=A.
42449 LD IX,(42972) IX=*42972.
42453 LD DE,42897 DE=42897.
42456 JR SaveGame_1 Jump to SaveGame_1.
SaveGame_0 42458 INC IX Increment IX by two.
42460 INC IX
42462 INC DE Increment DE by one.
SaveGame_1 42463 LD L,(IX+0) L=*IX+0.
42466 LD H,(IX+1) H=*IX+1.
42469 LD A,(HL) Write *HL to *DE.
42470 LD (DE),A
42471 DJNZ SaveGame_0 Decrease counter by one and loop back to SaveGame_0 until counter is zero.
Print "SAVING. Position tape. Press REC & PLAY,then any key.".
SaveGame_2 42473 LD HL,43344 HL=Messaging_Saving.
42476 CALL PrintStringAndNewline Call PrintStringAndNewline.
42479 CALL GetUserInput Call GetUserInput.
42482 LD IX,42604 IX=42604.
42486 LD DE,390 DE=390.
42489 LD A,255 Set A to 255 which indicates this is a data block.
42491 CALL 1218 Call SA_BYTES.
Print "Stop tape.Saving complete.".
42494 LD HL,43398 HL=Messaging_StopTapeSavingComplete.
42497 CALL PrintStringAndNewline Call PrintStringAndNewline.
42500 RET Return.
View the equivalent code in The Jewels Of Babylon.
Prev: 42438 Up: Map Next: 42501