10 ' ECRITURE DIRECTE DE FICHIERS TEXTE
20 ' AMSTRAD CPC - Michel Archambault 
30 OPENOUT"B":MEMORY HIMEM -1:CLOSEOUT
40 MODE 1:LOCATE 4,10:PRINT "Quel MODE pour ce Fichier Ecran ?":TEX$="12":GOSUB 50000:M=K:MODE M
50 IF M=2 THEN INK 0,20:INK 1,0:CLS
100 LOCATE 1,10:INPUT "NOM DU FICHIER ( sans .DOC ) ",FIC$
110 LOCATE 5,13:PRINT"a CREER , LIRE ou MODIFIER ?":TEX$="CLM":GOSUB 50000 
120 CLS:ON K GOSUB 200,45000,400
130 INK 0,1:INK 1,24:MODE 1
140 END
200 ' SAISIE du FICHIER ECRAN
210 OPENOUT FIC$+".DOC":PRINT #9,M
220 LOCATE 6,8:PRINT" ENTREZ LES PHRASES DU FICHIER":LOCATE 6,10:PRINT"ou P pour pause de bas de page":LOCATE 6,12:PRINT "ou Q pour quitter."
230 LOCATE 13,24:PRINT "Tapez une touche.":CALL &BB06:CLS 
240 BORDER 9
250 LINE INPUT"",A$
260 WRITE #9,A$
270 IF UPPER$(A$)="Q" THEN 300
280 IF UPPER$(A$)="P" THEN CLS
290 GOTO 250
300 CLOSEOUT:BORDER 1
310 CLS:LOCATE 8,10:PRINT"ET MAINTENANT LA LECTURE.":LOCATE 13,24:PRINT"TAPEZ UNE TOUCHE"
320 CALL &BB06:CLS:GOSUB 45000
330 RETURN
400 'CORRECTIONS DE FICHIERS
410 LOCATE 1,10:PRINT "Tapez ENTER pour chaque chaine correcte":PRINT:PRINT "sinon entrez la correction. Servez-vous":PRINT:PRINT "du SHIFT+COPY."
420 LOCATE 13,24:PRINT "Tapez une Touche":CALL &BB06
430 DIM A$(100):CLS:BORDER 9:I=0
440 OPENIN FIC$+".DOC":INPUT#9,M:MODE M
450 WHILE NOT EOF:I=I+1
460 INPUT#9,A$(I):PRINT A$(I)
470 LINE INPUT "",R$
480 IF R$<>"" THEN A$(I)=R$
490 WEND:CLOSEIN
500 OPENOUT FIC$
510 FOR J=1 TO I:WRITE#9,A$(J):NEXT
520 CLOSEOUT:BORDER 1
530 CLS:LOCATE 17,10:PRINT "LECTURE"
540 GOSUB 45000
550 RETURN
45000 ' AFFICHAGE PAR PAR PAGES D'ECRAN 
45010 OPENIN FIC$+".DOC"
45020 LOCATE 9,12:PRINT"SUR ECRAN OU IMPRIMANTE ?":TEX$="EI":GOSUB 50000:CLS
45030 INPUT#9,M:MODE M:IF K=2 THEN WIDTH 40*M
45040 WHILE NOT EOF
45050 INPUT#9,L$:ON K GOTO 45060,45080
45060 IF UPPER$(L$)="P" OR UPPER$(L$)="Q" THEN CALL &BB06:CLS:GOTO 45100
45070 PRINT L$:GOTO 45100
45080 IF UPPER$(L$)="P" OR UPPER$(L$)="Q" THEN PRINT#8,STRING$(40*M-1,"-"):GOTO 45100
45090 PRINT #8,L$
45100 WEND
45110 CLOSEIN
45120 RETURN
50000 'REPONSE A UN MENU
50010 LT=LEN(TEX$)
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 R$="":WHILE R$="":R$=INKEY$:WEND
50080 R$=UPPER$(R$):K=INSTR(TEX$,R$)
50090 IF K=0 THEN PRINT CHR$(7);:GOTO 50070
50100 RETURN