| alien | Routines |
| Prev: 43527 | Up: Map | Next: 44313 |
|
Draws the difficulty-selection screen and waits for a key. Clears display, fills attributes green (32), then draws the game title and five option lines using the tile-blit helper 44509. Reads port $F7FE in a loop: keys 1-4 (bits 0-3) set 33683 (reused here as difficulty, 0-3) and redraw the highlighted option; key 5 (bit 4) confirms the selection and returns. The selected difficulty level is stored at 33683 and used throughout the game to scale alien speed and crew health.
|
||||||||
| 43610 | CALL 42501 | ClearDisplay | ||||||
| 43613 | LD A,32 | green ink on black | ||||||
| 43615 | CALL 42515 | FillAttributes(32) | ||||||
| 43618 | LD HL,16450 | HL = $4042 (screen row for title) | ||||||
| 43621 | LD (31257),HL | set draw pointer | ||||||
| 43624 | LD DE,41717 | DE = 41717 (title tile data) | ||||||
| 43627 | LD B,27 | 27 characters wide | ||||||
| 43629 | CALL 44509 | blit title text | ||||||
| 43632 | LD HL,16619 | |||||||
| 43635 | LD (31257),HL | |||||||
|
This entry point is used by the routine at 42821.
|
||||||||
| 43638 | LD DE,41744 | |||||||
| 43641 | LD B,12 | |||||||
| 43643 | CALL 44509 | |||||||
|
This entry point is used by the routine at 42821.
|
||||||||
| 43646 | LD HL,18475 | |||||||
| 43649 | LD (31257),HL | |||||||
|
This entry point is used by the routine at 42821.
|
||||||||
| 43652 | LD DE,41756 | |||||||
|
This entry point is used by the routine at 42821.
|
||||||||
| 43655 | LD B,14 | |||||||
|
This entry point is used by the routine at 42821.
|
||||||||
| 43657 | CALL 44509 | |||||||
| 43660 | LD HL,18539 | |||||||
| 43663 | LD (31257),HL | |||||||
| 43666 | LD DE,41770 | |||||||
| 43669 | LD B,12 | |||||||
| 43671 | CALL 44509 | |||||||
| 43674 | LD HL,18603 | |||||||
| 43677 | LD (31257),HL | |||||||
|
This entry point is used by the routine at 42821.
|
||||||||
| 43680 | LD DE,41782 | |||||||
| 43683 | LD B,12 | |||||||
| 43685 | CALL 44509 | |||||||
| 43688 | LD HL,18667 | |||||||
| 43691 | LD (31257),HL | |||||||
|
This entry point is used by the routine at 42821.
|
||||||||
| 43694 | LD DE,41794 | |||||||
| 43697 | LD B,10 | |||||||
| 43699 | CALL 44509 | |||||||
| 43702 | LD HL,20582 | |||||||
| 43705 | LD (31257),HL | |||||||
| 43708 | LD DE,41804 | |||||||
| 43711 | LD B,21 | |||||||
| 43713 | CALL 44509 | |||||||
| 43716 | LD HL,20674 | |||||||
| 43719 | LD (31257),HL | |||||||
| 43722 | LD DE,41825 | |||||||
| 43725 | LD B,28 | |||||||
| 43727 | CALL 44509 | |||||||
| 43730 | XOR A | |||||||
| 43731 | LD (33683),A | |||||||
| 43734 | CALL 44032 | |||||||
| 43737 | LD HL,33683 | |||||||
| 43740 | LD BC,63486 | |||||||
| 43743 | IN A,(C) | |||||||
| 43745 | RRA | |||||||
| 43746 | JR NC,43762 | |||||||
| 43748 | RRA | |||||||
| 43749 | JR NC,43773 | |||||||
| 43751 | RRA | |||||||
| 43752 | JR NC,43785 | |||||||
| 43754 | RRA | |||||||
| 43755 | JR NC,43797 | |||||||
| 43757 | RRA | |||||||
| 43758 | JR NC,43809 | |||||||
| 43760 | JR 43737 | |||||||
| 43762 | LD A,(HL) | |||||||
| 43763 | AND A | |||||||
| 43764 | JR Z,43737 | |||||||
| 43766 | CALL 44032 | |||||||
| 43769 | LD (HL),0 | |||||||
| 43771 | JR 43734 | |||||||
| 43773 | LD A,(HL) | |||||||
| 43774 | CP 1 | |||||||
| 43776 | JR Z,43737 | |||||||
| 43778 | CALL 44032 | |||||||
| 43781 | LD (HL),1 | |||||||
| 43783 | JR 43734 | |||||||
| 43785 | LD A,(HL) | |||||||
| 43786 | CP 2 | |||||||
| 43788 | JR Z,43737 | |||||||
| 43790 | CALL 44032 | |||||||
| 43793 | LD (HL),2 | |||||||
| 43795 | JR 43734 | |||||||
| 43797 | LD A,(HL) | |||||||
| 43798 | CP 3 | |||||||
| 43800 | JR Z,43737 | |||||||
| 43802 | CALL 44032 | |||||||
| 43805 | LD (HL),3 | |||||||
| 43807 | JR 43734 | |||||||
| 43809 | LD A,(HL) | |||||||
| 43810 | ADD A,A | |||||||
| 43811 | LD E,A | |||||||
| 43812 | LD D,0 | |||||||
| 43814 | LD HL,41989 | |||||||
| 43817 | ADD HL,DE | |||||||
| 43818 | LD A,(HL) | |||||||
| 43819 | INC HL | |||||||
| 43820 | LD H,(HL) | |||||||
| 43821 | LD L,A | |||||||
| 43822 | LD (34637),HL | |||||||
| 43825 | LD A,(33683) | |||||||
| 43828 | CP 3 | |||||||
| 43830 | RET NZ | |||||||
| 43831 | CALL 42501 | |||||||
| 43834 | LD A,32 | |||||||
| 43836 | CALL 42515 | |||||||
| 43839 | CALL 44109 | |||||||
| 43842 | LD HL,16449 | |||||||
| 43845 | LD (31257),HL | |||||||
| 43848 | LD DE,41853 | |||||||
| 43851 | LD B,30 | |||||||
| 43853 | CALL 44509 | |||||||
| 43856 | LD A,(40502) | |||||||
| 43859 | AND A | |||||||
| 43860 | JR Z,43904 | |||||||
| 43862 | LD HL,16516 | |||||||
| 43865 | LD (31257),HL | |||||||
| 43868 | LD DE,41883 | |||||||
| 43871 | LD B,24 | |||||||
| 43873 | CALL 44509 | |||||||
| 43876 | LD HL,16548 | |||||||
| 43879 | LD (31257),HL | |||||||
| 43882 | LD DE,41907 | |||||||
| 43885 | LD B,25 | |||||||
| 43887 | CALL 44509 | |||||||
| 43890 | CALL 44093 | |||||||
| 43893 | LD BC,57342 | BC = port 57342 ($DFFE): keyboard half-row P,O,I,U,Y | ||||||
| 43896 | IN A,(C) | read keyboard row | ||||||
| 43898 | AND 16 | bit 4 = the Y key (active low) | ||||||
| 43900 | RET NZ | return if Y not pressed (keep default keys) | ||||||
| 43901 | CALL 44109 | |||||||
| 43904 | LD HL,18436 | |||||||
| 43907 | LD (31257),HL | |||||||
| 43910 | LD DE,41932 | |||||||
| 43913 | LD B,24 | |||||||
| 43915 | CALL 44509 | |||||||
| 43918 | LD HL,18500 | |||||||
| 43921 | LD (31257),HL | |||||||
| 43924 | LD DE,41956 | |||||||
| 43927 | LD B,11 | |||||||
| 43929 | CALL 44509 | |||||||
| 43932 | CALL 44093 | |||||||
| 43935 | LD (44047),BC | |||||||
| 43939 | LD (44052),A | |||||||
| 43942 | CALL 44109 | |||||||
| 43945 | LD HL,18509 | |||||||
| 43948 | LD (31257),HL | |||||||
| 43951 | LD DE,41967 | |||||||
| 43954 | LD B,4 | |||||||
| 43956 | CALL 44509 | |||||||
| 43959 | CALL 44093 | |||||||
| 43962 | LD (44059),BC | |||||||
| 43966 | LD (44064),A | |||||||
| 43969 | CALL 44109 | |||||||
| 43972 | LD HL,18509 | |||||||
| 43975 | LD (31257),HL | |||||||
| 43978 | LD DE,41971 | |||||||
| 43981 | LD B,4 | |||||||
| 43983 | CALL 44509 | |||||||
| 43986 | CALL 44093 | |||||||
| 43989 | LD (44071),BC | |||||||
| 43993 | LD (44076),A | |||||||
| 43996 | CALL 44109 | |||||||
| 43999 | LD HL,18509 | |||||||
| 44002 | LD (31257),HL | |||||||
| 44005 | LD DE,41975 | |||||||
| 44008 | LD B,14 | |||||||
| 44010 | CALL 44509 | |||||||
| 44013 | CALL 44093 | |||||||
| 44016 | LD (44083),BC | |||||||
| 44020 | LD (44088),A | |||||||
| 44023 | CALL 44109 | |||||||
| 44026 | LD A,255 | |||||||
| 44028 | LD (40502),A | |||||||
| 44031 | RET | |||||||
| 44032 | PUSH HL | |||||||
| 44033 | LD HL,22763 | |||||||
| 44036 | CALL 43219 | |||||||
| 44039 | POP HL | |||||||
| 44040 | RET | |||||||
| 44041 | LD HL,33682 | |||||||
| 44044 | LD (HL),0 | |||||||
| 44046 | LD BC,32766 | |||||||
| 44049 | IN A,(C) | |||||||
| 44051 | AND 1 | |||||||
| 44053 | JR NZ,44058 | |||||||
| 44055 | SET 2,(HL) | |||||||
| 44057 | RET | |||||||
| 44058 | LD BC,32766 | |||||||
| 44061 | IN A,(C) | |||||||
| 44063 | AND 2 | |||||||
| 44065 | JR NZ,44070 | |||||||
| 44067 | SET 3,(HL) | |||||||
| 44069 | RET | |||||||
| 44070 | LD BC,32766 | |||||||
| 44073 | IN A,(C) | |||||||
| 44075 | AND 4 | |||||||
| 44077 | JR NZ,44082 | |||||||
| 44079 | SET 4,(HL) | |||||||
| 44081 | RET | |||||||
| 44082 | LD BC,32766 | |||||||
| 44085 | IN A,(C) | |||||||
| 44087 | AND 8 | |||||||
| 44089 | RET NZ | |||||||
| 44090 | SET 1,(HL) | |||||||
| 44092 | RET | |||||||
|
This entry point is used by the routine at 44815.
|
||||||||
| 44093 | LD BC,65278 | |||||||
| 44096 | IN A,(C) | |||||||
| 44098 | AND 31 | |||||||
| 44100 | XOR 31 | |||||||
| 44102 | RET NZ | |||||||
| 44103 | RLC B | |||||||
| 44105 | JR C,44096 | |||||||
| 44107 | JR 44093 | |||||||
| 44109 | LD BC,65278 | |||||||
| 44112 | IN A,(C) | |||||||
| 44114 | AND 31 | |||||||
| 44116 | XOR 31 | |||||||
| 44118 | JR NZ,44109 | |||||||
| 44120 | RLC B | |||||||
| 44122 | JR C,44112 | |||||||
| 44124 | RET | |||||||
| 44125 | CALL 44561 | |||||||
| 44128 | XOR A | |||||||
| 44129 | LD (40503),A | |||||||
| 44132 | CALL 44651 | |||||||
| 44135 | CALL 44698 | |||||||
|
This entry point is used by the routine at 44313.
|
||||||||
| 44138 | CALL 44722 | |||||||
| 44141 | CALL 44339 | |||||||
| 44144 | CALL 44354 | |||||||
| 44147 | CALL 44428 | |||||||
| 44150 | CALL 44452 | |||||||
| 44153 | CALL 44591 | |||||||
| 44156 | JP 36457 | |||||||
|
This entry point is used by the routine at 38379.
|
||||||||
| 44159 | CALL 44561 | |||||||
| 44162 | XOR A | |||||||
| 44163 | LD (40503),A | |||||||
| 44166 | LD DE,42068 | |||||||
| 44169 | LD B,25 | |||||||
| 44171 | LD HL,16387 | |||||||
| 44174 | LD (31257),HL | |||||||
| 44177 | CALL 44509 | |||||||
| 44180 | LD HL,31253 | |||||||
| 44183 | BIT 0,(HL) | |||||||
| 44185 | JR NZ,44193 | |||||||
| 44187 | CALL 44622 | |||||||
| 44190 | JP 44144 | |||||||
| 44193 | LD A,(38364) | |||||||
| 44196 | LD (42122),A | |||||||
| 44199 | LD HL,(38366) | |||||||
| 44202 | LD (42132),HL | |||||||
| 44205 | LD HL,16451 | |||||||
| 44208 | LD (31257),HL | |||||||
| 44211 | LD B,25 | |||||||
| 44213 | LD DE,42093 | |||||||
| 44216 | CALL 44509 | |||||||
| 44219 | LD HL,16483 | |||||||
| 44222 | LD (31257),HL | |||||||
| 44225 | LD B,23 | |||||||
| 44227 | LD DE,42119 | |||||||
| 44230 | CALL 44509 | |||||||
| 44233 | CALL 44651 | |||||||
| 44236 | CALL 44722 | |||||||
| 44239 | JP 44144 | |||||||
|
This entry point is used by the routine at 44313.
|
||||||||
| 44242 | CALL 44561 | |||||||
| 44245 | XOR A | |||||||
| 44246 | LD (40503),A | |||||||
| 44249 | LD HL,16386 | |||||||
| 44252 | LD (31257),HL | |||||||
| 44255 | LD DE,42234 | |||||||
| 44258 | LD B,28 | |||||||
| 44260 | CALL 44509 | |||||||
| 44263 | LD HL,31253 | |||||||
| 44266 | BIT 0,(HL) | |||||||
| 44268 | JP NZ,44193 | |||||||
| 44271 | CALL 44622 | |||||||
| 44274 | JP 44144 | |||||||
|
This entry point is used by the routine at 38379.
|
||||||||
| 44277 | CALL 44561 | |||||||
| 44280 | LD HL,16385 | |||||||
| 44283 | LD (31257),HL | |||||||
| 44286 | LD DE,42204 | |||||||
| 44289 | LD B,30 | |||||||
| 44291 | CALL 44509 | |||||||
| 44294 | XOR A | |||||||
| 44295 | LD (40503),A | |||||||
| 44298 | LD HL,29581 | |||||||
| 44301 | LD DE,8 | |||||||
| 44304 | LD B,7 | |||||||
| 44306 | LD (HL),2 | |||||||
| 44308 | ADD HL,DE | |||||||
| 44309 | DJNZ 44306 | |||||||
| 44311 | JR 44263 | |||||||
| Prev: 43527 | Up: Map | Next: 44313 |