1 '**** KIT-CAT **(V 2,0) 31/07/86
2 '**** jeff Gaste ******
3 ' Fichiers = DONNEES. ; LOGI. ; LOGI1.BAS
10 MODE 0:LOCATE 7,10:PRINT"KIT-CAT"
20 OPENOUT "bidon":MEMORY HIMEM-1:CLOSEOUT
60  DIM d(50),dc(50),f(2),i(10),f$(10),t$(50,2,10),ge$(4,10),g$(50,2),fa$(50,2),k$(50,2)
70 DEFINT a-z
90 FOR r=0 TO 36:READ dat$:NEXT r 
100 MODE 2:GOSUB 140:GOTO 150
110 WINDOW#2,1,80,2,14:PAPER#2,0:PEN#2,1
120 WINDOW#3,27,80,15,25:PAPER#3,1:PEN#3,0
130 WINDOW#4,1,24,15,25:PAPER#4,1:PEN#4,0
140 WINDOW#1,1,80,1,1:PAPER#1,1:PEN#1,0:RETURN
150 ft$="KIT-CAT":GOSUB 2100 
160 LOCATE 2,3:PRINT "Ce progamme vous servira:":PRINT:PRINT"-a modifier un CATalogue de Disque (Effacer ou Renommer des fichiers)"
170 PRINT:PRINT"-a creer ou modifier des Menus deroulants en en-tete de vos Disques
180 PRINT:PRINT"-a imprimer des jaquettes et des etiquettes sur vos Disques"
190 PRINT:PRINT"-a imprimer les CATalogues et les Menus"
200 PRINT:PRINT"-a gerer votre Logitheque (recherches multi-criteres)
210 LOCATE 2,16:PRINT"Avant de commencer, assurez vous:":PRINT:PRINT"-que vous avez un fichier 'LOGI.  'sur ce Disque (sinon RUN";CHR$(34);"LOGI1)"  
220 PRINT:PRINT"-que vous avez bien un fichier 'D.BAS'sur ce Disque (sinon le mettre)"
230 PRINT:PRINT"-que vous avez bien un fichier 'DONNEES'sur ce Disque,ou au moins 1K FREE"
240 LOCATE 30,24:PRINT " PATIENCE ....":REM '10'=CTRL x
250 OPENIN "logi":FOR dc=1 TO 50:FOR f=1 TO 2
260 INPUT#9,g$(dc,f),fa$(dc,f),k$(dc,f)
270 FOR i=1 TO 10:INPUT#9,t$(dc,f,i):NEXT i,f,dc:CLOSEIN
280 LOCATE 30,24:PRINT " DESIGNEZ UNE TOUCHE...":CALL &BB18
999 'menu principal
1000 MODE 2:GOSUB 110 
1010 dc=1:f=1:i=1
1020 ft$="KIT-CAT  Mode  d'emploi":GOSUB 2100:GOSUB 2400
1030 CLS#2:LOCATE#2,2,4:PRINT#2,"Choisissez votre option en deplacant le'masque' avec les fleches de direction":PRINT#2:PRINT#2,"Puis confirmez par <ENTER> ou <RETURN>"
1040 RESTORE 11000:CLS#3:dx=0:dy=0
1050 FOR dy=0 TO 3:FOR dx=0 TO 1
1060 LOCATE#3,4+(23*dx),3+(2*dy):READ ge$(dx,dy):PRINT#3,ge$(dx,dy)
1070 NEXT dx,dy
1080 z=FRE(""):LOCATE#2,16,12:PRINT#2,"Memoire Disponible: ";z;" Octets"
1089 '
1090 'sous programme de dessin des cadres
1091 '
1100 m=2:cou=0:eff=1:choix=1:no=8:nc=2:x=215:dx=0:y=146:dy=0:ly=6:GOSUB 1200 
1110 ON choix GOTO 3000,4000,5000,6000,7000,8000,9000,10000
1200 ce=cou:GOSUB 1400:CALL &BB18
1210 IF INKEY(0)=0 THEN ce=eff:GOSUB 1400:choix=choix-nc:dy=dy-1:GOTO 1260
1220 IF INKEY(2)=0 THEN ce=eff:GOSUB 1400:choix=choix+nc:dy=dy+1:GOTO 1260
1230 IF INKEY(1)=0 THEN ce=eff:GOSUB 1400:choix=choix+1:dx=dx+1:GOTO 1260
1240 IF INKEY(8)=0 THEN ce=eff:GOSUB 1400:choix=choix-1:dx=dx-1:GOTO 1260
1250 IF INKEY(6)=0 OR INKEY(18)=0 THEN RETURN ELSE
1260 IF dy<0 THEN dy=0:choix=choix+nc
1270 IF dy>INT((no-1)/nc) THEN dy=INT((no-1)/nc):choix=choix-nc
1280 IF dx>(nc-1) THEN dx=(nc-1):choix=choix-1
1290 IF dx<0 THEN dx=0:choix=choix+1
1300 GOTO 1200
1400 IF nc=4 THEN GOTO 1500 ELSE 1600
1500 PLOT x+dx*160,y-16*dy,ce:DRAWR 140,0:PLOTR 0,-17:DRAWR -140,0:PLOTR 0,17:RETURN
1600 PLOT x+(dx*400)/nc,y-(16*dy*m),ce:DRAWR 30*ly,0:DRAWR 0,-19:DRAWR -(30*ly),0:DRAWR 0,19:RETURN 
2089 '
2090 'sous programmes titre et commandes
2091 '
2100 CLS#1:LOCATE#1,40-LEN(ft$)/2,1:PRINT#1,ft$:RETURN
2200 CLS#2:LOCATE#2,2,4:PRINT#2,"Chargez la disquette concernee....":CALL &BB18:RETURN
2400 CLS#4:LOCATE#4,12,1:PRINT#4,CHR$(214);CHR$(215)
2410 LOCATE#4,7,2:PRINT#4,CHR$(214);"          ";CHR$(215)  
2420 LOCATE#4,7,3:PRINT#4,CHR$(213);"   CHOIX  ";CHR$(212)
2430 LOCATE#4,12,5:PRINT#4,CHR$(213);CHR$(212)
2440 PRINT#4,"  puis":PRINT#4:PRINT#4,"  <ENTER> ou <RETURN>":RETURN
2500 CLS#3:LOCATE#3,20,1:PRINT#3,"Numero du Disque"
2510 n=0:dx=0:dy=0:FOR dy=0 TO 4:FOR dx=0 TO 9
2520 LOCATE#3,3+(5*dx),3+(2*dy):n=n+1:PRINT#3,n:NEXT dx,dy
2530 m=2:cou=0:eff=1:choix=1:no=50:nc=10:x=220:dx=0:y=146:dy=0:ly=1:GOSUB 1200:RETURN
2600 CLS#3:LOCATE#3,14,1:PRINT#3,"Quelle Face ?"
2610 LOCATE#3,4,3:PRINT#3,"Face 1 ":LOCATE#3,4,5:PRINT#3,"Face 2"
2620 cou=0:eff=1:choix=1:no=2:nc=1:x=230:dx=0:y=146:dy=0:ly=2:GOSUB 1200:RETURN
2700 CLS#3:LOCATE#3,2,1:PRINT#3,"Genre des programmes:"
2710 RESTORE 11020:dx=0:dy=0:FOR dy=0 TO 3:FOR dx=0 TO 2
2720 LOCATE#3,3+(16*dx),3+(2*dy):READ ge$(dx,dy):PRINT#3,ge$(dx,dy):NEXT dx,dy
2730 m=2:cou=0:eff=1:choix=1:no=12:nc=3:x=210:dx=0:y=146:dy=0:ly=4:GOSUB 2400:GOSUB 1200:RETURN
2800 CLS#4:LOCATE#4,2,2:PRINT#4," Assurez-vous":PRINT#4:PRINT#4," que l'imprimante":PRINT#4:PRINT#4," est branchee"::PRINT#4:PRINT#4," puis une touche":CALL &BB18:RETURN
2810 CLS#2:PRINT#2:PRINT#2," Patience sauvegarde en cours....":RETURN
2820 CLS#4:LOCATE#4,2,2:PRINT#4,"pour continuer":PRINT#4:PRINT#4," DESIGNEZ UNE TOUCHE":CALL &BB18:RETURN
2999 'Modification d'un catalogue
3000 CLS
3010 ft$="Modification d'un catalogue"
3020 GOSUB 2100:GOSUB 2200
3030 CLS:CLS#2:CLS#3:CLS#4:GOSUB 2100:CAT
3040 GOSUB 2400
3070 RESTORE 11010:dx=0:dy=0:FOR dy=0 TO 1:FOR dx=0 TO 1
3080 LOCATE#3,4+(26*dx),3+(2*dy):READ b$:PRINT#3,b$:NEXT dx,dy
3090 m=2:cou=0:eff=1:choix=1:no=4:nc=2:x=220:dx=0:y=146:dy=0:ly=6:GOSUB 1200
3100 ON choix GOTO 3200,3300,3400,3500
3199 'effacment des fichiers .BAK
3200 GOSUB 2810
3210 ùERA,"*.bak":GOTO 3030
3299 'changement de nom
3300 GOSUB 3600
3310 LOCATE#4,1,6:PRINT#4," Nouveau nom : ":PRINT#4:INPUT#4,nn$
3320 ùREN,nn$,f$(j):GOTO 3030
3399 'effacement d'un fichier
3400 GOSUB 3600
3410 LOCATE#4,2,7:PRINT#4,"  Confirmez par <O>ui":PRINT#4:PRINT#4,"  sinon <ESPACE>":CALL &BB18
3420 IF INKEY(34)=0 THEN ùERA,f$(j)
3430 GOTO 3030
3500 ' retour menu
3510 GOTO 1000
3599 'sous programme cadres dans le catalogue
3600 CLS#4:LOCATE#4,2,2:PRINT#4,"Nom du fichier: ":LOCATE#4,3,4:GOTO 3800
3700 CLS#4:LOCATE#4,2,2:PRINT#4,"Il reste:":LOCATE#4,3,4:GOTO 3800
3800 m=1:cou=1:eff=0:choix=1:no=40:nc=4:x=0:dx=0:y=353:dy=0:GOSUB 1200
3810 ce=eff:f$(j)="":GOSUB 1400
3820 FOR rg=1 TO 12
3830 LOCATE#2,((3+choix)MOD 4)*20+rg,3+INT(((choix-1)*2)/8) 
3840 a$=COPYCHR$(#2):f$(j)=f$(j)+a$:PRINT#4,a$;
3870 NEXT rg:RETURN
4000 'Impression d'une jaquette    
4010 CLS:ft$="Impression d'une jaquette":GOSUB 2100
4100 'Impression d'un disque donne
4110 CLS#2:GOSUB 2400:GOSUB 2500:dc=choix:GOSUB 9220
4120 aa$="I"+SPACE$(66)+"I"
4200 GOSUB 4800:PRINT#8,STRING$(68,"-");"  decoupez":PRINT#8,aa$:PRINT#8,aa$:PRINT#8,STRING$(68,"-");"  pliez";:GOSUB 4810
4210 GOSUB 4840:GOSUB 4820
4220 PRINT#8," ";g$(dc,1);SPACE$(15-LEN(g$(dc,1)));"DISC :";dc;" ";g$(dc,2);
4250 GOSUB 4840:GOSUB 4830 
4260 GOSUB 4800:PRINT#8,STRING$(68,"-");"  pliez"
4270 GOSUB 4820
4280 PRINT#8," ";g$(dc,1);SPACE$(15-LEN(g$(dc,1)));"DISC :";dc;" ";g$(dc,2)
4290 PRINT#8,"I";SPACE$(14);"Tapez RUN";CHR$(34);"d";SPACE$(14);"I"
4300 GOSUB 4840:GOSUB 4830:GOSUB 4800
4310 PRINT#8,"I";" Face 1";SPACE$(27);"Face 2"
4320 PRINT#8,"I";" format: ";fa$(dc,1);SPACE$(20);" format: ";fa$(dc,2)
4330 PRINT#8,aa$
4340 FOR i=1 TO 10 
4350 PRINT#8,"I";"  ";t$(dc,1,i);SPACE$(34-LEN(t$(dc,1,i)));t$(dc,2,i);SPACE$(30-LEN(t$(dc,2,i)));"I"
4360 NEXT 
4370 PRINT#8,aa$:PRINT#8,aa$
4380 PRINT#8,"I";" Reste:";k$(dc,1);SPACE$(20);" Reste:";k$(dc,2)
4390 PRINT#8,STRING$(68,"-"):GOSUB 4810
4700 GOTO 1000
4800 PRINT#8,CHR$(15):RETURN:' ecriture condensee 
4810 PRINT#8,CHR$(18):RETURN:' retour standard
4820 PRINT#8,CHR$(27);"x";CHR$(1);CHR$(1);CHR$(27);"p";CHR$(1);:RETURN:' proprtionnel NLQ
4830 PRINT#8,CHR$(27);"x";CHR$(0);CHR$(27);"p";CHR$(0);:RETURN:' retour standard
4840 PRINT#8,CHR$(27);"j";CHR$(50):RETURN:' recul papier
4990 CALL &BB06:GOTO 1000
5000 'Creation d'un  Menu
5010 CLS:ft$="Creation d'un  Menu":GOSUB 2100:GOSUB 2200
5020 CLS#2:CLS#3:CLS#4:CAT
5040 LOCATE#3,20,1:PRINT#3,"Mode d'emploi"
5050 PRINT#3:PRINT#3," Determinez le No du disque"
5060 PRINT#3:PRINT#3," Puis la face concernee"
5070 PRINT#3:PRINT#3," Puis le 'genre' des programmes"
5080 GOSUB 2820
5090 CLS#3
5100 GOSUB 2400:GOSUB 2500:dc=choix
5110 GOSUB 2600:f=choix:GOSUB 2700
5120 IF choix<12 THEN g$(dc,f)=ge$(dx,dy) ELSE CLS#4:LOCATE#4,2,2:LINE INPUT#4,"Genre:",g$(dc,f)
5130 g$(dc,f)=LEFT$(UPPER$(g$(dc,f)),14)
5140 fa=PEEK(&BE54):IF fa=0 THEN fa$(dc,f)="Data" ELSE fa$(dc,f)="System"
5150 GOSUB 5160:GOTO 5300
5160 CLS#3:LOCATE#3,6,6:PRINT#3,"Designez le nombre de'K  free'"
5170 GOSUB 3700
5180 k$(dc,f)=LEFT$(f$(j),4)
5190 IF k$(dc,fc)="" THEN k$(dc,fc)="   K"
5200 RETURN
5300 CLS#3:CLS#4
5310 LOCATE#3,20,1:PRINT#3,"Mode d'emploi"
5320 PRINT#3:PRINT#3," Designer le fichier 'lanceur' du programme"
5330 PRINT#3:PRINT#3," Si le Programme a le meme nom :<COPY>"
5340 PRINT#3:PRINT#3," Sinon <ESPACE> puis tapez le nom"
5350 PRINT#3:PRINT#3," pour continuer DESIGNEZ UNE TOUCHE":CALL &BB18
5360 CLS#3:LOCATE#3,2,1:PRINT#3,"Disque:";dc;" Face: ";f;" Genre:";g$(dc,f)
5370 LOCATE#3,38,7:PRINT#3,"Format:";fa$(dc,f):LOCATE#3,38,9:PRINT#3,"Reste :";k$(dc,f)
5400 i=1:enregis=0:GOSUB 5410:GOTO 5610
5410 IF(INKEY(68)=0 OR i>10) THEN enregis=1
5420 WHILE enregis=0:GOSUB 2400:GOSUB 3600:f$(i)=f$(j):LOCATE#4,2,6:PRINT#4,"Titre :":LOCATE#4,2,10:PRINT#4,"Tapez <COPY>ou<ESPACE>":LOCATE#4,1,8:CALL &BB18
5430 IF INKEY(9)=0 THEN t$(dc,f,i)=LEFT$(f$(i),8):PRINT#4,"  ";t$(dc,f,i):FOR t=1 TO 300:NEXT ELSE LINE INPUT#4,t$(dc,f,i)
5440 f$(i)=LOWER$(f$(i)):t$(dc,f,i)=LEFT$(UPPER$(t$(dc,f,i)),15):LOCATE#3,2+18*INT((i-1)/4),3+2*((i-1)MOD 4):PRINT#3,t$(dc,f,i)
5550 CLS#4:LOCATE#4,2,2:PRINT#4,"Tapez :":LOCATE#4,2,4:PRINT#4,"<TAB> si Menu Complet":LOCATE#4,2,6:PRINT#4,"<ESPACE> sinon"
5560 i=i+1:CALL &BB18:GOTO 5410:WEND 
5570 CLS#4:LOCATE#4,2,2:PRINT#4,"Menu complet ?"
5580 LOCATE#4,2,4:PRINT#4,"Confirmez par <0>ui"
5590 LOCATE#4,2,6:PRINT#4,"Sinon une autre touche":CALL &BB18
5600 IF INKEY(34)=0 THEN RETURN ELSE 5410 
5610 GOSUB 5650:GOTO 1000
5650 k=0:k=VAL(LEFT$(k$(dc,f),3)):k=k-1
5660 IF k<10 THEN k$(dc,f)="  "+STR$(k)+"K"
5670 IF k<100 THEN k$(dc,f)=" "+STR$(k)+"K" ELSE k$(dc,f)=STR$(k)+"K"
5690 'sauvegarde d'un menu
5700 GOSUB 2810
5710 OPENOUT "donnees"
5720 WRITE#9,dc,f,i,g$(dc,f),fa$(dc,f),k$(dc,f)   
5730 FOR i=1 TO i-1:WRITE#9,t$(dc,f,i),f$(i):NEXT
5740 CLOSEOUT 
5750 FOR i=i TO 10:t$(dc,f,i)="":NEXT:i=p
5760 RETURN
6000 'Impression d'une etiquette 
6010 CLS:ft$="Impression d'une etiquette":GOSUB 2100 
6100 'Impression d'un disque donne
6110 CLS#2:GOSUB 2400:GOSUB 2500:dc=choix
6120 GOSUB 2400:GOSUB 2600:f=choix:GOSUB 9220
6200 GOSUB 4800:PRINT#8,STRING$(48,"-");:GOSUB 4810
6210 GOSUB 4820:PRINT#8,"I ";"No:";dc;g$(dc,f);"  ";fa$(dc,f)
6220 PRINT#8,"I";SPACE$(16);"reste: ";k$(dc,f);
6230 GOSUB 4830:GOSUB 4800:FOR i=1 TO 5
6240 PRINT#8,"I   ";t$(dc,f,i);SPACE$(22-LEN(t$(dc,f,i)));t$(dc,f,i+5);SPACE$(22-LEN(t$(dc,f,i+5)));"I"
6250 NEXT i:PRINT#8,STRING$(48,"-"):GOSUB 4810
6990 GOTO 1000
7000 'Modification d'un Menu
7010 CLS:ft$="Modification d'un Menu":GOSUB 2100:GOSUB 2200
7020 GOSUB 7900:p=i:CLS#2:CLS#3:CLS#4:GOSUB 2400:GOSUB 7030:GOTO 7060
7030 CLS#2:LOCATE#2,4,2:PRINT#2,"Ancien Menu":LOCATE#2,2,4:PRINT#2,"Disque No: ";dc:LOCATE#2,2,6:PRINT#2,"Face  :";f:LOCATE#2,2,8:PRINT#2,"Genre :";g$(dc,f)
7040 LOCATE#2,2,10:PRINT#2,"Format: ";fa$(dc,f):LOCATE#2,2,12:PRINT#2,"Reste: ";k$(dc,f)
7050 FOR i=1 TO i-1:LOCATE#2,35,i+1:PRINT#2,t$(dc,f,i):LOCATE#2,55,i+1:PRINT#2,f$(i):NEXT:RETURN
7060 RESTORE 11030:dx=0:dy=0:FOR dy=0 TO 3:FOR dx=0 TO 1
7070 LOCATE#3,4+(26*dx),3+(2*dy):READ b$:PRINT#3,b$:NEXT dx,dy
7080 m=2:cou=0:eff=1:choix=1:no=8:nc=2:x=220:dx=0:y=146:dy=0:ly=6:GOSUB 1200
7090 ON choix GOTO 7100,7200,7300,7400,7500,7600,7700,7990
7100 'changer le No du disque
7110 i=p:d=dc:fi$(i)="":g$(d,f)=g$(dc,f):fa$(d,f)=fa$(dc,f):k$(d,f)=k$(dc,f)
7120 FOR i=1 TO p:t$(d,f,i)=t$(dc,f,i):fi$(i)=f$(i):NEXT
7130 GOSUB 2500:dc=choix:g$(dc,f)=g$(d,f):fa$(dc,f)=fa$(d,f):k$(dc,f)=k$(d,f)
7140 FOR i=1 TO i-1:t$(dc,f,i)=t$(d,f,i):f$(i)=fi$(i):NEXT
7150 q=1:FOR q=i TO 10:t$(dc,f,q)="":NEXT
7160 GOSUB 7030
7170 g$(d,f)="":fa$(d,f)="":k$(d,f)="":q=1:FOR q=1 TO 10:t$(d,f,q)="":f$(q)="":NEXT
7190 CLS#3:GOTO 7060
7200 'annulation d'un titre
7210 i=p:CLS:CLS#2:CLS#3:CLS#4:GOSUB 2100:CAT:GOSUB 5160
7220 GOSUB 7030:CLS#3:LOCATE#3,6,6:PRINT#3,"Designez le titre a supprimer"
7230 m=1:cou=1:eff=0:choix=1:no=i-1:nc=1:x=260:dx=0:y=369:dy=0:ly=5:GOSUB 1200
7240 h=choix:t$(dc,f,h)="":f$(h)=""
7250 FOR h=h TO i-1:t$(dc,f,h)=t$(dc,f,h+1):t$(dc,f,i)=t$(dc,f,h):f$(h)=f$(h+1):f$(i)=f$(h):NEXT:i=i-1
7260 p=p-1:i=p:FOR i=i TO 10:t$(dc,f,i)="":f$(i)="":NEXT
7270 GOSUB 7030:CLS#3:GOTO 7060
7300 'changement de face 
7310 i=p:fi=f:fi$(i)="":g$(dc,fi)=g$(dc,f):fa$(dc,fi)=fa$(dc,f):k$(dc,fi)=k$(dc,f)
7320 FOR i=1 TO p:t$(dc,fi,i)=t$(dc,f,i):fi$(i)=f$(i):NEXT
7330 GOSUB 2600:f=choix:g$(dc,f)=g$(dc,fi):fa$(dc,f)=fa$(dc,fi):k$(dc,f)=k$(dc,fi)
7340 FOR i=1 TO i-1:t$(dc,f,i)=t$(dc,fi,i):f$(i)=fi$(i):NEXT
7350 q=1:FOR q=i TO 10:t$(dc,f,q)="":NEXT
7360 GOSUB 7030
7370 g$(dc,fi)="":fa$(dc,fi)="":k$(dc,fi)="":q=1:FOR q=1 TO 10:t$(dc,fi,q)="":f$(q)="":NEXT
7380 CLS#3:GOTO 7060
7400 'ajouter un titre
7410 i=p:CLS:CLS#2:CLS#3:CLS#4:GOSUB 2100:CAT:GOSUB 5160
7420 CLS#3:LOCATE#3,2,1:PRINT#3,"Disque:";dc;" Face: ";f;" Genre:";g$(dc,f)
7430 LOCATE#3,38,7:PRINT#3,"Format:";fa$(dc,f):LOCATE#3,38,9:PRINT#3,"Reste :";k$(dc,f)
7440 FOR i=1 TO i-1:LOCATE#3,2+18*INT((i-1)/4),3+2*((i-1)MOD 4):PRINT#3,t$(dc,f,i):NEXT
7450 enregis=0:GOSUB 5410:CLS#2:CLS#3:CLS#4:GOSUB 2400:enregis=0:GOSUB 7030:GOTO 7060
7500 'changer le genre  
7510 i=p:a$="":g$(dc,f)=""
7520 GOSUB 2700:a$=UPPER$(ge$(dx,dy))
7530 g$(dc,f)=a$
7540 GOSUB 7030:CLS#3:GOTO 7060
7600 'sauvegarde du nouveau menu
7610 ùERA,"donnees.":GOSUB 5700:i=p
7620 GOTO 1000
7700 'changer un fichier lanceur
7710 i=p:GOSUB 7030:CLS#3:LOCATE#3,6,6:PRINT#3,"Designez le fichier a changer"
7720 m=1:cou=1:eff=0:choix=1:no=i-1:nc=1:x=420:dx=0:y=369:dy=0:ly=4:GOSUB 1200
7730 i=choix:h=i:t$(dc,f,h)=t$(dc,f,i):f$(h)=""
7740 CLS:CLS#2:CLS#3:CLS#4:GOSUB 2100:CAT
7750 LOCATE#3,6,6:PRINT#3,"Nom du nouveau fichier":GOSUB 3600
7760 i=h:f$(i)=LOWER$(f$(j)):t$(dc,f,i)=t$(dc,f,h)
7770 i=p
7780 GOSUB 7030:CLS#3:GOSUB 2400:GOTO 7060
7880 GOTO 1000
7890 'ligne annulee
7900 OPENIN "donnees":INPUT#9,dc,f,i,g$(dc,f),fa$(dc,f),k$(dc,f)
7910 FOR i=1 TO i-1:INPUT#9,t$(dc,f,i),f$(i):NEXT:CLOSEIN:RETURN
7989 'retour menu pal
7990 GOTO 1000
8000 'Impression des catalogues 
8010 CLS:ft$="Impression des Catalogues":GOSUB 2100:GOSUB 2200
8020 CLS:CLS#2:CLS#3:CLS#4:GOSUB 2100:CAT:GOSUB 2400
8030 LOCATE#3,20,1:PRINT#3,"Quel type d'impression ?"
8040 LOCATE#3,4,3:PRINT#3,"Catalogue   Seul":LOCATE#3,4,5:PRINT#3,"Catalogue + Menu"
8050 m=2:cou=0:eff=1:choix=1:no=2:nc=1:x=220:dx=0:y=146:dy=0:ly=5:GOSUB 1200 
8060 GOSUB 2800:PRINT#8,CHR$(15):'caractere de CRTL ecriture condensee
8070 CLS#4:ON choix GOTO 8200,8100
8100 'impression du menu
8110 GOSUB 7900
8120 CLS#3:LOCATE#3,2,1:PRINT#3,"Disque: ";dc;"Face: ";f;"Genre: ";g$(dc,f)
8130 FOR i=1 TO i-1:LOCATE#3,2+18*INT((i-1)/4),3+2*((i-1)MOD 4):PRINT#3,t$(dc,f,i):NEXT  
8140 LOCATE#3,38,7:PRINT#3,"Format:";fa$(dc,f);:LOCATE#3,38,9:PRINT#3,"Reste:";k$(dc,f)
8150 PRINT#8,"Disque: ";dc;" Face: ";f;" Genre: ";g$(dc,f),"Format: ";fa$(dc,f)
8160 PRINT#8,"Titres","Fichiers lanceurs"
8170 FOR i=1 TO i-1:PRINT#8,TAB(10);t$(dc,f,i),f$(i):NEXT
8200 'impression du catalogue
8210 PRINT#8:PRINT#8,"Catalogue"
8220 FOR l=1 TO 13:a$="":ca$=""
8230 FOR c=1 TO 80:LOCATE#2,c,l:a$=COPYCHR$(#2):ca$=ca$+a$:NEXT c
8240 PRINT#8,ca$:NEXT l 
8250 a$="":ca$=""
8990 PRINT#8,CHR$(18):GOTO 1000
9000 'Logitheque
9010 CLS:ft$="Logitheque":GOSUB 2100:CLS#3:CLS#4:GOSUB 2400
9020 LOCATE#3,2,1:PRINT#3,"Consultation de la logitheque"
9030 RESTORE 11040:dx=0:dy=0:FOR dy=0 TO 2:FOR dx=0 TO 1  
9040 LOCATE#3,4+(26*dx),3+(2*dy):READ b$:PRINT#3,b$:NEXT dx,dy
9050 m=2:cou=0:eff=1:choix=1:no=6:nc=2:x=220:dx=0:y=146:dy=0:ly=6:GOSUB 1200
9060 ON choix GOTO 9100,9200,9300,9400,9600,9700
9100 dc=1:'consultation disque par disque
9110 WHILE dc<50:GOSUB 9220
9120 CLS#3:LOCATE#3,4,3:PRINT#3,"Disque suivant":LOCATE#3,4,5:PRINT#3,"Retour Logitheque"
9130 m=2:cou=0:eff=1:choix=1:no=2:nc=1:x=230:dx=0:y=146:dy=0:ly=5:GOSUB 1200
9140 IF choix=1 THEN dc=dc+1:GOTO 9110 ELSE GOTO 9010
9150 WEND:GOTO 9010
9160 CLS#3:LOCATE#3,4,3:PRINT#3,"Disque suivant":LOCATE#3,4,5:PRINT#3,"Retour Logitheque"
9170 m=2:cou=0:eff=1:choix=1:no=2:nc=1:x=230:dx=0:y=146:dy=0:ly=5:GOSUB 1200
9180 IF choix=1 THEN dc=dc+1:GOTO 9110 ELSE GOTO 9010
9190 WEND:GOTO 9010
9200 'consultation par No de disque
9210 GOSUB 2500:dc=choix:GOSUB 9220:GOTO 9270
9220 CLS#2:LOCATE#2,2,2:PRINT#2,"Disque No: ";dc
9230 LOCATE#2,2,4:PRINT#2,"face 1":LOCATE#2,43,4:PRINT#2,"face 2" 
9240 LOCATE#2,2,6:PRINT#2,"genre: ";g$(dc,1):LOCATE#2,2,8:PRINT#2,"format: ";fa$(dc,1):LOCATE#2,2,10:PRINT#2,"reste: ";k$(dc,1)
9250 LOCATE#2,43,6:PRINT#2,"genre: ";g$(dc,2):LOCATE#2,43,8:PRINT#2,"format: ";fa$(dc,2):LOCATE#2,43,10:PRINT#2,"reste: ";k$(dc,2)
9260 FOR i=1 TO 10:LOCATE#2,28,i+1:PRINT#2,t$(dc,1,i):LOCATE#2,66,i+1:PRINT#2,t$(dc,2,i):NEXT:RETURN
9270 CLS#3:LOCATE#3,4,3:PRINT#3,"Autre Disque":LOCATE#3,4,5:PRINT#3,"Retour Logitheque"
9280 m=2:cou=0:eff=1:choix=1:no=2:nc=1:x=230:dx=0:y=146:dy=0:ly=5:GOSUB 1200
9290 IF choix=1 THEN CLS#2:GOTO 9210 ELSE GOTO 9010
9300 'disques existants
9310 dc=1:c=1:l=1:FOR l=1 TO 5:FOR c=1 TO 10
9320 WHILE dc<10:LOCATE#2,2+8*(c-1),2*l:GOTO 9340:WEND
9330 LOCATE#2,1+8*(c-1),2*l
9340 PRINT#2,dc;:IF g$(dc,1)<>"" THEN PRINT#2,"fc 1" ELSE PRINT#2,"- -"
9350 LOCATE#2,5+8*(c-1),2*l+1:IF g$(dc,2)<>"" THEN PRINT#2,"fc 2" ELSE PRINT#2,"- -"
9360 dc=dc+1:NEXT c,l
9370 CLS#3:GOSUB 2820:GOTO 9010 
9400 'tri par genre
9410 n=0:ge$(dx,dy)="":GOSUB 2700
9420 IF choix<12 THEN GOTO 9500
9430 CLS#4:LOCATE#4,2,2:LINE INPUT#4,"Genre:",ge$(dx,dy):ge$(dx,dy)=LEFT$(ge$(dx,dy),14)
9500 LOCATE#2,2,2:PRINT#2,"Les programmes correspondant au genre demande se trouve:";:PRINT#2,SPACE$(10)
9510 FOR dc=1 TO 50:FOR f=1 TO 2
9520 IF g$(dc,f)=UPPER$(ge$(dx,dy)) THEN n=n+1 ELSE GOTO 9550
9530 LOCATE#2,2+INT(((n-1)*2)/18)*19,((8+n)MOD 9)+4
9540 PRINT#2,"Disque:";dc;"Face:";f
9550 NEXT f,dc:dc=1:f=1
9560 IF n=0 THEN LOCATE#2,2,2:PRINT#2,"Il n'y a pas de programmes correspondant a ce genre dans Logitheque.."
9570 CLS#3:LOCATE#3,4,3:PRINT#3,"Autre genre":LOCATE#3,4,5:PRINT#3,"Retour Logitheque"
9580 m=2:cou=0:eff=1:choix=1:no=2:nc=1:x=230:dx=0:y=146:dy=0:ly=5:GOSUB 1200
9590 IF choix=1 THEN CLS#2:GOTO 9410 ELSE GOTO 9010
9600 'ko restants par disque
9610 dc=1:c=1:l=1:FOR l=1 TO 5:FOR c=1 TO 10
9620 WHILE dc<10:LOCATE#2,2+8*(c-1),2*l:GOTO 9640:WEND
9630 LOCATE#2,1+8*(c-1),2*l
9640 PRINT#2,dc;:PRINT#2,RIGHT$(k$(dc,1),4)
9650 LOCATE#2,5+8*(c-1),2*l+1:PRINT#2,RIGHT$(k$(dc,2),4)
9660 dc=dc+1:NEXT c,l
9670 CLS#3:GOSUB 2820:GOTO 9010   
9700 'retour menu principal
9710 GOTO 1000
10000 'Sortie du programme
10010 CLS:ft$="Sortie du programme":GOSUB 2100
10020 CLS#2:LOCATE#2,2,4:PRINT#2,"Remettez la disquette contenant LOGITHEQUE.."
10030 LOCATE#2,2,8:PRINT#2,"Sinon une autre touche..":CALL &BB06
10040 GOSUB 2810
10050 ùERA,"logi."
10100 OPENOUT"logi"
10110 FOR dc=1 TO 50
10120   FOR f=1 TO 2
10130 WRITE#9,g$(dc,f),fa$(dc,f),k$(dc,f)
10140     FOR i=1 TO 10
10150 WRITE#9,t$(dc,f,i)
10160 NEXT i,f,dc
10170 CLOSEOUT
10200 CLS#2:LOCATE#2,2,4:PRINT#2,"Confirmez par (O)ui que votre travail sur LOGITHEQUE est termine..":CALL &BB18
10210 IF INKEY(34)=0 THEN MODE 1:NEW ELSE GOTO 1000
11000 DATA Modifier  un  CAT.,Imprimer une jaquette,Creer  un   MENU,Imprimer une etiquette,Modifier un MENU,Imprimer les CAT.,Logitheque,Sortir du programme
11010 DATA Effacer les.BAK,Renommer un fichier,Effacer un fichier,Retour MENU
11020 DATA Jeux d'Arcade,Tableur-Calc,Musique,Jeux de Role,Dessin A.O.,Utilitaires,Jeux de Strat.,Trait.de Texte,Programmes CPM,Copie Sauveg.,Divers,Autre
11030 DATA Changer le Numero,Annuler un Titre,Changer la Face,Ajouter un Titre,Changer le Genre,SAUVEGARDER,Changer un Fichier,Retour Menu
11040 DATA Disque par Disque,Numero de Disque,Disques existants,Genre des Disques,K.O. restants,Retour Menu