Home » Archimedes archive » Acorn Computing » 1993 10 Mega Disk.adf » 93_10 » Cyborg/!CyborgDem/!RunImage
Cyborg/!CyborgDem/!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 » Acorn Computing » 1993 10 Mega Disk.adf » 93_10 |
Filename: | Cyborg/!CyborgDem/!RunImage |
Read OK: | ✔ |
File size: | 55C1 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >!RunImage 20 30REM ******************************************************* 40REM * LEN 1993 Philip Hawthorne/Alpine Software * 50REM * Adapted for use with Cyborg * 60REM * Acorn Computing Demo Version * 70REM ******************************************************* 80 90ON ERROR MODE12:OSCLI("SHUT"):IF ERR<>17 PRINT"An error has occurred: ";:REPORT:PRINT" (Error code: ";ERR;"/";ERL;")":REPEAT:A=GET:UNTIL A=32:END ELSE END 100testing = FALSE 110level=0 120PROCassemble_copy 130PROCfind_mode 140PROCcheck_config 150 160DIM object_space data_size 170 180DIM ptrdata 512 190!ptrdata=512:ptrdata!8=16 200SYS "OS_SpriteOp",9+256,ptrdata 210SYS "OS_SpriteOp",10+256,ptrdata,"<RunGame$Dir>.Pointers" 220REM SYS "OS_SpriteOp",36+256,ptrdata,"sight",%0000001,3,13,0,0 230SYS "OS_SpriteOp",36+256,ptrdata,"sight",%0000001,7,7,0,0 240REM SYS "OS_SpriteOp",36+256,ptrdata,"tracksight",%0100010,3,13,0,0 250SYS "OS_SpriteOp",36+256,ptrdata,"tracksight",%0100010,7,7,0,0 260SYS "OS_Byte",106,1:REM Select pointer #1 270 280PROCinit 290DIM filename 255 300DIM starsX num_stars*4,starsY num_stars,starsV num_stars 310 320FOR I%=0 TO num_stars-1 330 N%=4*I% 340 starsX!N% = RND(319) 350NEXT 360FOR I%=0 TO num_stars-1 370 starsY?I% = RND(254) 380 starsV?I% = RND(4) 390NEXT 400 410SYS "OS_File",5,"<RunGame$Dir>.Alphabet" TO ftype,,,,alphalen 420IF ftype=0 ERROR 252,"No Alphabet file" 430 440alphalen+=16:DIM alphabet alphalen,alpha_info 32,character_ptrs 95*4 450 460!alphabet=alphalen:alphabet!4=0:alphabet!8=16:alphabet!12=16 470SYS "OS_SpriteOp",256+10,alphabet,"<RunGame$Dir>.Alphabet" 480 490SYS "OS_SpriteOp",256+40,alphabet,"32" TO ,,,width,height,,charmode 500SYS "OS_ReadModeVariable",charmode,4 TO ,,XEig 510SYS "OS_ReadModeVariable",charmode,5 TO ,,YEig 520width = width << XEig 530height = height << YEig 540I%=0 550FOR C%=32 TO 126 560 C$=STR$C% 570 SYS "OS_SpriteOp",24+256,alphabet,C$ TO ,,address 580 I%!character_ptrs=address 590 I%+=4 600NEXT 610!alpha_info=alphabet 620alpha_info!4=character_ptrs 630alpha_info!8=width 640alpha_info!12=height 650DIM stars_info 32 660!stars_info = starsX 670stars_info!4=starsY 680stars_info!8=starsV 690stars_info!12=120 700 710DIM tune_names 24*max_tunes,name_ptrs max_tunes*4,tunes_info 32 720 730PROCread_tunes("<RunGame$Dir>.Tunes",tune$(),num_tunes) 740ptr=0:dir$="<Sounds$Dir>." 750 760FOR I%=0 TO num_tunes-1 770 $(tune_names+ptr)=dir$+tune$(I%)+CHR$(0) 780 !(name_ptrs+4*I%)=tune_names+ptr 790 ptr+=LEN(tune$(I%))+1+LEN(dir$) 800NEXT 810 820!tunes_info=num_tunes:tunes_info!4=tune_names:tunes_info!8=name_ptrs 830 840OSCLI("FX 113") 850REPEAT 860CLG 870p$="Do you want instructions?" 880PROCfancy_print(p$,(1280-width*LENp$)/2,500,1,2,1,1) 890 900SYS "OS_Confirm" TO answer 910IF answer=ASC"y" THEN PROCinstruct 920UNTIL answer<>ASC"y" 930 940A%=work% 950B%=sprite_area 960C%=object_space 970D%=stars_info 980E%=alpha_info 990F%=tunes_info 1000 1010CALL _initialise 1020 1030H%=work% 1040 1050highscore=score(1) 1060energy = 500:score=0:chargedelay=12 1070 1080last_choice=1 1090OSCLI("FX 113") 1100CLG 1110level=0 1120p$="Loading Demo Level" 1130PROCfancy_print(p$,(1280-width*LENp$)/2,500,1,2,1,1) 1140 1150PROCload_sprites(level) 1160 1170SYS "ExS_MusicFade",48:PROCwait(4):*MusicStop 1180 1190REPEAT 1200$filename = "<RunGame$Dir>.GameData" 1210A%=filename 1220CALL _getdata 1230 1240var_table=H%!40:var_table!8 = highscore 1250 1260CASE level OF 1270WHEN 1: 1280var_table!180=energy 1290var_table!4=score 1300WHEN 3,5,7: 1310var_table!68=energy 1320var_table!4=score 1330var_table!88=chargedelay 1340ENDCASE 1350 1360A%=sprite_area 1370H%=work% 1380 1390PROCcopy_screen 1400 1410VDU 24,160;268;1116;766; 1420MOUSE RECTANGLE 100,292,1080,440 1430MOUSE ON 1440 1450TIME=0 1460PROCarm3:G%=arm3 1470IF NOT arm3 THEN H%!&128 = 3 1480 1490p$="Get Ready!" 1500CLG:PROCfancy_print(p$,(1280-width*LENp$)/2,500,1,2,1,1) 1510A=INKEY(300) 1520 1530frames=USR _display 1540 1550time=TIME/100 1560 1570SYS "ExS_MusicStart" 1580 1590oldhigh = highscore 1600highscore = var_table!8 1610score = var_table!4 1620 1630IF INKEY(-6) PRINT frames/time;" frames/second" 1640 1650mode=MODE 1660SYS "OS_ReadModeVariable",mode,4 TO ,,XEig 1670SYS "OS_ReadModeVariable",mode,5 TO ,,YEig 1680go_sprite$="gameover"+STR$(mode) 1690pa_sprite$="playagain"+STR$(mode) 1700hs_sprite$="highscore"+STR$(mode) 1710OFF 1720 1730CASE level OF 1740WHEN 0: 1750energy = var_table!60 1760completed = var_table!92 1770ENDCASE 1780 1790IF testing PRINT"Energy: ";energy;" completed: ";completed 1800p$="":IF energy <= 0 THEN p$="You're out of energy!" 1810IF completed = 0 AND energy > 0 THEN p$="You're out of air!" 1820IF completed = -1 THEN p$="Poison Gas - You're dead!" 1830IF p$<>"" PROCfancy_print(p$,(1280-width*LENp$)/2,300,1,2,1,1) 1840 1850IF completed<>1 THEN 1860 PROCend_of_game(delay,go_sprite$,xcoord1,ycoord1) 1870 PROChighscore(score) 1880 1890 IF FNanother(pa_sprite$,xcoord2,ycoord2,key$) THEN 1900 energy=500 1910 score=0 1920 1930 PROCload_sprites(level) 1940 another=TRUE 1950 ELSE 1960 another=FALSE 1970 ENDIF 1980ELSE 1990 another = FALSE 2000 PROChighscore(score) 2010 CLG 2020 p$="Well done!" 2030 PROCfancy_print(p$,(1280-width*LENp$)/2,500,1,2,1,1) 2040 p$="You've completed the demo" 2050 PROCfancy_print(p$,(1280-width*LENp$)/2,400,1,2,1,1) 2060ENDIF 2070IF another THEN 2080 SYS "ExS_MusicFade",48 2090 PROCwait(4) 2100ENDIF 2110*MusicStop 2120UNTIL NOT another 2130 2140IF save$="YES" THEN PROCsave_highscores("<SaveGame$Dir>.HighScores") 2150 2160PROCremove_sounds 2170 2180END 2190 2200 2210DEF PROCinit 2220SYS "OS_Byte",161,191 TO ,,OldMouse 2230num_stars = 255 2240max_tunes = 16:DIM tune$(max_tunes) 2250 2260splen = FNget_max_spritelen("<RunGame$Dir>") 2270 2280splen+= 16:DIM sprite_area splen 2290 2300!sprite_area=splen:sprite_area!4=0:sprite_area!8=16:sprite_area!12=16 2310 2320SYS "OS_File",5,"<RunGame$Dir>.Sprites2" TO ftype,,,,splen2 2330IF ftype=0 ERROR 254,"No 'Sprites2' file" 2340 2350splen2+= 16:DIM sprite_area2 splen2 2360 2370!sprite_area2=splen2:sprite_area2!4=0:sprite_area2!8=16:sprite_area2!12=16 2380SYS "OS_SpriteOp",256+10,sprite_area2,"<RunGame$Dir>.Sprites2" 2390 2400PROCload_sounds("<RunGame$Dir>.Sounds") 2410 2420DIM name$(maxhi),score(maxhi) 2430name$()="Creator":score()=1000 2440 2450in%=OPENIN "<RunGame$Dir>.HighScores" 2460IF in%<>0 THEN 2470I%=1 2480WHILE NOT EOF#in% AND I%<=maxhi 2490 line$=GET$#in% 2500 IF LEFT$(line$,1)<>";" AND line$<>"" THEN 2510 IF I%>maxhi THEN ERROR 253,"Too many names in 'HighScore' file" 2520 Q%=INSTR(line$,":") 2530 name$(I%)=LEFT$(line$,Q%-1) 2540 name$(I%)=LEFT$(name$(I%)+STRING$(maxlen," "),maxlen-1) 2550 Q%+=1 2560 WHILE MID$(line$,Q%,1)=" ":Q%+=1:ENDWHILE 2570 value$=MID$(line$,Q%) 2580 score(I%) = VAL(value$) 2590 I%+=1 2600 ENDIF 2610ENDWHILE 2620CLOSE#in% 2630ENDIF 2640PROCsort_highscores(maxhi) 2650 2660SYS "OS_File",5,"<RunGame$Dir>.FCode" TO ftype,,,,codesize 2670DIM code codesize 2680 2690FOR pass = 0 TO 2 STEP 2 2700PROCassemble(code,pass) 2710NEXT 2720 2730OSCLI("LOAD <RunGame$Dir>.FCode "+STR$~code) 2740SOUND ON 2750DIM work% 2000 2760DIM OSbuffer 256 2770 2780PROCset_OSvar("SaveGame$Dir",FNstripCFS(FNread_OSvar("RunGame$Dir"))) 2790 2800ENDPROC 2810 2820 2830DEF PROCfind_mode 2840LOCAL dummy$,I% 2850in% = OPENIN ("<RunGame$Dir>.GameData") 2860IF in%=0 ERROR 252,"GameData file is missing" 2870FOR I%=1 TO 7:dummy$=GET$#in%:NEXT 2880mode=VAL(GET$#in%) 2890CLOSE#in% 2900ENDPROC 2910 2920DEF PROCcheck_config 2930in%=OPENIN "<RunGame$Dir>.Config" 2940delay = 3 2950screen_delay = 5 2960xcoord1 = 540 2970ycoord1 = 500 2980xcoord2 = 520 2990ycoord2 = 500 3000show$="ALWAYS" 3010save$ = "YES" 3020key$= "YyNn" 3030play_tune$ = "" 3040stop_tune$ = "" 3050reload$ = "YES" 3060maxhi = 5 3070maxlen=16 3080maxdigits=10 3090scrnload$="FAST" 3100data_size = 64*1024 3110CASE mode OF 3120WHEN 13: 3130hsx = 130 3140hsy = 400 3150slab_colour = 42 3160hilite = 63 3170lolite = 21 3180inset = 0 3190line = 0 3200ENDCASE 3210 3220IF in%<>0 THEN 3230WHILE NOT EOF#in% 3240 line$=GET$#in% 3250 IF LEFT$(line$,1)<>";" AND line$<>"" THEN 3260 Q%=INSTR(line$,":") 3270 label$=LEFT$(line$,Q%-1) 3280 Q%+=1 3290 WHILE MID$(line$,Q%,1)=" ":Q%+=1:ENDWHILE 3300 value$=MID$(line$,Q%) 3310 value = VAL(value$) 3320 CASE label$ OF 3330 WHEN "Delay" 3340 delay = value 3350 WHEN "Game over X" 3360 xcoord1 = value 3370 WHEN "Game over Y" 3380 ycoord1 = value 3390 WHEN "Play again X" 3400 xcoord2 = value 3410 WHEN "Play again Y" 3420 ycoord2 = value 3430 WHEN "Table X" 3440 hsx = value 3450 WHEN "Table Y" 3460 hsy = value 3470 WHEN "Keys" 3480 key$ = value$ 3490 WHEN "Table colour" 3500 slab_colour= value 3510 WHEN "Inset colour" 3520 inset = value 3530 WHEN "Show table" 3540 show$ = value$ 3550 WHEN "Save table" 3560 save$=value$ 3570 WHEN "Table size" 3580 maxhi = value 3590 IF maxhi > 16 THEN maxhi =16 3600 WHEN "Load screen" 3610 scrnload$ = value$ 3620 WHEN "Loading tune" 3630 play_tune$ = value$ 3640 WHEN "Stop tune" 3650 stop_tune$ = value$ 3660 WHEN "Screen delay" 3670 screen_delay = value 3680 WHEN "Data size" 3690 data_size = value*1024 3700 WHEN "Name length" 3710 maxlen = value 3720 IF maxlen > 16 maxlen = 16 3730 WHEN "Score length" 3740 maxdigits = value 3750 IF maxdigits > 10 maxdigits = 10 3760 WHEN "Reload sprites" 3770 reload$ = value$ 3780 ENDCASE 3790 ENDIF 3800ENDWHILE 3810CLOSE#in% 3820ENDIF 3830ENDPROC 3840 3850 3860DEF PROCload_sounds(dir$) 3870LOCAL item,voice 3880DIM infobuffer 512,pathname 256 3890item = 0:voice=16 3900$pathname=dir$+"." 3910 3920SYS "ExS_Name",31 TO SMvoice$ 3930SMvoice$=$pathname + SMvoice$ 3940 3950FOR I%=16 TO 31 3960 SYS "ExS_Remove",I% 3970NEXT 3980 3990SYS "OS_FSControl",28,dir$,,0 TO ,,,files 4000 4010IF files>0 THEN 4020 4030WHILE item <> -1 4040 J%=LEN dir$+1 4050 SYS "OS_GBPB",9,dir$,infobuffer,1,item,512,0 TO ,,,,item 4060 I%=0 4070 WHILE infobuffer?I% >0 4080 pathname?J% = infobuffer?I% 4090 I%+=1:J%+=1 4100 ENDWHILE 4110 pathname?J% = 13 4120 SYS "ExS_Install",voice,pathname 4130 voice+=1 4140ENDWHILE 4150 4160ENDIF 4170ENDPROC 4180 4190DEF FNget_max_spritelen(dir$) 4200LOCAL item,files,biggest,splen 4210DIM infobuffer 512,pathname 256 4220item = 0:biggest=0:$pathname=dir$+"." 4230 4240SYS "OS_FSControl",28,dir$,,0 TO ,,,files 4250 4260IF files>0 THEN 4270 4280WHILE item <> -1 4290 J%=LEN dir$+1 4300 4310 SYS "OS_GBPB",9,dir$,infobuffer,1,item,512,0 TO ,,,,item 4320 I%=0 4330 WHILE infobuffer?I% >0 4340 pathname?J% = infobuffer?I% 4350 I%+=1:J%+=1 4360 ENDWHILE 4370 pathname?J% = 13 4380 SYS "OS_File",5,pathname TO ,,ftype,,splen 4390 ftype = (ftype >> 8) AND &fff 4400 IF ftype = &ff9 AND splen > biggest THEN biggest = splen 4410ENDWHILE 4420ENDIF 4430=biggest 4440 4450 4460DEF PROCassemble(org,pass) 4470P%=org:O%=org 4480[OPT pass 4490.jump_table 4500 4510 4520._activate_object b dummy 4530._deactivate_object b dummy 4540._show_object b dummy 4550._hide_object b dummy 4560._swop_objects b dummy 4570._set_coords b dummy 4580._shift_object b dummy 4590._copy_coords b dummy 4600._reverse_vertical b dummy 4610._reverse_horizontal b dummy 4620._set_Xvelocity b dummy 4630._set_Yvelocity b dummy 4640._attach_to_path b dummy 4650._load_screen b dummy 4660._scroll_h b dummy 4670._scroll_v b dummy 4680._put_var b dummy 4690._add_var b dummy 4700._subtract_var b dummy 4710._make_sound b dummy 4720._wait b dummy 4730._sound_off b dummy 4740._sound_on b dummy 4750._copy_var b dummy 4760._multiply_var b dummy 4770._divide_var b dummy 4780._print_var b dummy 4790._display_var b dummy 4800._text_colour b dummy 4810._text_bgdcol b dummy 4820._initialise b dummy 4830._getdata b dummy 4840._display b dummy 4850 4860] 4870 4880FOR I%=1 TO 256 4890[OPT pass 4900b dummy 4910] 4920NEXT 4930[OPT pass 4940.dummy 4950mov pc,r14 4960] 4970ENDPROC 4980 4990DEF PROCread_tunes(name$,tune$(),RETURN I%) 5000LOCAL chn%,ptr,chr$ 5010I%=0 5020chn%=OPENIN(name$) 5030IF chn%<>0 THEN 5040 WHILE NOT EOF#chn% 5050 tune$(I%)="" 5060 IF EOF#chn% CLOSE#chn%:ENDPROC 5070 chr%=BGET#chn% 5080 WHILE chr%>31 5090 chr$=CHR$(chr%) 5100 tune$(I%)+=chr$ 5110 IF EOF#chn% I%+=1:CLOSE#chn%:ENDPROC 5120 chr%=BGET#chn% 5130 ENDWHILE 5140 I%+=1 5150 IF I%=max_tunes ERROR 1,"Too many tunes in 'Tunes' file" 5160 ENDWHILE 5170 CLOSE#chn% 5180ENDIF 5190ENDPROC 5200 5210DEF PROCend_of_game(delay,sprite$,X,Y) 5220LOCAL time,width,height,right,top 5230SYS "OS_SpriteOp",256+40,sprite_area2,sprite$ TO ,,,width,height 5240width = width << XEig 5250height = height << YEig 5260right = X + width 5270top = Y + height 5280SYS "OS_SpriteOp",256+16,sprite_area2,"temp",0,X,Y,right,top 5290SYS "OS_SpriteOp",256+34,sprite_area2,sprite$,X,Y,8 5300time=TIME 5310REPEAT UNTIL TIME>time+delay*100 5320SYS "OS_SpriteOp",256+34,sprite_area2,"temp",X,Y,8 5330ENDPROC 5340 5350DEF FNanother(sprite$,X,Y,key$) 5360LOCAL Answer,width,height,right,top 5370 5380SYS "OS_SpriteOp",256+40,sprite_area2,sprite$ TO ,,,width,height 5390width = width << XEig 5400height = height << YEig 5410right = X + width 5420top = Y + height 5430SYS "OS_SpriteOp",256+16,sprite_area2,"temp",0,X,Y,right,top 5440SYS "OS_SpriteOp",256+34,sprite_area2,sprite$,X,Y,8 5450 5460MOUSE ON 5470SYS "OS_Confirm" TO Answer 5480MOUSE OFF 5490IF Answer=ASC"y" THEN =TRUE ELSE =FALSE 5500 5510 5520DEF PROChighscore(score) 5530LOCAL I%,J%,T$,newhigh,name$,hsw,hsh 5540IF show$="NEVER" THEN ENDPROC 5550 5560J%=maxhi:newhigh=FALSE 5570WHILE score>score(J%) AND J%>0 5580 newhigh=TRUE 5590 J%-=1 5600ENDWHILE 5610IF NOT newhigh AND show$="NEWSCORE" THEN ENDPROC 5620 5630SYS "OS_SpriteOp",256+40,sprite_area2,hs_sprite$ TO ,,,hswidth,hsheight 5640hswidth = hswidth << XEig 5650hsheight = hsheight << YEig 5660hsw=maxlen*width+maxdigits*width+3*width+48+24 5670hsh=maxhi*2*height+24+hsheight 5680 5690PROCslab(hsx,hsy,hsw,hsh,16,hilite,slab_colour,lolite,line) 5700SYS "OS_SpriteOp",256+34,sprite_area2,hs_sprite$,hsx+(hsw-hswidth)/2,hsy+hsh-hsheight-16,8 5710 5720FOR I%=0 TO maxhi-1 5730 PROCslab(hsx+24,hsy+24+I%*2*height,width*3,height+16,4,lolite,inset,hilite,line) 5740 T$=STR$(maxhi-I%) 5750 PROCfancy_print(T$,hsx+24+(3-LENT$)*width/2,hsy+24+I%*2*height+8,1,1,1,1) 5760 PROCslab(hsx+24+width*3+12,hsy+24+I%*2*height,maxlen*width,height+16,4,lolite,inset,hilite,line) 5770 PROCfancy_print(name$(maxhi-I%),hsx+24+width*3+20,hsy+24+I%*2*height+8,1,1,1,1) 5780 PROCslab(hsx+24+width*3+20+maxlen*width,hsy+24+I%*2*height,maxdigits*width,height+16,4,lolite,inset,hilite,line) 5790 PROCfancy_print(STR$(score(maxhi-I%)),hsx+24+width*3+28+maxlen*width,hsy+24+I%*2*height+8,1,1,1,1) 5800NEXT 5810IF newhigh THEN 5820 J%+=1 5830 FOR I%=maxhi TO J%+1 STEP -1 5840 name$(I%)=name$(I%-1) 5850 score(I%)=score(I%-1) 5860 PROCfancy_print(name$(I%),hsx+24+width*3+20,hsy+24+(maxhi-I%)*2*height+8,1,1,1,1) 5870 PROCfancy_print(STR$(score(I%)),hsx+24+width*3+28+maxlen*width,hsy+24+(maxhi-I%)*2*height+8,1,1,1,1) 5880 NEXT 5890 PROCfancy_print(STRING$(maxlen-1," "),hsx+24+width*3+20,hsy+24+(maxhi-J%)*2*height+8,1,1,1,1) 5900 PROCfancy_print(STRING$(maxdigits-1," "),hsx+24+width*3+28+maxlen*width,hsy+24+(maxhi-J%)*2*height+8,1,1,1,1) 5910 PROCfancy_print(STR$(score),hsx+24+width*3+28+maxlen*width,hsy+24+(maxhi-J%)*2*height+8,1,1,1,1) 5920 name$=FNinput_name(hsx+24+width*3+20,hsy+24+(maxhi-J%)*2*height+8,FALSE) 5930 name$(J%)=LEFT$(name$+STRING$(maxlen," "),maxlen-1) 5940 score(J%)=score 5950 PROCfancy_print(name$(J%),hsx+24+width*3+20,hsy+24+(maxhi-J%)*2*height+8,1,1,1,1) 5960ENDIF 5970ENDPROC 5980 5990DEF FNinput_name(X,Y,hide) 6000LOCAL chr,I%,name$,dummy 6010*FX21,0 6020*FX4,1 6030PROCfancy_print("_",X,Y,1,1,1,1) 6040chr=GET 6050WHILE chr<>13 AND I%<(maxlen-1) 6060 IF chr<127 AND chr>31 THEN 6070 name$+=CHR$(chr):I%+=1 6080 IF hide THEN chr=42 6090 PROCfancy_print(CHR$(chr),X,Y,1,1,1,1) 6100 IF I%<(maxlen-1) PROCfancy_print("_",X+width,Y,1,1,1,1) 6110 X+=width 6120 ELSE 6130 IF chr=127 AND I%>0 THEN 6140 PROCfancy_print(" ",X,Y,1,1,1,1) 6150 I%-=1 6160 X-=width 6170 PROCfancy_print("_",X,Y,1,1,1,1) 6180 name$=LEFT$(name$,I%) 6190 ENDIF 6200 ENDIF 6210 chr=GET 6220ENDWHILE 6230*FX4,0 6240=name$ 6250 6260DEF PROCfancy_print(text$,X,Y,Xmult,Ymult,Xdiv,Ydiv) 6270LOCAL I%,ch$,initX 6280initX=X 6290DIM scale 16 6300scale!0=Xmult:scale!4=Ymult:scale!8=Xdiv:scale!12=Ydiv 6310FOR I%=1 TO LEN text$ 6320 ch$=STR$(ASC(MID$(text$,I%,1))) 6330 IF ch$="126" THEN ch$="32" 6340 IF ch$="124" THEN 6350 Y-=height*Ymult DIV Ydiv 6360 X=initX 6370 ELSE 6380 SYS "OS_SpriteOp",256+52,alphabet,ch$,X,Y,8,scale,0 6390 X+=width*Xmult DIV Xdiv 6400 ENDIF 6410NEXT 6420ENDPROC 6430 6440DEF PROCslab(x,y,l,h,w,c1,c2,c3,c4) 6450GCOLc1 6460RECTANGLE FILL x,y,l,h 6470GCOL c3 6480MOVE x+l-w,y+h-w:MOVE x+l,y+h 6490PLOT85,x+l,y+h-w 6500RECTANGLE FILL x+w,y,l-w,h-w 6510MOVE x,y:MOVE x+w,y:PLOT 85,x+w,y+w 6520GCOL c4 6530LINE x,y+h,x+w,y+h-w 6540LINE x+l,y,x+l-w,y+w 6550GCOL c2 TINT 64 6560RECTANGLE FILL x+w,y+w,l-2*w,h-2*w 6570ENDPROC 6580 6590DEF PROCsort_highscores(num) 6600LOCAL I%,swop 6610REPEAT 6620 swop=FALSE 6630 FOR I%=1 TO num-1 6640 IF score(I%) < score(I%+1) THEN 6650 swop=TRUE 6660 SWAP score(I%),score(I%+1) 6670 SWAP name$(I%),name$(I%+1) 6680 ENDIF 6690 NEXT 6700 num-=1 6710UNTIL NOT swop 6720ENDPROC 6730 6740DEF PROCsave_highscores(file$) 6750LOCAL out%,I%,header$,date$,year$ 6760 6770LOCAL ERROR:ON ERROR LOCAL IF ERR=&108C9 OR ERR=&108CA PROCfancy_print(" Couldn't save HighScore Table. | Please move write-protect tab |to 'write' position and hit RETURN",80,300,1,1,1,1):dummy=GET ELSE PRINTREPORT$;" (Error code: ";~ERR;")":dummy=GET:ENDPROC 6780 6790SYS "XOS_ReadVarVal","Sys$Date",OSbuffer,30 6800OSbuffer?10=13 6810date$=$OSbuffer 6820SYS "XOS_ReadVarVal","Sys$Year",OSbuffer,30 6830OSbuffer?4=13 6840year$=$OSbuffer 6850 6860out%=OPENOUT file$ 6870header$="; Creator high score table ("+date$+" "+year$+")" 6880BPUT#out%,header$ 6890FOR I%=1 TO maxhi 6900 BPUT#out%,name$(I%)+": "+STR$(score(I%)) 6910NEXT 6920CLOSE#out% 6930OSCLI("SetType "+file$+" Text") 6940ENDPROC 6950 6960DEF PROCarm3 6970LOCAL ERROR 6980ON ERROR LOCAL arm3=FALSE:ENDPROC 6990*Cache ON 7000IF INKEY(-1) THEN 7010arm3=FALSE 7020*Cache OFF 7030ELSE 7040arm3=TRUE 7050ENDIF 7060ENDPROC 7070 7080DEF FNstripCFS(name$) 7090LOCAL I% 7100I%=INSTR(name$,"#") 7110=MID$(name$,I%+1) 7120 7130DEF FNread_OSvar(var$) 7140LOCAL bytes 7150SYS "XOS_ReadVarVal",var$,OSbuffer,255,0 TO ,,bytes 7160OSbuffer?bytes=13 7170=$OSbuffer 7180 7190DEF PROCset_OSvar(var$,val$) 7200IF val$="" THEN val$=CHR$34+CHR$34 7210OSCLI("Set "+var$+" "+val$) 7220ENDPROC 7230 7240DEF PROCwait(seconds) 7250LOCAL time 7260time=TIME 7270REPEAT UNTIL TIME>time+seconds*100 7280ENDPROC 7290 7300DEF PROCcopy_screen 7310DIM block 32 7320!block = 148:block!8=-1 7330SYS "OS_ReadVduVariables",block,block+12 7340SYS "OS_ReadModeVariable",-1,7 TO ,,C% 7350A%=block!12+C%:B%=block!12 7360CALL copy 7370ENDPROC 7380 7390DEF PROCassemble_copy 7400DIM code 100 7410FOR pass = 0 TO 2 STEP 2 7420P%=code 7430[OPT pass 7440.copy 7450LDR R3,[R0],#4 7460STR R3,[R1],#4 7470SUBS R2,R2,#4 7480BNE copy 7490MOV PC,R14 7500] 7510NEXT 7520ENDPROC 7530 7540DEF PROCload_sprites(level) 7550LOCAL type,len 7560SYS "OS_File",5,"<RunGame$Dir>.Sprites" TO type,,,,len 7570IF type=0 ERROR 255,"No Sprites file" 7580IF len>splen ERROR 250,"Sprites file too long" 7590sprite_area!4=0:sprite_area!8=16:sprite_area!12=16 7600OSCLI("LOAD <RunGame$Dir>.Sprites "+STR$~(sprite_area+4)) 7610ENDPROC 7620 7630 7640DEF PROCremove_sounds 7650LOCAL I% 7660FOR I%=16 TO 31 7670 SYS "ExS_Remove",I% 7680NEXT 7690IF RIGHT$(SMvoice$,1)<>"." THEN SYS "ExS_Install",31,SMvoice$ 7700ENDPROC 7710 7720DEF PROCinstruct 7730RESTORE 7740OSCLI("Print <RunGame$Dir>.Font") 7750COLOUR 12 7760VDU 28,6,22,33,8,12,14 7770READ line$ 7780WHILE line$<>"END" 7790IF line$="/" THEN PRINT' ELSE dummy=FNslow_print(line$,0.06,TRUE) 7800 7810IF dummy THEN line$="END" ELSE READ line$ 7820ENDWHILE 7830OSCLI("Print <RunGame$Dir>.NormalFont") 7840PRINT'" Hit Space to continue":A=GET 7850ENDPROC 7860 7870REM **************************** 7880DATA " Instructions",/ 7890DATA (Hit Shift to continue or 7900DATA any other key to start game) 7910DATA / 7920DATA This Level of Cyborg has 7930DATA been specially written for 7940DATA the Acorn Computing MegaDisk 7950DATA and is not available 7960DATA elsewhere.,/ 7970DATA Due to space restrictions 7980DATA on the MegaDisk it is not 7990DATA as large as the levels in 8000DATA the full version which 8010DATA includes 4 other much larger 8020DATA arcade levels & 3 adventure 8030DATA stages compressed onto three 8040DATA discs. This demo does not 8050DATA contain any adventure stages 8060DATA / 8070REM **************************** 8080DATA The demo runs on all Acorn 8090DATA 32 bit machines including 8100DATA those with only 1 Megabyte.,/ 8110DATA The full version requires 2 8120DATA Megabytes or more. It is 8130DATA compatible with RISC OS 2 & 8140DATA 3 and includes a hard disc 8150DATA installation program.,/ 8160DATA ..... SPECIAL OFFER ......,/ 8170DATA "Cyborg has an RRP of �25.95." 8180DATA Readers of Acorn Computing 8190DATA "can save �5.00 by ordering" 8200DATA "a copy for only �20.95 plus" 8210DATA "�1.00 p&p direct from Alpine" 8220DATA "Software, quoting order" 8230DATA number AC93C. Please send a 8240DATA cheque or postal order for 8250DATA "�21.95 or phone/fax us with" 8260DATA your credit card details,/ 8270DATA " ALPINE SOFTWARE" 8280DATA " PO BOX 25" 8290DATA " PORTADOWN" 8300DATA " CRAIGAVON" 8310DATA " BT63 5UT",/ 8320DATA " Tel/Fax 0762 342510",/,/ 8330DATA Weapons -,/ 8340DATA Your standard weapon is a 8350DATA GC152L laser aimed by moving 8360DATA the sight with the mouse.,/ 8370DATA Move the sight as far as 8380DATA possible to the left or 8390DATA right to scroll the screen.,/ 8400DATA As you play you may be able 8410DATA to pick up other weapons.,/ 8420DATA To fire any weapon make sure 8430DATA it is selected (see later) 8440DATA and click SELECT.,/ 8450DATA To select a weapon click 8460DATA the MENU button until the 8470DATA right-hand indicator lights 8480DATA up beside the weapon's icon 8490DATA in the status panel at the 8500DATA top left of the screen.,/ 8510DATA A weapon is available if the 8520DATA left-hand light beside it is 8530DATA lit.,/ 8540 8550DATA If you look at the weapon 8560DATA status panel at the moment 8570DATA you should see that the only 8580DATA weapon available is the 8590DATA "laser which is, naturally," 8600DATA the selected weapon.,/ 8610 8620DATA To activate your tractor 8630DATA beam to pick up objects and 8640DATA operate switches etc. click 8650DATA the ADJUST button and the 8660DATA sight will change. Aim at 8670DATA the object and click SELECT.,/ 8680DATA Click ADJUST again to turn 8690DATA the tractor beam off.,/ 8700DATA The red bar at the top of 8710DATA the screen is your energy 8720DATA level. Your energy is used 8730DATA by firing your weapons and 8740DATA by being hit by enemy fire.,/ 8750DATA The energy level can be 8760DATA restored by picking up 8770DATA energy pods.,/ 8780 8790DATA The blue bar shows the 8800DATA amount of air remaining in 8810DATA your CyberSuit. If the air 8820DATA supply runs out you'll die.,/ 8830REM **************************** 8840DATA Some of the creatures you 8850DATA will encounter are classed 8860DATA as FGA's - Friendly Green 8870DATA Aliens! You should avoid 8880DATA shooting these as this will 8890DATA incur a penalty in the form 8900DATA of lost credits and worse!,/ 8910 8920DATA The aim of this demo level 8930DATA is to escape from the 8940DATA dungeon by collecting FOUR 8950DATA Xylenium crystals. As each 8960DATA one is collected a crystal 8970DATA indicator above the door at 8980DATA the far right side of the 8990DATA level will light up.,/ 9000DATA When all four are lit click 9010DATA the switch beside the door 9020DATA and it will open and allow 9030DATA you to escape...,/ 9040DATA .... GOOD LUCK .... 9050REM **************************** 9060DATA END 9070 9080DEF FNslow_print(text$,delay,interrupt) 9090LOCAL I%,ch$ 9100FOR I%=1 TO LENtext$ 9110ch$=MID$(text$,I%,1) 9120IF ch$="\" THEN PRINT:ch$=CHR$10 9130PRINTch$; 9140IF interrupt AND INKEY(-99) THEN PRINT:=TRUE ELSE PROCwait(delay) 9150NEXT 9160PRINT 9170=FALSE
� >!RunImage =� ******************************************************* (=� * � 1993 Philip Hawthorne/Alpine Software * 2=� * Adapted for use with Cyborg * <=� * Acorn Computing Demo Version * F=� ******************************************************* P Zl� � �12:�("SHUT"):� �<>17 �"An error has occurred: ";:�:�" (Error code: ";�;"/";�;")":�:A=�:� A=32:� � � dtesting = � nlevel=0 x�assemble_copy ��find_mode ��check_config � �� object_space data_size � �� ptrdata 512 �!ptrdata=512:ptrdata!8=16 �"ș "OS_SpriteOp",9+256,ptrdata �<ș "OS_SpriteOp",10+256,ptrdata,"<RunGame$Dir>.Pointers" �@� SYS "OS_SpriteOp",36+256,ptrdata,"sight",%0000001,3,13,0,0 �<ș "OS_SpriteOp",36+256,ptrdata,"sight",%0000001,7,7,0,0 �E� SYS "OS_SpriteOp",36+256,ptrdata,"tracksight",%0100010,3,13,0,0 �Aș "OS_SpriteOp",36+256,ptrdata,"tracksight",%0100010,7,7,0,0 *ș "OS_Byte",106,1:� Select pointer #1 �init "� filename 255 ,:� starsX num_stars*4,starsY num_stars,starsV num_stars 6 @� I%=0 � num_stars-1 J N%=4*I% T starsX!N% = �(319) ^� h� I%=0 � num_stars-1 r starsY?I% = �(254) | starsV?I% = �(4) �� � �?ș "OS_File",5,"<RunGame$Dir>.Alphabet" � ftype,,,,alphalen �&� ftype=0 � 252,"No Alphabet file" � �Falphalen+=16:� alphabet alphalen,alpha_info 32,character_ptrs 95*4 � �@!alphabet=alphalen:alphabet!4=0:alphabet!8=16:alphabet!12=16 �=ș "OS_SpriteOp",256+10,alphabet,"<RunGame$Dir>.Alphabet" � �Eș "OS_SpriteOp",256+40,alphabet,"32" � ,,,width,height,,charmode �0ș "OS_ReadModeVariable",charmode,4 � ,,XEig �0ș "OS_ReadModeVariable",charmode,5 � ,,YEig width = width << XEig height = height << YEig I%=0 &� C%=32 � 126 0 C$=�C% :5 ș "OS_SpriteOp",24+256,alphabet,C$ � ,,address D I%!character_ptrs=address N I%+=4 X� b!alpha_info=alphabet lalpha_info!4=character_ptrs valpha_info!8=width �alpha_info!12=height �� stars_info 32 �!stars_info = starsX �stars_info!4=starsY �stars_info!8=starsV �stars_info!12=120 � �A� tune_names 24*max_tunes,name_ptrs max_tunes*4,tunes_info 32 � �8�read_tunes("<RunGame$Dir>.Tunes",tune$(),num_tunes) �ptr=0:dir$="<Sounds$Dir>." � �� I%=0 � num_tunes-1 + $(tune_names+ptr)=dir$+tune$(I%)+�(0) & !(name_ptrs+4*I%)=tune_names+ptr ! ptr+=�(tune$(I%))+1+�(dir$) � * 4H!tunes_info=num_tunes:tunes_info!4=tune_names:tunes_info!8=name_ptrs > H�("FX 113") R� \� f"p$="Do you want instructions?" p3�fancy_print(p$,(1280-width*�p$)/2,500,1,2,1,1) z �ș "OS_Confirm" � answer �� answer=�"y" � �instruct �� answer<>�"y" � �A%=work% �B%=sprite_area �C%=object_space �D%=stars_info �E%=alpha_info �F%=tunes_info � �� _initialise � H%=work% highscore=score(1) $'energy = 500:score=0:chargedelay=12 . 8last_choice=1 B�("FX 113") L� Vlevel=0 `p$="Loading Demo Level" j3�fancy_print(p$,(1280-width*�p$)/2,500,1,2,1,1) t ~�load_sprites(level) � �-ș "ExS_MusicFade",48:�wait(4):*MusicStop � �� �($filename = "<RunGame$Dir>.GameData" �A%=filename �� _getdata � �+var_table=H%!40:var_table!8 = highscore � �Ȏ level � �� 1: var_table!180=energy var_table!4=score � 3,5,7: var_table!68=energy (var_table!4=score 2var_table!88=chargedelay <� F PA%=sprite_area ZH%=work% d n�copy_screen x �� 24,160;268;1116;766; �ȗ ȓ 100,292,1080,440 �ȗ � � ��=0 ��arm3:G%=arm3 �� � arm3 � H%!&128 = 3 � �p$="Get Ready!" �5�:�fancy_print(p$,(1280-width*�p$)/2,500,1,2,1,1) �A=�(300) � �frames=� _display time=�/100 "ș "ExS_MusicStart" , 6oldhigh = highscore @highscore = var_table!8 Jscore = var_table!4 T ^*� �(-6) � frames/time;" frames/second" h r mode=� |,ș "OS_ReadModeVariable",mode,4 � ,,XEig �,ș "OS_ReadModeVariable",mode,5 � ,,YEig �!go_sprite$="gameover"+�(mode) �"pa_sprite$="playagain"+�(mode) �"hs_sprite$="highscore"+�(mode) �� � �Ȏ level � �� 0: �energy = var_table!60 �completed = var_table!92 �� � �9� testing �"Energy: ";energy;" completed: ";completed 4p$="":� energy <= 0 � p$="You're out of energy!" :� completed = 0 � energy > 0 � p$="You're out of air!" 5� completed = -1 � p$="Poison Gas - You're dead!" &<� p$<>"" �fancy_print(p$,(1280-width*�p$)/2,300,1,2,1,1) 0 :� completed<>1 � D4 �end_of_game(delay,go_sprite$,xcoord1,ycoord1) N �highscore(score) X b3 � �another(pa_sprite$,xcoord2,ycoord2,key$) � l energy=500 v score=0 � � �load_sprites(level) � another=� � � � another=� � � �� � another = � � �highscore(score) � � � p$="Well done!" �5 �fancy_print(p$,(1280-width*�p$)/2,500,1,2,1,1) �$ p$="You've completed the demo" 5 �fancy_print(p$,(1280-width*�p$)/2,400,1,2,1,1) � � another � ș "ExS_MusicFade",48 * �wait(4) 4� >*MusicStop H� � another R \A� save$="YES" � �save_highscores("<SaveGame$Dir>.HighScores") f p�remove_sounds z �� � � �� �init �%ș "OS_Byte",161,191 � ,,OldMouse �num_stars = 255 �%max_tunes = 16:� tune$(max_tunes) � �/splen = �get_max_spritelen("<RunGame$Dir>") � �"splen+= 16:� sprite_area splen � �I!sprite_area=splen:sprite_area!4=0:sprite_area!8=16:sprite_area!12=16 =ș "OS_File",5,"<RunGame$Dir>.Sprites2" � ftype,,,,splen2 (� ftype=0 � 254,"No 'Sprites2' file" $ .%splen2+= 16:� sprite_area2 splen2 8 BN!sprite_area2=splen2:sprite_area2!4=0:sprite_area2!8=16:sprite_area2!12=16 LAș "OS_SpriteOp",256+10,sprite_area2,"<RunGame$Dir>.Sprites2" V `(�load_sounds("<RunGame$Dir>.Sounds") j t� name$(maxhi),score(maxhi) ~"name$()="Creator":score()=1000 � �$in%=� "<RunGame$Dir>.HighScores" �� in%<>0 � �I%=1 �ȕ � �#in% � I%<=maxhi � line$=�#in% �$ � �line$,1)<>";" � line$<>"" � �? � I%>maxhi � � 253,"Too many names in 'HighScore' file" � Q%=�line$,":") � name$(I%)=�line$,Q%-1) �3 name$(I%)=�name$(I%)+�maxlen," "),maxlen-1) � Q%+=1 # ȕ �line$,Q%,1)=" ":Q%+=1:� value$=�line$,Q%) score(I%) = �(value$) I%+=1 ( � 2� < �#in% F� P�sort_highscores(maxhi) Z d<ș "OS_File",5,"<RunGame$Dir>.FCode" � ftype,,,,codesize n� code codesize x �� pass = 0 � 2 � 2 ��assemble(code,pass) �� � �)�("LOAD <RunGame$Dir>.FCode "+�~code) �� � �� work% 2000 �� OSbuffer 256 � �D�set_OSvar("SaveGame$Dir",�stripCFS(�read_OSvar("RunGame$Dir"))) � �� � � �find_mode � dummy$,I% "&in% = � ("<RunGame$Dir>.GameData") ,,� in%=0 � 252,"GameData file is missing" 6� I%=1 � 7:dummy$=�#in%:� @mode=�(�#in%) J �#in% T� ^ h� �check_config r in%=� "<RunGame$Dir>.Config" | delay = 3 �screen_delay = 5 �xcoord1 = 540 �ycoord1 = 500 �xcoord2 = 520 �ycoord2 = 500 �show$="ALWAYS" �save$ = "YES" �key$= "YyNn" �play_tune$ = "" �stop_tune$ = "" �reload$ = "YES" � maxhi = 5 � maxlen=16 maxdigits=10 scrnload$="FAST" data_size = 64*1024 & Ȏ mode � 0 � 13: :hsx = 130 Dhsy = 400 Nslab_colour = 42 Xhilite = 63 blolite = 21 l inset = 0 vline = 0 �� � �� in%<>0 � �ȕ � �#in% � line$=�#in% �$ � �line$,1)<>";" � line$<>"" � � Q%=�line$,":") � label$=�line$,Q%-1) � Q%+=1 �# ȕ �line$,Q%,1)=" ":Q%+=1:� � value$=�line$,Q%) � value = �(value$) � Ȏ label$ � � "Delay" delay = value � "Game over X" xcoord1 = value * � "Game over Y" 4 ycoord1 = value > � "Play again X" H xcoord2 = value R � "Play again Y" \ ycoord2 = value f � "Table X" p hsx = value z � "Table Y" � hsy = value � � "Keys" � key$ = value$ � � "Table colour" � slab_colour= value � � "Inset colour" � inset = value � � "Show table" � show$ = value$ � � "Save table" � save$=value$ � � "Table size" � maxhi = value & � maxhi > 16 � maxhi =16 � "Load screen" scrnload$ = value$ $ � "Loading tune" .! play_tune$ = value$ 8 � "Stop tune" B! stop_tune$ = value$ L � "Screen delay" V" screen_delay = value ` � "Data size" j$ data_size = value*1024 t � "Name length" ~ maxlen = value �' � maxlen > 16 maxlen = 16 � � "Score length" � maxdigits = value �- � maxdigits > 10 maxdigits = 10 � � "Reload sprites" � reload$ = value$ � � � � �� � �#in% �� �� � �load_sounds(dir$) � item,voice (!� infobuffer 512,pathname 256 2item = 0:voice=16 <$pathname=dir$+"." F Pș "ExS_Name",31 � SMvoice$ Z!SMvoice$=$pathname + SMvoice$ d n� I%=16 � 31 x ș "ExS_Remove",I% �� � �+ș "OS_FSControl",28,dir$,,0 � ,,,files � �� files>0 � � �ȕ item <> -1 � J%=� dir$+1 �< ș "OS_GBPB",9,dir$,infobuffer,1,item,512,0 � ,,,,item � I%=0 � ȕ infobuffer?I% >0 �# pathname?J% = infobuffer?I% � I%+=1:J%+=1 � pathname?J% = 13 % ș "ExS_Install",voice,pathname " voice+=1 ,� 6 @� J� T ^� �get_max_spritelen(dir$) h� item,files,biggest,splen r!� infobuffer 512,pathname 256 |)item = 0:biggest=0:$pathname=dir$+"." � �+ș "OS_FSControl",28,dir$,,0 � ,,,files � �� files>0 � � �ȕ item <> -1 � J%=� dir$+1 � �< ș "OS_GBPB",9,dir$,infobuffer,1,item,512,0 � ,,,,item � I%=0 � ȕ infobuffer?I% >0 �# pathname?J% = infobuffer?I% � I%+=1:J%+=1 � pathname?J% = 13 . ș "OS_File",5,pathname � ,,ftype,,splen &! ftype = (ftype >> 8) � &fff 08 � ftype = &ff9 � splen > biggest � biggest = splen :� D� N=biggest X b l� �assemble(org,pass) vP%=org:O%=org � [OPT pass �.jump_table � � � ._activate_object b dummy � ._deactivate_object b dummy � ._show_object b dummy � ._hide_object b dummy � ._swop_objects b dummy � ._set_coords b dummy � ._shift_object b dummy � ._copy_coords b dummy � ._reverse_vertical b dummy ._reverse_horizontal b dummy ._set_Xvelocity b dummy ._set_Yvelocity b dummy ._attach_to_path b dummy * ._load_screen b dummy 4 ._scroll_h b dummy > ._scroll_v b dummy H ._put_var b dummy R ._add_var b dummy \ ._subtract_var b dummy f ._make_sound b dummy p ._wait b dummy z ._sound_off b dummy � ._sound_on b dummy � ._copy_var b dummy � ._multiply_var b dummy � ._divide_var b dummy � ._print_var b dummy � ._display_var b dummy � ._text_colour b dummy � ._text_bgdcol b dummy � ._initialise b dummy � ._getdata b dummy � ._display b dummy � �] � I%=1 � 256 [OPT pass $b dummy .] 8� B [OPT pass L .dummy Vmov pc,r14 `] j� t ~%� �read_tunes(name$,tune$(),� I%) �� chn%,ptr,chr$ �I%=0 �chn%=�(name$) �� chn%<>0 � � ȕ � �#chn% � tune$(I%)="" � � �#chn% �#chn%:� � chr%=�#chn% � ȕ chr%>31 � chr$=�(chr%) � tune$(I%)+=chr$ �! � �#chn% I%+=1:�#chn%:� chr%=�#chn% � I%+=1 ; � I%=max_tunes � 1,"Too many tunes in 'Tunes' file" ( � 2 �#chn% <� F� P Z%� �end_of_game(delay,sprite$,X,Y) d!� time,width,height,right,top nBș "OS_SpriteOp",256+40,sprite_area2,sprite$ � ,,,width,height xwidth = width << XEig �height = height << YEig �right = X + width �top = Y + height �?ș "OS_SpriteOp",256+16,sprite_area2,"temp",0,X,Y,right,top �6ș "OS_SpriteOp",256+34,sprite_area2,sprite$,X,Y,8 � time=� �� � �>time+delay*100 �5ș "OS_SpriteOp",256+34,sprite_area2,"temp",X,Y,8 �� � � � �another(sprite$,X,Y,key$) �#� Answer,width,height,right,top � Bș "OS_SpriteOp",256+40,sprite_area2,sprite$ � ,,,width,height width = width << XEig height = height << YEig "right = X + width ,top = Y + height 6?ș "OS_SpriteOp",256+16,sprite_area2,"temp",0,X,Y,right,top @6ș "OS_SpriteOp",256+34,sprite_area2,sprite$,X,Y,8 J Tȗ � ^ș "OS_Confirm" � Answer hȗ � r� Answer=�"y" � =� � =� | � �� �highscore(score) �$� I%,J%,T$,newhigh,name$,hsw,hsh �� show$="NEVER" � � � �J%=maxhi:newhigh=� �ȕ score>score(J%) � J%>0 � newhigh=� � J%-=1 �� �&� � newhigh � show$="NEWSCORE" � � � �Iș "OS_SpriteOp",256+40,sprite_area2,hs_sprite$ � ,,,hswidth,hsheight hswidth = hswidth << XEig hsheight = hsheight << YEig 2hsw=maxlen*width+maxdigits*width+3*width+48+24 &"hsh=maxhi*2*height+24+hsheight 0 :<�slab(hsx,hsy,hsw,hsh,16,hilite,slab_colour,lolite,line) D]ș "OS_SpriteOp",256+34,sprite_area2,hs_sprite$,hsx+(hsw-hswidth)/2,hsy+hsh-hsheight-16,8 N X� I%=0 � maxhi-1 bS �slab(hsx+24,hsy+24+I%*2*height,width*3,height+16,4,lolite,inset,hilite,line) l T$=�(maxhi-I%) vJ �fancy_print(T$,hsx+24+(3-�T$)*width/2,hsy+24+I%*2*height+8,1,1,1,1) �c �slab(hsx+24+width*3+12,hsy+24+I%*2*height,maxlen*width,height+16,4,lolite,inset,hilite,line) �R �fancy_print(name$(maxhi-I%),hsx+24+width*3+20,hsy+24+I%*2*height+8,1,1,1,1) �s �slab(hsx+24+width*3+20+maxlen*width,hsy+24+I%*2*height,maxdigits*width,height+16,4,lolite,inset,hilite,line) �b �fancy_print(�(score(maxhi-I%)),hsx+24+width*3+28+maxlen*width,hsy+24+I%*2*height+8,1,1,1,1) �� �� newhigh � � J%+=1 � � I%=maxhi � J%+1 � -1 � name$(I%)=name$(I%-1) � score(I%)=score(I%-1) �V �fancy_print(name$(I%),hsx+24+width*3+20,hsy+24+(maxhi-I%)*2*height+8,1,1,1,1) �f �fancy_print(�(score(I%)),hsx+24+width*3+28+maxlen*width,hsy+24+(maxhi-I%)*2*height+8,1,1,1,1) � � Y �fancy_print(�maxlen-1," "),hsx+24+width*3+20,hsy+24+(maxhi-J%)*2*height+8,1,1,1,1) i �fancy_print(�maxdigits-1," "),hsx+24+width*3+28+maxlen*width,hsy+24+(maxhi-J%)*2*height+8,1,1,1,1) ` �fancy_print(�(score),hsx+24+width*3+28+maxlen*width,hsy+24+(maxhi-J%)*2*height+8,1,1,1,1) I name$=�input_name(hsx+24+width*3+20,hsy+24+(maxhi-J%)*2*height+8,�) *- name$(J%)=�name$+�maxlen," "),maxlen-1) 4 score(J%)=score >T �fancy_print(name$(J%),hsx+24+width*3+20,hsy+24+(maxhi-J%)*2*height+8,1,1,1,1) H� R� \ f� �input_name(X,Y,hide) p� chr,I%,name$,dummy z*FX21,0 � *FX4,1 �!�fancy_print("_",X,Y,1,1,1,1) � chr=� �ȕ chr<>13 � I%<(maxlen-1) � � chr<127 � chr>31 � � name$+=�(chr):I%+=1 � � hide � chr=42 �& �fancy_print(�(chr),X,Y,1,1,1,1) �9 � I%<(maxlen-1) �fancy_print("_",X+width,Y,1,1,1,1) � X+=width � � � � chr=127 � I%>0 � �% �fancy_print(" ",X,Y,1,1,1,1) I%-=1 X-=width % �fancy_print("_",X,Y,1,1,1,1) $ name$=�name$,I%) . � 8 � B chr=� L� V *FX4,0 ` =name$ j t3� �fancy_print(text$,X,Y,Xmult,Ymult,Xdiv,Ydiv) ~� I%,ch$,initX �initX=X �� scale 16 �:scale!0=Xmult:scale!4=Ymult:scale!8=Xdiv:scale!12=Ydiv �� I%=1 � � text$ � ch$=�(�(�text$,I%,1))) � � ch$="126" � ch$="32" � � ch$="124" � � Y-=height*Ymult � Ydiv � X=initX � � �: ș "OS_SpriteOp",256+52,alphabet,ch$,X,Y,8,scale,0 � X+=width*Xmult � Xdiv � � � ("� �slab(x,y,l,h,w,c1,c2,c3,c4) 2�c1 <ȓ Ȑ x,y,l,h F� c3 P� x+l-w,y+h-w:� x+l,y+h Z�85,x+l,y+h-w dȓ Ȑ x+w,y,l-w,h-w n� x,y:� x+w,y:� 85,x+w,y+w x� c4 �� x,y+h,x+w,y+h-w �� x+l,y,x+l-w,y+w �� c2 Ȝ 64 �ȓ Ȑ x+w,y+w,l-2*w,h-2*w �� � �� �sort_highscores(num) � � I%,swop �� � swop=� � � I%=1 � num-1 �# � score(I%) < score(I%+1) � � swop=� " Ȕ score(I%),score(I%+1) " Ȕ name$(I%),name$(I%+1) � " � , num-=1 6� � swop @� J T� �save_highscores(file$) ^!� out%,I%,header$,date$,year$ h r�� �:� � � � �=&108C9 � �=&108CA �fancy_print(" Couldn't save HighScore Table. | Please move write-protect tab |to 'write' position and hit RETURN",80,300,1,1,1,1):dummy=� � �$;" (Error code: ";~�;")":dummy=�:� | �.ș "XOS_ReadVarVal","Sys$Date",OSbuffer,30 �OSbuffer?10=13 �date$=$OSbuffer �.ș "XOS_ReadVarVal","Sys$Year",OSbuffer,30 �OSbuffer?4=13 �year$=$OSbuffer � �out%=� file$ �>header$="; Creator high score table ("+date$+" "+year$+")" ��#out%,header$ �� I%=1 � maxhi �( �#out%,name$(I%)+": "+�(score(I%)) �� �#out% �("SetType "+file$+" Text") � & 0� �arm3 :� � D� � � arm3=�:� N *Cache ON X � �(-1) � b arm3=� l*Cache OFF v� � arm3=� �� �� � �� �stripCFS(name$) �� I% �I%=�name$,"#") �=�name$,I%+1) � �� �read_OSvar(var$) �� bytes �5ș "XOS_ReadVarVal",var$,OSbuffer,255,0 � ,,bytes �OSbuffer?bytes=13 =$OSbuffer � �set_OSvar(var$,val$) � val$="" � val$=�34+�34 *�("Set "+var$+" "+val$) 4� > H� �wait(seconds) R � time \ time=� f� � �>time+seconds*100 p� z �� �copy_screen �� block 32 �!block = 148:block!8=-1 �+ș "OS_ReadVduVariables",block,block+12 �(ș "OS_ReadModeVariable",-1,7 � ,,C% �A%=block!12+C%:B%=block!12 � � copy �� � �� �assemble_copy �� code 100 �� pass = 0 � 2 � 2 �P%=code [OPT pass .copy LDR R3,[R0],#4 $STR R3,[R1],#4 .SUBS R2,R2,#4 8BNE copy BMOV PC,R14 L] V� `� j t� �load_sprites(level) ~� type,len �8ș "OS_File",5,"<RunGame$Dir>.Sprites" � type,,,,len �$� type=0 � 255,"No Sprites file" �-� len>splen � 250,"Sprites file too long" �6sprite_area!4=0:sprite_area!8=16:sprite_area!12=16 �6�("LOAD <RunGame$Dir>.Sprites "+�~(sprite_area+4)) �� � � �� �remove_sounds �� I% �� I%=16 � 31 � ș "ExS_Remove",I% � 6� �SMvoice$,1)<>"." � ș "ExS_Install",31,SMvoice$ � (� �instruct 2� <!�("Print <RunGame$Dir>.Font") F� 12 P� 28,6,22,33,8,12,14 Z� line$ dȕ line$<>"END" n6� line$="/" � �' � dummy=�slow_print(line$,0.06,�) x �#� dummy � line$="END" � � line$ �� �'�("Print <RunGame$Dir>.NormalFont") �$�'" Hit Space to continue":A=� �� � �#� **************************** �� " Instructions",/ �� (Hit Shift to continue or �"� any other key to start game) �� / �� This Level of Cyborg has � � been specially written for "� the Acorn Computing MegaDisk � and is not available � elsewhere.,/ "� Due to space restrictions ,� on the MegaDisk it is not 6� as large as the levels in @� the full version which J"� includes 4 other much larger T!� arcade levels & 3 adventure ^"� stages compressed onto three h� discs. This demo does not r"� contain any adventure stages |� / �#� **************************** � � The demo runs on all Acorn �� 32 bit machines including �#� those with only 1 Megabyte.,/ �!� The full version requires 2 �� Megabytes or more. It is �!� compatible with RISC OS 2 & � � 3 and includes a hard disc �� installation program.,/ �"� ..... SPECIAL OFFER ......,/ �$� "Cyborg has an RRP of �25.95." � � Readers of Acorn Computing �"� "can save �5.00 by ordering" #� "a copy for only �20.95 plus" $� "�1.00 p&p direct from Alpine" � "Software, quoting order" &!� number AC93C. Please send a 0 � cheque or postal order for :#� "�21.95 or phone/fax us with" D � your credit card details,/ N� " ALPINE SOFTWARE" X� " PO BOX 25" b� " PORTADOWN" l� " CRAIGAVON" v� " BT63 5UT",/ � � " Tel/Fax 0762 342510",/,/ �� Weapons -,/ �� Your standard weapon is a �"� GC152L laser aimed by moving �!� the sight with the mouse.,/ �� Move the sight as far as �� possible to the left or �#� right to scroll the screen.,/ �!� As you play you may be able �!� to pick up other weapons.,/ �"� To fire any weapon make sure � � it is selected (see later) �� and click SELECT.,/ !� To select a weapon click !� the MENU button until the !!� right-hand indicator lights ! !� up beside the weapon's icon !* � in the status panel at the !4� top left of the screen.,/ !>"� A weapon is available if the !H"� left-hand light beside it is !R� lit.,/ !\ !f� If you look at the weapon !p � status panel at the moment !z"� you should see that the only !�� weapon available is the !�"� "laser which is, naturally," !�� the selected weapon.,/ !� !�� To activate your tractor !�!� beam to pick up objects and !�!� operate switches etc. click !�� the ADJUST button and the !�� sight will change. Aim at !�$� the object and click SELECT.,/ !� � Click ADJUST again to turn !�� the tractor beam off.,/ !�� The red bar at the top of "� the screen is your energy " � level. Your energy is used " � by firing your weapons and "$#� by being hit by enemy fire.,/ ".� The energy level can be "8� restored by picking up "B� energy pods.,/ "L "V� The blue bar shows the "` � amount of air remaining in "j � your CyberSuit. If the air "t#� supply runs out you'll die.,/ "~#� **************************** "�� Some of the creatures you "� � will encounter are classed "�� as FGA's - Friendly Green "�� Aliens! You should avoid "�!� shooting these as this will "�!� incur a penalty in the form "�"� of lost credits and worse!,/ "� "� � The aim of this demo level "�� is to escape from the "� � dungeon by collecting FOUR "� � Xylenium crystals. As each # � one is collected a crystal # !� indicator above the door at #� the far right side of the #� level will light up.,/ #(!� When all four are lit click #2 � the switch beside the door #< � and it will open and allow #F� you to escape...,/ #P� .... GOOD LUCK .... #Z#� **************************** #d � END #n #x(� �slow_print(text$,delay,interrupt) #�� I%,ch$ #�� I%=1 � �text$ #�ch$=�text$,I%,1) #�� ch$="\" � �:ch$=�10 #� �ch$; #�.� interrupt � �(-99) � �:=� � �wait(delay) #�� #�� #�=� �
00000000 0d 00 0a 10 f4 20 3e 21 52 75 6e 49 6d 61 67 65 |..... >!RunImage| 00000010 0d 00 14 04 0d 00 1e 3d f4 20 2a 2a 2a 2a 2a 2a |.......=. ******| 00000020 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00000050 2a 0d 00 28 3d f4 20 2a 20 20 20 a9 20 31 39 39 |*..(=. * . 199| 00000060 33 20 50 68 69 6c 69 70 20 48 61 77 74 68 6f 72 |3 Philip Hawthor| 00000070 6e 65 2f 41 6c 70 69 6e 65 20 53 6f 66 74 77 61 |ne/Alpine Softwa| 00000080 72 65 20 20 20 20 20 20 20 20 20 20 20 2a 0d 00 |re *..| 00000090 32 3d f4 20 2a 20 20 20 20 20 20 20 20 20 20 41 |2=. * A| 000000a0 64 61 70 74 65 64 20 66 6f 72 20 75 73 65 20 77 |dapted for use w| 000000b0 69 74 68 20 43 79 62 6f 72 67 20 20 20 20 20 20 |ith Cyborg | 000000c0 20 20 20 20 20 20 20 20 20 20 2a 0d 00 3c 3d f4 | *..<=.| 000000d0 20 2a 20 20 20 20 20 20 20 20 20 20 41 63 6f 72 | * Acor| 000000e0 6e 20 43 6f 6d 70 75 74 69 6e 67 20 44 65 6d 6f |n Computing Demo| 000000f0 20 56 65 72 73 69 6f 6e 20 20 20 20 20 20 20 20 | Version | 00000100 20 20 20 20 20 20 20 2a 0d 00 46 3d f4 20 2a 2a | *..F=. **| 00000110 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00000140 2a 2a 2a 2a 2a 0d 00 50 04 0d 00 5a 6c ee 20 85 |*****..P...Zl. .| 00000150 20 eb 31 32 3a ff 28 22 53 48 55 54 22 29 3a e7 | .12:.("SHUT"):.| 00000160 20 9f 3c 3e 31 37 20 f1 22 41 6e 20 65 72 72 6f | .<>17 ."An erro| 00000170 72 20 68 61 73 20 6f 63 63 75 72 72 65 64 3a 20 |r has occurred: | 00000180 22 3b 3a f6 3a f1 22 20 28 45 72 72 6f 72 20 63 |";:.:." (Error c| 00000190 6f 64 65 3a 20 22 3b 9f 3b 22 2f 22 3b 9e 3b 22 |ode: ";.;"/";.;"| 000001a0 29 22 3a f5 3a 41 3d a5 3a fd 20 41 3d 33 32 3a |)":.:A=.:. A=32:| 000001b0 e0 20 8b 20 e0 0d 00 64 0f 74 65 73 74 69 6e 67 |. . ...d.testing| 000001c0 20 3d 20 a3 0d 00 6e 0b 6c 65 76 65 6c 3d 30 0d | = ...n.level=0.| 000001d0 00 78 12 f2 61 73 73 65 6d 62 6c 65 5f 63 6f 70 |.x..assemble_cop| 000001e0 79 0d 00 82 0e f2 66 69 6e 64 5f 6d 6f 64 65 0d |y.....find_mode.| 000001f0 00 8c 11 f2 63 68 65 63 6b 5f 63 6f 6e 66 69 67 |....check_config| 00000200 0d 00 96 04 0d 00 a0 1c de 20 6f 62 6a 65 63 74 |......... object| 00000210 5f 73 70 61 63 65 20 64 61 74 61 5f 73 69 7a 65 |_space data_size| 00000220 0d 00 aa 04 0d 00 b4 11 de 20 70 74 72 64 61 74 |......... ptrdat| 00000230 61 20 35 31 32 0d 00 be 1d 21 70 74 72 64 61 74 |a 512....!ptrdat| 00000240 61 3d 35 31 32 3a 70 74 72 64 61 74 61 21 38 3d |a=512:ptrdata!8=| 00000250 31 36 0d 00 c8 22 c8 99 20 22 4f 53 5f 53 70 72 |16...".. "OS_Spr| 00000260 69 74 65 4f 70 22 2c 39 2b 32 35 36 2c 70 74 72 |iteOp",9+256,ptr| 00000270 64 61 74 61 0d 00 d2 3c c8 99 20 22 4f 53 5f 53 |data...<.. "OS_S| 00000280 70 72 69 74 65 4f 70 22 2c 31 30 2b 32 35 36 2c |priteOp",10+256,| 00000290 70 74 72 64 61 74 61 2c 22 3c 52 75 6e 47 61 6d |ptrdata,"<RunGam| 000002a0 65 24 44 69 72 3e 2e 50 6f 69 6e 74 65 72 73 22 |e$Dir>.Pointers"| 000002b0 0d 00 dc 40 f4 20 53 59 53 20 22 4f 53 5f 53 70 |...@. SYS "OS_Sp| 000002c0 72 69 74 65 4f 70 22 2c 33 36 2b 32 35 36 2c 70 |riteOp",36+256,p| 000002d0 74 72 64 61 74 61 2c 22 73 69 67 68 74 22 2c 25 |trdata,"sight",%| 000002e0 30 30 30 30 30 30 31 2c 33 2c 31 33 2c 30 2c 30 |0000001,3,13,0,0| 000002f0 0d 00 e6 3c c8 99 20 22 4f 53 5f 53 70 72 69 74 |...<.. "OS_Sprit| 00000300 65 4f 70 22 2c 33 36 2b 32 35 36 2c 70 74 72 64 |eOp",36+256,ptrd| 00000310 61 74 61 2c 22 73 69 67 68 74 22 2c 25 30 30 30 |ata,"sight",%000| 00000320 30 30 30 31 2c 37 2c 37 2c 30 2c 30 0d 00 f0 45 |0001,7,7,0,0...E| 00000330 f4 20 53 59 53 20 22 4f 53 5f 53 70 72 69 74 65 |. SYS "OS_Sprite| 00000340 4f 70 22 2c 33 36 2b 32 35 36 2c 70 74 72 64 61 |Op",36+256,ptrda| 00000350 74 61 2c 22 74 72 61 63 6b 73 69 67 68 74 22 2c |ta,"tracksight",| 00000360 25 30 31 30 30 30 31 30 2c 33 2c 31 33 2c 30 2c |%0100010,3,13,0,| 00000370 30 0d 00 fa 41 c8 99 20 22 4f 53 5f 53 70 72 69 |0...A.. "OS_Spri| 00000380 74 65 4f 70 22 2c 33 36 2b 32 35 36 2c 70 74 72 |teOp",36+256,ptr| 00000390 64 61 74 61 2c 22 74 72 61 63 6b 73 69 67 68 74 |data,"tracksight| 000003a0 22 2c 25 30 31 30 30 30 31 30 2c 37 2c 37 2c 30 |",%0100010,7,7,0| 000003b0 2c 30 0d 01 04 2a c8 99 20 22 4f 53 5f 42 79 74 |,0...*.. "OS_Byt| 000003c0 65 22 2c 31 30 36 2c 31 3a f4 20 53 65 6c 65 63 |e",106,1:. Selec| 000003d0 74 20 70 6f 69 6e 74 65 72 20 23 31 0d 01 0e 04 |t pointer #1....| 000003e0 0d 01 18 09 f2 69 6e 69 74 0d 01 22 12 de 20 66 |.....init..".. f| 000003f0 69 6c 65 6e 61 6d 65 20 32 35 35 0d 01 2c 3a de |ilename 255..,:.| 00000400 20 73 74 61 72 73 58 20 6e 75 6d 5f 73 74 61 72 | starsX num_star| 00000410 73 2a 34 2c 73 74 61 72 73 59 20 6e 75 6d 5f 73 |s*4,starsY num_s| 00000420 74 61 72 73 2c 73 74 61 72 73 56 20 6e 75 6d 5f |tars,starsV num_| 00000430 73 74 61 72 73 0d 01 36 04 0d 01 40 18 e3 20 49 |stars..6...@.. I| 00000440 25 3d 30 20 b8 20 6e 75 6d 5f 73 74 61 72 73 2d |%=0 . num_stars-| 00000450 31 0d 01 4a 0d 20 20 4e 25 3d 34 2a 49 25 0d 01 |1..J. N%=4*I%..| 00000460 54 18 20 20 73 74 61 72 73 58 21 4e 25 20 3d 20 |T. starsX!N% = | 00000470 b3 28 33 31 39 29 0d 01 5e 05 ed 0d 01 68 18 e3 |.(319)..^....h..| 00000480 20 49 25 3d 30 20 b8 20 6e 75 6d 5f 73 74 61 72 | I%=0 . num_star| 00000490 73 2d 31 0d 01 72 18 20 20 73 74 61 72 73 59 3f |s-1..r. starsY?| 000004a0 49 25 20 3d 20 b3 28 32 35 34 29 0d 01 7c 16 20 |I% = .(254)..|. | 000004b0 20 73 74 61 72 73 56 3f 49 25 20 3d 20 b3 28 34 | starsV?I% = .(4| 000004c0 29 0d 01 86 05 ed 0d 01 90 04 0d 01 9a 3f c8 99 |)............?..| 000004d0 20 22 4f 53 5f 46 69 6c 65 22 2c 35 2c 22 3c 52 | "OS_File",5,"<R| 000004e0 75 6e 47 61 6d 65 24 44 69 72 3e 2e 41 6c 70 68 |unGame$Dir>.Alph| 000004f0 61 62 65 74 22 20 b8 20 66 74 79 70 65 2c 2c 2c |abet" . ftype,,,| 00000500 2c 61 6c 70 68 61 6c 65 6e 0d 01 a4 26 e7 20 66 |,alphalen...&. f| 00000510 74 79 70 65 3d 30 20 85 20 32 35 32 2c 22 4e 6f |type=0 . 252,"No| 00000520 20 41 6c 70 68 61 62 65 74 20 66 69 6c 65 22 0d | Alphabet file".| 00000530 01 ae 04 0d 01 b8 46 61 6c 70 68 61 6c 65 6e 2b |......Falphalen+| 00000540 3d 31 36 3a de 20 61 6c 70 68 61 62 65 74 20 61 |=16:. alphabet a| 00000550 6c 70 68 61 6c 65 6e 2c 61 6c 70 68 61 5f 69 6e |lphalen,alpha_in| 00000560 66 6f 20 33 32 2c 63 68 61 72 61 63 74 65 72 5f |fo 32,character_| 00000570 70 74 72 73 20 39 35 2a 34 0d 01 c2 04 0d 01 cc |ptrs 95*4.......| 00000580 40 21 61 6c 70 68 61 62 65 74 3d 61 6c 70 68 61 |@!alphabet=alpha| 00000590 6c 65 6e 3a 61 6c 70 68 61 62 65 74 21 34 3d 30 |len:alphabet!4=0| 000005a0 3a 61 6c 70 68 61 62 65 74 21 38 3d 31 36 3a 61 |:alphabet!8=16:a| 000005b0 6c 70 68 61 62 65 74 21 31 32 3d 31 36 0d 01 d6 |lphabet!12=16...| 000005c0 3d c8 99 20 22 4f 53 5f 53 70 72 69 74 65 4f 70 |=.. "OS_SpriteOp| 000005d0 22 2c 32 35 36 2b 31 30 2c 61 6c 70 68 61 62 65 |",256+10,alphabe| 000005e0 74 2c 22 3c 52 75 6e 47 61 6d 65 24 44 69 72 3e |t,"<RunGame$Dir>| 000005f0 2e 41 6c 70 68 61 62 65 74 22 0d 01 e0 04 0d 01 |.Alphabet"......| 00000600 ea 45 c8 99 20 22 4f 53 5f 53 70 72 69 74 65 4f |.E.. "OS_SpriteO| 00000610 70 22 2c 32 35 36 2b 34 30 2c 61 6c 70 68 61 62 |p",256+40,alphab| 00000620 65 74 2c 22 33 32 22 20 b8 20 2c 2c 2c 77 69 64 |et,"32" . ,,,wid| 00000630 74 68 2c 68 65 69 67 68 74 2c 2c 63 68 61 72 6d |th,height,,charm| 00000640 6f 64 65 0d 01 f4 30 c8 99 20 22 4f 53 5f 52 65 |ode...0.. "OS_Re| 00000650 61 64 4d 6f 64 65 56 61 72 69 61 62 6c 65 22 2c |adModeVariable",| 00000660 63 68 61 72 6d 6f 64 65 2c 34 20 b8 20 2c 2c 58 |charmode,4 . ,,X| 00000670 45 69 67 0d 01 fe 30 c8 99 20 22 4f 53 5f 52 65 |Eig...0.. "OS_Re| 00000680 61 64 4d 6f 64 65 56 61 72 69 61 62 6c 65 22 2c |adModeVariable",| 00000690 63 68 61 72 6d 6f 64 65 2c 35 20 b8 20 2c 2c 59 |charmode,5 . ,,Y| 000006a0 45 69 67 0d 02 08 19 77 69 64 74 68 20 3d 20 77 |Eig....width = w| 000006b0 69 64 74 68 20 3c 3c 20 58 45 69 67 0d 02 12 1b |idth << XEig....| 000006c0 68 65 69 67 68 74 20 3d 20 68 65 69 67 68 74 20 |height = height | 000006d0 3c 3c 20 59 45 69 67 0d 02 1c 08 49 25 3d 30 0d |<< YEig....I%=0.| 000006e0 02 26 11 e3 20 43 25 3d 33 32 20 b8 20 31 32 36 |.&.. C%=32 . 126| 000006f0 0d 02 30 0c 20 20 43 24 3d c3 43 25 0d 02 3a 35 |..0. C$=.C%..:5| 00000700 20 20 c8 99 20 22 4f 53 5f 53 70 72 69 74 65 4f | .. "OS_SpriteO| 00000710 70 22 2c 32 34 2b 32 35 36 2c 61 6c 70 68 61 62 |p",24+256,alphab| 00000720 65 74 2c 43 24 20 b8 20 2c 2c 61 64 64 72 65 73 |et,C$ . ,,addres| 00000730 73 0d 02 44 1f 20 20 49 25 21 63 68 61 72 61 63 |s..D. I%!charac| 00000740 74 65 72 5f 70 74 72 73 3d 61 64 64 72 65 73 73 |ter_ptrs=address| 00000750 0d 02 4e 0b 20 20 49 25 2b 3d 34 0d 02 58 05 ed |..N. I%+=4..X..| 00000760 0d 02 62 18 21 61 6c 70 68 61 5f 69 6e 66 6f 3d |..b.!alpha_info=| 00000770 61 6c 70 68 61 62 65 74 0d 02 6c 1f 61 6c 70 68 |alphabet..l.alph| 00000780 61 5f 69 6e 66 6f 21 34 3d 63 68 61 72 61 63 74 |a_info!4=charact| 00000790 65 72 5f 70 74 72 73 0d 02 76 16 61 6c 70 68 61 |er_ptrs..v.alpha| 000007a0 5f 69 6e 66 6f 21 38 3d 77 69 64 74 68 0d 02 80 |_info!8=width...| 000007b0 18 61 6c 70 68 61 5f 69 6e 66 6f 21 31 32 3d 68 |.alpha_info!12=h| 000007c0 65 69 67 68 74 0d 02 8a 13 de 20 73 74 61 72 73 |eight..... stars| 000007d0 5f 69 6e 66 6f 20 33 32 0d 02 94 18 21 73 74 61 |_info 32....!sta| 000007e0 72 73 5f 69 6e 66 6f 20 3d 20 73 74 61 72 73 58 |rs_info = starsX| 000007f0 0d 02 9e 17 73 74 61 72 73 5f 69 6e 66 6f 21 34 |....stars_info!4| 00000800 3d 73 74 61 72 73 59 0d 02 a8 17 73 74 61 72 73 |=starsY....stars| 00000810 5f 69 6e 66 6f 21 38 3d 73 74 61 72 73 56 0d 02 |_info!8=starsV..| 00000820 b2 15 73 74 61 72 73 5f 69 6e 66 6f 21 31 32 3d |..stars_info!12=| 00000830 31 32 30 0d 02 bc 04 0d 02 c6 41 de 20 74 75 6e |120.......A. tun| 00000840 65 5f 6e 61 6d 65 73 20 32 34 2a 6d 61 78 5f 74 |e_names 24*max_t| 00000850 75 6e 65 73 2c 6e 61 6d 65 5f 70 74 72 73 20 6d |unes,name_ptrs m| 00000860 61 78 5f 74 75 6e 65 73 2a 34 2c 74 75 6e 65 73 |ax_tunes*4,tunes| 00000870 5f 69 6e 66 6f 20 33 32 0d 02 d0 04 0d 02 da 38 |_info 32.......8| 00000880 f2 72 65 61 64 5f 74 75 6e 65 73 28 22 3c 52 75 |.read_tunes("<Ru| 00000890 6e 47 61 6d 65 24 44 69 72 3e 2e 54 75 6e 65 73 |nGame$Dir>.Tunes| 000008a0 22 2c 74 75 6e 65 24 28 29 2c 6e 75 6d 5f 74 75 |",tune$(),num_tu| 000008b0 6e 65 73 29 0d 02 e4 1e 70 74 72 3d 30 3a 64 69 |nes)....ptr=0:di| 000008c0 72 24 3d 22 3c 53 6f 75 6e 64 73 24 44 69 72 3e |r$="<Sounds$Dir>| 000008d0 2e 22 0d 02 ee 04 0d 02 f8 18 e3 20 49 25 3d 30 |."......... I%=0| 000008e0 20 b8 20 6e 75 6d 5f 74 75 6e 65 73 2d 31 0d 03 | . num_tunes-1..| 000008f0 02 2b 20 20 24 28 74 75 6e 65 5f 6e 61 6d 65 73 |.+ $(tune_names| 00000900 2b 70 74 72 29 3d 64 69 72 24 2b 74 75 6e 65 24 |+ptr)=dir$+tune$| 00000910 28 49 25 29 2b bd 28 30 29 0d 03 0c 26 20 20 21 |(I%)+.(0)...& !| 00000920 28 6e 61 6d 65 5f 70 74 72 73 2b 34 2a 49 25 29 |(name_ptrs+4*I%)| 00000930 3d 74 75 6e 65 5f 6e 61 6d 65 73 2b 70 74 72 0d |=tune_names+ptr.| 00000940 03 16 21 20 20 70 74 72 2b 3d a9 28 74 75 6e 65 |..! ptr+=.(tune| 00000950 24 28 49 25 29 29 2b 31 2b a9 28 64 69 72 24 29 |$(I%))+1+.(dir$)| 00000960 0d 03 20 05 ed 0d 03 2a 04 0d 03 34 48 21 74 75 |.. ....*...4H!tu| 00000970 6e 65 73 5f 69 6e 66 6f 3d 6e 75 6d 5f 74 75 6e |nes_info=num_tun| 00000980 65 73 3a 74 75 6e 65 73 5f 69 6e 66 6f 21 34 3d |es:tunes_info!4=| 00000990 74 75 6e 65 5f 6e 61 6d 65 73 3a 74 75 6e 65 73 |tune_names:tunes| 000009a0 5f 69 6e 66 6f 21 38 3d 6e 61 6d 65 5f 70 74 72 |_info!8=name_ptr| 000009b0 73 0d 03 3e 04 0d 03 48 0f ff 28 22 46 58 20 31 |s..>...H..("FX 1| 000009c0 31 33 22 29 0d 03 52 05 f5 0d 03 5c 05 da 0d 03 |13")..R....\....| 000009d0 66 22 70 24 3d 22 44 6f 20 79 6f 75 20 77 61 6e |f"p$="Do you wan| 000009e0 74 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 3f 22 |t instructions?"| 000009f0 0d 03 70 33 f2 66 61 6e 63 79 5f 70 72 69 6e 74 |..p3.fancy_print| 00000a00 28 70 24 2c 28 31 32 38 30 2d 77 69 64 74 68 2a |(p$,(1280-width*| 00000a10 a9 70 24 29 2f 32 2c 35 30 30 2c 31 2c 32 2c 31 |.p$)/2,500,1,2,1| 00000a20 2c 31 29 0d 03 7a 04 0d 03 84 1c c8 99 20 22 4f |,1)..z....... "O| 00000a30 53 5f 43 6f 6e 66 69 72 6d 22 20 b8 20 61 6e 73 |S_Confirm" . ans| 00000a40 77 65 72 0d 03 8e 1d e7 20 61 6e 73 77 65 72 3d |wer..... answer=| 00000a50 97 22 79 22 20 8c 20 f2 69 6e 73 74 72 75 63 74 |."y" . .instruct| 00000a60 0d 03 98 12 fd 20 61 6e 73 77 65 72 3c 3e 97 22 |..... answer<>."| 00000a70 79 22 0d 03 a2 04 0d 03 ac 0c 41 25 3d 77 6f 72 |y"........A%=wor| 00000a80 6b 25 0d 03 b6 12 42 25 3d 73 70 72 69 74 65 5f |k%....B%=sprite_| 00000a90 61 72 65 61 0d 03 c0 13 43 25 3d 6f 62 6a 65 63 |area....C%=objec| 00000aa0 74 5f 73 70 61 63 65 0d 03 ca 11 44 25 3d 73 74 |t_space....D%=st| 00000ab0 61 72 73 5f 69 6e 66 6f 0d 03 d4 11 45 25 3d 61 |ars_info....E%=a| 00000ac0 6c 70 68 61 5f 69 6e 66 6f 0d 03 de 11 46 25 3d |lpha_info....F%=| 00000ad0 74 75 6e 65 73 5f 69 6e 66 6f 0d 03 e8 04 0d 03 |tunes_info......| 00000ae0 f2 11 d6 20 5f 69 6e 69 74 69 61 6c 69 73 65 0d |... _initialise.| 00000af0 03 fc 04 0d 04 06 0c 48 25 3d 77 6f 72 6b 25 0d |.......H%=work%.| 00000b00 04 10 04 0d 04 1a 16 68 69 67 68 73 63 6f 72 65 |.......highscore| 00000b10 3d 73 63 6f 72 65 28 31 29 0d 04 24 27 65 6e 65 |=score(1)..$'ene| 00000b20 72 67 79 20 3d 20 35 30 30 3a 73 63 6f 72 65 3d |rgy = 500:score=| 00000b30 30 3a 63 68 61 72 67 65 64 65 6c 61 79 3d 31 32 |0:chargedelay=12| 00000b40 0d 04 2e 04 0d 04 38 11 6c 61 73 74 5f 63 68 6f |......8.last_cho| 00000b50 69 63 65 3d 31 0d 04 42 0f ff 28 22 46 58 20 31 |ice=1..B..("FX 1| 00000b60 31 33 22 29 0d 04 4c 05 da 0d 04 56 0b 6c 65 76 |13")..L....V.lev| 00000b70 65 6c 3d 30 0d 04 60 1b 70 24 3d 22 4c 6f 61 64 |el=0..`.p$="Load| 00000b80 69 6e 67 20 44 65 6d 6f 20 4c 65 76 65 6c 22 0d |ing Demo Level".| 00000b90 04 6a 33 f2 66 61 6e 63 79 5f 70 72 69 6e 74 28 |.j3.fancy_print(| 00000ba0 70 24 2c 28 31 32 38 30 2d 77 69 64 74 68 2a a9 |p$,(1280-width*.| 00000bb0 70 24 29 2f 32 2c 35 30 30 2c 31 2c 32 2c 31 2c |p$)/2,500,1,2,1,| 00000bc0 31 29 0d 04 74 04 0d 04 7e 18 f2 6c 6f 61 64 5f |1)..t...~..load_| 00000bd0 73 70 72 69 74 65 73 28 6c 65 76 65 6c 29 0d 04 |sprites(level)..| 00000be0 88 04 0d 04 92 2d c8 99 20 22 45 78 53 5f 4d 75 |.....-.. "ExS_Mu| 00000bf0 73 69 63 46 61 64 65 22 2c 34 38 3a f2 77 61 69 |sicFade",48:.wai| 00000c00 74 28 34 29 3a 2a 4d 75 73 69 63 53 74 6f 70 0d |t(4):*MusicStop.| 00000c10 04 9c 04 0d 04 a6 05 f5 0d 04 b0 28 24 66 69 6c |...........($fil| 00000c20 65 6e 61 6d 65 20 3d 20 22 3c 52 75 6e 47 61 6d |ename = "<RunGam| 00000c30 65 24 44 69 72 3e 2e 47 61 6d 65 44 61 74 61 22 |e$Dir>.GameData"| 00000c40 0d 04 ba 0f 41 25 3d 66 69 6c 65 6e 61 6d 65 0d |....A%=filename.| 00000c50 04 c4 0e d6 20 5f 67 65 74 64 61 74 61 0d 04 ce |.... _getdata...| 00000c60 04 0d 04 d8 2b 76 61 72 5f 74 61 62 6c 65 3d 48 |....+var_table=H| 00000c70 25 21 34 30 3a 76 61 72 5f 74 61 62 6c 65 21 38 |%!40:var_table!8| 00000c80 20 3d 20 68 69 67 68 73 63 6f 72 65 0d 04 e2 04 | = highscore....| 00000c90 0d 04 ec 0e c8 8e 20 6c 65 76 65 6c 20 ca 0d 04 |...... level ...| 00000ca0 f6 08 c9 20 31 3a 0d 05 00 18 76 61 72 5f 74 61 |... 1:....var_ta| 00000cb0 62 6c 65 21 31 38 30 3d 65 6e 65 72 67 79 0d 05 |ble!180=energy..| 00000cc0 0a 15 76 61 72 5f 74 61 62 6c 65 21 34 3d 73 63 |..var_table!4=sc| 00000cd0 6f 72 65 0d 05 14 0c c9 20 33 2c 35 2c 37 3a 0d |ore..... 3,5,7:.| 00000ce0 05 1e 17 76 61 72 5f 74 61 62 6c 65 21 36 38 3d |...var_table!68=| 00000cf0 65 6e 65 72 67 79 0d 05 28 15 76 61 72 5f 74 61 |energy..(.var_ta| 00000d00 62 6c 65 21 34 3d 73 63 6f 72 65 0d 05 32 1c 76 |ble!4=score..2.v| 00000d10 61 72 5f 74 61 62 6c 65 21 38 38 3d 63 68 61 72 |ar_table!88=char| 00000d20 67 65 64 65 6c 61 79 0d 05 3c 05 cb 0d 05 46 04 |gedelay..<....F.| 00000d30 0d 05 50 12 41 25 3d 73 70 72 69 74 65 5f 61 72 |..P.A%=sprite_ar| 00000d40 65 61 0d 05 5a 0c 48 25 3d 77 6f 72 6b 25 0d 05 |ea..Z.H%=work%..| 00000d50 64 04 0d 05 6e 10 f2 63 6f 70 79 5f 73 63 72 65 |d...n..copy_scre| 00000d60 65 6e 0d 05 78 04 0d 05 82 1a ef 20 32 34 2c 31 |en..x...... 24,1| 00000d70 36 30 3b 32 36 38 3b 31 31 31 36 3b 37 36 36 3b |60;268;1116;766;| 00000d80 0d 05 8c 1a c8 97 20 c8 93 20 31 30 30 2c 32 39 |...... .. 100,29| 00000d90 32 2c 31 30 38 30 2c 34 34 30 0d 05 96 08 c8 97 |2,1080,440......| 00000da0 20 ee 0d 05 a0 04 0d 05 aa 07 d1 3d 30 0d 05 b4 | ..........=0...| 00000db0 11 f2 61 72 6d 33 3a 47 25 3d 61 72 6d 33 0d 05 |..arm3:G%=arm3..| 00000dc0 be 1a e7 20 ac 20 61 72 6d 33 20 8c 20 48 25 21 |... . arm3 . H%!| 00000dd0 26 31 32 38 20 3d 20 33 0d 05 c8 04 0d 05 d2 13 |&128 = 3........| 00000de0 70 24 3d 22 47 65 74 20 52 65 61 64 79 21 22 0d |p$="Get Ready!".| 00000df0 05 dc 35 da 3a f2 66 61 6e 63 79 5f 70 72 69 6e |..5.:.fancy_prin| 00000e00 74 28 70 24 2c 28 31 32 38 30 2d 77 69 64 74 68 |t(p$,(1280-width| 00000e10 2a a9 70 24 29 2f 32 2c 35 30 30 2c 31 2c 32 2c |*.p$)/2,500,1,2,| 00000e20 31 2c 31 29 0d 05 e6 0c 41 3d a6 28 33 30 30 29 |1,1)....A=.(300)| 00000e30 0d 05 f0 04 0d 05 fa 15 66 72 61 6d 65 73 3d ba |........frames=.| 00000e40 20 5f 64 69 73 70 6c 61 79 0d 06 04 04 0d 06 0e | _display.......| 00000e50 0e 74 69 6d 65 3d 91 2f 31 30 30 0d 06 18 04 0d |.time=./100.....| 00000e60 06 22 17 c8 99 20 22 45 78 53 5f 4d 75 73 69 63 |."... "ExS_Music| 00000e70 53 74 61 72 74 22 0d 06 2c 04 0d 06 36 19 6f 6c |Start"..,...6.ol| 00000e80 64 68 69 67 68 20 20 20 3d 20 68 69 67 68 73 63 |dhigh = highsc| 00000e90 6f 72 65 0d 06 40 1b 68 69 67 68 73 63 6f 72 65 |ore..@.highscore| 00000ea0 20 3d 20 76 61 72 5f 74 61 62 6c 65 21 38 0d 06 | = var_table!8..| 00000eb0 4a 1b 73 63 6f 72 65 20 20 20 20 20 3d 20 76 61 |J.score = va| 00000ec0 72 5f 74 61 62 6c 65 21 34 0d 06 54 04 0d 06 5e |r_table!4..T...^| 00000ed0 2a e7 20 a6 28 2d 36 29 20 f1 20 66 72 61 6d 65 |*. .(-6) . frame| 00000ee0 73 2f 74 69 6d 65 3b 22 20 66 72 61 6d 65 73 2f |s/time;" frames/| 00000ef0 73 65 63 6f 6e 64 22 0d 06 68 04 0d 06 72 0a 6d |second"..h...r.m| 00000f00 6f 64 65 3d eb 0d 06 7c 2c c8 99 20 22 4f 53 5f |ode=...|,.. "OS_| 00000f10 52 65 61 64 4d 6f 64 65 56 61 72 69 61 62 6c 65 |ReadModeVariable| 00000f20 22 2c 6d 6f 64 65 2c 34 20 b8 20 2c 2c 58 45 69 |",mode,4 . ,,XEi| 00000f30 67 0d 06 86 2c c8 99 20 22 4f 53 5f 52 65 61 64 |g...,.. "OS_Read| 00000f40 4d 6f 64 65 56 61 72 69 61 62 6c 65 22 2c 6d 6f |ModeVariable",mo| 00000f50 64 65 2c 35 20 b8 20 2c 2c 59 45 69 67 0d 06 90 |de,5 . ,,YEig...| 00000f60 21 67 6f 5f 73 70 72 69 74 65 24 3d 22 67 61 6d |!go_sprite$="gam| 00000f70 65 6f 76 65 72 22 2b c3 28 6d 6f 64 65 29 0d 06 |eover"+.(mode)..| 00000f80 9a 22 70 61 5f 73 70 72 69 74 65 24 3d 22 70 6c |."pa_sprite$="pl| 00000f90 61 79 61 67 61 69 6e 22 2b c3 28 6d 6f 64 65 29 |ayagain"+.(mode)| 00000fa0 0d 06 a4 22 68 73 5f 73 70 72 69 74 65 24 3d 22 |..."hs_sprite$="| 00000fb0 68 69 67 68 73 63 6f 72 65 22 2b c3 28 6d 6f 64 |highscore"+.(mod| 00000fc0 65 29 0d 06 ae 05 87 0d 06 b8 04 0d 06 c2 0e c8 |e)..............| 00000fd0 8e 20 6c 65 76 65 6c 20 ca 0d 06 cc 08 c9 20 30 |. level ...... 0| 00000fe0 3a 0d 06 d6 19 65 6e 65 72 67 79 20 3d 20 76 61 |:....energy = va| 00000ff0 72 5f 74 61 62 6c 65 21 36 30 0d 06 e0 1c 63 6f |r_table!60....co| 00001000 6d 70 6c 65 74 65 64 20 3d 20 76 61 72 5f 74 61 |mpleted = var_ta| 00001010 62 6c 65 21 39 32 0d 06 ea 05 cb 0d 06 f4 04 0d |ble!92..........| 00001020 06 fe 39 e7 20 74 65 73 74 69 6e 67 20 f1 22 45 |..9. testing ."E| 00001030 6e 65 72 67 79 3a 20 22 3b 65 6e 65 72 67 79 3b |nergy: ";energy;| 00001040 22 20 63 6f 6d 70 6c 65 74 65 64 3a 20 22 3b 63 |" completed: ";c| 00001050 6f 6d 70 6c 65 74 65 64 0d 07 08 34 70 24 3d 22 |ompleted...4p$="| 00001060 22 3a e7 20 65 6e 65 72 67 79 20 3c 3d 20 30 20 |":. energy <= 0 | 00001070 8c 20 70 24 3d 22 59 6f 75 27 72 65 20 6f 75 74 |. p$="You're out| 00001080 20 6f 66 20 65 6e 65 72 67 79 21 22 0d 07 12 3a | of energy!"...:| 00001090 e7 20 63 6f 6d 70 6c 65 74 65 64 20 3d 20 30 20 |. completed = 0 | 000010a0 80 20 65 6e 65 72 67 79 20 3e 20 30 20 8c 20 70 |. energy > 0 . p| 000010b0 24 3d 22 59 6f 75 27 72 65 20 6f 75 74 20 6f 66 |$="You're out of| 000010c0 20 61 69 72 21 22 0d 07 1c 35 e7 20 63 6f 6d 70 | air!"...5. comp| 000010d0 6c 65 74 65 64 20 3d 20 2d 31 20 8c 20 70 24 3d |leted = -1 . p$=| 000010e0 22 50 6f 69 73 6f 6e 20 47 61 73 20 2d 20 59 6f |"Poison Gas - Yo| 000010f0 75 27 72 65 20 64 65 61 64 21 22 0d 07 26 3c e7 |u're dead!"..&<.| 00001100 20 70 24 3c 3e 22 22 20 f2 66 61 6e 63 79 5f 70 | p$<>"" .fancy_p| 00001110 72 69 6e 74 28 70 24 2c 28 31 32 38 30 2d 77 69 |rint(p$,(1280-wi| 00001120 64 74 68 2a a9 70 24 29 2f 32 2c 33 30 30 2c 31 |dth*.p$)/2,300,1| 00001130 2c 32 2c 31 2c 31 29 0d 07 30 04 0d 07 3a 14 e7 |,2,1,1)..0...:..| 00001140 20 63 6f 6d 70 6c 65 74 65 64 3c 3e 31 20 8c 0d | completed<>1 ..| 00001150 07 44 34 20 20 f2 65 6e 64 5f 6f 66 5f 67 61 6d |.D4 .end_of_gam| 00001160 65 28 64 65 6c 61 79 2c 67 6f 5f 73 70 72 69 74 |e(delay,go_sprit| 00001170 65 24 2c 78 63 6f 6f 72 64 31 2c 79 63 6f 6f 72 |e$,xcoord1,ycoor| 00001180 64 31 29 0d 07 4e 17 20 20 f2 68 69 67 68 73 63 |d1)..N. .highsc| 00001190 6f 72 65 28 73 63 6f 72 65 29 0d 07 58 04 0d 07 |ore(score)..X...| 000011a0 62 33 20 20 e7 20 a4 61 6e 6f 74 68 65 72 28 70 |b3 . .another(p| 000011b0 61 5f 73 70 72 69 74 65 24 2c 78 63 6f 6f 72 64 |a_sprite$,xcoord| 000011c0 32 2c 79 63 6f 6f 72 64 32 2c 6b 65 79 24 29 20 |2,ycoord2,key$) | 000011d0 8c 0d 07 6c 10 20 20 65 6e 65 72 67 79 3d 35 30 |...l. energy=50| 000011e0 30 0d 07 76 0d 20 20 73 63 6f 72 65 3d 30 0d 07 |0..v. score=0..| 000011f0 80 04 0d 07 8a 1a 20 20 f2 6c 6f 61 64 5f 73 70 |...... .load_sp| 00001200 72 69 74 65 73 28 6c 65 76 65 6c 29 0d 07 94 0f |rites(level)....| 00001210 20 20 61 6e 6f 74 68 65 72 3d b9 0d 07 9e 07 20 | another=..... | 00001220 20 cc 0d 07 a8 11 20 20 20 20 61 6e 6f 74 68 65 | ..... anothe| 00001230 72 3d a3 0d 07 b2 07 20 20 cd 0d 07 bc 05 cc 0d |r=..... .......| 00001240 07 c6 11 20 20 61 6e 6f 74 68 65 72 20 3d 20 a3 |... another = .| 00001250 0d 07 d0 17 20 20 f2 68 69 67 68 73 63 6f 72 65 |.... .highscore| 00001260 28 73 63 6f 72 65 29 0d 07 da 07 20 20 da 0d 07 |(score).... ...| 00001270 e4 15 20 20 70 24 3d 22 57 65 6c 6c 20 64 6f 6e |.. p$="Well don| 00001280 65 21 22 0d 07 ee 35 20 20 f2 66 61 6e 63 79 5f |e!"...5 .fancy_| 00001290 70 72 69 6e 74 28 70 24 2c 28 31 32 38 30 2d 77 |print(p$,(1280-w| 000012a0 69 64 74 68 2a a9 70 24 29 2f 32 2c 35 30 30 2c |idth*.p$)/2,500,| 000012b0 31 2c 32 2c 31 2c 31 29 0d 07 f8 24 20 20 70 24 |1,2,1,1)...$ p$| 000012c0 3d 22 59 6f 75 27 76 65 20 63 6f 6d 70 6c 65 74 |="You've complet| 000012d0 65 64 20 74 68 65 20 64 65 6d 6f 22 0d 08 02 35 |ed the demo"...5| 000012e0 20 20 f2 66 61 6e 63 79 5f 70 72 69 6e 74 28 70 | .fancy_print(p| 000012f0 24 2c 28 31 32 38 30 2d 77 69 64 74 68 2a a9 70 |$,(1280-width*.p| 00001300 24 29 2f 32 2c 34 30 30 2c 31 2c 32 2c 31 2c 31 |$)/2,400,1,2,1,1| 00001310 29 0d 08 0c 05 cd 0d 08 16 0f e7 20 61 6e 6f 74 |).......... anot| 00001320 68 65 72 20 8c 0d 08 20 1b 20 20 c8 99 20 22 45 |her ... . .. "E| 00001330 78 53 5f 4d 75 73 69 63 46 61 64 65 22 2c 34 38 |xS_MusicFade",48| 00001340 0d 08 2a 0e 20 20 f2 77 61 69 74 28 34 29 0d 08 |..*. .wait(4)..| 00001350 34 05 cd 0d 08 3e 0e 2a 4d 75 73 69 63 53 74 6f |4....>.*MusicSto| 00001360 70 0d 08 48 0f fd 20 ac 20 61 6e 6f 74 68 65 72 |p..H.. . another| 00001370 0d 08 52 04 0d 08 5c 41 e7 20 73 61 76 65 24 3d |..R...\A. save$=| 00001380 22 59 45 53 22 20 8c 20 f2 73 61 76 65 5f 68 69 |"YES" . .save_hi| 00001390 67 68 73 63 6f 72 65 73 28 22 3c 53 61 76 65 47 |ghscores("<SaveG| 000013a0 61 6d 65 24 44 69 72 3e 2e 48 69 67 68 53 63 6f |ame$Dir>.HighSco| 000013b0 72 65 73 22 29 0d 08 66 04 0d 08 70 12 f2 72 65 |res")..f...p..re| 000013c0 6d 6f 76 65 5f 73 6f 75 6e 64 73 0d 08 7a 04 0d |move_sounds..z..| 000013d0 08 84 05 e0 0d 08 8e 04 0d 08 98 04 0d 08 a2 0b |................| 000013e0 dd 20 f2 69 6e 69 74 0d 08 ac 25 c8 99 20 22 4f |. .init...%.. "O| 000013f0 53 5f 42 79 74 65 22 2c 31 36 31 2c 31 39 31 20 |S_Byte",161,191 | 00001400 b8 20 2c 2c 4f 6c 64 4d 6f 75 73 65 0d 08 b6 13 |. ,,OldMouse....| 00001410 6e 75 6d 5f 73 74 61 72 73 20 3d 20 32 35 35 0d |num_stars = 255.| 00001420 08 c0 25 6d 61 78 5f 74 75 6e 65 73 20 3d 20 31 |..%max_tunes = 1| 00001430 36 3a de 20 74 75 6e 65 24 28 6d 61 78 5f 74 75 |6:. tune$(max_tu| 00001440 6e 65 73 29 0d 08 ca 04 0d 08 d4 2f 73 70 6c 65 |nes)......./sple| 00001450 6e 20 3d 20 a4 67 65 74 5f 6d 61 78 5f 73 70 72 |n = .get_max_spr| 00001460 69 74 65 6c 65 6e 28 22 3c 52 75 6e 47 61 6d 65 |itelen("<RunGame| 00001470 24 44 69 72 3e 22 29 0d 08 de 04 0d 08 e8 22 73 |$Dir>")......."s| 00001480 70 6c 65 6e 2b 3d 20 31 36 3a de 20 73 70 72 69 |plen+= 16:. spri| 00001490 74 65 5f 61 72 65 61 20 73 70 6c 65 6e 0d 08 f2 |te_area splen...| 000014a0 04 0d 08 fc 49 21 73 70 72 69 74 65 5f 61 72 65 |....I!sprite_are| 000014b0 61 3d 73 70 6c 65 6e 3a 73 70 72 69 74 65 5f 61 |a=splen:sprite_a| 000014c0 72 65 61 21 34 3d 30 3a 73 70 72 69 74 65 5f 61 |rea!4=0:sprite_a| 000014d0 72 65 61 21 38 3d 31 36 3a 73 70 72 69 74 65 5f |rea!8=16:sprite_| 000014e0 61 72 65 61 21 31 32 3d 31 36 0d 09 06 04 0d 09 |area!12=16......| 000014f0 10 3d c8 99 20 22 4f 53 5f 46 69 6c 65 22 2c 35 |.=.. "OS_File",5| 00001500 2c 22 3c 52 75 6e 47 61 6d 65 24 44 69 72 3e 2e |,"<RunGame$Dir>.| 00001510 53 70 72 69 74 65 73 32 22 20 b8 20 66 74 79 70 |Sprites2" . ftyp| 00001520 65 2c 2c 2c 2c 73 70 6c 65 6e 32 0d 09 1a 28 e7 |e,,,,splen2...(.| 00001530 20 66 74 79 70 65 3d 30 20 85 20 32 35 34 2c 22 | ftype=0 . 254,"| 00001540 4e 6f 20 27 53 70 72 69 74 65 73 32 27 20 66 69 |No 'Sprites2' fi| 00001550 6c 65 22 0d 09 24 04 0d 09 2e 25 73 70 6c 65 6e |le"..$....%splen| 00001560 32 2b 3d 20 31 36 3a de 20 73 70 72 69 74 65 5f |2+= 16:. sprite_| 00001570 61 72 65 61 32 20 73 70 6c 65 6e 32 0d 09 38 04 |area2 splen2..8.| 00001580 0d 09 42 4e 21 73 70 72 69 74 65 5f 61 72 65 61 |..BN!sprite_area| 00001590 32 3d 73 70 6c 65 6e 32 3a 73 70 72 69 74 65 5f |2=splen2:sprite_| 000015a0 61 72 65 61 32 21 34 3d 30 3a 73 70 72 69 74 65 |area2!4=0:sprite| 000015b0 5f 61 72 65 61 32 21 38 3d 31 36 3a 73 70 72 69 |_area2!8=16:spri| 000015c0 74 65 5f 61 72 65 61 32 21 31 32 3d 31 36 0d 09 |te_area2!12=16..| 000015d0 4c 41 c8 99 20 22 4f 53 5f 53 70 72 69 74 65 4f |LA.. "OS_SpriteO| 000015e0 70 22 2c 32 35 36 2b 31 30 2c 73 70 72 69 74 65 |p",256+10,sprite| 000015f0 5f 61 72 65 61 32 2c 22 3c 52 75 6e 47 61 6d 65 |_area2,"<RunGame| 00001600 24 44 69 72 3e 2e 53 70 72 69 74 65 73 32 22 0d |$Dir>.Sprites2".| 00001610 09 56 04 0d 09 60 28 f2 6c 6f 61 64 5f 73 6f 75 |.V...`(.load_sou| 00001620 6e 64 73 28 22 3c 52 75 6e 47 61 6d 65 24 44 69 |nds("<RunGame$Di| 00001630 72 3e 2e 53 6f 75 6e 64 73 22 29 0d 09 6a 04 0d |r>.Sounds")..j..| 00001640 09 74 1f de 20 6e 61 6d 65 24 28 6d 61 78 68 69 |.t.. name$(maxhi| 00001650 29 2c 73 63 6f 72 65 28 6d 61 78 68 69 29 0d 09 |),score(maxhi)..| 00001660 7e 22 6e 61 6d 65 24 28 29 3d 22 43 72 65 61 74 |~"name$()="Creat| 00001670 6f 72 22 3a 73 63 6f 72 65 28 29 3d 31 30 30 30 |or":score()=1000| 00001680 0d 09 88 04 0d 09 92 24 69 6e 25 3d 8e 20 22 3c |.......$in%=. "<| 00001690 52 75 6e 47 61 6d 65 24 44 69 72 3e 2e 48 69 67 |RunGame$Dir>.Hig| 000016a0 68 53 63 6f 72 65 73 22 0d 09 9c 0e e7 20 69 6e |hScores"..... in| 000016b0 25 3c 3e 30 20 8c 0d 09 a6 08 49 25 3d 31 0d 09 |%<>0 .....I%=1..| 000016c0 b0 1a c8 95 20 ac 20 c5 23 69 6e 25 20 80 20 49 |.... . .#in% . I| 000016d0 25 3c 3d 6d 61 78 68 69 0d 09 ba 11 20 20 6c 69 |%<=maxhi.... li| 000016e0 6e 65 24 3d be 23 69 6e 25 0d 09 c4 24 20 20 e7 |ne$=.#in%...$ .| 000016f0 20 c0 6c 69 6e 65 24 2c 31 29 3c 3e 22 3b 22 20 | .line$,1)<>";" | 00001700 80 20 6c 69 6e 65 24 3c 3e 22 22 20 8c 0d 09 ce |. line$<>"" ....| 00001710 3f 20 20 20 20 e7 20 49 25 3e 6d 61 78 68 69 20 |? . I%>maxhi | 00001720 8c 20 85 20 32 35 33 2c 22 54 6f 6f 20 6d 61 6e |. . 253,"Too man| 00001730 79 20 6e 61 6d 65 73 20 69 6e 20 27 48 69 67 68 |y names in 'High| 00001740 53 63 6f 72 65 27 20 66 69 6c 65 22 0d 09 d8 16 |Score' file"....| 00001750 20 20 20 20 51 25 3d a7 6c 69 6e 65 24 2c 22 3a | Q%=.line$,":| 00001760 22 29 0d 09 e2 1e 20 20 20 20 6e 61 6d 65 24 28 |").... name$(| 00001770 49 25 29 3d c0 6c 69 6e 65 24 2c 51 25 2d 31 29 |I%)=.line$,Q%-1)| 00001780 0d 09 ec 33 20 20 20 20 6e 61 6d 65 24 28 49 25 |...3 name$(I%| 00001790 29 3d c0 6e 61 6d 65 24 28 49 25 29 2b c4 6d 61 |)=.name$(I%)+.ma| 000017a0 78 6c 65 6e 2c 22 20 22 29 2c 6d 61 78 6c 65 6e |xlen," "),maxlen| 000017b0 2d 31 29 0d 09 f6 0d 20 20 20 20 51 25 2b 3d 31 |-1).... Q%+=1| 000017c0 0d 0a 00 23 20 20 20 20 c8 95 20 c1 6c 69 6e 65 |...# .. .line| 000017d0 24 2c 51 25 2c 31 29 3d 22 20 22 3a 51 25 2b 3d |$,Q%,1)=" ":Q%+=| 000017e0 31 3a ce 0d 0a 0a 19 20 20 20 20 76 61 6c 75 65 |1:..... value| 000017f0 24 3d c1 6c 69 6e 65 24 2c 51 25 29 0d 0a 14 1d |$=.line$,Q%)....| 00001800 20 20 20 20 73 63 6f 72 65 28 49 25 29 20 3d 20 | score(I%) = | 00001810 bb 28 76 61 6c 75 65 24 29 0d 0a 1e 0d 20 20 20 |.(value$).... | 00001820 20 49 25 2b 3d 31 0d 0a 28 07 20 20 cd 0d 0a 32 | I%+=1..(. ...2| 00001830 05 ce 0d 0a 3c 09 d9 23 69 6e 25 0d 0a 46 05 cd |....<..#in%..F..| 00001840 0d 0a 50 1b f2 73 6f 72 74 5f 68 69 67 68 73 63 |..P..sort_highsc| 00001850 6f 72 65 73 28 6d 61 78 68 69 29 0d 0a 5a 04 0d |ores(maxhi)..Z..| 00001860 0a 64 3c c8 99 20 22 4f 53 5f 46 69 6c 65 22 2c |.d<.. "OS_File",| 00001870 35 2c 22 3c 52 75 6e 47 61 6d 65 24 44 69 72 3e |5,"<RunGame$Dir>| 00001880 2e 46 43 6f 64 65 22 20 b8 20 66 74 79 70 65 2c |.FCode" . ftype,| 00001890 2c 2c 2c 63 6f 64 65 73 69 7a 65 0d 0a 6e 13 de |,,,codesize..n..| 000018a0 20 63 6f 64 65 20 63 6f 64 65 73 69 7a 65 0d 0a | code codesize..| 000018b0 78 04 0d 0a 82 16 e3 20 70 61 73 73 20 3d 20 30 |x...... pass = 0| 000018c0 20 b8 20 32 20 88 20 32 0d 0a 8c 18 f2 61 73 73 | . 2 . 2.....ass| 000018d0 65 6d 62 6c 65 28 63 6f 64 65 2c 70 61 73 73 29 |emble(code,pass)| 000018e0 0d 0a 96 05 ed 0d 0a a0 04 0d 0a aa 29 ff 28 22 |............).("| 000018f0 4c 4f 41 44 20 3c 52 75 6e 47 61 6d 65 24 44 69 |LOAD <RunGame$Di| 00001900 72 3e 2e 46 43 6f 64 65 20 22 2b c3 7e 63 6f 64 |r>.FCode "+.~cod| 00001910 65 29 0d 0a b4 07 d4 20 ee 0d 0a be 10 de 20 77 |e)..... ...... w| 00001920 6f 72 6b 25 20 32 30 30 30 0d 0a c8 12 de 20 4f |ork% 2000..... O| 00001930 53 62 75 66 66 65 72 20 32 35 36 0d 0a d2 04 0d |Sbuffer 256.....| 00001940 0a dc 44 f2 73 65 74 5f 4f 53 76 61 72 28 22 53 |..D.set_OSvar("S| 00001950 61 76 65 47 61 6d 65 24 44 69 72 22 2c a4 73 74 |aveGame$Dir",.st| 00001960 72 69 70 43 46 53 28 a4 72 65 61 64 5f 4f 53 76 |ripCFS(.read_OSv| 00001970 61 72 28 22 52 75 6e 47 61 6d 65 24 44 69 72 22 |ar("RunGame$Dir"| 00001980 29 29 29 0d 0a e6 04 0d 0a f0 05 e1 0d 0a fa 04 |))).............| 00001990 0d 0b 04 04 0d 0b 0e 10 dd 20 f2 66 69 6e 64 5f |......... .find_| 000019a0 6d 6f 64 65 0d 0b 18 0f ea 20 64 75 6d 6d 79 24 |mode..... dummy$| 000019b0 2c 49 25 0d 0b 22 26 69 6e 25 20 3d 20 8e 20 28 |,I%.."&in% = . (| 000019c0 22 3c 52 75 6e 47 61 6d 65 24 44 69 72 3e 2e 47 |"<RunGame$Dir>.G| 000019d0 61 6d 65 44 61 74 61 22 29 0d 0b 2c 2c e7 20 69 |ameData")..,,. i| 000019e0 6e 25 3d 30 20 85 20 32 35 32 2c 22 47 61 6d 65 |n%=0 . 252,"Game| 000019f0 44 61 74 61 20 66 69 6c 65 20 69 73 20 6d 69 73 |Data file is mis| 00001a00 73 69 6e 67 22 0d 0b 36 1d e3 20 49 25 3d 31 20 |sing"..6.. I%=1 | 00001a10 b8 20 37 3a 64 75 6d 6d 79 24 3d be 23 69 6e 25 |. 7:dummy$=.#in%| 00001a20 3a ed 0d 0b 40 11 6d 6f 64 65 3d bb 28 be 23 69 |:...@.mode=.(.#i| 00001a30 6e 25 29 0d 0b 4a 09 d9 23 69 6e 25 0d 0b 54 05 |n%)..J..#in%..T.| 00001a40 e1 0d 0b 5e 04 0d 0b 68 13 dd 20 f2 63 68 65 63 |...^...h.. .chec| 00001a50 6b 5f 63 6f 6e 66 69 67 0d 0b 72 20 69 6e 25 3d |k_config..r in%=| 00001a60 8e 20 22 3c 52 75 6e 47 61 6d 65 24 44 69 72 3e |. "<RunGame$Dir>| 00001a70 2e 43 6f 6e 66 69 67 22 0d 0b 7c 0d 64 65 6c 61 |.Config"..|.dela| 00001a80 79 20 3d 20 33 0d 0b 86 14 73 63 72 65 65 6e 5f |y = 3....screen_| 00001a90 64 65 6c 61 79 20 3d 20 35 0d 0b 90 11 78 63 6f |delay = 5....xco| 00001aa0 6f 72 64 31 20 3d 20 35 34 30 0d 0b 9a 11 79 63 |ord1 = 540....yc| 00001ab0 6f 6f 72 64 31 20 3d 20 35 30 30 0d 0b a4 11 78 |oord1 = 500....x| 00001ac0 63 6f 6f 72 64 32 20 3d 20 35 32 30 0d 0b ae 11 |coord2 = 520....| 00001ad0 79 63 6f 6f 72 64 32 20 3d 20 35 30 30 0d 0b b8 |ycoord2 = 500...| 00001ae0 12 73 68 6f 77 24 3d 22 41 4c 57 41 59 53 22 0d |.show$="ALWAYS".| 00001af0 0b c2 11 73 61 76 65 24 20 3d 20 22 59 45 53 22 |...save$ = "YES"| 00001b00 0d 0b cc 10 6b 65 79 24 3d 20 22 59 79 4e 6e 22 |....key$= "YyNn"| 00001b10 0d 0b d6 13 70 6c 61 79 5f 74 75 6e 65 24 20 3d |....play_tune$ =| 00001b20 20 22 22 0d 0b e0 13 73 74 6f 70 5f 74 75 6e 65 | ""....stop_tune| 00001b30 24 20 3d 20 22 22 0d 0b ea 13 72 65 6c 6f 61 64 |$ = ""....reload| 00001b40 24 20 3d 20 22 59 45 53 22 0d 0b f4 0d 6d 61 78 |$ = "YES"....max| 00001b50 68 69 20 3d 20 35 0d 0b fe 0d 6d 61 78 6c 65 6e |hi = 5....maxlen| 00001b60 3d 31 36 0d 0c 08 10 6d 61 78 64 69 67 69 74 73 |=16....maxdigits| 00001b70 3d 31 30 0d 0c 12 14 73 63 72 6e 6c 6f 61 64 24 |=10....scrnload$| 00001b80 3d 22 46 41 53 54 22 0d 0c 1c 17 64 61 74 61 5f |="FAST"....data_| 00001b90 73 69 7a 65 20 3d 20 36 34 2a 31 30 32 34 0d 0c |size = 64*1024..| 00001ba0 26 0d c8 8e 20 6d 6f 64 65 20 ca 0d 0c 30 09 c9 |&... mode ...0..| 00001bb0 20 31 33 3a 0d 0c 3a 11 68 73 78 20 20 20 20 20 | 13:..:.hsx | 00001bc0 3d 20 31 33 30 0d 0c 44 11 68 73 79 20 20 20 20 |= 130..D.hsy | 00001bd0 20 3d 20 34 30 30 0d 0c 4e 14 73 6c 61 62 5f 63 | = 400..N.slab_c| 00001be0 6f 6c 6f 75 72 20 3d 20 34 32 0d 0c 58 0f 68 69 |olour = 42..X.hi| 00001bf0 6c 69 74 65 20 3d 20 36 33 0d 0c 62 0f 6c 6f 6c |lite = 63..b.lol| 00001c00 69 74 65 20 3d 20 32 31 0d 0c 6c 0d 69 6e 73 65 |ite = 21..l.inse| 00001c10 74 20 3d 20 30 0d 0c 76 0c 6c 69 6e 65 20 3d 20 |t = 0..v.line = | 00001c20 30 0d 0c 80 05 cb 0d 0c 8a 04 0d 0c 94 0e e7 20 |0.............. | 00001c30 69 6e 25 3c 3e 30 20 8c 0d 0c 9e 0e c8 95 20 ac |in%<>0 ....... .| 00001c40 20 c5 23 69 6e 25 0d 0c a8 11 20 20 6c 69 6e 65 | .#in%.... line| 00001c50 24 3d be 23 69 6e 25 0d 0c b2 24 20 20 e7 20 c0 |$=.#in%...$ . .| 00001c60 6c 69 6e 65 24 2c 31 29 3c 3e 22 3b 22 20 80 20 |line$,1)<>";" . | 00001c70 6c 69 6e 65 24 3c 3e 22 22 20 8c 0d 0c bc 16 20 |line$<>"" ..... | 00001c80 20 20 20 51 25 3d a7 6c 69 6e 65 24 2c 22 3a 22 | Q%=.line$,":"| 00001c90 29 0d 0c c6 1b 20 20 20 20 6c 61 62 65 6c 24 3d |).... label$=| 00001ca0 c0 6c 69 6e 65 24 2c 51 25 2d 31 29 0d 0c d0 0d |.line$,Q%-1)....| 00001cb0 20 20 20 20 51 25 2b 3d 31 0d 0c da 23 20 20 20 | Q%+=1...# | 00001cc0 20 c8 95 20 c1 6c 69 6e 65 24 2c 51 25 2c 31 29 | .. .line$,Q%,1)| 00001cd0 3d 22 20 22 3a 51 25 2b 3d 31 3a ce 0d 0c e4 1b |=" ":Q%+=1:.....| 00001ce0 20 20 20 20 20 20 76 61 6c 75 65 24 3d c1 6c 69 | value$=.li| 00001cf0 6e 65 24 2c 51 25 29 0d 0c ee 1b 20 20 20 20 20 |ne$,Q%).... | 00001d00 20 76 61 6c 75 65 20 3d 20 bb 28 76 61 6c 75 65 | value = .(value| 00001d10 24 29 0d 0c f8 15 20 20 20 20 20 20 c8 8e 20 6c |$).... .. l| 00001d20 61 62 65 6c 24 20 ca 0d 0d 02 15 20 20 20 20 20 |abel$ ..... | 00001d30 20 20 20 c9 20 22 44 65 6c 61 79 22 0d 0d 0c 1b | . "Delay"....| 00001d40 20 20 20 20 20 20 20 20 20 20 64 65 6c 61 79 20 | delay | 00001d50 3d 20 76 61 6c 75 65 0d 0d 16 1b 20 20 20 20 20 |= value.... | 00001d60 20 20 20 c9 20 22 47 61 6d 65 20 6f 76 65 72 20 | . "Game over | 00001d70 58 22 0d 0d 20 1d 20 20 20 20 20 20 20 20 20 20 |X".. . | 00001d80 78 63 6f 6f 72 64 31 20 3d 20 76 61 6c 75 65 0d |xcoord1 = value.| 00001d90 0d 2a 1b 20 20 20 20 20 20 20 20 c9 20 22 47 61 |.*. . "Ga| 00001da0 6d 65 20 6f 76 65 72 20 59 22 0d 0d 34 1d 20 20 |me over Y"..4. | 00001db0 20 20 20 20 20 20 20 20 79 63 6f 6f 72 64 31 20 | ycoord1 | 00001dc0 3d 20 76 61 6c 75 65 0d 0d 3e 1c 20 20 20 20 20 |= value..>. | 00001dd0 20 20 20 c9 20 22 50 6c 61 79 20 61 67 61 69 6e | . "Play again| 00001de0 20 58 22 0d 0d 48 1d 20 20 20 20 20 20 20 20 20 | X"..H. | 00001df0 20 78 63 6f 6f 72 64 32 20 3d 20 76 61 6c 75 65 | xcoord2 = value| 00001e00 0d 0d 52 1c 20 20 20 20 20 20 20 20 c9 20 22 50 |..R. . "P| 00001e10 6c 61 79 20 61 67 61 69 6e 20 59 22 0d 0d 5c 1d |lay again Y"..\.| 00001e20 20 20 20 20 20 20 20 20 20 20 79 63 6f 6f 72 64 | ycoord| 00001e30 32 20 3d 20 76 61 6c 75 65 0d 0d 66 17 20 20 20 |2 = value..f. | 00001e40 20 20 20 20 20 c9 20 22 54 61 62 6c 65 20 58 22 | . "Table X"| 00001e50 0d 0d 70 19 20 20 20 20 20 20 20 20 20 20 68 73 |..p. hs| 00001e60 78 20 3d 20 76 61 6c 75 65 0d 0d 7a 17 20 20 20 |x = value..z. | 00001e70 20 20 20 20 20 c9 20 22 54 61 62 6c 65 20 59 22 | . "Table Y"| 00001e80 0d 0d 84 19 20 20 20 20 20 20 20 20 20 20 68 73 |.... hs| 00001e90 79 20 3d 20 76 61 6c 75 65 0d 0d 8e 14 20 20 20 |y = value.... | 00001ea0 20 20 20 20 20 c9 20 22 4b 65 79 73 22 0d 0d 98 | . "Keys"...| 00001eb0 1b 20 20 20 20 20 20 20 20 20 20 6b 65 79 24 20 |. key$ | 00001ec0 3d 20 76 61 6c 75 65 24 0d 0d a2 1c 20 20 20 20 |= value$.... | 00001ed0 20 20 20 20 c9 20 22 54 61 62 6c 65 20 63 6f 6c | . "Table col| 00001ee0 6f 75 72 22 0d 0d ac 20 20 20 20 20 20 20 20 20 |our"... | 00001ef0 20 20 73 6c 61 62 5f 63 6f 6c 6f 75 72 3d 20 76 | slab_colour= v| 00001f00 61 6c 75 65 0d 0d b6 1c 20 20 20 20 20 20 20 20 |alue.... | 00001f10 c9 20 22 49 6e 73 65 74 20 63 6f 6c 6f 75 72 22 |. "Inset colour"| 00001f20 0d 0d c0 1b 20 20 20 20 20 20 20 20 20 20 69 6e |.... in| 00001f30 73 65 74 20 3d 20 76 61 6c 75 65 0d 0d ca 1a 20 |set = value.... | 00001f40 20 20 20 20 20 20 20 c9 20 22 53 68 6f 77 20 74 | . "Show t| 00001f50 61 62 6c 65 22 0d 0d d4 1c 20 20 20 20 20 20 20 |able".... | 00001f60 20 20 20 73 68 6f 77 24 20 3d 20 76 61 6c 75 65 | show$ = value| 00001f70 24 0d 0d de 1a 20 20 20 20 20 20 20 20 c9 20 22 |$.... . "| 00001f80 53 61 76 65 20 74 61 62 6c 65 22 0d 0d e8 1a 20 |Save table".... | 00001f90 20 20 20 20 20 20 20 20 20 73 61 76 65 24 3d 76 | save$=v| 00001fa0 61 6c 75 65 24 0d 0d f2 1a 20 20 20 20 20 20 20 |alue$.... | 00001fb0 20 c9 20 22 54 61 62 6c 65 20 73 69 7a 65 22 0d | . "Table size".| 00001fc0 0d fc 1b 20 20 20 20 20 20 20 20 20 20 6d 61 78 |... max| 00001fd0 68 69 20 3d 20 76 61 6c 75 65 0d 0e 06 26 20 20 |hi = value...& | 00001fe0 20 20 20 20 20 20 20 20 e7 20 6d 61 78 68 69 20 | . maxhi | 00001ff0 3e 20 31 36 20 8c 20 6d 61 78 68 69 20 3d 31 36 |> 16 . maxhi =16| 00002000 0d 0e 10 1b 20 20 20 20 20 20 20 20 c9 20 22 4c |.... . "L| 00002010 6f 61 64 20 73 63 72 65 65 6e 22 0d 0e 1a 20 20 |oad screen"... | 00002020 20 20 20 20 20 20 20 20 20 73 63 72 6e 6c 6f 61 | scrnloa| 00002030 64 24 20 3d 20 76 61 6c 75 65 24 0d 0e 24 1c 20 |d$ = value$..$. | 00002040 20 20 20 20 20 20 20 c9 20 22 4c 6f 61 64 69 6e | . "Loadin| 00002050 67 20 74 75 6e 65 22 0d 0e 2e 21 20 20 20 20 20 |g tune"...! | 00002060 20 20 20 20 20 70 6c 61 79 5f 74 75 6e 65 24 20 | play_tune$ | 00002070 3d 20 76 61 6c 75 65 24 0d 0e 38 19 20 20 20 20 |= value$..8. | 00002080 20 20 20 20 c9 20 22 53 74 6f 70 20 74 75 6e 65 | . "Stop tune| 00002090 22 0d 0e 42 21 20 20 20 20 20 20 20 20 20 20 73 |"..B! s| 000020a0 74 6f 70 5f 74 75 6e 65 24 20 3d 20 76 61 6c 75 |top_tune$ = valu| 000020b0 65 24 0d 0e 4c 1c 20 20 20 20 20 20 20 20 c9 20 |e$..L. . | 000020c0 22 53 63 72 65 65 6e 20 64 65 6c 61 79 22 0d 0e |"Screen delay"..| 000020d0 56 22 20 20 20 20 20 20 20 20 20 20 73 63 72 65 |V" scre| 000020e0 65 6e 5f 64 65 6c 61 79 20 3d 20 76 61 6c 75 65 |en_delay = value| 000020f0 0d 0e 60 19 20 20 20 20 20 20 20 20 c9 20 22 44 |..`. . "D| 00002100 61 74 61 20 73 69 7a 65 22 0d 0e 6a 24 20 20 20 |ata size"..j$ | 00002110 20 20 20 20 20 20 20 64 61 74 61 5f 73 69 7a 65 | data_size| 00002120 20 3d 20 76 61 6c 75 65 2a 31 30 32 34 0d 0e 74 | = value*1024..t| 00002130 1b 20 20 20 20 20 20 20 20 c9 20 22 4e 61 6d 65 |. . "Name| 00002140 20 6c 65 6e 67 74 68 22 0d 0e 7e 1c 20 20 20 20 | length"..~. | 00002150 20 20 20 20 20 20 6d 61 78 6c 65 6e 20 3d 20 76 | maxlen = v| 00002160 61 6c 75 65 0d 0e 88 27 20 20 20 20 20 20 20 20 |alue...' | 00002170 20 20 e7 20 6d 61 78 6c 65 6e 20 3e 20 31 36 20 | . maxlen > 16 | 00002180 6d 61 78 6c 65 6e 20 3d 20 31 36 0d 0e 92 1c 20 |maxlen = 16.... | 00002190 20 20 20 20 20 20 20 c9 20 22 53 63 6f 72 65 20 | . "Score | 000021a0 6c 65 6e 67 74 68 22 0d 0e 9c 1f 20 20 20 20 20 |length".... | 000021b0 20 20 20 20 20 6d 61 78 64 69 67 69 74 73 20 3d | maxdigits =| 000021c0 20 76 61 6c 75 65 0d 0e a6 2d 20 20 20 20 20 20 | value...- | 000021d0 20 20 20 20 e7 20 6d 61 78 64 69 67 69 74 73 20 | . maxdigits | 000021e0 3e 20 31 30 20 6d 61 78 64 69 67 69 74 73 20 3d |> 10 maxdigits =| 000021f0 20 31 30 0d 0e b0 1e 20 20 20 20 20 20 20 20 c9 | 10.... .| 00002200 20 22 52 65 6c 6f 61 64 20 73 70 72 69 74 65 73 | "Reload sprites| 00002210 22 0d 0e ba 1e 20 20 20 20 20 20 20 20 20 20 72 |".... r| 00002220 65 6c 6f 61 64 24 20 3d 20 76 61 6c 75 65 24 0d |eload$ = value$.| 00002230 0e c4 0b 20 20 20 20 20 20 cb 0d 0e ce 07 20 20 |... ..... | 00002240 cd 0d 0e d8 05 ce 0d 0e e2 09 d9 23 69 6e 25 0d |...........#in%.| 00002250 0e ec 05 cd 0d 0e f6 05 e1 0d 0f 00 04 0d 0f 0a |................| 00002260 04 0d 0f 14 18 dd 20 f2 6c 6f 61 64 5f 73 6f 75 |...... .load_sou| 00002270 6e 64 73 28 64 69 72 24 29 0d 0f 1e 10 ea 20 69 |nds(dir$)..... i| 00002280 74 65 6d 2c 76 6f 69 63 65 0d 0f 28 21 de 20 69 |tem,voice..(!. i| 00002290 6e 66 6f 62 75 66 66 65 72 20 35 31 32 2c 70 61 |nfobuffer 512,pa| 000022a0 74 68 6e 61 6d 65 20 32 35 36 0d 0f 32 15 69 74 |thname 256..2.it| 000022b0 65 6d 20 3d 20 30 3a 76 6f 69 63 65 3d 31 36 0d |em = 0:voice=16.| 000022c0 0f 3c 16 24 70 61 74 68 6e 61 6d 65 3d 64 69 72 |.<.$pathname=dir| 000022d0 24 2b 22 2e 22 0d 0f 46 04 0d 0f 50 1f c8 99 20 |$+"."..F...P... | 000022e0 22 45 78 53 5f 4e 61 6d 65 22 2c 33 31 20 b8 20 |"ExS_Name",31 . | 000022f0 53 4d 76 6f 69 63 65 24 0d 0f 5a 21 53 4d 76 6f |SMvoice$..Z!SMvo| 00002300 69 63 65 24 3d 24 70 61 74 68 6e 61 6d 65 20 2b |ice$=$pathname +| 00002310 20 53 4d 76 6f 69 63 65 24 0d 0f 64 04 0d 0f 6e | SMvoice$..d...n| 00002320 10 e3 20 49 25 3d 31 36 20 b8 20 33 31 0d 0f 78 |.. I%=16 . 31..x| 00002330 18 20 20 c8 99 20 22 45 78 53 5f 52 65 6d 6f 76 |. .. "ExS_Remov| 00002340 65 22 2c 49 25 0d 0f 82 05 ed 0d 0f 8c 04 0d 0f |e",I%...........| 00002350 96 2b c8 99 20 22 4f 53 5f 46 53 43 6f 6e 74 72 |.+.. "OS_FSContr| 00002360 6f 6c 22 2c 32 38 2c 64 69 72 24 2c 2c 30 20 b8 |ol",28,dir$,,0 .| 00002370 20 2c 2c 2c 66 69 6c 65 73 0d 0f a0 04 0d 0f aa | ,,,files.......| 00002380 0f e7 20 66 69 6c 65 73 3e 30 20 8c 0d 0f b4 04 |.. files>0 .....| 00002390 0d 0f be 11 c8 95 20 69 74 65 6d 20 3c 3e 20 2d |...... item <> -| 000023a0 31 0d 0f c8 11 20 20 4a 25 3d a9 20 64 69 72 24 |1.... J%=. dir$| 000023b0 2b 31 0d 0f d2 3c 20 20 c8 99 20 22 4f 53 5f 47 |+1...< .. "OS_G| 000023c0 42 50 42 22 2c 39 2c 64 69 72 24 2c 69 6e 66 6f |BPB",9,dir$,info| 000023d0 62 75 66 66 65 72 2c 31 2c 69 74 65 6d 2c 35 31 |buffer,1,item,51| 000023e0 32 2c 30 20 b8 20 2c 2c 2c 2c 69 74 65 6d 0d 0f |2,0 . ,,,,item..| 000023f0 dc 0a 20 20 49 25 3d 30 0d 0f e6 19 20 20 c8 95 |.. I%=0.... ..| 00002400 20 69 6e 66 6f 62 75 66 66 65 72 3f 49 25 20 3e | infobuffer?I% >| 00002410 30 0d 0f f0 23 20 20 20 20 70 61 74 68 6e 61 6d |0...# pathnam| 00002420 65 3f 4a 25 20 3d 20 69 6e 66 6f 62 75 66 66 65 |e?J% = infobuffe| 00002430 72 3f 49 25 0d 0f fa 13 20 20 20 20 49 25 2b 3d |r?I%.... I%+=| 00002440 31 3a 4a 25 2b 3d 31 0d 10 04 07 20 20 ce 0d 10 |1:J%+=1.... ...| 00002450 0e 16 20 20 70 61 74 68 6e 61 6d 65 3f 4a 25 20 |.. pathname?J% | 00002460 3d 20 31 33 0d 10 18 25 20 20 c8 99 20 22 45 78 |= 13...% .. "Ex| 00002470 53 5f 49 6e 73 74 61 6c 6c 22 2c 76 6f 69 63 65 |S_Install",voice| 00002480 2c 70 61 74 68 6e 61 6d 65 0d 10 22 0e 20 20 76 |,pathname..". v| 00002490 6f 69 63 65 2b 3d 31 0d 10 2c 05 ce 0d 10 36 04 |oice+=1..,....6.| 000024a0 0d 10 40 05 cd 0d 10 4a 05 e1 0d 10 54 04 0d 10 |..@....J....T...| 000024b0 5e 1e dd 20 a4 67 65 74 5f 6d 61 78 5f 73 70 72 |^.. .get_max_spr| 000024c0 69 74 65 6c 65 6e 28 64 69 72 24 29 0d 10 68 1e |itelen(dir$)..h.| 000024d0 ea 20 69 74 65 6d 2c 66 69 6c 65 73 2c 62 69 67 |. item,files,big| 000024e0 67 65 73 74 2c 73 70 6c 65 6e 0d 10 72 21 de 20 |gest,splen..r!. | 000024f0 69 6e 66 6f 62 75 66 66 65 72 20 35 31 32 2c 70 |infobuffer 512,p| 00002500 61 74 68 6e 61 6d 65 20 32 35 36 0d 10 7c 29 69 |athname 256..|)i| 00002510 74 65 6d 20 3d 20 30 3a 62 69 67 67 65 73 74 3d |tem = 0:biggest=| 00002520 30 3a 24 70 61 74 68 6e 61 6d 65 3d 64 69 72 24 |0:$pathname=dir$| 00002530 2b 22 2e 22 0d 10 86 04 0d 10 90 2b c8 99 20 22 |+".".......+.. "| 00002540 4f 53 5f 46 53 43 6f 6e 74 72 6f 6c 22 2c 32 38 |OS_FSControl",28| 00002550 2c 64 69 72 24 2c 2c 30 20 b8 20 2c 2c 2c 66 69 |,dir$,,0 . ,,,fi| 00002560 6c 65 73 0d 10 9a 04 0d 10 a4 0f e7 20 66 69 6c |les......... fil| 00002570 65 73 3e 30 20 8c 0d 10 ae 04 0d 10 b8 11 c8 95 |es>0 ...........| 00002580 20 69 74 65 6d 20 3c 3e 20 2d 31 0d 10 c2 11 20 | item <> -1.... | 00002590 20 4a 25 3d a9 20 64 69 72 24 2b 31 0d 10 cc 04 | J%=. dir$+1....| 000025a0 0d 10 d6 3c 20 20 c8 99 20 22 4f 53 5f 47 42 50 |...< .. "OS_GBP| 000025b0 42 22 2c 39 2c 64 69 72 24 2c 69 6e 66 6f 62 75 |B",9,dir$,infobu| 000025c0 66 66 65 72 2c 31 2c 69 74 65 6d 2c 35 31 32 2c |ffer,1,item,512,| 000025d0 30 20 b8 20 2c 2c 2c 2c 69 74 65 6d 0d 10 e0 0a |0 . ,,,,item....| 000025e0 20 20 49 25 3d 30 0d 10 ea 19 20 20 c8 95 20 69 | I%=0.... .. i| 000025f0 6e 66 6f 62 75 66 66 65 72 3f 49 25 20 3e 30 0d |nfobuffer?I% >0.| 00002600 10 f4 23 20 20 20 20 70 61 74 68 6e 61 6d 65 3f |..# pathname?| 00002610 4a 25 20 3d 20 69 6e 66 6f 62 75 66 66 65 72 3f |J% = infobuffer?| 00002620 49 25 0d 10 fe 13 20 20 20 20 49 25 2b 3d 31 3a |I%.... I%+=1:| 00002630 4a 25 2b 3d 31 0d 11 08 07 20 20 ce 0d 11 12 16 |J%+=1.... .....| 00002640 20 20 70 61 74 68 6e 61 6d 65 3f 4a 25 20 3d 20 | pathname?J% = | 00002650 31 33 0d 11 1c 2e 20 20 c8 99 20 22 4f 53 5f 46 |13.... .. "OS_F| 00002660 69 6c 65 22 2c 35 2c 70 61 74 68 6e 61 6d 65 20 |ile",5,pathname | 00002670 b8 20 2c 2c 66 74 79 70 65 2c 2c 73 70 6c 65 6e |. ,,ftype,,splen| 00002680 0d 11 26 21 20 20 66 74 79 70 65 20 3d 20 28 66 |..&! ftype = (f| 00002690 74 79 70 65 20 3e 3e 20 38 29 20 80 20 26 66 66 |type >> 8) . &ff| 000026a0 66 0d 11 30 38 20 20 e7 20 66 74 79 70 65 20 3d |f..08 . ftype =| 000026b0 20 26 66 66 39 20 80 20 73 70 6c 65 6e 20 3e 20 | &ff9 . splen > | 000026c0 62 69 67 67 65 73 74 20 8c 20 62 69 67 67 65 73 |biggest . bigges| 000026d0 74 20 3d 20 73 70 6c 65 6e 0d 11 3a 05 ce 0d 11 |t = splen..:....| 000026e0 44 05 cd 0d 11 4e 0c 3d 62 69 67 67 65 73 74 0d |D....N.=biggest.| 000026f0 11 58 04 0d 11 62 04 0d 11 6c 19 dd 20 f2 61 73 |.X...b...l.. .as| 00002700 73 65 6d 62 6c 65 28 6f 72 67 2c 70 61 73 73 29 |semble(org,pass)| 00002710 0d 11 76 11 50 25 3d 6f 72 67 3a 4f 25 3d 6f 72 |..v.P%=org:O%=or| 00002720 67 0d 11 80 0d 5b 4f 50 54 20 70 61 73 73 0d 11 |g....[OPT pass..| 00002730 8a 0f 2e 6a 75 6d 70 5f 74 61 62 6c 65 0d 11 94 |...jump_table...| 00002740 04 0d 11 9e 04 0d 11 a8 20 2e 5f 61 63 74 69 76 |........ ._activ| 00002750 61 74 65 5f 6f 62 6a 65 63 74 20 20 20 20 62 20 |ate_object b | 00002760 64 75 6d 6d 79 0d 11 b2 20 2e 5f 64 65 61 63 74 |dummy... ._deact| 00002770 69 76 61 74 65 5f 6f 62 6a 65 63 74 20 20 62 20 |ivate_object b | 00002780 64 75 6d 6d 79 0d 11 bc 20 2e 5f 73 68 6f 77 5f |dummy... ._show_| 00002790 6f 62 6a 65 63 74 20 20 20 20 20 20 20 20 62 20 |object b | 000027a0 64 75 6d 6d 79 0d 11 c6 20 2e 5f 68 69 64 65 5f |dummy... ._hide_| 000027b0 6f 62 6a 65 63 74 20 20 20 20 20 20 20 20 62 20 |object b | 000027c0 64 75 6d 6d 79 0d 11 d0 20 2e 5f 73 77 6f 70 5f |dummy... ._swop_| 000027d0 6f 62 6a 65 63 74 73 20 20 20 20 20 20 20 62 20 |objects b | 000027e0 64 75 6d 6d 79 0d 11 da 20 2e 5f 73 65 74 5f 63 |dummy... ._set_c| 000027f0 6f 6f 72 64 73 20 20 20 20 20 20 20 20 20 62 20 |oords b | 00002800 64 75 6d 6d 79 0d 11 e4 20 2e 5f 73 68 69 66 74 |dummy... ._shift| 00002810 5f 6f 62 6a 65 63 74 20 20 20 20 20 20 20 62 20 |_object b | 00002820 64 75 6d 6d 79 0d 11 ee 20 2e 5f 63 6f 70 79 5f |dummy... ._copy_| 00002830 63 6f 6f 72 64 73 20 20 20 20 20 20 20 20 62 20 |coords b | 00002840 64 75 6d 6d 79 0d 11 f8 20 2e 5f 72 65 76 65 72 |dummy... ._rever| 00002850 73 65 5f 76 65 72 74 69 63 61 6c 20 20 20 62 20 |se_vertical b | 00002860 64 75 6d 6d 79 0d 12 02 20 2e 5f 72 65 76 65 72 |dummy... ._rever| 00002870 73 65 5f 68 6f 72 69 7a 6f 6e 74 61 6c 20 62 20 |se_horizontal b | 00002880 64 75 6d 6d 79 0d 12 0c 20 2e 5f 73 65 74 5f 58 |dummy... ._set_X| 00002890 76 65 6c 6f 63 69 74 79 20 20 20 20 20 20 62 20 |velocity b | 000028a0 64 75 6d 6d 79 0d 12 16 20 2e 5f 73 65 74 5f 59 |dummy... ._set_Y| 000028b0 76 65 6c 6f 63 69 74 79 20 20 20 20 20 20 62 20 |velocity b | 000028c0 64 75 6d 6d 79 0d 12 20 20 2e 5f 61 74 74 61 63 |dummy.. ._attac| 000028d0 68 5f 74 6f 5f 70 61 74 68 20 20 20 20 20 62 20 |h_to_path b | 000028e0 64 75 6d 6d 79 0d 12 2a 20 2e 5f 6c 6f 61 64 5f |dummy..* ._load_| 000028f0 73 63 72 65 65 6e 20 20 20 20 20 20 20 20 62 20 |screen b | 00002900 64 75 6d 6d 79 0d 12 34 20 2e 5f 73 63 72 6f 6c |dummy..4 ._scrol| 00002910 6c 5f 68 20 20 20 20 20 20 20 20 20 20 20 62 20 |l_h b | 00002920 64 75 6d 6d 79 0d 12 3e 20 2e 5f 73 63 72 6f 6c |dummy..> ._scrol| 00002930 6c 5f 76 20 20 20 20 20 20 20 20 20 20 20 62 20 |l_v b | 00002940 64 75 6d 6d 79 0d 12 48 20 2e 5f 70 75 74 5f 76 |dummy..H ._put_v| 00002950 61 72 20 20 20 20 20 20 20 20 20 20 20 20 62 20 |ar b | 00002960 64 75 6d 6d 79 0d 12 52 20 2e 5f 61 64 64 5f 76 |dummy..R ._add_v| 00002970 61 72 20 20 20 20 20 20 20 20 20 20 20 20 62 20 |ar b | 00002980 64 75 6d 6d 79 0d 12 5c 20 2e 5f 73 75 62 74 72 |dummy..\ ._subtr| 00002990 61 63 74 5f 76 61 72 20 20 20 20 20 20 20 62 20 |act_var b | 000029a0 64 75 6d 6d 79 0d 12 66 20 2e 5f 6d 61 6b 65 5f |dummy..f ._make_| 000029b0 73 6f 75 6e 64 20 20 20 20 20 20 20 20 20 62 20 |sound b | 000029c0 64 75 6d 6d 79 0d 12 70 20 2e 5f 77 61 69 74 20 |dummy..p ._wait | 000029d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 20 | b | 000029e0 64 75 6d 6d 79 0d 12 7a 20 2e 5f 73 6f 75 6e 64 |dummy..z ._sound| 000029f0 5f 6f 66 66 20 20 20 20 20 20 20 20 20 20 62 20 |_off b | 00002a00 64 75 6d 6d 79 0d 12 84 20 2e 5f 73 6f 75 6e 64 |dummy... ._sound| 00002a10 5f 6f 6e 20 20 20 20 20 20 20 20 20 20 20 62 20 |_on b | 00002a20 64 75 6d 6d 79 0d 12 8e 20 2e 5f 63 6f 70 79 5f |dummy... ._copy_| 00002a30 76 61 72 20 20 20 20 20 20 20 20 20 20 20 62 20 |var b | 00002a40 64 75 6d 6d 79 0d 12 98 20 2e 5f 6d 75 6c 74 69 |dummy... ._multi| 00002a50 70 6c 79 5f 76 61 72 20 20 20 20 20 20 20 62 20 |ply_var b | 00002a60 64 75 6d 6d 79 0d 12 a2 20 2e 5f 64 69 76 69 64 |dummy... ._divid| 00002a70 65 5f 76 61 72 20 20 20 20 20 20 20 20 20 62 20 |e_var b | 00002a80 64 75 6d 6d 79 0d 12 ac 20 2e 5f 70 72 69 6e 74 |dummy... ._print| 00002a90 5f 76 61 72 20 20 20 20 20 20 20 20 20 20 62 20 |_var b | 00002aa0 64 75 6d 6d 79 0d 12 b6 20 2e 5f 64 69 73 70 6c |dummy... ._displ| 00002ab0 61 79 5f 76 61 72 20 20 20 20 20 20 20 20 62 20 |ay_var b | 00002ac0 64 75 6d 6d 79 0d 12 c0 20 2e 5f 74 65 78 74 5f |dummy... ._text_| 00002ad0 63 6f 6c 6f 75 72 20 20 20 20 20 20 20 20 62 20 |colour b | 00002ae0 64 75 6d 6d 79 0d 12 ca 20 2e 5f 74 65 78 74 5f |dummy... ._text_| 00002af0 62 67 64 63 6f 6c 20 20 20 20 20 20 20 20 62 20 |bgdcol b | 00002b00 64 75 6d 6d 79 0d 12 d4 20 2e 5f 69 6e 69 74 69 |dummy... ._initi| 00002b10 61 6c 69 73 65 20 20 20 20 20 20 20 20 20 62 20 |alise b | 00002b20 64 75 6d 6d 79 0d 12 de 20 2e 5f 67 65 74 64 61 |dummy... ._getda| 00002b30 74 61 20 20 20 20 20 20 20 20 20 20 20 20 62 20 |ta b | 00002b40 64 75 6d 6d 79 0d 12 e8 20 2e 5f 64 69 73 70 6c |dummy... ._displ| 00002b50 61 79 20 20 20 20 20 20 20 20 20 20 20 20 62 20 |ay b | 00002b60 64 75 6d 6d 79 0d 12 f2 04 0d 12 fc 05 5d 0d 13 |dummy........]..| 00002b70 06 04 0d 13 10 10 e3 20 49 25 3d 31 20 b8 20 32 |....... I%=1 . 2| 00002b80 35 36 0d 13 1a 0d 5b 4f 50 54 20 70 61 73 73 0d |56....[OPT pass.| 00002b90 13 24 0b 62 20 64 75 6d 6d 79 0d 13 2e 05 5d 0d |.$.b dummy....].| 00002ba0 13 38 05 ed 0d 13 42 0d 5b 4f 50 54 20 70 61 73 |.8....B.[OPT pas| 00002bb0 73 0d 13 4c 0a 2e 64 75 6d 6d 79 0d 13 56 0e 6d |s..L..dummy..V.m| 00002bc0 6f 76 20 70 63 2c 72 31 34 0d 13 60 05 5d 0d 13 |ov pc,r14..`.]..| 00002bd0 6a 05 e1 0d 13 74 04 0d 13 7e 25 dd 20 f2 72 65 |j....t...~%. .re| 00002be0 61 64 5f 74 75 6e 65 73 28 6e 61 6d 65 24 2c 74 |ad_tunes(name$,t| 00002bf0 75 6e 65 24 28 29 2c f8 20 49 25 29 0d 13 88 13 |une$(),. I%)....| 00002c00 ea 20 63 68 6e 25 2c 70 74 72 2c 63 68 72 24 0d |. chn%,ptr,chr$.| 00002c10 13 92 08 49 25 3d 30 0d 13 9c 11 63 68 6e 25 3d |...I%=0....chn%=| 00002c20 8e 28 6e 61 6d 65 24 29 0d 13 a6 0f e7 20 63 68 |.(name$)..... ch| 00002c30 6e 25 3c 3e 30 20 8c 0d 13 b0 11 20 20 c8 95 20 |n%<>0 ..... .. | 00002c40 ac 20 c5 23 63 68 6e 25 0d 13 ba 14 20 20 20 20 |. .#chn%.... | 00002c50 74 75 6e 65 24 28 49 25 29 3d 22 22 0d 13 c4 19 |tune$(I%)=""....| 00002c60 20 20 20 20 e7 20 c5 23 63 68 6e 25 20 d9 23 63 | . .#chn% .#c| 00002c70 68 6e 25 3a e1 0d 13 ce 13 20 20 20 20 63 68 72 |hn%:..... chr| 00002c80 25 3d 9a 23 63 68 6e 25 0d 13 d8 12 20 20 20 20 |%=.#chn%.... | 00002c90 c8 95 20 63 68 72 25 3e 33 31 0d 13 e2 16 20 20 |.. chr%>31.... | 00002ca0 20 20 20 20 63 68 72 24 3d bd 28 63 68 72 25 29 | chr$=.(chr%)| 00002cb0 0d 13 ec 19 20 20 20 20 20 20 74 75 6e 65 24 28 |.... tune$(| 00002cc0 49 25 29 2b 3d 63 68 72 24 0d 13 f6 21 20 20 20 |I%)+=chr$...! | 00002cd0 20 20 20 e7 20 c5 23 63 68 6e 25 20 49 25 2b 3d | . .#chn% I%+=| 00002ce0 31 3a d9 23 63 68 6e 25 3a e1 0d 14 00 15 20 20 |1:.#chn%:..... | 00002cf0 20 20 20 20 63 68 72 25 3d 9a 23 63 68 6e 25 0d | chr%=.#chn%.| 00002d00 14 0a 09 20 20 20 20 ce 0d 14 14 0d 20 20 20 20 |... ..... | 00002d10 49 25 2b 3d 31 0d 14 1e 3b 20 20 20 20 e7 20 49 |I%+=1...; . I| 00002d20 25 3d 6d 61 78 5f 74 75 6e 65 73 20 85 20 31 2c |%=max_tunes . 1,| 00002d30 22 54 6f 6f 20 6d 61 6e 79 20 74 75 6e 65 73 20 |"Too many tunes | 00002d40 69 6e 20 27 54 75 6e 65 73 27 20 66 69 6c 65 22 |in 'Tunes' file"| 00002d50 0d 14 28 07 20 20 ce 0d 14 32 0c 20 20 d9 23 63 |..(. ...2. .#c| 00002d60 68 6e 25 0d 14 3c 05 cd 0d 14 46 05 e1 0d 14 50 |hn%..<....F....P| 00002d70 04 0d 14 5a 25 dd 20 f2 65 6e 64 5f 6f 66 5f 67 |...Z%. .end_of_g| 00002d80 61 6d 65 28 64 65 6c 61 79 2c 73 70 72 69 74 65 |ame(delay,sprite| 00002d90 24 2c 58 2c 59 29 0d 14 64 21 ea 20 74 69 6d 65 |$,X,Y)..d!. time| 00002da0 2c 77 69 64 74 68 2c 68 65 69 67 68 74 2c 72 69 |,width,height,ri| 00002db0 67 68 74 2c 74 6f 70 0d 14 6e 42 c8 99 20 22 4f |ght,top..nB.. "O| 00002dc0 53 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b |S_SpriteOp",256+| 00002dd0 34 30 2c 73 70 72 69 74 65 5f 61 72 65 61 32 2c |40,sprite_area2,| 00002de0 73 70 72 69 74 65 24 20 b8 20 2c 2c 2c 77 69 64 |sprite$ . ,,,wid| 00002df0 74 68 2c 68 65 69 67 68 74 0d 14 78 1a 77 69 64 |th,height..x.wid| 00002e00 74 68 20 20 3d 20 77 69 64 74 68 20 3c 3c 20 58 |th = width << X| 00002e10 45 69 67 0d 14 82 1b 68 65 69 67 68 74 20 3d 20 |Eig....height = | 00002e20 68 65 69 67 68 74 20 3c 3c 20 59 45 69 67 0d 14 |height << YEig..| 00002e30 8c 15 72 69 67 68 74 20 3d 20 58 20 2b 20 77 69 |..right = X + wi| 00002e40 64 74 68 0d 14 96 16 74 6f 70 20 20 20 3d 20 59 |dth....top = Y| 00002e50 20 2b 20 68 65 69 67 68 74 0d 14 a0 3f c8 99 20 | + height...?.. | 00002e60 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 |"OS_SpriteOp",25| 00002e70 36 2b 31 36 2c 73 70 72 69 74 65 5f 61 72 65 61 |6+16,sprite_area| 00002e80 32 2c 22 74 65 6d 70 22 2c 30 2c 58 2c 59 2c 72 |2,"temp",0,X,Y,r| 00002e90 69 67 68 74 2c 74 6f 70 0d 14 aa 36 c8 99 20 22 |ight,top...6.. "| 00002ea0 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 |OS_SpriteOp",256| 00002eb0 2b 33 34 2c 73 70 72 69 74 65 5f 61 72 65 61 32 |+34,sprite_area2| 00002ec0 2c 73 70 72 69 74 65 24 2c 58 2c 59 2c 38 0d 14 |,sprite$,X,Y,8..| 00002ed0 b4 0a 74 69 6d 65 3d 91 0d 14 be 18 f5 20 fd 20 |..time=...... . | 00002ee0 91 3e 74 69 6d 65 2b 64 65 6c 61 79 2a 31 30 30 |.>time+delay*100| 00002ef0 0d 14 c8 35 c8 99 20 22 4f 53 5f 53 70 72 69 74 |...5.. "OS_Sprit| 00002f00 65 4f 70 22 2c 32 35 36 2b 33 34 2c 73 70 72 69 |eOp",256+34,spri| 00002f10 74 65 5f 61 72 65 61 32 2c 22 74 65 6d 70 22 2c |te_area2,"temp",| 00002f20 58 2c 59 2c 38 0d 14 d2 05 e1 0d 14 dc 04 0d 14 |X,Y,8...........| 00002f30 e6 20 dd 20 a4 61 6e 6f 74 68 65 72 28 73 70 72 |. . .another(spr| 00002f40 69 74 65 24 2c 58 2c 59 2c 6b 65 79 24 29 0d 14 |ite$,X,Y,key$)..| 00002f50 f0 23 ea 20 41 6e 73 77 65 72 2c 77 69 64 74 68 |.#. Answer,width| 00002f60 2c 68 65 69 67 68 74 2c 72 69 67 68 74 2c 74 6f |,height,right,to| 00002f70 70 0d 14 fa 04 0d 15 04 42 c8 99 20 22 4f 53 5f |p.......B.. "OS_| 00002f80 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b 34 30 |SpriteOp",256+40| 00002f90 2c 73 70 72 69 74 65 5f 61 72 65 61 32 2c 73 70 |,sprite_area2,sp| 00002fa0 72 69 74 65 24 20 b8 20 2c 2c 2c 77 69 64 74 68 |rite$ . ,,,width| 00002fb0 2c 68 65 69 67 68 74 0d 15 0e 1a 77 69 64 74 68 |,height....width| 00002fc0 20 20 3d 20 77 69 64 74 68 20 3c 3c 20 58 45 69 | = width << XEi| 00002fd0 67 0d 15 18 1b 68 65 69 67 68 74 20 3d 20 68 65 |g....height = he| 00002fe0 69 67 68 74 20 3c 3c 20 59 45 69 67 0d 15 22 15 |ight << YEig..".| 00002ff0 72 69 67 68 74 20 3d 20 58 20 2b 20 77 69 64 74 |right = X + widt| 00003000 68 0d 15 2c 16 74 6f 70 20 20 20 3d 20 59 20 2b |h..,.top = Y +| 00003010 20 68 65 69 67 68 74 0d 15 36 3f c8 99 20 22 4f | height..6?.. "O| 00003020 53 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b |S_SpriteOp",256+| 00003030 31 36 2c 73 70 72 69 74 65 5f 61 72 65 61 32 2c |16,sprite_area2,| 00003040 22 74 65 6d 70 22 2c 30 2c 58 2c 59 2c 72 69 67 |"temp",0,X,Y,rig| 00003050 68 74 2c 74 6f 70 0d 15 40 36 c8 99 20 22 4f 53 |ht,top..@6.. "OS| 00003060 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b 33 |_SpriteOp",256+3| 00003070 34 2c 73 70 72 69 74 65 5f 61 72 65 61 32 2c 73 |4,sprite_area2,s| 00003080 70 72 69 74 65 24 2c 58 2c 59 2c 38 0d 15 4a 04 |prite$,X,Y,8..J.| 00003090 0d 15 54 08 c8 97 20 ee 0d 15 5e 1c c8 99 20 22 |..T... ...^... "| 000030a0 4f 53 5f 43 6f 6e 66 69 72 6d 22 20 b8 20 41 6e |OS_Confirm" . An| 000030b0 73 77 65 72 0d 15 68 08 c8 97 20 87 0d 15 72 1b |swer..h... ...r.| 000030c0 e7 20 41 6e 73 77 65 72 3d 97 22 79 22 20 8c 20 |. Answer=."y" . | 000030d0 3d b9 20 8b 20 3d a3 0d 15 7c 04 0d 15 86 04 0d |=. . =...|......| 000030e0 15 90 17 dd 20 f2 68 69 67 68 73 63 6f 72 65 28 |.... .highscore(| 000030f0 73 63 6f 72 65 29 0d 15 9a 24 ea 20 49 25 2c 4a |score)...$. I%,J| 00003100 25 2c 54 24 2c 6e 65 77 68 69 67 68 2c 6e 61 6d |%,T$,newhigh,nam| 00003110 65 24 2c 68 73 77 2c 68 73 68 0d 15 a4 17 e7 20 |e$,hsw,hsh..... | 00003120 73 68 6f 77 24 3d 22 4e 45 56 45 52 22 20 8c 20 |show$="NEVER" . | 00003130 e1 0d 15 ae 04 0d 15 b8 16 4a 25 3d 6d 61 78 68 |.........J%=maxh| 00003140 69 3a 6e 65 77 68 69 67 68 3d a3 0d 15 c2 1d c8 |i:newhigh=......| 00003150 95 20 73 63 6f 72 65 3e 73 63 6f 72 65 28 4a 25 |. score>score(J%| 00003160 29 20 80 20 4a 25 3e 30 0d 15 cc 0f 20 20 6e 65 |) . J%>0.... ne| 00003170 77 68 69 67 68 3d b9 0d 15 d6 0b 20 20 4a 25 2d |whigh=..... J%-| 00003180 3d 31 0d 15 e0 05 ce 0d 15 ea 26 e7 20 ac 20 6e |=1........&. . n| 00003190 65 77 68 69 67 68 20 80 20 73 68 6f 77 24 3d 22 |ewhigh . show$="| 000031a0 4e 45 57 53 43 4f 52 45 22 20 8c 20 e1 0d 15 f4 |NEWSCORE" . ....| 000031b0 04 0d 15 fe 49 c8 99 20 22 4f 53 5f 53 70 72 69 |....I.. "OS_Spri| 000031c0 74 65 4f 70 22 2c 32 35 36 2b 34 30 2c 73 70 72 |teOp",256+40,spr| 000031d0 69 74 65 5f 61 72 65 61 32 2c 68 73 5f 73 70 72 |ite_area2,hs_spr| 000031e0 69 74 65 24 20 b8 20 2c 2c 2c 68 73 77 69 64 74 |ite$ . ,,,hswidt| 000031f0 68 2c 68 73 68 65 69 67 68 74 0d 16 08 1e 68 73 |h,hsheight....hs| 00003200 77 69 64 74 68 20 20 3d 20 68 73 77 69 64 74 68 |width = hswidth| 00003210 20 3c 3c 20 58 45 69 67 0d 16 12 1f 68 73 68 65 | << XEig....hshe| 00003220 69 67 68 74 20 3d 20 68 73 68 65 69 67 68 74 20 |ight = hsheight | 00003230 3c 3c 20 59 45 69 67 0d 16 1c 32 68 73 77 3d 6d |<< YEig...2hsw=m| 00003240 61 78 6c 65 6e 2a 77 69 64 74 68 2b 6d 61 78 64 |axlen*width+maxd| 00003250 69 67 69 74 73 2a 77 69 64 74 68 2b 33 2a 77 69 |igits*width+3*wi| 00003260 64 74 68 2b 34 38 2b 32 34 0d 16 26 22 68 73 68 |dth+48+24..&"hsh| 00003270 3d 6d 61 78 68 69 2a 32 2a 68 65 69 67 68 74 2b |=maxhi*2*height+| 00003280 32 34 2b 68 73 68 65 69 67 68 74 0d 16 30 04 0d |24+hsheight..0..| 00003290 16 3a 3c f2 73 6c 61 62 28 68 73 78 2c 68 73 79 |.:<.slab(hsx,hsy| 000032a0 2c 68 73 77 2c 68 73 68 2c 31 36 2c 68 69 6c 69 |,hsw,hsh,16,hili| 000032b0 74 65 2c 73 6c 61 62 5f 63 6f 6c 6f 75 72 2c 6c |te,slab_colour,l| 000032c0 6f 6c 69 74 65 2c 6c 69 6e 65 29 0d 16 44 5d c8 |olite,line)..D].| 000032d0 99 20 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c |. "OS_SpriteOp",| 000032e0 32 35 36 2b 33 34 2c 73 70 72 69 74 65 5f 61 72 |256+34,sprite_ar| 000032f0 65 61 32 2c 68 73 5f 73 70 72 69 74 65 24 2c 68 |ea2,hs_sprite$,h| 00003300 73 78 2b 28 68 73 77 2d 68 73 77 69 64 74 68 29 |sx+(hsw-hswidth)| 00003310 2f 32 2c 68 73 79 2b 68 73 68 2d 68 73 68 65 69 |/2,hsy+hsh-hshei| 00003320 67 68 74 2d 31 36 2c 38 0d 16 4e 04 0d 16 58 14 |ght-16,8..N...X.| 00003330 e3 20 49 25 3d 30 20 b8 20 6d 61 78 68 69 2d 31 |. I%=0 . maxhi-1| 00003340 0d 16 62 53 20 20 f2 73 6c 61 62 28 68 73 78 2b |..bS .slab(hsx+| 00003350 32 34 2c 68 73 79 2b 32 34 2b 49 25 2a 32 2a 68 |24,hsy+24+I%*2*h| 00003360 65 69 67 68 74 2c 77 69 64 74 68 2a 33 2c 68 65 |eight,width*3,he| 00003370 69 67 68 74 2b 31 36 2c 34 2c 6c 6f 6c 69 74 65 |ight+16,4,lolite| 00003380 2c 69 6e 73 65 74 2c 68 69 6c 69 74 65 2c 6c 69 |,inset,hilite,li| 00003390 6e 65 29 0d 16 6c 14 20 20 54 24 3d c3 28 6d 61 |ne)..l. T$=.(ma| 000033a0 78 68 69 2d 49 25 29 0d 16 76 4a 20 20 f2 66 61 |xhi-I%)..vJ .fa| 000033b0 6e 63 79 5f 70 72 69 6e 74 28 54 24 2c 68 73 78 |ncy_print(T$,hsx| 000033c0 2b 32 34 2b 28 33 2d a9 54 24 29 2a 77 69 64 74 |+24+(3-.T$)*widt| 000033d0 68 2f 32 2c 68 73 79 2b 32 34 2b 49 25 2a 32 2a |h/2,hsy+24+I%*2*| 000033e0 68 65 69 67 68 74 2b 38 2c 31 2c 31 2c 31 2c 31 |height+8,1,1,1,1| 000033f0 29 0d 16 80 63 20 20 f2 73 6c 61 62 28 68 73 78 |)...c .slab(hsx| 00003400 2b 32 34 2b 77 69 64 74 68 2a 33 2b 31 32 2c 68 |+24+width*3+12,h| 00003410 73 79 2b 32 34 2b 49 25 2a 32 2a 68 65 69 67 68 |sy+24+I%*2*heigh| 00003420 74 2c 6d 61 78 6c 65 6e 2a 77 69 64 74 68 2c 68 |t,maxlen*width,h| 00003430 65 69 67 68 74 2b 31 36 2c 34 2c 6c 6f 6c 69 74 |eight+16,4,lolit| 00003440 65 2c 69 6e 73 65 74 2c 68 69 6c 69 74 65 2c 6c |e,inset,hilite,l| 00003450 69 6e 65 29 0d 16 8a 52 20 20 f2 66 61 6e 63 79 |ine)...R .fancy| 00003460 5f 70 72 69 6e 74 28 6e 61 6d 65 24 28 6d 61 78 |_print(name$(max| 00003470 68 69 2d 49 25 29 2c 68 73 78 2b 32 34 2b 77 69 |hi-I%),hsx+24+wi| 00003480 64 74 68 2a 33 2b 32 30 2c 68 73 79 2b 32 34 2b |dth*3+20,hsy+24+| 00003490 49 25 2a 32 2a 68 65 69 67 68 74 2b 38 2c 31 2c |I%*2*height+8,1,| 000034a0 31 2c 31 2c 31 29 0d 16 94 73 20 20 f2 73 6c 61 |1,1,1)...s .sla| 000034b0 62 28 68 73 78 2b 32 34 2b 77 69 64 74 68 2a 33 |b(hsx+24+width*3| 000034c0 2b 32 30 2b 6d 61 78 6c 65 6e 2a 77 69 64 74 68 |+20+maxlen*width| 000034d0 2c 68 73 79 2b 32 34 2b 49 25 2a 32 2a 68 65 69 |,hsy+24+I%*2*hei| 000034e0 67 68 74 2c 6d 61 78 64 69 67 69 74 73 2a 77 69 |ght,maxdigits*wi| 000034f0 64 74 68 2c 68 65 69 67 68 74 2b 31 36 2c 34 2c |dth,height+16,4,| 00003500 6c 6f 6c 69 74 65 2c 69 6e 73 65 74 2c 68 69 6c |lolite,inset,hil| 00003510 69 74 65 2c 6c 69 6e 65 29 0d 16 9e 62 20 20 f2 |ite,line)...b .| 00003520 66 61 6e 63 79 5f 70 72 69 6e 74 28 c3 28 73 63 |fancy_print(.(sc| 00003530 6f 72 65 28 6d 61 78 68 69 2d 49 25 29 29 2c 68 |ore(maxhi-I%)),h| 00003540 73 78 2b 32 34 2b 77 69 64 74 68 2a 33 2b 32 38 |sx+24+width*3+28| 00003550 2b 6d 61 78 6c 65 6e 2a 77 69 64 74 68 2c 68 73 |+maxlen*width,hs| 00003560 79 2b 32 34 2b 49 25 2a 32 2a 68 65 69 67 68 74 |y+24+I%*2*height| 00003570 2b 38 2c 31 2c 31 2c 31 2c 31 29 0d 16 a8 05 ed |+8,1,1,1,1).....| 00003580 0d 16 b2 0f e7 20 6e 65 77 68 69 67 68 20 8c 0d |..... newhigh ..| 00003590 16 bc 0b 20 20 4a 25 2b 3d 31 0d 16 c6 1c 20 20 |... J%+=1.... | 000035a0 e3 20 49 25 3d 6d 61 78 68 69 20 b8 20 4a 25 2b |. I%=maxhi . J%+| 000035b0 31 20 88 20 2d 31 0d 16 d0 1d 20 20 20 20 6e 61 |1 . -1.... na| 000035c0 6d 65 24 28 49 25 29 3d 6e 61 6d 65 24 28 49 25 |me$(I%)=name$(I%| 000035d0 2d 31 29 0d 16 da 1d 20 20 20 20 73 63 6f 72 65 |-1).... score| 000035e0 28 49 25 29 3d 73 63 6f 72 65 28 49 25 2d 31 29 |(I%)=score(I%-1)| 000035f0 0d 16 e4 56 20 20 20 20 f2 66 61 6e 63 79 5f 70 |...V .fancy_p| 00003600 72 69 6e 74 28 6e 61 6d 65 24 28 49 25 29 2c 68 |rint(name$(I%),h| 00003610 73 78 2b 32 34 2b 77 69 64 74 68 2a 33 2b 32 30 |sx+24+width*3+20| 00003620 2c 68 73 79 2b 32 34 2b 28 6d 61 78 68 69 2d 49 |,hsy+24+(maxhi-I| 00003630 25 29 2a 32 2a 68 65 69 67 68 74 2b 38 2c 31 2c |%)*2*height+8,1,| 00003640 31 2c 31 2c 31 29 0d 16 ee 66 20 20 20 20 f2 66 |1,1,1)...f .f| 00003650 61 6e 63 79 5f 70 72 69 6e 74 28 c3 28 73 63 6f |ancy_print(.(sco| 00003660 72 65 28 49 25 29 29 2c 68 73 78 2b 32 34 2b 77 |re(I%)),hsx+24+w| 00003670 69 64 74 68 2a 33 2b 32 38 2b 6d 61 78 6c 65 6e |idth*3+28+maxlen| 00003680 2a 77 69 64 74 68 2c 68 73 79 2b 32 34 2b 28 6d |*width,hsy+24+(m| 00003690 61 78 68 69 2d 49 25 29 2a 32 2a 68 65 69 67 68 |axhi-I%)*2*heigh| 000036a0 74 2b 38 2c 31 2c 31 2c 31 2c 31 29 0d 16 f8 07 |t+8,1,1,1,1)....| 000036b0 20 20 ed 0d 17 02 59 20 20 f2 66 61 6e 63 79 5f | ....Y .fancy_| 000036c0 70 72 69 6e 74 28 c4 6d 61 78 6c 65 6e 2d 31 2c |print(.maxlen-1,| 000036d0 22 20 22 29 2c 68 73 78 2b 32 34 2b 77 69 64 74 |" "),hsx+24+widt| 000036e0 68 2a 33 2b 32 30 2c 68 73 79 2b 32 34 2b 28 6d |h*3+20,hsy+24+(m| 000036f0 61 78 68 69 2d 4a 25 29 2a 32 2a 68 65 69 67 68 |axhi-J%)*2*heigh| 00003700 74 2b 38 2c 31 2c 31 2c 31 2c 31 29 0d 17 0c 69 |t+8,1,1,1,1)...i| 00003710 20 20 f2 66 61 6e 63 79 5f 70 72 69 6e 74 28 c4 | .fancy_print(.| 00003720 6d 61 78 64 69 67 69 74 73 2d 31 2c 22 20 22 29 |maxdigits-1," ")| 00003730 2c 68 73 78 2b 32 34 2b 77 69 64 74 68 2a 33 2b |,hsx+24+width*3+| 00003740 32 38 2b 6d 61 78 6c 65 6e 2a 77 69 64 74 68 2c |28+maxlen*width,| 00003750 68 73 79 2b 32 34 2b 28 6d 61 78 68 69 2d 4a 25 |hsy+24+(maxhi-J%| 00003760 29 2a 32 2a 68 65 69 67 68 74 2b 38 2c 31 2c 31 |)*2*height+8,1,1| 00003770 2c 31 2c 31 29 0d 17 16 60 20 20 f2 66 61 6e 63 |,1,1)...` .fanc| 00003780 79 5f 70 72 69 6e 74 28 c3 28 73 63 6f 72 65 29 |y_print(.(score)| 00003790 2c 68 73 78 2b 32 34 2b 77 69 64 74 68 2a 33 2b |,hsx+24+width*3+| 000037a0 32 38 2b 6d 61 78 6c 65 6e 2a 77 69 64 74 68 2c |28+maxlen*width,| 000037b0 68 73 79 2b 32 34 2b 28 6d 61 78 68 69 2d 4a 25 |hsy+24+(maxhi-J%| 000037c0 29 2a 32 2a 68 65 69 67 68 74 2b 38 2c 31 2c 31 |)*2*height+8,1,1| 000037d0 2c 31 2c 31 29 0d 17 20 49 20 20 6e 61 6d 65 24 |,1,1).. I name$| 000037e0 3d a4 69 6e 70 75 74 5f 6e 61 6d 65 28 68 73 78 |=.input_name(hsx| 000037f0 2b 32 34 2b 77 69 64 74 68 2a 33 2b 32 30 2c 68 |+24+width*3+20,h| 00003800 73 79 2b 32 34 2b 28 6d 61 78 68 69 2d 4a 25 29 |sy+24+(maxhi-J%)| 00003810 2a 32 2a 68 65 69 67 68 74 2b 38 2c a3 29 0d 17 |*2*height+8,.)..| 00003820 2a 2d 20 20 6e 61 6d 65 24 28 4a 25 29 3d c0 6e |*- name$(J%)=.n| 00003830 61 6d 65 24 2b c4 6d 61 78 6c 65 6e 2c 22 20 22 |ame$+.maxlen," "| 00003840 29 2c 6d 61 78 6c 65 6e 2d 31 29 0d 17 34 15 20 |),maxlen-1)..4. | 00003850 20 73 63 6f 72 65 28 4a 25 29 3d 73 63 6f 72 65 | score(J%)=score| 00003860 0d 17 3e 54 20 20 f2 66 61 6e 63 79 5f 70 72 69 |..>T .fancy_pri| 00003870 6e 74 28 6e 61 6d 65 24 28 4a 25 29 2c 68 73 78 |nt(name$(J%),hsx| 00003880 2b 32 34 2b 77 69 64 74 68 2a 33 2b 32 30 2c 68 |+24+width*3+20,h| 00003890 73 79 2b 32 34 2b 28 6d 61 78 68 69 2d 4a 25 29 |sy+24+(maxhi-J%)| 000038a0 2a 32 2a 68 65 69 67 68 74 2b 38 2c 31 2c 31 2c |*2*height+8,1,1,| 000038b0 31 2c 31 29 0d 17 48 05 cd 0d 17 52 05 e1 0d 17 |1,1)..H....R....| 000038c0 5c 04 0d 17 66 1b dd 20 a4 69 6e 70 75 74 5f 6e |\...f.. .input_n| 000038d0 61 6d 65 28 58 2c 59 2c 68 69 64 65 29 0d 17 70 |ame(X,Y,hide)..p| 000038e0 18 ea 20 63 68 72 2c 49 25 2c 6e 61 6d 65 24 2c |.. chr,I%,name$,| 000038f0 64 75 6d 6d 79 0d 17 7a 0b 2a 46 58 32 31 2c 30 |dummy..z.*FX21,0| 00003900 0d 17 84 0a 2a 46 58 34 2c 31 0d 17 8e 21 f2 66 |....*FX4,1...!.f| 00003910 61 6e 63 79 5f 70 72 69 6e 74 28 22 5f 22 2c 58 |ancy_print("_",X| 00003920 2c 59 2c 31 2c 31 2c 31 2c 31 29 0d 17 98 09 63 |,Y,1,1,1,1)....c| 00003930 68 72 3d a5 0d 17 a2 1e c8 95 20 63 68 72 3c 3e |hr=....... chr<>| 00003940 31 33 20 80 20 49 25 3c 28 6d 61 78 6c 65 6e 2d |13 . I%<(maxlen-| 00003950 31 29 0d 17 ac 1a 20 20 e7 20 63 68 72 3c 31 32 |1).... . chr<12| 00003960 37 20 80 20 63 68 72 3e 33 31 20 8c 0d 17 b6 19 |7 . chr>31 .....| 00003970 20 20 6e 61 6d 65 24 2b 3d bd 28 63 68 72 29 3a | name$+=.(chr):| 00003980 49 25 2b 3d 31 0d 17 c0 15 20 20 e7 20 68 69 64 |I%+=1.... . hid| 00003990 65 20 8c 20 63 68 72 3d 34 32 0d 17 ca 26 20 20 |e . chr=42...& | 000039a0 f2 66 61 6e 63 79 5f 70 72 69 6e 74 28 bd 28 63 |.fancy_print(.(c| 000039b0 68 72 29 2c 58 2c 59 2c 31 2c 31 2c 31 2c 31 29 |hr),X,Y,1,1,1,1)| 000039c0 0d 17 d4 39 20 20 e7 20 49 25 3c 28 6d 61 78 6c |...9 . I%<(maxl| 000039d0 65 6e 2d 31 29 20 f2 66 61 6e 63 79 5f 70 72 69 |en-1) .fancy_pri| 000039e0 6e 74 28 22 5f 22 2c 58 2b 77 69 64 74 68 2c 59 |nt("_",X+width,Y| 000039f0 2c 31 2c 31 2c 31 2c 31 29 0d 17 de 0e 20 20 58 |,1,1,1,1).... X| 00003a00 2b 3d 77 69 64 74 68 0d 17 e8 07 20 20 cc 0d 17 |+=width.... ...| 00003a10 f2 18 20 20 e7 20 63 68 72 3d 31 32 37 20 80 20 |.. . chr=127 . | 00003a20 49 25 3e 30 20 8c 0d 17 fc 25 20 20 20 20 f2 66 |I%>0 ....% .f| 00003a30 61 6e 63 79 5f 70 72 69 6e 74 28 22 20 22 2c 58 |ancy_print(" ",X| 00003a40 2c 59 2c 31 2c 31 2c 31 2c 31 29 0d 18 06 0d 20 |,Y,1,1,1,1).... | 00003a50 20 20 20 49 25 2d 3d 31 0d 18 10 10 20 20 20 20 | I%-=1.... | 00003a60 58 2d 3d 77 69 64 74 68 0d 18 1a 25 20 20 20 20 |X-=width...% | 00003a70 f2 66 61 6e 63 79 5f 70 72 69 6e 74 28 22 5f 22 |.fancy_print("_"| 00003a80 2c 58 2c 59 2c 31 2c 31 2c 31 2c 31 29 0d 18 24 |,X,Y,1,1,1,1)..$| 00003a90 18 20 20 20 20 6e 61 6d 65 24 3d c0 6e 61 6d 65 |. name$=.name| 00003aa0 24 2c 49 25 29 0d 18 2e 07 20 20 cd 0d 18 38 07 |$,I%).... ...8.| 00003ab0 20 20 cd 0d 18 42 0b 20 20 63 68 72 3d a5 0d 18 | ...B. chr=...| 00003ac0 4c 05 ce 0d 18 56 0a 2a 46 58 34 2c 30 0d 18 60 |L....V.*FX4,0..`| 00003ad0 0a 3d 6e 61 6d 65 24 0d 18 6a 04 0d 18 74 33 dd |.=name$..j...t3.| 00003ae0 20 f2 66 61 6e 63 79 5f 70 72 69 6e 74 28 74 65 | .fancy_print(te| 00003af0 78 74 24 2c 58 2c 59 2c 58 6d 75 6c 74 2c 59 6d |xt$,X,Y,Xmult,Ym| 00003b00 75 6c 74 2c 58 64 69 76 2c 59 64 69 76 29 0d 18 |ult,Xdiv,Ydiv)..| 00003b10 7e 12 ea 20 49 25 2c 63 68 24 2c 69 6e 69 74 58 |~.. I%,ch$,initX| 00003b20 0d 18 88 0b 69 6e 69 74 58 3d 58 0d 18 92 0e de |....initX=X.....| 00003b30 20 73 63 61 6c 65 20 31 36 0d 18 9c 3a 73 63 61 | scale 16...:sca| 00003b40 6c 65 21 30 3d 58 6d 75 6c 74 3a 73 63 61 6c 65 |le!0=Xmult:scale| 00003b50 21 34 3d 59 6d 75 6c 74 3a 73 63 61 6c 65 21 38 |!4=Ymult:scale!8| 00003b60 3d 58 64 69 76 3a 73 63 61 6c 65 21 31 32 3d 59 |=Xdiv:scale!12=Y| 00003b70 64 69 76 0d 18 a6 14 e3 20 49 25 3d 31 20 b8 20 |div..... I%=1 . | 00003b80 a9 20 74 65 78 74 24 0d 18 b0 1c 20 20 63 68 24 |. text$.... ch$| 00003b90 3d c3 28 97 28 c1 74 65 78 74 24 2c 49 25 2c 31 |=.(.(.text$,I%,1| 00003ba0 29 29 29 0d 18 ba 1c 20 20 e7 20 63 68 24 3d 22 |))).... . ch$="| 00003bb0 31 32 36 22 20 8c 20 63 68 24 3d 22 33 32 22 0d |126" . ch$="32".| 00003bc0 18 c4 13 20 20 e7 20 63 68 24 3d 22 31 32 34 22 |... . ch$="124"| 00003bd0 20 8c 0d 18 ce 1e 20 20 20 20 59 2d 3d 68 65 69 | ..... Y-=hei| 00003be0 67 68 74 2a 59 6d 75 6c 74 20 81 20 59 64 69 76 |ght*Ymult . Ydiv| 00003bf0 0d 18 d8 0f 20 20 20 20 58 3d 69 6e 69 74 58 0d |.... X=initX.| 00003c00 18 e2 07 20 20 cc 0d 18 ec 3a 20 20 20 20 c8 99 |... ....: ..| 00003c10 20 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c 32 | "OS_SpriteOp",2| 00003c20 35 36 2b 35 32 2c 61 6c 70 68 61 62 65 74 2c 63 |56+52,alphabet,c| 00003c30 68 24 2c 58 2c 59 2c 38 2c 73 63 61 6c 65 2c 30 |h$,X,Y,8,scale,0| 00003c40 0d 18 f6 1d 20 20 20 20 58 2b 3d 77 69 64 74 68 |.... X+=width| 00003c50 2a 58 6d 75 6c 74 20 81 20 58 64 69 76 0d 19 00 |*Xmult . Xdiv...| 00003c60 07 20 20 cd 0d 19 0a 05 ed 0d 19 14 05 e1 0d 19 |. .............| 00003c70 1e 04 0d 19 28 22 dd 20 f2 73 6c 61 62 28 78 2c |....(". .slab(x,| 00003c80 79 2c 6c 2c 68 2c 77 2c 63 31 2c 63 32 2c 63 33 |y,l,h,w,c1,c2,c3| 00003c90 2c 63 34 29 0d 19 32 07 e6 63 31 0d 19 3c 11 c8 |,c4)..2..c1..<..| 00003ca0 93 20 c8 90 20 78 2c 79 2c 6c 2c 68 0d 19 46 08 |. .. x,y,l,h..F.| 00003cb0 e6 20 63 33 0d 19 50 1b ec 20 78 2b 6c 2d 77 2c |. c3..P.. x+l-w,| 00003cc0 79 2b 68 2d 77 3a ec 20 78 2b 6c 2c 79 2b 68 0d |y+h-w:. x+l,y+h.| 00003cd0 19 5a 11 f0 38 35 2c 78 2b 6c 2c 79 2b 68 2d 77 |.Z..85,x+l,y+h-w| 00003ce0 0d 19 64 17 c8 93 20 c8 90 20 78 2b 77 2c 79 2c |..d... .. x+w,y,| 00003cf0 6c 2d 77 2c 68 2d 77 0d 19 6e 1e ec 20 78 2c 79 |l-w,h-w..n.. x,y| 00003d00 3a ec 20 78 2b 77 2c 79 3a f0 20 38 35 2c 78 2b |:. x+w,y:. 85,x+| 00003d10 77 2c 79 2b 77 0d 19 78 08 e6 20 63 34 0d 19 82 |w,y+w..x.. c4...| 00003d20 15 86 20 78 2c 79 2b 68 2c 78 2b 77 2c 79 2b 68 |.. x,y+h,x+w,y+h| 00003d30 2d 77 0d 19 8c 15 86 20 78 2b 6c 2c 79 2c 78 2b |-w..... x+l,y,x+| 00003d40 6c 2d 77 2c 79 2b 77 0d 19 96 0e e6 20 63 32 20 |l-w,y+w..... c2 | 00003d50 c8 9c 20 36 34 0d 19 a0 1d c8 93 20 c8 90 20 78 |.. 64...... .. x| 00003d60 2b 77 2c 79 2b 77 2c 6c 2d 32 2a 77 2c 68 2d 32 |+w,y+w,l-2*w,h-2| 00003d70 2a 77 0d 19 aa 05 e1 0d 19 b4 04 0d 19 be 1b dd |*w..............| 00003d80 20 f2 73 6f 72 74 5f 68 69 67 68 73 63 6f 72 65 | .sort_highscore| 00003d90 73 28 6e 75 6d 29 0d 19 c8 0d ea 20 49 25 2c 73 |s(num)..... I%,s| 00003da0 77 6f 70 0d 19 d2 05 f5 0d 19 dc 0c 20 20 73 77 |wop......... sw| 00003db0 6f 70 3d a3 0d 19 e6 14 20 20 e3 20 49 25 3d 31 |op=..... . I%=1| 00003dc0 20 b8 20 6e 75 6d 2d 31 0d 19 f0 23 20 20 20 20 | . num-1...# | 00003dd0 e7 20 73 63 6f 72 65 28 49 25 29 20 3c 20 73 63 |. score(I%) < sc| 00003de0 6f 72 65 28 49 25 2b 31 29 20 8c 0d 19 fa 10 20 |ore(I%+1) ..... | 00003df0 20 20 20 20 20 73 77 6f 70 3d b9 0d 1a 04 22 20 | swop=...." | 00003e00 20 20 20 20 20 c8 94 20 73 63 6f 72 65 28 49 25 | .. score(I%| 00003e10 29 2c 73 63 6f 72 65 28 49 25 2b 31 29 0d 1a 0e |),score(I%+1)...| 00003e20 22 20 20 20 20 20 20 c8 94 20 6e 61 6d 65 24 28 |" .. name$(| 00003e30 49 25 29 2c 6e 61 6d 65 24 28 49 25 2b 31 29 0d |I%),name$(I%+1).| 00003e40 1a 18 09 20 20 20 20 cd 0d 1a 22 07 20 20 ed 0d |... ...". ..| 00003e50 1a 2c 0c 20 20 6e 75 6d 2d 3d 31 0d 1a 36 0c fd |.,. num-=1..6..| 00003e60 20 ac 20 73 77 6f 70 0d 1a 40 05 e1 0d 1a 4a 04 | . swop..@....J.| 00003e70 0d 1a 54 1d dd 20 f2 73 61 76 65 5f 68 69 67 68 |..T.. .save_high| 00003e80 73 63 6f 72 65 73 28 66 69 6c 65 24 29 0d 1a 5e |scores(file$)..^| 00003e90 21 ea 20 6f 75 74 25 2c 49 25 2c 68 65 61 64 65 |!. out%,I%,heade| 00003ea0 72 24 2c 64 61 74 65 24 2c 79 65 61 72 24 0d 1a |r$,date$,year$..| 00003eb0 68 04 0d 1a 72 db ea 20 85 3a ee 20 85 20 ea 20 |h...r.. .:. . . | 00003ec0 e7 20 9f 3d 26 31 30 38 43 39 20 84 20 9f 3d 26 |. .=&108C9 . .=&| 00003ed0 31 30 38 43 41 20 f2 66 61 6e 63 79 5f 70 72 69 |108CA .fancy_pri| 00003ee0 6e 74 28 22 20 20 43 6f 75 6c 64 6e 27 74 20 73 |nt(" Couldn't s| 00003ef0 61 76 65 20 48 69 67 68 53 63 6f 72 65 20 54 61 |ave HighScore Ta| 00003f00 62 6c 65 2e 20 20 7c 20 20 50 6c 65 61 73 65 20 |ble. | Please | 00003f10 6d 6f 76 65 20 77 72 69 74 65 2d 70 72 6f 74 65 |move write-prote| 00003f20 63 74 20 74 61 62 20 20 20 7c 74 6f 20 27 77 72 |ct tab |to 'wr| 00003f30 69 74 65 27 20 70 6f 73 69 74 69 6f 6e 20 61 6e |ite' position an| 00003f40 64 20 68 69 74 20 52 45 54 55 52 4e 22 2c 38 30 |d hit RETURN",80| 00003f50 2c 33 30 30 2c 31 2c 31 2c 31 2c 31 29 3a 64 75 |,300,1,1,1,1):du| 00003f60 6d 6d 79 3d a5 20 8b 20 f1 f6 24 3b 22 20 28 45 |mmy=. . ..$;" (E| 00003f70 72 72 6f 72 20 63 6f 64 65 3a 20 22 3b 7e 9f 3b |rror code: ";~.;| 00003f80 22 29 22 3a 64 75 6d 6d 79 3d a5 3a e1 0d 1a 7c |")":dummy=.:...|| 00003f90 04 0d 1a 86 2e c8 99 20 22 58 4f 53 5f 52 65 61 |....... "XOS_Rea| 00003fa0 64 56 61 72 56 61 6c 22 2c 22 53 79 73 24 44 61 |dVarVal","Sys$Da| 00003fb0 74 65 22 2c 4f 53 62 75 66 66 65 72 2c 33 30 0d |te",OSbuffer,30.| 00003fc0 1a 90 12 4f 53 62 75 66 66 65 72 3f 31 30 3d 31 |...OSbuffer?10=1| 00003fd0 33 0d 1a 9a 13 64 61 74 65 24 3d 24 4f 53 62 75 |3....date$=$OSbu| 00003fe0 66 66 65 72 0d 1a a4 2e c8 99 20 22 58 4f 53 5f |ffer...... "XOS_| 00003ff0 52 65 61 64 56 61 72 56 61 6c 22 2c 22 53 79 73 |ReadVarVal","Sys| 00004000 24 59 65 61 72 22 2c 4f 53 62 75 66 66 65 72 2c |$Year",OSbuffer,| 00004010 33 30 0d 1a ae 11 4f 53 62 75 66 66 65 72 3f 34 |30....OSbuffer?4| 00004020 3d 31 33 0d 1a b8 13 79 65 61 72 24 3d 24 4f 53 |=13....year$=$OS| 00004030 62 75 66 66 65 72 0d 1a c2 04 0d 1a cc 10 6f 75 |buffer........ou| 00004040 74 25 3d ae 20 66 69 6c 65 24 0d 1a d6 3e 68 65 |t%=. file$...>he| 00004050 61 64 65 72 24 3d 22 3b 20 43 72 65 61 74 6f 72 |ader$="; Creator| 00004060 20 68 69 67 68 20 73 63 6f 72 65 20 74 61 62 6c | high score tabl| 00004070 65 20 28 22 2b 64 61 74 65 24 2b 22 20 22 2b 79 |e ("+date$+" "+y| 00004080 65 61 72 24 2b 22 29 22 0d 1a e0 12 d5 23 6f 75 |ear$+")".....#ou| 00004090 74 25 2c 68 65 61 64 65 72 24 0d 1a ea 12 e3 20 |t%,header$..... | 000040a0 49 25 3d 31 20 b8 20 6d 61 78 68 69 0d 1a f4 28 |I%=1 . maxhi...(| 000040b0 20 20 d5 23 6f 75 74 25 2c 6e 61 6d 65 24 28 49 | .#out%,name$(I| 000040c0 25 29 2b 22 3a 20 22 2b c3 28 73 63 6f 72 65 28 |%)+": "+.(score(| 000040d0 49 25 29 29 0d 1a fe 05 ed 0d 1b 08 0a d9 23 6f |I%))..........#o| 000040e0 75 74 25 0d 1b 12 1f ff 28 22 53 65 74 54 79 70 |ut%.....("SetTyp| 000040f0 65 20 22 2b 66 69 6c 65 24 2b 22 20 54 65 78 74 |e "+file$+" Text| 00004100 22 29 0d 1b 1c 05 e1 0d 1b 26 04 0d 1b 30 0b dd |").......&...0..| 00004110 20 f2 61 72 6d 33 0d 1b 3a 07 ea 20 85 0d 1b 44 | .arm3..:.. ...D| 00004120 12 ee 20 85 20 ea 20 61 72 6d 33 3d a3 3a e1 0d |.. . . arm3=.:..| 00004130 1b 4e 0d 2a 43 61 63 68 65 20 4f 4e 0d 1b 58 0d |.N.*Cache ON..X.| 00004140 e7 20 a6 28 2d 31 29 20 8c 0d 1b 62 0a 61 72 6d |. .(-1) ...b.arm| 00004150 33 3d a3 0d 1b 6c 0e 2a 43 61 63 68 65 20 4f 46 |3=...l.*Cache OF| 00004160 46 0d 1b 76 05 cc 0d 1b 80 0a 61 72 6d 33 3d b9 |F..v......arm3=.| 00004170 0d 1b 8a 05 cd 0d 1b 94 05 e1 0d 1b 9e 04 0d 1b |................| 00004180 a8 16 dd 20 a4 73 74 72 69 70 43 46 53 28 6e 61 |... .stripCFS(na| 00004190 6d 65 24 29 0d 1b b2 08 ea 20 49 25 0d 1b bc 12 |me$)..... I%....| 000041a0 49 25 3d a7 6e 61 6d 65 24 2c 22 23 22 29 0d 1b |I%=.name$,"#")..| 000041b0 c6 11 3d c1 6e 61 6d 65 24 2c 49 25 2b 31 29 0d |..=.name$,I%+1).| 000041c0 1b d0 04 0d 1b da 17 dd 20 a4 72 65 61 64 5f 4f |........ .read_O| 000041d0 53 76 61 72 28 76 61 72 24 29 0d 1b e4 0b ea 20 |Svar(var$)..... | 000041e0 62 79 74 65 73 0d 1b ee 35 c8 99 20 22 58 4f 53 |bytes...5.. "XOS| 000041f0 5f 52 65 61 64 56 61 72 56 61 6c 22 2c 76 61 72 |_ReadVarVal",var| 00004200 24 2c 4f 53 62 75 66 66 65 72 2c 32 35 35 2c 30 |$,OSbuffer,255,0| 00004210 20 b8 20 2c 2c 62 79 74 65 73 0d 1b f8 15 4f 53 | . ,,bytes....OS| 00004220 62 75 66 66 65 72 3f 62 79 74 65 73 3d 31 33 0d |buffer?bytes=13.| 00004230 1c 02 0e 3d 24 4f 53 62 75 66 66 65 72 0d 1c 0c |...=$OSbuffer...| 00004240 04 0d 1c 16 1b dd 20 f2 73 65 74 5f 4f 53 76 61 |...... .set_OSva| 00004250 72 28 76 61 72 24 2c 76 61 6c 24 29 0d 1c 20 1c |r(var$,val$).. .| 00004260 e7 20 76 61 6c 24 3d 22 22 20 8c 20 76 61 6c 24 |. val$="" . val$| 00004270 3d bd 33 34 2b bd 33 34 0d 1c 2a 1b ff 28 22 53 |=.34+.34..*..("S| 00004280 65 74 20 22 2b 76 61 72 24 2b 22 20 22 2b 76 61 |et "+var$+" "+va| 00004290 6c 24 29 0d 1c 34 05 e1 0d 1c 3e 04 0d 1c 48 14 |l$)..4....>...H.| 000042a0 dd 20 f2 77 61 69 74 28 73 65 63 6f 6e 64 73 29 |. .wait(seconds)| 000042b0 0d 1c 52 0a ea 20 74 69 6d 65 0d 1c 5c 0a 74 69 |..R.. time..\.ti| 000042c0 6d 65 3d 91 0d 1c 66 1a f5 20 fd 20 91 3e 74 69 |me=...f.. . .>ti| 000042d0 6d 65 2b 73 65 63 6f 6e 64 73 2a 31 30 30 0d 1c |me+seconds*100..| 000042e0 70 05 e1 0d 1c 7a 04 0d 1c 84 12 dd 20 f2 63 6f |p....z...... .co| 000042f0 70 79 5f 73 63 72 65 65 6e 0d 1c 8e 0e de 20 62 |py_screen..... b| 00004300 6c 6f 63 6b 20 33 32 0d 1c 98 1b 21 62 6c 6f 63 |lock 32....!bloc| 00004310 6b 20 3d 20 31 34 38 3a 62 6c 6f 63 6b 21 38 3d |k = 148:block!8=| 00004320 2d 31 0d 1c a2 2b c8 99 20 22 4f 53 5f 52 65 61 |-1...+.. "OS_Rea| 00004330 64 56 64 75 56 61 72 69 61 62 6c 65 73 22 2c 62 |dVduVariables",b| 00004340 6c 6f 63 6b 2c 62 6c 6f 63 6b 2b 31 32 0d 1c ac |lock,block+12...| 00004350 28 c8 99 20 22 4f 53 5f 52 65 61 64 4d 6f 64 65 |(.. "OS_ReadMode| 00004360 56 61 72 69 61 62 6c 65 22 2c 2d 31 2c 37 20 b8 |Variable",-1,7 .| 00004370 20 2c 2c 43 25 0d 1c b6 1e 41 25 3d 62 6c 6f 63 | ,,C%....A%=bloc| 00004380 6b 21 31 32 2b 43 25 3a 42 25 3d 62 6c 6f 63 6b |k!12+C%:B%=block| 00004390 21 31 32 0d 1c c0 0a d6 20 63 6f 70 79 0d 1c ca |!12..... copy...| 000043a0 05 e1 0d 1c d4 04 0d 1c de 14 dd 20 f2 61 73 73 |........... .ass| 000043b0 65 6d 62 6c 65 5f 63 6f 70 79 0d 1c e8 0e de 20 |emble_copy..... | 000043c0 63 6f 64 65 20 31 30 30 0d 1c f2 16 e3 20 70 61 |code 100..... pa| 000043d0 73 73 20 3d 20 30 20 b8 20 32 20 88 20 32 0d 1c |ss = 0 . 2 . 2..| 000043e0 fc 0b 50 25 3d 63 6f 64 65 0d 1d 06 0d 5b 4f 50 |..P%=code....[OP| 000043f0 54 20 70 61 73 73 0d 1d 10 09 2e 63 6f 70 79 0d |T pass.....copy.| 00004400 1d 1a 12 4c 44 52 20 52 33 2c 5b 52 30 5d 2c 23 |...LDR R3,[R0],#| 00004410 34 0d 1d 24 12 53 54 52 20 52 33 2c 5b 52 31 5d |4..$.STR R3,[R1]| 00004420 2c 23 34 0d 1d 2e 11 53 55 42 53 20 52 32 2c 52 |,#4....SUBS R2,R| 00004430 32 2c 23 34 0d 1d 38 0c 42 4e 45 20 63 6f 70 79 |2,#4..8.BNE copy| 00004440 0d 1d 42 0e 4d 4f 56 20 50 43 2c 52 31 34 0d 1d |..B.MOV PC,R14..| 00004450 4c 05 5d 0d 1d 56 05 ed 0d 1d 60 05 e1 0d 1d 6a |L.]..V....`....j| 00004460 04 0d 1d 74 1a dd 20 f2 6c 6f 61 64 5f 73 70 72 |...t.. .load_spr| 00004470 69 74 65 73 28 6c 65 76 65 6c 29 0d 1d 7e 0e ea |ites(level)..~..| 00004480 20 74 79 70 65 2c 6c 65 6e 0d 1d 88 38 c8 99 20 | type,len...8.. | 00004490 22 4f 53 5f 46 69 6c 65 22 2c 35 2c 22 3c 52 75 |"OS_File",5,"<Ru| 000044a0 6e 47 61 6d 65 24 44 69 72 3e 2e 53 70 72 69 74 |nGame$Dir>.Sprit| 000044b0 65 73 22 20 b8 20 74 79 70 65 2c 2c 2c 2c 6c 65 |es" . type,,,,le| 000044c0 6e 0d 1d 92 24 e7 20 74 79 70 65 3d 30 20 85 20 |n...$. type=0 . | 000044d0 32 35 35 2c 22 4e 6f 20 53 70 72 69 74 65 73 20 |255,"No Sprites | 000044e0 66 69 6c 65 22 0d 1d 9c 2d e7 20 6c 65 6e 3e 73 |file"...-. len>s| 000044f0 70 6c 65 6e 20 85 20 32 35 30 2c 22 53 70 72 69 |plen . 250,"Spri| 00004500 74 65 73 20 66 69 6c 65 20 74 6f 6f 20 6c 6f 6e |tes file too lon| 00004510 67 22 0d 1d a6 36 73 70 72 69 74 65 5f 61 72 65 |g"...6sprite_are| 00004520 61 21 34 3d 30 3a 73 70 72 69 74 65 5f 61 72 65 |a!4=0:sprite_are| 00004530 61 21 38 3d 31 36 3a 73 70 72 69 74 65 5f 61 72 |a!8=16:sprite_ar| 00004540 65 61 21 31 32 3d 31 36 0d 1d b0 36 ff 28 22 4c |ea!12=16...6.("L| 00004550 4f 41 44 20 3c 52 75 6e 47 61 6d 65 24 44 69 72 |OAD <RunGame$Dir| 00004560 3e 2e 53 70 72 69 74 65 73 20 22 2b c3 7e 28 73 |>.Sprites "+.~(s| 00004570 70 72 69 74 65 5f 61 72 65 61 2b 34 29 29 0d 1d |prite_area+4))..| 00004580 ba 05 e1 0d 1d c4 04 0d 1d ce 04 0d 1d d8 14 dd |................| 00004590 20 f2 72 65 6d 6f 76 65 5f 73 6f 75 6e 64 73 0d | .remove_sounds.| 000045a0 1d e2 08 ea 20 49 25 0d 1d ec 10 e3 20 49 25 3d |.... I%..... I%=| 000045b0 31 36 20 b8 20 33 31 0d 1d f6 18 20 20 c8 99 20 |16 . 31.... .. | 000045c0 22 45 78 53 5f 52 65 6d 6f 76 65 22 2c 49 25 0d |"ExS_Remove",I%.| 000045d0 1e 00 05 ed 0d 1e 0a 36 e7 20 c2 53 4d 76 6f 69 |.......6. .SMvoi| 000045e0 63 65 24 2c 31 29 3c 3e 22 2e 22 20 8c 20 c8 99 |ce$,1)<>"." . ..| 000045f0 20 22 45 78 53 5f 49 6e 73 74 61 6c 6c 22 2c 33 | "ExS_Install",3| 00004600 31 2c 53 4d 76 6f 69 63 65 24 0d 1e 14 05 e1 0d |1,SMvoice$......| 00004610 1e 1e 04 0d 1e 28 0f dd 20 f2 69 6e 73 74 72 75 |.....(.. .instru| 00004620 63 74 0d 1e 32 05 f7 0d 1e 3c 21 ff 28 22 50 72 |ct..2....<!.("Pr| 00004630 69 6e 74 20 3c 52 75 6e 47 61 6d 65 24 44 69 72 |int <RunGame$Dir| 00004640 3e 2e 46 6f 6e 74 22 29 0d 1e 46 08 fb 20 31 32 |>.Font")..F.. 12| 00004650 0d 1e 50 18 ef 20 32 38 2c 36 2c 32 32 2c 33 33 |..P.. 28,6,22,33| 00004660 2c 38 2c 31 32 2c 31 34 0d 1e 5a 0b f3 20 6c 69 |,8,12,14..Z.. li| 00004670 6e 65 24 0d 1e 64 13 c8 95 20 6c 69 6e 65 24 3c |ne$..d... line$<| 00004680 3e 22 45 4e 44 22 0d 1e 6e 36 e7 20 6c 69 6e 65 |>"END"..n6. line| 00004690 24 3d 22 2f 22 20 8c 20 f1 27 20 8b 20 64 75 6d |$="/" . .' . dum| 000046a0 6d 79 3d a4 73 6c 6f 77 5f 70 72 69 6e 74 28 6c |my=.slow_print(l| 000046b0 69 6e 65 24 2c 30 2e 30 36 2c b9 29 0d 1e 78 04 |ine$,0.06,.)..x.| 000046c0 0d 1e 82 23 e7 20 64 75 6d 6d 79 20 8c 20 6c 69 |...#. dummy . li| 000046d0 6e 65 24 3d 22 45 4e 44 22 20 8b 20 f3 20 6c 69 |ne$="END" . . li| 000046e0 6e 65 24 0d 1e 8c 05 ce 0d 1e 96 27 ff 28 22 50 |ne$........'.("P| 000046f0 72 69 6e 74 20 3c 52 75 6e 47 61 6d 65 24 44 69 |rint <RunGame$Di| 00004700 72 3e 2e 4e 6f 72 6d 61 6c 46 6f 6e 74 22 29 0d |r>.NormalFont").| 00004710 1e a0 24 f1 27 22 20 20 20 48 69 74 20 53 70 61 |..$.'" Hit Spa| 00004720 63 65 20 74 6f 20 63 6f 6e 74 69 6e 75 65 22 3a |ce to continue":| 00004730 41 3d a5 0d 1e aa 05 e1 0d 1e b4 04 0d 1e be 23 |A=.............#| 00004740 f4 20 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |. *************| 00004750 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d |***************.| 00004760 1e c8 1d dc 20 22 20 20 20 20 20 20 20 49 6e 73 |.... " Ins| 00004770 74 72 75 63 74 69 6f 6e 73 22 2c 2f 0d 1e d2 1f |tructions",/....| 00004780 dc 20 28 48 69 74 20 53 68 69 66 74 20 74 6f 20 |. (Hit Shift to | 00004790 63 6f 6e 74 69 6e 75 65 20 6f 72 0d 1e dc 22 dc |continue or...".| 000047a0 20 61 6e 79 20 6f 74 68 65 72 20 6b 65 79 20 74 | any other key t| 000047b0 6f 20 73 74 61 72 74 20 67 61 6d 65 29 0d 1e e6 |o start game)...| 000047c0 07 dc 20 2f 0d 1e f0 1e dc 20 54 68 69 73 20 4c |.. /..... This L| 000047d0 65 76 65 6c 20 6f 66 20 43 79 62 6f 72 67 20 68 |evel of Cyborg h| 000047e0 61 73 0d 1e fa 20 dc 20 62 65 65 6e 20 73 70 65 |as... . been spe| 000047f0 63 69 61 6c 6c 79 20 77 72 69 74 74 65 6e 20 66 |cially written f| 00004800 6f 72 0d 1f 04 22 dc 20 74 68 65 20 41 63 6f 72 |or...". the Acor| 00004810 6e 20 43 6f 6d 70 75 74 69 6e 67 20 4d 65 67 61 |n Computing Mega| 00004820 44 69 73 6b 0d 1f 0e 1a dc 20 61 6e 64 20 69 73 |Disk..... and is| 00004830 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 0d 1f | not available..| 00004840 18 12 dc 20 65 6c 73 65 77 68 65 72 65 2e 2c 2f |... elsewhere.,/| 00004850 0d 1f 22 1f dc 20 44 75 65 20 74 6f 20 73 70 61 |..".. Due to spa| 00004860 63 65 20 72 65 73 74 72 69 63 74 69 6f 6e 73 0d |ce restrictions.| 00004870 1f 2c 1f dc 20 6f 6e 20 74 68 65 20 4d 65 67 61 |.,.. on the Mega| 00004880 44 69 73 6b 20 69 74 20 69 73 20 6e 6f 74 0d 1f |Disk it is not..| 00004890 36 1f dc 20 61 73 20 6c 61 72 67 65 20 61 73 20 |6.. as large as | 000048a0 74 68 65 20 6c 65 76 65 6c 73 20 69 6e 0d 1f 40 |the levels in..@| 000048b0 1c dc 20 74 68 65 20 66 75 6c 6c 20 76 65 72 73 |.. the full vers| 000048c0 69 6f 6e 20 77 68 69 63 68 0d 1f 4a 22 dc 20 69 |ion which..J". i| 000048d0 6e 63 6c 75 64 65 73 20 34 20 6f 74 68 65 72 20 |ncludes 4 other | 000048e0 6d 75 63 68 20 6c 61 72 67 65 72 0d 1f 54 21 dc |much larger..T!.| 000048f0 20 61 72 63 61 64 65 20 6c 65 76 65 6c 73 20 26 | arcade levels &| 00004900 20 33 20 61 64 76 65 6e 74 75 72 65 0d 1f 5e 22 | 3 adventure..^"| 00004910 dc 20 73 74 61 67 65 73 20 63 6f 6d 70 72 65 73 |. stages compres| 00004920 73 65 64 20 6f 6e 74 6f 20 74 68 72 65 65 0d 1f |sed onto three..| 00004930 68 1f dc 20 64 69 73 63 73 2e 20 54 68 69 73 20 |h.. discs. This | 00004940 64 65 6d 6f 20 64 6f 65 73 20 6e 6f 74 0d 1f 72 |demo does not..r| 00004950 22 dc 20 63 6f 6e 74 61 69 6e 20 61 6e 79 20 61 |". contain any a| 00004960 64 76 65 6e 74 75 72 65 20 73 74 61 67 65 73 0d |dventure stages.| 00004970 1f 7c 07 dc 20 2f 0d 1f 86 23 f4 20 20 2a 2a 2a |.|.. /...#. ***| 00004980 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00004990 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 1f 90 20 dc 20 54 |*********... . T| 000049a0 68 65 20 64 65 6d 6f 20 72 75 6e 73 20 6f 6e 20 |he demo runs on | 000049b0 61 6c 6c 20 41 63 6f 72 6e 0d 1f 9a 1f dc 20 33 |all Acorn..... 3| 000049c0 32 20 62 69 74 20 6d 61 63 68 69 6e 65 73 20 69 |2 bit machines i| 000049d0 6e 63 6c 75 64 69 6e 67 0d 1f a4 23 dc 20 74 68 |ncluding...#. th| 000049e0 6f 73 65 20 77 69 74 68 20 6f 6e 6c 79 20 31 20 |ose with only 1 | 000049f0 4d 65 67 61 62 79 74 65 2e 2c 2f 0d 1f ae 21 dc |Megabyte.,/...!.| 00004a00 20 54 68 65 20 66 75 6c 6c 20 76 65 72 73 69 6f | The full versio| 00004a10 6e 20 72 65 71 75 69 72 65 73 20 32 0d 1f b8 1e |n requires 2....| 00004a20 dc 20 4d 65 67 61 62 79 74 65 73 20 6f 72 20 6d |. Megabytes or m| 00004a30 6f 72 65 2e 20 49 74 20 69 73 0d 1f c2 21 dc 20 |ore. It is...!. | 00004a40 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 |compatible with | 00004a50 52 49 53 43 20 4f 53 20 32 20 26 0d 1f cc 20 dc |RISC OS 2 &... .| 00004a60 20 33 20 61 6e 64 20 69 6e 63 6c 75 64 65 73 20 | 3 and includes | 00004a70 61 20 68 61 72 64 20 64 69 73 63 0d 1f d6 1d dc |a hard disc.....| 00004a80 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 70 72 | installation pr| 00004a90 6f 67 72 61 6d 2e 2c 2f 0d 1f e0 22 dc 20 2e 2e |ogram.,/...". ..| 00004aa0 2e 2e 2e 20 53 50 45 43 49 41 4c 20 4f 46 46 45 |... SPECIAL OFFE| 00004ab0 52 20 2e 2e 2e 2e 2e 2e 2c 2f 0d 1f ea 24 dc 20 |R ......,/...$. | 00004ac0 22 43 79 62 6f 72 67 20 68 61 73 20 61 6e 20 52 |"Cyborg has an R| 00004ad0 52 50 20 6f 66 20 a3 32 35 2e 39 35 2e 22 0d 1f |RP of .25.95."..| 00004ae0 f4 20 dc 20 52 65 61 64 65 72 73 20 6f 66 20 41 |. . Readers of A| 00004af0 63 6f 72 6e 20 43 6f 6d 70 75 74 69 6e 67 0d 1f |corn Computing..| 00004b00 fe 22 dc 20 22 63 61 6e 20 73 61 76 65 20 a3 35 |.". "can save .5| 00004b10 2e 30 30 20 62 79 20 6f 72 64 65 72 69 6e 67 22 |.00 by ordering"| 00004b20 0d 20 08 23 dc 20 22 61 20 63 6f 70 79 20 66 6f |. .#. "a copy fo| 00004b30 72 20 6f 6e 6c 79 20 a3 32 30 2e 39 35 20 70 6c |r only .20.95 pl| 00004b40 75 73 22 0d 20 12 24 dc 20 22 a3 31 2e 30 30 20 |us". .$. ".1.00 | 00004b50 70 26 70 20 64 69 72 65 63 74 20 66 72 6f 6d 20 |p&p direct from | 00004b60 41 6c 70 69 6e 65 22 0d 20 1c 1f dc 20 22 53 6f |Alpine". ... "So| 00004b70 66 74 77 61 72 65 2c 20 71 75 6f 74 69 6e 67 20 |ftware, quoting | 00004b80 6f 72 64 65 72 22 0d 20 26 21 dc 20 6e 75 6d 62 |order". &!. numb| 00004b90 65 72 20 41 43 39 33 43 2e 20 50 6c 65 61 73 65 |er AC93C. Please| 00004ba0 20 73 65 6e 64 20 61 0d 20 30 20 dc 20 63 68 65 | send a. 0 . che| 00004bb0 71 75 65 20 6f 72 20 70 6f 73 74 61 6c 20 6f 72 |que or postal or| 00004bc0 64 65 72 20 66 6f 72 0d 20 3a 23 dc 20 22 a3 32 |der for. :#. ".2| 00004bd0 31 2e 39 35 20 6f 72 20 70 68 6f 6e 65 2f 66 61 |1.95 or phone/fa| 00004be0 78 20 75 73 20 77 69 74 68 22 0d 20 44 20 dc 20 |x us with". D . | 00004bf0 79 6f 75 72 20 63 72 65 64 69 74 20 63 61 72 64 |your credit card| 00004c00 20 64 65 74 61 69 6c 73 2c 2f 0d 20 4e 19 dc 20 | details,/. N.. | 00004c10 22 20 20 41 4c 50 49 4e 45 20 53 4f 46 54 57 41 |" ALPINE SOFTWA| 00004c20 52 45 22 0d 20 58 13 dc 20 22 20 20 50 4f 20 42 |RE". X.. " PO B| 00004c30 4f 58 20 32 35 22 0d 20 62 13 dc 20 22 20 20 50 |OX 25". b.. " P| 00004c40 4f 52 54 41 44 4f 57 4e 22 0d 20 6c 13 dc 20 22 |ORTADOWN". l.. "| 00004c50 20 20 43 52 41 49 47 41 56 4f 4e 22 0d 20 76 14 | CRAIGAVON". v.| 00004c60 dc 20 22 20 20 42 54 36 33 20 35 55 54 22 2c 2f |. " BT63 5UT",/| 00004c70 0d 20 80 20 dc 20 22 20 54 65 6c 2f 46 61 78 20 |. . . " Tel/Fax | 00004c80 30 37 36 32 20 33 34 32 35 31 30 22 2c 2f 2c 2f |0762 342510",/,/| 00004c90 0d 20 8a 11 dc 20 57 65 61 70 6f 6e 73 20 2d 2c |. ... Weapons -,| 00004ca0 2f 0d 20 94 1f dc 20 59 6f 75 72 20 73 74 61 6e |/. ... Your stan| 00004cb0 64 61 72 64 20 77 65 61 70 6f 6e 20 69 73 20 61 |dard weapon is a| 00004cc0 0d 20 9e 22 dc 20 47 43 31 35 32 4c 20 6c 61 73 |. .". GC152L las| 00004cd0 65 72 20 61 69 6d 65 64 20 62 79 20 6d 6f 76 69 |er aimed by movi| 00004ce0 6e 67 0d 20 a8 21 dc 20 74 68 65 20 73 69 67 68 |ng. .!. the sigh| 00004cf0 74 20 77 69 74 68 20 74 68 65 20 6d 6f 75 73 65 |t with the mouse| 00004d00 2e 2c 2f 0d 20 b2 1e dc 20 4d 6f 76 65 20 74 68 |.,/. ... Move th| 00004d10 65 20 73 69 67 68 74 20 61 73 20 66 61 72 20 61 |e sight as far a| 00004d20 73 0d 20 bc 1d dc 20 70 6f 73 73 69 62 6c 65 20 |s. ... possible | 00004d30 74 6f 20 74 68 65 20 6c 65 66 74 20 6f 72 0d 20 |to the left or. | 00004d40 c6 23 dc 20 72 69 67 68 74 20 74 6f 20 73 63 72 |.#. right to scr| 00004d50 6f 6c 6c 20 74 68 65 20 73 63 72 65 65 6e 2e 2c |oll the screen.,| 00004d60 2f 0d 20 d0 21 dc 20 41 73 20 79 6f 75 20 70 6c |/. .!. As you pl| 00004d70 61 79 20 79 6f 75 20 6d 61 79 20 62 65 20 61 62 |ay you may be ab| 00004d80 6c 65 0d 20 da 21 dc 20 74 6f 20 70 69 63 6b 20 |le. .!. to pick | 00004d90 75 70 20 6f 74 68 65 72 20 77 65 61 70 6f 6e 73 |up other weapons| 00004da0 2e 2c 2f 0d 20 e4 22 dc 20 54 6f 20 66 69 72 65 |.,/. .". To fire| 00004db0 20 61 6e 79 20 77 65 61 70 6f 6e 20 6d 61 6b 65 | any weapon make| 00004dc0 20 73 75 72 65 0d 20 ee 20 dc 20 69 74 20 69 73 | sure. . . it is| 00004dd0 20 73 65 6c 65 63 74 65 64 20 28 73 65 65 20 6c | selected (see l| 00004de0 61 74 65 72 29 0d 20 f8 19 dc 20 61 6e 64 20 63 |ater). ... and c| 00004df0 6c 69 63 6b 20 53 45 4c 45 43 54 2e 2c 2f 0d 21 |lick SELECT.,/.!| 00004e00 02 1e dc 20 54 6f 20 73 65 6c 65 63 74 20 61 20 |... To select a | 00004e10 77 65 61 70 6f 6e 20 63 6c 69 63 6b 0d 21 0c 1f |weapon click.!..| 00004e20 dc 20 74 68 65 20 4d 45 4e 55 20 62 75 74 74 6f |. the MENU butto| 00004e30 6e 20 75 6e 74 69 6c 20 74 68 65 0d 21 16 21 dc |n until the.!.!.| 00004e40 20 72 69 67 68 74 2d 68 61 6e 64 20 69 6e 64 69 | right-hand indi| 00004e50 63 61 74 6f 72 20 6c 69 67 68 74 73 0d 21 20 21 |cator lights.! !| 00004e60 dc 20 75 70 20 62 65 73 69 64 65 20 74 68 65 20 |. up beside the | 00004e70 77 65 61 70 6f 6e 27 73 20 69 63 6f 6e 0d 21 2a |weapon's icon.!*| 00004e80 20 dc 20 69 6e 20 74 68 65 20 73 74 61 74 75 73 | . in the status| 00004e90 20 70 61 6e 65 6c 20 61 74 20 74 68 65 0d 21 34 | panel at the.!4| 00004ea0 1f dc 20 74 6f 70 20 6c 65 66 74 20 6f 66 20 74 |.. top left of t| 00004eb0 68 65 20 73 63 72 65 65 6e 2e 2c 2f 0d 21 3e 22 |he screen.,/.!>"| 00004ec0 dc 20 41 20 77 65 61 70 6f 6e 20 69 73 20 61 76 |. A weapon is av| 00004ed0 61 69 6c 61 62 6c 65 20 69 66 20 74 68 65 0d 21 |ailable if the.!| 00004ee0 48 22 dc 20 6c 65 66 74 2d 68 61 6e 64 20 6c 69 |H". left-hand li| 00004ef0 67 68 74 20 62 65 73 69 64 65 20 69 74 20 69 73 |ght beside it is| 00004f00 0d 21 52 0c dc 20 6c 69 74 2e 2c 2f 0d 21 5c 04 |.!R.. lit.,/.!\.| 00004f10 0d 21 66 1f dc 20 49 66 20 79 6f 75 20 6c 6f 6f |.!f.. If you loo| 00004f20 6b 20 61 74 20 74 68 65 20 77 65 61 70 6f 6e 0d |k at the weapon.| 00004f30 21 70 20 dc 20 73 74 61 74 75 73 20 70 61 6e 65 |!p . status pane| 00004f40 6c 20 61 74 20 74 68 65 20 6d 6f 6d 65 6e 74 0d |l at the moment.| 00004f50 21 7a 22 dc 20 79 6f 75 20 73 68 6f 75 6c 64 20 |!z". you should | 00004f60 73 65 65 20 74 68 61 74 20 74 68 65 20 6f 6e 6c |see that the onl| 00004f70 79 0d 21 84 1d dc 20 77 65 61 70 6f 6e 20 61 76 |y.!... weapon av| 00004f80 61 69 6c 61 62 6c 65 20 69 73 20 74 68 65 0d 21 |ailable is the.!| 00004f90 8e 22 dc 20 22 6c 61 73 65 72 20 77 68 69 63 68 |.". "laser which| 00004fa0 20 69 73 2c 20 6e 61 74 75 72 61 6c 6c 79 2c 22 | is, naturally,"| 00004fb0 0d 21 98 1c dc 20 74 68 65 20 73 65 6c 65 63 74 |.!... the select| 00004fc0 65 64 20 77 65 61 70 6f 6e 2e 2c 2f 0d 21 a2 04 |ed weapon.,/.!..| 00004fd0 0d 21 ac 1e dc 20 54 6f 20 61 63 74 69 76 61 74 |.!... To activat| 00004fe0 65 20 79 6f 75 72 20 74 72 61 63 74 6f 72 0d 21 |e your tractor.!| 00004ff0 b6 21 dc 20 62 65 61 6d 20 74 6f 20 70 69 63 6b |.!. beam to pick| 00005000 20 75 70 20 6f 62 6a 65 63 74 73 20 61 6e 64 0d | up objects and.| 00005010 21 c0 21 dc 20 6f 70 65 72 61 74 65 20 73 77 69 |!.!. operate swi| 00005020 74 63 68 65 73 20 65 74 63 2e 20 63 6c 69 63 6b |tches etc. click| 00005030 0d 21 ca 1f dc 20 74 68 65 20 41 44 4a 55 53 54 |.!... the ADJUST| 00005040 20 62 75 74 74 6f 6e 20 61 6e 64 20 74 68 65 0d | button and the.| 00005050 21 d4 1f dc 20 73 69 67 68 74 20 77 69 6c 6c 20 |!... sight will | 00005060 63 68 61 6e 67 65 2e 20 41 69 6d 20 61 74 0d 21 |change. Aim at.!| 00005070 de 24 dc 20 74 68 65 20 6f 62 6a 65 63 74 20 61 |.$. the object a| 00005080 6e 64 20 63 6c 69 63 6b 20 53 45 4c 45 43 54 2e |nd click SELECT.| 00005090 2c 2f 0d 21 e8 20 dc 20 43 6c 69 63 6b 20 41 44 |,/.!. . Click AD| 000050a0 4a 55 53 54 20 61 67 61 69 6e 20 74 6f 20 74 75 |JUST again to tu| 000050b0 72 6e 0d 21 f2 1d dc 20 74 68 65 20 74 72 61 63 |rn.!... the trac| 000050c0 74 6f 72 20 62 65 61 6d 20 6f 66 66 2e 2c 2f 0d |tor beam off.,/.| 000050d0 21 fc 1f dc 20 54 68 65 20 72 65 64 20 62 61 72 |!... The red bar| 000050e0 20 61 74 20 74 68 65 20 74 6f 70 20 6f 66 0d 22 | at the top of."| 000050f0 06 1f dc 20 74 68 65 20 73 63 72 65 65 6e 20 69 |... the screen i| 00005100 73 20 79 6f 75 72 20 65 6e 65 72 67 79 0d 22 10 |s your energy.".| 00005110 20 dc 20 6c 65 76 65 6c 2e 20 59 6f 75 72 20 65 | . level. Your e| 00005120 6e 65 72 67 79 20 69 73 20 75 73 65 64 0d 22 1a |nergy is used.".| 00005130 20 dc 20 62 79 20 66 69 72 69 6e 67 20 79 6f 75 | . by firing you| 00005140 72 20 77 65 61 70 6f 6e 73 20 61 6e 64 0d 22 24 |r weapons and."$| 00005150 23 dc 20 62 79 20 62 65 69 6e 67 20 68 69 74 20 |#. by being hit | 00005160 62 79 20 65 6e 65 6d 79 20 66 69 72 65 2e 2c 2f |by enemy fire.,/| 00005170 0d 22 2e 1d dc 20 54 68 65 20 65 6e 65 72 67 79 |."... The energy| 00005180 20 6c 65 76 65 6c 20 63 61 6e 20 62 65 0d 22 38 | level can be."8| 00005190 1c dc 20 72 65 73 74 6f 72 65 64 20 62 79 20 70 |.. restored by p| 000051a0 69 63 6b 69 6e 67 20 75 70 0d 22 42 14 dc 20 65 |icking up."B.. e| 000051b0 6e 65 72 67 79 20 70 6f 64 73 2e 2c 2f 0d 22 4c |nergy pods.,/."L| 000051c0 04 0d 22 56 1c dc 20 54 68 65 20 62 6c 75 65 20 |.."V.. The blue | 000051d0 62 61 72 20 73 68 6f 77 73 20 74 68 65 0d 22 60 |bar shows the."`| 000051e0 20 dc 20 61 6d 6f 75 6e 74 20 6f 66 20 61 69 72 | . amount of air| 000051f0 20 72 65 6d 61 69 6e 69 6e 67 20 69 6e 0d 22 6a | remaining in."j| 00005200 20 dc 20 79 6f 75 72 20 43 79 62 65 72 53 75 69 | . your CyberSui| 00005210 74 2e 20 49 66 20 74 68 65 20 61 69 72 0d 22 74 |t. If the air."t| 00005220 23 dc 20 73 75 70 70 6c 79 20 72 75 6e 73 20 6f |#. supply runs o| 00005230 75 74 20 79 6f 75 27 6c 6c 20 64 69 65 2e 2c 2f |ut you'll die.,/| 00005240 0d 22 7e 23 f4 20 20 2a 2a 2a 2a 2a 2a 2a 2a 2a |."~#. *********| 00005250 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00005260 2a 2a 2a 0d 22 88 1f dc 20 53 6f 6d 65 20 6f 66 |***."... Some of| 00005270 20 74 68 65 20 63 72 65 61 74 75 72 65 73 20 79 | the creatures y| 00005280 6f 75 0d 22 92 20 dc 20 77 69 6c 6c 20 65 6e 63 |ou.". . will enc| 00005290 6f 75 6e 74 65 72 20 61 72 65 20 63 6c 61 73 73 |ounter are class| 000052a0 65 64 0d 22 9c 1f dc 20 61 73 20 46 47 41 27 73 |ed."... as FGA's| 000052b0 20 2d 20 46 72 69 65 6e 64 6c 79 20 47 72 65 65 | - Friendly Gree| 000052c0 6e 0d 22 a6 1e dc 20 41 6c 69 65 6e 73 21 20 59 |n."... Aliens! Y| 000052d0 6f 75 20 73 68 6f 75 6c 64 20 61 76 6f 69 64 0d |ou should avoid.| 000052e0 22 b0 21 dc 20 73 68 6f 6f 74 69 6e 67 20 74 68 |".!. shooting th| 000052f0 65 73 65 20 61 73 20 74 68 69 73 20 77 69 6c 6c |ese as this will| 00005300 0d 22 ba 21 dc 20 69 6e 63 75 72 20 61 20 70 65 |.".!. incur a pe| 00005310 6e 61 6c 74 79 20 69 6e 20 74 68 65 20 66 6f 72 |nalty in the for| 00005320 6d 0d 22 c4 22 dc 20 6f 66 20 6c 6f 73 74 20 63 |m.".". of lost c| 00005330 72 65 64 69 74 73 20 61 6e 64 20 77 6f 72 73 65 |redits and worse| 00005340 21 2c 2f 0d 22 ce 04 0d 22 d8 20 dc 20 54 68 65 |!,/."...". . The| 00005350 20 61 69 6d 20 6f 66 20 74 68 69 73 20 64 65 6d | aim of this dem| 00005360 6f 20 6c 65 76 65 6c 0d 22 e2 1b dc 20 69 73 20 |o level."... is | 00005370 74 6f 20 65 73 63 61 70 65 20 66 72 6f 6d 20 74 |to escape from t| 00005380 68 65 0d 22 ec 20 dc 20 64 75 6e 67 65 6f 6e 20 |he.". . dungeon | 00005390 62 79 20 63 6f 6c 6c 65 63 74 69 6e 67 20 46 4f |by collecting FO| 000053a0 55 52 0d 22 f6 20 dc 20 58 79 6c 65 6e 69 75 6d |UR.". . Xylenium| 000053b0 20 63 72 79 73 74 61 6c 73 2e 20 41 73 20 65 61 | crystals. As ea| 000053c0 63 68 0d 23 00 20 dc 20 6f 6e 65 20 69 73 20 63 |ch.#. . one is c| 000053d0 6f 6c 6c 65 63 74 65 64 20 61 20 63 72 79 73 74 |ollected a cryst| 000053e0 61 6c 0d 23 0a 21 dc 20 69 6e 64 69 63 61 74 6f |al.#.!. indicato| 000053f0 72 20 61 62 6f 76 65 20 74 68 65 20 64 6f 6f 72 |r above the door| 00005400 20 61 74 0d 23 14 1f dc 20 74 68 65 20 66 61 72 | at.#... the far| 00005410 20 72 69 67 68 74 20 73 69 64 65 20 6f 66 20 74 | right side of t| 00005420 68 65 0d 23 1e 1c dc 20 6c 65 76 65 6c 20 77 69 |he.#... level wi| 00005430 6c 6c 20 6c 69 67 68 74 20 75 70 2e 2c 2f 0d 23 |ll light up.,/.#| 00005440 28 21 dc 20 57 68 65 6e 20 61 6c 6c 20 66 6f 75 |(!. When all fou| 00005450 72 20 61 72 65 20 6c 69 74 20 63 6c 69 63 6b 0d |r are lit click.| 00005460 23 32 20 dc 20 74 68 65 20 73 77 69 74 63 68 20 |#2 . the switch | 00005470 62 65 73 69 64 65 20 74 68 65 20 64 6f 6f 72 0d |beside the door.| 00005480 23 3c 20 dc 20 61 6e 64 20 69 74 20 77 69 6c 6c |#< . and it will| 00005490 20 6f 70 65 6e 20 61 6e 64 20 61 6c 6c 6f 77 0d | open and allow.| 000054a0 23 46 18 dc 20 79 6f 75 20 74 6f 20 65 73 63 61 |#F.. you to esca| 000054b0 70 65 2e 2e 2e 2c 2f 0d 23 50 1d dc 20 20 20 20 |pe...,/.#P.. | 000054c0 20 2e 2e 2e 2e 20 47 4f 4f 44 20 4c 55 43 4b 20 | .... GOOD LUCK | 000054d0 2e 2e 2e 2e 0d 23 5a 23 f4 20 20 2a 2a 2a 2a 2a |.....#Z#. *****| 000054e0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 000054f0 2a 2a 2a 2a 2a 2a 2a 0d 23 64 09 dc 20 45 4e 44 |*******.#d.. END| 00005500 0d 23 6e 04 0d 23 78 28 dd 20 a4 73 6c 6f 77 5f |.#n..#x(. .slow_| 00005510 70 72 69 6e 74 28 74 65 78 74 24 2c 64 65 6c 61 |print(text$,dela| 00005520 79 2c 69 6e 74 65 72 72 75 70 74 29 0d 23 82 0c |y,interrupt).#..| 00005530 ea 20 49 25 2c 63 68 24 0d 23 8c 13 e3 20 49 25 |. I%,ch$.#... I%| 00005540 3d 31 20 b8 20 a9 74 65 78 74 24 0d 23 96 14 63 |=1 . .text$.#..c| 00005550 68 24 3d c1 74 65 78 74 24 2c 49 25 2c 31 29 0d |h$=.text$,I%,1).| 00005560 23 a0 19 e7 20 63 68 24 3d 22 5c 22 20 8c 20 f1 |#... ch$="\" . .| 00005570 3a 63 68 24 3d bd 31 30 0d 23 aa 09 f1 63 68 24 |:ch$=.10.#...ch$| 00005580 3b 0d 23 b4 2e e7 20 69 6e 74 65 72 72 75 70 74 |;.#... interrupt| 00005590 20 80 20 a6 28 2d 39 39 29 20 8c 20 f1 3a 3d b9 | . .(-99) . .:=.| 000055a0 20 8b 20 f2 77 61 69 74 28 64 65 6c 61 79 29 0d | . .wait(delay).| 000055b0 23 be 05 ed 0d 23 c8 05 f1 0d 23 d2 06 3d a3 0d |#....#....#..=..| 000055c0 ff |.| 000055c1