| Chase H.Q. | Routines |
| Prev: E3B7 | Up: Map | Next: E46D |
|
Called via the interpreter's self-modified $E030 dispatch. The gate byte at $E06C only lets it run on alternate calls. When it does run it walks all 512 attribute cells of $5900..$5AFF against the matching backbuffer bytes at $F000..$F1FF, which other code has rasterised the glyph shapes into: cells with BRIGHT set are left alone, cells whose masked colour already matches the backbuffer are copied verbatim, and the rest step their ink and paper fields one unit toward the target. Repeated over several frames this reveals the glyphs as a gradual colour change.
|
||||
| es_attribute_fade_in | E42E | LD HL,$5C6C | HL -> data_e06c [$E06C] | |
| E431 | RLC (HL) | 50-50 pattern, rotate in place | ||
| E433 | RET C | Return when bit set | ||
| E434 | LD HL,$5900 | Middle band of attributes | ||
| E437 | LD DE,$F000 | Backbuffer | ||
| es_attribute_fade_in_0 | E43A | BIT 6,(HL) | Leave the cell alone if BRIGHT is set | |
| E43C | JR NZ,es_attribute_fade_in_2 | |||
| E43E | LD A,(DE) | |||
| E43F | AND $3F | |||
| E441 | CP (HL) | |||
| E442 | JR NZ,e452 | |||
| E444 | LD A,(DE) | |||
| es_attribute_fade_in_1 | E445 | LD (HL),A | ||
| es_attribute_fade_in_2 | E446 | INC E | ||
| E447 | INC L | |||
| E448 | JR NZ,es_attribute_fade_in_0 | |||
| E44A | INC D | |||
| E44B | INC H | |||
| E44C | LD A,H | |||
| E44D | CP $5B | |||
| E44F | JR NZ,es_attribute_fade_in_0 | |||
| E451 | RET | |||
| e452 | E452 | LD B,A | ||
| E453 | LD A,(HL) | |||
| E454 | AND $07 | |||
| E456 | LD C,A | |||
| E457 | LD A,B | |||
| E458 | AND $07 | |||
| E45A | CP C | |||
| E45B | JR Z,es_attribute_fade_in_3 | |||
| E45D | INC C | |||
| es_attribute_fade_in_3 | E45E | LD A,B | ||
| E45F | AND $38 | |||
| E461 | LD B,A | |||
| E462 | LD A,(HL) | |||
| E463 | AND $38 | |||
| E465 | CP B | |||
| E466 | JR Z,es_attribute_fade_in_4 | |||
| E468 | ADD A,$08 | |||
| es_attribute_fade_in_4 | E46A | OR C | ||
| E46B | JR es_attribute_fade_in_1 | |||
| Prev: E3B7 | Up: Map | Next: E46D |