Prev: BB59 Up: Map Next: BBD4
BB94: Load From Tape
Used by the routine at Action_Load.
Print "LOADING. Start tape.".
LoadTape BB94 LD HL,$BE57 HL=Messaging_LoadingStartTape.
BB97 CALL PrintStringAndNewline Call PrintStringAndNewline.
BB9A LD IX,$BBF0 Load the starting address into IX at Table_ItemLocations.
BB9E LD DE,$0144 Set the block length in DE to 0144 bytes.
BBA1 LD A,$FF Set A to FF which indicates this is a data block.
BBA3 SCF Set the carry flag to indicate this is loading.
BBA4 CALL $0556 Call LD_BYTES.
BBA7 JR C,LoadTape_Success Jump to LoadTape_Success if the carry flag is not set.
Print "Tape error.".
BBA9 LD HL,$BE6C HL=Messaging_TapeError.
BBAC CALL PrintStringAndNewline Call PrintStringAndNewline.
BBAF RET Return.
LoadTape_Success BBB0 LD A,($BD32) A=*Count_ConfigurableExits.
BBB3 OR A Return if A is zero.
BBB4 RET Z
BBB5 LD B,A B=A.
BBB6 LD IX,($BD22) IX=*Pointer_ConfigurableExits.
BBBA LD DE,$BC99 DE=BC99.
BBBD JR LoadTape_Write Jump to LoadTape_Write.
LoadTape_WriteLoop BBBF INC IX Increment IX by two.
BBC1 INC IX
BBC3 INC DE Increment DE by one.
LoadTape_Write BBC4 LD L,(IX+$00) L=*IX+00.
BBC7 LD H,(IX+$01) H=*IX+01.
BBCA LD A,(DE) A=*DE.
BBCB LD (HL),A Write A to *HL.
BBCC DJNZ LoadTape_WriteLoop Decrease counter by one and loop back to LoadTape_WriteLoop until counter is zero.
BBCE LD E,$00 E=00.
BBD0 CALL Handler_DisplayRoomImage Call Handler_DisplayRoomImage.
BBD3 RET Return.
View the equivalent code in Warlord.
Prev: BB59 Up: Map Next: BBD4