Home » Archimedes archive » Archimedes World » AW-1993-12.adf » AWDec93 » !AWDec93/Goodies/10out10/!10_10Alge/Menu
!AWDec93/Goodies/10out10/!10_10Alge/Menu
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/Menu |
Read OK: | ✔ |
File size: | 6C41 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >adfs::0.$.!10/10Alge.Menu 20ONERROR:PROCerror 30IFMODE<>12:MODE12:OFF 40PROCinitial 50PROCmenu 60REPEAT 70PROCmouseilluminate 80PROCselect 90PROCaccess 100PROCconfigure 110UNTIL FALSE 120DEFPROCinitial 130SYS"ABC_VideoAddress" 140SYS"Hourglass_On" 150MOUSE RECTANGLE 0,0,1280,1024 160DIM att%(6,10),new%(6,10),info$(6,10),filename$(64),status%(2),six$(6) 170DIM buf%(6,10),directory%(64),files%(64),cat% &400 180h%=OPENIN("ram:FactFile") 190FORJ%=1TO6 200FORK%=1TO10 210INPUT#h%,fact$ 220info$(J%,K%)=fact$ 230NEXT 240NEXT 250CLOSE#h% 260RESTORE 12340 270FORJ%=1TO6 280FORK%=1TO6 290READ X% 300buf%(J%,X%)=K% 310NEXT 320NEXT 330*FX212 128 0 340@% =0 350box%=0 360g% =16 370pre%=-1 380sun%=0 390wit%=20 400f$ ="<Disc2$Dir>.SixGames." 410b% =FNinitialsprites("Numbers|Buttons",0) 420z% =FNinitialcompressed("IntrosSpr") 430PROCloaddetails 440SYS"Hourglass_Smash" 450PROCpoint("Ten",1) 460VOICES 4 470VOICE 1,"StringLib-Pluck" 480PROCflush 490ENDPROC 500DEFPROCmouse1 510MOUSE COLOUR 1,255,255,0 520MOUSE COLOUR 2,255,0,0 530MOUSE COLOUR 3,192,192,192 540MOUSE ON 1 550ENDPROC 560DEFFNarea(x1%,y1%,x2%,y2%) 570IFmox%<x1% OR mox%>x2%:=FALSE 580IFmoy%<y1% OR moy%>y2%:=FALSE 590=TRUE 600DEFPROCmouseilluminate 610MOUSE mox%,moy%,but% 620box%=(moy%-100)>>6 630IFbox%<0:box%=0 640IFbox%>11:box%=11 650IFbox%<>sun%:WAIT:PROCsquare(sun%,11):PROCsquare(box%,15):sun%=box% 660IFNOTFNarea(704,104,864,868) THEN 670PROCsquare(box%,11) 680IFbox%<5 THEN 690box%=11:sun%=10 700ELSE 710box%=0:sun%=1 720ENDIF 730ENDIF 740IFbut%=0 OR NOTFNarea(704,104,864,868):ENDPROC 750VDU 7 760CASE box% OF 770WHEN 0 :PROCdesktop 780WHEN 1 :PROCprintcertificate 790WHEN 2 :PROCdelete 800WHEN 3 :PROCcreate 810WHEN 4 :PROCload 820WHEN 5 :PROCviewachieve 830WHEN 6 :PROCrun("RibTickler") 840WHEN 7 :PROCrun("TurboRaft") 850WHEN 8 :PROCrun("HookIt") 860WHEN 9 :PROCrun("ChainUp") 870WHEN 10:PROCrun("Processor") 880WHEN 11:PROCrun("Graphoid") 890ENDCASE 900IFsun%<11 sun%=11 ELSEsun%=0 910REPEAT 920MOUSE mox%,moy%,but% 930UNTIL but%=0 940PROCmenu 950ENDPROC 960DEFPROCrun(game$) 970MOUSE OFF 980SYS"Hourglass_On" 990SYS"ABC_Blank",15 1000SYS"ABC_Colour",15 1010h%=OPENOUT(f$+"Misc.Signal") 1020PRINT#h%,"" 1030CLOSE#h% 1040CHAIN f$+game$ 1050ENDPROC 1060DEFPROCsquare(wch%,col%) 1070GCOL 0,col% 1080RECTANGLEFILL 706,wch%*64+100,156,58 1090ENDPROC 1100DEFPROCmenu 1110MOUSE OFF 1120MOUSE TO 640,512 1130SYS"ABC_Blank",15 1140SYS"ABC_Colour",15 1150PROCcard("ALGEBRA MENU",24,6,2,12) 1160PROCfillmenu(13,10) 1170PROCcurrent 1180PROCrectangles 1190PROCcontents 1200SYS"ABC_Palette" 1210MOUSE RECTANGLE 0,0,1280,1024 1220MOUSE TO 640,512 1230PROCmouse1 1240ENDPROC 1250DEFPROCfillmenu(tax%,tay%) 1260VDU 5 1270GCOL 0,0 1280RESTORE 1430 1290FORJ%=0TO5 1300READ s$ 1310MOVE tax%*32-g%,1024-(tay%*g%+J%*64+20) 1320PRINTs$ 1330NEXT 1340GCOL 0,14 1350FORJ%=6TO11 1360READ s$ 1370MOVE tax%*32-g%,1024-(tay%*g%+J%*64+20) 1380PRINTs$ 1390NEXT 1400VDU 4 1410OFF 1420ENDPROC 1430DATA Graphoid,Processor,Chain Up,Hook It!,Turbo Raft,Rib Tickler 1440DATA Player information,Change player,New player,Remove player 1450DATA Print certificate,Quit 1460DEFPROCachievecard 1470MOUSE OFF 1480SYS"ABC_Blank",15 1490SYS"ABC_Colour",15 1500a$=FNstrip(attend$) 1510IFa$="":a$="Empty" 1520IFnig% THEN 1530PROCcard(a$+" : Achievement Record 10/10 Mathematics (Algebra - AT3)",0,12,8,11) 1540ELSE 1550PROCcard(a$+" : Achievement Record 10/10 Mathematics ",0,12,8,11) 1560ENDIF 1570PROCfillachieve(0,6) 1580m$="RETURN TO MENU" 1590PROCmess(m$,11) 1600MOUSE TO 640,512 1610SYS"ABC_Palette" 1620PROCmouse1 1630p$="X" 1640sta%=0 1650oxx%=0 1660oyy%=0 1670*FX21 0 1680ENDPROC 1690DEFPROCviewachieve 1700PROCachievecard 1710REPEAT 1720MOUSE mox%,moy%,but% 1730IFmoy%<72 AND sta%=0:sta%=1:PROCmess(m$,10) 1740IFmoy%>72 AND sta%=1:sta%=0:PROCmess(m$,11) 1750cxx%=(mox%-320)/160+1 1760IFmoy%>836 cyy%=0 ELSEcyy%=(ABS(moy%-836)DIV64)+1 1770IFcyy%>10:cyy%=0 1780IFcxx%<0 OR cxx%>6 cxx%=0 1790IFcxx%<>oxx% OR cyy%<>oyy% THEN 1800oxx%=cxx% 1810oyy%=cyy% 1820a$=info$(cxx%,cyy%) 1830IFa$>"" THEN 1840IFnig% PROCinformation("AT3 Level "+a$) ELSEPROCinformation(MID$(a$,INSTR(a$,")")+2)) 1850ELSE 1860PROCinformation("") 1870ENDIF 1880ENDIF 1890PROCachievediscdump 1900PROCachieveprintdump 1910PROCallachieveprintdump 1920UNTIL FNleave 1930ENDPROC 1940DEFPROCinformation(t$) 1950IFp$=t$:ENDPROC 1960p$=t$ 1970GCOL 0,11 1980VDU 5 1990WAIT 2000RECTANGLEFILL 0,96,1278,64 2010GCOL 0,0 2020RECTANGLE 0,96,1278,64 2030MOVE 640-LEN(t$)*8,140 2040PRINTt$ 2050VDU 4 2060OFF 2070ENDPROC 2080DEFPROCcard(t$,tax%,tay%,sdx%,sdy%) 2090VDU 5 2100GCOL 0,8 2110RECTANGLEFILL tax%*g%,tay%*g%,sdx%*160+160,sdy%*64 2120GCOL 0,11 2130RECTANGLEFILL tax%*g%+320,tay%*g%,sdx%*160-162,sdy%*64 2140GCOL 0,0 2150IFsdx%*160+160>1279 sxe%=1278 ELSEsxe%=sdx%*160+160 2160RECTANGLE tax%*g%,tay%*g%,sxe%,sdy%*64 2170GCOL 0,13 2180MOVE tax%*g%+64,tay%*g%+sdy%*64+64 2190PLOT 0,LEN(t$)*g%,0 2200PLOT 85,tax%*g%,tay%*g%+sdy%*64 2210PLOT 81,128+LEN(t$)*g%,0 2220GCOL 0,0 2230MOVE tax%*g%,tay%*g%+sdy%*64 2240PLOT 1,64,64 2250PLOT 1,LEN(t$)*g%,0 2260PLOT 1,64,-64 2270MOVE tax%*g%+64,tay%*g%+sdy%*64+44 2280PRINTt$ 2290FORJ%=1TO sdx% 2300MOVE tax%*g%+J%*160+160,tay%*g% 2310PLOT 1,0,sdy%*64 2320NEXT 2330FORJ%=1TO sdy% 2340MOVE tax%*g%,tay%*g%+J%*64 2350PLOT 1,sdx%*160+160,0 2360NEXT 2370VDU 4 2380OFF 2390ENDPROC 2400DEFPROCfillachieve(tax%,tay%) 2410VDU 5 2420RESTORE 2940 2430READ t$ 2440MOVE tax%+32,1024-(tay%*g%+52) 2450PRINTt$ 2460FORK%=1TO6 2470READ t$ 2480MOVE (tax%+32+K%*160+208)-LEN(t$)*8,1024-(tay%*g%+52) 2490PRINTt$ 2500NEXT 2510FORJ%=1TO10 2520GCOL 0,0 2530READ t$ 2540MOVE tax%+32,1024-(tay%*g%+J%*64+52) 2550PRINTt$ 2560FORK%=1TO6 2570fax%=tax%+32+K%*160 2580fay%=tay%*g%+J%*64 2590IFfax%+156>=1100 wid%=154 ELSEwid%=156 2600CASE att%(K%,J%) OF 2610WHEN 0 2620IFinfo$(K%,J%)="" GCOL 0,3 ELSEGCOL 0,7 2630IFstatus%(1)+status%(2)=36:GCOL 0,8 2640IFstatus%(1)=36:GCOL 0,10 2650IFstatus%(2)=36:GCOL 0,15 2660WHEN 1:GCOL 0,11 2670WHEN 2:GCOL 0,14 2680WHEN 3,4,5,6,7,8,9,10,11:GCOL 0,10 2690OTHERWISE:GCOL 0,15 2700ENDCASE 2710RECTANGLEFILL fax%+130,1024-(fay%+92),wid%,56 2720IFinfo$(K%,J%)>"" THEN 2730IFnig% THEN 2740GCOL 0,7 2750MOVE fax%+172,1020-(fay%+52) 2760PRINTLEFT$(info$(K%,J%),INSTR(info$(K%,J%),"(")-2) 2770GCOL 0,0 2780MOVE fax%+174,1024-(fay%+52) 2790PRINTLEFT$(info$(K%,J%),INSTR(info$(K%,J%),"(")-2) 2800ELSE 2810GCOL 0,7 2820MOVE fax%+202,1020-(fay%+52) 2830PRINTbuf%(K%,J%) 2840GCOL 0,0 2850MOVE fax%+204,1024-(fay%+52) 2860PRINTbuf%(K%,J%) 2870ENDIF 2880ENDIF 2890NEXT 2900NEXT 2910VDU 4 2920OFF 2930ENDPROC 2940DATA SUBJECT,Graphoid,Processor,Chain Up,Hook It!,Turbo Raft,Tickler 2950DATA Patterns and Seq,Symbols,Formulae and Equ,Co-ordinates,Graphs 2960DATA Operations,Mappings and Fns,Inequalities,Interpretation,Words 2970DEFPROCcent(t$,tay%) 2980PRINTTAB(41-LEN(t$)DIV2,tay%)t$; 2990ENDPROC 3000DEFPROCmess(t$,col%) 3010GCOL 0,col% 3020VDU 5 3030WAIT 3040RECTANGLEFILL 0,0,1278,64 3050GCOL 0,0 3060RECTANGLE 0,0,1278,64 3070MOVE 640-LEN(t$)*8,44 3080PRINTt$ 3090VDU 4 3100OFF 3110ENDPROC 3120DEFPROCerror 3130LOCAL ERROR 3140VDU 3,26,7 3150*CLOSE 3160SYS"Hourglass_Smash" 3170MOUSE OFF 3180SYS"ABC_Colour",15 3190IFERR>&107FF AND ERR<&10900 THEN 3200PROCmess("FILING SYSTEM REPORTS ERROR : "+REPORT$,11) 3210PROCdelay(150) 3220VDU 7 3230PROCmess("PLEASE CHECK DISC IN DRIVE AND NOT WRITE PROTECTED THEN PRESS RETURN",11) 3240REPEAT 3250UNTIL INKEY-74 3260ENDIF 3270ON ERROR LOCAL GOTO 3140 3280h%=OPENOUT(f$+"Misc.Signal") 3290PRINT#h%,"" 3300CLOSE#h% 3310*DIR <Disc2$Dir>.SixGames 3320RESTORE ERROR 3330SYS"ABC_Colour",15 3340RUN 3350ENDPROC 3360DEFPROCprintcertificate 3370SYS"ABC_Colour",15 3380MOUSE OFF 3390ach%=TRUE 3400FORJ%=1TO10 3410FORK%=1TO6 3420IFatt%(K%,J%)>2:ach%=FALSE 3430NEXT 3440NEXT 3450IFach% THEN 3460PROCmess("Nothing achieved at present - return to menu",11) 3470REPEAT 3480MOUSE mox%,moy%,but% 3490UNTIL but%=0 3500REPEAT 3510UNTIL FNleave 3520ELSE 3530PROCbusy 3540REPEAT 3550UNTIL FNleave 3560ENDIF 3570ENDPROC 3580DEFPROCbusy 3590PROCmess("Screen/Printer/Disc (S/P/D)",11) 3600*FX21 0 3610REPEAT 3620k%=INKEY(0) 3630IFk%>=ASC("a"):k%-=32 3640UNTIL k%=ASC("S") OR k%=ASC("P") OR k%=ASC("D") OR INKEY-113 3650IFINKEY-113:PROCflush:ENDPROC 3660VDU 7 3670IFk%<>ASC("P") THEN 3680PROCmess("Text/Graphics (T/G)",11) 3690REPEAT 3700t%=INKEY(0) 3710IFt%>=ASC("a"):t%-=32 3720UNTIL t%=ASC("T") OR t%=ASC("G") OR INKEY-113 3730ELSE 3740t%=ASC("T") 3750ENDIF 3760IFINKEY-113:PROCflush:ENDPROC 3770IFt%=ASC("T") PROCachieve_text ELSEPROCachieve_graphics 3780IFk%=ASC("D"):PROCdiscdump 3790IFk%=ASC("P"):PROCprinter_dump 3800ENDPROC 3810DEFPROCachieve_graphics 3820SYS"ABC_Blank",3 3830SYS"ABC_Colour",3 3840GCOL 0,12 3850RECTANGLEFILL 184,64,974,932 3860GCOL 0,7 3870RECTANGLE 184,64,976,932 3880COLOUR 0 3890COLOUR 140 3900SYS"ABC_Sprite",b%,"wax",444,70 3910SYS"ABC_Sprite",b%,"small",120,64 3920SYS"ABC_Sprite",b%,"small",420,214 3930PROCwords(TRUE) 3940SYS"ABC_Palette" 3950ENDPROC 3960DEFPROCachieve_text 3970SYS"ABC_Blank",12 3980SYS"ABC_Colour",12 3990COLOUR 7 4000COLOUR 140 4010PROCcent(STRING$(67,"*"),0) 4020FORJ%=1TO29 4030PRINTTAB(8,J%)"*"TAB(74,J%)"*" 4040NEXT 4050PROCcent(STRING$(67,"*"),30) 4060PROCwords(FALSE) 4070SYS"ABC_Palette" 4080ENDPROC 4090DEFPROCwords(fan%) 4100COLOUR 7 4110IFfan% THEN 4120SYS"ABC_Sprite",b%,"certify",118,248 4130COLOUR 137 4140a$=FNstrip(attend$) 4150PRINTTAB(42-LEN(attend$)DIV2,4)a$ 4160ELSE 4170PROCcent("THIS IS TO CERTIFY THAT ",2) 4180COLOUR 140 4190a$=FNstrip(attend$) 4200PROCcent(a$,4) 4210ENDIF 4220COLOUR 140 4230PRINTTAB(18,7)"has played the" 4240PRINTTAB(18,8)"Ten out of Ten" 4250PRINTTAB(18,9)"Maths (Algebra)" 4260PRINTTAB(18,10)"games and has" 4270IFnig% THEN 4280PRINTTAB(18,11)"achieved 100% at the following AT3 Levels:" 4290ELSE 4300IFver% a$="grades" ELSEa$="levels" 4310PRINTTAB(18,11)"achieved 100% at the following "+a$ 4320ENDIF 4330PROCcent(FNdate,25) 4340PROCcent("Certificate from",27) 4350PROCcent("10/10 Educational Systems",28) 4360tay%=0 4370FORJ%=1TO10 4380K%=1 4390fnd%=FALSE 4400WHILE K%<7 AND NOTfnd% 4410IFatt%(K%,J%)>2 AND LEFT$(info$(K%,J%),INSTR(info$(K%,J%),")")-2)<>"":tay%+=1:fnd%=TRUE 4420K%+=1 4430ENDWHILE 4440NEXT 4450RESTORE 2950 4460tay%=18-tay%DIV2 4470FORJ%=1TO10 4480READ b$ 4490six$()="" 4500FORK%=1TO6 4510IFnig% y$=LEFT$(info$(K%,J%),INSTR(info$(K%,J%),"(")-2) ELSEy$=STR$(buf%(K%,J%)) 4520IFatt%(K%,J%)>2 AND y$>"0":six$(K%)=y$ 4530NEXT 4540REPEAT 4550srt%=TRUE 4560FORK%=1TO5 4570IFsix$(K%)<six$(K%+1):SWAP six$(K%),six$(K%+1):srt%=FALSE 4580NEXT 4590UNTIL srt% 4600a$="" 4610FORK%=1TO6 4620IFsix$(K%)<>"":a$+=six$(K%)+"," 4630NEXT 4640IFRIGHT$(a$)=",":a$=LEFT$(a$) 4650IFa$<>"" THEN 4660PRINTTAB(18,tay%)b$TAB(36,tay%)"..."TAB(40,tay%)a$ 4670tay%+=1 4680ENDIF 4690NEXT 4700ENDPROC 4710DEFPROCdiscdump 4720VDU 7 4730MOUSE OFF 4740LOCAL ERROR 4750SYS"ABC_Transfer",0,16,640,17 4760PROCinput(32,"adfs::0.$."+attend$,FALSE,TRUE) 4770SYS"ABC_Restore" 4780IFesc% OR i$="":ENDPROC 4790SYS"Hourglass_On" 4800OSCLI"SCREENSAVE "+i$ 4810SYS"Hourglass_Smash" 4820ON ERROR LOCAL:VDU 7:PROCmess("PLEASE INSERT DISC INTO DRIVE AND PRESS RETURN",8):REPEAT:UNTIL INKEY-74 4830*DIR <Disc2$Dir>.SixGames 4840SYS"ABC_Restore" 4850MOUSE TO 640,512 4860PROCmouse1 4870ENDPROC 4880DEFPROCprinter_dump 4890VDU 2 4900FORJ%=0TO30 4910FORK%=0TO79 4920VDU 31,K%,J% 4930SYS"OS_Byte",135 TO ,res% 4940VDU res% 4950NEXT 4960IFJ%<30:VDU 13,10 4970NEXT 4980VDU 3 4990ENDPROC 5000DEFPROCload 5010PROClegal 5020IFbad% OR esc%:ENDPROC 5030PROCgridcheck 5040IFa$="" OR k%:ENDPROC 5050VDU 7 5060status%()=0 5070h%=OPENIN("<Disc2$Dir>.SixGames.Achieve.Achieve"+STR$(cla%)+"."+a$) 5080SYS"Hourglass_On" 5090FORJ%=1TO10 5100FORK%=1TO6 5110INPUT#h%,byt% 5120att%(K%,J%)=byt% 5130IFbyt%>2 AND byt%<12:status%(1)+=1 5140IFbyt%>11:status%(2)+=1 5150NEXT 5160NEXT 5170CLOSE#h% 5180attend$=a$ 5190h%=OPENOUT(f$+"Name") 5200PRINT#h%,attend$ 5210CLOSE#h% 5220SYS"Hourglass_Smash" 5230ENDPROC 5240DEFPROCsmall(wch%,col%) 5250GCOL 0,col% 5260RECTANGLEFILL (wch%>>4)*256+354,964-((wch%AND&F)<<6),26,32 5270ENDPROC 5280DEFPROCcreate 5290PROClegal 5300IFbad% OR esc%:ENDPROC 5310MOUSE OFF 5320SYS"ABC_Colour",15 5330PROCmess("New player name",11) 5340PROCdelay(50) 5350PROCinput(8,"",TRUE,FALSE) 5360WHILE INSTR(i$," ")>0 5370MID$(i$,INSTR(i$," "))="_" 5380ENDWHILE 5390IFesc%:ENDPROC 5400OSCLI"DIR <Disc2$Dir>.SixGames.Achieve.Achieve"+STR$(cla%) 5410SYS"OS_GBPB",8,,cat%,&40,0 TO ,,,d% 5420*DIR <Disc2$Dir>.SixGames 5430a%=0 5440c%=0 5450d%=64-d% 5460st%=cat% 5470dup%=FALSE 5480WHILE c%<d% AND NOTdup% 5490t%=st%?((?st%)+1) 5500st%?((?st%)+1)=&D 5510a$=$(st%+1) 5520st%+=1+(?st%) 5530?st%=t% 5540IFa$=i$:dup%=TRUE 5550a%+=1 5560c%+=1 5570ENDWHILE 5580k%=TRUE 5590IFdup% THEN 5600GCOL 0,10 5610VDU 5 5620RECTANGLEFILL 0,0,1278,64 5630GCOL 0,0 5640RECTANGLE 0,0,1278,64 5650t$="Player "+i$+" already exists - Erase?" 5660MOVE 860-LEN(t$)*g%,44 5670PRINTt$ 5680VDU 4 5690OFF 5700k%=FNyesno(44) 5710ENDIF 5720IFNOTk%:PROCmouse1:ENDPROC 5730att%()=0 5740status%()=0 5750h%=OPENOUT("<Disc2$Dir>.SixGames.Achieve.Achieve"+STR$(cla%)+"."+i$) 5760FORJ%=1TO10 5770FORK%=1TO6 5780PRINT#h%,att%(K%,J%) 5790NEXT 5800NEXT 5810CLOSE#h% 5820attend$=i$ 5830h%=OPENOUT(f$+"Name") 5840PRINT#h%,attend$ 5850CLOSE#h% 5860SYS"ABC_Colour",15 5870PROCmouse1 5880ENDPROC 5890DEFPROCdelete 5900PROClegal 5910IFbad% OR esc%:ENDPROC 5920PROCgridcheck 5930IFa$="" OR k%:ENDPROC 5940SYS"ABC_Colour",15 5950GCOL 0,10 5960VDU 5 5970RECTANGLEFILL 0,0,1278,64 5980GCOL 0,0 5990RECTANGLE 0,0,1278,64 6000t$="Player "+a$+" - Erase?" 6010MOVE 860-LEN(t$)*g%,44 6020PRINTt$ 6030VDU 4 6040OFF 6050k%=FNyesno(44) 6060IFNOTk%:PROCmouse1:ENDPROC 6070OSCLI"DELETE <Disc2$Dir>.SixGames.Achieve.Achieve"+STR$(cla%)+"."+a$ 6080IFa$=attend$:PROCsetempty 6090ENDPROC 6100DEFPROCdelay(del%) 6110REPEAT 6120WAIT 6130del%-=1 6140UNTIL del%<0 6150ENDPROC 6160DEFPROCloadcurrent 6170h%=OPENIN(f$+"Name") 6180INPUT#h%,attend$ 6190CLOSE#h% 6200IFattend$="" THEN 6210att%()=0 6220ELSE 6230h%=OPENIN("<Disc2$Dir>.SixGames.Achieve.Achieve"+STR$(cla%)+"."+attend$) 6240FORJ%=1TO10 6250FORK%=1TO6 6260INPUT#h%,att%(K%,J%) 6270NEXT 6280NEXT 6290CLOSE#h% 6300ENDIF 6310ENDPROC 6320DEFFNinitialsprites(s$,l%) 6330l%+=FNspritefilelength(s$) 6340DIM b% l% 6350!b%=l% 6360SYS"OS_SpriteOp",265,b% 6370PROCloadsprites(s$) 6380=b% 6390DEFFNspritefilelength(s$) 6400flo%=0 6410s$+="|" 6420WHILE s$>"" 6430h%=OPENIN(f$+FNstringextract(s$)) 6440flo%+=EXT#h% 6450CLOSE#h% 6460ENDWHILE 6470=flo%+64 6480DEFFNstringextract(RETURN s$) 6490w$=LEFT$(s$,(INSTR(s$,"|"))-1) 6500s$=MID$(s$,(INSTR(s$,"|"))+1) 6510=w$ 6520DEFPROCloadsprites(s$) 6530s$+="|" 6540typ%=266 6550WHILE s$>"" 6560SYS"OS_SpriteOp",typ%,b%,f$+FNstringextract(s$) 6570typ%-=(typ%=266) 6580ENDWHILE 6590ENDPROC 6600DEFPROCloaddetails 6610status%()=0 6620h%=OPENIN(f$+"Misc.Grab3") 6630INPUT#h%,cod% 6640CLOSE#h% 6650h%=OPENIN(f$+"Configure") 6660INPUT#h%,rat%,nig%,sds%,ver%,grd%,cla%,typ$,hed%,fut%,pap%,pix% 6670CLOSE#h% 6680IFsds% OSCLI"SPEAKER ON" ELSEOSCLI"SPEAKER OFF" 6690h%=OPENIN(f$+"Name") 6700INPUT#h%,attend$ 6710CLOSE#h% 6720IFattend$="" THEN 6730att%()=0 6740ELSE 6750h%=OPENIN("<Disc2$Dir>.SixGames.Achieve.Achieve"+STR$(cla%)+"."+attend$) 6760FORJ%=1TO10 6770FORK%=1TO6 6780INPUT#h%,byt% 6790att%(K%,J%)=byt% 6800IFbyt%>2 AND byt%<12:status%(1)+=1 6810IFbyt%>11:status%(2)+=1 6820NEXT 6830NEXT 6840CLOSE#h% 6850ENDIF 6860ENDPROC 6870DEFFNyesno(tay%) 6880REPEAT 6890MOUSE mox%,moy%,but% 6900UNTIL but%=0 6910MOUSE RECTANGLE 959,12,240,46 6920PROCmouse1 6930MOUSE TO 1160,32 6940VDU 5 6950GCOL 0,0 6960MOVE 896,tay% 6970PRINT"Yes No" 6980REPEAT 6990MOUSE mox%,moy%,but% 7000IFmox%<1072 THEN 7010GCOL 0,11 7020RECTANGLEFILL 960,tay%-32,80,40 7030GCOL 0,7 7040RECTANGLEFILL 1120,tay%-32,80,40 7050ELSE 7060GCOL 0,7 7070RECTANGLEFILL 960,tay%-32,80,40 7080GCOL 0,11 7090RECTANGLEFILL 1120,tay%-32,80,40 7100ENDIF 7110UNTIL but%>0 AND POINT(mox%,moy%)=11 7120VDU 4 7130OFF 7140IFmox%<1072 =TRUE ELSE=FALSE 7150DEFPROCdisplaydirectory 7160SYS"ABC_Blank",15 7170SYS"ABC_Colour",15 7180OSCLI"DIR <Disc2$Dir>.SixGames.Achieve.Achieve"+STR$(cla%) 7190SYS"OS_GBPB",8,,cat%,&40,0 TO ,,,d% 7200*DIR <Disc2$Dir>.SixGames 7210VDU 5 7220FORa%=0TO63 7230x%=(a%>>4)*256+128 7240y%=(a%AND&F)<<6 7250GCOL 0,8 7260RECTANGLEFILL x%,y%,224,40 7270GCOL 0,11 7280RECTANGLEFILL x%+224,y%,30,40 7290GCOL 0,0 7300RECTANGLE x%+224,y%,30,40 7310NEXT 7320a%=0 7330c%=0 7340d%=64-d% 7350st%=cat% 7360filename$()="" 7370GCOL 0,0 7380WHILE c%<d% 7390t%=st%?((?st%)+1) 7400st%?((?st%)+1)=&D 7410a$=$(st%+1) 7420st%+=1+(?st%) 7430?st%=t% 7440MOVE (a%>>4)*256+144,992-((a%AND&F)<<6) 7450filename$(a%)=a$ 7460a$=FNstrip(a$) 7470PRINT a$ 7480a%+=1 7490c%+=1 7500ENDWHILE 7510VDU 4 7520OFF 7530SYS"ABC_Palette" 7540ENDPROC 7550DEFPROCgridcheck 7560PROCdisplaydirectory 7570lst%=0 7580REPEAT 7590MOUSE mox%,moy%,but% 7600sqx%=(mox%-128)>>8 7610IFsqx%>3:sqx%=3 7620IFsqx%<0:sqx%=0 7630sqy%=(1024-moy%)>>6 7640IFsqy%>15:sqy%=15 7650inx%=sqy%+sqx%*g% 7660IFinx%>63:inx%=63 7670IFinx%<>lst% THEN 7680WAIT 7690PROCsmall(lst%,11) 7700PROCsmall(inx%,15) 7710lst%=inx% 7720ENDIF 7730IFINKEY-113 k%=TRUE ELSEk%=FALSE 7740UNTIL but%>0 OR k% 7750a$=filename$(lst%) 7760ENDPROC 7770DEFPROCcurrent 7780VDU 5 7790GCOL 0,8 7800RECTANGLEFILL 384,16,480,64 7810GCOL 0,0 7820RECTANGLE 384,16,480,64 7830GCOL 0,14 7840MOVE 400,60 7850PRINT"Current player : "; 7860GCOL 0,0 7870a$=FNstrip(attend$) 7880IFa$="" PRINT"Empty" ELSEPRINTa$ 7890VDU 4 7900OFF 7910ENDPROC 7920DEFPROCaccess 7930IFNOTINKEY-2 OR NOTINKEY-31:ENDPROC 7940MOUSE OFF 7950VDU 7 7960SYS"ABC_Colour",15 7970PROCmess("ENTER OLD ACCESS CODE NUMBER",8) 7980PROCinvis 7990IFesc%:PROCback:ENDPROC 8000J%=FNvalidatenumber(i$) 8010IFNOTJ%:PROCwrong("NUMBERS ONLY PLEASE"):ENDPROC 8020IFcod%<>VAL(i$):PROCwrong("INVALID ACCESS CODE"):ENDPROC 8030PROCmess("ENTER NEW ACCESS CODE NUMBER",8) 8040PROCinvis 8050IFesc%:PROCback:ENDPROC 8060J%=FNvalidatenumber(i$) 8070IFNOTJ%:PROCwrong("NUMBERS ONLY PLEASE"):ENDPROC 8080first%=VAL(i$) 8090PROCmess("ENTER AGAIN TO CONFIRM",8) 8100PROCinvis 8110IFesc%:PROCback:ENDPROC 8120J%=FNvalidatenumber(i$) 8130IFNOTJ%:PROCwrong("NUMBERS ONLY PLEASE"):ENDPROC 8140second%=VAL(i$) 8150IFfirst%<>second%:PROCwrong("DIFFERENT NUMBERS - TRY AGAIN"):ENDPROC 8160cod%=VALi$ 8170PROCmess("NEW ACCESS CODE NUMBER ACCEPTED",8) 8180h%=OPENOUT(f$+"Misc.Grab3") 8190PRINT#h%,cod% 8200CLOSE#h% 8210PROCback 8220ENDPROC 8230DEFPROCback 8240IFsun%<11 sun%=11 ELSEsun%=0 8250PROCmenu 8260PROCmouse1 8270ENDPROC 8280DEFPROCwrong(a$) 8290VDU 7 8300PROCmess(a$,11) 8310PROCdelay(150) 8320PROCback 8330ENDPROC 8340DEFFNvalidatenumber(a$) 8350IFa$="":=FALSE 8360K%=TRUE 8370FORJ%=1TO LEN(a$) 8380IFMID$(a$,J%,1)<"0" OR MID$(a$,J%,1)>"9":K%=FALSE 8390NEXT 8400=K% 8410DEFPROCinvis 8420*FX21 0 8430esc%=FALSE 8440cnt%=0 8450i$="" 8460REPEAT 8470REPEAT 8480REPEAT 8490k%=INKEY(1) 8500IFINKEY-113:esc%=TRUE 8510UNTIL k%>0 AND k%<128 OR esc% 8520IFk%=127 AND cnt%>0 THEN 8530cnt%-=1 8540i$=LEFT$(i$,cnt%) 8550PROCmess(">"+STRING$(LEN(i$),"*")+"<",10) 8560ENDIF 8570UNTIL k%<>127 OR esc% 8580IFk%<>13 AND cnt%<>4 THEN 8590i$+=CHR$k% 8600PROCmess(">"+STRING$(LEN(i$),"*")+"<",10) 8610cnt%+=1 8620ENDIF 8630UNTIL k%=13 OR cnt%=4 OR esc% 8640ENDPROC 8650DEFPROClegal 8660IFcod%=0:bad%=FALSE:esc%=FALSE:ENDPROC 8670MOUSE OFF 8680SYS"ABC_Colour",15 8690PROCmess("ENTER ACCESS CODE NUMBER",11) 8700PROCfrput 8710IFcod%=VAL(i$) THEN 8720PROCmess("ACCESS CODE NUMBER ACCEPTED",8) 8730PROCdelay(100) 8740bad%=FALSE 8750ELSE 8760bad%=TRUE 8770ENDIF 8780PROCmouse1 8790ENDPROC 8800DEFPROCfrput 8810*FX21 0 8820esc%=FALSE 8830cnt%=0 8840tot%=4 8850i$="" 8860REPEAT 8870REPEAT 8880REPEAT 8890k%=INKEY(1) 8900IFINKEY-113:esc%=TRUE 8910UNTIL k%=13 OR k%>31 AND k%<128 OR esc% 8920IFk%=127 AND cnt%>0 THEN 8930cnt%-=1 8940i$=LEFT$(i$,cnt%) 8950PROCmess(">"+STRING$(LEN(i$),"*")+"<",8) 8960ENDIF 8970UNTIL k%<>127 OR esc% 8980IFk%<>13 AND cnt%<>tot% THEN 8990IFcnt%=0 THEN 9000IFCHR$(k%)>="a" AND CHR$(k%)<="z" i$=CHR$(k%-32) ELSEi$=CHR$(k%) 9010ELSE 9020IFCHR$(k%)>="A" AND CHR$(k%)<="Z" i$+=CHR$(k%+32) ELSEi$+=CHR$(k%) 9030ENDIF 9040PROCmess(">"+STRING$(LEN(i$),"*")+"<",8) 9050cnt%+=1 9060ENDIF 9070UNTIL k%=13 OR esc% OR cnt%=tot% 9080ENDPROC 9090DEFPROCpoint(a$,mos%) 9100LOCAL wir%,par%,dat% 9110DIM wir% 1088,par% 20,dat% 256 9120h%=OPENIN(f$+"Misc."+a$) 9130FORJ%=0TO32 9140FORK%=0TO32 9150wir%?(K%*32+J%)=BGET#h% 9160NEXT 9170NEXT 9180CLOSE#h% 9190!par%=&20080200 9200par%?1=mos% 9210par%!4=0 9220par%!6=dat% 9230mmo%=dat% 9240FORJ%=32TO1STEPTRUE 9250FORK%=0TO7 9260FORL%=3TO0STEPTRUE 9270val%=wir%?(J%*32+K%*4+L%) 9280IFval%=&FF:par%?4=K%*4+L%:par%?5=31-J%:val%=0 9290?mmo%=?mmo%<<2 9300?mmo%+=val% 9310NEXT 9320mmo%+=1 9330NEXT 9340NEXT 9350SYS"OS_Word",21,par% 9360ENDPROC 9370DEFPROCdesktop 9380MOUSE OFF 9390SYS"ABC_Blank",11 9400PROCexitmessage 9410PROCmess("Return to Desktop?",8) 9420SYS"ABC_Palette" 9430PROCmouse1 9440k%=FNyesno(44) 9450SYS"ABC_Colour",15 9460sun%=10 9470IFNOTk%:ENDPROC 9480*FX20 9490*CHANNELVOICE 1 WaveSynth-Beep 9500*CHANNELVOICE 2 WaveSynth-Beep 9510*CHANNELVOICE 3 WaveSynth-Beep 9520*CHANNELVOICE 4 WaveSynth-Beep 9530*WIPE ram:* ~C~V 9540*RMKILL ABC 9550*RMKILL Cymbal 9560*RMKILL Danger 9570*RMKILL Death 9580*RMKILL End 9590*RMKILL Hook 9600*RMKILL Laugh 9610*RMKILL Skid 9620*RMKILL Steam 9630*RMKILL Synsmajs 9640*RMKILL Timer 9650*RMKILL 10/10SoundGenerator 9660*POINTER 1 9670*SPEAKER ON 9680*FX200 0 9690VDU 20 9700*DESKTOP 9710DEFPROCwings(l$,x%,y%) 9720SYS"ABC_Sprite",b%,"wings",x%,y% 9730VDU 5 9740GCOL 0,11 9750MOVE (x%*2+298)-LEN(l$)*8,y%*4-40 9760PRINTl$ 9770VDU 4 9780OFF 9790ENDPROC 9800DEFPROCselect 9810IFNOTFNarea(80,18,336,840) AND NOTFNarea(912,18,1168,840) THEN 9820pre%=-1 9830sly%=-1 9840PROCrectangles 9850ELSE 9860sly%=(moy%-18)DIV280 9870IFFNarea(912,18,1168,840):sly%+=3 9880IFsly%<>pre% THEN 9890PROCrectangles 9900pre%=sly% 9910GCOL 0,11 9920WAIT 9930IFsly%<3 RECTANGLE 80,sly%*280+16,256,256 ELSERECTANGLE 912,(sly%-3)*280+16,256,256 9940ENDIF 9950ENDIF 9960IFbut%=0:ENDPROC 9970CASE sly% OF 9980WHEN 0:PROCrun("ChainUp") 9990WHEN 1:PROCrun("Processor") 10000WHEN 2:PROCrun("Graphoid") 10010WHEN 3:PROCrun("RibTickler") 10020WHEN 4:PROCrun("TurboRaft") 10030WHEN 5:PROCrun("HookIt") 10040ENDCASE 10050REPEAT 10060MOUSE mox%,moy%,but% 10070UNTIL but%=0 10080IFsly%>-1:PROCmenu 10090PROCmouse1 10100ENDPROC 10110DEFPROCcontents 10120VDU 5 10130FORJ%=1TO3 10140SYS"ABC_UnpackSprite",J%-1,z%,48,274-J%*70 10150SYS"ABC_UnpackSprite",J%+2,z%,464,274-J%*70 10160NEXT 10170RESTORE 10340 10180FORJ%=1TO3 10190READ a$,b$ 10200GCOL 0,7 10210MOVE 96,J%*280-232 10220PRINTa$ 10230MOVE 928,J%*280-232 10240PRINTb$ 10250GCOL 0,0 10260MOVE 102,J%*280-228 10270PRINTa$ 10280MOVE 934,J%*280-228 10290PRINTb$ 10300NEXT 10310VDU 4 10320OFF 10330ENDPROC 10340DATA Chain Up,Rib Tickler,Processor,Turbo Raft,Graphoid,Hook It! 10350DEFPROCrectangles 10360GCOL 0,0 10370FORJ%=1TO3 10380RECTANGLE 80,J%*280-264,256,256 10390RECTANGLE 912,J%*280-264,256,256 10400NEXT 10410ENDPROC 10420DEFPROCachievediscdump 10430IFNOTINKEY-2:ENDPROC 10440IFNOTINKEY-82:ENDPROC 10450VDU 7 10460MOUSE OFF 10470LOCAL ERROR 10480SYS"ABC_Transfer",0,16,640,17 10490PROCinput(32,"adfs::0.$.AchieveSpr",FALSE,TRUE) 10500SYS"ABC_Restore" 10510IFesc% OR i$="":ENDPROC 10520VDU 24,0;192;1278;960; 10530SYS"Hourglass_On" 10540OSCLI"SCREENSAVE "+i$ 10550VDU 26 10560SYS"Hourglass_Smash" 10570ON ERROR LOCAL:VDU 7:PROCmess("PLEASE INSERT DISC INTO DRIVE AND PRESS RETURN",8):REPEAT:UNTIL INKEY-74 10580*DIR <Disc2$Dir>.SixGames 10590SYS"ABC_Restore" 10600MOUSE TO 640,512 10610PROCmouse1 10620ENDPROC 10630DEFPROCachieveprintdump 10640IFNOTINKEY-2:ENDPROC 10650IFNOTINKEY-56:ENDPROC 10660VDU7 10670SYS"Hourglass_On" 10680RESTORE 1430 10690new%()=att%() 10700PROCprintpage(attend$) 10710PROCflush 10720SYS"Hourglass_Smash" 10730PROCmouse1 10740ENDPROC 10750DEFPROCallachieveprintdump 10760IFNOTINKEY-2:ENDPROC 10770IFNOTINKEY-102:ENDPROC 10780VDU 7 10790SYS"Hourglass_On" 10800PROCdisplaydirectory 10810PROCflush 10820SYS"Hourglass_Smash" 10830PROCmouse1 10840files%()=FALSE 10850lst%=0 10860REPEAT 10870MOUSE mox%,moy%,but% 10880sqx%=(mox%-128)>>8 10890IFsqx%>3:sqx%=3 10900IFsqx%<0:sqx%=0 10910sqy%=(1024-moy%)>>6 10920IFsqy%>15:sqy%=15 10930inx%=sqy%+sqx%*g% 10940IFinx%>63:inx%=63 10950IFinx%<>lst% THEN 10960IFfiles%(lst%) PROCsmall(lst%,14) ELSEPROCsmall(lst%,11) 10970IFfiles%(inx%) PROCsmall(inx%,14) ELSEPROCsmall(inx%,15) 10980lst%=inx% 10990ENDIF 11000IFbut%=1 AND filename$(lst%)>"" THEN 11010files%(lst%)=NOTfiles%(lst%) 11020IFfiles%(lst%) PROCsmall(lst%,14) ELSEPROCsmall(lst%,11) 11030REPEAT 11040MOUSE mox%,moy%,but% 11050UNTIL but%=0 11060ENDIF 11070IFINKEY-113 k%=TRUE ELSEk%=FALSE 11080UNTIL but%=4 OR k% 11090a$=filename$(lst%) 11100IFNOTk% THEN 11110SYS"Hourglass_On" 11120SYS"ABC_Colour",15 11130X%=0 11140esc%=FALSE 11150WHILE X%<64 AND NOTesc% 11160IFfiles%(X%) THEN 11170h%=OPENIN("<Disc2$Dir>.SixGames.Achieve.Achieve"+STR$(cla%)+"."+filename$(X%)) 11180FORJ%=1TO10 11190FORK%=1TO6 11200INPUT#h%,new%(K%,J%) 11210NEXT 11220NEXT 11230CLOSE#h% 11240PROCprintpage(filename$(X%)) 11250ENDIF 11260X%+=1 11270ENDWHILE 11280SYS"Hourglass_Smash" 11290ENDIF 11300PROCachievecard 11310REPEAT 11320MOUSE mox%,moy%,but% 11330UNTIL but%=0 11340ENDPROC 11350DEFPROCprintpage(name$) 11360*FX200 0 11370LOCAL ERROR 11380ON ERROR LOCAL:VDU 6,3,7:OSCLI"FX200 1":esc%=TRUE:ENDPROC 11390VDU 2,21 11400PROCheader 11410a$=FNstrip(name$) 11420IFa$="":a$="Empty" 11430PROCprinter("The achievements of "+a$) 11440PROCprinter("playing the 10 out of 10 Mathematics (Algebra) games") 11450PROCprinter("") 11460PROCprinter(FNdate) 11470PROCprinter("") 11480RESTORE 12340 11490PROCprinter(typ$+" Covering"+STRING$(53," ")+"Achievement") 11500PROCprinter("") 11510PROCprinter("GRAPHOID") 11520PROCgamedetails(1) 11530PROCprinter("PROCESSOR") 11540PROCgamedetails(2) 11550PROCprinter("CHAIN UP") 11560PROCgamedetails(3) 11570PROCprinter("HOOK IT!") 11580PROCgamedetails(4) 11590PROCprinter("TURBO RAFT") 11600PROCgamedetails(5) 11610PROCprinter("RIB TICKLER") 11620PROCgamedetails(6) 11630PROCprinter("KEY TO ACHIEVEMENT COLOURS:") 11640PROCprinter("") 11650PROCprinter("BLUE = 100% (10 times GREEN)") 11660PROCprinter("GREEN = 100% (10 out of 10!)") 11670PROCprinter("YELLOW = 50% or over") 11680PROCprinter("RED = Under 50%") 11690PROCprinter("- = means the grade has not been tried") 11700WHILE pnt%<pap% 11710PRINT 11720pnt%+=1 11730ENDWHILE 11740PROCfooter 11750VDU 6,3 11760*FX200 1 11770ENDPROC 11780DEFPROCgamedetails(num%) 11790FORJ%=1TO6 11800READ K% 11810b$=info$(num%,K%) 11820IFnig% THEN 11830a$=b$ 11840IFINSTR(a$,"�")>0:MID$(a$,INSTR(a$,"�"))="1" 11850IFINSTR(a$,"�")>0:MID$(a$,INSTR(a$,"�"))="2" 11860IFINSTR(a$,"�")>0:MID$(a$,INSTR(a$,"�"))="3" 11870ELSE 11880a$=MID$(b$,INSTR(b$,")")+2) 11890ENDIF 11900a$=STR$(J%)+" "+a$ 11910a$+=STRING$(72-LEN(a$)," ") 11920CASE new%(num%,K%) OF 11930WHEN 0:a$+="-" 11940WHEN 1:a$+="RED" 11950WHEN 2:a$+="YELLOW" 11960WHEN 3,4,5,6,7,8,9,10,11:a$+="GREEN" 11970OTHERWISE:a$+="BLUE" 11980ENDCASE 11990PROCprinter(a$) 12000NEXT 12010PROCprinter("") 12020ENDPROC 12030DEFPROCheader 12040pnt%=0 12050IFhed%=0:ENDPROC 12060FORW%=1TO hed% 12070PRINT 12080NEXT 12090ENDPROC 12100DEFPROCfooter 12110IFfut%=0:ENDPROC 12120FORW%=1TO fut% 12130PRINT 12140NEXT 12150ENDPROC 12160DEFPROCprinter(j$) 12170PRINTj$ 12180pnt%+=1 12190IFpnt%=pap% THEN 12200PROCfooter 12210PROCheader 12220ENDIF 12230ENDPROC 12240DEFFNdate 12250RESTORE 12320 12260fnd%=FALSE 12270WHILE NOTfnd% 12280READ ab$,n$ 12290IFINSTR(TIME$,ab$):fnd%=TRUE 12300ENDWHILE 12310="Date: "+MID$(TIME$,5,3)+n$+MID$(TIME$,11,5) 12320DATA Jan,January,Feb,February,Mar,March,Apr,April,May,May,Jun,June,Jul 12330DATA July,Aug,August,Sep,September,Oct,October,Nov,November,Dec,December 12340DATA 10,4,5,7,8,9 12350DATA 1,10,6,3,7,8 12360DATA 10,6,4,3,9,5 12370DATA 2,1,10,6,3,9 12380DATA 1,6,10,9,3,2 12390DATA 1,10,9,2,8,7 12400DEFPROCflush 12410*FX21 9 12420ENDPROC 12430DEFFNstrip(str$) 12440WHILE INSTR(str$,"_")>0 12450MID$(str$,INSTR(str$,"_"))=" " 12460ENDWHILE 12470=str$ 12480DEFPROCinput(tot%,x$,cap%,fil%) 12490*FX21 0 12500esc%=FALSE 12510cnt%=LEN(x$) 12520i$=x$ 12530IFfil% y$="filename: >" ELSEy$=">" 12540PROCmess(y$+i$+"<",8) 12550REPEAT 12560REPEAT 12570REPEAT 12580k%=INKEY(1) 12590IFINKEY-113:esc%=TRUE 12600UNTIL k%=13 OR k%>31 AND k%<128 OR esc% 12610IFk%=127 AND cnt%>0 THEN 12620cnt%-=1 12630i$=LEFT$(i$,cnt%) 12640PROCmess(y$+i$+"<",8) 12650ENDIF 12660UNTIL k%<>127 OR esc% 12670IFk%<>13 AND cnt%<>tot% THEN 12680IFcap% THEN 12690IFcnt%=0 THEN 12700IFCHR$(k%)>="a" AND CHR$(k%)<="z" i$=CHR$(k%-32) ELSEi$=CHR$(k%) 12710ELSE 12720IFCHR$(k%)>="A" AND CHR$(k%)<="Z" i$+=CHR$(k%+32) ELSEi$+=CHR$(k%) 12730ENDIF 12740ELSE 12750i$+=CHR$(k%) 12760ENDIF 12770PROCmess(y$+i$+"<",8) 12780cnt%+=1 12790ENDIF 12800IFk%<>13 AND cnt%=tot%:VDU7 12810UNTIL k%=13 OR esc% 12820ENDPROC 12830DEFPROCexitmessage 12840SYS"ABC_Colour",11 12850RESTORE 12950 12860READ a$ 12870Y%=240 12880WHILE a$<>"end" 12890SYS"ABC_PryntString",a$,34,Y%,1,7 12900SYS"ABC_PryntString",a$,32,Y%+1,1,0 12910IFa$>"" Y%-=18 ELSEY%-=12 12920READ a$ 12930ENDWHILE 12940ENDPROC 12950DATA Also available or coming soon 12960DATA "for Acorn 32-bit, IBM PC/compatibles" 12970DATA and Commodore Amiga ... 12980DATA 12990DATA English French 13000DATA German Spanish 13010DATA Italian Science 13020DATA Maths (Number) Maths (Algebra) 13030DATA Early Essentials Junior Essentials 13040DATA 13050DATA Contact your dealer or 13060DATA ring (0742) 780370 for details 13070DATA end 13080DEFFNinitialcompressed(s$) 13090h%=OPENIN(f$+s$) 13100len%=EXT#h% 13110CLOSE#h% 13120DIM z% len% 13130OSCLI"LOAD "+f$+s$+" "+STR$~(z%) 13140=z% 13150DEFPROCconfigure 13160IFNOTINKEY-2 OR NOTINKEY-1 OR NOT INKEY-83:ENDPROC 13170MOUSE OFF 13180SYS"ABC_Blank",3 13190SYS"ABC_Colour",3 13200PROCvaliddirectories 13210SYS"ABC_Sprite",b%,"bar",180,242 13220SYS"ABC_Sprite",b%,"exit",454,18 13230COLOUR 11 13240COLOUR 130 13250PRINTTAB(25,2)"10 out of 10 CUSTOMISATION" 13260COLOUR 7 13270old%=cla% 13280RESTORE 15200 13290READ a$,K% 13300J%=0 13310WHILE a$<>"end" 13320SYS"ABC_Sprite",b%,"bar",180,210-J%*16 13330PRINTTAB(25,J%*2+6)a$ 13340IFK%=-1 THEN 13350SYS"ABC_Sprite",b%,"arrow_up",482,210-J%*16 13360SYS"ABC_Sprite",b%,"arrow_down",510,210-J%*16 13370ENDIF 13380IFK%=-2 SYS"ABC_Sprite",b%,"default",454,210-J%*16 ELSEPROCbuttonstatus(J%,210-J%*16) 13390J%+=1 13400READ a$,K% 13410ENDWHILE 13420SYS"ABC_Palette" 13430MOUSE RECTANGLE 904,32,160,810 13440PROCmouse1 13450end%=FALSE 13460WHILE NOTend% 13470REPEAT 13480MOUSE mox%,moy%,but% 13490UNTIL but%>0 13500IFbut%=4 AND POINT(mox%,moy%)<>3:PROCaction 13510ENDWHILE 13520PROCsavenewconfigure 13530IFold%<>cla%:PROCsetempty 13540IFsun%<11 sun%=11 ELSEsun%=0 13550PROCmenu 13560ENDPROC 13570DEFPROCaction 13580noy%=(842-moy%)>>6 13590nox%=(mox%-906)DIV56 13600CASE noy% OF 13610WHEN 0 13620rat%=NOTrat% 13630PROCbuttonstatus(noy%,210-noy%*16) 13640VDU 7 13650WHEN 1 13660IFver% THEN 13670nig%=NOTnig% 13680PROCbuttonstatus(noy%,210-noy%*16) 13690VDU 7 13700ENDIF 13710WHEN 2 13720sds%=NOTsds% 13730PROCbuttonstatus(noy%,210-noy%*16) 13740IFsds% OSCLI"SPEAKER ON" ELSEOSCLI"SPEAKER OFF" 13750VDU 7 13760WHEN 3 13770IFver% THEN 13780ver%=FALSE 13790nig%=FALSE 13800PROCbuttonstatus(noy%-2,210-noy%*16+32) 13810PROCbuttonstatus(noy%,210-noy%*16) 13820PROCbuttonstatus(noy%+1,210-noy%*16-16) 13830VDU 7 13840ENDIF 13850WHEN 4 13860IFNOTver% THEN 13870ver%=TRUE 13880nig%=TRUE 13890PROCbuttonstatus(noy%-3,210-noy%*16+48) 13900PROCbuttonstatus(noy%,210-noy%*16) 13910PROCbuttonstatus(noy%-1,210-noy%*16+16) 13920VDU 7 13930ENDIF 13940WHEN 5 13950IFnox%=1 THEN 13960grd%+=1 13970IFgrd%=7:grd%=1 13980PROCbuttonstatus(noy%,210-noy%*16) 13990VDU 7 14000ENDIF 14010IFnox%=2 THEN 14020grd%-=1 14030IFgrd%=0:grd%=6 14040PROCbuttonstatus(noy%,210-noy%*16) 14050VDU 7 14060ENDIF 14070WHEN 6 14080IFnox%=1 THEN 14090cla%+=1 14100IFcla%=65:cla%=1 14110PROCbuttonstatus(noy%,210-noy%*16) 14120VDU 7 14130ENDIF 14140IFnox%=2 THEN 14150cla%-=1 14160IFcla%=0:cla%=64 14170PROCbuttonstatus(noy%,210-noy%*16) 14180VDU 7 14190ENDIF 14200WHEN 7 14210IFnox%=1 THEN 14220hed%+=1 14230IFhed%=8:hed%=0 14240PROCbuttonstatus(noy%,210-noy%*16) 14250VDU 7 14260ENDIF 14270IFnox%=2 THEN 14280hed%-=1 14290IFhed%<0:hed%=7 14300PROCbuttonstatus(noy%,210-noy%*16) 14310VDU 7 14320ENDIF 14330WHEN 8 14340IFnox%=1 THEN 14350fut%+=1 14360IFfut%=8:fut%=0 14370PROCbuttonstatus(noy%,210-noy%*16) 14380VDU 7 14390ENDIF 14400IFnox%=2 THEN 14410fut%-=1 14420IFfut%<0:fut%=7 14430PROCbuttonstatus(noy%,210-noy%*16) 14440VDU 7 14450ENDIF 14460WHEN 9 14470IFnox%=1 THEN 14480pap%+=1 14490IFpap%=81:pap%=16 14500PROCbuttonstatus(noy%,210-noy%*16) 14510VDU 7 14520ENDIF 14530IFnox%=2 THEN 14540pap%-=1 14550IFpap%=15:pap%=80 14560PROCbuttonstatus(noy%,210-noy%*16) 14570VDU 7 14580ENDIF 14590WHEN 10 14600pix%+=1 14610IFpix%=4:pix%=0 14620PROCbuttonstatus(noy%,210-noy%*16) 14630VDU 7 14640WHEN 11 14650SYS"ABC_Blank",3 14660*SPEAKER ON 14670VDU 7 14680rat%=FALSE 14690nig%=TRUE 14700sds%=TRUE 14710ver%=TRUE 14720grd%=1 14730cla%=1 14740hed%=1 14750fut%=1 14760pap%=64 14770pix%=0 14780FORJ%=0TO10 14790PROCbuttonstatus(J%,210-J%*16) 14800NEXT 14810SYS"ABC_Palette" 14820WHEN 12:end%=TRUE 14830ENDCASE 14840REPEAT 14850MOUSE mox%,moy%,but% 14860UNTIL but%=0 14870ENDPROC 14880DEFPROCsavenewconfigure 14890MOUSE OFF 14900SYS"ABC_Blank",3 14910SYS"ABC_Colour",3 14920IFNOTdirectory%(cla%):PROCcreatedirectory 14930OSCLI"DIR <Disc2$Dir>.SixGames.Achieve.Achieve"+STR$(cla%) 14940IFver% typ$="Grade" ELSEtyp$="Level" 14950h%=OPENOUT(f$+"Configure") 14960PRINT#h%,rat%,nig%,sds%,ver%,grd%,cla%,typ$,hed%,fut%,pap%,pix% 14970CLOSE#h% 14980*DIR <Disc2$Dir>.SixGames 14990ENDPROC 15000DEFPROCbuttonstatus(num%,ysc%) 15010yyy%=ysc%-2 15020WAIT 15030IFnum%=3 OR num%=4 SYS"ABC_Sprite",b%,"radiooff",454,ysc% ELSESYS"ABC_Sprite",b%,"optoff",454,ysc% 15040CASE num% OF 15050WHEN 0:IFrat%:SYS"ABC_Sprite",b%,"opton",454,ysc% 15060WHEN 1:IFnig%:SYS"ABC_Sprite",b%,"opton",454,ysc% 15070WHEN 2:IFsds%:SYS"ABC_Sprite",b%,"opton",454,ysc% 15080WHEN 3:IFNOTver%:SYS"ABC_Sprite",b%,"radioon",454,ysc% 15090WHEN 4:IFver%:SYS"ABC_Sprite",b%,"radioon",454,ysc% 15100WHEN 5:SYS"ABC_PryntString",STR$(grd%),462,yyy%,0,9 15110WHEN 6 15120IFdirectory%(cla%) cul%=13 ELSEcul%=11 15130IFcla%>9 SYS"ABC_PryntString",STR$(cla%),458,yyy%,0,cul% ELSESYS"ABC_PryntString",STR$(cla%),462,yyy%,0,cul% 15140WHEN 7:SYS"ABC_PryntString",STR$(hed%),462,yyy%,0,11 15150WHEN 8:SYS"ABC_PryntString",STR$(fut%),462,yyy%,0,11 15160WHEN 9:SYS"ABC_PryntString",STR$(pap%),458,yyy%,0,11 15170WHEN 10:IFpix%=0 SYS"ABC_PryntString","A",462,yyy%,0,11 ELSESYS"ABC_PryntString",STR$(pix%),462,yyy%,0,6 15180ENDCASE 15190ENDPROC 15200DATA Ratings suppressed,0,National curriculum numbers,0,Sound,0,Level,0 15210DATA Grade,0,Overall skill,-1,Class number,-1,Top space,-1 15220DATA Bottom space,-1,Paper length,-1,Graphics selection,0,Default,-2 15230DATA end,0 15240DEFPROCvaliddirectories 15250OSCLI"DIR <Disc2$Dir>.SixGames.Achieve" 15260SYS"OS_GBPB",8,,cat%,&40,0 TO ,,,d% 15270*DIR <Disc2$Dir>.SixGames 15280c%=0 15290d%=64-d% 15300st%=cat% 15310directory%()=FALSE 15320WHILE c%<d% 15330t%=st%?((?st%)+1) 15340st%?((?st%)+1)=&D 15350a$=$(st%+1) 15360st%+=1+(?st%) 15370?st%=t% 15380directory%(VAL(MID$(a$,8)))=TRUE 15390c%+=1 15400ENDWHILE 15410ENDPROC 15420DEFPROCcreatedirectory 15430OSCLI"CDIR <Disc2$Dir>.SixGames.Achieve.Achieve"+STR$(cla%) 15440PROCsetempty 15450ENDPROC 15460DEFPROCsetempty 15470attend$="" 15480h%=OPENOUT(f$+"Name") 15490PRINT#h%,"" 15500CLOSE#h% 15510att%()=0 15520status%()=0 15530ENDPROC 15540DEFFNleave 15550MOUSE mox%,moy%,but% 15560IFINKEY-113 OR INKEY-99 OR INKEY-74 OR but%>0 ELSE=FALSE 15570REPEAT 15580MOUSE mox%,moy%,but% 15590UNTIL NOTINKEY-113 AND NOTINKEY-99 AND NOTINKEY-74 AND but%=0 15600*FX21 9 15610=TRUE
� >adfs::0.$.!10/10Alge.Menu �:�error ��<>12:�12:� (�initial 2 �menu <� F�mouseilluminate P�select Z�access d�configure n� � x ��initial �ș"ABC_VideoAddress" �ș"Hourglass_On" �ȗ ȓ 0,0,1280,1024 �H� att%(6,10),new%(6,10),info$(6,10),filename$(64),status%(2),six$(6) �4� buf%(6,10),directory%(64),files%(64),cat% &400 �h%=�("ram:FactFile") ��J%=1�6 ��K%=1�10 ��#h%,fact$ �info$(J%,K%)=fact$ �� �� ��#h% � �Ttp �J%=1�6 �K%=1�6 "� X% ,buf%(J%,X%)=K% 6� @� J*FX212 128 0 T @% =0 ^ box%=0 hg% =16 rpre%=-1 | sun%=0 �wit%=20 � f$ ="<Disc2$Dir>.SixGames." �-b% =�initialsprites("Numbers|Buttons",0) �(z% =�initialcompressed("IntrosSpr") ��loaddetails �ș"Hourglass_Smash" ��point("Ten",1) �Ƞ 4 �ȡ 1,"StringLib-Pluck" � �flush �� ���mouse1 �ȗ � 1,255,255,0 ȗ � 2,255,0,0 ȗ � 3,192,192,192 ȗ � 1 &� 0ݤarea(x1%,y1%,x2%,y2%) :�mox%<x1% � mox%>x2%:=� D�moy%<y1% � moy%>y2%:=� N=� X��mouseilluminate bȗ mox%,moy%,but% lbox%=(moy%-100)>>6 v�box%<0:box%=0 ��box%>11:box%=11 �>�box%<>sun%:Ȗ:�square(sun%,11):�square(box%,15):sun%=box% �笤area(704,104,864,868) � ��square(box%,11) � �box%<5 � �box%=11:sun%=10 �� �box%=0:sun%=1 �� �� �'�but%=0 � ��area(704,104,864,868):� �� 7 � Ȏ box% � � 0 :�desktop � 1 :�printcertificate � 2 :�delete � 3 :�create *� 4 :�load 4� 5 :�viewachieve >� 6 :�run("RibTickler") H� 7 :�run("TurboRaft") R� 8 :�run("HookIt") \� 9 :�run("ChainUp") f� 10:�run("Processor") p� 11:�run("Graphoid") z� ��sun%<11 sun%=11 �sun%=0 �� �ȗ mox%,moy%,but% �� but%=0 � �menu �� ���run(game$) �ȗ � �ș"Hourglass_On" �ș"ABC_Blank",15 �ș"ABC_Colour",15 �h%=�(f$+"Misc.Signal") ��#h%,"" �#h% � f$+game$ � $��square(wch%,col%) .� 0,col% 8ȓȐ 706,wch%*64+100,156,58 B� L ��menu Vȗ � `ȗ � 640,512 jș"ABC_Blank",15 tș"ABC_Colour",15 ~#�card("ALGEBRA MENU",24,6,2,12) ��fillmenu(13,10) ��current ��rectangles � �contents �ș"ABC_Palette" �ȗ ȓ 0,0,1280,1024 �ȗ � 640,512 ��mouse1 �� ���fillmenu(tax%,tay%) �� 5 � � 0,0 � �tVE �J%=0�5 � s$ (� tax%*32-g%,1024-(tay%*g%+J%*64+20) (�s$ 2� < � 0,14 F�J%=6�11 P� s$ Z(� tax%*32-g%,1024-(tay%*g%+J%*64+20) d�s$ n� x� 4 �� �� �A� Graphoid,Processor,Chain Up,Hook It!,Turbo Raft,Rib Tickler �?� Player information,Change player,New player,Remove player �� Print certificate,Quit ���achievecard �ȗ � �ș"ABC_Blank",15 �ș"ABC_Colour",15 �a$=�strip(attend$) ��a$="":a$="Empty" ��nig% � �Q�card(a$+" : Achievement Record 10/10 Mathematics (Algebra - AT3)",0,12,8,11) � B�card(a$+" : Achievement Record 10/10 Mathematics ",0,12,8,11) � "�fillachieve(0,6) ,m$="RETURN TO MENU" 6�mess(m$,11) @ȗ � 640,512 Jș"ABC_Palette" T�mouse1 ^ p$="X" h sta%=0 r oxx%=0 | oyy%=0 �*FX21 0 �� ���viewachieve ��achievecard �� �ȗ mox%,moy%,but% �)�moy%<72 � sta%=0:sta%=1:�mess(m$,10) �)�moy%>72 � sta%=1:sta%=0:�mess(m$,11) �cxx%=(mox%-320)/160+1 �-�moy%>836 cyy%=0 �cyy%=(�(moy%-836)�64)+1 ��cyy%>10:cyy%=0 ��cxx%<0 � cxx%>6 cxx%=0 ��cxx%<>oxx% � cyy%<>oyy% � oxx%=cxx% oyy%=cyy% a$=info$(cxx%,cyy%) &�a$>"" � 0F�nig% �information("AT3 Level "+a$) ��information(�a$,�a$,")")+2)) :� D�information("") N� X� b�achievediscdump l�achieveprintdump v�allachieveprintdump �� �leave �� ���information(t$) ��p$=t$:� � p$=t$ � � 0,11 �� 5 �Ȗ �ȓȐ 0,96,1278,64 � � 0,0 �ȓ 0,96,1278,64 �� 640-�(t$)*8,140 ��t$ � 4 � � "��card(t$,tax%,tay%,sdx%,sdy%) *� 5 4 � 0,8 >-ȓȐ tax%*g%,tay%*g%,sdx%*160+160,sdy%*64 H � 0,11 R1ȓȐ tax%*g%+320,tay%*g%,sdx%*160-162,sdy%*64 \ � 0,0 f3�sdx%*160+160>1279 sxe%=1278 �sxe%=sdx%*160+160 p#ȓ tax%*g%,tay%*g%,sxe%,sdy%*64 z � 0,13 �#� tax%*g%+64,tay%*g%+sdy%*64+64 �� 0,�(t$)*g%,0 � � 85,tax%*g%,tay%*g%+sdy%*64 �� 81,128+�(t$)*g%,0 � � 0,0 �� tax%*g%,tay%*g%+sdy%*64 � � 1,64,64 �� 1,�(t$)*g%,0 �� 1,64,-64 �#� tax%*g%+64,tay%*g%+sdy%*64+44 ��t$ ��J%=1� sdx% � � tax%*g%+J%*160+160,tay%*g% � 1,0,sdy%*64 � �J%=1� sdy% $� tax%*g%,tay%*g%+J%*64 .� 1,sdx%*160+160,0 8� B� 4 L� V� `��fillachieve(tax%,tay%) j� 5 t � �D|K ~� t$ �� tax%+32,1024-(tay%*g%+52) ��t$ ��K%=1�6 �� t$ �4� (tax%+32+K%*160+208)-�(t$)*8,1024-(tay%*g%+52) ��t$ �� ��J%=1�10 � � 0,0 �� t$ �%� tax%+32,1024-(tay%*g%+J%*64+52) ��t$ �K%=1�6 fax%=tax%+32+K%*160 fay%=tay%*g%+J%*64 &�fax%+156>=1100 wid%=154 �wid%=156 (Ȏ att%(K%,J%) � 2� 0 <!�info$(K%,J%)="" � 0,3 �� 0,7 F#�status%(1)+status%(2)=36:� 0,8 P�status%(1)=36:� 0,10 Z�status%(2)=36:� 0,15 d� 1:� 0,11 n� 2:� 0,14 x � 3,4,5,6,7,8,9,10,11:� 0,10 �:� 0,15 �� �(ȓȐ fax%+130,1024-(fay%+92),wid%,56 ��info$(K%,J%)>"" � ��nig% � � � 0,7 �� fax%+172,1020-(fay%+52) �(�info$(K%,J%),�info$(K%,J%),"(")-2) � � 0,0 �� fax%+174,1024-(fay%+52) �(�info$(K%,J%),�info$(K%,J%),"(")-2) �� � � 0,7 � fax%+202,1020-(fay%+52) �buf%(K%,J%) � 0,0 "� fax%+204,1024-(fay%+52) ,�buf%(K%,J%) 6� @� J� T� ^� 4 h� r� |E� SUBJECT,Graphoid,Processor,Chain Up,Hook It!,Turbo Raft,Tickler �C� Patterns and Seq,Symbols,Formulae and Equ,Co-ordinates,Graphs �C� Operations,Mappings and Fns,Inequalities,Interpretation,Words ���cent(t$,tay%) ��41-�(t$)�2,tay%)t$; �� ���mess(t$,col%) �� 0,col% �� 5 �Ȗ �ȓȐ 0,0,1278,64 � � 0,0 �ȓ 0,0,1278,64 �� 640-�(t$)*8,44 �t$ � 4 � &� 0��error :� � D� 3,26,7 N *CLOSE Xș"Hourglass_Smash" bȗ � lș"ABC_Colour",15 v�>&107FF � �<&10900 � �1�mess("FILING SYSTEM REPORTS ERROR : "+�$,11) ��delay(150) �� 7 �T�mess("PLEASE CHECK DISC IN DRIVE AND NOT WRITE PROTECTED THEN PRESS RETURN",11) �� � � �-74 �� �� � � � �DDL �h%=�(f$+"Misc.Signal") ��#h%,"" ��#h% �*DIR <Disc2$Dir>.SixGames �� � ș"ABC_Colour",15 � � ��printcertificate *ș"ABC_Colour",15 4ȗ � > ach%=� H�J%=1�10 R�K%=1�6 \�att%(K%,J%)>2:ach%=� f� p� z�ach% � �<�mess("Nothing achieved at present - return to menu",11) �� �ȗ mox%,moy%,but% �� but%=0 �� �� �leave �� � �busy �� �� �leave �� �� � ��busy +�mess("Screen/Printer/Disc (S/P/D)",11) *FX21 0 � $k%=�(0) .�k%>=�("a"):k%-=32 8/� k%=�("S") � k%=�("P") � k%=�("D") � �-113 B�-113:�flush:� L� 7 V�k%<>�("P") � `#�mess("Text/Graphics (T/G)",11) j� tt%=�(0) ~�t%>=�("a"):t%-=32 �#� t%=�("T") � t%=�("G") � �-113 �� � t%=�("T") �� ��-113:�flush:� �/�t%=�("T") �achieve_text ��achieve_graphics ��k%=�("D"):�discdump ��k%=�("P"):�printer_dump �� ���achieve_graphics �ș"ABC_Blank",3 �ș"ABC_Colour",3 � 0,12 ȓȐ 184,64,974,932 � 0,7 ȓ 184,64,976,932 (� 0 2 � 140 <"ș"ABC_Sprite",b%,"wax",444,70 F$ș"ABC_Sprite",b%,"small",120,64 P%ș"ABC_Sprite",b%,"small",420,214 Z �words(�) dș"ABC_Palette" n� x��achieve_text �ș"ABC_Blank",12 �ș"ABC_Colour",12 �� 7 � � 140 ��cent(�67,"*"),0) ��J%=1�29 ��8,J%)"*"�74,J%)"*" �� ��cent(�67,"*"),30) � �words(�) �ș"ABC_Palette" �� ���words(fan%) � 7 �fan% � 'ș"ABC_Sprite",b%,"certify",118,248 " � 137 ,a$=�strip(attend$) 6�42-�(attend$)�2,4)a$ @� J'�cent("THIS IS TO CERTIFY THAT ",2) T � 140 ^a$=�strip(attend$) h�cent(a$,4) r� | � 140 ��18,7)"has played the" ��18,8)"Ten out of Ten" ��18,9)"Maths (Algebra)" ��18,10)"games and has" ��nig% � �8�18,11)"achieved 100% at the following AT3 Levels:" �� �"�ver% a$="grades" �a$="levels" �0�18,11)"achieved 100% at the following "+a$ �� ��cent(�date,25) � �cent("Certificate from",27) �)�cent("10/10 Educational Systems",28) tay%=0 �J%=1�10 K%=1 & fnd%=� 0ȕ K%<7 � �fnd% :K�att%(K%,J%)>2 � �info$(K%,J%),�info$(K%,J%),")")-2)<>"":tay%+=1:fnd%=� D K%+=1 N� X� b � �tFK ltay%=18-tay%�2 v�J%=1�10 �� b$ � six$()="" ��K%=1�6 �C�nig% y$=�info$(K%,J%),�info$(K%,J%),"(")-2) �y$=�(buf%(K%,J%)) �'�att%(K%,J%)>2 � y$>"0":six$(K%)=y$ �� �� � srt%=� ��K%=1�5 �6�six$(K%)<six$(K%+1):Ȕ six$(K%),six$(K%+1):srt%=� �� � � srt% � a$="" �K%=1�6 "�six$(K%)<>"":a$+=six$(K%)+"," � ��a$)=",":a$=�a$) * �a$<>"" � 4)�18,tay%)b$�36,tay%)"..."�40,tay%)a$ >tay%+=1 H� R� \� f��discdump p� 7 zȗ � �� � � ș"ABC_Transfer",0,16,640,17 �'�input(32,"adfs::0.$."+attend$,�,�) �ș"ABC_Restore" ��esc% � i$="":� �ș"Hourglass_On" ��"SCREENSAVE "+i$ �ș"Hourglass_Smash" �P� � �:� 7:�mess("PLEASE INSERT DISC INTO DRIVE AND PRESS RETURN",8):�:� �-74 �*DIR <Disc2$Dir>.SixGames �ș"ABC_Restore" �ȗ � 640,512 ��mouse1 � ��printer_dump � 2 $�J%=0�30 .�K%=0�79 8� 31,K%,J% Bș"OS_Byte",135 � ,res% L � res% V� `�J%<30:� 13,10 j� t� 3 ~� � ��load � �legal ��bad% � esc%:� ��gridcheck ��a$="" � k%:� �� 7 �status%()=0 �?h%=�("<Disc2$Dir>.SixGames.Achieve.Achieve"+�(cla%)+"."+a$) �ș"Hourglass_On" ��J%=1�10 ��K%=1�6 � �#h%,byt% att%(K%,J%)=byt% #�byt%>2 � byt%<12:status%(1)+=1 �byt%>11:status%(2)+=1 � (� 2�#h% <attend$=a$ Fh%=�(f$+"Name") P�#h%,attend$ Z�#h% dș"Hourglass_Smash" n� x��small(wch%,col%) �� 0,col% �3ȓȐ (wch%>>4)*256+354,964-((wch%�&F)<<6),26,32 �� ���create � �legal ��bad% � esc%:� �ȗ � �ș"ABC_Colour",15 ��mess("New player name",11) ��delay(50) ��input(8,"",�,�) �ȕ �i$," ")>0 ��i$,�i$," "))="_" � �esc%:� 7�"DIR <Disc2$Dir>.SixGames.Achieve.Achieve"+�(cla%) "%ș"OS_GBPB",8,,cat%,&40,0 � ,,,d% ,*DIR <Disc2$Dir>.SixGames 6a%=0 @c%=0 Jd%=64-d% Tst%=cat% ^ dup%=� hȕ c%<d% � �dup% rt%=st%?((?st%)+1) |st%?((?st%)+1)=&D �a$=$(st%+1) �st%+=1+(?st%) �?st%=t% ��a$=i$:dup%=� � a%+=1 � c%+=1 �� �k%=� ��dup% � � � 0,10 �� 5 �ȓȐ 0,0,1278,64 � � 0,0 ȓ 0,0,1278,64 .t$="Player "+i$+" already exists - Erase?" � 860-�(t$)*g%,44 &�t$ 0� 4 :� Dk%=�yesno(44) N� X�k%:�mouse1:� batt%()=0 lstatus%()=0 v?h%=�("<Disc2$Dir>.SixGames.Achieve.Achieve"+�(cla%)+"."+i$) ��J%=1�10 ��K%=1�6 ��#h%,att%(K%,J%) �� �� ��#h% �attend$=i$ �h%=�(f$+"Name") ��#h%,attend$ ��#h% �ș"ABC_Colour",15 ��mouse1 �� ��delete �legal �bad% � esc%:� �gridcheck *�a$="" � k%:� 4ș"ABC_Colour",15 > � 0,10 H� 5 RȓȐ 0,0,1278,64 \ � 0,0 fȓ 0,0,1278,64 pt$="Player "+a$+" - Erase?" z� 860-�(t$)*g%,44 ��t$ �� 4 �� �k%=�yesno(44) ��k%:�mouse1:� �A�"DELETE <Disc2$Dir>.SixGames.Achieve.Achieve"+�(cla%)+"."+a$ ��a$=attend$:�setempty �� ���delay(del%) �� �Ȗ �del%-=1 �� del%<0 � ��loadcurrent h%=�(f$+"Name") $�#h%,attend$ .�#h% 8�attend$="" � Batt%()=0 L� VDh%=�("<Disc2$Dir>.SixGames.Achieve.Achieve"+�(cla%)+"."+attend$) `�J%=1�10 j�K%=1�6 t�#h%,att%(K%,J%) ~� �� ��#h% �� �� �ݤinitialsprites(s$,l%) �l%+=�spritefilelength(s$) �� b% l% � !b%=l% �ș"OS_SpriteOp",265,b% ��loadsprites(s$) �=b% �ݤspritefilelength(s$) flo%=0 s$+="|" ȕ s$>"" h%=�(f$+�stringextract(s$)) (flo%+=�#h% 2�#h% <� F=flo%+64 Pݤstringextract(� s$) Zw$=�s$,(�s$,"|"))-1) ds$=�s$,(�s$,"|"))+1) n=w$ x��loadsprites(s$) �s$+="|" �typ%=266 �ȕ s$>"" �1ș"OS_SpriteOp",typ%,b%,f$+�stringextract(s$) �typ%-=(typ%=266) �� �� ���loaddetails �status%()=0 �h%=�(f$+"Misc.Grab3") � �#h%,cod% ��#h% �h%=�(f$+"Configure") ?�#h%,rat%,nig%,sds%,ver%,grd%,cla%,typ$,hed%,fut%,pap%,pix% �#h% '�sds% �"SPEAKER ON" ��"SPEAKER OFF" "h%=�(f$+"Name") ,�#h%,attend$ 6�#h% @�attend$="" � Jatt%()=0 T� ^Dh%=�("<Disc2$Dir>.SixGames.Achieve.Achieve"+�(cla%)+"."+attend$) h�J%=1�10 r�K%=1�6 | �#h%,byt% �att%(K%,J%)=byt% �#�byt%>2 � byt%<12:status%(1)+=1 ��byt%>11:status%(2)+=1 �� �� ��#h% �� �� �ݤyesno(tay%) �� �ȗ mox%,moy%,but% �� but%=0 �ȗ ȓ 959,12,240,46 �mouse1 ȗ � 1160,32 � 5 & � 0,0 0� 896,tay% :�"Yes No" D� Nȗ mox%,moy%,but% X�mox%<1072 � b � 0,11 lȓȐ 960,tay%-32,80,40 v � 0,7 �ȓȐ 1120,tay%-32,80,40 �� � � 0,7 �ȓȐ 960,tay%-32,80,40 � � 0,11 �ȓȐ 1120,tay%-32,80,40 �� �� but%>0 � �mox%,moy%)=11 �� 4 �� ��mox%<1072 =� �=� ���displaydirectory �ș"ABC_Blank",15 ș"ABC_Colour",15 7�"DIR <Disc2$Dir>.SixGames.Achieve.Achieve"+�(cla%) %ș"OS_GBPB",8,,cat%,&40,0 � ,,,d% *DIR <Disc2$Dir>.SixGames *� 5 4�a%=0�63 >x%=(a%>>4)*256+128 Hy%=(a%�&F)<<6 R � 0,8 \ȓȐ x%,y%,224,40 f � 0,11 pȓȐ x%+224,y%,30,40 z � 0,0 �ȓ x%+224,y%,30,40 �� �a%=0 �c%=0 �d%=64-d% �st%=cat% �filename$()="" � � 0,0 �ȕ c%<d% �t%=st%?((?st%)+1) �st%?((?st%)+1)=&D �a$=$(st%+1) �st%+=1+(?st%) ?st%=t% &� (a%>>4)*256+144,992-((a%�&F)<<6) filename$(a%)=a$ $a$=�strip(a$) .� a$ 8 a%+=1 B c%+=1 L� V� 4 `� jș"ABC_Palette" t� ~��gridcheck ��displaydirectory � lst%=0 �� �ȗ mox%,moy%,but% �sqx%=(mox%-128)>>8 ��sqx%>3:sqx%=3 ��sqx%<0:sqx%=0 �sqy%=(1024-moy%)>>6 ��sqy%>15:sqy%=15 �inx%=sqy%+sqx%*g% ��inx%>63:inx%=63 ��inx%<>lst% � Ȗ �small(lst%,11) �small(inx%,15) lst%=inx% (� 2�-113 k%=� �k%=� <� but%>0 � k% Fa$=filename$(lst%) P� Z ��current d� 5 n � 0,8 xȓȐ 384,16,480,64 � � 0,0 �ȓ 384,16,480,64 � � 0,14 �� 400,60 ��"Current player : "; � � 0,0 �a$=�strip(attend$) ��a$="" �"Empty" ��a$ �� 4 �� �� ���access �符-2 � ��-31:� ȗ � � 7 ș"ABC_Colour",15 "+�mess("ENTER OLD ACCESS CODE NUMBER",8) , �invis 6�esc%:�back:� @J%=�validatenumber(i$) J(�J%:�wrong("NUMBERS ONLY PLEASE"):� T0�cod%<>�(i$):�wrong("INVALID ACCESS CODE"):� ^+�mess("ENTER NEW ACCESS CODE NUMBER",8) h �invis r�esc%:�back:� |J%=�validatenumber(i$) �(�J%:�wrong("NUMBERS ONLY PLEASE"):� �first%=�(i$) �%�mess("ENTER AGAIN TO CONFIRM",8) � �invis ��esc%:�back:� �J%=�validatenumber(i$) �(�J%:�wrong("NUMBERS ONLY PLEASE"):� �second%=�(i$) �>�first%<>second%:�wrong("DIFFERENT NUMBERS - TRY AGAIN"):� �cod%=�i$ �.�mess("NEW ACCESS CODE NUMBER ACCEPTED",8) �h%=�(f$+"Misc.Grab3") � �#h%,cod% �#h% �back � & ��back 0�sun%<11 sun%=11 �sun%=0 : �menu D�mouse1 N� X��wrong(a$) b� 7 l�mess(a$,11) v�delay(150) � �back �� �ݤvalidatenumber(a$) � �a$="":=� �K%=� ��J%=1� �(a$) �'�a$,J%,1)<"0" � �a$,J%,1)>"9":K%=� �� �=K% ���invis �*FX21 0 � esc%=� � cnt%=0 ! i$="" !� !� ! � !*k%=�(1) !4�-113:esc%=� !>� k%>0 � k%<128 � esc% !H�k%=127 � cnt%>0 � !Rcnt%-=1 !\i$=�i$,cnt%) !f!�mess(">"+ĩ(i$),"*")+"<",10) !p� !z� k%<>127 � esc% !��k%<>13 � cnt%<>4 � !�i$+=�k% !�!�mess(">"+ĩ(i$),"*")+"<",10) !�cnt%+=1 !�� !�� k%=13 � cnt%=4 � esc% !�� !���legal !��cod%=0:bad%=�:esc%=�:� !�ȗ � !�ș"ABC_Colour",15 !�(�mess("ENTER ACCESS CODE NUMBER",11) !� �frput "�cod%=�(i$) � "*�mess("ACCESS CODE NUMBER ACCEPTED",8) "�delay(100) "$ bad%=� ".� "8 bad%=� "B� "L�mouse1 "V� "`��frput "j*FX21 0 "t esc%=� "~ cnt%=0 "� tot%=4 "� i$="" "�� "�� "�� "�k%=�(1) "��-113:esc%=� "�#� k%=13 � k%>31 � k%<128 � esc% "��k%=127 � cnt%>0 � "�cnt%-=1 "�i$=�i$,cnt%) "� �mess(">"+ĩ(i$),"*")+"<",8) # � # � k%<>127 � esc% #�k%<>13 � cnt%<>tot% � # �cnt%=0 � #(2�(k%)>="a" � �(k%)<="z" i$=�(k%-32) �i$=�(k%) #2� #<4�(k%)>="A" � �(k%)<="Z" i$+=�(k%+32) �i$+=�(k%) #F� #P �mess(">"+ĩ(i$),"*")+"<",8) #Zcnt%+=1 #d� #n� k%=13 � esc% � cnt%=tot% #x� #���point(a$,mos%) #�� wir%,par%,dat% #� � wir% 1088,par% 20,dat% 256 #�h%=�(f$+"Misc."+a$) #��J%=0�32 #��K%=0�32 #�wir%?(K%*32+J%)=�#h% #�� #�� #��#h% #�!par%=&20080200 #�par%?1=mos% #�par%!4=0 $par%!6=dat% $ mmo%=dat% $�J%=32�1�� $"�K%=0�7 $, �L%=3�0�� $6val%=wir%?(J%*32+K%*4+L%) $@0�val%=&FF:par%?4=K%*4+L%:par%?5=31-J%:val%=0 $J?mmo%=?mmo%<<2 $T?mmo%+=val% $^� $hmmo%+=1 $r� $|� $�ș"OS_Word",21,par% $�� $� ��desktop $�ȗ � $�ș"ABC_Blank",11 $��exitmessage $�!�mess("Return to Desktop?",8) $�ș"ABC_Palette" $��mouse1 $�k%=�yesno(44) $�ș"ABC_Colour",15 $�sun%=10 $� �k%:� % *FX20 %"*CHANNELVOICE 1 WaveSynth-Beep %"*CHANNELVOICE 2 WaveSynth-Beep %&"*CHANNELVOICE 3 WaveSynth-Beep %0"*CHANNELVOICE 4 WaveSynth-Beep %:*WIPE ram:* ~C~V %D*RMKILL ABC %N*RMKILL Cymbal %X*RMKILL Danger %b*RMKILL Death %l*RMKILL End %v*RMKILL Hook %�*RMKILL Laugh %�*RMKILL Skid %�*RMKILL Steam %�*RMKILL Synsmajs %�*RMKILL Timer %�*RMKILL 10/10SoundGenerator %�*POINTER 1 %�*SPEAKER ON %�*FX200 0 %�� 20 %�*DESKTOP %���wings(l$,x%,y%) %�#ș"ABC_Sprite",b%,"wings",x%,y% &� 5 & � 0,11 & � (x%*2+298)-�(l$)*8,y%*4-40 & �l$ &*� 4 &4� &>� &H��select &R6笤area(80,18,336,840) � ��area(912,18,1168,840) � &\pre%=-1 &fsly%=-1 &p�rectangles &z� &�sly%=(moy%-18)�280 &�#�area(912,18,1168,840):sly%+=3 &��sly%<>pre% � &��rectangles &� pre%=sly% &� � 0,11 &�Ȗ &�E�sly%<3 ȓ 80,sly%*280+16,256,256 �ȓ 912,(sly%-3)*280+16,256,256 &�� &�� &� �but%=0:� &� Ȏ sly% � &�� 0:�run("ChainUp") '� 1:�run("Processor") '� 2:�run("Graphoid") '� 3:�run("RibTickler") '$� 4:�run("TurboRaft") '.� 5:�run("HookIt") '8� 'B� 'Lȗ mox%,moy%,but% 'V� but%=0 '`�sly%>-1:�menu 'j�mouse1 't� '~��contents '�� 5 '��J%=1�3 '�-ș"ABC_UnpackSprite",J%-1,z%,48,274-J%*70 '�.ș"ABC_UnpackSprite",J%+2,z%,464,274-J%*70 '�� '� � �Ddh '��J%=1�3 '�� a$,b$ '� � 0,7 '�� 96,J%*280-232 '��a$ '�� 928,J%*280-232 ( �b$ ( � 0,0 (� 102,J%*280-228 (�a$ ((� 934,J%*280-228 (2�b$ (<� (F� 4 (P� (Z� (dA� Chain Up,Rib Tickler,Processor,Turbo Raft,Graphoid,Hook It! (n��rectangles (x � 0,0 (��J%=1�3 (�ȓ 80,J%*280-264,256,256 (�ȓ 912,J%*280-264,256,256 (�� (�� (���achievediscdump (�符-2:� (�符-82:� (�� 7 (�ȗ � (�� � (� ș"ABC_Transfer",0,16,640,17 (�)�input(32,"adfs::0.$.AchieveSpr",�,�) )ș"ABC_Restore" )�esc% � i$="":� )� 24,0;192;1278;960; )"ș"Hourglass_On" ),�"SCREENSAVE "+i$ )6� 26 )@ș"Hourglass_Smash" )JP� � �:� 7:�mess("PLEASE INSERT DISC INTO DRIVE AND PRESS RETURN",8):�:� �-74 )T*DIR <Disc2$Dir>.SixGames )^ș"ABC_Restore" )hȗ � 640,512 )r�mouse1 )|� )���achieveprintdump )�符-2:� )�符-56:� )��7 )�ș"Hourglass_On" )� � �tVE )�new%()=att%() )��printpage(attend$) )� �flush )�ș"Hourglass_Smash" )��mouse1 )�� )���allachieveprintdump *符-2:� * 符-102:� *� 7 *&ș"Hourglass_On" *0�displaydirectory *: �flush *Dș"Hourglass_Smash" *N�mouse1 *Xfiles%()=� *b lst%=0 *l� *vȗ mox%,moy%,but% *�sqx%=(mox%-128)>>8 *��sqx%>3:sqx%=3 *��sqx%<0:sqx%=0 *�sqy%=(1024-moy%)>>6 *��sqy%>15:sqy%=15 *�inx%=sqy%+sqx%*g% *��inx%>63:inx%=63 *��inx%<>lst% � *�2�files%(lst%) �small(lst%,14) ��small(lst%,11) *�2�files%(inx%) �small(inx%,14) ��small(inx%,15) *� lst%=inx% *�� *�"�but%=1 � filename$(lst%)>"" � +files%(lst%)=�files%(lst%) +2�files%(lst%) �small(lst%,14) ��small(lst%,11) +� + ȗ mox%,moy%,but% +*� but%=0 +4� +>�-113 k%=� �k%=� +H� but%=4 � k% +Ra$=filename$(lst%) +\ �k% � +fș"Hourglass_On" +pș"ABC_Colour",15 +zX%=0 +� esc%=� +�ȕ X%<64 � �esc% +��files%(X%) � +�Jh%=�("<Disc2$Dir>.SixGames.Achieve.Achieve"+�(cla%)+"."+filename$(X%)) +��J%=1�10 +��K%=1�6 +��#h%,new%(K%,J%) +�� +�� +��#h% +��printpage(filename$(X%)) +�� +� X%+=1 ,� ,ș"Hourglass_Smash" ,� ,$�achievecard ,.� ,8ȗ mox%,moy%,but% ,B� but%=0 ,L� ,V��printpage(name$) ,`*FX200 0 ,j� � ,t%� � �:� 6,3,7:�"FX200 1":esc%=�:� ,~ � 2,21 ,��header ,�a$=�strip(name$) ,��a$="":a$="Empty" ,�'�printer("The achievements of "+a$) ,�D�printer("playing the 10 out of 10 Mathematics (Algebra) games") ,��printer("") ,��printer(�date) ,��printer("") ,� � �Ttp ,�:�printer(typ$+" Covering"+�53," ")+"Achievement") ,��printer("") ,��printer("GRAPHOID") - �gamedetails(1) - �printer("PROCESSOR") -�gamedetails(2) -�printer("CHAIN UP") -(�gamedetails(3) -2�printer("HOOK IT!") -<�gamedetails(4) -F�printer("TURBO RAFT") -P�gamedetails(5) -Z�printer("RIB TICKLER") -d�gamedetails(6) -n+�printer("KEY TO ACHIEVEMENT COLOURS:") -x�printer("") -�.�printer("BLUE = 100% (10 times GREEN)") -�-�printer("GREEN = 100% (10 out of 10!)") -�$�printer("YELLOW = 50% or over") -�"�printer("RED = Under 50%") -�;�printer("- = means the grade has not been tried") -�ȕ pnt%<pap% -�� -�pnt%+=1 -�� -��footer -� � 6,3 -�*FX200 1 -�� .��gamedetails(num%) .�J%=1�6 .� K% ."b$=info$(num%,K%) .,�nig% � .6 a$=b$ .@!�a$,"�")>0:�a$,�a$,"�"))="1" .J!�a$,"�")>0:�a$,�a$,"�"))="2" .T!�a$,"�")>0:�a$,�a$,"�"))="3" .^� .ha$=�b$,�b$,")")+2) .r� .|a$=�(J%)+" "+a$ .�a$+=�72-�(a$)," ") .�Ȏ new%(num%,K%) � .�� 0:a$+="-" .�� 1:a$+="RED" .�� 2:a$+="YELLOW" .�%� 3,4,5,6,7,8,9,10,11:a$+="GREEN" .�:a$+="BLUE" .�� .��printer(a$) .�� .��printer("") .�� .���header / pnt%=0 / �hed%=0:� /�W%=1� hed% /&� /0� /:� /D��footer /N �fut%=0:� /X�W%=1� fut% /b� /l� /v� /���printer(j$) /��j$ /�pnt%+=1 /��pnt%=pap% � /��footer /��header /�� /�� /� ݤdate /� � �T`p /� fnd%=� /�ȕ �fnd% /�� ab$,n$ 0科$,ab$):fnd%=� 0� 0#="Date: "+��$,5,3)+n$+��$,11,5) 0 G� Jan,January,Feb,February,Mar,March,Apr,April,May,May,Jun,June,Jul 0*I� July,Aug,August,Sep,September,Oct,October,Nov,November,Dec,December 04� 10,4,5,7,8,9 0>� 1,10,6,3,7,8 0H� 10,6,4,3,9,5 0R� 2,1,10,6,3,9 0\� 1,6,10,9,3,2 0f� 1,10,9,2,8,7 0p��flush 0z*FX21 9 0�� 0�ݤstrip(str$) 0�ȕ �str$,"_")>0 0��str$,�str$,"_"))=" " 0�� 0� =str$ 0���input(tot%,x$,cap%,fil%) 0�*FX21 0 0� esc%=� 0�cnt%=�(x$) 0� i$=x$ 0�"�fil% y$="filename: >" �y$=">" 0��mess(y$+i$+"<",8) 1� 1� 1� 1$k%=�(1) 1.�-113:esc%=� 18#� k%=13 � k%>31 � k%<128 � esc% 1B�k%=127 � cnt%>0 � 1Lcnt%-=1 1Vi$=�i$,cnt%) 1`�mess(y$+i$+"<",8) 1j� 1t� k%<>127 � esc% 1~�k%<>13 � cnt%<>tot% � 1��cap% � 1� �cnt%=0 � 1�2�(k%)>="a" � �(k%)<="z" i$=�(k%-32) �i$=�(k%) 1�� 1�4�(k%)>="A" � �(k%)<="Z" i$+=�(k%+32) �i$+=�(k%) 1�� 1�� 1� i$+=�(k%) 1�� 1��mess(y$+i$+"<",8) 1�cnt%+=1 1�� 2 �k%<>13 � cnt%=tot%:�7 2 � k%=13 � esc% 2� 2��exitmessage 2(ș"ABC_Colour",11 22 � �tVr 2<� a$ 2F Y%=240 2Pȕ a$<>"end" 2Z$ș"ABC_PryntString",a$,34,Y%,1,7 2d&ș"ABC_PryntString",a$,32,Y%+1,1,0 2n�a$>"" Y%-=18 �Y%-=12 2x� a$ 2�� 2�� 2�#� Also available or coming soon 2�,� "for Acorn 32-bit, IBM PC/compatibles" 2�� and Commodore Amiga ... 2�� 2�� English French 2� � German Spanish 2� � Italian Science 2�(� Maths (Number) Maths (Algebra) 2�*� Early Essentials Junior Essentials 2�� 2�� Contact your dealer or 3$� ring (0742) 780370 for details 3 � end 3ݤinitialcompressed(s$) 3"h%=�(f$+s$) 3, len%=�#h% 36�#h% 3@ � z% len% 3J�"LOAD "+f$+s$+" "+�~(z%) 3T=z% 3^��configure 3h符-2 � ��-1 � � �-83:� 3rȗ � 3|ș"ABC_Blank",3 3�ș"ABC_Colour",3 3��validdirectories 3�#ș"ABC_Sprite",b%,"bar",180,242 3�#ș"ABC_Sprite",b%,"exit",454,18 3�� 11 3� � 130 3�'�25,2)"10 out of 10 CUSTOMISATION" 3�� 7 3� old%=cla% 3� � �D`{ 3�� a$,K% 3�J%=0 3�ȕ a$<>"end" 4)ș"ABC_Sprite",b%,"bar",180,210-J%*16 4�25,J%*2+6)a$ 4�K%=-1 � 4&.ș"ABC_Sprite",b%,"arrow_up",482,210-J%*16 400ș"ABC_Sprite",b%,"arrow_down",510,210-J%*16 4:� 4DQ�K%=-2 ș"ABC_Sprite",b%,"default",454,210-J%*16 ��buttonstatus(J%,210-J%*16) 4N J%+=1 4X� a$,K% 4b� 4lș"ABC_Palette" 4vȗ ȓ 904,32,160,810 4��mouse1 4� end%=� 4�ȕ �end% 4�� 4�ȗ mox%,moy%,but% 4�� but%>0 4�$�but%=4 � �mox%,moy%)<>3:�action 4�� 4��savenewconfigure 4��old%<>cla%:�setempty 4��sun%<11 sun%=11 �sun%=0 4� �menu 4�� 5��action 5noy%=(842-moy%)>>6 5nox%=(mox%-906)�56 5 Ȏ noy% � 5*� 0 54rat%=�rat% 5>#�buttonstatus(noy%,210-noy%*16) 5H� 7 5R� 1 5\�ver% � 5fnig%=�nig% 5p#�buttonstatus(noy%,210-noy%*16) 5z� 7 5�� 5�� 2 5�sds%=�sds% 5�#�buttonstatus(noy%,210-noy%*16) 5�'�sds% �"SPEAKER ON" ��"SPEAKER OFF" 5�� 7 5�� 3 5��ver% � 5� ver%=� 5� nig%=� 5�(�buttonstatus(noy%-2,210-noy%*16+32) 5�#�buttonstatus(noy%,210-noy%*16) 5�(�buttonstatus(noy%+1,210-noy%*16-16) 6� 7 6� 6� 4 6$�ver% � 6. ver%=� 68 nig%=� 6B(�buttonstatus(noy%-3,210-noy%*16+48) 6L#�buttonstatus(noy%,210-noy%*16) 6V(�buttonstatus(noy%-1,210-noy%*16+16) 6`� 7 6j� 6t� 5 6~ �nox%=1 � 6�grd%+=1 6��grd%=7:grd%=1 6�#�buttonstatus(noy%,210-noy%*16) 6�� 7 6�� 6� �nox%=2 � 6�grd%-=1 6��grd%=0:grd%=6 6�#�buttonstatus(noy%,210-noy%*16) 6�� 7 6�� 6�� 6 7 �nox%=1 � 7 cla%+=1 7�cla%=65:cla%=1 7#�buttonstatus(noy%,210-noy%*16) 7(� 7 72� 7< �nox%=2 � 7Fcla%-=1 7P�cla%=0:cla%=64 7Z#�buttonstatus(noy%,210-noy%*16) 7d� 7 7n� 7x� 7 7� �nox%=1 � 7�hed%+=1 7��hed%=8:hed%=0 7�#�buttonstatus(noy%,210-noy%*16) 7�� 7 7�� 7� �nox%=2 � 7�hed%-=1 7��hed%<0:hed%=7 7�#�buttonstatus(noy%,210-noy%*16) 7�� 7 7�� 7�� 8 8 �nox%=1 � 8fut%+=1 8�fut%=8:fut%=0 8"#�buttonstatus(noy%,210-noy%*16) 8,� 7 86� 8@ �nox%=2 � 8Jfut%-=1 8T�fut%<0:fut%=7 8^#�buttonstatus(noy%,210-noy%*16) 8h� 7 8r� 8|� 9 8� �nox%=1 � 8�pap%+=1 8��pap%=81:pap%=16 8�#�buttonstatus(noy%,210-noy%*16) 8�� 7 8�� 8� �nox%=2 � 8�pap%-=1 8��pap%=15:pap%=80 8�#�buttonstatus(noy%,210-noy%*16) 8�� 7 8�� 8�� 10 9pix%+=1 9�pix%=4:pix%=0 9#�buttonstatus(noy%,210-noy%*16) 9&� 7 90� 11 9:ș"ABC_Blank",3 9D*SPEAKER ON 9N� 7 9X rat%=� 9b nig%=� 9l sds%=� 9v ver%=� 9� grd%=1 9� cla%=1 9� hed%=1 9� fut%=1 9�pap%=64 9� pix%=0 9��J%=0�10 9��buttonstatus(J%,210-J%*16) 9�� 9�ș"ABC_Palette" 9�� 12:end%=� 9�� 9�� :ȗ mox%,moy%,but% :� but%=0 :� : ��savenewconfigure :*ȗ � :4ș"ABC_Blank",3 :>ș"ABC_Colour",3 :H'�directory%(cla%):�createdirectory :R7�"DIR <Disc2$Dir>.SixGames.Achieve.Achieve"+�(cla%) :\$�ver% typ$="Grade" �typ$="Level" :fh%=�(f$+"Configure") :p?�#h%,rat%,nig%,sds%,ver%,grd%,cla%,typ$,hed%,fut%,pap%,pix% :z�#h% :�*DIR <Disc2$Dir>.SixGames :�� :���buttonstatus(num%,ysc%) :�yyy%=ysc%-2 :�Ȗ :�_�num%=3 � num%=4 ș"ABC_Sprite",b%,"radiooff",454,ysc% �ș"ABC_Sprite",b%,"optoff",454,ysc% :� Ȏ num% � :�0� 0:�rat%:ș"ABC_Sprite",b%,"opton",454,ysc% :�0� 1:�nig%:ș"ABC_Sprite",b%,"opton",454,ysc% :�0� 2:�sds%:ș"ABC_Sprite",b%,"opton",454,ysc% :�3� 3:�ver%:ș"ABC_Sprite",b%,"radioon",454,ysc% :�2� 4:�ver%:ș"ABC_Sprite",b%,"radioon",454,ysc% :�0� 5:ș"ABC_PryntString",�(grd%),462,yyy%,0,9 ;� 6 ;&�directory%(cla%) cul%=13 �cul%=11 ;d�cla%>9 ș"ABC_PryntString",�(cla%),458,yyy%,0,cul% �ș"ABC_PryntString",�(cla%),462,yyy%,0,cul% ;$1� 7:ș"ABC_PryntString",�(hed%),462,yyy%,0,11 ;.1� 8:ș"ABC_PryntString",�(fut%),462,yyy%,0,11 ;81� 9:ș"ABC_PryntString",�(pap%),458,yyy%,0,11 ;B`� 10:�pix%=0 ș"ABC_PryntString","A",462,yyy%,0,11 �ș"ABC_PryntString",�(pix%),462,yyy%,0,6 ;L� ;V� ;`H� Ratings suppressed,0,National curriculum numbers,0,Sound,0,Level,0 ;j;� Grade,0,Overall skill,-1,Class number,-1,Top space,-1 ;tE� Bottom space,-1,Paper length,-1,Graphics selection,0,Default,-2 ;~� end,0 ;���validdirectories ;�'�"DIR <Disc2$Dir>.SixGames.Achieve" ;�%ș"OS_GBPB",8,,cat%,&40,0 � ,,,d% ;�*DIR <Disc2$Dir>.SixGames ;�c%=0 ;�d%=64-d% ;�st%=cat% ;�directory%()=� ;�ȕ c%<d% ;�t%=st%?((?st%)+1) ;�st%?((?st%)+1)=&D ;�a$=$(st%+1) <