![]() |
Routines |
Prev: 37003 | Up: Map | Next: 37116 |
Used by the routine at Initialise_SubGame.
|
||||
37026 | LD IX,25152 | IX=25152. | ||
37030 | LD HL,(39364) | HL=*ActiveSubGameData. | ||
37033 | LD A,(HL) | A=*HL. | ||
37034 | CP 0 | Jump to 37066 if *A is equal to 0. | ||
37036 | JR Z,37066 | |||
37038 | LD B,A | Split *HL in half, the upper four bits into A and the lower four bits into B. | ||
37039 | SRL B | |||
37041 | SRL B | |||
37043 | SRL B | |||
37045 | SRL B | |||
37047 | AND %00001111 | |||
37049 | RLCA | |||
37050 | RLCA | |||
37051 | RLCA | |||
37052 | PUSH HL | Stash HL, BC and AF on the stack. | ||
37053 | PUSH BC | |||
37054 | PUSH AF | |||
37055 | CALL 37096 | Call 37096. | ||
37058 | POP AF | Restore AF and BC from the stack. | ||
37059 | POP BC | |||
37060 | DJNZ 37053 | Decrease counter by one and loop back to 37053 until counter is zero. | ||
37062 | POP HL | Restore HL from the stack. | ||
37063 | INC HL | Increment HL by one. | ||
37064 | JR 37033 | Jump to 37033. | ||
37066 | LD IX,30720 | IX=30720. | ||
37070 | LD HL,24576 | HL=ShadowBuffer. | ||
37073 | LD BC,768 | BC=0768. | ||
37076 | LD DE,6 | Set an increment count in DE for below. | ||
37079 | LD (IX+1),L | Write L to *IX+1. | ||
37082 | LD (IX+0),H | Write H to *IX+0. | ||
37085 | INC IX | Increment IX by two. | ||
37087 | INC IX | |||
37089 | ADD HL,DE | HL+=0006. | ||
37090 | DEC BC | Decrease BC by one. | ||
37091 | LD A,C | Jump back to 37079 until BC is zero. | ||
37092 | OR B | |||
37093 | JR NZ,37079 | |||
37095 | RET | Return. | ||
37096 | LD DE,(39366) | DE=*39366. | ||
37100 | ADD A,E | A+=E. | ||
37101 | JR NC,37104 | Jump to 37104 if BC is higher. | ||
37103 | INC D | Increment D by one. | ||
37104 | LD (IX+2),A | Write A to *IX+2. | ||
37107 | LD (IX+3),D | Write D to *IX+3. | ||
37110 | LD DE,6 | IX+=0006. | ||
37113 | ADD IX,DE | |||
37115 | RET | Return. |
Prev: 37003 | Up: Map | Next: 37116 |