![]() |
Routines |
| Prev: 4000 | Up: Map | Next: 75CF |
|
Draws the prison end-game scene.
Fills the screen with a black wall (32x18 chars), a red floor strip (29x4 at row 18) and a magenta bench (16x4 at row 12).
Sets CHARS=$8970 (prison tileset) and draws the static background (frame_prison_bg), then a white wall stripe.
Switches to CHARS=$3C00 (ROM font) for the "The End" text (frame_the_end), then to CHARS=$8C30 for the two-frame hero animation (frame_prison_masturbation_frame_1, frame_prison_masturbation_frame_2). Loops until any key is pressed.
Fades out (fade_out_blue), checks the high score (score_hiscore_check) and jumps to the title-screen fade (randomize_usr_1).
|
||||
|
Black wall background
|
||||
| the_end | 7530 | LD A,$11 | Set PAPER=0 (black) | |
| 7532 | RST $10 | |||
| 7533 | LD A,$00 | |||
| 7535 | RST $10 | |||
| 7536 | LD H,$80 | Fill 32x18 chars with space ($80) at (0,0) — black wall | ||
| 7538 | LD D,$00 | |||
| 753A | LD E,$00 | |||
| 753C | LD L,$20 | |||
| 753E | LD C,$12 | |||
| 7540 | CALL fill_rect | |||
|
Red floor
|
||||
| 7543 | LD A,$11 | Set PAPER=2 (red) | ||
| 7545 | RST $10 | |||
| 7546 | LD A,$02 | |||
| 7548 | RST $10 | |||
| 7549 | LD D,$12 | Fill 29x4 chars with space at (18,3) — red floor | ||
| 754B | LD E,$03 | |||
| 754D | LD L,$1D | |||
| 754F | LD C,$04 | |||
| 7551 | CALL fill_rect | |||
|
Magenta bench
|
||||
| 7554 | LD A,$11 | Set PAPER=3 (magenta) | ||
| 7556 | RST $10 | |||
| 7557 | LD A,$03 | |||
| 7559 | RST $10 | |||
| 755A | LD D,$0C | Fill 16x4 chars with space at (12,5) — magenta bench | ||
| 755C | LD E,$05 | |||
| 755E | LD L,$10 | |||
| 7560 | LD C,$04 | |||
| 7562 | CALL fill_rect | |||
|
Prison static background
|
||||
| 7565 | LD DE,$8970 | Set CHARS=$8970 (prison static tileset) | ||
| 7568 | CALL set_chars | |||
| 756B | LD A,$10 | Set INK=0 (black) | ||
| 756D | RST $10 | |||
| 756E | LD A,$00 | |||
| 7570 | RST $10 | |||
| 7571 | LD A,$11 | Set PAPER=7 (white) | ||
| 7573 | RST $10 | |||
| 7574 | LD A,$07 | |||
| 7576 | RST $10 | |||
| 7577 | LD D,$00 | Print char $3E x 18 rows at (0,3) — white wall stripe | ||
| 7579 | LD E,$03 | |||
| 757B | LD L,$01 | |||
| 757D | LD C,$12 | |||
| 757F | LD H,$3E | |||
| 7581 | CALL fill_rect | |||
| 7584 | LD HL,$75E2 | Draw prison static background (frame_prison_bg) | ||
| 7587 | CALL draw_frame | |||
|
The End text
|
||||
| 758A | LD DE,$3C00 | Set CHARS=$3C00 (ROM font) | ||
| 758D | CALL set_chars | |||
| 7590 | LD HL,$77D5 | Draw "The End" text frame (frame_the_end) | ||
| 7593 | CALL draw_frame | |||
|
Hero animation loop
|
||||
| 7596 | LD DE,$8C30 | Set CHARS=$8C30 (hero prison animation tileset) | ||
| 7599 | CALL set_chars | |||
| 759C | LD HL,$7799 | Draw hero in prison — frame 1 (frame_prison_masturbation_frame_1) | ||
| 759F | CALL draw_frame | |||
| 75A2 | LD A,$00 | Clear LAST K | ||
| 75A4 | LD ($5C08),A | |||
| the_end_0 | 75A7 | LD A,$02 | Delay | |
| 75A9 | CALL delay_a | |||
| 75AC | LD HL,$77B6 | Draw hero in prison — frame 2 (frame_prison_masturbation_frame_2) | ||
| 75AF | CALL draw_frame | |||
| 75B2 | LD A,($5C08) | If any key pressed → exit (the_end_1) | ||
| 75B5 | CP $00 | |||
| 75B7 | JR NZ,the_end_1 | |||
| 75B9 | LD A,$02 | Delay | ||
| 75BB | CALL delay_a | |||
| 75BE | LD HL,$7799 | Draw hero in prison — frame 1 (frame_prison_masturbation_frame_1) | ||
| 75C1 | CALL draw_frame | |||
| 75C4 | JR the_end_0 | Loop back to delay (the_end_0) | ||
|
Exit to title
|
||||
| the_end_1 | 75C6 | CALL fade_out_blue | Fade out to blue (fade_out_blue) | |
| 75C9 | CALL score_hiscore_check | Check and update high score (score_hiscore_check) | ||
| 75CC | JP randomize_usr_1 | Jump to title-screen fade (randomize_usr_1) | ||
| Prev: 4000 | Up: Map | Next: 75CF |