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
;��
;��
<