10 'LEXIQUE ANGLAIS-FRANCAIS / AMSTRAD 
20 'Michel Archambault / 1985
50 OPENOUT"BIDON"
60 MEMORY HIMEM-1
70 CLOSEOUT
200 MODE 1:BORDER 2:INK 2,20:PAPER 0:PEN 1:CLS
210 DIM M$(900,1):DEFINT A-Z
250 'GOTO 1000:'Ligne a effacer des que le fichier mots aura ete enregistre.
300 'LECTURE FICHIER
310 CLS:PEN 3:LOCATE 9,4:PRINT "LEXIQUE ANGLAIS-FRANCAIS":PEN 1
320 LOCATE 3,8:PRINT "PREPAREZ LA CASSETTE OU DISQUETTE" 
330 LOCATE 3,10:PRINT "CONTENANT LE FICHIER MOTS ANGLOFRA,"
340 PEN 2: LOCATE 10,15:PRINT "puis tapez une Touche...":PEN 1
350 CALL &BB06:CLS:PRINT:PRINT "  CHARGEMENT des MOTS ......":PRINT
400 OPENIN "ANGLOFRA":INPUT#9,NF
410 FOR I=1 TO NF:INPUT#9,M$(I,0),M$(I,1):NEXT 
420 CLOSEIN
1000 'MENU PRINCIPAL
1010 CLS:INK 0,1:INK 1,24
1020 LOCATE 17,2:PEN 3:PRINT "M E N U":PEN 2:LOCATE 29,2:PRINT NF;"mots":PEN 1
1030 LOCATE 6,4:PRINT "A = Anglais ---> Francais"
1040 LOCATE 6,6:PRINT "F = Francais --> Anglais"
1050 LOCATE 6,8:PRINT "C = Completer le lexique"
1060 LOCATE 6,10:PRINT "M = Modifications"
1070 LOCATE 6,12:PRINT "E = Enregistrement"
1080 LOCATE 6,14:PRINT "T = Tri alphabetique"
1100 LOCATE 6,16:PRINT "I = Impression"
1110 LOCATE 6,20:PRINT "Q = Quitter"
1150 TEX$="AFCMETIQ":GOSUB 50000
1160 ON K GOSUB 2000,2500,4000,5000,6000,7000,8000,1500
1170 GOTO 1000
1500 'FINAL
1510 CLS:LOCATE 10,12:PRINT "VOUS POUVEZ ETEINDRE.":PRINT:PRINT
1520 END
2000 'RECHERCHE ANGLAIS-->FRANCAIS
2010 R$="ANGLAIS":P=0
2020 GOSUB 3000
2030 RETURN
2500 'RECHERCHE FRANCAIS-->ANGLAIS
2510 R$="FRANCAIS":P=1
2520 GOSUB 3000
2530 RETURN
3000 'RECHERCHE DE TRADUCTION
3010 WINDOW #1,1,40,1,7:PAPER#1,0:PEN#1,1:CLS #1
3020 WINDOW #0,1,40,8,25:PAPER 2:PEN 0:CLS:PRINT 
3030 LOCATE#1,4,2:PRINT#1,"Mot suivi de * = contenant ce mot"
3040 LOCATE #1,2,4:PRINT#1,"Q pour QUITTER:Le BIP=fin du fichier"
3050 PEN#1,3:LOCATE #1,3,6:PRINT#1,CHR$(18);"Mot ";R$;" ?: ";
3060 LINE INPUT #1,M$:M$=UPPER$(M$):IF M$="Q" THEN 3900
3080 IF RIGHT$(M$,1)="*" THEN 3500
3100 IF LEN(M$) >14+P*7 THEN 3050
3110 FOR I=1 TO NF
3120 IF M$=M$(I,P) THEN GOSUB 3800
3130 NEXT:PRINT CHR$(7);:GOTO 3050
3500 M$=LEFT$(M$,LEN(M$)-1)
3510 IF LEN(M$) >14+P*7 THEN 3050
3520 FOR I=1 TO NF
3530 IF INSTR(M$(I,P),M$) >0 THEN GOSUB 3800
3540 NEXT:PRINT CHR$(7);:GOTO 3050
3800 'AFFICHAGE LIGNE RESULTAT
3810 PRINT USING "###";I;:PRINT TAB(5);M$(I,0);TAB(18);":";M$(I,1)
3830 RETURN
3900 WINDOW#0,1,40,1,25:PAPER 0:PEN 1:CLS
3910 RETURN
4000 'COMPLETER LE LEXIQUE
4010 CLS
4020 LOCATE 14,4:PRINT "NOUVEAUX MOTS."
4030 LOCATE 16,10:PRINT "D'ACCORD ?":TEX$="ON":GOSUB 50000
4040 IF K=2 THEN 4060
4050 N=NF+1:GOSUB 10000:NF=N-1
4060 RETURN
5000 'MODIFICATION
5010 CLS:LOCATE 14,4:PRINT "MODIFICATION."
5020 LOCATE 16,10:PRINT "D'ACCORD ?":TEX$="ON":GOSUB 50000:IF K=2 THEN 5900
5030 MODIF=1
5040 GOSUB 10000
5050 MODIF=0
5900 RETURN
6000 'ENREGISTREMENT
6010 CLS:LOCATE 2,5:PRINT "SAUVEGARDE SUR DISQUETTE OU CASSETTE"
6020 LOCATE 16,10:PRINT "D'ACCORD ?":TEX$="ON":GOSUB 50000
6030 IF K=2 THEN 1000
6080 OPENOUT "ANGLOFRA"
6090 WRITE #9,NF:FOR I=1 TO NF:WRITE #9,M$(I,0),M$(I,1):NEXT  
6100 CLOSEOUT
6900 RETURN
7000 'TRI
7010  CLS:LOCATE 13,4:PRINT "TRI DU FICHIER:":LOCATE 16,11:PRINT "D'ACCORD ?":TEX$="ON":GOSUB 50000:IF K=2 THEN 7900
7020  LOCATE 16,21:PRINT "Patience...":T=0
7060  F=0:FOR J=1 TO NF
7070 IF M$(J,0) >= M$(J-1,0) THEN 7090
7080  FOR R=0 TO 1:M$(0,R)=M$(J,R):M$(J,R)=M$(J-1,R):M$(J-1,R)=M$(0,R):NEXT:F=1
7090 NEXT
7100 IF F THEN 7060
7900 RETURN
8000 'IMPRESSION
8010 CLS:LOCATE 5,10:PRINT "L'IMPRIMANTE EST-ELLE PRETE ?"
8020 TEX$="ON":GOSUB 50000:IF K=2 THEN 8900
8030 CLS:LOCATE 6,10:INPUT "A PARTIR DE QUEL NUMERO ? ",D$
8040 D=VAL(D$):IF D=0 OR D>NF THEN 8030
8050 PRINT #8,CHR$(27);CHR$(64):FOR I=D TO NF 
8060 PRINT #8,USING "###";I;:PRINT #8," ";M$(I,0);STRING$(16-LEN(M$(I,0)),".");" ";M$(I,1)
8070 NEXT:PRINT #8
8900 RETURN
10000 ' SAISIE
10020 WINDOW#0,1,40,7,25:PAPER 0:PEN 1:CLS
10030 WINDOW#1,1,40,1,5:PAPER#1,2:PEN#1,3:CLS#1
10040 LOCATE #1,2,2:PRINT #1,"Pour quitter ( Menu ) --> Q + ENTER"
10050 LOCATE #1,2,4:PRINT #1,"N";SPC(5);"ANGLAIS";SPC(11);"FRANCAIS"
10060 L=0
10070 IF MODIF THEN GOSUB 10500:GOTO 10200
10100 L=L+1:LOCATE 1,L:PRINT USING "###";N
10105 LOCATE 5,L:LINE INPUT "",M$(N,0)
10110 M$(N,0)=UPPER$(M$(N,0)):IF M$(N,0)="Q" THEN 10200
10120 IF LEN(M$(N,0)) >14 THEN M$(N,0)=LEFT$(M$(N,0),14)
10130 LOCATE 18,L:LINE INPUT ":",M$(N,1)
10140 M$(N,1)=UPPER$(M$(N,1)):IF LEN(M$(N,1)) >21 THEN M$(N,1)=LEFT$(M$(N,1),21)
10150 N=N+1:IF L=19 THEN CLS:L=0
10160 GOTO 10070
10200 WINDOW#0,1,40,1,25:CLS
10300 RETURN 
10500 'FICHE A MODIFIER
10510 PEN 2:LOCATE 3,1:INPUT "QUEL NUMERO ?( Q pour Quitter ):",N$:N$=UPPER$(N$)
10520 IF N$="Q" THEN PEN 1:GOTO 10700
10530 N=VAL(N$):IF N=0 OR N>NF THEN 10510
10540 LOCATE 1,3:PRINT USING "###";N;:PRINT TAB(5);M$(N,0);TAB(19);M$(N,1)
10550 PEN 1
10560 LOCATE 5,5:LINE INPUT "",M$:M$=UPPER$(M$)
10570 IF M$="" THEN 10600
10580 IF LEN(M$) >14 THEN M$=LEFT$(M$,14)
10590 M$(N,0)=M$
10600 LOCATE 19,5:LINE INPUT "",M$:M$=UPPER$(M$)
10610 IF M$="" THEN 10690
10620 IF LEN(M$) >21 THEN M$=LEFT$(M$,21)
10630 M$(N,1)=M$
10690 CLS:GOTO 10510
10700 RETURN
50000 'REPONSE A UN MENU
50010 LT=LEN(TEX$):R$=""
50020 LOCATE 15-LT,24:PRINT "Reponse (";
50030 FOR I=1 TO LT-1
50040 PRINT MID$(TEX$,I,1);",";:NEXT
50050 PRINT RIGHT$(TEX$,1);")";CHR$(154);CHR$(243);CHR$(207)
50060 TEX$=UPPER$(TEX$)
50070 WHILE R$="":R$=INKEY$:WEND
50080 R$=UPPER$(R$):K=INSTR(TEX$,R$)
50090 IF K=0 THEN R$="":PRINT CHR$(7);:GOTO 50070
50100 RETURN
64535 '------- FIN DE LISTING ---------