Routines |
Prev: 54920 | Up: Map | Next: 55286 |
Used by the routines at DrawMonsterSprite, 55747, Handler_Helicopters, Draw_Human_Sprite_Mirrored, Handler_Bullets, Animate_TransformExplosion, Animate_TurnIntoHuman, Animate_ExitStageRight, Something_Helicopter, Handler_Projectiles, Audio_Projectiles_Hit, Handler_CollisionMonsters, Scene_DisplayCarpet, Handler_Vehicle and Handler_Train.
|
||||||||||
PrintSprite | 54985 | LD (53780),A | Write A to *53780. | |||||||
54988 | PUSH BC | Stash BC on the stack. | ||||||||
54989 | CALL InitialiseSprite | Call InitialiseSprite. | ||||||||
54992 | POP BC | Restore BC from the stack. | ||||||||
54993 | LD D,A | D=A. | ||||||||
54994 | LD A,(53831) | A=*Flag_Orientation. | ||||||||
Moves the orientation flag into the carry flag.
|
||||||||||
54997 | RRCA | Rotate A right one position, setting the carry flag if bit 0 was set. | ||||||||
54998 | JP C,PrintSprite_Mirrored_0 | Jump to PrintSprite_Mirrored_0 if the carry flag is set. | ||||||||
55001 | EX AF,AF' | Exchange the AF register with the shadow AF register. | ||||||||
55002 | LD E,A | E=A. | ||||||||
55003 | LD L,C | L=C. | ||||||||
55004 | EXX | Switch to the shadow registers. | ||||||||
55005 | LD A,(HL) | A=*HL. | ||||||||
55006 | INC HL | Increment HL by one. | ||||||||
55007 | LD H,(HL) | H=*HL. | ||||||||
55008 | LD L,A | L=A. | ||||||||
PrintSprite_0 | 55009 | EXX | Switch back to the normal registers. | |||||||
55010 | LD A,C | Jump to PrintSprite_1 if C is not equal to L. | ||||||||
55011 | CP L | |||||||||
55012 | JP NZ,PrintSprite_1 | |||||||||
55015 | LD A,B | A=B. | ||||||||
55016 | AND %11111000 | Keep only bits 3-7. | ||||||||
55018 | ADD A,107 | A+=107. | ||||||||
55020 | LD H,A | H=A. | ||||||||
55021 | EX AF,AF' | Exchange the AF register with the shadow AF register. | ||||||||
55022 | LD A,B | A=B. | ||||||||
55023 | AND %00000111 | Keep only bits 0-2. | ||||||||
55025 | RRCA | RRCA. | ||||||||
55026 | RRCA | |||||||||
55027 | RRCA | |||||||||
55028 | ADD A,C | A+=C. | ||||||||
55029 | EXX | Switch to the shadow registers. | ||||||||
55030 | LD C,A | C=A. | ||||||||
55031 | EX AF,AF' | Exchange the AF register with the shadow AF register. | ||||||||
55032 | LD B,A | B=A. | ||||||||
55033 | JP PrintSprite_2 | Jump to PrintSprite_2. | ||||||||
PrintSprite_1 | 55036 | LD A,H | A=H. | |||||||
55037 | EXX | Switch back to the normal registers. | ||||||||
55038 | INC C | Increment C by one. | ||||||||
55039 | LD B,A | B=A. | ||||||||
PrintSprite_2 | 55040 | EXX | Switch to the shadow registers. | |||||||
55041 | LD A,C | A=C. | ||||||||
55042 | CP 32 | Jump to PrintSprite_6 if A is higher than 32. | ||||||||
55044 | JP NC,PrintSprite_6 | |||||||||
55047 | LD A,B | A=B. | ||||||||
55048 | CP 24 | Jump to PrintSprite_6 if A is higher than 24. | ||||||||
55050 | JP NC,PrintSprite_6 | |||||||||
55053 | EXX | Switch back to the normal registers. | ||||||||
55054 | LD A,(HL) | Jump to PrintSprite_5 if *HL is equal to 54. | ||||||||
55055 | CP 54 | |||||||||
55057 | JP Z,PrintSprite_5 | |||||||||
55060 | LD A,(DE) | Jump to PrintSprite_8 if *DE is equal to 54. | ||||||||
55061 | CP 54 | |||||||||
55063 | JP Z,PrintSprite_8 | |||||||||
55066 | INC HL | Increment HL by one. | ||||||||
55067 | INC DE | Increment DE by one. | ||||||||
55068 | LD A,(BC) | A=*BC. | ||||||||
55069 | AND (HL) | Merge the bits from *HL. | ||||||||
55070 | EX DE,HL | Exchange the DE and HL registers. | ||||||||
55071 | OR (HL) | Set the bits from *HL. | ||||||||
55072 | EX DE,HL | Exchange the DE and HL registers. | ||||||||
55073 | LD (BC),A | Write A to *BC. | ||||||||
55074 | INC DE | Increment DE by one. | ||||||||
55075 | INC HL | Increment HL by one. | ||||||||
55076 | INC B | Increment B by one. | ||||||||
55077 | LD A,(BC) | A=*BC. | ||||||||
55078 | AND (HL) | Merge the bits from *HL. | ||||||||
55079 | EX DE,HL | Exchange the DE and HL registers. | ||||||||
55080 | OR (HL) | Set the bits from *HL. | ||||||||
55081 | EX DE,HL | Exchange the DE and HL registers. | ||||||||
55082 | LD (BC),A | Write A to *BC. | ||||||||
55083 | INC DE | Increment DE by one. | ||||||||
55084 | INC HL | Increment HL by one. | ||||||||
55085 | INC B | Increment B by one. | ||||||||
55086 | LD A,(BC) | A=*BC. | ||||||||
55087 | AND (HL) | Merge the bits from *HL. | ||||||||
55088 | EX DE,HL | Exchange the DE and HL registers. | ||||||||
55089 | OR (HL) | Set the bits from *HL. | ||||||||
55090 | EX DE,HL | Exchange the DE and HL registers. | ||||||||
55091 | LD (BC),A | Write A to *BC. | ||||||||
55092 | INC DE | Increment DE by one. | ||||||||
55093 | INC HL | Increment HL by one. | ||||||||
55094 | INC B | Increment B by one. | ||||||||
55095 | LD A,(BC) | A=*BC. | ||||||||
55096 | AND (HL) | Merge the bits from *HL. | ||||||||
55097 | EX DE,HL | Exchange the DE and HL registers. | ||||||||
55098 | OR (HL) | Set the bits from *HL. | ||||||||
55099 | EX DE,HL | Exchange the DE and HL registers. | ||||||||
55100 | LD (BC),A | Write A to *BC. | ||||||||
55101 | INC DE | Increment DE by one. | ||||||||
55102 | INC HL | Increment HL by one. | ||||||||
55103 | INC B | Increment B by one. | ||||||||
55104 | LD A,(BC) | A=*BC. | ||||||||
55105 | AND (HL) | Merge the bits from *HL. | ||||||||
55106 | EX DE,HL | Exchange the DE and HL registers. | ||||||||
55107 | OR (HL) | Set the bits from *HL. | ||||||||
55108 | EX DE,HL | Exchange the DE and HL registers. | ||||||||
55109 | LD (BC),A | Write A to *BC. | ||||||||
55110 | INC DE | Increment DE by one. | ||||||||
55111 | INC HL | Increment HL by one. | ||||||||
55112 | INC B | Increment B by one. | ||||||||
55113 | LD A,(BC) | A=*BC. | ||||||||
55114 | AND (HL) | Merge the bits from *HL. | ||||||||
55115 | EX DE,HL | Exchange the DE and HL registers. | ||||||||
55116 | OR (HL) | Set the bits from *HL. | ||||||||
55117 | EX DE,HL | Exchange the DE and HL registers. | ||||||||
55118 | LD (BC),A | Write A to *BC. | ||||||||
55119 | INC DE | Increment DE by one. | ||||||||
55120 | INC HL | Increment HL by one. | ||||||||
55121 | INC B | Increment B by one. | ||||||||
55122 | LD A,(BC) | A=*BC. | ||||||||
55123 | AND (HL) | Merge the bits from *HL. | ||||||||
55124 | EX DE,HL | Exchange the DE and HL registers. | ||||||||
55125 | OR (HL) | Set the bits from *HL. | ||||||||
55126 | EX DE,HL | Exchange the DE and HL registers. | ||||||||
55127 | LD (BC),A | Write A to *BC. | ||||||||
55128 | INC DE | Increment DE by one. | ||||||||
55129 | INC HL | Increment HL by one. | ||||||||
55130 | INC B | Increment B by one. | ||||||||
55131 | LD A,(BC) | A=*BC. | ||||||||
55132 | AND (HL) | Merge the bits from *HL. | ||||||||
55133 | EX DE,HL | Exchange the DE and HL registers. | ||||||||
55134 | OR (HL) | Set the bits from *HL. | ||||||||
55135 | EX DE,HL | Exchange the DE and HL registers. | ||||||||
55136 | LD (BC),A | Write A to *BC. | ||||||||
55137 | CALL 55686 | Call 55686. | ||||||||
PrintSprite_3 | 55140 | INC DE | Increment DE by one. | |||||||
55141 | INC HL | Increment HL by one. | ||||||||
PrintSprite_4 | 55142 | EXX | Switch to the shadow registers. | |||||||
55143 | INC C | Increment C by one. | ||||||||
55144 | LD A,E | Compare E with C... | ||||||||
55145 | CP C | |||||||||
55146 | EXX | Switch back to the normal registers. | ||||||||
55147 | JP NZ,PrintSprite_0 | Jump to PrintSprite_0 if E is not equal to C on line 55144. | ||||||||
55150 | EXX | Switch to the shadow registers. | ||||||||
55151 | LD C,L | C=L. | ||||||||
55152 | INC B | Increment B by one. | ||||||||
55153 | LD A,D | Compare D with B... | ||||||||
55154 | CP B | |||||||||
55155 | EXX | Switch back to the normal registers. | ||||||||
55156 | JP NZ,PrintSprite_0 | Jump to PrintSprite_0 if D is not equal to B on line 55153. | ||||||||
55159 | RET | Return. | ||||||||
PrintSprite_5 | 55160 | LD A,(DE) | Jump to PrintSprite_3 if *DE is equal to 54. | |||||||
55161 | CP 54 | |||||||||
55163 | JP Z,PrintSprite_3 | |||||||||
55166 | INC DE | Increment DE by one. | ||||||||
55167 | INC HL | Increment HL by one. | ||||||||
55168 | LD A,(DE) | A=*DE. | ||||||||
55169 | LD (BC),A | Write A to *BC. | ||||||||
55170 | INC DE | Increment DE by one. | ||||||||
55171 | INC B | Increment B by one. | ||||||||
55172 | LD A,(DE) | A=*DE. | ||||||||
55173 | LD (BC),A | Write A to *BC. | ||||||||
55174 | INC DE | Increment DE by one. | ||||||||
55175 | INC B | Increment B by one. | ||||||||
55176 | LD A,(DE) | A=*DE. | ||||||||
55177 | LD (BC),A | Write A to *BC. | ||||||||
55178 | INC DE | Increment DE by one. | ||||||||
55179 | INC B | Increment B by one. | ||||||||
55180 | LD A,(DE) | A=*DE. | ||||||||
55181 | LD (BC),A | Write A to *BC. | ||||||||
55182 | INC DE | Increment DE by one. | ||||||||
55183 | INC B | Increment B by one. | ||||||||
55184 | LD A,(DE) | A=*DE. | ||||||||
55185 | LD (BC),A | Write A to *BC. | ||||||||
55186 | INC DE | Increment DE by one. | ||||||||
55187 | INC B | Increment B by one. | ||||||||
55188 | LD A,(DE) | A=*DE. | ||||||||
55189 | LD (BC),A | Write A to *BC. | ||||||||
55190 | INC DE | Increment DE by one. | ||||||||
55191 | INC B | Increment B by one. | ||||||||
55192 | LD A,(DE) | A=*DE. | ||||||||
55193 | LD (BC),A | Write A to *BC. | ||||||||
55194 | INC DE | Increment DE by one. | ||||||||
55195 | INC B | Increment B by one. | ||||||||
55196 | LD A,(DE) | A=*DE. | ||||||||
55197 | LD (BC),A | Write A to *BC. | ||||||||
55198 | INC DE | Increment DE by one. | ||||||||
55199 | CALL 55686 | Call 55686. | ||||||||
55202 | JP PrintSprite_4 | Jump to PrintSprite_4. | ||||||||
PrintSprite_6 | 55205 | EXX | Switch to the shadow registers. | |||||||
55206 | LD A,(DE) | A=*DE. | ||||||||
55207 | INC DE | Increment DE by one. | ||||||||
55208 | CP 54 | Jump to PrintSprite_7 if A is equal to 54. | ||||||||
55210 | JP Z,PrintSprite_7 | |||||||||
55213 | INC DE | Increment DE by eight. | ||||||||
55214 | INC DE | |||||||||
55215 | INC DE | |||||||||
55216 | INC DE | |||||||||
55217 | INC DE | |||||||||
55218 | INC DE | |||||||||
55219 | INC DE | |||||||||
55220 | INC DE | |||||||||
PrintSprite_7 | 55221 | LD A,(HL) | A=*HL. | |||||||
55222 | INC HL | Increment HL by one. | ||||||||
55223 | CP 54 | Jump to PrintSprite_4 if A is equal to 54. | ||||||||
55225 | JP Z,PrintSprite_4 | |||||||||
55228 | INC HL | Increment HL by eight. | ||||||||
55229 | INC HL | |||||||||
55230 | INC HL | |||||||||
55231 | INC HL | |||||||||
55232 | INC HL | |||||||||
55233 | INC HL | |||||||||
55234 | INC HL | |||||||||
55235 | INC HL | |||||||||
55236 | JP PrintSprite_4 | Jump to PrintSprite_4. | ||||||||
PrintSprite_8 | 55239 | INC DE | Increment DE by one. | |||||||
55240 | INC HL | Increment HL by one. | ||||||||
55241 | LD A,(BC) | A=*BC. | ||||||||
55242 | AND (HL) | Merge the bits from *HL. | ||||||||
55243 | LD (BC),A | Write A to *BC. | ||||||||
55244 | INC HL | Increment HL by one. | ||||||||
55245 | INC B | Increment B by one. | ||||||||
55246 | LD A,(BC) | A=*BC. | ||||||||
55247 | AND (HL) | Merge the bits from *HL. | ||||||||
55248 | LD (BC),A | Write A to *BC. | ||||||||
55249 | INC HL | Increment HL by one. | ||||||||
55250 | INC B | Increment B by one. | ||||||||
55251 | LD A,(BC) | A=*BC. | ||||||||
55252 | AND (HL) | Merge the bits from *HL. | ||||||||
55253 | LD (BC),A | Write A to *BC. | ||||||||
55254 | INC HL | Increment HL by one. | ||||||||
55255 | INC B | Increment B by one. | ||||||||
55256 | LD A,(BC) | A=*BC. | ||||||||
55257 | AND (HL) | Merge the bits from *HL. | ||||||||
55258 | LD (BC),A | Write A to *BC. | ||||||||
55259 | INC HL | Increment HL by one. | ||||||||
55260 | INC B | Increment B by one. | ||||||||
55261 | LD A,(BC) | A=*BC. | ||||||||
55262 | AND (HL) | Merge the bits from *HL. | ||||||||
55263 | LD (BC),A | Write A to *BC. | ||||||||
55264 | INC HL | Increment HL by one. | ||||||||
55265 | INC B | Increment B by one. | ||||||||
55266 | LD A,(BC) | A=*BC. | ||||||||
55267 | AND (HL) | Merge the bits from *HL. | ||||||||
55268 | LD (BC),A | Write A to *BC. | ||||||||
55269 | INC HL | Increment HL by one. | ||||||||
55270 | INC B | Increment B by one. | ||||||||
55271 | LD A,(BC) | A=*BC. | ||||||||
55272 | AND (HL) | Merge the bits from *HL. | ||||||||
55273 | LD (BC),A | Write A to *BC. | ||||||||
55274 | INC HL | Increment HL by one. | ||||||||
55275 | INC B | Increment B by one. | ||||||||
55276 | LD A,(BC) | A=*BC. | ||||||||
55277 | AND (HL) | Merge the bits from *HL. | ||||||||
55278 | LD (BC),A | Write A to *BC. | ||||||||
55279 | INC HL | Increment HL by one. | ||||||||
55280 | CALL 55686 | Call 55686. | ||||||||
55283 | JP PrintSprite_4 | Jump to PrintSprite_4. |
Prev: 54920 | Up: Map | Next: 55286 |