Home » Archimedes archive » Archimedes World » AW-1993-12.adf » AWDec93 » !AWDec93/Goodies/10out10/!10_10Alge/SixGames/Graphoid
!AWDec93/Goodies/10out10/!10_10Alge/SixGames/Graphoid
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Archimedes World » AW-1993-12.adf » AWDec93 |
Filename: | !AWDec93/Goodies/10out10/!10_10Alge/SixGames/Graphoid |
Read OK: | ✔ |
File size: | 6DDB bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >adfs::0.$.SixGames.Graphoid 20ONERROR:PROCerror 30IFMODE<>12:MODE12:OFF 40PROCinitial 50PROCmenu 60REPEAT 70PROCmouseilluminate 80PROClocalskill 90PROCsound 100PROCpractice 110PROCinstructions 120PROCgraphics("space craft",7) 130UNTIL FALSE 140DEFPROCinitial 150DIM att%(6,10),scores%(11),scr%(4),high$(11),name$(4),info$(6),prc%(6) 160DIM com$(18),cod%(18),dat$(32),mis$(1,32),obj$(12),srn%(1,8) 170DIM asx(8),asy(8),asi%(8),vx(8),vy(8),gld$(4),gli%(4),glx%(4),gly%(4) 180RESTORE 800 190FORJ%=1TO6 200READ K% 210prc%(J%)=K% 220NEXT 230J%=0 240READ a$ 250WHILE a$<>"end" 260dat$(J%)=a$ 270J%+=1 280READ a$ 290ENDWHILE 300J%=1 310READ a$,b$ 320WHILE a$<>"end" 330mis$(0,J%)=a$ 340mis$(1,J%)=b$ 350J%+=1 360READ a$,b$ 370ENDWHILE 380J%=1 390READ a$,K% 400WHILE a$<>"end" 410com$(J%)=a$ 420cod%(J%)=K% 430J%+=1 440READ a$,K% 450ENDWHILE 460J%=1 470READ a$ 480WHILE a$<>"end" 490obj$(J%)=a$ 500J%+=1 510READ a$ 520ENDWHILE 530FORX%=0TO2 540srn%(0,X%)=160*X%+160 550srn%(0,X%+3)=srn%(0,X%) 560srn%(0,X%+6)=srn%(0,X%) 570NEXT 580FORY%=0TO2 590srn%(1,Y%*3)=43*Y%+126 600srn%(1,Y%*3+1)=srn%(1,Y%*3) 610srn%(1,Y%*3+2)=srn%(1,Y%*3) 620NEXT 630@% =0 640ast%=4 650gme%=1 660mis%=10 670san%=0 680tim%=TRUE 690f$ ="<Disc2$Dir>.SixGames." 700LIBRARY f$+"Common" 710b% =FNinitialsprites("Numbers|Game1") 720z% =FNinitialcompressed("GrapSpr") 730PROCloaddetails 740PROClimit 750PROCsortscores 760PROCassemble 770SYS"Hourglass_Smash" 780PROCpoint("Ten",1) 790ENDPROC 800DATA 1,1,15,15,3,3 810DATA simple movement commands with the object visible 820DATA object is visible 830DATA first quadrant,second quadrant,third quadrant,fourth quadrant 840DATA first quadrant,second quadrant,third quadrant,fourth quadrant 850DATA x inequalities,y inequalities 860DATA inside region safe,outside region safe 870DATA end 880DATA Rescue the astronaut,astronaut 890DATA Space walker,astronaut 900DATA Collect a fuel pod,fuel 910DATA Extra fuel,fuel 920DATA Enter the stargate,stargate 930DATA Go to the stargate,stargate 940DATA Pick up cargo,cargo 950DATA Cargo awaiting pick up,cargo 960DATA Service the satellite,satellite 970DATA Satellite in trouble,satellite 980DATA Go to the moon,moon 990DATA Full moon,moon 1000DATA Observe the star,star 1010DATA A new star,star 1020DATA Observe the comet,comet 1030DATA A new comet,comet 1040DATA Pick up equipment,equipment 1050DATA New equipment,equipment 1060DATA Fresh oxygen cylinders,oxygen 1070DATA Pick up oxygen,oxygen 1080DATA Service the probe,probe 1090DATA Go to the probe,probe 1100DATA Destroy mine,mine 1110DATA Pick up mine,mine 1120DATA end,end 1130DATA top left,6,bottom right,2 1140DATA top of centre,7,bottom of centre,1 1150DATA top right,8,bottom left,0 1160DATA centre left,3,centre right,5 1170DATA centre,4,centre,4 1180DATA bottom right,2,top left,6 1190DATA bottom of centre,1,top of centre,7 1200DATA bottom left,0,top right,8 1210DATA centre right,5,centre left,3 1220DATA end,0 1230DATA astronaut,fuel,stargate,cargo 1240DATA satellite,moon,star,comet 1250DATA equipment,oxygen,probe,mine 1260DATA end 1270DEFPROCmouseilluminate 1280MOUSE mox%,moy%,but% 1290box%=(moy%-164)>>6 1300IFbox%<0:box%=0 1310IFbox%>9:box%=9 1320IFbox%<>sun%THEN 1330WAIT 1340PROCsqr(sun%,11) 1350PROCsqr(box%,15) 1360PROCint(sun%) 1370PROCint(box%) 1380sun%=box% 1390ENDIF 1400IFbut%=0:ENDPROC 1410VDU7 1420upd%=TRUE 1430CASE box% OF 1440WHEN 0:PROCquit 1450WHEN 1:PROCinformation 1460WHEN 2:PROCvolume 1470WHEN 3:PROCgrade 1480WHEN 4 1490mis%+=10 1500IFmis%=60:mis%=10 1510upd%=FALSE 1520WHEN 5 1530san%+=5 1540upd%=FALSE 1550WHEN 6 1560ast%+=1 1570IFast%=9:ast%=0 1580upd%=FALSE 1590WHEN 7:PROCplayers 1600WHEN 8:PROChighscore 1610WHEN 9 1620PROCintro 1630PROCnumbername 1640IFNOTesc%:PROCplaygame 1650ENDCASE 1660PROCmenuclean 1670ENDPROC 1680DEFPROCint(int%) 1690VDU 5 1700GCOL 0,0 1710CASE int% OF 1720WHEN 2:PROCinsert(11,STR$(M%DIVg%)) 1730WHEN 3:IFsub%=0 PROCinsert(13,STR$(grd%)) ELSEPROCinsert(13,STR$(grd%)+"/"+CHR$(sub%+64)) 1740WHEN 4:PROCinsert(15,STR$(mis%)) 1750WHEN 5 1760IFsan%=35:san%=0 1770IFsan%=0THEN 1780PROCinsert(17,"OFF") 1790tim%=FALSE 1800ELSE 1810tim%=TRUE 1820PROCinsert(17,STR$(san%)) 1830ENDIF 1840WHEN 6:IFast%=0 PROCinsert(19,"NONE") ELSEPROCinsert(19,STR$(ast%)) 1850WHEN 7:PROCinsert(21,STR$(ply%)) 1860ENDCASE 1870VDU4 1880OFF 1890ENDPROC 1900DEFPROCmenu 1910SYS"ABC_Blank",15 1920SYS"ABC_Colour",15 1930PROCcard("GRAPHOID MENU",24,10,2,10) 1940RESTORE 2010 1950PROCfillmenu(13,6) 1960PROCsprites 1970SYS"ABC_Palette" 1980MOUSE RECTANGLE 702,164,160,640 1990PROCmouse1 2000ENDPROC 2010DATA Play Graphoid,High score table,Number of players,Asteroids 2020DATA Timer,Missions,,Volume,Information,Exit to Main Menu 2030DEFPROCinitialgame 2040SYS"ABC_Blank",7 2050SYS"ABC_Colour",7 2060PROCvariables 2070PROCscores 2080PROCwhich 2090PROCupdate 2100SYS"ABC_Palette" 2110ENDPROC 2120DEFPROCvariables 2130MOUSE RECTANGLE 0,0,1280,1024 2140IFply%=1 cur%=1 ELSEcur%=RND(ply%) 2150bon%=10*grd% 2160com%=TRUE 2170esc%=FALSE 2180fin%=FALSE 2190min%=FALSE 2200ovr%=FALSE 2210pre%=FALSE 2220ron%=0 2230ryt%=0 2240sec%=san% 2250shw%=FALSE 2260spn%=FALSE 2270sum%=0 2280scr%()=0 2290IFpix%=0 g$="z"+STR$(((grd%-1)DIV2)+1) ELSEg$="z"+STR$(pix%) 2300SYS"ABC_UnpackPlace",0,z%,0,40 2310SYS"ABC_UnpackPlace",1,z%,0,80 2320VDU 5 2330RESTORE 2650 2340FORX%=1TO4 2350GCOL 0,11 2360RECTANGLEFILL X%*320-308,240,272,40 2370GCOL 0,14 2380RECTANGLEFILL X%*320-308,196,272,40 2390GCOL 0,7 2400RECTANGLEFILL X%*320-316,236,272,36 2410RECTANGLEFILL X%*320-316,192,272,36 2420GCOL 0,0 2430MOVE X%*320-308,268 2440PRINTname$(X%) 2450GCOL 0,2 2460READ a$ 2470MOVE X%*320-308,220 2480IFX%=4 PRINTtyp$ ELSEPRINTa$ 2490NEXT 2500IFtim% THEN 2510GCOL 0,0 2520MOVE 166,220 2530PRINTsec% 2540ELSE 2550GCOL 0,9 2560MOVE 166,220 2570PRINT"Off" 2580ENDIF 2590GCOL 0,4 2600MOVE 1128,220 2610IFsub%=0 PRINTgrd% ELSEPRINTgrd%"/"+CHR$(sub%+64) 2620VDU 4 2630OFF 2640ENDPROC 2650DATA Time,Bonus,Missions, 2660DEFPROCupdate 2670VDU 5 2680IFtim% THEN 2690GCOL 0,7 2700WAIT 2710RECTANGLEFILL 168,192,64,36 2720IFsec%<10 GCOL 0,11 ELSEGCOL 0,10 2730MOVE 168,220 2740PRINTsec% 2750ENDIF 2760GCOL 0,7 2770WAIT 2780RECTANGLEFILL 488,192,32,36 2790GCOL 0,4 2800MOVE 488,220 2810PRINTbon% 2820IFmis%>0 THEN 2830GCOL 0,7 2840WAIT 2850RECTANGLEFILL 808,192,80,36 2860GCOL 0,4 2870MOVE 808,220 2880PRINTmis%-sum% 2890ENDIF 2900VDU 4 2910OFF 2920ENDPROC 2930DEFPROCwhich 2940GCOL 0,8 2950FORX%=0TO3 2960RECTANGLEFILL X%*320+286,232,32,36 2970NEXT 2980GCOL 0,0 2990MOVE cur%*320-32,248 3000PLOT 0,16,-16 3010PLOT 81,0,32 3020GCOL 0,7 3030MOVE cur%*320-32,248 3040PLOT 1,16,-16 3050PLOT 1,0,32 3060PLOT 1,-16,-16 3070ENDPROC 3080DEFPROCscores 3090VDU 5 3100FORX%=1TO ply% 3110GCOL 0,7 3120WAIT 3130RECTANGLEFILL X%*320-166,236,122,36 3140GCOL 0,0 3150MOVE X%*320-152,268 3160PRINTscr%(X%) 3170NEXT 3180VDU 4 3190OFF 3200ENDPROC 3210DEFPROCenterhighscores 3220Q%=ryt%/(ryt%+ron%)*100 3230tab%=FALSE 3240FORent%=1TO ply% 3250scores%(11)=scr%(ent%) 3260a$=MID$(TIME$,5,11)+" Grade "+STR$(grd%)+" " 3270IFply%>1 b$=STR$(Q%)+"%." ELSEb$=STR$(Q%)+"% " 3280IFLEN(b$)<5:b$=STRING$(5-LEN(b$)," ")+b$ 3290high$(11)=a$+b$+" "+name$(ent%) 3300PROCsortscores 3310NEXT 3320ENDPROC 3330DEFPROCintro 3340MOUSEOFF 3350SYS"ABC_Blank",8 3360SYS"ABC_Colour",8 3370a$="intro"+STR$(gme%) 3380SYS"OS_SpriteOp",296,b%,a$ TO ,,,A%,B% 3390X%=320-A%DIV2 3400Y%=128+B%DIV2 3410SYS"ABC_Place",b%,a$,X%,Y% 3420PROCtitle("GRAPHOID",128,9) 3430SYS"ABC_Palette" 3440TIME=0 3450REPEAT 3460UNTIL TIME>200 3470ENDPROC 3480DEFPROCtimer 3490IFTIME<100:ENDPROC 3500bon%-=grd% 3510IFbon%<0:bon%=0 3520shw%=NOTshw% 3530IFshw% AND ani%>0:PROCnoise("Ping",4,&17F,&6200,&2) 3540IFtim% THEN 3550PROCnoise("Timer",3,&17F,&1000,&100) 3560sec%-=1 3570IFsec%<0 THEN 3580bon%=10*grd% 3590fin%=TRUE 3600sec%=san% 3610spn%=TRUE 3620suc%=FALSE 3630ENDIF 3640ENDIF 3650PROCupdate 3660TIME=0 3670ENDPROC 3680DEFPROCsprites 3690FORJ%=1TO3 3700SYS"ABC_Sprite",b%,"z"+STR$(J%),68,J%*48+38 3710SYS"ABC_Sprite",b%,"z"+STR$(J%),486,J%*48+38 3720NEXT 3730ENDPROC 3740DEFPROCplaygame 3750PROCinitialgame 3760PROCflush 3770PROCsame(name$(cur%)) 3780REPEAT 3790PROCquestions 3800PROCdanger 3810REPEAT 3820REPEAT 3830PROCdelay(2) 3840PROCanimate 3850PROCasteroids 3860PROCship 3870PROCcollide 3880PROChazard 3890PROCcollect 3900PROCsound 3910PROCtimer 3920PROCreveal(8,0,0) 3930PROCescape 3940PROCpause 3950UNTIL esc% OR spn% OR exp% OR but%>0 3960IFNOTesc% THEN 3970IFbut%>0 AND NOTexp% AND NOTspn% THEN 3980PROCflush 3990PROCanswer 4000PROCwarp 4010PROCzeromouse 4020ENDIF 4030PROCpanel 4040PROCdecide 4050ENDIF 4060UNTIL fin% OR ovr% OR esc% 4070UNTIL ovr% OR esc% 4080IFovr% AND NOTesc% THEN 4090PROCdelay(50) 4100PROCenterhighscores 4110PROCreport 4120ENDIF 4130ENDPROC 4140DEFPROCanyprogress 4150IFply%>1 OR attend$="" OR sub%>0:ENDPROC 4160Q%=ryt%/(ryt%+ron%)*100 4170RESTORE4230 4180FORJ%=1TO grd% 4190READ inx% 4200NEXT 4210PROCupgrade 4220ENDPROC 4230DATA 10,4,5,7,8,9 4240DEFPROClimit 4250RESTORE4230 4260bnd%=1 4270FORJ%=1TO6 4280READ inx% 4290IFatt%(gme%,inx%)>1:bnd%=J%+1 4300NEXT 4310IFbnd%>6:bnd%=6 4320ENDPROC 4330DEFPROClocalskill 4340IFNOTINKEY-2:ENDPROC 4350RESTORE4500 4360L%=0 4370FORJ%=1TO6 4380READ K% 4390IFINKEY-K%:L%=J%:A%=K%:sub%=0 4400NEXT 4410IFL%=0:ENDPROC 4420VDU 7 4430grd%=L% 4440WAIT 4450IFbox%=3 PROCsqr(3,15) ELSEPROCsqr(3,11) 4460PROCint(3) 4470REPEAT 4480UNTIL NOTINKEY-A% 4490ENDPROC 4500DATA 114,115,116,21,117,118 4510DEFPROCpattern 4520VDU 29,640;400; 4530FORX%=1TO8 4540L%=0 4550s=7 4560FORJ%=1TO15 4570RESTORE 4820 4580PROCdraw(TRUE) 4590L%+=15 4600s=s*.88 4610NEXT 4620L%=0 4630s=7 4640FORJ%=1TO15 4650RESTORE 4820 4660PROCdraw(FALSE) 4670L%+=15 4680s=s*.88 4690NEXT 4700NEXT 4710VDU 26 4720ENDPROC 4730DEFPROCdraw(col%) 4740FORK%=1TO7 4750IFcol% GCOL 0,RND(4)+7 ELSEGCOL 0,7 4760READ x,y 4770xt=x*COSRAD(L%)-y*SINRAD(L%) 4780yt=x*SINRAD(L%)+y*COSRAD(L%) 4790IFK%=1 MOVE s*xt,s*yt ELSEDRAW s*xt,s*yt 4800NEXT 4810ENDPROC 4820DATA 43.3,25,0,50,-43.3,25,-43.3,-25,0,-50,43.3,-25,43.3,25 4830DEFPROCrating 4840IFrat%:ENDPROC 4850RESTORE4940 4860J%=Q%DIV10 4870FORY%=1TO J% 4880READ a$ 4890NEXT 4900a$="Rating : "+a$ 4910SYS"ABC_PryntString",a$,132,106,1,7 4920SYS"ABC_PryntString",a$,134,107,1,8 4930ENDPROC 4940DATA pathetic,poor,could do better,keep trying,fair 4950DATA pretty clever,not too bad,nearly there,good work,genius 4960DEFPROCextra 4970RESTORE 4230 4980FORJ%=1TO grd% 4990READ inx% 5000NEXT 5010IFatt%(gme%,inx%)=1 AND prc%(grd%)>32 THEN 5020J%=ASC("0") 5030FORK%=0TO4 5040IF(prc%(grd%)AND2^K%)>0:J%+=1 5050NEXT 5060IFJ%=ASC("1") a$="Then press key f1 for extra practice" ELSEa$="Then press keys f1 to f"+CHR$(J%)+" for extra practice" 5070xsc%=320-LEN(a$)*4 5080SYS"ABC_PryntString",a$,xsc%,11,0,7 5090SYS"ABC_PryntString",a$,xsc%+1,12,0,11 5100ENDIF 5110ENDPROC 5120DEFPROCfillinformation(tax%,tay%) 5130VDU 5 5140GCOL 0,0 5150MOVE tax%*32-f%,1024-(tay%*g%+4) 5160IFnig% PRINT"Subject NC "+typ$ ELSEPRINT"Subject Colour "+typ$ 5170RESTORE 4230 5180FORJ%=1TO6 5190READ inx% 5200CASE att%(gme%,inx%) OF 5210WHEN 0:GCOL 0,3 5220WHEN 1:GCOL 0,11 5230WHEN 2:GCOL 0,14 5240WHEN 3,4,5,6,7,8,9,10,11:GCOL 0,10 5250OTHERWISE:GCOL 0,15 5260ENDCASE 5270RECTANGLEFILL 642,740-J%*64,156,56 5280NEXT 5290RESTORE 5480 5300FORJ%=1TO6 5310READ s$ 5320GCOL 0,7 5330MOVE tax%*32+448,1024-(tay%*g%+J%*f%+4) 5340PRINTJ% 5350MOVE tax%*32+272,1024-(tay%*g%+J%*f%+4) 5360IFnig%:PRINTLEFT$(info$(J%),INSTR(info$(J%),"(")-2) 5370GCOL 0,0 5380MOVE tax%*32-f%,1024-(tay%*g%+J%*f%+4) 5390PRINTs$ 5400MOVE tax%*32+448,1024-(tay%*g%+J%*f%) 5410PRINTJ% 5420MOVE tax%*32+272,1024-(tay%*g%+J%*f%) 5430IFnig%:PRINTLEFT$(info$(J%),INSTR(info$(J%),"(")-2) 5440NEXT 5450VDU 4 5460OFF 5470ENDPROC 5480DATA Words,Co-ordinates,Graphs,Mappings and Fns,Inequalities,Interpretation 5490DEFPROCpractice 5500IFINKEY-2:ENDPROC 5510RESTORE 4500 5520J%=1 5530K%=TRUE 5540WHILE J%<7 AND K% 5550READ L% 5560IFINKEY-L% AND (prc%(grd%)AND2^(J%-1))>0 THEN 5570WHILE INKEY-L% 5580ENDWHILE 5590K%=FALSE 5600IFJ%<=6 THEN 5610VDU 7 5620sub%=J% 5630WAIT 5640IFbox%=3 PROCsqr(3,15) ELSEPROCsqr(3,11) 5650PROCint(3) 5660ENDIF 5670ENDIF 5680J%+=1 5690ENDWHILE 5700ENDPROC 5710DEFPROCsame(t$) 5720MOUSE OFF 5730VDU 7 5740SYS"ABC_Transfer",256,168,128,78 5750SYS"ABC_Sprite",b%,"mouse",256,168 5760xsc%=320-LEN(t$)*8 5770ysc%=120 5780SYS"ABC_PryntString",t$,xsc%,ysc%,1,7 5790SYS"ABC_PryntString",t$,xsc%-2,ysc%+1,1,8 5800REPEAT 5810MOUSE mox%,moy%,but% 5820UNTIL but%>0 5830SYS"ABC_Restore" 5840PROCzeromouse 5850MOUSE TO 640,512 5860TIME=0 5870ENDPROC 5880DEFPROCstars 5890FORJ%=1TO48 5900GCOL 0,RND(4)+7 5910X%=RND(1280) 5920Y%=RND(1024) 5930MOVE X%,Y% 5940PLOT 1,6,0 5950PLOT 0,-4,4 5960PLOT 1,0,-8 5970NEXT 5980ENDPROC 5990DEFPROCquestions 6000SYS"ABC_Blank",7 6010GCOL 0,135 6020VDU 24,0;320;1278;1020; 6030CLG 6040PROCstars 6050VDU 26 6060SYS"ABC_UnpackPlace",0,z%,0,40 6070ani%=0 6080foc%=FALSE 6090bon%=10*grd% 6100CASE grd% OF 6110WHEN 1:PROCone 6120WHEN 2:PROCtwo 6130WHEN 3:PROCthree 6140WHEN 4:PROCfour 6150WHEN 5:PROCfive 6160WHEN 6:PROCsix 6170ENDCASE 6180CALL ScreenSave 6190PROCplacecraft 6200PROCplaceasteroids 6210PROCupdate 6220SYS"ABC_Palette" 6230TIME=0 6240ENDPROC 6250DEFPROCone 6260IFsub%=0 THEN 6270IFcom% PROCfirstcom ELSEPROCsecondcom 6280com%=NOTcom% 6290ELSE 6300PROCfirstcom 6310ENDIF 6320xxx%=srn%(0,cod%(tex%)) 6330yyy%=srn%(1,cod%(tex%)) 6340anx%=xxx%-16 6350any%=yyy%+8 6360xsc%=320-LEN(a$)*4 6370SYS"ABC_PryntString",a$,xsc%,26,0,7 6380SYS"ABC_PryntString",a$,xsc%-2,27,0,0 6390PROCgraph1 6400ani%=sub% 6410PROCplace(j$) 6420ENDPROC 6430DEFPROCfirstcom 6440REPEAT 6450tex%=RND(9)*2 6460obj%=RND(12) 6470UNTIL com$(tex%)>"" AND tex%<>pre% 6480pre%=J% 6490j$=obj$(obj%) 6500a$="MOVE to the "+j$+" at the "+com$(tex%)+" square" 6510ENDPROC 6520DEFPROCsecondcom 6530obj%=RND(12) 6540tex%-=1 6550j$=obj$(obj%) 6560a$="Now MOVE to the "+j$+" at the "+com$(tex%)+" square" 6570ENDPROC 6580DEFPROCtwo 6590xob%=RND(11)-1 6600yob%=RND(6)-1 6610REPEAT 6620J%=RND(32) 6630UNTIL mis$(0,J%)>"" AND J%<>pre% 6640pre%=J% 6650a$=mis$(0,J%)+" at ("+STR$(xob%)+","+STR$(yob%)+")" 6660j$=mis$(1,J%) 6670xsc%=320-LEN(a$)*8 6680SYS"ABC_PryntString",a$,xsc%,30,1,7 6690SYS"ABC_PryntString",a$,xsc%-2,31,1,0 6700PROCgraph2 6710anx%=xob%*52+48 6720any%=yob%*26+112 6730xxx%=xob%*52+64 6740yyy%=yob%*26+104 6750ani%=sub% 6760PROCplace(j$) 6770ENDPROC 6780DEFPROCthree 6790IFsub%=0 opr%=RND(4) ELSEopr%=sub% 6800REPEAT 6810J%=RND(32) 6820UNTIL mis$(0,J%)>"" AND J%<>pre% 6830pre%=J% 6840CASE opr% OF 6850WHEN 1 6860xob%=RND(21)-1 6870yob%=RND(11)-1 6880PROCgraph3a 6890anx%=xob%*26+48 6900any%=yob%*13+112 6910PROCminecoors(21,11,"mix%*26+48","miy%*13+112") 6920WHEN 2 6930xob%=RND(21)-1 6940yob%=-(RND(11)-1) 6950PROCgraph3b 6960anx%=xob%*26+48 6970any%=242+yob%*13 6980PROCminecoors(21,-11,"mix%*26+48","242+miy%*13") 6990WHEN 3 7000xob%=-(RND(21)-1) 7010yob%=-(RND(11)-1) 7020PROCgraph3c 7030anx%=568+xob%*26 7040any%=242+yob%*13 7050PROCminecoors(-21,-11,"568+mix%*26","242+miy%*13") 7060WHEN 4 7070xob%=-(RND(21)-1) 7080yob%=RND(11)-1 7090PROCgraph3d 7100anx%=568+xob%*26 7110any%=yob%*13+112 7120PROCminecoors(-21,11,"568+mix%*26","miy%*13+112") 7130ENDCASE 7140xxx%=anx%+16 7150yyy%=any%-8 7160a$=mis$(0,J%)+" at ("+STR$(xob%)+","+STR$(yob%)+")" 7170j$=mis$(1,J%) 7180xsc%=320-LEN(a$)*8 7190SYS"ABC_PryntString",a$,xsc%,30,1,7 7200SYS"ABC_PryntString",a$,xsc%-2,31,1,0 7210PROCplace(j$) 7220ENDPROC 7230DEFPROCfour 7240REPEAT 7250J%=RND(32) 7260UNTIL mis$(0,J%)>"" AND J%<>pre% 7270pre%=J% 7280CASE sub% OF 7290WHEN 0 7300REPEAT 7310ady%=RND(22)-11 7320xob%=RND(22)-11 7330yob%=xob%+ady% 7340UNTIL yob%>-11 AND yob%<11 7350PROCgraph5 7360anx%=xob%*16+304 7370any%=yob%*8+176 7380CASE RND(4) OF 7390WHEN 1:PROCminecoors(21,11,"mix%*16+304","miy%*8+176") 7400WHEN 2:PROCminecoors(-21,11,"mix%*16+304","miy%*8+176") 7410WHEN 3:PROCminecoors(21,-11,"mix%*16+304","miy%*8+176") 7420OTHERWISE:PROCminecoors(-21,-11,"mix%*16+304","miy%*8+176") 7430ENDCASE 7440WHEN 1 7450REPEAT 7460ady%=RND(22)-11 7470xob%=RND(21)-1 7480yob%=xob%+ady% 7490UNTIL yob%>-1 AND yob%<11 AND ady%<>0 7500PROCgraph3a 7510anx%=xob%*26+48 7520any%=yob%*13+112 7530PROCminecoors(21,11,"mix%*26+48","miy%*13+112") 7540WHEN 2 7550REPEAT 7560ady%=RND(22)-11 7570xob%=RND(21)-1 7580yob%=xob%+ady% 7590UNTIL yob%<1 AND yob%>-11 AND ady%<>0 7600PROCgraph3b 7610anx%=xob%*26+48 7620any%=242+yob%*13 7630PROCminecoors(21,-11,"mix%*26+48","242+miy%*13") 7640WHEN 3 7650REPEAT 7660ady%=RND(22)-11 7670xob%=-(RND(21)-1) 7680yob%=xob%+ady% 7690UNTIL yob%<1 AND yob%>-11 AND ady%<>0 7700PROCgraph3c 7710anx%=568+xob%*26 7720any%=242+yob%*13 7730PROCminecoors(-21,-11,"568+mix%*26","242+miy%*13") 7740WHEN 4 7750REPEAT 7760ady%=RND(22)-11 7770xob%=-(RND(21)-1) 7780yob%=xob%+ady% 7790UNTIL yob%>-1 AND yob%<11 AND ady%<>0 7800PROCgraph3d 7810anx%=568+xob%*26 7820any%=yob%*13+112 7830PROCminecoors(-21,11,"568+mix%*26","miy%*13+112") 7840ENDCASE 7850xxx%=anx%+16 7860yyy%=any%-8 7870IFady%<0 a$="When x="+STR$(xob%)+" "+mis$(0,J%)+" at y=x"+STR$(ady%) ELSEa$="When x="+STR$(xob%)+" "+mis$(0,J%)+" at y=x+"+STR$(ady%) 7880j$=mis$(1,J%) 7890xsc%=320-LEN(a$)*4 7900SYS"ABC_PryntString",a$,xsc%,26,0,7 7910SYS"ABC_PryntString",a$,xsc%-2,27,0,0 7920PROCplace(j$) 7930ENDPROC 7940DEFPROCfive 7950PROCgraph5 7960PROCscatter 7970CASE sub% OF 7980WHEN 0:IFRND>0 PROCxcoor ELSEPROCycoor 7990WHEN 1:PROCxcoor 8000WHEN 2:PROCycoor 8010ENDCASE 8020xxx%=0 8030yyy%=0 8040ENDPROC 8050DEFPROCxcoor 8060cor%=TRUE 8070RESTORE 8430 8080FORJ%=1TO RND(4) 8090READ a$ 8100NEXT 8110REPEAT 8120xe1%=RND(32)-16 8130xe2%=RND(32)-16 8140UNTIL xe1%<xe2% AND ABS(xe1%-xe2%)>3 AND ABS(xe1%-xe2%)<6 8150a$+=": " 8160xsc%=240-LEN(a$)*4 8170SYS"ABC_PryntString",a$,xsc%,26,0,7 8180SYS"ABC_PryntString",a$,xsc%-2,27,0,0 8190xsc%+=LEN(a$)*8 8200a$=STR$(xe1%)+" � x � "+STR$(xe2%) 8210SYS"ABC_PryntString",a$,xsc%,30,1,7 8220SYS"ABC_PryntString",a$,xsc%-2,31,1,0 8230ENDPROC 8240DEFPROCycoor 8250cor%=FALSE 8260RESTORE 8430 8270FORJ%=1TO RND(4) 8280READ a$ 8290NEXT 8300REPEAT 8310ye1%=RND(18)-9 8320ye2%=RND(18)-9 8330UNTIL ye1%<ye2% AND ABS(ye1%-ye2%)>3 AND ABS(ye1%-ye2%)<6 8340a$+=": " 8350xsc%=240-LEN(a$)*4 8360SYS"ABC_PryntString",a$,xsc%,26,0,7 8370SYS"ABC_PryntString",a$,xsc%-2,27,0,0 8380xsc%+=LEN(a$)*8 8390a$=STR$(ye1%)+" � y � "+STR$(ye2%) 8400SYS"ABC_PryntString",a$,xsc%,30,1,7 8410SYS"ABC_PryntString",a$,xsc%-2,31,1,0 8420ENDPROC 8430DATA Proceed to safe area,Keep to the following region 8440DATA Get in this region of space,Safe region only at 8450DATA Space pirates in,Deadly radiation area 8460DATA Electromagnetic storm at,Avoid super nova 8470DEFPROCsix 8480PROCgraph5 8490PROCscatter 8500CASE sub% OF 8510WHEN 0:IFRND>0 PROCregion(TRUE) ELSEPROCregion(FALSE) 8520WHEN 1:PROCregion(TRUE) 8530WHEN 2:PROCregion(FALSE) 8540ENDCASE 8550xxx%=0 8560yyy%=0 8570ENDPROC 8580DEFPROCregion(val%) 8590cor%=val% 8600IFcor% RESTORE 8430 ELSERESTORE 8450 8610FORJ%=1TO RND(4) 8620READ a$ 8630NEXT 8640REPEAT 8650xe1%=RND(41)-21 8660xe2%=RND(41)-21 8670UNTIL xe1%<xe2% AND ABS(xe1%-xe2%)>10 AND ABS(xe1%)<>ABS(xe2%) 8680REPEAT 8690ye1%=RND(21)-11 8700ye2%=RND(21)-11 8710UNTIL ye1%<ye2% AND ABS(ye1%-ye2%)>6 AND ABS(ye1%)<>ABS(ye2%) 8720a$+=": " 8730xsc%=136-LEN(a$)*4 8740SYS"ABC_PryntString",a$,xsc%,26,0,7 8750SYS"ABC_PryntString",a$,xsc%-2,27,0,0 8760xsc%+=LEN(a$)*8 8770a$=STR$(ye1%)+" <y< "+STR$(ye2%)+" "+STR$(xe1%)+" <x< "+STR$(xe2%) 8780SYS"ABC_PryntString",a$,xsc%,30,1,7 8790SYS"ABC_PryntString",a$,xsc%-2,31,1,0 8800ENDPROC 8810DEFPROCscatter 8820gli%()=TRUE 8830FORJ%=1TO4 8840gld$(J%)=obj$(RND(12)) 8850REPEAT 8860glx%(J%)=RND(608)-1 8870gly%(J%)=RND(160)+96 8880UNTIL NOTFNcraft(240,144,400,192,glx%(J%),gly%(J%)) 8890NEXT 8900ENDPROC 8910DEFPROCassemble 8920DIM cde% &E000 8930SYS"ABC_VideoAddress" TO vid% 8940sp =13 8950link=14 8960pc =15 8970FORA%=0TO2STEP2 8980P%=cde% 8990[OPTA% 9000.ScreenSave 9010ADR R12,savescreen 9020LDR R11,screen 9030MOV R10,#&B0 9040.save_another 9050MOV R9,#10 9060.save_line 9070LDMIA R11!,{R0-R7} 9080STMIA R12!,{R0-R7} 9090SUBS R9,R9,#&1 9100BNE save_line 9110SUBS R10,R10,#&1 9120BNE save_another 9130MOV pc,link 9140.RestoreScreen 9150ADR R12,savescreen 9160LDR R11,screen 9170MOV R10,#&B0 9180.restore_another 9190MOV R9,#10 9200.restore_line 9210LDMIA R12!,{R0-R7} 9220STMIA R11!,{R0-R7} 9230SUBS R9,R9,#&1 9240BNE restore_line 9250SUBS R10,R10,#&1 9260BNE restore_another 9270MOV pc,link 9280.Asteroid 9290LDR R2,[R9] 9300LDR R2,[R2] 9310LDR R1,[R9,#&8] 9320LDR R1,[R1] 9330ADR R12,savescreen 9340LDR R11,screen 9350RSB R2,R2,#&100 9360ADD R2,R2,R2,LSL#2 9370MOV R2,R2,LSL#6 9380ADD R2,R2,R1,ASR#1 9390TST R2,#%11 9400ADD R12,R12,R2 9410ADD R11,R11,R2 9420MOV R10,#&8 9430.restore_asteroid 9440LDMIA R12,{R0-R2} 9450STMIA R11,{R0-R2} 9460ADD R11,R11,#&140 9470ADD R12,R12,#&140 9480SUBS R10,R10,#&1 9490BNE restore_asteroid 9500MOV pc,link 9510.Ship 9520LDR R3,[R9] 9530LDR R3,[R3] 9540LDR R2,[R9,#&8] 9550LDR R2,[R2] 9560LDR R1,[R9,#&10] 9570LDR R1,[R1] 9580LDR R0,[R9,#&18] 9590LDR R0,[R0] 9600STMFD sp !,{R0-R3} 9610MOV R0,#19 9620SWI "XOS_Byte" 9630LDMFD sp !,{R1,R2} 9640ADR R12,savescreen 9650LDR R11,screen 9660RSB R2,R2,#&100 9670ADD R2,R2,R2,LSL#2 9680MOV R2,R2,LSL#6 9690ADD R2,R2,R1,ASR#1 9700TST R2,#%11 9710ADD R12,R12,R2 9720ADD R11,R11,R2 9730MOV R10,#&18 9740.restore_ship 9750LDMIA R12,{R0-R8} 9760STMIA R11,{R0-R8} 9770ADD R11,R11,#&140 9780ADD R12,R12,#&140 9790SUBS R10,R10,#&1 9800BNE restore_ship 9810LDR R0,sprite_bank 9820ADR R1,sprite_name 9830LDMFD sp !,{R2,R3} 9840SWI "ABC_Sprite" 9850MOV pc,link 9860.Object 9870LDR R2,[R9] 9880LDR R2,[R2] 9890LDR R1,[R9,#&8] 9900LDR R1,[R1] 9910ADR R12,savescreen 9920LDR R11,screen 9930RSB R2,R2,#&100 9940ADD R2,R2,R2,LSL#2 9950MOV R2,R2,LSL#6 9960ADD R2,R2,R1,ASR#1 9970TST R2,#%11 9980ADD R12,R12,R2 9990ADD R11,R11,R2 10000MOV R10,#&10 10010.restore_object 10020LDMIA R12,{R0-R4} 10030STMIA R11,{R0-R4} 10040ADD R11,R11,#&140 10050ADD R12,R12,#&140 10060SUBS R10,R10,#&1 10070BNE restore_object 10080MOV pc,link 10090.screen 10100EQUD vid% 10110.sprite_bank 10120EQUD b% 10130.sprite_name 10140EQUD &0 10150.savescreen 10160] 10170NEXT 10180ENDPROC 10190DEFPROCplaceasteroids 10200IFast%=0:ENDPROC 10210FORA%=1TO ast% 10220REPEAT 10230B%=RND(600) 10240C%=RND(160)+88 10250UNTIL NOTFNcraft(240,144,400,192,B%,C%) 10260asx(A%)=B% 10270asy(A%)=C% 10280asi%(A%)=RND(4)-1 10290SYS"ABC_Sprite",b%,"aster"+STR$(asi%(A%)),B%,C% 10300REPEAT 10310vx(A%)=RND(1)*4-2 10320vy(A%)=RND(1)*4-2 10330UNTIL ABS(vx(A%))>1 AND ABS(vy(A%))>1 10340NEXT 10350ENDPROC 10360DEFFNcraft(x1%,y1%,x2%,y2%,xsc%,ysc%) 10370IFxsc%<x1% OR xsc%>x2%:=FALSE 10380IFysc%<y1% OR ysc%>y2%:=FALSE 10390=TRUE 10400DEFPROCplacecraft 10410exp%=FALSE 10420fin%=FALSE 10430rok%=ast% 10440sax%=288 10450say%=180 10460try%=0 10470vox%=0 10480voy%=0 10490$sprite_name=g$ 10500SYS"ABC_Sprite",b%,g$,sax%,say% 10510PROCflush 10520MOUSE TO 640,512 10530ENDPROC 10540DEFPROCasteroids 10550IFrok%=0:WAIT:ENDPROC 10560FORA%=1TO rok% 10570olx%=asx(A%) 10580oly%=asy(A%) 10590asx(A%)+=vx(A%) 10600asy(A%)+=vy(A%) 10610IFasx(A%)<-32:asx(A%)=608:asy(A%)+=1 10620IFasx(A%)>640:asx(A%)=0:asy(A%)-=1 10630IFasy(A%)>256:asy(A%)=88 10640IFasy(A%)<88:asy(A%)=255 10650asi%(A%)=(asi%(A%)+1)AND3 10660CALL Asteroid, olx%, oly% 10670SYS"ABC_Sprite",b%,"aster"+STR$(asi%(A%)),asx(A%),asy(A%) 10680NEXT 10690ENDPROC 10700DEFFNhit(x1%,y1%,x2%,y2%,xsc%,ysc%) 10710IFxsc%<x1% OR xsc%>x2%:=FALSE 10720IFysc%<y1% OR ysc%>y2%:=FALSE 10730=TRUE 10740DEFPROCship 10750MOUSE mox%,moy%,but% 10760olx%=sax% 10770oly%=say% 10780IFmox%>648:vox%+=4 10790IFmox%<632:vox%-=4 10800IFmoy%>524:voy%+=2 10810IFmoy%<500:voy%-=2 10820sax%+=vox% 10830say%+=voy% 10840IFvox%>0:vox%-=1 10850IFvox%<0:vox%+=1 10860IFvoy%>0:voy%-=1 10870IFvoy%<0:voy%+=1 10880IFsax%<0:sax%=0 10890IFsax%>576:sax%=576 10900IFsay%<104:say%=104 10910IFsay%>256:say%=256 10920CALL Ship, olx%, oly%, sax%, say% 10930MOUSE TO 640,512 10940ENDPROC 10950DEFPROCcollide 10960IFrok%=0:ENDPROC 10970FORA%=1TO rok% 10980IFFNhit(sax%,say%-24,sax%+64,say%,asx(A%)+8,asy(A%)-4):PROCexplode(asx(A%),asy(A%),TRUE) 10990NEXT 11000ENDPROC 11010DEFPROCexplode(B%,C%,wip%) 11020IFwip% THEN 11030CALL Asteroid, B%, C% 11040asx(A%)=asx(rok%) 11050asy(A%)=asy(rok%) 11060asi%(A%)=asi%(rok%) 11070rok%-=1 11080ENDIF 11090exp%=TRUE 11100fin%=TRUE 11110foc%=TRUE 11120suc%=FALSE 11130VDU 24,0;320;1278;1020; 11140PROCnoise("Percussion-Snare",3,&17F,&1000,&24) 11150FORJ%=1TO20 11160FORK%=1TO4 11170GCOL 0,14 11180xsc%=RND(128)+sax%*2 11190ysc%=RND(96)+say%*4-96 11200rad%=RND(32)+8 11210CIRCLEFILL xsc%,ysc%,rad% 11220GCOL 0,7 11230CIRCLE xsc%,ysc%,rad% 11240NEXT 11250PROCdelay(3) 11260PROCasteroids 11270PROCkeepobject 11280NEXT 11290CALL RestoreScreen 11300VDU26 11310ENDPROC 11320DEFPROCkeepobject 11330FORA%=1TO4 11340IFgli%(A%):SYS"ABC_Sprite",b%,gld$(A%),glx%(A%),gly%(A%) 11350NEXT 11360ENDPROC 11370DEFPROCanimate 11380IFani%=0 OR exp% OR FNcraft(sax%,say%-24,sax%+64,say%,xxx%,yyy%):ENDPROC 11390IFshw% SYS"ABC_Sprite",b%,j$,xxx%-16,yyy%+8 ELSECALL Object, anx%, any% 11400ENDPROC 11410DEFPROCanswer 11420suc%=FALSE 11430CASE grd% OF 11440WHEN 1 11450xsr%=srn%(0,cod%(tex%))-80 11460ysr%=srn%(1,cod%(tex%))-22 11470suc%=FNcraft(xsr%,ysr%,xsr%+160,ysr%+43,sax%+32,say%-12) 11480WHEN 2,3,4:suc%=FNcraft(sax%,say%-24,sax%+64,say%,xxx%,yyy%) 11490WHEN 5 11500xsc=(sax%+32)/16-20 11510ysc=(say%-92)/8-11 11520IFcor% THEN 11530IFxsc>xe1% AND xsc<xe2%:suc%=TRUE 11540ELSE 11550IFysc>ye1% AND ysc<ye2%:suc%=TRUE 11560ENDIF 11570WHEN 6 11580xsc=(sax%+32)/16-20 11590ysc=(say%-92)/8-11 11600IFxsc>xe1% AND xsc<xe2% AND ysc>ye1% AND ysc<ye2% reg%=TRUE ELSEreg%=FALSE 11610IFcor% THEN 11620IFreg%:suc%=TRUE 11630ELSE 11640IFNOTreg%:suc%=TRUE 11650ENDIF 11660ENDCASE 11670ENDPROC 11680DEFPROCpanel 11690spn%=FALSE 11700fin%=suc% 11710IFsuc% THEN 11720PROCnoise("Cymbal",4,&17F,&1200,&100) 11730sec%=san% 11740sum%+=1 11750IFsum%=mis%:ovr%=TRUE 11760ryt%+=1 11770scr%(cur%)+=bon%+4*ast%*grd% 11780IFtim%:scr%(cur%)+=(35-san%) 11790try%=0 11800ELSE 11810IFNOTexp%:PROCnoise("Burp",3,&17F,&2600,&8) 11820ron%+=1 11830try%+=1 11840IFtry%=1 THEN 11850IFgrd%<5 ani%=1 ELSEPROChighlightarea 11860shw%=TRUE 11870PROCanimate 11880ELSE 11890fin%=TRUE 11900ENDIF 11910ENDIF 11920ENDPROC 11930DEFPROCchangeplayer 11940cur%+=1 11950IFcur%>ply%:cur%=1 11960PROCwhich 11970PROCzeromouse 11980PROCflush 11990PROCsame(name$(cur%)) 12000ENDPROC 12010DEFPROCattract 12020com%=TRUE 12030exp%=FALSE 12040sum%+=1 12050try%=0 12060IFsum%=mis%:ovr%=TRUE 12070IFgrd%>4:ENDPROC 12080FORfla%=1TO48 12090PROCdelay(3) 12100shw%=NOTshw% 12110IFshw%:PROCnoise("Ping",4,&17F,&6200,&2) 12120PROCanimate 12130NEXT 12140PROCupdate 12150PROCdelay(100) 12160ENDPROC 12170DEFPROCdecide 12180IFtim% PROCtimerused ELSEPROCtimernotused 12190PROCscores 12200PROCupdate 12210PROCwhich 12220TIME=0 12230ENDPROC 12240DEFPROCtimerused 12250IFply%=1 THEN 12260PROCattract 12270fin%=TRUE 12280ELSE 12290IFNOTsuc% THEN 12300PROCattract 12310IFNOTovr%:PROCchangeplayer 12320fin%=TRUE 12330sec%=san% 12340ENDIF 12350ENDIF 12360ENDPROC 12370DEFPROCtimernotused 12380IFply%=1 THEN 12390IFtry%=2:PROCattract 12400ELSE 12410IFNOTsuc% THEN 12420PROCattract 12430IFNOTovr%:PROCchangeplayer 12440fin%=TRUE 12450ENDIF 12460ENDIF 12470ENDPROC 12480DEFPROCgraph1 12490ORIGIN 160,416 12500GCOL 0,0 12510FORX%=0TO3 12520MOVE X%*320,0 12530PLOT 1,0,512 12540NEXT 12550FORY%=0TO3 12560MOVE 0,Y%*172 12570PLOT 1,960,0 12580NEXT 12590ORIGIN 0,0 12600ENDPROC 12610DEFPROCgraph2 12620ORIGIN 128,416 12630VDU 5 12640FORX%=0TO10 12650GCOL 0,0 12660MOVE X%*104,0 12670PLOT 1,0,-8 12680MOVE X%*104-8,-16 12690PRINTX% 12700GCOL 0,5 12710MOVE X%*104,0 12720PLOT 25,0,520 12730NEXT 12740FORY%=0TO5 12750GCOL 0,0 12760MOVE 0,Y%*104 12770PLOT 1,-4,0 12780MOVE -28,Y%*104+16 12790PRINTY% 12800GCOL 0,5 12810MOVE 0,Y%*104 12820PLOT 25,1040,0 12830NEXT 12840GCOL 0,0 12850LINE 0,0,1040,0 12860LINE 0,0,0,520 12870PROCxpos(1040,0) 12880PROCypos(0,512) 12890VDU 4 12900OFF 12910ORIGIN 0,0 12920ENDPROC 12930DEFPROCypos(xsc%,ysc%) 12940MOVE xsc%,ysc% 12950PLOT 1,0,64 12960PLOT 1,-8,-16 12970PLOT 0,8,16 12980PLOT 1,8,-16 12990MOVE xsc%-16,ysc%+96 13000PRINT"+y" 13010ENDPROC 13020DEFPROCyneg(xsc%,ysc%) 13030MOVE xsc%,ysc% 13040PLOT 1,0,-64 13050PLOT 1,-8,16 13060PLOT 0,8,-16 13070PLOT 1,8,16 13080MOVE xsc%-16,ysc%-64 13090PRINT"-y" 13100ENDPROC 13110DEFPROCxpos(xsc%,ysc%) 13120MOVE xsc%,ysc% 13130PLOT 1,32,0 13140PLOT 1,-8,8 13150PLOT 0,8,-8 13160PLOT 1,-8,-8 13170MOVE xsc%+32,ysc%+16 13180PRINT"+x" 13190ENDPROC 13200DEFPROCxneg(xsc%,ysc%) 13210MOVE xsc%,ysc% 13220PLOT 1,-32,0 13230PLOT 1,8,8 13240PLOT 0,-8,-8 13250PLOT 1,8,-8 13260MOVE xsc%-66,ysc%+16 13270PRINT"-x" 13280ENDPROC 13290DEFPROCgraph3a 13300PROChatch1 13310ORIGIN 128,416 13320VDU 5 13330GCOL 0,0 13340FORX%=0TO20 13350MOVE X%*52,0 13360PLOT 1,0,-8 13370IFX%MOD2=0:MOVE X%*52-LEN(STR$(X%))*8,-16:PRINTX% 13380NEXT 13390FORY%=0TO10 13400MOVE 0,Y%*52 13410PLOT 1,-4,0 13420IFY%MOD2=0:MOVE -12-LEN(STR$(Y%))*16,Y%*52+16:PRINTY% 13430NEXT 13440LINE 0,0,0,520 13450LINE 0,0,1040,0 13460PROCxpos(1040,0) 13470PROCypos(0,512) 13480VDU 4 13490OFF 13500ORIGIN 0,0 13510ENDPROC 13520DEFPROCgraph3b 13530PROChatch1 13540ORIGIN 128,936 13550VDU 5 13560GCOL 0,0 13570FORX%=0TO20 13580MOVE X%*52,0 13590PLOT 1,0,8 13600IFX%MOD2=0:MOVE X%*52-LEN(STR$(X%))*8,40:PRINTX% 13610NEXT 13620FORY%=0TO10 13630MOVE 0,-Y%*52 13640PLOT 1,-4,0 13650IFY%MOD2=0:MOVE -(12+LEN(STR$(-Y%))*16),-(Y%*52)+16:PRINT-Y% 13660NEXT 13670GCOL 0,0 13680LINE 0,0,0,-520 13690LINE 0,0,1040,0 13700PROCxpos(1040,0) 13710PROCyneg(0,-520) 13720VDU 4 13730OFF 13740ORIGIN 0,0 13750ENDPROC 13760DEFPROCgraph3c 13770PROChatch1 13780ORIGIN 1168,936 13790VDU 5 13800GCOL 0,0 13810FORX%=0TO20 13820MOVE -X%*52,0 13830PLOT 1,0,8 13840IFX%MOD2=0:MOVE -X%*52-LEN(STR$(-X%))*8,40:PRINT-X% 13850NEXT 13860FORY%=0TO10 13870MOVE 0,-Y%*52 13880PLOT 1,-4,0 13890IFY%MOD2=0:MOVE 12,-(Y%*52)+16:PRINT-Y% 13900NEXT 13910LINE 0,0,0,-520 13920LINE 0,0,-1040,0 13930PROCxneg(-1040,0) 13940PROCyneg(0,-520) 13950VDU 4 13960OFF 13970ORIGIN 0,0 13980ENDPROC 13990DEFPROCgraph3d 14000PROChatch1 14010ORIGIN 1168,416 14020VDU 5 14030GCOL 0,0 14040FORX%=0TO20 14050MOVE -X%*52,0 14060PLOT 1,0,-8 14070IFX%MOD2=0:MOVE -X%*52-LEN(STR$(-X%))*8,-16:PRINT-X% 14080NEXT 14090FORY%=0TO10 14100MOVE 0,Y%*52 14110PLOT 1,4,0 14120IFY%MOD2=0:MOVE 12,Y%*52+16:PRINTY% 14130NEXT 14140LINE 0,0,0,520 14150LINE 0,0,-1040,0 14160PROCxneg(-1040,0) 14170PROCypos(0,512) 14180VDU 4 14190OFF 14200ORIGIN 0,0 14210ENDPROC 14220DEFPROCgraph5 14230PROChatch2 14240ORIGIN 640,672 14250VDU 5 14260GCOL 0,0 14270FORX%=-18TO18 14280MOVE X%*32,0 14290PLOT 1,0,-8 14300IFX%MOD2=0:MOVE X%*32-LEN(STR$(X%))*8,-16:PRINTX% 14310NEXT 14320FORY%=-9TO9 14330MOVE 0,Y%*32 14340PLOT 1,-4,0 14350IFY%MOD2=0:MOVE -(12+LEN(STR$(Y%))*16),(Y%*32)+12:PRINTY% 14360NEXT 14370ORIGIN 640,672 14380LINE 0,-320,0,320 14390LINE -608,0,608,0 14400PROCxpos(576,0) 14410PROCxneg(-576,0) 14420PROCypos(0,256) 14430PROCyneg(0,-256) 14440VDU 4 14450OFF 14460ORIGIN 0,0 14470ENDPROC 14480DEFPROChatch2 14490ORIGIN 0,320 14500GCOL 0,5 14510FORX%=1TO40 14520MOVE X%*32,0 14530PLOT 17,0,704 14540NEXT 14550FORY%=1TO21 14560MOVE 0,Y%*32 14570PLOT 17,1280,0 14580NEXT 14590ENDPROC 14600DEFPROChatch1 14610ORIGIN 128,416 14620GCOL 0,5 14630FORX%=0TO20 14640MOVE X%*52,0 14650PLOT 17,0,520 14660NEXT 14670FORY%=0TO10 14680MOVE 0,Y%*52 14690PLOT 17,1040,0 14700NEXT 14710ENDPROC 14720DEFPROCminecoors(rax%,ray%,x$,y$) 14730min%=FALSE 14740REPEAT 14750REPEAT 14760mix%=RND(ABS(rax%)-1) 14770miy%=RND(ABS(ray%)-1) 14780IFrax%<0:mix%=-mix% 14790IFray%<0:miy%=-miy% 14800UNTIL mix%<>xob% AND miy%<>yob% 14810dax%=EVAL(x$)+16 14820day%=EVAL(y$)-8 14830UNTIL NOTFNcraft(288,156,352,180,dax%,day%) 14840ENDPROC 14850DEFPROCdanger 14860IFsub%>0 OR RND(4)<3 OR grd%<3 OR grd%>4:ENDPROC 14870min%=TRUE 14880PROCnoise("Danger",2,&17F,&1C00,&100) 14890PROCnoise("Danger",3,&17F,&1C00,&100) 14900SYS"ABC_Transfer",212,195,216,64 14910SYS"ABC_Place",b%,"message",212,196 14920RESTORE 15040 14930FORJ%=1TO RND(8) 14940READ a$ 14950NEXT 14960a$+=" at ("+STR$(mix%)+","+STR$(miy%)+")" 14970SYS"ABC_PryntString",a$,320-LEN(a$)*4,162,0,11 14980TIME=0 14990REPEAT 15000PROCcountdown 15010UNTIL FNleave 15020SYS"ABC_Restore" 15030ENDPROC 15040DATA Space junk,Black hole,Radiation,Gas cloud 15050DATA Anti-matter,Nebula,Worm hole,Ion storm 15060DEFPROCcountdown 15070IFTIME<100:ENDPROC 15080bon%-=grd% 15090IFbon%<0:bon%=0 15100VDU 5 15110GCOL 0,7 15120WAIT 15130RECTANGLEFILL 488,192,32,36 15140GCOL 0,4 15150MOVE 488,220 15160PRINTbon% 15170VDU 4 15180OFF 15190TIME=0 15200ENDPROC 15210DEFPROChazard 15220IFNOTmin%:ENDPROC 15230hit%=FALSE 15240CASE grd% OF 15250WHEN 3,4:IFFNcraft(sax%,say%-24,sax%+64,say%,dax%,day%):hit%=TRUE 15260WHEN 5 15270WHEN 6 15280ENDCASE 15290IFhit% THEN 15300PROCnoise("Tone",3,&17F,&5400,&1) 15310scr%(cur%)-=grd% 15320IFscr%(cur%)<0:scr%(cur%)=0 15330PROCscores 15340ENDIF 15350ENDPROC 15360DEFPROCplace(a$) 15370SYS"ABC_Place",b%,"blank",2,34 15380SYS"ABC_Place",b%,"blank",598,34 15390SYS"ABC_Sprite",b%,j$,6,32 15400SYS"ABC_Sprite",b%,j$,602,32 15410ENDPROC 15420DEFPROCwarp 15430IFNOTsuc%:ENDPROC 15440VDU 24,0;320;1278;1020; 15450xsc%=sax%*2+64 15460ysc%=say%*4-48 15470PROCnoise("Worp",3,&17F,&400,&100) 15480FORrad%=1TO260STEP10 15490WAIT 15500WAIT 15510GCOL 3,rad%MOD3+7 15520CIRCLEFILL xsc%,ysc%,rad% 15530GCOL 0,7 15540CIRCLE xsc%,ysc%,rad% 15550NEXT 15560VDU 26 15570ENDPROC 15580DEFPROCcollect 15590IFgrd%<5:ENDPROC 15600are%=TRUE 15610FORA%=1TO4 15620IFgli%(A%) AND are% THEN 15630IFFNhit(sax%,say%-24,sax%+64,say%,glx%(A%)+16,gly%(A%)-8) THEN 15640IFgrd%=5 PROCoutside5 ELSEPROCoutside6 15650IFare% THEN 15660IFbon%>0:PROCnoise("Ping",3,&17F,&5400,&10) 15670CALL Object, glx%(A%),gly%(A%) 15680gli%(A%)=FALSE 15690IFbon%>0:scr%(cur%)+=10 15700PROCscores 15710ENDIF 15720ELSE 15730SYS"ABC_Sprite",b%,gld$(A%),glx%(A%),gly%(A%) 15740ENDIF 15750ENDIF 15760NEXT 15770IFNOTare%:PROCexplode(0,0,FALSE) 15780IFSUM gli%()=-5:ENDPROC 15790IFbon%>0:ENDPROC 15800but%=4 15810foc%=TRUE 15820ENDPROC 15830DEFPROCoutside5 15840xsc%=(glx%(A%)+16)/16-20 15850ysc%=(gly%(A%)-8)/8-21 15860IFcor% THEN 15870IFxsc%<xe1% OR xsc%>xe2%:are%=FALSE 15880ELSE 15890IFysc%<ye1% OR ysc%>ye2%:are%=FALSE 15900ENDIF 15910ENDPROC 15920DEFPROCoutside6 15930xsc%=(glx%(A%)+16)/16-20 15940ysc%=(gly%(A%)-8)/8-21 15950IFxsc%>xe1% AND xsc%<xe2% AND ysc%>ye1% AND ysc%<ye2% reg%=TRUE ELSEreg%=FALSE 15960IFcor% THEN 15970IFNOTreg%:are%=FALSE 15980ELSE 15990IFreg%:are%=FALSE 16000ENDIF 16010ENDPROC 16020DEFPROChighlightarea 16030IFgrd%=5 PROCgradefive ELSEPROCgradesix 16040ORIGIN 0,0 16050CALL ScreenSave 16060IFNOTfoc% THEN 16070PROCcollect 16080PROCship 16090ENDIF 16100SYS"ABC_Palette" 16110IFNOTfoc%:ENDPROC 16120fin%=TRUE 16130PROCzeromouse 16140REPEAT 16150MOUSE mox%,moy%,but% 16160UNTIL but%>0 16170PROCzeromouse 16180ENDPROC 16190DEFPROCgradefive 16200SYS"ABC_Blank",7 16210GCOL 0,11 16220RECTANGLEFILL 0,320,1280,704 16230GCOL 0,10 16240IFcor% THEN 16250ORIGIN 640,0 16260RECTANGLEFILL xe1%*32,320,(xe2%-xe1%)*32,704 16270ELSE 16280ORIGIN 0,672 16290RECTANGLEFILL 0,ye1%*32,1280,(ye2%-ye1%)*32 16300ENDIF 16310PROCgraph5 16320ENDPROC 16330DEFPROCgradesix 16340SYS"ABC_Blank",7 16350IFcor% GCOL 0,11 ELSEGCOL 0,10 16360RECTANGLEFILL 0,320,1280,704 16370ORIGIN 640,672 16380IFcor% GCOL 0,10 ELSEGCOL 0,11 16390RECTANGLEFILL xe1%*32,ye1%*32,(xe2%-xe1%)*32,(ye2%-ye1%)*32 16400PROCgraph5 16410ENDPROC
"� >adfs::0.$.SixGames.Graphoid �:�error ��<>12:�12:� (�initial 2 �menu <� F�mouseilluminate P�localskill Z �sound d �practice n�instructions x�graphics("space craft",7) �� � � ��initial �H� att%(6,10),scores%(11),scr%(4),high$(11),name$(4),info$(6),prc%(6) �>� com$(18),cod%(18),dat$(32),mis$(1,32),obj$(12),srn%(1,8) �G� asx(8),asy(8),asi%(8),vx(8),vy(8),gld$(4),gli%(4),glx%(4),gly%(4) � � �T`C ��J%=1�6 �� K% �prc%(J%)=K% �� �J%=0 �� a$ �ȕ a$<>"end" dat$(J%)=a$ J%+=1 � a$ "� ,J%=1 6� a$,b$ @ȕ a$<>"end" Jmis$(0,J%)=a$ Tmis$(1,J%)=b$ ^ J%+=1 h� a$,b$ r� |J%=1 �� a$,K% �ȕ a$<>"end" �com$(J%)=a$ �cod%(J%)=K% � J%+=1 �� a$,K% �� �J%=1 �� a$ �ȕ a$<>"end" �obj$(J%)=a$ � J%+=1 �� a$ � �X%=0�2 srn%(0,X%)=160*X%+160 &srn%(0,X%+3)=srn%(0,X%) 0srn%(0,X%+6)=srn%(0,X%) :� D�Y%=0�2 Nsrn%(1,Y%*3)=43*Y%+126 Xsrn%(1,Y%*3+1)=srn%(1,Y%*3) bsrn%(1,Y%*3+2)=srn%(1,Y%*3) l� v @% =0 � ast%=4 � gme%=1 �mis%=10 � san%=0 � tim%=� � f$ ="<Disc2$Dir>.SixGames." �ț f$+"Common" �)b% =�initialsprites("Numbers|Game1") �&z% =�initialcompressed("GrapSpr") ��loaddetails � �limit ��sortscores � �assemble ș"Hourglass_Smash" �point("Ten",1) � � 1,1,15,15,3,3 *6� simple movement commands with the object visible 4� object is visible >C� first quadrant,second quadrant,third quadrant,fourth quadrant HC� first quadrant,second quadrant,third quadrant,fourth quadrant R#� x inequalities,y inequalities \,� inside region safe,outside region safe f � end p$� Rescue the astronaut,astronaut z� Space walker,astronaut �� Collect a fuel pod,fuel �� Extra fuel,fuel �!� Enter the stargate,stargate �!� Go to the stargate,stargate �� Pick up cargo,cargo �"� Cargo awaiting pick up,cargo �%� Service the satellite,satellite �$� Satellite in trouble,satellite �� Go to the moon,moon �� Full moon,moon �� Observe the star,star �� A new star,star �� Observe the comet,comet � A new comet,comet !� Pick up equipment,equipment � New equipment,equipment $#� Fresh oxygen cylinders,oxygen .� Pick up oxygen,oxygen 8� Service the probe,probe B� Go to the probe,probe L� Destroy mine,mine V� Pick up mine,mine ` � end,end j� top left,6,bottom right,2 t(� top of centre,7,bottom of centre,1 ~� top right,8,bottom left,0 �"� centre left,3,centre right,5 �� centre,4,centre,4 �� bottom right,2,top left,6 �(� bottom of centre,1,top of centre,7 �� bottom left,0,top right,8 �"� centre right,5,centre left,3 �� end,0 �#� astronaut,fuel,stargate,cargo �� satellite,moon,star,comet �!� equipment,oxygen,probe,mine � � end ���mouseilluminate ȗ mox%,moy%,but% box%=(moy%-164)>>6 �box%<0:box%=0 �box%>9:box%=9 (�box%<>sun%� 2Ȗ <�sqr(sun%,11) F�sqr(box%,15) P�int(sun%) Z�int(box%) d sun%=box% n� x �but%=0:� ��7 � upd%=� � Ȏ box% � � � 0:�quit �� 1:�information �� 2:�volume �� 3:�grade �� 4 �mis%+=10 ��mis%=60:mis%=10 � upd%=� �� 5 �san%+=5 upd%=� � 6 ast%+=1 "�ast%=9:ast%=0 , upd%=� 6� 7:�players @� 8:�highscore J� 9 T �intro ^�numbername h�esc%:�playgame r� |�menuclean �� ���int(int%) �� 5 � � 0,0 � Ȏ int% � �� 2:�insert(11,�(M%�g%)) �G� 3:�sub%=0 �insert(13,�(grd%)) ��insert(13,�(grd%)+"/"+�(sub%+64)) �� 4:�insert(15,�(mis%)) �� 5 ��san%=35:san%=0 ��san%=0� ��insert(17,"OFF") � tim%=� � tim%=� �insert(17,�(san%)) &� 07� 6:�ast%=0 �insert(19,"NONE") ��insert(19,�(ast%)) :� 7:�insert(21,�(ply%)) D� N�4 X� b� l ��menu vș"ABC_Blank",15 �ș"ABC_Colour",15 �%�card("GRAPHOID MENU",24,10,2,10) � � �dZG ��fillmenu(13,6) ��sprites �ș"ABC_Palette" �ȗ ȓ 702,164,160,640 ��mouse1 �� �@� Play Graphoid,High score table,Number of players,Asteroids �:� Timer,Missions,,Volume,Information,Exit to Main Menu ���initialgame �ș"ABC_Blank",7 ș"ABC_Colour",7 �variables �scores �which *�update 4ș"ABC_Palette" >� H��variables Rȗ ȓ 0,0,1280,1024 \ �ply%=1 cur%=1 �cur%=�(ply%) fbon%=10*grd% p com%=� z esc%=� � fin%=� � min%=� � ovr%=� � pre%=� � ron%=0 � ryt%=0 � sec%=san% � shw%=� � spn%=� � sum%=0 �scr%()=0 �4�pix%=0 g$="z"+�(((grd%-1)�2)+1) �g$="z"+�(pix%) �!ș"ABC_UnpackPlace",0,z%,0,40 !ș"ABC_UnpackPlace",1,z%,0,80 � 5 � �DZJ $�X%=1�4 . � 0,11 8ȓȐ X%*320-308,240,272,40 B � 0,14 LȓȐ X%*320-308,196,272,40 V � 0,7 `ȓȐ X%*320-316,236,272,36 jȓȐ X%*320-316,192,272,36 t � 0,0 ~� X%*320-308,268 ��name$(X%) � � 0,2 �� a$ �� X%*320-308,220 ��X%=4 �typ$ ��a$ �� ��tim% � � � 0,0 � � 166,220 � �sec% �� � � 0,9 � 166,220 �"Off" � � 0,4 (� 1128,220 2&�sub%=0 �grd% ��grd%"/"+�(sub%+64) <� 4 F� P� Z� Time,Bonus,Missions, d��update n� 5 x�tim% � � � 0,7 �Ȗ �ȓȐ 168,192,64,36 ��sec%<10 � 0,11 �� 0,10 � � 168,220 � �sec% �� � � 0,7 �Ȗ �ȓȐ 488,192,32,36 � � 0,4 � � 488,220 � �bon% �mis%>0 � � 0,7 Ȗ "ȓȐ 808,192,80,36 , � 0,4 6 � 808,220 @�mis%-sum% J� T� 4 ^� h� r��which | � 0,8 ��X%=0�3 �ȓȐ X%*320+286,232,32,36 �� � � 0,0 �� cur%*320-32,248 �� 0,16,-16 � � 81,0,32 � � 0,7 �� cur%*320-32,248 �� 1,16,-16 �� 1,0,32 �� 1,-16,-16 �� ��scores � 5 �X%=1� ply% & � 0,7 0Ȗ :ȓȐ X%*320-166,236,122,36 D � 0,0 N� X%*320-152,268 X �scr%(X%) b� l� 4 v� �� ���enterhighscores �Q%=ryt%/(ryt%+ron%)*100 � tab%=� ��ent%=1� ply% �scores%(11)=scr%(ent%) �&a$=��$,5,11)+" Grade "+�(grd%)+" " �(�ply%>1 b$=�(Q%)+"%." �b$=�(Q%)+"% " � �(b$)<5:b$=�5-�(b$)," ")+b$ �#high$(11)=a$+b$+" "+name$(ent%) ��sortscores �� �� ��intro ȗ� ș"ABC_Blank",8 ș"ABC_Colour",8 *a$="intro"+�(gme%) 4(ș"OS_SpriteOp",296,b%,a$ � ,,,A%,B% >X%=320-A%�2 HY%=128+B%�2 Rș"ABC_Place",b%,a$,X%,Y% \�title("GRAPHOID",128,9) fș"ABC_Palette" p�=0 z� �� �>200 �� ���timer ��<100:� �bon%-=grd% ��bon%<0:bon%=0 �shw%=�shw% �1�shw% � ani%>0:�noise("Ping",4,&17F,&6200,&2) ��tim% � �%�noise("Timer",3,&17F,&1000,&100) �sec%-=1 � �sec%<0 � �bon%=10*grd% fin%=� sec%=san% spn%=� $ suc%=� .� 8� B�update L�=0 V� ` ��sprites j�J%=1�3 t+ș"ABC_Sprite",b%,"z"+�(J%),68,J%*48+38 ~,ș"ABC_Sprite",b%,"z"+�(J%),486,J%*48+38 �� �� ���playgame ��initialgame � �flush ��same(name$(cur%)) �� ��questions ��danger �� �� � �delay(2) �animate �asteroids �ship �collide (�hazard 2�collect < �sound F �timer P�reveal(8,0,0) Z�escape d �pause n!� esc% � spn% � exp% � but%>0 x�esc% � ��but%>0 � �exp% � �spn% � � �flush ��answer � �warp ��zeromouse �� � �panel ��decide �� �� fin% � ovr% � esc% �� ovr% � esc% ��ovr% � �esc% � ��delay(50) �enterhighscores �report � "� ,��anyprogress 6#�ply%>1 � attend$="" � sub%>0:� @Q%=ryt%/(ryt%+ron%)*100 J ��tFP T�J%=1� grd% ^ � inx% h� r�upgrade |� �� 10,4,5,7,8,9 ���limit � ��tFP � bnd%=1 ��J%=1�6 � � inx% � �att%(gme%,inx%)>1:bnd%=J%+1 �� ��bnd%>6:bnd%=6 �� ���localskill �符-2:� � ��tTQ L%=0 �J%=1�6 � K% &�-K%:L%=J%:A%=K%:sub%=0 0� :�L%=0:� D� 7 Ngrd%=L% XȖ b"�box%=3 �sqr(3,15) ��sqr(3,11) l�int(3) v� �� ��-A% �� �� 114,115,116,21,117,118 � ��pattern �� 29,640;400; ��X%=1�8 �L%=0 �s=7 ��J%=1�15 � � �dTR ��draw(�) � L%+=15 �s=s*.88 � L%=0 s=7 �J%=1�15 * � �dTR 4�draw(�) > L%+=15 Hs=s*.88 R� \� f� 26 p� z��draw(col%) ��K%=1�7 ��col% � 0,�(4)+7 �� 0,7 � � x,y �xt=x*��(L%)-y*��(L%) �yt=x*��(L%)+y*��(L%) �"�K%=1 � s*xt,s*yt �� s*xt,s*yt �� �� �<� 43.3,25,0,50,-43.3,25,-43.3,-25,0,-50,43.3,-25,43.3,25 ���rating ��rat%:� � ��DLS �J%=Q%�10 �Y%=1� J% � a$ � $a$="Rating : "+a$ .&ș"ABC_PryntString",a$,132,106,1,7 8&ș"ABC_PryntString",a$,134,107,1,8 B� L4� pathetic,poor,could do better,keep trying,fair V=� pretty clever,not too bad,nearly there,good work,genius `��extra j � �tFP t�J%=1� grd% ~ � inx% �� �(�att%(gme%,inx%)=1 � prc%(grd%)>32 � � J%=�("0") ��K%=0�4 ��(prc%(grd%)�2^K%)>0:J%+=1 �� �r�J%=�("1") a$="Then press key f1 for extra practice" �a$="Then press keys f1 to f"+�(J%)+" for extra practice" �xsc%=320-�(a$)*4 �&ș"ABC_PryntString",a$,xsc%,11,0,7 �)ș"ABC_PryntString",a$,xsc%+1,12,0,11 �� �� ��fillinformation(tax%,tay%) � 5 � 0,0 !� tax%*32-f%,1024-(tay%*g%+4) (X�nig% �"Subject NC "+typ$ ��"Subject Colour "+typ$ 2 � �tFP <�J%=1�6 F � inx% PȎ att%(gme%,inx%) � Z � 0:� 0,3 d� 1:� 0,11 n� 2:� 0,14 x � 3,4,5,6,7,8,9,10,11:� 0,10 �:� 0,15 �� �ȓȐ 642,740-J%*64,156,56 �� � � �DhU ��J%=1�6 �� s$ � � 0,7 �(� tax%*32+448,1024-(tay%*g%+J%*f%+4) ��J% �(� tax%*32+272,1024-(tay%*g%+J%*f%+4) �(�nig%:�info$(J%),�info$(J%),"(")-2) � � 0,0 '� tax%*32-f%,1024-(tay%*g%+J%*f%+4) �s$ &� tax%*32+448,1024-(tay%*g%+J%*f%) "�J% ,&� tax%*32+272,1024-(tay%*g%+J%*f%) 6(�nig%:�info$(J%),�info$(J%),"(")-2) @� J� 4 T� ^� hL� Words,Co-ordinates,Graphs,Mappings and Fns,Inequalities,Interpretation r��practice | �-2:� � � �tTQ �J%=1 �K%=� �ȕ J%<7 � K% �� L% �%�-L% � (prc%(grd%)�2^(J%-1))>0 � �ȕ �-L% �� �K%=� ��J%<=6 � �� 7 �sub%=J% �Ȗ "�box%=3 �sqr(3,15) ��sqr(3,11) �int(3) � &� 0 J%+=1 :� D� N��same(t$) Xȗ � b� 7 l#ș"ABC_Transfer",256,168,128,78 v%ș"ABC_Sprite",b%,"mouse",256,168 �xsc%=320-�(t$)*8 �ysc%=120 �(ș"ABC_PryntString",t$,xsc%,ysc%,1,7 �,ș"ABC_PryntString",t$,xsc%-2,ysc%+1,1,8 �� �ȗ mox%,moy%,but% �� but%>0 �ș"ABC_Restore" ��zeromouse �ȗ � 640,512 ��=0 �� ���stars �J%=1�48 � 0,�(4)+7 X%=�(1280) Y%=�(1024) *� X%,Y% 4� 1,6,0 >� 0,-4,4 H� 1,0,-8 R� \� f��questions pș"ABC_Blank",7 z� 0,135 �� 24,0;320;1278;1020; �� � �stars �� 26 �!ș"ABC_UnpackPlace",0,z%,0,40 � ani%=0 � foc%=� �bon%=10*grd% � Ȏ grd% � �� 1:�one �� 2:�two �� 3:�three � � 4:�four � 5:�five � 6:�six � $� ScreenSave .�placecraft 8�placeasteroids B�update Lș"ABC_Palette" V�=0 `� j ��one t �sub%=0 � ~�com% �firstcom ��secondcom �com%=�com% �� � �firstcom �� �xxx%=srn%(0,cod%(tex%)) �yyy%=srn%(1,cod%(tex%)) �anx%=xxx%-16 �any%=yyy%+8 �xsc%=320-�(a$)*4 �&ș"ABC_PryntString",a$,xsc%,26,0,7 �(ș"ABC_PryntString",a$,xsc%-2,27,0,0 ��graph1 ani%=sub% �place(j$) � ��firstcom (� 2tex%=�(9)*2 <obj%=�(12) F � com$(tex%)>"" � tex%<>pre% Ppre%=J% Zj$=obj$(obj%) d8a$="MOVE to the "+j$+" at the "+com$(tex%)+" square" n� x��secondcom �obj%=�(12) �tex%-=1 �j$=obj$(obj%) �<a$="Now MOVE to the "+j$+" at the "+com$(tex%)+" square" �� � ��two �xob%=�(11)-1 �yob%=�(6)-1 �� �J%=�(32) �� mis$(0,J%)>"" � J%<>pre% �pre%=J% �1a$=mis$(0,J%)+" at ("+�(xob%)+","+�(yob%)+")" j$=mis$(1,J%) xsc%=320-�(a$)*8 &ș"ABC_PryntString",a$,xsc%,30,1,7 "(ș"ABC_PryntString",a$,xsc%-2,31,1,0 ,�graph2 6anx%=xob%*52+48 @any%=yob%*26+112 Jxxx%=xob%*52+64 Tyyy%=yob%*26+104 ^ ani%=sub% h�place(j$) r� |��three � �sub%=0 opr%=�(4) �opr%=sub% �� �J%=�(32) �� mis$(0,J%)>"" � J%<>pre% �pre%=J% � Ȏ opr% � �� 1 �xob%=�(21)-1 �yob%=�(11)-1 ��graph3a �anx%=xob%*26+48 �any%=yob%*13+112 �0�minecoors(21,11,"mix%*26+48","miy%*13+112") � 2 xob%=�(21)-1 yob%=-(�(11)-1) &�graph3b 0anx%=xob%*26+48 :any%=242+yob%*13 D1�minecoors(21,-11,"mix%*26+48","242+miy%*13") N� 3 Xxob%=-(�(21)-1) byob%=-(�(11)-1) l�graph3c vanx%=568+xob%*26 �any%=242+yob%*13 �3�minecoors(-21,-11,"568+mix%*26","242+miy%*13") �� 4 �xob%=-(�(21)-1) �yob%=�(11)-1 ��graph3d �anx%=568+xob%*26 �any%=yob%*13+112 �2�minecoors(-21,11,"568+mix%*26","miy%*13+112") �� �xxx%=anx%+16 �yyy%=any%-8 �1a$=mis$(0,J%)+" at ("+�(xob%)+","+�(yob%)+")" j$=mis$(1,J%) xsc%=320-�(a$)*8 &ș"ABC_PryntString",a$,xsc%,30,1,7 (ș"ABC_PryntString",a$,xsc%-2,31,1,0 *�place(j$) 4� > ��four H� RJ%=�(32) \� mis$(0,J%)>"" � J%<>pre% fpre%=J% p Ȏ sub% � z� 0 �� �ady%=�(22)-11 �xob%=�(22)-11 �yob%=xob%+ady% �� yob%>-11 � yob%<11 ��graph5 �anx%=xob%*16+304 �any%=yob%*8+176 � Ȏ �(4) � �4� 1:�minecoors(21,11,"mix%*16+304","miy%*8+176") �5� 2:�minecoors(-21,11,"mix%*16+304","miy%*8+176") �5� 3:�minecoors(21,-11,"mix%*16+304","miy%*8+176") �4:�minecoors(-21,-11,"mix%*16+304","miy%*8+176") � � 1 � $ady%=�(22)-11 .xob%=�(21)-1 8yob%=xob%+ady% B!� yob%>-1 � yob%<11 � ady%<>0 L�graph3a Vanx%=xob%*26+48 `any%=yob%*13+112 j0�minecoors(21,11,"mix%*26+48","miy%*13+112") t� 2 ~� �ady%=�(22)-11 �xob%=�(21)-1 �yob%=xob%+ady% �!� yob%<1 � yob%>-11 � ady%<>0 ��graph3b �anx%=xob%*26+48 �any%=242+yob%*13 �1�minecoors(21,-11,"mix%*26+48","242+miy%*13") �� 3 �� �ady%=�(22)-11 �xob%=-(�(21)-1) yob%=xob%+ady% !� yob%<1 � yob%>-11 � ady%<>0 �graph3c anx%=568+xob%*26 (any%=242+yob%*13 23�minecoors(-21,-11,"568+mix%*26","242+miy%*13") <� 4 F� Pady%=�(22)-11 Zxob%=-(�(21)-1) dyob%=xob%+ady% n!� yob%>-1 � yob%<11 � ady%<>0 x�graph3d �anx%=568+xob%*26 �any%=yob%*13+112 �2�minecoors(-21,11,"568+mix%*26","miy%*13+112") �� �xxx%=anx%+16 �yyy%=any%-8 �{�ady%<0 a$="When x="+�(xob%)+" "+mis$(0,J%)+" at y=x"+�(ady%) �a$="When x="+�(xob%)+" "+mis$(0,J%)+" at y=x+"+�(ady%) �j$=mis$(1,J%) �xsc%=320-�(a$)*4 �&ș"ABC_PryntString",a$,xsc%,26,0,7 �(ș"ABC_PryntString",a$,xsc%-2,27,0,0 ��place(j$) �� ��five �graph5 �scatter " Ȏ sub% � ,� 0:�>0 �xcoor ��ycoor 6� 1:�xcoor @� 2:�ycoor J� T xxx%=0 ^ yyy%=0 h� r��xcoor | cor%=� � � �dn` ��J%=1� �(4) �� a$ �� �� �xe1%=�(32)-16 �xe2%=�(32)-16 �1� xe1%<xe2% � �(xe1%-xe2%)>3 � �(xe1%-xe2%)<6 �a$+=": " �xsc%=240-�(a$)*4 �&ș"ABC_PryntString",a$,xsc%,26,0,7 �(ș"ABC_PryntString",a$,xsc%-2,27,0,0 �xsc%+=�(a$)*8 a$=�(xe1%)+" � x � "+�(xe2%) &ș"ABC_PryntString",a$,xsc%,30,1,7 (ș"ABC_PryntString",a$,xsc%-2,31,1,0 &� 0��ycoor : cor%=� D � �dn` N�J%=1� �(4) X� a$ b� l� vye1%=�(18)-9 �ye2%=�(18)-9 �1� ye1%<ye2% � �(ye1%-ye2%)>3 � �(ye1%-ye2%)<6 �a$+=": " �xsc%=240-�(a$)*4 �&ș"ABC_PryntString",a$,xsc%,26,0,7 �(ș"ABC_PryntString",a$,xsc%-2,27,0,0 �xsc%+=�(a$)*8 � a$=�(ye1%)+" � y � "+�(ye2%) �&ș"ABC_PryntString",a$,xsc%,30,1,7 �(ș"ABC_PryntString",a$,xsc%-2,31,1,0 �� �7� Proceed to safe area,Keep to the following region �5� Get in this region of space,Safe region only at !,� Space pirates in,Deadly radiation area !/� Electromagnetic storm at,Avoid super nova ! ��six ! �graph5 !*�scatter !4 Ȏ sub% � !>#� 0:�>0 �region(�) ��region(�) !H� 1:�region(�) !R� 2:�region(�) !\� !f xxx%=0 !p yyy%=0 !z� !���region(val%) !� cor%=val% !��cor% � �dn` �� �TBa !��J%=1� �(4) !�� a$ !�� !�� !�xe1%=�(41)-21 !�xe2%=�(41)-21 !�4� xe1%<xe2% � �(xe1%-xe2%)>10 � �(xe1%)<>�(xe2%) !�� !�ye1%=�(21)-11 !�ye2%=�(21)-11 "3� ye1%<ye2% � �(ye1%-ye2%)>6 � �(ye1%)<>�(ye2%) "a$+=": " "xsc%=136-�(a$)*4 "$&ș"ABC_PryntString",a$,xsc%,26,0,7 ".(ș"ABC_PryntString",a$,xsc%-2,27,0,0 "8xsc%+=�(a$)*8 "B;a$=�(ye1%)+" <y< "+�(ye2%)+" "+�(xe1%)+" <x< "+�(xe2%) "L&ș"ABC_PryntString",a$,xsc%,30,1,7 "V(ș"ABC_PryntString",a$,xsc%-2,31,1,0 "`� "j ��scatter "tgli%()=� "~�J%=1�4 "�gld$(J%)=obj$(�(12)) "�� "�glx%(J%)=�(608)-1 "�gly%(J%)=�(160)+96 "�0� ��craft(240,144,400,192,glx%(J%),gly%(J%)) "�� "�� "���assemble "�� cde% &E000 "�ș"ABC_VideoAddress" � vid% "�sp =13 "�link=14 # pc =15 # �A%=0�2�2 #P%=cde% # [OPTA% #(.ScreenSave #2ADR R12,savescreen #<LDR R11,screen #FMOV R10,#&B0 #P.save_another #ZMOV R9,#10 #d.save_line #nLDMIA R11!,{R0-R7} #xSTMIA R12!,{R0-R7} #�SUBS R9,R9,#&1 #�BNE save_line #�SUBS R10,R10,#&1 #�BNE save_another #�MOV pc,link #�.RestoreScreen #�ADR R12,savescreen #�LDR R11,screen #�MOV R10,#&B0 #�.restore_another #�MOV R9,#10 #�.restore_line #�LDMIA R12!,{R0-R7} $STMIA R11!,{R0-R7} $SUBS R9,R9,#&1 $BNE restore_line $"SUBS R10,R10,#&1 $,BNE restore_another $6MOV pc,link $@ .Asteroid $JLDR R2,[R9] $TLDR R2,[R2] $^LDR R1,[R9,#&8] $hLDR R1,[R1] $rADR R12,savescreen $|LDR R11,screen $�RSB R2,R2,#&100 $�ADD R2,R2,R2,LSL#2 $�MOV R2,R2,LSL#6 $�ADD R2,R2,R1,ASR#1 $�TST R2,#%11 $�ADD R12,R12,R2 $�ADD R11,R11,R2 $�MOV R10,#&8 $�.restore_asteroid $�LDMIA R12,{R0-R2} $�STMIA R11,{R0-R2} $�ADD R11,R11,#&140 $�ADD R12,R12,#&140 %SUBS R10,R10,#&1 %BNE restore_asteroid %MOV pc,link %& .Ship %0LDR R3,[R9] %:LDR R3,[R3] %DLDR R2,[R9,#&8] %NLDR R2,[R2] %XLDR R1,[R9,#&10] %bLDR R1,[R1] %lLDR R0,[R9,#&18] %vLDR R0,[R0] %�STMFD sp !,{R0-R3} %�MOV R0,#19 %�SWI "XOS_Byte" %�LDMFD sp !,{R1,R2} %�ADR R12,savescreen %�LDR R11,screen %�RSB R2,R2,#&100 %�ADD R2,R2,R2,LSL#2 %�MOV R2,R2,LSL#6 %�ADD R2,R2,R1,ASR#1 %�TST R2,#%11 %�ADD R12,R12,R2 %�ADD R11,R11,R2 &MOV R10,#&18 &.restore_ship &LDMIA R12,{R0-R8} & STMIA R11,{R0-R8} &*ADD R11,R11,#&140 &4ADD R12,R12,#&140 &>SUBS R10,R10,#&1 &HBNE restore_ship &RLDR R0,sprite_bank &\ADR R1,sprite_name &fLDMFD sp !,{R2,R3} &pSWI "ABC_Sprite" &zMOV pc,link &�.Object &�LDR R2,[R9] &�LDR R2,[R2] &�LDR R1,[R9,#&8] &�LDR R1,[R1] &�ADR R12,savescreen &�LDR R11,screen &�RSB R2,R2,#&100 &�ADD R2,R2,R2,LSL#2 &�MOV R2,R2,LSL#6 &�ADD R2,R2,R1,ASR#1 &�TST R2,#%11 &�ADD R12,R12,R2 'ADD R11,R11,R2 'MOV R10,#&10 '.restore_object '$LDMIA R12,{R0-R4} '.STMIA R11,{R0-R4} '8ADD R11,R11,#&140 'BADD R12,R12,#&140 'LSUBS R10,R10,#&1 'VBNE restore_object '`MOV pc,link 'j.screen 't EQUD vid% '~.sprite_bank '�EQUD b% '�.sprite_name '�EQUD &0 '�.savescreen '�] '�� '�� '���placeasteroids '� �ast%=0:� '��A%=1� ast% '�� '� B%=�(600) ( C%=�(160)+88 ( $� ��craft(240,144,400,192,B%,C%) (asx(A%)=B% (asy(A%)=C% ((asi%(A%)=�(4)-1 (2/ș"ABC_Sprite",b%,"aster"+�(asi%(A%)),B%,C% (<� (Fvx(A%)=�(1)*4-2 (Pvy(A%)=�(1)*4-2 (Z� �(vx(A%))>1 � �(vy(A%))>1 (d� (n� (x&ݤcraft(x1%,y1%,x2%,y2%,xsc%,ysc%) (��xsc%<x1% � xsc%>x2%:=� (��ysc%<y1% � ysc%>y2%:=� (�=� (���placecraft (� exp%=� (� fin%=� (� rok%=ast% (�sax%=288 (�say%=180 (� try%=0 (� vox%=0 (� voy%=0 (�$sprite_name=g$ )"ș"ABC_Sprite",b%,g$,sax%,say% ) �flush )ȗ � 640,512 )"� ),��asteroids )6�rok%=0:Ȗ:� )@�A%=1� rok% )Jolx%=asx(A%) )Toly%=asy(A%) )^asx(A%)+=vx(A%) )hasy(A%)+=vy(A%) )r'�asx(A%)<-32:asx(A%)=608:asy(A%)+=1 )|%�asx(A%)>640:asx(A%)=0:asy(A%)-=1 )��asy(A%)>256:asy(A%)=88 )��asy(A%)<88:asy(A%)=255 )�asi%(A%)=(asi%(A%)+1)�3 )�� Asteroid, olx%, oly% )�9ș"ABC_Sprite",b%,"aster"+�(asi%(A%)),asx(A%),asy(A%) )�� )�� )�$ݤhit(x1%,y1%,x2%,y2%,xsc%,ysc%) )��xsc%<x1% � xsc%>x2%:=� )��ysc%<y1% � ysc%>y2%:=� )�=� )� ��ship )�ȗ mox%,moy%,but% * olx%=sax% * oly%=say% *�mox%>648:vox%+=4 *&�mox%<632:vox%-=4 *0�moy%>524:voy%+=2 *:�moy%<500:voy%-=2 *Dsax%+=vox% *Nsay%+=voy% *X�vox%>0:vox%-=1 *b�vox%<0:vox%+=1 *l�voy%>0:voy%-=1 *v�voy%<0:voy%+=1 *��sax%<0:sax%=0 *��sax%>576:sax%=576 *��say%<104:say%=104 *��say%>256:say%=256 *�"� Ship, olx%, oly%, sax%, say% *�ȗ � 640,512 *�� *� ��collide *� �rok%=0:� *��A%=1� rok% *�T�hit(sax%,say%-24,sax%+64,say%,asx(A%)+8,asy(A%)-4):�explode(asx(A%),asy(A%),�) *�� *�� +��explode(B%,C%,wip%) +�wip% � +� Asteroid, B%, C% + asx(A%)=asx(rok%) +*asy(A%)=asy(rok%) +4asi%(A%)=asi%(rok%) +>rok%-=1 +H� +R exp%=� +\ fin%=� +f foc%=� +p suc%=� +z� 24,0;320;1278;1020; +�/�noise("Percussion-Snare",3,&17F,&1000,&24) +��J%=1�20 +��K%=1�4 +� � 0,14 +�xsc%=�(128)+sax%*2 +�ysc%=�(96)+say%*4-96 +�rad%=�(32)+8 +�ȏȐ xsc%,ysc%,rad% +� � 0,7 +�ȏ xsc%,ysc%,rad% +�� +� �delay(3) +��asteroids ,�keepobject ,� ,� RestoreScreen ,$�26 ,.� ,8��keepobject ,B�A%=1�4 ,L:�gli%(A%):ș"ABC_Sprite",b%,gld$(A%),glx%(A%),gly%(A%) ,V� ,`� ,j ��animate ,tB�ani%=0 � exp% � �craft(sax%,say%-24,sax%+64,say%,xxx%,yyy%):� ,~C�shw% ș"ABC_Sprite",b%,j$,xxx%-16,yyy%+8 �� Object, anx%, any% ,�� ,���answer ,� suc%=� ,� Ȏ grd% � ,�� 1 ,�xsr%=srn%(0,cod%(tex%))-80 ,�ysr%=srn%(1,cod%(tex%))-22 ,�;suc%=�craft(xsr%,ysr%,xsr%+160,ysr%+43,sax%+32,say%-12) ,�<� 2,3,4:suc%=�craft(sax%,say%-24,sax%+64,say%,xxx%,yyy%) ,�� 5 ,�xsc=(sax%+32)/16-20 ,�ysc=(say%-92)/8-11 - �cor% � - �xsc>xe1% � xsc<xe2%:suc%=� -� -�ysc>ye1% � ysc<ye2%:suc%=� -(� -2� 6 -<xsc=(sax%+32)/16-20 -Fysc=(say%-92)/8-11 -P=�xsc>xe1% � xsc<xe2% � ysc>ye1% � ysc<ye2% reg%=� �reg%=� -Z�cor% � -d�reg%:suc%=� -n� -x�reg%:suc%=� -�� -�� -�� -���panel -� spn%=� -� fin%=suc% -��suc% � -�&�noise("Cymbal",4,&17F,&1200,&100) -� sec%=san% -�sum%+=1 -��sum%=mis%:ovr%=� -�ryt%+=1 -� scr%(cur%)+=bon%+4*ast%*grd% .�tim%:scr%(cur%)+=(35-san%) . try%=0 .� .")�exp%:�noise("Burp",3,&17F,&2600,&8) .,ron%+=1 .6try%+=1 .@ �try%=1 � .J"�grd%<5 ani%=1 ��highlightarea .T shw%=� .^�animate .h� .r fin%=� .|� .�� .�� .���changeplayer .�cur%+=1 .��cur%>ply%:cur%=1 .� �which .��zeromouse .� �flush .��same(name$(cur%)) .�� .� ��attract .� com%=� .� exp%=� /sum%+=1 / try%=0 /�sum%=mis%:ovr%=� /& �grd%>4:� /0�fla%=1�48 /: �delay(3) /Dshw%=�shw% /N(�shw%:�noise("Ping",4,&17F,&6200,&2) /X�animate /b� /l�update /v�delay(100) /�� /���decide /�#�tim% �timerused ��timernotused /��scores /��update /� �which /��=0 /�� /���timerused /� �ply%=1 � /��attract /� fin%=� /�� 0�suc% � 0�attract 0�ovr%:�changeplayer 0 fin%=� 0* sec%=san% 04� 0>� 0H� 0R��timernotused 0\ �ply%=1 � 0f�try%=2:�attract 0p� 0z�suc% � 0��attract 0��ovr%:�changeplayer 0� fin%=� 0�� 0�� 0�� 0���graph1 0�ȑ 160,416 0� � 0,0 0��X%=0�3 0�� X%*320,0 0� � 1,0,512 0�� 1�Y%=0�3 1� 0,Y%*172 1 � 1,960,0 1$� 1. ȑ 0,0 18� 1B��graph2 1Lȑ 128,416 1V� 5 1`�X%=0�10 1j � 0,0 1t� X%*104,0 1~� 1,0,-8 1�� X%*104-8,-16 1��X% 1� � 0,5 1�� X%*104,0 1�� 25,0,520 1�� 1��Y%=0�5 1� � 0,0 1�� 0,Y%*104 1�� 1,-4,0 1�� -28,Y%*104+16 1��Y% 2 � 0,5 2 � 0,Y%*104 2� 25,1040,0 2� 2( � 0,0 22� 0,0,1040,0 2<� 0,0,0,520 2F�xpos(1040,0) 2P�ypos(0,512) 2Z� 4 2d� 2n ȑ 0,0 2x� 2���ypos(xsc%,ysc%) 2�� xsc%,ysc% 2�� 1,0,64 2�� 1,-8,-16 2�� 0,8,16 2� � 1,8,-16 2�� xsc%-16,ysc%+96 2� �"+y" 2�� 2���yneg(xsc%,ysc%) 2�� xsc%,ysc% 2� � 1,0,-64 2� � 1,-8,16 3 � 0,8,-16 3� 1,8,16 3� xsc%-16,ysc%-64 3" �"-y" 3,� 36��xpos(xsc%,ysc%) 3@� xsc%,ysc% 3J� 1,32,0 3T� 1,-8,8 3^� 0,8,-8 3h � 1,-8,-8 3r� xsc%+32,ysc%+16 3| �"+x" 3�� 3���xneg(xsc%,ysc%) 3�� xsc%,ysc% 3� � 1,-32,0 3�� 1,8,8 3� � 0,-8,-8 3�� 1,8,-8 3�� xsc%-66,ysc%+16 3� �"-x" 3�� 3� ��graph3a 3��hatch1 3�ȑ 128,416 4� 5 4 � 0,0 4�X%=0�20 4& � X%*52,0 40� 1,0,-8 4:&�X%�2=0:� X%*52-�(�(X%))*8,-16:�X% 4D� 4N�Y%=0�10 4X � 0,Y%*52 4b� 1,-4,0 4l*�Y%�2=0:� -12-�(�(Y%))*16,Y%*52+16:�Y% 4v� 4�� 0,0,0,520 4�� 0,0,1040,0 4��xpos(1040,0) 4��ypos(0,512) 4�� 4 4�� 4� ȑ 0,0 4�� 4� ��graph3b 4��hatch1 4�ȑ 128,936 4�� 5 4� � 0,0 5�X%=0�20 5 � X%*52,0 5� 1,0,8 5 %�X%�2=0:� X%*52-�(�(X%))*8,40:�X% 5*� 54�Y%=0�10 5>� 0,-Y%*52 5H� 1,-4,0 5R1�Y%�2=0:� -(12+�(�(-Y%))*16),-(Y%*52)+16:�-Y% 5\� 5f � 0,0 5p� 0,0,0,-520 5z� 0,0,1040,0 5��xpos(1040,0) 5��yneg(0,-520) 5�� 4 5�� 5� ȑ 0,0 5�� 5� ��graph3c 5��hatch1 5�ȑ 1168,936 5�� 5 5� � 0,0 5��X%=0�20 5�� -X%*52,0 6� 1,0,8 6(�X%�2=0:� -X%*52-�(�(-X%))*8,40:�-X% 6� 6$�Y%=0�10 6.� 0,-Y%*52 68� 1,-4,0 6B!�Y%�2=0:� 12,-(Y%*52)+16:�-Y% 6L� 6V� 0,0,0,-520 6`� 0,0,-1040,0 6j�xneg(-1040,0) 6t�yneg(0,-520) 6~� 4 6�� 6� ȑ 0,0 6�� 6� ��graph3d 6��hatch1 6�ȑ 1168,416 6�� 5 6� � 0,0 6��X%=0�20 6�� -X%*52,0 6�� 1,0,-8 6�)�X%�2=0:� -X%*52-�(�(-X%))*8,-16:�-X% 7 � 7 �Y%=0�10 7 � 0,Y%*52 7� 1,4,0 7(�Y%�2=0:� 12,Y%*52+16:�Y% 72� 7<� 0,0,0,520 7F� 0,0,-1040,0 7P�xneg(-1040,0) 7Z�ypos(0,512) 7d� 4 7n� 7x ȑ 0,0 7�� 7���graph5 7��hatch2 7�ȑ 640,672 7�� 5 7� � 0,0 7��X%=-18�18 7� � X%*32,0 7�� 1,0,-8 7�&�X%�2=0:� X%*32-�(�(X%))*8,-16:�X% 7�� 7��Y%=-9�9 7� � 0,Y%*32 8� 1,-4,0 8.�Y%�2=0:� -(12+�(�(Y%))*16),(Y%*32)+12:�Y% 8� 8"ȑ 640,672 8,� 0,-320,0,320 86� -608,0,608,0 8@�xpos(576,0) 8J�xneg(-576,0) 8T�ypos(0,256) 8^�yneg(0,-256) 8h� 4 8r� 8| ȑ 0,0 8�� 8���hatch2 8�ȑ 0,320 8� � 0,5 8��X%=1�40 8� � X%*32,0 8�� 17,0,704 8�� 8��Y%=1�21 8� � 0,Y%*32 8�� 17,1280,0 8�� 8�� 9��hatch1 9ȑ 128,416 9 � 0,5 9&�X%=0�20 90 � X%*52,0 9:� 17,0,520 9D� 9N�Y%=0�10 9X � 0,Y%*52 9b� 17,1040,0 9l� 9v� 9� ��minecoors(rax%,ray%,x$,y$) 9� min%=� 9�� 9�� 9�mix%=�(�(rax%)-1) 9�miy%=�(�(ray%)-1) 9��rax%<0:mix%=-mix% 9��ray%<0:miy%=-miy% 9�� mix%<>xob% � miy%<>yob% 9�dax%=�(x$)+16 9�day%=�(y$)-8 9�(� ��craft(288,156,352,180,dax%,day%) 9�� :��danger :(�sub%>0 � �(4)<3 � grd%<3 � grd%>4:� : min%=� : &�noise("Danger",2,&17F,&1C00,&100) :*&�noise("Danger",3,&17F,&1C00,&100) :4#ș"ABC_Transfer",212,195,216,64 :>&ș"ABC_Place",b%,"message",212,196 :H � �d@z :R�J%=1� �(8) :\� a$ :f� :p'a$+=" at ("+�(mix%)+","+�(miy%)+")" :z/ș"ABC_PryntString",a$,320-�(a$)*4,162,0,11 :��=0 :�� :��countdown :�� �leave :�ș"ABC_Restore" :�� :�/� Space junk,Black hole,Radiation,Gas cloud :�,� Anti-matter,Nebula,Worm hole,Ion storm :���countdown :��<100:� :�bon%-=grd% :��bon%<0:bon%=0 :�� 5 ; � 0,7 ;Ȗ ;ȓȐ 488,192,32,36 ;$ � 0,4 ;. � 488,220 ;8 �bon% ;B� 4 ;L� ;V�=0 ;`� ;j��hazard ;t�min%:� ;~ hit%=� ;� Ȏ grd% � ;�=� 3,4:�craft(sax%,say%-24,sax%+64,say%,dax%,day%):hit%=� ;�� 5 ;�� 6 ;�� ;��hit% � ;�"�noise("Tone",3,&17F,&5400,&1) ;�scr%(cur%)-=grd% ;��scr%(cur%)<0:scr%(cur%)=0 ;��scores ;�� ;�� <