Prev: 42442 Up: Map Next: 42567
42501: Load From Tape
Used by the routine at 63634.
Print "LOADING. Press PLAY.".
LoadTape 42501 LD HL,43285 HL=Messaging_LoadingPressPlay.
42504 CALL PrintStringAndNewline Call PrintStringAndNewline.
42507 LD IX,42604 Load the starting address into IX at Table_ItemLocations.
42511 LD DE,390 Set the block length in DE to 390 bytes.
42514 LD A,255 Set A to 255 which indicates this is a data block.
42516 SCF Set the carry flag to indicate this is loading.
42517 CALL 1366 Call LD_BYTES.
42520 JR C,LoadTape_Success Jump to LoadTape_Success if the carry flag is not set.
Print "Tape error. Press any key to restart.".
42522 LD HL,43306 HL=Messaging_TapeError.
42525 CALL PrintStringAndNewline Call PrintStringAndNewline.
42528 SCF
42529 RET Return.
LoadTape_Success 42530 LD A,(42992) A=*Count_ConfigurableExits.
42533 OR A Return if A is zero.
42534 RET Z
42535 LD B,A B=A.
42536 LD IX,(42972) IX=*Pointer_ConfigurableExits.
42540 LD DE,42897 DE=42897.
42543 JR LoadTape_Write Jump to LoadTape_Write.
LoadTape_WriteLoop 42545 INC IX Increment IX by two.
42547 INC IX
42549 INC DE Increment DE by one.
LoadTape_Write 42550 LD L,(IX+0) L=*IX+0.
42553 LD H,(IX+1) H=*IX+1.
42556 LD A,(DE) A=*DE.
42557 LD (HL),A Write A to *HL.
42558 DJNZ LoadTape_WriteLoop Decrease counter by one and loop back to LoadTape_WriteLoop until counter is zero.
42560 LD E,0 E=0.
42562 CALL Handler_DisplayRoomImage Call Handler_DisplayRoomImage.
42565 AND A Set flags.
42566 RET Return.
View the equivalent code in The Jewels Of Babylon.
Prev: 42442 Up: Map Next: 42567