Prev: 47961 Up: Map Next: 48084
48020: Load From Tape
Used by the routine at Action_Load.
Print "LOADING. Start tape.".
LoadTape 48020 LD HL,48727 HL=Messaging_LoadingStartTape.
48023 CALL PrintStringAndNewline Call PrintStringAndNewline.
48026 LD IX,48112 Load the starting address into IX at Table_ItemLocations.
48030 LD DE,324 Set the block length in DE to 324 bytes.
48033 LD A,255 Set A to 255 which indicates this is a data block.
48035 SCF Set the carry flag to indicate this is loading.
48036 CALL 1366 Call LD_BYTES.
48039 JR C,LoadTape_Success Jump to LoadTape_Success if the carry flag is not set.
Print "Tape error.".
48041 LD HL,48748 HL=Messaging_TapeError.
48044 CALL PrintStringAndNewline Call PrintStringAndNewline.
48047 RET Return.
LoadTape_Success 48048 LD A,(48434) A=*Count_ConfigurableExits.
48051 OR A Return if A is zero.
48052 RET Z
48053 LD B,A B=A.
48054 LD IX,(48418) IX=*Pointer_ConfigurableExits.
48058 LD DE,48281 DE=48281.
48061 JR LoadTape_Write Jump to LoadTape_Write.
LoadTape_WriteLoop 48063 INC IX Increment IX by two.
48065 INC IX
48067 INC DE Increment DE by one.
LoadTape_Write 48068 LD L,(IX+0) L=*IX+0.
48071 LD H,(IX+1) H=*IX+1.
48074 LD A,(DE) A=*DE.
48075 LD (HL),A Write A to *HL.
48076 DJNZ LoadTape_WriteLoop Decrease counter by one and loop back to LoadTape_WriteLoop until counter is zero.
48078 LD E,0 E=0.
48080 CALL Handler_DisplayRoomImage Call Handler_DisplayRoomImage.
48083 RET Return.
View the equivalent code in Warlord.
Prev: 47961 Up: Map Next: 48084