![]() |
Routines |
| Prev: C0CA | Up: Map | Next: C17A |
|
Thief shows a cigarette. Clears LAST K, sets CHARS=$D3A9, draws hand with cigarette frame 1 (frame_thief_lighter_1). Polls for '0' (shoot) with timeout.
Draws frame 2 (frame_thief_lighter_2). Shows "Tem lume?" bubble (frame_bubble_street_r2c17 with CHARS=$D519). Polls again.
Delays 5 ticks. Hero replies "Não fumo" (frame_bubble_hero_r1c2 with CHARS=$D6E9). Polls again.
Clears bubbles, thief enters door, redraws idle, closes door, returns to main loop.
|
||||
|
Show cigarette
|
||||
| thief_lighter | C0F8 | LD A,$00 | Clear LAST K | |
| C0FA | LD ($5C08),A | |||
| C0FD | LD DE,$D3A9 | Set CHARS=$D3A9 (cigarette tileset) | ||
| C100 | CALL set_chars | |||
| C103 | LD HL,$BFFA | Draw hand with cigarette frame 1 (frame_thief_lighter_1) | ||
| C106 | CALL draw_frame | |||
| C109 | LD C,$60 | C = $60 (timeout outer) | ||
| thief_lighter_0 | C10B | LD B,$00 | B = 0 (inner) | |
| thief_lighter_1 | C10D | LD A,($5C08) | Poll LAST K | |
| C110 | CP $30 | If '0' pressed → shoot (lighter_shoot_flag) | ||
| C112 | JP Z,lighter_shoot_flag | Jump to shoot (lighter_shoot_flag) | ||
| C115 | DJNZ thief_lighter_1 | DJNZ inner | ||
| C117 | DEC C | DEC C outer | ||
| C118 | JR NZ,thief_lighter_0 | |||
|
Thief asks for a light
|
||||
| thief_lighter_2 | C11A | LD HL,$C093 | Draw hand with cigarette frame 2 (frame_thief_lighter_2) | |
| C11D | CALL draw_frame | |||
| C120 | LD DE,$D519 | Set CHARS=$D519, draw "Tem lume?" (frame_bubble_street_r2c17) | ||
| C123 | CALL set_chars | |||
| C126 | LD HL,$C00F | |||
| C129 | CALL draw_frame | |||
| C12C | LD A,($5C08) | Poll LAST K | ||
| C12F | CP $30 | If '0' pressed → shoot (shoot_lighter) | ||
| C131 | JP Z,shoot_lighter | Jump to shoot (shoot_lighter) | ||
| C134 | LD A,$05 | Delay 5 | ||
| C136 | CALL delay_a | |||
|
Hero refuses — "Não fumo"
|
||||
| C139 | LD DE,$D6E9 | Set CHARS=$D6E9, draw "Não fumo" (frame_bubble_hero_r1c2) | ||
| C13C | CALL set_chars | |||
| C13F | LD HL,$C067 | |||
| C142 | CALL draw_frame | |||
| C145 | LD A,($5C08) | Poll LAST K | ||
| C148 | CP $30 | If '0' pressed → shoot (shoot_lighter) | ||
| C14A | JP Z,shoot_lighter | Jump to shoot (shoot_lighter) | ||
| C14D | LD A,$04 | Delay 4 | ||
| C14F | CALL delay_a | |||
| C152 | LD HL,$C026 | Clear right bubble (frame_clear_street_r2c17) | ||
| C155 | CALL draw_frame | |||
| C158 | LD A,$02 | Delay 2 | ||
| C15A | CALL delay_a | |||
| C15D | LD A,($5C08) | Poll LAST K | ||
| C160 | CP $30 | If '0' pressed → shoot (shoot_lighter) | ||
| C162 | JP Z,shoot_lighter | Jump to shoot (shoot_lighter) | ||
|
Thief leaves
|
||||
| C165 | CALL thief_enter_door | Thief enters door (thief_enter_door) | ||
| C168 | LD HL,$BFCF | Erase thief feet as thief enters door (frame_thief_erase_feet) | ||
| C16B | CALL draw_frame | |||
| C16E | LD HL,$C052 | Clear left bubble (frame_clear_hero_r1c1_thief) | ||
| C171 | CALL draw_frame | |||
| C174 | CALL door_close | Close door (door_close) | ||
| C177 | JP main_1 | Return to main loop (main_1) | ||
| Prev: C0CA | Up: Map | Next: C17A |