Home » Archimedes archive » Archimedes World » AW-1993-12.adf » AWDec93 » !AWDec93/Goodies/Lander/!Lander/!RunImage
!AWDec93/Goodies/Lander/!Lander/!RunImage
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Archimedes World » AW-1993-12.adf » AWDec93 |
Filename: | !AWDec93/Goodies/Lander/!Lander/!RunImage |
Read OK: | ✔ |
File size: | 5A83 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10 REM >!RunImage 20 REM Micalsoft Lander 30 REM LEN Mike Puddephat 24-Jan-93 40 50 ON ERROR PROCexit_lander 60 70 PROCset_up_game 80 PROCload_modules 90 PROCdeclare_variables 100 PROCload_sprites 110 PROCload_high_scores 120 PROCassembler 130 140 REPEAT 150 PROCset_game_vars 160 PROCstart_screen 170 REPEAT 180 IF !room_check=0 THEN 190 ship_x%=entrance_x% 200 ship_y%=entrance_y% 210 fall=0 220 side=0 230 dead%=FALSE 240 PROCdisplay_room 250 PROCdisplay_lives 260 PROCflash_ship 270 ELSE 280 !room_check=0 290 ENDIF 300 REPEAT 310 !xpos=ship_x%:!ypos=ship_y%:CALL check_death 320 PROCcheck_death 330 WAIT 340 CALL display_ship 350 !R%=RND(2) 360 ship_y%+=fall:fall-=gravity 370 ship_x%+=side 380 IF INKEY-74 AND !fuel%>0 THEN 390 fall+=0.5 400 !thrust%=0 410 ELSE 420 !thrust%=1 430 !R%=0 440 ENDIF 450 !xpos=ship_x%:!ypos=ship_y% 460 CALL display_ship 470 IF INKEY-67 side+=1 480 IF INKEY-98 side-=1 490 IF INKEY-17 dead%=TRUE:lives%=1 500 side=side*0.9 510 UNTIL dead% OR !room_check<>0 OR game_over% 520 IF dead% THEN 530 PROCexplode 540 lives%-=1 550 !fuel%=922 560 ENDIF 570 IF !room_check<>0 THEN PROCchange_room 580 UNTIL lives%=0 OR game_over% 590 *FX 15 600 *CHANNELVOICE 2 GameOver 610 SOUND 2,-15,6000,1 620 IF game_over% PROCdisplay_end_message 630 time2=TIME:REPEAT UNTIL TIME-time2>150 640 IF Score%>Score%(10) PROCenter_high_score 650 UNTIL FALSE 660 : 670 DEF PROCchange_room 680 !R%=0 690 !thrust%=1 700 CASE !room_check OF 710 WHEN 1:ship_x%=1140 720 room%-=1 730 PROCdisplay_room 740 !xpos=ship_x%:!ypos=ship_y% 750 CALL display_ship 760 WHEN 2:ship_x%=60 770 room%+=1 780 PROCdisplay_room 790 !xpos=ship_x%:!ypos=ship_y% 800 CALL display_ship 810 WHEN 3:ship_y%=740 820 room%+=10 830 PROCdisplay_room 840 !xpos=ship_x%:!ypos=ship_y% 850 CALL display_ship 860 WHEN 4:ship_y%=60 870 room%-=10 880 PROCdisplay_room 890 !xpos=ship_x%:!ypos=ship_y% 900 CALL display_ship 910 ENDCASE 920 ENDPROC 930 : 940 DEF PROCdeclare_variables 950 VOICES 4 960 *SpriteSize 32K 970 DIM sp_block% &5400 980 DIM block% 256 990 DIM work% 32 1000 DIM text_print% 256 1010 particles%=7 1020 max_objects%=83 1030 key_num%=0 1040 DIM part_x%(particles%),part_y%(particles%) 1050 DIM part_xv%(particles%),part_yv%(particles%) 1060 DIM part_c%(particles%) 1070 gravity=0.25 1080 fy_pos%=1024:f_size%=12 1090 RoomSize%=&400 1100 DIM Object%(100),Key%(6),Fuel(100) 1110 DIM Name$(10),Score%(10) 1120 DIM colour%(6) 1130 colour%(1)=2:colour%(2)=12:colour%(3)=31 1140 colour%(4)=51:colour%(5)=58:colour%(6)=45 1150 instructions%=FALSE 1160 just_loaded%=TRUE 1170 DIM object$(4),title$(4) 1180 object$(0)="platform":title$(0)="Re-fuelling Platform" 1190 object$(1)="ship0":title$(1)="Lander Craft" 1200 object$(2)="object":title$(2)="Radioactive Debris" 1210 object$(3)="key1":title$(3)="Security Key" 1220 object$(4)="door1":title$(4)="Security Door" 1230 DIM room_data% &3C00 1240 OSCLI("LOAD <Lander$Dir>.Rooms "+STR$~room_data%) 1250 DIM room_index_data% &100 1260 OSCLI("LOAD <Lander$Dir>.RoomsIndex "+STR$~room_index_data%) 1270 ENDPROC 1280 : 1290 DEF PROCload_sprites 1300 sp_block%!0=&5000 1310 sp_block%!8=16 1320 $work%="<Lander$Dir>.SprFile" 1330 block%!0=work% 1340 SYS "OS_SpriteOp",9,sp_block% 1350 SYS "OS_SpriteOp",10,sp_block%,block%!0 1360 ENDPROC 1370 : 1380 DEF PROCdisplay_sprite(name$, x_pos%, y_pos%) 1390 x_pos%=(x_pos%/4)*4:y_pos%=(y_pos%/4)*4 1400 $work%=name$:block%!0=work% 1410 SYS "OS_SpriteOp",34,sp_block%,block%!0,x_pos%,y_pos%,&03 1420 ENDPROC 1430 : 1440 DEF PROCdisplay_fuel 1450 GCOL 0,2 TINT 0 1460 RECTANGLE FILL 350,fy_pos%-20,!fuel%,f_size% 1470 VDU 5:MOVE 346,996:PRINT;"Fuel";:VDU4:OFF 1480 GCOL 0,40 TINT 0 1490 RECTANGLE 346,fy_pos%-24,930,f_size%+8 1500 ENDPROC 1510 : 1520 DEF PROCdisplay_room 1530 key_block%=FALSE 1540 entrance_x%=ship_x% 1550 entrance_y%=ship_y% 1560 VDU 28,0,31,39,3,12,26 1570 !fuel%-=4 1580 PROCdisplay_fuel 1590 !fuel%+=4 1600 done%=FALSE 1610 lb%=?(room_index_data%+(room%*2)) 1620 hb%=?(room_index_data%+(room%*2)+1) 1630 room_ptr%=room_data%+(lb%+(hb%*256)) 1640 REPEAT 1650 shape%=?room_ptr% 1660 IF shape%<>255 THEN 1670 col%=room_ptr%?1 1680 room_ptr%+=2 1690 C%=col% DIV 4 1700 T%=col% MOD 4 1710 GCOL 0,C% TINT (T%*64) 1720 CASE shape% OF 1730 WHEN 1:PROCdraw_triangle 1740 WHEN 2:PROCdraw_rectangle 1750 WHEN 3:PROCdraw_object 1760 WHEN 4:PROCdraw_platform 1770 WHEN 5,6,7,8,9,10:PROCdraw_key_block 1780 WHEN 11,12,13,14,15,16:PROCdraw_key 1790 ENDCASE 1800 ENDIF 1810 UNTIL shape%=255 1820 room_ptr%+=1 1830 IF NOT done% CALL fix_screen 1840 title$=$room_ptr% 1850 COLOUR 20 1860 GCOL 21 TINT 4 1870 LINE 0,890,1280,890 1880 LINE 0,934,1280,934 1890 PRINT TAB(FNcentre(title$),3);title$ 1900 ENDPROC 1910 : 1920 DEF FNcentre(string$) 1930 l%=LEN(string$) 1940 l%=40-l% 1950 =l%/2 1960 : 1970 DEF PROCexplode 1980 !xpos=ship_x%:!ypos=ship_y% 1990 CALL display_ship 2000 *CHANNELVOICE 3 Explode 2010 SOUND 3,-15,1900,1 2020 FOR loop%=1 TO particles% 2030 part_x%(loop%)=ship_x% 2040 part_y%(loop%)=ship_y% 2050 part_xv%(loop%)=(RND(8)-4)+(side*RND(4)) 2060 part_yv%(loop%)=10+(RND(5)*3)+fall 2070 part_c%(loop%)=RND(8)-1 2080 spr$="bit"+STR$(part_c%(loop%)) 2090 PROCdisplay_sprite(spr$,ship_x%,ship_y%) 2100 NEXT loop% 2110 FOR count%=0 TO 55 2120 FOR loop%=1 TO particles% 2130 spr$="bit"+STR$(part_c%(loop%)) 2140 PROCdisplay_sprite(spr$,part_x%(loop%),part_y%(loop%)) 2150 part_x%(loop%)+=part_xv%(loop%) 2160 part_y%(loop%)+=part_yv%(loop%) 2170 part_yv%(loop%)-=1 2180 part_c%(loop%)+=1 2190 part_c%(loop%)=part_c%(loop%) MOD 8 2200 spr$="bit"+STR$(part_c%(loop%)) 2210 PROCdisplay_sprite(spr$,part_x%(loop%),part_y%(loop%)) 2220 NEXT loop% 2230 NEXT count% 2240 FOR loop%=1 TO particles% 2250 spr$="bit"+STR$(part_c%(loop%)) 2260 PROCdisplay_sprite(spr$,part_x%(loop%),part_y%(loop%)) 2270 NEXT loop% 2280 ENDPROC 2290 : 2300 DEF PROCdisplay_lives 2310 temp%=!R% 2320 !R%=0 2330 GCOL 0 TINT 0 2340 RECTANGLE FILL 0,944,300,100 2350 IF lives%=1 ENDPROC 2360 FOR loop%=0 TO lives%-2 2370 !xpos=loop%*90:!ypos=940 2380 CALL display_ship 2390 NEXT loop% 2400 !R%=temp% 2410 ENDPROC 2420 : 2430 DEF PROCdraw_triangle 2440 px1%=!room_ptr% MOD &10000 2450 py1%=!room_ptr% DIV &10000 2460 px2%=room_ptr%!4 MOD &10000 2470 py2%=room_ptr%!4 DIV &10000 2480 px3%=room_ptr%!8 MOD &10000 2490 py3%=room_ptr%!8 DIV &10000 2500 room_ptr%+=12 2510 MOVE px1%,py1% 2520 MOVE px2%,py2% 2530 PLOT 85,px3%,py3% 2540 ENDPROC 2550 : 2560 DEF PROCdraw_rectangle 2570 px1%=!room_ptr% MOD &10000 2580 py1%=!room_ptr% DIV &10000 2590 px2%=room_ptr%!4 MOD &10000 2600 py2%=room_ptr%!4 DIV &10000 2610 room_ptr%+=8 2620 IF py2%>=0 AND py1%+py2%>876 THEN py2%=876-py1% 2630 IF py2%<0 AND py1%>876 THEN py1%=876 2640 RECTANGLE FILL px1%,py1%,px2%,py2% 2650 ENDPROC 2660 : 2670 DEF PROCdraw_object 2680 CALL fix_screen 2690 done%=TRUE 2700 obx%=!room_ptr% MOD &10000 2710 oby%=!room_ptr% DIV &10000 2720 room_ptr%+=4 2730 IF NOT(Object%(room%)) PROCdisplay_sprite("object",obx%,oby%) 2740 ENDPROC 2750 : 2760 DEF PROCassembler 2770 xwidth=32 2780 ywidth=31 2790 lander_x_len=19 2800 lander_y_len=19 2810 DIM code% &5000 2820 code%!0=149 2830 code%!4=-1 2840 SYS "OS_ReadVduVariables",code%,code% 2850 srn%=code%!0+&14000 2860 FOR pass%=0 TO 2 STEP 2 2870 P%=code% 2880 [OPT pass% 2890 .fade_screen 2900 LDR R0,fade_position 2910 MOV R3,#0 2920 .fade_loop 2930 MOV R1,#0 2940 .fade_line_loop 2950 LDR R2,[R0,R1] 2960 MOV R2,R2,LSL#1 2970 STR R2,[R0,R1] 2980 ADD R1,R1,#4 2990 CMP R1,#&C4 3000 BNE fade_line_loop 3010 ADD R3,R3,#1 3020 CMP R3,#136 3030 BEQ exit_fade 3040 ADD R0,R0,#&140 3050 B fade_loop 3060 .exit_fade 3070 MOV PC,R14 3080 3090 .fade_position 3100 EQUD (srn%-&E5C0) 3110 3120 .display_ship 3130 LDR R0,xpos 3140 MOV R0,R0,LSR#2 3150 MOV R0,R0,LSL#2 3160 STR R0,xpos 3170 LDR R0,ypos 3180 MOV R0,R0,LSR#2 3190 MOV R0,R0,LSL#2 3200 STR R0,ypos 3210 LDR R0,thrust% 3220 CMP R0,#0 3230 BEQ thrusting 3240 MOV R0,#0 3250 STR R0,R% 3260 .thrusting 3270 LDR R0,R% 3280 ADD R0,R0,#48 3290 ADR R2,title 3300 STR R0,[R2,#4] 3310 MOV R0,#34 3320 LDR R1,sp_block_pos 3330 ADR R2,title 3340 LDR R3,xpos 3350 LDR R4,ypos 3360 MOV R5,#3 3370 SWI "OS_SpriteOp" 3380 MOV PC,R14 3390 3400 .sp_block_pos 3410 EQUD (sp_block%) 3420 .title 3430 EQUS ("ship* ") 3440 ALIGN 3450 .R% 3460 EQUD(0) 3470 .thrust% 3480 EQUD(0) 3490 3500 .check_death 3510 LDR R0,xpos 3520 CMP R0,#20 3530 MOVLS R1,#1 3540 STRLS R1,room_check 3550 CMP R0,#1152 3560 MOVHI R1,#2 3570 STRHI R1,room_check 3580 LDR R0,ypos 3590 CMP R0,#20 3600 MOVLS R1,#3 3610 STRLS R1,room_check 3620 CMP R0,#768 3630 MOVHI R1,#4 3640 STRHI R1,room_check 3650 MOV R10,#0 3660 LDR R0,xpos 3670 MOV R0,R0,LSR#2 3680 MOV R0,R0,LSL#2 3690 STR R0,xpos 3700 LDR R0,ypos 3710 MOV R0,R0,LSR#2 3720 MOV R0,R0,LSL#2 3730 STR R0,ypos 3740 LDR R0,xpos 3750 MOV R0,R0,LSR#2 3760 LDR R1,ypos 3770 ADD R1,R1,#80 3780 TST R1,#%11 3790 BNE no_extra 3800 ADD R1,R1,#4 3810 .no_extra 3820 MOV R2,#1024 3830 SUB R3,R2,R1 3840 MOV R3,R3,LSR#2 3850 MOV R4,#&140 3860 MUL R6,R3,R4 3870 ADD R6,R6,R0 3880 LDR R5,top_screen_pos 3890 ADD R5,R5,R6 3900 LDR R9,craft_type 3910 CMP R9,#0 3920 LDREQ R4,lander_pos1 3930 CMP R9,#1 3940 LDREQ R4,lander_pos2 3950 CMP R9,#2 3960 LDREQ R4,lander_pos3 3970 MOV R6,#0 3980 MOV R7,#&140 3990 .y_check_loop 4000 MOV R0,#0 4010 .x_check_loop 4020 MOV R8,#255 4030 LDRB R3,[R5,R0] 4040 LDRB R2,[R4,R0] 4050 CMP R2,#0 4060 BEQ no_check 4070 CMP R2,R3 4080 BNE hit_something 4090 .no_check 4100 ADD R0,R0,#1 4110 CMP R0,#lander_x_len 4120 BNE x_check_loop 4130 ADD R6,R6,#1 4140 ADD R5,R5,R7 4150 ADD R4,R4,#lander_x_len 4160 CMP R6,#lander_y_len 4170 BNE y_check_loop 4180 MOV R0,#0 4190 STR R0,results 4200 STR R10,counts 4210 B adjust_fuel 4220 .hit_something 4230 EOR R8,R3,R2 4240 CMP R8,#18 4250 BEQ no_check 4260 CMP R8,#84 4270 BEQ no_check 4280 CMP R8,#208 4290 BNE not_re_fuel 4300 ADD R10,R10,#1 4310 BEQ no_check 4320 .not_re_fuel 4330 STR R8,results 4340 STR R10,counts 4350 B adjust_fuel 4360 4370 .top_screen_pos 4380 EQUD (srn%-&14000) 4390 .counts 4400 EQUD (0) 4410 .xpos 4420 EQUD (0) 4430 .ypos 4440 EQUD (0) 4450 .craft_type 4460 EQUD (0) 4470 .results 4480 EQUD (0) 4490 .room_check 4500 EQUD (0) 4510 .fuel% 4520 EQUD (0) 4530 .fuel_pos 4540 EQUD (srn%-&14000+&197) 4550 .ret_key 4560 EQUD (-74) 4570 .lander_pos1 4580 EQUD (sprite_data+(8*xwidth*ywidth)) 4590 .lander_pos2 4600 EQUD (sprite_data+(9*xwidth*ywidth)) 4610 .lander_pos3 4620 EQUD (sprite_data+(10*xwidth*ywidth)) 4630 4640 .adjust_fuel 4650 MOV R0,#129 4660 LDR R1,ret_key 4670 MOV R2,#255 4680 SWI "OS_Byte" 4690 CMP R1,#255 4700 BEQ fuel_used 4710 MOV PC,R14 4720 .fuel_used 4730 LDR R0,fuel% 4740 CMP R0,#0 4750 BEQ fuel_used_up 4760 LDR R1,fuel% 4770 MOV R1,R1,LSR#2 4780 LDR R2,fuel_pos 4790 ADD R2,R2,R1 4800 MOV R3,#0 4810 STRB R3,[R2] 4820 MOV R4,#&140 4830 ADD R2,R2,R4 4840 STRB R3,[R2] 4850 ADD R2,R2,R4 4860 STRB R3,[R2] 4870 ADD R2,R2,R4 4880 STRB R3,[R2] 4890 SUB R0,R0,#1 4900 STR R0,fuel% 4910 .fuel_used_up 4920 MOV PC,R14 4930 4940 .fix_screen 4950 MOV R5,#0 4960 MOV R6,#0 4970 MOV R7,#xwidth 4980 LDR R4,sprite_length 4990 MOV R10,#ywidth 5000 LDR R0,sprite_position 5010 LDR R1,screen_position 5020 MOV R12,#0 5030 .loop 5040 LDRB R2,[R1] 5050 CMP R2,#0 5060 BEQ quick_loop 5070 MUL R3,R2,R4 5080 ADD R3,R3,R5 5090 MUL R8,R6,R7 5100 ADD R3,R3,R8 5110 ADD R3,R3,R0 5120 LDRB R9,[R3] 5130 STRB R9,[R1] 5140 .quick_loop 5150 ADD R5,R5,#1 5160 CMPS R5,R7 5170 MOVEQ R5,#0 5180 ADD R1,R1,#1 5190 ADD R12,R12,#1 5200 LDR R11,line_length 5210 CMP R12,R11 5220 MOVEQ R12,#0 5230 MOVEQ R5,#0 5240 ADDEQ R6,R6,#1 5250 CMPS R6,R10 5260 MOVEQ R6,#0 5270 LDR R11,screen_length 5280 CMPS R1,R11 5290 BNE loop 5300 MOV PC,R14 5310 .screen_position 5320 EQUD (srn%-&11300) 5330 .sprite_position 5340 EQUD (sprite_data) 5350 .screen_length 5360 EQUD (srn%) 5370 .line_length 5380 EQUD (&140) 5390 .sprite_length 5400 EQUD (xwidth*ywidth) 5410 .sprite_data 5420 ] 5430 NEXT pass% 5440 OSCLI("LOAD <Lander$Dir>.SprData "+STR$~(sprite_data)) 5450 ENDPROC 5460 : 5470 DEF PROCload_modules 5480 *RMEnsure GameOver 0 RMLoad <Lander$Dir>.Sounds.GameOver 5490 *RMEnsure Explode 0 RMLoad <Lander$Dir>.Sounds.Explode 5500 *RMEnsure KeyGet 0 RMLoad <Lander$Dir>.Sounds.KeyGet 5510 *RMEnsure ObjGet 0 RMLoad <Lander$Dir>.Sounds.ObjGet 5520 *RMEnsure ReFuel 0 RMLoad <Lander$Dir>.Sounds.ReFuel 5530 *RMEnsure MemAlloc 0 RMLoad <Lander$Dir>.MemAlloc 5540 *CHANNELVOICE 4 ObjGet 5550 ENDPROC 5560 : 5570 DEF PROCcheck_death 5580 IF !counts>=4 AND ABS(fall)<10 THEN 5590 PROCre_fuel 5600 ENDPROC 5610 ELSE 5620 IF TIME-time>30 AND !counts>0 THEN 5630 dead%=TRUE 5640 ENDPROC 5650 ENDIF 5660 ENDIF 5670 option%=!results 5680 CASE option% OF 5690 WHEN 0:dead%=FALSE 5700 WHEN 118,100:PROCget_object 5710 WHEN 20,64,87,148,128,224:PROCget_key 5720 OTHERWISE 5730 IF TIME-time>40 dead%=TRUE 5740 ENDCASE 5750 ENDPROC 5760 : 5770 DEF PROCget_object 5780 PROCdisplay_sprite("object",obx%,oby%) 5790 SOUND 4,-10,4000,1 5800 Object%(room%)=TRUE 5810 PROCscore_up(150) 5820 PROCobjects_up(1) 5830 ENDPROC 5840 : 5850 DEF PROCre_fuel 5860 IF TIME-time<50 ENDPROC 5870 *CHANNELVOICE 2 ReFuel 5880 *CHANNELVOICE 3 ReFuel 5890 !xpos=ship_x%:!ypos=ship_y%:CALL display_ship 5900 !thrust%=1 5910 PROCmove_up 5920 !xpos=ship_x%:!ypos=ship_y%:CALL display_ship 5930 GCOL 0,2 TINT 0 5940 !fuel%=INT(!fuel%/4)*4 5950 b%=9:a%=0 5960 WHILE Fuel(room%)>0 AND NOT(INKEY-74) AND !fuel%<=918 AND NOT(INKEY-17) 5970 WAIT 5980 GCOL 0,2 TINT 0 5990 LINE !fuel%+350,fy_pos%-f_size%-8,!fuel%+350,fy_pos%-8 6000 GCOL 0,0 TINT 0 6010 LINEplx%+148,ply%+8+Fuel(room%),plx%+148+44,ply%+8+Fuel(room%) 6020 !fuel%+=4 6030 Fuel(room%)-=0.5 6040 IF (b% MOD 10)=9 SOUND (a% MOD 2)+2,-15,4000+(!fuel%)*2,3:a%+=1 6050 b%+=1 6060 ENDWHILE 6070 REPEAT UNTIL INKEY-74 OR INKEY-17 6080 IF INKEY-17 dead%=TRUE:lives%=1 6090 !thrust%=1 6100 fall=4:side=0 6110 !xpos=ship_x%:!ypos=ship_y%:CALL display_ship 6120 ship_y%+=count% 6130 !xpos=ship_x%:!ypos=ship_y%:CALL display_ship 6140 time=TIME 6150 ENDPROC 6160 : 6170 DEF PROCmove_up 6180 count%=0 6190 WHILE POINT(ship_x%,ship_y%+12)<>0 OR POINT(ship_x%+80,ship_y%+12)<>0 6200 ship_y%+=2 6210 count%+=2 6220 ENDWHILE 6230 ENDPROC 6240 : 6250 DEF PROCdraw_platform 6260 IF NOT(done%) CALL fix_screen:done%=TRUE 6270 plx%=!room_ptr% MOD &10000 6280 ply%=!room_ptr% DIV &10000 6290 room_ptr%+=4 6300 PROCdisplay_sprite("platform",plx%,ply%) 6310 IF Fuel(room%)<=0 ENDPROC 6320 GCOL 0,6 TINT 0 6330 RECTANGLE FILL plx%+148,ply%+8,44,Fuel(room%) 6340 ENDPROC 6350 : 6360 DEF PROCdraw_key_block 6370 IF NOT(done%) CALL fix_screen:done%=TRUE 6380 kbx%=!room_ptr% MOD &10000 6390 kby%=!room_ptr% DIV &10000 6400 kblx%=room_ptr%!4 MOD &10000 6410 kbly%=room_ptr%!4 DIV &10000 6420 room_ptr%+=8 6430 key_num%=shape%-4 6440 IF Key%(key_num%) ENDPROC 6450 GCOL 0,colour%(shape%-4) TINT 0 6460 RECTANGLE FILL kbx%,kby%,kblx%,kbly% 6470 key_block%=TRUE 6480 ENDPROC 6490 : 6500 DEF PROCdraw_key 6510 IF NOT(done%) CALL fix_screen:done%=TRUE 6520 kx%=!room_ptr% MOD &10000 6530 ky%=!room_ptr% DIV &10000 6540 room_ptr%+=4 6550 key%=shape%-10:key$="key"+STR$(key%) 6560 IF Key%(key%) ENDPROC 6570 PROCdisplay_sprite(key$,kx%,ky%) 6580 ENDPROC 6590 : 6600 DEF PROCget_key 6610 PROCdisplay_sprite(key$,kx%,ky%) 6620 *CHANNELVOICE 3 KeyGet 6630 SOUND 3,-15,1250,1 6640 PROCscore_up(250) 6650 Key%(key%)=TRUE 6660 IF key_block% AND key_num%=key% THEN 6670 GCOL 0,0 TINT 0 6680 RECTANGLE FILL kbx%,kby%,kblx%,kbly% 6690 ENDIF 6700 ENDPROC 6710 : 6720 DEF PROCdisplay_score_and_objects 6730 COLOUR 40 6740 PRINTTAB(29,1);"Score 00000"; 6750 COLOUR 11:PRINTTAB(16,1);"Complete:"; 6760 COLOUR 23 6770 PRINTTAB(25,1);"00% "; 6780 ENDPROC 6790 : 6800 DEF PROCdisplay_titles 6810 COLOUR 20 6820 T$="Micalsoft Presents" 6830 PRINTTAB(FNcentre(T$),12);T$; 6840 COLOUR 2 6850 T$="LANDER" 6860 PRINTTAB(FNcentre(T$),16);T$; 6870 COLOUR 20 6880 T$="Press I For Instructions" 6890 PRINTTAB(FNcentre(T$),21);T$; 6900 T$="Press SPACE To Play" 6910 PRINTTAB(FNcentre(T$),22);T$; 6920 ENDPROC 6930 : 6940 DEF PROCstart_screen 6950 room%=100 6960 PROCdisplay_room 6970 exit%=FALSE 6980 instructions%=FALSE 6990 IF just_loaded% THEN 7000 PROCdisplay_score_and_objects 7010 PROCdisplay_lives 7020 just_loaded%=FALSE 7030 ENDIF 7040 REPEAT 7050 PROCdisplay_titles 7060 PROCtime_out 7070 IF instructions% PROCfade_screen:PROCdisplay_instructions 7080 IF NOT(exit%) AND NOT(instructions%) PROCfade_screen 7090 IF NOT(exit%) PROCdisplay_high_scores 7100 IF NOT(exit%) PROCtime_out 7110 IF instructions% PROCfade_screen:PROCdisplay_instructions 7120 IF NOT(exit%) AND NOT(instructions%) PROCfade_screen 7130 UNTIL exit% 7140 room%=23 7150 PROCdisplay_score_and_objects 7160 ENDPROC 7170 : 7180 DEF PROCtime_out 7190 instructions%=FALSE 7200 time=TIME 7210 REPEAT UNTIL INKEY-99 OR INKEY-38 OR TIME-time>600 7220 IF INKEY-99 exit%=TRUE 7230 IF INKEY-38 instructions%=TRUE 7240 ENDPROC 7250 : 7260 DEF PROCdisplay_instructions 7270 COLOUR 20 7280 T$="INSTRUCTIONS" 7290 PRINT TAB(FNcentre(T$),10);T$; 7300 COLOUR 45 7310 t$="Hit SPACE to continue...":PRINT TAB(FNcentre(t$),25);t$ 7320 COLOUR 23 7330 VDU 28,5,24,35,12,30 7340 PRINT"Year : 2021 AD"' 7350 $text_print%="Your mission is to make safe an experimental fusion reactor on planet Mars."+CHR$13+CHR$0 7360 SYS "OS_PrettyPrint",text_print% 7370 $text_print%=CHR$13+"The reactor suffered a partial melt-down and showered radioactive material throughout the research centre."+CHR$0 7380 SYS "OS_PrettyPrint",text_print% 7390 PROCfade_instructions 7400 $text_print%="Your task is to collect the radioactive debris scattered throughout 100 rooms using the following keys to control your lander craft:"+CHR$13+CHR$0 7410 SYS "OS_PrettyPrint",text_print% 7420 $text_print%=CHR$13+" Z"+STRING$(6,CHR$31)+"- Left"+CHR$13+" X"+STRING$(6,CHR$31)+"- Right"+CHR$13+" Return - Thrust"+CHR$13+" Q"+STRING$(6,CHR$31)+"- Self Destruct"+CHR$13+CHR$0 7430 SYS "OS_PrettyPrint",text_print% 7440 PROCfade_instructions 7450 $text_print%="You only have a limited amount of fuel, but you can re-fuel your craft by landing on the grey platforms at various locations inside the centre."+CHR$13+CHR$13+CHR$0 7460 SYS "OS_PrettyPrint",text_print% 7470 $text_print%="Some rooms may be blocked by coloured security doors. If this is the case then keys of the same colour must be collected for access."+CHR$13+CHR$0 7480 SYS "OS_PrettyPrint",text_print% 7490 PROCfade_instructions 7500 VDU 5:GCOL 0,43 TINT 0 7510 space_pressed%=FALSE 7520 REPEAT 7530 num%=0 7540 WHILE num%<>5 AND NOT(space_pressed%) 7550 IF num%=0 THEN x%=220 ELSE x%=300 7560 PROCdisplay_sprite(object$(num%),x%,240) 7570 MOVE 480,272:PRINT;title$(num%); 7580 PROCroll 7590 num%+=1 7600 ENDWHILE 7610 UNTIL space_pressed% 7620 VDU4:OFF:CLS:VDU26:PROCfade_screen 7630 ENDPROC 7640 : 7650 DEF PROCroll 7660 VDU 4:OFF 7670 FOR N%=1 TO 5 7680 IF INKEY-99 space_pressed%=TRUE 7690 WAIT:WAIT:WAIT:PRINT 7700 NEXT N% 7710 time2=TIME 7720 REPEAT UNTIL TIME-time2>50 OR INKEY-99 7730 IF INKEY-99 space_pressed%=TRUE 7740 VDU 5 7750 ENDPROC 7760 : 7770 DEF PROCfade_instructions 7780 REPEAT UNTIL INKEY-99 7790 FOR N%=1 TO 20 7800 WAIT:PRINT 7810 NEXT N% 7820 ENDPROC 7830 : 7840 DEF PROCdisplay_high_scores 7850 COLOUR 3 7860 T$="High Score Table" 7870 PRINT TAB(FNcentre(T$),10);T$; 7880 T$="Press SPACE To Play" 7890 PRINT TAB(FNcentre(T$),25);T$; 7900 FOR n%=1 TO 10 7910 COLOUR 50+n% 7920 scr$=STRING$(5-LEN(STR$(Score%(n%))),"0")+STR$(Score%(n%)) 7930 PRINT TAB(8,n%+12);Name$(n%);TAB(27,n%+12);scr$ 7940 NEXT n% 7950 ENDPROC 7960 : 7970 DEF PROCfade_screen 7980 N%=0 7990 WHILE N%<50 8000 WAIT:CALL fade_screen 8010 N%+=1 8020 ENDWHILE 8030 ENDPROC 8040 : 8050 DEF PROCscore_up(add%) 8060 Score%+=add% 8070 COLOUR 40 8080 PRINTTAB(40-LEN(STR$(Score%)),1);Score% 8090 ENDPROC 8100 : 8110 DEF PROCobjects_up(add%) 8120 Objects%+=add% 8130 IF Objects%=max_objects% THEN game_over%=TRUE 8140 COLOUR 23 8150 per%=(Objects%/max_objects%)*100 8160 PRINTTAB(27-LEN(STR$(per%)),1);per%;"%"; 8170 ENDPROC 8180 : 8190 DEF PROCload_high_scores 8200 X2=OPENIN("<Lander$Dir>.HiScores") 8210 FOR N%=1 TO 10 8220 INPUT#X2,Name$(N%),Score%(N%) 8230 NEXT N% 8240 CLOSE#X2 8250 ENDPROC 8260 : 8270 DEF PROCsave_high_scores 8280 X2=OPENOUT("<Lander$Dir>.HiScores") 8290 FOR N%=1 TO 10 8300 PRINT#X2,Name$(N%),Score%(N%) 8310 NEXT N% 8320 CLOSE#X2 8330 ENDPROC 8340 : 8350 DEF PROCenter_high_score 8360 *FX 15 1 8370 COLOUR 3 8380 GCOL 0,0 TINT 0 8390 RECTANGLE FILL 180,200,900,500 8400 GCOL 0,63 TINT 0 8410 RECTANGLE 180,200,900,500 8420 T$="New High Score!" 8430 PRINT TAB(FNcentre(T$),13);T$; 8440 T$="Enter your name..." 8450 PRINT TAB(FNcentre(T$),17);T$; 8460 COLOUR 15 8470 PROCenter_name(11,23) 8480 PROCadjust_scores 8490 PROCsave_high_scores 8500 ENDPROC 8510 : 8520 DEF PROCenter_name(x_c%,y_c%) 8530 GCOL 0,44 TINT 0 8540 x_g%=x_c%*32 8550 y_g%=1024-(y_c%*32) 8560 MOVE x_g%-50,y_g%+13 8570 MOVE x_g%-10,y_g%-12 8580 PLOT 85,x_g%-50,y_g%-37 8590 entered%=FALSE 8600 count%=0 8610 enter$="" 8620 len%=18 8630 PROCdisplay_caret 8640 offset%=0 8650 REPEAT 8660 REPEAT 8670 A$=GET$ 8680 UNTIL (ASC(A$)>31 AND ASC(A$)<128) OR A$=CHR$13 8690 IF A$=CHR$13 THEN 8700 entered%=TRUE 8710 ELSE 8720 CASE ASC(A$) OF 8730 WHEN 127:IF count%>0 THEN PROCdelete_character 8740 OTHERWISE 8750 IF LEN(enter$)>=len% THEN 8760 VDU 7 8770 ELSE 8780 PROCadd_character 8790 ENDIF 8800 ENDCASE 8810 ENDIF 8820 UNTIL entered% 8830 ENDPROC 8840 : 8850 DEF PROCdelete_character 8860 count%-=1 8870 deleted_char$=RIGHT$(enter$,1) 8880 enter$=LEFT$(enter$,LEN(enter$)-1) 8890 GCOL 0,0 TINT 0 8900 RECTANGLE FILL x_g%,y_g%-52,60,80 8910 x_c%-=1 8920 x_g%=x_c%*32 8930 RECTANGLE FILL x_g%,y_g%-52,32,120 8940 PROCdisplay_caret 8950 ENDPROC 8960 : 8970 DEF PROCadd_character 8980 enter$=enter$+A$ 8990 count%+=1 9000 GCOL 0,0 TINT 0 9010 RECTANGLE FILL x_g%,y_g%-52,60,80 9020 PRINT TAB(x_c%,y_c%);A$; 9030 x_c%+=1 9040 x_g%=x_c%*32 9050 PROCdisplay_caret 9060 ENDPROC 9070 : 9080 DEF PROCdisplay_caret 9090 GCOL 0,44 TINT 0 9100 MOVE x_g%+32,y_g%+13 9110 MOVE x_g%,y_g%-12 9120 PLOT 85,x_g%+32,y_g%-37 9130 ENDPROC 9140 : 9150 DEF PROCadjust_scores 9160 N%=0 9170 REPEAT 9180 N%+=1 9190 UNTIL Score%>Score%(N%) 9200 FOR loop%=9 TO N% STEP -1 9210 Name$(loop%+1)=Name$(loop%) 9220 Score%(loop%+1)=Score%(loop%) 9230 NEXT loop% 9240 Name$(N%)=enter$ 9250 Score%(N%)=Score% 9260 ENDPROC 9270 : 9280 DEF PROCset_game_vars 9290 !room_check=0 9300 time=0 9310 start%=TRUE 9320 lives%=4 9330 Score%=0 9340 Objects%=0 9350 !fuel%=922 9360 ship_x%=461 9370 ship_y%=88 9380 !thrust%=FALSE 9390 room%=4 9400 FOR l%=0 TO 100 9410 Object%(l%)=0 9420 Fuel(l%)=80 9430 NEXT l% 9440 FOR l%=1 TO 6 9450 Key%(l%)=0 9460 NEXT l% 9470 game_over%=FALSE 9480 ENDPROC 9490 : 9500 DEF PROCflash_ship 9510 !R%=0 9520 !xpos=ship_x%:!ypos=ship_y% 9530 CALL display_ship 9540 FOR N%=1 TO 10 9550 time2=TIME 9560 REPEAT UNTIL TIME-time2>10 9570 CALL display_ship 9580 NEXT N% 9590 ENDPROC 9600 : 9610 DEF PROCset_up_game 9620 MODE 13 9630 OFF 9640 ENDPROC 9650 : 9660 DEF PROCexit_lander 9670 PRINT 9680 IF ERR<>17 THEN 9690 REPORT 9700 PRINT" at line ";ERL 9710 ELSE 9720 COLOUR 63 9730 CLS:PRINT"Returning To Desktop..." 9740 ENDIF 9750 *FX 15 9760 END 9770 : 9780 DEF PROCdisplay_end_message 9790 GCOL 0,0 TINT 0 9800 RECTANGLE FILL 180,200,900,500 9810 GCOL 0,63 TINT 0 9820 RECTANGLE 180,200,900,500 9830 COLOUR 15 9840 T$="Congratulations!" 9850 PRINT TAB(FNcentre(T$),13);T$; 9860 COLOUR 23 9870 T$="Your Mission Is Complete" 9880 PRINT TAB(FNcentre(T$),17);T$; 9890 T$="The Research Centre" 9900 PRINT TAB(FNcentre(T$),21);T$; 9910 T$="Is Saved." 9920 PRINT TAB(FNcentre(T$),22);T$; 9930 time2=TIME 9940 REPEAT UNTIL TIME-time2>500 9950 ENDPROC
� >!RunImage � Micalsoft Lander ! � � Mike Puddephat 24-Jan-93 ( 2 � � �exit_lander < F �set_up_game P �load_modules Z �declare_variables d �load_sprites n �load_high_scores x �assembler � � � � �set_game_vars � �start_screen � � � � !room_check=0 � � ship_x%=entrance_x% � ship_y%=entrance_y% � fall=0 � side=0 � dead%=� � �display_room � �display_lives �flash_ship � !room_check=0 " � , � 64 !xpos=ship_x%:!ypos=ship_y%:� check_death @ �check_death J Ȗ T � display_ship ^ !R%=�(2) h& ship_y%+=fall:fall-=gravity r ship_x%+=side | � �-74 � !fuel%>0 � � fall+=0.5 � !thrust%=0 � � � !thrust%=1 � !R%=0 � � �& !xpos=ship_x%:!ypos=ship_y% � � display_ship � � �-67 side+=1 � � �-98 side-=1 �" � �-17 dead%=�:lives%=1 � side=side*0.9 �. � dead% � !room_check<>0 � game_over% � dead% � �explode lives%-=1 & !fuel%=922 0 � :( � !room_check<>0 � �change_room D � lives%=0 � game_over% N *FX 15 X *CHANNELVOICE 2 GameOver b � 2,-15,6000,1 l( � game_over% �display_end_message v time2=�:� � �-time2>150 �, � Score%>Score%(10) �enter_high_score � � � � : � � �change_room � !R%=0 � !thrust%=1 � Ȏ !room_check � � � 1:ship_x%=1140 � room%-=1 � �display_room �+ !xpos=ship_x%:!ypos=ship_y% � � display_ship � � 2:ship_x%=60 room%+=1 �display_room + !xpos=ship_x%:!ypos=ship_y% � display_ship * � 3:ship_y%=740 4 room%+=10 > �display_room H+ !xpos=ship_x%:!ypos=ship_y% R � display_ship \ � 4:ship_y%=60 f room%-=10 p �display_room z+ !xpos=ship_x%:!ypos=ship_y% � � display_ship � � � � � : � � �declare_variables � Ƞ 4 � *SpriteSize 32K � � sp_block% &5400 � � block% 256 � � work% 32 � � text_print% 256 � particles%=7 � max_objects%=83 key_num%=0 0 � part_x%(particles%),part_y%(particles%) 2 � part_xv%(particles%),part_yv%(particles%) $ � part_c%(particles%) . gravity=0.25 8 fy_pos%=1024:f_size%=12 B RoomSize%=&400 L' � Object%(100),Key%(6),Fuel(100) V � Name$(10),Score%(10) ` � colour%(6) j/ colour%(1)=2:colour%(2)=12:colour%(3)=31 t0 colour%(4)=51:colour%(5)=58:colour%(6)=45 ~ instructions%=� � just_loaded%=� � � object$(4),title$(4) �= object$(0)="platform":title$(0)="Re-fuelling Platform" �2 object$(1)="ship0":title$(1)="Lander Craft" �9 object$(2)="object":title$(2)="Radioactive Debris" �1 object$(3)="key1":title$(3)="Security Key" �3 object$(4)="door1":title$(4)="Security Door" � � room_data% &3C00 �1 �("LOAD <Lander$Dir>.Rooms "+�~room_data%) � � room_index_data% &100 �< �("LOAD <Lander$Dir>.RoomsIndex "+�~room_index_data%) � � : � �load_sprites sp_block%!0=&5000 sp_block%!8=16 ($ $work%="<Lander$Dir>.SprFile" 2 block%!0=work% <# ș "OS_SpriteOp",9,sp_block% F- ș "OS_SpriteOp",10,sp_block%,block%!0 P � Z : d- � �display_sprite(name$, x_pos%, y_pos%) n. x_pos%=(x_pos%/4)*4:y_pos%=(y_pos%/4)*4 x" $work%=name$:block%!0=work% �? ș "OS_SpriteOp",34,sp_block%,block%!0,x_pos%,y_pos%,&03 � � � : � � �display_fuel � � 0,2 Ȝ 0 �* ȓ Ȑ 350,fy_pos%-20,!fuel%,f_size% �# � 5:� 346,996:�;"Fuel";:�4:� � � 0,40 Ȝ 0 �& ȓ 346,fy_pos%-24,930,f_size%+8 � � � : � � �display_room � key_block%=� entrance_x%=ship_x% entrance_y%=ship_y% � 28,0,31,39,3,12,26 " !fuel%-=4 , �display_fuel 6 !fuel%+=4 @ done%=� J( lb%=?(room_index_data%+(room%*2)) T* hb%=?(room_index_data%+(room%*2)+1) ^+ room_ptr%=room_data%+(lb%+(hb%*256)) h � r shape%=?room_ptr% | � shape%<>255 � � col%=room_ptr%?1 � room_ptr%+=2 � C%=col% � 4 � T%=col% � 4 � � 0,C% Ȝ (T%*64) � Ȏ shape% � � � 1:�draw_triangle �! � 2:�draw_rectangle � � 3:�draw_object � � 4:�draw_platform �, � 5,6,7,8,9,10:�draw_key_block �+ � 11,12,13,14,15,16:�draw_key � � � � shape%=255 room_ptr%+=1 & � � done% � fix_screen 0 title$=$room_ptr% : � 20 D � 21 Ȝ 4 N � 0,890,1280,890 X � 0,934,1280,934 b# � ��centre(title$),3);title$ l � v : � � �centre(string$) � l%=�(string$) � l%=40-l% � =l%/2 � : � � �explode �" !xpos=ship_x%:!ypos=ship_y% � � display_ship � *CHANNELVOICE 3 Explode � � 3,-15,1900,1 � � loop%=1 � particles% � part_x%(loop%)=ship_x% � part_y%(loop%)=ship_y% - part_xv%(loop%)=(�(8)-4)+(side*�(4)) ) part_yv%(loop%)=10+(�(5)*3)+fall part_c%(loop%)=�(8)-1 % spr$="bit"+�(part_c%(loop%)) *. �display_sprite(spr$,ship_x%,ship_y%) 4 � loop% > � count%=0 � 55 H � loop%=1 � particles% R' spr$="bit"+�(part_c%(loop%)) \> �display_sprite(spr$,part_x%(loop%),part_y%(loop%)) f* part_x%(loop%)+=part_xv%(loop%) p* part_y%(loop%)+=part_yv%(loop%) z part_yv%(loop%)-=1 � part_c%(loop%)+=1 �, part_c%(loop%)=part_c%(loop%) � 8 �' spr$="bit"+�(part_c%(loop%)) �> �display_sprite(spr$,part_x%(loop%),part_y%(loop%)) � � loop% � � count% � � loop%=1 � particles% �% spr$="bit"+�(part_c%(loop%)) �< �display_sprite(spr$,part_x%(loop%),part_y%(loop%)) � � loop% � � � : � � �display_lives temp%=!R% !R%=0 � 0 Ȝ 0 $ ȓ Ȑ 0,944,300,100 . � lives%=1 � 8 � loop%=0 � lives%-2 B! !xpos=loop%*90:!ypos=940 L � display_ship V � loop% ` !R%=temp% j � t : ~ � �draw_triangle � px1%=!room_ptr% � &10000 � py1%=!room_ptr% � &10000 � px2%=room_ptr%!4 � &10000 � py2%=room_ptr%!4 � &10000 � px3%=room_ptr%!8 � &10000 � py3%=room_ptr%!8 � &10000 � room_ptr%+=12 � � px1%,py1% � � px2%,py2% � � 85,px3%,py3% � � � : � �draw_rectangle px1%=!room_ptr% � &10000 py1%=!room_ptr% � &10000 px2%=room_ptr%!4 � &10000 (! py2%=room_ptr%!4 � &10000 2 room_ptr%+=8 <0 � py2%>=0 � py1%+py2%>876 � py2%=876-py1% F% � py2%<0 � py1%>876 � py1%=876 P ȓ Ȑ px1%,py1%,px2%,py2% Z � d : n � �draw_object x � fix_screen � done%=� � obx%=!room_ptr% � &10000 � oby%=!room_ptr% � &10000 � room_ptr%+=4 �> � �(Object%(room%)) �display_sprite("object",obx%,oby%) � � � : � � �assembler � xwidth=32 � ywidth=31 � lander_x_len=19 � lander_y_len=19 � � code% &5000 code%!0=149 code%!4=-1 + ș "OS_ReadVduVariables",code%,code% " srn%=code%!0+&14000 , � pass%=0 � 2 � 2 6 P%=code% @ [OPT pass% J .fade_screen T LDR R0,fade_position ^ MOV R3,#0 h .fade_loop r MOV R1,#0 | .fade_line_loop � LDR R2,[R0,R1] � MOV R2,R2,LSL#1 � STR R2,[R0,R1] � ADD R1,R1,#4 � CMP R1,#&C4 � BNE fade_line_loop � ADD R3,R3,#1 � CMP R3,#136 � BEQ exit_fade � ADD R0,R0,#&140 � B fade_loop � .exit_fade � MOV PC,R14 .fade_position EQUD (srn%-&E5C0) & 0 .display_ship : LDR R0,xpos D MOV R0,R0,LSR#2 N MOV R0,R0,LSL#2 X STR R0,xpos b LDR R0,ypos l MOV R0,R0,LSR#2 v MOV R0,R0,LSL#2 � STR R0,ypos � LDR R0,thrust% � CMP R0,#0 � BEQ thrusting � MOV R0,#0 � STR R0,R% � .thrusting � LDR R0,R% � ADD R0,R0,#48 � ADR R2,title � STR R0,[R2,#4] � MOV R0,#34 � LDR R1,sp_block_pos ADR R2,title LDR R3,xpos LDR R4,ypos MOV R5,#3 * SWI "OS_SpriteOp" 4 MOV PC,R14 > H .sp_block_pos R EQUD (sp_block%) \ .title f EQUS ("ship* ") p ALIGN z .R% � EQUD(0) � .thrust% � EQUD(0) � � .check_death � LDR R0,xpos � CMP R0,#20 � MOVLS R1,#1 � STRLS R1,room_check � CMP R0,#1152 � MOVHI R1,#2 � STRHI R1,room_check � LDR R0,ypos CMP R0,#20 MOVLS R1,#3 STRLS R1,room_check $ CMP R0,#768 . MOVHI R1,#4 8 STRHI R1,room_check B MOV R10,#0 L LDR R0,xpos V MOV R0,R0,LSR#2 ` MOV R0,R0,LSL#2 j STR R0,xpos t LDR R0,ypos ~ MOV R0,R0,LSR#2 � MOV R0,R0,LSL#2 � STR R0,ypos � LDR R0,xpos � MOV R0,R0,LSR#2 � LDR R1,ypos � ADD R1,R1,#80 � TST R1,#%11 � BNE no_extra � ADD R1,R1,#4 � .no_extra � MOV R2,#1024 � SUB R3,R2,R1 MOV R3,R3,LSR#2 MOV R4,#&140 MUL R6,R3,R4 ADD R6,R6,R0 ( LDR R5,top_screen_pos 2 ADD R5,R5,R6 < LDR R9,craft_type F CMP R9,#0 P LDREQ R4,lander_pos1 Z CMP R9,#1 d LDREQ R4,lander_pos2 n CMP R9,#2 x LDREQ R4,lander_pos3 � MOV R6,#0 � MOV R7,#&140 � .y_check_loop � MOV R0,#0 � .x_check_loop � MOV R8,#255 � LDRB R3,[R5,R0] � LDRB R2,[R4,R0] � CMP R2,#0 � BEQ no_check � CMP R2,R3 � BNE hit_something � .no_check ADD R0,R0,#1 CMP R0,#lander_x_len BNE x_check_loop " ADD R6,R6,#1 , ADD R5,R5,R7 6" ADD R4,R4,#lander_x_len @ CMP R6,#lander_y_len J BNE y_check_loop T MOV R0,#0 ^ STR R0,results h STR R10,counts r B adjust_fuel | .hit_something � � R8,R3,R2 � CMP R8,#18 � BEQ no_check � CMP R8,#84 � BEQ no_check � CMP R8,#208 � BNE not_re_fuel � ADD R10,R10,#1 � BEQ no_check � .not_re_fuel � STR R8,results � STR R10,counts � B adjust_fuel .top_screen_pos EQUD (srn%-&14000) & .counts 0 EQUD (0) : .xpos D EQUD (0) N .ypos X EQUD (0) b .craft_type l EQUD (0) v .results � EQUD (0) � .room_check � EQUD (0) � .fuel% � EQUD (0) � .fuel_pos �! EQUD (srn%-&14000+&197) � .ret_key � EQUD (-74) � .lander_pos1 �. EQUD (sprite_data+(8*xwidth*ywidth)) � .lander_pos2 �. EQUD (sprite_data+(9*xwidth*ywidth)) .lander_pos3 / EQUD (sprite_data+(10*xwidth*ywidth)) .adjust_fuel * MOV R0,#129 4 LDR R1,ret_key > MOV R2,#255 H SWI "OS_Byte" R CMP R1,#255 \ BEQ fuel_used f MOV PC,R14 p .fuel_used z LDR R0,fuel% � CMP R0,#0 � BEQ fuel_used_up � LDR R1,fuel% � MOV R1,R1,LSR#2 � LDR R2,fuel_pos � ADD R2,R2,R1 � MOV R3,#0 � STRB R3,[R2] � MOV R4,#&140 � ADD R2,R2,R4 � STRB R3,[R2] � ADD R2,R2,R4 � STRB R3,[R2] ADD R2,R2,R4 STRB R3,[R2] SUB R0,R0,#1 $ STR R0,fuel% . .fuel_used_up 8 MOV PC,R14 B L .fix_screen V MOV R5,#0 ` MOV R6,#0 j MOV R7,#xwidth t LDR R4,sprite_length ~ MOV R10,#ywidth �! LDR R0,sprite_position �! LDR R1,screen_position � MOV R12,#0 � .loop � LDRB R2,[R1] � CMP R2,#0 � BEQ quick_loop � MUL R3,R2,R4 � ADD R3,R3,R5 � MUL R8,R6,R7 � ADD R3,R3,R8 � ADD R3,R3,R0 LDRB R9,[R3] STRB R9,[R1] .quick_loop ADD R5,R5,#1 ( CMPS R5,R7 2 �Q R5,#0 < ADD R1,R1,#1 F ADD R12,R12,#1 P LDR R11,line_length Z CMP R12,R11 d �Q R12,#0 n �Q R5,#0 x ADDEQ R6,R6,#1 � CMPS R6,R10 � �Q R6,#0 � LDR R11,screen_length � CMPS R1,R11 � BNE loop � MOV PC,R14 � .screen_position � EQUD (srn%-&11300) � .sprite_position � EQUD (sprite_data) � .screen_length � EQUD (srn%) � .line_length EQUD (&140) .sprite_length EQUD (xwidth*ywidth) " .sprite_data , ] 6 � pass% @6 �("LOAD <Lander$Dir>.SprData "+�~(sprite_data)) J � T : ^ � �load_modules h? *RMEnsure GameOver 0 RMLoad <Lander$Dir>.Sounds.GameOver r= *RMEnsure Explode 0 RMLoad <Lander$Dir>.Sounds.Explode |; *RMEnsure KeyGet 0 RMLoad <Lander$Dir>.Sounds.KeyGet �; *RMEnsure ObjGet 0 RMLoad <Lander$Dir>.Sounds.ObjGet �; *RMEnsure ReFuel 0 RMLoad <Lander$Dir>.Sounds.ReFuel �8 *RMEnsure MemAlloc 0 RMLoad <Lander$Dir>.MemAlloc � *CHANNELVOICE 4 ObjGet � � � : � � �check_death �" � !counts>=4 � �(fall)<10 � � �re_fuel � � � � �# � �-time>30 � !counts>0 � � dead%=� � � � & option%=!results 0 Ȏ option% � : � 0:dead%=� D � 118,100:�get_object N( � 20,64,87,148,128,224:�get_key X b � �-time>40 dead%=� l � v � � : � � �get_object �* �display_sprite("object",obx%,oby%) � � 4,-10,4000,1 � Object%(room%)=� � �score_up(150) � �objects_up(1) � � � : � � �re_fuel � � �-time<50 � � *CHANNELVOICE 2 ReFuel � *CHANNELVOICE 3 ReFuel 1 !xpos=ship_x%:!ypos=ship_y%:� display_ship !thrust%=1 �move_up 1 !xpos=ship_x%:!ypos=ship_y%:� display_ship * � 0,2 Ȝ 0 4 !fuel%=�(!fuel%/4)*4 > b%=9:a%=0 H9 ȕ Fuel(room%)>0 � �(�-74) � !fuel%<=918 � �(�-17) R Ȗ \ � 0,2 Ȝ 0 f< � !fuel%+350,fy_pos%-f_size%-8,!fuel%+350,fy_pos%-8 p � 0,0 Ȝ 0 zD �plx%+148,ply%+8+Fuel(room%),plx%+148+44,ply%+8+Fuel(room%) � !fuel%+=4 � Fuel(room%)-=0.5 �? � (b% � 10)=9 � (a% � 2)+2,-15,4000+(!fuel%)*2,3:a%+=1 � b%+=1 � � � � � �-74 � �-17 � � �-17 dead%=�:lives%=1 � !thrust%=1 � fall=4:side=0 �1 !xpos=ship_x%:!ypos=ship_y%:� display_ship � ship_y%+=count% �1 !xpos=ship_x%:!ypos=ship_y%:� display_ship � time=� � : � �move_up $ count%=0 .> ȕ �ship_x%,ship_y%+12)<>0 � �ship_x%+80,ship_y%+12)<>0 8 ship_y%+=2 B count%+=2 L � V � ` : j � �draw_platform t& � �(done%) � fix_screen:done%=� ~ plx%=!room_ptr% � &10000 � ply%=!room_ptr% � &10000 � room_ptr%+=4 �, �display_sprite("platform",plx%,ply%) � � Fuel(room%)<=0 � � � 0,6 Ȝ 0 �+ ȓ Ȑ plx%+148,ply%+8,44,Fuel(room%) � � � : � � �draw_key_block �& � �(done%) � fix_screen:done%=� � kbx%=!room_ptr% � &10000 � kby%=!room_ptr% � &10000 ! kblx%=room_ptr%!4 � &10000 ! kbly%=room_ptr%!4 � &10000 room_ptr%+=8 key_num%=shape%-4 ( � Key%(key_num%) � 2! � 0,colour%(shape%-4) Ȝ 0 <" ȓ Ȑ kbx%,kby%,kblx%,kbly% F key_block%=� P � Z : d � �draw_key n& � �(done%) � fix_screen:done%=� x kx%=!room_ptr% � &10000 � ky%=!room_ptr% � &10000 � room_ptr%+=4 �( key%=shape%-10:key$="key"+�(key%) � � Key%(key%) � �$ �display_sprite(key$,kx%,ky%) � � � : � � �get_key �$ �display_sprite(key$,kx%,ky%) � *CHANNELVOICE 3 KeyGet � � 3,-15,1250,1 � �score_up(250) � Key%(key%)=� % � key_block% � key_num%=key% � � 0,0 Ȝ 0 % ȓ Ȑ kbx%,kby%,kblx%,kbly% " � , � 6 : @! � �display_score_and_objects J � 40 T �29,1);"Score 00000"; ^ � 11:�16,1);"Complete:"; h � 23 r �25,1);"00% "; | � � : � � �display_titles � � 20 � T$="Micalsoft Presents" � �centre(T$),12);T$; � � 2 � T$="LANDER" � �centre(T$),16);T$; � � 20 �$ T$="Press I For Instructions" � �centre(T$),21);T$; � T$="Press SPACE To Play" � �centre(T$),22);T$; � : � �start_screen & room%=100 0 �display_room : exit%=� D instructions%=� N � just_loaded% � X$ �display_score_and_objects b �display_lives l just_loaded%=� v � � � � �display_titles � �time_out �; � instructions% �fade_screen:�display_instructions �3 � �(exit%) � �(instructions%) �fade_screen �( � �(exit%) �display_high_scores � � �(exit%) �time_out �; � instructions% �fade_screen:�display_instructions �3 � �(exit%) � �(instructions%) �fade_screen � � exit% � room%=23 �! �display_score_and_objects � � : � �time_out instructions%=� time=� *# � � �-99 � �-38 � �-time>600 4 � �-99 exit%=� > � �-38 instructions%=� H � R : \ � �display_instructions f � 20 p T$="INSTRUCTIONS" z � ��centre(T$),10);T$; � � 45 �: t$="Hit SPACE to continue...":� ��centre(t$),25);t$ � � 23 � � 28,5,24,35,12,30 � �"Year : 2021 AD"' �h $text_print%="Your mission is to make safe an experimental fusion reactor on planet Mars."+�13+�0 �& ș "OS_PrettyPrint",text_print% ʇ $text_print%=�13+"The reactor suffered a partial melt-down and showered radioactive material throughout the research centre."+�0 �& ș "OS_PrettyPrint",text_print% � �fade_instructions � $text_print%="Your task is to collect the radioactive debris scattered throughout 100 rooms using the following keys to control your lander craft:"+�13+�0 �& ș "OS_PrettyPrint",text_print% �� $text_print%=�13+" Z"+�6,�31)+"- Left"+�13+" X"+�6,�31)+"- Right"+�13+" Return - Thrust"+�13+" Q"+�6,�31)+"- Self Destruct"+�13+�0 & ș "OS_PrettyPrint",text_print% �fade_instructions � $text_print%="You only have a limited amount of fuel, but you can re-fuel your craft by landing on the grey platforms at various locations inside the centre."+�13+�13+�0 $& ș "OS_PrettyPrint",text_print% .� $text_print%="Some rooms may be blocked by coloured security doors. If this is the case then keys of the same colour must be collected for access."+�13+�0 8& ș "OS_PrettyPrint",text_print% B �fade_instructions L � 5:� 0,43 Ȝ 0 V space_pressed%=� ` � j num%=0 t' ȕ num%<>5 � �(space_pressed%) ~% � num%=0 � x%=220 � x%=300 �0 �display_sprite(object$(num%),x%,240) �$ � 480,272:�;title$(num%); � �roll � num%+=1 � � � � space_pressed% � �4:�:�:�26:�fade_screen � � � : � � �roll � � 4:� � � N%=1 � 5 � �-99 space_pressed%=� Ȗ:Ȗ:Ȗ:� � N% time2=� ( � � �-time2>50 � �-99 2 � �-99 space_pressed%=� < � 5 F � P : Z � �fade_instructions d � � �-99 n � N%=1 � 20 x Ȗ:� � � N% � � � : � � �display_high_scores � � 3 � T$="High Score Table" � � ��centre(T$),10);T$; � T$="Press SPACE To Play" � � ��centre(T$),25);T$; � � n%=1 � 10 � � 50+n% �4 scr$=�5-�(�(Score%(n%))),"0")+�(Score%(n%)) �. � �8,n%+12);Name$(n%);�27,n%+12);scr$ � n% � : " � �fade_screen , N%=0 6 ȕ N%<50 @ Ȗ:� fade_screen J N%+=1 T � ^ � h : r � �score_up(add%) | Score%+=add% � � 40 �" �40-�(�(Score%)),1);Score% � � � : � � �objects_up(add%) � Objects%+=add% �- � Objects%=max_objects% � game_over%=� � � 23 �' per%=(Objects%/max_objects%)*100 �# �27-�(�(per%)),1);per%;"%"; � � � : � � �load_high_scores $ X2=�("<Lander$Dir>.HiScores") � N%=1 � 10 " �#X2,Name$(N%),Score%(N%) & � N% 0 �#X2 : � D : N � �save_high_scores X$ X2=�("<Lander$Dir>.HiScores") b � N%=1 � 10 l" �#X2,Name$(N%),Score%(N%) v � N% � �#X2 � � � : � � �enter_high_score � *FX 15 1 � � 3 � � 0,0 Ȝ 0 � ȓ Ȑ 180,200,900,500 � � 0,63 Ȝ 0 � ȓ 180,200,900,500 � T$="New High Score!" � � ��centre(T$),13);T$; � T$="Enter your name..." ! � ��centre(T$),17);T$; ! � 15 ! �enter_name(11,23) ! �adjust_scores !* �save_high_scores !4 � !> : !H � �enter_name(x_c%,y_c%) !R � 0,44 Ȝ 0 !\ x_g%=x_c%*32 !f y_g%=1024-(y_c%*32) !p � x_g%-50,y_g%+13 !z � x_g%-10,y_g%-12 !� � 85,x_g%-50,y_g%-37 !� entered%=� !� count%=0 !� enter$="" !� len%=18 !� �display_caret !� offset%=0 !� � !� � !� A$=� !�* � (�(A$)>31 � �(A$)<128) � A$=�13 !� � A$=�13 � !� entered%=� " � " Ȏ �(A$) � "2 � 127:� count%>0 � �delete_character "$ ".! � �(enter$)>=len% � "8 � 7 "B � "L �add_character "V � "` � "j � "t � entered% "~ � "� : "� � �delete_character "� count%-=1 "� deleted_char$=�enter$,1) "�" enter$=�enter$,�(enter$)-1) "� � 0,0 Ȝ 0 "� ȓ Ȑ x_g%,y_g%-52,60,80 "� x_c%-=1 "� x_g%=x_c%*32 "� ȓ Ȑ x_g%,y_g%-52,32,120 "� �display_caret "� � # : # � �add_character # enter$=enter$+A$ # count%+=1 #( � 0,0 Ȝ 0 #2 ȓ Ȑ x_g%,y_g%-52,60,80 #< � �x_c%,y_c%);A$; #F x_c%+=1 #P x_g%=x_c%*32 #Z �display_caret #d � #n : #x � �display_caret #� � 0,44 Ȝ 0 #� � x_g%+32,y_g%+13 #� � x_g%,y_g%-12 #� � 85,x_g%+32,y_g%-37 #� � #� : #� � �adjust_scores #� N%=0 #� � #� N%+=1 #� � Score%>Score%(N%) #� � loop%=9 � N% � -1 #�$ Name$(loop%+1)=Name$(loop%) $& Score%(loop%+1)=Score%(loop%) $ � loop% $ Name$(N%)=enter$ $" Score%(N%)=Score% $, � $6 : $@ � �set_game_vars $J !room_check=0 $T time=0 $^ start%=� $h lives%=4 $r Score%=0 $| Objects%=0 $� !fuel%=922 $� ship_x%=461 $� ship_y%=88 $� !thrust%=� $� room%=4 $� � l%=0 � 100 $� Object%(l%)=0 $� Fuel(l%)=80 $� � l% $� � l%=1 � 6 $� Key%(l%)=0 $� � l% $� game_over%=� % � % : % � �flash_ship %& !R%=0 %0" !xpos=ship_x%:!ypos=ship_y% %: � display_ship %D � N%=1 � 10 %N time2=� %X � � �-time2>10 %b � display_ship %l � N% %v � %� : %� � �set_up_game %� � 13 %� � %� � %� : %� � �exit_lander %� � %� � �<>17 � %� � %� �" at line ";� %� � %� � 63 && �:�"Returning To Desktop..." & � & *FX 15 & � &* : &4 � �display_end_message &> � 0,0 Ȝ 0 &H ȓ Ȑ 180,200,900,500 &R � 0,63 Ȝ 0 &\ ȓ 180,200,900,500 &f � 15 &p T$="Congratulations!" &z � ��centre(T$),13);T$; &� � 23 &�$ T$="Your Mission Is Complete" &� � ��centre(T$),17);T$; &� T$="The Research Centre" &� � ��centre(T$),21);T$; &� T$="Is Saved." &� � ��centre(T$),22);T$; &� time2=� &� � � �-time2>500 &� � �
00000000 0d 00 0a 11 20 f4 20 3e 21 52 75 6e 49 6d 61 67 |.... . >!RunImag| 00000010 65 0d 00 14 17 20 f4 20 4d 69 63 61 6c 73 6f 66 |e.... . Micalsof| 00000020 74 20 4c 61 6e 64 65 72 0d 00 1e 21 20 f4 20 a9 |t Lander...! . .| 00000030 20 4d 69 6b 65 20 50 75 64 64 65 70 68 61 74 20 | Mike Puddephat | 00000040 32 34 2d 4a 61 6e 2d 39 33 0d 00 28 04 0d 00 32 |24-Jan-93..(...2| 00000050 15 20 ee 20 85 20 f2 65 78 69 74 5f 6c 61 6e 64 |. . . .exit_land| 00000060 65 72 0d 00 3c 04 0d 00 46 11 20 f2 73 65 74 5f |er..<...F. .set_| 00000070 75 70 5f 67 61 6d 65 0d 00 50 12 20 f2 6c 6f 61 |up_game..P. .loa| 00000080 64 5f 6d 6f 64 75 6c 65 73 0d 00 5a 17 20 f2 64 |d_modules..Z. .d| 00000090 65 63 6c 61 72 65 5f 76 61 72 69 61 62 6c 65 73 |eclare_variables| 000000a0 0d 00 64 12 20 f2 6c 6f 61 64 5f 73 70 72 69 74 |..d. .load_sprit| 000000b0 65 73 0d 00 6e 16 20 f2 6c 6f 61 64 5f 68 69 67 |es..n. .load_hig| 000000c0 68 5f 73 63 6f 72 65 73 0d 00 78 0f 20 f2 61 73 |h_scores..x. .as| 000000d0 73 65 6d 62 6c 65 72 0d 00 82 04 0d 00 8c 06 20 |sembler........ | 000000e0 f5 0d 00 96 15 20 20 20 f2 73 65 74 5f 67 61 6d |..... .set_gam| 000000f0 65 5f 76 61 72 73 0d 00 a0 14 20 20 20 f2 73 74 |e_vars.... .st| 00000100 61 72 74 5f 73 63 72 65 65 6e 0d 00 aa 08 20 20 |art_screen.... | 00000110 20 f5 0d 00 b4 1a 20 20 20 20 20 e7 20 21 72 6f | ..... . !ro| 00000120 6f 6d 5f 63 68 65 63 6b 3d 30 20 8c 0d 00 be 1f |om_check=0 .....| 00000130 20 20 20 20 20 20 20 20 73 68 69 70 5f 78 25 3d | ship_x%=| 00000140 65 6e 74 72 61 6e 63 65 5f 78 25 0d 00 c8 1f 20 |entrance_x%.... | 00000150 20 20 20 20 20 20 20 73 68 69 70 5f 79 25 3d 65 | ship_y%=e| 00000160 6e 74 72 61 6e 63 65 5f 79 25 0d 00 d2 12 20 20 |ntrance_y%.... | 00000170 20 20 20 20 20 20 66 61 6c 6c 3d 30 0d 00 dc 12 | fall=0....| 00000180 20 20 20 20 20 20 20 20 73 69 64 65 3d 30 0d 00 | side=0..| 00000190 e6 13 20 20 20 20 20 20 20 20 64 65 61 64 25 3d |.. dead%=| 000001a0 a3 0d 00 f0 19 20 20 20 20 20 20 20 20 f2 64 69 |..... .di| 000001b0 73 70 6c 61 79 5f 72 6f 6f 6d 0d 00 fa 1a 20 20 |splay_room.... | 000001c0 20 20 20 20 20 20 f2 64 69 73 70 6c 61 79 5f 6c | .display_l| 000001d0 69 76 65 73 0d 01 04 17 20 20 20 20 20 20 20 20 |ives.... | 000001e0 f2 66 6c 61 73 68 5f 73 68 69 70 0d 01 0e 0c 20 |.flash_ship.... | 000001f0 20 20 20 20 20 20 cc 0d 01 18 19 20 20 20 20 20 | ..... | 00000200 20 20 20 21 72 6f 6f 6d 5f 63 68 65 63 6b 3d 30 | !room_check=0| 00000210 0d 01 22 0a 20 20 20 20 20 cd 0d 01 2c 0a 20 20 |..". ...,. | 00000220 20 20 20 f5 0d 01 36 34 20 20 20 20 20 20 20 21 | ...64 !| 00000230 78 70 6f 73 3d 73 68 69 70 5f 78 25 3a 21 79 70 |xpos=ship_x%:!yp| 00000240 6f 73 3d 73 68 69 70 5f 79 25 3a d6 20 63 68 65 |os=ship_y%:. che| 00000250 63 6b 5f 64 65 61 74 68 0d 01 40 17 20 20 20 20 |ck_death..@. | 00000260 20 20 20 f2 63 68 65 63 6b 5f 64 65 61 74 68 0d | .check_death.| 00000270 01 4a 0d 20 20 20 20 20 20 20 c8 96 0d 01 54 19 |.J. ....T.| 00000280 20 20 20 20 20 20 20 d6 20 64 69 73 70 6c 61 79 | . display| 00000290 5f 73 68 69 70 0d 01 5e 13 20 20 20 20 20 20 20 |_ship..^. | 000002a0 21 52 25 3d b3 28 32 29 0d 01 68 26 20 20 20 20 |!R%=.(2)..h& | 000002b0 20 20 20 73 68 69 70 5f 79 25 2b 3d 66 61 6c 6c | ship_y%+=fall| 000002c0 3a 66 61 6c 6c 2d 3d 67 72 61 76 69 74 79 0d 01 |:fall-=gravity..| 000002d0 72 18 20 20 20 20 20 20 20 73 68 69 70 5f 78 25 |r. ship_x%| 000002e0 2b 3d 73 69 64 65 0d 01 7c 1e 20 20 20 20 20 20 |+=side..|. | 000002f0 20 e7 20 a6 2d 37 34 20 80 20 21 66 75 65 6c 25 | . .-74 . !fuel%| 00000300 3e 30 20 8c 0d 01 86 17 20 20 20 20 20 20 20 20 |>0 ..... | 00000310 20 20 66 61 6c 6c 2b 3d 30 2e 35 0d 01 90 18 20 | fall+=0.5.... | 00000320 20 20 20 20 20 20 20 20 20 21 74 68 72 75 73 74 | !thrust| 00000330 25 3d 30 0d 01 9a 0e 20 20 20 20 20 20 20 20 20 |%=0.... | 00000340 cc 0d 01 a4 18 20 20 20 20 20 20 20 20 20 20 21 |..... !| 00000350 74 68 72 75 73 74 25 3d 31 0d 01 ae 13 20 20 20 |thrust%=1.... | 00000360 20 20 20 20 20 20 20 21 52 25 3d 30 0d 01 b8 0c | !R%=0....| 00000370 20 20 20 20 20 20 20 cd 0d 01 c2 26 20 20 20 20 | ....& | 00000380 20 20 20 21 78 70 6f 73 3d 73 68 69 70 5f 78 25 | !xpos=ship_x%| 00000390 3a 21 79 70 6f 73 3d 73 68 69 70 5f 79 25 0d 01 |:!ypos=ship_y%..| 000003a0 cc 19 20 20 20 20 20 20 20 d6 20 64 69 73 70 6c |.. . displ| 000003b0 61 79 5f 73 68 69 70 0d 01 d6 19 20 20 20 20 20 |ay_ship.... | 000003c0 20 20 e7 20 a6 2d 36 37 20 73 69 64 65 2b 3d 31 | . .-67 side+=1| 000003d0 0d 01 e0 19 20 20 20 20 20 20 20 e7 20 a6 2d 39 |.... . .-9| 000003e0 38 20 73 69 64 65 2d 3d 31 0d 01 ea 22 20 20 20 |8 side-=1..." | 000003f0 20 20 20 20 e7 20 a6 2d 31 37 20 64 65 61 64 25 | . .-17 dead%| 00000400 3d b9 3a 6c 69 76 65 73 25 3d 31 0d 01 f4 18 20 |=.:lives%=1.... | 00000410 20 20 20 20 20 20 73 69 64 65 3d 73 69 64 65 2a | side=side*| 00000420 30 2e 39 0d 01 fe 2e 20 20 20 20 20 fd 20 64 65 |0.9.... . de| 00000430 61 64 25 20 84 20 21 72 6f 6f 6d 5f 63 68 65 63 |ad% . !room_chec| 00000440 6b 3c 3e 30 20 84 20 67 61 6d 65 5f 6f 76 65 72 |k<>0 . game_over| 00000450 25 0d 02 08 12 20 20 20 20 20 e7 20 64 65 61 64 |%.... . dead| 00000460 25 20 8c 0d 02 12 14 20 20 20 20 20 20 20 20 f2 |% ..... .| 00000470 65 78 70 6c 6f 64 65 0d 02 1c 15 20 20 20 20 20 |explode.... | 00000480 20 20 20 6c 69 76 65 73 25 2d 3d 31 0d 02 26 16 | lives%-=1..&.| 00000490 20 20 20 20 20 20 20 20 21 66 75 65 6c 25 3d 39 | !fuel%=9| 000004a0 32 32 0d 02 30 0a 20 20 20 20 20 cd 0d 02 3a 28 |22..0. ...:(| 000004b0 20 20 20 20 20 e7 20 21 72 6f 6f 6d 5f 63 68 65 | . !room_che| 000004c0 63 6b 3c 3e 30 20 8c 20 f2 63 68 61 6e 67 65 5f |ck<>0 . .change_| 000004d0 72 6f 6f 6d 0d 02 44 1e 20 20 20 fd 20 6c 69 76 |room..D. . liv| 000004e0 65 73 25 3d 30 20 84 20 67 61 6d 65 5f 6f 76 65 |es%=0 . game_ove| 000004f0 72 25 0d 02 4e 0d 20 20 20 2a 46 58 20 31 35 0d |r%..N. *FX 15.| 00000500 02 58 1f 20 20 20 2a 43 48 41 4e 4e 45 4c 56 4f |.X. *CHANNELVO| 00000510 49 43 45 20 32 20 47 61 6d 65 4f 76 65 72 0d 02 |ICE 2 GameOver..| 00000520 62 15 20 20 20 d4 20 32 2c 2d 31 35 2c 36 30 30 |b. . 2,-15,600| 00000530 30 2c 31 0d 02 6c 28 20 20 20 e7 20 67 61 6d 65 |0,1..l( . game| 00000540 5f 6f 76 65 72 25 20 f2 64 69 73 70 6c 61 79 5f |_over% .display_| 00000550 65 6e 64 5f 6d 65 73 73 61 67 65 0d 02 76 1e 20 |end_message..v. | 00000560 20 20 74 69 6d 65 32 3d 91 3a f5 20 fd 20 91 2d | time2=.:. . .-| 00000570 74 69 6d 65 32 3e 31 35 30 0d 02 80 2c 20 20 20 |time2>150..., | 00000580 e7 20 53 63 6f 72 65 25 3e 53 63 6f 72 65 25 28 |. Score%>Score%(| 00000590 31 30 29 20 f2 65 6e 74 65 72 5f 68 69 67 68 5f |10) .enter_high_| 000005a0 73 63 6f 72 65 0d 02 8a 08 20 fd 20 a3 0d 02 94 |score.... . ....| 000005b0 06 20 3a 0d 02 9e 13 20 dd 20 f2 63 68 61 6e 67 |. :.... . .chang| 000005c0 65 5f 72 6f 6f 6d 0d 02 a8 0c 20 20 20 21 52 25 |e_room.... !R%| 000005d0 3d 30 0d 02 b2 11 20 20 20 21 74 68 72 75 73 74 |=0.... !thrust| 000005e0 25 3d 31 0d 02 bc 17 20 20 20 c8 8e 20 21 72 6f |%=1.... .. !ro| 000005f0 6f 6d 5f 63 68 65 63 6b 20 ca 0d 02 c6 19 20 20 |om_check ..... | 00000600 20 20 20 c9 20 31 3a 73 68 69 70 5f 78 25 3d 31 | . 1:ship_x%=1| 00000610 31 34 30 0d 02 d0 18 20 20 20 20 20 20 20 20 20 |140.... | 00000620 20 20 20 72 6f 6f 6d 25 2d 3d 31 0d 02 da 1d 20 | room%-=1.... | 00000630 20 20 20 20 20 20 20 20 20 20 20 f2 64 69 73 70 | .disp| 00000640 6c 61 79 5f 72 6f 6f 6d 0d 02 e4 2b 20 20 20 20 |lay_room...+ | 00000650 20 20 20 20 20 20 20 20 21 78 70 6f 73 3d 73 68 | !xpos=sh| 00000660 69 70 5f 78 25 3a 21 79 70 6f 73 3d 73 68 69 70 |ip_x%:!ypos=ship| 00000670 5f 79 25 0d 02 ee 1e 20 20 20 20 20 20 20 20 20 |_y%.... | 00000680 20 20 20 d6 20 64 69 73 70 6c 61 79 5f 73 68 69 | . display_shi| 00000690 70 0d 02 f8 17 20 20 20 20 20 c9 20 32 3a 73 68 |p.... . 2:sh| 000006a0 69 70 5f 78 25 3d 36 30 0d 03 02 18 20 20 20 20 |ip_x%=60.... | 000006b0 20 20 20 20 20 20 20 20 72 6f 6f 6d 25 2b 3d 31 | room%+=1| 000006c0 0d 03 0c 1d 20 20 20 20 20 20 20 20 20 20 20 20 |.... | 000006d0 f2 64 69 73 70 6c 61 79 5f 72 6f 6f 6d 0d 03 16 |.display_room...| 000006e0 2b 20 20 20 20 20 20 20 20 20 20 20 20 21 78 70 |+ !xp| 000006f0 6f 73 3d 73 68 69 70 5f 78 25 3a 21 79 70 6f 73 |os=ship_x%:!ypos| 00000700 3d 73 68 69 70 5f 79 25 0d 03 20 1e 20 20 20 20 |=ship_y%.. . | 00000710 20 20 20 20 20 20 20 20 d6 20 64 69 73 70 6c 61 | . displa| 00000720 79 5f 73 68 69 70 0d 03 2a 18 20 20 20 20 20 c9 |y_ship..*. .| 00000730 20 33 3a 73 68 69 70 5f 79 25 3d 37 34 30 0d 03 | 3:ship_y%=740..| 00000740 34 19 20 20 20 20 20 20 20 20 20 20 20 20 72 6f |4. ro| 00000750 6f 6d 25 2b 3d 31 30 0d 03 3e 1d 20 20 20 20 20 |om%+=10..>. | 00000760 20 20 20 20 20 20 20 f2 64 69 73 70 6c 61 79 5f | .display_| 00000770 72 6f 6f 6d 0d 03 48 2b 20 20 20 20 20 20 20 20 |room..H+ | 00000780 20 20 20 20 21 78 70 6f 73 3d 73 68 69 70 5f 78 | !xpos=ship_x| 00000790 25 3a 21 79 70 6f 73 3d 73 68 69 70 5f 79 25 0d |%:!ypos=ship_y%.| 000007a0 03 52 1e 20 20 20 20 20 20 20 20 20 20 20 20 d6 |.R. .| 000007b0 20 64 69 73 70 6c 61 79 5f 73 68 69 70 0d 03 5c | display_ship..\| 000007c0 17 20 20 20 20 20 c9 20 34 3a 73 68 69 70 5f 79 |. . 4:ship_y| 000007d0 25 3d 36 30 0d 03 66 19 20 20 20 20 20 20 20 20 |%=60..f. | 000007e0 20 20 20 20 72 6f 6f 6d 25 2d 3d 31 30 0d 03 70 | room%-=10..p| 000007f0 1d 20 20 20 20 20 20 20 20 20 20 20 20 f2 64 69 |. .di| 00000800 73 70 6c 61 79 5f 72 6f 6f 6d 0d 03 7a 2b 20 20 |splay_room..z+ | 00000810 20 20 20 20 20 20 20 20 20 20 21 78 70 6f 73 3d | !xpos=| 00000820 73 68 69 70 5f 78 25 3a 21 79 70 6f 73 3d 73 68 |ship_x%:!ypos=sh| 00000830 69 70 5f 79 25 0d 03 84 1e 20 20 20 20 20 20 20 |ip_y%.... | 00000840 20 20 20 20 20 d6 20 64 69 73 70 6c 61 79 5f 73 | . display_s| 00000850 68 69 70 0d 03 8e 08 20 20 20 cb 0d 03 98 06 20 |hip.... ..... | 00000860 e1 0d 03 a2 06 20 3a 0d 03 ac 19 20 dd 20 f2 64 |..... :.... . .d| 00000870 65 63 6c 61 72 65 5f 76 61 72 69 61 62 6c 65 73 |eclare_variables| 00000880 0d 03 b6 0b 20 20 20 c8 a0 20 34 0d 03 c0 16 20 |.... .. 4.... | 00000890 20 20 2a 53 70 72 69 74 65 53 69 7a 65 20 33 32 | *SpriteSize 32| 000008a0 4b 0d 03 ca 18 20 20 20 de 20 73 70 5f 62 6c 6f |K.... . sp_blo| 000008b0 63 6b 25 20 26 35 34 30 30 0d 03 d4 13 20 20 20 |ck% &5400.... | 000008c0 de 20 62 6c 6f 63 6b 25 20 32 35 36 0d 03 de 11 |. block% 256....| 000008d0 20 20 20 de 20 77 6f 72 6b 25 20 33 32 0d 03 e8 | . work% 32...| 000008e0 18 20 20 20 de 20 74 65 78 74 5f 70 72 69 6e 74 |. . text_print| 000008f0 25 20 32 35 36 0d 03 f2 13 20 20 20 70 61 72 74 |% 256.... part| 00000900 69 63 6c 65 73 25 3d 37 0d 03 fc 16 20 20 20 6d |icles%=7.... m| 00000910 61 78 5f 6f 62 6a 65 63 74 73 25 3d 38 33 0d 04 |ax_objects%=83..| 00000920 06 11 20 20 20 6b 65 79 5f 6e 75 6d 25 3d 30 0d |.. key_num%=0.| 00000930 04 10 30 20 20 20 de 20 70 61 72 74 5f 78 25 28 |..0 . part_x%(| 00000940 70 61 72 74 69 63 6c 65 73 25 29 2c 70 61 72 74 |particles%),part| 00000950 5f 79 25 28 70 61 72 74 69 63 6c 65 73 25 29 0d |_y%(particles%).| 00000960 04 1a 32 20 20 20 de 20 70 61 72 74 5f 78 76 25 |..2 . part_xv%| 00000970 28 70 61 72 74 69 63 6c 65 73 25 29 2c 70 61 72 |(particles%),par| 00000980 74 5f 79 76 25 28 70 61 72 74 69 63 6c 65 73 25 |t_yv%(particles%| 00000990 29 0d 04 24 1c 20 20 20 de 20 70 61 72 74 5f 63 |)..$. . part_c| 000009a0 25 28 70 61 72 74 69 63 6c 65 73 25 29 0d 04 2e |%(particles%)...| 000009b0 13 20 20 20 67 72 61 76 69 74 79 3d 30 2e 32 35 |. gravity=0.25| 000009c0 0d 04 38 1e 20 20 20 66 79 5f 70 6f 73 25 3d 31 |..8. fy_pos%=1| 000009d0 30 32 34 3a 66 5f 73 69 7a 65 25 3d 31 32 0d 04 |024:f_size%=12..| 000009e0 42 15 20 20 20 52 6f 6f 6d 53 69 7a 65 25 3d 26 |B. RoomSize%=&| 000009f0 34 30 30 0d 04 4c 27 20 20 20 de 20 4f 62 6a 65 |400..L' . Obje| 00000a00 63 74 25 28 31 30 30 29 2c 4b 65 79 25 28 36 29 |ct%(100),Key%(6)| 00000a10 2c 46 75 65 6c 28 31 30 30 29 0d 04 56 1d 20 20 |,Fuel(100)..V. | 00000a20 20 de 20 4e 61 6d 65 24 28 31 30 29 2c 53 63 6f | . Name$(10),Sco| 00000a30 72 65 25 28 31 30 29 0d 04 60 13 20 20 20 de 20 |re%(10)..`. . | 00000a40 63 6f 6c 6f 75 72 25 28 36 29 0d 04 6a 2f 20 20 |colour%(6)..j/ | 00000a50 20 63 6f 6c 6f 75 72 25 28 31 29 3d 32 3a 63 6f | colour%(1)=2:co| 00000a60 6c 6f 75 72 25 28 32 29 3d 31 32 3a 63 6f 6c 6f |lour%(2)=12:colo| 00000a70 75 72 25 28 33 29 3d 33 31 0d 04 74 30 20 20 20 |ur%(3)=31..t0 | 00000a80 63 6f 6c 6f 75 72 25 28 34 29 3d 35 31 3a 63 6f |colour%(4)=51:co| 00000a90 6c 6f 75 72 25 28 35 29 3d 35 38 3a 63 6f 6c 6f |lour%(5)=58:colo| 00000aa0 75 72 25 28 36 29 3d 34 35 0d 04 7e 16 20 20 20 |ur%(6)=45..~. | 00000ab0 69 6e 73 74 72 75 63 74 69 6f 6e 73 25 3d a3 0d |instructions%=..| 00000ac0 04 88 15 20 20 20 6a 75 73 74 5f 6c 6f 61 64 65 |... just_loade| 00000ad0 64 25 3d b9 0d 04 92 1d 20 20 20 de 20 6f 62 6a |d%=..... . obj| 00000ae0 65 63 74 24 28 34 29 2c 74 69 74 6c 65 24 28 34 |ect$(4),title$(4| 00000af0 29 0d 04 9c 3d 20 20 20 6f 62 6a 65 63 74 24 28 |)...= object$(| 00000b00 30 29 3d 22 70 6c 61 74 66 6f 72 6d 22 3a 74 69 |0)="platform":ti| 00000b10 74 6c 65 24 28 30 29 3d 22 52 65 2d 66 75 65 6c |tle$(0)="Re-fuel| 00000b20 6c 69 6e 67 20 50 6c 61 74 66 6f 72 6d 22 0d 04 |ling Platform"..| 00000b30 a6 32 20 20 20 6f 62 6a 65 63 74 24 28 31 29 3d |.2 object$(1)=| 00000b40 22 73 68 69 70 30 22 3a 74 69 74 6c 65 24 28 31 |"ship0":title$(1| 00000b50 29 3d 22 4c 61 6e 64 65 72 20 43 72 61 66 74 22 |)="Lander Craft"| 00000b60 0d 04 b0 39 20 20 20 6f 62 6a 65 63 74 24 28 32 |...9 object$(2| 00000b70 29 3d 22 6f 62 6a 65 63 74 22 3a 74 69 74 6c 65 |)="object":title| 00000b80 24 28 32 29 3d 22 52 61 64 69 6f 61 63 74 69 76 |$(2)="Radioactiv| 00000b90 65 20 44 65 62 72 69 73 22 0d 04 ba 31 20 20 20 |e Debris"...1 | 00000ba0 6f 62 6a 65 63 74 24 28 33 29 3d 22 6b 65 79 31 |object$(3)="key1| 00000bb0 22 3a 74 69 74 6c 65 24 28 33 29 3d 22 53 65 63 |":title$(3)="Sec| 00000bc0 75 72 69 74 79 20 4b 65 79 22 0d 04 c4 33 20 20 |urity Key"...3 | 00000bd0 20 6f 62 6a 65 63 74 24 28 34 29 3d 22 64 6f 6f | object$(4)="doo| 00000be0 72 31 22 3a 74 69 74 6c 65 24 28 34 29 3d 22 53 |r1":title$(4)="S| 00000bf0 65 63 75 72 69 74 79 20 44 6f 6f 72 22 0d 04 ce |ecurity Door"...| 00000c00 19 20 20 20 de 20 72 6f 6f 6d 5f 64 61 74 61 25 |. . room_data%| 00000c10 20 26 33 43 30 30 0d 04 d8 31 20 20 20 ff 28 22 | &3C00...1 .("| 00000c20 4c 4f 41 44 20 3c 4c 61 6e 64 65 72 24 44 69 72 |LOAD <Lander$Dir| 00000c30 3e 2e 52 6f 6f 6d 73 20 22 2b c3 7e 72 6f 6f 6d |>.Rooms "+.~room| 00000c40 5f 64 61 74 61 25 29 0d 04 e2 1e 20 20 20 de 20 |_data%).... . | 00000c50 72 6f 6f 6d 5f 69 6e 64 65 78 5f 64 61 74 61 25 |room_index_data%| 00000c60 20 26 31 30 30 0d 04 ec 3c 20 20 20 ff 28 22 4c | &100...< .("L| 00000c70 4f 41 44 20 3c 4c 61 6e 64 65 72 24 44 69 72 3e |OAD <Lander$Dir>| 00000c80 2e 52 6f 6f 6d 73 49 6e 64 65 78 20 22 2b c3 7e |.RoomsIndex "+.~| 00000c90 72 6f 6f 6d 5f 69 6e 64 65 78 5f 64 61 74 61 25 |room_index_data%| 00000ca0 29 0d 04 f6 06 20 e1 0d 05 00 06 20 3a 0d 05 0a |).... ..... :...| 00000cb0 14 20 dd 20 f2 6c 6f 61 64 5f 73 70 72 69 74 65 |. . .load_sprite| 00000cc0 73 0d 05 14 18 20 20 20 73 70 5f 62 6c 6f 63 6b |s.... sp_block| 00000cd0 25 21 30 3d 26 35 30 30 30 0d 05 1e 15 20 20 20 |%!0=&5000.... | 00000ce0 73 70 5f 62 6c 6f 63 6b 25 21 38 3d 31 36 0d 05 |sp_block%!8=16..| 00000cf0 28 24 20 20 20 24 77 6f 72 6b 25 3d 22 3c 4c 61 |($ $work%="<La| 00000d00 6e 64 65 72 24 44 69 72 3e 2e 53 70 72 46 69 6c |nder$Dir>.SprFil| 00000d10 65 22 0d 05 32 15 20 20 20 62 6c 6f 63 6b 25 21 |e"..2. block%!| 00000d20 30 3d 77 6f 72 6b 25 0d 05 3c 23 20 20 20 c8 99 |0=work%..<# ..| 00000d30 20 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c 39 | "OS_SpriteOp",9| 00000d40 2c 73 70 5f 62 6c 6f 63 6b 25 0d 05 46 2d 20 20 |,sp_block%..F- | 00000d50 20 c8 99 20 22 4f 53 5f 53 70 72 69 74 65 4f 70 | .. "OS_SpriteOp| 00000d60 22 2c 31 30 2c 73 70 5f 62 6c 6f 63 6b 25 2c 62 |",10,sp_block%,b| 00000d70 6c 6f 63 6b 25 21 30 0d 05 50 06 20 e1 0d 05 5a |lock%!0..P. ...Z| 00000d80 06 20 3a 0d 05 64 2d 20 dd 20 f2 64 69 73 70 6c |. :..d- . .displ| 00000d90 61 79 5f 73 70 72 69 74 65 28 6e 61 6d 65 24 2c |ay_sprite(name$,| 00000da0 20 78 5f 70 6f 73 25 2c 20 79 5f 70 6f 73 25 29 | x_pos%, y_pos%)| 00000db0 0d 05 6e 2e 20 20 20 78 5f 70 6f 73 25 3d 28 78 |..n. x_pos%=(x| 00000dc0 5f 70 6f 73 25 2f 34 29 2a 34 3a 79 5f 70 6f 73 |_pos%/4)*4:y_pos| 00000dd0 25 3d 28 79 5f 70 6f 73 25 2f 34 29 2a 34 0d 05 |%=(y_pos%/4)*4..| 00000de0 78 22 20 20 20 24 77 6f 72 6b 25 3d 6e 61 6d 65 |x" $work%=name| 00000df0 24 3a 62 6c 6f 63 6b 25 21 30 3d 77 6f 72 6b 25 |$:block%!0=work%| 00000e00 0d 05 82 3f 20 20 20 c8 99 20 22 4f 53 5f 53 70 |...? .. "OS_Sp| 00000e10 72 69 74 65 4f 70 22 2c 33 34 2c 73 70 5f 62 6c |riteOp",34,sp_bl| 00000e20 6f 63 6b 25 2c 62 6c 6f 63 6b 25 21 30 2c 78 5f |ock%,block%!0,x_| 00000e30 70 6f 73 25 2c 79 5f 70 6f 73 25 2c 26 30 33 0d |pos%,y_pos%,&03.| 00000e40 05 8c 06 20 e1 0d 05 96 06 20 3a 0d 05 a0 14 20 |... ..... :.... | 00000e50 dd 20 f2 64 69 73 70 6c 61 79 5f 66 75 65 6c 0d |. .display_fuel.| 00000e60 05 aa 11 20 20 20 e6 20 30 2c 32 20 c8 9c 20 30 |... . 0,2 .. 0| 00000e70 0d 05 b4 2a 20 20 20 c8 93 20 c8 90 20 33 35 30 |...* .. .. 350| 00000e80 2c 66 79 5f 70 6f 73 25 2d 32 30 2c 21 66 75 65 |,fy_pos%-20,!fue| 00000e90 6c 25 2c 66 5f 73 69 7a 65 25 0d 05 be 23 20 20 |l%,f_size%...# | 00000ea0 20 ef 20 35 3a ec 20 33 34 36 2c 39 39 36 3a f1 | . 5:. 346,996:.| 00000eb0 3b 22 46 75 65 6c 22 3b 3a ef 34 3a 87 0d 05 c8 |;"Fuel";:.4:....| 00000ec0 12 20 20 20 e6 20 30 2c 34 30 20 c8 9c 20 30 0d |. . 0,40 .. 0.| 00000ed0 05 d2 26 20 20 20 c8 93 20 33 34 36 2c 66 79 5f |..& .. 346,fy_| 00000ee0 70 6f 73 25 2d 32 34 2c 39 33 30 2c 66 5f 73 69 |pos%-24,930,f_si| 00000ef0 7a 65 25 2b 38 0d 05 dc 06 20 e1 0d 05 e6 06 20 |ze%+8.... ..... | 00000f00 3a 0d 05 f0 14 20 dd 20 f2 64 69 73 70 6c 61 79 |:.... . .display| 00000f10 5f 72 6f 6f 6d 0d 05 fa 13 20 20 20 6b 65 79 5f |_room.... key_| 00000f20 62 6c 6f 63 6b 25 3d a3 0d 06 04 1a 20 20 20 65 |block%=..... e| 00000f30 6e 74 72 61 6e 63 65 5f 78 25 3d 73 68 69 70 5f |ntrance_x%=ship_| 00000f40 78 25 0d 06 0e 1a 20 20 20 65 6e 74 72 61 6e 63 |x%.... entranc| 00000f50 65 5f 79 25 3d 73 68 69 70 5f 79 25 0d 06 18 1b |e_y%=ship_y%....| 00000f60 20 20 20 ef 20 32 38 2c 30 2c 33 31 2c 33 39 2c | . 28,0,31,39,| 00000f70 33 2c 31 32 2c 32 36 0d 06 22 10 20 20 20 21 66 |3,12,26..". !f| 00000f80 75 65 6c 25 2d 3d 34 0d 06 2c 14 20 20 20 f2 64 |uel%-=4..,. .d| 00000f90 69 73 70 6c 61 79 5f 66 75 65 6c 0d 06 36 10 20 |isplay_fuel..6. | 00000fa0 20 20 21 66 75 65 6c 25 2b 3d 34 0d 06 40 0e 20 | !fuel%+=4..@. | 00000fb0 20 20 64 6f 6e 65 25 3d a3 0d 06 4a 28 20 20 20 | done%=...J( | 00000fc0 6c 62 25 3d 3f 28 72 6f 6f 6d 5f 69 6e 64 65 78 |lb%=?(room_index| 00000fd0 5f 64 61 74 61 25 2b 28 72 6f 6f 6d 25 2a 32 29 |_data%+(room%*2)| 00000fe0 29 0d 06 54 2a 20 20 20 68 62 25 3d 3f 28 72 6f |)..T* hb%=?(ro| 00000ff0 6f 6d 5f 69 6e 64 65 78 5f 64 61 74 61 25 2b 28 |om_index_data%+(| 00001000 72 6f 6f 6d 25 2a 32 29 2b 31 29 0d 06 5e 2b 20 |room%*2)+1)..^+ | 00001010 20 20 72 6f 6f 6d 5f 70 74 72 25 3d 72 6f 6f 6d | room_ptr%=room| 00001020 5f 64 61 74 61 25 2b 28 6c 62 25 2b 28 68 62 25 |_data%+(lb%+(hb%| 00001030 2a 32 35 36 29 29 0d 06 68 08 20 20 20 f5 0d 06 |*256))..h. ...| 00001040 72 1a 20 20 20 20 20 73 68 61 70 65 25 3d 3f 72 |r. shape%=?r| 00001050 6f 6f 6d 5f 70 74 72 25 0d 06 7c 18 20 20 20 20 |oom_ptr%..|. | 00001060 20 e7 20 73 68 61 70 65 25 3c 3e 32 35 35 20 8c | . shape%<>255 .| 00001070 0d 06 86 1c 20 20 20 20 20 20 20 20 63 6f 6c 25 |.... col%| 00001080 3d 72 6f 6f 6d 5f 70 74 72 25 3f 31 0d 06 90 18 |=room_ptr%?1....| 00001090 20 20 20 20 20 20 20 20 72 6f 6f 6d 5f 70 74 72 | room_ptr| 000010a0 25 2b 3d 32 0d 06 9a 17 20 20 20 20 20 20 20 20 |%+=2.... | 000010b0 43 25 3d 63 6f 6c 25 20 81 20 34 0d 06 a4 17 20 |C%=col% . 4.... | 000010c0 20 20 20 20 20 20 20 54 25 3d 63 6f 6c 25 20 83 | T%=col% .| 000010d0 20 34 0d 06 ae 1d 20 20 20 20 20 20 20 20 e6 20 | 4.... . | 000010e0 30 2c 43 25 20 c8 9c 20 28 54 25 2a 36 34 29 0d |0,C% .. (T%*64).| 000010f0 06 b8 17 20 20 20 20 20 20 20 20 c8 8e 20 73 68 |... .. sh| 00001100 61 70 65 25 20 ca 0d 06 c2 20 20 20 20 20 20 20 |ape% .... | 00001110 20 20 20 20 c9 20 31 3a f2 64 72 61 77 5f 74 72 | . 1:.draw_tr| 00001120 69 61 6e 67 6c 65 0d 06 cc 21 20 20 20 20 20 20 |iangle...! | 00001130 20 20 20 20 c9 20 32 3a f2 64 72 61 77 5f 72 65 | . 2:.draw_re| 00001140 63 74 61 6e 67 6c 65 0d 06 d6 1e 20 20 20 20 20 |ctangle.... | 00001150 20 20 20 20 20 c9 20 33 3a f2 64 72 61 77 5f 6f | . 3:.draw_o| 00001160 62 6a 65 63 74 0d 06 e0 20 20 20 20 20 20 20 20 |bject... | 00001170 20 20 20 c9 20 34 3a f2 64 72 61 77 5f 70 6c 61 | . 4:.draw_pla| 00001180 74 66 6f 72 6d 0d 06 ea 2c 20 20 20 20 20 20 20 |tform..., | 00001190 20 20 20 c9 20 35 2c 36 2c 37 2c 38 2c 39 2c 31 | . 5,6,7,8,9,1| 000011a0 30 3a f2 64 72 61 77 5f 6b 65 79 5f 62 6c 6f 63 |0:.draw_key_bloc| 000011b0 6b 0d 06 f4 2b 20 20 20 20 20 20 20 20 20 20 c9 |k...+ .| 000011c0 20 31 31 2c 31 32 2c 31 33 2c 31 34 2c 31 35 2c | 11,12,13,14,15,| 000011d0 31 36 3a f2 64 72 61 77 5f 6b 65 79 0d 06 fe 0d |16:.draw_key....| 000011e0 20 20 20 20 20 20 20 20 cb 0d 07 08 0a 20 20 20 | ..... | 000011f0 20 20 cd 0d 07 12 13 20 20 20 fd 20 73 68 61 70 | ..... . shap| 00001200 65 25 3d 32 35 35 0d 07 1c 13 20 20 20 72 6f 6f |e%=255.... roo| 00001210 6d 5f 70 74 72 25 2b 3d 31 0d 07 26 1d 20 20 20 |m_ptr%+=1..&. | 00001220 e7 20 ac 20 64 6f 6e 65 25 20 d6 20 66 69 78 5f |. . done% . fix_| 00001230 73 63 72 65 65 6e 0d 07 30 18 20 20 20 74 69 74 |screen..0. tit| 00001240 6c 65 24 3d 24 72 6f 6f 6d 5f 70 74 72 25 0d 07 |le$=$room_ptr%..| 00001250 3a 0b 20 20 20 fb 20 32 30 0d 07 44 10 20 20 20 |:. . 20..D. | 00001260 e6 20 32 31 20 c8 9c 20 34 0d 07 4e 17 20 20 20 |. 21 .. 4..N. | 00001270 86 20 30 2c 38 39 30 2c 31 32 38 30 2c 38 39 30 |. 0,890,1280,890| 00001280 0d 07 58 17 20 20 20 86 20 30 2c 39 33 34 2c 31 |..X. . 0,934,1| 00001290 32 38 30 2c 39 33 34 0d 07 62 23 20 20 20 f1 20 |280,934..b# . | 000012a0 8a a4 63 65 6e 74 72 65 28 74 69 74 6c 65 24 29 |..centre(title$)| 000012b0 2c 33 29 3b 74 69 74 6c 65 24 0d 07 6c 06 20 e1 |,3);title$..l. .| 000012c0 0d 07 76 06 20 3a 0d 07 80 17 20 dd 20 a4 63 65 |..v. :.... . .ce| 000012d0 6e 74 72 65 28 73 74 72 69 6e 67 24 29 0d 07 8a |ntre(string$)...| 000012e0 14 20 20 20 6c 25 3d a9 28 73 74 72 69 6e 67 24 |. l%=.(string$| 000012f0 29 0d 07 94 0f 20 20 20 6c 25 3d 34 30 2d 6c 25 |).... l%=40-l%| 00001300 0d 07 9e 0a 20 3d 6c 25 2f 32 0d 07 a8 06 20 3a |.... =l%/2.... :| 00001310 0d 07 b2 0f 20 dd 20 f2 65 78 70 6c 6f 64 65 0d |.... . .explode.| 00001320 07 bc 22 20 20 20 21 78 70 6f 73 3d 73 68 69 70 |.." !xpos=ship| 00001330 5f 78 25 3a 21 79 70 6f 73 3d 73 68 69 70 5f 79 |_x%:!ypos=ship_y| 00001340 25 0d 07 c6 15 20 20 20 d6 20 64 69 73 70 6c 61 |%.... . displa| 00001350 79 5f 73 68 69 70 0d 07 d0 1e 20 20 20 2a 43 48 |y_ship.... *CH| 00001360 41 4e 4e 45 4c 56 4f 49 43 45 20 33 20 45 78 70 |ANNELVOICE 3 Exp| 00001370 6c 6f 64 65 0d 07 da 15 20 20 20 d4 20 33 2c 2d |lode.... . 3,-| 00001380 31 35 2c 31 39 30 30 2c 31 0d 07 e4 1d 20 20 20 |15,1900,1.... | 00001390 e3 20 6c 6f 6f 70 25 3d 31 20 b8 20 70 61 72 74 |. loop%=1 . part| 000013a0 69 63 6c 65 73 25 0d 07 ee 1f 20 20 20 20 20 70 |icles%.... p| 000013b0 61 72 74 5f 78 25 28 6c 6f 6f 70 25 29 3d 73 68 |art_x%(loop%)=sh| 000013c0 69 70 5f 78 25 0d 07 f8 1f 20 20 20 20 20 70 61 |ip_x%.... pa| 000013d0 72 74 5f 79 25 28 6c 6f 6f 70 25 29 3d 73 68 69 |rt_y%(loop%)=shi| 000013e0 70 5f 79 25 0d 08 02 2d 20 20 20 20 20 70 61 72 |p_y%...- par| 000013f0 74 5f 78 76 25 28 6c 6f 6f 70 25 29 3d 28 b3 28 |t_xv%(loop%)=(.(| 00001400 38 29 2d 34 29 2b 28 73 69 64 65 2a b3 28 34 29 |8)-4)+(side*.(4)| 00001410 29 0d 08 0c 29 20 20 20 20 20 70 61 72 74 5f 79 |)...) part_y| 00001420 76 25 28 6c 6f 6f 70 25 29 3d 31 30 2b 28 b3 28 |v%(loop%)=10+(.(| 00001430 35 29 2a 33 29 2b 66 61 6c 6c 0d 08 16 1e 20 20 |5)*3)+fall.... | 00001440 20 20 20 70 61 72 74 5f 63 25 28 6c 6f 6f 70 25 | part_c%(loop%| 00001450 29 3d b3 28 38 29 2d 31 0d 08 20 25 20 20 20 20 |)=.(8)-1.. % | 00001460 20 73 70 72 24 3d 22 62 69 74 22 2b c3 28 70 61 | spr$="bit"+.(pa| 00001470 72 74 5f 63 25 28 6c 6f 6f 70 25 29 29 0d 08 2a |rt_c%(loop%))..*| 00001480 2e 20 20 20 20 20 f2 64 69 73 70 6c 61 79 5f 73 |. .display_s| 00001490 70 72 69 74 65 28 73 70 72 24 2c 73 68 69 70 5f |prite(spr$,ship_| 000014a0 78 25 2c 73 68 69 70 5f 79 25 29 0d 08 34 0e 20 |x%,ship_y%)..4. | 000014b0 20 20 ed 20 6c 6f 6f 70 25 0d 08 3e 16 20 20 20 | . loop%..>. | 000014c0 e3 20 63 6f 75 6e 74 25 3d 30 20 b8 20 35 35 0d |. count%=0 . 55.| 000014d0 08 48 1f 20 20 20 20 20 e3 20 6c 6f 6f 70 25 3d |.H. . loop%=| 000014e0 31 20 b8 20 70 61 72 74 69 63 6c 65 73 25 0d 08 |1 . particles%..| 000014f0 52 27 20 20 20 20 20 20 20 73 70 72 24 3d 22 62 |R' spr$="b| 00001500 69 74 22 2b c3 28 70 61 72 74 5f 63 25 28 6c 6f |it"+.(part_c%(lo| 00001510 6f 70 25 29 29 0d 08 5c 3e 20 20 20 20 20 20 20 |op%))..\> | 00001520 f2 64 69 73 70 6c 61 79 5f 73 70 72 69 74 65 28 |.display_sprite(| 00001530 73 70 72 24 2c 70 61 72 74 5f 78 25 28 6c 6f 6f |spr$,part_x%(loo| 00001540 70 25 29 2c 70 61 72 74 5f 79 25 28 6c 6f 6f 70 |p%),part_y%(loop| 00001550 25 29 29 0d 08 66 2a 20 20 20 20 20 20 20 70 61 |%))..f* pa| 00001560 72 74 5f 78 25 28 6c 6f 6f 70 25 29 2b 3d 70 61 |rt_x%(loop%)+=pa| 00001570 72 74 5f 78 76 25 28 6c 6f 6f 70 25 29 0d 08 70 |rt_xv%(loop%)..p| 00001580 2a 20 20 20 20 20 20 20 70 61 72 74 5f 79 25 28 |* part_y%(| 00001590 6c 6f 6f 70 25 29 2b 3d 70 61 72 74 5f 79 76 25 |loop%)+=part_yv%| 000015a0 28 6c 6f 6f 70 25 29 0d 08 7a 1d 20 20 20 20 20 |(loop%)..z. | 000015b0 20 20 70 61 72 74 5f 79 76 25 28 6c 6f 6f 70 25 | part_yv%(loop%| 000015c0 29 2d 3d 31 0d 08 84 1c 20 20 20 20 20 20 20 70 |)-=1.... p| 000015d0 61 72 74 5f 63 25 28 6c 6f 6f 70 25 29 2b 3d 31 |art_c%(loop%)+=1| 000015e0 0d 08 8e 2c 20 20 20 20 20 20 20 70 61 72 74 5f |..., part_| 000015f0 63 25 28 6c 6f 6f 70 25 29 3d 70 61 72 74 5f 63 |c%(loop%)=part_c| 00001600 25 28 6c 6f 6f 70 25 29 20 83 20 38 0d 08 98 27 |%(loop%) . 8...'| 00001610 20 20 20 20 20 20 20 73 70 72 24 3d 22 62 69 74 | spr$="bit| 00001620 22 2b c3 28 70 61 72 74 5f 63 25 28 6c 6f 6f 70 |"+.(part_c%(loop| 00001630 25 29 29 0d 08 a2 3e 20 20 20 20 20 20 20 f2 64 |%))...> .d| 00001640 69 73 70 6c 61 79 5f 73 70 72 69 74 65 28 73 70 |isplay_sprite(sp| 00001650 72 24 2c 70 61 72 74 5f 78 25 28 6c 6f 6f 70 25 |r$,part_x%(loop%| 00001660 29 2c 70 61 72 74 5f 79 25 28 6c 6f 6f 70 25 29 |),part_y%(loop%)| 00001670 29 0d 08 ac 10 20 20 20 20 20 ed 20 6c 6f 6f 70 |).... . loop| 00001680 25 0d 08 b6 0f 20 20 20 ed 20 63 6f 75 6e 74 25 |%.... . count%| 00001690 0d 08 c0 1d 20 20 20 e3 20 6c 6f 6f 70 25 3d 31 |.... . loop%=1| 000016a0 20 b8 20 70 61 72 74 69 63 6c 65 73 25 0d 08 ca | . particles%...| 000016b0 25 20 20 20 20 20 73 70 72 24 3d 22 62 69 74 22 |% spr$="bit"| 000016c0 2b c3 28 70 61 72 74 5f 63 25 28 6c 6f 6f 70 25 |+.(part_c%(loop%| 000016d0 29 29 0d 08 d4 3c 20 20 20 20 20 f2 64 69 73 70 |))...< .disp| 000016e0 6c 61 79 5f 73 70 72 69 74 65 28 73 70 72 24 2c |lay_sprite(spr$,| 000016f0 70 61 72 74 5f 78 25 28 6c 6f 6f 70 25 29 2c 70 |part_x%(loop%),p| 00001700 61 72 74 5f 79 25 28 6c 6f 6f 70 25 29 29 0d 08 |art_y%(loop%))..| 00001710 de 0e 20 20 20 ed 20 6c 6f 6f 70 25 0d 08 e8 06 |.. . loop%....| 00001720 20 e1 0d 08 f2 06 20 3a 0d 08 fc 15 20 dd 20 f2 | ..... :.... . .| 00001730 64 69 73 70 6c 61 79 5f 6c 69 76 65 73 0d 09 06 |display_lives...| 00001740 10 20 20 20 74 65 6d 70 25 3d 21 52 25 0d 09 10 |. temp%=!R%...| 00001750 0c 20 20 20 21 52 25 3d 30 0d 09 1a 0f 20 20 20 |. !R%=0.... | 00001760 e6 20 30 20 c8 9c 20 30 0d 09 24 1a 20 20 20 c8 |. 0 .. 0..$. .| 00001770 93 20 c8 90 20 30 2c 39 34 34 2c 33 30 30 2c 31 |. .. 0,944,300,1| 00001780 30 30 0d 09 2e 13 20 20 20 e7 20 6c 69 76 65 73 |00.... . lives| 00001790 25 3d 31 20 e1 0d 09 38 1b 20 20 20 e3 20 6c 6f |%=1 ...8. . lo| 000017a0 6f 70 25 3d 30 20 b8 20 6c 69 76 65 73 25 2d 32 |op%=0 . lives%-2| 000017b0 0d 09 42 21 20 20 20 20 20 21 78 70 6f 73 3d 6c |..B! !xpos=l| 000017c0 6f 6f 70 25 2a 39 30 3a 21 79 70 6f 73 3d 39 34 |oop%*90:!ypos=94| 000017d0 30 0d 09 4c 17 20 20 20 20 20 d6 20 64 69 73 70 |0..L. . disp| 000017e0 6c 61 79 5f 73 68 69 70 0d 09 56 0e 20 20 20 ed |lay_ship..V. .| 000017f0 20 6c 6f 6f 70 25 0d 09 60 10 20 20 20 21 52 25 | loop%..`. !R%| 00001800 3d 74 65 6d 70 25 0d 09 6a 06 20 e1 0d 09 74 06 |=temp%..j. ...t.| 00001810 20 3a 0d 09 7e 15 20 dd 20 f2 64 72 61 77 5f 74 | :..~. . .draw_t| 00001820 72 69 61 6e 67 6c 65 0d 09 88 1f 20 20 20 70 78 |riangle.... px| 00001830 31 25 3d 21 72 6f 6f 6d 5f 70 74 72 25 20 83 20 |1%=!room_ptr% . | 00001840 26 31 30 30 30 30 0d 09 92 1f 20 20 20 70 79 31 |&10000.... py1| 00001850 25 3d 21 72 6f 6f 6d 5f 70 74 72 25 20 81 20 26 |%=!room_ptr% . &| 00001860 31 30 30 30 30 0d 09 9c 20 20 20 20 70 78 32 25 |10000... px2%| 00001870 3d 72 6f 6f 6d 5f 70 74 72 25 21 34 20 83 20 26 |=room_ptr%!4 . &| 00001880 31 30 30 30 30 0d 09 a6 20 20 20 20 70 79 32 25 |10000... py2%| 00001890 3d 72 6f 6f 6d 5f 70 74 72 25 21 34 20 81 20 26 |=room_ptr%!4 . &| 000018a0 31 30 30 30 30 0d 09 b0 20 20 20 20 70 78 33 25 |10000... px3%| 000018b0 3d 72 6f 6f 6d 5f 70 74 72 25 21 38 20 83 20 26 |=room_ptr%!8 . &| 000018c0 31 30 30 30 30 0d 09 ba 20 20 20 20 70 79 33 25 |10000... py3%| 000018d0 3d 72 6f 6f 6d 5f 70 74 72 25 21 38 20 81 20 26 |=room_ptr%!8 . &| 000018e0 31 30 30 30 30 0d 09 c4 14 20 20 20 72 6f 6f 6d |10000.... room| 000018f0 5f 70 74 72 25 2b 3d 31 32 0d 09 ce 12 20 20 20 |_ptr%+=12.... | 00001900 ec 20 70 78 31 25 2c 70 79 31 25 0d 09 d8 12 20 |. px1%,py1%.... | 00001910 20 20 ec 20 70 78 32 25 2c 70 79 32 25 0d 09 e2 | . px2%,py2%...| 00001920 15 20 20 20 f0 20 38 35 2c 70 78 33 25 2c 70 79 |. . 85,px3%,py| 00001930 33 25 0d 09 ec 06 20 e1 0d 09 f6 06 20 3a 0d 0a |3%.... ..... :..| 00001940 00 16 20 dd 20 f2 64 72 61 77 5f 72 65 63 74 61 |.. . .draw_recta| 00001950 6e 67 6c 65 0d 0a 0a 1f 20 20 20 70 78 31 25 3d |ngle.... px1%=| 00001960 21 72 6f 6f 6d 5f 70 74 72 25 20 83 20 26 31 30 |!room_ptr% . &10| 00001970 30 30 30 0d 0a 14 1f 20 20 20 70 79 31 25 3d 21 |000.... py1%=!| 00001980 72 6f 6f 6d 5f 70 74 72 25 20 81 20 26 31 30 30 |room_ptr% . &100| 00001990 30 30 0d 0a 1e 20 20 20 20 70 78 32 25 3d 72 6f |00... px2%=ro| 000019a0 6f 6d 5f 70 74 72 25 21 34 20 83 20 26 31 30 30 |om_ptr%!4 . &100| 000019b0 30 30 0d 0a 28 21 20 20 20 70 79 32 25 3d 72 6f |00..(! py2%=ro| 000019c0 6f 6d 5f 70 74 72 25 21 34 20 20 81 20 26 31 30 |om_ptr%!4 . &10| 000019d0 30 30 30 0d 0a 32 13 20 20 20 72 6f 6f 6d 5f 70 |000..2. room_p| 000019e0 74 72 25 2b 3d 38 0d 0a 3c 30 20 20 20 e7 20 70 |tr%+=8..<0 . p| 000019f0 79 32 25 3e 3d 30 20 80 20 70 79 31 25 2b 70 79 |y2%>=0 . py1%+py| 00001a00 32 25 3e 38 37 36 20 8c 20 70 79 32 25 3d 38 37 |2%>876 . py2%=87| 00001a10 36 2d 70 79 31 25 0d 0a 46 25 20 20 20 e7 20 70 |6-py1%..F% . p| 00001a20 79 32 25 3c 30 20 80 20 70 79 31 25 3e 38 37 36 |y2%<0 . py1%>876| 00001a30 20 8c 20 70 79 31 25 3d 38 37 36 0d 0a 50 20 20 | . py1%=876..P | 00001a40 20 20 c8 93 20 c8 90 20 70 78 31 25 2c 70 79 31 | .. .. px1%,py1| 00001a50 25 2c 70 78 32 25 2c 70 79 32 25 0d 0a 5a 06 20 |%,px2%,py2%..Z. | 00001a60 e1 0d 0a 64 06 20 3a 0d 0a 6e 13 20 dd 20 f2 64 |...d. :..n. . .d| 00001a70 72 61 77 5f 6f 62 6a 65 63 74 0d 0a 78 13 20 20 |raw_object..x. | 00001a80 20 d6 20 66 69 78 5f 73 63 72 65 65 6e 0d 0a 82 | . fix_screen...| 00001a90 0e 20 20 20 64 6f 6e 65 25 3d b9 0d 0a 8c 1f 20 |. done%=..... | 00001aa0 20 20 6f 62 78 25 3d 21 72 6f 6f 6d 5f 70 74 72 | obx%=!room_ptr| 00001ab0 25 20 83 20 26 31 30 30 30 30 0d 0a 96 1f 20 20 |% . &10000.... | 00001ac0 20 6f 62 79 25 3d 21 72 6f 6f 6d 5f 70 74 72 25 | oby%=!room_ptr%| 00001ad0 20 81 20 26 31 30 30 30 30 0d 0a a0 13 20 20 20 | . &10000.... | 00001ae0 72 6f 6f 6d 5f 70 74 72 25 2b 3d 34 0d 0a aa 3e |room_ptr%+=4...>| 00001af0 20 20 20 e7 20 ac 28 4f 62 6a 65 63 74 25 28 72 | . .(Object%(r| 00001b00 6f 6f 6d 25 29 29 20 f2 64 69 73 70 6c 61 79 5f |oom%)) .display_| 00001b10 73 70 72 69 74 65 28 22 6f 62 6a 65 63 74 22 2c |sprite("object",| 00001b20 6f 62 78 25 2c 6f 62 79 25 29 0d 0a b4 06 20 e1 |obx%,oby%).... .| 00001b30 0d 0a be 06 20 3a 0d 0a c8 11 20 dd 20 f2 61 73 |.... :.... . .as| 00001b40 73 65 6d 62 6c 65 72 0d 0a d2 10 20 20 20 78 77 |sembler.... xw| 00001b50 69 64 74 68 3d 33 32 0d 0a dc 10 20 20 20 79 77 |idth=32.... yw| 00001b60 69 64 74 68 3d 33 31 0d 0a e6 16 20 20 20 6c 61 |idth=31.... la| 00001b70 6e 64 65 72 5f 78 5f 6c 65 6e 3d 31 39 0d 0a f0 |nder_x_len=19...| 00001b80 16 20 20 20 6c 61 6e 64 65 72 5f 79 5f 6c 65 6e |. lander_y_len| 00001b90 3d 31 39 0d 0a fa 14 20 20 20 de 20 63 6f 64 65 |=19.... . code| 00001ba0 25 20 26 35 30 30 30 0d 0b 04 12 20 20 20 63 6f |% &5000.... co| 00001bb0 64 65 25 21 30 3d 31 34 39 0d 0b 0e 11 20 20 20 |de%!0=149.... | 00001bc0 63 6f 64 65 25 21 34 3d 2d 31 0d 0b 18 2b 20 20 |code%!4=-1...+ | 00001bd0 20 c8 99 20 22 4f 53 5f 52 65 61 64 56 64 75 56 | .. "OS_ReadVduV| 00001be0 61 72 69 61 62 6c 65 73 22 2c 63 6f 64 65 25 2c |ariables",code%,| 00001bf0 63 6f 64 65 25 0d 0b 22 1a 20 20 20 73 72 6e 25 |code%..". srn%| 00001c00 3d 63 6f 64 65 25 21 30 2b 26 31 34 30 30 30 0d |=code%!0+&14000.| 00001c10 0b 2c 18 20 20 20 e3 20 70 61 73 73 25 3d 30 20 |.,. . pass%=0 | 00001c20 b8 20 32 20 88 20 32 0d 0b 36 11 20 20 20 20 20 |. 2 . 2..6. | 00001c30 50 25 3d 63 6f 64 65 25 0d 0b 40 13 20 20 20 20 |P%=code%..@. | 00001c40 20 5b 4f 50 54 20 70 61 73 73 25 0d 0b 4a 11 20 | [OPT pass%..J. | 00001c50 2e 66 61 64 65 5f 73 63 72 65 65 6e 0d 0b 54 1f |.fade_screen..T.| 00001c60 20 20 20 20 20 4c 44 52 20 20 20 52 30 2c 66 61 | LDR R0,fa| 00001c70 64 65 5f 70 6f 73 69 74 69 6f 6e 0d 0b 5e 14 20 |de_position..^. | 00001c80 20 20 20 20 4d 4f 56 20 20 20 52 33 2c 23 30 0d | MOV R3,#0.| 00001c90 0b 68 0f 20 2e 66 61 64 65 5f 6c 6f 6f 70 0d 0b |.h. .fade_loop..| 00001ca0 72 14 20 20 20 20 20 4d 4f 56 20 20 20 52 31 2c |r. MOV R1,| 00001cb0 23 30 0d 0b 7c 14 20 2e 66 61 64 65 5f 6c 69 6e |#0..|. .fade_lin| 00001cc0 65 5f 6c 6f 6f 70 0d 0b 86 19 20 20 20 20 20 4c |e_loop.... L| 00001cd0 44 52 20 20 20 52 32 2c 5b 52 30 2c 52 31 5d 0d |DR R2,[R0,R1].| 00001ce0 0b 90 1a 20 20 20 20 20 4d 4f 56 20 20 20 52 32 |... MOV R2| 00001cf0 2c 52 32 2c 4c 53 4c 23 31 0d 0b 9a 19 20 20 20 |,R2,LSL#1.... | 00001d00 20 20 53 54 52 20 20 20 52 32 2c 5b 52 30 2c 52 | STR R2,[R0,R| 00001d10 31 5d 0d 0b a4 17 20 20 20 20 20 41 44 44 20 20 |1].... ADD | 00001d20 20 52 31 2c 52 31 2c 23 34 0d 0b ae 16 20 20 20 | R1,R1,#4.... | 00001d30 20 20 43 4d 50 20 20 20 52 31 2c 23 26 43 34 0d | CMP R1,#&C4.| 00001d40 0b b8 1d 20 20 20 20 20 42 4e 45 20 20 20 66 61 |... BNE fa| 00001d50 64 65 5f 6c 69 6e 65 5f 6c 6f 6f 70 0d 0b c2 17 |de_line_loop....| 00001d60 20 20 20 20 20 41 44 44 20 20 20 52 33 2c 52 33 | ADD R3,R3| 00001d70 2c 23 31 0d 0b cc 16 20 20 20 20 20 43 4d 50 20 |,#1.... CMP | 00001d80 20 20 52 33 2c 23 31 33 36 0d 0b d6 18 20 20 20 | R3,#136.... | 00001d90 20 20 42 45 51 20 20 20 65 78 69 74 5f 66 61 64 | BEQ exit_fad| 00001da0 65 0d 0b e0 1a 20 20 20 20 20 41 44 44 20 20 20 |e.... ADD | 00001db0 52 30 2c 52 30 2c 23 26 31 34 30 0d 0b ea 18 20 |R0,R0,#&140.... | 00001dc0 20 20 20 20 42 20 20 20 20 20 66 61 64 65 5f 6c | B fade_l| 00001dd0 6f 6f 70 0d 0b f4 0f 20 2e 65 78 69 74 5f 66 61 |oop.... .exit_fa| 00001de0 64 65 0d 0b fe 15 20 20 20 20 20 4d 4f 56 20 20 |de.... MOV | 00001df0 20 50 43 2c 52 31 34 0d 0c 08 04 0d 0c 12 13 20 | PC,R14........ | 00001e00 2e 66 61 64 65 5f 70 6f 73 69 74 69 6f 6e 0d 0c |.fade_position..| 00001e10 1c 1b 20 20 20 20 20 45 51 55 44 20 20 28 73 72 |.. EQUD (sr| 00001e20 6e 25 2d 26 45 35 43 30 29 0d 0c 26 04 0d 0c 30 |n%-&E5C0)..&...0| 00001e30 12 20 2e 64 69 73 70 6c 61 79 5f 73 68 69 70 0d |. .display_ship.| 00001e40 0c 3a 16 20 20 20 20 20 4c 44 52 20 20 20 52 30 |.:. LDR R0| 00001e50 2c 78 70 6f 73 0d 0c 44 1a 20 20 20 20 20 4d 4f |,xpos..D. MO| 00001e60 56 20 20 20 52 30 2c 52 30 2c 4c 53 52 23 32 0d |V R0,R0,LSR#2.| 00001e70 0c 4e 1a 20 20 20 20 20 4d 4f 56 20 20 20 52 30 |.N. MOV R0| 00001e80 2c 52 30 2c 4c 53 4c 23 32 0d 0c 58 16 20 20 20 |,R0,LSL#2..X. | 00001e90 20 20 53 54 52 20 20 20 52 30 2c 78 70 6f 73 0d | STR R0,xpos.| 00001ea0 0c 62 16 20 20 20 20 20 4c 44 52 20 20 20 52 30 |.b. LDR R0| 00001eb0 2c 79 70 6f 73 0d 0c 6c 1a 20 20 20 20 20 4d 4f |,ypos..l. MO| 00001ec0 56 20 20 20 52 30 2c 52 30 2c 4c 53 52 23 32 0d |V R0,R0,LSR#2.| 00001ed0 0c 76 1a 20 20 20 20 20 4d 4f 56 20 20 20 52 30 |.v. MOV R0| 00001ee0 2c 52 30 2c 4c 53 4c 23 32 0d 0c 80 16 20 20 20 |,R0,LSL#2.... | 00001ef0 20 20 53 54 52 20 20 20 52 30 2c 79 70 6f 73 0d | STR R0,ypos.| 00001f00 0c 8a 19 20 20 20 20 20 4c 44 52 20 20 20 52 30 |... LDR R0| 00001f10 2c 74 68 72 75 73 74 25 0d 0c 94 14 20 20 20 20 |,thrust%.... | 00001f20 20 43 4d 50 20 20 20 52 30 2c 23 30 0d 0c 9e 18 | CMP R0,#0....| 00001f30 20 20 20 20 20 42 45 51 20 20 20 74 68 72 75 73 | BEQ thrus| 00001f40 74 69 6e 67 0d 0c a8 14 20 20 20 20 20 4d 4f 56 |ting.... MOV| 00001f50 20 20 20 52 30 2c 23 30 0d 0c b2 14 20 20 20 20 | R0,#0.... | 00001f60 20 53 54 52 20 20 20 52 30 2c 52 25 0d 0c bc 0f | STR R0,R%....| 00001f70 20 2e 74 68 72 75 73 74 69 6e 67 0d 0c c6 14 20 | .thrusting.... | 00001f80 20 20 20 20 4c 44 52 20 20 20 52 30 2c 52 25 0d | LDR R0,R%.| 00001f90 0c d0 18 20 20 20 20 20 41 44 44 20 20 20 52 30 |... ADD R0| 00001fa0 2c 52 30 2c 23 34 38 0d 0c da 17 20 20 20 20 20 |,R0,#48.... | 00001fb0 41 44 52 20 20 20 52 32 2c 74 69 74 6c 65 0d 0c |ADR R2,title..| 00001fc0 e4 19 20 20 20 20 20 53 54 52 20 20 20 52 30 2c |.. STR R0,| 00001fd0 5b 52 32 2c 23 34 5d 0d 0c ee 15 20 20 20 20 20 |[R2,#4].... | 00001fe0 4d 4f 56 20 20 20 52 30 2c 23 33 34 0d 0c f8 1e |MOV R0,#34....| 00001ff0 20 20 20 20 20 4c 44 52 20 20 20 52 31 2c 73 70 | LDR R1,sp| 00002000 5f 62 6c 6f 63 6b 5f 70 6f 73 0d 0d 02 17 20 20 |_block_pos.... | 00002010 20 20 20 41 44 52 20 20 20 52 32 2c 74 69 74 6c | ADR R2,titl| 00002020 65 0d 0d 0c 16 20 20 20 20 20 4c 44 52 20 20 20 |e.... LDR | 00002030 52 33 2c 78 70 6f 73 0d 0d 16 16 20 20 20 20 20 |R3,xpos.... | 00002040 4c 44 52 20 20 20 52 34 2c 79 70 6f 73 0d 0d 20 |LDR R4,ypos.. | 00002050 14 20 20 20 20 20 4d 4f 56 20 20 20 52 35 2c 23 |. MOV R5,#| 00002060 33 0d 0d 2a 1c 20 20 20 20 20 53 57 49 20 20 20 |3..*. SWI | 00002070 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 0d 0d 34 |"OS_SpriteOp"..4| 00002080 15 20 20 20 20 20 4d 4f 56 20 20 20 50 43 2c 52 |. MOV PC,R| 00002090 31 34 0d 0d 3e 04 0d 0d 48 12 20 2e 73 70 5f 62 |14..>...H. .sp_b| 000020a0 6c 6f 63 6b 5f 70 6f 73 0d 0d 52 1a 20 20 20 20 |lock_pos..R. | 000020b0 20 45 51 55 44 20 20 28 73 70 5f 62 6c 6f 63 6b | EQUD (sp_block| 000020c0 25 29 0d 0d 5c 0b 20 2e 74 69 74 6c 65 0d 0d 66 |%)..\. .title..f| 000020d0 19 20 20 20 20 20 45 51 55 53 20 20 28 22 73 68 |. EQUS ("sh| 000020e0 69 70 2a 20 22 29 0d 0d 70 0e 20 20 20 20 20 41 |ip* ")..p. A| 000020f0 4c 49 47 4e 0d 0d 7a 08 20 2e 52 25 0d 0d 84 10 |LIGN..z. .R%....| 00002100 20 20 20 20 20 45 51 55 44 28 30 29 0d 0d 8e 0d | EQUD(0)....| 00002110 20 2e 74 68 72 75 73 74 25 0d 0d 98 10 20 20 20 | .thrust%.... | 00002120 20 20 45 51 55 44 28 30 29 0d 0d a2 04 0d 0d ac | EQUD(0).......| 00002130 11 20 2e 63 68 65 63 6b 5f 64 65 61 74 68 0d 0d |. .check_death..| 00002140 b6 16 20 20 20 20 20 4c 44 52 20 20 20 52 30 2c |.. LDR R0,| 00002150 78 70 6f 73 0d 0d c0 15 20 20 20 20 20 43 4d 50 |xpos.... CMP| 00002160 20 20 20 52 30 2c 23 32 30 0d 0d ca 14 20 20 20 | R0,#20.... | 00002170 20 20 4d 4f 56 4c 53 20 52 31 2c 23 31 0d 0d d4 | MOVLS R1,#1...| 00002180 1c 20 20 20 20 20 53 54 52 4c 53 20 52 31 2c 72 |. STRLS R1,r| 00002190 6f 6f 6d 5f 63 68 65 63 6b 0d 0d de 17 20 20 20 |oom_check.... | 000021a0 20 20 43 4d 50 20 20 20 52 30 2c 23 31 31 35 32 | CMP R0,#1152| 000021b0 0d 0d e8 14 20 20 20 20 20 4d 4f 56 48 49 20 52 |.... MOVHI R| 000021c0 31 2c 23 32 0d 0d f2 1c 20 20 20 20 20 53 54 52 |1,#2.... STR| 000021d0 48 49 20 52 31 2c 72 6f 6f 6d 5f 63 68 65 63 6b |HI R1,room_check| 000021e0 0d 0d fc 16 20 20 20 20 20 4c 44 52 20 20 20 52 |.... LDR R| 000021f0 30 2c 79 70 6f 73 0d 0e 06 15 20 20 20 20 20 43 |0,ypos.... C| 00002200 4d 50 20 20 20 52 30 2c 23 32 30 0d 0e 10 14 20 |MP R0,#20.... | 00002210 20 20 20 20 4d 4f 56 4c 53 20 52 31 2c 23 33 0d | MOVLS R1,#3.| 00002220 0e 1a 1c 20 20 20 20 20 53 54 52 4c 53 20 52 31 |... STRLS R1| 00002230 2c 72 6f 6f 6d 5f 63 68 65 63 6b 0d 0e 24 16 20 |,room_check..$. | 00002240 20 20 20 20 43 4d 50 20 20 20 52 30 2c 23 37 36 | CMP R0,#76| 00002250 38 0d 0e 2e 14 20 20 20 20 20 4d 4f 56 48 49 20 |8.... MOVHI | 00002260 52 31 2c 23 34 0d 0e 38 1c 20 20 20 20 20 53 54 |R1,#4..8. ST| 00002270 52 48 49 20 52 31 2c 72 6f 6f 6d 5f 63 68 65 63 |RHI R1,room_chec| 00002280 6b 0d 0e 42 15 20 20 20 20 20 4d 4f 56 20 20 20 |k..B. MOV | 00002290 52 31 30 2c 23 30 0d 0e 4c 16 20 20 20 20 20 4c |R10,#0..L. L| 000022a0 44 52 20 20 20 52 30 2c 78 70 6f 73 0d 0e 56 1a |DR R0,xpos..V.| 000022b0 20 20 20 20 20 4d 4f 56 20 20 20 52 30 2c 52 30 | MOV R0,R0| 000022c0 2c 4c 53 52 23 32 0d 0e 60 1a 20 20 20 20 20 4d |,LSR#2..`. M| 000022d0 4f 56 20 20 20 52 30 2c 52 30 2c 4c 53 4c 23 32 |OV R0,R0,LSL#2| 000022e0 0d 0e 6a 16 20 20 20 20 20 53 54 52 20 20 20 52 |..j. STR R| 000022f0 30 2c 78 70 6f 73 0d 0e 74 16 20 20 20 20 20 4c |0,xpos..t. L| 00002300 44 52 20 20 20 52 30 2c 79 70 6f 73 0d 0e 7e 1a |DR R0,ypos..~.| 00002310 20 20 20 20 20 4d 4f 56 20 20 20 52 30 2c 52 30 | MOV R0,R0| 00002320 2c 4c 53 52 23 32 0d 0e 88 1a 20 20 20 20 20 4d |,LSR#2.... M| 00002330 4f 56 20 20 20 52 30 2c 52 30 2c 4c 53 4c 23 32 |OV R0,R0,LSL#2| 00002340 0d 0e 92 16 20 20 20 20 20 53 54 52 20 20 20 52 |.... STR R| 00002350 30 2c 79 70 6f 73 0d 0e 9c 16 20 20 20 20 20 4c |0,ypos.... L| 00002360 44 52 20 20 20 52 30 2c 78 70 6f 73 0d 0e a6 1a |DR R0,xpos....| 00002370 20 20 20 20 20 4d 4f 56 20 20 20 52 30 2c 52 30 | MOV R0,R0| 00002380 2c 4c 53 52 23 32 0d 0e b0 16 20 20 20 20 20 4c |,LSR#2.... L| 00002390 44 52 20 20 20 52 31 2c 79 70 6f 73 0d 0e ba 18 |DR R1,ypos....| 000023a0 20 20 20 20 20 41 44 44 20 20 20 52 31 2c 52 31 | ADD R1,R1| 000023b0 2c 23 38 30 0d 0e c4 16 20 20 20 20 20 54 53 54 |,#80.... TST| 000023c0 20 20 20 52 31 2c 23 25 31 31 0d 0e ce 17 20 20 | R1,#%11.... | 000023d0 20 20 20 42 4e 45 20 20 20 6e 6f 5f 65 78 74 72 | BNE no_extr| 000023e0 61 0d 0e d8 17 20 20 20 20 20 41 44 44 20 20 20 |a.... ADD | 000023f0 52 31 2c 52 31 2c 23 34 0d 0e e2 0e 20 2e 6e 6f |R1,R1,#4.... .no| 00002400 5f 65 78 74 72 61 0d 0e ec 17 20 20 20 20 20 4d |_extra.... M| 00002410 4f 56 20 20 20 52 32 2c 23 31 30 32 34 0d 0e f6 |OV R2,#1024...| 00002420 17 20 20 20 20 20 53 55 42 20 20 20 52 33 2c 52 |. SUB R3,R| 00002430 32 2c 52 31 0d 0f 00 1a 20 20 20 20 20 4d 4f 56 |2,R1.... MOV| 00002440 20 20 20 52 33 2c 52 33 2c 4c 53 52 23 32 0d 0f | R3,R3,LSR#2..| 00002450 0a 17 20 20 20 20 20 4d 4f 56 20 20 20 52 34 2c |.. MOV R4,| 00002460 23 26 31 34 30 0d 0f 14 17 20 20 20 20 20 4d 55 |#&140.... MU| 00002470 4c 20 20 20 52 36 2c 52 33 2c 52 34 0d 0f 1e 17 |L R6,R3,R4....| 00002480 20 20 20 20 20 41 44 44 20 20 20 52 36 2c 52 36 | ADD R6,R6| 00002490 2c 52 30 0d 0f 28 20 20 20 20 20 20 4c 44 52 20 |,R0..( LDR | 000024a0 20 20 52 35 2c 74 6f 70 5f 73 63 72 65 65 6e 5f | R5,top_screen_| 000024b0 70 6f 73 0d 0f 32 17 20 20 20 20 20 41 44 44 20 |pos..2. ADD | 000024c0 20 20 52 35 2c 52 35 2c 52 36 0d 0f 3c 1c 20 20 | R5,R5,R6..<. | 000024d0 20 20 20 4c 44 52 20 20 20 52 39 2c 63 72 61 66 | LDR R9,craf| 000024e0 74 5f 74 79 70 65 0d 0f 46 14 20 20 20 20 20 43 |t_type..F. C| 000024f0 4d 50 20 20 20 52 39 2c 23 30 0d 0f 50 1d 20 20 |MP R9,#0..P. | 00002500 20 20 20 4c 44 52 45 51 20 52 34 2c 6c 61 6e 64 | LDREQ R4,land| 00002510 65 72 5f 70 6f 73 31 0d 0f 5a 14 20 20 20 20 20 |er_pos1..Z. | 00002520 43 4d 50 20 20 20 52 39 2c 23 31 0d 0f 64 1d 20 |CMP R9,#1..d. | 00002530 20 20 20 20 4c 44 52 45 51 20 52 34 2c 6c 61 6e | LDREQ R4,lan| 00002540 64 65 72 5f 70 6f 73 32 0d 0f 6e 14 20 20 20 20 |der_pos2..n. | 00002550 20 43 4d 50 20 20 20 52 39 2c 23 32 0d 0f 78 1d | CMP R9,#2..x.| 00002560 20 20 20 20 20 4c 44 52 45 51 20 52 34 2c 6c 61 | LDREQ R4,la| 00002570 6e 64 65 72 5f 70 6f 73 33 0d 0f 82 14 20 20 20 |nder_pos3.... | 00002580 20 20 4d 4f 56 20 20 20 52 36 2c 23 30 0d 0f 8c | MOV R6,#0...| 00002590 17 20 20 20 20 20 4d 4f 56 20 20 20 52 37 2c 23 |. MOV R7,#| 000025a0 26 31 34 30 0d 0f 96 12 20 2e 79 5f 63 68 65 63 |&140.... .y_chec| 000025b0 6b 5f 6c 6f 6f 70 0d 0f a0 14 20 20 20 20 20 4d |k_loop.... M| 000025c0 4f 56 20 20 20 52 30 2c 23 30 0d 0f aa 12 20 2e |OV R0,#0.... .| 000025d0 78 5f 63 68 65 63 6b 5f 6c 6f 6f 70 0d 0f b4 16 |x_check_loop....| 000025e0 20 20 20 20 20 4d 4f 56 20 20 20 52 38 2c 23 32 | MOV R8,#2| 000025f0 35 35 0d 0f be 19 20 20 20 20 20 4c 44 52 42 20 |55.... LDRB | 00002600 20 52 33 2c 5b 52 35 2c 52 30 5d 0d 0f c8 19 20 | R3,[R5,R0].... | 00002610 20 20 20 20 4c 44 52 42 20 20 52 32 2c 5b 52 34 | LDRB R2,[R4| 00002620 2c 52 30 5d 0d 0f d2 14 20 20 20 20 20 43 4d 50 |,R0].... CMP| 00002630 20 20 20 52 32 2c 23 30 0d 0f dc 17 20 20 20 20 | R2,#0.... | 00002640 20 42 45 51 20 20 20 6e 6f 5f 63 68 65 63 6b 0d | BEQ no_check.| 00002650 0f e6 14 20 20 20 20 20 43 4d 50 20 20 20 52 32 |... CMP R2| 00002660 2c 52 33 0d 0f f0 1c 20 20 20 20 20 42 4e 45 20 |,R3.... BNE | 00002670 20 20 68 69 74 5f 73 6f 6d 65 74 68 69 6e 67 0d | hit_something.| 00002680 0f fa 0e 20 2e 6e 6f 5f 63 68 65 63 6b 0d 10 04 |... .no_check...| 00002690 17 20 20 20 20 20 41 44 44 20 20 20 52 30 2c 52 |. ADD R0,R| 000026a0 30 2c 23 31 0d 10 0e 1f 20 20 20 20 20 43 4d 50 |0,#1.... CMP| 000026b0 20 20 20 52 30 2c 23 6c 61 6e 64 65 72 5f 78 5f | R0,#lander_x_| 000026c0 6c 65 6e 0d 10 18 1b 20 20 20 20 20 42 4e 45 20 |len.... BNE | 000026d0 20 20 78 5f 63 68 65 63 6b 5f 6c 6f 6f 70 0d 10 | x_check_loop..| 000026e0 22 17 20 20 20 20 20 41 44 44 20 20 20 52 36 2c |". ADD R6,| 000026f0 52 36 2c 23 31 0d 10 2c 17 20 20 20 20 20 41 44 |R6,#1..,. AD| 00002700 44 20 20 20 52 35 2c 52 35 2c 52 37 0d 10 36 22 |D R5,R5,R7..6"| 00002710 20 20 20 20 20 41 44 44 20 20 20 52 34 2c 52 34 | ADD R4,R4| 00002720 2c 23 6c 61 6e 64 65 72 5f 78 5f 6c 65 6e 0d 10 |,#lander_x_len..| 00002730 40 1f 20 20 20 20 20 43 4d 50 20 20 20 52 36 2c |@. CMP R6,| 00002740 23 6c 61 6e 64 65 72 5f 79 5f 6c 65 6e 0d 10 4a |#lander_y_len..J| 00002750 1b 20 20 20 20 20 42 4e 45 20 20 20 79 5f 63 68 |. BNE y_ch| 00002760 65 63 6b 5f 6c 6f 6f 70 0d 10 54 14 20 20 20 20 |eck_loop..T. | 00002770 20 4d 4f 56 20 20 20 52 30 2c 23 30 0d 10 5e 19 | MOV R0,#0..^.| 00002780 20 20 20 20 20 53 54 52 20 20 20 52 30 2c 72 65 | STR R0,re| 00002790 73 75 6c 74 73 0d 10 68 19 20 20 20 20 20 53 54 |sults..h. ST| 000027a0 52 20 20 20 52 31 30 2c 63 6f 75 6e 74 73 0d 10 |R R10,counts..| 000027b0 72 1a 20 20 20 20 20 42 20 20 20 20 20 61 64 6a |r. B adj| 000027c0 75 73 74 5f 66 75 65 6c 0d 10 7c 13 20 2e 68 69 |ust_fuel..|. .hi| 000027d0 74 5f 73 6f 6d 65 74 68 69 6e 67 0d 10 86 15 20 |t_something.... | 000027e0 20 20 20 20 82 20 20 20 52 38 2c 52 33 2c 52 32 | . R8,R3,R2| 000027f0 0d 10 90 15 20 20 20 20 20 43 4d 50 20 20 20 52 |.... CMP R| 00002800 38 2c 23 31 38 0d 10 9a 17 20 20 20 20 20 42 45 |8,#18.... BE| 00002810 51 20 20 20 6e 6f 5f 63 68 65 63 6b 0d 10 a4 15 |Q no_check....| 00002820 20 20 20 20 20 43 4d 50 20 20 20 52 38 2c 23 38 | CMP R8,#8| 00002830 34 0d 10 ae 17 20 20 20 20 20 42 45 51 20 20 20 |4.... BEQ | 00002840 6e 6f 5f 63 68 65 63 6b 0d 10 b8 16 20 20 20 20 |no_check.... | 00002850 20 43 4d 50 20 20 20 52 38 2c 23 32 30 38 0d 10 | CMP R8,#208..| 00002860 c2 1a 20 20 20 20 20 42 4e 45 20 20 20 6e 6f 74 |.. BNE not| 00002870 5f 72 65 5f 66 75 65 6c 0d 10 cc 19 20 20 20 20 |_re_fuel.... | 00002880 20 41 44 44 20 20 20 52 31 30 2c 52 31 30 2c 23 | ADD R10,R10,#| 00002890 31 0d 10 d6 17 20 20 20 20 20 42 45 51 20 20 20 |1.... BEQ | 000028a0 6e 6f 5f 63 68 65 63 6b 0d 10 e0 11 20 2e 6e 6f |no_check.... .no| 000028b0 74 5f 72 65 5f 66 75 65 6c 0d 10 ea 19 20 20 20 |t_re_fuel.... | 000028c0 20 20 53 54 52 20 20 20 52 38 2c 72 65 73 75 6c | STR R8,resul| 000028d0 74 73 0d 10 f4 19 20 20 20 20 20 53 54 52 20 20 |ts.... STR | 000028e0 20 52 31 30 2c 63 6f 75 6e 74 73 0d 10 fe 1a 20 | R10,counts.... | 000028f0 20 20 20 20 42 20 20 20 20 20 61 64 6a 75 73 74 | B adjust| 00002900 5f 66 75 65 6c 0d 11 08 04 0d 11 12 14 20 2e 74 |_fuel........ .t| 00002910 6f 70 5f 73 63 72 65 65 6e 5f 70 6f 73 0d 11 1c |op_screen_pos...| 00002920 1c 20 20 20 20 20 45 51 55 44 20 20 28 73 72 6e |. EQUD (srn| 00002930 25 2d 26 31 34 30 30 30 29 0d 11 26 0c 20 2e 63 |%-&14000)..&. .c| 00002940 6f 75 6e 74 73 0d 11 30 12 20 20 20 20 20 45 51 |ounts..0. EQ| 00002950 55 44 20 20 28 30 29 0d 11 3a 0a 20 2e 78 70 6f |UD (0)..:. .xpo| 00002960 73 0d 11 44 12 20 20 20 20 20 45 51 55 44 20 20 |s..D. EQUD | 00002970 28 30 29 0d 11 4e 0a 20 2e 79 70 6f 73 0d 11 58 |(0)..N. .ypos..X| 00002980 12 20 20 20 20 20 45 51 55 44 20 20 28 30 29 0d |. EQUD (0).| 00002990 11 62 10 20 2e 63 72 61 66 74 5f 74 79 70 65 0d |.b. .craft_type.| 000029a0 11 6c 12 20 20 20 20 20 45 51 55 44 20 20 28 30 |.l. EQUD (0| 000029b0 29 0d 11 76 0d 20 2e 72 65 73 75 6c 74 73 0d 11 |)..v. .results..| 000029c0 80 12 20 20 20 20 20 45 51 55 44 20 20 28 30 29 |.. EQUD (0)| 000029d0 0d 11 8a 10 20 2e 72 6f 6f 6d 5f 63 68 65 63 6b |.... .room_check| 000029e0 0d 11 94 12 20 20 20 20 20 45 51 55 44 20 20 28 |.... EQUD (| 000029f0 30 29 0d 11 9e 0b 20 2e 66 75 65 6c 25 0d 11 a8 |0).... .fuel%...| 00002a00 12 20 20 20 20 20 45 51 55 44 20 20 28 30 29 0d |. EQUD (0).| 00002a10 11 b2 0e 20 2e 66 75 65 6c 5f 70 6f 73 0d 11 bc |... .fuel_pos...| 00002a20 21 20 20 20 20 20 45 51 55 44 20 20 28 73 72 6e |! EQUD (srn| 00002a30 25 2d 26 31 34 30 30 30 2b 26 31 39 37 29 0d 11 |%-&14000+&197)..| 00002a40 c6 0d 20 2e 72 65 74 5f 6b 65 79 0d 11 d0 14 20 |.. .ret_key.... | 00002a50 20 20 20 20 45 51 55 44 20 20 28 2d 37 34 29 0d | EQUD (-74).| 00002a60 11 da 11 20 2e 6c 61 6e 64 65 72 5f 70 6f 73 31 |... .lander_pos1| 00002a70 0d 11 e4 2e 20 20 20 20 20 45 51 55 44 20 20 28 |.... EQUD (| 00002a80 73 70 72 69 74 65 5f 64 61 74 61 2b 28 38 2a 78 |sprite_data+(8*x| 00002a90 77 69 64 74 68 2a 79 77 69 64 74 68 29 29 0d 11 |width*ywidth))..| 00002aa0 ee 11 20 2e 6c 61 6e 64 65 72 5f 70 6f 73 32 0d |.. .lander_pos2.| 00002ab0 11 f8 2e 20 20 20 20 20 45 51 55 44 20 20 28 73 |... EQUD (s| 00002ac0 70 72 69 74 65 5f 64 61 74 61 2b 28 39 2a 78 77 |prite_data+(9*xw| 00002ad0 69 64 74 68 2a 79 77 69 64 74 68 29 29 0d 12 02 |idth*ywidth))...| 00002ae0 11 20 2e 6c 61 6e 64 65 72 5f 70 6f 73 33 0d 12 |. .lander_pos3..| 00002af0 0c 2f 20 20 20 20 20 45 51 55 44 20 20 28 73 70 |./ EQUD (sp| 00002b00 72 69 74 65 5f 64 61 74 61 2b 28 31 30 2a 78 77 |rite_data+(10*xw| 00002b10 69 64 74 68 2a 79 77 69 64 74 68 29 29 0d 12 16 |idth*ywidth))...| 00002b20 04 0d 12 20 11 20 2e 61 64 6a 75 73 74 5f 66 75 |... . .adjust_fu| 00002b30 65 6c 0d 12 2a 16 20 20 20 20 20 4d 4f 56 20 20 |el..*. MOV | 00002b40 20 52 30 2c 23 31 32 39 0d 12 34 19 20 20 20 20 | R0,#129..4. | 00002b50 20 4c 44 52 20 20 20 52 31 2c 72 65 74 5f 6b 65 | LDR R1,ret_ke| 00002b60 79 0d 12 3e 16 20 20 20 20 20 4d 4f 56 20 20 20 |y..>. MOV | 00002b70 52 32 2c 23 32 35 35 0d 12 48 18 20 20 20 20 20 |R2,#255..H. | 00002b80 53 57 49 20 20 20 22 4f 53 5f 42 79 74 65 22 0d |SWI "OS_Byte".| 00002b90 12 52 16 20 20 20 20 20 43 4d 50 20 20 20 52 31 |.R. CMP R1| 00002ba0 2c 23 32 35 35 0d 12 5c 18 20 20 20 20 20 42 45 |,#255..\. BE| 00002bb0 51 20 20 20 66 75 65 6c 5f 75 73 65 64 0d 12 66 |Q fuel_used..f| 00002bc0 15 20 20 20 20 20 4d 4f 56 20 20 20 50 43 2c 52 |. MOV PC,R| 00002bd0 31 34 0d 12 70 0f 20 2e 66 75 65 6c 5f 75 73 65 |14..p. .fuel_use| 00002be0 64 0d 12 7a 17 20 20 20 20 20 4c 44 52 20 20 20 |d..z. LDR | 00002bf0 52 30 2c 66 75 65 6c 25 0d 12 84 14 20 20 20 20 |R0,fuel%.... | 00002c00 20 43 4d 50 20 20 20 52 30 2c 23 30 0d 12 8e 1b | CMP R0,#0....| 00002c10 20 20 20 20 20 42 45 51 20 20 20 66 75 65 6c 5f | BEQ fuel_| 00002c20 75 73 65 64 5f 75 70 0d 12 98 17 20 20 20 20 20 |used_up.... | 00002c30 4c 44 52 20 20 20 52 31 2c 66 75 65 6c 25 0d 12 |LDR R1,fuel%..| 00002c40 a2 1a 20 20 20 20 20 4d 4f 56 20 20 20 52 31 2c |.. MOV R1,| 00002c50 52 31 2c 4c 53 52 23 32 0d 12 ac 1a 20 20 20 20 |R1,LSR#2.... | 00002c60 20 4c 44 52 20 20 20 52 32 2c 66 75 65 6c 5f 70 | LDR R2,fuel_p| 00002c70 6f 73 0d 12 b6 17 20 20 20 20 20 41 44 44 20 20 |os.... ADD | 00002c80 20 52 32 2c 52 32 2c 52 31 0d 12 c0 14 20 20 20 | R2,R2,R1.... | 00002c90 20 20 4d 4f 56 20 20 20 52 33 2c 23 30 0d 12 ca | MOV R3,#0...| 00002ca0 16 20 20 20 20 20 53 54 52 42 20 20 52 33 2c 5b |. STRB R3,[| 00002cb0 52 32 5d 0d 12 d4 17 20 20 20 20 20 4d 4f 56 20 |R2].... MOV | 00002cc0 20 20 52 34 2c 23 26 31 34 30 0d 12 de 17 20 20 | R4,#&140.... | 00002cd0 20 20 20 41 44 44 20 20 20 52 32 2c 52 32 2c 52 | ADD R2,R2,R| 00002ce0 34 0d 12 e8 16 20 20 20 20 20 53 54 52 42 20 20 |4.... STRB | 00002cf0 52 33 2c 5b 52 32 5d 0d 12 f2 17 20 20 20 20 20 |R3,[R2].... | 00002d00 41 44 44 20 20 20 52 32 2c 52 32 2c 52 34 0d 12 |ADD R2,R2,R4..| 00002d10 fc 16 20 20 20 20 20 53 54 52 42 20 20 52 33 2c |.. STRB R3,| 00002d20 5b 52 32 5d 0d 13 06 17 20 20 20 20 20 41 44 44 |[R2].... ADD| 00002d30 20 20 20 52 32 2c 52 32 2c 52 34 0d 13 10 16 20 | R2,R2,R4.... | 00002d40 20 20 20 20 53 54 52 42 20 20 52 33 2c 5b 52 32 | STRB R3,[R2| 00002d50 5d 0d 13 1a 17 20 20 20 20 20 53 55 42 20 20 20 |].... SUB | 00002d60 52 30 2c 52 30 2c 23 31 0d 13 24 17 20 20 20 20 |R0,R0,#1..$. | 00002d70 20 53 54 52 20 20 20 52 30 2c 66 75 65 6c 25 0d | STR R0,fuel%.| 00002d80 13 2e 12 20 2e 66 75 65 6c 5f 75 73 65 64 5f 75 |... .fuel_used_u| 00002d90 70 0d 13 38 15 20 20 20 20 20 4d 4f 56 20 20 20 |p..8. MOV | 00002da0 50 43 2c 52 31 34 0d 13 42 04 0d 13 4c 10 20 2e |PC,R14..B...L. .| 00002db0 66 69 78 5f 73 63 72 65 65 6e 0d 13 56 14 20 20 |fix_screen..V. | 00002dc0 20 20 20 4d 4f 56 20 20 20 52 35 2c 23 30 0d 13 | MOV R5,#0..| 00002dd0 60 14 20 20 20 20 20 4d 4f 56 20 20 20 52 36 2c |`. MOV R6,| 00002de0 23 30 0d 13 6a 19 20 20 20 20 20 4d 4f 56 20 20 |#0..j. MOV | 00002df0 20 52 37 2c 23 78 77 69 64 74 68 0d 13 74 1f 20 | R7,#xwidth..t. | 00002e00 20 20 20 20 4c 44 52 20 20 20 52 34 2c 73 70 72 | LDR R4,spr| 00002e10 69 74 65 5f 6c 65 6e 67 74 68 0d 13 7e 1a 20 20 |ite_length..~. | 00002e20 20 20 20 4d 4f 56 20 20 20 52 31 30 2c 23 79 77 | MOV R10,#yw| 00002e30 69 64 74 68 0d 13 88 21 20 20 20 20 20 4c 44 52 |idth...! LDR| 00002e40 20 20 20 52 30 2c 73 70 72 69 74 65 5f 70 6f 73 | R0,sprite_pos| 00002e50 69 74 69 6f 6e 0d 13 92 21 20 20 20 20 20 4c 44 |ition...! LD| 00002e60 52 20 20 20 52 31 2c 73 63 72 65 65 6e 5f 70 6f |R R1,screen_po| 00002e70 73 69 74 69 6f 6e 0d 13 9c 15 20 20 20 20 20 4d |sition.... M| 00002e80 4f 56 20 20 20 52 31 32 2c 23 30 0d 13 a6 0a 20 |OV R12,#0.... | 00002e90 2e 6c 6f 6f 70 0d 13 b0 16 20 20 20 20 20 4c 44 |.loop.... LD| 00002ea0 52 42 20 20 52 32 2c 5b 52 31 5d 0d 13 ba 14 20 |RB R2,[R1].... | 00002eb0 20 20 20 20 43 4d 50 20 20 20 52 32 2c 23 30 0d | CMP R2,#0.| 00002ec0 13 c4 19 20 20 20 20 20 42 45 51 20 20 20 71 75 |... BEQ qu| 00002ed0 69 63 6b 5f 6c 6f 6f 70 0d 13 ce 17 20 20 20 20 |ick_loop.... | 00002ee0 20 4d 55 4c 20 20 20 52 33 2c 52 32 2c 52 34 0d | MUL R3,R2,R4.| 00002ef0 13 d8 17 20 20 20 20 20 41 44 44 20 20 20 52 33 |... ADD R3| 00002f00 2c 52 33 2c 52 35 0d 13 e2 17 20 20 20 20 20 4d |,R3,R5.... M| 00002f10 55 4c 20 20 20 52 38 2c 52 36 2c 52 37 0d 13 ec |UL R8,R6,R7...| 00002f20 17 20 20 20 20 20 41 44 44 20 20 20 52 33 2c 52 |. ADD R3,R| 00002f30 33 2c 52 38 0d 13 f6 17 20 20 20 20 20 41 44 44 |3,R8.... ADD| 00002f40 20 20 20 52 33 2c 52 33 2c 52 30 0d 14 00 16 20 | R3,R3,R0.... | 00002f50 20 20 20 20 4c 44 52 42 20 20 52 39 2c 5b 52 33 | LDRB R9,[R3| 00002f60 5d 0d 14 0a 16 20 20 20 20 20 53 54 52 42 20 20 |].... STRB | 00002f70 52 39 2c 5b 52 31 5d 0d 14 14 10 20 2e 71 75 69 |R9,[R1].... .qui| 00002f80 63 6b 5f 6c 6f 6f 70 0d 14 1e 17 20 20 20 20 20 |ck_loop.... | 00002f90 41 44 44 20 20 20 52 35 2c 52 35 2c 23 31 0d 14 |ADD R5,R5,#1..| 00002fa0 28 14 20 20 20 20 20 43 4d 50 53 20 20 52 35 2c |(. CMPS R5,| 00002fb0 52 37 0d 14 32 11 20 20 20 20 20 ec 51 20 52 35 |R7..2. .Q R5| 00002fc0 2c 23 30 0d 14 3c 17 20 20 20 20 20 41 44 44 20 |,#0..<. ADD | 00002fd0 20 20 52 31 2c 52 31 2c 23 31 0d 14 46 19 20 20 | R1,R1,#1..F. | 00002fe0 20 20 20 41 44 44 20 20 20 52 31 32 2c 52 31 32 | ADD R12,R12| 00002ff0 2c 23 31 0d 14 50 1e 20 20 20 20 20 4c 44 52 20 |,#1..P. LDR | 00003000 20 20 52 31 31 2c 6c 69 6e 65 5f 6c 65 6e 67 74 | R11,line_lengt| 00003010 68 0d 14 5a 16 20 20 20 20 20 43 4d 50 20 20 20 |h..Z. CMP | 00003020 52 31 32 2c 52 31 31 0d 14 64 12 20 20 20 20 20 |R12,R11..d. | 00003030 ec 51 20 52 31 32 2c 23 30 0d 14 6e 11 20 20 20 |.Q R12,#0..n. | 00003040 20 20 ec 51 20 52 35 2c 23 30 0d 14 78 17 20 20 | .Q R5,#0..x. | 00003050 20 20 20 41 44 44 45 51 20 52 36 2c 52 36 2c 23 | ADDEQ R6,R6,#| 00003060 31 0d 14 82 15 20 20 20 20 20 43 4d 50 53 20 20 |1.... CMPS | 00003070 52 36 2c 52 31 30 0d 14 8c 11 20 20 20 20 20 ec |R6,R10.... .| 00003080 51 20 52 36 2c 23 30 0d 14 96 20 20 20 20 20 20 |Q R6,#0... | 00003090 4c 44 52 20 20 20 52 31 31 2c 73 63 72 65 65 6e |LDR R11,screen| 000030a0 5f 6c 65 6e 67 74 68 0d 14 a0 15 20 20 20 20 20 |_length.... | 000030b0 43 4d 50 53 20 20 52 31 2c 52 31 31 0d 14 aa 13 |CMPS R1,R11....| 000030c0 20 20 20 20 20 42 4e 45 20 20 20 6c 6f 6f 70 0d | BNE loop.| 000030d0 14 b4 13 20 20 20 20 20 4d 4f 56 20 50 43 2c 52 |... MOV PC,R| 000030e0 31 34 0d 14 be 15 20 2e 73 63 72 65 65 6e 5f 70 |14.... .screen_p| 000030f0 6f 73 69 74 69 6f 6e 0d 14 c8 1c 20 20 20 20 20 |osition.... | 00003100 45 51 55 44 20 20 28 73 72 6e 25 2d 26 31 31 33 |EQUD (srn%-&113| 00003110 30 30 29 0d 14 d2 15 20 2e 73 70 72 69 74 65 5f |00).... .sprite_| 00003120 70 6f 73 69 74 69 6f 6e 0d 14 dc 1c 20 20 20 20 |position.... | 00003130 20 45 51 55 44 20 20 28 73 70 72 69 74 65 5f 64 | EQUD (sprite_d| 00003140 61 74 61 29 0d 14 e6 13 20 2e 73 63 72 65 65 6e |ata).... .screen| 00003150 5f 6c 65 6e 67 74 68 0d 14 f0 15 20 20 20 20 20 |_length.... | 00003160 45 51 55 44 20 20 28 73 72 6e 25 29 0d 14 fa 11 |EQUD (srn%)....| 00003170 20 2e 6c 69 6e 65 5f 6c 65 6e 67 74 68 0d 15 04 | .line_length...| 00003180 15 20 20 20 20 20 45 51 55 44 20 20 28 26 31 34 |. EQUD (&14| 00003190 30 29 0d 15 0e 13 20 2e 73 70 72 69 74 65 5f 6c |0).... .sprite_l| 000031a0 65 6e 67 74 68 0d 15 18 1e 20 20 20 20 20 45 51 |ength.... EQ| 000031b0 55 44 20 20 28 78 77 69 64 74 68 2a 79 77 69 64 |UD (xwidth*ywid| 000031c0 74 68 29 0d 15 22 11 20 2e 73 70 72 69 74 65 5f |th)..". .sprite_| 000031d0 64 61 74 61 0d 15 2c 0a 20 20 20 20 20 5d 0d 15 |data..,. ]..| 000031e0 36 0e 20 20 20 ed 20 70 61 73 73 25 0d 15 40 36 |6. . pass%..@6| 000031f0 20 20 20 ff 28 22 4c 4f 41 44 20 3c 4c 61 6e 64 | .("LOAD <Land| 00003200 65 72 24 44 69 72 3e 2e 53 70 72 44 61 74 61 20 |er$Dir>.SprData | 00003210 22 2b c3 7e 28 73 70 72 69 74 65 5f 64 61 74 61 |"+.~(sprite_data| 00003220 29 29 0d 15 4a 06 20 e1 0d 15 54 06 20 3a 0d 15 |))..J. ...T. :..| 00003230 5e 14 20 dd 20 f2 6c 6f 61 64 5f 6d 6f 64 75 6c |^. . .load_modul| 00003240 65 73 0d 15 68 3f 20 20 20 2a 52 4d 45 6e 73 75 |es..h? *RMEnsu| 00003250 72 65 20 47 61 6d 65 4f 76 65 72 20 30 20 52 4d |re GameOver 0 RM| 00003260 4c 6f 61 64 20 3c 4c 61 6e 64 65 72 24 44 69 72 |Load <Lander$Dir| 00003270 3e 2e 53 6f 75 6e 64 73 2e 47 61 6d 65 4f 76 65 |>.Sounds.GameOve| 00003280 72 0d 15 72 3d 20 20 20 2a 52 4d 45 6e 73 75 72 |r..r= *RMEnsur| 00003290 65 20 45 78 70 6c 6f 64 65 20 30 20 52 4d 4c 6f |e Explode 0 RMLo| 000032a0 61 64 20 3c 4c 61 6e 64 65 72 24 44 69 72 3e 2e |ad <Lander$Dir>.| 000032b0 53 6f 75 6e 64 73 2e 45 78 70 6c 6f 64 65 0d 15 |Sounds.Explode..| 000032c0 7c 3b 20 20 20 2a 52 4d 45 6e 73 75 72 65 20 4b ||; *RMEnsure K| 000032d0 65 79 47 65 74 20 30 20 52 4d 4c 6f 61 64 20 3c |eyGet 0 RMLoad <| 000032e0 4c 61 6e 64 65 72 24 44 69 72 3e 2e 53 6f 75 6e |Lander$Dir>.Soun| 000032f0 64 73 2e 4b 65 79 47 65 74 0d 15 86 3b 20 20 20 |ds.KeyGet...; | 00003300 2a 52 4d 45 6e 73 75 72 65 20 4f 62 6a 47 65 74 |*RMEnsure ObjGet| 00003310 20 30 20 52 4d 4c 6f 61 64 20 3c 4c 61 6e 64 65 | 0 RMLoad <Lande| 00003320 72 24 44 69 72 3e 2e 53 6f 75 6e 64 73 2e 4f 62 |r$Dir>.Sounds.Ob| 00003330 6a 47 65 74 0d 15 90 3b 20 20 20 2a 52 4d 45 6e |jGet...; *RMEn| 00003340 73 75 72 65 20 52 65 46 75 65 6c 20 30 20 52 4d |sure ReFuel 0 RM| 00003350 4c 6f 61 64 20 3c 4c 61 6e 64 65 72 24 44 69 72 |Load <Lander$Dir| 00003360 3e 2e 53 6f 75 6e 64 73 2e 52 65 46 75 65 6c 0d |>.Sounds.ReFuel.| 00003370 15 9a 38 20 20 20 2a 52 4d 45 6e 73 75 72 65 20 |..8 *RMEnsure | 00003380 4d 65 6d 41 6c 6c 6f 63 20 30 20 52 4d 4c 6f 61 |MemAlloc 0 RMLoa| 00003390 64 20 3c 4c 61 6e 64 65 72 24 44 69 72 3e 2e 4d |d <Lander$Dir>.M| 000033a0 65 6d 41 6c 6c 6f 63 0d 15 a4 1d 20 20 20 2a 43 |emAlloc.... *C| 000033b0 48 41 4e 4e 45 4c 56 4f 49 43 45 20 34 20 4f 62 |HANNELVOICE 4 Ob| 000033c0 6a 47 65 74 0d 15 ae 06 20 e1 0d 15 b8 06 20 3a |jGet.... ..... :| 000033d0 0d 15 c2 13 20 dd 20 f2 63 68 65 63 6b 5f 64 65 |.... . .check_de| 000033e0 61 74 68 0d 15 cc 22 20 20 20 e7 20 21 63 6f 75 |ath..." . !cou| 000033f0 6e 74 73 3e 3d 34 20 80 20 94 28 66 61 6c 6c 29 |nts>=4 . .(fall)| 00003400 3c 31 30 20 8c 0d 15 d6 12 20 20 20 20 20 20 f2 |<10 ..... .| 00003410 72 65 5f 66 75 65 6c 0d 15 e0 0b 20 20 20 20 20 |re_fuel.... | 00003420 20 e1 0d 15 ea 0a 20 20 20 20 20 cc 0d 15 f4 23 | ..... ....#| 00003430 20 20 20 20 20 20 e7 20 91 2d 74 69 6d 65 3e 33 | . .-time>3| 00003440 30 20 80 20 21 63 6f 75 6e 74 73 3e 30 20 8c 0d |0 . !counts>0 ..| 00003450 15 fe 14 20 20 20 20 20 20 20 20 20 64 65 61 64 |... dead| 00003460 25 3d b9 0d 16 08 0e 20 20 20 20 20 20 20 20 20 |%=..... | 00003470 e1 0d 16 12 0b 20 20 20 20 20 20 cd 0d 16 1c 08 |..... .....| 00003480 20 20 20 cd 0d 16 26 17 20 20 20 6f 70 74 69 6f | ...&. optio| 00003490 6e 25 3d 21 72 65 73 75 6c 74 73 0d 16 30 13 20 |n%=!results..0. | 000034a0 20 20 c8 8e 20 6f 70 74 69 6f 6e 25 20 ca 0d 16 | .. option% ...| 000034b0 3a 14 20 20 20 20 20 c9 20 30 3a 64 65 61 64 25 |:. . 0:dead%| 000034c0 3d a3 0d 16 44 1e 20 20 20 20 20 c9 20 31 31 38 |=...D. . 118| 000034d0 2c 31 30 30 3a f2 67 65 74 5f 6f 62 6a 65 63 74 |,100:.get_object| 000034e0 0d 16 4e 28 20 20 20 20 20 c9 20 32 30 2c 36 34 |..N( . 20,64| 000034f0 2c 38 37 2c 31 34 38 2c 31 32 38 2c 32 32 34 3a |,87,148,128,224:| 00003500 f2 67 65 74 5f 6b 65 79 0d 16 58 09 20 20 20 20 |.get_key..X. | 00003510 7f 0d 16 62 1c 20 20 20 20 20 e7 20 91 2d 74 69 |...b. . .-ti| 00003520 6d 65 3e 34 30 20 64 65 61 64 25 3d b9 0d 16 6c |me>40 dead%=...l| 00003530 08 20 20 20 cb 0d 16 76 06 20 e1 0d 16 80 06 20 |. ...v. ..... | 00003540 3a 0d 16 8a 12 20 dd 20 f2 67 65 74 5f 6f 62 6a |:.... . .get_obj| 00003550 65 63 74 0d 16 94 2a 20 20 20 f2 64 69 73 70 6c |ect...* .displ| 00003560 61 79 5f 73 70 72 69 74 65 28 22 6f 62 6a 65 63 |ay_sprite("objec| 00003570 74 22 2c 6f 62 78 25 2c 6f 62 79 25 29 0d 16 9e |t",obx%,oby%)...| 00003580 15 20 20 20 d4 20 34 2c 2d 31 30 2c 34 30 30 30 |. . 4,-10,4000| 00003590 2c 31 0d 16 a8 17 20 20 20 4f 62 6a 65 63 74 25 |,1.... Object%| 000035a0 28 72 6f 6f 6d 25 29 3d b9 0d 16 b2 15 20 20 20 |(room%)=..... | 000035b0 f2 73 63 6f 72 65 5f 75 70 28 31 35 30 29 0d 16 |.score_up(150)..| 000035c0 bc 15 20 20 20 f2 6f 62 6a 65 63 74 73 5f 75 70 |.. .objects_up| 000035d0 28 31 29 0d 16 c6 06 20 e1 0d 16 d0 06 20 3a 0d |(1).... ..... :.| 000035e0 16 da 0f 20 dd 20 f2 72 65 5f 66 75 65 6c 0d 16 |... . .re_fuel..| 000035f0 e4 14 20 20 20 e7 20 91 2d 74 69 6d 65 3c 35 30 |.. . .-time<50| 00003600 20 e1 0d 16 ee 1d 20 20 20 2a 43 48 41 4e 4e 45 | ..... *CHANNE| 00003610 4c 56 4f 49 43 45 20 32 20 52 65 46 75 65 6c 0d |LVOICE 2 ReFuel.| 00003620 16 f8 1d 20 20 20 2a 43 48 41 4e 4e 45 4c 56 4f |... *CHANNELVO| 00003630 49 43 45 20 33 20 52 65 46 75 65 6c 0d 17 02 31 |ICE 3 ReFuel...1| 00003640 20 20 20 21 78 70 6f 73 3d 73 68 69 70 5f 78 25 | !xpos=ship_x%| 00003650 3a 21 79 70 6f 73 3d 73 68 69 70 5f 79 25 3a d6 |:!ypos=ship_y%:.| 00003660 20 64 69 73 70 6c 61 79 5f 73 68 69 70 0d 17 0c | display_ship...| 00003670 11 20 20 20 21 74 68 72 75 73 74 25 3d 31 0d 17 |. !thrust%=1..| 00003680 16 0f 20 20 20 f2 6d 6f 76 65 5f 75 70 0d 17 20 |.. .move_up.. | 00003690 31 20 20 20 21 78 70 6f 73 3d 73 68 69 70 5f 78 |1 !xpos=ship_x| 000036a0 25 3a 21 79 70 6f 73 3d 73 68 69 70 5f 79 25 3a |%:!ypos=ship_y%:| 000036b0 d6 20 64 69 73 70 6c 61 79 5f 73 68 69 70 0d 17 |. display_ship..| 000036c0 2a 11 20 20 20 e6 20 30 2c 32 20 c8 9c 20 30 0d |*. . 0,2 .. 0.| 000036d0 17 34 1b 20 20 20 21 66 75 65 6c 25 3d a8 28 21 |.4. !fuel%=.(!| 000036e0 66 75 65 6c 25 2f 34 29 2a 34 0d 17 3e 10 20 20 |fuel%/4)*4..>. | 000036f0 20 62 25 3d 39 3a 61 25 3d 30 0d 17 48 39 20 20 | b%=9:a%=0..H9 | 00003700 20 c8 95 20 46 75 65 6c 28 72 6f 6f 6d 25 29 3e | .. Fuel(room%)>| 00003710 30 20 80 20 ac 28 a6 2d 37 34 29 20 80 20 21 66 |0 . .(.-74) . !f| 00003720 75 65 6c 25 3c 3d 39 31 38 20 80 20 ac 28 a6 2d |uel%<=918 . .(.-| 00003730 31 37 29 0d 17 52 0b 20 20 20 20 20 c8 96 0d 17 |17)..R. ....| 00003740 5c 13 20 20 20 20 20 e6 20 30 2c 32 20 c8 9c 20 |\. . 0,2 .. | 00003750 30 0d 17 66 3c 20 20 20 20 20 86 20 21 66 75 65 |0..f< . !fue| 00003760 6c 25 2b 33 35 30 2c 66 79 5f 70 6f 73 25 2d 66 |l%+350,fy_pos%-f| 00003770 5f 73 69 7a 65 25 2d 38 2c 21 66 75 65 6c 25 2b |_size%-8,!fuel%+| 00003780 33 35 30 2c 66 79 5f 70 6f 73 25 2d 38 0d 17 70 |350,fy_pos%-8..p| 00003790 13 20 20 20 20 20 e6 20 30 2c 30 20 c8 9c 20 30 |. . 0,0 .. 0| 000037a0 0d 17 7a 44 20 20 20 20 20 86 70 6c 78 25 2b 31 |..zD .plx%+1| 000037b0 34 38 2c 70 6c 79 25 2b 38 2b 46 75 65 6c 28 72 |48,ply%+8+Fuel(r| 000037c0 6f 6f 6d 25 29 2c 70 6c 78 25 2b 31 34 38 2b 34 |oom%),plx%+148+4| 000037d0 34 2c 70 6c 79 25 2b 38 2b 46 75 65 6c 28 72 6f |4,ply%+8+Fuel(ro| 000037e0 6f 6d 25 29 0d 17 84 12 20 20 20 20 20 21 66 75 |om%).... !fu| 000037f0 65 6c 25 2b 3d 34 0d 17 8e 19 20 20 20 20 20 46 |el%+=4.... F| 00003800 75 65 6c 28 72 6f 6f 6d 25 29 2d 3d 30 2e 35 0d |uel(room%)-=0.5.| 00003810 17 98 3f 20 20 20 20 20 e7 20 28 62 25 20 83 20 |..? . (b% . | 00003820 31 30 29 3d 39 20 d4 20 28 61 25 20 83 20 32 29 |10)=9 . (a% . 2)| 00003830 2b 32 2c 2d 31 35 2c 34 30 30 30 2b 28 21 66 75 |+2,-15,4000+(!fu| 00003840 65 6c 25 29 2a 32 2c 33 3a 61 25 2b 3d 31 0d 17 |el%)*2,3:a%+=1..| 00003850 a2 0e 20 20 20 20 20 62 25 2b 3d 31 0d 17 ac 08 |.. b%+=1....| 00003860 20 20 20 ce 0d 17 b6 16 20 20 20 f5 20 fd 20 a6 | ..... . . .| 00003870 2d 37 34 20 84 20 a6 2d 31 37 0d 17 c0 1e 20 20 |-74 . .-17.... | 00003880 20 e7 20 a6 2d 31 37 20 64 65 61 64 25 3d b9 3a | . .-17 dead%=.:| 00003890 6c 69 76 65 73 25 3d 31 0d 17 ca 11 20 20 20 21 |lives%=1.... !| 000038a0 74 68 72 75 73 74 25 3d 31 0d 17 d4 14 20 20 20 |thrust%=1.... | 000038b0 66 61 6c 6c 3d 34 3a 73 69 64 65 3d 30 0d 17 de |fall=4:side=0...| 000038c0 31 20 20 20 21 78 70 6f 73 3d 73 68 69 70 5f 78 |1 !xpos=ship_x| 000038d0 25 3a 21 79 70 6f 73 3d 73 68 69 70 5f 79 25 3a |%:!ypos=ship_y%:| 000038e0 d6 20 64 69 73 70 6c 61 79 5f 73 68 69 70 0d 17 |. display_ship..| 000038f0 e8 16 20 20 20 73 68 69 70 5f 79 25 2b 3d 63 6f |.. ship_y%+=co| 00003900 75 6e 74 25 0d 17 f2 31 20 20 20 21 78 70 6f 73 |unt%...1 !xpos| 00003910 3d 73 68 69 70 5f 78 25 3a 21 79 70 6f 73 3d 73 |=ship_x%:!ypos=s| 00003920 68 69 70 5f 79 25 3a d6 20 64 69 73 70 6c 61 79 |hip_y%:. display| 00003930 5f 73 68 69 70 0d 17 fc 0d 20 20 20 74 69 6d 65 |_ship.... time| 00003940 3d 91 0d 18 06 06 20 e1 0d 18 10 06 20 3a 0d 18 |=..... ..... :..| 00003950 1a 0f 20 dd 20 f2 6d 6f 76 65 5f 75 70 0d 18 24 |.. . .move_up..$| 00003960 0f 20 20 20 63 6f 75 6e 74 25 3d 30 0d 18 2e 3e |. count%=0...>| 00003970 20 20 20 c8 95 20 b0 73 68 69 70 5f 78 25 2c 73 | .. .ship_x%,s| 00003980 68 69 70 5f 79 25 2b 31 32 29 3c 3e 30 20 84 20 |hip_y%+12)<>0 . | 00003990 b0 73 68 69 70 5f 78 25 2b 38 30 2c 73 68 69 70 |.ship_x%+80,ship| 000039a0 5f 79 25 2b 31 32 29 3c 3e 30 0d 18 38 13 20 20 |_y%+12)<>0..8. | 000039b0 20 20 20 73 68 69 70 5f 79 25 2b 3d 32 0d 18 42 | ship_y%+=2..B| 000039c0 12 20 20 20 20 20 63 6f 75 6e 74 25 2b 3d 32 0d |. count%+=2.| 000039d0 18 4c 08 20 20 20 ce 0d 18 56 06 20 e1 0d 18 60 |.L. ...V. ...`| 000039e0 06 20 3a 0d 18 6a 15 20 dd 20 f2 64 72 61 77 5f |. :..j. . .draw_| 000039f0 70 6c 61 74 66 6f 72 6d 0d 18 74 26 20 20 20 e7 |platform..t& .| 00003a00 20 ac 28 64 6f 6e 65 25 29 20 d6 20 66 69 78 5f | .(done%) . fix_| 00003a10 73 63 72 65 65 6e 3a 64 6f 6e 65 25 3d b9 0d 18 |screen:done%=...| 00003a20 7e 1f 20 20 20 70 6c 78 25 3d 21 72 6f 6f 6d 5f |~. plx%=!room_| 00003a30 70 74 72 25 20 83 20 26 31 30 30 30 30 0d 18 88 |ptr% . &10000...| 00003a40 1f 20 20 20 70 6c 79 25 3d 21 72 6f 6f 6d 5f 70 |. ply%=!room_p| 00003a50 74 72 25 20 81 20 26 31 30 30 30 30 0d 18 92 13 |tr% . &10000....| 00003a60 20 20 20 72 6f 6f 6d 5f 70 74 72 25 2b 3d 34 0d | room_ptr%+=4.| 00003a70 18 9c 2c 20 20 20 f2 64 69 73 70 6c 61 79 5f 73 |.., .display_s| 00003a80 70 72 69 74 65 28 22 70 6c 61 74 66 6f 72 6d 22 |prite("platform"| 00003a90 2c 70 6c 78 25 2c 70 6c 79 25 29 0d 18 a6 19 20 |,plx%,ply%).... | 00003aa0 20 20 e7 20 46 75 65 6c 28 72 6f 6f 6d 25 29 3c | . Fuel(room%)<| 00003ab0 3d 30 20 e1 0d 18 b0 11 20 20 20 e6 20 30 2c 36 |=0 ..... . 0,6| 00003ac0 20 c8 9c 20 30 0d 18 ba 2b 20 20 20 c8 93 20 c8 | .. 0...+ .. .| 00003ad0 90 20 70 6c 78 25 2b 31 34 38 2c 70 6c 79 25 2b |. plx%+148,ply%+| 00003ae0 38 2c 34 34 2c 46 75 65 6c 28 72 6f 6f 6d 25 29 |8,44,Fuel(room%)| 00003af0 0d 18 c4 06 20 e1 0d 18 ce 06 20 3a 0d 18 d8 16 |.... ..... :....| 00003b00 20 dd 20 f2 64 72 61 77 5f 6b 65 79 5f 62 6c 6f | . .draw_key_blo| 00003b10 63 6b 0d 18 e2 26 20 20 20 e7 20 ac 28 64 6f 6e |ck...& . .(don| 00003b20 65 25 29 20 d6 20 66 69 78 5f 73 63 72 65 65 6e |e%) . fix_screen| 00003b30 3a 64 6f 6e 65 25 3d b9 0d 18 ec 1f 20 20 20 6b |:done%=..... k| 00003b40 62 78 25 3d 21 72 6f 6f 6d 5f 70 74 72 25 20 83 |bx%=!room_ptr% .| 00003b50 20 26 31 30 30 30 30 0d 18 f6 1f 20 20 20 6b 62 | &10000.... kb| 00003b60 79 25 3d 21 72 6f 6f 6d 5f 70 74 72 25 20 81 20 |y%=!room_ptr% . | 00003b70 26 31 30 30 30 30 0d 19 00 21 20 20 20 6b 62 6c |&10000...! kbl| 00003b80 78 25 3d 72 6f 6f 6d 5f 70 74 72 25 21 34 20 83 |x%=room_ptr%!4 .| 00003b90 20 26 31 30 30 30 30 0d 19 0a 21 20 20 20 6b 62 | &10000...! kb| 00003ba0 6c 79 25 3d 72 6f 6f 6d 5f 70 74 72 25 21 34 20 |ly%=room_ptr%!4 | 00003bb0 81 20 26 31 30 30 30 30 0d 19 14 13 20 20 20 72 |. &10000.... r| 00003bc0 6f 6f 6d 5f 70 74 72 25 2b 3d 38 0d 19 1e 18 20 |oom_ptr%+=8.... | 00003bd0 20 20 6b 65 79 5f 6e 75 6d 25 3d 73 68 61 70 65 | key_num%=shape| 00003be0 25 2d 34 0d 19 28 19 20 20 20 e7 20 4b 65 79 25 |%-4..(. . Key%| 00003bf0 28 6b 65 79 5f 6e 75 6d 25 29 20 e1 0d 19 32 21 |(key_num%) ...2!| 00003c00 20 20 20 e6 20 30 2c 63 6f 6c 6f 75 72 25 28 73 | . 0,colour%(s| 00003c10 68 61 70 65 25 2d 34 29 20 c8 9c 20 30 0d 19 3c |hape%-4) .. 0..<| 00003c20 22 20 20 20 c8 93 20 c8 90 20 6b 62 78 25 2c 6b |" .. .. kbx%,k| 00003c30 62 79 25 2c 6b 62 6c 78 25 2c 6b 62 6c 79 25 0d |by%,kblx%,kbly%.| 00003c40 19 46 13 20 20 20 6b 65 79 5f 62 6c 6f 63 6b 25 |.F. key_block%| 00003c50 3d b9 0d 19 50 06 20 e1 0d 19 5a 06 20 3a 0d 19 |=...P. ...Z. :..| 00003c60 64 10 20 dd 20 f2 64 72 61 77 5f 6b 65 79 0d 19 |d. . .draw_key..| 00003c70 6e 26 20 20 20 e7 20 ac 28 64 6f 6e 65 25 29 20 |n& . .(done%) | 00003c80 d6 20 66 69 78 5f 73 63 72 65 65 6e 3a 64 6f 6e |. fix_screen:don| 00003c90 65 25 3d b9 0d 19 78 1e 20 20 20 6b 78 25 3d 21 |e%=...x. kx%=!| 00003ca0 72 6f 6f 6d 5f 70 74 72 25 20 83 20 26 31 30 30 |room_ptr% . &100| 00003cb0 30 30 0d 19 82 1e 20 20 20 6b 79 25 3d 21 72 6f |00.... ky%=!ro| 00003cc0 6f 6d 5f 70 74 72 25 20 81 20 26 31 30 30 30 30 |om_ptr% . &10000| 00003cd0 0d 19 8c 13 20 20 20 72 6f 6f 6d 5f 70 74 72 25 |.... room_ptr%| 00003ce0 2b 3d 34 0d 19 96 28 20 20 20 6b 65 79 25 3d 73 |+=4...( key%=s| 00003cf0 68 61 70 65 25 2d 31 30 3a 6b 65 79 24 3d 22 6b |hape%-10:key$="k| 00003d00 65 79 22 2b c3 28 6b 65 79 25 29 0d 19 a0 15 20 |ey"+.(key%).... | 00003d10 20 20 e7 20 4b 65 79 25 28 6b 65 79 25 29 20 e1 | . Key%(key%) .| 00003d20 0d 19 aa 24 20 20 20 f2 64 69 73 70 6c 61 79 5f |...$ .display_| 00003d30 73 70 72 69 74 65 28 6b 65 79 24 2c 6b 78 25 2c |sprite(key$,kx%,| 00003d40 6b 79 25 29 0d 19 b4 06 20 e1 0d 19 be 06 20 3a |ky%).... ..... :| 00003d50 0d 19 c8 0f 20 dd 20 f2 67 65 74 5f 6b 65 79 0d |.... . .get_key.| 00003d60 19 d2 24 20 20 20 f2 64 69 73 70 6c 61 79 5f 73 |..$ .display_s| 00003d70 70 72 69 74 65 28 6b 65 79 24 2c 6b 78 25 2c 6b |prite(key$,kx%,k| 00003d80 79 25 29 0d 19 dc 1d 20 20 20 2a 43 48 41 4e 4e |y%).... *CHANN| 00003d90 45 4c 56 4f 49 43 45 20 33 20 4b 65 79 47 65 74 |ELVOICE 3 KeyGet| 00003da0 0d 19 e6 15 20 20 20 d4 20 33 2c 2d 31 35 2c 31 |.... . 3,-15,1| 00003db0 32 35 30 2c 31 0d 19 f0 15 20 20 20 f2 73 63 6f |250,1.... .sco| 00003dc0 72 65 5f 75 70 28 32 35 30 29 0d 19 fa 13 20 20 |re_up(250).... | 00003dd0 20 4b 65 79 25 28 6b 65 79 25 29 3d b9 0d 1a 04 | Key%(key%)=....| 00003de0 25 20 20 20 e7 20 6b 65 79 5f 62 6c 6f 63 6b 25 |% . key_block%| 00003df0 20 80 20 6b 65 79 5f 6e 75 6d 25 3d 6b 65 79 25 | . key_num%=key%| 00003e00 20 8c 0d 1a 0e 14 20 20 20 20 20 20 e6 20 30 2c | ..... . 0,| 00003e10 30 20 c8 9c 20 30 0d 1a 18 25 20 20 20 20 20 20 |0 .. 0...% | 00003e20 c8 93 20 c8 90 20 6b 62 78 25 2c 6b 62 79 25 2c |.. .. kbx%,kby%,| 00003e30 6b 62 6c 78 25 2c 6b 62 6c 79 25 0d 1a 22 08 20 |kblx%,kbly%..". | 00003e40 20 20 cd 0d 1a 2c 06 20 e1 0d 1a 36 06 20 3a 0d | ...,. ...6. :.| 00003e50 1a 40 21 20 dd 20 f2 64 69 73 70 6c 61 79 5f 73 |.@! . .display_s| 00003e60 63 6f 72 65 5f 61 6e 64 5f 6f 62 6a 65 63 74 73 |core_and_objects| 00003e70 0d 1a 4a 0b 20 20 20 fb 20 34 30 0d 1a 54 1d 20 |..J. . 40..T. | 00003e80 20 20 f1 8a 32 39 2c 31 29 3b 22 53 63 6f 72 65 | ..29,1);"Score| 00003e90 20 30 30 30 30 30 22 3b 0d 1a 5e 20 20 20 20 fb | 00000";..^ .| 00003ea0 20 31 31 3a f1 8a 31 36 2c 31 29 3b 22 43 6f 6d | 11:..16,1);"Com| 00003eb0 70 6c 65 74 65 3a 22 3b 0d 1a 68 0b 20 20 20 fb |plete:";..h. .| 00003ec0 20 32 33 0d 1a 72 16 20 20 20 f1 8a 32 35 2c 31 | 23..r. ..25,1| 00003ed0 29 3b 22 30 30 25 20 22 3b 0d 1a 7c 06 20 e1 0d |);"00% ";..|. ..| 00003ee0 1a 86 06 20 3a 0d 1a 90 16 20 dd 20 f2 64 69 73 |... :.... . .dis| 00003ef0 70 6c 61 79 5f 74 69 74 6c 65 73 0d 1a 9a 0b 20 |play_titles.... | 00003f00 20 20 fb 20 32 30 0d 1a a4 1e 20 20 20 54 24 3d | . 20.... T$=| 00003f10 22 4d 69 63 61 6c 73 6f 66 74 20 50 72 65 73 65 |"Micalsoft Prese| 00003f20 6e 74 73 22 0d 1a ae 1c 20 20 20 f1 8a a4 63 65 |nts".... ...ce| 00003f30 6e 74 72 65 28 54 24 29 2c 31 32 29 3b 54 24 3b |ntre(T$),12);T$;| 00003f40 0d 1a b8 0a 20 20 20 fb 20 32 0d 1a c2 12 20 20 |.... . 2.... | 00003f50 20 54 24 3d 22 4c 41 4e 44 45 52 22 0d 1a cc 1c | T$="LANDER"....| 00003f60 20 20 20 f1 8a a4 63 65 6e 74 72 65 28 54 24 29 | ...centre(T$)| 00003f70 2c 31 36 29 3b 54 24 3b 0d 1a d6 0b 20 20 20 fb |,16);T$;.... .| 00003f80 20 32 30 0d 1a e0 24 20 20 20 54 24 3d 22 50 72 | 20...$ T$="Pr| 00003f90 65 73 73 20 49 20 46 6f 72 20 49 6e 73 74 72 75 |ess I For Instru| 00003fa0 63 74 69 6f 6e 73 22 0d 1a ea 1c 20 20 20 f1 8a |ctions".... ..| 00003fb0 a4 63 65 6e 74 72 65 28 54 24 29 2c 32 31 29 3b |.centre(T$),21);| 00003fc0 54 24 3b 0d 1a f4 1f 20 20 20 54 24 3d 22 50 72 |T$;.... T$="Pr| 00003fd0 65 73 73 20 53 50 41 43 45 20 54 6f 20 50 6c 61 |ess SPACE To Pla| 00003fe0 79 22 0d 1a fe 1c 20 20 20 f1 8a a4 63 65 6e 74 |y".... ...cent| 00003ff0 72 65 28 54 24 29 2c 32 32 29 3b 54 24 3b 0d 1b |re(T$),22);T$;..| 00004000 08 06 20 e1 0d 1b 12 06 20 3a 0d 1b 1c 14 20 dd |.. ..... :.... .| 00004010 20 f2 73 74 61 72 74 5f 73 63 72 65 65 6e 0d 1b | .start_screen..| 00004020 26 10 20 20 20 72 6f 6f 6d 25 3d 31 30 30 0d 1b |&. room%=100..| 00004030 30 14 20 20 20 f2 64 69 73 70 6c 61 79 5f 72 6f |0. .display_ro| 00004040 6f 6d 0d 1b 3a 0e 20 20 20 65 78 69 74 25 3d a3 |om..:. exit%=.| 00004050 0d 1b 44 16 20 20 20 69 6e 73 74 72 75 63 74 69 |..D. instructi| 00004060 6f 6e 73 25 3d a3 0d 1b 4e 17 20 20 20 e7 20 6a |ons%=...N. . j| 00004070 75 73 74 5f 6c 6f 61 64 65 64 25 20 8c 0d 1b 58 |ust_loaded% ...X| 00004080 24 20 20 20 20 20 20 f2 64 69 73 70 6c 61 79 5f |$ .display_| 00004090 73 63 6f 72 65 5f 61 6e 64 5f 6f 62 6a 65 63 74 |score_and_object| 000040a0 73 0d 1b 62 18 20 20 20 20 20 20 f2 64 69 73 70 |s..b. .disp| 000040b0 6c 61 79 5f 6c 69 76 65 73 0d 1b 6c 18 20 20 20 |lay_lives..l. | 000040c0 20 20 20 6a 75 73 74 5f 6c 6f 61 64 65 64 25 3d | just_loaded%=| 000040d0 a3 0d 1b 76 08 20 20 20 cd 0d 1b 80 08 20 20 20 |...v. ..... | 000040e0 f5 0d 1b 8a 18 20 20 20 20 20 f2 64 69 73 70 6c |..... .displ| 000040f0 61 79 5f 74 69 74 6c 65 73 0d 1b 94 12 20 20 20 |ay_titles.... | 00004100 20 20 f2 74 69 6d 65 5f 6f 75 74 0d 1b 9e 3b 20 | .time_out...; | 00004110 20 20 20 20 e7 20 69 6e 73 74 72 75 63 74 69 6f | . instructio| 00004120 6e 73 25 20 f2 66 61 64 65 5f 73 63 72 65 65 6e |ns% .fade_screen| 00004130 3a f2 64 69 73 70 6c 61 79 5f 69 6e 73 74 72 75 |:.display_instru| 00004140 63 74 69 6f 6e 73 0d 1b a8 33 20 20 20 20 20 e7 |ctions...3 .| 00004150 20 ac 28 65 78 69 74 25 29 20 80 20 ac 28 69 6e | .(exit%) . .(in| 00004160 73 74 72 75 63 74 69 6f 6e 73 25 29 20 f2 66 61 |structions%) .fa| 00004170 64 65 5f 73 63 72 65 65 6e 0d 1b b2 28 20 20 20 |de_screen...( | 00004180 20 20 e7 20 ac 28 65 78 69 74 25 29 20 f2 64 69 | . .(exit%) .di| 00004190 73 70 6c 61 79 5f 68 69 67 68 5f 73 63 6f 72 65 |splay_high_score| 000041a0 73 0d 1b bc 1d 20 20 20 20 20 e7 20 ac 28 65 78 |s.... . .(ex| 000041b0 69 74 25 29 20 f2 74 69 6d 65 5f 6f 75 74 0d 1b |it%) .time_out..| 000041c0 c6 3b 20 20 20 20 20 e7 20 69 6e 73 74 72 75 63 |.; . instruc| 000041d0 74 69 6f 6e 73 25 20 f2 66 61 64 65 5f 73 63 72 |tions% .fade_scr| 000041e0 65 65 6e 3a f2 64 69 73 70 6c 61 79 5f 69 6e 73 |een:.display_ins| 000041f0 74 72 75 63 74 69 6f 6e 73 0d 1b d0 33 20 20 20 |tructions...3 | 00004200 20 20 e7 20 ac 28 65 78 69 74 25 29 20 80 20 ac | . .(exit%) . .| 00004210 28 69 6e 73 74 72 75 63 74 69 6f 6e 73 25 29 20 |(instructions%) | 00004220 f2 66 61 64 65 5f 73 63 72 65 65 6e 0d 1b da 0e |.fade_screen....| 00004230 20 20 20 fd 20 65 78 69 74 25 0d 1b e4 0f 20 20 | . exit%.... | 00004240 20 72 6f 6f 6d 25 3d 32 33 0d 1b ee 21 20 20 20 | room%=23...! | 00004250 f2 64 69 73 70 6c 61 79 5f 73 63 6f 72 65 5f 61 |.display_score_a| 00004260 6e 64 5f 6f 62 6a 65 63 74 73 0d 1b f8 06 20 e1 |nd_objects.... .| 00004270 0d 1c 02 06 20 3a 0d 1c 0c 10 20 dd 20 f2 74 69 |.... :.... . .ti| 00004280 6d 65 5f 6f 75 74 0d 1c 16 16 20 20 20 69 6e 73 |me_out.... ins| 00004290 74 72 75 63 74 69 6f 6e 73 25 3d a3 0d 1c 20 0d |tructions%=... .| 000042a0 20 20 20 74 69 6d 65 3d 91 0d 1c 2a 23 20 20 20 | time=...*# | 000042b0 f5 20 fd 20 a6 2d 39 39 20 84 20 a6 2d 33 38 20 |. . .-99 . .-38 | 000042c0 84 20 91 2d 74 69 6d 65 3e 36 30 30 0d 1c 34 15 |. .-time>600..4.| 000042d0 20 20 20 e7 20 a6 2d 39 39 20 65 78 69 74 25 3d | . .-99 exit%=| 000042e0 b9 0d 1c 3e 1d 20 20 20 e7 20 a6 2d 33 38 20 69 |...>. . .-38 i| 000042f0 6e 73 74 72 75 63 74 69 6f 6e 73 25 3d b9 0d 1c |nstructions%=...| 00004300 48 06 20 e1 0d 1c 52 06 20 3a 0d 1c 5c 1c 20 dd |H. ...R. :..\. .| 00004310 20 f2 64 69 73 70 6c 61 79 5f 69 6e 73 74 72 75 | .display_instru| 00004320 63 74 69 6f 6e 73 0d 1c 66 0b 20 20 20 fb 20 32 |ctions..f. . 2| 00004330 30 0d 1c 70 18 20 20 20 54 24 3d 22 49 4e 53 54 |0..p. T$="INST| 00004340 52 55 43 54 49 4f 4e 53 22 0d 1c 7a 1d 20 20 20 |RUCTIONS"..z. | 00004350 f1 20 8a a4 63 65 6e 74 72 65 28 54 24 29 2c 31 |. ..centre(T$),1| 00004360 30 29 3b 54 24 3b 0d 1c 84 0b 20 20 20 fb 20 34 |0);T$;.... . 4| 00004370 35 0d 1c 8e 3a 20 20 20 74 24 3d 22 48 69 74 20 |5...: t$="Hit | 00004380 53 50 41 43 45 20 74 6f 20 63 6f 6e 74 69 6e 75 |SPACE to continu| 00004390 65 2e 2e 2e 22 3a f1 20 8a a4 63 65 6e 74 72 65 |e...":. ..centre| 000043a0 28 74 24 29 2c 32 35 29 3b 74 24 0d 1c 98 0b 20 |(t$),25);t$.... | 000043b0 20 20 fb 20 32 33 0d 1c a2 19 20 20 20 ef 20 32 | . 23.... . 2| 000043c0 38 2c 35 2c 32 34 2c 33 35 2c 31 32 2c 33 30 0d |8,5,24,35,12,30.| 000043d0 1c ac 19 20 20 20 f1 22 59 65 61 72 20 3a 20 32 |... ."Year : 2| 000043e0 30 32 31 20 41 44 22 27 0d 1c b6 68 20 20 20 24 |021 AD"'...h $| 000043f0 74 65 78 74 5f 70 72 69 6e 74 25 3d 22 59 6f 75 |text_print%="You| 00004400 72 20 6d 69 73 73 69 6f 6e 20 69 73 20 74 6f 20 |r mission is to | 00004410 6d 61 6b 65 20 73 61 66 65 20 61 6e 20 65 78 70 |make safe an exp| 00004420 65 72 69 6d 65 6e 74 61 6c 20 66 75 73 69 6f 6e |erimental fusion| 00004430 20 72 65 61 63 74 6f 72 20 6f 6e 20 70 6c 61 6e | reactor on plan| 00004440 65 74 20 4d 61 72 73 2e 22 2b bd 31 33 2b bd 30 |et Mars."+.13+.0| 00004450 0d 1c c0 26 20 20 20 c8 99 20 22 4f 53 5f 50 72 |...& .. "OS_Pr| 00004460 65 74 74 79 50 72 69 6e 74 22 2c 74 65 78 74 5f |ettyPrint",text_| 00004470 70 72 69 6e 74 25 0d 1c ca 87 20 20 20 24 74 65 |print%.... $te| 00004480 78 74 5f 70 72 69 6e 74 25 3d bd 31 33 2b 22 54 |xt_print%=.13+"T| 00004490 68 65 20 72 65 61 63 74 6f 72 20 73 75 66 66 65 |he reactor suffe| 000044a0 72 65 64 20 61 20 70 61 72 74 69 61 6c 20 6d 65 |red a partial me| 000044b0 6c 74 2d 64 6f 77 6e 20 61 6e 64 20 73 68 6f 77 |lt-down and show| 000044c0 65 72 65 64 20 72 61 64 69 6f 61 63 74 69 76 65 |ered radioactive| 000044d0 20 6d 61 74 65 72 69 61 6c 20 74 68 72 6f 75 67 | material throug| 000044e0 68 6f 75 74 20 74 68 65 20 72 65 73 65 61 72 63 |hout the researc| 000044f0 68 20 63 65 6e 74 72 65 2e 22 2b bd 30 0d 1c d4 |h centre."+.0...| 00004500 26 20 20 20 c8 99 20 22 4f 53 5f 50 72 65 74 74 |& .. "OS_Prett| 00004510 79 50 72 69 6e 74 22 2c 74 65 78 74 5f 70 72 69 |yPrint",text_pri| 00004520 6e 74 25 0d 1c de 19 20 20 20 f2 66 61 64 65 5f |nt%.... .fade_| 00004530 69 6e 73 74 72 75 63 74 69 6f 6e 73 0d 1c e8 a1 |instructions....| 00004540 20 20 20 24 74 65 78 74 5f 70 72 69 6e 74 25 3d | $text_print%=| 00004550 22 59 6f 75 72 20 74 61 73 6b 20 69 73 20 74 6f |"Your task is to| 00004560 20 63 6f 6c 6c 65 63 74 20 74 68 65 20 72 61 64 | collect the rad| 00004570 69 6f 61 63 74 69 76 65 20 64 65 62 72 69 73 20 |ioactive debris | 00004580 73 63 61 74 74 65 72 65 64 20 74 68 72 6f 75 67 |scattered throug| 00004590 68 6f 75 74 20 31 30 30 20 72 6f 6f 6d 73 20 75 |hout 100 rooms u| 000045a0 73 69 6e 67 20 74 68 65 20 66 6f 6c 6c 6f 77 69 |sing the followi| 000045b0 6e 67 20 6b 65 79 73 20 74 6f 20 63 6f 6e 74 72 |ng keys to contr| 000045c0 6f 6c 20 79 6f 75 72 20 6c 61 6e 64 65 72 20 63 |ol your lander c| 000045d0 72 61 66 74 3a 22 2b bd 31 33 2b bd 30 0d 1c f2 |raft:"+.13+.0...| 000045e0 26 20 20 20 c8 99 20 22 4f 53 5f 50 72 65 74 74 |& .. "OS_Prett| 000045f0 79 50 72 69 6e 74 22 2c 74 65 78 74 5f 70 72 69 |yPrint",text_pri| 00004600 6e 74 25 0d 1c fc 89 20 20 20 24 74 65 78 74 5f |nt%.... $text_| 00004610 70 72 69 6e 74 25 3d bd 31 33 2b 22 20 5a 22 2b |print%=.13+" Z"+| 00004620 c4 36 2c bd 33 31 29 2b 22 2d 20 4c 65 66 74 22 |.6,.31)+"- Left"| 00004630 2b bd 31 33 2b 22 20 58 22 2b c4 36 2c bd 33 31 |+.13+" X"+.6,.31| 00004640 29 2b 22 2d 20 52 69 67 68 74 22 2b bd 31 33 2b |)+"- Right"+.13+| 00004650 22 20 52 65 74 75 72 6e 20 2d 20 54 68 72 75 73 |" Return - Thrus| 00004660 74 22 2b bd 31 33 2b 22 20 51 22 2b c4 36 2c bd |t"+.13+" Q"+.6,.| 00004670 33 31 29 2b 22 2d 20 53 65 6c 66 20 44 65 73 74 |31)+"- Self Dest| 00004680 72 75 63 74 22 2b bd 31 33 2b bd 30 0d 1d 06 26 |ruct"+.13+.0...&| 00004690 20 20 20 c8 99 20 22 4f 53 5f 50 72 65 74 74 79 | .. "OS_Pretty| 000046a0 50 72 69 6e 74 22 2c 74 65 78 74 5f 70 72 69 6e |Print",text_prin| 000046b0 74 25 0d 1d 10 19 20 20 20 f2 66 61 64 65 5f 69 |t%.... .fade_i| 000046c0 6e 73 74 72 75 63 74 69 6f 6e 73 0d 1d 1a b0 20 |nstructions.... | 000046d0 20 20 24 74 65 78 74 5f 70 72 69 6e 74 25 3d 22 | $text_print%="| 000046e0 59 6f 75 20 6f 6e 6c 79 20 68 61 76 65 20 61 20 |You only have a | 000046f0 6c 69 6d 69 74 65 64 20 61 6d 6f 75 6e 74 20 6f |limited amount o| 00004700 66 20 66 75 65 6c 2c 20 62 75 74 20 79 6f 75 20 |f fuel, but you | 00004710 63 61 6e 20 72 65 2d 66 75 65 6c 20 79 6f 75 72 |can re-fuel your| 00004720 20 63 72 61 66 74 20 62 79 20 6c 61 6e 64 69 6e | craft by landin| 00004730 67 20 6f 6e 20 74 68 65 20 67 72 65 79 20 70 6c |g on the grey pl| 00004740 61 74 66 6f 72 6d 73 20 61 74 20 76 61 72 69 6f |atforms at vario| 00004750 75 73 20 6c 6f 63 61 74 69 6f 6e 73 20 69 6e 73 |us locations ins| 00004760 69 64 65 20 74 68 65 20 63 65 6e 74 72 65 2e 22 |ide the centre."| 00004770 2b bd 31 33 2b bd 31 33 2b bd 30 0d 1d 24 26 20 |+.13+.13+.0..$& | 00004780 20 20 c8 99 20 22 4f 53 5f 50 72 65 74 74 79 50 | .. "OS_PrettyP| 00004790 72 69 6e 74 22 2c 74 65 78 74 5f 70 72 69 6e 74 |rint",text_print| 000047a0 25 0d 1d 2e a2 20 20 20 24 74 65 78 74 5f 70 72 |%.... $text_pr| 000047b0 69 6e 74 25 3d 22 53 6f 6d 65 20 72 6f 6f 6d 73 |int%="Some rooms| 000047c0 20 6d 61 79 20 62 65 20 62 6c 6f 63 6b 65 64 20 | may be blocked | 000047d0 62 79 20 63 6f 6c 6f 75 72 65 64 20 73 65 63 75 |by coloured secu| 000047e0 72 69 74 79 20 64 6f 6f 72 73 2e 20 20 49 66 20 |rity doors. If | 000047f0 74 68 69 73 20 69 73 20 74 68 65 20 63 61 73 65 |this is the case| 00004800 20 74 68 65 6e 20 6b 65 79 73 20 6f 66 20 74 68 | then keys of th| 00004810 65 20 73 61 6d 65 20 63 6f 6c 6f 75 72 20 6d 75 |e same colour mu| 00004820 73 74 20 62 65 20 63 6f 6c 6c 65 63 74 65 64 20 |st be collected | 00004830 66 6f 72 20 61 63 63 65 73 73 2e 22 2b bd 31 33 |for access."+.13| 00004840 2b bd 30 0d 1d 38 26 20 20 20 c8 99 20 22 4f 53 |+.0..8& .. "OS| 00004850 5f 50 72 65 74 74 79 50 72 69 6e 74 22 2c 74 65 |_PrettyPrint",te| 00004860 78 74 5f 70 72 69 6e 74 25 0d 1d 42 19 20 20 20 |xt_print%..B. | 00004870 f2 66 61 64 65 5f 69 6e 73 74 72 75 63 74 69 6f |.fade_instructio| 00004880 6e 73 0d 1d 4c 16 20 20 20 ef 20 35 3a e6 20 30 |ns..L. . 5:. 0| 00004890 2c 34 33 20 c8 9c 20 30 0d 1d 56 17 20 20 20 73 |,43 .. 0..V. s| 000048a0 70 61 63 65 5f 70 72 65 73 73 65 64 25 3d a3 0d |pace_pressed%=..| 000048b0 1d 60 08 20 20 20 f5 0d 1d 6a 0f 20 20 20 20 20 |.`. ...j. | 000048c0 6e 75 6d 25 3d 30 0d 1d 74 27 20 20 20 20 20 c8 |num%=0..t' .| 000048d0 95 20 6e 75 6d 25 3c 3e 35 20 80 20 ac 28 73 70 |. num%<>5 . .(sp| 000048e0 61 63 65 5f 70 72 65 73 73 65 64 25 29 0d 1d 7e |ace_pressed%)..~| 000048f0 25 20 20 20 20 20 20 20 e7 20 6e 75 6d 25 3d 30 |% . num%=0| 00004900 20 8c 20 78 25 3d 32 32 30 20 8b 20 78 25 3d 33 | . x%=220 . x%=3| 00004910 30 30 0d 1d 88 30 20 20 20 20 20 20 20 f2 64 69 |00...0 .di| 00004920 73 70 6c 61 79 5f 73 70 72 69 74 65 28 6f 62 6a |splay_sprite(obj| 00004930 65 63 74 24 28 6e 75 6d 25 29 2c 78 25 2c 32 34 |ect$(num%),x%,24| 00004940 30 29 0d 1d 92 24 20 20 20 20 20 20 20 ec 20 34 |0)...$ . 4| 00004950 38 30 2c 32 37 32 3a f1 3b 74 69 74 6c 65 24 28 |80,272:.;title$(| 00004960 6e 75 6d 25 29 3b 0d 1d 9c 10 20 20 20 20 20 20 |num%);.... | 00004970 20 f2 72 6f 6c 6c 0d 1d a6 12 20 20 20 20 20 20 | .roll.... | 00004980 20 6e 75 6d 25 2b 3d 31 0d 1d b0 0a 20 20 20 20 | num%+=1.... | 00004990 20 ce 0d 1d ba 17 20 20 20 fd 20 73 70 61 63 65 | ..... . space| 000049a0 5f 70 72 65 73 73 65 64 25 0d 1d c4 1e 20 20 20 |_pressed%.... | 000049b0 ef 34 3a 87 3a db 3a ef 32 36 3a f2 66 61 64 65 |.4:.:.:.26:.fade| 000049c0 5f 73 63 72 65 65 6e 0d 1d ce 06 20 e1 0d 1d d8 |_screen.... ....| 000049d0 06 20 3a 0d 1d e2 0c 20 dd 20 f2 72 6f 6c 6c 0d |. :.... . .roll.| 000049e0 1d ec 0c 20 20 20 ef 20 34 3a 87 0d 1d f6 11 20 |... . 4:..... | 000049f0 20 20 e3 20 4e 25 3d 31 20 b8 20 35 0d 1e 00 20 | . N%=1 . 5... | 00004a00 20 20 20 20 20 e7 20 a6 2d 39 39 20 73 70 61 63 | . .-99 spac| 00004a10 65 5f 70 72 65 73 73 65 64 25 3d b9 0d 1e 0a 13 |e_pressed%=.....| 00004a20 20 20 20 20 20 c8 96 3a c8 96 3a c8 96 3a f1 0d | ..:..:..:..| 00004a30 1e 14 0b 20 20 20 ed 20 4e 25 0d 1e 1e 0e 20 20 |... . N%.... | 00004a40 20 74 69 6d 65 32 3d 91 0d 1e 28 1c 20 20 20 f5 | time2=...(. .| 00004a50 20 fd 20 91 2d 74 69 6d 65 32 3e 35 30 20 84 20 | . .-time2>50 . | 00004a60 a6 2d 39 39 0d 1e 32 1e 20 20 20 e7 20 a6 2d 39 |.-99..2. . .-9| 00004a70 39 20 73 70 61 63 65 5f 70 72 65 73 73 65 64 25 |9 space_pressed%| 00004a80 3d b9 0d 1e 3c 0a 20 20 20 ef 20 35 0d 1e 46 06 |=...<. . 5..F.| 00004a90 20 e1 0d 1e 50 06 20 3a 0d 1e 5a 19 20 dd 20 f2 | ...P. :..Z. . .| 00004aa0 66 61 64 65 5f 69 6e 73 74 72 75 63 74 69 6f 6e |fade_instruction| 00004ab0 73 0d 1e 64 0f 20 20 20 f5 20 fd 20 a6 2d 39 39 |s..d. . . .-99| 00004ac0 0d 1e 6e 12 20 20 20 e3 20 4e 25 3d 31 20 b8 20 |..n. . N%=1 . | 00004ad0 32 30 0d 1e 78 0d 20 20 20 20 20 c8 96 3a f1 0d |20..x. ..:..| 00004ae0 1e 82 0b 20 20 20 ed 20 4e 25 0d 1e 8c 06 20 e1 |... . N%.... .| 00004af0 0d 1e 96 06 20 3a 0d 1e a0 1b 20 dd 20 f2 64 69 |.... :.... . .di| 00004b00 73 70 6c 61 79 5f 68 69 67 68 5f 73 63 6f 72 65 |splay_high_score| 00004b10 73 0d 1e aa 0a 20 20 20 fb 20 33 0d 1e b4 1c 20 |s.... . 3.... | 00004b20 20 20 54 24 3d 22 48 69 67 68 20 53 63 6f 72 65 | T$="High Score| 00004b30 20 54 61 62 6c 65 22 0d 1e be 1d 20 20 20 f1 20 | Table".... . | 00004b40 8a a4 63 65 6e 74 72 65 28 54 24 29 2c 31 30 29 |..centre(T$),10)| 00004b50 3b 54 24 3b 0d 1e c8 1f 20 20 20 54 24 3d 22 50 |;T$;.... T$="P| 00004b60 72 65 73 73 20 53 50 41 43 45 20 54 6f 20 50 6c |ress SPACE To Pl| 00004b70 61 79 22 0d 1e d2 1d 20 20 20 f1 20 8a a4 63 65 |ay".... . ..ce| 00004b80 6e 74 72 65 28 54 24 29 2c 32 35 29 3b 54 24 3b |ntre(T$),25);T$;| 00004b90 0d 1e dc 12 20 20 20 e3 20 6e 25 3d 31 20 b8 20 |.... . n%=1 . | 00004ba0 31 30 0d 1e e6 10 20 20 20 20 20 fb 20 35 30 2b |10.... . 50+| 00004bb0 6e 25 0d 1e f0 34 20 20 20 20 20 73 63 72 24 3d |n%...4 scr$=| 00004bc0 c4 35 2d a9 28 c3 28 53 63 6f 72 65 25 28 6e 25 |.5-.(.(Score%(n%| 00004bd0 29 29 29 2c 22 30 22 29 2b c3 28 53 63 6f 72 65 |))),"0")+.(Score| 00004be0 25 28 6e 25 29 29 0d 1e fa 2e 20 20 20 20 20 f1 |%(n%)).... .| 00004bf0 20 8a 38 2c 6e 25 2b 31 32 29 3b 4e 61 6d 65 24 | .8,n%+12);Name$| 00004c00 28 6e 25 29 3b 8a 32 37 2c 6e 25 2b 31 32 29 3b |(n%);.27,n%+12);| 00004c10 73 63 72 24 0d 1f 04 0b 20 20 20 ed 20 6e 25 0d |scr$.... . n%.| 00004c20 1f 0e 06 20 e1 0d 1f 18 06 20 3a 0d 1f 22 13 20 |... ..... :..". | 00004c30 dd 20 f2 66 61 64 65 5f 73 63 72 65 65 6e 0d 1f |. .fade_screen..| 00004c40 2c 0b 20 20 20 4e 25 3d 30 0d 1f 36 0f 20 20 20 |,. N%=0..6. | 00004c50 c8 95 20 4e 25 3c 35 30 0d 1f 40 19 20 20 20 20 |.. N%<50..@. | 00004c60 20 c8 96 3a d6 20 66 61 64 65 5f 73 63 72 65 65 | ..:. fade_scree| 00004c70 6e 0d 1f 4a 0e 20 20 20 20 20 4e 25 2b 3d 31 0d |n..J. N%+=1.| 00004c80 1f 54 08 20 20 20 ce 0d 1f 5e 06 20 e1 0d 1f 68 |.T. ...^. ...h| 00004c90 06 20 3a 0d 1f 72 16 20 dd 20 f2 73 63 6f 72 65 |. :..r. . .score| 00004ca0 5f 75 70 28 61 64 64 25 29 0d 1f 7c 13 20 20 20 |_up(add%)..|. | 00004cb0 53 63 6f 72 65 25 2b 3d 61 64 64 25 0d 1f 86 0b |Score%+=add%....| 00004cc0 20 20 20 fb 20 34 30 0d 1f 90 22 20 20 20 f1 8a | . 40..." ..| 00004cd0 34 30 2d a9 28 c3 28 53 63 6f 72 65 25 29 29 2c |40-.(.(Score%)),| 00004ce0 31 29 3b 53 63 6f 72 65 25 0d 1f 9a 06 20 e1 0d |1);Score%.... ..| 00004cf0 1f a4 06 20 3a 0d 1f ae 18 20 dd 20 f2 6f 62 6a |... :.... . .obj| 00004d00 65 63 74 73 5f 75 70 28 61 64 64 25 29 0d 1f b8 |ects_up(add%)...| 00004d10 15 20 20 20 4f 62 6a 65 63 74 73 25 2b 3d 61 64 |. Objects%+=ad| 00004d20 64 25 0d 1f c2 2d 20 20 20 e7 20 4f 62 6a 65 63 |d%...- . Objec| 00004d30 74 73 25 3d 6d 61 78 5f 6f 62 6a 65 63 74 73 25 |ts%=max_objects%| 00004d40 20 8c 20 67 61 6d 65 5f 6f 76 65 72 25 3d b9 0d | . game_over%=..| 00004d50 1f cc 0b 20 20 20 fb 20 32 33 0d 1f d6 27 20 20 |... . 23...' | 00004d60 20 70 65 72 25 3d 28 4f 62 6a 65 63 74 73 25 2f | per%=(Objects%/| 00004d70 6d 61 78 5f 6f 62 6a 65 63 74 73 25 29 2a 31 30 |max_objects%)*10| 00004d80 30 0d 1f e0 23 20 20 20 f1 8a 32 37 2d a9 28 c3 |0...# ..27-.(.| 00004d90 28 70 65 72 25 29 29 2c 31 29 3b 70 65 72 25 3b |(per%)),1);per%;| 00004da0 22 25 22 3b 0d 1f ea 06 20 e1 0d 1f f4 06 20 3a |"%";.... ..... :| 00004db0 0d 1f fe 18 20 dd 20 f2 6c 6f 61 64 5f 68 69 67 |.... . .load_hig| 00004dc0 68 5f 73 63 6f 72 65 73 0d 20 08 24 20 20 20 58 |h_scores. .$ X| 00004dd0 32 3d 8e 28 22 3c 4c 61 6e 64 65 72 24 44 69 72 |2=.("<Lander$Dir| 00004de0 3e 2e 48 69 53 63 6f 72 65 73 22 29 0d 20 12 12 |>.HiScores"). ..| 00004df0 20 20 20 e3 20 4e 25 3d 31 20 b8 20 31 30 0d 20 | . N%=1 . 10. | 00004e00 1c 22 20 20 20 20 20 e8 23 58 32 2c 4e 61 6d 65 |." .#X2,Name| 00004e10 24 28 4e 25 29 2c 53 63 6f 72 65 25 28 4e 25 29 |$(N%),Score%(N%)| 00004e20 0d 20 26 0b 20 20 20 ed 20 4e 25 0d 20 30 0b 20 |. &. . N%. 0. | 00004e30 20 20 d9 23 58 32 0d 20 3a 06 20 e1 0d 20 44 06 | .#X2. :. .. D.| 00004e40 20 3a 0d 20 4e 18 20 dd 20 f2 73 61 76 65 5f 68 | :. N. . .save_h| 00004e50 69 67 68 5f 73 63 6f 72 65 73 0d 20 58 24 20 20 |igh_scores. X$ | 00004e60 20 58 32 3d ae 28 22 3c 4c 61 6e 64 65 72 24 44 | X2=.("<Lander$D| 00004e70 69 72 3e 2e 48 69 53 63 6f 72 65 73 22 29 0d 20 |ir>.HiScores"). | 00004e80 62 12 20 20 20 e3 20 4e 25 3d 31 20 b8 20 31 30 |b. . N%=1 . 10| 00004e90 0d 20 6c 22 20 20 20 20 20 f1 23 58 32 2c 4e 61 |. l" .#X2,Na| 00004ea0 6d 65 24 28 4e 25 29 2c 53 63 6f 72 65 25 28 4e |me$(N%),Score%(N| 00004eb0 25 29 0d 20 76 0b 20 20 20 ed 20 4e 25 0d 20 80 |%). v. . N%. .| 00004ec0 0b 20 20 20 d9 23 58 32 0d 20 8a 06 20 e1 0d 20 |. .#X2. .. .. | 00004ed0 94 06 20 3a 0d 20 9e 18 20 dd 20 f2 65 6e 74 65 |.. :. .. . .ente| 00004ee0 72 5f 68 69 67 68 5f 73 63 6f 72 65 0d 20 a8 0f |r_high_score. ..| 00004ef0 20 20 20 2a 46 58 20 31 35 20 31 0d 20 b2 0a 20 | *FX 15 1. .. | 00004f00 20 20 fb 20 33 0d 20 bc 11 20 20 20 e6 20 30 2c | . 3. .. . 0,| 00004f10 30 20 c8 9c 20 30 0d 20 c6 1c 20 20 20 c8 93 20 |0 .. 0. .. .. | 00004f20 c8 90 20 31 38 30 2c 32 30 30 2c 39 30 30 2c 35 |.. 180,200,900,5| 00004f30 30 30 0d 20 d0 12 20 20 20 e6 20 30 2c 36 33 20 |00. .. . 0,63 | 00004f40 c8 9c 20 30 0d 20 da 19 20 20 20 c8 93 20 31 38 |.. 0. .. .. 18| 00004f50 30 2c 32 30 30 2c 39 30 30 2c 35 30 30 0d 20 e4 |0,200,900,500. .| 00004f60 1b 20 20 20 54 24 3d 22 4e 65 77 20 48 69 67 68 |. T$="New High| 00004f70 20 53 63 6f 72 65 21 22 0d 20 ee 1d 20 20 20 f1 | Score!". .. .| 00004f80 20 8a a4 63 65 6e 74 72 65 28 54 24 29 2c 31 33 | ..centre(T$),13| 00004f90 29 3b 54 24 3b 0d 20 f8 1e 20 20 20 54 24 3d 22 |);T$;. .. T$="| 00004fa0 45 6e 74 65 72 20 79 6f 75 72 20 6e 61 6d 65 2e |Enter your name.| 00004fb0 2e 2e 22 0d 21 02 1d 20 20 20 f1 20 8a a4 63 65 |..".!.. . ..ce| 00004fc0 6e 74 72 65 28 54 24 29 2c 31 37 29 3b 54 24 3b |ntre(T$),17);T$;| 00004fd0 0d 21 0c 0b 20 20 20 fb 20 31 35 0d 21 16 19 20 |.!.. . 15.!.. | 00004fe0 20 20 f2 65 6e 74 65 72 5f 6e 61 6d 65 28 31 31 | .enter_name(11| 00004ff0 2c 32 33 29 0d 21 20 15 20 20 20 f2 61 64 6a 75 |,23).! . .adju| 00005000 73 74 5f 73 63 6f 72 65 73 0d 21 2a 18 20 20 20 |st_scores.!*. | 00005010 f2 73 61 76 65 5f 68 69 67 68 5f 73 63 6f 72 65 |.save_high_score| 00005020 73 0d 21 34 06 20 e1 0d 21 3e 06 20 3a 0d 21 48 |s.!4. ..!>. :.!H| 00005030 1d 20 dd 20 f2 65 6e 74 65 72 5f 6e 61 6d 65 28 |. . .enter_name(| 00005040 78 5f 63 25 2c 79 5f 63 25 29 0d 21 52 12 20 20 |x_c%,y_c%).!R. | 00005050 20 e6 20 30 2c 34 34 20 c8 9c 20 30 0d 21 5c 13 | . 0,44 .. 0.!\.| 00005060 20 20 20 78 5f 67 25 3d 78 5f 63 25 2a 33 32 0d | x_g%=x_c%*32.| 00005070 21 66 1a 20 20 20 79 5f 67 25 3d 31 30 32 34 2d |!f. y_g%=1024-| 00005080 28 79 5f 63 25 2a 33 32 29 0d 21 70 18 20 20 20 |(y_c%*32).!p. | 00005090 ec 20 78 5f 67 25 2d 35 30 2c 79 5f 67 25 2b 31 |. x_g%-50,y_g%+1| 000050a0 33 0d 21 7a 18 20 20 20 ec 20 78 5f 67 25 2d 31 |3.!z. . x_g%-1| 000050b0 30 2c 79 5f 67 25 2d 31 32 0d 21 84 1b 20 20 20 |0,y_g%-12.!.. | 000050c0 f0 20 38 35 2c 78 5f 67 25 2d 35 30 2c 79 5f 67 |. 85,x_g%-50,y_g| 000050d0 25 2d 33 37 0d 21 8e 11 20 20 20 65 6e 74 65 72 |%-37.!.. enter| 000050e0 65 64 25 3d a3 0d 21 98 0f 20 20 20 63 6f 75 6e |ed%=..!.. coun| 000050f0 74 25 3d 30 0d 21 a2 10 20 20 20 65 6e 74 65 72 |t%=0.!.. enter| 00005100 24 3d 22 22 0d 21 ac 0e 20 20 20 6c 65 6e 25 3d |$="".!.. len%=| 00005110 31 38 0d 21 b6 15 20 20 20 f2 64 69 73 70 6c 61 |18.!.. .displa| 00005120 79 5f 63 61 72 65 74 0d 21 c0 10 20 20 20 6f 66 |y_caret.!.. of| 00005130 66 73 65 74 25 3d 30 0d 21 ca 08 20 20 20 f5 0d |fset%=0.!.. ..| 00005140 21 d4 0a 20 20 20 20 20 f5 0d 21 de 0f 20 20 20 |!.. ..!.. | 00005150 20 20 20 20 41 24 3d be 0d 21 e8 2a 20 20 20 20 | A$=..!.* | 00005160 20 fd 20 28 97 28 41 24 29 3e 33 31 20 80 20 97 | . (.(A$)>31 . .| 00005170 28 41 24 29 3c 31 32 38 29 20 84 20 41 24 3d bd |(A$)<128) . A$=.| 00005180 31 33 0d 21 f2 13 20 20 20 20 20 e7 20 41 24 3d |13.!.. . A$=| 00005190 bd 31 33 20 8c 0d 21 fc 16 20 20 20 20 20 20 20 |.13 ..!.. | 000051a0 20 65 6e 74 65 72 65 64 25 3d b9 0d 22 06 0c 20 | entered%=..".. | 000051b0 20 20 20 20 20 20 cc 0d 22 10 16 20 20 20 20 20 | ..".. | 000051c0 20 20 20 c8 8e 20 97 28 41 24 29 20 ca 0d 22 1a | .. .(A$) ..".| 000051d0 32 20 20 20 20 20 20 20 20 20 20 c9 20 31 32 37 |2 . 127| 000051e0 3a e7 20 63 6f 75 6e 74 25 3e 30 20 8c 20 f2 64 |:. count%>0 . .d| 000051f0 65 6c 65 74 65 5f 63 68 61 72 61 63 74 65 72 0d |elete_character.| 00005200 22 24 0e 20 20 20 20 20 20 20 20 20 7f 0d 22 2e |"$. ..".| 00005210 21 20 20 20 20 20 20 20 20 20 20 e7 20 a9 28 65 |! . .(e| 00005220 6e 74 65 72 24 29 3e 3d 6c 65 6e 25 20 8c 0d 22 |nter$)>=len% .."| 00005230 38 14 20 20 20 20 20 20 20 20 20 20 20 20 20 ef |8. .| 00005240 20 37 0d 22 42 11 20 20 20 20 20 20 20 20 20 20 | 7."B. | 00005250 20 20 cc 0d 22 4c 1f 20 20 20 20 20 20 20 20 20 | .."L. | 00005260 20 20 20 20 f2 61 64 64 5f 63 68 61 72 61 63 74 | .add_charact| 00005270 65 72 0d 22 56 0f 20 20 20 20 20 20 20 20 20 20 |er."V. | 00005280 cd 0d 22 60 0d 20 20 20 20 20 20 20 20 cb 0d 22 |.."`. .."| 00005290 6a 0a 20 20 20 20 20 cd 0d 22 74 11 20 20 20 fd |j. .."t. .| 000052a0 20 65 6e 74 65 72 65 64 25 0d 22 7e 06 20 e1 0d | entered%."~. ..| 000052b0 22 88 06 20 3a 0d 22 92 18 20 dd 20 f2 64 65 6c |".. :.".. . .del| 000052c0 65 74 65 5f 63 68 61 72 61 63 74 65 72 0d 22 9c |ete_character.".| 000052d0 10 20 20 20 63 6f 75 6e 74 25 2d 3d 31 0d 22 a6 |. count%-=1.".| 000052e0 1f 20 20 20 64 65 6c 65 74 65 64 5f 63 68 61 72 |. deleted_char| 000052f0 24 3d c2 65 6e 74 65 72 24 2c 31 29 0d 22 b0 22 |$=.enter$,1)."."| 00005300 20 20 20 65 6e 74 65 72 24 3d c0 65 6e 74 65 72 | enter$=.enter| 00005310 24 2c a9 28 65 6e 74 65 72 24 29 2d 31 29 0d 22 |$,.(enter$)-1)."| 00005320 ba 11 20 20 20 e6 20 30 2c 30 20 c8 9c 20 30 0d |.. . 0,0 .. 0.| 00005330 22 c4 1f 20 20 20 c8 93 20 c8 90 20 78 5f 67 25 |".. .. .. x_g%| 00005340 2c 79 5f 67 25 2d 35 32 2c 36 30 2c 38 30 0d 22 |,y_g%-52,60,80."| 00005350 ce 0e 20 20 20 78 5f 63 25 2d 3d 31 0d 22 d8 13 |.. x_c%-=1."..| 00005360 20 20 20 78 5f 67 25 3d 78 5f 63 25 2a 33 32 0d | x_g%=x_c%*32.| 00005370 22 e2 20 20 20 20 c8 93 20 c8 90 20 78 5f 67 25 |". .. .. x_g%| 00005380 2c 79 5f 67 25 2d 35 32 2c 33 32 2c 31 32 30 0d |,y_g%-52,32,120.| 00005390 22 ec 15 20 20 20 f2 64 69 73 70 6c 61 79 5f 63 |".. .display_c| 000053a0 61 72 65 74 0d 22 f6 06 20 e1 0d 23 00 06 20 3a |aret.".. ..#.. :| 000053b0 0d 23 0a 15 20 dd 20 f2 61 64 64 5f 63 68 61 72 |.#.. . .add_char| 000053c0 61 63 74 65 72 0d 23 14 17 20 20 20 65 6e 74 65 |acter.#.. ente| 000053d0 72 24 3d 65 6e 74 65 72 24 2b 41 24 0d 23 1e 10 |r$=enter$+A$.#..| 000053e0 20 20 20 63 6f 75 6e 74 25 2b 3d 31 0d 23 28 11 | count%+=1.#(.| 000053f0 20 20 20 e6 20 30 2c 30 20 c8 9c 20 30 0d 23 32 | . 0,0 .. 0.#2| 00005400 1f 20 20 20 c8 93 20 c8 90 20 78 5f 67 25 2c 79 |. .. .. x_g%,y| 00005410 5f 67 25 2d 35 32 2c 36 30 2c 38 30 0d 23 3c 18 |_g%-52,60,80.#<.| 00005420 20 20 20 f1 20 8a 78 5f 63 25 2c 79 5f 63 25 29 | . .x_c%,y_c%)| 00005430 3b 41 24 3b 0d 23 46 0e 20 20 20 78 5f 63 25 2b |;A$;.#F. x_c%+| 00005440 3d 31 0d 23 50 13 20 20 20 78 5f 67 25 3d 78 5f |=1.#P. x_g%=x_| 00005450 63 25 2a 33 32 0d 23 5a 15 20 20 20 f2 64 69 73 |c%*32.#Z. .dis| 00005460 70 6c 61 79 5f 63 61 72 65 74 0d 23 64 06 20 e1 |play_caret.#d. .| 00005470 0d 23 6e 06 20 3a 0d 23 78 15 20 dd 20 f2 64 69 |.#n. :.#x. . .di| 00005480 73 70 6c 61 79 5f 63 61 72 65 74 0d 23 82 12 20 |splay_caret.#.. | 00005490 20 20 e6 20 30 2c 34 34 20 c8 9c 20 30 0d 23 8c | . 0,44 .. 0.#.| 000054a0 18 20 20 20 ec 20 78 5f 67 25 2b 33 32 2c 79 5f |. . x_g%+32,y_| 000054b0 67 25 2b 31 33 0d 23 96 15 20 20 20 ec 20 78 5f |g%+13.#.. . x_| 000054c0 67 25 2c 79 5f 67 25 2d 31 32 0d 23 a0 1b 20 20 |g%,y_g%-12.#.. | 000054d0 20 f0 20 38 35 2c 78 5f 67 25 2b 33 32 2c 79 5f | . 85,x_g%+32,y_| 000054e0 67 25 2d 33 37 0d 23 aa 06 20 e1 0d 23 b4 06 20 |g%-37.#.. ..#.. | 000054f0 3a 0d 23 be 15 20 dd 20 f2 61 64 6a 75 73 74 5f |:.#.. . .adjust_| 00005500 73 63 6f 72 65 73 0d 23 c8 0b 20 20 20 4e 25 3d |scores.#.. N%=| 00005510 30 0d 23 d2 08 20 20 20 f5 0d 23 dc 0e 20 20 20 |0.#.. ..#.. | 00005520 20 20 4e 25 2b 3d 31 0d 23 e6 1a 20 20 20 fd 20 | N%+=1.#.. . | 00005530 53 63 6f 72 65 25 3e 53 63 6f 72 65 25 28 4e 25 |Score%>Score%(N%| 00005540 29 0d 23 f0 1a 20 20 20 e3 20 6c 6f 6f 70 25 3d |).#.. . loop%=| 00005550 39 20 b8 20 4e 25 20 88 20 2d 31 0d 23 fa 24 20 |9 . N% . -1.#.$ | 00005560 20 20 20 20 4e 61 6d 65 24 28 6c 6f 6f 70 25 2b | Name$(loop%+| 00005570 31 29 3d 4e 61 6d 65 24 28 6c 6f 6f 70 25 29 0d |1)=Name$(loop%).| 00005580 24 04 26 20 20 20 20 20 53 63 6f 72 65 25 28 6c |$.& Score%(l| 00005590 6f 6f 70 25 2b 31 29 3d 53 63 6f 72 65 25 28 6c |oop%+1)=Score%(l| 000055a0 6f 6f 70 25 29 0d 24 0e 0e 20 20 20 ed 20 6c 6f |oop%).$.. . lo| 000055b0 6f 70 25 0d 24 18 17 20 20 20 4e 61 6d 65 24 28 |op%.$.. Name$(| 000055c0 4e 25 29 3d 65 6e 74 65 72 24 0d 24 22 18 20 20 |N%)=enter$.$". | 000055d0 20 53 63 6f 72 65 25 28 4e 25 29 3d 53 63 6f 72 | Score%(N%)=Scor| 000055e0 65 25 0d 24 2c 06 20 e1 0d 24 36 06 20 3a 0d 24 |e%.$,. ..$6. :.$| 000055f0 40 15 20 dd 20 f2 73 65 74 5f 67 61 6d 65 5f 76 |@. . .set_game_v| 00005600 61 72 73 0d 24 4a 14 20 20 20 21 72 6f 6f 6d 5f |ars.$J. !room_| 00005610 63 68 65 63 6b 3d 30 0d 24 54 0d 20 20 20 74 69 |check=0.$T. ti| 00005620 6d 65 3d 30 0d 24 5e 0f 20 20 20 73 74 61 72 74 |me=0.$^. start| 00005630 25 3d b9 0d 24 68 0f 20 20 20 6c 69 76 65 73 25 |%=..$h. lives%| 00005640 3d 34 0d 24 72 0f 20 20 20 53 63 6f 72 65 25 3d |=4.$r. Score%=| 00005650 30 0d 24 7c 11 20 20 20 4f 62 6a 65 63 74 73 25 |0.$|. Objects%| 00005660 3d 30 0d 24 86 11 20 20 20 21 66 75 65 6c 25 3d |=0.$.. !fuel%=| 00005670 39 32 32 0d 24 90 12 20 20 20 73 68 69 70 5f 78 |922.$.. ship_x| 00005680 25 3d 34 36 31 0d 24 9a 11 20 20 20 73 68 69 70 |%=461.$.. ship| 00005690 5f 79 25 3d 38 38 0d 24 a4 11 20 20 20 21 74 68 |_y%=88.$.. !th| 000056a0 72 75 73 74 25 3d a3 0d 24 ae 0e 20 20 20 72 6f |rust%=..$.. ro| 000056b0 6f 6d 25 3d 34 0d 24 b8 13 20 20 20 e3 20 6c 25 |om%=4.$.. . l%| 000056c0 3d 30 20 b8 20 31 30 30 0d 24 c2 16 20 20 20 20 |=0 . 100.$.. | 000056d0 20 4f 62 6a 65 63 74 25 28 6c 25 29 3d 30 0d 24 | Object%(l%)=0.$| 000056e0 cc 14 20 20 20 20 20 46 75 65 6c 28 6c 25 29 3d |.. Fuel(l%)=| 000056f0 38 30 0d 24 d6 0b 20 20 20 ed 20 6c 25 0d 24 e0 |80.$.. . l%.$.| 00005700 11 20 20 20 e3 20 6c 25 3d 31 20 b8 20 36 0d 24 |. . l%=1 . 6.$| 00005710 ea 13 20 20 20 20 20 4b 65 79 25 28 6c 25 29 3d |.. Key%(l%)=| 00005720 30 0d 24 f4 0b 20 20 20 ed 20 6c 25 0d 24 fe 13 |0.$.. . l%.$..| 00005730 20 20 20 67 61 6d 65 5f 6f 76 65 72 25 3d a3 0d | game_over%=..| 00005740 25 08 06 20 e1 0d 25 12 06 20 3a 0d 25 1c 12 20 |%.. ..%.. :.%.. | 00005750 dd 20 f2 66 6c 61 73 68 5f 73 68 69 70 0d 25 26 |. .flash_ship.%&| 00005760 0c 20 20 20 21 52 25 3d 30 0d 25 30 22 20 20 20 |. !R%=0.%0" | 00005770 21 78 70 6f 73 3d 73 68 69 70 5f 78 25 3a 21 79 |!xpos=ship_x%:!y| 00005780 70 6f 73 3d 73 68 69 70 5f 79 25 0d 25 3a 15 20 |pos=ship_y%.%:. | 00005790 20 20 d6 20 64 69 73 70 6c 61 79 5f 73 68 69 70 | . display_ship| 000057a0 0d 25 44 12 20 20 20 e3 20 4e 25 3d 31 20 b8 20 |.%D. . N%=1 . | 000057b0 31 30 0d 25 4e 10 20 20 20 20 20 74 69 6d 65 32 |10.%N. time2| 000057c0 3d 91 0d 25 58 17 20 20 20 20 20 f5 20 fd 20 91 |=..%X. . . .| 000057d0 2d 74 69 6d 65 32 3e 31 30 0d 25 62 17 20 20 20 |-time2>10.%b. | 000057e0 20 20 d6 20 64 69 73 70 6c 61 79 5f 73 68 69 70 | . display_ship| 000057f0 0d 25 6c 0b 20 20 20 ed 20 4e 25 0d 25 76 06 20 |.%l. . N%.%v. | 00005800 e1 0d 25 80 06 20 3a 0d 25 8a 13 20 dd 20 f2 73 |..%.. :.%.. . .s| 00005810 65 74 5f 75 70 5f 67 61 6d 65 0d 25 94 0b 20 20 |et_up_game.%.. | 00005820 20 eb 20 31 33 0d 25 9e 08 20 20 20 87 0d 25 a8 | . 13.%.. ..%.| 00005830 06 20 e1 0d 25 b2 06 20 3a 0d 25 bc 13 20 dd 20 |. ..%.. :.%.. . | 00005840 f2 65 78 69 74 5f 6c 61 6e 64 65 72 0d 25 c6 08 |.exit_lander.%..| 00005850 20 20 20 f1 0d 25 d0 10 20 20 20 e7 20 9f 3c 3e | ..%.. . .<>| 00005860 31 37 20 8c 0d 25 da 0b 20 20 20 20 20 20 f6 0d |17 ..%.. ..| 00005870 25 e4 18 20 20 20 20 20 20 f1 22 20 61 74 20 6c |%.. ." at l| 00005880 69 6e 65 20 22 3b 9e 0d 25 ee 0a 20 20 20 20 20 |ine ";..%.. | 00005890 cc 0d 25 f8 0e 20 20 20 20 20 20 fb 20 36 33 0d |..%.. . 63.| 000058a0 26 02 26 20 20 20 20 20 20 db 3a f1 22 52 65 74 |&.& .:."Ret| 000058b0 75 72 6e 69 6e 67 20 54 6f 20 44 65 73 6b 74 6f |urning To Deskto| 000058c0 70 2e 2e 2e 22 0d 26 0c 08 20 20 20 cd 0d 26 16 |p...".&.. ..&.| 000058d0 0d 20 20 20 2a 46 58 20 31 35 0d 26 20 06 20 e0 |. *FX 15.& . .| 000058e0 0d 26 2a 06 20 3a 0d 26 34 1b 20 dd 20 f2 64 69 |.&*. :.&4. . .di| 000058f0 73 70 6c 61 79 5f 65 6e 64 5f 6d 65 73 73 61 67 |splay_end_messag| 00005900 65 0d 26 3e 11 20 20 20 e6 20 30 2c 30 20 c8 9c |e.&>. . 0,0 ..| 00005910 20 30 0d 26 48 1c 20 20 20 c8 93 20 c8 90 20 31 | 0.&H. .. .. 1| 00005920 38 30 2c 32 30 30 2c 39 30 30 2c 35 30 30 0d 26 |80,200,900,500.&| 00005930 52 12 20 20 20 e6 20 30 2c 36 33 20 c8 9c 20 30 |R. . 0,63 .. 0| 00005940 0d 26 5c 19 20 20 20 c8 93 20 31 38 30 2c 32 30 |.&\. .. 180,20| 00005950 30 2c 39 30 30 2c 35 30 30 0d 26 66 0b 20 20 20 |0,900,500.&f. | 00005960 fb 20 31 35 0d 26 70 1c 20 20 20 54 24 3d 22 43 |. 15.&p. T$="C| 00005970 6f 6e 67 72 61 74 75 6c 61 74 69 6f 6e 73 21 22 |ongratulations!"| 00005980 0d 26 7a 1d 20 20 20 f1 20 8a a4 63 65 6e 74 72 |.&z. . ..centr| 00005990 65 28 54 24 29 2c 31 33 29 3b 54 24 3b 0d 26 84 |e(T$),13);T$;.&.| 000059a0 0b 20 20 20 fb 20 32 33 0d 26 8e 24 20 20 20 54 |. . 23.&.$ T| 000059b0 24 3d 22 59 6f 75 72 20 4d 69 73 73 69 6f 6e 20 |$="Your Mission | 000059c0 49 73 20 43 6f 6d 70 6c 65 74 65 22 0d 26 98 1d |Is Complete".&..| 000059d0 20 20 20 f1 20 8a a4 63 65 6e 74 72 65 28 54 24 | . ..centre(T$| 000059e0 29 2c 31 37 29 3b 54 24 3b 0d 26 a2 1f 20 20 20 |),17);T$;.&.. | 000059f0 54 24 3d 22 54 68 65 20 52 65 73 65 61 72 63 68 |T$="The Research| 00005a00 20 43 65 6e 74 72 65 22 0d 26 ac 1d 20 20 20 f1 | Centre".&.. .| 00005a10 20 8a a4 63 65 6e 74 72 65 28 54 24 29 2c 32 31 | ..centre(T$),21| 00005a20 29 3b 54 24 3b 0d 26 b6 15 20 20 20 54 24 3d 22 |);T$;.&.. T$="| 00005a30 49 73 20 53 61 76 65 64 2e 22 0d 26 c0 1d 20 20 |Is Saved.".&.. | 00005a40 20 f1 20 8a a4 63 65 6e 74 72 65 28 54 24 29 2c | . ..centre(T$),| 00005a50 32 32 29 3b 54 24 3b 0d 26 ca 0e 20 20 20 74 69 |22);T$;.&.. ti| 00005a60 6d 65 32 3d 91 0d 26 d4 16 20 20 20 f5 20 fd 20 |me2=..&.. . . | 00005a70 91 2d 74 69 6d 65 32 3e 35 30 30 0d 26 de 06 20 |.-time2>500.&.. | 00005a80 e1 0d ff |...| 00005a83