Home » Recent acquisitions » Acorn ADFS disks » adfs_AcornComputing_199407.adf » 9407 » 10_10Frnch/!10_10Fren/25-01-1994/Menu
10_10Frnch/!10_10Fren/25-01-1994/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 » Recent acquisitions » Acorn ADFS disks » adfs_AcornComputing_199407.adf » 9407 |
| Filename: | 10_10Frnch/!10_10Fren/25-01-1994/Menu |
| Read OK: | ✔ |
| File size: | 86C0 bytes |
| Load address: | 0000 |
| Exec address: | 0000 |
Duplicates
There is 1 duplicate copy of this file in the archive:
- Archimedes archive » Acorn Computing » 1994 07.adf » 9407 » 10_10Frnch/!10_10Fren/25-01-1994/Menu
- Recent acquisitions » Acorn ADFS disks » adfs_AcornComputing_199407.adf » 9407 » 10_10Frnch/!10_10Fren/25-01-1994/Menu
File contents
10REM ><Disc1$Dir>.Menu
20ONERROR:IFERR=17 PROCtrap:GOTO60 ELSEPROCerror
30IFMODE<>12:MODE12:OFF
40PROCinitial
50PROCassemble
60PROCmenu
70REPEAT
80PROCmouseilluminate
90PROCselect
100PROCaccess
110PROCconfigure
120UNTIL FALSE
130DEFPROCinitial
140SYS"ABC_VideoAddress"
150SYS"Hourglass_On"
160MOUSE RECTANGLE 0,0,1280,1024
170DIM att%(6,6,4),new%(6,6,4),info$(6,6),sub$(6,6,4),filename$(64),six$(6)
180DIM ncl$(6),mnu$(11),directory%(64),files%(64),cat% &400
190h%=OPENIN("ram:FactFile")
200FORJ%=1TO6
210FORK%=1TO6
220INPUT#h%,info$(J%,K%)
230NEXT
240NEXT
250CLOSE#h%
260@% =0
270box%=0
280g% =16
290pre%=-1
300sun%=0
310f$ ="<Disc1$Dir>.SixGames."
320j% =FNinitialcompressed("Numbers")
330PROCloaddetails
340RESTORE 530
350FORJ%=1TO6
360FORK%=1TO6
370FORL%=1TO4
380READ a$
390sub$(J%,K%,L%)=a$
400NEXT
410NEXT
420NEXT
430FORJ%=1TO6
440READ a$
450ncl$(J%)=a$
460NEXT
470SYS"Hourglass_Smash"
480PROCpoint("Ten",1)
490VOICES 4
500VOICE 1,"StringLib-Pluck"
510PROCflush
520ENDPROC
530DATA fruit/veg,drinks and baker's,delicatessan,general
540DATA in grocer's,in grocer's,in delicatessan,general
550DATA food shopping,restaurant/cafe,clothes shopping,present shopping
560DATA "avoir, �tre present tense",regular 'er' verb aimer,vouloirs,regular 're' 'ir' verbs vendre and finir
570DATA food/dishes,shops and services,food items,restaurants
580DATA apologising and excuses,"complaints, problems and disapproval","likes, dislikes, voicing anger and exasperation","inviting, refusing and forbidding"
590DATA sports,sports,music,hobbies
600DATA sports,music,pastimes,going out
610DATA sports,music,pastimes,going out
620DATA "faire, aller","pouvoir, devoir",regular 'er',reflexives
630DATA direct object pronouns,indirect object pronouns,'y' and 'en',emphatic pronouns
640DATA perfect tense,imperfect tense,pluperfect tense,past historic tense
650DATA female relatives,male relatives,pets,colours
660DATA parts of the body,features/face,illness/health,special occasions
670DATA physical description,personality,family status and religion,nationality
680DATA family and special occasions,"illness, health and diet",finding opposites,finding opposites
690DATA adjectives,adjectives,adverbs,adverbs
700DATA find the noun,find the verb,find the adjective,find the past participle
710DATA places in town,places in town,furniture,shops
720DATA "whole hours, half hours and quarter past",all times,24 hour clock,24 hour clock
730DATA giving directions,giving directions,station signs,weather
740DATA geography of France,geography of France,geography of France,geography of France
750DATA regular verbs,irregular verbs,irregular verbs,irregular verbs
760DATA slang,slang,idioms,idioms
770DATA school subjects,classroom objects,school facilities,classroom objects
780DATA school subjects - le la l' les,classroom objects - un une des,school facilities - le la l' les,classroom objects - un une des
790DATA mon ma mes,ton ta tes,son sa ses,notre nos
800DATA school subjects/rooms,jobs and careers,classroom objects,jobs and careers
810DATA future plans,future plans,future plans (infinitives),future plans (infinitives)
820DATA infinitives,relative pronouns qui que,negatives,after having ...
830DATA days,months,numbers 1-20,numbers in tens 0-100
840DATA countries,accommodation,transport,holiday items
850DATA weather,hotel,campsite,tourist office
860DATA perfect tense with 'avoir' regular,perfect tense with 'avoir' irregular,"perfect tense with '�tre'",perfect tense with reflexive verbs
870DATA holidays past,holidays past,post cards,plans for future holidays
880DATA tourist office,booking accomodation,holiday complaints,lost property
890DATA 1,2/3,3/4,5/6,6/7,8/9/10
900DEFPROCmouse1
910MOUSE COLOUR 1,255,255,0
920MOUSE COLOUR 2,255,0,0
930MOUSE COLOUR 3,192,192,192
940MOUSE ON 1
950ENDPROC
960DEFFNarea(x1%,y1%,x2%,y2%)
970IFmox%<x1% OR mox%>x2%:=FALSE
980IFmoy%<y1% OR moy%>y2%:=FALSE
990=TRUE
1000DEFPROCmouseilluminate
1010MOUSE mox%,moy%,but%
1020box%=(moy%-100)>>6
1030IFbox%<0:box%=0
1040IFbox%>11:box%=11
1050IFbox%<>sun%:WAIT:PROCsqr(sun%,11):PROCsqr(box%,15):sun%=box%
1060IFNOTFNarea(704,104,864,868) THEN
1070PROCsqr(box%,11)
1080IFbox%<5 THEN
1090box%=11:sun%=10
1100ELSE
1110box%=0:sun%=1
1120ENDIF
1130PROCtidy
1140ELSE
1150IFfrn%:PROClongmenu
1160ENDIF
1170IFbut%=0 OR NOTFNarea(704,104,864,868):ENDPROC
1180VDU 7
1190CASE box% OF
1200WHEN 0 :PROCdesktop
1210WHEN 1 :PROCprintcertificate
1220WHEN 2 :PROCdelete
1230WHEN 3 :PROCcreate
1240WHEN 4 :PROCload
1250WHEN 5 :PROCviewachieve
1260WHEN 6 :PROCrun("Stones")
1270WHEN 7 :PROCrun("Rescue")
1280WHEN 8 :PROCrun("LinkUp")
1290WHEN 9 :PROCrun("WordSearch")
1300WHEN 10:PROCrun("Tower")
1310WHEN 11:PROCrun("TheCop")
1320ENDCASE
1330IFsun%<11 sun%=11 ELSEsun%=0
1340PROCzeromouse
1350PROCmenu
1360ENDPROC
1370DEFPROCrun(game$)
1380MOUSE OFF
1390SYS"Hourglass_On"
1400SYS"ABC_Blank",15
1410SYS"ABC_Colour",15
1420PROCconfilesave
1430CHAIN f$+game$
1440ENDPROC
1450DEFPROCsqr(wch%,col%)
1460GCOL 0,col%
1470RECTANGLEFILL 706,wch%*64+100,156,58
1480ENDPROC
1490DEFPROCmenu
1500MOUSE OFF
1510MOUSE TO 640,512
1520SYS"ABC_Blank",15
1530SYS"ABC_Colour",15
1540inj%=72
1550omy%=1
1560txt%=1
1570d$=""
1580IFfrn% PROCcard("FRANCAIS MENU",24,6,2,12) ELSEPROCcard("FRENCH MENU",24,6,2,12)
1590PROCfillmenu
1600PROCcurrent
1610PROCrectangles
1620PROCcontents
1630SYS"ABC_Palette"
1640MOUSE RECTANGLE 0,0,1280,1024
1650MOUSE TO 640,512
1660PROCmouse1
1670ENDPROC
1680DEFPROCfillmenu
1690VDU 5
1700GCOL 0,0
1710IFfrn% RESTORE 1910 ELSERESTORE 1880
1720FORJ%=0TO5
1730READ s$
1740MOVE 400,844-J%*64
1750IFfrn% PRINTLEFT$(s$,17) ELSEPRINTs$
1760mnu$(J%)=s$
1770NEXT
1780GCOL 0,14
1790FORJ%=6TO11
1800READ s$
1810MOVE 400,844-J%*64
1820IFfrn% PRINTLEFT$(s$,17) ELSEPRINTs$
1830mnu$(J%)=s$
1840NEXT
1850VDU 4
1860OFF
1870ENDPROC
1880DATA The Cop,Tower,Word Search,Link Up,Rescue,Stones
1890DATA Player information,Change player,New player,Remove player
1900DATA Print certificate,Quit
1910DATA Le Flic,La Tour,Le Puzzle,Le Jumelage,"La Fus�e",La Bonne Route
1920DATA Information pour les joueur,Changement de joueur,Nouveau joueur,Effacer le joueur
1930DATA Imprimer le certificat,Quitter
1940DEFPROCachievecard
1950MOUSE OFF
1960SYS"ABC_Blank",15
1970SYS"ABC_Colour",15
1980a$=FNstrip(attend$)
1990IFa$="" THEN
2000IFfrn% a$="Vide" ELSEa$="Empty"
2010ENDIF
2020IFfrn% PROCnewcard(a$+" : Grille d'Evaluation 10/10 Fran�ais",8,13) ELSEPROCnewcard(a$+" : Achievement Record 10/10 French",8,13)
2030PROCfillachieve
2040MOUSE TO 640,512
2050SYS"ABC_Palette"
2060PROCmouse1
2070p$="X"
2080oxx%=0
2090oyy%=0
2100ozz%=0
2110*FX21 0
2120ENDPROC
2130DEFPROCviewachieve
2140MOUSE RECTANGLE 128,116,1150,764
2150PROCachievecard
2160REPEAT
2170MOUSE mox%,moy%,but%
2180cxx%=(mox%-128)/192+1
2190cyy%=(moy%-116)/128+1
2200czz%=0
2210xsc%=cxx%*192-30
2220ysc%=cyy%*128
2230cyy%=7-cyy%
2240IFFNarea(xsc%,ysc%,xsc%+126,ysc%+40) AND att%(cxx%,cyy%,0)<3:czz%=(mox%-xsc%)/32+1
2250IFcxx%<>oxx% OR cyy%<>oyy% OR czz%<>ozz%:PROCinformation(info$(cxx%,cyy%),sub$(cxx%,cyy%,czz%))
2260PROCachievediscdump
2270PROCachieveprintdump
2280PROCallachieveprintdump
2290UNTIL FNleave
2300ENDPROC
2310DEFPROCinformation(t$,u$)
2320IFu$>"":t$+=" ("+u$+")"
2330IFnig%:t$="LoA "+ncl$(cyy%)+" "+t$
2340oxx%=cxx%
2350oyy%=cyy%
2360ozz%=czz%
2370IFp$=t$:ENDPROC
2380p$=t$
2390PROCmess(t$,11)
2400ENDPROC
2410DEFPROCcard(t$,tax%,tay%,sdx%,sdy%)
2420VDU 5
2430GCOL 0,8
2440RECTANGLEFILL tax%*g%,tay%*g%,sdx%*160+160,sdy%*64
2450GCOL 0,11
2460RECTANGLEFILL tax%*g%+320,tay%*g%,sdx%*160-162,sdy%*64
2470GCOL 0,0
2480IFsdx%*160+160>1279 sxe%=1278 ELSEsxe%=sdx%*160+160
2490RECTANGLE tax%*g%,tay%*g%,sxe%,sdy%*64
2500GCOL 0,13
2510MOVE tax%*g%+64,tay%*g%+sdy%*64+64
2520PLOT 0,LEN(t$)*g%,0
2530PLOT 85,tax%*g%,tay%*g%+sdy%*64
2540PLOT 81,128+LEN(t$)*g%,0
2550GCOL 0,0
2560MOVE tax%*g%,tay%*g%+sdy%*64
2570PLOT 1,64,64
2580PLOT 1,LEN(t$)*g%,0
2590PLOT 1,64,-64
2600MOVE tax%*g%+64,tay%*g%+sdy%*64+44
2610PRINTt$
2620FORJ%=1TO sdx%
2630MOVE tax%*g%+J%*160+160,tay%*g%
2640PLOT 1,0,sdy%*64
2650NEXT
2660FORJ%=1TO sdy%
2670MOVE tax%*g%,tay%*g%+J%*64
2680PLOT 1,sdx%*160+160,0
2690NEXT
2700VDU 4
2710OFF
2720ENDPROC
2730DEFPROCcent(t$,tay%)
2740PRINTTAB(41-LEN(t$)DIV2,tay%)t$;
2750ENDPROC
2760DEFPROCmess(t$,col%)
2770GCOL 0,col%
2780VDU 5
2790WAIT
2800RECTANGLEFILL 0,0,1278,64
2810GCOL 0,0
2820RECTANGLE 0,0,1278,64
2830MOVE 640-LEN(t$)*8,44
2840PRINTt$
2850VDU 4
2860OFF
2870ENDPROC
2880DEFPROCprintcertificate
2890SYS"ABC_Colour",15
2900MOUSE OFF
2910ach%=TRUE
2920FORJ%=1TO6
2930FORK%=1TO6
2940IFatt%(K%,J%,0)>2:ach%=FALSE
2950NEXT
2960NEXT
2970IFach% THEN
2980IFfrn% PROCmess("Aucune r�ussite pour l'instant - retourner au menu",11) ELSEPROCmess("Nothing achieved at present - return to menu",11)
2990PROCzeromouse
3000REPEAT
3010UNTIL FNleave
3020ELSE
3030PROCbusy
3040REPEAT
3050UNTIL FNleave
3060ENDIF
3070ENDPROC
3080DEFPROCbusy
3090IFfrn% PROCforeign ELSEPROCenglish
3100ENDPROC
3110DEFPROCenglish
3120PROCmess("Screen/Printer/Disc (S/P/D)",11)
3130*FX21 0
3140REPEAT
3150k%=INKEY(0)
3160IFk%>=ASC("a"):k%-=32
3170UNTIL k%=ASC("S") OR k%=ASC("P") OR k%=ASC("D") OR INKEY-113
3180IFINKEY-113:PROCflush:ENDPROC
3190VDU 7
3200IFk%<>ASC("P") THEN
3210PROCmess("Text/Graphics (T/G)",11)
3220REPEAT
3230t%=INKEY(0)
3240IFt%>=ASC("a"):t%-=32
3250UNTIL t%=ASC("T") OR t%=ASC("G") OR INKEY-113
3260ELSE
3270t%=ASC("T")
3280ENDIF
3290IFINKEY-113:PROCflush:ENDPROC
3300IFt%=ASC("T") PROCachieve_text ELSEPROCachieve_graphics
3310IFk%=ASC("D"):PROCdiscdump
3320IFk%=ASC("P"):PROCprinter_dump
3330ENDPROC
3340DEFPROCforeign
3350PROCmess("Ecran/Imprimante/Disquette (E/I/D)",11)
3360*FX21 0
3370REPEAT
3380k%=INKEY(0)
3390IFk%>=ASC("a"):k%-=32
3400UNTIL k%=ASC("E") OR k%=ASC("I") OR k%=ASC("D") OR INKEY-113
3410IFINKEY-113:PROCflush:ENDPROC
3420VDU 7
3430IFk%<>ASC("I") THEN
3440PROCmess("Texte/iMages (T/M)",11)
3450REPEAT
3460t%=INKEY(0)
3470IFt%>=ASC("a"):t%-=32
3480UNTIL t%=ASC("T") OR t%=ASC("M") OR INKEY-113
3490ELSE
3500t%=ASC("T")
3510ENDIF
3520IFINKEY-113:PROCflush:ENDPROC
3530IFt%=ASC("T") PROCachieve_text ELSEPROCachieve_graphics
3540IFk%=ASC("D"):PROCdiscdump
3550IFk%=ASC("I"):PROCprinter_dump
3560ENDPROC
3570DEFPROCachieve_graphics
3580SYS"ABC_Blank",3
3590SYS"ABC_Colour",3
3600GCOL 0,12
3610RECTANGLEFILL 184,64,942,932
3620GCOL 0,7
3630RECTANGLE 184,64,942,932
3640COLOUR 0
3650COLOUR 140
3660SYS"ABC_UnpackSprite","wax",j%,444,70
3670SYS"ABC_UnpackSprite","small",j%,120,64
3680PROCwords(TRUE)
3690SYS"ABC_Palette"
3700ENDPROC
3710DEFPROCachieve_text
3720SYS"ABC_Blank",12
3730SYS"ABC_Colour",12
3740COLOUR 7
3750COLOUR 140
3760PROCcent(STRING$(67,"*"),0)
3770FORJ%=1TO29
3780PRINTTAB(8,J%)"*"TAB(74,J%)"*"
3790NEXT
3800PROCcent(STRING$(67,"*"),30)
3810PROCwords(FALSE)
3820SYS"ABC_Palette"
3830ENDPROC
3840DEFPROCwords(fan%)
3850IFfan% THEN
3860IFfrn% a$="CECI CERTIFIE QUE" ELSEa$="THIS IS TO CERTIFY THAT"
3870xsc%=320-LEN(a$)*8
3880SYS"ABC_PryntString",a$,xsc%,240,1,7
3890SYS"ABC_PryntString",a$,xsc%-2,242,1,11
3900PROCwings(FNstrip(attend$),168,222)
3910ELSE
3920COLOUR 7
3930COLOUR 140
3940IFfrn% PROCcent("CECI CERTIFIE QUE ",2) ELSEPROCcent("THIS IS TO CERTIFY THAT ",2)
3950a$=FNstrip(attend$)
3960PROCcent(a$,4)
3970ENDIF
3980COLOUR 7
3990COLOUR 140
4000IFfrn% THEN
4010IFver% a$="cat�gories" ELSEa$="niveaux"
4020PROCcent("a jou� aux jeux Dix sur Dix Fran�ais",9)
4030PROCcent("et a obtenu 100% aux jeux suivants "+a$,10)
4040PROCcent("Certificat d�livr� par",27)
4050PROCcent("Systemes Educatifs 10/10",28)
4060ELSE
4070IFver% a$="grades" ELSEa$="levels"
4080PROCcent("has played the Ten out of Ten French games",9)
4090PROCcent("and has achieved 100% at the following "+a$,10)
4100PROCcent("Certificate from",27)
4110PROCcent("10/10 Educational Systems",28)
4120ENDIF
4130PROCcent(FNdate,25)
4140tay%=0
4150FORJ%=1TO6
4160K%=1
4170fnd%=FALSE
4180WHILE K%<7 AND NOTfnd%
4190IFatt%(K%,J%,0)>2 AND LEFT$(info$(K%,J%),4)<>"":tay%+=1:fnd%=TRUE
4200K%+=1
4210ENDWHILE
4220NEXT
4230tay%=18-tay%DIV2
4240IFfrn% RESTORE 1910 ELSERESTORE 1880
4250FORJ%=1TO6
4260READ b$
4270six$()=""
4280FORK%=1TO6
4290IFatt%(J%,K%,0)>2:six$(K%)=STR$(K%)
4300NEXT
4310REPEAT
4320srt%=TRUE
4330FORK%=1TO5
4340IFsix$(K%)<six$(K%+1):SWAP six$(K%),six$(K%+1):srt%=FALSE
4350NEXT
4360UNTIL srt%
4370a$=""
4380FORK%=1TO6
4390IFsix$(K%)<>"":a$+=six$(K%)+","
4400NEXT
4410IFRIGHT$(a$)=",":a$=LEFT$(a$)
4420IFa$<>"" THEN
4430PRINTTAB(18,tay%)b$TAB(36,tay%)"..."TAB(40,tay%)a$
4440tay%+=1
4450ENDIF
4460NEXT
4470ENDPROC
4480DEFPROCdiscdump
4490VDU 7
4500MOUSE OFF
4510LOCAL ERROR
4520SYS"ABC_Transfer",0,16,640,17
4530PROCinput(32,"adfs::0.$."+attend$,FALSE,TRUE)
4540SYS"ABC_Restore"
4550IFesc% OR i$="":ENDPROC
4560SYS"Hourglass_On"
4570OSCLI"SCREENSAVE "+i$
4580SYS"Hourglass_Smash"
4590ON ERROR LOCAL:PROCfrang
4600*DIR <Disc1$Dir>.SixGames
4610SYS"ABC_Restore"
4620MOUSE TO 640,512
4630PROCmouse1
4640ENDPROC
4650DEFPROCfrang
4660VDU 7
4670IFfrn% a$="INTRODUIRE LA DISQUETTE DANS LE LECTEUR ET APPUYER SUR RETOUR" ELSEa$="PLEASE INSERT DISC INTO DRIVE AND PRESS RETURN"
4680PROCmess(a$,8)
4690REPEAT
4700UNTIL INKEY-74
4710ENDPROC
4720DEFPROCprinter_dump
4730VDU 2
4740FORJ%=0TO30
4750FORK%=0TO79
4760VDU 31,K%,J%
4770SYS"OS_Byte",135 TO ,res%
4780VDU res%
4790NEXT
4800IFJ%<30:VDU 13,10
4810NEXT
4820VDU 3
4830ENDPROC
4840DEFPROCload
4850PROClegal
4860IFbad% OR esc%:ENDPROC
4870PROCgridcheck
4880IFa$="" OR k%:ENDPROC
4890VDU 7
4900h%=OPENIN("<Disc1$Dir>.SixGames.Achieve.Achieve"+STR$(cla%)+"."+a$)
4910SYS"Hourglass_On"
4920FORL%=0TO4
4930FORK%=1TO6
4940FORJ%=1TO6
4950INPUT#h%,att%(J%,K%,L%)
4960NEXT
4970NEXT
4980NEXT
4990CLOSE#h%
5000attend$=a$
5010PROCconfilesave
5020SYS"Hourglass_Smash"
5030ENDPROC
5040DEFPROCsmall(wch%,col%)
5050GCOL 0,col%
5060RECTANGLEFILL (wch%>>4)*256+354,964-((wch%AND&F)<<6),26,32
5070ENDPROC
5080DEFPROCcreate
5090PROClegal
5100IFbad% OR esc%:ENDPROC
5110MOUSE OFF
5120SYS"ABC_Colour",15
5130IFfrn% PROCmess("Nom du nouveau joueur",11) ELSEPROCmess("New player name",11)
5140PROCdelay(50)
5150PROCinput(8,"",TRUE,FALSE)
5160WHILE INSTR(i$," ")>0
5170MID$(i$,INSTR(i$," "))="_"
5180ENDWHILE
5190IFesc%:ENDPROC
5200OSCLI"DIR <Disc1$Dir>.SixGames.Achieve.Achieve"+STR$(cla%)
5210SYS"OS_GBPB",8,,cat%,&40,0 TO ,,,d%
5220*DIR <Disc1$Dir>.SixGames
5230a%=0
5240c%=0
5250d%=64-d%
5260st%=cat%
5270dup%=FALSE
5280WHILE c%<d% AND NOTdup%
5290t%=st%?((?st%)+1)
5300st%?((?st%)+1)=&D
5310a$=$(st%+1)
5320st%+=1+(?st%)
5330?st%=t%
5340IFa$=i$:dup%=TRUE
5350a%+=1
5360c%+=1
5370ENDWHILE
5380k%=TRUE
5390IFdup% THEN
5400GCOL 0,10
5410VDU 5
5420RECTANGLEFILL 0,0,1278,64
5430GCOL 0,0
5440RECTANGLE 0,0,1278,64
5450IFfrn% t$="Joueur "+i$+" existe d�j� - Effacer?" ELSEt$="Player "+i$+" already exists - Erase?"
5460MOVE 860-LEN(t$)*g%,44
5470PRINTt$
5480VDU 4
5490OFF
5500k%=FNyesno
5510ENDIF
5520IFNOTk%:PROCmouse1:ENDPROC
5530att%()=0
5540h%=OPENOUT("<Disc1$Dir>.SixGames.Achieve.Achieve"+STR$(cla%)+"."+i$)
5550FORL%=0TO4
5560FORK%=1TO6
5570FORJ%=1TO6
5580PRINT#h%,att%(J%,K%,L%)
5590NEXT
5600NEXT
5610NEXT
5620CLOSE#h%
5630attend$=i$
5640PROCconfilesave
5650SYS"ABC_Colour",15
5660PROCmouse1
5670ENDPROC
5680DEFPROCdelete
5690PROClegal
5700IFbad% OR esc%:ENDPROC
5710PROCgridcheck
5720IFa$="" OR k%:ENDPROC
5730SYS"ABC_Colour",15
5740GCOL 0,10
5750VDU 5
5760RECTANGLEFILL 0,0,1278,64
5770GCOL 0,0
5780RECTANGLE 0,0,1278,64
5790IFfrn% t$="Joueur "+a$+" - Effacer?" ELSEt$="Player "+a$+" - Erase?"
5800MOVE 860-LEN(t$)*g%,44
5810PRINTt$
5820VDU 4
5830OFF
5840k%=FNyesno
5850IFNOTk%:PROCmouse1:ENDPROC
5860OSCLI"DELETE <Disc1$Dir>.SixGames.Achieve.Achieve"+STR$(cla%)+"."+a$
5870IFa$=attend$:PROCsetempty
5880ENDPROC
5890DEFPROCdelay(del%)
5900REPEAT
5910WAIT
5920del%-=1
5930UNTIL del%<0
5940ENDPROC
5950DEFPROCconfileload
5960h%=OPENIN(f$+"Configure")
5970INPUT#h%,rat%,nig%,sds%,ver%,grd%,cla%,typ$,hed%,fut%,pap%,pix%,frn%,attend$,cod%
5980CLOSE#h%
5990ENDPROC
6000DEFPROCconfilesave
6010h%=OPENOUT(f$+"Configure")
6020PRINT#h%,rat%,nig%,sds%,ver%,grd%,cla%,typ$,hed%,fut%,pap%,pix%,frn%,attend$,cod%
6030CLOSE#h%
6040ENDPROC
6050DEFPROCloaddetails
6060PROCconfileload
6070IFsds% OSCLI"SPEAKER ON" ELSEOSCLI"SPEAKER OFF"
6080IFattend$="" THEN
6090att%()=0
6100ELSE
6110h%=OPENIN("<Disc1$Dir>.SixGames.Achieve.Achieve"+STR$(cla%)+"."+attend$)
6120FORL%=0TO4
6130FORK%=1TO6
6140FORJ%=1TO6
6150INPUT#h%,att%(J%,K%,L%)
6160NEXT
6170NEXT
6180NEXT
6190CLOSE#h%
6200ENDIF
6210ENDPROC
6220DEFFNyesno
6230PROCzeromouse
6240MOUSE RECTANGLE 959,12,240,46
6250PROCmouse1
6260MOUSE TO 1160,32
6270VDU 5
6280GCOL 0,0
6290MOVE 896,44
6300IFfrn% PRINT"Oui Non" ELSEPRINT"Yes No"
6310REPEAT
6320MOUSE mox%,moy%,but%
6330IFmox%<1072 THEN
6340GCOL 0,11
6350RECTANGLEFILL 960,12,80,40
6360GCOL 0,7
6370RECTANGLEFILL 1120,12,80,40
6380ELSE
6390GCOL 0,7
6400RECTANGLEFILL 960,12,80,40
6410GCOL 0,11
6420RECTANGLEFILL 1120,12,80,40
6430ENDIF
6440UNTIL but%>0 AND POINT(mox%,moy%)=11
6450VDU 4
6460OFF
6470IFmox%<1072 =TRUE ELSE=FALSE
6480DEFFNyesnodesk
6490PROCzeromouse
6500MOUSE RECTANGLE 959,12,240,46
6510PROCmouse1
6520MOUSE TO 1160,32
6530VDU 5
6540GCOL 0,0
6550MOVE 896,44
6560PRINT"Yes No"
6570REPEAT
6580MOUSE mox%,moy%,but%
6590IFmox%<1072 THEN
6600GCOL 0,11
6610RECTANGLEFILL 960,12,80,40
6620GCOL 0,7
6630RECTANGLEFILL 1120,12,80,40
6640ELSE
6650GCOL 0,7
6660RECTANGLEFILL 960,12,80,40
6670GCOL 0,11
6680RECTANGLEFILL 1120,12,80,40
6690ENDIF
6700UNTIL but%>0 AND POINT(mox%,moy%)=11
6710VDU 4
6720OFF
6730IFmox%<1072 =TRUE ELSE=FALSE
6740DEFPROCdisplaydirectory
6750SYS"ABC_Blank",15
6760SYS"ABC_Colour",15
6770OSCLI"DIR <Disc1$Dir>.SixGames.Achieve.Achieve"+STR$(cla%)
6780SYS"OS_GBPB",8,,cat%,&40,0 TO ,,,d%
6790*DIR <Disc1$Dir>.SixGames
6800VDU 5
6810FORa%=0TO63
6820x%=(a%>>4)*256+128
6830y%=(a%AND&F)<<6
6840GCOL 0,8
6850RECTANGLEFILL x%,y%,224,40
6860GCOL 0,11
6870RECTANGLEFILL x%+224,y%,30,40
6880GCOL 0,0
6890RECTANGLE x%+224,y%,30,40
6900NEXT
6910a%=0
6920c%=0
6930d%=64-d%
6940st%=cat%
6950filename$()=""
6960GCOL 0,0
6970WHILE c%<d%
6980t%=st%?((?st%)+1)
6990st%?((?st%)+1)=&D
7000a$=$(st%+1)
7010st%+=1+(?st%)
7020?st%=t%
7030MOVE (a%>>4)*256+144,992-((a%AND&F)<<6)
7040filename$(a%)=a$
7050a$=FNstrip(a$)
7060PRINT a$
7070a%+=1
7080c%+=1
7090ENDWHILE
7100VDU 4
7110OFF
7120SYS"ABC_Palette"
7130ENDPROC
7140DEFPROCgridcheck
7150PROCdisplaydirectory
7160lst%=0
7170REPEAT
7180MOUSE mox%,moy%,but%
7190sqx%=(mox%-128)>>8
7200IFsqx%>3:sqx%=3
7210IFsqx%<0:sqx%=0
7220sqy%=(1024-moy%)>>6
7230IFsqy%>15:sqy%=15
7240inx%=sqy%+sqx%*g%
7250IFinx%>63:inx%=63
7260IFinx%<>lst% THEN
7270WAIT
7280PROCsmall(lst%,11)
7290PROCsmall(inx%,15)
7300lst%=inx%
7310ENDIF
7320IFINKEY-113 k%=TRUE ELSEk%=FALSE
7330UNTIL but%>0 OR k%
7340a$=filename$(lst%)
7350ENDPROC
7360DEFPROCcurrent
7370VDU 5
7380GCOL 0,8
7390RECTANGLEFILL 384,16,480,64
7400GCOL 0,0
7410RECTANGLE 384,16,480,64
7420GCOL 0,14
7430MOVE 400,60
7440IFfrn% PRINT"Joueur actuel : "; ELSEPRINT"Current player : ";
7450GCOL 0,0
7460a$=FNstrip(attend$)
7470IFfrn% THEN
7480IFa$="" PRINT"Vide" ELSEPRINTa$
7490ELSE
7500IFa$="" PRINT"Empty" ELSEPRINTa$
7510ENDIF
7520VDU 4
7530OFF
7540ENDPROC
7550DEFPROCaccess
7560IFNOTINKEY-2 OR NOTINKEY-31:ENDPROC
7570MOUSE OFF
7580VDU 7
7590SYS"ABC_Colour",15
7600tru%=TRUE
7610IFfrn% PROCforeignaccess ELSEPROCenglishaccess
7620IFesc% OR NOTtru%:ENDPROC
7630PROCconfilesave
7640PROCback
7650ENDPROC
7660DEFPROCforeignaccess
7670PROCmess("ENTRER L'ANCIEN NUMERO DE CODE D'ACCES",8)
7680PROCinvis
7690IFesc%:PROCback:ENDPROC
7700J%=FNvalidatenumber(i$)
7710IFNOTJ%:PROCwrong("CHIFFRES UNIQUEMENT"):tru%=FALSE:ENDPROC
7720IFcod%<>VAL(i$):PROCwrong("FAUX CODE D'ACCES"):tru%=FALSE:ENDPROC
7730PROCmess("INTRODUIRE LE NOUVEAU NUMERO DE CODE D'ACCES",8)
7740PROCinvis
7750IFesc%:PROCback:ENDPROC
7760J%=FNvalidatenumber(i$)
7770IFNOTJ%:PROCwrong("CHIFFRES UNIQUEMENT"):tru%=FALSE:ENDPROC
7780first%=VAL(i$)
7790PROCmess("ENTRER DE NOUVEAU POUR CONFIRMATION",8)
7800PROCinvis
7810IFesc%:PROCback:ENDPROC
7820J%=FNvalidatenumber(i$)
7830IFNOTJ%:PROCwrong("CHIFFRES UNIQUEMENT"):tru%=FALSE:ENDPROC
7840second%=VAL(i$)
7850IFfirst%<>second%:PROCwrong("CHIFFRES DIFFERENTS - RECOMMENCER"):tru%=FALSE:ENDPROC
7860cod%=VALi$
7870PROCmess("LE NUMERO DE CODE D'ACCES ACCEPTE",8)
7880ENDPROC
7890DEFPROCenglishaccess
7900PROCmess("ENTER OLD ACCESS CODE NUMBER",8)
7910PROCinvis
7920IFesc%:PROCback:ENDPROC
7930J%=FNvalidatenumber(i$)
7940IFNOTJ%:PROCwrong("NUMBERS ONLY PLEASE"):tru%=FALSE:ENDPROC
7950IFcod%<>VAL(i$):PROCwrong("INVALID ACCESS CODE"):tru%=FALSE:ENDPROC
7960PROCmess("ENTER NEW ACCESS CODE NUMBER",8)
7970PROCinvis
7980IFesc%:PROCback:ENDPROC
7990J%=FNvalidatenumber(i$)
8000IFNOTJ%:PROCwrong("NUMBERS ONLY PLEASE"):tru%=FALSE:ENDPROC
8010first%=VAL(i$)
8020PROCmess("ENTER AGAIN TO CONFIRM",8)
8030PROCinvis
8040IFesc%:PROCback:ENDPROC
8050J%=FNvalidatenumber(i$)
8060IFNOTJ%:PROCwrong("NUMBERS ONLY PLEASE"):tru%=FALSE:ENDPROC
8070second%=VAL(i$)
8080IFfirst%<>second%:PROCwrong("DIFFERENT NUMBERS - TRY AGAIN"):tru%=FALSE:ENDPROC
8090cod%=VALi$
8100PROCmess("NEW ACCESS CODE NUMBER ACCEPTED",8)
8110ENDPROC
8120DEFPROCback
8130IFsun%<11 sun%=11 ELSEsun%=0
8140PROCmenu
8150PROCmouse1
8160ENDPROC
8170DEFPROCwrong(a$)
8180VDU 7
8190PROCmess(a$,11)
8200PROCdelay(150)
8210PROCback
8220ENDPROC
8230DEFFNvalidatenumber(a$)
8240IFa$="":=FALSE
8250K%=TRUE
8260FORJ%=1TO LEN(a$)
8270IFMID$(a$,J%,1)<"0" OR MID$(a$,J%,1)>"9":K%=FALSE
8280NEXT
8290=K%
8300DEFPROCinvis
8310*FX21 0
8320esc%=FALSE
8330cnt%=0
8340i$=""
8350REPEAT
8360REPEAT
8370REPEAT
8380k%=INKEY(1)
8390UNTIL k%>0 AND k%<128
8400IFk%=127 AND cnt%>0 THEN
8410cnt%-=1
8420i$=LEFT$(i$,cnt%)
8430PROCmess(">"+STRING$(LEN(i$),"*")+"<",10)
8440ENDIF
8450UNTIL k%<>127
8460IFk%<>13 AND cnt%<>4 THEN
8470i$+=CHR$k%
8480PROCmess(">"+STRING$(LEN(i$),"*")+"<",10)
8490cnt%+=1
8500ENDIF
8510UNTIL k%=13 OR cnt%=4
8520ENDPROC
8530DEFPROClegal
8540IFcod%=0:bad%=FALSE:esc%=FALSE:ENDPROC
8550MOUSE OFF
8560SYS"ABC_Colour",15
8570IFfrn% PROCmess("ENTRER NUMERO DE CODE D'ACCES",11) ELSEPROCmess("ENTER ACCESS CODE NUMBER",11)
8580PROCfrput
8590IFcod%=VAL(i$) THEN
8600IFfrn% PROCmess("LE NUMERO DE CODE D'ACCES ACCEPTE",8) ELSEPROCmess("ACCESS CODE NUMBER ACCEPTED",8)
8610PROCdelay(100)
8620bad%=FALSE
8630ELSE
8640bad%=TRUE
8650ENDIF
8660PROCmouse1
8670ENDPROC
8680DEFPROCfrput
8690*FX21 0
8700esc%=FALSE
8710cnt%=0
8720tot%=4
8730i$=""
8740REPEAT
8750REPEAT
8760REPEAT
8770k%=INKEY(1)
8780UNTIL k%=13 OR k%>31 AND k%<128
8790IFk%=127 AND cnt%>0 THEN
8800cnt%-=1
8810i$=LEFT$(i$,cnt%)
8820PROCmess(">"+STRING$(LEN(i$),"*")+"<",8)
8830ENDIF
8840UNTIL k%<>127
8850IFk%<>13 AND cnt%<>tot% THEN
8860IFcnt%=0 THEN
8870IFCHR$(k%)>="a" AND CHR$(k%)<="z" i$=CHR$(k%-32) ELSEi$=CHR$(k%)
8880ELSE
8890IFCHR$(k%)>="A" AND CHR$(k%)<="Z" i$+=CHR$(k%+32) ELSEi$+=CHR$(k%)
8900ENDIF
8910PROCmess(">"+STRING$(LEN(i$),"*")+"<",8)
8920cnt%+=1
8930ENDIF
8940UNTIL k%=13 OR cnt%=tot%
8950ENDPROC
8960DEFPROCpoint(a$,mos%)
8970LOCAL wir%,par%,dat%
8980DIM wir% 1088,par% 20,dat% 256
8990h%=OPENIN(f$+a$)
9000FORJ%=0TO32
9010FORK%=0TO32
9020wir%?(K%*32+J%)=BGET#h%
9030NEXT
9040NEXT
9050CLOSE#h%
9060!par%=&20080200
9070par%?1=mos%
9080par%!4=0
9090par%!6=dat%
9100mmo%=dat%
9110FORJ%=32TO1STEPTRUE
9120FORK%=0TO7
9130FORL%=3TO0STEPTRUE
9140val%=wir%?(J%*32+K%*4+L%)
9150IFval%=&FF:par%?4=K%*4+L%:par%?5=31-J%:val%=0
9160?mmo%=?mmo%<<2
9170?mmo%+=val%
9180NEXT
9190mmo%+=1
9200NEXT
9210NEXT
9220SYS"OS_Word",21,par%
9230ENDPROC
9240DEFPROCdesktop
9250MOUSE OFF
9260SYS"ABC_Blank",11
9270PROCexitmessage
9280PROCmess("Return to Desktop?",8)
9290SYS"ABC_Palette"
9300PROCmouse1
9310k%=FNyesnodesk
9320SYS"ABC_Colour",15
9330sun%=10
9340IFNOTk%:ENDPROC
9350*FX20
9360*CHANNELVOICE 1 WaveSynth-Beep
9370*CHANNELVOICE 2 WaveSynth-Beep
9380*CHANNELVOICE 3 WaveSynth-Beep
9390*CHANNELVOICE 4 WaveSynth-Beep
9400*WIPE ram:* ~C~V
9410*RMKILL ABC
9420*RMKILL Synsmajs
9430*RMKILL Timer
9440*RMKILL 10/10SoundGenerator
9450*POINTER 1
9460*SPEAKER ON
9470VDU 20
9480*DESKTOP
9490DEFPROCwings(l$,x%,y%)
9500SYS"ABC_UnpackSprite","wings",j%,x%,y%
9510VDU 5
9520GCOL 0,11
9530MOVE (x%*2+298)-LEN(l$)*8,y%*4-40
9540PRINTl$
9550VDU 4
9560OFF
9570ENDPROC
9580DEFPROCselect
9590IFNOTFNarea(80,18,336,840) AND NOTFNarea(912,18,1168,840) THEN
9600pre%=-1
9610sly%=-1
9620PROCrectangles
9630ELSE
9640sly%=(moy%-18)DIV280
9650IFFNarea(912,18,1168,840):sly%+=3
9660IFsly%<>pre% THEN
9670PROCrectangles
9680pre%=sly%
9690GCOL 0,11
9700WAIT
9710IFsly%<3 RECTANGLE 80,sly%*280+16,256,256 ELSERECTANGLE 912,(sly%-3)*280+16,256,256
9720ENDIF
9730ENDIF
9740IFbut%=0:ENDPROC
9750CASE sly% OF
9760WHEN 0:PROCrun("WordSearch")
9770WHEN 1:PROCrun("Tower")
9780WHEN 2:PROCrun("TheCop")
9790WHEN 3:PROCrun("Stones")
9800WHEN 4:PROCrun("Rescue")
9810WHEN 5:PROCrun("LinkUp")
9820ENDCASE
9830PROCzeromouse
9840IFsly%>-1:PROCmenu
9850PROCmouse1
9860ENDPROC
9870DEFPROCcontents
9880VDU 5
9890FORJ%=1TO3
9900SYS"ABC_UnpackSprite","intro"+STR$(J%),j%,48,274-J%*70
9910SYS"ABC_UnpackSprite","intro"+STR$(J%+3),j%,464,274-J%*70
9920NEXT
9930IFfrn% RESTORE 10110 ELSERESTORE 10100
9940FORJ%=1TO3
9950READ a$,b$
9960GCOL 0,7
9970MOVE 96,J%*280-232
9980PRINTa$
9990MOVE 928,J%*280-232
10000PRINTb$
10010GCOL 0,0
10020MOVE 102,J%*280-228
10030PRINTa$
10040MOVE 934,J%*280-228
10050PRINTb$
10060NEXT
10070VDU 4
10080OFF
10090ENDPROC
10100DATA Word Search,Stones,Tower,Rescue,The Cop,Link Up
10110DATA Le Puzzle,La Bonne Route,La Tour,"La Fus�e",Le Flic,Le Jumelage
10120DEFPROCrectangles
10130GCOL 0,0
10140FORJ%=1TO3
10150RECTANGLE 80,J%*280-264,256,256
10160RECTANGLE 912,J%*280-264,256,256
10170NEXT
10180ENDPROC
10190DEFPROCachievediscdump
10200IFNOTINKEY-2:ENDPROC
10210IFNOTINKEY-82:ENDPROC
10220VDU 7
10230MOUSE OFF
10240LOCAL ERROR
10250SYS"ABC_Transfer",0,16,640,17
10260PROCinput(32,"adfs::0.$.AchieveSpr",FALSE,TRUE)
10270SYS"ABC_Restore"
10280IFesc% OR i$="":ENDPROC
10290VDU 24,0;112;1278;1008;
10300SYS"Hourglass_On"
10310OSCLI"SCREENSAVE "+i$
10320VDU 26
10330SYS"Hourglass_Smash"
10340ON ERROR LOCAL:PROCmistake
10350*DIR <Disc1$Dir>.SixGames
10360SYS"ABC_Restore"
10370MOUSE TO 640,512
10380PROCmouse1
10390ENDPROC
10400DEFPROCmistake
10410VDU 7
10420PROCmess("PLEASE INSERT DISC 2 INTO DRIVE AND PRESS RETURN",8)
10430REPEAT
10440UNTIL INKEY-74
10450ENDPROC
10460DEFPROCachieveprintdump
10470IFNOTINKEY-2:ENDPROC
10480IFNOTINKEY-56:ENDPROC
10490VDU 7
10500SYS"Hourglass_On"
10510RESTORE 1880
10520new%()=att%()
10530PROCprintpage(attend$)
10540PROCflush
10550SYS"Hourglass_Smash"
10560PROCmouse1
10570ENDPROC
10580DEFPROCallachieveprintdump
10590IFNOTINKEY-2:ENDPROC
10600IFNOTINKEY-102:ENDPROC
10610VDU 7
10620SYS"Hourglass_On"
10630PROCdisplaydirectory
10640PROCflush
10650SYS"Hourglass_Smash"
10660PROCmouse1
10670MOUSE RECTANGLE 0,0,1280,1024
10680files%()=FALSE
10690lst%=0
10700REPEAT
10710MOUSE mox%,moy%,but%
10720sqx%=(mox%-128)>>8
10730IFsqx%>3:sqx%=3
10740IFsqx%<0:sqx%=0
10750sqy%=(1024-moy%)>>6
10760IFsqy%>15:sqy%=15
10770inx%=sqy%+sqx%*g%
10780IFinx%>63:inx%=63
10790IFinx%<>lst% THEN
10800IFfiles%(lst%) PROCsmall(lst%,14) ELSEPROCsmall(lst%,11)
10810IFfiles%(inx%) PROCsmall(inx%,14) ELSEPROCsmall(inx%,15)
10820lst%=inx%
10830ENDIF
10840IFbut%=1 AND filename$(lst%)>"" THEN
10850files%(lst%)=NOTfiles%(lst%)
10860IFfiles%(lst%) PROCsmall(lst%,14) ELSEPROCsmall(lst%,11)
10870PROCzeromouse
10880ENDIF
10890IFINKEY-113 k%=TRUE ELSEk%=FALSE
10900UNTIL but%=4 OR k%
10910a$=filename$(lst%)
10920IFNOTk% THEN
10930SYS"Hourglass_On"
10940SYS"ABC_Colour",15
10950X%=0
10960esc%=FALSE
10970WHILE X%<64 AND NOTesc%
10980IFfiles%(X%) THEN
10990h%=OPENIN("<Disc1$Dir>.SixGames.Achieve.Achieve"+STR$(cla%)+"."+filename$(X%))
11000FORL%=0TO4
11010FORK%=1TO6
11020FORJ%=1TO6
11030INPUT#h%,new%(J%,K%,L%)
11040NEXT
11050NEXT
11060NEXT
11070CLOSE#h%
11080PROCprintpage(filename$(X%))
11090ENDIF
11100X%+=1
11110ENDWHILE
11120SYS"Hourglass_Smash"
11130ENDIF
11140MOUSE RECTANGLE 128,116,1150,764
11150PROCachievecard
11160PROCzeromouse
11170ENDPROC
11180DEFPROCprintpage(name$)
11190LOCAL ERROR
11200ON ERROR LOCAL:VDU 6,3,7:esc%=TRUE:ENDPROC
11210VDU 2,21
11220PROCheader
11230a$=FNstrip(name$)
11240IFa$="":a$="Empty"
11250IFfrn% THEN
11260PROCprinter("Les r�sultats de "+a$)
11270PROCprinter("qui joue aux Jeux Dix sur Dix Fran�ais")
11280ELSE
11290PROCprinter("The achievements of "+a$)
11300PROCprinter("playing the 10 out of 10 French games")
11310ENDIF
11320PROCprinter("")
11330PROCprinter(FNdate)
11340PROCprinter("")
11350IFfrn% THEN
11360IFver% THEN
11370PROCprinter("Cat�gories Trait�"+STRING$(51," ")+"R�sultant")
11380ELSE
11390PROCprinter("Niveaux Trait�"+STRING$(52," ")+"R�sultant")
11400ENDIF
11410PROCprinter("")
11420PROCprinter("LE FLIC")
11430PROCgamedetails(1)
11440PROCprinter("LA TOUR")
11450PROCgamedetails(2)
11460PROCprinter("LE PUZZLE")
11470PROCgamedetails(3)
11480PROCprinter("LE JUMELAGE")
11490PROCgamedetails(4)
11500PROCprinter("LA FUSEE")
11510PROCgamedetails(5)
11520PROCprinter("LA BONNE ROUTE")
11530PROCgamedetails(6)
11540PROCprinter("LEGENDE DES COULEURS DE REUSSITE:")
11550PROCprinter("")
11560PROCprinter("BLEU = 100% (10 fois VERT)")
11570PROCprinter("VERT = 100% (10 sur 10!)")
11580PROCprinter("JAUNE = 50% ou plus")
11590PROCprinter("ROUGE = Moins de 50%")
11600PROCprinter("- = signifie que la cat�gorie n'a pas �t� trait�e")
11610ELSE
11620PROCprinter(typ$+" Covering"+STRING$(50," ")+"Achievement")
11630PROCprinter("")
11640PROCprinter("THE COP")
11650PROCgamedetails(1)
11660PROCprinter("TOWER")
11670PROCgamedetails(2)
11680PROCprinter("WORD SEARCH")
11690PROCgamedetails(3)
11700PROCprinter("LINK UP")
11710PROCgamedetails(4)
11720PROCprinter("RESCUE")
11730PROCgamedetails(5)
11740PROCprinter("STONES")
11750PROCgamedetails(6)
11760PROCprinter("KEY TO ACHIEVEMENT COLOURS:")
11770PROCprinter("")
11780PROCprinter("BLUE = 100% (10 times GREEN)")
11790PROCprinter("GREEN = 100% (10 out of 10!)")
11800PROCprinter("YELLOW = 50% or over")
11810PROCprinter("RED = Under 50%")
11820PROCprinter("- = means the grade has not been tried")
11830ENDIF
11840WHILE pnt%<pap%
11850PRINT
11860pnt%+=1
11870ENDWHILE
11880PROCfooter
11890VDU 6,3
11900ENDPROC
11910DEFPROCgamedetails(num%)
11920FORJ%=1TO6
11930b$=info$(num%,J%)
11940IFnig% a$=b$ ELSEa$=MID$(b$,INSTR(b$," ")+1)
11950a$=STR$(J%)+" "+a$
11960a$+=STRING$(68-LEN(a$)," ")
11970IFfrn% THEN
11980CASE new%(num%,J%,0) OF
11990WHEN 0:a$+="-"
12000WHEN 1:a$+="ROUGE"
12010WHEN 2:a$+="JAUNE"
12020WHEN 3,4,5,6,7,8,9,10,11:a$+="VERT"
12030OTHERWISE:a$+="BLEU"
12040ENDCASE
12050ELSE
12060CASE new%(num%,J%,0) OF
12070WHEN 0:a$+="-"
12080WHEN 1:a$+="RED"
12090WHEN 2:a$+="YELLOW"
12100WHEN 3,4,5,6,7,8,9,10,11:a$+="GREEN"
12110OTHERWISE:a$+="BLUE"
12120ENDCASE
12130ENDIF
12140PROCprinter(a$)
12150NEXT
12160PROCprinter("")
12170ENDPROC
12180DEFPROCheader
12190pnt%=0
12200IFhed%=0:ENDPROC
12210FORW%=1TO hed%
12220PRINT
12230NEXT
12240ENDPROC
12250DEFPROCfooter
12260IFfut%=0:ENDPROC
12270FORW%=1TO fut%
12280PRINT
12290NEXT
12300ENDPROC
12310DEFPROCprinter(j$)
12320PRINTj$
12330pnt%+=1
12340IFpnt%=pap% THEN
12350PROCfooter
12360PROCheader
12370ENDIF
12380ENDPROC
12390DEFFNdate
12400IFfrn% RESTORE 12500 ELSERESTORE 12480
12410fnd%=FALSE
12420WHILE NOTfnd%
12430READ p$,n$
12440IFINSTR(TIME$,p$):fnd%=TRUE
12450ENDWHILE
12460z$="Date: "
12470=z$+MID$(TIME$,5,3)+n$+MID$(TIME$,11,5)
12480DATA Jan,January,Feb,February,Mar,March,Apr,April,May,May,Jun,June,Jul
12490DATA July,Aug,August,Sep,September,Oct,October,Nov,November,Dec,December
12500DATA Jan,Janvier,Feb,"F�vrier",Mar,Mars,Apr,Avril,May,Mai,Jun,Juin,Jul
12510DATA Juillet,Aug,"Ao�t",Sep,Septembre,Oct,Octobre,Nov,Novembre,Dec,"D�cembre"
12520DEFPROCflush
12530*FX21 9
12540ENDPROC
12550DEFFNstrip(str$)
12560WHILE INSTR(str$,"_")>0
12570MID$(str$,INSTR(str$,"_"))=" "
12580ENDWHILE
12590=str$
12600DEFPROCinput(tot%,x$,cap%,fil%)
12610*FX21 0
12620esc%=FALSE
12630cnt%=LEN(x$)
12640i$=x$
12650IFfil% AND NOTfrn%:y$="filename: >" ELSEy$=">"
12660IFfil% AND frn%:y$="titre du dossier: >" ELSEy$=">"
12670PROCmess(y$+i$+"<",8)
12680REPEAT
12690REPEAT
12700REPEAT
12710k%=INKEY(1)
12720UNTIL k%=13 OR k%>31 AND k%<128
12730IFk%=127 AND cnt%>0 THEN
12740cnt%-=1
12750i$=LEFT$(i$,cnt%)
12760PROCmess(y$+i$+"<",8)
12770ENDIF
12780UNTIL k%<>127
12790IFk%<>13 AND cnt%<>tot% THEN
12800IFcap% THEN
12810IFcnt%=0 THEN
12820IFCHR$(k%)>="a" AND CHR$(k%)<="z" i$=CHR$(k%-32) ELSEi$=CHR$(k%)
12830ELSE
12840IFCHR$(k%)>="A" AND CHR$(k%)<="Z" i$+=CHR$(k%+32) ELSEi$+=CHR$(k%)
12850ENDIF
12860ELSE
12870i$+=CHR$(k%)
12880ENDIF
12890PROCmess(y$+i$+"<",8)
12900cnt%+=1
12910ENDIF
12920IFk%<>13 AND cnt%=tot%:VDU7
12930UNTIL k%=13
12940ENDPROC
12950DEFPROCexitmessage
12960SYS"ABC_Colour",11
12970RESTORE 13070
12980READ a$
12990Y%=240
13000WHILE a$<>"end"
13010SYS"ABC_PryntString",a$,34,Y%,1,7
13020SYS"ABC_PryntString",a$,32,Y%+1,1,0
13030IFa$>"" Y%-=18 ELSEY%-=12
13040READ a$
13050ENDWHILE
13060ENDPROC
13070DATA Also available or coming soon
13080DATA "for Acorn 32-bit, IBM PC/compatibles"
13090DATA and Commodore Amiga ...
13100DATA
13110DATA English French
13120DATA German Dinosaurs
13130DATA Astronomy Maths (Statistics)
13140DATA Maths (Number) Maths (Algebra)
13150DATA Early Essentials Junior Essentials
13160DATA
13170DATA Contact your dealer or
13180DATA ring (0742) 780370 for details
13190DATA end
13200DEFFNinitialcompressed(s$)
13210h%=OPENIN(f$+s$)
13220len%=EXT#h%
13230CLOSE#h%
13240DIM z% len%
13250OSCLI"LOAD "+f$+s$+" "+STR$~(z%)
13260=z%
13270DEFPROCconfigure
13280IFNOTINKEY-2 OR NOTINKEY-1 OR NOTINKEY-83:ENDPROC
13290MOUSE OFF
13300SYS"ABC_Blank",3
13310SYS"ABC_Colour",3
13320PROCvaliddirectories
13330SYS"ABC_UnpackSprite","bar",j%,180,242
13340SYS"ABC_UnpackSprite","exit",j%,454,18
13350COLOUR 11
13360COLOUR 130
13370PRINTTAB(25,2)"10 out of 10 CUSTOMISATION"
13380COLOUR 7
13390old%=cla%
13400RESTORE 15340
13410READ a$,K%
13420J%=0
13430WHILE a$<>"end"
13440SYS"ABC_UnpackSprite","bar",j%,180,226-J%*16
13450PRINTTAB(25,J%*2+4)a$
13460IFK%=-1 THEN
13470SYS"ABC_UnpackSprite","arup",j%,482,226-J%*16
13480SYS"ABC_UnpackSprite","ardn",j%,510,226-J%*16
13490ENDIF
13500IFK%=-2 SYS"ABC_UnpackSprite","default",j%,454,226-J%*16 ELSEPROCbuttonstatus(J%,226-J%*16)
13510J%+=1
13520READ a$,K%
13530ENDWHILE
13540SYS"ABC_Palette"
13550MOUSE RECTANGLE 904,32,160,874
13560PROCmouse1
13570end%=FALSE
13580WHILE NOTend%
13590REPEAT
13600MOUSE mox%,moy%,but%
13610UNTIL but%>0
13620IFbut%=4 AND POINT(mox%,moy%)<>3:PROCaction
13630ENDWHILE
13640PROCsavenewconfigure
13650IFold%<>cla%:PROCsetempty
13660IFsun%<11 sun%=11 ELSEsun%=0
13670PROCmenu
13680ENDPROC
13690DEFPROCaction
13700noy%=(906-moy%)>>6
13710nox%=(mox%-906)DIV56
13720CASE noy% OF
13730WHEN 0
13740frn%=NOTfrn%
13750PROCbuttonstatus(noy%,226-noy%*16)
13760VDU 7
13770WHEN 1
13780rat%=NOTrat%
13790PROCbuttonstatus(noy%,226-noy%*16)
13800VDU 7
13810WHEN 2
13820IFver% THEN
13830nig%=NOTnig%
13840PROCbuttonstatus(noy%,226-noy%*16)
13850VDU 7
13860ENDIF
13870WHEN 3
13880sds%=NOTsds%
13890PROCbuttonstatus(noy%,226-noy%*16)
13900IFsds% OSCLI"SPEAKER ON" ELSEOSCLI"SPEAKER OFF"
13910VDU 7
13920WHEN 4
13930IFver% THEN
13940ver%=FALSE
13950nig%=FALSE
13960PROCbuttonstatus(noy%-2,226-noy%*16+32)
13970PROCbuttonstatus(noy%,226-noy%*16)
13980PROCbuttonstatus(noy%+1,226-noy%*16-16)
13990VDU 7
14000ENDIF
14010WHEN 5
14020IFNOTver% THEN
14030ver%=TRUE
14040nig%=TRUE
14050PROCbuttonstatus(noy%-3,226-noy%*16+48)
14060PROCbuttonstatus(noy%,226-noy%*16)
14070PROCbuttonstatus(noy%-1,226-noy%*16+16)
14080VDU 7
14090ENDIF
14100WHEN 6
14110IFnox%=1 THEN
14120grd%+=1
14130IFgrd%=7:grd%=1
14140PROCbuttonstatus(noy%,226-noy%*16)
14150VDU 7
14160ENDIF
14170IFnox%=2 THEN
14180grd%-=1
14190IFgrd%=0:grd%=6
14200PROCbuttonstatus(noy%,226-noy%*16)
14210VDU 7
14220ENDIF
14230WHEN 7
14240IFnox%=1 THEN
14250cla%+=1
14260IFcla%=65:cla%=1
14270PROCbuttonstatus(noy%,226-noy%*16)
14280VDU 7
14290ENDIF
14300IFnox%=2 THEN
14310cla%-=1
14320IFcla%=0:cla%=64
14330PROCbuttonstatus(noy%,226-noy%*16)
14340VDU 7
14350ENDIF
14360WHEN 8
14370IFnox%=1 THEN
14380hed%+=1
14390IFhed%=8:hed%=0
14400PROCbuttonstatus(noy%,226-noy%*16)
14410VDU 7
14420ENDIF
14430IFnox%=2 THEN
14440hed%-=1
14450IFhed%<0:hed%=7
14460PROCbuttonstatus(noy%,226-noy%*16)
14470VDU 7
14480ENDIF
14490WHEN 9
14500IFnox%=1 THEN
14510fut%+=1
14520IFfut%=8:fut%=0
14530PROCbuttonstatus(noy%,226-noy%*16)
14540VDU 7
14550ENDIF
14560IFnox%=2 THEN
14570fut%-=1
14580IFfut%<0:fut%=7
14590PROCbuttonstatus(noy%,226-noy%*16)
14600VDU 7
14610ENDIF
14620WHEN 10
14630IFnox%=1 THEN
14640pap%+=1
14650IFpap%=81:pap%=16
14660PROCbuttonstatus(noy%,226-noy%*16)
14670VDU 7
14680ENDIF
14690IFnox%=2 THEN
14700pap%-=1
14710IFpap%=15:pap%=80
14720PROCbuttonstatus(noy%,226-noy%*16)
14730VDU 7
14740ENDIF
14750WHEN 11
14760pix%+=1
14770IFpix%=4:pix%=0
14780PROCbuttonstatus(noy%,226-noy%*16)
14790VDU 7
14800WHEN 12
14810SYS"ABC_Blank",3
14820*SPEAKER ON
14830VDU 7
14840rat%=FALSE
14850nig%=TRUE
14860sds%=TRUE
14870ver%=TRUE
14880grd%=1
14890cla%=1
14900hed%=1
14910fut%=1
14920pap%=64
14930pix%=0
14940frn%=FALSE
14950FORJ%=0TO11
14960PROCbuttonstatus(J%,226-J%*16)
14970NEXT
14980SYS"ABC_Palette"
14990WHEN 13:end%=TRUE
15000ENDCASE
15010PROCzeromouse
15020ENDPROC
15030DEFPROCsavenewconfigure
15040MOUSE OFF
15050SYS"ABC_Blank",3
15060SYS"ABC_Colour",3
15070IFNOTdirectory%(cla%):PROCcreatedirectory
15080OSCLI"DIR <Disc1$Dir>.SixGames.Achieve.Achieve"+STR$(cla%)
15090IFver% typ$="Grade" ELSEtyp$="Level"
15100PROCconfilesave
15110*DIR <Disc1$Dir>.SixGames
15120ENDPROC
15130DEFPROCbuttonstatus(num%,ysc%)
15140yyy%=ysc%-2
15150WAIT
15160IFnum%=4 OR num%=5 SYS"ABC_UnpackSprite","radiooff",j%,454,ysc% ELSESYS"ABC_UnpackSprite","optoff",j%,454,ysc%
15170CASE num% OF
15180WHEN 0:IFfrn%:SYS"ABC_UnpackSprite","opton",j%,454,ysc%
15190WHEN 1:IFrat%:SYS"ABC_UnpackSprite","opton",j%,454,ysc%
15200WHEN 2:IFnig%:SYS"ABC_UnpackSprite","opton",j%,454,ysc%
15210WHEN 3:IFsds%:SYS"ABC_UnpackSprite","opton",j%,454,ysc%
15220WHEN 4:IFNOTver%:SYS"ABC_UnpackSprite","radioon",j%,454,ysc%
15230WHEN 5:IFver%:SYS"ABC_UnpackSprite","radioon",j%,454,ysc%
15240WHEN 6:SYS"ABC_PryntString",STR$(grd%),462,yyy%,0,9
15250WHEN 7
15260IFdirectory%(cla%) cul%=13 ELSEcul%=11
15270IFcla%>9 SYS"ABC_PryntString",STR$(cla%),458,yyy%,0,cul% ELSESYS"ABC_PryntString",STR$(cla%),462,yyy%,0,cul%
15280WHEN 8:SYS"ABC_PryntString",STR$(hed%),462,yyy%,0,11
15290WHEN 9:SYS"ABC_PryntString",STR$(fut%),462,yyy%,0,11
15300WHEN 10:SYS"ABC_PryntString",STR$(pap%),458,yyy%,0,11
15310WHEN 11:IFpix%=0 SYS"ABC_PryntString","A",462,yyy%,0,11 ELSESYS"ABC_PryntString",STR$(pix%),462,yyy%,0,6
15320ENDCASE
15330ENDPROC
15340DATA French Environment,0,Ratings suppressed,0
15350DATA National curriculum numbers,0,Sound,0
15360DATA Level,0,Grade,0,Overall skill,-1,Class number,-1,Top space,-1
15370DATA Bottom space,-1,Paper length,-1,Graphics selection,0,Default,-2
15380DATA end,0
15390DEFPROCvaliddirectories
15400OSCLI"DIR <Disc1$Dir>.SixGames.Achieve"
15410SYS"OS_GBPB",8,,cat%,&40,0 TO ,,,d%
15420*DIR <Disc1$Dir>.SixGames
15430c%=0
15440d%=64-d%
15450st%=cat%
15460directory%()=FALSE
15470WHILE c%<d%
15480t%=st%?((?st%)+1)
15490st%?((?st%)+1)=&D
15500a$=$(st%+1)
15510st%+=1+(?st%)
15520?st%=t%
15530directory%(VAL(MID$(a$,8)))=TRUE
15540c%+=1
15550ENDWHILE
15560ENDPROC
15570DEFPROCcreatedirectory
15580OSCLI"CDIR <Disc1$Dir>.SixGames.Achieve.Achieve"+STR$(cla%)
15590PROCsetempty
15600ENDPROC
15610DEFPROCsetempty
15620attend$=""
15630PROCconfilesave
15640att%()=0
15650ENDPROC
15660DEFFNleave
15670MOUSE mox%,moy%,but%
15680IFINKEY-113 OR INKEY-99 OR INKEY-74 OR but%>0 ELSE=FALSE
15690REPEAT
15700MOUSE mox%,moy%,but%
15710UNTIL NOTINKEY-113 AND NOTINKEY-99 AND NOTINKEY-74 AND but%=0
15720*FX21 9
15730=TRUE
15740DEFPROCnewcard(t$,sdx%,sdy%)
15750VDU 5
15760GCOL 0,5
15770RECTANGLEFILL 0,112,128,sdy%*64-64
15780RECTANGLEFILL 128,112+sdy%*64-64,sdx%*192-192,64
15790GCOL 0,8
15800RECTANGLEFILL 0,112+sdy%*64-64,128,64
15810GCOL 0,0
15820IFsdx%*160+160>1279 sxe%=1278 ELSEsxe%=sdx%*160+160
15830RECTANGLE 0,112,sxe%,sdy%*64
15840GCOL 0,13
15850MOVE 64,112+sdy%*64+64
15860PLOT 0,LEN(t$)*g%,0
15870PLOT 85,0,112+sdy%*64
15880PLOT 81,128+LEN(t$)*g%,0
15890GCOL 0,0
15900MOVE 0,112+sdy%*64
15910PLOT 1,64,64
15920PLOT 1,LEN(t$)*g%,0
15930PLOT 1,64,-64
15940PLOT 1,-LEN(t$)*g%-128,0
15950MOVE 64,112+sdy%*64+44
15960PRINTt$
15970FORJ%=0TO sdx%-1
15980MOVE J%*192+128,112
15990PLOT 1,0,sdy%*64
16000NEXT
16010FORJ%=0TO sdy%-1 STEP2
16020MOVE 0,112+J%*64
16030PLOT 1,sdx%*192+192,0
16040NEXT
16050VDU 4
16060OFF
16070ENDPROC
16080DEFPROCfillachieve
16090VDU 5
16100IFfrn% RESTORE 16620 ELSERESTORE 16610
16110FORK%=0TO5
16120READ t$
16130MOVE (K%*192+224)-LEN(t$)*8,924
16140PRINTt$
16150NEXT
16160FORK%=1TO6
16170SYS"ABC_UnpackSprite",STR$(K%),j%,24,244-K%*32
16180FORJ%=1TO6
16190fax%=J%*192-62
16200fay%=884-K%*128
16210PROCcolour(att%(J%,K%,0))
16220IFJ%=6 RECTANGLEFILL fax%,fay%,186,120 ELSERECTANGLEFILL fax%,fay%,188,120
16230IFnig% THEN
16240a$="LoA "+ncl$(K%)
16250xsc%=fax%+96-LEN(a$)*8
16260GCOL 0,7
16270MOVE xsc%,fay%+92
16280PRINTa$
16290GCOL 0,0
16300MOVE xsc%,fay%+96
16310PRINTa$
16320ENDIF
16330IFatt%(J%,K%,0)<3 THEN
16340xsc%=fax%+40
16350FORL%=1TO4
16360PROCcolour(att%(J%,K%,L%))
16370RECTANGLEFILL xsc%-6,fay%+8,30,40
16380GCOL 0,7
16390MOVE xsc%,fay%+36
16400PRINTCHR$(96+L%)
16410GCOL 0,0
16420MOVE xsc%,fay%+40
16430PRINTCHR$(96+L%)
16440xsc%+=32
16450NEXT
16460ENDIF
16470NEXT
16480NEXT
16490VDU 4
16500OFF
16510ENDPROC
16520DEFPROCcolour(val%)
16530CASE val% OF
16540WHEN 0:GCOL 0,7
16550WHEN 1:GCOL 0,11
16560WHEN 2:GCOL 0,14
16570WHEN 3,4,5,6,7,8,9,10,11:GCOL 0,10
16580OTHERWISE:GCOL 0,15
16590ENDCASE
16600ENDPROC
16610DATA The Cop,Tower,Word Search,Link Up,Rescue,Stones
16620DATA Le Flic,La Tour,Le Puzzle,Le Jumelage,"La Fus�e",Bonne Route
16630DEFPROCzeromouse
16640REPEAT
16650MOUSE mox%,moy%,but%
16660UNTIL but%=0
16670ENDPROC
16680DEFPROCerror
16690LOCAL ERROR
16700VDU 3,26,7
16710*CLOSE
16720SYS"Hourglass_Smash"
16730MOUSE OFF
16740SYS"ABC_Colour",15
16750SYS"ABC_Palette"
16760IFERR>&107FF AND ERR<&10900 THEN
16770PROCmess("FILING SYSTEM REPORTS ERROR : "+REPORT$,11)
16780PROCdelay(150)
16790VDU 7
16800PROCmess("PLEASE CHECK DISC IN DRIVE AND NOT WRITE PROTECTED THEN PRESS RETURN",11)
16810REPEAT
16820UNTIL INKEY-74
16830ENDIF
16840ON ERROR LOCAL GOTO 16700
16850PROCconfilesave
16860*DIR <Disc1$Dir>.SixGames
16870RESTORE ERROR
16880SYS"ABC_Colour",15
16890RUN
16900ENDPROC
16910DEFPROCassemble
16920DIM asm% 160
16930SYS"ABC_VideoAddress" TO vid%
16940FORA%=0TO2STEP2
16950P%=asm%
16960[OPTA%
16970.Carousel
16980MOV R0,#19:SWI "XOS_Byte":LDR R12,[R9]:LDR R0,[R12]:LDR R1,men:ADD R0,R1,R0:MOV R2,#&48
16990.rectangle
17000LDRB R1,[R0,#&1]:STRB R1,[R0]:LDRB R1,[R0,#&141]:STRB R1,[R0,#&140]
17010LDRB R1,[R0,#&281]:STRB R1,[R0,#&280]:LDRB R1,[R0,#&3C1]:STRB R1,[R0,#&3C0]
17020LDRB R1,[R0,#&501]:STRB R1,[R0,#&500]:LDRB R1,[R0,#&641]:STRB R1,[R0,#&640]
17030LDRB R1,[R0,#&781]:STRB R1,[R0,#&780]:LDRB R1,[R0,#&8C1]:STRB R1,[R0,#&8C0]
17040LDRB R1,[R0,#&A01]:STRB R1,[R0,#&A00]
17050ADD R0,R0,#&1:SUBS R2,R2,#&1:BNE rectangle:MOV R15,R14
17060.men EQUD vid%+&3624
17070]
17080NEXT
17090ENDPROC
17100DEFPROClongmenu
17110IFbox%<>omy% THEN
17120VDU 5
17130GCOL 0,8
17140WAIT
17150RECTANGLEFILL 400,112+omy%*64,288,32
17160IFomy%<6 GCOL 0,14 ELSEGCOL 0,0
17170MOVE 400,140+omy%*64
17180PRINTLEFT$(mnu$(11-omy%),17)
17190omy%=box%
17200VDU 4
17210OFF
17220inj%=72
17230txt%=LEN(mnu$(11-omy%))
17240d$=mnu$(11-omy%)
17250ENDIF
17260IFtxt%>17 THEN
17270par%=(11-box%)*&1400
17280CALL Carousel,par%
17290IFinj%MOD4=0:PROCmenuchar
17300inj%+=1
17310ENDIF
17320ENDPROC
17330DEFPROCmenuchar
17340IF(inj%>>2)>txt%+8:inj%=4
17350IF(inj%>>2)>txt%:ENDPROC
17360IFomy%<6 col%=14 ELSEcol%=0
17370SYS"ABC_PryntString",MID$(d$,inj%>>2,1),336,36+omy%*16,0,col%
17380ENDPROC
17390DEFPROCtidy
17400IFbox%=omy%:ENDPROC
17410VDU 5
17420GCOL 0,8
17430WAIT
17440RECTANGLEFILL 400,112+omy%*64,288,32
17450IFomy%<6 GCOL 0,14 ELSEGCOL 0,0
17460MOVE 400,140+omy%*64
17470PRINTLEFT$(mnu$(11-omy%),17)
17480omy%=box%
17490VDU 4
17500OFF
17510ENDPROC
17520DEFPROCtrap
17530MOUSEOFF
17540VDU26
17550*CLOSE
17560ENDPROC
� ><Disc1$Dir>.Menu
�:�=17 �trap:�T|@ ��error
��<>12:�12:�
(�initial
2
�assemble
< �menu
F�
P�mouseilluminate
Z�select
d�access
n�configure
x� �
�
��initial
�ș"ABC_VideoAddress"
�ș"Hourglass_On"
�ȗ ȓ 0,0,1280,1024
�J� att%(6,6,4),new%(6,6,4),info$(6,6),sub$(6,6,4),filename$(64),six$(6)
�:� ncl$(6),mnu$(11),directory%(64),files%(64),cat% &400
�h%=�("ram:FactFile")
��J%=1�6
��K%=1�6
��#h%,info$(J%,K%)
��
��
��#h%
@% =0
box%=0
g% =16
"pre%=-1
,
sun%=0
6 f$ ="<Disc1$Dir>.SixGames."
@&j% =�initialcompressed("Numbers")
J�loaddetails
T
� �TRB
^�J%=1�6
h�K%=1�6
r�L%=1�4
|� a$
�sub$(J%,K%,L%)=a$
��
��
��
��J%=1�6
�� a$
�ncl$(J%)=a$
��
�ș"Hourglass_Smash"
��point("Ten",1)
�Ƞ 4
�ȡ 1,"StringLib-Pluck"
�
�flush
�
7� fruit/veg,drinks and baker's,delicatessan,general
5� in grocer's,in grocer's,in delicatessan,general
&E� food shopping,restaurant/cafe,clothes shopping,present shopping
0k� "avoir, �tre present tense",regular 'er' verb aimer,vouloirs,regular 're' 'ir' verbs vendre and finir
:;� food/dishes,shops and services,food items,restaurants
D�� apologising and excuses,"complaints, problems and disapproval","likes, dislikes, voicing anger and exasperation","inviting, refusing and forbidding"
N!� sports,sports,music,hobbies
X%� sports,music,pastimes,going out
b%� sports,music,pastimes,going out
l>� "faire, aller","pouvoir, devoir",regular 'er',reflexives
vT� direct object pronouns,indirect object pronouns,'y' and 'en',emphatic pronouns
�H� perfect tense,imperfect tense,pluperfect tense,past historic tense
�2� female relatives,male relatives,pets,colours
�F� parts of the body,features/face,illness/health,special occasions
�M� physical description,personality,family status and religion,nationality
�a� family and special occasions,"illness, health and diet",finding opposites,finding opposites
�+� adjectives,adjectives,adverbs,adverbs
�M� find the noun,find the verb,find the adjective,find the past participle
�3� places in town,places in town,furniture,shops
�V� "whole hours, half hours and quarter past",all times,24 hour clock,24 hour clock
�?� giving directions,giving directions,station signs,weather
�U� geography of France,geography of France,geography of France,geography of France
�C� regular verbs,irregular verbs,irregular verbs,irregular verbs
�� slang,slang,idioms,idioms
K� school subjects,classroom objects,school facilities,classroom objects
�� school subjects - le la l' les,classroom objects - un une des,school facilities - le la l' les,classroom objects - un une des
0� mon ma mes,ton ta tes,son sa ses,notre nos
O� school subjects/rooms,jobs and careers,classroom objects,jobs and careers
*U� future plans,future plans,future plans (infinitives),future plans (infinitives)
4F� infinitives,relative pronouns qui que,negatives,after having ...
>4� days,months,numbers 1-20,numbers in tens 0-100
H5� countries,accommodation,transport,holiday items
R+� weather,hotel,campsite,tourist office
\�� perfect tense with 'avoir' regular,perfect tense with 'avoir' irregular,"perfect tense with '�tre'",perfect tense with reflexive verbs
fF� holidays past,holidays past,post cards,plans for future holidays
pJ� tourist office,booking accomodation,holiday complaints,lost property
z� 1,2/3,3/4,5/6,6/7,8/9/10
���mouse1
�ȗ � 1,255,255,0
�ȗ � 2,255,0,0
�ȗ � 3,192,192,192
�
ȗ � 1
��
�ݤarea(x1%,y1%,x2%,y2%)
��mox%<x1% � mox%>x2%:=�
��moy%<y1% � moy%>y2%:=�
�=�
���mouseilluminate
�ȗ mox%,moy%,but%
�box%=(moy%-100)>>6
�box%<0:box%=0
�box%>11:box%=11
8�box%<>sun%:Ȗ:�sqr(sun%,11):�sqr(box%,15):sun%=box%
$笤area(704,104,864,868) �
.�sqr(box%,11)
8
�box%<5 �
Bbox%=11:sun%=10
L�
Vbox%=0:sun%=1
`�
j �tidy
t�
~�frn%:�longmenu
��
�'�but%=0 � ��area(704,104,864,868):�
�� 7
�
Ȏ box% �
�� 0 :�desktop
�� 1 :�printcertificate
�� 2 :�delete
�� 3 :�create
�� 4 :�load
�� 5 :�viewachieve
�� 6 :�run("Stones")
�� 7 :�run("Rescue")
� 8 :�run("LinkUp")
� 9 :�run("WordSearch")
� 10:�run("Tower")
� 11:�run("TheCop")
(�
2�sun%<11 sun%=11 �sun%=0
<�zeromouse
F �menu
P�
Z��run(game$)
dȗ �
nș"Hourglass_On"
xș"ABC_Blank",15
�ș"ABC_Colour",15
��confilesave
�� f$+game$
��
���sqr(wch%,col%)
�� 0,col%
�ȓȐ 706,wch%*64+100,156,58
��
�
��menu
�ȗ �
�ȗ � 640,512
�ș"ABC_Blank",15
�ș"ABC_Colour",15
inj%=72
omy%=1
txt%=1
" d$=""
,J�frn% �card("FRANCAIS MENU",24,6,2,12) ��card("FRENCH MENU",24,6,2,12)
6
�fillmenu
@�current
J�rectangles
T
�contents
^ș"ABC_Palette"
hȗ ȓ 0,0,1280,1024
rȗ � 640,512
|�mouse1
��
���fillmenu
�� 5
� � 0,0
��frn% � �DvG �� �DXG
��J%=0�5
�� s$
�� 400,844-J%*64
��frn% �s$,17) ��s$
�mnu$(J%)=s$
��
�
� 0,14
��J%=6�11
� s$
� 400,844-J%*64
�frn% �s$,17) ��s$
&mnu$(J%)=s$
0�
:� 4
D�
N�
X5� The Cop,Tower,Word Search,Link Up,Rescue,Stones
b?� Player information,Change player,New player,Remove player
l� Print certificate,Quit
vE� Le Flic,La Tour,Le Puzzle,Le Jumelage,"La Fus�e",La Bonne Route
�W� Information pour les joueur,Changement de joueur,Nouveau joueur,Effacer le joueur
�$� Imprimer le certificat,Quitter
���achievecard
�ȗ �
�ș"ABC_Blank",15
�ș"ABC_Colour",15
�a$=�strip(attend$)
��a$="" �
��frn% a$="Vide" �a$="Empty"
��
�{�frn% �newcard(a$+" : Grille d'Evaluation 10/10 Fran�ais",8,13) ��newcard(a$+" : Achievement Record 10/10 French",8,13)
��fillachieve
�ȗ � 640,512
ș"ABC_Palette"
�mouse1
p$="X"
oxx%=0
*
oyy%=0
4
ozz%=0
>*FX21 0
H�
R��viewachieve
\ȗ ȓ 128,116,1150,764
f�achievecard
p�
zȗ mox%,moy%,but%
�cxx%=(mox%-128)/192+1
�cyy%=(moy%-116)/128+1
�
czz%=0
�xsc%=cxx%*192-30
�ysc%=cyy%*128
�cyy%=7-cyy%
�R�area(xsc%,ysc%,xsc%+126,ysc%+40) � att%(cxx%,cyy%,0)<3:czz%=(mox%-xsc%)/32+1
�]�cxx%<>oxx% � cyy%<>oyy% � czz%<>ozz%:�information(info$(cxx%,cyy%),sub$(cxx%,cyy%,czz%))
��achievediscdump
��achieveprintdump
��allachieveprintdump
�� �leave
��
��information(t$,u$)
�u$>"":t$+=" ("+u$+")"
%�nig%:t$="LoA "+ncl$(cyy%)+" "+t$
$
oxx%=cxx%
.
oyy%=cyy%
8
ozz%=czz%
B�p$=t$:�
L p$=t$
V�mess(t$,11)
`�
j"��card(t$,tax%,tay%,sdx%,sdy%)
t� 5
~ � 0,8
�-ȓȐ tax%*g%,tay%*g%,sdx%*160+160,sdy%*64
�
� 0,11
�1ȓȐ tax%*g%+320,tay%*g%,sdx%*160-162,sdy%*64
� � 0,0
�3�sdx%*160+160>1279 sxe%=1278 �sxe%=sdx%*160+160
�#ȓ tax%*g%,tay%*g%,sxe%,sdy%*64
�
� 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
2�t$
<�J%=1� sdx%
F � tax%*g%+J%*160+160,tay%*g%
P� 1,0,sdy%*64
Z�
d�J%=1� sdy%
n� tax%*g%,tay%*g%+J%*64
x� 1,sdx%*160+160,0
��
�� 4
��
��
���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
,�
6�
@��printcertificate
Jș"ABC_Colour",15
Tȗ �
^
ach%=�
h�J%=1�6
r�K%=1�6
|�att%(K%,J%,0)>2:ach%=�
��
��
��ach% �
���frn% �mess("Aucune r�ussite pour l'instant - retourner au menu",11) ��mess("Nothing achieved at present - return to menu",11)
��zeromouse
��
�� �leave
��
� �busy
��
�� �leave
��
��
��busy
�frn% �foreign ��english
�
&
��english
0+�mess("Screen/Printer/Disc (S/P/D)",11)
:*FX21 0
D�
Nk%=�(0)
X�k%>=�("a"):k%-=32
b/� k%=�("S") � k%=�("P") � k%=�("D") � �-113
l�-113:�flush:�
v� 7
��k%<>�("P") �
�#�mess("Text/Graphics (T/G)",11)
��
�t%=�(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
�
��foreign
2�mess("Ecran/Imprimante/Disquette (E/I/D)",11)
*FX21 0
*�
4k%=�(0)
>�k%>=�("a"):k%-=32
H/� k%=�("E") � k%=�("I") � k%=�("D") � �-113
R�-113:�flush:�
\� 7
f�k%<>�("I") �
p"�mess("Texte/iMages (T/M)",11)
z�
�t%=�(0)
��t%>=�("a"):t%-=32
�#� t%=�("T") � t%=�("M") � �-113
��
�
t%=�("T")
��
��-113:�flush:�
�/�t%=�("T") �achieve_text ��achieve_graphics
��k%=�("D"):�discdump
��k%=�("I"):�printer_dump
��
���achieve_graphics
�ș"ABC_Blank",3
ș"ABC_Colour",3
� 0,12
ȓȐ 184,64,942,932
$ � 0,7
.ȓ 184,64,942,932
8� 0
B � 140
L(ș"ABC_UnpackSprite","wax",j%,444,70
V*ș"ABC_UnpackSprite","small",j%,120,64
`
�words(�)
jș"ABC_Palette"
t�
~��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%)
�fan% �
>�frn% a$="CECI CERTIFIE QUE" �a$="THIS IS TO CERTIFY THAT"
xsc%=320-�(a$)*8
('ș"ABC_PryntString",a$,xsc%,240,1,7
2*ș"ABC_PryntString",a$,xsc%-2,242,1,11
<#�wings(�strip(attend$),168,222)
F�
P� 7
Z � 140
dL�frn% �cent("CECI CERTIFIE QUE ",2) ��cent("THIS IS TO CERTIFY THAT ",2)
na$=�strip(attend$)
x�cent(a$,4)
��
�� 7
� � 140
��frn% �
�'�ver% a$="cat�gories" �a$="niveaux"
�3�cent("a jou� aux jeux Dix sur Dix Fran�ais",9)
�6�cent("et a obtenu 100% aux jeux suivants "+a$,10)
�&�cent("Certificat d�livr� par",27)
�(�cent("Systemes Educatifs 10/10",28)
��
�"�ver% a$="grades" �a$="levels"
�9�cent("has played the Ten out of Ten French games",9)
�:�cent("and has achieved 100% at the following "+a$,10)
�cent("Certificate from",27)
)�cent("10/10 Educational Systems",28)
�
"�cent(�date,25)
,
tay%=0
6�J%=1�6
@K%=1
J
fnd%=�
Tȕ K%<7 � �fnd%
^:�att%(K%,J%,0)>2 � �info$(K%,J%),4)<>"":tay%+=1:fnd%=�
h K%+=1
r�
|�
�tay%=18-tay%�2
��frn% � �DvG �� �DXG
��J%=1�6
�� b$
�
six$()=""
��K%=1�6
�#�att%(J%,K%,0)>2:six$(K%)=�(K%)
��
��
�
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%)+","
0�
:��a$)=",":a$=�a$)
D
�a$<>"" �
N)�18,tay%)b$�36,tay%)"..."�40,tay%)a$
Xtay%+=1
b�
l�
v�
���discdump
�� 7
�ȗ �
�� �
� ș"ABC_Transfer",0,16,640,17
�'�input(32,"adfs::0.$."+attend$,�,�)
�ș"ABC_Restore"
��esc% � i$="":�
�ș"Hourglass_On"
��"SCREENSAVE "+i$
�ș"Hourglass_Smash"
�� � �:�frang
�*DIR <Disc1$Dir>.SixGames
ș"ABC_Restore"
ȗ � 640,512
�mouse1
�
*��frang
4� 7
>��frn% a$="INTRODUIRE LA DISQUETTE DANS LE LECTEUR ET APPUYER SUR RETOUR" �a$="PLEASE INSERT DISC INTO DRIVE AND PRESS RETURN"
H�mess(a$,8)
R�
\
� �-74
f�
p��printer_dump
z� 2
��J%=0�30
��K%=0�79
�� 31,K%,J%
�ș"OS_Byte",135 � ,res%
�
� res%
��
��J%<30:� 13,10
��
�� 3
��
�
��load
�
�legal
��bad% � esc%:�
�gridcheck
�a$="" � k%:�
� 7
$?h%=�("<Disc1$Dir>.SixGames.Achieve.Achieve"+�(cla%)+"."+a$)
.ș"Hourglass_On"
8�L%=0�4
B�K%=1�6
L�J%=1�6
V�#h%,att%(J%,K%,L%)
`�
j�
t�
~�#h%
�attend$=a$
��confilesave
�ș"Hourglass_Smash"
��
���small(wch%,col%)
�� 0,col%
�3ȓȐ (wch%>>4)*256+354,964-((wch%�&F)<<6),26,32
��
���create
�
�legal
��bad% � esc%:�
�ȗ �
ș"ABC_Colour",15
H�frn% �mess("Nom du nouveau joueur",11) ��mess("New player name",11)
�delay(50)
�input(8,"",�,�)
(ȕ �i$," ")>0
2�i$,�i$," "))="_"
<�
F�esc%:�
P7�"DIR <Disc1$Dir>.SixGames.Achieve.Achieve"+�(cla%)
Z%ș"OS_GBPB",8,,cat%,&40,0 � ,,,d%
d*DIR <Disc1$Dir>.SixGames
na%=0
xc%=0
�d%=64-d%
�st%=cat%
�
dup%=�
�ȕ c%<d% � �dup%
�t%=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
6 � 0,0
@ȓ 0,0,1278,64
J_�frn% t$="Joueur "+i$+" existe d�j� - Effacer?" �t$="Player "+i$+" already exists - Erase?"
T� 860-�(t$)*g%,44
^�t$
h� 4
r�
|
k%=�yesno
��
��k%:�mouse1:�
�att%()=0
�?h%=�("<Disc1$Dir>.SixGames.Achieve.Achieve"+�(cla%)+"."+i$)
��L%=0�4
��K%=1�6
��J%=1�6
��#h%,att%(J%,K%,L%)
��
��
��
��#h%
�attend$=i$
�confilesave
ș"ABC_Colour",15
�mouse1
&�
0��delete
:
�legal
D�bad% � esc%:�
N�gridcheck
X�a$="" � k%:�
bș"ABC_Colour",15
l
� 0,10
v� 5
�ȓȐ 0,0,1278,64
� � 0,0
�ȓ 0,0,1278,64
�D�frn% t$="Joueur "+a$+" - Effacer?" �t$="Player "+a$+" - Erase?"
�� 860-�(t$)*g%,44
��t$
�� 4
��
�
k%=�yesno
��k%:�mouse1:�
�A�"DELETE <Disc1$Dir>.SixGames.Achieve.Achieve"+�(cla%)+"."+a$
��a$=attend$:�setempty
��
��delay(del%)
�
Ȗ
del%-=1
*� del%<0
4�
>��confileload
Hh%=�(f$+"Configure")
RQ�#h%,rat%,nig%,sds%,ver%,grd%,cla%,typ$,hed%,fut%,pap%,pix%,frn%,attend$,cod%
\�#h%
f�
p��confilesave
zh%=�(f$+"Configure")
�Q�#h%,rat%,nig%,sds%,ver%,grd%,cla%,typ$,hed%,fut%,pap%,pix%,frn%,attend$,cod%
��#h%
��
���loaddetails
��confileload
�'�sds% �"SPEAKER ON" ��"SPEAKER OFF"
��attend$="" �
�att%()=0
��
�Dh%=�("<Disc1$Dir>.SixGames.Achieve.Achieve"+�(cla%)+"."+attend$)
��L%=0�4
��K%=1�6
��J%=1�6
�#h%,att%(J%,K%,L%)
�
�
$�
.�#h%
8�
B�
Lݤyesno
V�zeromouse
`ȗ ȓ 959,12,240,46
j�mouse1
tȗ � 1160,32
~� 5
� � 0,0
�� 896,44
�-�frn% �"Oui Non" ��"Yes No"
��
�ȗ mox%,moy%,but%
��mox%<1072 �
�
� 0,11
�ȓȐ 960,12,80,40
� � 0,7
�ȓȐ 1120,12,80,40
��
� � 0,7
ȓȐ 960,12,80,40
� 0,11
ȓȐ 1120,12,80,40
�
(� but%>0 � �mox%,moy%)=11
2� 4
<�
F�mox%<1072 =� �=�
Pݤyesnodesk
Z�zeromouse
dȗ ȓ 959,12,240,46
n�mouse1
xȗ � 1160,32
�� 5
� � 0,0
�� 896,44
��"Yes No"
��
�ȗ mox%,moy%,but%
��mox%<1072 �
�
� 0,11
�ȓȐ 960,12,80,40
� � 0,7
�ȓȐ 1120,12,80,40
��
� � 0,7
ȓȐ 960,12,80,40
� 0,11
ȓȐ 1120,12,80,40
"�
,� but%>0 � �mox%,moy%)=11
6� 4
@�
J�mox%<1072 =� �=�
T��displaydirectory
^ș"ABC_Blank",15
hș"ABC_Colour",15
r7�"DIR <Disc1$Dir>.SixGames.Achieve.Achieve"+�(cla%)
|%ș"OS_GBPB",8,,cat%,&40,0 � ,,,d%
�*DIR <Disc1$Dir>.SixGames
�� 5
��a%=0�63
�x%=(a%>>4)*256+128
�y%=(a%�&F)<<6
� � 0,8
�ȓȐ x%,y%,224,40
�
� 0,11
�ȓȐ x%+224,y%,30,40
� � 0,0
�ȓ x%+224,y%,30,40
��
�a%=0
c%=0
d%=64-d%
st%=cat%
&filename$()=""
0 � 0,0
:ȕ c%<d%
Dt%=st%?((?st%)+1)
Nst%?((?st%)+1)=&D
Xa$=$(st%+1)
bst%+=1+(?st%)
l?st%=t%
v&� (a%>>4)*256+144,992-((a%�&F)<<6)
�filename$(a%)=a$
�a$=�strip(a$)
�� a$
� a%+=1
� c%+=1
��
�� 4
��
�ș"ABC_Palette"
��
���gridcheck
��displaydirectory
�
lst%=0
�
ȗ mox%,moy%,but%
sqx%=(mox%-128)>>8
�sqx%>3:sqx%=3
*�sqx%<0:sqx%=0
4sqy%=(1024-moy%)>>6
>�sqy%>15:sqy%=15
Hinx%=sqy%+sqx%*g%
R�inx%>63:inx%=63
\�inx%<>lst% �
fȖ
p�small(lst%,11)
z�small(inx%,15)
�
lst%=inx%
��
��-113 k%=� �k%=�
�� but%>0 � k%
�a$=filename$(lst%)
��
�
��current
�� 5
� � 0,8
�ȓȐ 384,16,480,64
� � 0,0
�ȓ 384,16,480,64
�
� 0,14
� 400,60
5�frn% �"Joueur actuel : "; ��"Current player : ";
� 0,0
$a$=�strip(attend$)
.�frn% �
8�a$="" �"Vide" ��a$
B�
L�a$="" �"Empty" ��a$
V�
`� 4
j�
t�
~��access
�符-2 � ��-31:�
�ȗ �
�� 7
�ș"ABC_Colour",15
�
tru%=�
�(�frn% �foreignaccess ��englishaccess
��esc% � �tru%:�
��confilesave
� �back
��
���foreignaccess
�5�mess("ENTRER L'ANCIEN NUMERO DE CODE D'ACCES",8)
�invis
�esc%:�back:�
J%=�validatenumber(i$)
/�J%:�wrong("CHIFFRES UNIQUEMENT"):tru%=�:�
(5�cod%<>�(i$):�wrong("FAUX CODE D'ACCES"):tru%=�:�
2;�mess("INTRODUIRE LE NOUVEAU NUMERO DE CODE D'ACCES",8)
<
�invis
F�esc%:�back:�
PJ%=�validatenumber(i$)
Z/�J%:�wrong("CHIFFRES UNIQUEMENT"):tru%=�:�
dfirst%=�(i$)
n2�mess("ENTRER DE NOUVEAU POUR CONFIRMATION",8)
x
�invis
��esc%:�back:�
�J%=�validatenumber(i$)
�/�J%:�wrong("CHIFFRES UNIQUEMENT"):tru%=�:�
�second%=�(i$)
�I�first%<>second%:�wrong("CHIFFRES DIFFERENTS - RECOMMENCER"):tru%=�:�
�cod%=�i$
�0�mess("LE NUMERO DE CODE D'ACCES ACCEPTE",8)
��
���englishaccess
�+�mess("ENTER OLD ACCESS CODE NUMBER",8)
�
�invis
��esc%:�back:�
�J%=�validatenumber(i$)
/�J%:�wrong("NUMBERS ONLY PLEASE"):tru%=�:�
7�cod%<>�(i$):�wrong("INVALID ACCESS CODE"):tru%=�:�
+�mess("ENTER NEW ACCESS CODE NUMBER",8)
"
�invis
,�esc%:�back:�
6J%=�validatenumber(i$)
@/�J%:�wrong("NUMBERS ONLY PLEASE"):tru%=�:�
Jfirst%=�(i$)
T%�mess("ENTER AGAIN TO CONFIRM",8)
^
�invis
h�esc%:�back:�
rJ%=�validatenumber(i$)
|/�J%:�wrong("NUMBERS ONLY PLEASE"):tru%=�:�
�second%=�(i$)
�E�first%<>second%:�wrong("DIFFERENT NUMBERS - TRY AGAIN"):tru%=�:�
�cod%=�i$
�.�mess("NEW ACCESS CODE NUMBER ACCEPTED",8)
��
�
��back
��sun%<11 sun%=11 �sun%=0
� �menu
��mouse1
��
���wrong(a$)
�� 7
��mess(a$,11)
�delay(150)
�back
�
&ݤvalidatenumber(a$)
0
�a$="":=�
:K%=�
D�J%=1� �(a$)
N'�a$,J%,1)<"0" � �a$,J%,1)>"9":K%=�
X�
b=K%
l��invis
v*FX21 0
�
esc%=�
�
cnt%=0
� i$=""
��
��
��
�k%=�(1)
�� k%>0 � k%<128
��k%=127 � cnt%>0 �
�cnt%-=1
�i$=�i$,cnt%)
�!�mess(">"+ĩ(i$),"*")+"<",10)
��
!
� k%<>127
!�k%<>13 � cnt%<>4 �
!i$+=�k%
! !�mess(">"+ĩ(i$),"*")+"<",10)
!*cnt%+=1
!4�
!>� k%=13 � cnt%=4
!H�
!R��legal
!\�cod%=0:bad%=�:esc%=�:�
!fȗ �
!pș"ABC_Colour",15
!zY�frn% �mess("ENTRER NUMERO DE CODE D'ACCES",11) ��mess("ENTER ACCESS CODE NUMBER",11)
!�
�frput
!��cod%=�(i$) �
!�^�frn% �mess("LE NUMERO DE CODE D'ACCES ACCEPTE",8) ��mess("ACCESS CODE NUMBER ACCEPTED",8)
!��delay(100)
!�
bad%=�
!��
!�
bad%=�
!��
!��mouse1
!��
!���frput
!�*FX21 0
!�
esc%=�
"
cnt%=0
"
tot%=4
" i$=""
"$�
".�
"8�
"Bk%=�(1)
"L� k%=13 � k%>31 � k%<128
"V�k%=127 � cnt%>0 �
"`cnt%-=1
"ji$=�i$,cnt%)
"t �mess(">"+ĩ(i$),"*")+"<",8)
"~�
"�
� k%<>127
"��k%<>13 � cnt%<>tot% �
"�
�cnt%=0 �
"�2�(k%)>="a" � �(k%)<="z" i$=�(k%-32) �i$=�(k%)
"��
"�4�(k%)>="A" � �(k%)<="Z" i$+=�(k%+32) �i$+=�(k%)
"��
"� �mess(">"+ĩ(i$),"*")+"<",8)
"�cnt%+=1
"��
"�� k%=13 � cnt%=tot%
"��
# ��point(a$,mos%)
#
� wir%,par%,dat%
# � wir% 1088,par% 20,dat% 256
#h%=�(f$+a$)
#(�J%=0�32
#2�K%=0�32
#<wir%?(K%*32+J%)=�#h%
#F�
#P�
#Z�#h%
#d!par%=&20080200
#npar%?1=mos%
#xpar%!4=0
#�par%!6=dat%
#�
mmo%=dat%
#��J%=32�1��
#��K%=0�7
#�
�L%=3�0��
#�val%=wir%?(J%*32+K%*4+L%)
#�0�val%=&FF:par%?4=K%*4+L%:par%?5=31-J%:val%=0
#�?mmo%=?mmo%<<2
#�?mmo%+=val%
#��
#�mmo%+=1
#��
#��
$ș"OS_Word",21,par%
$�
$
��desktop
$"ȗ �
$,ș"ABC_Blank",11
$6�exitmessage
$@!�mess("Return to Desktop?",8)
$Jș"ABC_Palette"
$T�mouse1
$^k%=�yesnodesk
$hș"ABC_Colour",15
$rsun%=10
$|
�k%:�
$� *FX20
$�"*CHANNELVOICE 1 WaveSynth-Beep
$�"*CHANNELVOICE 2 WaveSynth-Beep
$�"*CHANNELVOICE 3 WaveSynth-Beep
$�"*CHANNELVOICE 4 WaveSynth-Beep
$�*WIPE ram:* ~C~V
$�*RMKILL ABC
$�*RMKILL Synsmajs
$�*RMKILL Timer
$�*RMKILL 10/10SoundGenerator
$�*POINTER 1
$�*SPEAKER ON
$�� 20
%*DESKTOP
%��wings(l$,x%,y%)
%)ș"ABC_UnpackSprite","wings",j%,x%,y%
%&� 5
%0
� 0,11
%: � (x%*2+298)-�(l$)*8,y%*4-40
%D�l$
%N� 4
%X�
%b�
%l��select
%v6笤area(80,18,336,840) � ��area(912,18,1168,840) �
%�pre%=-1
%�sly%=-1
%��rectangles
%��
%�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("WordSearch")
&*� 1:�run("Tower")
&4� 2:�run("TheCop")
&>� 3:�run("Stones")
&H� 4:�run("Rescue")
&R� 5:�run("LinkUp")
&\�
&f�zeromouse
&p�sly%>-1:�menu
&z�mouse1
&��
&���contents
&�� 5
&��J%=1�3
&�6ș"ABC_UnpackSprite","intro"+�(J%),j%,48,274-J%*70
&�9ș"ABC_UnpackSprite","intro"+�(J%+3),j%,464,274-J%*70
&��
&��frn% � �D~g �� �Dtg
&��J%=1�3
&�� a$,b$
&� � 0,7
&�� 96,J%*280-232
&��a$
'� 928,J%*280-232
'�b$
' � 0,0
'$� 102,J%*280-228
'.�a$
'8� 934,J%*280-228
'B�b$
'L�
'V� 4
'`�
'j�
't5� Word Search,Stones,Tower,Rescue,The Cop,Link Up
'~E� Le Puzzle,La Bonne Route,La Tour,"La Fus�e",Le Flic,Le Jumelage
'���rectangles
'� � 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$="":�
(2� 24,0;112;1278;1008;
(<ș"Hourglass_On"
(F�"SCREENSAVE "+i$
(P� 26
(Zș"Hourglass_Smash"
(d� � �:�mistake
(n*DIR <Disc1$Dir>.SixGames
(xș"ABC_Restore"
(�ȗ � 640,512
(��mouse1
(��
(�
��mistake
(�� 7
(�?�mess("PLEASE INSERT DISC 2 INTO DRIVE AND PRESS RETURN",8)
(��
(�
� �-74
(��
(���achieveprintdump
(�符-2:�
(�符-56:�
(�� 7
)ș"Hourglass_On"
)
� �DXG
)new%()=att%()
)"�printpage(attend$)
),
�flush
)6ș"Hourglass_Smash"
)@�mouse1
)J�
)T��allachieveprintdump
)^符-2:�
)h
符-102:�
)r� 7
)|ș"Hourglass_On"
)��displaydirectory
)�
�flush
)�ș"Hourglass_Smash"
)��mouse1
)�ȗ ȓ 0,0,1280,1024
)�files%()=�
)�
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% �
*02�files%(lst%) �small(lst%,14) ��small(lst%,11)
*:2�files%(inx%) �small(inx%,14) ��small(inx%,15)
*D
lst%=inx%
*N�
*X"�but%=1 � filename$(lst%)>"" �
*bfiles%(lst%)=�files%(lst%)
*l2�files%(lst%) �small(lst%,14) ��small(lst%,11)
*v�zeromouse
*��
*��-113 k%=� �k%=�
*�� but%=4 � k%
*�a$=filename$(lst%)
*�
�k% �
*�ș"Hourglass_On"
*�ș"ABC_Colour",15
*�X%=0
*�
esc%=�
*�ȕ X%<64 � �esc%
*��files%(X%) �
*�Jh%=�("<Disc1$Dir>.SixGames.Achieve.Achieve"+�(cla%)+"."+filename$(X%))
*��L%=0�4
+�K%=1�6
+�J%=1�6
+�#h%,new%(J%,K%,L%)
+ �
+*�
+4�
+>�#h%
+H�printpage(filename$(X%))
+R�
+\ X%+=1
+f�
+pș"Hourglass_Smash"
+z�
+�ȗ ȓ 128,116,1150,764
+��achievecard
+��zeromouse
+��
+���printpage(name$)
+�� �
+�� � �:� 6,3,7:esc%=�:�
+�
� 2,21
+��header
+�a$=�strip(name$)
+��a$="":a$="Empty"
+��frn% �
+�$�printer("Les r�sultats de "+a$)
,6�printer("qui joue aux Jeux Dix sur Dix Fran�ais")
,�
,'�printer("The achievements of "+a$)
,$5�printer("playing the 10 out of 10 French games")
,.�
,8�printer("")
,B�printer(�date)
,L�printer("")
,V�frn% �
,`�ver% �
,j6�printer("Cat�gories Trait�"+�51," ")+"R�sultant")
,t�
,~5�printer("Niveaux Trait�"+�52," ")+"R�sultant")
,��
,��printer("")
,��printer("LE FLIC")
,��gamedetails(1)
,��printer("LA TOUR")
,��gamedetails(2)
,��printer("LE PUZZLE")
,��gamedetails(3)
,��printer("LE JUMELAGE")
,��gamedetails(4)
,��printer("LA FUSEE")
,��gamedetails(5)
- �printer("LA BONNE ROUTE")
-
�gamedetails(6)
-1�printer("LEGENDE DES COULEURS DE REUSSITE:")
-�printer("")
-(,�printer("BLEU = 100% (10 fois VERT)")
-2*�printer("VERT = 100% (10 sur 10!)")
-<$�printer("JAUNE = 50% ou plus")
-F%�printer("ROUGE = Moins de 50%")
-PF�printer("- = signifie que la cat�gorie n'a pas �t� trait�e")
-Z�
-d9�printer(typ$+" Covering"+�50," ")+"Achievement")
-n�printer("")
-x�printer("THE COP")
-��gamedetails(1)
-��printer("TOWER")
-��gamedetails(2)
-��printer("WORD SEARCH")
-��gamedetails(3)
-��printer("LINK UP")
-��gamedetails(4)
-��printer("RESCUE")
-��gamedetails(5)
-��printer("STONES")
-��gamedetails(6)
-�+�printer("KEY TO ACHIEVEMENT COLOURS:")
-��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")
.6�
.@ȕ pnt%<pap%
.J�
.Tpnt%+=1
.^�
.h�footer
.r � 6,3
.|�
.���gamedetails(num%)
.��J%=1�6
.�b$=info$(num%,J%)
.�#�nig% a$=b$ �a$=�b$,�b$," ")+1)
.�a$=�(J%)+" "+a$
.�a$+=�68-�(a$)," ")
.��frn% �
.�Ȏ new%(num%,J%,0) �
.�� 0:a$+="-"
.�� 1:a$+="ROUGE"
.�� 2:a$+="JAUNE"
.�$� 3,4,5,6,7,8,9,10,11:a$+="VERT"
.�:a$+="BLEU"
/�
/�
/Ȏ new%(num%,J%,0) �
/&� 0:a$+="-"
/0� 1:a$+="RED"
/:� 2:a$+="YELLOW"
/D%� 3,4,5,6,7,8,9,10,11:a$+="GREEN"
/N:a$+="BLUE"
/X�
/b�
/l�printer(a$)
/v�
/��printer("")
/��
/���header
/�
pnt%=0
/�
�hed%=0:�
/��W%=1� hed%
/��
/��
/��
/���footer
/�
�fut%=0:�
/��W%=1� fut%
/��
0�
0�
0��printer(j$)
0 �j$
0*pnt%+=1
04�pnt%=pap% �
0>�footer
0H�header
0R�
0\�
0f
ݤdate
0p�frn% � �dTp �� �d@p
0z
fnd%=�
0�ȕ �fnd%
0�� p$,n$
0�科$,p$):fnd%=�
0��
0�z$="Date: "
0�=z$+��$,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
0�G� Jan,Janvier,Feb,"F�vrier",Mar,Mars,Apr,Avril,May,Mai,Jun,Juin,Jul
0�N� Juillet,Aug,"Ao�t",Sep,Septembre,Oct,Octobre,Nov,Novembre,Dec,"D�cembre"
0���flush
0�*FX21 9
0��
1ݤstrip(str$)
1ȕ �str$,"_")>0
1�str$,�str$,"_"))=" "
1$�
1. =str$
18��input(tot%,x$,cap%,fil%)
1B*FX21 0
1L
esc%=�
1Vcnt%=�(x$)
1` i$=x$
1j*�fil% � �frn%:y$="filename: >" �y$=">"
1t1�fil% � frn%:y$="titre du dossier: >" �y$=">"
1~�mess(y$+i$+"<",8)
1��
1��
1��
1�k%=�(1)
1�� k%=13 � k%>31 � k%<128
1��k%=127 � cnt%>0 �
1�cnt%-=1
1�i$=�i$,cnt%)
1��mess(y$+i$+"<",8)
1��
1�
� k%<>127
1��k%<>13 � cnt%<>tot% �
2 �cap% �
2
�cnt%=0 �
22�(k%)>="a" � �(k%)<="z" i$=�(k%-32) �i$=�(k%)
2�
2(4�(k%)>="A" � �(k%)<="Z" i$+=�(k%+32) �i$+=�(k%)
22�
2<�
2F
i$+=�(k%)
2P�
2Z�mess(y$+i$+"<",8)
2dcnt%+=1
2n�
2x�k%<>13 � cnt%=tot%:�7
2�� k%=13
2��
2���exitmessage
2�ș"ABC_Colour",11
2�
� �TNs
2�� a$
2�
Y%=240
2�ȕ a$<>"end"
2�$ș"ABC_PryntString",a$,34,Y%,1,7
2�&ș"ABC_PryntString",a$,32,Y%+1,1,0
2��a$>"" Y%-=18 �Y%-=12
2�� a$
2��
3�
3#� Also available or coming soon
3,� "for Acorn 32-bit, IBM PC/compatibles"
3"� and Commodore Amiga ...
3,�
36� English French
3@"� German Dinosaurs
3J+� Astronomy Maths (Statistics)
3T(� Maths (Number) Maths (Algebra)
3^*� Early Essentials Junior Essentials
3h�
3r� Contact your dealer or
3|$� ring (0742) 780370 for details
3� � end
3�ݤinitialcompressed(s$)
3�h%=�(f$+s$)
3�
len%=�#h%
3��#h%
3�
� z% len%
3��"LOAD "+f$+s$+" "+�~(z%)
3�=z%
3���configure
3�符-2 � ��-1 � ��-83:�
3�ȗ �
3�ș"ABC_Blank",3
3�ș"ABC_Colour",3
4�validdirectories
4)ș"ABC_UnpackSprite","bar",j%,180,242
4)ș"ABC_UnpackSprite","exit",j%,454,18
4&� 11
40 � 130
4:'�25,2)"10 out of 10 CUSTOMISATION"
4D� 7
4N
old%=cla%
4X
� �dl{
4b� a$,K%
4lJ%=0
4vȕ a$<>"end"
4�/ș"ABC_UnpackSprite","bar",j%,180,226-J%*16
4��25,J%*2+4)a$
4��K%=-1 �
4�0ș"ABC_UnpackSprite","arup",j%,482,226-J%*16
4�0ș"ABC_UnpackSprite","ardn",j%,510,226-J%*16
4��
4�W�K%=-2 ș"ABC_UnpackSprite","default",j%,454,226-J%*16 ��buttonstatus(J%,226-J%*16)
4� J%+=1
4�� a$,K%
4��
4�ș"ABC_Palette"
4�ȗ ȓ 904,32,160,874
4��mouse1
5
end%=�
5ȕ �end%
5�
5 ȗ mox%,moy%,but%
5*� but%>0
54$�but%=4 � �mox%,moy%)<>3:�action
5>�
5H�savenewconfigure
5R�old%<>cla%:�setempty
5\�sun%<11 sun%=11 �sun%=0
5f �menu
5p�
5z��action
5�noy%=(906-moy%)>>6
5�nox%=(mox%-906)�56
5�
Ȏ noy% �
5�� 0
5�frn%=�frn%
5�#�buttonstatus(noy%,226-noy%*16)
5�� 7
5�� 1
5�rat%=�rat%
5�#�buttonstatus(noy%,226-noy%*16)
5�� 7
5�� 2
5��ver% �
6nig%=�nig%
6#�buttonstatus(noy%,226-noy%*16)
6� 7
6$�
6.� 3
68sds%=�sds%
6B#�buttonstatus(noy%,226-noy%*16)
6L'�sds% �"SPEAKER ON" ��"SPEAKER OFF"
6V� 7
6`� 4
6j�ver% �
6t
ver%=�
6~
nig%=�
6�(�buttonstatus(noy%-2,226-noy%*16+32)
6�#�buttonstatus(noy%,226-noy%*16)
6�(�buttonstatus(noy%+1,226-noy%*16-16)
6�� 7
6��
6�� 5
6��ver% �
6�
ver%=�
6�
nig%=�
6�(�buttonstatus(noy%-3,226-noy%*16+48)
6�#�buttonstatus(noy%,226-noy%*16)
6�(�buttonstatus(noy%-1,226-noy%*16+16)
7 � 7
7
�
7� 6
7
�nox%=1 �
7(grd%+=1
72�grd%=7:grd%=1
7<#�buttonstatus(noy%,226-noy%*16)
7F� 7
7P�
7Z
�nox%=2 �
7dgrd%-=1
7n�grd%=0:grd%=6
7x#�buttonstatus(noy%,226-noy%*16)
7�� 7
7��
7�� 7
7�
�nox%=1 �
7�cla%+=1
7��cla%=65:cla%=1
7�#�buttonstatus(noy%,226-noy%*16)
7�� 7
7��
7�
�nox%=2 �
7�cla%-=1
7��cla%=0:cla%=64
7�#�buttonstatus(noy%,226-noy%*16)
8� 7
8�
8� 8
8"
�nox%=1 �
8,hed%+=1
86�hed%=8:hed%=0
8@#�buttonstatus(noy%,226-noy%*16)
8J� 7
8T�
8^
�nox%=2 �
8hhed%-=1
8r�hed%<0:hed%=7
8|#�buttonstatus(noy%,226-noy%*16)
8�� 7
8��
8�� 9
8�
�nox%=1 �
8�fut%+=1
8��fut%=8:fut%=0
8�#�buttonstatus(noy%,226-noy%*16)
8�� 7
8��
8�
�nox%=2 �
8�fut%-=1
8��fut%<0:fut%=7
8�#�buttonstatus(noy%,226-noy%*16)
9� 7
9�
9� 10
9&
�nox%=1 �
90pap%+=1
9:�pap%=81:pap%=16
9D#�buttonstatus(noy%,226-noy%*16)
9N� 7
9X�
9b
�nox%=2 �
9lpap%-=1
9v�pap%=15:pap%=80
9�#�buttonstatus(noy%,226-noy%*16)
9�� 7
9��
9�� 11
9�pix%+=1
9��pix%=4:pix%=0
9�#�buttonstatus(noy%,226-noy%*16)
9�� 7
9�� 12
9�ș"ABC_Blank",3
9�*SPEAKER ON
9�� 7
9�
rat%=�
:
nig%=�
:
sds%=�
:
ver%=�
:
grd%=1
:*
cla%=1
:4
hed%=1
:>
fut%=1
:Hpap%=64
:R
pix%=0
:\
frn%=�
:f�J%=0�11
:p�buttonstatus(J%,226-J%*16)
:z�
:�ș"ABC_Palette"
:�� 13:end%=�
:��
:��zeromouse
:��
:���savenewconfigure
:�ȗ �
:�ș"ABC_Blank",3
:�ș"ABC_Colour",3
:�'�directory%(cla%):�createdirectory
:�7�"DIR <Disc1$Dir>.SixGames.Achieve.Achieve"+�(cla%)
:�$�ver% typ$="Grade" �typ$="Level"
:��confilesave
;*DIR <Disc1$Dir>.SixGames
;�
;��buttonstatus(num%,ysc%)
;$yyy%=ysc%-2
;.Ȗ
;8k�num%=4 � num%=5 ș"ABC_UnpackSprite","radiooff",j%,454,ysc% �ș"ABC_UnpackSprite","optoff",j%,454,ysc%
;B
Ȏ num% �
;L6� 0:�frn%:ș"ABC_UnpackSprite","opton",j%,454,ysc%
;V6� 1:�rat%:ș"ABC_UnpackSprite","opton",j%,454,ysc%
;`6� 2:�nig%:ș"ABC_UnpackSprite","opton",j%,454,ysc%
;j6� 3:�sds%:ș"ABC_UnpackSprite","opton",j%,454,ysc%
;t9� 4:�ver%:ș"ABC_UnpackSprite","radioon",j%,454,ysc%
;~8� 5:�ver%:ș"ABC_UnpackSprite","radioon",j%,454,ysc%
;�0� 6:ș"ABC_PryntString",�(grd%),462,yyy%,0,9
;�� 7
;�&�directory%(cla%) cul%=13 �cul%=11
;�d�cla%>9 ș"ABC_PryntString",�(cla%),458,yyy%,0,cul% �ș"ABC_PryntString",�(cla%),462,yyy%,0,cul%
;�1� 8:ș"ABC_PryntString",�(hed%),462,yyy%,0,11
;�1� 9:ș"ABC_PryntString",�(fut%),462,yyy%,0,11
;�2� 10:ș"ABC_PryntString",�(pap%),458,yyy%,0,11
;�`� 11:�pix%=0 ș"ABC_PryntString","A",462,yyy%,0,11 �ș"ABC_PryntString",�(pix%),462,yyy%,0,6
;��
;��
;�/� French Environment,0,Ratings suppressed,0
;�+� National curriculum numbers,0,Sound,0
<