Prev: E47A Up: Map Next: E581
E4F1: Handler: Lifts 2
Used by the routine at InitialiseGame.
Handler_Lifts2 E4F1 LD IX,($5BE4) IX=*ReferenceLifts.
Are we done?
Handler_Lifts2_Loop E4F5 LD A,(IX+$00) Return if the terminator character has been received instead of a co-ordinate (FF).
E4F8 CP $FF
E4FA RET Z
E4FB LD A,(IX+$05) Jump to Handler_Lifts2_3 if *IX+05 is equal to 00.
E4FE CP $00
E500 JR Z,Handler_Lifts2_3
E502 LD C,(IX+$00) C=*IX+00.
E505 LD B,(IX+$01) B=*IX+01.
E508 LD A,(IX+$03) Jump to Handler_Lifts2_5 if *IX+03 is equal to 03.
E50B CP $03
E50D JR Z,Handler_Lifts2_5
E50F CP $02 Jump to Handler_Lifts2_4 if *IX+03 is equal to 02.
E511 JR Z,Handler_Lifts2_4
E513 CP $01 Jump to Handler_Lifts2_6 if *IX+03 is equal to 01.
E515 JR Z,Handler_Lifts2_6
E517 DEC B Decrease B by one.
E518 CALL $0DD9 Call CL_SET.
Handler_Lifts2_0 E51B LD D,$04 D=04.
Handler_Lifts2_1 E51D LD B,(IX+$07) B=*IX+07.
E520 LD A,$FF A=FF.
E522 LD HL,($5C84) HL=*DF_CC.
E525 INC H Increment H by one.
E526 LD ($5C84),HL Write HL to *DF_CC.
E529 DEC H Decrease H by one.
Handler_Lifts2_2 E52A LD (HL),A Write A to *HL.
E52B INC HL Increment HL by one.
E52C DJNZ Handler_Lifts2_2 Decrease counter by one and loop back to Handler_Lifts2_2 until counter is zero.
E52E DEC D Decrease D by one.
E52F JR NZ,Handler_Lifts2_1 Jump to Handler_Lifts2_1 until D is zero.
Handler_Lifts2_3 E531 LD DE,$0010 IX+=0010.
E534 ADD IX,DE
E536 JR Handler_Lifts2_Loop Jump to Handler_Lifts2_Loop.
Handler_Lifts2_4 E538 CALL $0DD9 Call CL_SET.
E53B LD HL,($5C84) HL=*DF_CC.
E53E INC H Increment H by four.
E53F INC H
E540 INC H
E541 INC H
E542 LD ($5C84),HL Write HL to *DF_CC.
E545 JR Handler_Lifts2_0 Jump to Handler_Lifts2_0.
Handler_Lifts2_5 E547 CALL $0DD9 Call CL_SET.
E54A LD HL,($5C84) HL=*DF_CC.
E54D INC H Increment H by two.
E54E INC H
E54F LD ($5C84),HL Write HL to *DF_CC.
E552 JR Handler_Lifts2_0 Jump to Handler_Lifts2_0.
Handler_Lifts2_6 E554 PUSH BC Stash BC on the stack.
E555 CALL $0DD9 Call CL_SET.
E558 LD HL,($5C84) HL=*DF_CC.
E55B LD A,H H+=06.
E55C ADD A,$06
E55E LD H,A
E55F LD ($5C84),HL Write HL to *DF_CC.
E562 LD D,$02 D=02.
Handler_Lifts2_7 E564 LD HL,($5C84) HL=*DF_CC.
E567 INC H Increment H by one.
E568 LD ($5C84),HL Write HL to *DF_CC.
E56B DEC H Decrease H by one.
E56C LD A,$FF A=FF.
E56E LD B,(IX+$07) B=*IX+07.
Handler_Lifts2_8 E571 LD (HL),A Write A to *HL.
E572 INC HL Increment HL by one.
E573 DJNZ Handler_Lifts2_8 Decrease counter by one and loop back to Handler_Lifts2_8 until counter is zero.
E575 DEC D Decrease D by one.
E576 JR NZ,Handler_Lifts2_7 Jump to Handler_Lifts2_7 until D is zero.
E578 POP BC Restore BC from the stack.
E579 DEC B Decrease B by one.
E57A CALL $0DD9 Call CL_SET.
E57D LD D,$02 D=02.
E57F JR Handler_Lifts2_1 Jump to Handler_Lifts2_1.
Prev: E47A Up: Map Next: E581