Routines |
Prev: 908B | Up: Map | Next: 90FC |
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 |