![]() |
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 |