| Chase H.Q. | Routines |
| Prev: E20A | Up: Map | Next: E3A5 |
|
Reads a byte then a word pointer from the script -- e.g. one of the bitmap_endshot_N pointers at $E104 onward -- calls draw_endshot to blit it, then rejoins run_script's loop.
draw_endshot ($E4A9) is the montage-shot blitter, not a generic tile blit -- 64-row bitmap copy plus attribute copy.
|
||||
| es_clear_then_draw_frame | E2D9 | PUSH HL | ||
| E2DA | CALL $609C | Call $E49C (buffer zeroing thing) | ||
| E2DD | POP HL | |||
| es_draw_frame_common | E2DE | LD E,(HL) | ||
| E2DF | INC HL | |||
| E2E0 | LD D,(HL) | |||
| E2E1 | INC HL | |||
| E2E2 | LD A,(HL) | |||
| E2E3 | INC HL | |||
| E2E4 | PUSH HL | |||
| E2E5 | LD H,(HL) | |||
| E2E6 | LD L,A | |||
| E2E7 | EX DE,HL | |||
| E2E8 | CALL $60A9 | |||
| E2EB | POP HL | |||
| E2EC | INC HL | |||
| E2ED | JP $5E0D | |||
|
Command 11: clear the backbuffer, then render a run of text.
|
||||
| es_handler_render_text | E2F0 | PUSH HL | ||
| E2F1 | CALL $6099 | |||
| E2F4 | POP HL | |||
|
Command 10: render a run of text without clearing first. Reads a colour byte and a destination word from the script, then plots characters until one is found with its top bit set.
|
||||
| es_render_text_common | E2F5 | LD C,(HL) | ||
| E2F6 | INC HL | |||
| E2F7 | LD E,(HL) | |||
| E2F8 | INC HL | |||
| E2F9 | LD D,(HL) | |||
| E2FA | INC HL | |||
| E2FB | PUSH HL | |||
| E2FC | LD A,D | |||
| E2FD | RRA | |||
| E2FE | RRA | |||
| E2FF | RRA | |||
| E300 | AND $03 | |||
| E302 | ADD A,$EF | |||
| E304 | LD H,A | |||
| E305 | LD L,E | |||
| E306 | EXX | |||
| E307 | EX (SP),HL | |||
| E308 | PUSH DE | |||
| E309 | PUSH BC | |||
| es_clear_then_draw_frame_0 | E30A | LD A,(HL) | ||
| E30B | AND $7F | |||
| E30D | PUSH HL | |||
| E30E | CALL $5F1F | |||
| E311 | POP HL | |||
| E312 | BIT 7,(HL) | |||
| E314 | INC HL | |||
| E315 | JR Z,es_clear_then_draw_frame_0 | |||
| E317 | EXX | |||
| E318 | POP BC | |||
| E319 | POP DE | |||
| E31A | POP HL | |||
| E31B | EXX | |||
| E31C | JP $5E0D | |||
|
Render one end-screen character at double height. A space advances both cursors by a column and draws nothing.
|
||||
| es_plot_char | E31F | SUB $20 | ||
| E321 | JR NZ,es_plot_char_glyph | |||
| E323 | EXX | |||
| E324 | INC E | |||
| E325 | INC L | |||
| E326 | EXX | |||
| E327 | RET | |||
| es_plot_char_glyph | E328 | LD C,$12 | ||
| E32A | CP $21 | |||
| E32C | JR NC,es_clear_then_draw_frame_1 | |||
| E32E | LD C,$0B | |||
| E330 | CP $10 | |||
| E332 | JR NC,es_clear_then_draw_frame_1 | |||
| E334 | LD C,$00 | |||
| E336 | DEC A | |||
| E337 | JR Z,es_clear_then_draw_frame_2 | |||
| E339 | INC C | |||
| E33A | SUB $07 | |||
| E33C | JR Z,es_clear_then_draw_frame_2 | |||
| E33E | INC C | |||
| E33F | DEC A | |||
| E340 | JR Z,es_clear_then_draw_frame_2 | |||
| E342 | INC C | |||
| E343 | SUB $03 | |||
| E345 | JR Z,es_clear_then_draw_frame_2 | |||
| E347 | INC C | |||
| E348 | JR es_clear_then_draw_frame_2 | |||
| es_clear_then_draw_frame_1 | E34A | SUB C | ||
| E34B | LD C,A | |||
| es_clear_then_draw_frame_2 | E34C | LD A,C | ||
| E34D | RLCA | |||
| E34E | LD B,A | |||
| E34F | RLCA | |||
| E350 | ADD A,B | |||
| E351 | ADD A,C | |||
| E352 | LD B,$00 | |||
| E354 | RL B | |||
| E356 | LD C,A | |||
| E357 | LD HL,$A27A | |||
| E35A | ADD HL,BC | |||
| E35B | EXX | |||
| E35C | PUSH DE | |||
| E35D | INC E | |||
| E35E | EXX | |||
| E35F | POP DE | |||
| E360 | LD A,(HL) | |||
| E361 | LD (DE),A | |||
| E362 | INC D | |||
| E363 | LDI | |||
| E365 | DEC E | |||
| E366 | INC D | |||
| E367 | LD A,(HL) | |||
| E368 | LD (DE),A | |||
| E369 | INC D | |||
| E36A | LDI | |||
| E36C | DEC E | |||
| E36D | INC D | |||
| E36E | LD A,(HL) | |||
| E36F | LD (DE),A | |||
| E370 | INC D | |||
| E371 | LDI | |||
| E373 | DEC E | |||
| E374 | INC D | |||
| E375 | LD A,(HL) | |||
| E376 | LD (DE),A | |||
| E377 | INC D | |||
| E378 | LDI | |||
| E37A | LD A,E | |||
| E37B | ADD A,$1F | |||
| E37D | LD E,A | |||
| E37E | LD A,D | |||
| E37F | SUB $07 | |||
|
This entry point is used by the routine at handshake_table.
|
||||
| E381 | LD D,A | |||
| E382 | LD A,(HL) | |||
| E383 | LD (DE),A | |||
| E384 | INC D | |||
| E385 | LDI | |||
| E387 | DEC E | |||
| E388 | INC D | |||
| E389 | LD A,(HL) | |||
| E38A | LD (DE),A | |||
| E38B | INC D | |||
| E38C | LDI | |||
| E38E | DEC E | |||
| E38F | INC D | |||
| E390 | LD A,(HL) | |||
| E391 | LD (DE),A | |||
| E392 | INC D | |||
| E393 | LDI | |||
| E395 | DEC E | |||
| E396 | INC D | |||
| E397 | XOR A | |||
| E398 | LD (DE),A | |||
| E399 | EXX | |||
| E39A | LD B,L | |||
| E39B | LD (HL),C | |||
| E39C | LD A,L | |||
| E39D | ADD A,$20 | |||
| E39F | LD L,A | |||
| E3A0 | LD (HL),C | |||
| E3A1 | LD L,B | |||
| E3A2 | INC L | |||
| E3A3 | EXX | |||
| E3A4 | RET | |||
| Prev: E20A | Up: Map | Next: E3A5 |