10 ' GESTION DU  MODE 178-202
20 ' (C) 1989 "AMSTAR & CPC"
30 ' Et "Stephane Saint-Martin"
40 ' le caractere  s'obtient avec control X
50 KEYDEF66,0,0,0,0:POKE48622,201:MODE2:PAPER0:PEN1:INK0,0:BORDER0:INK1,26:SPEEDKEY7,7:POKE&A701,0:GOSUB280:P0=1:A1=1:GOSUB340
60 A2$=INKEY$:IFA2$=""THEN60
70 IFASC(A2$)=242THEND1=-1:GOTO240
80 IFASC(A2$)=243THEND1=1:GOTO240
90 IFASC(A2$)=13THEN110
100 GOTO60
110 ONP0GOSUB440,460,480,500,510:IFP0=4THENGOSUB570:GOTO60
120 A3$=INKEY$:IFA3$=""THEN120
130 IFASC(A3$)=13ANDP=1THENONP0GOSUB520,530,540,550,560
140 IFASC(A3$)=13ANDP=1THEN60
150 IFASC(A3$)=240ANDP=1THEN120
160 IFASC(A3$)=241ANDP=R0(P0)THEN120
170 IFASC(A3$)=240THENGOSUB660
180 IFASC(A3$)=241THENGOSUB630
190 IFASC(A3$)=13ANDP0=2THENONP-1GOSUB690,700
200 IF ASC(A3$)=13 AND P0=1 THEN ON P-1 GOSUB 790,810
210 IFASC(A3$)=13ANDP0=3THENONP-1GOSUB740,770
220 IFASC(A3$)=13ANDP0=5THENGOSUB850
230 GOTO120
240 A1=P0:IFD1=-1ANDP0=1THEN60
250 IFD1=1ANDP0=5THEN60
260 IFD1=1THENP0=P0+1ELSEP0=P0-1
270 ONA1GOSUB390,400,410,420,430:ONP0GOSUB340,350,360,370,380:GOTO60
280 CLS:LOCATE 25,1:PRINT"";STRING$(31,32):LOCATE 25,2:PRINT"    GESTION DU MODE 178-202    ":LOCATE 25,3:PRINT STRING$(31,32);"":LOCATE 1,5:FOR I=30 TO 0 STEP-1:OUT &BC00,7:OUT &BD00,I:CALL &BD19:NEXT:FOR I=0 TO 35:OUT &BC00,7:OUT &BD00,I:CALL &BD19
290 NEXT:PRINT" ";CHR$(150);STRING$(12,154);CHR$(158);STRING$(13,154);CHR$(158);STRING$(19,154);CHR$(158);STRING$(15,154);CHR$(158);STRING$(13,154);CHR$(156)
300 PRINT" ";CHR$(149);"  MODE 178  ";CHR$(149);"  CATALOGUE  ";CHR$(149);"  EFFACER FICHIER  ";CHR$(149);"  CHANGER NOM  ";CHR$(149);"  *COPIEUR*  ";CHR$(149)
310 PRINT" ";CHR$(147);STRING$(12,154);CHR$(155);STRING$(13,154);CHR$(155);STRING$(19,154);CHR$(155);STRING$(15,154);CHR$(155);STRING$(13,154);CHR$(153):SOUND1,100,5,12:DIMR$(5,4):T(1)=4:T(2)=17:T(3)=31:T(4)=0:T(5)=66:RESTORE330:FORX=1TO5
320 FORY=1TO4:READR$(X,Y):NEXT:NEXT:R$(3,3)=R$(3,3)+STR$(PEEK(&A701))
330 DATA" MODE 178",-mode 178,-mode 202,," CATALOGUE",-catalogue,-run pgm,," EFFACER FICHIER",-effacer fichier,-User  No,," CHANGER NOM",,,,"  *COPIEUR* ",-vers 178 Ko,-vers 202 Ko,
340 LOCATE4,6:PRINT"";R$(1,1);" ":RETURN
350 LOCATE17,6:PRINT"";R$(2,1);" ":RETURN
360 LOCATE31,6:PRINT"";R$(3,1);" ":RETURN
370 LOCATE51,6:PRINT"";R$(4,1);" ":RETURN
380 LOCATE66,6:PRINT"";R$(5,1);" ":RETURN
390 LOCATE4,6:PRINTR$(1,1);" ":RETURN
400 LOCATE17,6:PRINTR$(2,1);" ":RETURN
410 LOCATE31,6:PRINTR$(3,1);" ":RETURN
420 LOCATE51,6:PRINTR$(4,1);" ":RETURN
430 LOCATE66,6:PRINTR$(5,1);" ":RETURN
440 R0(1)=3:P=1:LOCATE 2,7:PRINT CHR$(149);STRING$(12,32);CHR$(151):FOR A=8 TO 9:LOCATE 2,A:PRINT CHR$(149);STRING$(12,32);CHR$(149):NEXT:LOCATE 2,10:PRINT CHR$(147);STRING$(12,154);CHR$(153):LOCATE 4,8:PRINT"-mode 178":LOCATE 4,9:PRINT"-mode 202"
450 RETURN
460 R0(2)=3:P=1:LOCATE15,7:PRINTCHR$(157);STRING$(13,32);CHR$(151):FORA=8TO9:LOCATE15,A:PRINTCHR$(149);STRING$(13,32);CHR$(149):NEXT:LOCATE15,10:PRINTCHR$(147);STRING$(13,154);CHR$(153):LOCATE17,8:PRINT"-catalogue":LOCATE17,9:PRINT"-run pgm"
470 RETURN
480 R0(3)=3:P=1:LOCATE29,7:PRINTCHR$(157);STRING$(19,32);CHR$(151):FORA=8TO9:LOCATE29,A:PRINTCHR$(149);STRING$(19,32);CHR$(149):NEXT:LOCATE29,10:PRINTCHR$(147);STRING$(19,154);CHR$(153):LOCATE31,8:PRINT"-effacer fichier":LOCATE31,9
490 PRINT"-User  No";PEEK(&A701):RETURN
500 R0(4)=0:RETURN
510 R0(5)=3:P=1:LOCATE 65,7:PRINT CHR$(157);STRING$(13,32);CHR$(149):FOR A=8 TO 9:LOCATE 65,A:PRINT CHR$(149);STRING$(13,32);CHR$(149):NEXT:LOCATE 65,10:PRINT CHR$(147);STRING$(13,154);CHR$(153):FOR A=8 TO 10:LOCATE 66,A:PRINT R$(5,A-6):NEXT
520 FORA=11TO8STEP-1:LOCATE2,A:PRINTSTRING$(14,32):NEXT:LOCATE2,7:PRINTCHR$(147);STRING$(12,154);CHR$(155):RETURN
530 FORA=10TO8STEP-1:LOCATE15,A:PRINTSTRING$(15,32):NEXT:LOCATE15,7:PRINTCHR$(155);STRING$(13,154);CHR$(155):RETURN
540 FORA=10TO8STEP-1:LOCATE29,A:PRINTSTRING$(21,32):NEXT:LOCATE29,7:PRINTCHR$(155);STRING$(19,154);CHR$(155):RETURN
550 RETURN
560 FORA=11TO8STEP-1:LOCATE65,A:PRINTSTRING$(15,32):NEXT:LOCATE65,7:PRINTCHR$(155);STRING$(13,154);CHR$(153):RETURN
570 SPEEDKEY30,2:LOCATE1,13:INPUT"ANCIEN  NOM : ",A0$:IFA0$=""THEN620
580 IFLEN(A0$)<5ORLEN(A0$)>12THENLOCATE1,13:PRINTSTRING$(40,32):GOTO570
590 LOCATE1,15:INPUT"NOUVEAU NOM : ",N0$:IFN0$=""THEN620
600 IFLEN(N0$)<5ORLEN(N0$)>12THENLOCATE1,15:PRINTSTRING$(40,32):GOTO590
610 LOCATE17,23:PRINT" Appuyez sur une touche pour la modification... ":CALL&BB18:ùREN,àN0$,àA0$:SOUND1,100,5,12
620 WINDOW#2,1,80,11,25:PAPER#2,0:CLS#2:WINDOW#2,1,80,1,25:SPEEDKEY7,7:RETURN
630 P=P+1:IFP=2THENLOCATET(P0),6:PRINTR$(P0,1);" ":GOTO650
640 LOCATET(P0),P+5:PRINTR$(P0,P-1)
650 LOCATET(P0),P+6:PRINT"";R$(P0,P);"":RETURN
660 IFP0=5THENE$=CHR$(149)ELSEE$=" "
670 P=P-1:IFP=1THENLOCATET(P0)-1,8:PRINTE$;R$(P0,2);" ":LOCATET(P0),P+5:PRINT"";R$(P0,P);" ":RETURN
680 LOCATET(P0),P+7:PRINTR$(P0,P+1):LOCATET(P0),P+6:PRINT"";R$(P0,P);"":RETURN
690 IFP0=2THENLOCATE1,11:CAT:LOCATE10,24:PRINT" Appuyez sur une touche ":CALL&BB18:GOSUB620:RETURN
700 IFP0<>2THEN740
710 SPEED KEY 30,2:LOCATE 1,13:INPUT"Nom du Programme a lancer : ",N1$:IF N1$=""THEN GOSUB 620:RETURN
720 IFLEN(N1$)>12THENLOCATE1,13:PRINTSTRING$(40,32);STRING$(40,32):GOTO700
730 SPEEDKEY7,7:LOCATE10,23:PRINT" Appuyez sur une touche ":CALL&BB18:RUNN1$:RETURN
740 SPEEDKEY30,2:LOCATE1,13:INPUT"Nom du fichier a detruire : ",D0$:IFD0$=""THENLOCATE1,13:PRINTSTRING$(40,32):RETURN
750 IFLEN(D0$)<5ORLEN(D0$)>12THENLOCATE1,13:PRINTSTRING$(40,32);STRING$(40,32):GOTO740
760 LOCATE10,23:PRINT" Appuyez sur une touche ":CALL&BB18:ùERA,àD0$:SPEEDKEY7,7:GOSUB620:RETURN
770 LOCATE1,13:INPUT"USER No : ",U:IFU<0ORU>255THENGOSUB620:GOTO770
780 POKE&A701,U:R$(3,3)="-User  No"+STR$(U):LOCATET(P0),9:PRINT"-User  No";PEEK(&A701);"";CHR$(8);"  ":GOSUB620:RETURN
790 RESTORE800:FORF=&100TO&100+10:READA$:POKEF,VAL("&"+A$):NEXT:CALL&100:LOCATE5,6:PRINT"MODE 178":R$(1,1)=" MODE 178":RETURN
800 DATA3e,c1,1e,00,df,08,01,c9,81,c5,07
810 RESTORE820:FORF=&100TO&100+37:READA$:A=VAL("&"+A$):POKEF,A:NEXT:CALL&100:LOCATE5,6:PRINT"MODE 202":R$(1,1)=" MODE 202":RETURN
820 DATAed,5b,42,be,21,0d,01,01,19,00,ed,b0,c9,28,00,03,07,00,cb,00,3f,00,c0,00,10,00,01,00,0a,0a,20,32,e5,02,04,00,00,ff
850 SPEEDKEY30,2:LOCATE1,12:INPUT"COPIE DE : ",N$:IFN$=""THENLOCATE1,12:PRINTSTRING$(40,32);STRING$(40,32):SPEEDKEY7,7:RETURN
860 L=LEN(N$):IFL>12ORL<1THENLOCATE1,12:PRINTSTRING$(40,32);STRING$(40,32):GOTO850
870 SPEED KEY 7,7:SOUND 1,100,5,12:LOCATE 17,15:PRINT"Inserez la disquette et appuyez sur une touche .":CALL &BB18:LOCATE 1,15:PRINT STRING$(40,32);STRING$(40,32):WINDOW 1,80,1,23:ON ERROR GOTO 880:OPENIN N$
880 RESUME890
890 LOCATE1,15:PRINT" Informations sur le fichier :":T0=PEEK(&A767):D=PEEK(&A76A)+(PEEK(&A76B)*256):L0=PEEK(&A76D)+(PEEK(&A76E)*256):E0=PEEK(&A76F)+(PEEK(&A770)*256):IFT0=0THENM$="BASIC"
900 IFT0=1THENM$="BASIC PROTEGE"
910 IFT0=2THENM$="BINAIRE"
920 IFT0=6THENM$="ASCII"
930 LOCATE1,17:PRINT"TYPE...............  ";M$:PRINT"DEBUT.............. ";D:PRINT"LONGUEUR........... ";L0:PRINT"EXECUTION.......... ";E0:RESTORE990:FORB=59264TO59330:READJ$:POKEB,VAL("&"+J$):NEXT:FORH=63360TO63360+LEN(N$)-1
940 POKEH,ASC(MID$(N$,H-63359,1)):NEXT:POKE59268,L:POKE59302,L:POKE59273,PEEK(&A76A):POKE59274,PEEK(&A76B):POKE59307,PEEK(&A76A):POKE59308,PEEK(&A76B):POKE59310,PEEK(&A76D):POKE59311,PEEK(&A76E):POKE59313,PEEK(&A76F):POKE59314,PEEK(&A770)
950 POKE59316,PEEK(&A767)
960 DATA21,00,00,11,00,00,01,26,00,ED,B0,C9
970 RESTORE960:FORA=55168TO55179:READX$:POKEA,VAL("&"+X$):NEXT:RESTORE960:FORA=57216TO57227:READX$:POKEA,VAL("&"+X$):NEXT:IFP=2ORP=3THENPOKE55170,1:POKE55172,128:POKE55173,255:POKE57217,128:POKE57218,255:POKE57221,1
980 IFP=4THENPOKE55169,128:POKE55172,128:POKE55173,255:POKE57217,128:POKE57218,255:POKE57220,128
990 DATA21,80,F7,06,00,CD,77,BC,21,00,00,CD,83,BC,CD,7A,BC,CD,80,D7,CD,80,EF,CD,80,DF,3E,07,CD,5A,BB,CD,06,BB,21,80,F7,06,00,CD,8C,BC,21,00,00,11,00,00,01,00,00,3E,00,CD,98,BC,CD,8F,BC,3E,07,CD,5A,BB,CD,00,00
1000 IFP=2THENRESTORE1040:T=26
1010 IFP=3THENRESTORE1050:T=53
1030 FORB=61312TO61311+T:READH$:POKEB,VAL("&"+H$):NEXT:CALL59264
1040 DATA21,8f,ef,11,00,01,01,0b,00,ed,b0,cd,00,01,c9,3e,c1,1e,00,df,08,01,c9,81,c5,07
1050 DATA21,8F,EF,11,00,01,01,26,00,ED,B0,CD,00,01,C9,ed,5b,42,be,21,0d,01,01,19,00,ed,b0,c9,28,00,03,07,00,cb,00,3f,00,c0,00,10,00,01,00,0a,0a,20,32,e5,02,04,00,00,ff