![]() |
Routines |
| Prev: B09F | Up: Map | Next: B197 |
|
|
||||
| WriteSprite_ShadowBuffer | B0E6 | EXX | Switch to the shadow registers. | |
| B0E7 | LD E,(IY+$23) | E=*IY+23. | ||
| B0EA | LD D,(IY+$28) | D=*IY+28. | ||
| B0ED | LD ($A83B),SP | Write SP to Temp_StackPointer_Storage. | ||
| B0F1 | LD H,(IY+$00) | H=*IY+00. | ||
| B0F4 | LD L,$00 | L=00. | ||
| B0F6 | SRL H | |||
| B0F8 | RR L | |||
| B0FA | ADD HL,DE | |||
| B0FB | LD SP,HL | |||
| B0FC | LD A,(IY+$05) | B=*IY+05. | ||
| B0FF | LD B,A | |||
| B100 | AND %00000111 | Keep only bits 0-2. | ||
|
Self-modifying code.
|
||||
| B102 | LD ($B189),A | Write A to B189. | ||
| B105 | INC A | |||
| B106 | LD ($B129),A | |||
| B109 | LD ($B145),A | |||
| B10C | LD A,B | |||
| B10D | AND %11111000 | Keep only bits 3-7. | ||
| B10F | RRCA | |||
| B110 | RRCA | |||
| B111 | RRCA | |||
|
Self-modifying code.
|
||||
| B112 | LD ($B17B),A | Write A to B17B. | ||
| B115 | ADD A,$02 | |||
| B117 | LD E,A | |||
| B118 | LD C,$20 | |||
| B11A | LD L,(IY+$0A) | |||
| B11D | LD H,$00 | |||
| B11F | ADD HL,HL | |||
| B120 | ADD HL,HL | |||
| B121 | ADD HL,HL | |||
| B122 | ADD HL,HL | |||
| B123 | ADD HL,HL | |||
| B124 | LD D,$63 | |||
| B126 | ADD HL,DE | |||
| WriteSprite_ShadowBuffer_0 | B127 | POP DE | ||
| B128 | LD B,$00 | |||
| B12A | DEC B | |||
| B12B | JR Z,WriteSprite_ShadowBuffer_2 | |||
| B12D | SCF | |||
| B12E | LD A,$FF | |||
| WriteSprite_ShadowBuffer_1 | B130 | RR E | ||
| B132 | RR D | |||
| B134 | RRA | |||
| B135 | DJNZ WriteSprite_ShadowBuffer_1 | |||
| B137 | AND (HL) | |||
| B138 | LD (HL),A | |||
| WriteSprite_ShadowBuffer_2 | B139 | DEC HL | ||
| B13A | LD A,(HL) | |||
| B13B | AND D | |||
| B13C | LD (HL),A | |||
| B13D | DEC HL | |||
| B13E | LD A,(HL) | |||
| B13F | AND E | |||
| B140 | LD (HL),A | |||
| B141 | INC HL | |||
| B142 | INC HL | |||
| B143 | POP DE | |||
| B144 | LD B,$00 | |||
| B146 | DEC B | |||
| B147 | JR Z,WriteSprite_ShadowBuffer_4 | |||
| B149 | XOR A | |||
| WriteSprite_ShadowBuffer_3 | B14A | SRL E | ||
| B14C | RR D | |||
| B14E | RRA | |||
| B14F | DJNZ WriteSprite_ShadowBuffer_3 | |||
| B151 | OR (HL) | |||
| B152 | LD (HL),A | |||
| WriteSprite_ShadowBuffer_4 | B153 | DEC HL | ||
| B154 | LD A,(HL) | |||
| B155 | OR D | |||
| B156 | LD (HL),A | |||
| B157 | DEC HL | |||
| B158 | LD A,(HL) | |||
| B159 | OR E | |||
| B15A | LD (HL),A | |||
| B15B | LD DE,$0022 | |||
| B15E | ADD HL,DE | |||
| B15F | DEC C | |||
| B160 | JP NZ,WriteSprite_ShadowBuffer_0 | |||
| B163 | LD A,(IY+$0A) | |||
| B166 | AND %00000111 | Keep only bits 0-2. | ||
| B168 | JR Z,WriteSprite_ShadowBuffer_5 | |||
| B16A | LD B,$05 | |||
| B16C | JR WriteSprite_ShadowBuffer_6 | |||
|
Characters are 04 characters tall.
|
||||
| WriteSprite_ShadowBuffer_5 | B16E | LD B,$04 | B=04 (counter). | |
| WriteSprite_ShadowBuffer_6 | B170 | LD A,(IY+$0A) | A=*IY+0A. | |
| B173 | AND %11111000 | Keep only bits 3-7. | ||
| B175 | LD H,$00 | Create an offset in HL. | ||
| B177 | LD L,A | |||
| B178 | ADD HL,HL | HL=FB00+(HL*04). | ||
| B179 | ADD HL,HL | |||
| B17A | LD DE,$FB00 | |||
| B17D | ADD HL,DE | |||
| B17E | LD DE,$001E | DE=001E. | ||
|
Grab the characters attribute byte.
|
||||
| B181 | LD C,(IY+$1E) | C=*IY+1E. | ||
| WriteSprite_ShadowBuffer_7 | B184 | LD (HL),C | Write the attribute byte to the attribute buffer (*HL). | |
| B185 | INC HL | Increment HL by one. | ||
| B186 | LD (HL),C | Write the attribute byte to the attribute buffer (*HL). | ||
| B187 | INC HL | Increment HL by one. | ||
|
This is modified from B102.
|
||||
| B188 | LD A,$FF | B=FF. | ||
| B18A | OR A | |||
| B18B | JR Z,WriteSprite_ShadowBuffer_8 | |||
| B18D | LD (HL),C | |||
| WriteSprite_ShadowBuffer_8 | B18E | ADD HL,DE | ||
| B18F | DJNZ WriteSprite_ShadowBuffer_7 | |||
| B191 | EXX | Switch to the normal registers. | ||
| B192 | LD SP,($A83B) | Restore SP from Temp_StackPointer_Storage. | ||
| B196 | RET | Return. | ||
| Prev: B09F | Up: Map | Next: B197 |