Prev: 908B Up: Map Next: 90FC
90A2: Routine at 90A2
Used by the routine at Initialise_SubGame.
90A2 LD IX,$6240 IX=6240.
90A6 LD HL,($99C4) HL=*ActiveSubGameData.
90A9 LD A,(HL) A=*HL.
90AA CP $00 Jump to 90CA if *A is equal to 00.
90AC JR Z,$90CA
90AE LD B,A Split *HL in half, the upper four bits into A and the lower four bits into B.
90AF SRL B
90B1 SRL B
90B3 SRL B
90B5 SRL B
90B7 AND %00001111
90B9 RLCA
90BA RLCA
90BB RLCA
90BC PUSH HL Stash HL, BC and AF on the stack.
90BD PUSH BC
90BE PUSH AF
90BF CALL $90E8 Call 90E8.
90C2 POP AF Restore AF and BC from the stack.
90C3 POP BC
90C4 DJNZ $90BD Decrease counter by one and loop back to 90BD until counter is zero.
90C6 POP HL Restore HL from the stack.
90C7 INC HL Increment HL by one.
90C8 JR $90A9 Jump to 90A9.
90CA LD IX,$7800 IX=7800.
90CE LD HL,$6000 HL=ShadowBuffer.
90D1 LD BC,$0300 BC=0300.
90D4 LD DE,$0006 Set an increment count in DE for below.
90D7 LD (IX+$01),L Write L to *IX+01.
90DA LD (IX+$00),H Write H to *IX+00.
90DD INC IX Increment IX by two.
90DF INC IX
90E1 ADD HL,DE HL+=0006.
90E2 DEC BC Decrease BC by one.
90E3 LD A,C Jump back to 90D7 until BC is zero.
90E4 OR B
90E5 JR NZ,$90D7
90E7 RET Return.
90E8 LD DE,($99C6) DE=*99C6.
90EC ADD A,E A+=E.
90ED JR NC,$90F0 Jump to 90F0 if BC is higher.
90EF INC D Increment D by one.
90F0 LD (IX+$02),A Write A to *IX+02.
90F3 LD (IX+$03),D Write D to *IX+03.
90F6 LD DE,$0006 IX+=0006.
90F9 ADD IX,DE
90FB RET Return.
Prev: 908B Up: Map Next: 90FC