![]() |
Routines |
Prev: 28054 | Up: Map | Next: 28176 |
Used by the routine at DrawSpriteObject.
|
||||
DrawLargeSprite | 28072 | LD A,(BC) | A=*BC. | |
DrawLargeSprite_0 | 28073 | INC BC | Increment BC by one. | |
28074 | ADD A,E | A+=E. | ||
28075 | LD E,A | E=A. | ||
28076 | LD A,(BC) | A=*BC. | ||
28077 | INC BC | Increment BC by one. | ||
28078 | ADD A,D | A+=D. | ||
28079 | DEC A | Decrease A by one. | ||
28080 | LD D,A | D=A. | ||
DrawLargeSprite_1 | 28081 | CP 16 | Compare A with 16. | |
28083 | JR NC,DrawLargeSprite_2 | Jump to DrawLargeSprite_2 if A is greater than or equal to 16. | ||
28085 | LD A,E | Jump to DrawLargeSprite_5 if E is less than 32. | ||
28086 | CP 32 | |||
28088 | JR C,DrawLargeSprite_5 | |||
DrawLargeSprite_2 | 28090 | LD HL,8 | HL=0008+BC. | |
28093 | ADD HL,BC | |||
28094 | LD B,H | B=H. | ||
28095 | LD C,L | C=L. | ||
28096 | INC D | Increment D by one. | ||
DrawLargeSprite_3 | 28097 | LD A,(BC) | A=*BC. | |
28098 | INC A | Increment A by one. | ||
28099 | LD A,D | Jump to DrawLargeSprite_1 if D is not equal to 32. | ||
28100 | JR NZ,DrawLargeSprite_1 | |||
DrawLargeSprite_4 | 28102 | INC BC | Increment BC by one. | |
28103 | LD A,(BC) | Jump to DrawLargeSprite_0 if *BC is not equal to 128. | ||
28104 | CP 128 | |||
28106 | JR NZ,DrawLargeSprite_0 | |||
28108 | JP CompleteSpriteSequence | Jump to CompleteSpriteSequence. | ||
DrawLargeSprite_5 | 28111 | LD A,D | A=D. | |
28112 | ADD A,64 | A+=64. | ||
28114 | AND %01001000 | Keep only bits 3, 6. | ||
28116 | LD H,A | H=A. | ||
28117 | LD A,D | A=D. | ||
28118 | RRCA | RRCA. | ||
28119 | RRCA | RRCA. | ||
28120 | RRCA | RRCA. | ||
28121 | AND %11100000 | Keep only bits 5-7. | ||
28123 | ADD A,E | A+=E. | ||
28124 | LD L,A | L=A. | ||
28125 | CALL 28054 | Call 28054. | ||
28128 | INC H | Increment H by one. | ||
DrawLargeSprite_6 | 28129 | CALL DrawSprite | Call DrawSprite. | |
28132 | CALL ScreenBufferToAttributeBuffer | Call ScreenBufferToAttributeBuffer. | ||
28135 | INC D | Increment D by one. | ||
28136 | LD A,D | Jump to DrawLargeSprite_7 if D is less than 16. | ||
28137 | CP 16 | |||
28139 | JR C,DrawLargeSprite_7 | |||
28141 | INC BC | Increment BC by four. | ||
28142 | INC BC | |||
28143 | INC BC | |||
28144 | INC BC | |||
28145 | JR DrawLargeSprite_3 | Jump to DrawLargeSprite_3. | ||
DrawLargeSprite_7 | 28147 | ADD A,64 | A+=64. | |
28149 | AND %01001000 | Keep only bits 3, 6. | ||
28151 | LD H,A | H=A. | ||
28152 | LD A,D | A=D. | ||
28153 | RRCA | RRCA. | ||
28154 | RRCA | RRCA. | ||
28155 | RRCA | RRCA. | ||
28156 | AND %11100000 | Keep only bits 5-7. | ||
28158 | ADD A,E | A+=E. | ||
28159 | LD L,A | L=A. | ||
28160 | CALL DrawSprite | Call DrawSprite. | ||
28163 | INC H | Increment H by one. | ||
28164 | LD A,(BC) | A=*BC. | ||
28165 | INC A | Increment A by one. | ||
28166 | JR NZ,DrawLargeSprite_6 | Jump to DrawLargeSprite_6 if A is not zero. | ||
28168 | CALL 28054 | Call 28054. | ||
28171 | CALL ScreenBufferToAttributeBuffer | Call ScreenBufferToAttributeBuffer. | ||
28174 | JR DrawLargeSprite_4 | Jump to DrawLargeSprite_4. |
Prev: 28054 | Up: Map | Next: 28176 |