From e43954de701de66a4bf4a83c7765fa1c8b188895 Mon Sep 17 00:00:00 2001 From: Yoann Darche Date: Mon, 17 Sep 2018 16:48:33 +0200 Subject: [PATCH] Initial commit --- %.BAS | 51 ++ .gitattributes | 2 + 3DJEUX.BAS | Bin 0 -> 11118 bytes 3DLAB.BAS | Bin 0 -> 1054 bytes 3DREVOL1.BAS | 26 + ADR.BAS | Bin 0 -> 1641 bytes ADR.DAT | 0 ADRE | 0 ADREPLUS.BAS | 152 +++++ ADREPLUS.TXT | 114 ++++ ADRESSE.BAS | 320 +++++++++ ADRESSE.TXT | 79 +++ ADRESSE2.BAS | 148 ++++ ALPHABIN.BAS | 31 + AN.DAT | 27 + AN2.DAT | 29 + ARBRE2.BAS | 118 ++++ ARBRE2.QB | 138 ++++ ARBRES.QB | 132 ++++ B.BAS | 7 + BAT1.BAS | Bin 0 -> 7085 bytes BINALPHA.BAS | 15 + BINM.BAS | 3 + BLI2.BAS | Bin 0 -> 642 bytes BLITZ.BAS | Bin 0 -> 489 bytes C--C.BAS | Bin 0 -> 244 bytes C-I-A.BAS | Bin 0 -> 2775 bytes CAPS&NUM.BAS | 7 + CARTE.DAT | 65 ++ CCRESIST.BAS | 32 + CERC.BAS | Bin 0 -> 455 bytes CERC2.BAS | Bin 0 -> 130 bytes CERC3.BAS | Bin 0 -> 123 bytes CIA.BAS | 56 ++ CLAFOR.DAT | 147 ++++ CLAFORM.BAS | 16 + CLAVAJO.BAS | 14 + CLAVIER.BAS | 14 + CLAVIER.DAT | 86 +++ CLI.DAT | 0 CLIENT.BAS | Bin 0 -> 2198 bytes CLIENT.DAT | 7 + CODEBIN.BAS | 17 + COMBAT.BAS | Bin 0 -> 1417 bytes CONBAT.BAS | 30 + CONC.DAT | 29 + CONC1.DAT | 31 + CONCEIL.BAS | Bin 0 -> 2368 bytes CONFIG.FIC | Bin 0 -> 356 bytes CONROMME.BAS | Bin 0 -> 1696 bytes CONSEIL.BAS | Bin 0 -> 2110 bytes CONSEIL2.BAS | Bin 0 -> 2113 bytes COUPINTE.BAS | 52 ++ CRE.BAS | Bin 0 -> 1297 bytes CRE2.BAS | Bin 0 -> 1920 bytes CREA.SUP | 5 + CREA2.BAS | Bin 0 -> 7369 bytes CREA3.BAS | Bin 0 -> 7369 bytes CREA5.BAS | Bin 0 -> 5883 bytes CREAB2.BAS | Bin 0 -> 7418 bytes CREACARA.BAS | Bin 0 -> 3550 bytes CREADESS.BAS | 120 ++++ CREALECT.BAS | 129 ++++ CREAPAG.BAS | 879 ++++++++++++++++++++++++ CREAPAGE.BAS | 930 ++++++++++++++++++++++++++ CREAPAGE.EXE | Bin 0 -> 37008 bytes CREAPSUP.BAS | 77 +++ CUB.BAS | Bin 0 -> 7677 bytes CUBE.BAS | 126 ++++ CV-AR-RO.BAS | 35 + DATABASE.BAS | 468 +++++++++++++ DATAFICH.BAS | Bin 0 -> 14336 bytes DATE.BAS | 37 + DE50.BAS | 114 ++++ DE50B.BAS | 119 ++++ DE51.BAS | 139 ++++ DECOMPO.BAS | Bin 0 -> 879 bytes DESSIN.3D | Bin 0 -> 3239 bytes DESSIN.BAS | 63 ++ DUNNETT.BAS | Bin 0 -> 6043 bytes DUNNETT2.BAS | Bin 0 -> 9778 bytes ECHELLE.BAS | Bin 0 -> 497 bytes ECRITURE.BAS | 358 ++++++++++ EQUA.BAS | Bin 0 -> 893 bytes ERRSON.BAS | Bin 0 -> 512 bytes ESSAI | 2 + ESSAI.ADR | 0 ESSAI.DON | 0 ESSAILE.BAS | 15 + ESSAI_L.BAS | Bin 0 -> 1216 bytes F(X).BAS | Bin 0 -> 393 bytes FAITCADR.ROU | 4 + FENETRE.BAS | Bin 0 -> 1171 bytes FFF.IM | Bin 0 -> 16392 bytes FICHDATA.BAS | Bin 0 -> 21504 bytes FONTE.BAS | 169 +++++ FRAC1.BAS | Bin 0 -> 3285 bytes FRAC2.BAS | Bin 0 -> 3802 bytes FRACTAL1.BAS | 135 ++++ FRACTAL2.BAS | 142 ++++ FRACTALE.BAS | 355 ++++++++++ FWF.BAS | 33 + FWF.PIC | Bin 0 -> 16392 bytes G.IM | Bin 0 -> 32776 bytes GDF1.BAS | Bin 0 -> 364 bytes GDF2.BAS | Bin 0 -> 92 bytes GDF3.BAS | Bin 0 -> 3270 bytes GDF4.BAS | Bin 0 -> 3920 bytes GEODESIC.BAS | 83 +++ GEOGRAPH.BAS | Bin 0 -> 662 bytes GRAPHI.BAS | 69 ++ GRAPHIC.BAS | 21 + GRAPHICS.PAS | 44 ++ GRAPHIMP.BAS | 9 + H.IM | Bin 0 -> 32776 bytes IMAGE.DAZ | Bin 0 -> 16392 bytes IMAGE.IM | Bin 0 -> 32776 bytes IMP.BAS | 5 + IMPRIME.BAS | 7 + IN-IMP.BAS | 46 ++ ITALIQUE.BAS | Bin 0 -> 85 bytes KAL1.BAS | Bin 0 -> 440 bytes KAL2.BAS | Bin 0 -> 460 bytes KAL3.BAS | Bin 0 -> 461 bytes KAL4.BAS | Bin 0 -> 497 bytes KKKK.IM | Bin 0 -> 1024 bytes LABY.BAS | 256 +++++++ LABY.PAS | 220 ++++++ LABY2.BAS | Bin 0 -> 3148 bytes LABY2E.BAS | 168 +++++ LABY3.BAS | 128 ++++ LABY4.BAS | 152 +++++ LABY4.TXT | 132 ++++ LABYPRO.BAS | Bin 0 -> 3147 bytes LABYRINT.BAS | Bin 0 -> 3147 bytes LCARTE.BAS | Bin 0 -> 743 bytes LINK.BAS | 67 ++ LOAD.EXE | Bin 0 -> 1004 bytes LP.BAS | 3 + LUMINEUX.BAS | Bin 0 -> 738 bytes MASTER-M.BAS | 77 +++ MATH_01.CHI | 228 +++++++ MATH_DS1.CHI | 343 ++++++++++ MEMOPRO1.BAS | 217 ++++++ MEMOPROG.BAS | 558 ++++++++++++++++ MENU.BAS | Bin 0 -> 440 bytes MESSAGE.BAS | 168 +++++ MESSAGE2.BAS | 168 +++++ MESSAGE3.BAS | 308 +++++++++ MUR.BAS | 69 ++ N-PREMIE | 122 ++++ OP.BAS | Bin 0 -> 16392 bytes PARSON.BAS | Bin 0 -> 2118 bytes PROALAIN.BAS | 379 +++++++++++ PROG1.BAS | Bin 0 -> 865 bytes PURSANG.BAS | 67 ++ QTE.ADR | 0 R3.BAS | Bin 0 -> 2030 bytes R4.BAS | Bin 0 -> 2256 bytes README.md | 1 + REGIMP.BAS | 80 +++ REVOL.BAS | Bin 0 -> 2113 bytes REVOL3D.BAS | 86 +++ REVOL3D2.BAS | Bin 0 -> 2113 bytes REVOLD5.BAS | Bin 0 -> 1834 bytes REVOLD6.BAS | Bin 0 -> 1965 bytes ROSACES.BAS | Bin 0 -> 560 bytes SBIN.BAS | Bin 0 -> 318 bytes SCOJ1.DAT | 11 + "SCORES.\302\261\302\261\302\261" | 1 + SONERR2.BAS | 9 + SORTALIM.DAT | 0 STF.BAS | Bin 0 -> 132 bytes T1.DAT | 27 + T2.DAT | 27 + T3.DAT | 27 + T4.DAT | 29 + T5.DAT | 29 + TAILLE.PIC | Bin 0 -> 16392 bytes TAILLE2.DAT | 181 +++++ TEXTIMP.BAS | 33 + TF.BAS | Bin 0 -> 16392 bytes TF2.BAS | Bin 0 -> 32008 bytes TFICH.BAS | Bin 0 -> 20096 bytes TIMER.BAS | 12 + TOTURE.BAS | Bin 0 -> 1591 bytes TRACE1.BAS | Bin 0 -> 7675 bytes TRACEY.BAS | Bin 0 -> 1920 bytes TRAVERCE.BAS | 28 + TUYAU.DAT | 1 + TYPEALIM.DAT | Bin 0 -> 1760 bytes VOYAGE.BAS | 109 +++ Y.BAS | 4 + "\302\261MEG\302\261\302\261\302\261" | 1 + 194 files changed, 11259 insertions(+) create mode 100644 %.BAS create mode 100644 .gitattributes create mode 100644 3DJEUX.BAS create mode 100644 3DLAB.BAS create mode 100644 3DREVOL1.BAS create mode 100644 ADR.BAS create mode 100644 ADR.DAT create mode 100644 ADRE create mode 100644 ADREPLUS.BAS create mode 100644 ADREPLUS.TXT create mode 100644 ADRESSE.BAS create mode 100644 ADRESSE.TXT create mode 100644 ADRESSE2.BAS create mode 100644 ALPHABIN.BAS create mode 100644 AN.DAT create mode 100644 AN2.DAT create mode 100644 ARBRE2.BAS create mode 100644 ARBRE2.QB create mode 100644 ARBRES.QB create mode 100644 B.BAS create mode 100644 BAT1.BAS create mode 100644 BINALPHA.BAS create mode 100644 BINM.BAS create mode 100644 BLI2.BAS create mode 100644 BLITZ.BAS create mode 100644 C--C.BAS create mode 100644 C-I-A.BAS create mode 100644 CAPS&NUM.BAS create mode 100644 CARTE.DAT create mode 100644 CCRESIST.BAS create mode 100644 CERC.BAS create mode 100644 CERC2.BAS create mode 100644 CERC3.BAS create mode 100644 CIA.BAS create mode 100644 CLAFOR.DAT create mode 100644 CLAFORM.BAS create mode 100644 CLAVAJO.BAS create mode 100644 CLAVIER.BAS create mode 100644 CLAVIER.DAT create mode 100644 CLI.DAT create mode 100644 CLIENT.BAS create mode 100644 CLIENT.DAT create mode 100644 CODEBIN.BAS create mode 100644 COMBAT.BAS create mode 100644 CONBAT.BAS create mode 100644 CONC.DAT create mode 100644 CONC1.DAT create mode 100644 CONCEIL.BAS create mode 100644 CONFIG.FIC create mode 100644 CONROMME.BAS create mode 100644 CONSEIL.BAS create mode 100644 CONSEIL2.BAS create mode 100644 COUPINTE.BAS create mode 100644 CRE.BAS create mode 100644 CRE2.BAS create mode 100644 CREA.SUP create mode 100644 CREA2.BAS create mode 100644 CREA3.BAS create mode 100644 CREA5.BAS create mode 100644 CREAB2.BAS create mode 100644 CREACARA.BAS create mode 100644 CREADESS.BAS create mode 100644 CREALECT.BAS create mode 100644 CREAPAG.BAS create mode 100644 CREAPAGE.BAS create mode 100644 CREAPAGE.EXE create mode 100644 CREAPSUP.BAS create mode 100644 CUB.BAS create mode 100644 CUBE.BAS create mode 100644 CV-AR-RO.BAS create mode 100644 DATABASE.BAS create mode 100644 DATAFICH.BAS create mode 100644 DATE.BAS create mode 100644 DE50.BAS create mode 100644 DE50B.BAS create mode 100644 DE51.BAS create mode 100644 DECOMPO.BAS create mode 100644 DESSIN.3D create mode 100644 DESSIN.BAS create mode 100644 DUNNETT.BAS create mode 100644 DUNNETT2.BAS create mode 100644 ECHELLE.BAS create mode 100644 ECRITURE.BAS create mode 100644 EQUA.BAS create mode 100644 ERRSON.BAS create mode 100644 ESSAI create mode 100644 ESSAI.ADR create mode 100644 ESSAI.DON create mode 100644 ESSAILE.BAS create mode 100644 ESSAI_L.BAS create mode 100644 F(X).BAS create mode 100644 FAITCADR.ROU create mode 100644 FENETRE.BAS create mode 100644 FFF.IM create mode 100644 FICHDATA.BAS create mode 100644 FONTE.BAS create mode 100644 FRAC1.BAS create mode 100644 FRAC2.BAS create mode 100644 FRACTAL1.BAS create mode 100644 FRACTAL2.BAS create mode 100644 FRACTALE.BAS create mode 100644 FWF.BAS create mode 100644 FWF.PIC create mode 100644 G.IM create mode 100644 GDF1.BAS create mode 100644 GDF2.BAS create mode 100644 GDF3.BAS create mode 100644 GDF4.BAS create mode 100644 GEODESIC.BAS create mode 100644 GEOGRAPH.BAS create mode 100644 GRAPHI.BAS create mode 100644 GRAPHIC.BAS create mode 100644 GRAPHICS.PAS create mode 100644 GRAPHIMP.BAS create mode 100644 H.IM create mode 100644 IMAGE.DAZ create mode 100644 IMAGE.IM create mode 100644 IMP.BAS create mode 100644 IMPRIME.BAS create mode 100644 IN-IMP.BAS create mode 100644 ITALIQUE.BAS create mode 100644 KAL1.BAS create mode 100644 KAL2.BAS create mode 100644 KAL3.BAS create mode 100644 KAL4.BAS create mode 100644 KKKK.IM create mode 100644 LABY.BAS create mode 100644 LABY.PAS create mode 100644 LABY2.BAS create mode 100644 LABY2E.BAS create mode 100644 LABY3.BAS create mode 100644 LABY4.BAS create mode 100644 LABY4.TXT create mode 100644 LABYPRO.BAS create mode 100644 LABYRINT.BAS create mode 100644 LCARTE.BAS create mode 100644 LINK.BAS create mode 100644 LOAD.EXE create mode 100644 LP.BAS create mode 100644 LUMINEUX.BAS create mode 100644 MASTER-M.BAS create mode 100644 MATH_01.CHI create mode 100644 MATH_DS1.CHI create mode 100644 MEMOPRO1.BAS create mode 100644 MEMOPROG.BAS create mode 100644 MENU.BAS create mode 100644 MESSAGE.BAS create mode 100644 MESSAGE2.BAS create mode 100644 MESSAGE3.BAS create mode 100644 MUR.BAS create mode 100644 N-PREMIE create mode 100644 OP.BAS create mode 100644 PARSON.BAS create mode 100644 PROALAIN.BAS create mode 100644 PROG1.BAS create mode 100644 PURSANG.BAS create mode 100644 QTE.ADR create mode 100644 R3.BAS create mode 100644 R4.BAS create mode 100644 README.md create mode 100644 REGIMP.BAS create mode 100644 REVOL.BAS create mode 100644 REVOL3D.BAS create mode 100644 REVOL3D2.BAS create mode 100644 REVOLD5.BAS create mode 100644 REVOLD6.BAS create mode 100644 ROSACES.BAS create mode 100644 SBIN.BAS create mode 100644 SCOJ1.DAT create mode 100644 "SCORES.\302\261\302\261\302\261" create mode 100644 SONERR2.BAS create mode 100644 SORTALIM.DAT create mode 100644 STF.BAS create mode 100644 T1.DAT create mode 100644 T2.DAT create mode 100644 T3.DAT create mode 100644 T4.DAT create mode 100644 T5.DAT create mode 100644 TAILLE.PIC create mode 100644 TAILLE2.DAT create mode 100644 TEXTIMP.BAS create mode 100644 TF.BAS create mode 100644 TF2.BAS create mode 100644 TFICH.BAS create mode 100644 TIMER.BAS create mode 100644 TOTURE.BAS create mode 100644 TRACE1.BAS create mode 100644 TRACEY.BAS create mode 100644 TRAVERCE.BAS create mode 100644 TUYAU.DAT create mode 100644 TYPEALIM.DAT create mode 100644 VOYAGE.BAS create mode 100644 Y.BAS create mode 100644 "\302\261MEG\302\261\302\261\302\261" diff --git a/%.BAS b/%.BAS new file mode 100644 index 0000000..32323c0 --- /dev/null +++ b/%.BAS @@ -0,0 +1,51 @@ +10 N$=CHR$(219) +20 REM ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +30 REM :::::::::::::::::::::::::::: % % % % % % % :::::::::::::::::::::::::::::: +40 REM ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +50 CLS:CLEAR,,,32768!:SCREEN 6:PALETTE 1,2:PALETTE 2,4:PALETTE 3,5 +60 LOCATE 5,5:PRINT " Ce programme consiste calculer le pousentage " +70 INPUT "Donnez le titre au BILAN ",A$ +80 INPUT "Donnez le trois parties ` titre 1,titre 2,titre 3 '",B$,C$,D$ +90 PRINT "valeur pour : ";B$;:INPUT ;B +100 PRINT :PRINT "valeur pour : ";C$;:INPUT ;C +110 PRINT :PRINT "valeur pour : ";D$;:INPUT ;D +120 A1=B+C+D +130 B1=B*100/A1 +140 C1=C*100/A1 +150 D1=D*100/A1 +160 REM A1 = Somme de B+C+D +170 REM B1 = % de b +180 REM C1 = % de C +190 REM D1 = % de D +200 CLS +210 XX=0:XX1=120 +220 B2=XX1-B1 +230 C2=XX1-C1 +240 D2=XX1-D1 +250 GOTO 300 +260 INPUT "epace entre les traits du graphique ",XX2 +270 IF XX2>10 THEN PRINT CHR$(7):PRINT "<10 s.v.p ":GOTO 260 +280 IF XX2<1 THEN PRINT CHR$(7):PRINT ">1 s.v.p ":GOTO 260 +290 IF XX2 MOD 2=1 THEN XX2=XX2-1 +300 CLS +310 LINE (1,70)-(400,70),1:LINE(1,20)-(400,20),2:LINE (1,120)-(400,120),3 +320 LOCATE 3,54:COLOR 2:PRINT "100 %":LOCATE 9,54:COLOR 1:PRINT " 50 % ":LOCATE 15,54:COLOR 3:PRINT " 0 %" +330 IF B2<1 OR C2 <1 OR D2<1 THEN PRINT :PRINT "erreur !!! pas possible ":GOTO 90 +340 COLOR 1 +350 LINE (106,XX1)-(156,B2),1,BF +360 LINE (206,XX1)-(256,C2),2,BF +370 IF D2<1 THEN LINE (306,XX1)-(356,D2),0 :GOTO 390 +380 LINE (306,XX1)-(356,D2),3,BF +390 REM +400 H=INT(LEN(A$)):HH=80-H:HHH=HH/2 +410 LOCATE 19,HHH:PRINT A$ +420 LOCATE 17,13:COLOR 1:PRINT B1;"%":COLOR 2:LOCATE 17,26:PRINT C1;"%":COLOR 3:LOCATE 17,38:PRINT D1;"%" +430 N$=CHR$(219) +440 LOCATE 22,1:COLOR 1:PRINT N$;" ";B$;SPC(2);:COLOR 2:PRINT N$;" ";C$;SPC(2);:COLOR 3:PRINT N$;" ";D$ +450 COLOR 2:PRINT "appuyer sur une touche pour sortire ou R Pour recommancer" +460 REM +470 AMP$=INKEY$:IF AMP$="" THEN 470 +480 IF AMP$="r" OR AMP$="R" THEN RUN +490 LOAD"MENU",R +500 RUN + \ No newline at end of file diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/3DJEUX.BAS b/3DJEUX.BAS new file mode 100644 index 0000000000000000000000000000000000000000..19430c55057ea86efe66c024a9b000d5c7aa23cc GIT binary patch literal 11118 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 THEN Y=1 +70 PRINT MID$(B$,MX,11);:COLOR 0,7:LOCATE 2,DX:PRINT MID$(B$,DX,11);:MX=DX +80 COLOR 7,0:NE=NF:J=0:T$=INPUT$(1):IF T$=CHR$(27) THEN 1090 +90 IF T$="6" AND X<5 THEN X=X+1:GOTO 60 +100 IF T$="4" AND X>1 THEN X=X-1:GOTO 60 +110 IF T$=CHR$(13) THEN ON X GOTO 220,360,540,630,1090 +120 IF T$="2" AND (Y1 THEN Y=Y-1:GOSUB 1240 +140 IF T$="9" AND P>0 THEN P=P-1:Y=1:MY=1:GOSUB 1320:GOSUB 1220:GOSUB 1240 +150 IF T$="3" AND P pour abandon confirmer recommencer" +310 A$=INPUT$(1):IF A$="n" OR A$="N" THEN 220 +320 IF A$=CHR$(27) THEN IF NE<>NF THEN GOTO 350 ELSE 50 +330 LOCATE 21,10:PRINT " Dsirez-vous encore enregistrer une fiche ? ":NF=NF+1 +340 A$=INPUT$(1):IF A$="n" OR A$="N" OR A$=CHR$(27) THEN 350 ELSE 220 +350 LOCATE 2,23:PRINT "Patientez ! ":GOSUB 1280:GOSUB 1140:GOTO 50 +360 CLS:GOSUB 180:LOCATE 2,34:PRINT "MODIFICATIONS":IK=Y+P*20 +370 LOCATE 5,10:PRINT "Pour ne pas changer appuyez sur ENTRE " +380 LOCATE 7,3:PRINT "Nom [";N$(IK);:INPUT "] :",M$ +390 IF M$="" THEN NE$=N$(IK) ELSE GOSUB 1160:NE$=M$ +400 LOCATE 9,3:PRINT "Prnom [";P$(IK);:INPUT "] :",M$ +410 IF M$="" THEN PE$=P$(IK) ELSE GOSUB 1160:PE$=M$ +420 LOCATE 11,3:PRINT "Adresse [";D$(IK);:INPUT "] :",M$ +430 IF M$="" THEN DE$=D$(IK) ELSE DE$=M$ +440 LOCATE 13,3:PRINT "Code Post [";C(IK);:INPUT "] :",M$ +450 IF M$="" THEN C=C(IK) ELSE C=VAL(M$) +460 LOCATE 15,3:PRINT "Ville [";V$(IK);:INPUT "] :",M$ +470 IF M$="" THEN VE$=V$(IK) ELSE GOSUB 1160:VE$=M$ +480 LOCATE 17,3:PRINT "Tlphonne [";T$(IK);:INPUT "] :",M$ +490 IF M$="" THEN TE$=T$(IK) ELSE TE$=M$ +500 LOCATE 19,20:PRINT "Confirmer :O/N":A$=INPUT$(1):IF A$=CHR$(27) THEN 50 +510 IF A$="n" OR A$="N" THEN 360 ELSE IF A$<>"o" AND A$<>"O" THEN GOTO 500 +520 N$(IK)=NE$:P$(IK)=PE$:D$(IK)=DE$:C(IK)=C:V$(IK)=VE$:T$(IK)=TE$:GOSUB 1280 +530 GOSUB 1140:GOTO 50 +540 CLS:GOSUB 180:LOCATE 2,36:PRINT "EFFACER" +550 LOCATE 5,5:COLOR 14:PRINT "Etes vous certain de vouloir ";:COLOR 30 +560 PRINT "EFFACER";:COLOR 14:PRINT " ce qui suit ?":COLOR 7 +570 LOCATE 8,20:I=Y+PA*20:PRINT N$(I);" ";P$(I) +580 LOCATE 9,15:PRINT D$(I):LOCATE 10,20:PRINT C(I);V$(I):LOCATE 11,20 +590 PRINT T$(I):A$=INPUT$(1):IF A$="n" OR A$="N" OR A$=CHR$(27) THEN 50 +600 IF A$<>"o" AND A$<>"O" THEN BEEP:LOCATE 14,25:PRINT "Oui/Non":GOTO 580 +610 FOR I=Y+20*P TO NF:N$(I)=N$(I+1):P$(I)=P$(I+1):D$(I)=D$(I+1):C(I)=C(I+1) +620 V$(I)=V$(I+1):T$(I)=T$(I+1):NEXT I:NF=NF-1:GOSUB 1140:GOTO 50 +630 CLS:GOSUB 180:LOCATE 2,36:PRINT "RECHERCHE":I=0 +640 LOCATE 5,20:COLOR 3:PRINT "Vous repondez uniquement ce que vous savez !" +650 LOCATE 6,10:COLOR 4:PRINT "La recherche s'effectue par filtre dfinie "; +660 PRINT "par vos rponses .":TD=0 +670 COLOR 30:LOCATE 25,1:PRINT "N.B si le code postal comporte que"; +680 PRINT " 2 chiffres la recherche portera sur le dep";:COLOR 7 +690 LOCATE 8,10:INPUT "Nom :",M$:GOSUB 1160:NE$=M$ +700 LOCATE 9,10:INPUT "Prnom :",M$:GOSUB 1160:PE$=M$ +710 LOCATE 10,10:INPUT "Code Postal :",C$:C=VAL(C$) +720 LOCATE 11,10:INPUT "Ville :",M$:GOSUB 1160:VE$=M$ +730 LOCATE 12,10:INPUT "Tlphonne :",TE$ +740 IF C=0 AND C$<>"" THEN LOCATE 13,1:PRINT "Code postal annul":C$="" +750 IF C<100 THEN LOCATE 14,2:PRINT "Recherche sur tout le dpartement":TD=1 +760 R=0:FOR I=1 TO NF +770 IF NE$<>"" THEN IF NE$<>N$(I) THEN 840 +780 IF PE$<>"" THEN IF PE$<>P$(I) THEN 840 +790 IF VE$<>"" THEN IF VE$<>V$(I) THEN 840 +800 IF C$<>"" AND TD=0 THEN IF C<>C(I) THEN 840 +810 IF C$<>"" AND TD=1 THEN IF C<>INT(C(I)/1000) THEN 840 +820 IF TE$<>"" THEN IF TE$<>T$(I) THEN 840 +830 R=R+1:R(R)=I +840 NEXT I +850 CLS:GOSUB 180:LOCATE 2,36:PRINT "RESULTATS" +860 IF R<>0 THEN 890 +870 LOCATE 12,5:PRINT " Aucune fiche ne correspond vos critres ..." +880 A$=INPUT$(1):GOTO 50 +890 LOCATE 25,1:PRINT " Il y a ";R;" rponses "; +900 LOCATE 4,1:PA=0:Y=1:MY=1 +910 NPA=INT(R/20)+1*SGN(R MOD 20)-1:IF PA>NPA THEN PA=0 +920 FOR F=1+20*PA TO 20+20*PA:I=R(F):J=F-20*PA:GOSUB 1250:IF F<=R THEN NEXT +930 GOTO 1000 +940 T$=INPUT$(1):COLOR 7,0:IF T$=CHR$(27) THEN 50 +950 IF T$="2" AND (Y1 THEN Y=Y-1 +970 IF T$="9" AND PA>0 THEN PA=PA-1:Y=1:GOSUB 1320:GOTO 920 +980 IF T$="3" AND PA pour menu principal ou autre pour retour" +1080 A$=INPUT$(1):IF A$=CHR$(27) THEN 50 ELSE 850 +1090 COLOR 7,0:CLS:PRINT "Vous avez l'agrable bonjour de ";NCO$;" et il vous ":PRINT "flicite d'avoir choisi son logigiel ADRESSE + Ver 1.2 Programme n U1 ." +1095 PRINT " Ce logiciel est entirement gratuit et appartient au DOMAINE PUBLIQUE":PRINT" Si il vous a plus ne vous gner pas pour en donner une copie vos ami(e)(s)" :PRINT +1096 PRINT:PRINT "Programme crit en GWBASIC par :" +1097 PRINT NCO$;" : 71 avenue d' Orlans 91800 BRUNOY tel:69-39-51-26 ":PRINT +1098 PRINT " Salut .... Y.D." +1100 END +1110 OPEN "I",#1,NFICH$:NF=0 +1120 IF EOF(1) THEN CLOSE:RETURN ELSE NF=NF+1 +1130 INPUT #1,N$(NF),P$(NF),D$(NF),C$,V$(NF),T$(NF):C(NF)=VAL(C$):GOTO 1120 +1140 OPEN "O",#1,NFICH$:FOR I=1 TO NF +1150 WRITE #1,N$(I),P$(I),D$(I),STR$(C(I)),V$(I),T$(I):NEXT I:CLOSE:RETURN +1160 IF M$="" THEN RETURN ELSE FOR I=1 TO LEN(M$):L$=MID$(M$,I,1):L=ASC(L$) +1170 IF L<65 OR (L>90 AND L<97) OR L>122 THEN 1200 ELSE IF L>90 THEN L=L-32 +1180 N$=N$+CHR$(L) +1190 NEXT:M$=N$:N$="":RETURN +1200 L$=MID$("' UUUUUEEEEEAAAAOOOY-/C",INSTR("' -/",L$)+1,1) +1210 IF L$="" THEN 1190 ELSE L=ASC(L$):GOTO 1180 +1220 NP=INT(NF/20)+1*SGN(NF MOD 20)-1:J=0:IF P>NP THEN P=0 +1230 FOR I=1+20*P TO 20+20*P:GOSUB 1250:IF I=>NF THEN RETURN ELSE NEXT:RETURN +1240 J=MY:I=MY+P*20:GOSUB 1250:COLOR 0,7:I=Y+P*20:J=Y:GOSUB 1250:MY=Y:RETURN +1250 IF J=0 THEN J=I-20*P +1260 LOCATE J+3,2:PRINT N$(I):LOCATE J+3,15:PRINT P$(I); +1270 LOCATE J+3,28:PRINT T$(I);:LOCATE J+3,44:PRINT V$(I):J=0:RETURN +1280 FOR I=1 TO NF:FOR J=I TO NF:IF N$(I)>N$(J) THEN 1300 +1290 NEXT J:LOCATE 2,42:PRINT I+1;"/";NF:NEXT I:RETURN +1300 SWAP N$(I),N$(J):SWAP P$(I),P$(J):SWAP D$(I),D$(J):SWAP C(I),C(J) +1310 SWAP V$(I),V$(J):SWAP T$(I),T$(J):GOTO 1290 +1320 FOR KL=4 TO 23:LOCATE KL,2:PRINT SPACE$(78);:NEXT KL:LOCATE 1,1:RETURN +1330 CLS:NCO$=CHR$(68)+CHR$(65)+CHR$(82)+CHR$(67)+CHR$(72)+CHR$(69)+CHR$(32)+CHR$(89)+CHR$(111)+CHR$(97)+CHR$(110)+CHR$(110) +1340 LOCATE 1,28:COLOR 14:PRINT NCO$;" prsente :":LOCATE 7 +1350 PRINT " " +1360 PRINT " ۱۱۱۱۱۱۱" +1370 PRINT " ۱۱۰۱۰۱۰۱۱۱۱۰۱" +1380 PRINT " ۰۰۰۱۰۰۰۰۰۰۰" +1390 PRINT " ۰۰۰۱۱۱۱۱۱" +1400 PRINT " ۰۰۰۰۰۰۰۱۱۰۰" +1410 PRINT " ۰۰۰۱۰۱۰۱۰۱۰۰۰" +1420 PRINT " ۰۰۱۰۱۱۱۱۱" +1430 PRINT " " +1440 PRINT " " +1450 PRINT:PRINT " Version 1.2 " +1460 LOCATE 20,4:PRINT " Mr ";NCO$;" 71 av. d'Orlans 91800 BRUNOY tel: 69-39-51-26 aprs 19H" +1470 A$=INPUT$(1):RETURN + \ No newline at end of file diff --git a/ADREPLUS.TXT b/ADREPLUS.TXT new file mode 100644 index 0000000..2dc563d --- /dev/null +++ b/ADREPLUS.TXT @@ -0,0 +1,114 @@ + Ŀ + DOCUMENTATION D'ADRESSE PLUS + + + ADREPLUS.EXE (ou .BAS) est un utilitaire de gestion d'adresse, autrement +dit c'est un carnet d'adresse. + + Ce programme vous propose plusieurs menus : Enregistrer, Modifier, EFFACER, +Rechercher, Quitter. Ces menus sont slectionnables par l'intermdiaire du +curseur voluant dans le sens horizontal. + Les menus suivie de nesscite la slection d'une adresse (dans la +fentre dessous la bar des menu ) sur laquelle l'option interviendra . La +slection de cette adresse s'tablie au moyen d'un autre curseur qui ce +trouve dans cette fentre, et par consquent se dplacent dans le sens +vertical. + + Mouvement des deux curseurs : + ----------------------------- + Le curseur qui se dplace horizontalement dans la barre des menus, se +ralise au moyen des touches du pav numerique : 4 et 6 . + Le second curseur qui se trouve dans la fentre o figure le listing des +adresses enregistres , se dplace dans la page au moyen des touches + 2 et 8 . Pour changer de page au cas o vous auriez enregistr plus +de 20 adresses, utilisez les touches 9 et 3 pour effectuer un dfile- +ment des pages. + + N.B. le pav numrique DOIT tre BLOQUE en NUMLOCK . + +Explication des diffrents menus : +---------------------------------- + ENREGISTRER : + ~~~~~~~~~~~~~ Cette option vous permettera d' ajouter une fiche adresse + dans votre banque de donnes. Un cran de saisie s'affiche : + En premier lieu on vous demande d'entrer le Nom de la nouvelle personne. + Si vous n'entrez aucun caractre avant d'appuyer sur ENTER l'ordinateur + pensera que vous avez fait une erreur de selection d 'option, donc il vous + demendera si vous dsirez continuer la saisie. Si vous rpondez ngativement + vous serez automatiquement dans le menu de dpart. + Dans le cas o vous avez entirement ( ou partiellement ) rempli le + questionnaire, on vous demande une confirmation, Si vous repondez ngativement + vous recommencez au dpart . Dans le cas contraire on vous demandera si vous + dsirez nouveau enregistrer une adresse. + Toute adresse confirme est automatiquement classe par Ordre alphab- + tique et enregistre au moment o vous retournerez au menu principal. + + MODIFIER : + ~~~~~~~~~~~~ Cette option sert modifier une fiche adresse dj enregis- + tre. La selection de la fiche modifier s'effectue dans le menu principal + au moyen du second curseur. Donc l' adresse qui sera modifie est celle que + le curseur pointe . + L'ordinateur vous affichera les diffrents champs les un aprs les autres + et attendra votre modification. Si vous appuyez sur ENTER sans avoir + inscrit aucun caractre, l'ordinateur prendra en compte l'ancienne valeur. + A la fin, l'ordinateur vous demande une confirmation. + + EFFACER : + ~~~~~~~~~~~ Ce menu vous permet de d' effacer une fiche. La fiche qui + doit tre effacer devra tre au pralable slectionne dans la page o se + trouve l'ensemble des adresses grce au pointeur. L' ordinateur vous demande + confirmation . + + RECHERCHER : + ~~~~~~~~~~~~ Ce dernier est le menu le plus intressant du programme. + Il permet de vous ressortir toutes les fiches de votre fichier + correspondant au(x) critre(s) que vous aurez dfini(s) . La touche + ENTER , sans avoir crit un seul caractre , annulera le champ en question + pour le filtre de la recherche. + Pour le code postal , si vous dsirez effectuer une recherche dans tout un + dpartement il vous suffira d'entrer que les deux premiers chiffres . + + ATTENTION : pour les dpartement dont le code est inferieur dix, veillez + ~~~~~~~~~~~ mettre un zro devant son chiffre. + Ex : Le Dep. de l'AISNE code 2, il faut introduire 02 ! + + Une fois que l' ordinateur vous affiche les adresse correspondant votre + filtre, si il y en a plusieurs, vous pourrez choisir celle que vous dsirez + voire compltement, au moyen du pav numrique et de ENTER . + Si vous avez afficher une adresse l' cran et que vous dsirez en + slectionner une autre, appuyez sur n' importe quelle touche, sauf ESC + qui vous ramnera au menu principal. + + QUITTER : + ~~~~~~~~~ Cette option permet de quitter ADREPLUS pour retourner au DOS. + + Les petit TRUC EN PLUS ...: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * Dans le menu principal tout droite de la barre des menus un nombre est + inscrit . Ce dernier correspond au nombre de fiches enregistres. + + * En appuyant sur la BARRE d' ESPACE vous affichez l'adresse complte + selectionne dans la fentre o se trouve l'ensemble de ces adresses. + + * Au menu principal en appuyant sur ESC vous sortirez du logiciel. + + + PETIT PROGRAMME SUP. POUR CREE LE FICHIER ESSAI.ADR + + 10 OPEN "O",#1,"ESSAI.ADR" + 20 PRINT #1,"NOM,PRENOM,RUE,99999,VILLE,TEL" + 30 CLOSE + 40 END + + Effectuer un RUN de ce petit prog. + + Ce programme est indispensable avant le premier lancement d' ADREPLUS ! + + + + PROGRAMME ECRIT EN GWBASIC VER 3.2 + COMPILABLE PAR TURBO-BASIC + + Mr DARCHE Yoann, 71 avenue d'Orlans 91800 BRUNOY Tel: 69-39-51-26 + + \ No newline at end of file diff --git a/ADRESSE.BAS b/ADRESSE.BAS new file mode 100644 index 0000000..259ac4f --- /dev/null +++ b/ADRESSE.BAS @@ -0,0 +1,320 @@ +10 LOCATE ,,1,0,7 +20 CLS +30 DFGH=1 +40 DIM N2$(1000),N$(1000),P$(1000),AD$(1000),CO$(1000),C1$(1000),TEL$(1000) +50 KEY OFF +60 DIM N1$(1000),P1$(1000),AD1$(1000),CO1$(1000),C11$(1000),TEL1$(1000) +70 PO$=CHR$(179):AZ$=CHR$(195):AY$=CHR$(180):AW$=CHR$(197):AK$=CHR$(196) +80 OPEN "qte.adr" FOR INPUT AS #1 +90 IF EOF(1) THEN CLOSE :GOTO 130 +100 PM=PM+1 +110 INPUT #1,N$(PM),P$(PM),AD$(PM),CO$(PM),C1$(PM),TEL$(PM) +120 GOTO 90 +130 II=1:IJ=1:IF PM=0 THEN PRINT "il n'y a aucune adresse de ce fichier ":GOTO 240 +140 COLOR 1: PRINT PO$;"Nom ";:COLOR 2:PRINT PO$;"Prenom ";:COLOR 3:PRINT PO$;"adresse +";:COLOR 4:PRINT " code postal ";:COLOR 5:PRINT PO$;"Tlphone" +150 COLOR 1:PRINT AZ$;:FOR I=2 TO 13:PRINT AK$;:NEXT :COLOR 2:PRINT AW$;:FOR I=15 TO 26:PRINT AK$;:NEXT:COLOR 3:PRINT AW$;:FOR I=28 TO 68 :PRINT AK$;:NEXT:COLOR 5:PRINT AW$;:FOR I=70 TO 80:PRINT AK$;:NEXT +160 IF IJ > 19 THEN 200 +170 COLOR 1:PRINT PO$;N$(II);:COLOR 2:LOCATE ,14:PRINT PO$;P$(II);:COLOR 3:LOCATE ,27:PRINT PO$;AD$(II);" ";:COLOR 4:PRINT CO$(II);" ";C1$(II);:COLOR 5:LOCATE ,69:PRINT PO$;TEL$(II) +180 IF II = PM THEN 250 +190 IJ=IJ+1:II=II+1:GOTO 160 +200 DFGH=DFGH+1:LOCATE 21:COLOR 30:PRINT "Attention !!! ":COLOR 3:PRINT "si vous appuyez sur une touche nous passons au ";DFGH;" me tableaux " +210 IF DFGH >2 THEN KLM=1:COLOR 5:PRINT " R pour retour en arrire " +220 A$=INKEY$:IF A$="" THEN 220 +230 IF KLM=1 AND A$="r" OR A$="R" THEN II=II-19:DFGH = DFGH - 2:KLM=0:IJ=1:CLS:GOTO 140 +240 CLS:II=II-1:IJ=1 :GOTO 140 +250 COLOR 14:PRINT "voulez-vous 1 retour au premier tableau,2 pour sortir ,3 effacer des noms etc..,4 enregitrer de nom etc... ,5 pour faire une recherche d'un Nom ,6 pour listing 7 pour TRIE ALPHABETIQUE 8 pour ENTETE DE FEUILLE " +260 A$=INKEY$:IF A$="" THEN 260 +270 IF A$="1" THEN CLS:GOTO 130 +280 IF A$="2" THEN SYSTEM +290 IF A$="3" THEN 350 +300 IF A$="4" THEN 610 +310 IF A$="5" THEN 770 +320 IF A$="6" THEN 2120 +330 IF A$="7" GOTO 2170 +331 IF A$="8" GOTO 4000 +340 BEEP:GOTO 260 +350 CLS:COLOR 5:LOCATE 5,5:PRINT "pour detruire l'adresse il faut inscrire Le Nom et le Prenom comme il sont inscrits sur la disquette " +360 LOCATE 10,20:COLOR 14:PRINT "NOM :";:COLOR 3:INPUT "",N1$ +370 LOCATE 12,20:COLOR 14:PRINT "PRENOM :";:COLOR 1:INPUT "",P1$ +380 IF N1$="" THEN AZ=1:GOTO 400 +390 IF P1$="" THEN AZ=2:GOTO 400 +400 FOR I=1 TO PM +410 IF AZ=1 AND N$(I)=N1$ THEN 480 +420 IF AZ=2 AND P$(I)=P1$ THEN 480 +430 IF N1$=N$(I) AND P$(I)=P1$ THEN 480 +440 NEXT :PRINT "dsol je n'ai pas trouvez A pour abondonner R pour recommancer " +445 A$=INKEY$:IF A$="" THEN 445 +450 IF A$="a" OR A$="A" THEN RUN +460 IF A$="r" OR A$="R" THEN 350 +470 BEEP:GOTO 445 +480 COLOR 2:PRINT "Celle que j'ai trouv c'est :" +490 PRINT N$(I);" ";P$(I);" ";AD$(I);" ";CO$(I);" ";C1$(I);" . Tel :";TEL$(I) +500 COLOR 14:PRINT " Est-ce celle-ci O/N " +510 A$=INKEY$:IF A$="" THEN 510 +520 IF A$="n" OR A$="N" THEN PRINT "Dommage !!!":GOTO 440 +530 FOR MM=I+1 TO PM +540 N$(MM-1)=N$(MM):P$(MM-1)=P$(MM):AD$(MM-1)=AD$(MM):CO$(MM-1)=CO$(MM):C1$(MM-1)=C1$(MM):TEL$(MM-1)=TEL$(MM):C1$(MM)="":N$(MM)="":P$(MM)="":AD$(MM)="":CO$(MM)="":TEL$(MM)="" +550 NEXT +560 OPEN "QTE.ADR" FOR OUTPUT AS #1 +570 FOR I=1 TO PM-1 +580 PRINT #1,N$(I);",";P$(I);",";AD$(I);",";CO$(I);",";C1$(I);",";TEL$(I) +590 NEXT :CLOSE +600 PRINT " A pour abondon R pour recommancer":GOTO 445 +610 REM +620 SE=PM :CLS +630 SE=SE+1 +640 COLOR 5,1:PRINT "N O M : ":LOCATE 1,8:INPUT "",N$(SE):PRINT "P R E N O M : ":LOCATE 2,14:INPUT "",P$(SE) +650 INPUT "Adresse + N :",AD$(SE) +660 INPUT "Code Postal : ",CO$(SE):INPUT " Ville : ",C1$(SE) +670 LINE INPUT "N de tlphone : ",TEL$(SE) +680 PRINT "fin O/N " +690 A$=INKEY$:IF A$="" THEN 690 +700 IF A$="O" OR A$="o" THEN COLOR 1,0:CLS:GOTO 720 +710 COLOR 1,0:CLS :GOTO 630 +720 OPEN "QTE.ADR" FOR OUTPUT AS #1 +730 FOR I=1 TO SE +740 PRINT #1,N$(I);",";P$(I);",";AD$(I);",";CO$(I);",";C1$(I);",";TEL$(I) +750 NEXT :CLOSE +760 RUN +770 CLS:PRINT "Cette partie consite a rechercher un nom,un prenom,un code postale,un N de tlphone " +780 COLOR 1:PRINT "-1- pour recherche d'un nom " +790 COLOR 2:PRINT "-2- pour recherche d'un prenom " +800 COLOR 3:PRINT "-3- pour recherche d'un code postal" +810 COLOR 4:PRINT "-4- pour recherche d'un N de tlphonne" +820 COLOR 5:PRINT "-5- pour recherche des code potal commenant par le deux mme n " +830 PRINT "faites votre choix" +840 A$=INKEY$:IF A$="" THEN 840 +850 IF A$="5" THEN 1890 +860 IF A$="1" THEN 910 +870 IF A$="2" THEN 1200 +880 IF A$="3" THEN 1430 +890 IF A$="4" THEN 1660 +900 BEEP:GOTO 830 +910 CLS:PRINT " R E C H E R C H E D E N O M ":BVC=1 +920 LOCATE 10,20:COLOR 14:PRINT " N O M : ";:COLOR 3:INPUT "",N1$ +930 P=1:FPM=0 +940 FOR I=1 TO PM +950 IF N$(I)=N1$ THEN 970 +960 NEXT :IF FPM=1 THEN FPM=0:GOTO 1000 ELSE PRINT "dsol je n'ai rien trouv ":GOTO 1110 +970 IF FPM=0 THEN FPM=1 +980 N1$(P)=N$(I):P1$(P)=P$(I):AD1$(P)=AD$(I):CO1$(P)=CO$(I):C11$(P)=C1$(I):TEL1$(P)=TEL$(I) +990 P=P+1:GOTO 960 +1000 PRINT "Ce que j'ai trouv :" +1010 FOR I=1 TO P-1 +1020 PRINT N1$(I);" ";P1$(I);" ";AD1$(I);" ";CO1$(I);" ";C11$(I);" .Tel ";TEL1$(I) +1030 NEXT +1040 PRINT "Voulez-vous une trace crite O/N " +1050 A$=INKEY$:IF A$="" THEN 1050 +1060 IF A$="o" OR A$="O" THEN 1080 +1070 GOTO 1110 +1080 FOR I=1 TO P-1 +1090 LPRINT CHR$(27);CHR$(29);" ";CHR$(15);N1$(I);" ";P1$(I):LPRINT +1091 LPRINT CHR$(14);" ";AD1$(I) +1092 LPRINT " ";CO1$(I);" ";C11$(I) +1093 LPRINT " ";"Tel : ";TEL1$(I):LPRINT:LPRINT +1100 NEXT +1110 PRINT "voulez-vous recommencer (1),allez au menu `recherche' (2),ou lire les adresses n'importe quelle touche " +1120 A$=INKEY$:IF A$="" THEN 1120 +1130 IF A$="1" AND BVC=1 THEN BVC=0:GOTO 910 +1140 IF A$="1" AND BVC=2 THEN BVC=0:GOTO 1200 +1150 IF A$="1" AND BVC=3 THEN BVC=0:GOTO 1430 +1160 IF A$="1" AND BVC=4 THEN BVC=0:GOTO 1660 +1170 IF A$="1" AND BVC=5 THEN BVC=0:GOTO 1890 +1180 IF A$="2" THEN 770 +1190 RUN +1200 CLS:PRINT " R e c h e r c h e d e P R E N O M ":BVC=2 +1210 LOCATE 10,20:COLOR 14:PRINT "P R E N O M : ";:COLOR 3:INPUT "",P1$ +1220 P=1:FPM=0 +1230 FOR I=1 TO PM +1240 IF P$(I)=P1$ THEN 1280 +1250 NEXT +1260 IF FPM=1 THEN FPM=0:GOTO 1310 +1270 PRINT "desol je n'ai rien trouv....":GOTO 1110 +1280 IF FPM=0 THEN FPM=1 +1290 N1$(P)=N$(I):P1$(P)=P$(I):AD1$(P)=AD$(I):CO1$(P)=CO$(I):C11$(P)=C1$(I):TEL1$(P)=TEL$(I) +1300 P=P+1:GOTO 1250 +1310 PRINT "Ce que j'ai trouv :" +1320 FOR I=1 TO P-1 +1330 PRINT N1$(I);" ";P1$(I);" ";AD1$(I);" ";CO1$(I);" ";C11$(I);" .Tel ";TEL1$(I) +1340 NEXT +1350 PRINT "Voulez-vous une trace crite O/N " +1360 A$=INKEY$:IF A$="" THEN 1360 +1370 IF A$="o" OR A$="O" THEN 1390 +1380 GOTO 1110 +1390 FOR I=1 TO P-1 +1400 LPRINT CHR$(27);CHR$(29);" ";CHR$(15);N1$(I);" ";P1$(I):LPRINT +1401 LPRINT CHR$(14);" ";AD1$(I) +1402 LPRINT " ";CO1$(I);" ";C11$(I) +1403 LPRINT " ";"Tel : ";TEL1$(I):LPRINT:LPRINT +1410 NEXT +1420 GOTO 1110 +1430 CLS:PRINT " R E C H E R C H E D U C O D E P O S T A L " :BVC=3 +1440 LOCATE 10,20:COLOR 14:PRINT "C O D E P O S T A L : ";:COLOR 3:INPUT "",CO1$ +1450 P=1:FPM=0 +1460 FOR I=1 TO PM +1470 IF CO$(I)=CO1$ THEN 1510 +1480 NEXT +1490 IF FPM=1 THEN FPM=0:GOTO 1540 +1500 PRINT "desol je n'ai rien trouv....":GOTO 1110 +1510 IF FPM=0 THEN FPM=1 +1520 N1$(P)=N$(I):P1$(P)=P$(I):AD1$(P)=AD$(I):CO1$(P)=CO$(I):C11$(P)=C1$(I):TEL1$(P)=TEL$(I) +1530 P=P+1:GOTO 1480 +1540 PRINT "Ce que j'ai trouv :" +1550 FOR I=1 TO P-1 +1560 PRINT N1$(I);" ";P1$(I);" ";AD1$(I);" ";CO1$(I);" ";C11$(I);" .Tel ";TEL1$(I) +1570 NEXT +1580 PRINT "Voulez-vous une trace crite O/N " +1590 A$=INKEY$:IF A$="" THEN 1590 +1600 IF A$="o" OR A$="O" THEN 1620 +1610 GOTO 1110 +1620 FOR I=1 TO P-1 +1630 LPRINT CHR$(27);CHR$(29);" ";CHR$(15);N1$(I);" ";P1$(I):LPRINT +1631 LPRINT CHR$(14);" ";AD1$(I) +1632 LPRINT " ";CO1$(I);" ";C11$(I) +1633 LPRINT " ";"Tel : ";TEL1$(I):LPRINT:LPRINT +1640 NEXT +1650 GOTO 1110 +1660 CLS:PRINT " R E C H E R C H E D U N D E T E L E P H O N" :BVC=4 +1670 LOCATE 10,20:COLOR 14:PRINT "N D E T E L E P H O N : ";:COLOR 3:INPUT "",TEL1$ +1680 P=1:FPM=0 +1690 FOR I=1 TO PM +1700 IF TEL$(I)=TEL1$ THEN 1740 +1710 NEXT +1720 IF FPM=1 THEN FPM=0:GOTO 1770 +1730 PRINT "dsol je n'ai rien trouv....":GOTO 1110 +1740 IF FPM=0 THEN FPM=1 +1750 N1$(P)=N$(I):P1$(P)=P$(I):AD1$(P)=AD$(I):CO1$(P)=CO$(I):C11$(P)=C1$(I):TEL1$(P)=TEL$(I) +1760 P=P+1:GOTO 1710 +1770 PRINT "Ce que j'ai trouv :" +1780 FOR I=1 TO P-1 +1790 PRINT N1$(I);" ";P1$(I);" ";AD1$(I);" ";CO1$(I);" ";C11$(I);" .Tel ";TEL1$(I) +1800 NEXT +1810 PRINT "Voulez-vous une trace crite O/N " +1820 A$=INKEY$:IF A$="" THEN 1820 +1830 IF A$="o" OR A$="O" THEN 1850 +1840 GOTO 1110 +1850 FOR I=1 TO P-1 +1860 LPRINT CHR$(27);CHR$(29);" ";CHR$(15);N1$(I);" ";P1$(I):LPRINT +1861 LPRINT CHR$(14);" ";AD1$(I) +1862 LPRINT " ";CO1$(I);" ";C11$(I) +1863 LPRINT " ";"Tel : ";TEL1$(I):LPRINT:LPRINT +1870 NEXT +1880 GOTO 1110 +1890 CLS:PRINT " R E C H E R C H E D U N D E C O D E P O S T A L" :BVC=5 +1900 LOCATE 10,20:COLOR 14:PRINT "N D U C O D E P O S T A L : ";:COLOR 3:INPUT "",CO2$ +1910 P=1:FPM=0 +1920 FOR I=1 TO PM +1930 IF LEFT$ (CO$(I),2)= CO2$ THEN 1970 +1940 NEXT +1950 IF FPM=1 THEN FPM=0:GOTO 2000 +1960 PRINT "dsol je n'ai rien trouv....":GOTO 1110 +1970 IF FPM=0 THEN FPM=1 +1980 N1$(P)=N$(I):P1$(P)=P$(I):AD1$(P)=AD$(I):CO1$(P)=CO$(I):C11$(P)=C1$(I):TEL1$(P)=TEL$(I) +1990 P=P+1:GOTO 1940 +2000 PRINT "Ce que j'ai trouv :" +2010 FOR I=1 TO P-1 +2020 PRINT N1$(I);" ";P1$(I);" ";AD1$(I);" ";CO1$(I);" ";C11$(I);" .Tel ";TEL1$(I) +2030 NEXT +2040 PRINT "Voulez-vous une trace crite O/N " +2050 A$=INKEY$:IF A$="" THEN 2050 +2060 IF A$="o" OR A$="O" THEN 2080 +2070 GOTO 1110 +2080 FOR I=1 TO P-1 +2090 LPRINT CHR$(27);CHR$(29);" ";CHR$(15);N1$(I);" ";P1$(I):LPRINT +2091 LPRINT CHR$(14);" ";AD1$(I) +2092 LPRINT " ";CO1$(I);" ";C11$(I) +2093 LPRINT " ";"Tel : ";TEL1$(I):LPRINT:LPRINT +2100 NEXT +2110 GOTO 1110 +2120 FOR A=1 TO PM +2130 LPRINT N$(A);:LPRINT CHR$(27);CHR$(16);CHR$(0);CHR$(73);P$(A); +2140 LPRINT CHR$(27);CHR$(16);CHR$(0);CHR$(151);AD$(A);" ";CO$(A);" ";C1$(A);" . Tel :";TEL$(A) +2150 REM LPRINT CHR$(27);CHR$(16);CHR$(0);CHR$(300);TEL$(A) +2160 NEXT :RUN +2170 CLS :PRINT " T R I A L P H A B E T I Q U E " +2180 PRINT "CONVERSIONS EN CARACTERE MAJUSCULE ............................:" +2190 FOR I=1 TO PM +2200 N1$(I)=N$(I):P1$(I)=P$(I):AD1$(I)=AD$(I):CO1$(I)=CO$(I):C11$(I)=C1$(I):TEL1$(I)=TEL$(I) +2210 NEXT +2220 FOR I=1 TO PM :FOR Y=1 TO LEN(N1$(I)) +2230 REM FOR Y=1 TO LEN (N1$(I)) +2240 A$=LEFT$(N1$(I),Y):AP$=RIGHT$(A$,1):A$="" +2250 IF AP$="" THEN PRINT I:GOTO 2520 +2260 IF AP$="" THEN AP$="E" +2270 IF AP$="" THEN AP$="E" +2280 IF AP$="" THEN AP$="E" +2290 IF AP$="" THEN AP$="E" +2300 IF AP$="" THEN AP$="C" +2310 IF AP$="" THEN AP$="A" +2320 IF AP$="" THEN AP$="A" +2330 IF AP$="" THEN AP$="A" +2340 IF AP$="" THEN AP$="U" +2350 IF AP$="" THEN AP$="U" +2360 IF AP$="" THEN AP$="Y" +2370 IF AP$="" THEN AP$="I" +2380 IF AP$="" THEN AP$="I" +2390 IF AP$="" THEN AP$="O" +2400 IF AP$="" THEN AP$="O" +2410 IF AP$="" THEN AP$="O" +2420 IF AP$="" THEN AP$="U" +2430 IF AP$="" THEN AP$="A" +2440 IF AP$="" THEN AP$="U" +2450 AP = ASC(AP$) +2460 IF AP >= 97 AND AP <= 122 THEN AP=AP-32:AP$=CHR$(AP) +2470 IF AP >= 91 AND AP <= 96 THEN AP$="" +2480 IF AP >= 123 AND AP <= 128 OR AP >= 155 THEN AP$="" +2490 IF AP >= 32 AND AP <= 64 THEN AP$="" +2500 N2$(I)=N2$(I)+AP$ +2510 NEXT Y:PRINT I,N2$(I),N1$(I):NEXT I +2520 GOTO 2560:REM FOR I=1 TO PM +2530 P=P+1:IF P=15 THEN P=1:COLOR P ELSE COLOR P +2540 PRINT I,N2$(I),N1$(I):NEXT +2550 PRINT "TRI ALPHABETIQUE ...............................................:" +2560 CLS:PRINT "--------------------------- TRI ----------------------------" +2570 FOR X=1 TO PM-1 +2580 X1=ASC(LEFT$(N2$(X),1)) +2590 FOR Y=X+1 TO PM +2600 Y1=ASC(LEFT$ (N2$(Y),1)) +2610 LOCATE 11,1:PRINT " " +2620 LOCATE 11,1:PRINT X:LOCATE 11,5:PRINT N1$(X) +2621 REM II +2630 LOCATE 11,42:PRINT N1$(Y) +2640 REM comparaison 1 lettre +2650 IF X1 > Y1 THEN X$ = N1$(X):N1$(X) = N1$(Y):N1$(Y) = X$:X$ = N2$(X):N2$(X)=N2$(Y):N2$(Y)=X$:X1 = ASC ( LEFT$ ( N2$(X),1)):GOTO 2800 +2660 IF X1 LX THEN 2800 +2730 IF K > LY THEN X$=N1$(X):N1$(X)=N1$(Y):N1$(Y)=X$:X$= N2$(X):N2$(X)=N2$(Y):N2$(Y)=X$:X1=ASC(LEFT$(N2$(X),1)):GOTO 2800 +2740 X2=ASC(MID$(N2$(X),K,1)) +2750 Y2=ASC(MID$(N2$(Y),K,1)) +2760 IF X2>Y2 THEN X$=N1$(X):N1$(X)=N1$(Y):N1$(Y)=X$:X$=N2$(X):N2$(X)=N2$(Y):N2$(Y)=X$:X1=ASC(LEFT$(C$(X),1)):GOTO 2800 +2770 REM +2780 IF X2 < Y2 THEN 2800 +2790 K=K+1:GOTO "???" +2800 NEXT Y +2810 NEXT X +2815 PRINT "finie pour le tri..................................." +2816 PRINT " je tri les adresses les prenoms,les codes postaux ... patientez ..." +2817 FOR I= 1 TO PM +2820 N2$(I)=N1$(I):NEXT I +2830 FOR I=1 TO PM +2840 FOR S=1 TO PM +2850 IF N$(S)=N2$(I) THEN 2860 ELSE NEXT S +2860 N1$(I)=N$(S):P1$(I)=P$(S):AD1$(I)=AD$(S):CO1$(I)=CO$(S):C11$(I)=C1$(S):TEL1$(I)=TEL$(S) +2870 NEXT I +2880 PRINT "fin de rassemblement ... " +2890 FOR I=1 TO PM +2900 N$(I)=N1$(I):P$(I)=P1$(I):AD$(I)=AD1$(I):CO$(I)=CO1$(I):C1$(I)=C11$(I):TEL$(I)=TEL1$(I) +2910 NEXT I +2920 OPEN "QTE.ADR" FOR OUTPUT AS #1 +2930 FOR I=1 TO PM +2940 PRINT #1,N$(I);",";P$(I);",";AD$(I);",";CO$(I);",";C1$(I);",";TEL$(I) +2950 NEXT :CLOSE:RUN +4000 REM E N T E T E DE F E U I L L E ( I M P R I M A N T E ) +4010 LPRINT CHR$(27);CHR$(14);CHR$(27);CHR$(31);" D I V U L G U E S":LPRINT " -----------------";:LPRINT CHR$(27);CHR$(15);CHR$(27);CHR$(20);" Tel : 69 39 51 26 " +4020 RUN + \ No newline at end of file diff --git a/ADRESSE.TXT b/ADRESSE.TXT new file mode 100644 index 0000000..d285c19 --- /dev/null +++ b/ADRESSE.TXT @@ -0,0 +1,79 @@ + Ŀ + Documentation du programme ADRESSE.BAS (ou .EXE) Ŀ + + + + Ce programme est un utilitaire simple qui permet de grer un carnet + d'adresse. Il intgre les fonctions suivantes : + - Recherche par filtre dfinie par l'utilisteur chaque recherche + - Tri alphabtique de la banque de donn + - Modification d'une donne dj enregistre + - Enregistrement et Supression d'une fiche adresse. + + La slection du service dsir ce fait par le pav numerique en utilisant + 8 9 + slectionne le service o se trouve le curseur + 4 6 affiche l'adresse complte du non point + + 2 3 + + Le curseur dans la bar des menus ansi que dans le fichier est reprsent + par la couleur invers ( Font blanc, caractres noirs ) + Les touches 4 et 6 vous permettent des vous dplacer dans la bar des menus + et de valider votre choix + Les touches 8 et 2 vous permettent de selectionner une adresse, et + de l'afficher entirement. + Les touches 9 et 3 sont actives que si votre fichier comporte plus de 20 + adresses. Elles permettent d'effectuer un dfilement de page + + Description de chaques menus : + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 1) Enregistrer : + ----------------- + Ce menu vous permetera d'enregistrer des nouvelles fiches. + + N.B. : Ne vous procuper pas pour les Mininuscules/Majuscules pour les noms + prnons et villes l'ordinateur ce charge de tout mettre en majuscule. + + N.B.2 : Si vous pressez la ligne d'entre du NOM sans avoir mis + un seule caractres, l'ordinateur considra que c'est une fiche Vide donc + elle ne sera pas mmoris. + + A la question : pour Abandon confirmer recommencer + ~~~~~~~~~~~~~~~ + si vous rpondez ou la fiche sera mmorise. + si vous rpondez vous devrez la rintroduire. + si vous rpondez la dernire fiche ne sera pas memorise mais les + prcdantes le seront (si il y en a). + + Pour la seconde question : Dsirez-vous encore enregistr une fiche ? + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + si vous rpondez ou vous recommencer introduire une nouvelle + fiche. + si vous rpondez ou les fiches seront tries et enregistres. + + 2) Modifier : + -------------- + Ce menu vous permetera de modifier entirement ou une partie d'une fiche. + Si vous ne voulez rien modifier appuyer 6 fois sur et confirmer + par . + Si vous ne voulez pas modifier un terme de la fiche il vous suffira + d'appuyer sur sans rien mettre + + La fiche modifier est slectionne par le pointeur au menu principal. + + 3) Effacer : + ------------- + Ce menu vous permetera d'effacer entirement une fiche . + L'ordinaeur vous demande une simple confirmation Oui ou Non + La fiche effacer est slectionne par le pointeur au menu principal. + + 4) Rechercher : + ---------------- + Ce menu vous permetera de resortir un certain nombre de fiche corespondant + un filtre dfinie par l'utilistateur + Si vous appuyez sur sans mettre aucun caractre un champ d'entr + celui-ci sera annul pour le filtre + + + \ No newline at end of file diff --git a/ADRESSE2.BAS b/ADRESSE2.BAS new file mode 100644 index 0000000..eac157b --- /dev/null +++ b/ADRESSE2.BAS @@ -0,0 +1,148 @@ +10 DEFINT A-B,D-Z:X=1:Y=1:MY=1:MX=9:CLS:KEY OFF:NFICH$="essai.adr":GOSUB 1330 +20 DIM N$(1000),P$(1000),D$(1000),C(1000),V$(1000),T$(1000),R(100):COLOR 7,0 +30 B$=" ENREGISTRER MODIFIER EFFACER RECHERCHER QUITTER " +40 GOSUB 1110 +50 CLS:GOSUB 180:GOSUB 1220:LOCATE 2,1:PRINT B$:J=0:GOSUB 1240 +60 LOCATE 2,70:PRINT NF:DX=9+12*(X-1):COLOR 7,0:LOCATE 2,MX:IF Y>NF THEN Y=1 +70 PRINT MID$(B$,MX,11);:COLOR 0,7:LOCATE 2,DX:PRINT MID$(B$,DX,11);:MX=DX +80 COLOR 7,0:NE=NF:J=0:T$=INPUT$(1):IF T$=CHR$(27) THEN 1090 +90 IF T$="6" AND X<5 THEN X=X+1:GOTO 60 +100 IF T$="4" AND X>1 THEN X=X-1:GOTO 60 +110 IF T$=CHR$(13) THEN ON X GOTO 220,360,540,630,1090 +120 IF T$="2" AND (Y1 THEN Y=Y-1:GOSUB 1240 +140 IF T$="9" AND P>0 THEN P=P-1:Y=1:MY=1:GOSUB 1320:GOSUB 1220:GOSUB 1240 +150 IF T$="3" AND P pour abandon confirmer recommencer" +310 A$=INPUT$(1):IF A$="n" OR A$="N" THEN 220 +320 IF A$=CHR$(27) THEN IF NE<>NF THEN GOTO 350 ELSE 50 +330 LOCATE 21,10:PRINT " Dsirez-vous encore enregistrer une fiche ? ":NF=NF+1 +340 A$=INPUT$(1):IF A$="n" OR A$="N" OR A$=CHR$(27) THEN 350 ELSE 220 +350 LOCATE 2,23:PRINT "Patientez ! ":GOSUB 1280:GOSUB 1140:GOTO 50 +360 CLS:GOSUB 180:LOCATE 2,34:PRINT "MODIFICATIONS":IK=Y+P*20 +370 LOCATE 5,10:PRINT "Pour ne pas changer appuyez sur ENTRE " +380 LOCATE 7,3:PRINT "Nom [";N$(IK);:INPUT "] :",M$ +390 IF M$="" THEN NE$=N$(IK) ELSE GOSUB 1160:NE$=M$ +400 LOCATE 9,3:PRINT "Prnom [";P$(IK);:INPUT "] :",M$ +410 IF M$="" THEN PE$=P$(IK) ELSE GOSUB 1160:PE$=M$ +420 LOCATE 11,3:PRINT "Adresse [";D$(IK);:INPUT "] :",M$ +430 IF M$="" THEN DE$=D$(IK) ELSE DE$=M$ +440 LOCATE 13,3:PRINT "Code Post [";C(IK);:INPUT "] :",M$ +450 IF M$="" THEN C=C(IK) ELSE C=VAL(M$) +460 LOCATE 15,3:PRINT "Ville [";V$(IK);:INPUT "] :",M$ +470 IF M$="" THEN VE$=V$(IK) ELSE GOSUB 1160:VE$=M$ +480 LOCATE 17,3:PRINT "Tlphonne [";T$(IK);:INPUT "] :",M$ +490 IF M$="" THEN TE$=T$(IK) ELSE TE$=M$ +500 LOCATE 19,20:PRINT "Confirmer :O/N":A$=INPUT$(1):IF A$=CHR$(27) THEN 50 +510 IF A$="n" OR A$="N" THEN 360 ELSE IF A$<>"o" AND A$<>"O" THEN GOTO 500 +520 N$(IK)=NE$:P$(IK)=PE$:D$(IK)=DE$:C(IK)=C:V$(IK)=VE$:T$(IK)=TE$:GOSUB 1280 +530 GOSUB 1140:GOTO 50 +540 CLS:GOSUB 180:LOCATE 2,36:PRINT "EFFACER" +550 LOCATE 5,5:COLOR 14:PRINT "Etes vous certain de vouloir ";:COLOR 30 +560 PRINT "EFFACER";:COLOR 14:PRINT " ce qui suit ?":COLOR 7 +570 LOCATE 8,20:I=Y+PA*20:PRINT N$(I);" ";P$(I) +580 LOCATE 9,15:PRINT D$(I):LOCATE 10,20:PRINT C(I);V$(I):LOCATE 11,20 +590 PRINT T$(I):A$=INPUT$(1):IF A$="n" OR A$="N" OR A$=CHR$(27) THEN 50 +600 IF A$<>"o" AND A$<>"O" THEN BEEP:LOCATE 14,25:PRINT "Oui/Non":GOTO 580 +610 FOR I=Y+20*P TO NF:N$(I)=N$(I+1):P$(I)=P$(I+1):D$(I)=D$(I+1):C(I)=C(I+1) +620 V$(I)=V$(I+1):T$(I)=T$(I+1):NEXT I:NF=NF-1:GOSUB 1140:GOTO 50 +630 CLS:GOSUB 180:LOCATE 2,36:PRINT "RECHERCHE":I=0 +640 LOCATE 5,20:COLOR 3:PRINT "Vous repondez uniquement ce que vous savez !" +650 LOCATE 6,10:COLOR 4:PRINT "La recherche s'effectue par filtre dfinie "; +660 PRINT "par vos rponses .":TD=0 +670 COLOR 30:LOCATE 25,1:PRINT "N.B si le code postal comporte que"; +680 PRINT " 2 chiffres la recherche portera sur le dep";:COLOR 7 +690 LOCATE 8,10:INPUT "Nom :",M$:GOSUB 1160:NE$=M$ +700 LOCATE 9,10:INPUT "Prnom :",M$:GOSUB 1160:PE$=M$ +710 LOCATE 10,10:INPUT "Code Postal :",C$:C=VAL(C$) +720 LOCATE 11,10:INPUT "Ville :",M$:GOSUB 1160:VE$=M$ +730 LOCATE 12,10:INPUT "Tlphonne :",TE$ +740 IF C=0 AND C$<>"" THEN LOCATE 13,1:PRINT "Code postal annul":C$="" +750 IF C<100 THEN LOCATE 14,2:PRINT "Recherche sur tout le dpartement":TD=1 +760 R=0:FOR I=1 TO NF +770 IF NE$<>"" THEN IF NE$<>N$(I) THEN 840 +780 IF PE$<>"" THEN IF PE$<>P$(I) THEN 840 +790 IF VE$<>"" THEN IF VE$<>V$(I) THEN 840 +800 IF C$<>"" AND TD=0 THEN IF C<>C(I) THEN 840 +810 IF C$<>"" AND TD=1 THEN IF C<>INT(C(I)/1000) THEN 840 +820 IF TE$<>"" THEN IF TE$<>T$(I) THEN 840 +830 R=R+1:R(R)=I +840 NEXT I +850 CLS:GOSUB 180:LOCATE 2,36:PRINT "RESULTATS" +860 IF R<>0 THEN 890 +870 LOCATE 12,5:PRINT " Aucune fiche ne correspond vos critres ..." +880 A$=INPUT$(1):GOTO 50 +890 LOCATE 25,1:PRINT " Il y a ";R;" rponses "; +900 LOCATE 4,1:PA=0:Y=1:MY=1 +910 NPA=INT(R/20)+1*SGN(R MOD 20)-1:IF PA>NPA THEN PA=0 +920 FOR F=1+20*PA TO 20+20*PA:I=R(F):J=F-20*PA:GOSUB 1250:IF F<=R THEN NEXT +930 GOTO 1000 +940 T$=INPUT$(1):COLOR 7,0:IF T$=CHR$(27) THEN 50 +950 IF T$="2" AND (Y1 THEN Y=Y-1 +970 IF T$="9" AND PA>0 THEN PA=PA-1:Y=1:GOSUB 1320:GOTO 920 +980 IF T$="3" AND PA pour menu principal ou autre pour retour" +1080 A$=INPUT$(1):IF A$=CHR$(27) THEN 50 ELSE 850 +1090 COLOR 7,0:CLS:PRINT "Vous avez l'agrable bonjour de ";NCO$;" et il vous ":PRINT "flicite d'avoir choisi son logigiel ADRESSE + Ver 1.2 Programme n U1 ." +1100 PRINT :PRINT NCO$;" 71 av. d'Orlans 91800 BRUNOY, tel: 69.39.51.26":END +1110 OPEN "I",#1,NFICH$:NF=0 +1120 IF EOF(1) THEN CLOSE:RETURN ELSE NF=NF+1 +1130 INPUT #1,N$(NF),P$(NF),D$(NF),C$,V$(NF),T$(NF):C(NF)=VAL(C$):GOTO 1120 +1140 OPEN "O",#1,NFICH$:FOR I=1 TO NF +1150 WRITE #1,N$(I),P$(I),D$(I),STR$(C(I)),V$(I),T$(I):NEXT I:CLOSE:RETURN +1160 IF M$="" THEN RETURN ELSE FOR I=1 TO LEN(M$):L$=MID$(M$,I,1):L=ASC(L$) +1170 IF L<65 OR (L>90 AND L<97) OR L>122 THEN 1200 ELSE IF L>90 THEN L=L-32 +1180 N$=N$+CHR$(L) +1190 NEXT:M$=N$:N$="":RETURN +1200 L$=MID$("' UUUUUEEEEEAAAAOOOY-/C",INSTR("' -/",L$)+1,1) +1210 IF L$="" THEN 1190 ELSE L=ASC(L$):GOTO 1180 +1220 NP=INT(NF/20)+1*SGN(NF MOD 20)-1:J=0:IF P>NP THEN P=0 +1230 FOR I=1+20*P TO 20+20*P:GOSUB 1250:IF I=>NF THEN RETURN ELSE NEXT:RETURN +1240 J=MY:I=MY+P*20:GOSUB 1250:COLOR 0,7:I=Y+P*20:J=Y:GOSUB 1250:MY=Y:RETURN +1250 IF J=0 THEN J=I-20*P +1260 LOCATE J+3,2:PRINT N$(I):LOCATE J+3,15:PRINT P$(I); +1270 LOCATE J+3,28:PRINT T$(I);:LOCATE J+3,44:PRINT V$(I):J=0:RETURN +1280 FOR I=1 TO NF:FOR J=I TO NF:IF N$(I)>N$(J) THEN 1300 +1290 NEXT J:LOCATE 2,42:PRINT I+1;"/";NF:NEXT I:RETURN +1300 SWAP N$(I),N$(J):SWAP P$(I),P$(J):SWAP D$(I),D$(J):SWAP C(I),C(J) +1310 SWAP V$(I),V$(J):SWAP T$(I),T$(J):GOTO 1290 +1320 FOR KL=4 TO 23:LOCATE KL,2:PRINT SPACE$(78);:NEXT KL:LOCATE 1,1:RETURN +1330 CLS:NCO$=CHR$(68)+CHR$(65)+CHR$(82)+CHR$(67)+CHR$(72)+CHR$(69)+CHR$(32)+CHR$(89)+CHR$(111)+CHR$(97)+CHR$(110)+CHR$(110) +1340 LOCATE 1,28:COLOR 14:PRINT NCO$;" prsente :":LOCATE 7 +1350 PRINT " " +1360 PRINT " ۱۱۱۱۱۱۱" +1370 PRINT " ۱۱۰۱۰۱۰۱۱۱۱۰۱" +1380 PRINT " ۰۰۰۱۰۰۰۰۰۰۰" +1390 PRINT " ۰۰۰۱۱۱۱۱۱" +1400 PRINT " ۰۰۰۰۰۰۰۱۱۰۰" +1410 PRINT " ۰۰۰۱۰۱۰۱۰۱۰۰۰" +1420 PRINT " ۰۰۱۰۱۱۱۱۱" +1430 PRINT " " +1440 PRINT " " +1450 PRINT:PRINT " Version 1.2 " +1460 LOCATE 20,4:PRINT " Mr ";NCO$;" 71 av. d'Orlans 91800 BRUNOY tel: 69-39-51-26 aprs 19H" +1470 A$=INPUT$(1):RETURN + \ No newline at end of file diff --git a/ALPHABIN.BAS b/ALPHABIN.BAS new file mode 100644 index 0000000..1dff6f9 --- /dev/null +++ b/ALPHABIN.BAS @@ -0,0 +1,31 @@ +0 SCREEN 2:SCREEN 0:COLOR 3 +10 KEY OFF:CLS +20 INPUT "CODE de A (en decimal) ",A +25 IF A<=0 THEN BEEP:GOTO 20 +26 A=A-1 +30 CLS:PRINT "VOTRE PHRASE (255 caractres maximum = 3 lignes) +40 COLOR 14,14:LOCATE 5:PRINT "> " +50 PRINT " " +60 PRINT " " +70 PRINT " ":COLOR 14:LOCATE 5,2:INPUT "",B$ +80 T=1:FOR I=1 TO LEN(B$) +90 K$=MID$(B$,I,1) +100 IF K$=" " THEN GOSUB 1000:GOTO 190 +110 IF K$="." THEN GOSUB 1100:GOTO 190 +120 N=ASC(K$) +130 IF N<=64 OR (N=>91 AND N<=96) OR N=>123 THEN BEEP:CLS:LOCATE 12,1:COLOR 30:PRINT "ERREUR DANS LE TEXT :";:COLOR 14:PRINT K$;:COLOR 30:PRINT "N'EST PAS UNE LETTRE DE L'APHABET":COLOR 2:PRINT "cls":END +140 IF N>=97 THEN N=N-32 +150 N=N-64+A +160 WHILE N:R$=RIGHT$(STR$(N-INT(N/2)*2),1)+R$:N=INT(N/2):WEND +170 IF LEN(MB$(T))+LEN(R$)+1>254 THEN T=T+1 +180 MB$(T)=MB$(T)+R$+"-":R$="" +190 NEXT:COLOR 13,0:CLS:PRINT :PRINT +200 FOR U=1 TO T:PRINT MB$(U);:NEXT +210 PRINT :PRINT "voulez-vous une trace ecrite o/n":A$=INPUT$(1) +220 IF A$="n" OR A$="N" THEN END +230 IF A$="o" OR A$="O" THEN 250 +240 BEEP:GOTO 210 +250 LPRINT B$:FOR I=1 TO T:LPRINT MB$(I);:NEXT +1000 MB$(T)=LEFT$(MB$(T),LEN(MB$(T))-1)+" ":RETURN +1100 MB$(T)=LEFT$(MB$(T),LEN(MB$(T))-1)+".":RETURN + \ No newline at end of file diff --git a/AN.DAT b/AN.DAT new file mode 100644 index 0000000..368dac8 --- /dev/null +++ b/AN.DAT @@ -0,0 +1,27 @@ + 11.33 + 8.33 + 9.66 + 8.05 + 11.5 + 8.83 + 8.91 + 9.16 + 11 + 12.16 + 8.33 + 10.33 + 12.75 + 10.91 + 8.3 + 8.25 + 13.6 + 11.5 + 9.33 + 11 + 11.33 + 14.33 + 11.66 + 13.5 + 11.84 + 9.58 + \ No newline at end of file diff --git a/AN2.DAT b/AN2.DAT new file mode 100644 index 0000000..fc13f3a --- /dev/null +++ b/AN2.DAT @@ -0,0 +1,29 @@ + 11.93 + 12.83 + 10.09 + 10.44 + 13.02 + 8.2 + 11.14 + 9.25 + 10.62 + 11.15 + 11.22 + 8.57 + 11.19 + 12.48 + 10.85 + 12.33 + 9.75 + 10.81 + 13.34 + 10.41 + 10.25 + 9.42 + 12.25 + 13.49 + 11.62 + 12.79 + 11.82 + 11.53 + \ No newline at end of file diff --git a/ARBRE2.BAS b/ARBRE2.BAS new file mode 100644 index 0000000..b8719ae --- /dev/null +++ b/ARBRE2.BAS @@ -0,0 +1,118 @@ +' calcul +DEF FNGAUSS(MINI%,MAXI%) + EVENTAIL%=MAXI%-MINI% + VALEUR%=((EVENTAIL%*RND)+(EVENTAIL%*RND)+(EVENTAIL%*RND)+(EVENTAIL%*RND))/4 + FNGAUSS=MINI%+VALEUR% +END DEF + +DEF FNRNDSGN% + OUINON%=RND + FNRNDSGN%=1-(2*OUINON%) +END DEF + +'*********************** ARBRE ALEATOIRE ************************************ + +SCREEN 1 : FOND%=1 : RANDOMIZE TIMER +OUT &H3D8,14:OUT &H3D9,FOND%+48 +PI=ATN(1)*4 : DEGRES=PI/180 : YAJUST=1.15 + +DIM COULEUR$(11) +COULEUR$(1)=CHR$(&H55) +COULEUR$(2)=CHR$(&HAA) +COULEUR$(3)=CHR$(&HFF) +COULEUR$(4)=CHR$(&H66)+CHR$(&H99) +COULEUR$(5)=CHR$(&H77)+CHR$(&HDD) +COULEUR$(6)=CHR$(&H44)+CHR$(&H11) +COULEUR$(7)=CHR$(&HBB)+CHR$(&HEE) +COULEUR$(8)=CHR$(&H88)+CHR$(&H22) +COULEUR$(9)=CHR$(&HCC)+CHR$(&H33) + +LINE(0,100)-(319,100),1:PAINT(150,150),COULEUR$(4),1 +CALL HERBE(0,110,319,199) : CALL EAU(150,180) + +FOR i%=1 TO 4 + AVANCE%=AVANCE%+20 + X1%=320*RND : Y1%=80+AVANCE% : X2%=X1% : Y2%=Y1%-AVANCE% + CALL ARBRE(X1%,Y1%,X2%,Y2%) +NEXT + +WHILE INKEY$="" : WEND + +END + +'____________________________________________________________________________ +' TRACES DES ARBRES +'____________________________________________________________________________ +SUB ARBRE(AX1%,AY1%,AX2%,AY2%) STATIC +SHARED HAUTEUR% +HAUTEUR%=AY1%-AY2% + FOR I%=1 TO 2 + X1%=AX1% : Y1%=AY1% : X2%=AX2% : Y2%=AY2% + CALL TRONC(X1%,Y1%,X2%,Y2%) + NEXT +END SUB + +SUB TRONC(X1%,Y1%,X2%,Y2%) STATIC +STATIC NOMBRE% + NOMBRE%=NOMBRE%+1 + FOR X%=X1% TO X1%+(5-NOMBRE%) + LINE(X%,Y1%)-(X2%,Y2%),3 + CALL FEUILLAGE(X2%,Y2%) + NEXT + IF NOMBRE% < 4 THEN + CALL BRANCHE(X1%,Y1%, X2%,Y2%) + CALL TRONC (X1%,Y1%, X2%,Y2%) + END IF + NOMBRE%=0 +END SUB + +SUB BRANCHE(X1%,Y1%,X2%,Y2%) STATIC +SHARED DEGRES, YAJUST + ANGLE=FNGAUSS(40,85)*DEGRES + X1%=(X1%+X2%)/2: Y1%=(Y1%+Y2%)/2 + X%=ABS(X2%-X1%) : Y%=ABS(Y1%-Y2%)*YAJUST + LONGUEUR%=SQR((X%^2)+(Y%^2)) + X2%=X1%+(FNRNDSGN%*(LONGUEUR%*(COS(ANGLE)))) + Y2%=Y1%-((LONGUEUR%*(SIN(ANGLE)))/YAJUST) +END SUB + +SUB FEUILLAGE(X2%,Y2%) STATIC +SHARED PI,HAUTEUR% + D%=HAUTEUR% / 5 + DIAMETRE%=D%+(D%*RND) + X%=X2%+(FNRNDSGN%*DIAMETRE%*RND) + Y%=Y2%+(FNRNDSGN%*DIAMETRE%*RND) + ASPECT=(RND+RND+RND)/10 + CIRCLE(X%,Y%),DIAMETRE%,2,,,ASPECT + PAINT(X%,Y%),2,2 + CIRCLE(X%,Y%),DIAMETRE%,3,,,ASPECT + PAINT(X%,Y%),3,3 + CIRCLE(X%,Y%),DIAMETRE%,1,,,ASPECT + PAINT(X%,Y%),1,1 + CIRCLE(X%,Y%),DIAMETRE%,0,PI,0,ASPECT +END SUB + +' HERBE ET EAU + +SUB HERBE(X1%,Y1%,X2%,Y2%) STATIC +FOR I%=0 TO 100 + X%=X1%+(X2%-X1%)*RND:Y%=Y1%+(Y2%-Y1%)*RND + LINE(X%,Y%)-(X%+FNRNDSGN%,Y%-6),1 +NEXT +END SUB + +SUB EAU(X%,Y%) STATIC + FOR I%=1 TO 5 + DIAMETRE%=20+20*RND + X%=X%+(FNRNDSGN%*(FNGAUSS(0,60))) + Y%=Y%+(FNRNDSGN%*(FNGAUSS(0,5))) + ASPECT=(RND+RND+RND)/10 + CIRCLE(X%,Y%),DIAMETRE%,2,,,ASPECT + PAINT(X%,Y%),2,2 + CIRCLE(X%,Y%),DIAMETRE%,0,,,ASPECT + PAINT(X%,Y%),0,0 + NEXT +END SUB + + + diff --git a/ARBRE2.QB b/ARBRE2.QB new file mode 100644 index 0000000..eeef352 --- /dev/null +++ b/ARBRE2.QB @@ -0,0 +1,138 @@ +' calcul +DEF FNGAUSS(MINI%,MAXI%) + EVENTAIL%=MAXI%-MINI% + VALEUR%=((EVENTAIL%*RND)+(EVENTAIL%*RND)+(EVENTAIL%*RND)+(EVENTAIL%*RND))/4 + FNGAUSS=MINI%+VALEUR% +END DEF + +DEF FNRNDSGN% + OUINON%=RND + FNRNDSGN%=1-(2*OUINON%) +END DEF + +'*********************** ARBRE ALEATOIRE ************************************ + +SCREEN 1 : FOND%=1 : RANDOMIZE TIMER +PI=ATN(1)*4 : DEGRES=PI/180 : YAJUST=1.15 + +DIM COULEUR$(11) +COULEUR$(1)=CHR$(&H55) +COULEUR$(2)=CHR$(&HAA) +COULEUR$(3)=CHR$(&HFF) +COULEUR$(4)=CHR$(&H66)+CHR$(&H99) +COULEUR$(5)=CHR$(&H77)+CHR$(&HDD) +COULEUR$(6)=CHR$(&H44)+CHR$(&H11) +COULEUR$(7)=CHR$(&HBB)+CHR$(&HEE) +COULEUR$(8)=CHR$(&H88)+CHR$(&H22) +COULEUR$(9)=CHR$(&HCC)+CHR$(&H33) + +INPUT "QUELLE PALLETTE (1-6)",p% +if p%>=7 OR P%<=0 THEN P%=1 +INPUT "nombre d'ARBRES dsirs : ",NA% +INPUT "COULEUR DE TERRE (1-11) : ",CT% +IF CT%<=0 OR CT%>=12 THEN CT%=4 +CALL PAL(P%) +CLS +LINE(0,100)-(319,100),1:PAINT(150,150),COULEUR$(CT%),1 +CALL HERBE(0,110,319,199) : CALL EAU(150,180) + +FOR i%=1 TO NA% + AVANCE%=AVANCE%+20 + X1%=320*RND : Y1%=80+AVANCE% : X2%=X1% : Y2%=Y1%-AVANCE% + CALL ARBRE(X1%,Y1%,X2%,Y2%) +NEXT + +WHILE INKEY$="" : WEND + +END + +'____________________________________________________________________________ +' TRACES DES ARBRES +'____________________________________________________________________________ +SUB ARBRE(AX1%,AY1%,AX2%,AY2%) STATIC +SHARED HAUTEUR% +HAUTEUR%=AY1%-AY2% + FOR I%=1 TO 2 + X1%=AX1% : Y1%=AY1% : X2%=AX2% : Y2%=AY2% + CALL TRONC(X1%,Y1%,X2%,Y2%) + NEXT +END SUB + +SUB TRONC(X1%,Y1%,X2%,Y2%) STATIC +STATIC NOMBRE% + NOMBRE%=NOMBRE%+1 + FOR X%=X1% TO X1%+(5-NOMBRE%) + LINE(X%,Y1%)-(X2%,Y2%),3 + CALL FEUILLAGE(X2%,Y2%) + NEXT + IF NOMBRE% < 4 THEN + CALL BRANCHE(X1%,Y1%, X2%,Y2%) + CALL TRONC (X1%,Y1%, X2%,Y2%) + END IF + NOMBRE%=0 +END SUB + +SUB BRANCHE(X1%,Y1%,X2%,Y2%) STATIC +SHARED DEGRES, YAJUST + ANGLE=FNGAUSS(40,85)*DEGRES + X1%=(X1%+X2%)/2: Y1%=(Y1%+Y2%)/2 + X%=ABS(X2%-X1%) : Y%=ABS(Y1%-Y2%)*YAJUST + LONGUEUR%=SQR((X%^2)+(Y%^2)) + X2%=X1%+(FNRNDSGN%*(LONGUEUR%*(COS(ANGLE)))) + Y2%=Y1%-((LONGUEUR%*(SIN(ANGLE)))/YAJUST) +END SUB + +SUB FEUILLAGE(X2%,Y2%) STATIC +SHARED PI,HAUTEUR% + D%=HAUTEUR% / 5 + DIAMETRE%=D%+(D%*RND) + X%=X2%+(FNRNDSGN%*DIAMETRE%*RND) + Y%=Y2%+(FNRNDSGN%*DIAMETRE%*RND) + ASPECT=(RND+RND+RND)/10 + CIRCLE(X%,Y%),DIAMETRE%,2,,,ASPECT + PAINT(X%,Y%),2,2 + CIRCLE(X%,Y%),DIAMETRE%,3,,,ASPECT + PAINT(X%,Y%),3,3 + CIRCLE(X%,Y%),DIAMETRE%,1,,,ASPECT + PAINT(X%,Y%),1,1 + CIRCLE(X%,Y%),DIAMETRE%,0,PI,0,ASPECT +END SUB + +' HERBE ET EAU + +SUB HERBE(X1%,Y1%,X2%,Y2%) STATIC +FOR I%=0 TO 100 + X%=X1%+(X2%-X1%)*RND:Y%=Y1%+(Y2%-Y1%)*RND + LINE(X%,Y%)-(X%+FNRNDSGN%,Y%-6),1 +NEXT +END SUB + +SUB EAU(X%,Y%) STATIC + FOR I%=1 TO 5 + DIAMETRE%=20+20*RND + X%=X%+(FNRNDSGN%*(FNGAUSS(0,60))) + Y%=Y%+(FNRNDSGN%*(FNGAUSS(0,5))) + ASPECT=(RND+RND+RND)/10 + CIRCLE(X%,Y%),DIAMETRE%,2,,,ASPECT + PAINT(X%,Y%),2,2 + CIRCLE(X%,Y%),DIAMETRE%,0,,,ASPECT + PAINT(X%,Y%),0,0 + NEXT +END SUB + + +' CHOIX DE PALETTE + +SUB PAL(NUMERO%) STATIC +SHARED FOND% + +IF NUMERO%=1 THEN OUT &H3D8, 10 : OUT &H3D9,FOND% +IF NUMERO%=2 THEN OUT &H3D8, 10 : OUT &H3D9,FOND%+16 +IF NUMERO%=3 THEN OUT &H3D8, 10 : OUT &H3D9,FOND%+32 +IF NUMERO%=4 THEN OUT &H3D8, 10 : OUT &H3D9,FOND%+48 +IF NUMERO%=5 THEN OUT &H3D8, 14 : OUT &H3D9,FOND% +IF NUMERO%=6 THEN OUT &H3D8, 14 : OUT &H3D9,FOND%+16 + +END SUB + + diff --git a/ARBRES.QB b/ARBRES.QB new file mode 100644 index 0000000..c9f29d3 --- /dev/null +++ b/ARBRES.QB @@ -0,0 +1,132 @@ +' calcul +DEF FNGAUSS(MINI%,MAXI%) + EVENTAIL%=MAXI%-MINI% + VALEUR%=((EVENTAIL%*RND)+(EVENTAIL%*RND)+(EVENTAIL%*RND)+(EVENTAIL%*RND))/4 + FNGAUSS=MINI%+VALEUR% +END DEF + +DEF FNRNDSGN% + OUINON%=RND + FNRNDSGN%=1-(2*OUINON%) +END DEF + +'*********************** ARBRE ALEATOIRE ************************************ + +SCREEN 1 : FOND%=1 : CALL PAL(1) : RANDOMIZE TIMER +PI=ATN(1)*4 : DEGRES=PI/180 : YAJUST=1.15 + +DIM COULEUR$(11) +COULEUR$(1)=CHR$(&H55) +COULEUR$(2)=CHR$(&HAA) +COULEUR$(3)=CHR$(&HFF) +COULEUR$(4)=CHR$(&H66)+CHR$(&H99) +COULEUR$(5)=CHR$(&H77)+CHR$(&HDD) +COULEUR$(6)=CHR$(&H44)+CHR$(&H11) +COULEUR$(7)=CHR$(&HBB)+CHR$(&HEE) +COULEUR$(8)=CHR$(&H88)+CHR$(&H22) +COULEUR$(9)=CHR$(&HCC)+CHR$(&H33) + +LINE(0,100)-(319,100),1:PAINT(150,150),COULEUR$(4),1 +CALL HERBE(0,110,319,199) : CALL EAU(150,180) + +FOR i%=1 TO 4 + AVANCE%=AVANCE%+20 + X1%=320*RND : Y1%=80+AVANCE% : X2%=X1% : Y2%=Y1%-AVANCE% + CALL ARBRE(X1%,Y1%,X2%,Y2%) +NEXT + +WHILE INKEY$="" : WEND + +END + +'____________________________________________________________________________ +' TRACES DES ARBRES +'____________________________________________________________________________ +SUB ARBRE(AX1%,AY1%,AX2%,AY2%) STATIC +SHARED HAUTEUR% +HAUTEUR%=AY1%-AY2% + FOR I%=1 TO 2 + X1%=AX1% : Y1%=AY1% : X2%=AX2% : Y2%=AY2% + CALL TRONC(X1%,Y1%,X2%,Y2%) + NEXT +END SUB + +SUB TRONC(X1%,Y1%,X2%,Y2%) STATIC +STATIC NOMBRE% + NOMBRE%=NOMBRE%+1 + FOR X%=X1% TO X1%+(5-NOMBRE%) + LINE(X%,Y1%)-(X2%,Y2%),3 + CALL FEUILLAGE(X2%,Y2%) + NEXT + IF NOMBRE% < 4 THEN + CALL BRANCHE(X1%,Y1%, X2%,Y2%) + CALL TRONC (X1%,Y1%, X2%,Y2%) + END IF + NOMBRE%=0 +END SUB + +SUB BRANCHE(X1%,Y1%,X2%,Y2%) STATIC +SHARED DEGRES, YAJUST + ANGLE=FNGAUSS(40,85)*DEGRES + X1%=(X1%+X2%)/2: Y1%=(Y1%+Y2%)/2 + X%=ABS(X2%-X1%) : Y%=ABS(Y1%-Y2%)*YAJUST + LONGUEUR%=SQR((X%^2)+(Y%^2)) + X2%=X1%+(FNRNDSGN%*(LONGUEUR%*(COS(ANGLE)))) + Y2%=Y1%-((LONGUEUR%*(SIN(ANGLE)))/YAJUST) +END SUB + +SUB FEUILLAGE(X2%,Y2%) STATIC +SHARED PI,HAUTEUR% + D%=HAUTEUR% / 5 + DIAMETRE%=D%+(D%*RND) + X%=X2%+(FNRNDSGN%*DIAMETRE%*RND) + Y%=Y2%+(FNRNDSGN%*DIAMETRE%*RND) + ASPECT=(RND+RND+RND)/10 + CIRCLE(X%,Y%),DIAMETRE%,2,,,ASPECT + PAINT(X%,Y%),2,2 + CIRCLE(X%,Y%),DIAMETRE%,3,,,ASPECT + PAINT(X%,Y%),3,3 + CIRCLE(X%,Y%),DIAMETRE%,1,,,ASPECT + PAINT(X%,Y%),1,1 + CIRCLE(X%,Y%),DIAMETRE%,0,PI,0,ASPECT +END SUB + +' HERBE ET EAU + +SUB HERBE(X1%,Y1%,X2%,Y2%) STATIC +FOR I%=0 TO 100 + X%=X1%+(X2%-X1%)*RND:Y%=Y1%+(Y2%-Y1%)*RND + LINE(X%,Y%)-(X%+FNRNDSGN%,Y%-6),1 +NEXT +END SUB + +SUB EAU(X%,Y%) STATIC + FOR I%=1 TO 5 + DIAMETRE%=20+20*RND + X%=X%+(FNRNDSGN%*(FNGAUSS(0,60))) + Y%=Y%+(FNRNDSGN%*(FNGAUSS(0,5))) + ASPECT=(RND+RND+RND)/10 + CIRCLE(X%,Y%),DIAMETRE%,2,,,ASPECT + PAINT(X%,Y%),2,2 + CIRCLE(X%,Y%),DIAMETRE%,0,,,ASPECT + PAINT(X%,Y%),0,0 + NEXT +END SUB + + +' CHOIX DE PALETTE + +SUB PAL(NUMERO%) STATIC +SHARED FOND% +' IF NUMERO%=0 THEN NUMERO%=4 +' SELECT CASE NUMERO% + OUT &H3D8, 10 : OUT &H3D9,FOND% +' CASE 2 : OUT &H3D8, 10 : OUT &H3D9,FOND%+16 +' CASE 3 : OUT &H3D8, 10 : OUT &H3D9,FOND%+32 +' CASE 4 : OUT &H3D8, 10 : OUT &H3D9,FOND%+48 +' CASE 5 : OUT &H3D8, 14 : OUT &H3D9,FOND% +' CASE 6 : OUT &H3D8, 14 : OUT &H3D9,FOND%+16 +' END SELECT +END SUB + + diff --git a/B.BAS b/B.BAS new file mode 100644 index 0000000..faeebcb --- /dev/null +++ b/B.BAS @@ -0,0 +1,7 @@ +0 FI$=INPUT$(8):FI$=FI$+".iii" +10 REM +20 REM +30 DEF SEG=&HB800 +40 BSAVE FI$,0,32768! +50 END + \ No newline at end of file diff --git a/BAT1.BAS b/BAT1.BAS new file mode 100644 index 0000000000000000000000000000000000000000..e3ec20853cb891a99a4d0627a2bc7fe55f8746f0 GIT binary patch literal 7085 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 Cv+_;= literal 0 HcmV?d00001 diff --git a/BINALPHA.BAS b/BINALPHA.BAS new file mode 100644 index 0000000..af26ad0 --- /dev/null +++ b/BINALPHA.BAS @@ -0,0 +1,15 @@ +0 CLS:COLOR 13 +2 DIM M$(1000),L$(26):V=1 +3 FOR I=1 TO 26:READ A$:L$(I)=A$:NEXT +9 INPUT "CODE (en decimal) du A",A +10 INPUT "phrase APHA SVP";FA$ +20 FOR T=1 TO LEN(FA$) +30 D$=MID$(FA$,T,1) +40 IF D$=" " OR D$="." THEN GOSUB 1000:V=V+1:R$="":GOTO 70 +50 IF D$="-" THEN GOSUB 1000:GOTO 70 +60 R$=R$+D$ +70 NEXT:FOR I=1 TO V:PRINT M$(I);" ";:NEXT I:END +1000 WHILE LEN(R$)>0:K=K*2+VAL(LEFT$(R$,1)):R$=RIGHT$(R$,LEN(R$)-1):WEND +1010 K=K-A+1:M$(V)=M$(V)+L$(K):K=0:RETURN +60000 DATA "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z" + \ No newline at end of file diff --git a/BINM.BAS b/BINM.BAS new file mode 100644 index 0000000..9729c9e --- /dev/null +++ b/BINM.BAS @@ -0,0 +1,3 @@ +1 WHILE LEN(R$)>0:K=K*2+VAL(LEFT$(R$,1)):R$=RIGHT$(R$,LEN(R$)-1):WEND +3 WHILE N:R$=RIGHT$(STR$(N-INT(N/2)*2),1)+R$:N=INT(N/2):WEND + \ No newline at end of file diff --git a/BLI2.BAS b/BLI2.BAS new file mode 100644 index 0000000000000000000000000000000000000000..2c2f4bea73aa13a5515bacce1f2d229737ebc5e4 GIT binary patch literal 642 zcmZ9J&ubGw6vw~d%|m8pt6~Z*k0szP2LFKRY4;K~lpbUkcD)IaLJma~Ar}!+1b?Oo zl3Sq#y?C+IUIf8XJglL))ap%-nQU_Ce_(vG(HfoON9q zQe_$VAX+%oIXS!)j>HDK6d8w(iREXa16DuwO2CwGJ~P|DOEba1=+=C zj=Iz=^+Dm_x_p5FH49HvC&9$=>rrt1YK%vUK|I97VQ(UnS#PVPzfd$4t@_gNc=ciZsvb~OcH(X`;5@LjP0~HmyVOHl zo%~0f=kKd;NMe)XjXJfLBrcuIi5*E|--vzgz>b>4)_n`*S4#KrNquKx67%2m_)Ynp P$|-Q9exS#rEiV26KfBqz literal 0 HcmV?d00001 diff --git a/BLITZ.BAS b/BLITZ.BAS new file mode 100644 index 0000000000000000000000000000000000000000..eda30b6e2e2dad4a9a26dcb66a4228395eb2bd51 GIT binary patch literal 489 zcmX|-F-yZh6vyA}&`S;xTd+Jr#RP&M;5sEsNf9T9#7&8GDR9j zB8ZD1DB=)H`vn9Yd!`-y1X|yv*ayemd))7T|N9RY834ZF2ZU?_ju71iZ)th{zhH|^ zf?JTomdUzSqBhNfbCw6EAU}m8hkGWs!~;5m-xJY5ni>XnF_Q+5xn&oR}=z zclzA2y<|!pqj6^xMIFnuJP}9^t6B?u=_j1@eaYrXIFJFgzT~1Lbs7hfWob-sg=(cz zjZ_(82TrvMaAj-;HVIht-Sn7R{pv9!vu?Vl@cPZ zPz7{|nHb<*yC2^)5Xm}yxCLP8F*K0e(ajS1RKW!*xGaiS^ad=nXS$t*ZF^d@(MumP U&WIj2N~(^ciQ*EQ0FcZ50gqIo?EnA( literal 0 HcmV?d00001 diff --git a/C--C.BAS b/C--C.BAS new file mode 100644 index 0000000000000000000000000000000000000000..c10b78d1f4b32c2d001d259a027449592ae9c198 GIT binary patch literal 244 zcmew##Lvdirr@U`bAerxA(NkrVV8nZrjm}bkd9J8QEF~xYLOB{J--M;x5EF$8bX>1 zXBBo^bt>@LFferT%P|Bz4|plWFr8n6p;ZB>#ZMzZlVKsh5d%<#2m`||ejAW+`4Hps zbm0b`;df(bQt*5(q;N(dK;gWC1cQt~0K-Ix5uTdXN;*o`ej1)Hg%C_(1XBdT6h$z_ h5KM7R22+73hGqq;-BuG7lx>O&UZbq6Vo2>a+ zXt4!%Y2CKi(%L=>3W5mwAbnCF^hMC3556cB^v%vT4=M#;M7o}HXC}s)2Om1S$-Q^Z z{W<45-}!EKR>O<|K3~I6>gSM9zfdm$&spi&WG4KqlHoZmJ&PT-8Q#UX$42^TyqRc)CPcYp|yWh`--^s`zE9{r>_QZ8OGsi1h zQHT7DZkBBwJ316+xShALTY+P`%}XpEc{p(w!pTfby#ct5>JKi0{9@mMS89#!+=>H> zAZM~^b};hS1kb0zg`L-Dv*}DiVOr$T#8tqTu58)54BtZbB!+MqLTQPeiZCfK@{(_i z`^NK;-GR~8kNU=hZ+tr<1x7=L-@F41vr5xK7Y6Lp$ezHiFJ=A3lm6nnk*5Nqi6-`A zv2yr|o703Rqg(3)|& zJy@%CVY$7!)@gKMwzjqg-F^r9EeCq-{_+_I6nTN2i|&`QY4>OKDqthyp%B_Hf%-0l zwkOyJ(X_Mywi|CCuKra{H);T0)Dn6wiL@s>h*g_r$hJ+OCQ zYU|E9sBf%Xlo!kendb_6xdgM>v4B!?_Dk%$n1)+h+xMfm?*8x(6c!)W^hPh^?8kQ1f!>^m-1oPp>#VXe>9zxqvD4JvblNhxG8m=Evc{ zA^;ZAIu;XPbO>C_M-Ff|%X*9RqwTn0=f${zNeQAyJgxgwV|aAYx;X^MX_+E2D%qicr-nWw3Y&5vrKT z4#GkRY@E;h^ct~DLh}05P)bnR9Cs%fGV$)h}})3w#H37 zvWllRXMA=wQE;)cUPa{&gkgP@#D_T^M>;8hdp&qy&{BQ!TX`4OQVnLC2I z*KId9{QRP1pfWmjB#pRSMg)oGj?qL#_TfwJJ3lU{z{g<=25NB?bo?$u7DqPrJ!${f zH~VPc1q_1}iGG0)ABIF|d8*w;wssm$3+jEk@_OUb;`v9R4~5zk3XBlY?uLR1%^(>( zWTpt2F_&o&=c9dZjEfVTW@EL1cW=MtE4Ytj2Zo`K?XbP6t&!v@sml~K-JYIvR0mhE z&@ppNOI;awZxIl60}8Hz7q>Zxv6oU;g{6RW!1XvHgcJk3ZJoj$SQni HYw0wQaHuH{Qu1V!Hj(ZfG_v~7i0x)@wbl3yC@Y(FRC0WG=b;) zD6n2T@Kpo7y7HPqEmH76)}X^V-vWR;(ZhA|ES|6++K9FnhOtp6*oY&HeTB^+o@CkZ zPKp_)Rr6)gLh5jb?NHZo96o6b`lJNjcG8D$LLo}VS9Fz$E=J-8GugKB6>}wk&?dZ1kfr`8_GL=Ux_!Q^K?L&;<);mq2H zQ5&h|hH=RYA_Hr9w5m{<1s4B-GpSBT_wZ&NFXVh#;XJ33eKwl1#5Lxs0L%G!;T^!n E51+!9fdBvi literal 0 HcmV?d00001 diff --git a/CERC2.BAS b/CERC2.BAS new file mode 100644 index 0000000000000000000000000000000000000000..126655309e5640db189dc3742ddd59665422edc7 GIT binary patch literal 130 zcmeyL!q32<(612g>F44fuApI{W1y+4VQ6Y#pkriUpvjQM&&6xuC)s z1tEp=3bJR<_|z~g=a*#YS8($FURn2 bqJoBu1EUUqilz>T76!_DS~W8;Fh~Ia7xo>_ literal 0 HcmV?d00001 diff --git a/CERC3.BAS b/CERC3.BAS new file mode 100644 index 0000000000000000000000000000000000000000..d59ed49060bf0543f9d39d008c7493a4fa12dd1d GIT binary patch literal 123 zcmew#%g?}|pzv?5f`*`upyn$LnLDgH{3kRSlKHt94lva6i!d}Pcs>_YIHMq&o0e9u za9%<7>=~aLhWY%G4E+kuo= N THEN LOCATE 22:PRINT "impossible vous avez dj";N;"OBJETS (App sur une touche )";:GOTO 1051 +1091 IF P<>0 THEN FOR I=1 TO 5 ELSE 1097 +1092 IF OBP$(I,P)=OD$ THEN 1093 ELSE NEXT :LOCATE 22,1:PRINT "il n'y a pas cette objet ici (App sur une touche)";:GOTO 1051 +1093 LOCATE 22:PRINT " OK !? je vais le prendre ... (APP sur une touche)"; +1094 OP=OP+1:OP$(OP)=OD1$:OBP$(I,P)="" +1095 ' ******** NE PAS OUBLIER DE LE RETIRER DE L'ECRANT ********* +1096 GOTO 1051 +1097 FOR I=1 TO OC +1098 IF LEFT$(OBC$(I),3)=OD$ THEN 1099 ELSE NEXT :LOCATE 22,1:PRINT "il n'y a pas cette objet ici (App sur une touche)";:GOTO 1051 +1099 LOCATE 22:PRINT " OK !? je vais le prendre ... (APP sur une touche)"; +1100 GOSUB 60050 :OP=OP+1:OP$(OP)=OD1$:GOTO 1051 +1109 ' **** IL VEUT POSER UN OBJET *** **** *** *** ** ** * * * * * ** * * ** +1110 OP=OP-1:GOSUB 60000 :IF P<> 0 THEN LOCATE 22,1:PRINT "si VOUS voulez CONSERVER l'objet il faut que vous soyer dans la chamdre debara or vous ni tes pas -- Continuer vous O/ou une touche ? -- "; ELSE 1112 +1111 A$=INKEY$:IF A$="" THEN 1111 ELSE IF A$<>"o" AND A$ <>"O" THEN 1000 ELSE LOCATE 22:PRINT " --- VOUS PERDEZ CETTE OBJET ?!!!!????.... --- ";:GOSUB 60040:GOTO 1051 +1112 LOCATE 22:PRINT EP$:LOCATE 22:PRINT " OK JE POSE ";OD1$;" (app sur une touche)" +1114 OC= OC +1:OBC$(OC)=OD1$:GOSUB 60040:GOTO 1051 +60000 '|||||||||||||||| controle de POSSETION DE L'OBJET ||||||||||||||||||||||| +60010 FOR I=1 TO N +60020 IF LEFT$(OP$(I),3)=OD$ THEN RETURN ELSE NEXT :LOCATE 22:PRINT " =-= dsol vous ne possedez pas cette objet =-= (App sur une touche)":GOTO 1051 +60029 '||||||||||||||||||||||||||||||||| I N V E N T A I R E ................... +60030 IF OP$(1)="" THEN LOCATE 22:PRINT " nous avons rien du tout (app sur une touche)":GOTO 1051 ELSE FOR I=1 TO N:LOCATE 22:PRINT OP$(I);" ,";:NEXT :LOCATE 23:PRINT "app sur une touche ":GOTO 1051 +60039 '|||||||||||||||| elimine un objet posseder |||||||||||||||||||||||||||||| +60040 FOR I=1 TO N +60041 IF OD1$=OP$(I) THEN 60042 ELSE NEXT +60042 OP$(I)="":FOR J=I TO N-1 +60043 OP$(J)=OP$(J+1):NEXT:RETURN +60049 '|||||||||||||||| elimine un objet CACHE |||||||||||||||||||||||||||||| +60050 FOR I=1 TO OC +60051 IF OD1$=OBC$(I) THEN 60052 ELSE NEXT +60052 OBC$(I)="":FOR J=I TO OC-1 +60053 OBC$(J)=OBC$(J+1):OC=OC-1:NEXT:RETURN + \ No newline at end of file diff --git a/CLAFOR.DAT b/CLAFOR.DAT new file mode 100644 index 0000000..51d22f9 --- /dev/null +++ b/CLAFOR.DAT @@ -0,0 +1,147 @@ +ESC 27 +1 49 +2 50 +3 51 +4 52 +5 53 +6 54 +7 55 +8 56 +9 57 +0 48 + 248 +_ 95 +DEL AV 7 +DEL AR 8 +TAB AV 9 +A 65 +Z 90 +E 69 +R 82 +T 84 +Y 89 +U 85 +I 73 +O 79 +P 80 +a 94 +$ 13 +$ 36 +* 42 +RET CH 13 +Q 81 +S 83 +D 68 +F 70 +G 71 +H 72 +J 74 +K 75 +L 76 +M 77 + 151 + 13 +< 60 +W 87 +X 88 +C 67 + 86 +V 86 +B 66 +N 78 +, 44 +; 59 +: 58 += 61 +F1 315 +F2 316 +F3 317 +F4 318 +F5 319 +F6 320 +F7 321 +F8 322 +F9 323 +F10 324 +SCR LK 19 +- 45 ++ 43 +7 55 +8 56 +9 57 + 13 +4 52 +5 13 +5 53 +6 54 +1 49 +2 50 +3 51 +0 13 +0 48 +. 46 +& 38 + 130 + 13 + 13 + 34 +' 39 +( 40 + 21 + 21 + 138 +! 33 + 135 + 133 +) 41 +- 45 +tab ar 9 +a 97 +z 122 +e 101 +r 114 +t 116 +y 121 +u 117 +i 105 +o 111 +p 112 +a 94 +* 13 +* 42 +prt sc 13 +q 113 +s 115 +d 100 +f 102 + 13 +g 103 + 13 +h 104 +j 106 +k 107 +l 108 +m 109 +% 37 + 156 +> 62 +w 119 +x 120 +c 99 +v 118 +b 98 +n 110 +? 63 +. 46 +/ 47 ++ 43 +fle h 328 +fle dr 333 +fle b 336 +fle g 331 +end 335 +pg dn 337 +pg up 329 +ins 338 +del 339 +home 327 diff --git a/CLAFORM.BAS b/CLAFORM.BAS new file mode 100644 index 0000000..d69a519 --- /dev/null +++ b/CLAFORM.BAS @@ -0,0 +1,16 @@ +OPEN #10 OUTPUT "B:CLAFOR.DAT" +blanc$=" " + LABEL essai +INPUT "Nom de la Touche";a$ +50 PRINT "Taper la Touche" +IF a$="END" THEN GOTO fin +75 a=INKEY +100 IF a=-1 GOTO 75 +a$=a$+RIGHT$(blanc$,6-LEN(a$)) +PRINT #10,a$;STR$(a) +PRINT a$;STR$(a) +200 GOTO essai +LABEL fin +CLOSE #10 +END + diff --git a/CLAVAJO.BAS b/CLAVAJO.BAS new file mode 100644 index 0000000..59b4ce1 --- /dev/null +++ b/CLAVAJO.BAS @@ -0,0 +1,14 @@ +OPEN #10 APPEND "B:CLAVIER.DAT" + LABEL essai +INPUT "Nom de la Touche";a$ +50 PRINT "Taper la Touche" +IF a$="END" THEN GOTO fin +75 a=INKEY +100 IF a=-1 GOTO 75 +PRINT #10,a$;STR$(a) +PRINT a$;STR$(a) +200 GOTO essai +LABEL fin +CLOSE #1 +END + diff --git a/CLAVIER.BAS b/CLAVIER.BAS new file mode 100644 index 0000000..498ddf8 --- /dev/null +++ b/CLAVIER.BAS @@ -0,0 +1,14 @@ +OPEN #10 OUTPUT "B:CLAVIER.DAT" + LABEL essai +INPUT "Nom de la Touche";a$ +50 PRINT "Taper la Touche" +IF a$="END" THEN GOTO fin +75 a=INKEY +100 IF a=-1 GOTO 75 +PRINT #10,a$;STR$(a) +PRINT a$;STR$(a) +200 GOTO essai +LABEL fin +CLOSE #10 +END + diff --git a/CLAVIER.DAT b/CLAVIER.DAT new file mode 100644 index 0000000..6faa744 --- /dev/null +++ b/CLAVIER.DAT @@ -0,0 +1,86 @@ +ESC 27 +1 49 +2 13 + 13 + 13 + 51 +2 130 +2 50 +3 51 +4 52 +5 53 +6 54 +7 55 +8 56 +9 57 +0 48 + 248 +_ 95 +DEV 7 +DER 8 +TAB 9 +A 65 +Z 90 +E 69 +R 82 +T 13 +T 84 +Y 89 +U 85 +I 73 +O 79 +P 34 + 327 +$ 36 +* 42 +Q 13 +Q 81 +S 83 +D 68 +F 70 +G 71 +H 13 + 72 +H 72 +J 74 +K 75 +L 76 +M 77 + 151 + 230 +< 60 +W 87 +X 88 +C 67 +V 86 +B 66 +N 78 +, 44 +; 59 +: 58 += 61 +7 55 +8 56 +9 57 +34" 52 +4 52 +5 53 +6 54 +1 49 +2 50 +3 51 +0 48 +. 46 +SCL 19 +- 45 ++ 43 +F1 315 +F2 316 +F3 317 +F4 318 +F5 319 +F6 320 +F7 321 +F8 322 +F9 323 +F10 324 diff --git a/CLI.DAT b/CLI.DAT new file mode 100644 index 0000000..e69de29 diff --git a/CLIENT.BAS b/CLIENT.BAS new file mode 100644 index 0000000000000000000000000000000000000000..6d495774dea3d4f764655a73bad86f16a36823b0 GIT binary patch literal 2198 zcmbtUU1%It6h4qO(qwmLXD01TVvxf)!fu>IP^e*ADwEw!yJ0g)*X^qDB_W;Et=rxF zY@}9b=}&}OO|5?j7St+5P%uSmr9qO13L0!t%tK%Fv6EJ?5EWk{>$!JkTB%?I-iLed zobQ}-zjN+)r+%jS9(V~;iT0I-q?tDS)d|*ouoi-~=&x|Txe2~O$$B5fL2J?a7Jq`Z z<`!7OO{Qv{LLECgIkbg5S38NP}R!UBrzye_;widEu( zsb{OD{rE(25G~zWKn1Qwhrl+x86zPltrJLFUB}BP3;{rFH~5yFI^N{aM6jv9oe=L! zlHa0r7}{f%z|Rf+GCaph19Zps2iRDM^>Xa{d!Z0J5@5LyD|772W*CmGG%VmoQ?eG} zSZuXn2^CXpVKw!;mFa(Ub)Q?QQDfhYHAYz9WNQX>r@D{IGaUoY#p02E!*dLaE@@e{ z9K-83U^&)C&eTNiU3g*K#oaEBmP;%b1?CO75i?j|J`BwBz(%2q1vdME_U=h{YRY91 zX#*Y(r7Co(m63ZJh|PvO9G*hK>e9(Je~=Y`?O9arjv4X*G8&qZKC*c)*? z=ei7k3bhD5AScP%L@$UoR5m>=+N2FD#nzNXPl;CILT`&UL~nyQM?~~YWwbiUPS#8UH{%iCh13Y+LVuiTD{-$iTk~ITZg? zJ%U+J#_!O9PvT#w7Xs$lBx6o zzT37zyR>|ZSN-)wKQ*UI`dK9{){oMcnKk7kY>`$}+pE8ounFEJt|)~a#7?raFQyoRUy*+IVf5`7*gup02ojD22@h}w`-T|0EJ|z4 zWhF={!4FcS#z=@Sa#sm{k>cFoiO&Q{h6Cg;sZA@gH`#Aor+=WGgpIPHQAaJ`XfaUN zsk5W7J$ z6EIm0Dp$zjYuvXSQ?Al^XBB8Y;b)^R@O*c);hfUcdK`I2>dI*AUGHXnH$$oiX!{$! CXits+ literal 0 HcmV?d00001 diff --git a/CLIENT.DAT b/CLIENT.DAT new file mode 100644 index 0000000..beec5b0 --- /dev/null +++ b/CLIENT.DAT @@ -0,0 +1,7 @@ +"DFGT","69.39.51.26",65002,"G.L.M.P.P","52 av. du Peuple","69.74.10.85" +"DORIT","69.25.12.01",91800,"C.L.R","Toto les lila","WHERE" +"ZOLG","45446",91800,"SUPERBE","71 avenue d'Orlans","69-39-51-26" +"DURAN","JUJI",91800,"VUYFOYUFOU",":444 UUUUU iiii RRRRR","55555" +"GHU","A COTE",91802,"HIUHUIH","41 lllll","KLOI" +"DUGLAN","WHERE",98102,"H.L.M","85 rue du bourg","WHERE" + \ No newline at end of file diff --git a/CODEBIN.BAS b/CODEBIN.BAS new file mode 100644 index 0000000..469c6ab --- /dev/null +++ b/CODEBIN.BAS @@ -0,0 +1,17 @@ +Cls +input a +gosub CODEBIN +print bin$ +end + + +CODEBIN : + b=5 + While b<>0 + b=int(a/2):r=a mod 2 + bin$=str$(r)+bin$ + print a,b,r + a=b + Wend + Return + diff --git a/COMBAT.BAS b/COMBAT.BAS new file mode 100644 index 0000000000000000000000000000000000000000..0b091c139da95bb0d847eb6254eb7efce4728a2a GIT binary patch literal 1417 zcmZ8gL2MgU5S?N!gw|{C8f}|KXtD$mOO~Y|#Nqn@2CvY{*-gQ-K$@6DsXWq=b`G0(% z5%GuYEi7s?#gZ3Ijwm@?Wr%zHoA`mXb7CM`EjdS;_>4pQ4SANn6}BzMpDtQ#6-Bct zwGV{jNo^>+C8_;L1MLj$vbE89tJmhWHuu+iF^A=5xxrQ?a_A533EJbxIo4j}pZEq_ z>l^XrJL~bKjXqoABhH>7dMcNh#2jh2l9+z4)8$w2o1dSb20fE|l7c`+ju_Chxf!Z1 z$OrUp?rCH~9p75iE*6o^0~V;V)#;<3`0Wm4JMOcvDh=PMSl!NMZ_-%BLZ|I`g5EXh zX6|ePWW8(w1st?mLqqIAJCbt;+SE5P#9g|RJC_E(^e`A7RPeE!JIzjm0dSXo&1KVI zR>7ZeR%Yn$+y&a_TCHT;VjpRxW>eH^s7cS~XX!gWy(u`7ZheA-`^Oh17aZr6=)`huQ%O)#cIL z=W5)#%!{ftPLd|HMo}$mhE#PN^m|@ruvYA2q_b+!k;i$Yf%~Q(1vZDT`;c}RJ~PBcdHpzZ`UNgu$rRh{fCat}PDa{=6YYS1<`Ej(XQ!l{R|nd}cogfy%pQV$ z{tFT#OivJ$dPa(&1Q-_^>zDWs^$8Yu|Nn4m-0Nz%9op7MX+KE2PKSEebnx|i3)kuL zQhDuC-{NiF1^FRAr_(R`6;rjXqib!3#V(vBJT+(X(jf8BAYBNtBW}~bdd~z)p6`ZM z$%@M0LMiCYi2D!nV< zg5&a5xr?u!w?NgxSLiX4pz}UE>I&!rV@E})y literal 0 HcmV?d00001 diff --git a/CONBAT.BAS b/CONBAT.BAS new file mode 100644 index 0000000..620dbab --- /dev/null +++ b/CONBAT.BAS @@ -0,0 +1,30 @@ +0 DIM N$(10),NT(10),TT(10),M(10):KEY OFF:COLOR 13:CLS:XX=3840:DEF SEG=&HB800:EE=ASC(" "):VV=127:IN=233:N1=196 +1 INPUT "nobre de tirs S.V.P ";TI +2 IF TI<50 THEN PRINT "insufisant ":GOTO 1 +3 IF TI>150 THEN PRINT "trop ????!!!":GOTO 1 +4 RR=TI:CLS +10 A$=INKEY$ +11 IF A$=CHR$(27) THEN CLS :PRINT "votre score est :";POI;"pour ";TI;"tires":GOTO 6000 +12 IF A$="6" THEN XX=XX+2:IF XX>=4000 THEN XX=XX-2:BEEP +13 IF A$="4" THEN XX=XX-2:IF XX<=3838 THEN XX=XX+2:BEEP +14 IF A$=" " THEN GOSUB 999 +25 POKE DD,EE:POKE XX,VV:DD=XX +26 RANDOMIZE TIMER: T=INT(RND*2):IF T=1 THEN A=A+2 ELSE IF T=2 THEN A=A-2 +27 POKE O,EE:POKE O-2,EE:POKE O+2,EE:POKE A+K,IN:POKE A+K+2,N1:POKE A+K-2,N1:O=A+K:K=K+160:IF K=>3998 THEN K=0:A=2*INT(RND*80):GOTO 10 ELSE 10 +999 TI=TI-1 :IF TI=<0 THEN PRINT "VOTRE SCORE EST :";POI;"pour ";RR;"TIRES":GOTO 6000 +1000 PALETTE 13,6:FOR I=XX TO XX-25*160 STEP -160:POKE I,24:POKE I+160,EE +1001 IF I=O OR I=A+K OR I=A+K+2 OR I=A+K-2 THEN PALETTE 13,13:POI=POI+1:POKE I,EE:A=2*INT(RND*80):K=0:RETURN ELSE NEXT +1002 PALETTE 13,13:RETURN +6000 I=0:OPEN"scoj1.dat" FOR INPUT AS #1 +6001 FOR I=1 TO 10 :INPUT #1,N$(I),NT(I),TT(I),M(I):NEXT:CLOSE +6002 PRINT "NOMS","T.TIRS","POINTS"," MOYENNE" +6003 FOR I=1 TO 10:COLOR 14:PRINT N$(I),:COLOR 13:PRINT NT(I),TT(I),:COLOR 20:PRINT M(I):NEXT :COLOR 2 +6004 MM=100/RR*POI +6005 FOR I=1 TO 10:IF MM>=M(I) THEN 6050 +6006 NEXT :PRINT " DESOLE VOUS N'ETES PAS PARMIS LES DIX MEILIEURS !!!":END +6050 PRINT "BRAVO !!! vous tes le ";I" eme ":INPUT "VOTRE NOM s.v.p ";NN$ +6060 FOR T=10 TO I STEP -1:N$(T)=N$(T-1):NT(T)=NT(T-1):TT(T)=TT(T-1):M(T)=M(T-1):NEXT +6070 M(I)=MM:N$(I)=NN$:NT(I)=RR:TT(I)=POI +6080 OPEN"scoj1.dat" FOR OUTPUT AS #1 +6081 FOR Y=1 TO 10 :PRINT #1,N$(Y);",";NT(Y);",";TT(Y);",";M(Y):NEXT :CLOSE:END + \ No newline at end of file diff --git a/CONC.DAT b/CONC.DAT new file mode 100644 index 0000000..d61b8bb --- /dev/null +++ b/CONC.DAT @@ -0,0 +1,29 @@ + 26 +Allirot Guillaume +Caron Christelle +Couade Celine +Darche Yoann +Darcot Thomas +De Foucault Guillaume +Fauchet Cristian +Genos Alexendra +Giethlen Julien +Gompel Carole +Guego de Traoulene S +Guimiot Fabien +Hassoun Jerome +Legrain Vincent +Letierce Thomas +Loudoux Henri +Muller Delphine +Paccioni Laurent +Pinget Gaetan +Robert Alin +Robert Sebastien +Robin Stephane +Tessier Annelyse +Thuilier Denis +Trouillon Karle... +Zamarra Gilbert + + \ No newline at end of file diff --git a/CONC1.DAT b/CONC1.DAT new file mode 100644 index 0000000..11a4a4e --- /dev/null +++ b/CONC1.DAT @@ -0,0 +1,31 @@ + 28 +Allirot Guillaume +Costard Christophe +Couade Celine +Darche Yoann +Darcot Thomas +De Foucault Guillaume +DelVecchio Christophe +Fauchet Cristian +Genos Alexendra +Giethlen Julien +Gompel Carole +Guerrouzi Severine +Guimiot Fabien +Hassoun Jerome +Legrain Vincent +Leonardi Damien +Letierce Thomas +Montemon Stephanie +Muller Delphine +Neuts Emmanuelle +Paccioni Laurent +Pinget Gaetan +Robert Alin +Robin Stephane +Tessier Annelyse +Thuilier Denis +Trouillon Karle... +Zamarra Gilbert + + \ No newline at end of file diff --git a/CONCEIL.BAS b/CONCEIL.BAS new file mode 100644 index 0000000000000000000000000000000000000000..11b84d38cbbcaa1cd5064051980e95fd5df15d13 GIT binary patch literal 2368 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 C%vqKI literal 0 HcmV?d00001 diff --git a/COUPINTE.BAS b/COUPINTE.BAS new file mode 100644 index 0000000..a06df7e --- /dev/null +++ b/COUPINTE.BAS @@ -0,0 +1,52 @@ +1 ' ************************************************************************ +2 ' Programme de gestion d'espace imprimable pseudo intelligent +3 ' a partir d'un texte stok dans TEXT$, pouvant contenir le code de +4 ' controle suivant : 13 ( retour chario ), le programme le met en forme +5 ' de tel manire ce qu'il tienne dans une colone d'espace caractre +6 ' dfinie par LCOL%. Le programme effectura des coupure de mot lorsqu'il +7 ' y a rptition d'une lettre ou pas ( Fixe par COUPE% -1 avec 0 sans +8 ' ============ Programation et ide de DARCHE Yoann (C) 1991 ARTECHNYD == +9 '************************************************************************** +10 KEY OFF +20 CLS +30 PRINT " Introduisez le Texte ( maxi 255 car ) puis le nobre de caractre " +40 PRINT " Maxi par ligne le Programme vous le mettra en forme " +50 PRINT " Si vous voulez que le programme face des copures qu'il poura dtecter" +60 PRINT " Introdusez la question Coupure : -1 sinon introduisez 0 " +70 PRINT:PRINT " Programme et Ide de DARCHE Yoann (C) 1991 ARTECHNYD <<<<-----" +80 PRINT:PRINT +90 INPUT " TEXTE ( maxi 255 car ) : ",TEXTE$ +100 INPUT " Nb de caractre par ligne ( 20-80 ) ",LCOL% +101 IF LCOL%>80 OR LCOL%<20 THEN BEEP:PRINT " Idiot !!":GOTO 100 +110 INPUT " Coupure ? ( -1 = Oui, 0 = Non ) ",COUPE% +111 IF COUPE%<>-1 AND COUPE%<>0 THEN 110 +197 '*************************************************************************** +198 '** DEBUT DU PROGRAMME COUPE INTELLIGENTE (C) ARTECHNYD ** +199 '*************************************************************************** +200 DIM LI$(25): REM TABLEAU QUI VA PERMETTRE DE STOCKER LES LIGNES +204 MI%=0:I%=0:M$="":PI%=0:LI%=0:LI$="" +205 DIM M$(10): REM mot par ligne +210 FOR I%=1 TO LEN(TEXTE$) +220 PI%=PI%+1 +230 IF PI% > LCOL% THEN 270 +240 L$=MID$(TEXTE$,I%,1) +250 IF L$<>" " THEN M$=M$+L$:GOTO 340 +260 MI%=MI%+1:M$(MI%)=M$:M$="":GOTO 340 +265 ' +270 IF M$="" THEN REM ligne supp. +280 IF MID$(M$,LEN(M$)-1,1)=RIGHT$(M$,1) THEN MET UN TIRET +290 FOR J%=1 TO LEN(M$)-1 +300 IF MID$(M$,J%,1)=MID$(M$,J%+1,1) THEN COUPE ICI +310 NEXT J% +320 ' il n'y a plus rien a faire +330 GOTO 350 +340 NEXT I% +341 ' il n'y a plus rien faire !!!! +350 LI%=LI%+1 +360 FOR M%=1 TO MI%:LON%=LEN(M$(M%))+LON%:NEXT M% +370 NESPA%=LCOL%-LON%:NPESP%=INT(NESPA%/(MI%-1)):NDER%=NESPA%-NPESP%*(MI%-1) +380 FOR M%=2 TO MI%-1:LI$=LI$+SPACE$(NPESP%)+M$(M%):NEXT M% +390 LI$=LI$+SPACE$(NDER%+1)+M$(MI%):LI$=M$(1)+LI$ +400 PRINT LI$ +380 FOR M%=2 TO MI%-1:LI$=LI$+SPACE$(NPESP%)+M$(M%):NEXT M% +390 LI$=LI$+SPACE$(NDER%+1)+M$(MI%):LI$=M$( \ No newline at end of file diff --git a/CRE.BAS b/CRE.BAS new file mode 100644 index 0000000000000000000000000000000000000000..2e643ab62366b6a446aa58119558e3939000aea6 GIT binary patch literal 1297 zcmZuwPiP}$6n~?wieSEECU%?FKaY=SGcYM_6~SoxJ z!Hc%E;I0Z4x0gNCJ#-JfR0YA4?M1Am1?kn|Md+lL3WApvjPLsF4Raj>wSi#BX5-}rYu#yfxF%R~z$6$|}tH|wK+RA6LmvKCeww1H&d^(rL!9fnc zun%Ar%~epsi)3(8BfjKt5{nh@z4DcMwNNWpJS+{=JuDWgg<|bS)kO|^_|s0ph#*|O z>Uu@Dit__*sVr$6ro(HUxEGRGxOUB*Csf^Y?@t0Bg}>^=zL>=8h5Et+p?AZZuqtZ9 znQWelu`gva4o=NX;#hjhPT|GOWfJ*Acnhq!|C@<7kxtI>07F{k_e6ZrTr$3G-{{32n+bzj9(Of+u^yFmvZ;yTqDIF5zmWv+{Mgzf=6rTX_11DG#y zf_T~@HvAS-5W5tZRvTx;V_y@vFJ;E#$eG-LkbksKZ6b)0W7HZs9IWbD%6UL zw)QHpp>`>)7KqW0*{Mp&74?rzq}*DK7E{={RN3{AkHVhXts1!far_AGV=ug~#ppUa+q!*HYMsgp)h;;#Bt=~9CFcjNIMAu==&G% CRf$#r literal 0 HcmV?d00001 diff --git a/CRE2.BAS b/CRE2.BAS new file mode 100644 index 0000000000000000000000000000000000000000..8a4c40c17696a6c15a1438571666383e8a5a2b36 GIT binary patch literal 1920 zcmb7^TTC2P7{@<+Ya92>bZoZyMD6?&q|b`lYPtn#^= zgfKH;p6l*BSKVZ7@%EI(ZrG4w_rU_!9k$hdlh>s4!>No{C~VkaZEHBnEQr+>U#Yb; z+f5WTH_=_x;6;`ZduuSt4#NZwWJ>Th>%-aN3Vg^4)IrAvd-?~Dcr}l}EE^zrFT&>G zLLu8H=yf(I%`n9AXH)rJEdGrRNnA}hR}c)8qmqS?we<9)(pVZ)j!Aq!;;z)-5YmU0 z=U{b|TdHH)D^}?7Du?MJ>@YMc!@kQ7lg~sxl^zy!uXRI3CN%d1&NIskTvlP)q^&CMN=Ruz?sOM!5 z^4Yb9Z>kq0UYF-z>P1P(XFTV}e7ANgv{tAkI4aT^b;<4Ug^Y6Jh zeB&hu>d&ma1UvP`m2?07{dK3Q725S5P|=*AI2bJIFtN9aLR$Y31=b*yY*{(3|3u0m zshln=@95V^nUTs;S-GJ9Ov*ATp)KM7t~FZJmrx3AtCHGd721-1ePt5<(5=!K7k7<# zEAjqoQH=7yff59a2#I>77;&Zepz$b)Mx|Kii@S|h63t36>WiMyNn)^4toOy^#(|Q& zPE@>3dWGYww$lbL8&8!c;d3KXI>F=Z7JJfm=Uhrx!*m-Qc8~2CB3*ZNls==3Jb<4Q zZW*3fmb9vEH!1E`akC~Z-7c~QF&bh#Bt}z=GwvMxWAv1gR!}@G3tDX#MSAWeY%#~l zvq>yTY|&pG}U5ciK1REs4Gt?UQzq5d6sH1!F9FK pjkQT`DR2M) literal 0 HcmV?d00001 diff --git a/CREA.SUP b/CREA.SUP new file mode 100644 index 0000000..1746542 --- /dev/null +++ b/CREA.SUP @@ -0,0 +1,5 @@ +2220 IF O=9 THEN 2230 ELSE LOCATE 23,1:INPUT "+X,+Y",PX,PY:LOCATE 23,1:PRINT " ";:O=9:GOTO 20 +2230 PSET(X,Y),K:PSET(X+PX,Y+PY),K +2240 IF X$=CHR$(221) THEN O=0:DELETE 2220-2240 +2250 RETURN + \ No newline at end of file diff --git a/CREA2.BAS b/CREA2.BAS new file mode 100644 index 0000000000000000000000000000000000000000..889fc08439b0dbf73b543a7447491abf6a0a4ee9 GIT binary patch literal 7369 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 b8{u>tu7kL`ab3V=OQr^R)K@|X$;$da0iM)x literal 0 HcmV?d00001 diff --git a/CREA3.BAS b/CREA3.BAS new file mode 100644 index 0000000000000000000000000000000000000000..889fc08439b0dbf73b543a7447491abf6a0a4ee9 GIT binary patch literal 7369 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 b8{u>tu7kL`ab3V=OQr^R)K@|X$;$da0iM)x literal 0 HcmV?d00001 diff --git a/CREA5.BAS b/CREA5.BAS new file mode 100644 index 0000000000000000000000000000000000000000..0ffc022fa90d2af8c50194ddf96a5fda5cca8dfc GIT binary patch literal 5883 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 AQvd(} literal 0 HcmV?d00001 diff --git a/CREACARA.BAS b/CREACARA.BAS new file mode 100644 index 0000000000000000000000000000000000000000..f913667ea9c6722909bc72c6b55ff39877626710 GIT binary patch literal 3550 zcmbtXZD?Cn7=A;Wfugy|P1<}k)0YrwuHH-&t>|r67DLKnSzFo}lOcAoz1u3yy){i{ z=OR@TJZxFD>xMdhv1*4$z;>Pe(1#do^$U_o3>P@f#jTf z&-EwK2H|z6-ME(EX(Tw;GpsadX=7VW#LFfXp@w8@s`9;3S-J%OkNcc7G%Hd zm*5pag`UkukWW&2ZZW!kNy)}4qLPi%Pmc9+)Ps)&4Q7fPXT2i8eg4OCOs;g~l&&orFZV^0V?3QWFZ{EILjC_+6)f z-{}d{okyVCH3x~x!ZVRXSYn~`6&Iex#9YNo!=EWnaL^sD-{4tHAYEMm*)eRB9luk{ zzSSnU%k?`v0&lwhgaa5|<6~t%UmDXj9Bpqnsbx5L$8`Z_pyFz_J%*vaa$<<7jzF zx+C4!p<2SOjTrCfkl2>x1lUD~jW#h?34)DngYCxL#sz>YMW1aNv+0V6U!z}{#+=!O zEn>*_6}D7!X<4|bnoUzCh{Xvxo0fBFiQ;FG$cM^H)QE7GDBCFSKZQD#M`;fF$)@4B zcq2{WmPLLfsggPw-L01=aq zoE0}M&XwxhI+)sqnSN?8nHWqYx2C8UiQ%MLCMpeW$ZQzk38>Ext?pZC0+BCf;kk&= zFVU*Zj&(l~hE49Rt0zRsR8Cj3oBPmH6(b;=j--&1jf`(Pk z!Id=ZXgRt_9sDmeJZ8}FeH-j)Ikq^LNkbysh)#8ny^B_rjdb5|GbdoDLN6=5hhZgY zmK1oo<@mockt8H3!EDRBtEXiJ8PBx5w>BArttT#mj6<#O{}(duZv9|&G7cLFBr<;5 zI^VP=8F9eS0TO~`1#smheAQZQnt|_H&oyxYJk$CYbqx6%D(#_z(ez>=KTfsZ;a%6v zhe+~_p;5IkhNL|s6c&PZuhSSOg)_#DA?Wo6i~-UwV_+g*Eau0@r^ijbih=G88!@D5 ztH;D)zxNG_SuRe=&Hd>t)j^o?o@l1GxIvpvG_zNDi8QfGOPSz%@2AZ)wph+jG{ZUX zH_fIhdF--dioU1lyJ?;5IJOS1@p!+^v>)+~8_}qJ33xnkca2C|w@}Q4nC@eHjnR2O{1BL| zT`VV8p((!wwLpnhE%;^OQvRxSW2h4r0_ED`yJZSzylppI83||963$^JoQX=JCR(|M?P42j2!Pjv4|4qc9C`9HbSCq2 z>@U>i5>3_{uJnehWX!$}K2%?wG30odGssb{!LPxGX^>(=gXDhB@?Mb)(Jb@l^G$Hs h`p3=jK5JNGqr9jo`{9c9hieQSQn POUR FIN " +1 PRINT:PRINT "votre choix :" +2 A$=INKEY$:IF A$=CHR$(27) THEN END ELSE IF A$="" THEN 2 +3 IF A$="1" OR A$="&" THEN PRINT "app sur une touche lorsque vous serez pret" ELSE 5 +4 A$=INKEY$:IF A$="" THEN 4 ELSE LPRINT CHR$(27);"!":LPRINT CHR$(18):GOTO 0 +5 IF A$="2" OR A$="`" OR A$="" THEN 10 +10 CLEAR,,,32768!:SCREEN 5:CLS:KEY 11,CHR$(253):KEY 12,CHR$(221) +11 AV=1:X=160:Y=100:Q=12:K=2:DIM M(14000) +20 X$=INKEY$ +30 IF X$="'" OR X$="4" OR X$="|" THEN X=X-AV +40 IF X$="6" THEN X=X+AV +41 IF X$="8" OR X$="~" OR X$="!" THEN Y=Y-AV +42 IF X$="2" OR X$="`" OR X$="" THEN Y=Y+AV +43 IF X$=" " AND O=0 THEN X1=X:Y1=Y:GOTO 20 +44 IF X$="a" OR X$="A" THEN RUN 10 +45 IF X$="0" OR X$="" THEN O=0 +46 IF X$=CHR$(27) THEN END +47 IF X$="1" OR X$="&" THEN X=X-AV:Y=Y+AV +48 IF X$="3" THEN X=X+AV:Y=Y+AV +49 IF X$="7" OR X$="" OR X$="\" THEN Y=Y-AV :X=X-AV +50 IF X$="9" OR X$="" THEN Y=Y-AV :X=X+AV +86 IF Y<2 THEN BEEP:Y=Y+AV +87 IF Y>170 THEN BEEP:Y=Y-AV +88 IF X>316 THEN BEEP:X=X-AV +89 IF X<2 THEN BEEP:X=X+AV +90 S(0)=POINT (X,Y):S(1)=POINT (X-1,Y):S(2)=POINT (X+1,Y):S(3)=POINT (X,Y+1):S(4)=POINT (X,Y-1) +91 PSET (X,Y),K:PSET (X-1,Y),K:PSET (X+1,Y),K:PSET (X,Y+1),K:PSET (X,Y-1),K +92 PSET (X,Y),S(0):PSET (X-1,Y),S(1):PSET (X+1,Y),S(2):PSET (X,Y+1),S(3):PSET (X,Y-1),S(4) +93 LOCATE 24,1 +94 IF Q<> 0 AND Q<> 16 THEN COLOR Q:PRINT CHR$(8);" "; ELSE COLOR 13:PRINT "N";" "; +95 IF K<> 0 AND K<> 16 THEN COLOR K:PRINT CHR$(8); ELSE COLOR 13:PRINT "N"; +102 GOSUB 1000 +103 GOTO 20 +1000 IF X$="b" OR X$="B" THEN 2000 +1001 IF X$="c" OR X$="C" THEN 2010 +1002 IF X$="l" OR X$="L" THEN 2050 +1003 IF X$="p" OR X$="P" THEN 2060 +1004 IF X$="k" OR X$="K" THEN 2070 +1005 IF X$="d" OR X$="D" THEN 2080 +1006 IF X$="m" OR X$="M" THEN 2090 +1007 IF X$="n" OR X$="N" THEN 2100 +1008 IF X$="f" OR X$="F" THEN 2120 +1009 IF X$="q" OR X$="Q" THEN 2110 +1010 IF X$="z" OR X$="Z" THEN CLS +1011 IF X$="w" OR X$="W" THEN 2130 +1012 IF X$="v" OR X$="V" THEN 2140 +1013 IF X$="g" OR X$="G" THEN 2160 +1014 IF X$="t" OR X$="T" THEN 2170 +1015 IF X$="s" OR X$="S" THEN 2180 +1016 IF X$="e" OR X$="E" THEN 2200 +1017 IF X$="r" OR X$="R" THEN 2190 +1110 IF O=1 THEN 2000 +1111 IF O=2 THEN 2010 +1112 IF O=3 THEN 2050 +1113 IF O=4 THEN 2060 +1114 IF O=5 THEN 2090 +1115 IF O=6 THEN 2140 +1116 IF O=7 THEN 2170 +1117 IF O=8 THEN 2200 +1997 RETURN +2000 LINE (X1,Y1)-(X,Y),K,B:LINE (X1,Y1)-(X,Y),0,B +2005 IF X$=" " THEN LINE (X1,Y1)-(X,Y),K,B:O=0 ELSE O=1 +2006 RETURN +2010 R=X-X1:IF R<0 THEN R=X1-X +2030 CIRCLE (X1,Y1),R,K:CIRCLE (X1,Y1),R,0 +2035 IF X$=" " THEN CIRCLE (X1,Y1),R,K:O=0 ELSE O=2 +2040 RETURN +2050 LINE (X1,Y1)-(X,Y),K:LINE (X1,Y1)-(X,Y),0 +2051 IF X$=" " THEN LINE (X1,Y1)-(X,Y),K:O=0 ELSE O=3 +2052 RETURN +2060 IF X$=" " THEN PAINT (X,Y),Q,K:O=0 ELSE O=4 +2061 RETURN +2070 K=K+1:IF K=17 THEN K=1:RETURN +2071 RETURN +2080 PSET (X,Y),K +2081 RETURN +2090 PSET(X1,Y1),K +2091 IF X$=" " THEN LINE (X1-1,Y1-1)-(X+1,Y+1),K,B ELSE O=5:RETURN +2092 W=X1-X:IF W<0 THEN W=X-X1 +2093 W1=Y1-Y:IF X<0 THEN W1=Y-Y1 +2094 IF (W*W1) > 10000 THEN LOCATE 24,1:PRINT " ERREUR : PAS ASSEZ DE CAPACITEZ !!! ";:FOR I=1 TO 1500 :NEXT :LOCATE 24,1:PRINT " ";:LINE (X1-1,Y1-1)-(X+1,Y+1),O,B:RETURN +2095 GET(X1,Y1)-(X,Y),M:LINE (X1-1,Y1-1)-(X+1,Y+1),0,B:O=0:M(1)=1:RETURN +2100 IF M(1)=1 THEN PUT (X,Y),M :RETURN +2101 LOCATE 23,1:PRINT " ERREUR : VOUS N'AVIER PAS ENREGISTRE DE DESSIN ";:FOR I=1 TO 1500:NEXT :LOCATE 23,1:PRINT " "; +2102 RETURN +2110 Q=Q+1:IF Q=>16 THEN Q=0 +2111 RETURN +2120 CX=K+1:IF CX>=16 THEN CX=1 +2121 IF K>=16 THEN K=0 +2122 COLOR CX,K +2123 RETURN +2130 LOCATE 23,1:INPUT " N DE POINTS ",AV:LOCATE 24,1:PRINT " ";:LOCATE 23,1:PRINT " ":RETURN +2140 IF X$=" " AND DD=0 THEN BEEP :X2=X:Y2=Y:PSET(X1,Y1),K:PSET (X2,Y2),K:O=6:DD=1:RETURN +2141 IF X$=" " AND DD=1 THEN 2142 ELSE O=6:RETURN +2142 Y3=Y:X3=X:Y4=Y3:X4=X3+(Y3-Y2):X5=X4:Y5=Y2:X6=X1+(Y3-Y2):Y6=Y1:X7=X6:Y7=Y1+(Y3-Y2):X8=X1:Y8=Y7 +2143 LINE (X2,Y2)-(X4,Y4),K,B:LINE (X1,Y1)-(X7,Y7),K,B:LINE -(X4,Y4),K:LINE (X3,Y3)-(X8,Y8),K:LINE (X2,Y2)-(X1,Y1),K:LINE (X5,Y5)-(X6,Y6),K +2154 DD=0:Y2=0:X2=0:X3=0:X4=0:X5=0:X6=0:X7=0:X8=0:Y3=0:Y4=0:Y5=0:Y6=0:Y7=0:Y8=0:O=0:RETURN +2160 LOCATE 23,1:COLOR 14:PRINT " app sur une touche pour effacer et une seconde pour reprendre "; +2161 A$=INKEY$:IF A$="" THEN 2161 +2162 LOCATE 23,1:PRINT SPC(39);:LOCATE 24,1:PRINT SPC(39); +2163 A$=INKEY$:IF A$="" THEN 2163 ELSE RETURN +2170 O=7:IF X$<>" " THEN RETURN +2171 LX=INT(X/8)+1:LY=INT(Y/8)+1 +2172 LOCATE 23,1:PRINT " VOTRE PHRASE ? (f12 fin,f11 correction)"; +2173 COLOR K:LOCATE LY,LX +2174 A$=INKEY$:IF A$="" THEN 2174 ELSE IF ASC(A$)=221 THEN 2177 ELSE IF ASC(A$)=253 THEN LX=LX-1:IF LX=0 THEN LX=40:LY=LY-1:IF LY=0 THEN O=0:RETURN ELSE GOTO 2173 ELSE 2173 +2175 PRINT A$;:LX=LX+1:IF LX=41 THEN LY=LY+1:LX=1:IF LY=22 THEN O=0:RETURN +2176 GOTO 2173 +2177 LOCATE 23,1:PRINT SPC(39);" ";:O=0:RETURN +2180 DEF SEG=&HB800:LOCATE 23,1:COLOR 14:INPUT " Donnez un nom puis enter ";FI$ +2181 IF LEN(FI$)>=9 THEN BEEP 2180 +2182 LOCATE 23,1:PRINT SPC(39);:LOCATE 24,1:PRINT SPC(39); +2183 FI$=FI$+".im":BSAVE FI$,0,32768!:RETURN +2190 LOCATE 24,1:PRINT "ETES VOUS SUR ? O/N"; +2191 A$=INKEY$:IF A$="" THEN 2191 ELSE IF A$="O" OR A$="o" THEN 2192 ELSE LOCATE 24,1:PRINT SPACE$(40);:RETURN +2192 DEF SEG=&HB800:CLS:FILES "*.im" +2193 INPUT "NOM DU FICHIER IMAGE ";FI$:IF LEN(FI$)>=9 THEN 2193 ELSE FI$=FI$+".im" +2194 BLOAD FI$:RETURN +2200 LOCATE 23,1:PRINT "F12 pour fin";:O=8:PSET(X,Y),K:IF X$=CHR$(221) THEN O=0:RETURN ELSE RETURN + \ No newline at end of file diff --git a/CREALECT.BAS b/CREALECT.BAS new file mode 100644 index 0000000..8860a0d --- /dev/null +++ b/CREALECT.BAS @@ -0,0 +1,129 @@ +0 KEY OFF:COLOR 2,0,0:CLS +10 COLOR 13 +20 LOCATE 19 +30 A$=" " +40 B$=" " +50 C$=" " +60 D$=" " +70 E$=" " +80 PRINT " ";A$ +90 PRINT " ";B$ +100 PRINT " ";C$ +110 PRINT " ";D$ +120 PRINT " ";E$:LOCATE 25,1:COLOR 1:PRINT " Ecrit et realis par DARCHE Yoann tel: 69.39.51.26 " +130 FOR I=1 TO 18:PRINT :PLAY "p5":NEXT +140 CLEAR:COLOR 13:CLS +150 LOCATE 10:PRINT " F1= AIDE CTRL-A = SAUVE CTRL-R = RAPELLE +160 KEY 1,"":Y2=14:X2=14:XX=1:X=13:Y=13 +170 COLOR 30:LOCATE 25:PRINT " Appuyez sur la bar espace ":A$=INPUT$(1) +180 CLS:COLOR 2:C1$=CHR$(24):C2$=CHR$(25):C3$=CHR$(26):C4$=CHR$(27):E$=CHR$(18) +190 I3$=CHR$(202):I4$=CHR$(204):IX$=CHR$(206):OPTION BASE 1:DIM P$(23,23,3) +200 PRINT " ¿ ¿ ¿" +210 FOR I=1 TO 22:PRINT " ":NEXT +220 LOCATE 24,1:PRINT " "; +230 LOCATE 25,1:PRINT " "; +240 LOCATE 1,1:IF PP=1 THEN PP=0:RETURN ELSE COLOR 4 +250 A$=INKEY$:IF A$="" THEN 250 +260 IF A$=CHR$(219) THEN 970 +270 IF A$=CHR$(1) THEN 640 ELSE IF A$=CHR$(26) THEN 800 +280 IF A$=CHR$(18) THEN 710 +290 IF A$=CHR$(0)+"H" THEN Y=Y-1:GOTO 510 +300 IF A$=CHR$(0)+"P" THEN Y=Y+1:GOTO 510 +310 IF A$=CHR$(0)+"M" THEN X=X+1:GOTO 510 +320 IF A$=CHR$(0)+"K" THEN X=X-1:GOTO 510 +330 IF A$="_" THEN K$="":GOTO 630 +340 IF ASC(A$)=31 THEN K$="":GOTO 630 +350 IF A$="D" THEN K$="":GOTO 630 +360 IF ASC(A$)=4 THEN K$="":GOTO 630 +370 IF A$="G" THEN K$="":GOTO 630 +380 IF ASC(A$)=7 THEN K$="":GOTO 630 +390 IF A$="U" THEN K$=C1$:GOTO 630 +400 IF A$=CHR$(0)+CHR$(22) THEN K$=C2$:GOTO 630 +410 IF A$=CHR$(21) THEN K$=C3$:GOTO 630 +420 IF A$="u" THEN K$=C4$:GOTO 630 +430 IF A$="T" THEN K$="":GOTO 630 +440 IF A$=CHR$(0)+CHR$(20) THEN K$="":GOTO 630 +450 IF ASC(A$)=20 THEN K$="":GOTO 630 +460 IF A$="t" THEN K$="":GOTO 630 +470 IF A$="+" THEN K$="":GOTO 630 +480 IF A$="E" THEN K$=E$ :GOTO 1230 +490 IF A$=" " THEN K$=" ":GOTO 1250 +500 GOTO 250 +510 IF Y<=0 THEN Y=Y+1 +520 IF Y>=24 THEN Y=Y-1 +530 IF X<=0 AND XX=1 THEN XX=3:X=23 +540 IF X>=24 AND XX=3 THEN XX=1:X=1 +550 IF X>=24 AND XX<3 THEN XX=XX+1:X=1 +560 IF X<=0 AND XX>1 THEN XX=XX-1:X=23 +570 Y1=Y+1 +580 IF XX=1 THEN X1=X+2 +590 IF XX=2 THEN X1=X+28 +600 IF XX=3 THEN X1=X+54 +610 LOCATE Y2,X2:PRINT CHR$(V);:V=SCREEN (Y1,X1):LOCATE Y1,X1:PRINT "";:Y2=Y1:X2=X1 +620 GOTO 250 +630 V=ASC(K$):P$(X,Y,XX)=K$:GOTO 510 +640 CLS:INPUT "Nom du fichier 8 caractres ";FI$:IF LEN(FI$)>=9 THEN 640 ELSE FI$=FI$+".lab" +650 OPEN "O",#1,FI$ +660 FOR A=1 TO 3:FOR B=1 TO 23:FOR C=1 TO 22 +670 PRINT #1,P$(C,B,A);",";:PRINT P$(C,B,A);","; +680 NEXT C:PRINT #1,P$(23,B,A):PRINT P$(23,B,A):NEXT B:PRINT:NEXT A +690 CLOSE:PRINT "Voulez - Vous RETOURNEZ l'dition O/N ":A$=INPUT$(1) +700 IF A$="O" OR A$="o" THEN 850 +710 CLS:COLOR 14:LOCATE 12:PRINT " ETES-VOUS SUR DE RAPPELER UN FICHIER O/N":A$=INPUT$(1) +720 IF A$="N" OR A$="n" THEN 850 +730 IF A$="O" OR A$="o" THEN 740 ELSE BEEP:GOTO 710 +740 CLS:COLOR 13:FILES "*.LAB" +750 INPUT "Nom de votre fichier : ",FI$:IF LEN(FI$)>=9 THEN 710 ELSE FI$=FI$+".lab" +760 OPEN "i",#1,FI$ +770 FOR A=1 TO 3:FOR B=1 TO 23 +780 INPUT#1,P$(1,B,A),P$(2,B,A),P$(3,B,A),P$(4,B,A),P$(5,B,A),P$(6,B,A),P$(7,B,A),P$(8,B,A),P$(9,B,A),P$(10,B,A),P$(11,B,A),P$(12,B,A),P$(13,B,A),P$(14,B,A),P$(15,B,A),P$(16,B,A),P$(17,B,A),P$(18,B,A),P$(19,B,A),P$(20,B,A),P$(21,B,A),P$(22,B,A),P$(23,B,A) +790 NEXT B:NEXT A:CLOSE:GOTO 850 +800 CLS:LOCATE 12,1:COLOR 14:PRINT " ETES-SURE DE VOULOIRE EFFACER LES TABLEAUX O/N":A$=INPUT$(1) +810 IF A$="N" OR A$="n" THEN 850 +820 IF A$="O" OR A$="o" THEN 830 ELSE BEEP:GOTO 800 +830 ERASE P$:DIM P$(23,23,3) +840 COLOR 2,0:CLS:PP=1:GOSUB 200:COLOR 4:GOTO 250 +850 COLOR 2,0:CLS:PP=1:GOSUB 200:COLOR 4 +860 FOR I=1 TO 23:FOR N=1 TO 23 +870 LOCATE I+1,N+2:PRINT P$(N,I,1); +880 NEXT N:NEXT I +890 FOR I=1 TO 23:FOR N=1 TO 23 +900 LOCATE I+1,N+28:PRINT P$(N,I,2); +910 NEXT N:NEXT I +920 FOR I=1 TO 23:FOR N=1 TO 23 +930 LOCATE I+1,N+54:PRINT P$(N,I,3); +940 NEXT N:NEXT I +950 GOTO 250 +960 REM PAGE D'AIDE (F1) +970 CLS +980 COLOR 13,1:CLS:PRINT " PAGE-AIDE " +990 PRINT :PRINT " INDEX DES DIFERANTES TOUCHES ,LEUR CARACTERE,ET LA SIGNIFICATION " +1000 PRINT " =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" +1010 PRINT "Ŀ" +1020 PRINT " touche car. SINIFICATION: " +1030 PRINT "Ĵ" +1040 PRINT " _ COULOIR " +1050 PRINT " CTRL-_ IDEM CTRL-R = RAPELLE +1060 PRINT " D Virage DROIT CTRL-A = SAUVE +1070 PRINT " CTRL-D IDEM CTRL-Z = EFFACE TOUT LES +1080 PRINT " G Virage GAUCHE 3 PLANTS EN MEMOIR +1090 PRINT " CTRL-G IDEM " +1100 PRINT " U ";C1$;" Cul de Sac ETAGE : +1110 PRINT " ALT-U ";C2$;" IDEM Ŀ Ŀ Ŀ +1120 PRINT " CTRL-U ";C3$;" IDEM 1 2 3 +1130 PRINT " SHIFT-U ";C4$;" IDEM +1140 PRINT " T Intersection en T CHAQUE ETAGE COMPREND +1150 PRINT " ALT-T IDEM 23 SUR 23 CARACTERES +1160 PRINT " CTRL-T IDEM +1170 PRINT " SHIFT-T IDEM N.B. METTEZ VOUS SUR +1180 PRINT " + Intersection en X CAPS LOOK +1190 PRINT " E ";E$;" Escalier " +1200 PRINT " APPUYER SUR UNE TOUCHE POUR EDITION "; +1210 LOCATE 1,1 +1220 A$=INKEY$:IF A$="" THEN 1220 ELSE GOTO 850 +1230 LOCATE Y+1,X+2:PRINT K$;:LOCATE Y+1,X+28:PRINT K$;:LOCATE Y+1,X+54:PRINT K$; +1240 V=ASC(K$):P$(X,Y,1)=K$:P$(X,Y,2)=K$:P$(X,Y,3)=K$:GOTO 250 +1250 IF V<>18 THEN K$=" ":GOTO 630 +1260 LOCATE Y+1,X+2:PRINT K$;:LOCATE Y+1,X+28:PRINT K$;:LOCATE Y+1,X+54:PRINT K$; +1270 V=ASC(K$):P$(X,Y,1)=K$:P$(X,Y,2)=K$:P$(X,Y,3)=K$:GOTO 250 + \ No newline at end of file diff --git a/CREAPAG.BAS b/CREAPAG.BAS new file mode 100644 index 0000000..eb5b8ed --- /dev/null +++ b/CREAPAG.BAS @@ -0,0 +1,879 @@ +CLS +DEFINT A-Z +DIM BB(40),CC(63),T%(4,4),CT(26,6),TA%(16) +YOANN$=chr$(68)+chr$(65)+chr$(82)+chr$(67)+chr$(72)+chr$(69)+" "+CHR$(89)+chr$(111)+chr$(97)+chr$(110)+chr$(110) +LOCATE 1,1,1,8,8 +gosub publicite +ON ERROR GOTO TRAITERREUR +CHX%=1 +' ------------------------ Chargement des Sub Routines Suplmantaires ------- + +' $INCLUDE: 'A:CREAPSUP.BAS' + +' ----------------------- Chargement des Sub Routine MENUS ------------------ + +' $INCLUDE: 'A:MENUTXT.BAS' + +' ---------------------- Slection du mode de l'ecran ------------------------ + DEF SEG = &h40 + TE%=(PEEK(&h10) AND &h30):DEF SEG + IF TE%=0 THEN PRINT " Programme non utilisable sur cette appareil ! [ECRAN] ":END + IF TE%=&h30 Then SegEcr%=&hB000 Else SegEcr%=&hB800 + DEF SEG = SEGECR% + +' --------------- Constante Provisoire -------------------------------------- + +CN%=11:FN%=1:CI=14:FI=4 ' Couleurs Normales Inverss +CND%=14:CID%=110 ' Couleur du Trac Normale/Inverse +CNT%=10:CIT%=110 ' Couleur de Texte Normale/Inverse +IND%=-1:INE%=-1:A$=CHR$(27):PCOPY 0,3 + +IF SEGECR%=&hb000 THEN CN%=7:FN%=0:CI%=0:FI%=7:CND%=15:CID%=7 + +Ta%(1)=17:Ta%(2)=30:Ta%(3)=254:Ta%(4)=16:Ta%(8)=31:Ta%(12)=254 + +GOSUB LectData ' ****** Lit les DATAs ****** +GOSUB Rapp.Config ' ****** Rappelle la Configuration ***** +GOTO Debut + +' --------- converstion asc(x)-178 ===> code binaire ------------------------ + + DATA 05,13,45,61,60,44,29,21,28,25,57,41,12,03,11,14,07,10,15,39 + DATA 55,19,22,27,30,23,26,31,43,59,46,62,51,35,38,54,63,47,09,06 + +' ------------- convertion binaire ====> code caractre CHR$() -------------- + + DATA 032,032,032,192,032,179,218,195,032,217,196,193,191,180,194,197 + DATA 032,032,032,200,032,186,201,204,032,188,205,202,187,185,203,206 + DATA 032,032,032,212,032,179,213,198,032,190,205,207,184,181,209,216 + DATA 032,032,032,211,032,186,214,199,032,189,196,208,183,182,210,215 + +' ------------ Donnes pour le choix directe des caractres ----------------- + +DATA 253,251,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,252 +DATA 130,136,137,138,160,131,132,133,161,140,139,141,162,147,148,149,163,150,129,151,135,128,142,143,134,144,153 +DATA 154,152,155,145,146,156,157,158,159,171,172,064,164,165,166,167,168,173,174,175,169,170,019,021,020,015,028 +DATA 219,176,177,178,220,223,221,222,022,254,248,249,250,007,008,009,010,001,002,003,004,005,006,011,012,013,014 +DATA 218,194,191,201,203,187,214,210,183,213,209,184,205,186,091,024,029,018,030,093,035,036,037,038,045,022,127 +DATA 195,197,180,204,206,185,199,215,182,198,216,181,196,179,027,042,026,017,043,016,047,092,060,061,062,063,033 +DATA 192,193,217,200,202,188,211,208,189,212,207,190,023,124,040,025,123,125,031,041,094,095,096,039,044,046,059 + +' ============================== Lecture des datas ========================= +LectData : +COLOR 30,1 +RESTORE +LOCATE 25,1:PRINT "PATIENTEZ "; + FOR I=1 TO 40 :READ BB(I):NEXT I + FOR I=0 TO 63 :READ CC(I):NEXT I + FOR J=0 TO 6 + FOR I=0 TO 26 + READ CT(I,J) + NEXT I + NEXT J +X=1:Y=1:LOCATE 25,1:PRINT "OK "; +RETURN + +' ============================== Sous prog calcule ========================== + +SUB CALCUL(AN,CO,V,D,NO,PR%) STATIC + +STATIC S,C + + IF PR% THEN AN= 0+( D AND 16) + S =-(AN AND 32)/32 + C =-(AN AND 16)/16 + VL=-(NOT(V) AND D)*(C*16+32)-(NOT(V) AND NOT(D) AND C)*48 + VL=VL+(V AND ((D AND 48)+(S XOR C)*32*((NOT(D))-D))) + CO=CO OR VL + NO=(AN AND 15) OR (CO) + +End Sub + +'============================= sOUS PROG VERIFICATION DU POKAGE ============= + +Sub Verif(AN) STATIC +shared d,BB() +IF AN<179 OR AN>218 THEN AN= 0+( D AND 16) ELSE AN=BB(AN-178) +End Sub + + +' ==================================== Sous Prog Color ====================== +SUB COLORC(CA%,CB%,SS%) STATIC + +STATIC COU,B$,K%,V%,KA%,C% +SHARED CN%,FN%,T%() + +COU=FNCO%(CN%,FN%) + +IF SS%<>0 THEN + IF CA%>=128 THEN CA%=CA%-128:KA%=128 ELSE KA%=0 + CB%=INT(cA%/16):CA%=(CA%-CB%*16) + ELSE + IF CA%>=32 THEN CA%=CA-16:ka%=128 ELSE KA%=0 + END IF + +B$=chr$(0):T%(0,0)=CA%:T%(1,0)=CB%:for i=0 to 2:T%(i,1)=T%(i,0):next i +CALL FAITUNCADRE(6,6,74,18,CN%,FN%) +LOCATE 7,34:PRINT "LES COULEURS"; +locate 9,11:print " Utilisez les flches pour le choix C clignotant / ou pas " +DE%=1634 + +'************** Affichages des couleurs actuelles et choisies . *********** + +COLOR CA%,CB% +LOCATE 17,19:PRINT "Ancienne Couleur" +LOCATE 17,45:PRINT "Nouvelle Couleur" +CY%=0:CX%=CA% + +NEWCOLOR : +T%(2,0)=KA%:A$="" + +FOR I=0 TO 15 +POKE DE% +2*(3*i-2),219 :POKE DE%+2+2*(3*I-2),219 +POKE DE%+1+2*(3*i-2),I+KA%:POKE de%+3+2*(3*I-2),I+KA% +NEXT I +FOR I=0 TO 7 +POKE DE%+502+2*(3*i-2),219:POKE DE%+504+2*(3*I-2),219 +POKE DE%+503+2*(3*i-2),I :POKE DE%+505+2*(3*I-2),I +NEXT I +poke DE%+498,222:POKE DE%+499,143:POKE DE%+500,221:POKE DE%+501,143 +poke DE%-4,222:POKE DE%-3,143:POKE DE%-2,221:POKE DE%-1,143:K=-4 + + +WHILE NOT(A$=" " or A$=CHR$(13) or A$=chr$(27)) +mp=0 + IF A$=B$+"P" or A$="2" Then CY=CY+1:mp=-1 + IF A$=B$+"H" or A$="8" Then CY=CY-1:mp=-1 + IF A$=b$+"M" or A$="6" Then CX=CX+1 + If A$=B$+"K" or A$="4" Then CX=CX-1 + IF A$="C" or A$="c" Then + IF KA%=128 THEN KA%=0 ELSE KA%=128 + GOTO NEWCOLOR + End if + IF cy=1 THEN MCX=7 ELSE MCX=15 + IF Cy<0 THEN CY=1 + IF CY>1 THEN CY=0 + IF MP THEN CX=T%(CY,0) + IF CX<0 THEN CX=MCX + IF CX>MCX THEN CX=0 + + c=2*(3*CX-2)+502*cy:T%(CY,0)=CX + +POKE K+DE%-162,000:POKE K+DE%-160,000:POKE K+DE%-158,000:POKE K+DE%-156,000 +POKE K+DE%-002,000 :POKE K+DE%+004,000 +POKE K+de%+158,000:POKE K+DE%+160,000:POKE K+DE%+162,000:POKE K+DE%+164,000 +POKE C+DE%-162,218:POKE C+DE%-160,196:POKE C+DE%-158,196:POKE C+DE%-156,191 +POKE C+DE%-002,179 :POKE C+DE%+004,179 +POKE C+de%+158,192:POKE C+DE%+160,196:POKE C+DE%+162,196:POKE C+DE%+164,217 +COP%=FNCO%(T%(0,0),T%(1,0)):FOR I=2649 TO 2681 STEP 2:POKE I,COP%+KA%:NEXT I +K=C:A$="": WHILE A$="":A$=INKEY$:WEND +wend + +IF A$=chr$(27) then + CA%=T%(0,1):CB%=T%(1,1):KA%=T%(2,1) + ELSE + CA%=T%(0,0):CB%=T%(1,0):KA%=T%(2,0) + END IF + + +IF SS%<>0 THEN + CA%=CB%*16+CA%+KA% + ELSE + IF KA%<>0 then CA%=CA%+16 +END IF + +if a$=chr$(27) then ss%=-1 else ss%=0 + +END SUB + +'=============================== CHOIX CARACTERE ========================== +SUB CHXCAR(C%) static + +SHARED CN%,FN%,CI%,FI%,CT() +STATIC DE%,B$,CX,CY + +CALL FaitUnCAdre(10,2,68,19,CN%,FN%) +LOCATE 18,12:PRINT " Utilisez les flches, pour valider, FIN " +DE%=502:B$=chr$(0):a$="" +FOR I=0 TO 26:FOR j=0 TO 6:PO%=DE%+I*4+J*320:POKE PO%,CT(I,J):NEXT j:NEXT I + +WHILE NOT(A$=" " or A$=CHR$(13) or A$=chr$(27)) + + IF A$=B$+"P" or A$="2" Then Cy=CY+1 + IF A$=B$+"H" or A$="8" Then CY=CY-1 + IF A$=b$+"M" or A$="6" Then Cx=Cx+1 + If A$=B$+"K" or A$="4" Then Cx=Cx-1 + IF Cy<0 THEN CY=6 + IF CY>6 THEN CY=0 + IF CX<0 THEN CX=26 + IF CX>26 THEN CX=0 + + V=DE%+CX*4+CY*320 + + POKE K-162,000:POKE K-160,000:POKE K-158,000 + POKE K-002,000: POKE K+002,000 + POKE K+158,000:POKE K+160,000:POKE K+162,000 + POKE V-162,218:POKE V-160,196:POKE V-158,191 + +POKE V-002,179: POKE V+002,179 + POKE V+158,192:POKE V+160,196:POKE V+162,217 + + K=V:a$="":While a$="":A$=INKEY$:Wend + WEND + + C%=CT(CX,CY) + if a$=chr$(27) then C%=-1 + +end sub + +'=================== Menu de saisi d'un caractre spcifique ================ + +SUB CHOIXCAR(C%) STATIC + +SHARED CN%,FN%,CI%,FI% +STATIC MENU$,CHY%,A$,b$,kl,re$ +A$="":kl=0:re$="":C%=0 + +debutc : + CHY% = 3 +MENU$="entre au Clavier code Ascii choix Pratique Fin " + CALL MENU(MENU$,17,15,10,CN%,FN%,CI%,FI%,0,CHY%,-1) + if CHY% = -1 then c%=-1:goto finch + ON CHY% gosub CH1,CH2,CH3,FINCH1 + if c%=-1 then goto debutc + goto finch + +CH1 : +CALL FAITUNCADRE(13,11,55,12,CN%,FN%) +COLOR CN%,FN%:LOCATE 12,14:PRINT "Entrez au Clavier votre caractre : "; +a$="" +WHile A$<>CHR$(13) and a$<>chr$(27) + Locate 12,50:pRINT A$:C$=A$:a$="" + While A$="":a$=inkey$:wend +wend +c%=asc(c$) +if a$=chr$(27) then c%=-1:return +gosub testbid +if a$="N" or a$="n" then goto CH1 +return + +ch2 : + +CALL FAITUNCADRE(13,11,55,12,CN%,FN%) +COLOR CN%,FN%:LOCATE 12,14:PRINT "Entrez le code ASCII du caractre : "; +a$="":B$=CHR$(0):re$="":kl=0 +While (a$<>chr$(27) AND a$<>chr$(13)) + A$="" + while a$="" : a$=inkey$ : wend: a= asc(a$) + if a>47 and a<57 and kl<3 then + kl=kl+1:locate 12,49+kl:print a$ + re$=re$+a$ + end if + + if (a$=b$+"K" or a$=b$+"S" or A$=CHR$(8)) and kL>0 then + locate 12,49+kl:print " " + kl=kl-1:re$=left$(re$,kl) + end if +wend +IF A$=CHR$(27) then c%=-1:return +c%=val(re$) +gosub testbid +if a$="n" or a$="N" then goto CH2 +return + +ch3: +CALL CHXCAR(C%) +IF c%=-1 then return +gosub testbid +if a$="N" or a$="n" then goto ch3 +return + +Testbid : '++++++++ test ok oui/non !!!! ++++++++++++++ + + CALL FAITUNCADRE(12,9,49,10,CN%,FN%) + LOCATE 10,12:PRINT "Caractre choisi : OK? Oui/Non" + if c%<>0 then POKE 1506,C%:poke 1507,ci%+fi%*16 + color ci%,fi% + if c%=32 then locate 10,32:print "" + if c%=0 then locate 10,32:print "" + A$=input$(1):return + +finch1 : + c%=-1 +Finch: +END SUB + +'============================================================================== +'|| Saisi d'un nom de Fichier avec Mga Controle || +'============================================================================== +sub DonneNom(N$,PH$) STATIC + +SHARED CN%,FN%,CI%,FI% +STATIC C$,U$,FIC$,OK% + +IF U$="" OR len(U$)<>2 THEN U$="A:":C$="\":FIC$="PASDENOM.PIC":CHY%=3 ELSE CHY%=4 +CALL FAITunCADRE(5,2,76,6,CN%,FN%) +COLOR CN%,FN% +LOCATE 3,INT((80-LEN(PH$))/2):PRINT PH$ +LOCATE 4,5 :PRINT " Unit disque(tte). : " +LOCATE 5,5 :PRINT " Chemin d'accs ... : " +LOCATE 6,5 :PRINT " Nom du fichier ... : " + + +AFFICHERESULTAT : +FOR I=4 TO 6 :LOCATE I,27:PRINT SPACE$(50);:NEXT I +COLOR CI%,FI% +LOCATE 4,27:PRINT U$ +LOCATE 5,27:PRINT C$ +LOCATE 6,27:PRINT FIC$ + +CHY%=3 +MM$="Unit de disquette Rpertoire Nom du Fichier Validation Quitter " +CALL MENU(MM$,18,31,10,CN%,FN%,CI%,FI%,chx%,CHY%,-1) +IF CHY%=-1 or CHY%=5 THEN PH$="E" : GOTO FICFIN +PH$="" +ON CHY% GOTO UNITE,REPTOIRE,NONFIC,FICFIN + +REPTOIRE : + + INV$="CHEMIN ( REPETOIRE ) :" + OK%=0:M$=C$ + CALL SAISI(10,10,CN%,FN%,INV$,M$,15,50) + IF M$="" then goto afficheresultat + CALL ANTIBUG(M$,"/*|#[],;:=+<>&?^",OK%):IF OK% THEN GOTO reptoire + C$=M$ + GOTO AFFICHERESULTAT + +UNITE : + +CHY% = INSTR("ABCDEF",LEFT$(U$,1)):IF CHY%=0 THEN CHY%=7 +CALL MENU(" A: B: C: D: E: F: ?? ",4,33,10,CN%,FN%,CI%,FI%,0,CHY%,-1) +IF CHY%=-1 THEN GOTO AFFICHERESULTAT +IF CHY%<>7 THEN + U$=MID$("A:B:C:D:E:F:",(CHY%-1)*2+1,2):GOTO AFFICHERESULTAT + ELSE + +CALL FAITUNCADRE(13,11,50,12,CN%,FN%) +COLOR CN%,FN%:LOCATE 12,14:PRINT "Entrez l'Unit au Clavier : "; +a$="" +WHile A$<>CHR$(13) and a$<>chr$(27) + IF A$=>"a" and A$<="z" then A$=chr$(ASC(A$) and 95) + IF A$=>"A" and A$<="Z" then K$=A$:Locate 12,46:PRINT A$+":" + A$="" + While A$="":a$=inkey$:wend +wend +IF A$<>CHR$(27) THEN U$=K$+":" +GOTO AFFICHERESULTAT + END IF + +NONFIC : + INV$="Nom du fichier :" + OK%=0:M$=FIC$ + CALL SAISI(20,15,CN%,FN%,INV$,M$,12,12) + IF M$="" then goto afficheresultat + CALL ANTIBUG(M$,"\/*|#[],;:=+<>&?^",OK%):IF OK% THEN GOTO NONFIC + FIC$=M$ + GOTO AFFICHERESULTAT + +FICFIN : + +IF RIGHT$(C$,1)<>"\" then sup$="\" else sup$="" +N$=U$+C$+SUP$+FIC$ + +end sub + +' --------------------------------------------------------------------------- +' Procdure qui contrle si une chaine de caractre est valide pour des +' accs disque NOM = 8 car, EXT = 3 car, pas de car. interdit etc .... +' *********** DE DARCHE Yoann 26/01/91 ************************************** +' --------------------------------------------------------------------------- +SUB ANTIBUG(C$,B$,OK%) static + +SHARED CN%,FN% + +IF INSTR(B$,"\") = 0 THEN + IF MID$(C$,1,1)<>"\" then C$="\"+C$ + CPT%=1 + ELSE + CPT%=0 + END IF + +PT%=0:MAX%=8:CPT$="Chaine trop longue pour un Nom !" + +For I = 1 To Len(C$) + A$=MID$(C$,I,1) + IF INSTR(B$,A$)<>0 THEN M$="Caractre invalide : "+a$+" !":goto erreur + IF A$="\" Then + IF PT%<>0 AND CPT%=0 THEN BEEP:M$="Recontre d'un . sans dfinition d'une extension":GOTO ERREUR + IF CPT%=0 THEN M$="Rencontre de deux antislash !! \ sans dfinition entre !":GOTO ERREUR + CPT%=0:PT%=0:MAX%=8:CPT$="Chaine trop longue pour un Nom !":GOTO SCH + END IF + IF A$="." Then + IF PT%<>0 THEN BEEP:M$="Erreur deux points recontrs !":Goto Erreur + IF CPT%=0 THEN BEEP:M$="Dfinition d'une extention sans Nom !":goto Erreur + PT%=1:CPT%=0:MAX%=3:CPT$="Chaine trop longue pour une extention !" + Goto SCH + END IF + + CPT%=CPT%+1 + IF CPT% > MAX% THEN M$=CPT$:GOTO ERREUR + SCH : +next I:M$="" + +ERREUR : + IF M$<>"" THEN + L=LEN(M$):L=L+4:X1%=INT((80-L)/2) + CALL FAITUNCADRE(X1%,8,X1%+L,9,31,4) + LOCATE 9,X1%+2:PRINT M$ + OK%=-1:A$=INPUT$(1) + END IF +COLOR CN%,FN% + +END SUB + +'================================ Sous Programme Qui affiche le rpetoire === + +CATALOGUE : + +IF CATAC$="" THEN CATAC$="A:\*.PIC" +M$=CATAC$ +COLOR CN,FN +IDEM : + INV$="CHEMIN ( REPETOIRE ) :" + OK%=0: + CALL SAISI(10,10,CN%,FN%,INV$,M$,15,50) + IF M$="" then goto FinCata + CALL ANTIBUG(M$,"|#[]/,;=+<>&^",OK%):IF OK% THEN GOTO IDEM + m$=right$(m$,len(m$)-1) + CATAC$=M$ +CLS:FILES M$:A$=INPUT$(1) + +CALL MENU(" ENCORE FIN ",8,33,10,CN%,FN%,CI%,FI%,0,CHY%,0) +IF CHY%=1 THEN GOTO IDEM + +FINCata : +PCOPY 1,0:RETURN + +' ==================== CLS PARTICULIER ====================================== + +CLS.SPEC : + +IF COL%=0 THEN COL%=7 +CALL PFENETRE(FX1%,FY1%,FX2%,FY2%) +CALL CHOIXCAR(CAR%):DF%=1 +IF CAR%=-1 THEN RETURN +CALL COLORC(COL%,0,df%) +IF DF%=-1 THEN RETURN +CALL SCLS(FX1%,FY1%,FX2%,FY2%,CAR%,COL%):RETURN + +' ========================= Routine Cls ===================================== +SUB SCLS(A%,B%,C%,D%,E%,F%) STATIC + +SHARED CI%,FI% + + PCOPY 3,0 + For i=A% TO C%:FOR J=B% TO D% + CUR=J*160+I*2:POKE CUR,E%:POKE CUR+1,F% + Next j:Next I + LOCATE 25,10:COLOR CI,FI:PRINT " ETES - VOUS SURE DE VOILOIRE EFFACER CETTE PORTION [O/N] "; + XDF=0:While XDF=0 + A$=INPUT$(1) + IF A$="O" OR A$="o" THEN PCOPY 0,3:PCOPY 0,1:XDF=10 + IF A$="N" OR A$="n" THEN XDF=10 + WEND + PCOPY 0,3 + PCOPY 0,1 +END SUB + +' ====================== dfinie une fentre ================================ + +SUB PFENETRE(X1%,Y1%,X2%,Y2%) STATIC + +Shared Ta%(),CN%,FN%,CI%,FI% + +MM$="Tout l'Ecran Fentre ":CHY%=2 +CALL MENU(MM$,12,20,12,CN%,FN%,CI%,FI%,0,CHY%,-1) +IF CHY%=-1 THEN a$=chr$(27) else A$="" +IF CHY%=1 THEN A$=Chr$(13):XA=0:YA=0:YB=23:XB=79 else ya=12:XA=39:XB=39:YB=12 + +pcopy 3,0 + + CU2=4006:AU2=CU2:CU1=4006:AU1=CU1:Y2=YB:X2=XB:X1=XA:Y1=YA + CO%=CN%+16*FN% + IF CN%>15 THEN CO%=CO%+112 + +While A$<>chr$(13) AND A$<>chr$(27) + + V=(XA=XB)*-2+(YA=YB)*-1 + W=(XA=XB)*-8+(YA=YB)*-4 + V= ((V=0) AND 217) + ((V<>0) AND Ta%(V)) + W= ((W=0) AND 218) + ((W<>0) AND Ta%(W)) + + CU1=XA*2+160*YA:CU2=XB*2+YB*160 + POKE AU1,VA1:POKE AU1+1,VB1 + POKE AU2,VA2:POKE AU2+1,VB2 + VA1=PEEK(CU1):VA2=PEEK(CU2):VB1=PEEK(CU1+1):VB2=PEEK(CU2+1) + POKE CU1,W:POKE CU2,V:POKE CU1+1,CO:POKE CU2+1,CO + AU1=CU1:AU2=CU2 + + + A$="" + While a$="" :A$=INKEY$:WEND + + IF A$="8" AND Y1>0 THEN Y1=Y1-1:GOTO 150 + IF A$="2" AND Y1<23 THEN Y1=Y1+1:GOTO 150 + IF A$="4" AND X1>0 THEN X1=X1-1:GOTO 150 + IF A$="6" AND X1<79 THEN X1=X1+1:GOTO 150 + IF A$=CHR$(0)+"K" AND X2>0 THEN X2=X2-1:GOTO 150 + IF A$=CHR$(0)+"M" AND X2<79 THEN X2=X2+1:GOTO 150 + IF A$=CHR$(0)+"H" AND Y2>0 THEN Y2=Y2-1 + IF A$=CHR$(0)+"P" AND Y2<24 THEN Y2=Y2+1 + 150: IF X1>X2 THEN XA=X2:XB=X1 ELSE XA=X1:XB=X2 + IF Y1>Y2 THEN YA=Y2:YB=Y1 ELSE YA=Y1:YB=Y2 + + +Wend + +X1=XA:Y1=YA:X2=XB:Y2=YB + +IF A$=CHR$(27) Then X1%=-1 + +PCOPY 3,0 +End sub + +' ========================== Sous prog de Copie ============================= + +sub COPYPA(XA%,YA%,XB%,YB%,deca%) Static + +SHARED CN%,FN% +COU%=FNCO%(CN%,FN%):DEB%=-1 +'---------------------------- Calcule interne ---------- +CY%=YA%:CX%=XA%:A$="":b$=chr$(0) +DIX%=XB%-XA%:DIY%=YB%-YA% +APOS1%=1:APOS2%=1:CA1%=PEEK(APOS1%):ACO1%=PEEK(APOS1%+1):CA2%=CA1%:ACO2%=ACO1% +car1%=218:car2%=217 +IF DIX%=0 THEN CAR1%=31:CAR2%=30 +IF DIY%=0 THEN + IF DIX%=0 THEN CAR1%=254:CAR2%=254 ELSE CAR1%=16:CAR2%=17 + END IF +'------------------------------------------------------- + +While A$<>chr$(13) and a$<>chr$(27) +'------ Calcule des positions curseurs (le 2me) ------- +AX%=CX%:AY%=CY%:BX%=CX%+DIX%:BY%=CY%+DIY% +IF DEB% THEN + IF AX%<0 THEN AX%=80+AX%:CX%=AX% + IF AY%<0 THEN AY%=24+AY%:CY%=AY% + IF BX%>79 THEN BX%=BX%-80 + IF BY%>23 THEN BY%=BY%-24 + ELSE + IF AX%<0 THEN AX%=0 + IF AY%<0 THEN AY%=0 + IF BX%>79 THEN BX%=79 + IF BY%>23 THEN BY%=23 + END IF + IF BX%=0 THEN BX%=79:AX%=79-ABS(DIX%):CX%=AX% + IF BY%=0 THEN BY%=23:AY%=23-ABS(DIY%):CY%=AY% + IF AX%>79 THEN AX%=0 :BX%=DIX% :CX%=AX% + IF AY%>23 THEN AY%=0 :BY%=DIY% :CY%=AY% +'-------- Affichage des curseurs sur l'cran ----------- + POKE APOS1%,CA1%:POKE APOS2%,CA2%:POKE APOS1%+1,ACO1%:POKE APOS2%+1,ACO2% + POSI1%=AX%*2+AY%*160:APOS1%=POSI1%:POSI2%=BX%*2+BY%*160:APOS2%=POSI2% + ACO1%=PEEK(POSI1%+1):ACO2%=PEEK(POSI2%+1):CA1%=PEEk(POSI1%):CA2%=PEEK(POSI2%) + POKE POSI1%,CAR1%:POKE POSI2%,CAR2%:POKE POSI1%+1,COU%:POKE POSI2%+1,COU% + + A$=FNTOUCHE$ + + IF A$=B$+"P" or A$="2" Then CY%=CY%+1 + IF A$=B$+"H" or A$="8" Then CY%=CY%-1 + IF A$=b$+"M" or A$="6" Then CX%=CX%+1 + If A$=B$+"K" or A$="4" Then CX%=CX%-1 + If A$="D" or A$="d" Then DEB%=NOT(DEB%) + If CX%< -DIX% THEN CX%=79 + If CX%>79 Then CX%=0 + If CY%< -DIY% Then CY%=23 + If CY%>23 Then CY%=0 + +WEND + +END SUB +' ========================== Sous prog de SAISI ============================= + +DESSIN : + +A$="" + +While (A$<>chr$(27)) + + A$="":WHILE A$="":A$=INKEY$:WEND + B$=CHR$(0):P2=P1:CM1=0:CM2=0 + + GOSUB GESTION.TOUCHE + + P1=(X-1)*2+(Y-1)*160 + AN=PEEK(P2):CALL VERIF(AN):CO=(CM2 OR CR1) :CALL CALCUL(AN,CO,V,D,NO,PRD%) + POKE P2+1,CND%:POKE P2,CC(NO) + AN=PEEK(P1):CALL VERIF(AN):CO=CM1 :CALL CALCUL(An,CO,V,D,NO,PRD%) + POKE P1+1,CID%:POKE P1,CC(NO):CR1=CM1 + +Wend:POKE P1+1,CND%:pcopy 0,3:RETURN + +'--------------------------------------------------------------------------- + +GESTION.TOUCHE : + + IF A$=B$+"M" OR A$="6" THEN X=X+1:V=0 :CM2=2:CM1=8 + IF A$=B$+"K" OR A$="4" THEN X=X-1:V=0 :CM2=8:CM1=2 + IF A$=B$+"H" OR A$="8" THEN Y=Y-1:V=-1:CM2=1:CM1=4 + IF A$=B$+"P" OR A$="2" THEN Y=Y+1:V=-1:CM2=4:CM1=1 + IF A$=CHR$(27) THEN IND%=-1 + IF A$=B$+";" THEN MEN%=-1:A$=CHR$(27) + IF A$="D" OR A$="d" THEN D=-1 + IF A$="S" OR A$="s" THEN D=0 + + IF Y<1 THEN Y=24 + IF X<1 THEN X=80 + IF X>80 THEN X=1 + IF Y>24 THEN Y=1 + +RETURN + + +'======================== OPTION du MODE TRACE ============================== +SAUV : +N$="":PH$="NON DU FICHIER A ENREGISTRER" +CALL DonneNom(N$,PH$) +PCOPY 3,0 +IF PH$="E" THEN Return +BSAVE N$,0,4000 +return + +RAPP : +N$="":PH$="NON DU FICHIER A CHARGER" +CALL DonneNom(N$,PH$) +IF PH$="E" THEN Return +BLOAD N$ +PCOPY 0,1:PCOPY 0,3:RETURN + +'========================== Dbut du programme Enfin !!! ===================== +debut : + +B$=chr$(0) + + A$=FNTOUCHE$ + GOSUB GESTION.TOUCHE + + P1=(X-1)*2+(Y-1)*160 + POKE P2+1,CMC%:CMC%=PEEK(P1+1):POKE P1+1,CID%:P2=P1 + IF A$=CHR$(27) THEN MEN%=-1 ELSE MEN%=0 + + ' Aiguillage des activite des sous gros programmes !! + + IF NOT(IND%) THEN GOSUB DESSIN :POKE P1+1,CND% :GOSUB Affiche.Ligne + IF MEN% THEN GOSUB DEBUTAZ:PCOPY 3,0:MEN%=0:GOSUB Affiche.Ligne + +GOTO Debut + +DEBUTAZ : + + GOSUB Affiche.Ligne + MM$="UtilitsFichiers Texte Dessin Config Quitter " + CALL MENUB(MM$,8,1,CN%,FN%,CI%,FI%,CHX%,-1) + IF CHX%=-1 THEN RETURN + PCOPY 0,1 + IF CHX%=6 THEN GOTO FINPROG + ON CHX% GOSUB MENU1,MENU2,MENU3,MENU4,MENU5 + IF CHY%=-3 OR CHY%=3 THEN CHx%=CHx%+1 + IF CHY%=-2 OR CHY%=2 THEN CHX%=CHX%-1 + PCOPY 1,0 +a$="":Goto DEBUTAZ + +'Gosub ModeTrace + + +TRAITERREUR : +PCOPY 3,0 +CALL FAITUNCADRE(29,10,51,14,15,4) +LOCATE 11,32:PRINT "Une ERREUR s'est" +LOCATE 12,36:PRINT "produite" +LOCATE 13,31:PRINT "N d'Erreur : ";:PRINT USING "###";ERR +LOCATE 14,29:PRINT "Appuyez sur une touche" +A$=input$(1) +PCOPY 3,0 +RESUME debut + +MENU1 : + +cm$=cHR$(26) +MM$=" cls Total cls fEnetrecls Spcial Copie 1"+CM$+"1 cOpie 2"+CM$+"1 Filtres " +CHY%=6 +CALL MENU(MM$,11,3,3,CN%,FN%,CI%,FI%,chx%,CHY%,-1) +IF CHY%=-1 OR CHY%=0 THEN Return +ON CHY% GOSUB Cls.T,CFLS,CLS.SPEC,COPIE11,IN,FIS +RETURN + +MENU2 : +CHY%=5 +MM$=" Sauve 1 sAuve 2 Rappelle 1raPpelle 2Catalogue " +CALL MENU(MM$,10,18,3,CN%,FN%,CI%,FI%,chx%,CHY%,-1) +ON CHY% GOSUB SAUV,IN,RAPP,IN,CATALOGUE +RETURN + +MENU3 : +CHY%=3 +mm$="marge Droite marge Gauche couleurs Texte couleurs cUrseur Centre Priorit

criture Activecriture Inactive" +CALL MENU(MM$,17,31,3,CN%,FN%,CI%,FI%,chx%,CHY%,-1) +RETURN + +MENU4 : +CHY%=1 +mm$="couleurs Traccouleurs Cur. Simple Double Priorit iMage1/image2 trac Actif trac Inactif " +CALL MENU(MM$,14,41,3,CN%,FN%,CI%,FI%,chx%,CHY%,-1) +IF CHY%=-1 OR CHY%=0 THEN Return +ON CHY% GOSUB Couleur.Trace,Couleur.Cur,Simple,Double,Priorite.Trace,ImageI,Trace.A,Trace.I +IF CHY%=-1 THEN RETURN +GOSUB Affiche.Ligne +goto Menu4 + +MENU5 : +CHY%=3 +MM$="Couleur Monochrome couleur Normale couleur InverseSauve config ligne d'tat Ac.ligne d'tat in." +CALL MENU(MM$,16,51,3,CN%,FN%,CI%,FI%,chx%,CHY%,-1) +IF CHY%=-1 OR CHY%=0 THEN Return +ON CHY% GOSUB Couleur.E,Monochrome,Couleur.text,Couleur.Curs,Sauve.Config,Ligne.A,Ligne.I +IF CHY%=-1 THEN RETURN +GOSUB Affiche.Ligne +Goto Menu5 + +'======= +IN : +CALL FAITUNCADRE(20,11,60,12,CI%,FI%):LOCATE 12,25:PRINT " PAS ENCORE DISPONIBLE !!!!!! " +a$=input$(1) +RETURN + +'================== Option Menu1 =========================================== +MM$=" cls Total cls fEnetrecls Spcial Copie 1"+CM$+"1 cOpie 2"+CM$+"1 Filtres " +Cls.T : COLOR 7,0:CLS:PCOPY 0,3:PCOPY 0,1:CHY%=-1:RETURN +CFLS : Call Pfenetre(X1%,Y1%,X2%,Y2%) + Call SCLS(X1%,Y1%,X2%,Y2%,32,7) + RETURN +FIS : CALL Pfenetre(X1,Y1,X2,Y2) + IF X1=-1 THEN RETURN + B$=CHR$(26) + MM$="CAR "+B$+" COUCOU "+B$+" CARCOU "+B$+" COUCAR "+B$+" CAR QUITTER " + CHY%=5 + CALL MENU(MM$,9,28,8,CN%,FN%,CI,FI,0,CHY%,0) + IF CHY%=5 or CHY%=-1 THEN RETURN + F1%=0:F2%=0:s%=1:nc%=0:rc%=0 + IF CHY%=1 THEN F1%=-1 + IF CHY%=2 THEN F2%=-1 + IF CHY%=4 THEN F1%=-1:F2%=-1 + IF F1% THEN Call ChoixCar(RC%) ELSE Call Colorc(RC%,N,S%) + IF RC%=-1 or s%=-1 Then return + s%=1 + IF F2% THEN Call ChoixCar(NC%) ELSE Call Colorc(NC%,N,S%) + IF NC%=-1 or s%=-1 Then return + PCOPY 3,0 + CALL FILTRES(RC%,NC%,F1%,F2%,X1%,Y1%,X2%,Y2%) + PCOPY 0,1 +RETURN + + +'================== Option Menu4 =========================================== +Couleur.Trace : CALL COLORC(CND%,0,1):RETURN +Couleur.Cur : CALL COLORC(CID%,0,1):RETURN +Simple : D= 0:RETURN +Double : D=-1:RETURN +Priorite.Trace: PRD%=NOT(PRD%):RETURN +ImageI : Pcopy 2,0:PCOPY 3,2:pcopy 0,3:PCOPY 0,1:CHY%=-1:RETURN +Trace.A : IND=0:RETURN +Trace.I : Ind=-1:RETURN + +'==================== Option Menu5 ========================================= +Monochrome : CN%=7 :FN%=0:CI%=0 :FI%=7:CHY%=-1:RETURN +Couleur.E : CN%=11:FN%=1:CI%=14:FI%=4:CHY%=-1:RETURN +Couleur.TEXT : CALL COLORC(CN%,FN%,0):RETURN +Couleur.Curs : CALL COLORC(CI%,FI%,0):RETURN +Ligne.A : LIN%=0 :RETURN +Ligne.I : LIN%=-1:RETURN + +'================== Affiche la Ligne d'tat ================================ +Affiche.Ligne : + +Color CN%,FN%:LOCATE 25,1:PRINT SPACE$(78); +IF LIN THEN RETURN +Locate 25,1:PRINT "Ecriture "; +Locate 25,31:PRINT "Dessin "; +Locate 25,10 +IF INE% THEN PRINT "INACTIVE"; ELSE PRINT " ACTIVE "; +IF PRE% THEN Locate 25,19:PRINT "PRIORITAIRE"; +Locate 25,38 +IF IND% THEN PRINT "INACTIF"; ELSE PRINT " ACTIF "; +IF PRD% THEN LOCATE 25,46:PRINT "PRIORITAIRE"; +Locate 25,58 +IF D THEN PRINT "DOUBLE"; ELSE PRINT "SIMPLE"; +POKE 3994,42:POKE 3995,CNT%:POKE 3998,42:POKE 3999,CND% +RETURN + +'================================ FIN ======================================= +FINPROG : + +CLS +PCOPY 1,0 +A$=input$(1) +PCOPY 2,0 +A$=input$(1) +PCOPY 3,0 +A$=input$(1) +END + +PUBLICITE : '*************** IL en faut pour vivre !!! *********************** +screen 2:screen 0 +LOCATE 1,1:color 0,15 +PRINT "" +PRINT "۰۰۰۰" +PRINT "۱۰۰۱۰" +PRINT "۰۰۰۰۰۰۰" +PRINT "۰۱۱۰۰۰۰۰۰۰۰۰۰۰" +PRINT "۱۰۰۱۱۱۱۱۰۱۰۰۰۰۰" +PRINT "۰۰۰۱۱۰۰۰۱۰۰۰۰۰" +PRINT "۰۰۱۰۰۱۱۱۰۰۰۰" +PRINT "۱۰۱۰۱۱۰۱۱۱۰۰۰۰" +PRINT "۰۱۱۰۱۰۰۱۰۱۰۰۰۰۱" +PRINT "۰۱۰۱۱۱۰۰۱۰۰۰۱" +PRINT "" +PRINT "" +PRINT:color 14,0 +PRINT " Vous Prsente un logiciel UTILITAIRE " +PRINT +PRINT " ͻ ͻ ͻ ͻ ͻ ͻ ͵ ͻ " +PRINT " ɼ Ȼ ɼ Ȼ " +PRINT " ͼ ͵ ͹ ͼ ͹ ͵ " +PRINT " Ȼ ͻ " +PRINT " ͼ ͼ ͼ ͼ " +PRINT " de "+Yoann$+" " +PRINT " 71, avenue d'Orlans 91800 BRUNOY (FRANCE) " +PRINT " Tel : 16.1.69-39-51-26 "; +LOCATE 1:A$=input$(1):return + +'================================= SAUVE Les configurations ================= +SAUVE.CONFIG : +OPEN "O",#1,"CREAPAGE.CFG" +WRITE #1,CN%,FN%,CI%,FI%,LIN% +Close:RETURN +'================================= RAPPELLE Configurations ================== +RAPP.CONFIG : +OPEN "I",#1,"CREAPAGE.CFG":INPUT #1,A$,B$,c$,d$,e$:CLOSE +CN%=VAL(A$):FN%=VAL(B$):CI%=val(C$):FI%=VAL(D$):LIN%=VAL(E$):RETURN + + +'======================== COPIE de 1 vers 1 ================================= +COPIE11 : + +PCOPY 3,0:COLOR CN%,FN% +LOCATE 25,24:PRINT "Slectionnez la partie copier"; +CALL PFENETRE(FX1%,FY1%,FX2%,FY2%) +LOCATE 25,24:PRINT " Positionnez la partie copier "; +CALL COPYPA(FX1%,FY1%,FX2%,FY2%,0) +RETURN + diff --git a/CREAPAGE.BAS b/CREAPAGE.BAS new file mode 100644 index 0000000..b55d09d --- /dev/null +++ b/CREAPAGE.BAS @@ -0,0 +1,930 @@ +CLS +DEFINT A-Z +YOANN$=chr$(68)+chr$(65)+chr$(82)+chr$(67)+chr$(72)+chr$(69)+" "+CHR$(89)+chr$(111)+chr$(97)+chr$(110)+chr$(110) +DIM BB(40),CC(63),T%(4,4),CT(26,6),TA%(16) +LOCATE 1,1,1,8,8 +ON ERROR GOTO TRAITERREUR +CHX%=1 +' ------------------------ Chargement des Sub Routines Suplmantaires ------- + +' $INCLUDE: 'A:CREAPSUP.BAS' + +' ----------------------- Chargement des Sub Routine MENUS ------------------ + +' $INCLUDE: 'A:MENUTXT.BAS' + +' ----------------------- Chargement de la PUBLICIT ----------------------- + +' $INCLUDE : 'A:PUB.BAS' + +' ---------------------- Slection du mode de l'ecran ------------------------ +Call Publicite ' a l'affiche + + DEF SEG = &h40 + TE%=(PEEK(&h10) AND &h30):DEF SEG + IF TE%=0 THEN PRINT " Programme non utilisable sur cette appareil ! [ECRAN] ":END + IF TE%=&h30 Then SegEcr%=&hB000 Else SegEcr%=&hB800 + DEF SEG = SEGECR% + +' --------------- Constante Provisoire -------------------------------------- + +CN%=11:FN%=1:CI=14:FI=4 ' Couleurs Normales Inverss +CND%=14:CID%=110 ' Couleur du Trac Normale/Inverse +CNT%=10:CIT%=110 ' Couleur de Texte Normale/Inverse +IND%=-1:INE%=-1:A$=CHR$(27):PCOPY 0,3 +NOM$="":NOM1$="PASDENOM.PIC":NOM2$=NOM1$ ' Nom par dfaut des images + +CPA1 = 0:CPA2 = 0 'Protection contre le fait de quitter sans sauvegarde + ' Si -1 Changement effectu, Si 0 aucune modif ! + +IF SEGECR%=&hb000 THEN CN%=7:FN%=0:CI%=0:FI%=7:CND%=15:CID%=7 + +Ta%(1)=17:Ta%(2)=30:Ta%(3)=254:Ta%(4)=16:Ta%(8)=31:Ta%(12)=254 + +GOSUB LectData ' ****** Lit les DATAs ****** +GOSUB Rapp.Config ' ****** Rappelle la Configuration ***** +GOTO Debut + +' --------- converstion asc(x)-178 ===> code binaire ------------------------ + + DATA 05,13,45,61,60,44,29,21,28,25,57,41,12,03,11,14,07,10,15,39 + DATA 55,19,22,27,30,23,26,31,43,59,46,62,51,35,38,54,63,47,09,06 + +' ------------- convertion binaire ====> code caractre CHR$() -------------- + + DATA 032,032,032,192,032,179,218,195,032,217,196,193,191,180,194,197 + DATA 032,032,032,200,032,186,201,204,032,188,205,202,187,185,203,206 + DATA 032,032,032,212,032,179,213,198,032,190,205,207,184,181,209,216 + DATA 032,032,032,211,032,186,214,199,032,189,196,208,183,182,210,215 + +' ------------ Donnes pour le choix directe des caractres ----------------- + +DATA 253,251,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,252 +DATA 130,136,137,138,160,131,132,133,161,140,139,141,162,147,148,149,163,150,129,151,135,128,142,143,134,144,153 +DATA 154,152,155,145,146,156,157,158,159,171,172,064,164,165,166,167,168,173,174,175,169,170,019,021,020,015,028 +DATA 219,176,177,178,220,223,221,222,022,254,248,249,250,007,008,009,010,001,002,003,004,005,006,011,012,013,014 +DATA 218,194,191,201,203,187,214,210,183,213,209,184,205,186,091,024,029,018,030,093,035,036,037,038,045,022,127 +DATA 195,197,180,204,206,185,199,215,182,198,216,181,196,179,027,042,026,017,043,016,047,092,060,061,062,063,033 +DATA 192,193,217,200,202,188,211,208,189,212,207,190,023,124,040,025,123,125,031,041,094,095,096,039,044,046,059 + +' ============================== Lecture des datas ========================= +LectData : +COLOR 30,1 +RESTORE +LOCATE 25,1:PRINT "PATIENTEZ "; + FOR I=1 TO 40 :READ BB(I):NEXT I + FOR I=0 TO 63 :READ CC(I):NEXT I + FOR J=0 TO 6 + FOR I=0 TO 26 + READ CT(I,J) + NEXT I + NEXT J +X=1:Y=1:LOCATE 25,1:PRINT "OK "; +RETURN + +' ============================== Sous prog calcule ========================== + +SUB CALCUL(AN,CO,V,D,NO,PR%) STATIC + +STATIC S,C + + IF PR% THEN AN= 0+( D AND 16) + S =-(AN AND 32)/32 + C =-(AN AND 16)/16 + VL=-(NOT(V) AND D)*(C*16+32)-(NOT(V) AND NOT(D) AND C)*48 + VL=VL+(V AND ((D AND 48)+(S XOR C)*32*((NOT(D))-D))) + CO=CO OR VL + NO=(AN AND 15) OR (CO) + +End Sub + +'============================= sOUS PROG VERIFICATION DU POKAGE ============= + +Sub Verif(AN) STATIC +shared d,BB() +IF AN<179 OR AN>218 THEN AN= 0+( D AND 16) ELSE AN=BB(AN-178) +End Sub + + +' ==================================== Sous Prog Color ====================== +SUB COLORC(CA%,CB%,SS%) STATIC + +STATIC COU,B$,K%,V%,KA%,C% +SHARED CN%,FN%,T%() + +COU=FNCO%(CN%,FN%) + +IF SS%<>0 THEN + IF CA%>=128 THEN CA%=CA%-128:KA%=128 ELSE KA%=0 + CB%=INT(cA%/16):CA%=(CA%-CB%*16) + ELSE + IF CA%>=32 THEN CA%=CA-16:ka%=128 ELSE KA%=0 + END IF + +B$=chr$(0):T%(0,0)=CA%:T%(1,0)=CB%:for i=0 to 2:T%(i,1)=T%(i,0):next i +CALL FAITUNCADRE(6,6,74,18,CN%,FN%) +LOCATE 7,34:PRINT "LES COULEURS"; +locate 9,11:print " Utilisez les flches pour le choix C clignotant / ou pas " +DE%=1634 + +'************** Affichages des couleurs actuelles et choisies . *********** + +COLOR CA%,CB% +LOCATE 17,19:PRINT "Ancienne Couleur" +LOCATE 17,45:PRINT "Nouvelle Couleur" +CY%=0:CX%=CA% + +NEWCOLOR : +T%(2,0)=KA%:A$="" + +FOR I=0 TO 15 +POKE DE% +2*(3*i-2),219 :POKE DE%+2+2*(3*I-2),219 +POKE DE%+1+2*(3*i-2),I+KA%:POKE de%+3+2*(3*I-2),I+KA% +NEXT I +FOR I=0 TO 7 +POKE DE%+502+2*(3*i-2),219:POKE DE%+504+2*(3*I-2),219 +POKE DE%+503+2*(3*i-2),I :POKE DE%+505+2*(3*I-2),I +NEXT I +poke DE%+498,222:POKE DE%+499,143:POKE DE%+500,221:POKE DE%+501,143 +poke DE%-4,222:POKE DE%-3,143:POKE DE%-2,221:POKE DE%-1,143:K=-4 + + +WHILE NOT(A$=" " or A$=CHR$(13) or A$=chr$(27)) +mp=0 + IF A$=B$+"P" or A$="2" Then CY=CY+1:mp=-1 + IF A$=B$+"H" or A$="8" Then CY=CY-1:mp=-1 + IF A$=b$+"M" or A$="6" Then CX=CX+1 + If A$=B$+"K" or A$="4" Then CX=CX-1 + IF A$="C" or A$="c" Then + IF KA%=128 THEN KA%=0 ELSE KA%=128 + GOTO NEWCOLOR + End if + IF cy=1 THEN MCX=7 ELSE MCX=15 + IF Cy<0 THEN CY=1 + IF CY>1 THEN CY=0 + IF MP THEN CX=T%(CY,0) + IF CX<0 THEN CX=MCX + IF CX>MCX THEN CX=0 + + c=2*(3*CX-2)+502*cy:T%(CY,0)=CX + +POKE K+DE%-162,000:POKE K+DE%-160,000:POKE K+DE%-158,000:POKE K+DE%-156,000 +POKE K+DE%-002,000 :POKE K+DE%+004,000 +POKE K+de%+158,000:POKE K+DE%+160,000:POKE K+DE%+162,000:POKE K+DE%+164,000 +POKE C+DE%-162,218:POKE C+DE%-160,196:POKE C+DE%-158,196:POKE C+DE%-156,191 +POKE C+DE%-002,179 :POKE C+DE%+004,179 +POKE C+de%+158,192:POKE C+DE%+160,196:POKE C+DE%+162,196:POKE C+DE%+164,217 +COP%=FNCO%(T%(0,0),T%(1,0)):FOR I=2649 TO 2681 STEP 2:POKE I,COP%+KA%:NEXT I +K=C:A$="": WHILE A$="":A$=INKEY$:WEND +wend + +IF A$=chr$(27) then + CA%=T%(0,1):CB%=T%(1,1):KA%=T%(2,1) + ELSE + CA%=T%(0,0):CB%=T%(1,0):KA%=T%(2,0) + END IF + + +IF SS%<>0 THEN + CA%=CB%*16+CA%+KA% + ELSE + IF KA%<>0 then CA%=CA%+16 +END IF + +if a$=chr$(27) then ss%=-1 else ss%=0 + +END SUB + +'=============================== CHOIX CARACTERE ========================== +SUB CHXCAR(C%) static + +SHARED CN%,FN%,CI%,FI%,CT() +STATIC DE%,B$,CX,CY + +CALL FaitUnCAdre(10,2,68,19,CN%,FN%) +LOCATE 18,12:PRINT " Utilisez les flches, pour valider, FIN " +DE%=502:B$=chr$(0):a$="" +FOR I=0 TO 26:FOR j=0 TO 6:PO%=DE%+I*4+J*320:POKE PO%,CT(I,J):NEXT j:NEXT I + +WHILE NOT(A$=" " or A$=CHR$(13) or A$=chr$(27)) + + IF A$=B$+"P" or A$="2" Then Cy=CY+1 + IF A$=B$+"H" or A$="8" Then CY=CY-1 + IF A$=b$+"M" or A$="6" Then Cx=Cx+1 + If A$=B$+"K" or A$="4" Then Cx=Cx-1 + IF Cy<0 THEN CY=6 + IF CY>6 THEN CY=0 + IF CX<0 THEN CX=26 + IF CX>26 THEN CX=0 + + V=DE%+CX*4+CY*320 + + POKE K-162,000:POKE K-160,000:POKE K-158,000 + POKE K-002,000: POKE K+002,000 + POKE K+158,000:POKE K+160,000:POKE K+162,000 + POKE V-162,218:POKE V-160,196:POKE V-158,191 + +POKE V-002,179: POKE V+002,179 + POKE V+158,192:POKE V+160,196:POKE V+162,217 + + K=V:a$="":While a$="":A$=INKEY$:Wend + WEND + + C%=CT(CX,CY) + if a$=chr$(27) then C%=-1 + +end sub + +'=================== Menu de saisi d'un caractre spcifique ================ + +SUB CHOIXCAR(C%) STATIC + +SHARED CN%,FN%,CI%,FI% +STATIC MENU$,CHY%,A$,b$,kl,re$ +A$="":kl=0:re$="":C%=0 + +debutc : + CHY% = 3 +MENU$="entre au Clavier code Ascii choix Pratique Fin " + CALL MENU(MENU$,17,15,10,CN%,FN%,CI%,FI%,0,CHY%,-1) + if CHY% = -1 then c%=-1:goto finch + ON CHY% gosub CH1,CH2,CH3,FINCH1 + if c%=-1 then goto debutc + goto finch + +CH1 : +CALL FAITUNCADRE(13,11,55,12,CN%,FN%) +COLOR CN%,FN%:LOCATE 12,14:PRINT "Entrez au Clavier votre caractre : "; +a$="" +WHile A$<>CHR$(13) and a$<>chr$(27) + Locate 12,50:pRINT A$:C$=A$:a$="" + While A$="":a$=inkey$:wend +wend +c%=asc(c$) +if a$=chr$(27) then c%=-1:return +gosub testbid +if a$="N" or a$="n" then goto CH1 +return + +ch2 : + +CALL FAITUNCADRE(13,11,55,12,CN%,FN%) +COLOR CN%,FN%:LOCATE 12,14:PRINT "Entrez le code ASCII du caractre : "; +a$="":B$=CHR$(0):re$="":kl=0 +While (a$<>chr$(27) AND a$<>chr$(13)) + A$="" + while a$="" : a$=inkey$ : wend: a= asc(a$) + if a>47 and a<57 and kl<3 then + kl=kl+1:locate 12,49+kl:print a$ + re$=re$+a$ + end if + + if (a$=b$+"K" or a$=b$+"S" or A$=CHR$(8)) and kL>0 then + locate 12,49+kl:print " " + kl=kl-1:re$=left$(re$,kl) + end if +wend +IF A$=CHR$(27) then c%=-1:return +c%=val(re$) +gosub testbid +if a$="n" or a$="N" then goto CH2 +return + +ch3: +CALL CHXCAR(C%) +IF c%=-1 then return +gosub testbid +if a$="N" or a$="n" then goto ch3 +return + +Testbid : '++++++++ test ok oui/non !!!! ++++++++++++++ + + CALL FAITUNCADRE(12,9,49,10,CN%,FN%) + LOCATE 10,12:PRINT "Caractre choisi : OK? Oui/Non" + if c%<>0 then POKE 1506,C%:poke 1507,ci%+fi%*16 + color ci%,fi% + if c%=32 then locate 10,32:print "" + if c%=0 then locate 10,32:print "" + A$=input$(1):return + +finch1 : + c%=-1 +Finch: +END SUB + +'============================================================================== +'|| Saisi d'un nom de Fichier avec Mga Controle || +'============================================================================== +sub DonneNom(N$,PH$) STATIC + +SHARED CN%,FN%,CI%,FI%,NOM$ +STATIC C$,U$,FIC$,OK% + +IF NOM$="" THEN FIC$="PASDENOM.PIC":CHY%=3 ELSE FIC$=NOM$:CHY%=4 +IF len(U$)<>2 THEN U$="A:":C$="\":FIC$="PASDENOM.PIC":CHY%=3 ELSE CHY%=4 + +CALL FAITunCADRE(5,2,76,6,CN%,FN%) +COLOR CN%,FN% +LOCATE 3,INT((80-LEN(PH$))/2):PRINT PH$ +LOCATE 4,5 :PRINT " Unit disque(tte). : " +LOCATE 5,5 :PRINT " Chemin d'accs ... : " +LOCATE 6,5 :PRINT " Nom du fichier ... : " + + +AFFICHERESULTAT : +FOR I=4 TO 6 :LOCATE I,27:PRINT SPACE$(50);:NEXT I +COLOR CI%,FI% +LOCATE 4,27:PRINT U$ +LOCATE 5,27:PRINT C$ +LOCATE 6,27:PRINT FIC$ + +CHY%=3 +MM$="Unit de disquette Rpertoire Nom du Fichier Validation Quitter " +CALL MENU(MM$,18,31,10,CN%,FN%,CI%,FI%,chx%,CHY%,-1) +IF CHY%=-1 or CHY%=5 THEN PH$="E" : GOTO FICFIN +PH$="" +ON CHY% GOTO UNITE,REPTOIRE,NONFIC,FICFIN + +REPTOIRE : + + INV$="CHEMIN ( REPETOIRE ) :" + OK%=0:M$=C$ + CALL SAISI(10,10,CN%,FN%,INV$,M$,15,50) + IF M$="" then goto afficheresultat + CALL ANTIBUG(M$,"/*|#[],;:=+<>&?^",OK%):IF OK% THEN GOTO reptoire + C$=M$ + GOTO AFFICHERESULTAT + +UNITE : + +CHY% = INSTR("ABCDEF",LEFT$(U$,1)):IF CHY%=0 THEN CHY%=7 +CALL MENU(" A: B: C: D: E: F: ?? ",4,33,10,CN%,FN%,CI%,FI%,0,CHY%,-1) +IF CHY%=-1 THEN GOTO AFFICHERESULTAT +IF CHY%<>7 THEN + U$=MID$("A:B:C:D:E:F:",(CHY%-1)*2+1,2):GOTO AFFICHERESULTAT + ELSE + +CALL FAITUNCADRE(13,11,50,12,CN%,FN%) +COLOR CN%,FN%:LOCATE 12,14:PRINT "Entrez l'Unit au Clavier : "; +a$="" +WHile A$<>CHR$(13) and a$<>chr$(27) + IF A$=>"a" and A$<="z" then A$=chr$(ASC(A$) and 95) + IF A$=>"A" and A$<="Z" then K$=A$:Locate 12,46:PRINT A$+":" + A$="" + While A$="":a$=inkey$:wend +wend +IF A$<>CHR$(27) THEN U$=K$+":" +GOTO AFFICHERESULTAT + END IF + +NONFIC : + INV$="Nom du fichier :" + OK%=0:M$=FIC$ + CALL SAISI(20,15,CN%,FN%,INV$,M$,12,12) + IF M$="" then goto afficheresultat + CALL ANTIBUG(M$,"\/*|#[],;:=+<>&?^",OK%):IF OK% THEN GOTO NONFIC + FIC$=M$:NOM$=FIC$ + GOTO AFFICHERESULTAT + +FICFIN : + +IF RIGHT$(C$,1)<>"\" then sup$="\" else sup$="" +N$=U$+C$+SUP$+FIC$ + +end sub + +' --------------------------------------------------------------------------- +' Procdure qui contrle si une chaine de caractre est valide pour des +' accs disque NOM = 8 car, EXT = 3 car, pas de car. interdit etc .... +' *********** DE DARCHE Yoann 26/01/91 ************************************** +' --------------------------------------------------------------------------- +SUB ANTIBUG(C$,B$,OK%) static + +SHARED CN%,FN% + +IF INSTR(B$,"\") = 0 THEN + IF MID$(C$,1,1)<>"\" then C$="\"+C$ + CPT%=1 + ELSE + CPT%=0 + END IF + +PT%=0:MAX%=8:CPT$="Chaine trop longue pour un Nom !" + +For I = 1 To Len(C$) + A$=MID$(C$,I,1) + IF INSTR(B$,A$)<>0 THEN M$="Caractre invalide : "+a$+" !":goto erreur + IF A$="\" Then + IF PT%<>0 AND CPT%=0 THEN BEEP:M$="Recontre d'un . sans dfinition d'une extension":GOTO ERREUR + IF CPT%=0 THEN M$="Rencontre de deux antislash !! \ sans dfinition entre !":GOTO ERREUR + CPT%=0:PT%=0:MAX%=8:CPT$="Chaine trop longue pour un Nom !":GOTO SCH + END IF + IF A$="." Then + IF PT%<>0 THEN BEEP:M$="Erreur deux points recontrs !":Goto Erreur + IF CPT%=0 THEN BEEP:M$="Dfinition d'une extention sans Nom !":goto Erreur + PT%=1:CPT%=0:MAX%=3:CPT$="Chaine trop longue pour une extention !" + Goto SCH + END IF + + CPT%=CPT%+1 + IF CPT% > MAX% THEN M$=CPT$:GOTO ERREUR + SCH : +next I:M$="" + +ERREUR : + IF M$<>"" THEN + L=LEN(M$):L=L+4:X1%=INT((80-L)/2) + CALL FAITUNCADRE(X1%,8,X1%+L,9,31,4) + LOCATE 9,X1%+2:PRINT M$ + OK%=-1:A$=INPUT$(1) + END IF +COLOR CN%,FN% + +END SUB + +'================================ Sous Programme Qui affiche le rpetoire === + +CATALOGUE : + +IF CATAC$="" THEN CATAC$="A:\*.PIC" +M$=CATAC$ +COLOR CN,FN +IDEM : + INV$="CHEMIN ( REPETOIRE ) :" + OK%=0: + CALL SAISI(10,10,CN%,FN%,INV$,M$,15,50) + IF M$="" then goto FinCata + CALL ANTIBUG(M$,"|#[]/,;=+<>&^",OK%):IF OK% THEN GOTO IDEM + m$=right$(m$,len(m$)-1) + CATAC$=M$ +CLS:FILES M$:A$=INPUT$(1) + +CALL MENU(" ENCORE FIN ",8,33,10,CN%,FN%,CI%,FI%,0,CHY%,0) +IF CHY%=1 THEN GOTO IDEM + +FINCata : +PCOPY 1,0:RETURN + +' ==================== CLS PARTICULIER ====================================== + +CLS.SPEC : + +IF COL%=0 THEN COL%=7 +CALL PFENETRE(FX1%,FY1%,FX2%,FY2%,3) +CALL CHOIXCAR(CAR%):DF%=1 +IF CAR%=-1 THEN RETURN +CALL COLORC(COL%,0,df%) +IF DF%=-1 THEN RETURN +CALL SCLS(FX1%,FY1%,FX2%,FY2%,CAR%,COL%):RETURN + +' ========================= Routine Cls ===================================== +SUB SCLS(A%,B%,C%,D%,E%,F%) STATIC + +SHARED CI%,FI% + + PCOPY 3,0 + For i=A% TO C%:FOR J=B% TO D% + CUR=J*160+I*2:POKE CUR,E%:POKE CUR+1,F% + Next j:Next I + LOCATE 25,10:COLOR CI,FI:PRINT " ETES - VOUS SURE DE VOILOIRE EFFACER CETTE PORTION [O/N] "; + XDF=0:While XDF=0 + A$=INPUT$(1) + IF A$="O" OR A$="o" THEN PCOPY 0,3:PCOPY 0,1:XDF=10 + IF A$="N" OR A$="n" THEN XDF=10 + WEND + PCOPY 0,3 + PCOPY 0,1 +END SUB + +' ====================== dfinie une fentre ================================ + +SUB PFENETRE(X1%,Y1%,X2%,Y2%,PAG%) STATIC + +Shared Ta%(),CN%,FN%,CI%,FI% + +MM$="Tout l'Ecran Fentre ":CHY%=2 +CALL MENU(MM$,12,20,12,CN%,FN%,CI%,FI%,0,CHY%,-1) +IF CHY%=-1 THEN a$=chr$(27) else A$="" +IF CHY%=1 THEN A$=Chr$(13):XA=0:YA=0:YB=23:XB=79 else ya=12:XA=39:XB=39:YB=12 + +pcopy PAG%,0 + + CU2=4006:AU2=CU2:CU1=4006:AU1=CU1:Y2=YB:X2=XB:X1=XA:Y1=YA + CO%=CN%+16*FN% + IF CN%>15 THEN CO%=CO%+112 + +While A$<>chr$(13) AND A$<>chr$(27) + + V=(XA=XB)*-2+(YA=YB)*-1 + W=(XA=XB)*-8+(YA=YB)*-4 + V= ((V=0) AND 217) + ((V<>0) AND Ta%(V)) + W= ((W=0) AND 218) + ((W<>0) AND Ta%(W)) + + CU1=XA*2+160*YA:CU2=XB*2+YB*160 + POKE AU1,VA1:POKE AU1+1,VB1 + POKE AU2,VA2:POKE AU2+1,VB2 + VA1=PEEK(CU1):VA2=PEEK(CU2):VB1=PEEK(CU1+1):VB2=PEEK(CU2+1) + POKE CU1,W:POKE CU2,V:POKE CU1+1,CO:POKE CU2+1,CO + AU1=CU1:AU2=CU2 + + + A$="" + While a$="" :A$=INKEY$:WEND + + IF A$="8" AND Y1>0 THEN Y1=Y1-1:GOTO 150 + IF A$="2" AND Y1<23 THEN Y1=Y1+1:GOTO 150 + IF A$="4" AND X1>0 THEN X1=X1-1:GOTO 150 + IF A$="6" AND X1<79 THEN X1=X1+1:GOTO 150 + IF A$=CHR$(0)+"K" AND X2>0 THEN X2=X2-1:GOTO 150 + IF A$=CHR$(0)+"M" AND X2<79 THEN X2=X2+1:GOTO 150 + IF A$=CHR$(0)+"H" AND Y2>0 THEN Y2=Y2-1 + IF A$=CHR$(0)+"P" AND Y2<24 THEN Y2=Y2+1 + 150: IF X1>X2 THEN XA=X2:XB=X1 ELSE XA=X1:XB=X2 + IF Y1>Y2 THEN YA=Y2:YB=Y1 ELSE YA=Y1:YB=Y2 + + +Wend + +X1=XA:Y1=YA:X2=XB:Y2=YB + +IF A$=CHR$(27) Then X1%=-1 + +PCOPY PAG%,0 +End sub + +' ========================== Sous prog de Copie ============================= + +sub COPYPA(XA%,YA%,XB%,YB%,DECA%) Static + +SHARED CN%,FN% +COU%=FNCO%(CN%,FN%):DEB%=-1 +'IF PAGE%=2 THEN DECA%=8192 ELSE DECA%=12288 +'---------------------------- Calcule interne ---------- +CY%=YA%:CX%=XA%:A$="":b$=chr$(0) +DIX%=XB%-XA%:DIY%=YB%-YA% +APOS1%=1:APOS2%=1:CA1%=PEEK(APOS1%):ACO1%=PEEK(APOS1%+1):CA2%=CA1%:ACO2%=ACO1% +car1%=218:car2%=217 +IF DIX%=0 THEN CAR1%=31:CAR2%=30 +IF DIY%=0 THEN + IF DIX%=0 THEN CAR1%=254:CAR2%=254 ELSE CAR1%=16:CAR2%=17 + END IF +'------------------------------------------------------- + +While A$<>chr$(13) and a$<>chr$(27) + +'------ Calcule des positions curseurs (le 2me) ------- +AX%=CX%:AY%=CY%:BX%=CX%+DIX%:BY%=CY%+DIY% +IF DEB% THEN + IF AX%<0 THEN AX%=80+AX%:CX%=AX% + IF AY%<0 THEN AY%=24+AY%:CY%=AY% + IF BX%>79 THEN BX%=BX%-80 + IF BY%>23 THEN BY%=BY%-24 + ELSE + IF AX%<0 THEN AX%=0 + IF AY%<0 THEN AY%=0 + IF BX%>79 THEN BX%=79 + IF BY%>23 THEN BY%=23 + IF BX%<0 THEN BX%=79:AX%=79-DIX%:CX%=AX% + IF BY%<0 THEN BY%=23:AY%=23-DIY%:CY%=AY% + IF AX%>79 THEN AX%=0 :BX%=DIX% :CX%=AX% + IF AY%>23 THEN AY%=0 :BY%=DIY% :CY%=AY% + END IF + +'-------- Affichage des curseurs sur l'cran ----------- + POKE APOS1%,CA1%:POKE APOS2%,CA2%:POKE APOS1%+1,ACO1%:POKE APOS2%+1,ACO2% + POSI1%=AX%*2+AY%*160:APOS1%=POSI1%:POSI2%=BX%*2+BY%*160:APOS2%=POSI2% + ACO1%=PEEK(POSI1%+1):ACO2%=PEEK(POSI2%+1):CA1%=PEEk(POSI1%):CA2%=PEEK(POSI2%) + POKE POSI1%,CAR1%:POKE POSI2%,CAR2%:POKE POSI1%+1,COU%:POKE POSI2%+1,COU% + + A$=FNTOUCHE$ + + IF A$=B$+"P" or A$="2" Then CY%=CY%+1 + IF A$=B$+"H" or A$="8" Then CY%=CY%-1 + IF A$=b$+"M" or A$="6" Then CX%=CX%+1 + If A$=B$+"K" or A$="4" Then CX%=CX%-1 + If A$="D" or A$="d" Then DEB%=NOT(DEB%) + If CX%< -DIX% THEN CX%=79 + If CX%>79 Then CX%=0 + If CY%< -DIY% Then CY%=23 + If CY%>23 Then CY%=0 + +WEND +PCOPY 3,0 + +FOR I=0 TO DIX% + FOR J=0 TO DIY% + VX%=AX%+I:VY%=AY%+J + IF ( VX%>BX% OR VY%>BY% ) AND NOT(DEB%) THEN VX%=0:VY%=24 + IF DEB% THEN + VX%= (VX% + (VX%>79)*80) + VY%= (VY% + (VY%>23)*24) + END IF + + POSR%=VX%*2+VY%*160 + POSS%=DECA%+(XA%+I)*2+(YA%+J)*160 + POKE POSR%,PEEK(POSS%):POKE POSR%+1,PEEK(POSS%+1) + NEXT J +NEXT I +OK%=-1 +COLOR CN%,FN%:LOCATE 25,1:PRINT " VOULEZ-VOUS CONSERVER CETTE TRANSFORMATION "; +While OK% + A$=FNTOUCHE$ + IF A$="O" or A$="o" then PCOPY 0,3:pcopy 0,1:OK%=0 + IF A$="N" or A$="n" then PCOPY 3,0:pcopy 0,1:OK%=0 +Wend +END SUB +' ========================== Sous prog de SAISI ============================= + +DESSIN : + +A$="" + +While (A$<>chr$(27)) + + A$="":WHILE A$="":A$=INKEY$:WEND + B$=CHR$(0):P2=P1:CM1=0:CM2=0 + + GOSUB GESTION.TOUCHE + + P1=(X-1)*2+(Y-1)*160 + AN=PEEK(P2):CALL VERIF(AN):CO=(CM2 OR CR1) :CALL CALCUL(AN,CO,V,D,NO,PRD%) + POKE P2+1,CND%:POKE P2,CC(NO) + AN=PEEK(P1):CALL VERIF(AN):CO=CM1 :CALL CALCUL(An,CO,V,D,NO,PRD%) + POKE P1+1,CID%:POKE P1,CC(NO):CR1=CM1 + +Wend:POKE P1+1,CND%:pcopy 0,3:RETURN + +'--------------------------------------------------------------------------- + +GESTION.TOUCHE : + + IF A$=B$+"M" OR A$="6" THEN X=X+1:V=0 :CM2=2:CM1=8 + IF A$=B$+"K" OR A$="4" THEN X=X-1:V=0 :CM2=8:CM1=2 + IF A$=B$+"H" OR A$="8" THEN Y=Y-1:V=-1:CM2=1:CM1=4 + IF A$=B$+"P" OR A$="2" THEN Y=Y+1:V=-1:CM2=4:CM1=1 + IF A$=CHR$(27) THEN IND%=-1 + IF A$=B$+";" THEN MEN%=-1:A$=CHR$(27) + IF A$="D" OR A$="d" THEN D=-1 + IF A$="S" OR A$="s" THEN D=0 + IF A$="X" OR A$="x" THEN CPA1%=NOT(CPA1%) + + IF Y<1 THEN Y=24 + IF X<1 THEN X=80 + IF X>80 THEN X=1 + IF Y>24 THEN Y=1 + +RETURN + + +'======================== OPTION du MODE TRACE ============================== + +SUB SAUV(NOI$,PAG%) STATIC + +SHARED NOM$,CPA1%,CPA2% + + NOM$=NOI$:N$="":PH$="NON DU FICHIER A ENREGISTRER" + CALL DonneNom(N$,PH$) + PCOPY PAG%,0 + IF PH$="E" THEN PCOPY 3,0:EXIT Sub + BSAVE N$,0,4000 + PCOPY 3,0 + IF PAG%=2 THEN CPA2%=0 ELSE CPA1%=0 + NOI$=NOM$ + +END SUB + +'================= Sub de Chargement ======================================== + +SUB RAPP(NOI$,PAG%) STATIC + +SHARED NOM$,CPA1%,CPA2%,CN%,FN%,CI%,FI% + +IF PAG%=2 THEN DECA%=8192:NP%=2 ELSE DECA%=12288:NP%=1 +CALL VERIPAGE(PAG%):IF PAG%=-1 THEN EXIT SUB +NOM$=NOI$:N$="":PH$="NON DU FICHIER A CHARGER" +CALL DonneNom(N$,PH$) +IF PH$="E" THEN EXIT Sub +BLOAD N$,DECA% +PCOPY 3,0:PCOPY 0,1 +End Sub + +'================== Sub de Vrification de sauvegarde d'une page avant Cls === +SUB VeriPage(N%) Static + SHARED CPA1%,CPA2%,NOM1$,NOM2$ + S%=0 + IF CPA1% AND N%=3 THEN CALL INTEROGE(NOM1$,N%,S%) + IF CPA2% AND N%=2 THEN CALL INTEROGE(NOM2$,N%,S%) + IF S%=-1 THEN N%=-1 +END SUB + +SUB INTEROGE(No$,NN%,S%) Static + +SHARED CN%,FN%,CI%,FI% + + IF NN%=0 OR NN%=1 OR NN%=3 THEN NP%=1 ELSE NP%=2 + CALL FaitUnCADRE(30,5,50,17,15,4) + COLOR 15,4 + LOCATE 7,32:PRINT "La Page N";NP%;" est" + LOCATE 9,33:PRINT "NON SAUVEGARDE":CPY%=1 + Reprend : + + CALL MENU("Sauver pageAnnuler CMD Ignorer ",11,34,11,CN%,FN%,CI%,FI%,0,CPY%,-1) + IF CPY%=-1 THEN Beep:Goto Reprend + IF CPY%=1 THEN Call SAUV(No$,NN%):S%=0 + IF CPY%=2 THEN S%=-1 + IF CPY%=3 THEN S%=0 + +END SUB +'========================== Dbut du programme Enfin !!! ===================== +debut : + +B$=chr$(0) + + A$=FNTOUCHE$ + GOSUB GESTION.TOUCHE + + P1=(X-1)*2+(Y-1)*160 + POKE P2+1,CMC%:CMC%=PEEK(P1+1):POKE P1+1,CID%:P2=P1 + IF A$=CHR$(27) THEN MEN%=-1 ELSE MEN%=0 + + ' Aiguillage des activite des sous gros programmes !! + + IF NOT(IND%) THEN GOSUB DESSIN :POKE P1+1,CND% :GOSUB Affiche.Ligne + IF MEN% THEN GOSUB DEBUTAZ:PCOPY 3,0:MEN%=0:GOSUB Affiche.Ligne + +GOTO Debut + +DEBUTAZ : + + GOSUB Affiche.Ligne + MM$="UtilitsFichiers Texte Dessin Config Quitter " + CALL MENUB(MM$,8,1,CN%,FN%,CI%,FI%,CHX%,-1) + IF CHX%=-1 THEN RETURN + PCOPY 0,1 + IF CHX%=6 THEN GOTO FINPROG + ON CHX% GOSUB MENU1,MENU2,MENU3,MENU4,MENU5 + IF CHY%=-3 OR CHY%=3 THEN CHx%=CHx%+1 + IF CHY%=-2 OR CHY%=2 THEN CHX%=CHX%-1 + PCOPY 1,0 +a$="":Goto DEBUTAZ + +TRAITERREUR : +PCOPY 3,0 +CALL FAITUNCADRE(29,10,51,14,15,4) +LOCATE 11,32:PRINT "Une ERREUR s'est" +LOCATE 12,36:PRINT "produite" +LOCATE 13,31:PRINT "N d'Erreur : ";:PRINT USING "###";ERR +LOCATE 14,29:PRINT "Appuyez sur une touche" +A$=input$(1) +PCOPY 3,0 +RESUME debut + +MENU1 : + +cm$=cHR$(26) +MM$=" cls Total cls fEnetrecls Spcial Copie 1"+CM$+"1 cOpie 2"+CM$+"1 Filtres " +CHY%=6 +CALL MENU(MM$,11,3,3,CN%,FN%,CI%,FI%,chx%,CHY%,-1) +IF CHY%=-1 OR CHY%=0 THEN Return +ON CHY% GOSUB Cls.T,CFLS,CLS.SPEC,COPIE11,COPIE21,FIS +RETURN + +MENU2 : +CHY%=5 +MM$=" Sauve 1 sAuve 2 Rappelle 1raPpelle 2Catalogue " +CALL MENU(MM$,10,18,3,CN%,FN%,CI%,FI%,chx%,CHY%,-1) +ON CHY% GOSUB SAUV1,SAUV2,RAPP1,RAPP2,CATALOGUE +RETURN + +MENU3 : +CHY%=3 +mm$="marge Droite marge Gauche couleurs Texte couleurs cUrseur Centre Priorit

criture Activecriture Inactive" +CALL MENU(MM$,17,31,3,CN%,FN%,CI%,FI%,chx%,CHY%,-1) +RETURN + +MENU4 : +CHY%=1 +mm$="couleurs Traccouleurs Cur. Simple Double Priorit iMage1/image2 trac Actif trac Inactif " +CALL MENU(MM$,14,41,3,CN%,FN%,CI%,FI%,chx%,CHY%,-1) +IF CHY%=-1 OR CHY%=0 THEN Return +ON CHY% GOSUB Couleur.Trace,Couleur.Cur,Simple,Double,Priorite.Trace,ImageI,Trace.A,Trace.I +IF CHY%=-1 THEN RETURN +GOSUB Affiche.Ligne +goto Menu4 + +MENU5 : +CHY%=3 +MM$="Couleur Monochrome couleur Normale couleur InverseSauve config ligne d'tat Ac.ligne d'tat in." +CALL MENU(MM$,16,51,3,CN%,FN%,CI%,FI%,chx%,CHY%,-1) +IF CHY%=-1 OR CHY%=0 THEN Return +ON CHY% GOSUB Couleur.E,Monochrome,Couleur.text,Couleur.Curs,Sauve.Config,Ligne.A,Ligne.I +IF CHY%=-1 THEN RETURN +GOSUB Affiche.Ligne +Goto Menu5 + +'======= +IN : +CALL FAITUNCADRE(20,11,60,12,CI%,FI%):LOCATE 12,25:PRINT " PAS ENCORE DISPONIBLE !!!!!! " +a$=input$(1) +RETURN + +'================== Option Menu1 =========================================== +MM$=" cls Total cls fEnetrecls Spcial Copie 1"+CM$+"1 cOpie 2"+CM$+"1 Filtres " +Cls.T : COLOR 7,0:CLS:PCOPY 0,3:PCOPY 0,1:CHY%=-1:RETURN +CFLS : Call Pfenetre(X1%,Y1%,X2%,Y2%,3) + Call SCLS(X1%,Y1%,X2%,Y2%,32,7) + RETURN +FIS : CALL Pfenetre(X1,Y1,X2,Y2,3) + IF X1=-1 THEN RETURN + B$=CHR$(26) + MM$="CAR "+B$+" COUCOU "+B$+" CARCOU "+B$+" COUCAR "+B$+" CAR QUITTER " + CHY%=5 + CALL MENU(MM$,9,28,8,CN%,FN%,CI,FI,0,CHY%,0) + IF CHY%=5 or CHY%=-1 THEN RETURN + F1%=0:F2%=0:s%=1:nc%=0:rc%=0 + IF CHY%=1 THEN F1%=-1 + IF CHY%=2 THEN F2%=-1 + IF CHY%=4 THEN F1%=-1:F2%=-1 + IF F1% THEN Call ChoixCar(RC%) ELSE Call Colorc(RC%,N,S%) + IF RC%=-1 or s%=-1 Then return + s%=1 + IF F2% THEN Call ChoixCar(NC%) ELSE Call Colorc(NC%,N,S%) + IF NC%=-1 or s%=-1 Then return + PCOPY 3,0:CALL FILTRES(RC%,NC%,F1%,F2%,X1%,Y1%,X2%,Y2%) + PCOPY 0,1:RETURN +COPIE11 : PCOPY 3,0:COLOR CN%,FN% + LOCATE 25,23:PRINT " Slectionnez la partie copier "; + CALL PFENETRE(FX1%,FY1%,FX2%,FY2%,3) + LOCATE 25,23:PRINT " Positionnez la partie copier "; + CALL COPYPA(FX1%,FY1%,FX2%,FY2%,12288):RETURN +COPIE21 : PCOPY 2,0:COLOR CN%,FN% + LOCATE 25,23:PRINT " Slectionnez la partie copier "; + CALL PFENETRE(FX1%,FY1%,FX2%,FY2%,2) + PCOPY 3,0:LOCATE 25,23:PRINT " Positionnez la partie copier "; + CALL COPYPA(FX1%,FY1%,FX2%,FY2%,8192):RETURN +'================== Option Menu2 =========================================== +SAUV1 : CALL SAUV(NOM1$,3) :RETURN +SAUV2 : PCOPY 2,0:CALL SAUV(NOM2$,2):RETURN +RAPP1 : CALL RAPP(NOM1$,3) :RETURN +RAPP2 : CALL RAPP(NOM2$,2) :RETURN +'================== Option Menu3 =========================================== +' Quedal !!! +'================== Option Menu4 =========================================== +Couleur.Trace : CALL COLORC(CND%,0,1):RETURN +Couleur.Cur : CALL COLORC(CID%,0,1):RETURN +Simple : D= 0:RETURN +Double : D=-1:RETURN +Priorite.Trace: PRD%=NOT(PRD%):RETURN +ImageI : SWAP NOM1$,NOM2$:SWAP CPA1%,CPA2%:Pcopy 2,0:PCOPY 3,2:pcopy 0,3:PCOPY 0,1:CHY%=-1:RETURN +Trace.A : IND=0:RETURN +Trace.I : Ind=-1:RETURN +'==================== Option Menu5 ========================================= +Monochrome : CN%=7 :FN%=0:CI%=0 :FI%=7:CHY%=-1:RETURN +Couleur.E : CN%=11:FN%=1:CI%=14:FI%=4:CHY%=-1:RETURN +Couleur.TEXT : CALL COLORC(CN%,FN%,0):RETURN +Couleur.Curs : CALL COLORC(CI%,FI%,0):RETURN +Ligne.A : LIN%=0 :RETURN +Ligne.I : LIN%=-1:RETURN + +'================== Affiche la Ligne d'tat ================================ +Affiche.Ligne : +Color CN%,FN%:LOCATE 25,1:PRINT SPACE$(78); +IF LIN THEN RETURN +Locate 25,1:PRINT "Ecriture "; +Locate 25,31:PRINT "Dessin "; +Locate 25,10 +IF INE% THEN PRINT "INACTIVE"; ELSE PRINT " ACTIVE "; +IF PRE% THEN Locate 25,19:PRINT "PRIORITAIRE"; +Locate 25,38 +IF IND% THEN PRINT "INACTIF"; ELSE PRINT " ACTIF "; +IF PRD% THEN LOCATE 25,46:PRINT "PRIORITAIRE"; +Locate 25,58 +IF D THEN PRINT "DOUBLE"; ELSE PRINT "SIMPLE"; +POKE 3994,42:POKE 3995,CNT%:POKE 3998,42:POKE 3999,CND% +RETURN + +'================================ FIN ======================================= +FINPROG : +COLOR 7,0 +IF NOT(CPA1%) AND NOT(CPA2%) THEN CLS:PRINT "Vous avez le bonjour de "+Yoann$:END + +PCOPY 1,0 +A$=input$(1) +PCOPY 2,0 +A$=input$(1) +PCOPY 3,0 +A$=input$(1) +END + +'================================= SAUVE Les configurations ================= +SAUVE.CONFIG : +OPEN "O",#1,"CREAPAGE.CFG" +WRITE #1,CN%,FN%,CI%,FI%,LIN% +Close:RETURN +'================================= RAPPELLE Configurations ================== +RAPP.CONFIG : +OPEN "I",#1,"CREAPAGE.CFG":INPUT #1,A$,B$,c$,d$,e$:CLOSE +CN%=VAL(A$):FN%=VAL(B$):CI%=val(C$):FI%=VAL(D$):LIN%=VAL(E$):RETURN + + + diff --git a/CREAPAGE.EXE b/CREAPAGE.EXE new file mode 100644 index 0000000000000000000000000000000000000000..255319005ff450c6791b95c9d86bc05cb63ab01f GIT binary patch literal 37008 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 H- pour valider, options , Votre Trac sera : ";:locate 1,1 +pcopy 0,3 +END SUB + + diff --git a/CUB.BAS b/CUB.BAS new file mode 100644 index 0000000000000000000000000000000000000000..964dc926c4d2f243ac0e882ab3fa002364dfcd89 GIT binary patch literal 7677 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"" THEN 1020 ELSE C=POINT(X,Y):C1=POINT(Z+440,Y):C2=POINT(X,Z+200):PSET(X,Y):PSET(X,Z+200):PSET(Z+440,Y):PSET(X,Y),C:PSET(X,Z+200),C1:PSET(Z+440,Y),C2:GOTO 1010 +1020 IF A$="a" OR A$="A" THEN P=1:LOCATE 15,58:PRINT "VUE DE FACE ":GOTO 1010 +1021 IF A$="z" OR A$="Z" THEN P=2:LOCATE 15,58:PRINT "VUE DE GAUCHE":GOTO 1010 +1022 IF A$="e" OR A$="E" THEN P=3:LOCATE 15,58:PRINT "VUE DE DESSUS":GOTO 1010 +1023 IF A$="l" OR A$="L" THEN 2000 +1024 IF A$="i" OR A$="I" THEN DX=SX:DY=SY:DZ=SZ:SZ=PZ:Z=PZ:X=PX:Y=PY:SX=PX:SY=PY:PX=DX:PY=DY:PZ=DZ:DZ=0:DY=0:DX=0:GOTO 1010 +1025 IF A$="P" OR A$="p" THEN 2050 +1026 IF A$="D" OR A$="d" THEN 2060 +1027 IF A$="H" OR A$="h" THEN 3000 +1028 IF A$="c" OR A$="C" THEN 2100 +1029 IF A$="T" OR A$="t" THEN 2150 +1090 IF V=1 THEN 2000 +1100 ON P GOTO 1101,1160,1210 +1101 IF A$="6" THEN X=X+N +1102 IF A$="4" OR A$="|" THEN X=X-N +1103 IF A$="2" OR A$="`" THEN Y=Y+N +1104 IF A$="8" OR A$="~" THEN Y=Y-N +1119 IF X<=0 THEN X=419 +1120 IF X>=420 THEN X=1 +1130 IF Y<=0 THEN Y=199 +1140 IF Y>=200 THEN Y=1 +1150 GOTO 1010 +1160 IF A$="6" THEN Z=Z+N +1162 IF A$="4" OR A$="|" THEN Z=Z-N +1163 IF A$="2" OR A$="`" THEN Y=Y+N +1164 IF A$="8" OR A$="~" THEN Y=Y-N +1169 IF Z<=0 THEN Z=199 +1170 IF Z>=200 THEN Z=1 +1180 IF Y<=0 THEN Y=199 +1190 IF Y>=200 THEN Y=1 +1200 GOTO 1010 +1210 IF A$="6" THEN X=X+N +1211 IF A$="4" OR A$="|" THEN X=X-N +1212 IF A$="2" OR A$="`" THEN Z=Z+N +1213 IF A$="8" OR A$="~" THEN Z=Z-N +1219 IF X<=0 THEN X=419 +1220 IF X>=420 THEN X=1 +1230 IF Z<=0 THEN Z=199 +1240 IF Z>=200 THEN Z=1 +1260 GOTO 1010 +2000 IF V<>0 THEN IF A<>1 THEN 2002 ELSE 2004 +2001 LOCATE 16,56:PRINT " pour le 1er Point":V=1:GOTO 1010 +2002 IF A$=" " THEN A$="":A=1 :GOTO 2003 ELSE 1100 +2003 PX=X:PY=Y:PZ=Z:SX=X:SY=Y:SZ=Z:LOCATE 16,56:PRINT " pour valider " +2004 IF A$=" " THEN A=0:LY%(L,1)=PY:LY%(L,2)=SY:LX%(L,1)=PX:LX%(L,2)=SX:LZ%(L,1)=PZ:LZ%(L,2)=SZ:V=0:L=L+1:LOCATE 16,56:PRINT " ":GOTO 1010 +2005 IF SZ=Z AND SY=Y AND SX= X THEN 1100 +2010 LINE (PX,PY)-(SX,SY),0:LINE (PX,PZ+200)-(SX,SZ+200),0:LINE(PZ+440,PY)-(SZ+440,SY),0:SX=X:SY=Y:SZ=Z:LINE(PX,PY)-(X,Y):LINE(PX,PZ+200)-(X,Z+200):LINE(PZ+440,PY)-(Z+440,Y):GOTO 1010 +2050 LOCATE 18,56:PRINT "X=";X;"Y=";Y;"Z=";Z +2051 LOCATE 17,56:INPUT "X= ",Q:IF Q<=0 OR Q>=420 THEN BEEP:GOTO 2050 ELSE X=Q +2052 LOCATE 17,56:INPUT "Y= ",Q:IF Q<=0 OR Q>=200 THEN BEEP:GOTO 2050 ELSE Y=Q +2053 LOCATE 17,56:INPUT "Z= ",Q:IF Q<=0 OR Q>=200 THEN BEEP:GOTO 2050 ELSE Z=Q +2054 LOCATE 18,56:PRINT " ":LOCATE 17,56:PRINT SPACE$(14);:GOTO 1010 +2060 LOCATE 17,56:INPUT "N. DE POINT ",N:IF N=0 THEN N=1 +2061 LOCATE 19,56:PRINT "N=";N:LOCATE 17,56:PRINT SPACE$(14); +2062 GOTO 1010 +2100 LOCATE 17,56:INPUT "Arrte : ",AR +2101 LOCATE 17,56:PRINT SPACE$(24); +2102 LOCATE 17,56:INPUT "pos x,y,z ",GX,GY,GZ +2103 LOCATE 17,56:PRINT SPACE$(24); +2104 IF AR+GX>420 THEN BEEP :GOTO 2100 +2105 IF AR+GY>200 THEN BEEP :GOTO 2100 +2106 IF AR+GZ>200 THEN BEEP :GOTO 2100 +2107 LX%(L,1)=GX:LY%(L,1)=GY:LZ%(L,1)=GZ:LX%(L,2)=GX:LY%(L,2)=GY:LZ%(L,2)=GZ+AR:L=L+1 +2108 LX%(L,1)=GX:LY%(L,1)=GY:LZ%(L,1)=GZ:LX%(L,2)=GX:LY%(L,2)=GY+AR:LZ%(L,2)=GZ:L=L+1 +2109 LX%(L,1)=GX:LY%(L,1)=GY+AR:LZ%(L,1)=GZ:LX%(L,2)=GX+AR:LY%(L,2)=GY+AR:LZ%(L,2)=GZ:L=L+1 +2110 LX%(L,1)=GX:LY%(L,1)=GY+AR:LZ%(L,1)=GZ:LX%(L,2)=GX:LY%(L,2)=GY+AR:LZ%(L,2)=GZ+AR:L=L+1 +2111 LX%(L,1)=GX:LY%(L,1)=GY:LZ%(L,1)=GZ:LX%(L,2)=GX+AR:LY%(L,2)=GY:LZ%(L,2)=GZ:L=L+1 +2112 LX%(L,1)=GX+AR:LY%(L,1)=GY+AR:LZ%(L,1)=GZ+AR:LX%(L,2)=GX+AR:LY%(L,2)=GY+AR:LZ%(L,2)=GZ:L=L+1 +2113 LX%(L,1)=GX+AR:LY%(L,1)=GY+AR:LZ%(L,1)=GZ+AR:LX%(L,2)=GX+AR:LY%(L,2)=GY:LZ%(L,2)=GZ+AR:L=L+1 +2114 LX%(L,1)=GX+AR:LY%(L,1)=GY+AR:LZ%(L,1)=GZ+AR:LX%(L,2)=GX:LY%(L,2)=GY+AR:LZ%(L,2)=GZ+AR:L=L+1 +2115 LX%(L,1)=GX+AR:LY%(L,1)=GY:LZ%(L,1)=GZ:LX%(L,2)=GX+AR:LY%(L,2)=GY:LZ%(L,2)=GZ+AR:L=L+1 +2116 LX%(L,1)=GX+AR:LY%(L,1)=GY:LZ%(L,1)=GZ:LX%(L,2)=GX+AR:LY%(L,2)=GY+AR:LZ%(L,2)=GZ:L=L+1 +2117 LX%(L,1)=GX:LY%(L,1)=GY:LZ%(L,1)=GZ+AR:LX%(L,2)=GX:LY%(L,2)=GY+AR:LZ%(L,2)=GZ+AR:L=L+1 +2118 LX%(L,1)=GX:LY%(L,1)=GY:LZ%(L,1)=GZ+AR:LX%(L,2)=GX+AR:LY%(L,2)=GY:LZ%(L,2)=GZ+AR:L=L+1 +2119 LINE (GX,GY)-(GX+AR,GY+AR),1,B:LINE (GX,GZ+200)-(GX+AR,GZ+AR+200),1,B:LINE (GZ+440,GY)-(GZ+AR+440,GY+AR),1,B +2130 GOTO 1010 +2150 LOCATE 17,56:INPUT "l. PETIT COTE ",M:M=INT(M) +2151 LOCATE 17,56:PRINT SPACE$(24); +2152 LOCATE 17,56:INPUT "pos x,y,z",GX,GY,GZ +2153 LOCATE 17,56:PRINT SPACE$(24); +2154 LOCATE 17,56:INPUT "PROFONDEUR pt cot",D +2155 LOCATE 17,56:PRINT SPACE$(24); +2156 IF GX<0 OR GY<0 OR GZ<0 THEN 2150 +2157 IF GZ+D>=200 OR GX+D>=440 OR GY+D>=200 THEN GOTO 2150 +2158 LOCATE 17,56:INPUT "l. GRAND COTE ",P:P=INT(P) +2159 LOCATE 17,56:PRINT SPACE$(24); +2160 LOCATE 17,56:INPUT "pos x,y,z",G1X,G1Y,G1Z +2161 LOCATE 17,56:PRINT SPACE$(24); +2162 LOCATE 17,56:INPUT "PROFONDEUR pt cot",D1 +2163 LOCATE 17,56:PRINT SPACE$(24); +2164 IF G1X<0 OR G1Y<0 OR G1Z<0 THEN 2158 +2165 IF G1Z+D1>=200 OR G1X+D1>=440 OR G1Y+D1>=200 THEN 2158 +2166 LX%(L,1)=GX:LY%(L,1)=GY:LZ%(L,1)=GZ:LX%(L,2)=GX:LY%(L,2)=GY:LZ%(L,2)=GZ+D:L=L+1 +2167 LX%(L,1)=GX:LY%(L,1)=GY:LZ%(L,1)=GZ:LX%(L,2)=GX+M:LY%(L,2)=GY:LZ%(L,2)=GZ:L=L+1 +2168 LX%(L,1)=GX+M:LY%(L,1)=GY:LZ%(L,1)=GZ+D:LX%(L,2)=GX+M:LY%(L,2)=GY:LZ%(L,2)=GZ:L=L+1 +2169 LX%(L,1)=GX+M:LY%(L,1)=GY:LZ%(L,1)=GZ+D:LX%(L,2)=GX:LY%(L,2)=GY:LZ%(L,2)=GZ+D:L=L+1 +2170 LX%(L,1)=G1X:LY%(L,1)=G1Y:LZ%(L,1)=G1Z:LX%(L,2)=G1X:LY%(L,2)=G1Y:LZ%(L,2)=G1Z+D1:L=L+1 +2171 LX%(L,1)=G1X:LY%(L,1)=G1Y:LZ%(L,1)=G1Z:LX%(L,2)=G1X+P:LY%(L,2)=G1Y:LZ%(L,2)=G1Z:L=L+1 +2172 LX%(L,1)=G1X+P:LY%(L,1)=G1Y:LZ%(L,1)=G1Z+D1:LX%(L,2)=G1X+P:LY%(L,2)=G1Y:LZ%(L,2)=G1Z:L=L+1 +2173 LX%(L,1)=G1X+P:LY%(L,1)=G1Y:LZ%(L,1)=G1Z+D1:LX%(L,2)=G1X:LY%(L,2)=G1Y:LZ%(L,2)=G1Z+D1:L=L+1 +2174 LX%(L,1)=GX:LY%(L,1)=GY:LZ%(L,1)=GZ:LX%(L,2)=G1X:LY%(L,2)=G1Y:LZ%(L,2)=G1Z:L=L+1 +2175 LX%(L,1)=GX+M:LY%(L,1)=GY:LZ%(L,1)=GZ:LX%(L,2)=G1X+P:LY%(L,2)=G1Y:LZ%(L,2)=G1Z:L=L+1 +2176 LX%(L,1)=GX+M:LY%(L,1)=GY:LZ%(L,1)=GZ+D:LX%(L,2)=G1X+P:LY%(L,2)=G1Y:LZ%(L,2)=G1Z+D1:L=L+1 +2177 LX%(L,1)=GX:LY%(L,1)=GY:LZ%(L,1)=GZ+D:LX%(L,2)=G1X:LY%(L,2)=G1Y:LZ%(L,2)=G1Z+D1:L=L+1 +2178 LINE (GX,GY)-(GX+M,GY),1:LINE(G1X,G1Y)-(G1X+P,G1Y),1:LINE(GX,GY)-(G1X,G1Y),1:LINE (GX+M,GY)-(G1X+P,G1Y),1 +2179 LINE (GZ+440,GY)-(GZ+440+D,GY),1:LINE(G1Z+440,G1Y)-(G1Z+D1+440,G1Y),1:LINE (GZ+440,GY)-(G1Z+440,G1Y),1:LINE (GZ+440+D,GY)-(G1Z+440+D1,G1Y),1 +2180 LINE (GX,GZ+200)-(GX+M,GZ+200),1,,21845:LINE -(GX+M,GZ+200+D),1,,21845:LINE -(GX,GZ+D+200),1,,21845:LINE -(GX,GZ+200),1,,21845 +2181 LINE (G1X,G1Z+200)-(G1X+P,G1Z+200),1:LINE -(G1X+P,G1Z+200+D1),1:LINE -(G1X,G1Z+D1+200),1:LINE -(G1X,G1Z+200),1 +2199 GOTO 1010 +3000 CLS:FOR I=1 TO L-1 +3010 P1X=LX%(I,1)+(.5*LZ%(I,1)/1.414):P1Y=LY%(I,1)+(.5*LZ%(I,1)/1.414) +3020 P2X=LX%(I,2)+(.5*LZ%(I,2)/1.414):P2Y=LY%(I,2)+(.5*LZ%(I,2)/1.414) +3030 LINE (P1X+80,P1Y+50)-(P2X+80,P2Y+50),1:NEXT +3040 A$=INPUT$(1):IF A$=CHR$(27) THEN END +3041 CLS:LINE (0,0)-(420,200),1,B:LINE(440,0)-(640,200),1,B:LINE (0,200)-(420,400),1,B:P=1:X=155:Y=100:Z=50:LOCATE 15,58:PRINT "VUE DE FACE" +3050 FOR I=1 TO L-1 +3060 LINE(LX%(I,1),LY%(I,1))-(LX%(I,2),LY%(I,2)),1:LINE (LZ%(I,1)+440,LY%(I,1))-(LZ%(I,2)+440,LY%(I,2)),1:LINE (LX%(I,1),LZ%(I,1)+200)-(LX%(I,2),LZ%(I,2)+200),1 +3065 NEXT :GOTO 1010 + \ No newline at end of file diff --git a/CV-AR-RO.BAS b/CV-AR-RO.BAS new file mode 100644 index 0000000..35d5343 --- /dev/null +++ b/CV-AR-RO.BAS @@ -0,0 +1,35 @@ +0 CLS:COLOR 13 +1000 INPUT " Votre nombre en Decimal (SANS VIRGULE) :",DE +1002 IF DE<>INT(DE) THEN COLOR 30:PRINT "S A N S V I R G U L E .. ":COLOR 13:GOTO 1000 +1003 IF DE<=0 OR DE >=4999 THEN COLOR 30:PRINT DE;"??";:IF DE<=0 THEN PRINT " est < ou = 0 !!!" ELSE IF DE >=4999 THEN PRINT " est > ou = 4999" ELSE ELSE 1010 +1004 COLOR 13:GOTO 1000 +1010 REM +1020 IF DE >=1000 AND M<=2 THEN M=M+1:R$=R$+"M":DE=DE-1000:GOTO 1020 +1021 IF DE >=999 AND M<=2 THEN R$=R$+"IM":DE=DE-999:M=M+1 +1022 IF DE >=995 AND M<=2 THEN R$=R$+"VM":DE=DE-995:M=M+1 +1023 IF DE >=990 AND M<=2 THEN R$=R$+"XM":DE=DE-990:M=M+1 +1024 IF DE >=950 AND M<=2 THEN R$=R$+"LM":DE=DE-950:M=M+1 +1025 IF DE >=900 AND M<=2 THEN R$=R$+"CM":DE=DE-900:M=M+1 +1026 IF DE >=500 AND D<=2 THEN R$=R$+"D":DE=DE-500:D=D+1:GOTO 1025 +1027 IF DE >=499 AND D<=2 THEN R$=R$+"ID":DE=DE-499:D=D+1 +1028 IF DE >=495 AND D<=2 THEN R$=R$+"VD":DE=DE-495:D=D+1 +1029 IF DE >=490 AND D<=2 THEN R$=R$+"XD":DE=DE-490:D=D+1 +1030 IF DE >=100 AND C<=2 THEN R$=R$+"C":DE=DE-100:C=C+1:GOTO 1030 +1031 IF DE >=99 AND C<=2 THEN R$=R$+"IC":DE=DE-99:C=C+1 +1032 IF DE >=95 AND C<=2 THEN R$=R$+"VC":DE=DE-95:C=C+1 +1033 IF DE >=90 AND C<=2 THEN R$=R$+"XC":DE=DE-90:C=C+1 +1035 IF DE >=50 AND L<=2 THEN R$=R$+"L":DE=DE-50: L=L+1:GOTO 1035 +1036 IF DE >=49 AND L<=2 THEN R$=R$+"IL":DE=DE-49:L=L+1 +1037 IF DE >=45 AND L<=2 THEN R$=R$+"VL":DE=DE-45:L=L+1 +1038 IF DE >=40 AND L<=2 THEN R$=R$+"XL":DE=DE-40:L=L+1 +1040 IF DE >=10 AND X<=2 THEN R$=R$+"X":DE=DE-10: X=X+1:GOTO 1040 +1041 IF DE >=9 AND X<=2 THEN R$=R$+"IX":DE=DE-9:X=X+1 +1045 IF DE >=5 AND V<=2 THEN R$=R$+"V":DE=DE-5: V=V+1:GOTO 1045 +1046 IF DE >=4 AND V<=2 THEN R$=R$+"IV":DE=DE-4:V=V+1 +1050 IF DE >=1 THEN R$=R$+"I":DE=DE-1:GOTO 1050 +1060 COLOR 14:L=LEN(R$):LO=(80-(L*2))/2:A$="":B$="":C$="":D$="":E$="" +1061 LOCATE 12,LO:PRINT A$;:FOR I=1 TO L*2+1:PRINT E$;:NEXT :PRINT B$ +1062 LOCATE 13,LO:PRINT " ";:COLOR 28:FOR I=1 TO L:PRINT MID$(R$,I,1)+" ";:NEXT :COLOR 14:PRINT " +1063 LOCATE 14,LO:PRINT C$;:FOR I=1 TO L*2+1:PRINT E$;:NEXT :PRINT D$ +1064 COLOR 2 + \ No newline at end of file diff --git a/DATABASE.BAS b/DATABASE.BAS new file mode 100644 index 0000000..c1e2953 --- /dev/null +++ b/DATABASE.BAS @@ -0,0 +1,468 @@ +10 REM ************************************************************************* +20 REM ** Programme de stockage de produits + tri + recherche ** +30 REM ** Achev le 21/08/1989 N4 Ver 1.1 ** +40 REM ** De DARCHE Yoann Tel 69-39-51-26 ** +50 REM ************************************************************************* +60 GOSUB 4460 +70 SCREEN 2:SCREEN 0:CLS:CLEAR:KEY OFF +80 KEY 10,CHR$(219)+CHR$(13) +90 ON ERROR GOTO 4180 +100 COLOR 13 +110 R$="":F$="":U$="":PRINT "UNITE UTILISEE : (A-B-C) " +120 A$=INKEY$:IF A$="" THEN 120 +130 IF A$="a" OR A$="A" THEN U$="A:" +140 IF A$=CHR$(27) THEN 560 +150 IF A$="b" OR A$="B" THEN U$="B:" +160 IF A$="c" OR A$="C" THEN U$="C:":GOTO 190 +170 IF U$="" THEN COLOR 30:BEEP:PRINT A$;" n'est pas une unite ... ":COLOR 13:GOTO 110 +180 GOTO 240 +190 PRINT:PRINT +200 COLOR 2:INPUT "Quelle repertoire (sans les /) ";R$ +210 IF LEN(R$)>8 THEN BEEP:COLOR 30:PRINT "trop long ....":GOTO 200 +220 IF R$="" THEN 240 +230 U$=U$+"/"+R$+"/" +240 COLOR 4:INPUT "Nom du fichier ",F$ +250 U$=U$+F$ +260 PRINT:PRINT +270 COLOR 10:PRINT "Nom d'acces = ";U$ +280 COLOR 14:PRINT " Oui ou Non" +290 A$=INKEY$:IF A$="" THEN 290 +300 IF A$="n" OR A$="N" THEN 70 +310 IF A$="o" OR A$="O" THEN 330 +320 BEEP:GOTO 290 +330 OPEN "I",#1,U$ +340 COLOR 15:IF EOF(1) THEN PRINT "NOUVEAU FICHIER ...." ELSE 370 +350 CLOSE:COLOR 11 +360 FOR U=1 TO 1000:NEXT +370 CLOSE:DIM N!(500),N$(500),C$(500),C!(500),T$(500),D!(500),P!(500),E$(500),L$(500),D$(500),R(50) +380 H=0:CLS:REM ====================================== debut PROGRAMME ============ +390 OPEN "I",#1,U$ +400 IF EOF(1) THEN 450 +410 H=H+1 +420 INPUT #1,N$,N$(H),C$(H),C$,T$(H),D$,P$,E$(H),L$(H),D$(H) +430 N!(H)=VAL(N$):C!(H)=VAL(C$):D!(H)=VAL(D$):P!(H)=VAL(P$) +440 GOTO 400 +450 CLOSE +460 PRINT "Il y a";H;"produits enregistrs ":A$=INPUT$(1) +470 COLOR 11,0:CLS +480 LOCATE 11,9:PRINT "Ŀ" +490 LOCATE 12,9:PRINT " ";:COLOR 14,6:PRINT "-1- Listing -2- Modifications -3- recherches -ESC- Fin";:COLOR 11,0:PRINT " Ŀ" +500 LOCATE 13,9:PRINT " " +510 LOCATE 14,12:PRINT "" +520 A$=INKEY$:IF A$="" THEN 520 +530 IF A$="1" OR A$="&" THEN 590 +540 IF A$="2" OR A$="`" OR A$="" THEN 1990 +550 IF A$=CHR$(39) OR A$="3" THEN 3350 +560 IF A$=CHR$(27) THEN CLS:CLEAR:PRINT :PRINT "SALUT ....... Programme de DARCHE Yoann 1989 ...... ":END +570 GOTO 520 +580 END:REM ******************************************** Listing ************** +590 CLS +600 COLOR 4:LOCATE 1,35:PRINT ""+STRING$(14,196)+"" +610 LOCATE 2,33:PRINT ""+STRING$(12,196)+" " +620 LOCATE 3,33:PRINT " ";:COLOR 11,1:PRINT "LES LISTINGS";:COLOR 4,0:PRINT " " +630 LOCATE 4,33:PRINT "";STRING$(14,196);"" +640 COLOR 9:LOCATE 9,31:PRINT "";STRING$(16,196);"":FOR I=1 TO 5:LOCATE ,31:PRINT "";:LOCATE ,48:PRINT "":NEXT :LOCATE ,31:PRINT "";STRING$(16,196);"" +650 COLOR 13:LOCATE 10,33:PRINT "-1- TOUT " +660 LOCATE 12,33:PRINT "-2- INTERVAL" +670 LOCATE 14,33:PRINT "-3- CONDITION" +680 LOCATE 25,1:COLOR 14,6:PRINT " pour retour au menu principal MENU DES LISTINGS ";:COLOR 10,0:LOCATE 10 +690 A$=INKEY$:IF A$="" THEN 690 +700 IF A$="1" OR A$="&" THEN 760 +710 IF A$="2" OR A$="" THEN 970 +720 IF A$="3" THEN 1320 +730 IF A$=CHR$(27) GOTO 470 +740 BEEP:GOTO 690 +750 REM ....................................................................... +760 COLOR 10:GOSUB 1920 +770 IF H<=20 THEN 780 ELSE 840 +780 FOR I=1 TO H:LOCATE 3+I,1:PRINT " "; +790 LOCATE I+3,2:PRINT N!(I):LOCATE I+3,11:PRINT N$(I):LOCATE I+3,15:PRINT C$(I) +800 LOCATE I+3,19:PRINT C!(I):LOCATE I+3,27:PRINT T$(I):LOCATE I+3,37:PRINT D!(I):LOCATE I+3,51:FE=I:GOSUB 1950:PRINT P$ +810 FE=I:GOSUB 4190:LOCATE I+3,44:PRINT VA:LOCATE I+3,54:PRINT E$(I):LOCATE I+3,57:PRINT L$(I):LOCATE I+3,65:PRINT D$(I):NEXT +820 LOCATE I+3,1:PRINT "" +830 A$=INPUT$(1):GOTO 590 +840 LM=INT(H/21)+1:Z=0:LOCATE 25,1:COLOR 14,6:PRINT " MENU des LISTINGS : TOUT FIN ";+CHR$(24)+" "+CHR$(25)+" ";:COLOR 10,0 +850 FOR I=1+(20*Z) TO 20+(20*Z):W=I-(Z*20) +860 LOCATE W+3,1:PRINT " "; +870 LOCATE W+3,2:PRINT N!(I):LOCATE W+3,11:PRINT N$(I):LOCATE W+3,15:PRINT C$(I) +880 LOCATE W+3,19:PRINT C!(I):LOCATE W+3,27:PRINT T$(I):LOCATE W+3,37:PRINT D!(I):LOCATE W+3,51:FE=I:GOSUB 1950:PRINT P$ +890 FE=I:GOSUB 4190:LOCATE W+3,44:PRINT VA:LOCATE W+3,54:PRINT E$(I):LOCATE W+3,57:PRINT L$(I):LOCATE W+3,65:PRINT D$(I):NEXT +900 LOCATE W+4,1:PRINT "";:LOCATE 1,1 +910 A$=INKEY$:IF A$="" THEN 910 +920 IF A$=CHR$(27) GOTO 590 +930 IF A$="2" OR A$="`" OR A$=CHR$(0)+"P" THEN Z=Z-1:IF Z<0 THEN Z=LM-1:GOTO 850 ELSE 850 +940 IF A$="8" OR A$="~" OR A$=CHR$(0)+"H" THEN Z=Z+1:IF Z>LM-1 THEN Z=0:GOTO 850 ELSE 850 +950 BEEP:GOTO 910 +960 REM ............................................... interval .............. +970 COLOR 3:CLS:INPUT " Depart (1 pour debut 0 pour retour ) ",DE +980 IF DE=0 THEN 590 +990 INPUT " FIN ( 1 pour fin 0 pour retour ) ",AR +1000 IF AR=0 THEN 590 +1010 IF DE=1 AND AR=1 THEN BEEP:PRINT "vous tes illogique il y a l'option 1 du menu LISTING pour obtenir tout la liste":A$=INPUT$(1):GOTO 760 +1020 IF DE=AR THEN 1810 +1030 IF DE<0 OR AR<0 THEN BEEP :PRINT"chiffre ngatif ... ":A$=INPUT$(1):GOTO 970 +1040 IF DE>=N!(H) THEN I=H:GOTO 1850 +1050 IF AR>=N!(H) THEN AR=1 +1060 IF DE<=N!(1) THEN DE=1 +1070 IF DE=1 THEN 1120 +1080 IF DE=AR AND DE=1 THEN 1010 +1090 FOR I=1 TO H +1100 IF DE<=N!(I) THEN DE=I:GOTO 1120 +1110 NEXT I +1120 IF AR=1 THEN AR=H:GOTO 1160 +1130 FOR I=1 TO H +1140 IF AR<=N!(I) THEN AR=I:GOTO 1160 +1150 NEXT I +1160 GOSUB 1920 +1170 T=AR-DE+1:DE=DE-1 +1180 LM=INT(T/21)+1:Z=0:LOCATE 25,1:COLOR 14,6:PRINT " MENU des LISTINGS : INTERVAL ... FIN ";+CHR$(24)+" "+CHR$(25)+" ";:COLOR 12,0 +1190 FOR I=1+(20*Z) TO 20+(20*Z):W=I-(Z*20) +1200 LOCATE W+3,1:PRINT " "; +1210 LOCATE W+3,2:PRINT N!(I+DE):LOCATE W+3,11:PRINT N$(I+DE):LOCATE W+3,15:PRINT C$(I+DE) +1220 LOCATE W+3,19:PRINT C!(I+DE):LOCATE W+3,27:PRINT T$(I+DE):LOCATE W+3,37:PRINT D!(I+DE):LOCATE W+3,51:FE=I+DE:GOSUB 1950:PRINT P$ +1230 FE=I+DE:GOSUB 4190:LOCATE W+3,44:PRINT VA:LOCATE W+3,54:PRINT E$(I+DE):LOCATE W+3,57:PRINT L$(I+DE):LOCATE W+3,65:PRINT D$(I+DE) +1240 IF I>=T THEN 1250 ELSE NEXT I +1250 LOCATE W+4,1:PRINT "";:LOCATE 1,1 +1260 A$=INKEY$:IF A$="" THEN 1260 +1270 IF A$=CHR$(27) GOTO 590 +1280 IF A$="2" OR A$="`" OR A$=CHR$(0)+"P" THEN CLS:GOSUB 1920:GOSUB 1970 :Z=Z-1:IF Z<0 THEN Z=LM-1:GOTO 1190 ELSE 1190 +1290 IF A$="8" OR A$="~" OR A$=CHR$(0)+"H" THEN CLS:GOSUB 1920:GOSUB 1970:Z=Z+1:IF Z>LM-1 THEN Z=0:GOTO 850 ELSE 850 +1300 BEEP:GOTO 1260 +1310 REM ....................................................................... +1320 CLS:LOCATE 25,1:COLOR 14,6:PRINT " <*> pour retour LISTING A CONDITIONS .... ";:COLOR 13,0:LOCATE 5,1 +1330 INPUT "INITIAL DE LOT .. ",C$ +1340 IF C$="$" OR C$="*" THEN 590 +1350 INPUT "DOSE ............ ",D$ +1360 IF D$="$" OR D$="*" THEN 590 ELSE D!=VAL(D$) +1370 INPUT "% ............... ",P$ +1380 IF P$="$" OR P$="*" THEN 590 ELSE P!=VAL(P$) +1390 INPUT " 1 protec 2 actif ",H$ +1400 IF H$="$" OR H$="*" THEN 590 +1410 IF H$="1" THEN U=-1 ELSE U=1 +1420 IF H$="" THEN U=0 +1430 INPUT "ANIMAL R/S/G .... ",E$ +1440 IF E$="*" OR E$="$" THEN 590 +1450 INPUT "DATE MINIMAL .... ",DM$ +1460 IF DM$="*" OR DM$="$" THEN 590 +1470 D1=VAL(DM$) +1480 INPUT "DATE MAXIMAL .... ",DM$ +1490 IF DM$="*" OR DM$="$" THEN 590 +1500 D2=VAL(DM$) +1510 CLS:PRINT "PATIENTEZ ............" +1520 IF P$="" THEN P!=-1 +1530 IF P!=0 THEN P!=.001 +1540 R(1)=0:O=0:FOR I=1 TO H +1550 IF C$<>"" THEN IF C$<>C$(I) THEN GOTO 1660 +1560 IF D!<>0 THEN IF D!<>D!(I) THEN 1660 +1570 IF P!<>-1 THEN IF P!<>ABS(P!(I)) THEN 1660 +1580 IF U <> 0 THEN 1590 ELSE 1610 +1590 IF U=1 THEN IF P!(I)<0 THEN 1660 +1600 IF U=-1 THEN IF P!(I)>0 THEN 1660 +1610 IF E$<>"" THEN IF E$<>E$(I) THEN 1660 +1620 IF D1<>0 THEN 1650 +1630 DA$=MID$(D$(I),3,2):D0=VAL(DA$) +1640 IF D0D2 THEN 1660 +1650 O=O+1:R(O)=I +1660 NEXT I:IF R(1)=0 THEN PRINT "desol aucun produit ne correspond ...":A$=INPUT$(1):GOTO 590 +1670 COLOR 12:GOSUB 1920 +1680 LM=INT(O/21)+1:Z=0:LOCATE 25,1:COLOR 14,6:PRINT " MENU des LISTINGS : CONDITION FIN ";+CHR$(24)+" "+CHR$(25)+" ";:COLOR 12,0 +1690 FOR I=1+(20*Z) TO 20+(20*Z):W=I-(Z*20):M=R(I) +1700 LOCATE W+3,1:PRINT " "; +1710 LOCATE W+3,2:PRINT N!(M):LOCATE W+3,11:PRINT N$(M):LOCATE W+3,15:PRINT C$(M) +1720 LOCATE W+3,19:PRINT C!(M):LOCATE W+3,27:PRINT T$(M):LOCATE W+3,37:PRINT D!(M):LOCATE W+3,51:FE=M:GOSUB 1950:PRINT P$ +1730 FE=M:GOSUB 4190:LOCATE W+3,44:PRINT VA:LOCATE W+3,54:PRINT E$(M):LOCATE W+3,57:PRINT L$(M):LOCATE W+3,65:PRINT D$(M) +1740 IF I>=O THEN 1750 ELSE NEXT I +1750 LOCATE W+4,1:PRINT "";:LOCATE 1,1 +1760 A$=INKEY$:IF A$="" THEN 1760 +1770 IF A$=CHR$(27) GOTO 590 +1780 IF A$="2" OR A$="`" OR A$=CHR$(0)+"P" THEN CLS:GOSUB 1920:GOSUB 1970 :Z=Z-1:IF Z<0 THEN Z=LM-1:GOTO 1690 ELSE 1690 +1790 IF A$="8" OR A$="~" OR A$=CHR$(0)+"H" THEN CLS:GOSUB 1920:GOSUB 1970:Z=Z+1:IF Z>LM-1 THEN Z=0:GOTO 1690 ELSE 1690 +1800 BEEP:GOTO 1760 +1810 FOR I=1 TO H +1820 IF N!(I)=AR THEN 1850 +1830 NEXT I +1840 BEEP:PRINT "AUCUN NUMERO ENREGITRE CORESPOND ....":A$=INPUT$(1):GOTO 590 +1850 CLS:GOSUB 1920 +1860 LOCATE 4,1:PRINT " "; +1870 LOCATE 4,2:PRINT N!(I):LOCATE 4,11:PRINT N$(I):LOCATE 4,15:PRINT C$(I) +1880 LOCATE 4,19:PRINT C!(I):LOCATE 4,27:PRINT T$(I):LOCATE 4,37:PRINT D!(I):LOCATE 4,51:FE=I:GOSUB 1950:PRINT P$ +1890 FE=I:GOSUB 4190:LOCATE 4,44:PRINT VA:LOCATE 4,54:PRINT E$(I):LOCATE 4,57:PRINT L$(I):LOCATE 4,65:PRINT D$(I) +1900 LOCATE 5,1:PRINT "" +1910 A$=INPUT$(1):GOTO 590 +1920 COLOR 12,0:CLS:PRINT "Ŀ" +1930 PRINT "Numero LOTN LOT TEST DOSE % ANIN TEST DATE " +1940 PRINT "Ĵ":RETURN +1950 IF P!(FE)<0 THEN P$="P" ELSE P$="A" +1960 FE=0:RETURN +1970 LOCATE 25,1:COLOR 14,6:PRINT " MENU des LISTINGS : INTERVAL ... FIN ";+CHR$(24)+" "+CHR$(25)+" ";:COLOR 12,0:RETURN +1980 END:REM ******************************************** Modification ******** +1990 CLS:COLOR 13 +2000 LOCATE 1,24:PRINT ""+STRING$(34,196)+"" +2010 LOCATE 2,24:PRINT " Menu de MODIFICATION des donnes " +2020 LOCATE 3,24:PRINT ""+STRING$(34,196)+"" +2030 COLOR 9:LOCATE 9,31:PRINT "";STRING$(16,196);"":FOR I=1 TO 5:LOCATE ,31:PRINT "";:LOCATE ,48:PRINT "":NEXT :LOCATE ,31:PRINT "";STRING$(16,196);"" +2040 COLOR 10:LOCATE 10,33:PRINT "-1- CORRECTION" +2050 LOCATE 12,33:PRINT "-2- EFFACE" +2060 LOCATE 14,33:PRINT "-3- AJOUTE" +2070 LOCATE 25,1:COLOR 14,6:PRINT " pour retour au menu principal MENU DE MODIFICATIONS ";:COLOR 10,0:LOCATE 10 +2080 A$=INKEY$:IF A$="" THEN 2080 +2090 IF A$=CHR$(27) GOTO 470 +2100 IF A$="1" OR A$="&" THEN 2150 +2110 IF A$="2" OR A$="" THEN 2660 +2120 IF A$="3" THEN 2990 +2130 BEEP:GOTO 2080 +2140 REM ................................ correction .......................... +2150 COLOR 10,0:CLS +2160 LOCATE 25,1:COLOR 14,6:PRINT " Menu MODIFICATION : Correction pour abondont "; +2170 LOCATE 2,1:COLOR 10,0 +2180 INPUT "N du produit .......",V$ +2190 IF V$=CHR$(219) THEN 1990 +2200 INPUT "Suffixe du produit ..",W$ +2210 IF W$=CHR$(219) THEN 1990 +2220 CLS:LOCATE 12,10:PRINT " ----- PATIENTEZ ----- " +2230 R=0:T=0:FOR I=1 TO H +2240 IF N!(I)=VAL(V$) AND N$(I)=W$ THEN R=I +2250 IF N!(I)=VAL(V$) THEN T=T+1:R(T)=I +2260 NEXT:CLS +2270 IF R=0 THEN PRINT "Je n'est pas trouv ..." +2280 IF R<>0 THEN 2350 +2290 IF T=0 THEN PRINT "Mais rien du tout .... " +2300 IF T<>0 THEN 2310 ELSE A$=INPUT$(1):GOTO 1990 +2310 FOR I=1 TO T:PRINT "-";I;N!(R(I));N$(R(I));" ";C$(R(I));C!(R(I));" ";L$(R(I));" ";D$(R(I)):NEXT I +2320 INPUT "> (0 pour fin) quel est votre choix pour la modification >> ",CH +2330 IF CH>T THEN BEEP ELSE IF CH=0 THEN 1990 +2340 CH=R(CH):GOTO 2360 +2350 PRINT N!(R);N$(R);" ";C$(R);C!(R);" ";L$(R);" ";D$(R):PRINT "EST BIEN CECI Oui ou Non":A$=INPUT$(1):IF A$="n" OR A$="N" THEN 1990 ELSE CH=R +2360 CLS:LOCATE 25,1:COLOR 14,6:PRINT " Menu de MODIFICATIONS : Correction pour abandon "; +2370 LOCATE 2,1:COLOR 2,0 +2380 PRINT "-1 : N du PRODUIT.......";N!(CH) +2390 PRINT "-2 : Suffixe du produit.. ";N$(CH) +2400 PRINT "-3 : INITIALES LOT....... ";C$(CH) +2410 PRINT "-4 : N de lot...........";C!(CH) +2420 PRINT "-5 : TEST................ ";T$(CH) +2430 PRINT "-6 : Dose................";D!(CH) +2440 FE=CH:GOSUB 4190:PRINT "-7 : %...................";VA +2450 PRINT "-8 : ACTIF ou PROTECTEUR. ";:IF P!(CH)<0 THEN PRINT "P" ELSE PRINT "A" +2460 PRINT "-9 : Annimal (S-R-G)..... ";E$(CH) +2470 PRINT "-0 : N de l'essai....... ";L$(CH) +2480 PRINT "-A : DATE................ ";D$(CH) +2490 PRINT :PRINT " Votre rubrique modifier ... " +2500 A$=INKEY$:IF A$="" THEN 2500 +2510 IF A$="a" OR A$="A" THEN INPUT "Nouvelle DATE : ",D$(CH):GOTO 2360 +2520 IF A$=CHR$(27) THEN GOTO 1990 ELSE IF A$=CHR$(13) THEN GOSUB 4250:GOTO 1990 +2530 ON VAL(A$)+1 GOSUB 2540,2550,2560,2570,2580,2590,2600,2610,2620,2630:GOTO 2360 +2540 INPUT "N de l'essai.... ",L$(CH):RETURN +2550 INPUT "N du PRODUIT.... ",N!(CH):RETURN +2560 INPUT "Nouveau suffixe.. ",N$(CH):RETURN +2570 INPUT "Initial lot ..... ",C$(CH):RETURN +2580 INPUT "N de lot........ ",C!(CH):RETURN +2590 INPUT "TEST............. ",T$(CH):RETURN +2600 INPUT "DOSE............. ",D!(CH):RETURN +2610 INPUT "%................ ",VA:FE=CH:GOSUB 4210:RETURN +2620 P!(CH)=-P!(CH):RETURN +2630 PRINT "Animal........... ":A$=INPUT$(1):IF A$="r" OR A$="R" THEN E$(CH)="R":RETURN ELSE IF A$="s" OR A$="S" THEN E$(CH)="S":RETURN ELSE E$(CH)="G":RETURN +2640 PRINT "-9 : N de l'essai.......";T$(CH) +2650 REM ................................ effacer ............................. +2660 CLS:COLOR 14,6:LOCATE 25,1:PRINT " MODIFICATIONS : EFFACER DES DONNEES = ABANDON et RETOUR " +2670 COLOR 13,0:LOCATE 2 +2680 INPUT "Numero du produit ..... ",V$ +2690 IF V$=CHR$(219) THEN 1990 ELSE CI!=VAL(V$) +2700 INPUT "Suffixe du produit .... ",V$ +2710 IF V$=CHR$(219) THEN 1990 +2720 CLS +2730 LOCATE 12,10:COLOR 30:PRINT " ---------- PATIENTEZ -----------" +2740 COLOR 13 +2750 R=0:FOR I=1 TO H +2760 IF N!(I)=CI! AND N$(I)=V$ THEN R=I:I=H +2770 NEXT I +2780 IF R<>0 THEN 2820 +2790 T=0:FOR I=1 TO H +2800 IF N!(I)=CI! THEN T=T+1:R(T)=I +2810 NEXT I +2820 CLS +2830 COLOR 13,0:LOCATE 2 +2840 IF R=0 THEN PRINT "Je n'ai pas trouv mais voici des ressenblants.." +2850 IF R<>0 THEN PRINT "J'ai trouv : Est bien celui-ci O/N ":PRINT :PRINT N!(R);N$(R);" ";C$(R);C!(R);" ";T$(R);" ";L$(R);" ";D$(R) +2860 IF T<>0 THEN 2880 +2870 GOTO 2890 +2880 FOR I=1 TO T:PRINT I;" ";N!(R(I));N$(R(I));" ";C$(R(I));C!(R(I));" ";T$(R(I));" ";L$(R(I));" ";D$(R(I)):NEXT I:PRINT:INPUT " ==> lequel (0) pour rien ",C +2890 IF T<>0 AND C=0 THEN 1990 +2900 IF R<>0 THEN C$=INPUT$(1) +2910 IF R<>0 AND (C$="n" OR C$="N") THEN 1990 +2920 IF R<>0 AND (C$="o" OR C$="O") THEN CI=R:GOTO 2950 +2930 IF T<>0 AND C<>0 THEN CI=R(ABS(C)):GOTO 2950 +2940 GOTO 1990 +2950 FOR I=CI TO H +2960 N!(I)=N!(I+1):N$(I)=N$(I+1):C$(I)=C$(I+1):C!(I)=C!(I+1):T$(I)=T$(I+1):D!(I)=D!(I+1):P!(I)=P!(I+1):E$(I)=E$(I+1):L$(I)=L$(I+1):D$(I)=D$(I+1) +2970 NEXT :H=H-1:GOSUB 4390 :GOTO 1990 +2980 REM ................................ ajouter .............................. +2990 CLS:COLOR 14,6:LOCATE 25,1:PRINT " MODIFICATIONS : AJOUTER DES DONNEES = ABANDON et RETOUR " +3000 COLOR 10,0 +3010 P=H +3020 H=H+1:LOCATE 5,2:PRINT SPACE$(70);:LOCATE ,2:INPUT "Numero du PRODUIT .. ",V$ +3030 IF V$=CHR$(219) THEN H=P:GOTO 1990 ELSE N!(H)=VAL(V$) +3040 LOCATE 6,2:PRINT SPACE$(70);:LOCATE ,2:INPUT "suffixe du PRODUIT . ",V$ +3050 IF V$=CHR$(219) THEN H=P:GOTO 1990 ELSE N$(H)=V$ +3060 LOCATE 7,2:PRINT SPACE$(70);:LOCATE ,2:INPUT "initiales du PRODUIT ",V$ +3070 IF V$=CHR$(219) THEN H=P:GOTO 1990 ELSE C$(H)=V$ +3080 LOCATE 8,2:PRINT SPACE$(70);:LOCATE ,2:INPUT "N de LOT .......... ",V$ +3090 IF V$=CHR$(219) THEN H=P:GOTO 1990 ELSE C!(H)=VAL(V$) +3100 LOCATE 9,2:PRINT SPACE$(70);:LOCATE ,2:INPUT "TEST ............... ",V$ +3110 IF V$=CHR$(219) THEN H=P:GOTO 1990 ELSE T$(H)=V$ +3120 LOCATE 10,2:PRINT SPACE$(70);:LOCATE ,2:INPUT "Dose ............... ",V$ +3130 IF V$=CHR$(219) THEN H=P:GOTO 1990 ELSE D!(H)=VAL(V$) +3140 LOCATE 11,2:PRINT SPACE$(70);:LOCATE ,2:INPUT "% .................. ",V$ +3150 IF V$=CHR$(219) THEN H=P:GOTO 1990 ELSE FE=H:VA=VAL(V$):GOSUB 4210 +3160 LOCATE 12,2:PRINT "(A)ctif (P)rotection ":A$=INPUT$(1) +3170 IF A$=CHR$(219) THEN H=P:GOTO 1990 +3180 IF A$="p" OR A$="P" THEN P!(H)=-P!(H):LOCATE 12,23:PRINT "P" ELSE LOCATE 12,23:PRINT "A" +3190 LOCATE 13,2:PRINT "(R)at (S)ouris (G).":A$=INPUT$(1) +3200 IF A$=CHR$(219) THEN H=P:GOTO 1990 +3210 IF A$="r" OR A$="R" THEN E$(H)="R" +3220 IF A$="s" OR A$="S" THEN E$(H)="S" ELSE IF E$(H)="" THEN E$(H)="G" +3230 LOCATE 13,23:PRINT E$(H) +3240 LOCATE 14,2:PRINT SPACE$(70);:LOCATE ,2:INPUT "N de l'ESSAI.......",V$ +3250 IF V$=CHR$(219) THEN H=P:GOTO 1990 ELSE L$(H)=V$ +3260 LOCATE 15,2:PRINT SPACE$(70);:LOCATE ,2:INPUT "DATE ................",V$ +3270 IF V$=CHR$(219) THEN H=P:GOTO 1990 ELSE D$(H)=V$ +3280 LOCATE 17,10 :BEEP:PRINT " ENCORE O/N ...":A$=INPUT$(1) +3290 IF A$="o" OR A$="O" OR A$=CHR$(13) THEN 3020 +3300 IF A$="n" OR A$="N" THEN 3320 +3310 GOTO 3280 +3320 GOSUB 4250 +3330 GOTO 1990 +3340 END:REM ******************************************** Recherches ********** +3350 COLOR 12,0:CLS +3360 LOCATE 1,29:PRINT ""+STRING$(19,196)+"" +3370 LOCATE 2,29:PRINT " ";:COLOR 11,1:PRINT "MENU DE RECHERCHE";:COLOR 12,0:PRINT " "+CHR$(195)+CHR$(196)+CHR$(191) +3380 LOCATE 3,29:PRINT ""+STRING$(17,196)+" " +3390 LOCATE 4,31:PRINT ""+STRING$(19,196)+"" +3400 LOCATE 25,1:COLOR 14,6:PRINT "MENU RECHERCHE pour QUITER ";:LOCATE 5,1:COLOR 10,0 +3410 PRINT +3420 INPUT "INITIAL DU LOT ... ",C$ +3430 IF C$=CHR$(219) THEN 470 +3440 INPUT "DOSE ............ ",D$ +3450 IF D$=CHR$(219) THEN 470 +3460 M$=D$:GOSUB 4040:D1=V1:D2=V2 +3470 INPUT "% ................ ",P$ +3480 IF P$=CHR$(219) THEN 470 +3490 M$=P$:GOSUB 4040:P1=V1:P2=V2 +3500 PRINT "

ROT CTIF .. "; +3510 A$=INPUT$(1):IF A$=CHR$(219) THEN 470 +3520 IF A$<>"p" AND A$<>"a" AND A$<>"P" AND A$<>"a" AND A$<>" " THEN BEEP:GOTO 3510 +3530 IF A$="P" OR A$="p" THEN U=-1 ELSE IF A$<>" " THEN U=1 ELSE U=0 +3540 PRINT A$ +3550 PRINT "Animal ........... "; +3560 A$=INPUT$(1):IF A$=CHR$(219) THEN 470 +3570 IF A$<>"R" AND A$<>" " AND A$<>"r" AND A$<>"G" AND A$<>"g" AND A$<>"s" AND A$<>"S" THEN BEEP:GOTO 3560 +3580 IF A$="R" OR A$="r" THEN E$="R" +3590 IF A$="S" OR A$="s" THEN E$="S" +3600 IF A$="G" OR A$="g" THEN E$="G" +3610 IF A$=" " THEN E$="" +3620 IF E$<>"" THEN PRINT E$ ELSE PRINT "TOUS" +3630 INPUT "MOIS MINI ........ ",DT$ +3640 IF DT$=CHR$(219) THEN 470 +3650 DM=VAL(DT$) +3660 INPUT "MOIS MAXI ........ ",DT$ +3670 IF DT$=CHR$(219) THEN 470 +3680 DB=VAL(DT$) +3690 CLS:PRINT :PRINT ".................... PATIENTEZ ................................................." +3700 R(1)=0:O=0:FOR I=1 TO H +3710 IF C$<>"" THEN IF C$<>C$(I) THEN 3880 +3720 IF D1=-1 AND D2=-1 THEN 3750 +3730 IF D1<>-1 THEN IF D!-1 THEN IF D!>D2 THEN 3880 +3750 IF P1=-1 AND P2=-1 THEN 3800 +3760 IF P1=0 THEN P1=.001 +3770 IF P1<>-1 THEN IF ABS(P!(I))-1 THEN IF ABS(P!(I))>P2 THEN 3880 +3800 IF U=0 THEN 3830 +3810 IF U=1 THEN IF P!(I)<0 THEN 3880 +3820 IF U=-1 THEN IF P!(I)>0 THEN 3880 +3830 IF E$<>"" THEN IF E$<>E$(I) THEN 3880 +3840 DA$=MID$(D$(I),3,2):D0=VAL(DA$) +3850 IF DM<>0 THEN IF D00 THEN IF D0>DB THEN 3880 +3870 O=O+1:R(O)=I +3880 NEXT I:IF R(1)=0 THEN PRINT "Desol aucun produit ne correpond ...":A$=INPUT$(1):GOTO 470 +3890 COLOR 12 +3900 GOSUB 1920 +3910 LM=INT(O/21)+1:Z=0:LOCATE 25,1:COLOR 14,6:PRINT " MENU des RECHERCHES A CONDITION FIN ";+CHR$(24)+" "+CHR$(25)+" ";:COLOR 12,0 +3920 FOR I=1+(20*Z) TO 20+(20*Z):W=I-(Z*20):M=R(I) +3930 LOCATE W+3,1:PRINT " "; +3940 LOCATE W+3,2:PRINT N!(M):LOCATE W+3,11:PRINT N$(M):LOCATE W+3,15:PRINT C$(M) +3950 LOCATE W+3,19:PRINT C!(M):LOCATE W+3,27:PRINT T$(M):LOCATE W+3,37:PRINT D!(M):LOCATE W+3,51:FE=M:GOSUB 1950:PRINT P$ +3960 FE=M:GOSUB 4190:LOCATE W+3,44:PRINT VA:LOCATE W+3,54:PRINT E$(M):LOCATE W+3,57:PRINT L$(M):LOCATE W+3,65:PRINT D$(M) +3970 IF I>=O THEN 3980 ELSE NEXT I +3980 LOCATE W+4,1:PRINT "";:LOCATE 1,1 +3990 A$=INKEY$:IF A$="" THEN 3990 +4000 IF A$=CHR$(27) GOTO 470 +4010 IF A$="2" OR A$="`" OR A$=CHR$(0)+"P" THEN CLS:GOSUB 1920:GOSUB 1970 :Z=Z-1:IF Z<0 THEN Z=LM-1:GOTO 3920 ELSE 3920 +4020 IF A$="8" OR A$="~" OR A$=CHR$(0)+"H" THEN CLS:GOSUB 1920:GOSUB 1970:Z=Z+1:IF Z>LM-1 THEN Z=0:GOTO 3920 ELSE 3920 +4030 BEEP:GOTO 3990 +4040 LM=LEN(M$) +4050 FOR I=1 TO LM +4060 VM$=MID$(M$,I,1):IF VM$="-" THEN 4090 +4070 V1$=V1$+VM$ +4080 NEXT I +4090 V1=VAL(V1$) +4100 FOR U=I+1 TO LM +4110 V2$=V2$+MID$(M$,U,1):NEXT U +4120 V2=VAL(V2$):IF V1=0 THEN V1=-1 +4130 IF V2=0 THEN V2=-1 +4140 IF V2=V1 AND V1=-1 THEN 4160 +4150 IF V2-1 THEN BEEP:PRINT "VALEUR MAXIMAL INFERIEUR A LA VALEUR MINIMAL !!! JE VAIS LES MODIFIER..":V=V1:V1=V2:V2=V:V=0 +4160 RETURN +4170 END +4180 CLOSE:OPEN "O",#1,U$:CLOSE:RESUME +4190 IF ABS(P!(FE))=.001 THEN FE=0:VA=0:RETURN +4200 VA=ABS(P!(FE)):FE=0:RETURN +4210 IF VA=0 THEN VA=.001 +4220 IF P!(VA)<0 THEN K=-1 ELSE K=1 +4230 P!(FE)=K*VA:K=0:FE=0:RETURN +4240 REM -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= SOUS PROG DE TRIAGE =-=-=-=-=-=-= +4250 FOR I=1 TO H +4260 FOR J=I+1 TO H +4270 IF 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 Entrez l ! >>> :",DA$ +160 ' ===================== ROUTINE =================================== +170 V$="":K%=0 +180 I%=1:WHILE K%<3 +190 WHILE INSTR("/-. ",MID$(DA$,I%,1))=0 AND I%<>LEN(DA$)+1 +200 V$=V$+MID$(DA$,I%,1) +210 I%=I%+1 +220 WEND +230 K%=K%+1:I%=I%+1 +240 S%(K%)=VAL(V$):V$="" +250 WEND +260 D1%=S%(1)+S%(2)*100 +270 D2%=S%(3) +280 IF D2%<1000 OR S%(1)<0 OR S%(1) > 31 OR S%(2) >12 OR S%(2) < 1 THEN PRINT "erreur dans l'entre de la date !!! vrifier ... ":GOTO 150 +290 PRINT " D1% =";D1% +300 PRINT " D2% =";D2% +310 ' vrification +320 PRINT "la date est :"; +330 M%=INT(D1%/100) +340 J%=D1%-M%*100 +350 PRINT J%;"/";M%;"/";D2% +% =";D2% +310 ' vr \ No newline at end of file diff --git a/DE50.BAS b/DE50.BAS new file mode 100644 index 0000000..3b234ee --- /dev/null +++ b/DE50.BAS @@ -0,0 +1,114 @@ +0 SCREEN 2:SCREEN 0,0,0 +11 COLOR 7,0:PRINT :PRINT +12 PRINT " Une CREATION de DARCHE YOANN" +15 LOCATE 6,33:PRINT "Edition " +16 PRINT +17 LOCATE ,15:PRINT " " +18 LOCATE ,15:PRINT " " +19 LOCATE ,15:PRINT " " +20 LOCATE ,15:PRINT " " +21 LOCATE ,15:PRINT " " +22 LOCATE ,15:PRINT " " +23 LOCATE ,15:PRINT " " +24 PRINT +25 LOCATE ,28:PRINT " " +26 LOCATE ,28:PRINT " " +27 LOCATE ,28:PRINT " " +28 LOCATE ,28:PRINT " " +29 LOCATE ,28:PRINT " " +999 A$=INPUT$(1) +1000 SCREEN 2:SCREEN 0,0,0 +1010 CLS:KEY OFF +1020 PRINT :PRINT " LITCHFIELD et WILCOXON" +1030 PRINT +1040 INPUT "Produit : ",PRODUIT$ +1050 INPUT "Voie : ",VOIE$ +1060 INPUT "Prventif: ",PREVE$ +1070 INPUT "Espce : ",ESPE$ +1080 INPUT "DATE : ",DAT$ +1090 INPUT "TEST : ",TEST$ +1100 CLS +1110 PRINT :PRINT " LITCHFIELD et WILCOXON" +1120 PRINT :PRINT +1130 K=1:DIM D(20,3) +1134 IF K>=16 THEN 1200 +1135 LOCATE 10:PRINT "TEST n";K +1140 LOCATE 11:INPUT "Dose mg/kg :",D(K,1) +1150 LOCATE 12:INPUT "Nombre d'animaux :",D(K,2) +1160 LOCATE 13:INPUT "% Rel :",D(K,3) +1170 LOCATE 14:PRINT " ENCORE O/N ":A$=INPUT$(1) +1180 IF A$="n" OR A$="N" THEN 1190 ELSE K=K+1:GOTO 1134 +1190 GOSUB 4000 +1200 FOR I=1 TO K :N=N+D(I,2):NEXT +1210 FOR I=1 TO K:Y=Y+D(I,3):NEXT +1220 FOR I=1 TO K:X=X+D(I,1):NEXT +1230 FOR I=1 TO K:XY=XY+(D(I,1)*D(I,3)):NEXT +1240 FOR I=1 TO K:X2=X2+(D(I,1)^2):NEXT +1250 FOR I=1 TO K:Y2=Y2+(D(I,3)^2):NEXT +1260 B=(K*XY-X*Y)/(K*X2-X^2) +1270 A=(Y-B*X)/K +1280 POI=(16-A)/B:GOSUB 60000:D16=POI +1290 POI=(50-A)/B:GOSUB 60000:D50=POI +1291 POI=(84-A)/B:GOSUB 60000:D84=POI +1300 S=(D84/D50+D50/D16)/2:POI=S:GOSUB 60000:S=POI +1301 FOR I=1 TO K +1310 IF D(I,3)>=16 AND D(I,3)<=84 THEN N1=N1+D(I,2) +1320 NEXT +1330 POI=SQR(N1):GOSUB 60000:N2=POI:POI=2.77/N2:GOSUB 60000:EX=POI:POI=S^EX:GOSUB 60000:F=POI +1410 POI=D50/F:GOSUB 60000:LCI=POI:POI=D50*F:GOSUB 60000:LCS=POI +1420 CLS:COLOR 13 +1430 PRINT " LITCHFIELD et WILCOXON" +1440 PRINT +1500 LOCATE 3,1:PRINT "Produit :";PRODUIT$ +1510 LOCATE 4,1:PRINT "Voie :";VOIE$ +1520 LOCATE 5,1:PRINT "Preventif:";PREVE$ +1530 LOCATE 6,1:PRINT "Espce :";ESPE$ +1540 LOCATE 6,40:PRINT "TEST :";TEST$ +1550 LOCATE 3,40:PRINT "DATE :";DAT$ +1560 LOCATE 8,1:PRINT " Dose en mg/kg Nombre d'animaux Pourcentage ":VIEW PRINT 9 TO 25 +1570 LOCATE 18,1 +1571 PRINT " D16 D50 D84 S EX F" +1572 LOCATE 19,6:PRINT D16;:LOCATE ,18:PRINT D50;:LOCATE ,30:PRINT D84;:LOCATE ,40:PRINT S;:LOCATE ,48:PRINT EX;:LOCATE ,57:PRINT F +1573 LOCATE 20,1:PRINT "-------------------------------------------------------------------------------" +1574 LOCATE 21,1:PRINT " LCI DE50 LCS " +1575 LOCATE 22,21:PRINT LCI:LOCATE 22,38:PRINT D50:LOCATE 22,53:PRINT LCS +1576 LOCATE 23,1:PRINT "-------------------------------------------------------------------------------" +1580 LOCATE 9:VIEW PRINT 9 TO 17:FOR I=1 TO K:LOCATE ,2:PRINT D(I,1);:LOCATE ,24:PRINT D(I,2);:LOCATE ,50:PRINT D(I,3):NEXT +1999 A$=INPUT$(1):CLS +2000 PRINT :PRINT " X ESTIME POUR Y DONNE ET INVERSE " +2010 PRINT :PRINT +2011 PRINT " 1- Y DONNE 2- X DONNE":A$=INPUT$(1) +2012 IF A$="1" THEN 3000 ELSE 2020 +2020 INPUT " DOSE ",DX +2030 RE=A+DX*B:PRINT "Estimation ...>>>:";RE +2040 PRINT :PRINT "Encore [O/N]..":A$=INPUT$(1) +2050 IF A$="n" OR A$="N" THEN 2060 ELSE CLS:GOTO 2000 +2060 PRINT " eprise du programme ou bandon ....!!! ":A$=INPUT$(1) +2070 IF A$="r" OR A$="R" THEN RUN +2080 IF A$<>"a" AND A$<>"A" THEN BEEP:GOTO 2060 ELSE 50000 +3000 INPUT " POURCENTAGE : ",DX +3010 RE=(DX-A)/B:PRINT "Estimation ...>>>:";RE +3020 PRINT :PRINT "Encore [O/N]..":A$=INPUT$(1) +3030 IF A$="n" OR A$="N" THEN 2060 ELSE CLS:GOTO 2000 +4000 CLS +4010 PRINT " Correction ." +4015 PRINT " Y / X"," 1"," 2"," 3" +4020 FOR I=1 TO K +4030 PRINT I,D(I,1),D(I,2),D(I,3):NEXT +4040 PRINT " Correct O/N":A$=INPUT$(1) +4050 IF A$="o" OR A$="O" THEN RETURN +4060 INPUT " X,Y :",X,Y +4065 PRINT "Ancienne Valeur :";D(Y,X) +4070 INPUT "Nouvelle Valeur : ",VA +4080 D(Y,X)=VA :X=0:Y=0:VA=0:GOTO 4000 +50000 VIEW PRINT:CLS +50010 PRINT "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +50020 PRINT " save ,p +59999 REM NEW +60000 FX$=STR$(POI):FX=INT(POI):FX1$=STR$(FX) +60010 LO=LEN(FX$) +60020 FX$=RIGHT$(FX$,LO-1) +60030 LO1=LEN(FX1$):FX1$=RIGHT$(FX1$,LO1-1):LO=LEN(FX$):LO1=LEN(FX1$) +60040 FX$=LEFT$(FX$,LO-(LO-2*LO1-2)) +60050 POI=VAL(FX$):LO=0:LO1=0:FX$="":FX1$="":FX=0:RETURN + \ No newline at end of file diff --git a/DE50B.BAS b/DE50B.BAS new file mode 100644 index 0000000..6805f20 --- /dev/null +++ b/DE50B.BAS @@ -0,0 +1,119 @@ +0 SCREEN 2:SCREEN 0,0,0:KEY OFF:COLOR 14:CLS +10 LK#=.4342944758723107# +12 PRINT " Une CREATION de DARCHE YOANN" +15 LOCATE 6,33:PRINT "Edition " +16 PRINT +17 LOCATE ,15:PRINT " " +18 LOCATE ,15:PRINT " " +19 LOCATE ,15:PRINT " " +20 LOCATE ,15:PRINT " " +21 LOCATE ,15:PRINT " " +22 LOCATE ,15:PRINT " " +23 LOCATE ,15:PRINT " " +24 PRINT +25 LOCATE ,28:PRINT " " +26 LOCATE ,28:PRINT " " +27 LOCATE ,28:PRINT " " +28 LOCATE ,28:PRINT " " +29 LOCATE ,28:PRINT " " +999 A$=INPUT$(1) +1000 SCREEN 2:SCREEN 0,0,0 +1010 COLOR 10:CLS:KEY OFF +1020 PRINT :PRINT " LITCHFIELD et WILCOXON" +1030 PRINT +1040 INPUT "Produit : ",PRODUIT$ +1050 INPUT "Voie : ",VOIE$ +1060 INPUT "Prventif: ",PREVE$ +1070 INPUT "Espce : ",ESPE$ +1080 INPUT "DATE : ",DAT$ +1090 INPUT "TEST : ",TEST$ +1100 CLS +1110 PRINT :PRINT " LITCHFIELD et WILCOXON" +1120 PRINT :PRINT +1130 K=1:DIM D(20,3) +1134 IF K>=16 THEN 1200 +1135 LOCATE 10:PRINT "TEST n";K +1136 LOCATE 11:PRINT SPACE$(40) +1140 LOCATE 11:INPUT "Dose mg/kg :",D:POI=LOG(D)*LK#:GOSUB 60000:D(K,1)=W +1146 COLOR 12:LOCATE 11:PRINT SPACE$(40) +1150 LOCATE 12:INPUT "Nombre d'animaux :",D(K,2) +1156 COLOR 13:LOCATE 13:PRINT SPACE$(40) +1160 LOCATE 13:INPUT "% Rel :",D(K,3) +1170 LOCATE 14:PRINT " ENCORE O/N ":A$=INPUT$(1) +1180 IF A$="n" OR A$="N" THEN 1190 ELSE K=K+1:GOTO 1134 +1190 GOSUB 4000 +1200 FOR I=1 TO K :N=N+D(I,2):NEXT +1210 FOR I=1 TO K:Y=Y+D(I,3):NEXT +1220 FOR I=1 TO K:X=X+D(I,1):NEXT +1230 FOR I=1 TO K:XY=XY+(D(I,1)*D(I,3)):NEXT +1240 FOR I=1 TO K:X2=X2+(D(I,1)^2):NEXT +1250 FOR I=1 TO K:Y2=Y2+(D(I,3)^2):NEXT +1260 B=(K*XY-X*Y)/(K*X2-X^2) +1270 A=(Y-B*X)/K +1280 Q=(16-A)/B:GOSUB 40000:D16=W:W=0 +1290 Q=(50-A)/B:GOSUB 40000:D50=W:W=0 +1291 Q=(84-A)/B:GOSUB 40000:D84=W:W=0 +1300 S=(D84/D50+D50/D16)/2:POI=S:GOSUB 60000:S=POI +1301 FOR I=1 TO K +1310 IF D(I,3)>=16 AND D(I,3)<=84 THEN N1=N1+D(I,2) +1320 NEXT +1330 POI=SQR(N1):GOSUB 60000:N2=POI:POI=2.77/N2:GOSUB 60000:EX=POI:POI=S^EX:GOSUB 60000:F=POI +1410 POI=D50/F:GOSUB 60000:LCI=POI:POI=D50*F:GOSUB 60000:LCS=POI +1420 CLS:COLOR 13 +1430 PRINT " LITCHFIELD et WILCOXON" +1440 PRINT +1500 LOCATE 3,1:PRINT "Produit :";PRODUIT$ +1510 LOCATE 4,1:PRINT "Voie :";VOIE$ +1520 LOCATE 5,1:PRINT "Preventif:";PREVE$ +1530 LOCATE 6,1:PRINT "Espce :";ESPE$ +1540 LOCATE 6,40:PRINT "TEST :";TEST$ +1550 LOCATE 3,40:PRINT "DATE :";DAT$ +1560 LOCATE 8,1:PRINT " Dose en mg/kg Nombre d'animaux Pourcentage " +1570 LOCATE 18,1 +1571 PRINT " D16 D50 D84 S EX F" +1572 LOCATE 19,6:PRINT D16;:LOCATE ,18:PRINT D50;:LOCATE ,30:PRINT D84;:LOCATE ,40:PRINT S;:LOCATE ,48:PRINT EX;:LOCATE ,57:PRINT F +1573 LOCATE 20,1:PRINT "-------------------------------------------------------------------------------" +1574 LOCATE 21,1:PRINT " LCI DE50 LCS " +1575 LOCATE 22,21:PRINT LCI:LOCATE 22,38:PRINT D50:LOCATE 22,53:PRINT LCS +1576 LOCATE 23,1:PRINT "-------------------------------------------------------------------------------" +1580 LOCATE 9:FOR I=1 TO K:LOCATE ,2:PRINT D(I,1);:LOCATE ,24:PRINT D(I,2);:LOCATE ,50:PRINT D(I,3):NEXT +1999 A$=INPUT$(1):CLS +2000 PRINT :PRINT " X ESTIME POUR Y DONNE ET INVERSE " +2010 PRINT :PRINT +2011 PRINT " 1- Y DONNE 2- X DONNE":A$=INPUT$(1) +2012 IF A$="1" THEN 3000 ELSE 2020 +2020 INPUT " DOSE ",DX:POI=LOG(DX)*LK#:GOSUB 60000:DX=POI +2030 RE=A+DX*B:PRINT "Estimation ...>>>:";RE +2040 PRINT :PRINT "Encore [O/N]..":A$=INPUT$(1) +2050 IF A$="n" OR A$="N" THEN 2060 ELSE CLS:GOTO 2000 +2060 PRINT " eprise du programme ou bandon ....!!! ":A$=INPUT$(1) +2070 IF A$="r" OR A$="R" THEN RUN +2080 IF A$<>"a" AND A$<>"A" THEN BEEP:GOTO 2060 ELSE 50000 +3000 INPUT " POURCENTAGE : ",DX +3010 RE=(DX-A)/B:Q=RE:GOSUB 40000:RE=W:PRINT "Estimation ...>>>:";RE +3020 PRINT :PRINT "Encore [O/N]..":A$=INPUT$(1) +3030 IF A$="n" OR A$="N" THEN 2060 ELSE CLS:GOTO 2000 +4000 CLS +4010 PRINT " Correction ." +4015 PRINT " Y / X"," 1"," 2"," 3" +4020 FOR I=1 TO K +4030 PRINT I,D(I,1),D(I,2),D(I,3):NEXT +4040 PRINT " Correct O/N":A$=INPUT$(1) +4050 IF A$="o" OR A$="O" THEN RETURN +4060 INPUT " X,Y :",X,Y +4065 PRINT "Ancienne Valeur :";D(Y,X) +4070 INPUT "Nouvelle Valeur : ",VA +4080 D(Y,X)=VA :X=0:Y=0:VA=0:GOTO 4000 +40000 POI=10^Q:GOSUB 60000:RETURN +50000 CLS +50010 PRINT "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +50020 PRINT " save ,p +59999 REM NEW +60000 W=POI:IF W=INT(W) THEN RETURN +60010 F1$=STR$(W):W1=INT(W):F2$=STR$(W1) +60020 F1=LEN(F1$):F2=LEN(F2$) +60030 F1$=RIGHT$(F1$,F1-1):F2$=RIGHT$(F2$,F2-1) +60040 IF F2$<>"0" THEN F1$=RIGHT$(F1$,F1-(1+F2)) ELSE F1$=RIGHT$(F1$,F1-2) +60050 F1$=LEFT$(F1$,2):F$=F2$+"."+F1$:W=VAL(F$):POI=W:F1$="":F2$="":F$="":F1=0:F2=0 +60060 RETURN + \ No newline at end of file diff --git a/DE51.BAS b/DE51.BAS new file mode 100644 index 0000000..004a79d --- /dev/null +++ b/DE51.BAS @@ -0,0 +1,139 @@ +0 B$="Ŀ" +1 CB$=" " +2 CC$=" CALCUL DE LA DE 50 PAR LA METHODE DES TOTAUX CUMULATIFS " +3 CD$=" Ŀ " +4 CE$=" PAR DARCHE YOANN ÿ " +5 CF$=" ٳ " +6 CG$=" " +7 REM +8 CH$=" PG : 3 Production : Helciziem " +9 REM +10 C$="" +11 CLS:KEY OFF:COLOR 13 +12 D$="":PRINT STRING$(80,176):PRINT STRING$(80,176) +13 PRINT D$;B$;D$ +14 PRINT D$;CB$;D$:PRINT D$;CB$;D$:PRINT D$;CB$;D$:PRINT D$;CB$;D$ +15 PRINT D$;CC$;D$ +16 PRINT D$;CB$;D$:PRINT D$;CB$;D$:PRINT D$;CB$;D$ +17 PRINT D$;CD$;D$:PRINT D$;CE$;D$:PRINT D$;CF$;D$:PRINT D$;CG$;D$ +18 PRINT D$;CB$;D$:PRINT D$;CB$;D$:PRINT D$;CB$;D$ +19 PRINT D$;CH$;D$ +20 PRINT D$;CB$;D$:PRINT D$;CB$;D$:PRINT D$;CB$;D$:PRINT D$;C$;D$; +21 LOCATE 25,1:PRINT STRING$(80,176); +22 LOCATE 24,1:PRINT STRING$(80,176); +23 LOCATE 21,23:COLOR 15:PRINT " FIN autre touche pour SUITE " +24 A$=INPUT$(1):IF A$=CHR$(27) THEN END +25 COLOR 13:CLS +999 REM +1000 F$="|--------|------------|------------|-----|-----|--------------|------|" +1001 PRINT F$ +1003 H$="| | | | | | | |" +1005 PRINT "| DOSE | Animaux + | Animaux - | C + | C - | R C+/C- + C+ | % |" +1006 PRINT F$ +1008 GOSUB 60000 +1009 DIM DO(8,ND) +1010 LOCATE 4,1:FOR O=1 TO ND +1015 PRINT H$:NEXT:PRINT F$ +1020 LOCATE 4,1:PCOPY 0,1 +1030 GOSUB 60400 +1060 A$=INKEY$:IF A$=CHR$(27) THEN END +1061 IF A$="" THEN 1060 +1062 IF A$="E" OR A$="e" THEN LOCATE 25,1:COLOR 15:PRINT "EDITION: FIN pour changer la dose 8 4 6 2 ou ";CHR$(24);" ";CHR$(25);" ";CHR$(26);" ";CHR$(27);" <%> calcule %";:GOSUB 60200:LOCATE 25,1:PRINT SPACE$(80); +1070 IF A$="I" OR A$="i" THEN LOCATE 25,1:PRINT SPACE$(80);:LCOPY:GOTO 1060 +1080 IF A$="c" OR A$="C" THEN 2010 +1998 COLOR 14:LOCATE 25,1:PRINT " diter mprimer alcule la DE50 fin "; +1999 GOTO 1060 +2000 REM ****************** CALCULE DE LA DE50 ********************************* +2010 PCOPY 0,2:GX=1E+10 +2020 IF TEST=0 THEN LOCATE 12,20:COLOR 0,7:BEEP:PRINT "FAITES UN CALCULE DES POURCENTAGES puid <%>":COLOR 13,0:A$=INPUT$(1):PCOPY 2,0:GOTO 1060 +2030 FOR I=1 TO ND +2031 IF DO(8,I)>PX AND DO(8,I)<50 THEN PX=DO(8,I):P=I +2032 IF DO(8,I)50 THEN GX=DO(8,I):G=I +2033 NEXT I +2034 GNBA=DO(2,G)+DO(3,G) +2035 PNBA=DO(2,P)+DO(3,P) +2040 LOCATE 23,10:PRINT "(";PNBA;"+";GNBA;") x":LOCATE 22,24:PRINT " 50 -";PX +2050 LOCATE 23,24:PRINT "" +2060 LOCATE 24,24:PRINT GX;"-";PX; +2070 V=(PNBA+GNBA)*(50-PX)/(GX-PX) +2080 LOCATE 23,39:PRINT " = ";V;" ";TDOSE$:PCOPY 0,1:GOTO 1060 +59999 STOP:REM ***************************************************************** +60000 PCOPY 0,1:LOCATE 11,10:PRINT "Ŀ" +60010 LOCATE 12,10:PRINT " Nombre de dose : " +60020 LOCATE 13,10:PRINT "" +60030 X=29:Y=12:V=1:GOSUB 60100 +60039 PCOPY 1,0:ND=VAL(G$):G$="" +60040 IF ND>=16 OR ND<=0 THEN BEEP:GOTO 60000 ELSE RETURN +60049 REM ********************************************************************** +60050 K=LEN(M$):Q=INT((L-K)/2):M$=STRING$(Q," ")+M$+STRING$(Q," ") +60051 IF (L-K)/2 <> Q THEN M$=M$+" " +60052 RETURN +60099 REM ********************************************************************** +60100 A$=INKEY$:IF A$=CHR$(27) THEN RETURN ELSE IF A$="" THEN 60100 +60110 IF LEN(A$)>1 THEN 60120 ELSE 60130 +60120 IF A$=CHR$(0)+"K" OR A$="4" THEN G$=LEFT$(G$,LEN(G$)-1):GOTO 60100 +60125 GOTO 60100 +60130 IF A$=CHR$(13) THEN 60150 +60140 G$=G$+A$:LOCATE Y,X:PRINT G$;:GOTO 60100 +60150 IF V=1 THEN IF VAL(G$)=0 AND G$<>"0" THEN G$="":BEEP:GOTO 60100 ELSE RETURN +60160 RETURN +60199 REM ********************************************************************** +60200 LX=2:LY=1:A(1)=2:A(2)=11:A(3)=24:FX=11:FY=4:L=12:M$=STR$(DO(LX,LY)):GOSUB 60050:L$=M$:B(1)=8:B(2)=12:B(3)=12:LOCATE FY,FX:COLOR 15:PRINT M$ +60210 A$=INKEY$:IF A$=CHR$(27) THEN LOCATE FY+3,FX:COLOR 13:PRINT L$:RETURN ELSE IF A$="" THEN 60210 +60220 IF (A$=CHR$(0)+"H" OR A$="8") AND LY>=2 THEN LY=LY-1 +60230 IF (A$=CHR$(0)+"P" OR A$="2") AND LY<=ND-1 THEN LY=LY+1 +60240 IF (A$=CHR$(0)+"M" OR A$="6") AND LX<=2 THEN LX=LX+1 +60250 IF (A$=CHR$(0)+"K" OR A$="4") AND LX>=2 THEN LX=LX-1 +60255 IF A$="" OR A$="%" THEN GOSUB 60500:GOTO 60270 +60260 IF A$="D" OR A$="d" THEN GOSUB 60410 +60270 IF A$=CHR$(13) OR A$=" " THEN 60300 +60280 COLOR 13:LOCATE FY+3,FX:PRINT L$:COLOR 15:LOCATE 3+LY,A(LX):L=B(LX):M$=STR$(DO(LX,LY)):GOSUB 60050:PRINT M$:L$=M$:FX=A(LX):FY=LY +60290 PCOPY 0,1:GOTO 60210 +60300 PCOPY 0,1:PCOPY 0,2 +60310 COLOR 14:LOCATE 10,20:PRINT "Ŀ" +60312 LOCATE 11,20:PRINT " ANCIENNE VALEUR : " +60314 LOCATE 12,20:PRINT " NOUVELLE VALEUR : " +60316 LOCATE 13,20:PRINT "" +60318 COLOR 15:LOCATE 11,40:PRINT DO(LX,LY); +60319 X=41:Y=12:V=1:GOSUB 60100 +60320 IF VAL(G$)=DO(LX,LY) THEN G$="":PCOPY 2,0:GOTO 60290 +60330 DO(LX,LY)=VAL(G$):G$="" +60340 IF LX=1 THEN GOSUB 60400 +60342 IF LX=2 THEN GOSUB 60350:GOSUB 60400 +60343 IF LX=3 THEN GOSUB 60370:GOSUB 60400 +60344 M$=STR$(DO(LX,LY)):L=B(LX):GOSUB 60050:LOCATE LY+3,A(LX):COLOR 15:PRINT M$:L$=M$:GOTO 60290 +60349 REM *********************** C + ****************************************** +60350 IO=0:FOR I=1 TO ND +60351 IO=IO+DO(2,I):DO(4,I)=IO:DO(6,I)=IO:DO(7,I)=DO(5,I)+IO:NEXT:RETURN +60369 REM *********************** C - ****************************************** +60370 IO=0:FOR I=ND TO 1 STEP -1 +60371 IO=IO+DO(3,I):DO(5,I)=IO:DO(7,I)=DO(6,I)+IO:NEXT:RETURN +60399 REM *************** AFFICHE DONNEES ************************************** +60400 PCOPY 1,0:COLOR 13:LOCATE 4,1:FOR O=1 TO ND +60401 M$=STR$(DO(1,O)):L=8:GOSUB 60050:LOCATE ,2:PRINT M$; +60402 M$=STR$(DO(2,O)):L=12:GOSUB 60050:LOCATE ,11:PRINT M$; +60403 M$=STR$(DO(3,O)):L=12:GOSUB 60050:LOCATE ,24:PRINT M$; +60404 M$=STR$(DO(4,O)):L=5:GOSUB 60050:LOCATE ,37:PRINT M$; +60405 M$=STR$(DO(5,O)):L=5:GOSUB 60050:LOCATE ,43:PRINT M$; +60406 M$=STR$(DO(6,O))+"/"+STR$(DO(7,O)):L=14:GOSUB 60050:LOCATE ,49:PRINT M$; +60407 M$=STR$(DO(8,O)):L=6:GOSUB 60050:LOCATE ,64:PRINT M$ +60408 NEXT:PCOPY 0,1:RETURN +60409 REM ************************** DOSE ************************************** +60410 IF TDOSE$="" THEN TDOSE$="DOSE" +60420 PCOPY 0,1 +60430 LOCATE 10,11:PRINT "Ŀ" +60440 LOCATE 11,11:PRINT " Ancien titre : " +60450 LOCATE 12,11:PRINT " Nouveau titre : " +60455 LOCATE 13,11:PRINT "" +60460 LOCATE 11,28:PRINT TDOSE$ +60470 LOCATE 12,28:INPUT "",TD$:IF TD$<>"" THEN TDOSE$=TD$ +60480 IF LEN(TDOSE$)>8 THEN BEEP:PRINT :PRINT "TROP LONG !!!!":TDOSE$="DOSE":GOTO 60455 +60490 PCOPY 1,0:M$=TDOSE$:L=8:GOSUB 60050:COLOR 13:LOCATE 2,2:PRINT M$:PCOPY 0,1:RETURN +60499 REM ***************************** % ************************************** +60500 PCOPY 0,1:ER=0:FOR O=1 TO ND +60510 IF DO(7,O)=0 THEN ER=ER+1:DO(8,O)=0:GOTO 60530 +60520 DO(8,O)=INT(DO(6,O)/DO(7,O)*1000)/10 +60530 NEXT +60531 IF ER>=1 THEN LOCATE 20,15:COLOR 0,7:PRINT ER;" CALCULE(S) IMPOSSIBLE(S) [DIVISION PAR 0] ":COLOR 13,0:A$=INPUT$(1):PCOPY 1,0 ELSE TEST=1 +60532 GOSUB 60400:PCOPY 0,1:RETURN + \ No newline at end of file diff --git a/DECOMPO.BAS b/DECOMPO.BAS new file mode 100644 index 0000000000000000000000000000000000000000..c95a525ba93af5de39d437b7c9250087b2375b3b GIT binary patch literal 879 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 literal 0 HcmV?d00001 diff --git a/DESSIN.BAS b/DESSIN.BAS new file mode 100644 index 0000000..34a9e82 --- /dev/null +++ b/DESSIN.BAS @@ -0,0 +1,63 @@ + + +x%=160:y%=100:c%=1 +screen 1 + +debut : + +a$=inkey$ +if a$="6" and x%<319 then x%=x%+1 +if a$="4" and x%>0 then x%=x%-1 +if a$="8" and y%>0 then y%=y%-1 +if a$="2" and y%<199 then y%=y%+1 +if a$=" " or a$=chr$(13) then pset(x%,y%),c%:ac%=c% +if a$="S" or a$="s" then goto sauve +if a$="L" or a$="l" then goto rapel +if a$="p" or a$="P" then goto peint +if a$="c" or a$="C" then goto couleur +if a$="r" or a$="R" then goto rond +if x%=ax% and y%=ay% then goto debut + +pset(ax%,ay%),ac% +ac%=point(x%,y%):pset(x%,y%),c%:ax%=x%:ay%=y% +line (0,0)-(319,199),0,b +goto debut + +sauve : +def seg=&hb800 +s$=input$(1) +Bsave "b:IMAGE.DA"+s$,0,16384 +sa%=1 +goto debut + +rapel : +if sa%=0 then line(0,0)-(319,199),1,b:a$=input$(1):if a$="q" or a$="Q" then goto debut +cls +INPUT "Nom de l'image",n$ +def seg=&hb800 +bload n$ +sa%=0 +goto debut + +peint : +line (0,0)-(319,199),2,b +co%=1:a$=input$(1) +if a$="A" or a$="a" then co%=1 +if a$="z" or a$="Z" then co%=2 +if a$="e" or a$="E" then co%=3 +pset (x%,y%),0:paint(x%,y%),co%,c%:ac%=co% +goto debut + +couleur : +a$=input$(1) +if a$="a" or a$="A" then c%=1 +if a$="z" or a$="Z" then c%=2 +if a$="e" or a$="E" then c%=3 +goto debut + +rond : +line (0,0)-(319,199),2,b +a$=input$(2) +circle (x%,y%),val(a$),c% +goto debut + \ No newline at end of file diff --git a/DUNNETT.BAS b/DUNNETT.BAS new file mode 100644 index 0000000000000000000000000000000000000000..a8949c3f425922ea227f78dbe2dda47989cacf34 GIT binary patch literal 6043 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 Y7A_*->%x_#wRId^6<)_RfNORC56H;casU7T literal 0 HcmV?d00001 diff --git a/DUNNETT2.BAS b/DUNNETT2.BAS new file mode 100644 index 0000000000000000000000000000000000000000..76d7d71236c59b6512267350ee48d2d0ca311fa3 GIT binary patch literal 9778 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 literal 0 HcmV?d00001 diff --git a/ECHELLE.BAS b/ECHELLE.BAS new file mode 100644 index 0000000000000000000000000000000000000000..e7bd6952dd48f9c312dba554520aeaabaca90b25 GIT binary patch literal 497 zcmZutJxc>Y6nvd1%G*0*6I7Pt7WZU}yA3vp7DkhJNrVtcVeP(iQbU+M?ZZQ&#_=kGkC{YXjiS|vL{_JXEon!o@EXUkhGGiwGc`^bDGv>$a9K!i@*pe zz%E3|3e4NVp3O}MW=I*@hm<21D4h?Eb%8at%46V@b!Z=OobFsYiui&xvZd_(+}otm z?;;sg$&tzlpYZgDsh|r|`xU$CEx0FV|1us0o`zjs$))Zx^`}dVTx+-1RP%=L THEN DX=SGN(DX)*(L-1) +1230 IF ABS(DY)>=H THEN DY=SGN(DY)*(H-1) +1240 IF IX<>0 THEN IX=1*SGN(IX) +1250 IF IY<>0 THEN IY=1*SGN(IY) +1260 IF P<>0 THEN P=P/ABS(P):IF FLAG=2 THEN 1280 +1270 IF P=1 THEN L=1:H=1:GOTO 1210 ELSE IF P=1 THEN L=LEN(A$):H=L:GOTO 1210 +1280 IF P1<>0 THEN P1=1 +1290 IF E<>0 THEN E=1 +1300 FLAG=1:PL=0:D=1:CO=CO+(CO=FO):IF CO=0 THEN CO=8 +1310 '========================================================================== +1320 ' PROGRAMME PRINCIPAL +1330 '========================================================================== +1340 FOR K=1 TO LEN(A$) +1350 IF P>0 THEN L=L1*K*P:H=H1*K*P +1360 IF P<0 THEN L=L1/LEN(A$)*(LEN(A$)-K+1):H=H1/LEN(A$)*(LEN(A$)-K+1) +1370 CA=ASC(MID$(A$,K,1)) +1380 FOR J=0 TO 7:J1=J*H*SN:J2=J*H*CS:I1=IX*J +1390 IF P1=1 THEN GOSUB 1600 +1400 V=ALPHA(CA,(J+1)*FLAG+8*PL) +1410 IF D=2 THEN GOSUB 2080 +1420 FOR C=1 TO 8:C1=(C-1)*L*CS:C2=(C-1)*L*SN:I2=IY*C +1430 Z=INT (2^(8-C)) +1440 IF V>=Z THEN GOSUB 1950 ELSE 1450 +1450 NEXT C +1460 NEXT J +1470 ON D GOSUB 2140,2260 +1480 NEXT K +1490 IF S$="O" OR S$="o" THEN 1730 +1500 GOSUB 2760:SCREEN 0,0:WIDTH 80 +1510 COLOR 7,2:CLS:COLOR 7,1:FOR I=11 TO 15:LOCATE I,26:PRINT SPACE$(30):NEXT I +1520 LOCATE 13,30:PRINT "Autre texte ( O ou N )";:T$="" +1530 T$=INKEY$:IF T$="" THEN 1530 +1540 IF T$="o" OR T$="O" THEN 1200 ELSE IF T$<>"n" AND T$<>"N" THEN 1520 +1550 SCREEN SCR:CLS:GOSUB 2840:T$="" +1560 T$=INKEY$:IF T$="" THEN 1560 ELSE SCREEN 0,0:CLS:END +1570 '========================================================================== +1580 ' Effacement pour priorit +1590 '========================================================================== +1600 FOR C=1 TO 8:C1=(C-1)*L*CS:C2=(C-1)*L*SN:I2=IY*C +1610 FOR S=0 TO L-1:FOR T=0 TO H-1 +1620 X1=C1-J1+S*CS-T*SN+I1+X+S*DX*CS-T*DY*SN +1630 X1=INT((X1-INT(X1))*10/5+INT(X1)) +1640 Y1=C2+J2+S*SN+T*CS+I2+Y+S*DX*SN+T*DY*CS +1650 Y1=INT((Y1-INT(Y1))*10/5+INT(Y1)) +1660 PSET (X1,Y1),FO*(1-E)+CO*P1 +1670 NEXT T,S,C:RETURN +1680 '========================================================================== +1690 ' Paramtres pour symtries +1700 '-------------------------------------------------------------------------- +1710 ' symtrie polaire +1720 '-------------------------------------------------------------------------- +1730 S$="N":IF C$="o" OR C$="O" THEN A=A+3.14:SN=SIN(A):CS=COS(A) +1740 IF P<>0 THEN L=L1:H=H1 +1750 IF C$<>"O" OR C$<>"o" THEN 1820 +1760 X=X2+(16*H-1)*SN+(2*L+1)*CS:Y=Y2-(16*H-1)*CS+(2*L+1)*SN +1770 X=INT((X-INT(X))*10/5+INT(X)) +1780 Y=INT((Y-INT(Y))*10/(+INT(Y)):GOTO 1340 +1790 '-------------------------------------------------------------------------- +1800 ' Symtrie par X +1810 '-------------------------------------------------------------------------- +1820 FLAG=-1:PL=1:X=X2-8*H*SN:Y=Y2+8*H*CS +1830 X=INT((X-INT(X))*10/5+INT(X)) +1840 Y=INT((Y-INT(Y))*10/5+INT(Y)) +1850 IF C$="X" OR C$="x" THEN 1340 +1860 '-------------------------------------------------------------------------- +1870 ' Symtrie par Y +1880 '-------------------------------------------------------------------------- +1890 X=X2-8*L*CS:Y=Y2-8*L*SN:D=2:FLAG=1:PL=0 +1900 X=INT((X-INT(X))*10/5+INT(X)) +1910 Y=INT((Y-INT(Y))*10/5+INT(Y)):GOTO 1340 +1920 '========================================================================== +1930 ' Ecriture +1940 '========================================================================== +1950 FOR S=0 TO L-1:FOR T=0 TO H-1 +1960 X1=C1-J1+S*CS-T*SN+I1+X+S*DX*CS-T*DY*SN +1970 X1=INT((X1-INT(X1))*10/5+INT(X1)) +1980 Y1=C2+J2+S*SN+T*CS+I2+Y+S*DX*SN+T*DY*CS +1990 Y1=INT((Y1-INT(Y1))*10/5+INT(Y1)) +2000 Z$=STR$(X1):W$=STR$(Y1) +2010 DRAW"B M"+Z$+","+W$:B=POINT(X1,Y1):IF B<>E*FO THEN 1980 +2020 PSET (X1,Y1),CO*(1-E)+FO*E +2030 NEXT T,S +2040 V=V-Z:RETURN +2050 '========================================================================== +2060 ' Carractre pour symtrie Y +2070 '========================================================================== +2080 V1=0:FOR C=1 TO 8 +2090 Z=INT(2^(8-C)):IF V>=Z THEN V1=V1+INT(2^(C-1)):V=V-Z +2100 NEXT C:V=V1:RETURN +2110 '========================================================================== +2120 ' Calcul des Coordonnes +2130 '========================================================================== +2140 IF P=0 THEN X=8*L*CS+X+EX +2150 IF P>0 THEN X=8*L*CS+X+ABS(P-PL)*8*H1*SN+EX +2160 IF P<0 THEN X=8*L*CS+X-(ABS(P)-PL)*8*SN+EX +2170 IF P=0 THEN Y=8*L*SN+Y+EY +2180 IF P>0 THEN Y=8*L*SN+Y-ABS(P-PL)*8*H1*CS+EY +2190 IF P<0 THEN Y=8*L*SN+Y+ABS(P)-PL)*8*CS+EY +2200 X=INT((X-INT(X))*10/5+INT(X)) +2210 Y=INT((Y-INT(Y))*10/5+INT(Y)) +2220 RETURN +2230 '========================================================================== +2240 ' Calcul des coordonnes pour symtrie Y +2250 '========================================================================== +2260 IF P=0 THEN X=-8*L*CS+X-EX +2270 IF P>0 THEN X=-8*(L+1)*CS+X+ABS(P-PL)*8*H1*SN-EX +2280 IF P<0 THEN X=-8*(L-1)*CS+X-(ABS(P)-PL)*8*SN-EX +2290 IF P=0 THEN Y=-8*L*SN+Y+EY-SN +2300 IF P>0 THEN Y=-8*(L+1)*SN+Y-ABS(P-PL)*8*H1*CS+EY +2310 IF P<0 THEN Y=-8*(L-1)*SN+Y+(ABS(P)-PL)*8*CS+EY +2320 X=INT((X-INT(X))*10/5+INT(X)) +2330 Y=INT((Y-INT(Y))*10/5+INT(Y)) +2340 RETURN +2350 '========================================================================== +2360 ' POLICE DE CARACTERES +2370 '========================================================================== +2380 FOR I=1 TO 255:IF I=7 THEN I=8 ELSE IF I=9 THEN I=14 ELSE IF I=28 THEN I=32 +2390 PRINT CHR$(I); +2400 NEXT I:LOCATE 14,30:PRINT " P A T I E N T E Z " +2410 DEF SEG=&HB800 +2420 ADRESSE=0:CURSEUR=0 +2430 FOR I=1 TO 255:IF I=7 THEN I=8 ELSE IF I=9 THEN I=14 ELSE IF I=28 THEN I=32 +2440 FOR J=1 TO 8 STEP 2 +2450 ALPHA (I,J)=PEEK(ADRESSE):ALPHA (I,J+1)=PEEK(ADRESSE+8192) +2460 ADRESSE=ADRESSE+80 +2470 NEXT J:CURSEUR=CURSEUR+1:ADRESSE=CURSEUR +2480 IF I=90 THEN CURSEUR=4*80:ADRESSE=CURSEUR +2490 IF I=170 THEN CURSEUR=8*80:ADRESSE=CURSEUR +2500 IF I=250 THEN CURSEUR=12*80:ADRESSE=CURSEUR +2510 NEXT I +2520 CLS:RETURN +2530 DEF SEG=0 +2540 FOR I=1 TO 255:IF I=7 THEN I=8 ELSE IF I=9 THEN I=14 ELSE IF I=28 THEN I=32 +2550 A$="":PRINT" Valeur Adresse d'lment ASCII (I) LIGNE (J)";SPACE$(12); +2560 PRINT "Dessin":PRINT :FOR J=1 TO 8 +2570 A=ALPHA(I,J):PRINT " ";A, +2580 IF A>127 THEN A$=A$+"":A=A-128 ELSE A$=A$+" " +2590 IF A>63 THEN A$=A$+"":A=A-64 ELSE A$=A$+" " +2600 IF A>31 THEN A$=A$+"":A=A-32 ELSE A$=A$+" " +2610 IF A>15 THEN A$=A$+"":A=A-16 ELSE A$=A$+" " +2620 IF A>7 THEN A$=A$+"":A=A-8 ELSE A$=A$+" " +2630 IF A>3 THEN A$=A$+"":A=A-4 ELSE A$=A$+" " +2640 IF A>1 THEN A$=A$+"":A=A-2 ELSE A$=A$+" " +2650 IF A>0 THEN A$=A$+"":A=A-1 +2660 PRINT VAPTR(ALPHA(I,J)),I,J;:LOCATE CSRLIN,60:PRINT A$:A$="" +2670 IF INKEY$="" THEN 2670 +2680 NEXT J:PRINT +2690 NEXT I +2700 RETURN +2710 '========================================================================== +2720 ' Ecran-Disque +2730 '========================================================================== +2740 ' Sauvegarde +2750 '-------------------------------------------------------------------------- +2760 DEF SEG=&HB800:BSAVE N$,0,16384 +2770 ' +2780 ' +2790 ' +2800 RETURN +2810 '-------------------------------------------------------------------------- +2820 ' Lecture +2830 '-------------------------------------------------------------------------- +2840 DEF SEG=&HB800:BLOAD N$,0 +2850 ' +2860 ' +2870 ' +2880 RETURN +2890 '-------------------------------------------------------------------------- +2900 ' Traitement d'erreur:"Fichier non existent" +2910 '-------------------------------------------------------------------------- +2920 RESUME 1160 +2930 '========================================================================== +2940 ' MENU PRINCIPAL +2950 '========================================================================== +2960 ' Affichage des donnes courantes +2970 '-------------------------------------------------------------------------- +2980 SCREEN 0,0:WIDTH 80:COLOR 7,4:CLS:COLOR 7,2:A=A2:A1=INT(A*180/3.14):L=L1:H=H1:C$="-" +2990 LOCATE 2,5:PRINT SPACE$(72); +3000 FOR I=3 TO 22:LOCATE I,5:PRINT" ";:COLOR 7,1:PRINT SPACE$(36); +3010 PRINT STRING$(22,46);" [ ] ";:COLOR 7,2:PRINT" ";:NEXT I +3020 LOCATE 22,5:PRINT" ";:COLOR 7,1:PRINT" ";STRING$(57,46);"......]"; +3030 COLOR 7,2:LOCATE 23,5:PRINT SPACE$(72);:LOCATE 24,5:PRINT SPACE$(72); +3040 COLOR 3,5:LOCATE 2,31:PRINT "Choix des PARAMETRES":COLOR 7,1 +3050 LOCATE 3,9:PRINT"Couleur du FOND FO":LOCATE 3,67:PRINT FO; +3060 LOCATE 4,9:PRINT"Nom d'ECRAN ,ANCIEN ou CREER N$":LOCATE 4,68:PRINT N$; +3070 LOCATE 5,9:PRINT"Image avec SYMETRIE (O ou N) S$":LOCATE 5,68:PRINT S$; +3080 LOCATE 6,9:PRINT"Par raport X,Y ou O (lettre) C$":LOCATE 6,68:PRINT C$; +3090 LOCATE 7,9:PRINT"Origine du texte, ABSCISSE X":LOCATE 7,67:PRINT X; +3100 LOCATE 8,9:PRINT"Origine du texte, ORDONNEE Y":LOCATE 8,67:PRINT Y; +3110 LOCATE 9,9:PRINT"Angle en DEGRES (- si<0) A":LOCATE 9,67:PRINT A1; +3120 LOCATE 10,9:PRINT"Cofficient de LARGEUR L":LOCATE 10,67:PRINT L; +3130 LOCATE 11,9:PRINT"Cofficient d' HAUTEUR H":LOCATE 11,67:PRINT H; +3140 LOCATE 12,9:PRINT"Cofficient de DEFORMATION X DX":LOCATE 12,67:PRINT DX; +3150 LOCATE 13,9:PRINT"Cofficient de DEFORMATION Y DY":LOCATE 13,67:PRINT DY; +3160 LOCATE 14,9:PRINT"Cofficient d' INCLINAISON X IX":LOCATE 14,67:PRINT IX; +3170 LOCATE 15,9:PRINT"Cofficient d' INCLINAISON Y IY":LOCATE 15,67:PRINT IY; +3180 LOCATE 16,9:PRINT"Cofficient de PERSPECTIVE P":LOCATE 16,67:PRINT P; +3190 LOCATE 17,9:PRINT"Cofficient de PRIORITE P1":LOCATE 17,67:PRINT P1; +3200 LOCATE 18,9:PRINT"Effet de l'ESCALIER, sens X EX":LOCATE 18,67:PRINT EX; +3210 LOCATE 19,9:PRINT"Effet de l'ESCALIER, sens Y EY":LOCATE 19,67:PRINT EY; +3220 LOCATE 20,9:PRINT"Ecriture INVERSE E":LOCATE 10,67:PRINT E; +3230 LOCATE 21,9:PRINT"Couleur d'ENCRE CO":LOCATE 21,67:PRINT CO; +3240 LOCATE 22,9:PRINT"Texte crire :[";A$; +3250 COLOR 3,5:LOCATE 23,7 +3260 PRINT" Dplacements: ";CHR$(24);",";CHR$(25); +3270 PRINT" / PARAMETRE, PUIS RETURN / [ESC] pour terminer ";:COLOR 7,1 +3280 '-------------------------------------------------------------------------- +3290 ' Modification des paramtres +3300 '-------------------------------------------------------------------------- +3310 IF DRA=1 THEN 3340 +3320 LIN=3:LINA=LIN:P$=STR$(FO):GOSUB 3430 +3330 LIN =4:GOSUB 3520 +3340 LIN =5:LINA=4:P$=" "+N$:GOSUB 3600:GOTO 3370 +3350 I$=INKEY$:IF I$="" THEN 3350 ELSE IF I$=CHR$(27) THEN COLOR 7,1:RETURN +3360 IF I$<>CHR$(0)+CHR$(72) AND I$<>CHR$(0)+CHR$(80) THEN 3390 +3370 IF I$=CHR$(0)+CHR$(72) THEN LIN=LIN-1:IF LIN<5 THEN LIN=5:LOCATE LIN,67 +3380 IF I$=CHR$(0)+CHR$(80) THEN LIN=LIN+1:IF LIN>22 THEN LIN=22:LOCATE LIN,67 +3390 IF LIN=5 THEN GOSUB 3600:GOTO 3350 +3400 IF LIN=6 THEN GOSUB 3700:GOTO 3350 +3410 ON LIN-6 GOSUB 3800,3910,3930,4050,4160,4170,4180:IF LIN<14 THEN 3350 +3420 ON LIN-13 GOSUB 4190,4200,4210,4220,4230,4240,4250,4260,4360:GOTO 3350 +3430 GOSUB 4490:LOCATE LIN,67:PRINT FO;:LINA=LIN:IN$=" " +3440 I$=INKEY$:IF I$="" THEN 3440 +3450 IF ASC(I$)=13 AND IN$<>" " THEN FO=VAL(IN$):GOTO 3490 +3460 IF ASC(I$)<48 OR ASC(I$)>57 THEN PLAY"o2l8g":GOTO 3440 +3470 IN$=IN$+I$:GOSUB 4490:LOCATE LIN,67:PRINT IN$; +3480 IF LEN(IN$)<3 THEN GOTO 3440 ELSE PLAY"o2l8f" +3490 IF FO<0 OR FO>7 THEN PLAY"O2L8A":GOTO 3430 +3500 P$=IN$:GOSUB 4490:LOCATE LIN,67:PRINT P$ +3510 RETURN +3520 GOSUB 4490:LOCATE LIN,68:PRINT N$;:LINA=LIN:P$=" "+N$:IN$=" " +3530 I$=INKEY$:IF I$=""THEN 3530 +3540 IF ASC(I$)=13 AND IN$<>" " THEN N$=MID$(IN$,2,3):P$=IN$:GOTO 3580 +3550 IF ASC(I$)<48 OR ASC(I$)>127 THEN PLAY"O2L8G":GOTO 3530 +3560 IN$=IN$+I$:GOSUB 4490:LOCATE LIN,67:PRINT IN$; +3570 IF LEN(IN$)<5 THEN GOTO 3530 ELSE PLAY"O2L8G":N$="":GOTO 3520 +3580 P$=IN$:GOSUB 4490:LOCATE LIN,67:PRINT P$ +3590 RETURN +3600 GOSUB 4490:LOCATE LIN,68:PRINT S$;:LINA=LIN:P$=" "+S$:IN$=" " +3610 IF DRA=1 THEN 3630 ELSE DRA=1:GOTO 3620 +3620 I$=INKEY$:IF I$="" THEN 3620 +3630 IF I$=CHR$(0)+CHR$(72) OR I$=CHR$(0)+CHR$(80) THEN RETURN +3640 IF ASC(I$)=13 AND IN$<>" " THEN S$=MID$(IN$,2,1):P$=" "+S$:GOTO 3690 +3650 IF I$<>"n" AND I$<>"N" AND I$<>"o" AND I$<>"O" THEN PLAY"O2L8G":GOTO 3620 +3660 IF I$="n" OR I$="N" THEN I$="N" ELSE I$="O" +3670 IN$=IN$+I$:GOSUB 4490:LOCATE LIN,67:PRINT IN$; +3680 IF LEN (IN$)<3 THEN 3620 ELSE PLAY "O2L8G":S$="":GOTO 3600 +3690 RETURN +3700 GOSUB 4490:LOCATE LIN,68:PRINT C$;:LINA=LIN:P$=" "+C$:IN$=" ":GOTO 3730 +3710 IF S$="N" THEN RETURN +3720 I$=INKEY$:IF I$=" " THEN 3720 +3730 IF I$=CHR$(0)+CHR$(72) OR I$=CHR$(0)+CHR$(80) THEN RETURN +3740 IF ASC(I$)=13 AND IN$<>" " THEN C$=MID$(IN$,2,1):P$=" "+C$:GOTO 3790 +3750 IF I$="x" THEN I$="X" ELSE IF I$="y" THEN I$="Y" ELSE IF I$="o" THEN I$="O" +3760 IF I$<>"X" AND I$<>"Y" AND I$<>"O" THEN PLAY"O2L8G":GOTO 3720 +3770 IN$=IN$+I$:GOSUB 4490:LOCATE LIN,67:PRINT IN$; +3780 IF LEN(IN$)<3 THEN GOTO 3720 ELSE PLAY"O2L8G":C$="":GOTO 3700 +3790 RETURN +3800 SE=X:T$="X" :GOSUB 3810:X=SE:RETURN +3810 GOSUB 4490:LOCATE LIN,67:PRINT SE;:LINA=LIN:P$=STR$(SE):IN$=" ":GOTO 3830 +3820 I$=INKEY$:IF I$="" THEN 3820 +3830 IF I$=CHR$(0)+CHR$(72) OR I$=CHR$(0)+CHR$(80) THEN RETURN +3840 IF ASC(I$)=13 AND IN$<>" " THEN SE=VAL(IN$):GOTO 3880 +3850 IF ASC(I$)<48 OR ASC(I$)>57 THEN PLAY"O2L8G":GOTO 3820 +3860 IN$=IN$+I$:GOSUB 4490:LOCATE LIN,67:PRINT IN$; +3870 IF LEN(IN$)<5 THEN GOTO 3820 ELSE PLAY"O2L8G":I$=" ":GOTO 3800 +3880 IF SE<0 OR SE>319-320*(SCR=2) AND T$="X" THEN PLAY"O2L8G":GOTO 3800 +3885 IF SE<0 OR SE>199 AND T$="Y" THEN PLAY"O2L8G":GOTO 3800 +3890 P$=IN$:GOSUB 4490:LOCATE LIN,67:PRINT P$ +3900 RETURN +3910 SE=Y:T$="Y":GOSUB 3810:Y=SE:RETURN +3920 RETURN +3930 SE=INT(A*180/3.14):T$="0":GOSUB 3940:A=SE*3.14/180:RETURN +3940 GOSUB 4490:LOCATE LIN,67:PRINT SE;:LINA=LIN:P$=STR$(SE):IN$=" ":GOTO 3960 +3950 I$=INKEY$:IF I$="" THEN 3950 +3960 IF I$=CHR$(0)+CHR$(72) OR I$=CHR$(0)+CHR$(80) THEN RETURN +3970 IF ASC(I$)=13 AND IN$<>" " THEN SE=VAL(IN$):GOTO 4020 +3980 IF I$="-" THEN IN$="-":GOTO 3950 +3990 IF ASC(I$)<48 OR ASC(I$)>57 THEN PLAY"O2L8G":GOTO 3950 +4000 IN$=IN$+I$:GOSUB 4490:LOCATE LIN,67:PRINT IN$; +4010 IF LEN(IN$)<5 THEN GOTO 3950 ELSE PLAY"O2L8G":I$=" ":GOTO 3930 +4020 IF T$="1" THEN SE=ABS(SE):IN$=" "+MID$(IN$,2,LEN(IN$)-1) +4030 P$=IN$:GOSUB 4490:LOCATE LIN,67:PRINT P$ +4040 RETURN +4050 SE=L:GOSUB 4060:L=SE:RETURN +4060 GOSUB 4490:LOCATE LIN,67:PRINT SE;:LINA=LIN:P$=STR$(SE):IN$=" ":GOTO 4080 +4070 I$=INKEY$:IF I$="" THEN 4070 +4080 IF I$=CHR$(0)+CHR$(72) OR I$=CHR$(0)+CHR$(80) THEN RETURN +4090 IF ASC(I$)=13 AND I$<>" " THEN SE=VAL(IN$):GOTO 4130 +4100 IF ASC(I$)<48 OR ASC(I$)>57 THEN PLAY"O2L8G":GOTO 4070 +4110 IN$=IN$+I$:GOSUB 4490:LOCATE LIN,67:PRINT IN$; +4120 IF LEN(IN$)<4 THEN GOTO 4070 ELSE PLAY"O2G8":I$=" ":GOTO 4060 +4130 IF SE<1 OR SE>40 THEN PLAY"O2L8G":GOTO 4060 +4140 P$=IN$:GOSUB 4490:LOCATE LIN,67:PRINT P$ +4150 RETURN +4160 SE=H:GOSUB 4060:H=SE:RETURN +4170 SE=DX:T$="0":GOSUB 3940:DX=SE:RETURN +4180 SE=DY:T$="0":GOSUB 3940:DY=SE:RETURN +4190 SE=IX:T$="0":GOSUB 3940:IX=SE:RETURN +4200 SE=IY:T$="0":GOSUB 3940:IY=SE:RETURN +4210 SE=P:T$="0":GOSUB 3940:P=SE:RETURN +4220 SE=P1:T$="1":GOSUB 3940:P1=SE:RETURN +4230 SE=EX:T$="0":GOSUB 3940:EX=SE:RETURN +4240 SE=EY:T$="0":GOSUB 3940:EY=SE:RETURN +4250 SE=E:T$="1":GOSUB 3940:E=SE:RETURN +4260 GOSUB 4490:LOCATE LIN,67:PRINT CO;:LINA=LIN:P$=STR$(CO):IN$=" ":GOTO 4280 +4270 I$=INKEY$:IF I$="" THEN 4270 +4280 IF I$=CHR$(0)+CHR$(72) OR I$=CHR$(0)+CHR$(80) THEN RETURN +4290 IF ASC(I$)=13 AND IN$<>" " THEN COP=VAL(IN$):GOTO 4330 +4300 IF ASC(I$)<48 OR ASC(I$)>57 THEN PLAY"O2L8G":GOTO 4270 +4310 IN$=IN$+I$:GOSUB 4490:LOCATE LIN,67:PRINT IN$; +4320 IF LEN(IN$)<4 THEN GOTO 4270 ELSE PLAY"O2L8G":GOTO 4260 +4330 IF CO<0 OR CO>15 THEN PLAY"O2L8G":CO=0:GOTO 4260 +4340 P$=IN$:GOSUB 4490:LOCATE LIN,67:PRINT P$ +4350 RETURN +4360 GOSUB 4490:LOCATE LIN,26:PRINT A$;SPACE$(46-LEN(A$));:LINA=LIN:P$=A$ +4370 IN$="":GOTO 4390 +4380 I$=INKEY$:IF I$="" THEN 4380 +4390 IF I$=CHR$(0)+CHR$(72) OR I$=CHR$(0)+CHR$(80) THEN RETURN +4400 IF ASC(I$)=13 AND IN$<>" " THEN A$=IN$:GOTO 4440 +4410 IF I$=SPACE$(LEN(I$)) THEN I$=STRING$(LEN(I$),CHR$(255)) +4420 IN$=IN$+I$:GOSUB 4490:LOCATE LIN,26:PRINT IN$; +4430 IF LEN(IN$)<46 THEN GOTO 4380 ELSE PLAY "O2L8G":GOTO 4360 +4440 P$=IN$:GOSUB 4490:LOCATE LIN,26:PRINT P$ +4450 RETURN +4460 '-------------------------------------------------------------------------- +4470 ' Sous-routine d'Affichage +4480 '-------------------------------------------------------------------------- +4490 IF LIN=22 THEN 4530 +4500 LOCATE LINA,67:COLOR 7,1:PRINT" ":LOCATE LINA,67:PRINT P$ +4510 IF LIN=22 THEN LOCATE LIN,26:COLOR 2,4:PRINT SPACE$(46):RETURN +4520 LOCATE LIN,67:COLOR 2,4:PRINT" ":RETURN +4530 LOCATE LINA,26:COLOR 7,1:PRINT STRING$(46,46):LOCATE LINA,26:PRINT P$ +4540 GOTO 4510 + \ No newline at end of file diff --git a/EQUA.BAS b/EQUA.BAS new file mode 100644 index 0000000000000000000000000000000000000000..f60a4884272bf054458b255b998cf7601d54a7bb GIT binary patch literal 893 zcmZuvO>5Lp6um1Kg(TCNmVm3-QtR;>5|wGHPbI!RZujgoeu!-D>;ixtM zZ?NGAr{)As9jaOx>aqwe&4MLl$B;Q3&S^7dL-y7zZo@Tg&Rjqti}(c_Ft6P)W7%7@ zI58A$SkhL_71Ylsu&zBdmobt_5x-(EY!SIF^V*H!qxK?e5ANCCr@zkHCH#fthlc91 zgzhU$IZJeZh>V9JZ-+R7<brj7C1SD zP~TEeXIsfqQM&pM6E5nX2oKbZLcW=BSO09PZIa@@z0y;c1+3e9WCb=npbr;eUGMD1 zRd*M#mIfEVmj1`24Q7TdR;g8(!z!Y}>`_)B(wZY|_^$7mi%3UWnrHsYOS-Og)1oOt#3?Iz}OK{J)k$AHA*otjD*yQ- zsBw&W`wX^yj=a_OBGL5GORvH|(e&FKhlYmImoZX!p0O(y#S2dg8_ED#%`y=UJgdIN z32~D6e4-LnN=J+f?|6e_)$=E?QQp;YkyYXf!&X~h5H{mxi{w%#=?hgMJ}bOURsmrD EUmOf6!T5!MEP7d<4|A6 za#_kc+)ti!vQ`iLkDupRrRxaVWXln&kLRSw1zV_enq3LCqC7ciK^3+d?3@KwRqrJ* z!U^<}MlM??RV@%5uxYFd+cWV5$2V!fzG8~=7;xa*7oi;Ouv0p=pnEo} z9l@ptW@;BSW+knV@;J8!6BJT!uY8;1J*paOsQ1F=6j7#m7HjFDxea1+|{D12I0G-H=m;e9( literal 0 HcmV?d00001 diff --git a/ESSAI b/ESSAI new file mode 100644 index 0000000..9c1dd21 --- /dev/null +++ b/ESSAI @@ -0,0 +1,2 @@ + 64406 ,RP,BYE, 19531 ,TEST1234, 32 ,-12.5 ,G,DAF1000,21/08/89 + \ No newline at end of file diff --git a/ESSAI.ADR b/ESSAI.ADR new file mode 100644 index 0000000..e69de29 diff --git a/ESSAI.DON b/ESSAI.DON new file mode 100644 index 0000000..e69de29 diff --git a/ESSAILE.BAS b/ESSAILE.BAS new file mode 100644 index 0000000..b650b85 --- /dev/null +++ b/ESSAILE.BAS @@ -0,0 +1,15 @@ + +DEF SEG = &HB800 +open "a:command.com" As #1 LEN = 1 + +FIELD #1,1 AS NC$ + +K=25555 +FOR I=1 TO LOF(1) +K=(K+2) AND (K < 4000) + GET #1,I + LOCATE 25,1:PRINT LOF(1)-I; + POKE K,ASC(NC$) +NEXT I +Close + diff --git a/ESSAI_L.BAS b/ESSAI_L.BAS new file mode 100644 index 0000000000000000000000000000000000000000..70895fec8a8121c0a15c5326f1b25fa2a798f0d5 GIT binary patch literal 1216 zcmZWnL2DCH5FY4S!6f_Aqyd|Qj7uT!L0a2@Qg*G zOA+xD5WINzqW__1(Nn}9;Gx?jMFp=yoVT0q78?j}-#7Ekyl>{~KaVKz3Fo>?up7Am zuTec7f>)7Ca0u@rqtL?doGoVAS7E?#^a|ZIoW_myW*xWckqW&A}e#-2{HYlFp&}}+Kg>KT367VuQNAa#h(XK_Yu1%4y2_K_(z_MK4=8nLhXwlyk_zO8Y z-c^DeZTw9z97Pwwwu9t0w`91@O%YN&&}X$zi2^RimY_5pFlC#7CL5h$4SMBcD^SV> zj6pB|ZQj$o9&O})J}Hb?U)y6 zzGSf-by%Ujd)K5mNx~a7u8YU7{xz|e?W)a{#g`}L#6~GnBrn^k@jMT(n`T_<5p}UftW&VrCUYOMG$-d zXGeVmanLFXzJPOR+9zHNhb+^9PK&i4_+u;oaO?d6_pzF6o zcv@eFAKd43ly7f0=u@A+;g!2MjFTiUM5)dX$l=&3kr3$ZBIfRik1veZ{-^v0Fk+&YLS9}p;i}Z5~Eo)@; zSX&un4CO_qO;(_XBy`LqJ$XPNIW=cv?hC0>R64_>yjfH91#Ypz0BbTkx8AN28 z6T$HgyC{_gOd|&ork7eF7J8f?ODE#IPIqjL%29cgv#wB%a`?cr92yHgk~7ZO;iGh( To>)=775{g7V_S3%K}5^HN)vc& literal 0 HcmV?d00001 diff --git a/FAITCADR.ROU b/FAITCADR.ROU new file mode 100644 index 0000000..2e37fac --- /dev/null +++ b/FAITCADR.ROU @@ -0,0 +1,4 @@ +180 DEF SEG=&HB800:POKE 0,201:FOR K=2 TO 156 STEP 2:POKE K,205:POKE K+320,205 +190 POKE K+3680,205:NEXT K:POKE 158,187:POKE 160,186:POKE 318,186:POKE 320,204 +200 POKE 478,185:POKE 3680,200:POKE 3838,188:FOR K=480 TO 3520 STEP 160 +210 POKE K,186:POKE K+158,186:NEXT:RETURN \ No newline at end of file diff --git a/FENETRE.BAS b/FENETRE.BAS new file mode 100644 index 0000000000000000000000000000000000000000..e6927dd53c38a3d6954bad3561b53fcec7ca4454 GIT binary patch literal 1171 zcma)5-)qxQ6uzi9wZq#cQ{0eoh=a9Qgl+ng2^!*cPGT%+H=TlzwYM{vB{fNX@Ikbq zh@c{ZN+_R&sq4V3zx=&MNIFO<){AQ$N8g}YfzkTtbNd*u-oUv;h4E}wzrGgTQOu$4Qf z0*^xvxkJB&VA>ayyaA_~RCAKdTH4vjN4}!eC4H;0|Sg z0aFb{&jHJU!PISvF~D{(Jx31o&2sjj7Z`=$j z9Jm9D3_Jj&G6STv(M2A_-?dzVEE}k`k{j|gNKrkBv?e~bOv$J%r0I%KJ7<=-_lsF_ z%N}?BFYx4v!>m#O8Jy)-hO?8N&=RiUGreY!_sVK{Vr5VmcO@9<3wexxwi%?m9l? zxevw0LHH=|HF3blL2T|z|Yc@CA6nmjf_u*YklFi)J1bP$n!miYB6?c4Hyrs<68C7Vtsy~d}PLZ|ZqiO|oy*8qL5O5TH=vrMQy7(OF zx;{srO!Yqr*$wJsisZz%)#K!-I2+XoX~GaSuiQskugrFxc3i)|Bs<}A47(f^q9 Q_n1$`&WU+r64KG}6AE~M1^@s6 literal 0 HcmV?d00001 diff --git a/FFF.IM b/FFF.IM new file mode 100644 index 0000000000000000000000000000000000000000..48c44008a3808d8385115b1b02749614ef4d4ca5 GIT binary patch literal 16392 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 XBhd8y&?5joK|E#PDFY`m@bmux_zdB8 literal 0 HcmV?d00001 diff --git a/FICHDATA.BAS b/FICHDATA.BAS new file mode 100644 index 0000000000000000000000000000000000000000..f0368e3cc65ec1002faad81965bb7d99c8c1d364 GIT binary patch literal 21504 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 G|9=1z^o^DP literal 0 HcmV?d00001 diff --git a/FONTE.BAS b/FONTE.BAS new file mode 100644 index 0000000..e227e73 --- /dev/null +++ b/FONTE.BAS @@ -0,0 +1,169 @@ +10 '**************************************************************************** +20 '** Programme tir de PCompatible n39 p 56 et 57 ** +30 '** FONTES.BAS ** +40 '** ** +50 '** Appel GW au choix : BASIC /M:&HE000 ou BASIC (plantage assur) ** +60 '**************************************************************************** +70 SCREEN 2:KEY OFF:CLS:LOCATE 12,32:PRINT "Patientez..."; +80 GOSUB 920 ' Pour initialisation des routines et des fontes +90 GOSUB 690 ' Pour dmonstration. +100 '--------------------------------------------------------------------------- +110 END +120 '--------------------------------------------------------------------------- +130 '--------------------------------------------------------------------------- +140 '| CHANGER DE FONTE. SUB FONTE(FONTE$) | +150 '--------------------------------------------------------------------------- +160 DATA 85 , 139 , 236 , 30 , 6 , 87 , 86 , 184 , 0 +170 DATA 0 , 142 , 192 , 191 , 124 , 0 , 197 , 118 , 6 +180 DATA 139 , 4 , 38 , 137 , 5 , 131 , 199 , 2 , 140 +190 DATA 216 , 38 , 137 , 5 , 94 , 95 , 7 , 31 , 93 +200 DATA 202 , 4 , 0 +210 ' +220 ' Nombre d'octets : 39 +230 ' push bp / mov bp, sp / push ds / push es / push di / push si +240 ' mov ax,0 / mov es, ax / mov di, 7CH / lds si, [bp+6] / mov ax, [si] +250 ' mov [es:di], ax / add di, 2 / mov ax, ds / mov [es:di], ax +260 ' pop si / pop di / pop es / pop ds / pop bp / ret 4 (202, 4, 0) +270 ' |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +280 ' || Attend en entre deux variables : :: +290 ' :: CALL(S) GETGRAFTABL (SEGMENT%, ADRESSE%) || +300 ' || qui reoivent l'adresse complte de la table des caractres || +310 ' || graphiques || +320 ' |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +330 DATA 85 , 139 , 236 , 30 , 6 , 87 , 86 , 196 , 126 +340 DATA 6 , 184 , 0 , 0 , 142 , 216 , 190 , 124 , 0 +350 DATA 165 , 196 , 126 , 10 , 165 , 94 , 95 , 7 , 31 +360 DATA 93 , 202 , 8 , 0 +370 ' +380 ' Nombre d'octets : 31 +390 'push bp / mov bp, sp / push ds / push es / les di, [bp+06H] / mov ax,0 +400 'mov ds, ax / mov si, 7CH / movsw / les di, [bp+0AH] / movsw / pop es +410 'pop ds / pop bp / RET 8 ( 202, 8, 0). +420 '||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +430 '|| Attend en entre deux variables : || +440 '|| CALL(S) PUTGRAFTABL (SEGMENT%, ADRESSE%) || +450 '|| qui dfinissent la nouvelle adresse de la table des caractres || +460 '|| graphiques. || +470 '||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +480 DATA 85 , 139 , 236 , 30 , 6 , 197 , 118 , 6 , 184 +490 DATA 0 , 0 , 142 , 192 , 191 , 124 , 0 , 165 , 197 +500 DATA 118 , 10 , 165 , 7 , 31 , 93 , 202 , 8 , 0 +510 ' +520 ' Nombre d'octets : 27 +530 ' push bp / mov bp, sp / push ds / push es / lds si, [bp+06H] +540 ' mov ax,0 / mov es, ax / mov di , 7CH / movsw / lds si, [bp+0AH] +550 ' movsw / pop es / pop ds / pop bp / RET 8 (202 , 8 , 0 ) +560 '--------------------------------------------------------------------------- +570 ' ROUTINE D'AFFICHAGE +580 '--------------------------------------------------------------------------- +590 LOCATE LIGNE%,COLONNE% : PRINT A$ +600 RETURN +610 ' +620 LOCATE LIGNE%,COLONNE% +630 FOR I%=1 TO LEN(A$) +640 A%=ASC(MID$(A$,I%,1))+96 : PRINT CHR$(A%); +650 NEXT I% +660 RETURN +670 '--------------------------------------------------------------------------- +680 ' +690 ' PROGRAMME PRINCIPAL DE FONTE.BAS +700 ' +710 '--------------------------------------------------------------------------- +720 FOR I%=128 TO 250 : SORTIE$=SORTIE$+CHR$(I%)+CHR$(128) :NEXT +730 ' +740 LOCATE 12,12 +750 PRINT "Les trois fontes sont disponibles. Frappez une touche ." +760 WHILE INKEY$="" : WEND : LINE (0,0)-(639,199),1,B +770 ' +780 CALLS FONTE(GRAF96%) +790 A$=SORTIE$ : LIGNE%=4 : COLONNE%=1 : GOSUB 590 +800 A$="Ecriture avec GRAF96":LIGNE%=8 : COLONNE%=30 : GOSUB 620 +810 CALLS FONTE(GRAS%) +820 A$=SORTIE$: LIGNE%=10 : COLONNE%=1 : GOSUB 590 +830 A$="Ecriture avec fonte grasse" : LIGNE%=14:COLONNE%=30: GOSUB 620 +840 CALLS FONTE(GRIS%) +850 A$=SORTIE$ : LIGNE%=16 : COLONNE%=1 : GOSUB 590 +860 A$="Ecriture avec fonte grise" : LIGNE% = 20 :COLONNE%=30 : GOSUB 620 +870 ' +880 CALLS PUTGRAFTABL(ANCIENSGRAF%, ANCIENAGRAF%) 'pour restitution. +890 ' +900 RETURN +910 '--------------------------------------------------------------------------- +920 ' INITIALISATION DES ROUTINES ASSEMBLEUR. +930 '--------------------------------------------------------------------------- +940 ' +950 BON=9231 : RESTORE +960 FOR I=1 TO 97 : READ X : VERIF =VERIF+X : NEXT +970 IF VERIF<>BON THEN PRINT " Erreur de saisie dans les DATA ": END +980 ' +990 'POKage des routines : +1000 GETGRAFTABL=&HE000 : RESTORE 330 +1010 FOR I=0 TO 30 : READ X : POKE GETGRAFTABL+I, X : NEXT +1020 PUTGRAFTABL=GETGRAFTABL+35 : RESTORE 480 +1030 FOR I=0 TO 26 : READ X : POKE PUTGRAFTABL+I, X : NEXT +1040 FONTE=PUTGRAFTABL+30 : RESTORE 160 +1050 FOR I=0 TO 38 : READ X : POKE FONTE+I, X :NEXT +1060 PRINT "."; +1070 ' +1080 ' pokage des fontes : +1090 ' +1100 CALLS GETGRAFTABL (ANCIENSGRAF%, ANCIENAGRAF%) ' Pour sauvegarde +1110 SGRAFTABL = ANCIENSGRAF% : GRAFTABL=ANCIENAGRAF% +1120 ' +1130 GRAF=FONTE+40 +1140 FOR CAR%=0 TO 127 +1150 FOR OCTET%=0 TO 7 +1160 DECAL=(CAR%*8)+OCTET% +1170 DEF SEG=SGRAFTABL : VALEUR=(PEEK(GRAFTABL+DECAL)) +1180 DEF SEG : POKE GRAF+DECAL, VALEUR +1190 NEXT +1200 NEXT +1210 PRINT "."; +1220 '-------------------------------------------------------------------------- +1230 ' REMPLIR LES TABLEAUX GRAF96%() ET SUIVANTS +1240 ' Cration d'un tableau de base pour les caractres reproduisant +1250 ' l'alphabet et repoussant les caractres accentus en queue. Il +1260 ' sert de base la cration des autres fontes. +1270 '-------------------------------------------------------------------------- +1280 GRAF96=GRAF+1025 +1290 FOR I%=0 TO 30 +1300 FOR OCTET%=0 TO 7 +1310 VALEUR%=PEEK(GRAF+(I%*8)+OCTET%) +1320 POKE GRAF96+((I%+96)*8)+OCTET%, VALEUR% +1330 NEXT +1340 NEXT +1350 FOR OCTET%=0 TO 7 : POKE GRAF96+(31+96)*8+OCTET%,0 : NEXT +1360 CARSEG%=&HF000 : CARAD%=&HFA6E+(32*8) +1370 FOR I%=0 TO 95 +1380 FOR OCTET%=0 TO 7 +1390 DEF SEG=CARSEG% : VALEUR%=(PEEK(CARAD%+(I%*8)+OCTET%)) +1400 DEF SEG : POKE GRAF96+(I%*8)+OCTET%, VALEUR% +1410 NEXT +1420 NEXT +1430 PRINT "."; +1440 ' +1450 'fonte gras : +1460 GRAS = GRAF96+1025 +1470 FOR I%=0 TO 1023 +1480 V%=PEEK(GRAF96+I%) : V%=V% XOR &HFF : V%=V% OR (V%/2) +1490 VALEUR%=V% XOR &HFF +1500 POKE GRAS+I%, VALEUR% +1510 NEXT +1520 PRINT "."; +1530 ' +1540 'fonte grise : +1550 GRIS=GRAS+1025 +1560 FOR I%=0 TO 1023 +1570 V%=PEEK(GRAF96+I%): VALEUR%=V% AND &H55 ' (=1010101) +1580 POKE GRIS+I%, ABS(VALEUR%) +1590 NEXT +1600 PRINT "."; +1610 ' +1620 GRAF%=GRAF : GRAF96%=GRAF96 : GRAS%=GRAS : GRIS%=GRIS +1630 ' +1640 RETURN +2000 REM *********************************************************************** +2010 REM ** Taper par DARCHE Yoann le 09/06/1990 Sur Commodore PC1 ** +2020 REM ** & Quellesques modifications signes DARCHE Yoann ** +2030 REM *********************************************************************** + \ No newline at end of file diff --git a/FRAC1.BAS b/FRAC1.BAS new file mode 100644 index 0000000000000000000000000000000000000000..83ba2ca5f29c4c9b1fd60b5ca44033dc81b2a4b9 GIT binary patch literal 3285 zcma)94Qw366@I&WuBwQ5Z+Gwi+;p^xs$DdR@FfJa#3s%;?j1Sbor6Jl5TRV0bK~GR za5+a&X{bq>G(c-ZNFzWHXv?1vL=YmxUyDJ=AOxWx1PD-|h~8$`2HL3VpHSR4yX%XM z;}a*@H#2YMz3+YRXXd60A^;(W2&ME#0C0yf4qL@V@FeM=YiW|Mvx{)E7=QyLrHLa{ z9MNe~YgxnTa8g_XW29~259uxs4L8~_=O|dB25*p%arSu?IZ5cyTi~I?A znTU&xJBixbPKI_2?#KCw-+#wG1o$U2MLho$MMelkyPR zS*?_+<((>Y`}0h)vM$-NeRG8guJ>QV1Q*u@{R4w!OPTbSD@27o{w++ps-2+OZRKGV z_W6h4PI$t<8}<{mU8QN`c9O1z$u}f@T5|r^ruS=UoxDw&cLSXC?}guyH2E!QJ^{4( z0)aN4!oPz)+Po3Jw=}`W{@rgqV?6*@79O1oh|`ZMHBck6JA^ak^uEW=NG zJGr5R>eb8ga8!Daollj9tL5PeV{3D1XW3Daf)}MvnXt3GYoJse*fB)h57XZXA4xSP z{Ar~$FjV#=_{D_Rz`v!xGhwd>t2J>cUA2;~Na#$QfiC%fjYw!~BgxWW-|*n~p`fh| zaoN0Fim}e@oKj#!IpFxy!~C&(9FGnwcQ_u+UVB%$mrI!%!nJ#7(eBYLZ)mwg>)a|E z;;KFsv^poJ58CVCugXIllHmGpX5qieG3NR_uLFVSW{67}bKPGOc-3=15qQf%oOclC z9mHLM59T4hDe(C$#13AD%o)@@_%71h1NI!Ge+>Ndyh#5PI6DjJ>^PkX{E&BuLXv2K zSwk|s0Y&nh6i4+=il^_bd3y>XD;SDIune*aU6553-(zp**Tpb!Yry?_>!W~dVvXGL# z&~1*A3{!G_=rFRChMPi1`MgsOolZI25_*h34!;f^=SSh0&`W&d_E75YAL!d!`dJxX z2~F_h#)KxWp-~-P5B-H7gU>@B^JfncHM?Qi3f0()g)L*sVsSTxzvMfYnrc$Drti{{ zx}{#0y~-J9t*ma~na-uKIQ%stOo9^r4`Nvz=7ok>usL>Y=v@bE!xsqS&=U>`Gd)Qh zflXn8Q@3g1bWiv~VZqKb7G5dLExmif?ZQ5S?F=3Wr-V^>J-lH-ETpS`yTS+Ijl#H* zGsOpu^`->hhWnXfiHe$TJVo#su!h5kQrVr1@Js-UBR2>SlcaHgc+ZhU5`(XNzkbfxgzXOVH-P=vol-b5CK==<|ooO#cHKY9we%XXXD$snwbo<i4nA zxGNg-&7@EUjzyQ^%)9n%8IcuCv{$f-@J@8Oufs%($Rq;la9&9rwU)~{MAf{_2VX=l z^|@CE>%MqIhw12A-+~#a#4}qEXSBG z#_mIc>M^Q^z>Acvpka?>FBZ784}|z5=U6s!tt^KVSS+FVQx4x5Oj-%E-j?B#_zMkq zUep9v#9#X^&l}<=k>>#Hj(^1Xao!{~GuMg?qAhoB$t=s0rUFOfU(DW>V7n4CyA*eq z3={DwClvF!w%J3)k_~**BAhSd|MJZVQ_?97HxTfTI5fGTuoP%&S=5Aha;=zIXfc<- V#1&ftO>TgKElZk4@h40y_J1774|V_m literal 0 HcmV?d00001 diff --git a/FRAC2.BAS b/FRAC2.BAS new file mode 100644 index 0000000000000000000000000000000000000000..804655a923e372fb6da31be946bcd5a2a894a763 GIT binary patch literal 3802 zcmb_eeQX((t@@ zmo#2J+CO%Zt@nMO_kEt<^ZPyT$I>bH7MLLopVbE+xILynvfkI#7uEWsiOvJ-8P^$W zXn@_d^_IWrQ0{OkR~i{BkfA*3i1ul*PLdtV6$<3Yc#)*Fu|tQ^d~h^RaudZtqTL=P z*ludx(bT%5_4B58^mn{g`b_hkscix3dk%hByBB^&qRM_nQ#vbIc)qp^?jteDJ*l`S zWkr)h`xqHqTpHuIZTyj*d|`aE2~|tsR&D@ZBfNU`2Snl&POeCydmW1V*D~zkhTvfm zX>KQlvGIxgD3XCh4d({)5$NU$)Yj5Y26M$y9`f8hw7;{ROpNDA9w{vqbEW)|2pr|6 zsAboRW$e(wA~l@h9-xNZD~92bQL4;vzDOeQQ|>giHno%CkwOG!xhLRZc!zrij+01x zM2V~SlX%%j{z2mNocUi~IxfX!a*5PD12E719B_ipVgK836aNaFB60E{sksbFO&_b& zv^tfVMf{y*f#+YtNK2qdx&NBPS%kDlBJB~@zLzEdVDi6}krB>!JX>%!k8vC<>M1>VUZ31mBd?d{}n4&6ug zq~UG8hQal*+;}OErHiB;%pJ*_E@JR6UZlp3{KSY=?Pleg#tx_zBGh<$F*j1kTL$`1 zgAc$CL7~Qe8&-2mt8&{eWoL^_%?U^ew=wsVgzlb1R;$Y;G=r7-xUi4eyfU@i=-~M1 zjZoCq20s?=U@j0c051ytOj3_6x@%Qba4QS12zN7c@S*V4>x8qbb%mcsaC(Z&6v<#+ zTqFtd21$d@^GzJdt{U0vxsQoS86_+0OD7g$SZG#nK8b1Dh9nGn9%3}z>MkZ#O~>-n z7X7lp;{vVh!MU35fpO1c%&SDoEO?ddf`FSC?)5yy93xpJ1GApzHcf!obPX4CgQeUk zX@r+OFEUu3=`s%&J-=jn_4J~kcIq9A0=)0JXlB++GpqEPxqak$+stkCShM$iCZ?U%G(QK^b@@dTf_BJ_IWA^$~ zM-^tDT&36!Ux&k184<5mZpfFk!Xs@;hDJqt?1qALnj=c4nzE8FQx*QS?_hQKH6=6a z8$|$EAhK>!mc`o1She#D--J!s8@@@TCtgL5%YV|s$0>0O4K^%UdzCoq=&^OACB32{ z@Bbc#!6K?tcf_io+-VzdF+9R_QRe%K!X- zcbo@S{EuTAZV?^qG`PjB`0o{c>io``Kki}v+*!b4&oiw^+t z%k1)5bBbG%)pGv#GTj$hcFkAQAmE7scEYQ;;wcxE#Cz_Npx@8$I)%~7DC?=*#7Rxw=m;WWw ztyfa;UfsJUTiy22F2LowdA8p^qK&MP0WR<%W}rzKBPEyn>1nQ89il#o?S7~aTw$#d zET7$ho18QYjGd8fATb&44AeT2O*5+%(|$(jipgqM4A0w~B=qt|m+PB>{m$!=dnJ%?QgZ3-=1!{!#@yEieJtUI?=j+L z&a?qrgLgVL$(^pyEn5*_d+;kxx`1xLbr-Y+zh*8l>;;{{5~dl41Hq#h)V@HW5IliB z`+}|Tm|8~1co`!LGr>okQ5_?q6bLA4zT2YZ&=(j)Rr9(N&IZpQ1bQ{mGaZ-6@SEV% z&Ks!tKL^h_X^K6`jGbWyt^{8)$57%ZeHJ2lQ9Ma$PgXc+4E>6l%WJKMV3jPL9m5+N zYcxualh)AdRCwG*?V&%Svc=F})+$@|w!YRO)}t3rg%(loO@+P?`uMs+Uk-t5mC!3X z+HzL}#OzL+O4)+q&@s3JHHEJ&e4ry7BRt@$Qdl!LsHGu%93FC6DjEW8sV}$?PpTQq6C nouvelle surface" +60 PRINT "2> carte +70 PRINT "3> vue en strates" +80 PRINT "4> vue en ombres" +90 PRINT "5> vue en fil de fer " +100 PRINT "6> le jeu" +110 PRINT +120 INPUT ">",I:IF I>6 OR I<0 OR I<>INT(I) THEN 120 +130 ON I GOSUB 180,780,990,1160,860,1380 +140 PRINT CHR$(7) +150 WHILE INKEY$="":WEND +160 GOTO 40 +170 REM ========================= Paramtres =================================== +180 INPUT "Maille (0-3) : ",M +190 P=2^(7-M) +200 PRINT " ---->> pas =";P +210 INPUT "Hauteur de base : ",H +220 INPUT "Deviation : ",D +230 INPUT "Graine : ",Z +240 INPUT "Taille (128,64,32): ",L +250 REM =========================== Calcul ===================================== +260 RANDOMIZE TIMER +270 N=H/16:GOSUB 710 +280 COLOR 3 +290 REM =========================== surface de base . +300 FOR X=0 TO L STEP P +310 FOR Y=0 TO L STEP P +320 H(X,Y)=RND*H:IF H(X,Y)15 THEN C=15 +340 PSET (X*4,Y*2),C +350 NEXT Y,X +360 REM ========================== Calcul fractal . +370 WHILE P>1 +380 Q=P/2:E=D/2 +390 FOR X=Q TO L-Q STEP P +400 FOR Y=Q TO L-Q STEP P +410 H=(H(X-Q,Y-Q)+H(X-Q,Y+Q)+H(X+Q,Y-Q)+H(X+Q,Y+Q))/4+D*RND-E +420 IF H15 THEN C=15 +440 H(X,Y)=H:PSET (X*4,Y*2),C +450 NEXT Y,X +460 FOR X=P TO L-P STEP P +470 FOR Y=Q TO L-Q STEP P +480 H=(H(X-Q,Y)+H(X+Q,Y)+H(X,Y-Q)+H(X,Y+Q))/4+D*RND-E +490 IF H15 THEN C=15 +510 H(X,Y)=H:PSET(X*4,Y*2),C +520 H=(H(Y-Q,X)+H(Y+Q,X)+H(Y,X-Q)+H(Y,X+Q))/4+D*RND-E +530 IF H15 THEN C=15 +550 H(Y,X)=H:PSET (Y*4,X*2),C +560 NEXT Y,X +570 FOR I=Q TO L-Q STEP P +580 H=(H(0,I-Q)+H(0,I+Q)+H(Q,I))/3+D*RND-E:IF H15 THEN C=15 +820 PSET (X*4,Y*2),C +830 NEXT X,Y +840 RETURN +850 REM ====================== Fil de fer +860 CLS:O=160:K=0 +870 PSET (0,40):LINE -(320,0),1:LINE -(640,40) +880 ERASE C:'DIM C(320) +890 FOR Y=0 TO L STEP 2:PSET (O*4-320,C(O+K)) +900 K=0:O=160-Y:IF O<0 THEN K=-O +910 FOR X=K TO L STEP 2 +920 T=H(X,Y)+Y+X +930 IF C(X+O)>T THEN H=C(X+O) ELSE H=T +935 C(X+O)=H +940 LINE -((O+X)*4-320,H) +950 NEXT X:LINE -((O+X)*4-322,FH):FH=H +960 NEXT Y +970 RETURN +980 REM =============== strates +990 CLS:NM=N*4 +1000 FOR I=0 TO 80:H=H(0,I)+I:IF H319 THEN 1130 +1080 H=(H(X,Y)+X+Y) +1090 C=H(X,Y)/N:IF C>15 THEN C=15 +1100 IF HC(A) THEN PSET (A*4,C(A)+2):LINE -(A*4,H),C:C(A)=H +1130 NEXT X,Y +1140 RETURN +1150 REM ====================================== ombres +1160 CLS +1170 REM +1180 FOR I=0 TO 80:C(80-I)=H(0,I)+I-2:C(80+I)=H(I,0)+I-2:NEXT +1190 FOR Y=0 TO L:O1=0:O2=0 +1200 FOR X=L TO 0 STEP -1 +1210 A=80-Y+X:IF A<0 OR A>319 THEN 1290 +1220 H=(H(X,Y)+X+Y) +1230 C=3 +1240 IF H(X,Y)>=O1 THEN O1=H(X,Y)+1 ELSE C=2 +1250 IF H(X,Y)>=O2 THEN O2=H(X,Y)+2 ELSE C=1 +1260 IF H nouvelle surface" +110 PRINT "2> carte +120 PRINT "3> vue en strates" +130 PRINT "4> vue en ombres" +140 PRINT "5> vue en fil de fer " +150 PRINT "0> fin" +160 PRINT +170 INPUT ">",I:IF I>5 OR I<0 OR I<>INT(I) THEN 170 +180 IF I=0 THEN END +190 ON I GOSUB 240,850,1080,1260,930 +200 PRINT CHR$(7) +210 WHILE INKEY$="":WEND +220 GOTO 90 +230 REM ========================= Paramtres =================================== +240 INPUT "Maille (0-3) : ",M +250 P=2^(7-M) +260 PRINT " ---->> pas =";P +270 INPUT "Hauteur de base : ",H +280 INPUT "Deviation : ",D +290 INPUT "Graine : ",Z +300 INPUT "Taille (128,64,32): ",L +310 IF L=128 THEN WINDOW (0,0)-(639,399) +320 REM =========================== Calcul ===================================== +330 RANDOMIZE Z +340 N=H/16:GOSUB 780 +350 CLS +360 REM =========================== surface de base . +370 FOR X=0 TO L STEP P +380 FOR Y=0 TO L STEP P +390 H(X,Y)=RND*H:IF H(X,Y)3 THEN C=3 +410 PSET (X*4,Y*2),C +420 NEXT Y,X +430 REM ========================== Calcul fractal . +440 WHILE P>1 +450 Q=P/2:E=D/2 +460 FOR X=Q TO L-Q STEP P +470 FOR Y=Q TO L-Q STEP P +480 H=(H(X-Q,Y-Q)+H(X-Q,Y+Q)+H(X+Q,Y-Q)+H(X+Q,Y+Q))/4+D*RND-E +490 IF H3 THEN C=3 +510 H(X,Y)=H:PSET (X*4,Y*2),C +520 NEXT Y,X +530 FOR X=P TO L-P STEP P +540 FOR Y=Q TO L-Q STEP P +550 H=(H(X-Q,Y)+H(X+Q,Y)+H(X,Y-Q)+H(X,Y+Q))/4+D*RND-E +560 IF H3 THEN C=3 +580 H(X,Y)=H:PSET(X*4,Y*2),C +590 H=(H(Y-Q,X)+H(Y+Q,X)+H(Y,X-Q)+H(Y,X+Q))/4+D*RND-E +600 IF H3 THEN C=3 +620 H(Y,X)=H:PSET (Y*4,X*2),C +630 NEXT Y,X +640 FOR I=Q TO L-Q STEP P +650 H=(H(0,I-Q)+H(0,I+Q)+H(Q,I))/3+D*RND-E:IF H3 THEN C=3 +890 PSET (X*4,Y*2),C +900 NEXT X,Y +910 RETURN +920 REM ====================== Fil de fer +930 CLS:O=160:K=0 +940 IF L>=128 THEN WINDOW (0,0)-(639,399) +950 PSET (0,40):LINE -(320,0):LINE -(640,40) +960 FOR I=1 TO 320:C(I)=0:NEXT +970 FOR Y=0 TO L STEP 2:PSET (O*4-320,C(O+K)) +980 K=0:O=160-Y:IF O<0 THEN K=-O +990 FOR X=K TO L STEP 2 +1000 T=H(X,Y)+Y+X +1010 IF C(X+O)>T THEN H=C(X+O) ELSE H=T +1020 C(X+O)=H +1030 LINE -((O+X)*4-320,H) +1040 NEXT X:LINE -((O+X)*4-322,FH):FH=H +1050 NEXT Y +1060 RETURN +1070 REM =============== strates +1080 CLS:NM=N*4:IF L=>128 THEN WINDOW (0,0)-(639,399) +1090 PSET (0,40):LINE -(320,0):LINE -(640,40) +1100 FOR I=0 TO 80:H=H(0,I)+I:IF H319 THEN 1230 +1180 H=(H(X,Y)+X+Y) +1190 C=H(X,Y)/N:C=INT(C/6)+1:IF C>3 THEN C=3 +1200 IF HC(A) THEN PSET (A*4,C(A)+2):LINE -(A*4,H),C:C(A)=H +1230 NEXT X,Y +1240 RETURN +1250 REM ====================================== ombres +1260 CLS:IF L=>128 THEN WINDOW (0,0)-(639,399) +1270 PSET (0,40):LINE -(320,0):LINE -(640,40) +1280 FOR I=0 TO 80:C(80-I)=H(0,I)+I-2:C(80+I)=H(I,0)+I-2:NEXT +1290 FOR Y=0 TO L:O1=0:O2=0 +1300 FOR X=L TO 0 STEP -1 +1310 A=80-Y+X:IF A<0 OR A>319 THEN 1390 +1320 H=(H(X,Y)+X+Y) +1330 C=3 +1340 IF H(X,Y)>=O1 THEN O1=H(X,Y)+1 ELSE C=2 +1350 IF H(X,Y)>=O2 THEN O2=H(X,Y)+2 ELSE C=1 +1360 IF H5000) : ",RAY +250 CT=COS(THETA*COEF):ST=SIN(THETA*COEF) +260 CP=COS(PHI*COEF):SP=SIN(PHI*COEF) +270 XOBS=RAY*CT*CP +280 YOBS=RAY*CT*SP +290 ZOBS=RAY*ST +300 PRINT :PRINT "Selectionnez un type de trace " +310 PRINT " -1- Rapide " +320 PRINT " -2- Parties caches" +330 PRINT " -3- Surface claire" +340 INPUT " > ",TYPE +350 IF TYPE<>3 THEN 450 +360 PRINT +370 INPUT "Angle vertical d'clairage Alpha (-905000) : ",R +400 ALPHA =ALPHA*COEF:BETA=BETA *COEF +410 XECL=R*COS(ALPHA)*COS(BETA) +420 YECL=R*COS(ALPHA)*SIN(BETA) +430 ZECL=R*SIN(ALPHA) +440 INPUT "Dsirez-vous les contours des facettes ? (O/N) : ",BORD$ +450 LOCATE 23,17:PRINT "Les calculs sont en cour : veuillez patienter" +460 TPAV=TIMER +470 GOSUB 2630:GOSUB 2950 +490 REM ************************************************************************ +500 REM -=- Sous Programe d'affichage -=- +510 REM ************************************************************************ +520 CLS +530 IF TYPE =1 THEN GOSUB 1840:GOTO 570 +540 IF PHI>=120 AND PHI<240 THEN GOSUB 630:GOTO 570 +550 IF PHI<120 THEN GOSUB 1030 :GOTO 570 +560 GOSUB 1430 +570 BEEP +580 TEMPS=INT(TIMER-TPAV+.5):HEU=TEMPS\3600:MINU=(TEMPS\60)MOD 60:SEC=TENPS MOD 60 +590 A$=INPUT$(1) +600 IF A$=CHR$(13) THEN LOCATE 1,1:INPUT "",NOM$:BEEP:DEF SEG=&HB800:BSAVE NOM$,0,16000 +610 IF A$="t" OR A$="T" THEN LOCATE 2,6:PRINT MINU;"Min ";SEC;"s":IF HEU<>0 THEN 2,1:PRINT HEU;"h" +620 GOTO 590 +630 IF PHI<180 THEN DEB=1:SENS=1 ELSE FIN=1:SENS=-1 +640 FOR I=2 TO DN +650 TST=0:IF PHI<180 THEN FIN=DN-I+1 ELSE DEB =DN-I+1 +660 FOR J=DEB TO FIN STEP SENS +670 IF PHI<180 THEN GOSUB 710:GOSUB 870 ELSE GOSUB 870:GOSUB 710 +680 NEXT J +690 NEXT I +700 RETURN +710 CI=I-1:CJ=J:GOSUB 3320 +720 FOR L=1 TO 3 +730 V1(L)=C(L):PT(1,L)=C(L) +740 NEXT L +750 CI=I:GOSUB 3320 +760 FOR L=1 TO 3 +770 V1(L)=V1(L)-C(L):PT(2,L)=C(L) +780 NEXT L +790 IF TST=0 THEN TST=1:GOTO 860 +800 IF PHI<180 THEN CJ=J-1 ELSE CJ=J+1:CI=I-1 +810 GOSUB 3320 +820 FOR L=1 TO 3 +830 PT(3,L)=C(L) +840 NEXT L +850 GOSUB 2020 +860 RETURN +870 CI=I-1:CJ=J+1:GOSUB 3320 +880 FOR L=1 TO 3 +890 V2(L)=C(L):PT(1,L)=C(L) +900 NEXT L +910 CI=I:CJ=J:GOSUB 3320 +920 FOR L=1 TO 3 +930 V2(L)=V2(L)-C(L):PT(2,L)=C(L) +940 NEXT L +950 IF TST=0 THEN TST=1:GOTO 1020 +960 IF PHI<180 THEN CI=I-1 ELSE CJ=J=1 +970 GOSUB 3320 +980 FOR L=1 TO 3 +990 PT(3,L)=C(L) +1000 NEXT L +1010 GOSUB 2020 +1020 RETURN +1030 IF PHI>60 THEN DEB=1:SENS=1 ELSE FIN=1:SENS=-1 +1040 FOR I=2 TO DN +1050 TST=0:IF PHI>60 THEN FIN=DN-I+1 ELSE DEB =DN-I+1 +1060 FOR J=DEB TO FIN STEP SENS +1070 IF PHI>60 THEN GOSUB 1110:GOSUB 1270 ELSE GOSUB 1270:GOSUB 1110 +1080 NEXT J +1090 NEXT I +1100 RETURN +1110 CI=J:CJ=I-1:GOSUB 3320 +1120 FOR L=1 TO 3 +1130 V2(L)=C(L):PT(1,L)=C(L) +1140 NEXT L +1150 CJ=I:GOSUB 3320 +1160 FOR L=1 TO 3 +1170 V2(L)=V2(L)-C(L):PT(2,L)=C(L) +1180 NEXT L +1190 IF TST=0 THEN TST=1:GOTO 1260 +1200 IF PHI>60 THEN CI=J-1 ELSE CI=J+1:CJ=I-1 +1210 GOSUB 3320 +1220 FOR L=1 TO 3 +1230 PT(3,L)=C(L) +1240 NEXT L +1250 GOSUB 2020 +1260 RETURN +1270 CI=J+1:CJ=I-1:GOSUB 3320 +1280 FOR L=1 TO 3 +1290 V1(L)=C(L):PT(1,L)=C(L) +1300 NEXT L +1310 CI=J:CJ=I:GOSUB 3320 +1320 FOR L=1 TO 3 +1330 V1(L)=V1(L)-C(L):PT(2,L)=C(L) +1340 NEXT L +1350 IF TST=0 THEN TST=1:GOTO 1420 +1360 IF PHI>60 THEN CJ=I-1 ELSE CI=J+1 +1370 GOSUB 3320 +1380 FOR L=1 TO 3 +1390 PT(3,L)=C(L) +1400 NEXT L +1410 GOSUB 2020 +1420 RETURN +1430 IF PHI<300 THEN DEB=1:SENS=1:ELSE FIN=1:SENS=-1 +1440 FOR I=DN-1 TO 1 STEP -1 +1450 TST=0:IF PHI <300 THEN FIN=I ELSE DEB=I +1460 FOR J=DEB TO FIN STEP SENS +1470 K=I+1-J +1480 IF PHI <300 THEN GOSUB 1520 :GOSUB 1680 ELSE GOSUB 1680:GOSUB 1520 +1490 NEXT J +1500 NEXT I +1510 RETURN +1520 CI=J:CJ=K+1 :GOSUB 3320 +1530 FOR L=1 TO 3 +1540 V1(L)=C(L):PT(1,L)=C(L) +1550 NEXT L +1560 CJ=K:GOSUB 3320 +1570 FOR L=1 TO 3 +1580 V1(L)=V1(L)-C(L):PT(2,L)=C(L) +1590 NEXT L +1600 IF TST=0 THEN TST=1:GOTO 1670 +1610 IF PHI<300 THEN CI=J-1:CJ=K+1 ELSE CI=J+1 +1620 GOSUB 3320 +1630 FOR L=1 TO 3 +1640 PT(3,L)=C(L) +1650 NEXT L +1660 GOSUB 2020 +1670 RETURN +1680 CI=J+1:CJ=K:GOSUB 3320 +1690 FOR L=1 TO 3 +1700 V2(L)=C(L):PT(1,L)=C(L) +1710 NEXT L +1720 CI=J:GOSUB 3320 +1730 FOR L=1 TO 3 +1740 V2(L)=V2(L)-C(L):PT(2,L)=C(L) +1750 NEXT L +1760 IF TST=0 THEN TST=1:GOTO 1830 +1770 IF PHI<300 THEN CJ=K+1 ELSE CI=J+1:CJ=K-1 +1780 GOSUB 3320 +1790 FOR L=1 TO 3 +1800 PT(3,L)=C(L) +1810 NEXT L +1820 GOSUB 2020 +1830 RETURN +1840 C=1 +1850 FOR I=2 TO DN +1860 FOR J=1 TO DN-I+1 +1870 CI=I:CJ=J:GOSUB 3220 +1880 XE(1)=XE*ECHX+XCENT:YE(1)=YE*ECHY+YCENT +1890 CI=I-1:GOSUB 3220 +1900 XE(2)=XE*ECHX+XCENT:YE(2)=YE*ECHX+YCENT +1910 CJ=J+1:GOSUB 3220 +1920 XE(3)=XE*ECHX+XCENT:YE(3)=YE*ECHY+YCENT +1930 GOSUB 3600 +1940 NEXT J +1950 NEXT I +1960 RETURN +1970 REM +1980 REM *********************************************************************** +1990 REM -=- Calcul des couleurs et remplissage des facettes -=- +2000 REM *********************************************************************** +2010 REM +2020 INDM=0:NCOUL =0 +2030 IF PT(1,3)=MER AND PT(2,3)=MER AND PT(3,3)=MER THEN INDM=1:GOTO 2300 +2040 VN(1)=V1(2)*V2(3)-V1(3)*V2(2) +2050 VN(2)=V1(3)*V2(1)-V1(1)*V2(3) +2060 VN(3)=V1(1)*V2(2)-V1(2)*V2(1) +2070 VN=SQR(VN(1)^2+VN(2)^2+VN(3)^2) +2080 FOR N=1 TO 3 +2090 BARY(N)=(PT(1,N)+PT(2,N)+PT(3,N))/3 +2100 NEXT N +2110 VOBS(1)=BARY(1)-XOBS +2120 VOBS(2)=BARY(2)-YOBS +2130 VOBS(3)=BARY(3)-ZOBS +2140 PROSC=VN(1)*VOBS(1)+VN(2)*VOBS(2)+VN(3)*VOBS(3) +2150 VOBS=SQR(VOBS(1)^2+VOBS(2)^2+VOBS(3)^2) +2160 COSANG=PROSC/(VN*VOBS) +2170 ANG=ATN(SQR(1-COSANG^2)/COSANG) +2180 IF ANG>0 THEN NCOUL=1 +2190 IF NCOUL=1 OR TYPE=2 THEN 2300 +2200 VECL(1)=BARY(1)-XECL +2210 VECL(2)=BARY(2)-YECL +2220 VECL(3)=BARY(3)-ZECL +2230 PROSC=VN(1)*VECL(1)+VN(2)*VECL(2)+VN(3)*VECL(3) +2240 VECL=SQR(VECL(1)^2+VECL(2)^2+VECL(3)^2) +2250 COSANG=PROSC/(VN*VECL) +2260 ANG=ANT(SQR(1-COSANG^2)/COSANG) +2270 IF ANG<0 THEN ANG=ANG+3.141593 +2280 COUL=INT(ANG/FANG+.5) +2290 IF COUL<>0 THEN FREQ=15/COUL ELSE FREQ=1E+30 +2300 FOR N=1 TO 3 +2310 C(1)=PT(N,1):C(2)=PT(N,2):C(3)=PT(N,3) +2320 GOSUB 3230 +2330 XE(N)=INT(XE*ECHX+XCENT+.5):YE(N)=INT(YE*ECHY+YCENT+.5) +2340 NEXT N +2350 IF YE(2)>=YE(1) AND YE(2)>=YE(3) THEN EXX=XE(1):EXY=YE(1):XE(1)=XE(2):YE(1)=YE(2):XE(2)=EXX:YE(2)=EXY:GOTO 2370 +2360 IF YE(3)>=YE(1) AND YE(3)>=YE(2) THEN EXX=XE(1):EXY=YE(1):XE(1)=XE(3):YE(1)=YE(3):XE(3)=EXX:YE(3)=EXY +2370 IF YE(3)>YE(2) THEN EXX=XE(2):EXY=YE(2):XE(2)=XE(3):YE(2)=YE(3):XE(3)=EXX:YE(3)=EXY +2380 EX1=XE(1)-XE(2):EY1=YE(1)-YE(2) +2390 EX2=XE(1)-XE(3):EY2=YE(1)-YE(3) +2400 EX3=XE(2)-XE(3):EY3=YE(2)-YE(3) +2410 IF EY1<>0 THEN STP1=EX1/EY1 +2420 IF EY2<>0 THEN STP2=EX2/EY2 +2430 IF EY3<>0 THEN STP3=EX3/EY3 +2440 PCH=INT(RND*FREQ+1.5):COMP=1 +2450 CPT2=0 +2460 FOR CPT1=0 TO EY1 +2470 X1=INT(XE(1)-CPT1*SPT1+.5):X2=INT(XE(1)-CPT2*STP2+.5):Y1=YE(1)-CPT1 +2480 IF EY1=0 THEN X1=XE(2) +2490 IF EY2=0 THEN X2=XE(3) +2500 GOSUB 3420 +2510 NEXT CPT1 +2520 FOR CPT1=1 TO EY3 +2530 X1=INT(XE(2)-CPT1*STP3+.5):X2=INT(XE(1)-CPT2*STP2+.5):Y1=YE(1)-CPT2 +2540 GOSUB 3420 +2550 NEXT CPT1 +2560 IF (TYPE=2 AND NCOUL=0 AND INDM=0) OR (TYPE=3 AND NCOUL=1) OR BORD$="O" OR BORD$="o" THEN C=1:GOSUB 3600 +2570 RETURN +2580 REM +2590 REM ======================================================================= +2600 REM Gnration de la Matrice +2610 REM ======================================================================= +2620 REM Gnration de la Matrice +2630 RANDOMIZE ALEA +2640 DN=2^MAIL+1:PAS=DN-1:ECH=4000 +2650 DIM NOEUD (DN,DN) +2660 WHILE PAS>1 +2670 FOR I=1 TO DN-PAS STEP PAS +2680 FOR J=1 TO DN-I-PAS+1 STEP PAS +2690 A=I+PAS/2:B=J+PAS/2:C=I+PAS:D=J+PAS +2700 GOSUB 2870 +2710 NOEUD (I,B)=(NOEUD(I,J)+NOEUD(I,D))/2+ALT +2720 GOSUB 2870 +2730 NOEUD (A,J)=(NOEUD(I,J)+NOEUD(C,J))/2+ALT +2740 GOSUB 2870 +2750 NOEUD (A,B)=(NOEUD(C,J)+NOEUD(I,D))/2+ALT +2760 NEXT J +2770 NEXT I +2780 PAS=PAS/2 +2790 ECH=ECH/2 +2800 WEND +2810 RETURN +2820 REM +2830 REM ======================================================================= +2840 REM Calcul alatoire d'altitude +2850 REM ======================================================================= +2860 REM +2870 ALT=RND*ECH +2880 IF RND>PROF/100 THEN ALT=-ALT +2890 RETURN +2900 REM +2910 REM ======================================================================= +2920 REM Sous-programme de calcul du centrage +2930 REM ======================================================================= +2940 REM +2950 XEMIN=1000:YEMIN=1000 +2960 XEMAX=-1000:YEMAX=-1000 +2970 IF MAIL>5 THEN STP=2^(MAIL-5) ELSE STP=1 +2980 FOR I=1 TO DN STEP STP +2990 FOR J=1 TO DN-I+1 STEP STP +3000 CI=I:CJ=J +3010 GOSUB 3220 +3020 IF XEXEMAX THEN XEMAX=XE +3040 IF YEYEMAX THEN YEMAX=YE +3060 NEXT J +3070 NEXT I +3080 ECRX=600:ECRY=190 +3090 RAP=2.62 +3100 ECHX=ECRX/(XEMAX-XEMIN)/RAP +3110 ECHY=ECRY/(YEMAX-YEMIN) +3120 IF ECHYX2 THEN 3470 +3450 IF COMP=INT(PCH+.5) THEN PSET(X1,Y1),1 ELSE PSET(X1,Y1),0 +3460 GOTO 3530 +3470 FOR N=X1 TO X2 STEP SGN(X2-X1) +3480 C=0 +3490 IF COMP=INT(PCH+.5) THEN C=1:PCH=PCH+FREQ +3500 PSET (N,Y1),C +3510 COMP=COMP+1 +3520 NEXT N +3530 CPT2=CPT2+1 +3540 RETURN +3550 REM +3560 REM =============================== +3570 REM trac des contours +3580 REM =============================== +3590 REM +3600 LINE (XE(1),YE(1))-(XE(2),YE(2)),C +3610 LINE (XE(2),YE(2))-(XE(3),YE(3)),C +3620 LINE (XE(3),YE(3))-(XE(1),YE(1)),C +3630 RETURN + \ No newline at end of file diff --git a/FWF.BAS b/FWF.BAS new file mode 100644 index 0000000..5db6a81 --- /dev/null +++ b/FWF.BAS @@ -0,0 +1,33 @@ +5 CLS:dim b(10000) +10 SCREEN 1:DX=20:'window (0,0)-(319,199) +15 'WINDOW SCREEN (0,0)-(1500,1500):DX=1000:DY=1000 +20 REM ************************************************************************ +30 REM *** FWF INSIGNE de DARCHE Yoann en BASICA avec un cran CGA *** +40 REM ************************************************************************ +50 DATA 32,75,95,75,120,111,135,85,120,50,129,50,145,75,162,50,171,50,153,85,170 +60 DATA 111,189,83,-1,-1,204,84,225,88,225,100,195,100,170,150,145,100,120,150 +70 DATA 86,85,22,96,-2,-2 +80 REM -1,-1 = arrt pas de liason avec la prochne coordonne. -2,-2 fin +90 READ X,Y:IF X=-2 THEN 200 'fin +100 PSET (X+DX,Y+DY),1 +110 READ X1,Y1:IF X1=-2 THEN 200' fin +120 IF X1=-1 THEN 90 'pas de liaison avec la prochaine coordonne +130 LINE -(X1+DX,Y1+DY),1:GOTO 110 +199 REM *************************$ Les cercles ********************************* +200 CIRCLE (145+DX,150+DY),149,1,1,3.14 +210 CIRCLE (151+DX,146+DY),142,1,0,3.18 +220 LINE (-4+DX,150+DY)-(9+DX,150+DY),1 +230 CIRCLE (227+DX,91+DY),41,1,1.3,2.3,2.5/2 +240 LINE (170+DX,111+DY)-(205+DX,60+DY),1 +250 CIRCLE (237+DX,137+DY),71,1,.6,2.3,2.8/2 +260 PAINT (145+DX,90+DY),1 +270 PAINT (10+DX,100+DY),1 +280 LINE (163+DX,28+DY)-(166+DX,28+DY),1 +290 PSET(172+DX,29+DY),1:PSET (256+DX,67+DY),1 +300 PSET(262+DX,74+DY),1:PSET(263+DX,75+DY),1:PSET(24+DX,95+DY),1 +310 get (0,0)-(319,199),b:cls +Put (0,0),b,pset +def seg=&hb800 +bsave "a:fwf.pic",0,16384 + + diff --git a/FWF.PIC b/FWF.PIC new file mode 100644 index 0000000000000000000000000000000000000000..c128a5761be53f451e13f227f2e96bdb81b8657a GIT binary patch literal 16392 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 literal 0 HcmV?d00001 diff --git a/GDF1.BAS b/GDF1.BAS new file mode 100644 index 0000000000000000000000000000000000000000..204893e274c1bf53cbf240165ce9d84ffad2af77 GIT binary patch literal 364 zcmexg%*()_(669HEx>S?myrQ%o&p#I6y>KECFZ6o_o2;-{&(w;Ac7*hF~7+MvS t?Ccbjblg-JiurmN{j0VH$^oM=2yU(lJ!e#W6&Q!H-vj;a`&iP*hC8F<8OHUxgupSB}B+ px#vqEh7?{6hJT$PNl%6XUL%Hy3Z6P36;-@844n#matuHq1pxi16k-4X literal 0 HcmV?d00001 diff --git a/GDF3.BAS b/GDF3.BAS new file mode 100644 index 0000000000000000000000000000000000000000..6c8603abec086196221ed6a6c61a2215caf619b8 GIT binary patch literal 3270 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 literal 0 HcmV?d00001 diff --git a/GEODESIC.BAS b/GEODESIC.BAS new file mode 100644 index 0000000..a28c019 --- /dev/null +++ b/GEODESIC.BAS @@ -0,0 +1,83 @@ +0 SCREEN 2 +10 LX=640:LY=200 +20 PP=SQR(3)/2 +30 UI=0:UM=6.283184:VI=0:VM=6.283184 +40 DU=(UM-UI)/1000:DV=(VM-VI)/1000 +50 INPUT "paramtre U et V initiaux ",U,V +100 INPUT "paramtre U et V initiaux ",U,V +105 GOSUB 1000:GOSUB 1100 +107 XX=XP:YY=YP +110 INPUT "VITESSE INITIAL TU ET TV ";TU,TV +111 IF TU=0 AND TV=0 THEN 110 +112 GOSUB 1200 +113 MV=SQR(UX*UX+UY+UZ*UZ)*TU+SQR(VX*VX+VY+VZ*VZ)*TV +115 DT=2/MV +117 CLS:GOSUB 2000 +120 FOR I=1 TO 5000 +125 GOSUB 1500:GOSUB 1700 +130 U=U+DT*TU:V=V+DT*TV +140 TU=TU+DT*GU:TV=TV+DT*GV +150 GOSUB 1000:GOSUB 1100 +155 GOSUB 1200 +157 N=(UY*VZ-UZ*VY)+(UZ*VX-UX*VZ)+(UX*VY-UY*VX) +158 IF N<0 THEN PSET (XP,VP):GOTO 170 +160 LINE (XX,YY)-(XP,YP) +170 XX=XP:YY=YP +180 NEXT I:INPUT R$:END +1000 REM +1005 R1=80:R2=40 +1010 X=COS(U)*(R1+R2*COS(V)) +1020 Y=SIN(U)*(R1+R2*COS(V)) +1030 Z=R2*SIN(V) +1040 RETURN +1100 REM +1120 XP=LX/2+(Y-X)*PP +1130 YP=(LY+X+Y)/2-Z +1140 RETURN +1200 REM +1220 US=U:VS=V:GOSUB 1000:X0=X:Y0=Y:Z0=Z +1230 U=U+DU:GOSUB 1000:X1=X:Y1=Y:Z1=Z +1240 U=US:V=V+DV:GOSUB 1000 +1250 UX=(X1-X0)/DU:VX=(X-X0)/DV +1260 UY=(Y1-Y0)/DU:VY=(Y-Y0)/DV +1270 UZ=(Z1-Z0)/DU:VZ=(Z-Z0)/DV +1280 V=VS:RETURN +1500 REM +1520 U0=U:V0=V:GOSUB 1200 +1530 U1=UX:U2=UY:U3=UZ +1540 V1=VX:V2=VY:V3=VZ +1550 U=U+DU:GOSUB 1200 +1560 EX=(UX-U1)/DU:FX=(VX-V1)/DU +1570 EY=(UY-U2)/DU:FY=(VY-V2)/DU +1580 EZ=(UZ-U3)/DU:FZ=(VZ-V3)/DU +1590 U=U0:V=V0+DV:GOSUB 1200 +1600 GX=(VX-V1)/DV +1610 GY=(VY-V2)/DV +1620 GZ=(VZ-V3)/DV +1630 V=V0:GOSUB 1200 +1640 RETURN +1699 REM +1700 UU=UX*UX+UY*UY+UZ*UZ +1710 UV=UX*VX+UY*VY+UZ*VZ +1720 VV=VX*VX+VY*VY+VZ*VZ +1730 UE=UX*EX+UY*EY+UZ*EZ +1740 UF=UX*FX+UY*FY+UZ*FZ +1750 UG=UX*GX+UY*GY+UZ*GZ +1760 VE=VX*EX+VY*EY+VZ*EZ +1770 VF=VX*FX+VY*FY+VZ*FZ +1780 VG=VX*GX+VY*GY+VZ*GZ +1790 CU=-(TU*TU*UE+2*TU*TV*UF+TV*TV*UG) +1800 CV=-(TU*TU*VE+2*TU*TV*VF+TV*TV*VG) +1810 GU=(CU*VV*CV*UV)/(UU*VV-UV*UV) +1820 GV=(UU*CV-UV*CU)/(UU*VV-UV*UV) +1830 RETURN +1999 REM +2000 UU=U:VV=V:KU=80:KV=40:FOR U=UI TO UM STEP (UM-UI)/KU +2005 FOR V=VI TO VM STEP (VM-VI)/KV +2006 GOSUB 1200 +2007 N=(UY*VZ-UZ*VY)+(UZ*VX-UX*VZ)+(UX*VY-UY*VX) +2008 IF N<0 THEN 2040 +2010 GOSUB 1000:GOSUB 1100 +2020 PSET (XP,YP) +2040 NEXT V:NEXT U:U=UU:V=VV:RETURN + \ No newline at end of file diff --git a/GEOGRAPH.BAS b/GEOGRAPH.BAS new file mode 100644 index 0000000000000000000000000000000000000000..48e1b643813d083e3b3c62180031c174d66f30f5 GIT binary patch literal 662 zcma)(F=!M)6o#L=aH5de**g%#lOb5_!ddKMHI>CR3w!6Wg1!d^ERs@%gP@J%yd#Pv z9@=POqm^J4)XGK?(L*i}ZG?1!I?iseP8Z*-Cy15R4F7!p^ zuxF&2stol|(dA$AH(qn!-li?{}4D7C~gbqaDaK_Q0FO^t*j{yMCw zy_+ExL1g))=!Xk(U2Up&A@*9-i&}xct>z{GXZ-PRn2P4fXA6VMfYzlP{AE*reD#^{ zmVbBVv;XC5%zO|1`*26iZPhe4%Qg4N;fepqCGVy-fH(eAp4&~oi$#umPt7m&`%BCH zd3^(>{tMvH>j2yS1V+3lJ>t#5H~$l?s{8~ayME?j&MPZ1DJU)}fy45gN0mg0#iXPd zq`c^j;gsBPY*@jzf}@>~2}~?8mqc)0zI0wEQd}^|;y=iOe9Nn+a literal 0 HcmV?d00001 diff --git a/GRAPHI.BAS b/GRAPHI.BAS new file mode 100644 index 0000000..a496c90 --- /dev/null +++ b/GRAPHI.BAS @@ -0,0 +1,69 @@ +10 ' Enchainement d'images graphiques en gwbasic. +20 ' basic /M:&HE000 +120 SCREEN 1: KEY OFF : GOSUB 540 +130 LOCATE 12,4 : PRINT "Cration de deux fichiers images " +135 GOSUB 500 +136 CLS +140 ' +150 FOR I%=1 TO 100 +160 COULEUR%=1+(2*RND) : X%=639*RND : Y%=199*RND : RAYON%=200*RND +170 CIRCLE(X%,Y%),RAYON%,COULEUR% +180 NEXT +190 ' +200 DEF SEG=&HB800 : BSAVE "IMAGE1.BLD", 0, &H4000 +210 LINE (0,0)-(639,199),3,BF +220 ' +230 FOR I%=1 TO 100 +240 COULEUR%=(2*RND) : X1%=639*RND : Y1%=199*RND : X2%=639*RND : Y2%=199*RND +250 LINE (X1%,Y1%)-(X2%,Y2%),COULEUR%,B +260 NEXT +270 ' +280 BSAVE "IMAGE2.BLD", 0, &H4000 +290 ' +300 DEF SEG : CLS : LOCATE 12,4 : PRINT "Reprise et affichage des fichiers " +310 ' +320 DIM IMG1%(&H2000),IMG2%(&H2000) +330 ' +340 ADRESSE1%=VARPTR(IMG1%(0)) : BLOAD "IMAGE1.BLD", ADRESSE1% +360 ADRESSE2%=VARPTR(IMG2%(0)) : BLOAD "IMAGE2.BLD", ADRESSE2% +380 ' +390 WHILE INKEY$="" +400 CALLS TRANS(IMG1%(0)) : GOSUB 500 +420 CALLS TRANS(IMG2%(0)) : GOSUB 500 +440 WEND +460 '------------------------------------------------------------------------- +470 SCREEN 0 : WIDTH 80 : END +480 '------------------------------------------------------------------------- +490 ' attente +500 FOR I%=1 TO 5000 : NEXT +510 RETURN +515 ' +520 ' enlever les deux ligne de vrification si tout fonctionne bien +530 ' +540 FOR I=0 TO 122 : READ X : VERIF = VERIF+X : NEXT +550 IF VERIF <> 14655 THEN PRINT "ERREUR DE SAISIE DANS LES DATA ":END +555 ' +560 ' POKage de RCLS : +570 TRANS = &HE000 : RESTORE 630 : DEF SEG +580 FOR I=0 TO 122 : READ X : POKE TRANS+I, X : NEXT +590 RETURN +600 '------------------------------------------------------------------------ +610 ' roUtine ASSEMBLEUR . +620 '------------------------------------------------------------------------ +630 DATA 85 , 139 , 236 , 30 , 6 , 197 , 118 , 6 , 139 +640 DATA 198 , 139 , 232 , 51 , 192 , 205 , 26 , 184 , 1 +650 DATA 0 , 11 , 208 , 129 , 250 , 160 , 15 , 118 , 6 +660 DATA 129 , 234 , 160 , 15 , 235 , 244 , 82 , 139 , 194 +670 DATA 51 , 210 , 185 , 5 , 0 , 247 , 241 , 131 , 250 +680 DATA 0 , 90 , 116 , 219 , 209 , 226 , 205 , 17 , 169 +690 DATA 48 , 0 , 117 , 5 , 184 , 0 , 176 , 235 , 3 +700 DATA 184 , 0 , 184 , 142 , 192 , 51 , 255 , 185 , 160 +710 DATA 15 , 139 , 4 , 38 , 137 , 5 , 139 , 132 , 0 +720 DATA 32 , 38 , 137 , 133 , 0 , 32 , 3 , 250 , 129 +730 DATA 255 , 62 , 31 , 118 , 4 , 129 , 239 , 64 , 31 +740 DATA 139 , 199 , 139 , 240 , 139 , 197 , 3 , 245 , 81 +750 DATA 185 , 100 , 0 , 144 , 226 , 253 , 89 , 226 , 212 +760 DATA 7 , 31 , 93 , 202 , 4 , 0 +770 ' +780 ' pour routine inline TB, enlever Les 3 dernier codes. + \ No newline at end of file diff --git a/GRAPHIC.BAS b/GRAPHIC.BAS new file mode 100644 index 0000000..4ee43c0 --- /dev/null +++ b/GRAPHIC.BAS @@ -0,0 +1,21 @@ +0 CLEAR,,,32768!:SCREEN 5 +10 CLS +20 FOR I=0 TO 10 +30 LINE (150,I*10)-(150-I*10,100) +31 LINE (51,100-I*10)-(51+I*10,1) +32 LINE (150+I*10,1)-(250,I*10) +33 LINE (51,I*10+100)-(51+I*10,200) +34 LINE (150+I*10,200)-(250,200-I*10) +35 LINE (150,I*10)-(150+I*10,100) +36 LINE (150,200-I*10)-(150-I*10,100) +37 LINE (150,200-I*10)-(150+I*10,100) +40 NEXT +41 LINE (50,199)-(250,199) +45 GOTO 45 +60 FOR I=0 TO 10 +65 LINE (200,100-I*10)-(200+I*10,1) +66 LINE (200+I*10,1)-(300,I*10) +67 LINE (200,I*10)-(200+I*10,100) +68 LINE (200+I*10,100)-(300,100-I*10) +70 NEXT + \ No newline at end of file diff --git a/GRAPHICS.PAS b/GRAPHICS.PAS new file mode 100644 index 0000000..74c41a2 --- /dev/null +++ b/GRAPHICS.PAS @@ -0,0 +1,44 @@ +Program Graphics; +{ fait par drche yoann pour IBM & Copactible } + + + + + +const + co=2; +var + x,y,x1,y1 :integer; + +Procedure TRACE; + +Begin + Draw(x,y,x1,y1,co); +End; + + +Procedure Calcule; + +Begin + x := x+1; + x1:= x1-1 ; + y:= y-1 ; + y1:= y1+1; + Trace; +End; + { debut du programme } + +Begin +Begin +GraphColorMode; +Palette(2); + Calcule; + trace; + + trace; + calcule; + +end + + + \ No newline at end of file diff --git a/GRAPHIMP.BAS b/GRAPHIMP.BAS new file mode 100644 index 0000000..d6d4a73 --- /dev/null +++ b/GRAPHIMP.BAS @@ -0,0 +1,9 @@ +10 CLS +20 LOCATE 12,1:PRINT " Allumez votre imprimante et appuyer sur une touche" +30 A$=INPUT$(1) +40 LPRINT CHR$(27);"!" +50 LPRINT CHR$(18) +60 PRINT "Votre imprimante est configure en mode Graphique !!! " +70 LOCATE 22,70:PRINT "Darche Yoann" +80 END + \ No newline at end of file diff --git a/H.IM b/H.IM new file mode 100644 index 0000000000000000000000000000000000000000..4b7debce894898c85a6e580f1062df82b0dbe56d GIT binary patch literal 32776 zcmeI(J#HII7ldK1!=X2zEjm=@SUd5$94RqumdX}~WcN(>={i3&$e?k751RXaPoaka zaetkDoKB~2Z_m$vE$~(Qd4K(>eW3JdFR$m%cj+UQ4|_-6`BRhd1CN0f3IE}-uo~e8 zuOQ)F9UAM5d_67waMl>PiO0waggrbKW)tq<6(BsULu1~^`_s}7XU@n&c#O;-9K~Z{ zG~onZ2H_lDG@+#qjWHunPfI?W5%AUmY4(M|PT)d^p$ci7y^2?S$@l473tP;Mob|>d-hl za?rHo!#Ou{EFLSz3B&OiI7*m-H%^#@H%ORThsOPp^QNUA&i*|~$75uVumT_4XArm>&1}4bb}nGd)%I zN85L7J;G1C-WQn6!StXlUh50Y^ibI!-QX1?Y}TQ%#yz>8mVP+%?@1Srk=cZMcr45$ zJiyB)JjTl;9IZoR{K!Mok`HI}J(Zu0(hp~QUx| zuZh;XP5UpgKaH=6+jpD&dD_3cyu>ONUVQ`98~K8_efw$$vOnz#uk{6Hf3)H+Z}Dmo zHt-4&cI(iXe^1)e(hq0ut7aFEk(q=?cr45!9Kg#Y9K*{ZoT)=&?8w8@k`HI(J(@EEBf^uc4{I-wh$hR_plozTAyjn2_y0534`$_ z2~+COI5u+pwDiMyd{5Hw7%8jE&Xubk6Z?ik++1E@L0Gd zEQYrweE$Bw_WSvx|Fz=hxy>_PZZGEMe=G2hcuj0CW`U$l!r#|KRl>_Vwj$xxJGLC* zRUO{HwF)oO^1A_NossYG7+Hm|g~!4QgdMyhgu8WU%pJKuE&XujjeLm5$SlGUJQijU z4&r4Ij^kwz&eowZZse(H$%ixQo>=f$89`{oW1v5w9WR1#3D2ESP=`jZkyodsA5M>Z zBEn;&o=}I!LM@>bPfqAihep-N>S^hRQ!%m=9wXNY{qR`0M(B#SPUwxdMi^6vM$5{f62&3`l2ovxo2-E7&csz2>wDiNde@{~J7`aE7jmN?sVFA27 h!Wwuz!b){$ydJsCwB*CNy(cyQ8|x3kNB{l*%O8rf|7-vN literal 0 HcmV?d00001 diff --git a/IMAGE.DAZ b/IMAGE.DAZ new file mode 100644 index 0000000000000000000000000000000000000000..3af33a6e55b0cd478fb9cb74c00fe15bd9f2c51c GIT binary patch literal 16392 zcmeIu!3h8`3qR!YD`{3fEAy*Avx>C;D*ETt}$uex?}GSPB^|8Vz~LXv9Yw zi_yS7P0?lIN~yoau|bL|Og3wA6gOegA*T@j=O1-A9iNLA0bRa}cen0QPgT)@Cx9N` z3Fw;UKCL(-b%!!|e793+)YZ={eA}j3?Y65Oy?2m?KlI);5Yro&upa9qZ(@$%Ynpdv zmn$3_5StxrcPr!oE_`7PFwq;6P=a-mhoUMBUw_|JeQ^PjCA~r#bqacISNI|>JPtY% z-qYN60EP>Uv;O{Sc1Ltj6ZPUWYsfUTB`u-u5MI-`fCsLBI9X-jGF(#-LKNEIyg~?3 zC_FAQ35Cu*f3NG#83DE8^+)SV<}*~{DbX9U^Yho4-^-HE613Ux8+gA$+dajY$Mg*p zaUI84+8x~QFAm?Ii|%CQ<;8$=vwsD)6l0qBU?Z=5Co^~T^!N_L(^FBsDe{td!(c$}p8qb_sRX;9ymAF#syVxi3rEgf2h0R55&}>ukvlrUbreDgW zLrx(ip#Od^LHOb*O1w7@FHdH8|2&k>#fyLr-%S8i;(dH@_&z-k&hzS+bp7(3{i<};v} z;j`*xNiGU33M>jN3M>lzz7z;P{P=@b|HS`b^agf5dHv|;qvs#S&HVoj?DtG1P`v^7 zAMXc;Mh0X;t3y`GqJ1mA_@uQzCzkUvb@6}X(}v%|Ytp*PGfv9wWn z>(EB~%Rk zy!%fM`2VCD!vY`Wf~J~}{QnO55Zjw#Iys=;IX{9>*@5#spd|0!?1$+MJ$vOi|U zmUvl%QJLE1T&MmVzHd_tZLq7-sggAvTCr>Cp7?5iJzf9Q)V{I&VRYQzx6)nT*fr?H zVRHE5^-oRhN7KIsyibGuC0jfcP$YEtMA1mnaT_!M2kU7>`1(`hiFnodA>s``Ke_rHrmo;-MbsviDGIr{L}eryO2 z|G%a1a94FF;}9G2g)yJe=Z6;tD1&Ci$1#`1w$y0Irf?sSF>@e>^f}!=23um|Q;jwS>gW>slbp9m`o@{(B8_KXQ=B?#AVtyUE6%9kbPk>|7v)C8|7yb?a0OA|K zARl~f$h+a5l`^*n&JVLs5D!DpOVXkt#DGSsQPpApzhj0O&-2&i`BEB3HY^^_VbBXI zD9!VTg>-)hX^A@pEoFZzcBVLff;i{L8>250kF~;i#1wk#98-Hp5))=HeN-?ABc1F2 zUsYX);gE*7XpVWUMJCh>-x!YOgSH*t4;=meLSv+jOl>Nm6#3`yL_K-w5Tmiqk$CGE z7d!RJf_YGdP16+qzdcts_}c{V1|q=P!@U5U=JHo8xt$^3tVE+ZtqF8_az@`c_vaERT4608Y~QUjxvVEILWi%szOc<{=*Kqa zK)y#NakgtbT!#;kJ@l2987;QS{tHld^lZ&U0E@SlQh|ds@`Q{O?X7uTR&lC^&<`hpe zcF}?V?}gdLQ;bV;QD9MEQD9MEQDC?Nm+<#n4 zT-pz(qCE=-Lb(saJH8(Mv;Q)-<$>Kv<=JD44(&Q2bo`MMaTha-U=qSCyL`77^LxY{ zcyg16%QrvW7=PWdhbNx)dznl#rX}d;cMA1J=?Bl(-rm!};p@-)-zPc-^B}s)yC(RKc68>~?o`|+@rJP#q=RRSPBz__5Ith?itXO8 z)KySEL>#^wtILVS;~{JbSv+Xr@EQI;i-%gV=f9;G)0D^2pfaX;^kcR)VWe~UuBwh_ z5l=?(e;>%vuk`0^I(WGL<`qnIu=qJv)&76v*W!JA!6jmZPi<=7D^<*_ zHj2Y6JA88e+os{b3wtrx#`ymocyg16!&m>l2pWkdA6j7p_46iIIh+n(asN*E1$%>U z@&93kb)6qj9bMQ`zv#jaoZsQ=52#{D7IwjxOxQLy?w9CVfNSc?S$}DmC|-GfMDd27 zAEtTDCx?899O6sj6?{p&F?`+~3M?L|)Xk^G%lNc-tKrDQ@c#3aQ@iJ3bdFzz?Y6%$l3h@%(^x`>;CSB045>NOh6;H`i zF* Pour SORTIR + A$=INPUT$(1):IF A$=CHR$(27) THEN CLS:END + IF A$="&" OR A$="1" THEN GOTO GRAPHI + IF A$="" OR A$="2" THEN GOTO NORMAL + BEEP:COLOR ,7:CLS:BEEP:COLOR ,4:CLS:BEEP:COLOR ,1:CLS:GOTO PROG + +NORMAL : +LPRINT CHR$(27);"!":CLS:END + +GRAPHI : +LPRINT CHR$(27);"!" +LPRINT CHR$(18); +CLS:END + +FAITECRAN : + + MENU$=" "+MENU$+" " + LONG=LEN(MENU$):IT%=INT((80-LONG)/2) + LOCATE 1,IT%:PRINT "";STRING$(LONG,205);""; + LOCATE 2,1 + PRINT "";STRING$(IT%-2,205);"";MENU$;"";STRING$(78-IT%-LONG,205);""; + LOCATE 3,IT%:PRINT "";STRING$(LONG,205);""; + FOR I=3 TO 22 :LOCATE I,1 :PRINT "":LOCATE I,80:PRINT "";:NEXT I + LOCATE 23,1:PRINT "";STRING$(78,205);""; + LOCATE 4,1 +RETURN + + \ No newline at end of file diff --git a/ITALIQUE.BAS b/ITALIQUE.BAS new file mode 100644 index 0000000000000000000000000000000000000000..4d9f401c220e63716be2d9317a317175399f5e19 GIT binary patch literal 85 zcmew##?QqtSK)K~P7Cp_gBd;on3J z{t6v_2TdJ*ejQ;Q9Ua+OGbI}t4)JR+{F|hpW@KvZ4#ZBr zAW=&LYiDC?KX+pTYd2#9C5D^)MhuQB&+l1vD*!1aC55vJd`1impZRSV{&i~bYv}Nc zXui_mKcU0F0O%$|RR#_LH->*53L5-C+eN@aIv*I61pa5_ dpnDz*EPz`r3Ukj7fmLupsDF<$Ffd3-0RVIwaDxB< literal 0 HcmV?d00001 diff --git a/KAL2.BAS b/KAL2.BAS new file mode 100644 index 0000000000000000000000000000000000000000..f39f4e40e9ec028eba65ce62736c4fac667c38ce GIT binary patch literal 460 zcmezG!_UB=aDX9&pNpYQA;3^oL#Ba8QzyU(!eA)k7hyP|AY`>)K}tuEp@(0NVS|DO zzl{#Rjpi#2{w+HEJ(@Z~I!+8L_%#^*O$17%=hNm-MRjy!85kHE7>@88LF6i6 za>5|FvuAu77#{H3K;(L0aw2ejZ~5IA995pTs%QvlGH?h4F#PKTTA-oBZv?XYgbx2S zphFE+8Ds^b82)ttrGWMtfrWHFFjxqr;8GtfkcU;uNR=T&paNnP&=x~*FaV9J6=;GB zLd}2AFkPSrXb8eNXLR^yK%BEiU>ZcZI+Ama3oJmj6QTZ*z$&a#K<9iH*aElN80H)v Q!F_N+sB?}3!&yoS07&h0(*OVf literal 0 HcmV?d00001 diff --git a/KAL3.BAS b/KAL3.BAS new file mode 100644 index 0000000000000000000000000000000000000000..97fe74d50be56de23f5468e141336fdad463e47e GIT binary patch literal 461 zcmezG!_UB=aDX9&pNpYQA;3^oL#Ba8QzyU(!eA)k7hyP|AY`>)K~P7Kp@(0NVS|DO zzlILKk>)E6{u4U<(=>I2betHr@@p`J1UdS;syzQcO@k+tLGvYuUInH9Luf%whO_)e z4FCFpW>o0#r)cUx^ymmNJmj}w_%{(Q&MybF?j64ygQLpxRuv5)O$H8u0ET~^=yn5L z%pfZe#qh5Ks8v&k-x%n2Lsgv*3>E?@K;;;21*s1f$ipgSq{@&XPysPYU5DQg91K9C zY6Y4gf?#ih&40%*L!bv@2+&ePP*|MQ;hze&oMElNG`Jyf_nZ(|09S7eRX-h~{;|L+ aT<-ZHum$clxO;d7_o2JzI0FNNloSBqYY6nvd1%G*0*6I7Pt7WZU}yA3vp7DkhJNrVtcVeP(iQbU+M?ZZQ&#_=kGkC{YXjiS|vL{_JXEon!o@EXUkhGGiwGc`^bDGv>$a9K!i@*pe zz%E3|3e4NVp3O}MW=I*@hm<21D4h?Eb%8at%46V@b!Z=OobFsYiui&xvZd_(+}otm z?;;sg$&tzlpYZgDsh|r|`xU$CEx0FV|1us0o`zjs$))Zx^`}dVTx+-1RP% ";:BEEP:GOTO 240 +310 GOTO 160 +320 END +330 REM LECTURE ET AFFICHAGE DU LABYRINTHE +340 RESTORE +350 FOR J=1 TO 9 +360 FOR I=1 TO 9 +370 READ A$ +380 P$(I,J)=A$ +390 IF A$="1" THEN AFF%=205 +400 IF A$="2" THEN AFF%=186 +410 IF A$="3" THEN AFF%=201 +420 IF A$="4" THEN AFF%=200 +430 IF A$="5" THEN AFF%=188 +440 IF A$="6" THEN AFF%=187 +450 IF A$="7" THEN AFF%=206 +460 IF A$="16" THEN AFF%=69 +470 IF A$="17" THEN AFF%=83 +480 IF A$="12" THEN AFF%=26 +490 IF A$="13" THEN AFF%=24 +500 IF A$="14" THEN AFF%=25 +510 IF A$="15" THEN AFF%=27 +520 IF A$="8" THEN AFF%=203 +530 IF A$="9" THEN AFF%=202 +540 IF A$="10" THEN AFF%=204 +550 IF A$="11" THEN AFF%=185 +560 LOCATE J+2,I:PRINT CHR$(AFF%);:AF$(I,J)=CHR$(AFF%) +570 NEXT I +580 NEXT J +590 RETURN +2000 REM ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +2010 IF X < XM THEN A=1 ELSE A=2 +2020 IM=1:RETURN +2030 REM ======================================================================= +2040 IF Y < YM THEN A=1 ELSE A=2 +2050 IM=1:RETURN +2060 REM ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +2070 IF X < XM THEN A=1:IM = 3 ELSE A=2:IM=2 +2080 RETURN +2090 REM ======================================================================= +2100 IF X < XM THEN A=1:IM = 2 ELSE A=2:IM=3 +2110 RETURN +2120 REM ======================================================================= +2130 IF X > XM THEN A=1:IM = 3 ELSE A=2:IM=2 +2140 RETURN +2150 REM ======================================================================= +2160 IF X > XM THEN A=1:IM = 2 ELSE A=2:IM=3 +2170 RETURN +2180 REM ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +2190 IM=7 +2200 IF Y=YM AND X>XM THEN A=1:RETURN +2210 IF Y=YM AND XYM THEN A=3:RETURN +2230 A=4:RETURN +2240 REM ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +2250 IF X > XM THEN A=1:IM=5:RETURN +2260 IF X < XM THEN A=2:IM=6:RETURN +2270 A=3:IM=4:RETURN +2280 REM ======================================================================= +2290 IF X > XM THEN A=1:IM=6:RETURN +2300 IF X < XM THEN A=2:IM=5:RETURN +2310 A=3:IM=4:RETURN +2320 REM ======================================================================= +2330 IF Y > YM THEN A=1:IM=6:RETURN +2340 IF Y < YM THEN A=2:IM=5:RETURN +2350 A=3:IM=4:RETURN +2360 REM ======================================================================= +2370 IF Y > YM THEN A=1:IM=5:RETURN +2380 IF Y < YM THEN A=2:IM=6:RETURN +2390 A=3:IM=4:RETURN +3000 REM ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +3010 REM ************ CALCULE DES DEPLACEMENTS ******************************** +3020 REM ======================== B=1 : ===================================== +3030 IF A=1 AND T$="8" THEN X=X-1:RETURN +3040 IF A=2 AND T$="8" THEN X=X+1:RETURN +3050 RETURN +3060 REM ======================== B=2 : ====================================== +3070 IF T$="8" AND A=1 THEN Y=Y-1:RETURN +3080 IF T$="8" AND A=2 THEN Y=Y+1:RETURN +3090 RETURN +3100 REM ========================== B=3 : ==================================== +3110 IF T$="4" AND A=1 THEN Y=Y+1:RETURN +3120 IF T$="6" AND A=2 THEN X=X+1:RETURN +3130 RETURN +3140 REM ========================== B=4 : ==================================== +3150 IF T$="6" AND A=1 THEN Y=Y-1:RETURN +3160 IF T$="4" AND A=2 THEN X=X+1:RETURN +3170 RETURN +3180 REM ========================== B=5 : ==================================== +3190 IF T$="4" AND A=1 THEN Y=Y-1:RETURN +3200 IF T$="6" AND A=2 THEN X=X-1:RETURN +3210 RETURN +3220 REM ========================== B=6 : ==================================== +3230 IF T$="6" AND A=1 THEN Y=Y+1:RETURN +3240 IF T$="4" AND A=2 THEN X=X-1:RETURN +3250 RETURN +3260 REM ========================== B=7 : ==================================== +3270 IF T$="8" AND A=1 THEN X=X+1:RETURN +3280 IF T$="4" AND A=1 THEN Y=Y-1:RETURN +3290 IF T$="6" AND A=1 THEN Y=Y+1:RETURN +3300 IF T$="8" AND A=2 THEN X=X-1:RETURN +3310 IF T$="4" AND A=2 THEN Y=Y+1:RETURN +3320 IF T$="6" AND A=2 THEN Y=Y-1:RETURN +3330 IF T$="8" AND A=3 THEN Y=Y+1:RETURN +3340 IF T$="4" AND A=3 THEN X=X+1:RETURN +3350 IF T$="6" AND A=3 THEN X=X-1:RETURN +3360 IF T$="8" AND A=4 THEN Y=Y-1:RETURN +3370 IF T$="4" AND A=4 THEN X=X-1:RETURN +3380 IF T$="6" AND A=4 THEN X=X+1:RETURN +3390 RETURN +3400 REM ========================== B=8 : ==================================== +3410 IF A=1 AND T$="6" THEN Y=Y+1:RETURN +3420 IF A=1 AND T$="8" THEN X=X+1:RETURN +3430 IF A=2 AND T$="4" THEN Y=Y+1:RETURN +3440 IF A=2 AND T$="8" THEN X=X-1:RETURN +3450 IF A=3 AND T$="4" THEN X=X-1:RETURN +3460 IF A=3 AND T$="6" THEN X=X+1:RETURN +3470 RETURN +3480 REM ========================== B=9 : ==================================== +3490 IF A=1 AND T$="4" THEN Y=Y-1:RETURN +3500 IF A=1 AND T$="8" THEN X=X+1:RETURN +3510 IF A=2 AND T$="6" THEN Y=Y-1:RETURN +3520 IF A=2 AND T$="8" THEN X=X-1:RETURN +3530 IF A=3 AND T$="4" THEN X=X+1:RETURN +3540 IF A=3 AND T$="6" THEN X=X-1:RETURN +3550 RETURN +3560 REM ========================== B=10: ==================================== +3570 IF A=1 AND T$="4" THEN X=X+1:RETURN +3580 IF A=1 AND T$="8" THEN Y=Y+1:RETURN +3590 IF A=2 AND T$="6" THEN X=X+1:RETURN +3600 IF A=2 AND T$="8" THEN Y=Y-1:RETURN +3610 IF A=3 AND T$="4" THEN Y=Y+1:RETURN +3620 IF A=3 AND T$="6" THEN Y=Y-1:RETURN +3630 RETURN +3640 REM ========================== B=11: ==================================== +3650 IF A=1 AND T$="6" THEN X=X-1:RETURN +3660 IF A=1 AND T$="8" THEN Y=Y+1:RETURN +3670 IF A=2 AND T$="4" THEN X=X-1:RETURN +3680 IF A=2 AND T$="8" THEN Y=Y-1:RETURN +3690 IF A=3 AND T$="4" THEN Y=Y-1:RETURN +3700 IF A=3 AND T$="6" THEN Y=Y+1:RETURN +3710 RETURN +4000 REM ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +4010 CLS:LOCATE 1,1:PRINT " C'EST UNE SIMPLE ALLEE ":MES$=" (8) ou (2) " +4020 LINE (110,70)-(10,10),1 +4030 LINE -(310,190),1,B +4040 LINE -(210,130),1 +4050 LINE (310,10)-(210,70),1 +4060 LINE -(110,130),1,B +4070 LINE -(10,190),1 +4080 RETURN +4081 REM ======================================================================= +4090 CLS:LOCATE 1,1:PRINT " C'est un virage droit ";:MES$=" (6) ou (2) " +4100 LINE (10,10)-(310,190),1,B +4110 LINE (110,70)-(250,130),2,BF +4120 LINE (310,10)-(250,46),1:LINE -(250,154),1:LINE -(310,190),1 +4130 LINE (10,10)-(110,70),1 +4140 LINE (110,130)-(10,190),1 +4150 RETURN +4151 REM ======================================================================= +4160 CLS:LOCATE 1,1:PRINT " C'est un virage Gauche ";:MES$=" (4) ou (2) " +4170 LINE (10,10)-(310,190),1,B +4180 LINE (70,70)-(210,130),2,BF +4190 LINE -(310,190),1:LINE (210,70)-(310,10),1 +4200 LINE (10,190)-(70,154),1:LINE -(70,46),1:LINE -(10,10),1 +4210 RETURN +4211 REM ======================================================================= +4220 CLS:LOCATE 1,1:PRINT " c'est un T ";:MES$=" (4) (2) (6) " +4230 LINE (10,10)-(310,190),1,B +4240 LINE -(230,150),1:LINE -(230,50),1:LINE -(310,10),1 +4250 LINE (10,10)-(90,50),1 +4260 LINE -(90,150),1:LINE -(10,190),1 +4270 LINE (90,140)-(230,60),2,BF +4280 RETURN +4281 REM ======================================================================= +4290 CLS:LOCATE 1,1:PRINT "vous pouvez aller tout droit ou a droite";:MES$=" (8) (6) (2) " +4300 LINE (10,10)-(310,190),1,B +4310 LINE -(280,172),1:LINE -(280,28),1: LINE -(310,10),1 +4320 LINE (10,10)-(110,70),1:LINE -(210,130),1,B: LINE -(250,154),1 +4330 LINE -(250,46),1:LINE -(210,70),1 +4340 LINE (110,130)-(10,190),1 +4350 LINE (250,46)-(280,154),2,BF +4360 RETURN +4361 REM ======================================================================= +4370 CLS:LOCATE 1,1:PRINT "vous pouvez aller tout droit ou a gauche";:MES$=" (8) (4) (2) " +4380 LINE (310,190)-(10,10),1,B +4390 LINE -(40,28),1:LINE -(40,172),1:LINE -(10,190),1 +4400 LINE (310,190)-(210,130),1:LINE -(110,70),1,B +4410 LINE -(70,46),1:LINE -(70,154),1:LINE -(110,130),1 +4420 LINE (40,46)-(70,154),2,BF +4430 LINE (210,70)-(310,10),1 +4440 RETURN +4441 REM ======================================================================= +4450 CLS:LOCATE 1,1:PRINT "C'est une intersection + ";:MES$=" (2) (8) (4) (6) " +4460 LINE (10,10)-(310,190),1,B:LINE (110,70)-(210,130),1,B +4470 LINE (40,46)-(70,154),2,BF:LINE (250,46)-(280,154),2,BF +4480 LINE (310,10)-(280,28),1:LINE -(280,172),1:LINE -(310,190),1 +4490 LINE (10,10)-(40,28),1:LINE -(40,172),1:LINE -(10,190),1 +4500 LINE (110,70)-(70,46),1:LINE (70,154)-(110,130),1 +4510 LINE (210,70)-(250,46),1:LINE (250,154)-(210,130),1 +4520 RETURN +4521 REM ======================================================================= +4530 CLS:LOCATE 1,1:PRINT " C'EST UN CUL DE SAC ":MES$=" (2) " +4540 LINE (110,70)-(10,10),1 +4550 LINE -(310,190),1,B +4560 LINE -(210,130),1 +4570 LINE (310,10)-(210,70),1 +4580 LINE -(110,130),2,BF +4590 LINE -(10,190),1 +4600 RETURN +4601 REM ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +5000 CLS:LOCATE 12,1:PRINT " Vous avez reussit ....." +5010 LOCATE 21,5:PRINT "Encore O/N" +5015 FOR I=1 TO 10:A$=INKEY$:NEXT I +5016 A$=INPUT$(1) +5020 IF A$="o" OR A$="O" THEN 120 +5030 SCREEN 2:SCREEN 0:END +6000 DATA 17, 1, 1, 1, 1, 1, 1, 1, 6 +6010 DATA 3, 1, 8, 1, 1,12,15, 6, 2 +6020 DATA 10,16, 4, 1, 6, 3, 6, 2, 2 +6030 DATA 10, 6, 3,12, 2, 2, 2, 2, 2 +6040 DATA 2, 2, 2, 3, 5, 2, 2,10, 5 +6050 DATA 2, 2, 2, 2,15, 5, 2, 4, 6 +6060 DATA 2, 2, 2, 4, 1, 1,11, 3, 5 +6070 DATA 2,14, 4, 1, 1, 1, 7, 5,13 +6080 DATA 4, 1, 1, 1, 1, 1, 9, 1, 5 +6090 DATA -1 diff --git a/LABY.PAS b/LABY.PAS new file mode 100644 index 0000000..b24a930 --- /dev/null +++ b/LABY.PAS @@ -0,0 +1,220 @@ +{cette version de LABY contien : } +{ -Creation d'un labyrinthe 38*11 27/11/1987} +{ -recherche de la solution 27/01/1988} +{ -Optimisation de l'algorythme: 14/02/1988} +{ gnration du laby => 9"50 sur XT ,2"30 sur AT } + +CONST xmax=38; + YMAX=11; + AD=$B800; + +TYPE Pointeur_vers_piece = ^piece; + Piece = RECORD + Precedent : Pointeur_vers_piece; + x,y,r : byte; + END; + +VAR debut_de_liste,ptr1,ptr2:Pointeur_vers_piece; + r,d,i,x,xp,y,yp,moy:byte; + dx,dy:integer; + rep:char; + +{-----------------------------------------------------------------------------} +{ Procedures pour gnrer le labyrinthe } +{-----------------------------------------------------------------------------} + +PROCEDURE Direction(dr:byte;var sx,sy:integer); + Begin + sx:=((2*dr+1) div 3)-1; + sy:=((2*dr+1) mod 3)-1; + End; + +FUNCTION Trace(mr,mx,my:byte):boolean; { Y a-t-il une trace de l'autre cot } + var vx,vy:integer; { du mur dans la direction mr ? } + Begin { Coord laby } + Direction(mr,vx,vy); + if Mem[ad:320*(my+vy)+4*(mx+vx)]=32 then Trace:=false else Trace:=true; + End; + +PROCEDURE Enlever_mur(our,ox,oy:byte); { Enlve le mur de la piece ox,oy } + Var odx,ody:integer; { dans la direction our } + Begin { Coord laby } + Direction(our,odx,ody); + Mem[ad:160*(2*oy+ody)+2*(2*ox+odx)]:=32; + End; + +FUNCTION Distance(drr,dix,diy:byte):byte; { Donne la distance en nombre } + Begin { de pieces entre la piece dix,diy } + Case drr of { et le bord du labyrinthe } + 0: Distance:=dix-1; { dans la direction drr } + 1: Distance:=diy-1; { Coord laby } + 2: Distance:=ymax-diy; + 3: Distance:=xmax-dix; + end; + End; + +FUNCTION Possible_avancer(pr,a,b:byte):boolean; { Est-il posible d'avancer } + Var vx,vy:integer; { dans la direction pr } + Begin { sans crer de boucle } + Direction(pr,vx,vy); { Coord laby } + + if (Trace(pr,a,b)) and (Mem[ad:160*(b*2+vy)+2*(a*2+vx)]<>32) + then Possible_avancer:=false + else Possible_avancer:=true; + End; + +PROCEDURE Remplissage; { Remplis les coins suivant } + Var d,i,exp2,n,x,y,rx,ry:byte; { la position des murs attenant } + vx,vy:integer; + Begin + for x:=0 to xmax do begin + for y:=0 to ymax do begin + rx:=2*x+1; + ry:=2*y+1; + n:=0;exp2:=1; + for i:=0 to 3 do begin + Direction(i,vx,vy); + if Mem[ad:160*(ry+vy)+2*(rx+vx)]<>32 then n:=n+exp2; + exp2:=exp2*2 + end; + Case n of + 0: d:= 32; 1: d:= 181; 2: d:= 208; 3: d:= 188; + 4: d:= 210; 5: d:= 187; 6: d:= 186; 7: d:= 185; + 8: d:= 198; 9: d:= 205; 10: d:= 200; 11: d:= 202; + 12: d:= 201; 13: d:= 203; 14: d:= 204; 15: d:= 206; + end; + Mem[ad:160*ry+2*rx]:=d; + end; + end; + End; +{-----------------------------------------------------------------------------} +{ Procedure pour rechercher la solution } +{-----------------------------------------------------------------------------} + +FUNCTION Sens_interdit(r,x,y:byte):boolean; { Permet de savoir s'il est } + Var ax,ay:integer; { possible d'avencer dans } + Begin { la direction r } + Direction(r,ax,ay); + if ( Mem[ad:160*(2*y+ay)+2*(2*x+ax)]<>32) + or ( Mem[ad:320*(y+ay)+4*(x+ax)]<>32) + then Sens_interdit:=true + else Sens_interdit:=false; + End; + +{-----------------------------------------------------------------------------} +{ Gnration du Labyrinthe } +{-----------------------------------------------------------------------------} + +BEGIN + + Clrscr;{------------ Prparation de l'cran----------------------------------} + + for y:=0 to ymax do for x:=1 to xmax do Mem[ad:320*y+4*x+160]:=205; { dessin } + for y:=1 to ymax do for x:=0 to xmax do Mem[ad:320*y+4*x+2]:=186; {des murs} + + Remplissage; {Dessin des coins} + Mem[ad:324]:=79; {entre} + Mem[ad:320*ymax+4*xmax+2]:=32; {Sortie} + for dx:=0 to 1999 do Mem[ad:2*dx+1]:=7; {Encre normal} + + Randomize; + Moy:=(xmax+ymax) *2; +{-----------------------Fabrication du Labyrinthe-----------------------------} + + For yp:=1 to ymax do begin { Balayage de toute les pices } + for xp:=1 to xmax do begin + (** Recherche du dbut d'un couloir **) + if Mem[ad:320*yp+4*xp]=32 then + + BEGIN + r:=random(4); { Choix direction } + while (not Trace(r,xp,yp)) or (Distance(r,xp,yp)=0) + do r:=(r+1) mod 4; + + Enlever_mur(r,xp,yp); { Ouverture sur un autre couloir } + x:=xp; y:=yp; + (** Gneration du couloir **) + For i:=1 to moy do begin + r:=random(4); { Choix direction } + while Distance(r,x,y)=0 do r:=(r+1) mod 4; { viter le bord } + + Direction(r,dx,dy); + D:=random(Distance(r,x,y)) mod 3 +1; { Choix longueur des petites } + { avances } + while Possible_avancer(r,x,y) and (D>0) do + begin { On avance en dtruisant } + Enlever_mur(r,x,y); { des murs et en laissant } + Mem[ad:160*2*y+2*2*x]:=176; { des traces derrire soi } + x:=x+dx; + y:=y+dy; + Mem[ad:160*2*y+2*2*x]:=219; + D:=D-1; + end; + end; + Mem[ad:160*2*y+2*2*x]:=254; { On quitte ce couloir } + END; { Fin de la gnration du couloir } + End; { Fin couloir, Fin balayage } + End; + +{---------------------------Finition------------------------------------------} + + Remplissage; { Dessin de coins } + { Efface les traces } + for y:=1 to ymax do for x:=1 to xmax do Mem[ad:320*y+4*x]:=32; + Mem[ad:324]:=79; + +gotoxy(5,25);write('Pressez une touche ...');read(kbd,rep);gotoxy(1,25);clreol; +{-----------------------------------------------------------------------------} +{ Recherche de la solution } +{-----------------------------------------------------------------------------} + + NEW ( Debut_de_liste ); { Cration de la premire pice } + + With Debut_de_liste^ do begin + Precedent:=NIL; + x:=1; + y:=1; + r:=0; + end; + + Ptr1:=debut_de_liste; + x:=1; y:=1; r:=0; + + REPEAT {-------------------Dplacement--------------------------------------} + + While (Sens_interdit(r,x,y)) and (r<4) do r:=r+1; { Cherche r pour avancer } + IF r=4 + THEN begin + Ptr2:=Ptr1^.precedent; + r:=Ptr2^.r; + x:=Ptr2^.x; + y:=Ptr2^.y; + Direction(r,dx,dy); + Mem[ad:160*(2*y+dy)+2*(2*x+dx)]:=32; + Mem[ad:320*(y+dy)+4*(x+dx)]:=32; + DISPOSE(Ptr1); + Ptr1:=Ptr2; + r:=r+1; + end + ELSE begin + NEW(ptr2); + Ptr2^.precedent:=Ptr1; + Ptr1^.r:=r; + Direction(r,dx,dy); + if (r=0) or (r=3) then Mem[ad:160*(2*y+dy)+2*(2*x+dx)]:=196 + else Mem[ad:160*(2*y+dy)+2*(2*x+dx)]:=179; + x:=x+dx; + y:=y+dy; + Mem[ad:320*y+4*x]:=219; + Ptr2^.x:=x; + ptr2^.y:=y; + ptr2^.r:=0; + r:=0; + ptr1:=ptr2; + end; + UNTIL (x=xmax) and (y=ymax); + +{----------------------------- Fin du programme ------------------------------} + sound(1500);delay(50);Nosound;gotoxy(1,24); +End. + \ No newline at end of file diff --git a/LABY2.BAS b/LABY2.BAS new file mode 100644 index 0000000000000000000000000000000000000000..11fa2aa3048c280ff9d76859fed2b8928054078e GIT binary patch literal 3148 zcmbVOacmoB6@T`|;xr^%bxi}eRASBRKExhl} zPLoyZH0}@k`@Z+S-}m18-uu08Wfup4=TTJ8Bd<;)*AN!e8TdB05e{Qdh-(XTZ3+}Q z4jw`E5qOI8(%=FYROB~a{?Kn)hI8DfYKqSz_86E+4c}WxXU+Wvjv5$GXLCiw=ViFU zg=&g39}4*LMH%jFYO`%1Gf+mvoxOtt*b&_s9m3x2+hhIM6UBH;>(wKJ{ZWhzVrQ?` zfgOX`6Zv|wKc?wjQ5i;>zT$w$7}52prpJ0U(oJArEP8iz0Oj_T;~`E|s(+Ac>Z~0K zzijHWExlD~XMt)A^URWOl#EQqz-)TlNR`O7V!B`)XdTa$iWu73+SYn!>o!G(KQs+N zWRrDSjaVx`3JJ&;?BkB>PRawS)Y#ajkXVWOKl|^~0jQ^m)g1n8%&Z!UDa^SN- z0FQ4!Nb(Os8Do}!bEv^y{y6l6VqrnC1TguN_JrHWW(WCGa6iUif z99mxaVJM(LxFao(RDv| zhhtz00oRSq*@BqQ71NGEMiKLAW1mrkgM#e3$BMv&5O&o9b`ShY_!1pjJ8wBq5tZ<| znPQ3X8{unodJHZL-L8ZssL53Wm;Dv5q9!}6q}ta-l1_`;4alJnT9Or^I6}mi6$8_!vW^RNw0)wk3DUNJ%~HhPTC^Ix?y}Ua81kEaU04s~)&2 zo>(X9tBRiRfZzMnI#IkT+U9{a@6XnWc2q^L*1_H0=SWnIs>rHNbHi@$8S*K~Jg^-g zJ35tiIOKhabQ4x$0Iy)uO0qw8J8YN74JW*Fwpeha9gft-Ot|4$?`tl-&(ixU0=(#b z%Z`~u!CCo9Nbgf%-n&Gb361HKuO~Tp-TQAB1>~3uIN$ppm78nJ2=n_>MFZPlm(Sxq zf_BC)-Ua~o5%w%{zOcw{g(!H8NY_l23I-ZQ6UTA|Gi>uzYMkg{Uus{rj51>yx|Cx+ z!F_|h!x^JkG{Q!9Z|Pp6;IN$xXMLY!oBYm!k#V9L{7&g}=?rEKv`;Fe%t9)kH;89p z-nZGU$0d|z<0fT)Q$gDdO;sPjx#%+1%XW{)mEI8x&`Zo#`y>YSz|R zWt(A`RM2K_Y`Bc0scex^qg~!)R@MKb&51Reb}}}%qf{Q*PxhCQsD3q?;o(ARJSW4G z&BJcG%QN+Gu{pzb2c1Arqw0wcwc7nE(%ISHtLf2x+#aRo)e)hl6+x|caA!0!cvqMh=e$oHmIx06B{n_vKOv2y&+dK?a zvjNMKNpv!X|>SqJ}o@=Og1itAZRI0--2KEwaci;&JC!DOX{$_*k2|RN> z&RAe-4bFE1FL;Or2hH!oyxLU)Z23o~=HgL;^>+Jb;plQQ3d!_@@2ErjP&jmJZ zn1ow`&((j-(CdZNNEt_RWBH6>f;V`kzSfB}_)PF6nst*sb4YKvuHalfi<;dJnXj|h zO+*)~5gm7ln65wgTD{X26T!FYC*kM8XBz%5lc;g$%Z2pVgjq0PDmc|}&93R-3k|a< zRZo^L(e3{+I73Suy&9ap!PYJXXB$|LtOWmLZ+3dRN4ng=yl@^Ewihw-!q0f^k_?Kp zXp5aE$EsMX!NOMQUpDHOrK=5-a6mfFeLVNJ(7P_5xmNM;uym3;f_mSQ9$)0Vb_zWv zo#LX@Y+sa4a|zu_#Ftin5Tf6Nvb_2d5Gyt>6aPzRxuk9-Z6*3mD)72=p7uv6zbxqj zfk&+%;WjRC@V@jW%_)QQa8h?Nt?@JmzLvK+%C$J_TXDx#MysE0S>PCj>Y%i|%P|_& z;jWhVKByX(;c&~%O;lf`%UT#I+L5c#cdcLKs9iW+0!Pc^xk5QiZ`@p_yh@c1wKO(O JQoE6){{ihW&C37) literal 0 HcmV?d00001 diff --git a/LABY2E.BAS b/LABY2E.BAS new file mode 100644 index 0000000..ac81711 --- /dev/null +++ b/LABY2E.BAS @@ -0,0 +1,168 @@ +20 REM ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +30 REM :: PROGRAMME ECRIT EN (GW)BASIC(A) POUR IBM :: +40 REM :: imagine,compose,et ralise par DARCHE YOANN ........... :: +50 REM :: =-=-=-=-=-=-=-=-=-=-=-=-= :: +60 REM :: Le LABYRINTHE INFERNAL VERSION 1.2 :: +70 REM :: =-=-=-=-=-=-=-=-=-=-=-=-= :: +80 REM :: Commenc le : 6/06/1990 fini le : ../../19.. :: +90 REM ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +100 DEFINT X,Y,I,J,B,A +110 DIM P$(10,10),AF$(10,10) +120 X=2:Y=3:XM=1:YM=Y:Y2=YM:X2=XM +130 SCREEN 1 +150 GOSUB 340 +155 ' +160 XM=X2:YM=Y2:D$=P$(X,Y):B=VAL(D$):GOSUB 3000 +185 ' +190 IF B=17 THEN 5000 +200 IF B=16 THEN B=12 +210 IF B=12 OR B=13 OR B=14 OR B=15 THEN IM = 8:FLAG=1:GOTO 230 ELSE FLAG=0 +230 ON IM GOSUB 4010,4090,4160,4220,4290,4370,4450,4530 +235 ' +240 T$=INPUT$(1):IF T$=CHR$(27) THEN END +260 IF T$="2" THEN SWAP X,X2:SWAP Y,Y2:GOTO 160 +270 IF FLAG=1 THEN 300 +280 X2=X:Y2=Y +285 'ͼ +290 GOTO 2010 '================= calcule des dplacement ==================== +295 ' +300 LOCATE 25,1:PRINT "Non ! Seulement ";MES$;" ";:BEEP:GOTO 240 +310 GOTO 160 +330 REM LECTURE ET AFFICHAGE DU LABYRINTHE +340 RESTORE +350 FOR J=1 TO 9 +360 FOR I=1 TO 9 +370 READ A$ +380 P$(I,J)=A$ +570 NEXT I +580 NEXT J +590 RETURN +2000 REM ====================== Calcule de dplacement ====================== +2001 ' ::::::::::::::::::::::::: T$="8" ( Tout droit ) :::::::::::::::::::::: +2010 IF T$<>"8" THEN GOTO 2090 +2020 IF (X>XM) AND ( B=7 OR B=8 OR B=9) THEN X=X+1:GOTO 160 +2030 IF (XYM) AND ( B=7 OR B=10 OR B=11 OR B=2) THEN Y=Y+1:GOTO 160 +2050 IF (Y>YM) AND ( B=2 ) THEN Y=Y+1:GOTO 160 +2060 IF (YXM) AND ( B=1 ) THEN X=X+1:GOTO 160 +2080 GOTO 300 +2089 ' ::::::::::::::::::::::::: T$="6" ( A droite ) :::::::::::::::::::::::: +2090 IF T$<>"6" THEN GOTO 2190 +2100 IF (X=XM) AND ( B=3 OR B=8 ) THEN X=X+1:GOTO 160 +2110 IF (YYM) AND ( B=7 OR B=11) THEN X=X-1:GOTO 160 +2140 IF (X>XM) AND ( B=6 OR B=7 OR B=8 ) THEN Y=Y+1:GOTO 160 +2150 IF (Y=YM) AND ( B=11 ) THEN Y=Y+1:GOTO 160 +2160 IF (X"4" THEN GOTO 300 +2200 IF (X=XM) AND ( B=4 OR B=9 ) THEN X=X+1:GOTO 160 +2210 IF (Y>YM) AND ( B=7 OR B=10) THEN X=X+1:GOTO 160 +2220 IF (X=XM) AND ( B=6 OR B=8 ) THEN X=X-1:GOTO 160 +2230 IF (YXM) AND ( B=5 OR B=7 OR B=9) THEN Y=Y-1:GOTO 160 +2260 IF (Y=YM) AND ( B=11 ) THEN Y=Y-1:GOTO 160 +2270 IF (Y=YM) AND ( B=10 ) THEN Y=Y+1:GOTO 160 +2280 GOTO 300 +2999 REM :::::::::::::::::::::::::::::::::::::::: Calcule image :::::::::::::::: +3000 IF B=1 OR B=2 THEN IM=1:RETURN +3010 IF X=XM AND (B=3 OR B=5) OR XXM AND B=6 THEN IM=2:RETURN +3020 IF X=XM AND (B=4 OR B=6) OR XXM AND B=5 THEN IM=3:RETURN +3030 IF B=7 THEN IM=7:RETURN +3040 IF (X>XM AND B=8) OR (XYM AND B=11) THEN IM=5:RETURN +3050 IF (X>XM AND B=9) OR (XYM AND B=10) THEN IM=6:RETURN +3060 IF (X=XM AND (B=8 OR B=9)) OR (Y=YM AND (B=10 OR B=11)) THEN IM=4:RETURN +3070 RETURN +4000 REM ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +4010 CLS:LOCATE 1,1:PRINT " C'EST UNE SIMPLE ALLEE ":MES$=" (8) ou (2) " +4020 LINE (110,70)-(10,10),1 +4030 LINE -(310,190),1,B +4040 LINE -(210,130),1 +4050 LINE (310,10)-(210,70),1 +4060 LINE -(110,130),1,B +4070 LINE -(10,190),1 +4080 RETURN +4081 REM ======================================================================= +4090 CLS:LOCATE 1,1:PRINT " C'est un virage droit ";:MES$=" (6) ou (2) " +4100 LINE (10,10)-(310,190),1,B +4110 LINE (110,70)-(250,130),2,BF +4120 LINE (310,10)-(250,46),1:LINE -(250,154),1:LINE -(310,190),1 +4130 LINE (10,10)-(110,70),1 +4140 LINE (110,130)-(10,190),1 +4150 RETURN +4151 REM ======================================================================= +4160 CLS:LOCATE 1,1:PRINT " C'est un virage Gauche ";:MES$=" (4) ou (2) " +4170 LINE (10,10)-(310,190),1,B +4180 LINE (70,70)-(210,130),2,BF +4190 LINE -(310,190),1:LINE (210,70)-(310,10),1 +4200 LINE (10,190)-(70,154),1:LINE -(70,46),1:LINE -(10,10),1 +4210 RETURN +4211 REM ======================================================================= +4220 CLS:LOCATE 1,1:PRINT " c'est un T ";:MES$=" (4) (2) (6) " +4230 LINE (10,10)-(310,190),1,B +4240 LINE -(230,150),1:LINE -(230,50),1:LINE -(310,10),1 +4250 LINE (10,10)-(90,50),1 +4260 LINE -(90,150),1:LINE -(10,190),1 +4270 LINE (90,140)-(230,60),2,BF +4280 RETURN +4281 REM ======================================================================= +4290 CLS:LOCATE 1,1:PRINT "vous pouvez aller tout droit ou a droite";:MES$=" (8) (6) (2) " +4300 LINE (10,10)-(310,190),1,B +4310 LINE -(280,172),1:LINE -(280,28),1: LINE -(310,10),1 +4320 LINE (10,10)-(110,70),1:LINE -(210,130),1,B: LINE -(250,154),1 +4330 LINE -(250,46),1:LINE -(210,70),1 +4340 LINE (110,130)-(10,190),1 +4350 LINE (250,46)-(280,154),2,BF +4360 RETURN +4361 REM ======================================================================= +4370 CLS:LOCATE 1,1:PRINT "vous pouvez aller tout droit ou a gauche";:MES$=" (8) (4) (2) " +4380 LINE (310,190)-(10,10),1,B +4390 LINE -(40,28),1:LINE -(40,172),1:LINE -(10,190),1 +4400 LINE (310,190)-(210,130),1:LINE -(110,70),1,B +4410 LINE -(70,46),1:LINE -(70,154),1:LINE -(110,130),1 +4420 LINE (40,46)-(70,154),2,BF +4430 LINE (210,70)-(310,10),1 +4440 RETURN +4441 REM ======================================================================= +4450 CLS:LOCATE 1,1:PRINT "C'est une intersection + ";:MES$=" (2) (8) (4) (6) " +4460 LINE (10,10)-(310,190),1,B:LINE (110,70)-(210,130),1,B +4470 LINE (40,46)-(70,154),2,BF:LINE (250,46)-(280,154),2,BF +4480 LINE (310,10)-(280,28),1:LINE -(280,172),1:LINE -(310,190),1 +4490 LINE (10,10)-(40,28),1:LINE -(40,172),1:LINE -(10,190),1 +4500 LINE (110,70)-(70,46),1:LINE (70,154)-(110,130),1 +4510 LINE (210,70)-(250,46),1:LINE (250,154)-(210,130),1 +4520 RETURN +4521 REM ======================================================================= +4530 CLS:LOCATE 1,1:PRINT " C'EST UN CUL DE SAC ":MES$=" (2) " +4540 LINE (110,70)-(10,10),1 +4550 LINE -(310,190),1,B +4560 LINE -(210,130),1 +4570 LINE (310,10)-(210,70),1 +4580 LINE -(110,130),2,BF +4590 LINE -(10,190),1 +4600 RETURN +4601 REM ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +5000 CLS:LOCATE 12,1:PRINT " Vous avez reussit ....." +5010 LOCATE 21,5:PRINT "Encore O/N" +5015 FOR I=1 TO 10:A$=INKEY$:NEXT I +5016 A$=INPUT$(1) +5020 IF A$="o" OR A$="O" THEN 120 +5030 SCREEN 2:SCREEN 0:END +6000 DATA 17, 1, 1, 1, 1, 1, 1, 1, 6 +6010 DATA 3, 1, 8, 1, 1,12,15, 6, 2 +6020 DATA 10,16, 4, 1, 6, 3, 6, 2, 2 +6030 DATA 10, 6, 3,12, 2, 2, 2, 2, 2 +6040 DATA 2, 2, 2, 3, 5, 2, 2,10, 5 +6050 DATA 2, 2, 2, 2,15, 5, 2, 4, 6 +6060 DATA 2, 2, 2, 4, 1, 1,11, 3, 5 +6070 DATA 2,14, 4, 1, 1, 1, 7, 5,13 +6080 DATA 4, 1, 1, 1, 1, 1, 9, 1, 5 +6090 DATA -1 + \ No newline at end of file diff --git a/LABY3.BAS b/LABY3.BAS new file mode 100644 index 0000000..de9d3bd --- /dev/null +++ b/LABY3.BAS @@ -0,0 +1,128 @@ +10 CLEAR:DEFINT A-Z:SCREEN 1:OPTION BASE 1:DIM CF(9),G(2000):CLS:EN = 150 +20 LOCATE 5,10:PRINT "Le Labyrinthe infernal":PRINT:PRINT "de Darche Yoann" +25 PRINT:PRINT "Directions (2)(8)(6)(4) (P)rendre (ESC)ape " +27 PRINT:PRINT "Veuillez patienter, Preparation du jeu ... " +30 RESTORE:READ XME,YME,X,Y,XM,YM:DIM P(XME,YME,3) +40 FOR J=1 TO YME:FOR I=1 TO XME:READ C$:K=1:P(I,J,2)=0:VA=VAL(C$) +50 IF VA=0 AND C$<>"0" THEN C$=MID$(C$,2,2):P(I,J,2)=1:READ F$:P(I,J,3)=VAL(F$) +60 IF VA<0 THEN K=-1: P(I,J,2)=2:READ F$:P(I,J,3)=VAL(F$) +70 P(I,J,1)=VAL(C$)*K:NEXT I:NEXT J:X2=XM:Y2=YM +99 REM =================================== Programme Principal =============== +100 XM=X2:YM=Y2:B=P(X,Y,1):GOSUB 3000:CLS:EN=EN-1:FL=0:TP=0 +101 LOCATE 25,1:PRINT "Pts d'endurance :";EN; +110 IF B=17 THEN GOTO 5000 +120 IF B>=12 AND B<=16 THEN IM=8:FLAG=1 ELSE FLAG=0 +130 ON IM GOSUB 4010,4090,4160,4220,4290,4370,4450,4530 +135 IF EN<=0 THEN LOCATE 12,15:PRINT "Vous avez Perdu !!!!":GOTO 5010 +140 FL=0:ON P(X,Y,2)+1 GOTO 150,1000,1500 +150 T$=INPUT$(1):IF T$=CHR$(27) THEN 5010 +160 IF (T$="p" OR T$="P") AND FL=1 THEN 1600 +170 IF T$<>"2" AND TP=1 THEN BEEP:LOCATE 25,1:PRINT "- Porte fermee !";:GOTO 150 +180 IF T$="2" THEN SWAP X,X2:SWAP Y,Y2:GOTO 100 +190 IF FLAG=1 THEN 300 ELSE X2=X:Y2=Y:GOTO 2010 +300 LOCATE 25,1:PRINT "Non ! Seulement ";MES$;" ";:BEEP:GOTO 150 +999 REM =========================== GRAPHIQUES SUPLEMENTAIRE (Coffre,Grille) == +1000 LINE (40,28)-(280,172),3,B:GET (141,65)-(199,172),G:TP=0 +1010 FOR Q=40 TO 280 STEP 20:LINE (Q,28)-(Q,172),3:NEXT +1020 FOR Q=28 TO 172 STEP 18:LINE (40,Q)-(280,Q),3:NEXT:CF=CF(P(X,Y,3)) +1030 IF CF=0 THEN TP=1:LINE (141,65)-(199,172),3,BF ELSE PUT(141,65),G,PSET +1040 GOTO 150 '==================== (Coffre )================================== +1500 LINE (160,180)-(120,160),,B:LINE -(140,140):LINE -(180,140):LINE -(160,160) +1510 LINE (130,150)-(170,150):LINE -(170,170):LINE -(160,180):FL=1:GOTO 150 +1600 IF P(X,Y,3)>0 THEN LOCATE 25,1:PRINT "vous trouvez une cle";:CF(P(X,Y,3))=1 +1610 IF P(X,Y,3)>0 THEN P(X,Y,2)=0:GOTO 150 '========= (TESTE PRISE d'obj.) === +1620 V=RND(1)*100:IF V/2=INT(V/2) THEN N=1:N$="donne" ELSE N=-1:N$="retire" +1630 LOCATE 25,1:PRINT "La fiole avalee vous ";N$;" 10 pts";:EN=EN+10*N:GOTO 150 +2000 ' ==================== calcule de deplacement =========================== +2010 IF T$<>"8" THEN GOTO 2090 ' ::::: T$="8" tout droit :::::::::::::::::::: +2020 IF (X>XM) AND ( B=7 OR B=8 OR B=9) THEN X=X+1:GOTO 100 +2030 IF (XYM) AND ( B=7 OR B=10 OR B=11 OR B=2) THEN Y=Y+1:GOTO 100 +2050 IF (Y>YM) AND ( B=2 ) THEN Y=Y+1:GOTO 100 +2060 IF (YXM) AND ( B=1 ) THEN X=X+1:GOTO 100 +2080 GOTO 300 +2090 IF T$<>"6" THEN GOTO 2190 ': T$="6" ( A droite ) ::::::::::::::::::::::: +2100 IF (X=XM) AND ( B=3 OR B=8 ) THEN X=X+1:GOTO 100 +2110 IF (YYM) AND ( B=7 OR B=11) THEN X=X-1:GOTO 100 +2140 IF (X>XM) AND ( B=6 OR B=7 OR B=8 ) THEN Y=Y+1:GOTO 100 +2150 IF (Y=YM) AND ( B=11 ) THEN Y=Y+1:GOTO 100 +2160 IF (X"4" THEN GOTO 300 ':: T$="4" ( A gauche ) :::::::::::::::::::: +2200 IF (X=XM) AND ( B=4 OR B=9 ) THEN X=X+1:GOTO 100 +2210 IF (Y>YM) AND ( B=7 OR B=10) THEN X=X+1:GOTO 100 +2220 IF (X=XM) AND ( B=6 OR B=8 ) THEN X=X-1:GOTO 100 +2230 IF (YXM) AND ( B=5 OR B=7 OR B=9) THEN Y=Y-1:GOTO 100 +2260 IF (Y=YM) AND ( B=11 ) THEN Y=Y-1:GOTO 100 +2270 IF (Y=YM) AND ( B=10 ) THEN Y=Y+1:GOTO 100 +2280 GOTO 300 '::::::::::::::::::::::::::::::: Calcule image :::::::::::::::: +3000 IF B=1 OR B=2 THEN IM=1:RETURN +3010 IF X=XM AND (B=3 OR B=5) OR XXM AND B=6 THEN IM=2:RETURN +3020 IF X=XM AND (B=4 OR B=6) OR XXM AND B=5 THEN IM=3:RETURN +3030 IF B=7 THEN IM=7:RETURN +3040 IF (X>XM AND B=8) OR (XYM AND B=11) THEN IM=5:RETURN +3050 IF (X>XM AND B=9) OR (XYM AND B=10) THEN IM=6:RETURN +3060 IF (X=XM AND (B=8 OR B=9)) OR (Y=YM AND (B=10 OR B=11)) THEN IM=4:RETURN +3070 RETURN '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +4010 LOCATE 1,1:PRINT " C'EST UNE SIMPLE ALLEE ":MES$=" (8) ou (2) " +4020 LINE (110,70)-(10,10),1:LINE -(310,190),1,B:LINE -(210,130),1 +4050 LINE (310,10)-(210,70),1:LINE -(110,130),1,B:LINE -(10,190),1:RETURN '--- +4090 LOCATE 1,1:PRINT " C'est un virage droit ";:MES$=" (6) ou (2) " +4100 LINE (10,10)-(310,190),1,B:LINE (110,70)-(250,130),2,BF +4120 LINE (310,10)-(250,46),1:LINE -(250,154),1:LINE -(310,190),1 +4130 LINE (10,10)-(110,70),1:LINE (110,130)-(10,190),1:RETURN '---------------- +4160 LOCATE 1,1:PRINT " C'est un virage Gauche ";:MES$=" (4) ou (2) " +4170 LINE (10,10)-(310,190),1,B:LINE (70,70)-(210,130),2,BF +4190 LINE -(310,190),1:LINE (210,70)-(310,10),1 +4200 LINE (10,190)-(70,154),1:LINE -(70,46),1:LINE -(10,10),1:RETURN '--------- +4220 LOCATE 1,1:PRINT " c'est un T ";:MES$=" (4) (2) (6) " +4230 LINE (10,10)-(310,190),1,B +4240 LINE -(230,150),1:LINE -(230,50),1:LINE -(310,10),1 +4250 LINE (10,10)-(90,50),1:LINE -(90,150),1:LINE -(10,190),1 +4270 LINE (90,140)-(230,60),2,BF:RETURN '-------------------------------------- +4290 LOCATE 1,1:PRINT "vous pouvez aller tout droit ou a droite"; +4300 LINE (10,10)-(310,190),1,B:MES$=" (8) (6) (2) " +4310 LINE -(280,172),1:LINE -(280,28),1: LINE -(310,10),1 +4320 LINE (10,10)-(110,70),1:LINE -(210,130),1,B: LINE -(250,154),1 +4330 LINE -(250,46),1:LINE -(210,70),1:LINE (110,130)-(10,190),1 +4350 LINE (250,46)-(280,154),2,BF:RETURN '------------------------------------ +4370 LOCATE 1,1:PRINT "vous pouvez aller tout droit ou a gauche"; +4380 LINE (310,190)-(10,10),1,B:MES$=" (8) (4) (2) " +4390 LINE -(40,28),1:LINE -(40,172),1:LINE -(10,190),1 +4400 LINE (310,190)-(210,130),1:LINE -(110,70),1,B +4410 LINE -(70,46),1:LINE -(70,154),1:LINE -(110,130),1 +4420 LINE (40,46)-(70,154),2,BF:LINE (210,70)-(310,10),1:RETURN '------------- +4450 LOCATE 1,1:PRINT "C'est une intersection + ";:MES$=" (2) (8) (4) (6) " +4460 LINE (10,10)-(310,190),1,B:LINE (110,70)-(210,130),1,B +4470 LINE (40,46)-(70,154),2,BF:LINE (250,46)-(280,154),2,BF +4480 LINE (310,10)-(280,28),1:LINE -(280,172),1:LINE -(310,190),1 +4490 LINE (10,10)-(40,28),1:LINE -(40,172),1:LINE -(10,190),1 +4500 LINE (110,70)-(70,46),1:LINE (70,154)-(110,130),1 +4510 LINE (210,70)-(250,46),1:LINE (250,154)-(210,130),1:RETURN '=============== +4530 LOCATE 1,1:PRINT " C'EST UN CUL DE SAC ":MES$=" (2) " +4540 LINE (110,70)-(10,10),1:LINE -(310,190),1,B:LINE -(210,130),1 +4570 LINE (310,10)-(210,70),1:LINE -(110,130),2,BF:LINE -(10,190),1:RETURN ':: +5000 CLS:LOCATE 12,15:PRINT " Vous avez reussit ....." +5010 LOCATE 21,15:PRINT "Encore O/N":FOR I=1 TO 10:A$=INKEY$:NEXT I:A$=INPUT$(1) +5020 IF A$="o" OR A$="O" THEN 10 ELSE SCREEN 2:SCREEN 0:END +6000 DATA 14,11,4,1,4,2 +6010 DATA 3,P1,1,17,16,-15,2,8,-12,3,3,-1,0,1,-1,6,P1,8,8,6 +6020 DATA 10,8,6,-2,0,3,7,1,9,1,6,3,6,4,11 +6030 DATA 2,p2,3,p2,2,4,11,10,1,1,6,2,2,10,8,11 +6040 DATA 2,2,10,-12,7,4,5,-15,4,6,2,2,p2,6,2,14,2 +6050 DATA 10,11,4,1,1,6,3,9,11,4,-5,8,10,-1,1,11 +6060 DATA 2,4,1,6,3,9,9,6,10,8,p1,7,5,3,11 +6070 DATA p2,4,3,6,2,4,1,6,4,11,p2,9,3,1,11,2 +6080 DATA 4,5,4,7,1,1,9,p1,2,11,2,2,-15,9,11,-2,0 +6090 DATA 3,1,1,9,8,6,3,p1,5,11,2,4,8,11,2 +6100 DATA 4,-1,0,8,1,5,10,5,-15,5,11,4,1,7,5,2 +6110 DATA 15,1,9,1,-1,0,9,1,p1,5,9,1,-1,0,9,1,5 + \ No newline at end of file diff --git a/LABY4.BAS b/LABY4.BAS new file mode 100644 index 0000000..11e8ae0 --- /dev/null +++ b/LABY4.BAS @@ -0,0 +1,152 @@ +10 CLEAR:DEFINT A-S,U-Z:OPTION BASE 1:DIM CF(9),G(2000):CLS:GOSUB 20000 +20 LOCATE 5:PRINT "Le Labyrinthe infernal de Darche Yoann" '[ Ver 1.4 08/1990 ] +25 PRINT:PRINT "Dir:(2)(8)(6)(4) (P)rendre (ESC)ape " +27 PRINT:PRINT " (C)arte , Preparation du jeu !" +30 RESTORE:READ XE,YE,X,Y,XM,YM,TA:DIM P(XE,YE,3):XI=2*XE:YI=2*YE +40 FOR J=1 TO YE:FOR I=1 TO XE:READ C$:K=1:P(I,J,2)=0:VA=VAL(C$) +45 IF VA=17 THEN SX=I:SY=J +50 IF VA=0 AND C$<>"0" THEN C$=MID$(C$,2,2):P(I,J,2)=1:READ F$:P(I,J,3)=VAL(F$) +60 IF VA<0 THEN K=-1: P(I,J,2)=2:READ F$:P(I,J,3)=VAL(F$) +70 P(I,J,1)=VAL(C$)*K:NEXT I:NEXT J:X2=XM:Y2=YM:T=TIMER 'Programme principal == +100 CLS:XM=X2:YM=Y2:B=P(X,Y,1):GOSUB 3000:FL=0:TP=0 +110 IF B=17 THEN GOTO 5000 +120 IF B>=12 AND B<=16 THEN IM=8:FLAG=1 ELSE FLAG=0 +130 ON IM GOSUB 4010,4090,4160,4220,4290,4370,4450,4530 +135 IF TKX>=320 THEN LOCATE 12,15:PRINT "Vous avez Perdu !!!!":GOTO 5010 +140 FL=0:ON P(X,Y,2)+1 GOTO 150,1000,1500 +145 TKX=INT(3.2*((TIMER-T)/TA*100)):LINE (0,195)-(TKX,199),2,BF +150 T$=INKEY$:IF T$=CHR$(27) THEN 5010 ELSE IF T$="" THEN 145 +160 IF (T$="p" OR T$="P") AND FL=1 THEN 1600 +162 IF T$="c" OR T$="C" THEN GOTO 900 +170 IF T$<>"2" AND TP=1 THEN BEEP:LOCATE 25,1:PRINT "- Porte fermee !";:GOTO 150 +180 IF T$="2" THEN SWAP X,X2:SWAP Y,Y2:GOTO 100 +190 IF FLAG=1 THEN 300 ELSE X2=X:Y2=Y:GOTO 2010 +300 LOCATE 25,1:PRINT "Non ! Seulement ";MES$;" ";:BEEP:GOTO 150 +900 GX=(306-XI)/2:GY=(186-YI)/2:HX=GX+XI+14:HY=GY+YI+14:GET(GX,GY)-(HX,HY),G +910 LINE(GX,GY)-(HX,HY),0,BF:LINE(GX+6,GY+6)-(HX-6,HY-6),1,B +920 M=SGN(X-SX)*2:N=SGN(Y-SY)*2:V=SGN(X-XM):W=SGN(Y-YM):D=GX+5+2*SX:F=GY+5+2*SY +930 IF M<0 THEN LINE(HX,98)-(HX-4,102),2,BF ELSE LINE(GX,98)-(GX+4,102),M,BF +940 IF N<0 THEN LINE(158,HY)-(162,HY-4),2,BF ELSE LINE(158,GY)-(162,GY+4),N,BF +950 IF V<0 THEN CIRCLE(GX+2,100),1,3 ELSE CIRCLE(HX-2,100),1,V +960 IF W<0 THEN CIRCLE(160,GY+2),1,3 ELSE CIRCLE(160,HY-2),1,W +965 G=GX+5+2*X:H=GY+5+2*Y:LINE (D,F)-(D+1,F+1),2,BF +970 LINE (G,H)-(G+1,H+1),3,BF:T$=INPUT$(1):PUT(GX,GY),G,PSET:GOTO 160 +1000 LINE (40,28)-(280,172),3,B:GET (141,65)-(199,172),G:TP=0 +1010 FOR Q=40 TO 280 STEP 20:LINE (Q,28)-(Q,172),3:NEXT +1020 FOR Q=28 TO 172 STEP 18:LINE (40,Q)-(280,Q),3:NEXT:CF=CF(P(X,Y,3)) +1030 IF CF=0 THEN TP=1:LINE (141,65)-(199,172),3,BF ELSE PUT(141,65),G,PSET +1040 GOTO 150 '==================== (Coffre )================================== +1500 LINE (160,180)-(120,160),,B:LINE -(140,140):LINE -(180,140):LINE -(160,160) +1510 LINE (130,150)-(170,150):LINE -(170,170):LINE -(160,180):FL=1:GOTO 150 +1600 IF P(X,Y,3)>0 THEN LOCATE 25,1:PRINT "vous trouvez une cle";:CF(P(X,Y,3))=1 +1610 IF P(X,Y,3)>0 THEN P(X,Y,2)=0:GOTO 150 '========= (TESTE PRISE d'obj.) === +1620 V=RND(1)*100:IF V/2=INT(V/2) THEN N=-1:N$="retire" ELSE N=1:N$="rajoute" +1630 LOCATE 25,1:PRINT "La fiole avalee vous ";N$;"30 sec";:T=T+30*N:GOTO 150 +2010 IF T$<>"8" THEN GOTO 2090 ' ::::: T$="8" tout droit :::::::::::::::::::: +2020 IF (X>XM) AND ( B=7 OR B=8 OR B=9) THEN X=X+1:GOTO 100 +2030 IF (XYM) AND ( B=7 OR B=10 OR B=11 OR B=2) THEN Y=Y+1:GOTO 100 +2050 IF (Y>YM) AND ( B=2 ) THEN Y=Y+1:GOTO 100 +2060 IF (YXM) AND ( B=1 ) THEN X=X+1:GOTO 100 ELSE 300 +2090 IF T$<>"6" THEN GOTO 2190 ': T$="6" ( A droite ) ::::::::::::::::::::::: +2100 IF (X=XM) AND ( B=3 OR B=8 ) THEN X=X+1:GOTO 100 +2110 IF (YYM) AND ( B=7 OR B=11) THEN X=X-1:GOTO 100 +2140 IF (X>XM) AND ( B=6 OR B=7 OR B=8 ) THEN Y=Y+1:GOTO 100 +2150 IF (Y=YM) AND ( B=11 ) THEN Y=Y+1:GOTO 100 +2160 IF (X"4" THEN GOTO 300 ':: T$="4" ( A gauche ) :::::::::::::::::::: +2200 IF (X=XM) AND ( B=4 OR B=9 ) THEN X=X+1:GOTO 100 +2210 IF (Y>YM) AND ( B=7 OR B=10) THEN X=X+1:GOTO 100 +2220 IF (X=XM) AND ( B=6 OR B=8 ) THEN X=X-1:GOTO 100 +2230 IF (YXM) AND ( B=5 OR B=7 OR B=9) THEN Y=Y-1:GOTO 100 +2260 IF (Y=YM) AND ( B=11 ) THEN Y=Y-1:GOTO 100 +2270 IF (Y=YM) AND ( B=10 ) THEN Y=Y+1:GOTO 100 ELSE 300 +3000 IF B=1 OR B=2 THEN IM=1:RETURN ':::::::::: Calcule image :::::::::::::::: +3010 IF X=XM AND (B=3 OR B=5) OR XXM AND B=6 THEN IM=2:RETURN +3020 IF X=XM AND (B=4 OR B=6) OR XXM AND B=5 THEN IM=3:RETURN +3030 IF B=7 THEN IM=7:RETURN +3040 IF (X>XM AND B=8) OR (XYM AND B=11) THEN IM=5:RETURN +3050 IF (X>XM AND B=9) OR (XYM AND B=10) THEN IM=6:RETURN +3060 IF (X=XM AND (B=8 OR B=9)) OR (Y=YM AND (B=10 OR B=11)) THEN IM=4:RETURN +3070 RETURN '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +4010 LOCATE 1,1:PRINT " C'EST UNE SIMPLE ALLEE ":MES$=" (8) ou (2) " +4020 LINE (110,70)-(10,10),1:LINE -(310,190),1,B:LINE -(210,130),1 +4050 LINE (310,10)-(210,70),1:LINE -(110,130),1,B:LINE -(10,190),1:RETURN '--- +4090 LOCATE 1,1:PRINT " C'est un virage droit ";:MES$=" (6) ou (2) " +4100 LINE (10,10)-(310,190),1,B:LINE (110,70)-(250,130),2,BF +4120 LINE (310,10)-(250,46),1:LINE -(250,154),1:LINE -(310,190),1 +4130 LINE (10,10)-(110,70),1:LINE (110,130)-(10,190),1:RETURN '---------------- +4160 LOCATE 1,1:PRINT " C'est un virage Gauche ";:MES$=" (4) ou (2) " +4170 LINE (10,10)-(310,190),1,B:LINE (70,70)-(210,130),2,BF +4190 LINE -(310,190),1:LINE (210,70)-(310,10),1 +4200 LINE (10,190)-(70,154),1:LINE -(70,46),1:LINE -(10,10),1:RETURN '--------- +4220 LOCATE 1,1:PRINT " c'est un T ";:MES$=" (4) (2) (6) " +4230 LINE (10,10)-(310,190),1,B +4240 LINE -(230,150),1:LINE -(230,50),1:LINE -(310,10),1 +4250 LINE (10,10)-(90,50),1:LINE -(90,150),1:LINE -(10,190),1 +4270 LINE (90,140)-(230,60),2,BF:RETURN '-------------------------------------- +4290 LOCATE 1,1:PRINT "vous pouvez aller tout droit ou a droite"; +4300 LINE (10,10)-(310,190),1,B:MES$=" (8) (6) (2) " +4310 LINE -(280,172),1:LINE -(280,28),1: LINE -(310,10),1 +4320 LINE (10,10)-(110,70),1:LINE -(210,130),1,B: LINE -(250,154),1 +4330 LINE -(250,46),1:LINE -(210,70),1:LINE (110,130)-(10,190),1 +4350 LINE (250,46)-(280,154),2,BF:RETURN '------------------------------------ +4370 LOCATE 1,1:PRINT "vous pouvez aller tout droit ou a gauche"; +4380 LINE (310,190)-(10,10),1,B:MES$=" (8) (4) (2) " +4390 LINE -(40,28),1:LINE -(40,172),1:LINE -(10,190),1 +4400 LINE (310,190)-(210,130),1:LINE -(110,70),1,B +4410 LINE -(70,46),1:LINE -(70,154),1:LINE -(110,130),1 +4420 LINE (40,46)-(70,154),2,BF:LINE (210,70)-(310,10),1:RETURN '------------- +4450 LOCATE 1,1:PRINT "C'est une intersection + ";:MES$=" (2) (8) (4) (6) " +4460 LINE (10,10)-(310,190),1,B:LINE (110,70)-(210,130),1,B +4470 LINE (40,46)-(70,154),2,BF:LINE (250,46)-(280,154),2,BF +4480 LINE (310,10)-(280,28),1:LINE -(280,172),1:LINE -(310,190),1 +4490 LINE (10,10)-(40,28),1:LINE -(40,172),1:LINE -(10,190),1 +4500 LINE (110,70)-(70,46),1:LINE (70,154)-(110,130),1 +4510 LINE (210,70)-(250,46),1:LINE (250,154)-(210,130),1:RETURN '=============== +4530 LOCATE 1,1:PRINT " C'EST UN CUL DE SAC ":MES$=" (2) " +4540 LINE (110,70)-(10,10),1:LINE -(310,190),1,B:LINE -(210,130),1 +4570 LINE (310,10)-(210,70),1:LINE -(110,130),2,BF:LINE -(10,190),1:RETURN ':: +5000 CLS:LOCATE 12,15:PRINT " Vous avez reussit ....." +5010 LOCATE 21,15:PRINT "Encore O/N":FOR I=1 TO 10:A$=INKEY$:NEXT I:A$=INPUT$(1) +5020 IF A$="o" OR A$="O" THEN 10 ELSE SCREEN 2:SCREEN 0:END +6000 DATA 14,11,4,1,4,2,1200 +6010 DATA 3,P1,1,17,16,-15,2,8,-12,3,3,-1,0,1,-1,6,P1,8,8,6 +6020 DATA 10,8,6,-2,0,3,7,1,9,1,6,3,6,4,11 +6030 DATA 2,p2,3,p2,2,4,11,10,1,1,6,2,2,10,8,11 +6040 DATA 2,2,10,-12,7,4,5,-15,4,6,2,2,p2,6,2,14,2 +6050 DATA 10,11,4,1,1,6,3,9,11,4,-5,8,10,-1,1,11 +6060 DATA 2,4,1,6,3,9,9,6,10,8,p1,7,5,3,11 +6070 DATA p2,4,3,6,2,4,1,6,4,11,p2,9,3,1,11,2 +6080 DATA 4,5,4,7,1,1,9,p1,2,11,2,2,-15,9,11,-2,0 +6090 DATA 3,1,1,9,8,6,3,p1,5,11,2,4,8,11,2 +6100 DATA 4,-1,0,8,1,5,10,5,-15,5,11,4,1,7,5,2 +6110 DATA 15,1,9,1,-1,0,9,1,p1,5,9,1,-1,0,9,1,5 +20000 CLS:SCREEN 2:SCREEN 0:COLOR 15 +20010 LOCATE 2,24:PRINT " DARCHE Yoann vous prsente : " +20020 LOCATE 5 +20022 PRINT " " +20025 PRINT " ۰" +20030 PRINT " ۰۰۰۰۰۰۰۰۰" +20040 PRINT " ۰۱۱۰۱۰۱۱۱۱۰۱۱" +20050 PRINT " ۰۱۱۱۱۱۱۱۱۱۱" +20060 PRINT " ۰۱۰۱۱۱۰۱" +20070 PRINT " ۰۱۱۱۱۰۱۱۱۱" +20080 PRINT " ۰۱۱۱۱۱۱۰۰۱۰۱۱" +20090 PRINT " ۰۰۱۱۱۱۱۱۰" +20100 PRINT " ۰" +20110 PRINT " ۰" +20120 PRINT " " +20130 PRINT +20140 LOCATE 23,5:COLOR 15,0:PRINT " Mr DARCHE Yoann 71 avenue d'Orlans 91800 BRUNOY tel : 69-39-51-26"; +20150 A$=INPUT$(1):SCREEN 1:RETURN +5:COLOR 15,0:PRINT " Mr DARCHE Yoann 71 avenue d'Orlans 91800 BRUNOY tel : 69-39-51-26"; +20150 A$=INPUT$(1):S \ No newline at end of file diff --git a/LABY4.TXT b/LABY4.TXT new file mode 100644 index 0000000..4c10722 --- /dev/null +++ b/LABY4.TXT @@ -0,0 +1,132 @@ + Ŀ + LABYRINTHE INFERNAL VERSION 1.3 + + + Vous tes entrez dans un labyrinthe,et la porte par laquelle vous tes arriv +c'est referme. Mais il exestiste une autre sortie, vous de la trouver !! + + Quellesques indications : + + - Dans ce labyrinthe il y a des grilles avec des portes fermes clef + les clefs qui permettent l'ouverture de ces portes sont rparties dans + des coffres dispercs dans le labyrinthe. Il y a 9 sortes de clef au maximum ! + Attention dans certain coffre il y a une fiole qui peut vous donnez ou + vous retirez des points d'endurances .... + + - Il faut que vous trouviez la sortie avant que vous n'ayez plus de + points d'endurance, sinon vous perissez jamais dans ce Labyrinthe. + + - Vous regardez toujours devant vous, vous tes dedans et non au + dessus ! + + - Pour vous aider vous disposez d'une carte o est uniquement idique + votre position et celle de la sortie. + Vous tes reprsent par un carr de la couleur des messages, la sortie + d'un carr d'une autre couleur. + Les carr qui se trouvent autour du cadre sont les directions de la sortie + La croit vous indique la direction de votre regard. + + - Les deplacements : + + Ils s'effectuent au moyen du pav numerique : + ( Avancer ) + 8 Ŀ + Ne pas oublier que vous regardez Ŀ + ( Gauche ) 4 6 ( Droite ) toujour devant vous ! + + 2 + ( Demi-tour ) + +(C) pour la carte, (P) pour prendre quelque chose, pour abandonner le jeu + =-=-=-=-=-=-=-=-=-=-=-=-=-= + + Cration d'un labyrinthe : + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + table de codification d'un labyrinthe : + --------------------------------------- + 1 : 3 : 6 : 8: + 7: 10: <-- 11 + 2 : 4 : 5 : 9: + + de 12 15 (inclus) ce sont les cul de sac + + 12 : ͵ 13 : 14: 15: + 16 : Code de l' entre + 17 : Code de la sortie + + Codage des coffres : + -------------------- + De -1 -15 suivie du code qui correspond sa contenance : + 0 : Une fiole de 1 9 : numero de la clef. + + ex : data .. , .. , -1 , 5 + Dans le coffre il y aura la clef n5 + Le signe - indique que dans cette alle il y aura + un coffre (Le chiffre qui suit est un code qui reprsente une alle dfinie + ci dessus ici le 1 designe un simple alle horizontal). + + Codage des portes : + ------------------- + De P1 P11 suivie d'un code qui correspond la clef qui ouvre la porte. + ex : data ..... , P3 , 8 , ... + La clef n8 permet l'ouverture de cette porte. + Le P signifie qu'il y a une porte dans ce virage + ( Cf le code 3 si dessus ). + Les 7 premiers code : + --------------------- + Dans la premire ligne de DATA doit figurer ces 7 codes imperativement : + +dans l'ordre : + XME : dimention du labyrinthe en caractre en abscice + YME : dimention du labyrinthe en caractre en ordonne + X,Y : coordonnes de dpart + Xm,Ym : coordonnes o le joueur doit ce trouver pour le second coup . + EN : Nombre de point d'endurence . + + Exemple de codification d'un labyrinthe : + ----------------------------------------- + On se propose de coder ce labyrinthe : + + 1 1 1 1 1 + 1 2 3 4 5 6 7 8 9 0 1 2 3 4 Legende : + 1+S E +ͻ + 2ͻ * ͻ ͻ ͹ .........cul de sac. + 3 + + ͹ ͻ ͹ + .........porte + 4 ͼ ͻ + + 5͹ ͻ ͹ ͼ ͹ * ...alle avec un coffre + 6 ͻ ͻ +ͼ ͹ contenant une boisson + 7+ ͻ *ͻ ͹ + ͹ + 8ͼ +͹ ͹ * E..........Entre + 9ͻ +͹ ͹ S..........Sortie + 10*ͼ ͼ ͹ ͼ + 11*+*ͼ + + Coordonnes des porte suivie du numero de la clef qui l'ouvre : + (2,1):1, (12,1):8, (2,3):3, (3,3):3, (11,4):6, (11,6):7, (1,7):4, (10,7):9, + (8,8):2, (8,9):5, (8,11):5 + + Coordonnes des coffre et leur clef qu'ils contiennent : + (5,1):2, (7,1):3, (11,1):6, (4,4):7, (7,4):4, (11,5):8, (13,5):1, (12,8):9, + (8,10):5. + + CODAGE : (Voir LISTING de 6000-6110). + +Quellesques remarques sur l'organisation du programme. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + de la ligne 30 70 : Lecture du Labyrinthe en DATA + 100 300 : Aiguillage pour l'affichage et corps du Prog. + 1000 1040 : Affichage de la grille + 1500 1510 : Aff. du coffre + 1600 1630 : calcule des consquence de l'objet pris dans le coffre + 2000 2280 : calcule des dplacement du joueur + 2280 3070 : calcule de l'image afficher + 4010 5020 : image des diffrente alles + 6000 la fin : mmorisation du Labyrinthe + +Les variables : X,Y coordonne de l'actuelle position +-------------- XM,YM coordonne de l'ancienne position + B type d'alle (Virage,intersection etc...) + P() memorisation du labyrinthe + + Programme crit en GWBASIC (Ver 2) compilable en Turbo Basic. CGA Couleur + Darche Yoann 6/08/90 \ No newline at end of file diff --git a/LABYPRO.BAS b/LABYPRO.BAS new file mode 100644 index 0000000000000000000000000000000000000000..ca9941eba86d2102ceabb927313e21bedfec22be GIT binary patch literal 3147 zcmbVOZ)_aZ5uZEK`VwQWclZ9gpy}4YZM3E&SbSI`+9N)bb9`%Kuai5sg`VwAa@G0n zdbd6`$d%~PQ0jm~)HID!kWy43l|=Ld5hNc-ER>+gG8K)glqNI^Qt|q1l+vnFE1K4w zw|nQ26!5KBiw@uw^@b~ z$H4(q55NnYmj)NOkStv~`@_f(9@$gOc zMe2$(p9y&OPZHeUve~wQ%s>edxAzSVVpnW?Y#95tY>5wGZwwQ0txt~*4a6`ygx!5w z7j_L{Z}j2RKwQ(e#v~YRdC&ooFskb@O^^3!q?^S4c5kX$!#?(_7RrevSN)o<<&BFkHYZ(K!vLJ1e@UJwOmpYj2ocdE+4tx#> z;9w-$CRYP+J70p@&4J4Q0M4L~Y?>jfY9XR1VbnB@+?eqMPUJ9?E1Bt>DZw_r0-D8b zsQQ;8(M3Uq6#pz#Fm4GrhZ^kU4?%Avt_ZRvfXN@VC)@@$o8(`Cr!Wpv{0V!5NE^cN z3;s0e2uhr({F*;c6U~_%=P%g$AM)?Re%yGA4@Zke+RWs0I5x48Ee8CPpNC=VjtzhO z+7FkOe-eqx&>(!gaL2=aswgY}EJV1xm&sz#sMOj%h zV{v&y_$Hkmhd&EFuB0WXsTBj40#&c9rn;<@+P{?~-K4!J=meQmQnJOvI`J`Aa?sM$ z)Zp4pAc&8z*x`kH#P70AgNuTa8e9~sbRRsZVwx>hX|2BWusC9yvP0Z$>ytKVQtF&R z5sG5bMOjF>@D4tQ%_kdC{S_M=Z-OJ@q-z$vikBsrX^a<2s-(_hYOoqol7m%0TTV!w za8!KSwI6;XKJQ{l59h?6GepYtolag`Qn!SZ(<5%UDjsoURCv5xmA0~kr_-)`;NRje z*NFOSqQf5WdtX>1O4LLh9@yl4agAtOP4sR9bbDVVQ7x(>D>}^$-|?O#pHj>N+X1qp zTkeEO?^~psw335(4O3Q%{jtkoyF6|<;+?a_f+Ov6q&8;K4KI5yy7Yca@2?7Q%6rw0 zS(t*e{IiJOFTskHZJP``j!bYBE6~S5pa!I4t>8w-c1R{9W$Psn^v(amLu4$-%H+TV<7P zhG9}YoB8pP3XY|7CB}?)b(2{&|EK-QRhzamGPk2t8Qo3xSCE)~C7Q}eFRnw?>RD0L`i8d0qC?+^^nG2E zDKsDY%Wf)`y=~MeVA=m9T`Q}de7$!1SVm7lC@@u%6wgmcW(U zR!5GSz=WBhj`dagARbt_Z5o~lyxp)`=jKp;dIh^Gg=~7%7&mez916VKz)FSH#xxuY zT%s8j86zR$J$rE`@Rx?wMJC-#e*P|St)W(oMC0!T{?$O`Mx!eMw`UqY3UqiFs%8VY zf)CNGMq_nUe{iekCe*gzfaeD4y}@sL2$kxvBe;`L#}TFJui9#L&scdLz<63cW?M94IA zpL|+1A;I3(buCn1q{~_uDcX^%(|5gJ{4{<$STC&=WVGt*lVxzSicJX=*p& G@c#g(XU#SM literal 0 HcmV?d00001 diff --git a/LABYRINT.BAS b/LABYRINT.BAS new file mode 100644 index 0000000000000000000000000000000000000000..ca9941eba86d2102ceabb927313e21bedfec22be GIT binary patch literal 3147 zcmbVOZ)_aZ5uZEK`VwQWclZ9gpy}4YZM3E&SbSI`+9N)bb9`%Kuai5sg`VwAa@G0n zdbd6`$d%~PQ0jm~)HID!kWy43l|=Ld5hNc-ER>+gG8K)glqNI^Qt|q1l+vnFE1K4w zw|nQ26!5KBiw@uw^@b~ z$H4(q55NnYmj)NOkStv~`@_f(9@$gOc zMe2$(p9y&OPZHeUve~wQ%s>edxAzSVVpnW?Y#95tY>5wGZwwQ0txt~*4a6`ygx!5w z7j_L{Z}j2RKwQ(e#v~YRdC&ooFskb@O^^3!q?^S4c5kX$!#?(_7RrevSN)o<<&BFkHYZ(K!vLJ1e@UJwOmpYj2ocdE+4tx#> z;9w-$CRYP+J70p@&4J4Q0M4L~Y?>jfY9XR1VbnB@+?eqMPUJ9?E1Bt>DZw_r0-D8b zsQQ;8(M3Uq6#pz#Fm4GrhZ^kU4?%Avt_ZRvfXN@VC)@@$o8(`Cr!Wpv{0V!5NE^cN z3;s0e2uhr({F*;c6U~_%=P%g$AM)?Re%yGA4@Zke+RWs0I5x48Ee8CPpNC=VjtzhO z+7FkOe-eqx&>(!gaL2=aswgY}EJV1xm&sz#sMOj%h zV{v&y_$Hkmhd&EFuB0WXsTBj40#&c9rn;<@+P{?~-K4!J=meQmQnJOvI`J`Aa?sM$ z)Zp4pAc&8z*x`kH#P70AgNuTa8e9~sbRRsZVwx>hX|2BWusC9yvP0Z$>ytKVQtF&R z5sG5bMOjF>@D4tQ%_kdC{S_M=Z-OJ@q-z$vikBsrX^a<2s-(_hYOoqol7m%0TTV!w za8!KSwI6;XKJQ{l59h?6GepYtolag`Qn!SZ(<5%UDjsoURCv5xmA0~kr_-)`;NRje z*NFOSqQf5WdtX>1O4LLh9@yl4agAtOP4sR9bbDVVQ7x(>D>}^$-|?O#pHj>N+X1qp zTkeEO?^~psw335(4O3Q%{jtkoyF6|<;+?a_f+Ov6q&8;K4KI5yy7Yca@2?7Q%6rw0 zS(t*e{IiJOFTskHZJP``j!bYBE6~S5pa!I4t>8w-c1R{9W$Psn^v(amLu4$-%H+TV<7P zhG9}YoB8pP3XY|7CB}?)b(2{&|EK-QRhzamGPk2t8Qo3xSCE)~C7Q}eFRnw?>RD0L`i8d0qC?+^^nG2E zDKsDY%Wf)`y=~MeVA=m9T`Q}de7$!1SVm7lC@@u%6wgmcW(U zR!5GSz=WBhj`dagARbt_Z5o~lyxp)`=jKp;dIh^Gg=~7%7&mez916VKz)FSH#xxuY zT%s8j86zR$J$rE`@Rx?wMJC-#e*P|St)W(oMC0!T{?$O`Mx!eMw`UqY3UqiFs%8VY zf)CNGMq_nUe{iekCe*gzfaeD4y}@sL2$kxvBe;`L#}TFJui9#L&scdLz<63cW?M94IA zpL|+1A;I3(buCn1q{~_uDcX^%(|5gJ{4{<$STC&=WVGt*lVxzSicJX=*p& G@c#g(XU#SM literal 0 HcmV?d00001 diff --git a/LCARTE.BAS b/LCARTE.BAS new file mode 100644 index 0000000000000000000000000000000000000000..5e9896feb11a10a53bd6a3f4dee54dcc434ad33d GIT binary patch literal 743 zcmYjPO=}ZT6ur7|;i5C|MJ-m5>od?97y?yM@>0=|q&SN-V~jfKMq=kl2hwDmBof`V zq9ARAY}^&x3A%CNs%~5qKZ=4|7b30#-H84G_1&bFY~Fnz=bm%!nfZIwI0$d$2juc2 zeuEXmfIf<-*@;ng)pAr<7^}r*6sj2Os)bQ4R*m+OYAF=(+%O4^%?_qgh^Sv;bsvLT zqlNY9QaN8PXwVBKo|D2Ya}>dDq_&VIX8FNEtEBKJ_(#%hfNeE;hf@hmh8rujE-Di z6JbU;B15E76UsN>u?79n-=XDOoYc5&I|;bSf?;=JWU|c~@CtV{X4es6daO&PgvgJx4mCsfva_#sB>*>hnb$ApR)jfoO rU#w5#x&Oxl{&Z|SNbqM`Vt2$*X2+r~4 literal 0 HcmV?d00001 diff --git a/LINK.BAS b/LINK.BAS new file mode 100644 index 0000000..83c655c --- /dev/null +++ b/LINK.BAS @@ -0,0 +1,67 @@ +' LINKER SpeciAle YOANN DARCHE + +ON ERROR GOTO Erreur + +de = 0: j = 0: + +DIM n$(100) +CLS : COLOR 12,0 +INPUT " Directorie de lecture : ",DIR$ +CLS:COLOR 13,0 +FILES DIR$+"\*.*" +COLOR 11,1 +LOCATE 25,1:PRINT " =====-===== Le linker methode DARCHE Yoann =====-===== "; +LOCATE 10,1:COLOR 12,0 +INPUT " Nom du fichier de destination : ",ND$ +OPEN ND$ AS #2 len = 8 +FIELD #2,8 as LF$ + +n$(0)=ND$ + + PIMAGE : +K=K+1 +PRINT " Non de l'image n";K;" : "; +INPUT "",N$(K) +IF N$(K)="FIN" OR N$=chr$(13) THEN K=K-1:GOTO Suite + +Goto Pimage + +Suite : + +FOR I=0 TO K:PRINT N$(I):NEXT I + +FOR J=1 TO K + + OPEN DIR$+"\"+N$(J) AS #1 len = 8 + FIELD #1,8 as L$ + + +PRINT " THE Linkage du fichier ";N$(J);" dans ";N$(0) +Print string$(79,"-") + +For I=2 TO 501 + get #1,I +KL=I+(J-1)*500-1 +GET #2,KL +p$=mid$(l$,2,1)+mid$(l$,1,1)+mid$(l$,4,1)+mid$(l$,3,1)+mid$(l$,6,1) +p$=p$+mid$(l$,5,1)+mid$(l$,8,1)+mid$(l$,7,1) +Lset LF$=p$ +p$="" +PUT #2,KL +NEXt I +CLOSE 1 +NEXT J + +CLS:PRINT " ----- J'ai Fini le boulot bonhomme -------- " +PRINT " Appuyer sur une touche pour finir et retour au DOS ..." +A$=input$(1) +CLOSE +END + +Erreur : + Print "Une erreur fatal c'est produite ..... " + IF err=64 then print N$(j);" N'est pas un nom de fichier valide" + IF err=53 then print n$(j);" est introuvable .. " + PRINT " Donc punition oblige retour direct au dos " + end + diff --git a/LOAD.EXE b/LOAD.EXE new file mode 100644 index 0000000000000000000000000000000000000000..f5bd4444d0ad4b8d06f5ca6a834593bb775e8412 GIT binary patch literal 1004 zcmeHD&ubG=5T2yn+8@RZB0?3C7Y$ZX3~UfZwuVTzp^(sYV}-_pv~jU3HmRFk>9MSr z60zh@@b0BN9+G%5n3IRSh=<&S73JYtkJ3_PomZjwH;4oC-n^Ob%{TLvs^23~7y<$j z2*Xhr24Q1x4$lZ25bMzeeC5!0(f`}Ora*DZ-EeD;Z8qxUfkW1<#zSj)ZOtHcw`Me( zrfm?XPS%$(*|IHTJeHm{YpbSVkri|0vDvU!TTdKB<9FL?I8R+f+|~4}M5|Qtb7V#% z#rgaU8IP6q`GTG=m9#~j+$3p)9ZFfAD{6mh%0B}C0(=-)(M!GEgqEa&Ef)%S$DDno zwJRek;?8RC1^&|x^eveIbe(k*?PtFt_HlN52eR))i{KTz<)!!p{2|9wyr1YG&j2};UN+p43jRS-kdxOqVx)%1vS;y?Mi$cL;hSgsa{H zOeZ#sAB&|%M=VrY?UnB3<;F_udK;d4ZAi2|_U1sG80+-%B$# z%;sE}Ck9UOpQUv;!?(&hvN|@AH8C~VF2!hP;5_e-@WFJlhiWTlGF16=0=M|i{;U5e zW}ote|1M+A4j)L=4)p+yL!;msAC}hyC4BK-jLkB5#Sb#n7Ilub7>z|k0c`RyHea)jv&rNOEC?K8nhw zS`{^eLNZa})se;L{y9c@Nra+8(TYlqJZP1ZkGK9T(`YqK(xvnjXw4`z@Y%1k7gA3e zl}U}01{HksFEDL2(vBE}KmHXGp|^eUL+E~@i>Yof2!myU%?LJqTCQDqJh;h76D`rn KV1um#z|p@~@E73# literal 0 HcmV?d00001 diff --git a/MASTER-M.BAS b/MASTER-M.BAS new file mode 100644 index 0000000..651286d --- /dev/null +++ b/MASTER-M.BAS @@ -0,0 +1,77 @@ +10 SCREEN 7 +50 CLS:PRINT " jeu du ";:COLOR 12:PRINT "MASTER MIND ";:COLOR 13:PRINT " LE CERVEAU" +60 COLOR 12:PRINT :PRINT "Ce programe est proteg par LEPOU .. car il de race violette :";:COLOR 14:PRINT " PRIERE DE NE PAS LE RECOPIER " +65 COLOR 9:PRINT :PRINT "INTERDIT POUR LES SOCIALO..":COLOR 13 +70 PRINT :PRINT :PRINT "voulez-vous avoir la regle de jeu O/N " +80 A$=INKEY$:IF A$="" THEN 80 ELSE IF A$="O" OR A$="o" THEN 90 ELSE 1000 +90 CLS +100 PRINT:PRINT " C'est trs simples il faut trouver la combinaison que l'ordinateur va choisir. +110 COLOR 12:PRINT " pour cela vous allez tapez sur les chiffres qui correspondent des couleurs.Puis lordinateur indiquera si vous avez des couleur bien placer ou mal placer." +120 PRINT " Si il repond rien c'est que vous n'aviez aucune couleur de sa cobinaison " +121 COLOR 14:PRINT " Il peut y avoir 2 3 ou 4 cases de la mme couleur sans oublier les trouts...":PRINT :PRINT +122 COLOR 10:PRINT "Bonne Chance":PRINT " Darche Yoann " +123 PRINT "app sur une touche " +124 A$=INKEY$:IF A$="" THEN 124 ELSE 1000 +999 STOP +1000 PALETTE 6,7 +1001 CLS:REM AFFICHAGE DU JEU VIDE ....... +1002 ' +1008 LOCATE 10,28:COLOR 12:PRINT " BIEN PLACE ":LOCATE 11,28:COLOR 11:PRINT " MAL PLACE" +1009 LOCATE 5,29:COLOR 13:PRINT "MASTER MIND":LOCATE 6,28:COLOR 12:PRINT "DE DARCHE Y." +1010 LINE (122,17)-(198,182),14,B +1011 FOR I=17 TO 182 STEP 15:LINE (122,I)-(197,I),14:NEXT:PAINT (123,18),9,14 +1012 FOR I=122 TO 182 STEP 15:LINE (I,17)-(I,182),14:NEXT:PAINT (183,18),14 +1013 LOCATE 1,16:PRINT "1 2 3 4 R":LOCATE 4,12:PRINT "????" +1014 LINE (190,32)-(190,182),14 +1015 FOR I=32 TO 182 STEP 7.5:LINE (182,I)-(198,I),14:NEXT +1016 FOR I=1 TO 6:COLOR I:PRINT I:NEXT +1017 COLOR 14:PRINT "pour trous 0 " +1100 ' +1101 ' Choix des couleurs cacher +1102 ' =-=-=-=-=-=-=-=-=-=-=-=-=-= +1103 LOCATE 24,1:PRINT "appuyez sur une touge"; +1104 X=5:RANDOMIZE TIMER:X=RND(1)*X:A$=INKEY$:X=RND(X*TIMER):RANDOMIZE X/TIMER:IF A$="" THEN 1104 +1105 LOCATE 24,1:PRINT " "; +1106 C1=INT(RND(1)*6):RANDOMIZE TIMER*C1 +1107 C2=INT(RND(1)*6):RANDOMIZE TIMER*C2 +1108 C3=INT(RND(1)*6):RANDOMIZE TIMER*C3 +1109 C4=INT(RND(1)*6):RANDOMIZE TIMER*C4 +1200 Y=17+5:' =-=-=-=-=-=-=-=-=-=-=-=-=-= +1201 ' --------- J E U --------- +1202 Y=200-Y:' =-=-=-=-=-=-=-=-=-=-=-=-=-= +1203 IF Y=<28 THEN LOCATE 14,1:PRINT "perdu .......":GOTO 1400 +1204 FOR I=1 TO 4 +1205 RTTT=0:LOCATE 14,1:PRINT "couleur n";I +1206 A$=INKEY$:IF A$="" THEN 1205 ELSE A=VAL(A$) +1207 IF A=0 AND A$<>"0" THEN BEEP :GOTO 1205 +1208 IF A>=7 THEN BEEP:GOTO 1205 ELSE CJ(I)=A:NEXT +1209 PAINT (127,Y),CJ(1),14:PAINT (147,Y),CJ(2),14:PAINT (164,Y),CJ(3),14:PAINT (179,Y),CJ(4),14:E(1)=C1:E(2)=C2:E(3)=C3:E(4)=C4 +1210 IF CJ(1)=C1 AND CJ(2)=C2 AND CJ(3)=C3 AND CJ(4)=C4 THEN LOCATE 14,1:PRINT "GAGNE .........":GOTO 1400 +1211 FOR I=1 TO 4 +1212 IF CJ(I)=E(I) THEN CJ(I)=42:E(I)=32:GOSUB 1300 +1213 NEXT +1214 FOR I=1 TO 4 +1215 FOR T=1 TO 4 +1216 IF CJ(I)=E(T) THEN CJ(I)=42:E(T)=32:GOSUB 1310 +1217 NEXT :NEXT :Y=Y-15:GOTO 1203 +1300 ' ************************************************************************* +1301 ' * Coup bien placer ==> affichage * +1302 ' ************************************************************************* +1304 RTTT=RTTT+1:IF RTTT >=5 THEN RTTT=1 +1305 ON RTTT GOTO 1306,1307,1308,1309 +1306 PAINT(171+15,Y-8),12,14:RETURN +1307 PAINT(180+15,Y-8),12,14:RETURN +1308 PAINT(180+15,Y+3),12,14:RETURN +1309 PAINT(171+15,Y+3),12,14:RETURN +1310 ' ************************************************************************* +1311 ' * Coup mal plac ==> affichage * +1312 ' ************************************************************************* +1313 RTTT=RTTT+1:IF RTTT >=5 THEN RTTT=1 +1314 ON RTTT GOTO 1315,1316,1317,1318 +1315 PAINT(171+15,Y-8),11,14:RETURN +1316 PAINT(180+15,Y-8),11,14:RETURN +1317 PAINT(180+15,Y+3),11,14:RETURN +1318 PAINT(171+15,Y+3),11,14:RETURN +1400 LOCATE 4,4:PRINT C1;C2;C3;C4;:PAINT (123,18),C1,14:PAINT (138,18),C2,14:PAINT (153,18),C3,14:PAINT (180,18),C4,14 +1401 LOCATE 24,1:PRINT " Voulez vous recomancer ? O/N ....... "; +1402 A$=INKEY$: IF A$="" THEN 1402 ELSE IF A$="O" OR A$="o" THEN 1000 ELSE END diff --git a/MATH_01.CHI b/MATH_01.CHI new file mode 100644 index 0000000..ac24aba --- /dev/null +++ b/MATH_01.CHI @@ -0,0 +1,228 @@ +\1cw +\U1STANDARD +\U3ITALIC +\U4BOLD +\U5FOREIGN +\U7GREEK +\U9MATHI +\U!UNDERLIN +\U"ORATOR +\U#SCRIPT +\FD +\+ +\+ +\+ +\^\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \@\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \^\, +\= +\+ +\, +\+ +\^\ \ \ \ \ \ \ \ \ \ \ \"INTERSECTION ET PARALLELISME DANS L'ESPACE\ \ \ \ \ \ \ \ \ \ \ \^\, +\+ +\, +\+ +\!I_LE_PLAN_:\, +\+ +\, +\+ +\ \#D\5w\#finition axiomatique du plan :\, +\+ +\, +\+ + \3Axiome 1 : \1Par deux points distincts \ passe \ une \ droite \ et \ une +\+ +seule.\, +\+ + \3Axiome 2 : \1Par trois non alini\5w\1s passe un plan et un seul\, +\+ + \3Axiome 3 : \1Une droite passant par deux points distincts \ A \ et \ B +\+ +d'un plan \#P \1est inclue dans \#P\1.\, +\+ + \3Axiome 4 : \ \1Tout \ plan \ partage \ l'espace \ en \ deux \ demi-Espaces +\+ +convexes. Tout segment [AB] ayant une extraimit\5w \1dans \ chacun \ des +\+ +demi-Espaces poss\5r\1de une intersection unique dans \#P\, +\+ +\, +\+ + D\5w\#termination d\1'\#un plan :\, +\+ +\, +\+ + \1Un plan est enti\5r\1rement d\5w\1termin\5w \1par la donn\5w\1e de :\, +\+ + \4- Soit trois points non alignes\, +\+ + - Une droite et un point hors de cette droite\, +\+ + - Deux droites strictement paralleles\, +\+ +\, +\+ + \#Vocabulaire :\, +\+ +\, +\+ + \1On dit que des points sont \!coplanaires \1lorsqu'ils \!appartiennent +\+ +\5f \1un m\5e\1me plan .\, +\+ + On dit que \ des \ droites \ sont \!coplanaires \1lorsqu'elles \ sont +\+ +\!inclusent \1dans un m\5e\1me Plan.\, +\+ +\, +\+ +\!II_Position_relative_de_Droites_et_de_Plans_:\, +\+ +\, +\+ + \#Droites parall\5r\#les :\, +\+ +\, +\+ + \1Dans l'espace \ deux \ droites \ sont \ parall\5r\1les \ ssi \ elles \ sont +\+ +coplanaires, et parall\5r\1les dans ce plan\, +\+ +\, +\+ + \3Th\5w\3or\5r\3me 1 (ADMIS) :\, +\+ +\1Par un point exterieur \5f \#D\1, on ne peut mener qu'une \ seule \ droite +\+ +parall\5r\1le \5f \#D\1.\, +\+ +\, +\+ + \3Th\5w\3or\5r\3me 2 :\, +\+ +\1Si deux droites sont parall\5r\1les tout plan qui \ coupe \ l'une \ coupe +\+ +l'autre.\, +\+ + Hypoth\5r\1ses : D // \7D\1, \#P \9n \1D = {A}\, +\+ +\, +\+ +\, +\+ +\, +\+ +\, +\+ +\, +\+ + * Si D et \7D \1confondus, si \#P \1coupe D alors \#P \1coupe \7D \1(car D = \7D\1)\, +\+ + * Si D et \7D \1strictement parall\5r\1les, alors D \ et \ \7D \ \1engendre \ un +\+ +plan \#Q\1. \#P \1et \3Q \1ont en commun donc une droite \#D\1' passant par A\, +\+ + Dans \#Q \1: \#D \1et \7D \1parall\5r\1les et \#D\1' coupe \#D\1, donc \#D\1' coupe \7D \1en B.\, +\+ + B est \5w\1l\5w\1ment de \#D\1' donc de \#P\1, donc \#P \1coupe \7D \1en B\, +\+ +\, +\+ +\,\/ +\+ +\, +\+ +\, +\+ + \3Th\5w\3or\5r\3me 3 (ADMIS) :\, +\+ +\1Si deux droites sont parall\5r\1les elles m\5e\1mes \5f \1une troisi\5r\1me \ alors +\+ +elles sont parall\5r\1les entres elles.\, +\+ +\, +\+ + \#Droites et Plans parall\5r\#les :\, +\+ +\, +\+ + \1On dit qu'un Plan et une droite \ D \ sont \ parall\5r\1les \ ssi \ D \ est +\+ +incluse dans P, ou si D et P n'ont pas de point en commeun .\, +\+ +\, +\+ + \3Th\5w\3or\5r\3me 1 (ADMIS) :\, +\+ +\1Une droite \#D \1est parall\5r\1le \5f \1un plan \#P \1ssi \#D \1est parall\5r\1le \ \5f \ \1une +\+ +droite de \#P\1.\, +\+ +\, +\+ + \3Th\5w\3or\5r\3me 2 :\, +\+ +\1Si une droite \#D \1est \ parall\5r\1le \ \5f \ \1un \ plan \ \#P\1, \ alors \ tout \ plan +\+ +contenant \#D \1et coupant \#P\1, le coupe suivant une droite parall\5r\1le \ \5f +\+ +\#D\1.\, +\+ +\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \3Hypoth\5r\3ses : \#D \3// \#P\, +\+ +\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Q \ \3un \ plan \ contenant \ \#D \ \ \3et +\+ +\ \ \ \ \ \ \ \ \ coupant \#P \3suivant \7D\, +\+ +\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \3Prouvons que \#D \3// \7D \3.\, +\+ +\, +\+ +\, +\+ +\, +\+ +\, +\+ +\1Utilisons le raisonnement par l'absurde :\, +\+ + Dans \#Q\1, \ \#D \ \1et \ \7D \ \1sont \ coplanaires, \ si \ elles \ n'\5w\1taient \ pas +\+ +parall\5r\1les elles seraient s\5w\1cantes et auraient donc \ un \ point \ en +\+ +commun le point A, A serait donc \5w\1l\5w\1ment de \7D \1don \#P\1, et \ de \ \#D \ \1ce +\+ +qui contredirait le fait que \#D \1et \#P \1soient parall\5r\1les ( car \#D \1et \#P +\+ +\1auraient A en commun ).\, +\+ +\, +\+ + \3Th\5w\3or\5r\3me 3 :\, +\+ +\1Si deux droites sont parall\5r\1les, tout plan parall\5r\1le \5f \1l'une est +\+ +parall\5r\1le \5f \1l'autre.\, +\+ +\, +\+ +\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \3Hypoth\5r\3ses : \#D \3// \7D\3, \#D \3// \#P\, +\+ +\, +\+ +\, +\+ +\, +\+ +\, +\+ + \1Si \7D \1et \#P \1n'\5w\1taient pas parall\5r\1les, alors \#P \1couperait \ \7D \ \1donc \ \#D +\+ +\1qui lui est parall\5r\1le . \#P \1et \#D \1auraient un point en commun ce \ qui +\+ +contredit que \#D \1et \#P \1sont parall\5r\1les .\, +\+ +\, +\+ +\, +\= + \ No newline at end of file diff --git a/MATH_DS1.CHI b/MATH_DS1.CHI new file mode 100644 index 0000000..2e3c28e --- /dev/null +++ b/MATH_DS1.CHI @@ -0,0 +1,343 @@ +\1cw +\U1STANDARD +\U3ITALIC +\U5FOREIGN +\U7GREEK +\U8LINEDRAW +\U9MATHI +\U0MATHII +\U!UNDERLIN +\U"ORATOR +\U#SCRIPT +\FD +\+ +\+ +\+ +\^\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \@\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \^\, +\= +\+ +\, +\+ +\, +\+ +\^\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \"PRODUITS SCALAIRES DANS LE PLAN\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \^\, +\+ +\, +\+ +\, +\+ + \!Produit_Scalaire_de_deux_vecteurs_:\, +\+ +\, +\+ \8L L L L + \1u.v = \9N\1u\9N \1x \9N\1v\9N \1x cos(\7a\1)\, +\+ +\3Th\5w\3or\5r\3me :\, +\+ +\, +\+ +\, +\+ + +\+ +\, +\+ + \1Etant donn\5w\1es trois point A,B,C et H la projection de \ C \ sur \ un +\+ +axe passant par A et B\, +\- +\+ \8-L -L -- -- + \1AB . AC = AB x AH\, +\- +\+ \8-L -L -L -L + \1AB . AC = AB . AH\, +\+ +\, +\+ +\!Distance_d'un_point_a_une_droite_:\, +\+ +\, +\+ + \1Dans un rep\5r\1re orthonormal, la distance du point A(X\ ,Y\ ) \5f \ \1la +\- o o +\+ +droite \#D \1d'\5w\1quation ax + by + c = 0 est \, +\+ +\, +\+ +\ \ \ \ \ \ \ \ \ \ \ \ \ \81\ \1aX\ + bY\ + c \81\, +\- \1o o +\+ + d(A,\#D\1) = \8===================\, +\+ +\ \ \ \ \ \ \ \ \ \ \ \ \0\\\ \ 5\8----------\, +\+ \12 2 +\ \ \ \ \ \ \ \ \ \ \ \ \ \ \0\\/\ \ \1a\ + b\, +\+ +\, +\+ +\!Cercle_et_disque_forme_:\, +\+ +\, +\+ + \1Soit \7W \1un point de \#P \1et R un r\5w\1el positif.\, +\+ + 1) On appelle cercle \#C \1de centre \7W \1et de rayon R \ l'ensemble \ des +\+ +points M tels que \7W\1M = R :\, +\+ +\, +\+ + \#C \1= { M, M \9e \#P \1/ \7W\1M = R }\, +\+ +\, +\+ + On note \#C\1(\7W\1,R).\, +\+ +\, +\+ + 2) On appelle \ disque \ ouvert \ \#D \ \1de \ centre \ \7W \ \1et \ de \ rayon \ R +\+ +l'ensemble des points M du plan tels que \7W\1M < R :\, +\+ +\, +\+ + \#D \1= { M, M \9e \#P \1/ \7W\1M < R }\, +\+ +\, +\+ + 3) On appelle disque ferm\5w \#D \1de centre \7W \1et de rayon R l'ensemble +\+ +des points M du plan tels que \7W\1M \9< \1R.\, +\+ +\, +\+ + \#D \1= { M, M \9e \#P \1/ \7W\1M \9< \1R }\, +\+ +\, +\+ +\!Equation_d'un_cercle_:\, +\+ +\, +\+ + \1Dans un rep\5r\1re orthogonal, une \5w\1quation \ du \ cercle \ de \ centre +\+ +\7W\1(a,b) et de rayon R est :\, +\+ +\, +\+ 2 2 2 + ( x - a ) + ( y - b )\ = R\, +\+ +\,\/ +\+ +\, +\+ +\!Etude_Reciproque_:\, +\+ +\, +\+ + \1Soit \7a\1,\7b\1,\7g \ \1trois \ nombres \ re\5w\1ls. \ Consid\5w\1rons \ l'ensemble \ E +\+ +d\5w\1fini dans un rep\5r\1re orthogonal par :\, +\+ +\, +\+ 2 2 + E = { M(x,y) / x\ + y\ + \7a\1x + \7b\1y + \7g \1= 0 }\, +\+ +\, +\+ +Quelle est la nature de E ?\, +\+ +\, +\+ 2 2 + x\ + y\ + \7a\1x + \7b\1y + \7g \1= 0 s'\5w\1crit :\, +\+ + \, +\+ 2 2 +\+ \0& \7a \0*\12 \7a \0& \7b \0*\12 \7b + \ \ \ \ \ \ \81 \1x + \8---\ 1\ \1- \8---\ \1+ \81 \1y + \8--- 1\ \1- \8---\ \1+ \7g \1= 0\, +\- \07 \12 \08 \14 \07 \12 \08 \14 +\+ + +\+ 2 2 +\+ \0& \7a \0*\12 \0& \7b \0*\12 \7a \1+ \7b \1- 4\7g + \ \ \ \ \ \ \81 \1x + \8---\ 1\ \1+ \81 \1y + \8--- 1\ \1= \8--------------\, +\- \07 \12 \08 7 \12 \08 \14 +\+ +\, +\+ \0& \7a b \0* +\1Soit \7W \1le point de coordonn\5w\1es \81 - ---\ \1, \8- --- 1 \1et M(x,y) :\, +\- \07 \12 2 \08 +\+ & \7a \0* +\ \ \ \ \ \ \ \ \ \ \ \ \81 \1x + \8---\ 1\, +\- 1 \12 \81 +\+ +\ \ \ \ \ \ \ \ \ \7W\1M\ \81\ \ \ \ \ \ \ \ \ 1\, +\+ \7b + \81\ \1y + \8---\ 1\, +\- \07 \12 \08 +\+ +\, +\+ \12 2 +\+ \7a \1+ \7b \1- 4\7g + \9N\7W\1M\9N \1= k, k = \8--------------\, +\- \14 +\+ +\, +\+ 2 +donc E = { M(x,y) / \9N\7W\1M\9N\ \1= k\ }\, +\+ + si k < 0 alors il est \5w\1vident que E est vide : E = \9o \, +\+ + \1si k = 0 alors E est r\5w\1duit au seul point \7W \1: E = {\7W\1}\ \ \ \ \ \ \056\, +\+ + \1si k > 0 alors E est le cercle de centre \7W \1et de rayon R = \0r\ \1k\, +\+ +\, +\+ +\3Th\5w\3or\5r\3me :\, +\+ +\, +\+ \12 2 + Soit E = { M(x,y) / x\ + y\ + \7a\1x + \7b\1y + \7g \1= 0 }\, +\+ + dans un rep\5r\1re orthonormal l'ensemble E est un cercle,\, +\+ + \5w\1ventuellement r\5w\1duit \5f \1un point , ou l' ensemble vide\, +\+ +\, +\+ +\!Courbes_de_niveau_:\, +\+ +\, +\+ \9L +\+ + \#P \1: plan, \#V\ \ \1ensemble des vecteurs associ\5w\1s au plan .\, +\+ +\, +\+ 2 2 + 1) { M(x,y) / x\ + y\ + \7a\1x + \7b\1x + \7g\ \1= 0 }\, +\+ +\, +\+ \8L + \#Theoreme \ : \ \1Si \ u \ est \ \ un +\+ + vecteur non nul et k un r\5w\1el\, +\+ + quelconque alors l'ensemble \, +\+ + des \ points \ M du plan \ tels +\+ \8L -L + \1que u.OM = k est une \ droite +\+ \8-L L + \1orthogonale \5f \1(OA) si OA = u\, +\+ \8-L -L +\1Pour d\5w\1terminer cette droite : \ OA.OM \ = \ k, \ soit \ H \ le \ projet\5w +\+ \8-L +\1orthogonal de M sur (OA) qui est orient\5w \1par OA on a :\, +\+ \8-- -- -L + \1OA x OH = k si (OA) est orient\5w \1par OA\, +\+ +\+ \8-- \1k + \ \ \ \ \ \ \ \ \ \ \ \ OH =\ \8----\, +\- -- +\- \1OA\/ +\+ +\, +\+ 2 2 +2) { M \9e \#P \81 \1MA\ - MB\ = k, k \9e \0R\1, A \9e \#P\1, B \9e \#P \1}.\, +\+ +\, +\+ 2 2 \8-L\12 \8-L\12 + MA\ - MB\ = MA\ - MB\, +\+ +\+ \8-L -L -L -L +\1=\ ( MA + MB ) . ( MA - MB )\, +\+ +\+ \8-L -L +\1= 2MI . BA si I milieu de [AB]\, +\+ +\+ 2 2 \8-L -L + \1MA\ - MB\ = 2MI . BA \, +\+ 2 2 \8-L -L +\ \ \1Si on cherche M tels que MA\ - MB\ = k on a 2AB . IM = k\, +\+ \8-L +\1Soit H la projection orthogonal de M sur (AB) orient\5w \1par AB\, +\+ \8-- -- + \12.AB x IH = k\, +\+ +\+ \8-- \1k + IH = \8------\, +\- -- +\- \12.AB +\+ 2 2 + \3Th\5w\3or\5r\3me : \1L'ensemble des points M du plan tel que MA\ - MB\ \ = \ k +\+ +o\5i \1k est r\5w\1el donn\5w \1et A et B deux points quelconque du \ plan \ est +\+ +une droite orthogonal \5f \1(AB)\, +\+ +\, +\+ 2 2 + 3) { M \9e \#P \81 \1MA\ + MB\ = k, k \9e \0R\1, A \9e \#P\1, B \9e \#P \1}\, +\+ +\, +\+ 2 2 \8-L\12 \8-L\12 + MA\ + MB\ = MA\ + MB\ soit I le milieu de [AB]\, +\+ +\, +\+ \8-L -L \12 \8-L -L \12 +\ \ \ = ( MI + IA )\ + ( MI + IB )\, +\+ +\+ \8-L\12 \8-L\12 \8-L -L -L\12 \8-L\12 \8-L -L +\ \ \ \1= MI\ + IA\ + 2MI.IA + MI\ + IB\ + 2MI.IB\, +\+ +\+ 2 2 2 \8-L -L -L + \1= 2MI\ + IA\ + IB\ + 2MI.( IA + IB )\, +\+ +\, +\+ 2 2 +\+ 2 AB AB \8L + \1= 2MI\ + \8--- \1+ \8--- \1+ 0\, +\- 4 4 +\- +\+ 2 +\+ 2 2 2 AB + \ MA\ + MB\ = 2MI\ + \8---\, +\- \12 +\+ 2 2 + Si on cherche l'ensemble des points M tels que MA\ + MB\ = k on a\, +\+ +\+ 2 2 +\+ 2 AB 2 k AB + 2MI\ + \8--- \1= k <==> MI\ = \8---\ - ---\, +\- \12 2 4 +\+ +\+ 2 +\+ k AB + * Si \8---- --- \1positif, l'ensemble des points M est le \ cercle \ de \, +\- 2 4 +\+ +\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \05\8---------\06\, +\+ \12 +\+ \0\\ / \1k AB +centre I et de rayon \ \ \ \ \ \8--- - ---\, +\- \0\\/ \12 4 +\+ +\+ 2 +\+ k AB + * Si \8---- --- \1est nul M est en I\, +\- 2 4 +\+ +\+ 2 +\+ k AB + * Si \8---- --- \1est n\5w\1gatif l'ensemble cherch\5w \1est l'ensemble Vide\, +\- 2 4 +\+ 2 2 +\3Th\5w\3or\5r\3me : \1L'ensemble des points M du plan tels que MA\ + MB\ \ = \ k +\+ +o\5i \1k est un r\5w\1el donn\5w \1est soit un cercle, \ soit \ un \ point, \ soit +\+ +l'ensemble vide . +\= + \ No newline at end of file diff --git a/MEMOPRO1.BAS b/MEMOPRO1.BAS new file mode 100644 index 0000000..ed433e3 --- /dev/null +++ b/MEMOPRO1.BAS @@ -0,0 +1,217 @@ +'*************************************************************************** +'** + +def seg=&hb800 ' ****$ &hB000 pour un HERCULE ********** +CY%=1:CX%=1 +DIM CARTE%(16,4),C1%(32),C2%(32),C3%(32),C4%(32),C%(8) +randomize timer + +FOR I=1 TO 32:READ C1%(I),C2%(I),C3%(I),C4%(I):NEXT I ' READ LES DATAS !!! + +' constante MONOCHROME : ( eh oui !! il en faut je me passerai bien ! ) + +C%(1)=219 : C%(5)=233 +C%(2)=254 : C%(6)=240 +C%(3)=079 : C%(7)=042 +C%(4)=120 : C%(8)=004 + +' encore et toujours des constantes !!! (video en plus) ==================== + +F1$=CHR$(24):F2$=CHR$(25):F3$=CHR$(27):F4$=CHR$(26) + +REM Vives les datas tralala !!!! ********* CONSTANTE : FORMES/COULEUR ****** + ' 1,2,3,4,5,6,7,8 = couleurs (caractres pour mono ) + ' un type de carte est form de 4 couleurs/formes + +formesC : + + DATA 1,1,1,1 ,2,2,2,2 ,3,3,3,3 ,4,4,4,4 ,5,5,5,5 ,6,6,6,6 ,7,7,7,7 ,8,8,8,8 + DATA 1,2,1,2 ,2,1,2,1 ,3,2,3,2 ,8,2,8,2 ,8,6,8,6 ,8,5,8,5 ,7,1,7,1 ,1,7,1,7 + DATA 4,2,2,4 ,1,3,3,1 ,8,1,1,8 ,6,3,3,6 ,1,1,2,2 ,5,5,4,4 ,5,5,7,7 ,6,6,8,8 + DATA 4,5,5,4 ,3,6,6,3 ,2,7,7,2 ,2,6,6,2 ,6,2,2,6 ,5,7,7,5 ,8,5,5,8 ,2,5,2,5 + +'=========================================================================== +' PROGRAMME PRINCIPAL AL AL ALLEEEE !!!!! +'=========================================================================== + +SCREEN 2:SCREEN 0 +COLOR 7:MENU$="INITIALISATION ECRAN":gosub faitcadre +locate 10,20:PRINT "-1- Pour cran CGA couleur " +locate 12,20:PRINT "-2- Pour cran CGA monochrome / CGA Plasma " +locate 14,20:PRINT "-3- Pour cran HERCULE " +Locate 16,20:PRINT "-Q- Pour fin ( ou tout moment du jeu )" + +PrendReponse : + + R$=INPUT$(1):if R$=chr$(27) or r$="q" or R$="Q" then goto FINPROG + + IF R$="1" or R$="&" THEN MONO%=0 :DEF SEG = &HB800:GOTO JEU + IF R$="2" OR R$="" THEN MONO%=-1:DEF SEG = &HB800:GOTO JEU + IF R$="3" OR R$=CHR$(34) THEN MONO%=-1:DEF SEG = &HB000:GOTO JEU + + BEEP:GOTO PrendReponse + +Jeu : ' ah a va enfin pter dans l'cran !!!! (pas trop ouffff !!) + +CLS:COLOR 7,0:MENU$="MEMO LE JEU DE MEMOIR":gosub faitcadre + +Locate 5,20:PRINT " Choisisez le niveau de difficulter !! " +Locate 7,10:Print " Attention ne pas se surestimer sinon c'est la gamelle !!! HiHi !!" + +Locate 12,20:PRINT "-1- Trs facile (L'ordinateur est nul !!)" +Locate 14,20:PRINT "-2- Moyen (Il faut une meilleure mmoire)" +Locate 16,20:PRINT "-3- Trs Dre (alors il faut tre un pro !! )" +Locate 18,20:PRINT "-Q- Salut !!! la prochaine ( == ) " + +PrendrEponse1 : + + R$=INPUT$(1):if R$=chr$(27) or r$="q" or R$="Q" then goto FINPROG + + IF R$="1" or R$="&" THEN GOSUB Faitpage:GOTO JEU1 + IF R$="2" OR R$="" THEN GOSUB Faitpage:GOTO JEU2 + IF R$="3" OR R$=CHR$(34) THEN GOSUB Faitpage:GOTO JEU3 + + BEEP:GOTO PrendReponse1 + +JEU1: +GOSUB PREMIERE:LOCATE 24,70:PRINT "FACILE !"; + +Gosub ChoixDeLui:k=0 +joue : + +X1=0:Y1=0:X2=0:Y2=0 + +While (carte%(X1,Y1)=0) + X1=INT(RND(1)*16)+1:Y1=INT(RND(1)*4)+1 +Wend + +While (CARTE%(X2,Y2)=0 or (X1=X2 AND Y1=Y2)) + X2=INT(RND(1)*16)+1:Y2=INT(RND(1)*4)+1 +Wend + +x=x1:y=y1:gosub AfficheCarte 'Montre les cartes +x=x2:y=y2:gosub AfficheCarte + +IF CARTE%(X1,Y1)=CARTE%(X2,Y2) THEN CARTE%(X1,Y1)=0:CARTE%(X2,Y2)=0:m$=" Je les gagne ":m=1 else m$=" J'ai perdu ..":m=0 + +COLOR 28,0 +LOCATE 22,30:PRINT M$;:IF MONO THEN COLOR 15,0 ELSE COLOR 11,1 + +if m=0 THEN + x=x1:y=y1:gosub cadrerenverser + x=x2:y=y2:gosub cadrerenverser + ELSE + k=k+1 + END IF + +IF K=>32 THEN END + +GOTO JOUE: +CHOIXDELUI: +RETURN +JEU2: +JEU3: +END +'=========================================================================== +' LES DIVERSES SOUS PROCEDURES DE TOUT TYPE COUCOU c'est Yoyo !!! +'=========================================================================== +faitpage : ' *************************************** INITIALISATION ****** + +CLS +For X=1 to 16 + For Y=1 to 4 + gosub cadrerenverser + next Y +next X + + For I=1 TO 32 + + For J=1 to 2 + + X=INT(RND(1)*16)+1:Y=INT(RND(1)*4)+1 + + IF carte%(X,Y)=0 then carte%(x,y)=i:goto nf + + For x=1 to 16 + For y=1 to 4 + IF carte%(x,y)=0 then carte%(x,y)=i :goto nf + + NEXT y + NEXT x + +nf : + + Next J:NEXT I + +RETURN + + +cadrerenverser : ' FAIT UNE CARTE RENVERSE A LA POSITION X,Y ************** + ' Chouette des peek des pook des peek, pook, popekopoke !!!! + xr%=(x-1)*10 + yr%=(y-1)*800 + CT%=480+yr%+xr% + +POKE XR%+YR% ,201 :POKE CT% ,200 :POKE XR%+YR%+160,186 :POKE XR%+YR%+162,176 +POKE XR%+YR%+2,205 :POKE CT%+2,205 :POKE XR%+YR%+320,186 :POKE XR%+YR%+164,176 +POKE XR%+YR%+4,205 :POKE CT%+4,205 :POKE XR%+YR%+166,186 :POKE XR%+YR%+324,176 +POKE XR%+YR%+6,187 :POKE CT%+6,188 :POKE XR%+YR%+326,186 :POKE XR%+YR%+322,176 + + FOR M%=YR% TO YR%+480 step 160 + FOR K%=XR%+1 TO XR%+7 step 2 : POKE K%+M%,4 :NEXT K% + NEXT M% + +RETURN + +AfficheCarte : + + + XR%=(X-1)*10 + YR%=(Y-1)*800 + N=CARTE%(X,Y) + +IF MONO% THEN ' MONO% =-1 monochromme MONO%=0 couleur ! + POKE XR%+YR%+162,c%(C1%(N)) + POKE XR%+YR%+164,C%(C2%(N)) + POKE XR%+YR%+324,C%(C3%(N)) + POKE XR%+YR%+322,C%(C4%(N)) + + ELSE + POKE XR%+YR%+162,219:POKE XR%+YR%+163,C1%(N)+7 + POKE XR%+YR%+164,219:POKE XR%+YR%+165,C2%(N)+7 + POKE XR%+YR%+324,219:POKE XR%+YR%+325,C3%(N)+7 + POKE XR%+YR%+322,219:POKE XR%+YR%+323,C4%(N)+7 + END IF + +RETURN + +REM Cn%(N) revoit pour un ecran monochrome le code caractre +REM pour un cran couleur la couleur + + +FaitCadre : ' CELA FAIT UN CADRE A L'ECRAN !!! + +POKE 0,201:FOR K=2 TO 156 STEP 2:POKE K,205:POKE K+320,205 +POKE K+3680,205:NEXT K:POKE 158,187:POKE 160,186:POKE 318,186:POKE 320,204 +POKE 478,185:POKE 3680,200:POKE 3838,188:FOR K=480 TO 3520 STEP 160 +POKE K,186:POKE K+158,186:NEXT +LX=int((80-len(menu$))/2):locate 2,lx:print menu$:return + +PREMIERE : '**************************************************************** + +IF NOT MONO% THEN COLOR 14,4 ELSE COLOR 0,7 +LOCATE 25,1 +PRINT " Fin / (8) ";F1$;" / (2) ";F2$;" / (4) ";F3$;" / (6) ";F4$;" / ou pour choix "; + +IF MONO% THEN COLOR 15,0 ELSE COLOR 13,1 +LOCATE 24,60 :PRINT " NIVEAU : "; + + +RETURN + +FINPROG : ' Dj !!! oh! non non non c'tait trop bien pourquoi finir ???!! + + CLS:PRINT " UN GRAND OU PETIT BONJOUR DE DARCHE Yoann .. ":END + +' et c'est dj fini ..... + diff --git a/MEMOPROG.BAS b/MEMOPROG.BAS new file mode 100644 index 0000000..256de6d --- /dev/null +++ b/MEMOPROG.BAS @@ -0,0 +1,558 @@ +'**************************************************************************** +'*** *** +'*** Programme crit par DARCHE Yoann EN QUICK-BASIC Ver 2.0 *** +'*** *** +'*** Programme Ludique : bas sur le jeu connu MEMORY *** +'*** *** +'*** Version 1.4 acheve le 9/11/1990 *** +'*** *** +'*** Compilable En Quick-Basic et Turbo-Basic *** +'*** *** +'**************************************************************************** + +DEFINT A-Z +CLS:SCREEN 2:SCREEN 0:GOSUB PUBLICITE +def seg=&hb800 ' ****$ &hB000 pour un HERCULE ********** +CY=1:CX=1:MX=1:MY=1:MAXITI=4 +DIM Carte(16,4),C1%(32),C2%(32),C3%(32),C4%(32),C%(8),YM(32),XM(32) + +'******** Vives les Scores !!!!! Fichiers !! ******************************* + +OPEN "SCORES." AS #1 LEN = 18 +FIELD #1,10 as NOM$,8 as SC$ +IF LOF(1)=0 THEN Gosub Initialise + +randomize timer '*************** debut de la fin *************************** + +FOR I=1 TO 32:READ C1%(I),C2%(I),C3%(I),C4%(I):NEXT I ' READ LES DATAS !!! + +' constante MONOCHROME : ( eh oui !! il en faut je me passerai bien ! ) + +C%(1)=219 : C%(5)=233 +C%(2)=254 : C%(6)=240 +C%(3)=079 : C%(7)=042 +C%(4)=120 : C%(8)=004 + +' encore et toujours des constantes !!! (video en plus) ==================== + +F1$=CHR$(24):F2$=CHR$(25):F3$=CHR$(27):F4$=CHR$(26) + +REM Vives les datas tralala !!!! ********* CONSTANTE : FORMES/COULEUR ****** + ' 1,2,3,4,5,6,7,8 = couleurs (caractres pour mono ) + ' un type de Carte est form de 4 couleurs/formes + +formesC : + + DATA 1,1,1,1 ,2,2,2,2 ,3,3,3,3 ,4,4,4,4 ,5,5,5,5 ,6,6,6,6 ,7,7,7,7 ,8,8,8,8 + DATA 1,2,1,2 ,2,1,2,1 ,3,2,3,2 ,8,2,8,2 ,8,6,8,6 ,8,5,8,5 ,7,1,7,1 ,1,7,1,7 + DATA 4,2,2,4 ,1,3,3,1 ,8,1,1,8 ,6,3,3,6 ,1,1,2,2 ,5,5,4,4 ,5,5,7,7 ,6,6,8,8 + DATA 4,5,5,4 ,3,6,6,3 ,2,7,7,2 ,2,6,6,2 ,6,2,2,6 ,5,7,7,5 ,8,5,5,8 ,2,5,2,5 + +'=========================================================================== +' PROGRAMME PRINCIPAL AL AL ALLEEEE !!!!! +'=========================================================================== + +COLOR 7:CLS:MENU$="INITIALISATION ECRAN":gosub faitcadre +locate 10,20:PRINT "-1- Pour cran CGA couleur " +locate 12,20:PRINT "-2- Pour cran CGA monochrome / CGA Plasma " +locate 14,20:PRINT "-3- Pour cran HERCULE " +Locate 16,20:PRINT "-Q- Pour fin ( ou tout moment du jeu )" + +PrendReponse : + + R$=INPUT$(1):if R$=chr$(27) or r$="q" or R$="Q" then goto FINPROG + + IF R$="1" or R$="&" THEN MONO%=0 :DEF SEG = &HB800:GOTO JEU + IF R$="2" OR R$="" THEN MONO%=-1:DEF SEG = &HB800:GOTO JEU + IF R$="3" OR R$=CHR$(34) THEN MONO%=-1:DEF SEG = &HB000:GOTO JEU + + BEEP:GOTO PrendReponse + +Jeu : ' ah a va enfin pter dans l'cran !!!! (pas trop ouffff !!) + + IF MONO% THEN + C1=15:F1=0 ' Couleur JeJoue1ur + C2=7 :F2=0 ' Couleur Ordinateur + C3=7 :F3=0 ' Couleur Message Normal + C4=0 :F4=7 ' Couleur Massage Inverse + C5=15 ' Couleur Curseur (Spcial POKE !!) + C6=143 + ELSE + C1=13:F1=0 + C2=11:F2=0 + C3=4 :F3=0 + C4=14:F4=4 + C5=15 + C6=143 + + END IF +OJ=0 +Gosub Fichier +Coucou : +COLOR C3,F3:CLS:MENU$="OPTIONS POSSIBLES":Gosub FaitCadre + +Locate 08,20:PRINT "-1- Ordinateur Seul " +Locate 10,20:PRINT "-2- Joueur Contre Ordinateur " +Locate 12,20:PRINT "-3- Selection du temps de mmorisation" +Locate 14,20:PRINT "-4- Pour effacer les Scores ( Option pour les nuls )" +Locate 16,20:PRINT "-Q- Salut !!! la prochaine ( == ) " +Locate 18,20:print " ou pour Confirmer " +Reaffiche : +Color C3,F3 +Locate 23,3:PRINT " Delais de Mmorisation : ";:COLOR C4,F4:PRINT MAXITI +Color C3,F3 +Locate 22,3:PRINT " Option de Jeu : ";:COLOR C4,F4 +IF OJ THEN PRINT " Joueur - Ordinateur " ELSE PRINT " Ordinateur - Seul " +Color C3,F3 + +PrendrEponse2 : + + R$=INPUT$(1):if R$=chr$(27) or r$="q" or R$="Q" then goto FINPROG + + IF R$="1" or R$="&" THEN OJ=00:GOTO Reaffiche + IF R$="2" OR R$="" THEN OJ=-1:GOTO Reaffiche + IF R$="3" OR R$=CHR$(34) THEN Gosub ResetMaxiTI:GOTO Coucou + IF R$="4" OR R$="'" THEN Gosub Initialise:GOTO Coucou + IF R$=CHR$(13) or R$=" " THEN Goto Suivant + + BEEP:GOTO PrendReponse2 + +Suivant : + +CLS:COLOR C3,F3:MENU$="MEMO LE JEU DE MEMOIR":gosub faitcadre + +Locate 5,20:PRINT " Choisisez le niveau de difficulter !! " +Locate 7,10:Print " Attention ne pas se surestimer sinon c'est la gamelle !!! HiHi !!" + +Locate 12,20:PRINT "-1- Trs facile (L'ordinateur est nul !!)" +Locate 14,20:PRINT "-2- Moyen (Il faut une meilleure mmoire)" +Locate 16,20:PRINT "-3- Trs Dre (alors il faut tre un pro !! )" +Locate 18,20:PRINT "-Q- Salut !!! la prochaine ( == ) " +A$="" + +PrendrEponse1 : + + R$=INPUT$(1):if R$=chr$(27) or r$="q" or R$="Q" then goto FINPROG + + IF R$="1" or R$="&" THEN GOSUB Faitpage:DJ=0:GOTO JEU1 + IF R$="2" OR R$="" THEN GOSUB Faitpage:DJ=1:GOTO JEU2 + IF R$="3" OR R$=CHR$(34) THEN GOSUB Faitpage:DJ=2:GOTO JEU3 + + BEEP:GOTO PrendReponse1 + +JEU1:'*********************** NIVEAU FADO(REMI) ************************** +GOSUB PREMIERE:LOCATE 24,70:PRINT "FACILE !"; + +IlJoue1 : +IF OJ THEN Gosub ChoixDeLui + +JeJoue1 : +X1=0:Y1=0:X2=0:Y2=0 + +While (Carte(X1,Y1)=0) + X1=INT(RND(1)*16)+1:Y1=INT(RND(1)*4)+1 +Wend + +While (Carte(X2,Y2)=0 or (X1=X2 AND Y1=Y2)) + X2=INT(RND(1)*16)+1:Y2=INT(RND(1)*4)+1 +Wend + +GOSUB ChoixOrdinateur + +IF M=1 THEN GOTO JeJoue1 ELSE GOTO IlJoue1 + +JEU2:' **************************** UN PEU PLUS DIFFICILE SI SI !!! ******** +GOSUB PREMIERE:LOCATE 24,70:PRINT "MOYEN !"; +X2=0:Y2=1 +X1=0:Y1=0 + +DebutJeu2 : + + While Carte(x1,y1)=0 + X1=INT(RND(1)*16)+1 + Y1=int(RND(1)*4)+1 + WEND + +Incrementation : + + X2=X2+1 + IF X2 => 17 THEN Y2=Y2+1:X2=1 + IF Y2 => 5 THEN Y2=1:X2=1 + IF CARTE(X2,Y2)=0 OR (X1=X2 AND Y1=Y2) THEN Goto Incrementation + +Gosub ChoixOrdinateur + +IF M=1 THEN GOTO DebutJeu2 + +IlJoue2 : + M=0 + IF OJ THEN Gosub ChoixDelui + IF CARTE(X1,Y1)=0 THEN Goto DebutJeu2 ELSE Goto Incrementation + +JEU3:'************************* DIFFICILE !!!!! **************************$* + +For K=1 to 32:YM(K)=0:XM(K)=0:NEXt K ' Rinitialisation de sa petite mmoire +GOSUB PREMIERE:LOCATE 24,70:PRINT "DIFFICILE"; + +DebutJeu3 : + + X1=0:Y1=0:X2=0:Y2=0 + While Carte(x1,y1)=0 + X1=INT(RND(1)*16)+1 + Y1=int(RND(1)*4)+1 + WEND + +Nc=Carte(X1,Y1) +IF XM(Nc)=X1 AND YM(Nc)=Y1 THEN Goto DebutJeu3 +IF XM(Nc)=0 THEN Goto Recherche + +X2=XM(Nc):Y2=YM(Nc) +If Carte(X2,Y2)=0 THEN XM(Nc)=0:YM(Nc)=0:Goto Recherche 'Une Gourde !! +Gosub ChoixOrdinateur +Goto FinJeu3 + +Recherche : '****************** Il ne la pas encore en mmoire ************** + ' Donc il en prend une au hasard (sans tricher) +While (Carte(X2,Y2)=0 or (X1=X2 AND Y1=Y2)) + X2=INT(RND(1)*16)+1 + Y2=INT(RND(1)*4)+1 +Wend + +IF Carte(X2,Y2)=Nc THEN GOSUB ChoixOrdinateur:Goto FinJeu3 + +Mc=CARTE(X2,Y2) '************ Il n'a pas trouver la bonne mais il la retient +YM(Mc)=Y2:XM(Mc)=X2 +YM(Nc)=Y1:XM(Nc)=X1 +Gosub ChoixOrdinateur + +FinJeu3 : +IF M=1 THEN GOTO DebutJeu3 + IF OJ THEN Gosub ChoixDelui + Goto DebutJeu3 + + +END +'=========================================================================== +' LES DIVERSES SOUS PROCEDURES DE TOUT TYPE COUCOU c'est Yoyo !!! +'=========================================================================== +faitpage : ' *************************************** INITIALISATION ****** + +CLS +For X=1 to 16 + For Y=1 to 4 + Cl=C3 + gosub cadre:gosub remplis + next Y +next X + + For I=1 TO 32 + + For J=1 to 2 + + X=INT(RND(1)*16)+1:Y=INT(RND(1)*4)+1 + + IF Carte(X,Y)=0 then Carte(x,y)=i:goto nf + + For x=1 to 16 + For y=1 to 4 + IF Carte(x,y)=0 then Carte(x,y)=i :goto nf + + NEXT y + NEXT x + +nf : + + Next J:NEXT I + +RETURN + + +cadre : ' FAIT UNE Carte RENVERSE A LA POSITION X,Y ************** + ' Chouette des peek des pook des peek, pook, popekopoke !!!! + xr%=(x-1)*10 + yr%=(y-1)*800 + CT%=480+yr%+xr% + +POKE XR%+YR% ,201 :POKE CT% ,200 :POKE XR%+YR%+160,186 +POKE XR%+YR%+2,205 :POKE CT%+2,205 :POKE XR%+YR%+320,186 +POKE XR%+YR%+4,205 :POKE CT%+4,205 :POKE XR%+YR%+166,186 +POKE XR%+YR%+6,187 :POKE CT%+6,188 :POKE XR%+YR%+326,186 + ' ****************** LES COULEURS NOW !!!!! Eh oui encore des pokes !!! **** +POKE XR%+YR%+1,CL :POKE CT%+1,CL :POKE XR%+YR%+161,CL +POKE XR%+YR%+3,CL :POKE CT%+3,CL :POKE XR%+YR%+321,CL +POKE XR%+YR%+5,CL :POKE CT%+5,CL :POKE XR%+YR%+167,CL +POKE XR%+YR%+7,CL :POKE CT%+7,CL :POKE XR%+YR%+327,CL +RETURN + +Remplis : ' ************ Fait Quatre petit carr au centre de la Carte ***** +CT%=(x-1)*10+(y-1)*800 +POKE CT%+162,176:POKE CT%+163,CL +POKE CT%+164,176:POKE CT%+165,CL +POKE CT%+324,176:POKE CT%+325,CL +POKE CT%+322,176:POKE CT%+323,CL +RETURN + +AfficheCarte : '******* Affiche les couleurs/formes de la Carte x,y ******** + + XR%=(X-1)*10 + YR%=(Y-1)*800 + N=Carte(X,Y) + +IF MONO% THEN ' MONO% =-1 monochromme MONO%=0 couleur ! + POKE XR%+YR%+162,c%(C1%(N)) + POKE XR%+YR%+164,C%(C2%(N)) + POKE XR%+YR%+324,C%(C3%(N)) + POKE XR%+YR%+322,C%(C4%(N)) + + ELSE + POKE XR%+YR%+162,219:POKE XR%+YR%+163,C1%(N)+7 + POKE XR%+YR%+164,219:POKE XR%+YR%+165,C2%(N)+7 + POKE XR%+YR%+324,219:POKE XR%+YR%+325,C3%(N)+7 + POKE XR%+YR%+322,219:POKE XR%+YR%+323,C4%(N)+7 + END IF +REM Cn%(N) revoit pour un ecran monochrome le code caractre +REM pour un cran couleur la couleur +RETURN + +FaitCadre : ' CELA FAIT UN CADRE A L'ECRAN !!! ****************************** + +POKE 0,201:FOR K=2 TO 156 STEP 2:POKE K,205:POKE K+320,205 +POKE K+3680,205:NEXT K:POKE 158,187:POKE 160,186:POKE 318,186:POKE 320,204 +POKE 478,185:POKE 3680,200:POKE 3838,188:FOR K=480 TO 3520 STEP 160 +POKE K,186:POKE K+158,186:NEXT +LX=int((80-len(menu$))/2):locate 2,lx:print menu$:return + +PREMIERE : '**************************************************************** +PJ=0:PO=0:CJ=0:CO=0 +LOCATE 25,1:COLOR C4,F4 +PRINT " Fin / (8) ";F1$;" / (2) ";F2$;" / (4) ";F3$;" / (6) ";F4$;" / ou pour choix "; + +COLOR C3,F3:LOCATE 24,60 :PRINT " NIVEAU : "; +RETURN + +ChoixDeLui : '************** eh si tu veux JeJoue1r laisse cette procedure ! *** + +CJ=CJ+1 +b$=chr$(0):NN=0:GOTO AGIT + +PrendSaTouche : + +Gosub AfficheLesResultat + + a$="" + While a$="" : A$=INKEY$ : WEND + + if A$="q" or a$="Q" or a$=chr$(27) then goto FinProg + + IF (A$="8" OR A$=B$+"H") AND CY>1 THEN CY=CY-1 + IF (A$="2" OR A$=B$+"P") AND CY<4 THEN CY=CY+1 + IF (A$="4" OR A$=B$+"K") AND CX>1 THEN CX=CX-1 + IF (A$="6" OR A$=B$+"M") AND CX<16 THEN CX=CX+1 + IF A$=CHR$(13) or A$=" " THEN Goto VerifieSaDonnee + IF A$="A" or A$="a" THEN Goto Coucou +AGIT : + IF CX=MCX and CY=MCY THEN GOTO PRENDSATOUCHE + X=MX:Y=MY:CL=C3:Gosub Cadre + X=CX:Y=CY:CL=C5:Gosub Cadre + MX=CX:MY=CY +GOTO PrendSaTouche : + +VerifieSaDonnee : + + IF Carte(CX,CY)=0 THEN BEEP:GOTO PrendSaTouche + IF Cx=MCX and Cy=MCY Then BEEP:GOTO PrendSaTouche + + X=CX:Y=CY:GOSUB AfficheCarte + + IF Nn=0 THEN MCX=CX:MCY=CY:MX=0:MY=0:NN=1:GOTO PrendSaTouche + +NN=0 + IF Carte(Mcx,Mcy)=Carte(CX,CY) THEN + PJ=PJ+1 + Carte(Mcx,Mcy)=0:Carte(Cx,CY)=0 + X=CX:Y=CY:CL=C3:GOSUB Cadre + X=MCX:Y=MCY:GOSUB Cadre:mcx=0 + Locate 23,35:COLOR C1,F1:PRINT " Gagn " + GOSUB THETIME + Goto PrendSaTouche + ELSE + Locate 23,35:COLOR C1,F1:PRINT " Perdu " + END IF + + GOSUB THETIME + X=CX:Y=CY:CL=C3:Gosub Cadre:GOsub Remplis + X=MCX:Y=MCY :Gosub Cadre:Gosub Remplis + MCX=0:MCY=0 + +RETURN + +AfficheLesResultat : '****************************** COUCOU LES NOTES !! *** + +COLOR C1,F1:LOCATE 21,1:PRINT "Vous Avez : ";:Print Using "##";PJ;:PRINT " Pt" +COLOR C2,F2:LOCATE 22,1:PRINT " J'ai : ";:Print Using "##";PO;:PRINT " Pt" +COLOR C1,F1:LOCATE 21,20:PRINT "en ";:PRINT USING "####";CJ;:PRINT " Coups" +COLOR C2,F2:LOCATE 22,20:PRINT "en ";:PRINT USING "####";CO;:PRINT " Coups" +COLOR C4,F4:LOCATE 21,60:PRINT "Delais : ";:PRINT USING "##";MAXITI;:Print " Sec." +COLOR C3,F3 +LOCATE 23,35:PRINT " " +IF PJ+PO => 32 THEN + COLOR C3,F3:LOCATE 23,35 + IF PJ > PO THEN PRINT " Vous avez gagn(e)(s) " + IF PJ < PO THEN PRINT " Vous avez perdu(e) " + IF PJ = PO THEN PRINT " Egalit " + COLOR C4,F4 +LOCATE 25,1:PRINT space$(29);"APPUYER SUR UNE TOUCHE";SPACE$(29);:LOCATE 1,1 +COLOR C3,F3 + A$=INPUT$(1) + CLS:GOsub GestionScore:Goto Jeu + ELSE + RETURN + END IF + +THETIME :'****************************************************************** + +TI!=INT(TIMER):a$="" +WHILE ABS(TIMER-TI!) < MAXITI+0.1 +A$=INKEY$ +IF A$<>"" THEN RETURN +WEND +RETURN + +ChoixOrdinateur : '********************** Affiche & Bidouille de l'Ordi ** +CO=CO+1 +If a$=chr$(27) then goto CouCou + +x=x1:y=y1:gosub AfficheCarte:Cl=C6:gosub cadre 'Montre les Cartes +x=x2:y=y2:gosub AfficheCarte:Cl=C6:gosub cadre + +IF Carte(X1,Y1)=Carte(X2,Y2) THEN + Carte(X1,Y1)=0:Carte(X2,Y2)=0 + M$=" Je les gagne ":M=1 + ELSE + M$=" J'ai perdu ..":M=0 + END IF + +COLOR C2,F2:LOCATE 23,35:PRINT M$;:COLOR C3,F3 + +GOSUB THETIME + +if m=0 THEN + x=x1:y=y1:CL=C3:gosub cadre:Gosub Remplis + x=x2:y=y2:CL=C3:gosub cadre:Gosub Remplis + ELSE + PO=PO+1 + X=X1:Y=Y1:Cl=C3:GOSUB CADRE + X=X2:Y=Y2: GOSUB CADRE +END IF + +GOSUB AfficheLesResultat:RETURN + +ResetMaxiTi : +COLOR C3,F3:CLS:MENU$="Initialise Le Delais":gosub FaitCadre +Locate 11,3:Print " Delais en Seconde [";MaxiTi;"] :"; +INPUT "",MA$ +If ma$="" then Return +Ma=Val(MA$):If MA<0 Or Ma>10 Then Locate 14,5:print " IIIIdiot !! ":a$=input$(1):goto ResetMaxiTi +Maxiti=Ma:Return + +FINPROG : ' Dj !!! oh! non non non c'tait trop bien pourquoi finir ???!! + + CLS:PRINT " UN GRAND OU PETIT BONJOUR DE DARCHE Yoann .. ":END + +' et c'est dj fini ..... + +PUBLICITE : '*************** IL en faut pour vivre !!! *********************** +LOCATE 1,1:color 0,15 +PRINT "" +PRINT "۰۰۰۰" +PRINT "۱۰۰۱۰" +PRINT "۰۰۰۰۰۰۰" +PRINT "۰۱۱۰۰۰۰۰۰۰۰۰۰۰" +PRINT "۱۰۰۱۱۱۱۱۰۱۰۰۰۰۰" +PRINT "۰۰۰۱۱۰۰۰۱۰۰۰۰۰" +PRINT "۰۰۱۰۰۱۱۱۰۰۰۰" +PRINT "۱۰۱۰۱۱۰۱۱۱۰۰۰۰" +PRINT "۰۱۱۰۱۰۰۱۰۱۰۰۰۰۱" +PRINT "۰۱۰۱۱۱۰۰۱۰۰۰۱" +PRINT "" +PRINT "" +PRINT:color 14,0 +PRINT " Vous Prsente un logiciel ludique " +PRINT +PRINT " ͻ ͻ ͻ ͻ ͻ ͻ ͻ ͻ " +PRINT " Ȼɼ Ȼɼ " +PRINT " ȼ ͹ ȼ ͼ ͼ " +PRINT " Ȼ " +PRINT " ͼ ͼ ͼ Ver 1.4 " +PRINT " de DARCHE Yoann " +PRINT " 71 avenue d'Orlans 91800 BRUNOY (FRANCE) " +PRINT " Tel : 69-39-51-26 "; +LOCATE 1:A$=input$(1):return + +FICHIER : '****************** Gestion des scores !!!! ********************** +Color C3,F3:CLS:MENU$="LES SCORES (Hum ! Hum !)" +Gosub FaitCadre + +Color C4,F4 +Locate 6,10:PRINT " Trs Facile Mdiocre Trs Difficile " +FOR I=0 TO 2 + IF I=0 THEN COLOR C3,F3 + IF I=1 THEN COLOR C1,F1 + IF I=2 THEN COLOR C2,F2 + FOR J=1 TO 10 + GET #1,(I*10+J) + LOCATE J+7,I*20+10:PRINT NOM$;" ";SC$ + NEXT J +NEXT I +Locate 20,10:Print " Appuyez sur une touche pour continuer " +a$=input$(1):return + +GESTIONSCORE : +CLS:COLOR C4,F4 +LOCATE 12,10:PRINT " Je Regarde Si vous pouvez tre dans les 10 Meilleurs " +TP!=INT((PJ*CO)/(PO*CJ+1)*(1000/(MaxiTi+1))) + +FOR I=1 TO 10 + GET #1,DJ*10+I + if val(SC$) 10 Then + BEEP:COLOR C4,F4 + Locate 15,30:PRINT "Moins DE 10 Caractres" + COLOR C3,F3:A$=input$(1) + GOTO SuiteGestion + End If + +FOR t=10 to i+1 Step -1 + GET #1,DJ*10+T-1 + nom2$=nom$:sc2$=sc$ + GET #1,Dj*10+T + Lset nom$=nom2$:Lset sc$=sc2$ + PUT #1,Dj*10+T +NEXT T + +GET #1,DJ*10+I +LSET SC$=STR$(TP!) +Lset NOM$=N$ +PUT #1,DJ*10+I +RETURN + +INITIALISE : '********************************************* +FOR I=1 TO 30 +GET #1,I +LSET NOM$="Mmory":Lset SC$="00000000" +PUT #1,I +NEXT I +RETURN diff --git a/MENU.BAS b/MENU.BAS new file mode 100644 index 0000000000000000000000000000000000000000..1a1a6a5c1cab741a5614da5596199f1e0b99297a GIT binary patch literal 440 zcmX|+J5K^Z6oqfCksZ{+P?(zu1te~w_$VeeBaCK}Wfx`_3p<33ArTgKiT}VttuWGA z`v)v6r7>bbZDlKT7B*Vp@Q9O~;+*^4$Ba*m1?b}n>tmet*fSbStOuvYBD~=T+#0LU zLDoTv|1U4>66OS2$T26~Vo7+OK>H_y6z+|6&@}77qmj~`6wNIYvr6!sa9s@yjLa;~ zn3(6TCzP3&c1~Bmjs00=TQ@lNu~4pbY~)Ju1A(S;@?6@GAcr$*$HbB+E$MNo1Qwi< zLQ6~o9InDTRe3#%^bfLevZFKJH!J+e{`%M<_-f2^T( AGXMYp literal 0 HcmV?d00001 diff --git a/MESSAGE.BAS b/MESSAGE.BAS new file mode 100644 index 0000000..0d28d93 --- /dev/null +++ b/MESSAGE.BAS @@ -0,0 +1,168 @@ + +REM *********************** + +DIM CH$(4) +' Constante +cls +DEF SEG = &hB800 ' Il faudra mettre 1hB000 + +OPEN "MEG." as #1 len = 128 +FIELD #1,32 as L1$,32 as L2$,32 as L3$,32 as L4$ +NT = LOF(1)/128 + +MenuPrincipal : + +Color 7,0 +CLS : Menu$="Menu Principal : ":GOSUB FaitCadre +Locate 7,20:Print " -1- Enregistrer un Message " +Locate 9,20:Print " -2- Lire un ou des message(s) " +'Locate 11,20:Print " -3- Speciale Special " +Locate 13,20:PRINT " -Q- Fin " +Locate 16,20:Print " pour fin " + +prendCaracter : +A$=input$(1):If a$=chr$(27) or a$="q" or a$="Q" then Goto Fin + +If a$="1" or a$="&" THEN Goto ENREGISTRE +If a$="2" or a$="" Then Goto LIT +'If a$="3" or a=chr$(34) ' Then Goto Speciale +Beep:goto prendCaracter + +'************************************************************************** +ENREGISTRE : +CLS +IF NT>=40 THEN NA=1 else na=nt+1 +GET #1,na +menu$=" Enregistrement n"+str$(na):Gosub Faitcadre +Gosub FaitPage +POKE (x+DX)*2+(y+DY)*160+1,112 +m=(x+DX)*2+(y+DY)*160+1 +Locate 5,10:Print "Enter pour changer de ligne les flches pour dplacer le " +Locate 6,10:Print "Curseur , et pour Valider , pour abandonner " +Locate 18,10:Print "Vous devriez retenir votre pour voir si il y a une reponse !" +Locate 20,25:Print " pour se casser ! " + +prendsatouche : +B$=chr$(0) +M$="ABCDEFGHIJKLMNOPQR -+=STUVWXYZabcdefghijklmnopqrstuvwxyz1234567890)(&'!?/:.;,$*%<>#@\" +A$=inkey$:if a$="" then goto prendsatouche + + If a$=chr$(27) then goto EnSuite + If a$=b$+"" Then Goto MenuPrincipal + If a$=b$+"H" Then y=y-1 + If a$=b$+"P" Then y=y+1 + If a$=b$+"K" Then x=x-1 + If a$=b$+"M" Then x=x+1 + IF a$=chr$(13) Then Y=Y+1:X=1 + + If X=>33 then X=1 + If X<=0 then X=32 + If Y=>5 then Y=1 + If Y<=0 then Y=4 + POKE M,7:POKE (x+DX)*2+(y+DY)*160+1,112 :m=(x+DX)*2+(y+DY)*160+1 + + A = INSTR(M$,A$):IF a=0 Then beep:goto PrendSaTouche + + MID$(CH$(Y),X,1)=A$ + POKE (x+DX)*2+(y+DY)*160,asc(A$) + POKE M,7:X=X+1:IF X=>33 THEN X=1:Y=Y+1:IF Y>=5 THEN Y=1 + POKE (x+DX)*2+(y+DY)*160+1,112:m=(x+DX)*2+(y+DY)*160+1 + GOTO PrendsaTouche + +ENSUITE : +LSET L1$=CH$(1) +LSET L2$=CH$(2) +LSET L3$=CH$(3) +LSET L4$=CH$(4) +PUT #1,na +NT=NT+1 +Goto menuPrincipal + +'*************************************************************************** +LIT : +IF NT>40 then nt=40 +Cls:Menu$="Lecture des messages :":Gosub faitCadre +Locate 10,20:PRINT "-1- En entrant le numro de la fiche " +Locate 12,20:Print "-2- Tous ( dfilement avec les flche ! ) " +Locate 14,20:PRINT "-Q- Pour se barrer et revenir au Menu" +Locate 20,20:PRINT " pour Fin " + +prendCaracte2 : +A$=input$(1):If a$=chr$(27) then Goto Fin + +If a$="1" or a$="&" THEN Goto LectPart +If a$="2" or a$="" Then Goto LITOUT +If a$="Q" or a$="q" Then Goto MenuPrincipal +Beep:goto prendCaracte2 + +LectPart : '++++++++++++++++++ +Cls:Menu$="Lecture des messages :":Gosub faitCadre +Gosub FaitPage +Numero : +Locate 5,20:INPUT " Numero : ",NP +If Np>NT or Np<0 Then Beep :goto numero +If Np=0 then goto Lit + +Get #1,np +Locate 12,26:Print L1$ +Locate 13,26:Print L2$ +Locate 14,26:Print L3$ +Locate 15,26:Print L4$ +A$=input$(1):goto numero + +LITOUT : +Cls:Menu$="Lecture des messages :":Gosub faitCadre +Gosub FaitPage +Locate 6,10:PRINT " Flche haut et bas pour changer ! " +Locate 20,20:Print " Fin " +CN=1 + +LitAff : +GET #1,CN +Locate 12,26:Print L1$ +Locate 13,26:Print L2$ +Locate 14,26:Print L3$ +Locate 15,26:Print L4$ +Color 0,7 +Locate 10,31:PRINt "Numro du message =";CN:COLOR 7,0 +pt : +A$=inkey$:if a$="" then goto pt +if a$=chr$(0)+"H" and cn>1 then cn=cn-1:goto LITAFF +if a$=chr$(0)+"P" and cn pour fin " + +prendCaracter : +A$=input$(1):If a$=chr$(27) or a$="q" or a$="Q" then Goto Fin + +If a$="1" or a$="&" THEN Goto ENREGISTRE +If a$="2" or a$="" Then Goto LIT +'If a$="3" or a=chr$(34) ' Then Goto Speciale +Beep:goto prendCaracter + +'************************************************************************** +ENREGISTRE : +CLS +IF NT>=40 THEN NA=1 else na=nt+1 +GET #1,na +menu$=" Enregistrement n"+str$(na):Gosub Faitcadre +Gosub FaitPage +POKE (x+DX)*2+(y+DY)*160+1,112 +m=(x+DX)*2+(y+DY)*160+1 +Locate 5,10:Print "Enter pour changer de ligne les flches pour dplacer le " +Locate 6,10:Print "Curseur , et pour Valider , pour abandonner " +Locate 18,10:Print "Vous devriez retenir votre pour voir si il y a une reponse !" +Locate 20,25:Print " pour se casser ! " + +prendsatouche : +B$=chr$(0) +M$="ABCDEFGHIJKLMNOPQR -+=STUVWXYZabcdefghijklmnopqrstuvwxyz1234567890)(&'!?/:.;,$*%<>#@\" +A$=inkey$:if a$="" then goto prendsatouche + + If a$=chr$(27) then goto EnSuite + If a$=b$+"" Then Goto MenuPrincipal + If a$=b$+"H" Then y=y-1 + If a$=b$+"P" Then y=y+1 + If a$=b$+"K" Then x=x-1 + If a$=b$+"M" Then x=x+1 + IF a$=chr$(13) Then Y=Y+1:X=1 + + If X=>33 then X=1 + If X<=0 then X=32 + If Y=>5 then Y=1 + If Y<=0 then Y=4 + POKE M,7:POKE (x+DX)*2+(y+DY)*160+1,112 :m=(x+DX)*2+(y+DY)*160+1 + + A = INSTR(M$,A$):IF a=0 Then beep:goto PrendSaTouche + + MID$(CH$(Y),X,1)=A$ + POKE (x+DX)*2+(y+DY)*160,asc(A$) + POKE M,7:X=X+1:IF X=>33 THEN X=1:Y=Y+1:IF Y>=5 THEN Y=1 + POKE (x+DX)*2+(y+DY)*160+1,112:m=(x+DX)*2+(y+DY)*160+1 + GOTO PrendsaTouche + +ENSUITE : +LSET L1$=CH$(1) +LSET L2$=CH$(2) +LSET L3$=CH$(3) +LSET L4$=CH$(4) +PUT #1,na +NT=NT+1 +Goto menuPrincipal + +'*************************************************************************** +LIT : +IF NT>40 then nt=40 +Cls:Menu$="Lecture des messages :":Gosub faitCadre +Locate 10,20:PRINT "-1- En entrant le numro de la fiche " +Locate 12,20:Print "-2- Tous ( dfilement avec les flche ! ) " +Locate 14,20:PRINT "-Q- Pour se barrer et revenir au Menu" +Locate 20,20:PRINT " pour Fin " + +prendCaracte2 : +A$=input$(1):If a$=chr$(27) then Goto Fin + +If a$="1" or a$="&" THEN Goto LectPart +If a$="2" or a$="" Then Goto LITOUT +If a$="Q" or a$="q" Then Goto MenuPrincipal +Beep:goto prendCaracte2 + +LectPart : '++++++++++++++++++ +Cls:Menu$="Lecture des messages :":Gosub faitCadre +Gosub FaitPage +Numero : +Locate 5,20:INPUT " Numero : ",NP +If Np>NT or Np<0 Then Beep :goto numero +If Np=0 then goto Lit + +Get #1,np +Locate 12,26:Print L1$ +Locate 13,26:Print L2$ +Locate 14,26:Print L3$ +Locate 15,26:Print L4$ +A$=input$(1):goto numero + +LITOUT : +Cls:Menu$="Lecture des messages :":Gosub faitCadre +Gosub FaitPage +Locate 6,10:PRINT " Flche haut et bas pour changer ! " +Locate 20,20:Print " Fin " +CN=1 + +LitAff : +GET #1,CN +Locate 12,26:Print L1$ +Locate 13,26:Print L2$ +Locate 14,26:Print L3$ +Locate 15,26:Print L4$ +Color 0,7 +Locate 10,31:PRINt "Numro du message =";CN:COLOR 7,0 +pt : +A$=inkey$:if a$="" then goto pt +if a$=chr$(0)+"H" and cn>1 then cn=cn-1:goto LITAFF +if a$=chr$(0)+"P" and cn LE SEGMENT sera mit dans ADR% ** +'**************************************************************************** +Sub ChercheSegment(SegEcr%) Static + + DEF SEG = &h40 + TE%=(PEEK(&h10) AND &h30):DEF SEG + IF TE%=0 THEN PRINT " Programme non utilisable sur cette appareille ! [ECRAN] ":END + IF TE%=&h30 Then SegEcr%=&hB000 Else SegEcr%=&hB800 + +End Sub + +'---------------------------------------------------------------------------- +' Affiche un memu + un curseur et retourne le choix +' Syntaxe CALL MENU(MENU$,LM%,X1%,Y1%,CN%,FN%,CI%,FI%,Chx%,MH%) +' +' Menu$ = l'expression du menu ex: "--FIN--**FIN**//FIN//" +' LM% = longueur d'un choix menu ici: LM%=7 +' X1%,Y1% position du menu en caractre Attention au erreur ( Hors cran ) +' CN%,FN% dffinisse la couleur normal +' CI%,FI% "" "" "" "" "" inverse +' Chx% est le retour du choix -1 quand c'est +' MH%=0 quand <- et -> non autoriss =-1 quand elles sont OK +' dans ce cas Chx% retourne -> ===> -3 +' <- ===> -2 +' ===> -1 +'Cette Sub-routine Utilise SUb FAITUNCADRE() et conseill CherSegment +'---------------------------------------------------------------------------- +Sub MENU(MENU$,L%,X1%,Y1%,CN%,FN%,CI%,FI%,Chx%,MH%,XT%,MXT%) Static + +STATIC NT%,YT%,YTM% + +NT%=INT(LEN(MENU$)/L%) +X2%=X1%+L%:Y2%=Y1%+NT% +If chx%<=0 then chx%=1 + +Call FaitUnCadre(X1%,Y1%,X2%,Y2%,CN%,FN%):COLOR CN%,FN% + + FOR I=1 TO NT + Locate Y1%+I,X1%:PRINT MID$(MENU$,(I-1)*L%+1,L%) + NEXT I + +YT%=Chx%:YTM%=YT%:B$=chr$(0):T=0:A$="d" + + While T=0 + While A$="":A$=INKEY$:Wend + +IF (A$="4" or A$=B$+"K") And XT% > 1 And MH% Then Chx%=-2:T=1 +IF (A$="6" or A$=B$+"M") And XT% < MXT% And MH% Then Chx%=-3:T=1 +IF (A$="2" or A$=B$+"P") Then YT%=YT%+1 +IF (A$="8" or A$=B$+"H") Then YT%=YT%-1 +IF A$=CHR$(27) Then CHX%=-1 :T=1 +IF A$=CHR$(13) or a$=" " Then CHX%=YT%:T=1 +IF YT%>NT% THEN YT%=1 +IF YT%<1 THEN YT%=NT% + + Color CN%,FN% + Locate Y1%+YTM%,X1%:PRINT MID$(MENU$,(YTM%-1)*L%+1,L%) + Color CI%,FI% + Locate Y1%+YT% ,X1%:PRINT MID$(MENU$,(YT%-1)*L%+1,L%) + YTM%=YT%:Color CN%,FN% + A$="" + Wend:End Sub + +SUB FaitUnCadre(X1%,Y1%,X2%,Y2%,CN%,FN%) Static +Color CN%,FN% +SHARED SEGEC% +def seg = SegEC% +STATIC P1,P2,P3,P4,PX,PY,K%,CO%,I + X1%=X1%-3:Y1%=Y1%-1 + P1=X1%*2+Y1%*160 : P2 =X2%*2+160*Y1% : P3 =X1%*2+160*Y2% : P4=X2%*2+160*Y2% + PY = P3-P1 :PX= P2-P1:K%=-1:CO%=CN%+16*FN% + + FOR I=P1 TO P3 STEP 160 + POKE I+1,CO:POKE I+1+PX,CO:POKE I,186:POKE I+PX,186 + K%=K%+1:LOCATE Y1%+1+K%,X1%+2:PRINT STRING$(X2%-X1%-1,32); + NEXT I + + FOR I=P1 TO P2 STEP 2:POKE I+1,CO:POKE I,205:POKE I+1+PY,CO:POKE I+PY,205 + NEXT I + + POKE P1,201:POKE P2,187:POKE P3,200:POKE P4,188:X1%=X1%+3:Y1%=Y1%+1 + + FOR I=P2+160 TO P4+160 STEP 160:POKE I+3,7:NEXT I + FOR I=P3+162 TO P4+160 STEP 2 :POKE I+1,7:NEXT I + +End Sub + + +REM *********************** CONSTANTES et TABleau *************************** + +DIM CH$(4) + +'************************** OVERTURE DU FICHIER ***************************** + +OPEN "MEG." as #1 len = 128 +FIELD #1,32 as L1$,32 as L2$,32 as L3$,32 as L4$ +GET #1,1 +NT = val(L1$) + +'---------------------- Dbut du programme +'---------------------- Cherche le segment ---------------------------------- +CALL ChercheSegment(SegEc) +IF SEGEC=&hB800 THEN CN=11:FN=1:CI=14:FI=4 else CN=15:FN=0:CI=0:FI=7 +COUN=CN+16*FN:COUI=CI+16*FI + +'----------------------- MENU PRINCIPAL ------------------------------------- +MenuPrincipal : + +DEF seg = SEGEC +FOR Y=0 TO 24:FOR X=0 TO 79:K=Y*160+X*2:POKE K,176:POKE K+1,X+24:NEXT X:NEXT Y +MENU$="ENREGISTRER UN MESSAGELIRE UN OU DES MESSAGES -- EFFACER -- **** FIN **** " +Chx=4 +CALL MENU(MENU$,23,23,10,CN,FN,CI,FI,Chx,0,0,0) +IF CHX=-1 or chx=4 then goto FIN + +ON CHX GOTO ENREGISTRE,LIT,EFFACER + +'------------------------- ENREGISTREMENT ----------------------------------- +ENREGISTRE : +COLOR CN,FN:CLS +IF NT>=40 THEN NA=1 else na=nt+1 +GET #1,na+1 +kk=-1 +menu$=" Enregistrement n"+str$(na):Gosub Faitcadre +Gosub FaitPage +POKE (x+DX)*2+(y+DY)*160+1,COUI +m=(x+DX)*2+(y+DY)*160+1 +Locate 5,10:Print "Enter pour changer de ligne les flches pour dplacer le " +Locate 6,10:Print "Curseur , et pour Valider , pour abandonner " +Locate 18,10:Print "Vous devriez retenir votre pour voir si il y a une reponse !" +Locate 20,25:Print " pour se casser ! " + +prendsatouche : +B$=chr$(0) +M$="ABCDEFGHIJKLMNOPQR -+=STUVWXYZabcdefghijklmnopqrstuvwxyz1234567890)(&'!?/:.;,$*%<>#@\" +A$=inkey$:if a$="" then goto prendsatouche + + If a$=chr$(27) then goto EnSuite + If a$=b$+"" Then Goto MenuPrincipal + If a$=b$+"H" Then y=y-1 + If a$=b$+"P" Then y=y+1 + If a$=b$+"K" Then x=x-1 + If a$=b$+"M" Then x=x+1 + IF a$=chr$(13) Then Y=Y+1:X=1 + + If X=>33 then X=1 + If X<=0 then X=32 + If Y=>5 then Y=1 + If Y<=0 then Y=4 + POKE M,COUN:POKE (x+DX)*2+(y+DY)*160+1,COUI :m=(x+DX)*2+(y+DY)*160+1 + + A = INSTR(M$,A$):IF a=0 Then goto PrendSaTouche + + MID$(CH$(Y),X,1)=A$:KK=0 + POKE (x+DX)*2+(y+DY)*160,asc(A$) + POKE M,COUN:X=X+1:IF X=>33 THEN X=1:Y=Y+1:IF Y>=5 THEN Y=1 + POKE (x+DX)*2+(y+DY)*160+1,COUI:m=(x+DX)*2+(y+DY)*160+1 + GOTO PrendsaTouche + +ENSUITE : + +IF kk then Goto menuPrincipal +LSET L1$=CH$(1) +LSET L2$=CH$(2) +LSET L3$=CH$(3) +LSET L4$=CH$(4) +PUT #1,na+1 +NT=NT+1 +GET #1,1 +LSET L1$=STR$(NT) +PUT #1,1 + +Goto menuPrincipal + +'*************************************************************************** +LIT : +COLOR CN,FN:CLS +LITT : +IF NT>40 then nt=40 +Menu$="Lecture des messages :":Gosub faitCadre:chx=3 +MENU$="Un numro prcis TOUS revenir au menu " +Locate 20,30:PRINT " pour Fin " +CALL MENU(MENU$,16,30,10,CN,FN,CI,FI,Chx,0,0,0) + +IF CHX=-1 then Goto FIN +ON CHX GOTO LectPart,Litout,MenuPrincipal + +LectPart : '++++++++++++++++++ +COLOR CN,FN:Cls:Menu$="Lecture des messages :":Gosub faitCadre:Gosub FaitPage +Numero : +locate 5,20:print space$(60);"" +Locate 5,20:INPUT " Numero : ",NP +If Np>NT or Np<0 Then goto numero +If Np=0 then goto Litt + +Get #1,np+1 +Locate 12,26:Print L1$ +Locate 13,26:Print L2$ +Locate 14,26:Print L3$ +Locate 15,26:Print L4$ +A$=input$(1):goto numero + +LITOUT : +COLOR CN,FN:Cls:Menu$="Lecture des messages :":Gosub faitCadre +Gosub FaitPage +Locate 6,10:PRINT " Flche haut et bas pour changer ! " +Locate 20,20:Print " Fin " +CNn=1:gosub LitAFF:goto pt + +LitAff : +GET #1,CNn+1 +Locate 12,26:Print L1$ +Locate 13,26:Print L2$ +Locate 14,26:Print L3$ +Locate 15,26:Print L4$ +Color CI,FI +Locate 10,31:PRINt "Numro du message =";CNn:COLOR CN,FN +Return + +pt : +A$=inkey$:if a$="" then goto pt +if a$=chr$(0)+"H" and cnn>1 then cnn=cnn-1:gosub LITAFF +if a$=chr$(0)+"P" and cnnCODE$ THEN SOUND 100,1:SOUND 2000,1:SOUND 100,1:GOTO MENUPRINCIPAL + +COLOR CN,FN:CLS +MENU$="EFFACEMENT d'UNE ANNONCE":gosub FAITcadre:gosub FaitPAge:CNN=1 +locate 18,32:Print " pour Sortir" + +locate 5,10:print " Utilisez les flches pour choisir le message " +locate 6,10:print " effacer et pressez pour valider et confirmez " +locate 7,10:print " en rpondant par (O)ui (N)on " + +ok : +CNN=1:GOSUB LITAFF + +ptO : +A$=inkey$:if a$="" then goto pto +if a$=chr$(0)+"H" and cnn>1 then cnn=cnn-1:gosub LITAFF +if a$=chr$(0)+"P" and cnn3 THEN BEEP:GOTO 16 +18 ON A GOTO 19,20,21 +19 R$="":GOTO 30 +20 R$="":GOTO 30 +21 R$="" +30 R=LEN(R$) +31 CLS:X=11 +100 COLOR 14:PRINT +110 PRINT " " +120 FOR I=1 TO 20 +130 PRINT " " +140 NEXT +150 LOCATE 22,1:PRINT " " ; +160 LOCATE 5,6 +161 COLOR 13:LOCATE 5,6:PRINT "" +162 COLOR 1:LOCATE 6,6:PRINT "" +163 COLOR 12:LOCATE 7,6:PRINT "" +164 COLOR 3:LOCATE 8,6:PRINT "" +165 COLOR 8:LOCATE 9,6:PRINT "" +166 COLOR 2 +167 VX=1:VY=1:ABX=17:ABY=12 +170 IF AX<>X THEN LOCATE 22,9:PRINT SPACE$(21) +171 P=X-(R-1)/2+6:LOCATE 22,P:PRINT R$ +172 AX=X +175 IF BY=23 THEN LOCATE 12,20:PRINT "perdu uuuuuu":][ 5,15,15:A$=INPUT$(3):RUN +180 A$=INKEY$ +190 IF A$=CHR$(0)+"M" THEN X=X+1 +200 IF A$=CHR$(0)+"K" THEN X=X-1 +210 IF X=(R-1)/2+2 THEN X=X+1 +215 IF X+(R-1)/2=24 THEN X=X-1 +220 LOCATE BY,BX:PRINT "o" +221 LOCATE ABY,ABX:PRINT " " +222 ABY=BY:ABX=BX +230 IF VX=1 THEN BX=BX+1 +240 IF VX=0 THEN BX=BX-1 +250 IF VY=1 THEN BY=BY+1 +260 IF VY=0 THEN BY=BY-1 +270 IF SCREEN(BY,BX)=219 AND (SCREEN (BY,BX,1)=14 OR SCREEN (BY,BX,1)=2) THEN GOSUB 1000:GOTO 230 +280 IF SCREEN(BY,BX)=219 AND SCREEN (BY,BX,1)<>14 THEN GOSUB 1200:GOTO 230 +290 GOTO 170 +999 REM ||||||||||||||||||| 1re +1000 IF BY<>22 THEN 1040 +1010 IF VX=1 AND X<27 THEN VX=1:VY=0 +1011 IF VX=1 AND X=27 THEN VX=0:VY=0 +1020 IF VX=0 AND X>6 THEN VX=0:VY=0 +1021 IF VX=0 AND X=6 THEN VX=1:VY=0 +1025 RETURN +1039 REM ||||||||||||||||||| 2me +1040 IF BY<>2 THEN 1080 +1045 IF VX=1 AND X<27 THEN VX=1:VY=1 +1047 IF VX=1 AND X=27 THEN VX=0:VY=1 +1050 IF VX=0 AND X>6 THEN VX=0:VY=1 +1052 IF VX=0 AND X=6 THEN VX=1:VY=1 +1053 RETURN +1079 REM ||||||||||||||||| 3 & 4 me +1080 IF BX<=6 THEN VX=1 ELSE VX=0 +1085 RETURN +1200 PTS=PTS+SCREEN (BY,BX,1):LOCATE 25,1:COLOR 12:PRINT " SCORE :";PTS:COLOR 2 +1205 LOCATE BY,BX:PRINT " " +1210 IF VY=1 THEN VY=0:RETURN +1220 IF VY=0 THEN VY=1:RETURN +1221 RETURN + \ No newline at end of file diff --git a/N-PREMIE b/N-PREMIE new file mode 100644 index 0000000..c8da39d --- /dev/null +++ b/N-PREMIE @@ -0,0 +1,122 @@ + 2 , 3 , 5 , 7 , 11 , 13 , 17 + 19 , 23 , 29 , 31 , 37 , 41 , 43 + 47 , 53 , 59 , 61 , 67 , 71 , 73 + 79 , 83 , 89 , 97 , 101 , 103 , 107 + 109 , 113 , 127 , 131 , 137 , 139 , 149 + 151 , 157 , 163 , 167 , 173 , 179 , 181 + 191 , 193 , 197 , 199 , 211 , 223 , 227 + 229 , 233 , 239 , 241 , 251 , 257 , 263 + 269 , 271 , 277 , 281 , 283 , 293 , 307 + 311 , 313 , 317 , 331 , 337 , 347 , 349 + 353 , 359 , 367 , 373 , 379 , 383 , 389 + 397 , 401 , 409 , 419 , 421 , 431 , 433 + 439 , 443 , 449 , 457 , 461 , 463 , 467 + 479 , 487 , 491 , 499 , 503 , 509 , 521 + 523 , 541 , 547 , 557 , 563 , 569 , 571 + 577 , 587 , 593 , 599 , 601 , 607 , 613 + 617 , 619 , 631 , 641 , 643 , 647 , 653 + 659 , 661 , 673 , 677 , 683 , 691 , 701 + 709 , 719 , 727 , 733 , 739 , 743 , 751 + 757 , 761 , 769 , 773 , 787 , 797 , 809 + 811 , 821 , 823 , 827 , 829 , 839 , 853 + 857 , 859 , 863 , 877 , 881 , 883 , 887 + 907 , 911 , 919 , 929 , 937 , 941 , 947 + 953 , 967 , 971 , 977 , 983 , 991 , 997 + 1009 , 1013 , 1019 , 1021 , 1031 , 1033 , 1039 + 1049 , 1051 , 1061 , 1063 , 1069 , 1087 , 1091 + 1093 , 1097 , 1103 , 1109 , 1117 , 1123 , 1129 + 1151 , 1153 , 1163 , 1171 , 1181 , 1187 , 1193 + 1201 , 1213 , 1217 , 1223 , 1229 , 1231 , 1237 + 1249 , 1259 , 1277 , 1279 , 1283 , 1289 , 1291 + 1297 , 1301 , 1303 , 1307 , 1319 , 1321 , 1327 + 1361 , 1367 , 1373 , 1381 , 1399 , 1409 , 1423 + 1427 , 1429 , 1433 , 1439 , 1447 , 1451 , 1453 + 1459 , 1471 , 1481 , 1483 , 1487 , 1489 , 1493 + 1499 , 1511 , 1523 , 1531 , 1543 , 1549 , 1553 + 1559 , 1567 , 1571 , 1579 , 1583 , 1597 , 1601 + 1607 , 1609 , 1613 , 1619 , 1621 , 1627 , 1637 + 1657 , 1663 , 1667 , 1669 , 1693 , 1697 , 1699 + 1709 , 1721 , 1723 , 1733 , 1741 , 1747 , 1753 + 1759 , 1777 , 1783 , 1787 , 1789 , 1801 , 1811 + 1823 , 1831 , 1847 , 1861 , 1867 , 1871 , 1873 + 1877 , 1879 , 1889 , 1901 , 1907 , 1913 , 1931 + 1933 , 1949 , 1951 , 1973 , 1979 , 1987 , 1993 + 1997 , 1999 , 2003 , 2011 , 2017 , 2027 , 2029 + 2039 , 2053 , 2063 , 2069 , 2081 , 2083 , 2087 + 2089 , 2099 , 2111 , 2113 , 2129 , 2131 , 2137 + 2141 , 2143 , 2153 , 2161 , 2179 , 2203 , 2207 + 2213 , 2221 , 2237 , 2239 , 2243 , 2251 , 2267 + 2269 , 2273 , 2281 , 2287 , 2293 , 2297 , 2309 + 2311 , 2333 , 2339 , 2341 , 2347 , 2351 , 2357 + 2371 , 2377 , 2381 , 2383 , 2389 , 2393 , 2399 + 2411 , 2417 , 2423 , 2437 , 2441 , 2447 , 2459 + 2467 , 2473 , 2477 , 2503 , 2521 , 2531 , 2539 + 2543 , 2549 , 2551 , 2557 , 2579 , 2591 , 2593 + 2609 , 2617 , 2621 , 2633 , 2647 , 2657 , 2659 + 2663 , 2671 , 2677 , 2683 , 2687 , 2689 , 2693 + 2699 , 2707 , 2711 , 2713 , 2719 , 2729 , 2731 + 2741 , 2749 , 2753 , 2767 , 2777 , 2789 , 2791 + 2797 , 2801 , 2803 , 2819 , 2833 , 2837 , 2843 + 2851 , 2857 , 2861 , 2879 , 2887 , 2897 , 2903 + 2909 , 2917 , 2927 , 2939 , 2953 , 2957 , 2963 + 2969 , 2971 , 2999 , 3001 , 3011 , 3019 , 3023 + 3037 , 3041 , 3049 , 3061 , 3067 , 3079 , 3083 + 3089 , 3109 , 3119 , 3121 , 3137 , 3163 , 3167 + 3169 , 3181 , 3187 , 3191 , 3203 , 3209 , 3217 + 3221 , 3229 , 3251 , 3253 , 3257 , 3259 , 3271 + 3299 , 3301 , 3307 , 3313 , 3319 , 3323 , 3329 + 3331 , 3343 , 3347 , 3359 , 3361 , 3371 , 3373 + 3389 , 3391 , 3407 , 3413 , 3433 , 3449 , 3457 + 3461 , 3463 , 3467 , 3469 , 3491 , 3499 , 3511 + 3517 , 3527 , 3529 , 3533 , 3539 , 3541 , 3547 + 3557 , 3559 , 3571 , 3581 , 3583 , 3593 , 3607 + 3613 , 3617 , 3623 , 3631 , 3637 , 3643 , 3659 + 3671 , 3673 , 3677 , 3691 , 3697 , 3701 , 3709 + 3719 , 3727 , 3733 , 3739 , 3761 , 3767 , 3769 + 3779 , 3793 , 3797 , 3803 , 3821 , 3823 , 3833 + 3847 , 3851 , 3853 , 3863 , 3877 , 3881 , 3889 + 3907 , 3911 , 3917 , 3919 , 3923 , 3929 , 3931 + 3943 , 3947 , 3967 , 3989 , 4001 , 4003 , 4007 + 4013 , 4019 , 4021 , 4027 , 4049 , 4051 , 4057 + 4073 , 4079 , 4091 , 4093 , 4099 , 4111 , 4127 + 4129 , 4133 , 4139 , 4153 , 4157 , 4159 , 4177 + 4201 , 4211 , 4217 , 4219 , 4229 , 4231 , 4241 + 4243 , 4253 , 4259 , 4261 , 4271 , 4273 , 4283 + 4289 , 4297 , 4327 , 4337 , 4339 , 4349 , 4357 + 4363 , 4373 , 4391 , 4397 , 4409 , 4421 , 4423 + 4441 , 4447 , 4451 , 4457 , 4463 , 4481 , 4483 + 4493 , 4507 , 4513 , 4517 , 4519 , 4523 , 4547 + 4549 , 4561 , 4567 , 4583 , 4591 , 4597 , 4603 + 4621 , 4637 , 4639 , 4643 , 4649 , 4651 , 4657 + 4663 , 4673 , 4679 , 4691 , 4703 , 4721 , 4723 + 4729 , 4733 , 4751 , 4759 , 4783 , 4787 , 4789 + 4793 , 4799 , 4801 , 4813 , 4817 , 4831 , 4861 + 4871 , 4877 , 4889 , 4903 , 4909 , 4919 , 4931 + 4933 , 4937 , 4943 , 4951 , 4957 , 4967 , 4969 + 4973 , 4987 , 4993 , 4999 , 5003 , 5009 , 5011 + 5021 , 5023 , 5039 , 5051 , 5059 , 5077 , 5081 + 5087 , 5099 , 5101 , 5107 , 5113 , 5119 , 5147 + 5153 , 5167 , 5171 , 5179 , 5189 , 5197 , 5209 + 5227 , 5231 , 5233 , 5237 , 5261 , 5273 , 5279 + 5281 , 5297 , 5303 , 5309 , 5323 , 5333 , 5347 + 5351 , 5381 , 5387 , 5393 , 5399 , 5407 , 5413 + 5417 , 5419 , 5431 , 5437 , 5441 , 5443 , 5449 + 5471 , 5477 , 5479 , 5483 , 5501 , 5503 , 5507 + 5519 , 5521 , 5527 , 5531 , 5557 , 5563 , 5569 + 5573 , 5581 , 5591 , 5623 , 5639 , 5641 , 5647 + 5651 , 5653 , 5657 , 5659 , 5669 , 5683 , 5689 + 5693 , 5701 , 5711 , 5717 , 5737 , 5741 , 5743 + 5749 , 5779 , 5783 , 5791 , 5801 , 5807 , 5813 + 5821 , 5827 , 5839 , 5843 , 5849 , 5851 , 5857 + 5861 , 5867 , 5869 , 5879 , 5881 , 5897 , 5903 + 5923 , 5927 , 5939 , 5953 , 5981 , 5987 , 6007 + 6011 , 6029 , 6037 , 6043 , 6047 , 6053 , 6067 + 6073 , 6079 , 6089 , 6091 , 6101 , 6113 , 6121 + 6131 , 6133 , 6143 , 6151 , 6163 , 6173 , 6197 + 6199 , 6203 , 6211 , 6217 , 6221 , 6229 , 6247 + 6257 , 6263 , 6269 , 6271 , 6277 , 6287 , 6299 + 6301 , 6311 , 6317 , 6323 , 6329 , 6337 , 6343 + 6353 , 6359 , 6361 , 6367 , 6373 , 6379 , 6389 + 6397 , 6421 , 6427 , 6449 , 6451 , 6469 , 6473 + 6481 , 6491 , 6521 , 6529 , 6547 , 0 , 0 + \ No newline at end of file diff --git a/OP.BAS b/OP.BAS new file mode 100644 index 0000000000000000000000000000000000000000..9b0ff8710b9b3fb520008fc9300e2bf41bc00a7b GIT binary patch literal 16392 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 literal 0 HcmV?d00001 diff --git a/PROALAIN.BAS b/PROALAIN.BAS new file mode 100644 index 0000000..585a22e --- /dev/null +++ b/PROALAIN.BAS @@ -0,0 +1,379 @@ +'*************************************************************************** +'**** PROGRAMME A MANGER ( Classification de recettes et gestion ) **** +'**** **** +'**** UNIQUEMENT UTILISABLE AVEC QUICK-BASIC **** +'**** **** +'**** CGA Couleur Version 1.1 DE DARCHE Yoann 09/90 **** +'**** **** +'*************************************************************************** + +DEF SEG = &HB800:OPTION BASE 1:CLS +DEFINT X,Y,I,J,K,D,C,F +DE=4096 + +DIM D(20,4) '*** Coordonnes des tableaux ( voir les datas ) *** +GOSUB LECTURETAB + +c=15:f=04: XTAB = 1 : XTABM = 1 +CI=11:FI=1 +Chemin$="B:\" +TG$=" SYSTEME CREATIONS MODIFICATIONS RECHERCHE " + +for x=0 to 79:for y=0 to 24:poke x*2+y*160+1,Y+1+60:poke x*2+y*160,177:next y:next x + +'**********************$ OUVERTURE DES FICHIERS A ACCES SEQUENTIEL ********** +'KIll Chemin$+"TypeAlim.DAT" + +OPEN Chemin$+"TypeAlim.DAT" AS #1 len = 20 +OPEN Chemin$+"SortAlim.DAT" AS #2 len = 19 +OPEN CHEMIN$+"Config .FIC" AS #3 len = 4 + +FIELD #1,19 AS TYPE$,1 AS NC$ +FIELD #2,19 AS SORT$ +FIELD #3,4 AS HE$ + +LT=LOF(1)/20 +LS=LOF(2)/19 + +GET #3,1: H$=HE$ + +'*********************** Affichage de l'tat actuelle des fichiers ********** + +X1=19:X2=60:Y1=9:Y2=17:GOSUB OuvreFenetre + + Locate 12,24:PRINT USING "#####";lt + Locate 12,30:PRINT "TYPES D'ALIMENTS DEFINIES" + Locate 14,24:PRINT USING "#####";LS + Locate 14,30:PRINT "SORTES D'ALIMENTS DEFINIES" + Locate 16,22:PRINT "Appuyer sur une touche pour Continuer" + +Gosub HexaCode + +A$=input$(1):Gosub Fermefenetre + +'************************ Affichage du menu pricipal ************************ + +LOCATE 1,6:color c,f:print " "+tg$+" " + +Deb1 : +gosub affichetab + + color c,f :locate 1,7+15*(xtabm-1):print mid$(tg$,15*(xtabm-1)+1,13) + color ci,fi:locate 1,7+15*(xtab-1):print mid$(tg$,15*(xtab-1)+1,13) + xtabm=xtab + +Prendcar : +A$=INkey$ + + If A$="" then Color c,f:LOCATE 1,70:PRINT TIME$: Goto Prendcar + + if A$="4" and XTAB > 1 THEN gosub fermefenetre:XTAB=XTAB-1:goto Deb1 + if A$="6" and XTAB < 4 THEN gosub fermefenetre:XTAB=XTAB+1:goto deb1 + if A$="2" and YTAB < NT THEN YTAB=YTAB+1: gosub afficheCUR + if A$="8" and YTAB > 1 THEN YTAB=YTAB-1: gosub afficheCUR + IF a$=chr$(27) then Goto FinProg + If A$=" " or A$=CHR$(13) THEN GOSUB AIGUILLAGE + + +Goto prendcar + + +'============================================================================ +ouvrefenetre : ' *********** Cration du cadre et sauvegarde cran ******** + +PCOPY 0,1:COLOR C,F + +ouvrefenetre2 : + + P1 = X1*2+Y1*160 : P2 = X2*2+160*Y1 : P3 =X1*2+160*Y2 : P4=X2*2+160*Y2 + PY = P3-P1 :PX= P2-P1:K=-1 + + FOR I=P1 TO P3 STEP 160 + POKE I+1,C:POKE I+1+PX,C:POKE I,186:POKE I+PX,186 + K=K+1:LOCATE Y1+1+K,X1+2:PRINT STRING$(X2-X1-1,32); + NEXT I + + FOR I=P1 TO P2 STEP 2:POKE I+1,C:POKE I,205:POKE I+1+PY,C:POKE I+PY,205 + NEXT I + + POKE P1,201:POKE P2,187:POKE P3,200:POKE P4,188 + +RETURN + +'============================================================================ +fermefenetre : ' ***** Restution de l'cran 0 partir de l'cran 1 ***** + + PX=X1:MY=Y2:PY=Y1:MX=X2:IF X2-X1 > Y2-Y1 THEN K=Y2-Y1 ELSE K=X2-X1 + + FOR J=MY TO PY STEP -1 + D= J*160+PX*2:POKE D,PEEK(D+DE):POKE D+1,PEEK(D+DE+1):NEXT J + + FOR I=1 TO INT(K/2+1) + FOR J=PX TO MX + D=PY*160+ J*2:POKE D,PEEK(D+DE):POKE D+1,PEEK(D+DE+1):NEXT J:PX=PX+1 + FOR J=PY TO MY + D= J*160+MX*2:POKE D,PEEK(D+DE):POKE D+1,PEEK(D+DE+1):NEXT J:PY=PY+1 + FOR J=MX TO PX STEP -1 + D=MY*160+ J*2:POKE D,PEEK(D+DE):POKE D+1,PEEK(D+DE+1):NEXT J:MX=MX-1 + FOR J=MY TO PY STEP -1 + D= J*160+PX*2:POKE D,PEEK(D+DE):POKE D+1,PEEK(D+DE+1):NEXT J:MY=MY-1 + NEXT I + RETURN + +'============================================================================ +AfficheTAB : '************ Choix de la fentre *************************** + + YTAB=1:YTABM=1 + On XTAB GOSUB TAB1,TAB2,TAB3,TAB4 + + x1=d(xtab,1):y1=d(xtab,2):x2=d(XTAB,3):y2=d(XTAB,4) + gosub ouvrefenetre + DLX = x1+2 : DLY = y1+2 + FOR I=1 TO NT + LOCATE DLY+I,DLX+1:PRINT MID$(t$,(I-1)*(LX+1)+1,LX) + NEXT I + GOSUB afficheCUR + return + +TAB1 : '*** SYSTEME *** + T$="CONFIG .SAV-CONF.RAP-CONF.QUITTER " + LX=8:NT=4 + RETURN + +TAB2 : '*** CREATION *** + T$="ALIMENT .SORTE ALIM..RECETTE " + LX=11:NT=3 + RETURN + +TAB3 : '*** MODIFICATION *** + T$="ALIMENT .SORTE ALIM..RECETTE " + LX=11:NT=3 + RETURN + +TAB4 : ' ****** RECHERCHE ***** + T$="RECETTE ==> ALIMENTS.ALIMENTS ==> RECETTES" + LX=21:NT=2 + RETURN + +AfficheCUR : '************ Affiche le Curseur dans la fentre ************** + + Color C,F + LOCATE DLY+YTABM,DLX+1:PRINT MID$(t$,(YTABM-1)*(LX+1)+1,LX) + Color CI,FI + LOCATE DLY+YTAB ,DLX+1:PRINT MID$(t$,(YTAB -1)*(LX+1)+1,LX) + YTABM=YTAB +Return + +Aiguillage : '************ COMMENCE LE DEBUT DU PROGRAMMME CHOISIE ********* + + ON XTAB Goto GTAB1,gTAB2,gTAB3 + + FinAi : + RETURN + + gTAB1 : + ON YTAB GOTO LePlusBeau,FinAi,FinAi,FinProg + + gTAB2 : + ON YTAB GOTO FinAi,FinAi,FinAi + + gTAB3 : + ON YTAB GOTO CreaType,FinAi,FinAi + + gTAB4 : + ON YTAB GOTO FinAi,FinAi + +LectureTAB : '************ Lit le tableau de coordonnes ******************* + + I=0 + DEBL : + I=I+1 + READ K + IF K>0 THEN Read D(I,2),D(I,3),D(I,4):d(I,1)=k else return + goto DEBL + + + +CooTableau : '***********$ DATA TABLEAUX X1,Y1,X2,Y2 *********************** + + DATA 1,3,12,10 + data 11,3,25,9 + DATA 23,13,37,19 + DATA 40,10,64,15 + DATA -1,-1 '****** FIN + +LectCara :'*********** Dans MAXC nombre max de caractres Retour dans p$ *** + ' DXLC,DYLC = dcalage d'impression + +If fx=0 and cx=0 then cx=c:fx=f +p$="" + +B$=chr$(0):LOCATE DYLC,DXLC:PRINT chr$(17) + Delc : + A$=INKEY$ + If A$="" then Color c,f:LOCATE 1,70:PRINT TIME$: Goto Delc + Color cx,fx + IF A$=CHR$(13) THEN cx=0:fx=0:RETURN + IF A$=B$+CHR$(75) OR A$=CHR$(8) OR A$=B$+Chr$(83) THEN goto EFFACE1 + IF LEN(P$)=MAXC THEN BEEP:GOTO Delc + + A=ASC(A$) + IF A=32 OR A=40 or a=41 or a=39 GOTO Suite + IF (A>=48 AND A<=57) or (A>=128 AND A=<154) then goto Suite + IF (A>=128 or a<=64) goto delc + A = A and 95 + IF not ( A>=65 and A<=90 ) then beep:goto Delc + a$=chr$(a) + + Suite : + LOCATE DYLC,DXLC+LEN(P$):PRINT A$+CHR$(17) + P$=P$+A$ + GOTO Delc + +EFFACE1 : + + + If len(p$)=0 then beep:goto delc + + LOCATE DYLC,DXLC+LEN(P$)-1:PRINT CHR$(17)+" " + p$=MID$(p$,1,LEN(p$)-1) + Goto Delc + + + +FinProg : '****************** FIN DU PROGRAMME ***************************** + + CLOSE + CLS + PRINT " SALUT il est ";TIME$ + END + + +CODEBIN : '****************** Traduit un code en Binaire ******************** + +bin$="" + While Casc! <> 0 + R! = (Casc! mod 2) : Casc! = fix( Casc!/2 ) + bin$=right$(str$(R!),1)+bin$ + Wend +Return + +BINCODE : '****************** Traduit un code Binaire en Decimal ************ + +Casc!=0:J=0 +For i=len(Bin$) TO 1 STEP -1 + If mid$(Bin$,i,1)="1" then Casc!=Casc!+2^(j) + j=j+1 +Next i +Return + +HEXACODE : '**************** Traduit un cod hexa en dcimal ***************** + +HD=0 + for I=1 TO LEN(H$) + + K$=MID$(h$,i,1) + K=val(K$) + if Val(k$)=0 and k$<>"0" then K=asc(K$)-55 + HD=HD+k*(16^(4-i)) + +Next I +RETURN + +AfficheList : '************* Affiche une liste de chaines de 19 car chacune ** + ' Maxlist = nombre de chaine a afficher + ' Canal = Canal de lecture disque + ' Retour le choix dans Chx ( Si Chx=-1 alors ) + +NP=int(MaxList/80)+sgn(maxlist mod 80) +PR=1:pcopy 0,3 + + COLOR C,F:cls + + FOR I=1 to 4 + FOR J=1 to 20 + get #1,(i-1)*20+j+(pr-1)*80 + LOCATE j+2,(I-1)*20+1 + PRINT TYPE$ + IF (I-1)*20+J+(PR-1)*80 > MAXLIST THEN GOTO FINIAFF + NEXT j + NEXT i + + FINIAFF: + +COLOR CI,FI:LOCATE 25,1 +print " PAGE ";:PRINT USING " ##";PR;:print " /";:print using " ##";NP; +PRINT " page avant (9), page aprs (3) et ESC pour fin "; +locate 1,1 + + A$=input$(1) + pcopy 3,0 + + +return + +'**************************************************************************** +'*** PROGRAMME PRINCIPAL *** +'**************************************************************************** + +LEPLUSBEAU: + +CreaType : + + Gosub FermeFenetre + +IF LT=0 THEN X1=28:X2=53:Y1=9:Y2=11:Gosub OuvreFenetre:LOCATE 11,32:PRINT " AUCUN TYPE DEFINI !":beep:a$=input$(1):gosub fermefenetre +IF LT>0 THEN maxlist = lt:canal=1:GOSUB AfficheList + +CREAT: + + X1=25:X2=51:y1=5:y2=17:gosub ouvrefenetre + Locate 8,30:print " Vous devez entrer" + Locate 10,35:print "le nouveau" + Locate 12,30:print " Type d'Aliment :" + X1=27:X2=49:y1=13:y2=15:color ci,fi:gosub ouvrefenetre2 + DYLC=15:DXLC=30:MAXC=19:cx=ci:fx=fi:Gosub LectCara + X1=25:X2=51:y1=5:y2=17:gosub fermefenetre + If p$="" Then Goto Deb1 + + Color c,f + X1=11:X2=66:Y1=10:y2=12:gosub ouvrefenetre + Locate 12,14:PRINT "PATIENTEZ, Je regarde s'il n'est pas dj enregistr" + Flag = 0 + + If len(p$) < 19 THEN p$=p$+space$(19-LEN(p$)) + + For I = 1 TO LT + GET #1,I + IF TYPE$=p$ Then FLAG=-1 + NEXT I + + Gosub FermeFenetre + +IF FLAG THEN + + X1=10:X2=68:Y1=6:Y2=16:Gosub ouvrefenetre:beep + COLOR 30,0 + LOCATE 9,14:PRINT " " + LOCATE 10,14:PRINT " Vous avez dj dfinie " + LOCATE 11,14:PRINT " " + LOCATE 12,14:PRINT " Ce type Aliment " + LOCATE 13,14:PRINT " " + LOCATE 14,14:PRINT " Je dois annuler cette enregistrement " + LOCATE 15,14:PRINT " " + Color c,f + a$=INPUT$(1):GOSUB Fermefenetre + + ELSE + LT=LT+1:GET #1,LT :LSET TYPE$=P$:lset NC$=chr$(0):PUT #1,LT + GET #3,LT+1:LSET HE$=HEX$(HD): PUT #3,LT+1 + +END IF + + X1=11:X2=66:Y1=10:y2=12:gosub ouvrefenetre + Locate 12,14:PRINT " Voulez - vous raliser un nouvelle enregistrement"; + a$=input$(1):a$=chr$(asc(a$) and 95) + If a$="O" then Gosub fermefenetre:goto creat + Gosub fermefenetre + Goto Deb1 + diff --git a/PROG1.BAS b/PROG1.BAS new file mode 100644 index 0000000000000000000000000000000000000000..e814d1bc585e7eaa27d364cf016e27aeb78ad919 GIT binary patch literal 865 zcma)(J%|%Q6vrQAI2+CGL>q&}b6mXya=F6hnB$5~+~`6sxvbfMja-sjHImy6`DiUp z6oZ8%AT~CKpqftyw&v99x^kh7d14CdRD)vX~;3A&ZXwk zab%0|RGJ~GGXBi(qA-l%I}Fbd*pXy1^^_U@@Q~^b)Oe3zm=uLL|5@RZ=kWX0#z zfTshV=8ShSyg(o;Cq*Q5I$_(Df+w;shJadF=*I&YRV)x?aRzMyNyv|Y$IF}zFQ8{Hv8_)R~M4K&9Q ze2XV0A$}9g$SxW3+n75Y6OMQyr%Y`+u)e?OpU<6~@)h4|zCRoAsfEqR`$Jp&9xnaY Yhig`))5aAef8J1+m$kpH0YEhR2j|WD5C8xG literal 0 HcmV?d00001 diff --git a/PURSANG.BAS b/PURSANG.BAS new file mode 100644 index 0000000..18acc08 --- /dev/null +++ b/PURSANG.BAS @@ -0,0 +1,67 @@ +0 SCREEN 2:SCREEN 0,0,0 +1 KEY OFF:G$=" " +2 P$="XY1Z1Y2Z2Y3Z3Y4Z4Y5Z5Ŀ" +3 P1$="XY1Z1Y2Z2Y3Z3Y4Z4Y5Z5" +6 OPTION BASE 1:DIM V(11,12),V$(11,12):MY=1:MX=1:X=1:Y=1 +10 CLS:COLOR 0,7:LOCATE 1,32:PRINT "PURSANG" +11 COLOR 7,0:PRINT :PRINT +12 PRINT " Une CREATION de DARCHE YOANN" +13 LOCATE 23,1:PRINT " Utilisez le pav numrique pour se dplacer . +14 LOCATE 24,1:PRINT " Puis appuyer sur ou une fois la cellule choisie "; +15 LOCATE 6,33:PRINT "Edition " +16 PRINT +17 LOCATE ,15:PRINT " " +18 LOCATE ,15:PRINT " " +19 LOCATE ,15:PRINT " " +20 LOCATE ,15:PRINT " " +21 LOCATE ,15:PRINT " " +22 LOCATE ,15:PRINT " " +23 LOCATE ,15:PRINT " " +29 A$=INPUT$(1):GOSUB 6000:CLS +30 PRINT P$ +50 FOR I=1 TO 11 +51 PRINT ""+CHR$(64+I)+" "; +52 PRINT "Ĵ"; +53 NEXT +54 PRINT "L "; +55 LOCATE 25,1:PRINT P1$; +56 FOR I=1 TO 12 +57 GHJ=V(1,I):LOCATE 2*I,4:PRINT GHJ;:NEXT +69 PCOPY 0,1 +70 REM PROGRAME ........................... +80 A$=INKEY$:IF A$="" THEN 80 +110 IF A$="4" THEN X=X-1:IF X<=0 THEN X=1:BEEP +120 IF A$="6" THEN X=X+1:IF X>=11 THEN X=10:BEEP +130 IF A$="2" THEN Y=Y+1:IF Y>=13 THEN BEEP:Y=12 +140 IF A$="8" THEN Y=Y-1:IF Y<=0 THEN BEEP:Y=1 +141 IF A$=" " OR A$=CHR$(13) THEN 4000 +142 IF A$=CHR$(27) THEN COLOR 7,0:CLS:END +150 N$=RIGHT$(STR$(V(X+1,Y)),LEN(STR$(V(X+1,Y)))-1) +151 RSET G$=N$ +155 COLOR 7,0:LOCATE 2*MY,4+7*MX:PRINT M$;:LOCATE 2*Y,4+7*X:COLOR 0,7:PRINT G$;:M$=G$:MY=Y:MX=X +156 IF N$="" THEN N$="0 " +157 GOTO 80 +4000 PCOPY 0,1:COLOR 7,0 +4010 IF Y>=3 THEN MLK=1 ELSE MLK=0 +4020 LOCATE 10,10:PRINT "";STRING$(58,196);"" +4030 LOCATE 11,10:PRINT "";STRING$(58,32);"" +4040 LOCATE 12,10:PRINT "";STRING$(58,32);"" +4050 LOCATE 13,10:PRINT "";STRING$(58,196);"" +4060 IF X/2=INT(X/2) THEN MKL=1 ELSE MKL=2 +4070 LOCATE 11,11:PRINT "ANCIENNE VALEUR:";V$(X+1,Y) +4080 IF MLK=1 THEN LOCATE 12,11:INPUT "NOUVELLE VALEUR:",M$ +4090 IF MLK=0 THEN LOCATE 12,11:INPUT "MINUTE :";M:LOCATE 12,11:INPUT "SECONDE :";S:IF M>=61 OR S>=61 THEN BEEP:GOTO 4090 +5000 IF MLK=1 THEN V$(X+1,Y)=M$ +5001 IF MLK=0 THEN V$(X+1,Y)=STR$(M)+"'"+STR$(S)+"''" +5002 IF MLK=0 THEN M=M*60+S ELSE M=VAL(M$) +5003 M=M/V(1,Y)*100 +5005 KM=INT(M):IF KM=M THEN 5007 +5006 JLM$=STR$(KM):L=LEN(JLM$):JL$=LEFT$(STR$(M),L+3):M=VAL(JL$) +5007 V(X+1,Y)=M +5008 PCOPY 1,0 +5009 GOTO 150 +6000 CLS:FOR I=1 TO 12 +6005 PRINT CHR$(64+I);"= " +6010 IF I<=2 THEN INPUT "minutes :",M:INPUT "secondes :",S:M=S+M*60 ELSE INPUT "VALEUR :",M +6020 V(1,I)=M:NEXT :RETURN + \ No newline at end of file diff --git a/QTE.ADR b/QTE.ADR new file mode 100644 index 0000000..e69de29 diff --git a/R3.BAS b/R3.BAS new file mode 100644 index 0000000000000000000000000000000000000000..30ac3594ebb71a5eed0ec13594932c2b6269b14c GIT binary patch literal 2030 zcmZuyU2GIp6h6CjcWcGoo!QwfKdU)T8l8cG@KXy+5LwD%mzHJRUFZ%mnr*wKtL?UI zf1+<@t4IM!_|X`HF~*2bCK`P*#1u`i7>J0$2ZII_JM0z+Q6JEU)^m4;E}-);Kj-_- zch0%@+%vOn%mWjUWL}uW0Q4~*%)E<}s0f;%mX+{Hw-)}&rNS_)gEROuj4=s}m=&C! zJ*0>#9A)caFSf)swMP}UP=!y~7Wz&oOi?wna&J{wqpI!Xceua|_!dQtJ*gj-qw!QC z8pX}gBqq0S+ZIhFWw^n15h0+ljYQbI1C7M?EwOgu$l&!qPmrXs2tiLrcB1}>f}WV?oQ1Nk8xu?Z2IWq8})M~p=pYa_xM zT#M^u_}Jgiy&klUD{&RBmf?&)&yDkKslg1_Sc(H9xJ-s={{Y9Boxy0PFV~$dP<}%= zIFO@CsCr?LGyFEAlD@ruRKKu?L$qjo0jkb8SQzNZ^~n$s3Y_EX(H+q@PSa{`UI75jY~tU z^b5W5e$hltoB!V5a8hXI1lFywPV#2msIeYG;iAx60XoUh&5<7dB;a@99oK2wgT4ir zC!Tf9jFX|$ksu-|*gXefapwQ@1!xvmxRFP`FMt4XvD2Nl!fuytT5M7`ELNu{EdkQv zes|JJmP8m3kGW^|p^`?_Ohi?y^f&AkPrDI1yB}mV-x`-$-}oJl143J z-q{ZA78ueao=V2EZz=2{l{9F>)0#=`lr9A|vlLWy+d^-SP1O@hQsvuUPU|LrHA?|~ z9P9VHp+{1xdW*SU{Ur|!N<|Oh$K3F;bjdSwoZ9|~blF3~&WL<~M&u4^d2JJXCSBpc zedi%nJr7??zj}(;W{G$fljQ*1kbbK;P&x^vjnB+Bl~U#D(RWF#Sm>d`pVC#&7)Ze> zPi5Hgc@)X-rWr<4t}rm1;d2RPSRI@u0u4J($mR*%T__IGtm2mpn}fG(xK)1*Bk@Mq z75sXCHRnmx#0;Z$&em!=HO*QY3_R3Ve^>dj*QwhZ3~Wp5EXoYfHFQc&|I ztc22`!u4RY#I{(R{vJ<+dcCxXQyyp!o%j8>H0TUn^c68iJxDtf?segJH1;7M`pMUxvZ%;9 zcs+F0myTGpx1|KHGG-UA!iS-ozO+#Vlvs(?IZLC$MCi89j96v@%j9-&&TYB{u7upR zrcs6NaYQ0`8nE^Nc1(#*Ya5zrPlnC;L(Pr+A&ZX T*454&hvf|$Y7YUxqDB7#>#l6i literal 0 HcmV?d00001 diff --git a/R4.BAS b/R4.BAS new file mode 100644 index 0000000000000000000000000000000000000000..4a717f3628e66b06ee0e2f3adf6ac98f4bdef068 GIT binary patch literal 2256 zcmZuyYitx%6h6Cj$55encXqa0u$q%e)fu@MUMVo*V=0SWTgtdw+8s2SZM%ilzSut0 zf4bF%0x^O}48a(q!CxAU{vd{!S`#b=LW0UKRPe#DTOdR+0e`ffJ2QPi+#fslp6|Qo zoO|xM-<@t?0T_c6lVAeF(8cb8srPUKwGa>KC9V3npI49jbQoaea1wupVWxnYup^Vx zZ)&m*Z?g?Bf^~_Fjd6`F(cyEpndV82X*#!@|9Xwp=)6Vz!&zp+_b7ArsIgy-H#H~Y zaoiM7VQTA^E%D}*3Rl^7B7`}6f(V#Q6I+{9 zcre&OK$No$1auVox-#wA?rhIMKXzoXE2BbvFh_(cm(ZST>&jwgDBF(o?aK@mRA>vn zK!hbOp=YqWkk9QJ%%Y*f>%kWZVdb1XCY!|f)kp|Wzi7le4Kr!b1tJX1|NpXe4n9KUFPG6 zPQTDd^b40cU-bShI3B7M1lGY>8?9y?$XO?$@Kb1~1GJH$Lm-{vOTeF@!@d*l3Yv#t zfqcq0HA;py&jk_5gWGdZEl>TQ{}9y5EBq)T-w_}LO>&z*ZCCq!hGnw}!?ansk+MUO zmiPEmcB&{tuYAxywHviGBDWBA?({c|$S3@<8v7SxFVaU<@ibPP@WVUuO@AzHr_qR6 zwgunF4=r#BD^IK5foIlrLamL}p;W2N)n%Ur9NN5WG#EP{M?L9p3F>>u-xO&ySlcaeoMZ<#Cr0_cV%w06ToeGcNaxGJv84#Bs#Z z$Ya*baq#P4D)$APjHeH2Y_U#0=)lw5qIOCbBit%Rbi=jK$g}B2QcLOL_)BTS5<{yP zHb${xj~_Y}ZO-34!e7Pt0Q4z^0O1Gy@QQLiFm;65{(y2JK#o0$Tu2hRjar^>gfEnf z0=VNoG|%0KZQzw&rLtB^+DWZd2VVJ8OlqBV7 z$s&_JNx8tf%IBoUW}DJ2hnC8`ls0WTrD9U#t0ju8+}n!|FIA36mT6l_ED^fzb`&S; z;MdBxq`laBNfu4336H#$w9!tR#_TjqeKl{Y=ytu<*sRYHBD&q;SVV)G+%oCZ9SS{_ zL=;N+Pvv3BF$vF(m3)FP`jIq@t;R4W;F0L3(wO1YRyOvdN{=5 THEN X=1 +109 IF X=N THEN 100 +110 C(X)=30:W(X)=0:C(N)=13:W(N)=1:N=X:GOTO 40 +120 ON A GOTO 125,130,140,200 +125 SYSTEM +130 PRINT " APPUYEZ SUR UNE TOUCHE DES QUE VOUS ETES PRES ..." +131 A$=INKEY$:IF A$="" THEN 131 +135 LPRINT CHR$(27);"!";:GOTO 20 +140 PRINT " APPUYEZ SUR UNE TOUCHE DES QUE VOUS ETES PRES ..." +141 A$=INKEY$:IF A$="" THEN 131 +145 LPRINT CHR$(27);"!":LPRINT CHR$(18);:GOTO 20 +200 CLS:PRINT :PRINT :PRINT :PRINT " D I V E R S O P T I O N S " +210 FOR I=1 TO 13:W(I)=1:C(I)=13:NEXT :W(2)=0:C(2)=30:N=2:X=2 +215 COLOR C(1),W(1):LOCATE 6,10:PRINT "Pour Retour au menu " +220 COLOR C(2),W(2):LOCATE ,10:PRINT "Pour Caractres NORMAUX " +230 COLOR C(3),W(3):LOCATE ,10:PRINT "Pour Caractres SERRES" +240 COLOR C(4),W(4):LOCATE ,10:PRINT "Pour Caractres CONDENSES" +250 COLOR C(5),W(5):LOCATE ,10:PRINT "Pour Caractres PROPORTIONNELS" +260 COLOR C(6),W(6):LOCATE ,10:PRINT "Pour Caractres COURRIERS NORMAUX" +270 COLOR C(7),W(7):LOCATE ,10:PRINT "Pour Caractres COURRIERS SERRES" +280 COLOR C(8),W(8):LOCATE ,10:PRINT "Pour Caractres MICROPOLICE" +290 COLOR C(9),W(9):LOCATE ,10:PRINT "DEBUT ALLONGES " +300 COLOR C(10),W(10):LOCATE ,10:PRINT "FIN ALLONGES " +310 COLOR C(11),W(11):LOCATE ,10:PRINT "DEBUT GRAS " +320 COLOR C(12),W(12):LOCATE ,10:PRINT "FIN GRAS " +330 COLOR C(13),W(13):LOCATE ,10:PRINT "ESSAI << ([{2,3=&$#@*><,| >>" +340 LOCATE 23,22:COLOR 3,1:PRINT "Utilisez :";:COLOR 14,0:PRINT CHR$(24);",";CHR$(25);",ENTER ";:COLOR 3,1:PRINT " pour valider" +350 A$=INKEY$:IF A$=CHR$(13) THEN A=X:GOTO 399 +351 A$=RIGHT$(A$,1) +360 IF A$="H" THEN X=X-1 +365 IF A$="P" THEN X=X+1 +367 IF X<=0 THEN X=13 +369 IF X>=14 THEN X=1 +370 IF X=N THEN 350 +371 C(X)=30:W(X)=0:C(N)=13:W(N)=1:N=X:GOTO 215 +372 RUN +399 ON A GOTO 372,410,420,430,440,450,460,470,480,490,500,510,520 +410 LPRINT CHR$(27);CHR$(19); +415 GOTO 200 +420 LPRINT CHR$(27);CHR$(23); +425 GOTO 200 +430 LPRINT CHR$(27);CHR$(20); +435 GOTO 200 +440 LPRINT CHR$(27);CHR$(17); +445 GOTO 200 +450 LPRINT CHR$(27);CHR$(18); +455 GOTO 200 +460 LPRINT CHR$(27);CHR$(29); +465 GOTO 200 +470 LPRINT CHR$(27);CHR$(77); +475 GOTO 200 +480 LPRINT CHR$(27);CHR$(14); +485 GOTO 200 +490 LPRINT CHR$(27);CHR$(15); +495 GOTO 200 +500 LPRINT CHR$(27);CHR$(31); +505 GOTO 200 +510 LPRINT CHR$(27);CHR$(32); +515 GOTO 200 +520 BEEP:LPRINT " ESSAI << ([{2,3=&$#@*><,| >>"; +525 GOTO 200 + \ No newline at end of file diff --git a/REVOL.BAS b/REVOL.BAS new file mode 100644 index 0000000000000000000000000000000000000000..07471015477fec595ca862553066016ca9b1a3c3 GIT binary patch literal 2113 zcmaJ?QEU`d6umPNq78J?+3vQpY|M3SbY2`}yO3fBh)hd?(xy&!S35(9v1PZgvE8lP zZG#Chq*Y>}Ks1CeR7^AhJ`6E@s3<`{uo4=LA0&zz^`pbi8YIz#=ttN4W@lT9#{HOg z-@WIaciw&Xy{)9=I=BLR$R{D${K5yHk}~nD!k1!sqgKxPWS8tDqq^FxRuBS*FRFw(6a~;CtERaVf1y zgA|q0s7XTcAn7DaG8_w>frZymwcLPay8)(o z)qpPp=iwU4n#A-sF#0lXiEgqtMezVPEHXy9Vd_SU^OJrQX^2K~4(rbY+z4C*!*VRt z4coC{W#eVQDxx)tcpI&Gvm_(8>|4@R*Q7K;yCx~LOD4n{XKVPlhxbvGvG|+ADt55( z+ZuL#mHSr25QuU)cd5pGqVb0se#0^?i_B#Ba^O6*|K{M*Mr<>70n<=nJM!tMyJ5UM)bm+82VyShoj?+MoX_$LTIhy2W8G}!Dr z*ZNKwjs~LwKY4>6y|Hxm+8y{Ms8!*WQ>wI@5es!!twUVZDp9YL0!*)Y$@aa}L3%<> zGTw8prQ6)J^=Yg>1#mamw#2%Iv)1ntKnQIWD1HW@F0@NnIIUlSM?)!rs2eozl0779 zk!J;_X&taF^gItlRxI8?vLY!8`d2U&+AmCEk0axCOu7MhB~BPWrX1suffzf=Si1s=QRU*p|k9+Jo zZivO!wQY#u7K}aF*2cW#?rqQX!D!P*0x81n1AB{{Aw7<}^Z5}}cd$Z!Z+2`fGm^;_ zQBAN+v5>jPkz@n8F&y&Kp7wP|HKPUIZ~EBpiDVRi_wMi*zr+h~;Vdt{>%CQxLsWiE zVEhbk2=HsuCtOI4kjhZ)%^fw0eVl?2Bjdxx?C5ZI?|>(mR|-})U-DMGH6JC|ZCa8n z%JdS_*@^5J-WC0uKDsk>vNvk`b2ae&;QVT)BJ_t7pY{m@;a65R^C;XShC{0S|vNq;BNDE zK|k@`M7FCRlbwmKu0A!U#n@W4HNLT3Ti@Q!^v>QStWs_WMxRqTsZ#&2vf2HcbP;6b zrf>yf%FjZl)4@BST$!dg(+#W3smyQ_wkj_5dcWW6GV~~a3JE8n_A?kz76d!tbhv7V zYmlOH!S`I|eJm zgQ9IXb^={Wn^{aNcf#Z0VbM01Ldz170Gq>y#0#orXtu#09aFPS1}}tPx# literal 0 HcmV?d00001 diff --git a/REVOL3D.BAS b/REVOL3D.BAS new file mode 100644 index 0000000..8f8b922 --- /dev/null +++ b/REVOL3D.BAS @@ -0,0 +1,86 @@ +5 CLS +6 SCREEN 2 +7 WINDOW SCREEN (0,0)-(700,450) +10 KEY OFF +20 PI=4*ATN(1) +60 DIM CIBLE(25) +70 DIM R(40),Y(40),H(36),V(36) +80 LOCATE 1,61:PRINT"ENTREE DES SOMMETS" +90 LOCATE 2,64:PRINT"DU PROFIL DE" +95 LOCATE 3,65:PRINT"GENERATION" +100 LOCATE 6,60:PRINT"dplacements de la" +105 LOCATE 7,60:PRINT"cible avec le pav" +106 LOCATE 8,60:PRINT"numrique :" +107 LOCATE 10,62:PRINT"directions: 4 6" +108 LOCATE 9,75:PRINT"7 8 9" +109 LOCATE 11,75:PRINT"1 2 3" +110 LOCATE 12,62:PRINT"pas: + ou -" +111 LOCATE 15,60:PRINT"valider les points" +112 LOCATE 16,60:PRINT"avec ENTREE" +113 LOCATE 19,60:PRINT"valider le profil" +114 LOCATE 20,60:PRINT"avec ECHAP" +115 LOCATE 23,60:PRINT"40 points au maximum" +210 VIEW SCREEN(1,1)-(470,199),,1 :CLS +260 LINE (260, 0)-(260,450),1,,&HF99F +310 LINE (100,98)-(100 ,102),1 +360 LINE (98 ,100)-(102,100),1 +410 PSET (100,100),0 +460 GET (98,98)-(102,102), CIBLE +510 LINE (100,98)-(100 ,102),0 +560 LINE (98 ,100)-(102,100),0 +610 X=258:Y=200:P=10:S=0 +650 S=S+1 +660 PUT (X ,Y ),CIBLE +710 A$=INKEY$:IF A$="" THEN 710 +760 AX=X :AY=Y +810 IF A$="1" AND X>P AND Y<337-P THEN X=X-P:Y=Y+P +860 IF A$="2" AND Y<337-P THEN Y=Y+P +910 IF A$="3" AND X<259-P AND Y<337-P THEN X=X+P:Y=Y+P +960 IF A$="4" AND X>P THEN X=X-P +1010 IF A$="6" AND X<259-P THEN X=X+P +1060 IF A$="7" AND X>P AND Y>P THEN X=X-P:Y=Y-P +1110 IF A$="8" AND Y>P THEN Y=Y-P +1160 IF A$="9" AND X<259-P AND Y>P THEN X=X+P:Y=Y-P +1210 IF A$="+" THEN P=10 +1260 IF A$="-" THEN P=1 +1300 PUT (AX ,AY ),CIBLE,XOR +1310 IF A$=CHR$(13) THEN LINE (X,Y)-(X+4,Y+4):LINE (X,Y+4)-(X+4,Y):R(S)=258-X:Y(S)=Y+2:GOTO 650 +1320 IF A$=CHR$(27) THEN 1500 +1410 GOTO 660 +1500 VIEW:CLS +1504 LINE (0,0)-(521,341),,B +1505 LINE (260, 0)-(260,340),1,,&HF99F +1506 FOR K=1 TO S-2 +1507 LINE (258-R(K),Y(K))-(258-R(K+1),Y(K+1)) +1508 NEXT +1510 LOCATE 6,62:PRINT"Angle de rotation " +1515 LOCATE 7,62:PRINT"en degrs " +1520 LOCATE 7,72:INPUT AN$ +1530 IF AN$="" THEN RUN ELSE CLS +1535 VIEW SCREEN(1,1)-(480,199) :CLS +1540 AN=VAL(AN$)*PI/180 +1550 C=.65*SIN(AN):AXE=COS(AN) +1560 LOCATE 25,63:PRINT"Tranche n" +1570 FOR W=1 TO S-1 +1580 R=R(W) +1590 LOCATE 25,74:PRINT W +1600 YR=166-(166-Y(W))*AXE +1610 GOSUB 2000 +1620 NEXT +1630 LOCATE 25,65:PRINT"TERMINE" +1640 GOTO 1510 +2000 VIEW SCREEN(1,1)-(480,199) +2005 FOR I=10 TO 360 STEP 10 +2010 LT=I/10 +2020 XA=260+R*SIN(I*PI/180) +2030 XP=260+R*SIN((I+10)*PI/180) +2040 YA=YR -R*COS(I*PI/180)*C +2050 YP=YR -R*COS((I+10)*PI/180) *C +2060 PSET(XA,YA) +2070 LINE(XA,YA)-(XP,YP) +2080 IF W>1 THEN LINE (XP,YP)-(H(LT),V(LT)) +2090 H(LT)=XP:V(LT)=YP +2100 NEXT +2105 VIEW +2110 RETURN + \ No newline at end of file diff --git a/REVOL3D2.BAS b/REVOL3D2.BAS new file mode 100644 index 0000000000000000000000000000000000000000..80ca899cc31f3830291d751487f9f25176d0bc4a GIT binary patch literal 2113 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 yb+PsfUHo>Y52&clR_Bx%AU+bxn2EZ{GV? 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 literal 0 HcmV?d00001 diff --git a/TF2.BAS b/TF2.BAS new file mode 100644 index 0000000000000000000000000000000000000000..8d04f56e8072481a68e2605c39fb59efe47ca78f GIT binary patch literal 32008 zcmeI5e{@_&b;s{p?dr$cjwLxZj!ELRvhtA@2TU4=pC!-kx=3;ive25K5NbGv6Wb7e z95@YxkhSB0ZQvlQG6_kci?Mcz-_ujmDGvB%Q&YhWiXP$m*e`#hnaLj}m3d~So$|w-odA7*DYa6Dl z#PJjq*(R&EUfW|?dz;lvGn8pNY**X!?4Wg9t(~yQ`oK9|!YnI*uG?ioDofgSYbW+> zhhh6Ew7Ld~D?m51wC#7kmTbpaq2Ei(1WAFzY>vGObOo*w;5^{?dhHFI&vW|4T%8Q{ zCod=I>c#euwUYNjG~J-R)^^!nSV>?f4n44n%6by9FW_e<^T_BYV5gS)lX#e22R=`7fblLHPKY$fL;)LUui zf-Z@a9k*X0brG0*INt=$RuGxJkozu>)N_A6lv~Nwz0g(~QPiG{@OBX03>_Mw#BRF? zEI+b~k-#pne#!pW``e-oAbY)bE%CzodgxpQq89p+5}*#+7JC=J*HD|dq9EUF^Xc_# zssH>+MjMfqF{ zj%9WarR;*MF%-+%-O%axX%V~7dYkS0;AtQ>!Ce6iDefbWSpsMK;r(^QsD1Q6_h<3O z60R#1hA49*c)kuj_Q2JnpiS9j_G0Lf1N#ttoBG-=eusFX-lT)ORkZOU)QY+90Zhhz z>vA9+u(4tsPJv+$^3+VZ3HYp5n&C(=DlmHv*w@=HoTk!%F?~u*8}0zt4nK-$mV?~) zle&+$hCr_VvqCClk=Bi0m~`x-?o3_ZhOkhC|v#A>cD= zF%tTaIHev5X{h+_k(&vhtKsTr?GdD<4_Vp(E$X4&|G=xQwATh=BzJX`B{}PZx~))a z$m`JRcn0Wo%r#~&Z|$LFZ1t2y=l9|XBMUEn!M*^lHpT)w;iSfNSz5z-syGE z+g|$va#M-DAYBb58z`|3`WBqe8Lrz&(G4v(c)7Royo={Kj#d!QLN02NgRCR#}hLtMTd>nTEpHj%iCd|pV-yP5YS z(JUG0vmc3@UCvSCx(w+WIg%VftCT!OBQa_47|QjLha@0RE%$p1l8z6d*8ZNc;_%4r zn9eEtFnPDzbD>|%8_IVblCP2by`cUk_nO~IqWZa7?bHZ8iwY3dwHygXuL*LZv4iyRAaUw-*Ks7A8(fSlWayC&gRTUw^r)m> z2`crgwLJMY`mY{I+XeU3o8-xV7WAxg={!|oS3QYW^T8-ePBe5OD+gRIhFtfbDxU>T zn+q7Tw9%R+NmCcpHZ?Qo@z(Xs<%(0!D)(5=oU&3+>%CR>gRR@f+JY)o_E_?1bQzMC z81j+v^0B-$g=wVey6mGadFe55cnYC;QNp*H9@gkzubk?_Pg`CBzDk2`n$i||T3DkA zH1-Z7pwXylbfI3fIF0bkK$)Sy3}p$x}s6o46W#Cl-^>;T4;Xp$1!1 zE4J}lm|fk1E&p}X3gj=CZ@vv%j{N`cw+k4T$SOBo!Uf=ZHS>r2I6ltYy^Yyeo*C;& zYwy`aDxb(2W`_se^7|%c_HSaoA1n)*vkA=0uCfo>RoEzh0_}!aJ)tq@cE;@6v4mvL z`sh>Mj{8Az2y4XEa8^|NQ*aq`#qG??Vz0wg{ybDJY!34V&AF}x-D6w{>8CiSv6x(n z%<~faIaYdd@ni4x+Y|U z^H)#v^Li*D|HC#sGR;t@4MgwaTnEPsTotgu$^#aGfFs!PdUiN?MgZJ2|$jl^xE zmXi@`SlN_dO~eq^x_W5$B4qzA`)^8@ExHH&@@#ZVt5YXN7fSZzp^%+b^%{b=Mb<3* zz`fbM{~Y zpLP1w!E<@FyP@TXCrs@&K^pn2<(G@O>++{P#59f8^h_W=8_8S2`iP5=xIPekg3RP~ zy&s$nw9Gz6%37@zg1oAWiS{@yFOwTMVw3nk@pMWOqaHJki zXUT9r5+sj|P)WkHn#1UYI0hi%^+Xx+$W%*Vw?EQLL05rD)O|^SJbEm!j~jY_-`v;*F#f7 zYC?UvoIr@s9O8t$aaW)twj(cEd6(sCyZghMcqaXkr~Et!)OzG4kbhlmJox{QA%7)O zcG7YN$YIc_ZNw&cJIi|$2@w*Uq9>65KX7Xul#qW(_Ut9dkNR5CPS~{8smQPB*@cuA zxl$0nss@-2Dv>W}NsBwiV+JVNH!}JZ3>T}Vr8a*9BH|M-ntRlZ^@=kEx z$)UAnYTeto?k~5@X83vBku(siP><|}b+)=2K&F>?t#mh@upXTzF79TWC)rv>ncb{1 zmWSfQ)Hy-xXn>27MdMr~Mp(bYAM^n7p*)0Y=b+NS*JS4g`Y zbdOO3{U*v-g;PD=6Fd)m;55O|N|oxjxQyhT|N&oV(#NSFWYBm{g1MO_k(LKgE@(IRMfpZU|n?;9(-WP~V3a=+l zb_4OQs+=O!Nlz;mG(wX`D1j}40%q?mmlh=XI;V`JO5ub*dzckaqR_B&^MpT{te>#L zN>~cW{g8c;az(Ah{`y>SkYuJ5&C?5;Rqk119?WG#CEiM>PM5F`AY0(y@HE0SU1&3d zV}=4V6qupF3>&CzmI=-6bCiCFb3I2Zl=~hjwc}7TplXhP zg!gIgCojlC+K!Jd?d5-(nc(B>PW&F_%IdckyVxEqY{9?&QD`Z@zyk0|Z@<9pak2nq zCJo?1XcOkr?|=^azR6}Rs@HIqbw}+t*Z}IN$DiZ*Z$}=RSzl4)zJYf|y&-BcS>YZs zo(G+N#Le!_&b2dO#c6`VUKMFlWcZsJ+dhmk=G(=DjjBH z5lo`hwm=K*X@FuWs%j#RSmwgpR7XC7{#y?qv%i9Yfvt){K?*(>b% zAj`AII7?}L&OPDY3>UQrdnfVodd{aN@;^y0YfZ-C(Hm^1GLF?CtUhnpc`lsxM})H2K0jMRGC z;l5UIq!{&6CbGt>S$%|Mg*aFAY8%y&^4ph$$(zcRkGxuFc-$X(y zy1&Sa@^L0PtNs~|m_s4SQ}qKH*Z0DYAx3!*Qr{55w-Z$NB4{*fkbYB0k~+!XC%JCs z*+{%U9MjLmw9ZYGsMQz?nEC(QbwEA2Wq3d0NOP#YN}q0rtNIpz<`N~&PY;q&NmGJR z)-Y$ufafaF%F24na_`AQw@bizCch9e@6WO8hxflDLa~ck}l-`-vW2P z32#!*K>vs};}IziGERNa=ZljB=qcG|kX*@c3$5=czt0q8!x+E(JX4ORf2L8H^hWqf z;mc0{!W5^d^Oa4nqJPwCLTQBQ6{Iycfy}_Bbv)B8sMp?2Zy-$)Pd9LAC4GlU^U~=U z^fgSQSDFbk6qupF3n0{sTo3R6DVeX#Zn^nRm?9REF8u81_+M4Lfv(_#(z?z8o%# zm27hIY36uZgYBuE?=#QC5+zI5NT?a(?wXPG<3Gmvf4il%ywVf~slOSNz8H%X(xn3Gz$IDJyYmfj*L&m2h=0UZzb*lkEAo zgF6SeHiI;T6nxx9I}xWlLDm9IYvFJL+QqEwI8JP^M}C96Dic)J9@>R=IqOT)Y7uG) zOK7#Ssjo-Z{o0Gt>HvKiTzL99V#gLx+=gb{3SU#CX(ptxGEV;`f zJH$#J?Z#ZsPBHmgr8$KATt7;1F@Z0%0EHE_(>nP7Q+~gMmR|I$Gy9nfXI=pvehK~R z8GCk7u6&#q?Ie30sDO8r_K8|_dGCvH&2DOX)$_sjw^O=PR@A$Xy zuD`)GN(LIXu@0x5o;S8{&|b9rS+vt0JmHoNS^t3|K^nDy`f~C6*=rtFcj@c)JE@nX z##niAW}%43t%35JIr30Zo?=l<-zJb>R()!b-(HRkPjYZQ_;vd5DC&FWY3_wxb&zkq z1TyV3l`c9&E*b778qRb6wUOJMjN8@g?xYO$XZrs75AmyuzZ%JFG#V2tUDHi*TFueO zSsv^Sw3yeDYAXmuTlo?~&>r3=k8sM-V>~V7-FH&H==B*mto6jppp^Ehx7mltMJqO> zKYF1_6IWG8Wj8u8NL$QVzSht$H+b98>W|luPc>SpL{1t-WJovuuoyk2U7SaqVqwSs z`Utq5x6^W~T)tj`fAI({S)Azwr!-xWUr|bJMAT4^ z7Q1GwC4MR8-UNMO*UIw2ZuH)Fr%#*iLvY zB?A))=Tfh?@nRK6firEvGHF~ zw5#5{Cbf*;g;ms#z_{2ob%wh$3tjL_U)MiIeIrIF!(LzQyT07ZQ=6L0p>HIlI3MOo z%4;#36pGcazVe_w`O?Le3`>wKeUYODx;)DN5eevwm3!eU1uCtIRf3`H40qwn1ShzP zIb`co%ai0yMyT^l2PjL2dNkP;GaP|tDm#2pK{#|Lo+?ei&&8w$jX<=%K1Ob2AA7_x zK7tiR8cF=haD*=;=uX_8%AkI8m#?=jpkKpY|6!ML^PO5JwZ~MV8YxS2{XTS5&`U+4 v=Q{n=4l66?BPEXSoI|d+&?@eMmuiX0@x4CDsS|F?n_ieExysWf`$hi`ark%= literal 0 HcmV?d00001 diff --git a/TFICH.BAS b/TFICH.BAS new file mode 100644 index 0000000000000000000000000000000000000000..773d9f55cfeed0e50f77f7d3ff19a5e4a2837304 GIT binary patch literal 20096 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 GaNpl)`VS=l literal 0 HcmV?d00001 diff --git a/TRACE1.BAS b/TRACE1.BAS new file mode 100644 index 0000000000000000000000000000000000000000..6964d7339597025bfb504c5adc3eadabea25b6a0 GIT binary patch literal 7675 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 literal 0 HcmV?d00001 diff --git a/TRACEY.BAS b/TRACEY.BAS new file mode 100644 index 0000000000000000000000000000000000000000..5f4e9472b1ca48ef4a00466b8e695d199a02ed07 GIT binary patch literal 1920 zcmcgtO>7%Q6n?f4pwfEnU0X_eC{I=dvvex$tp9cwh2q!|HBDm6j*L?wB-gPZ5IHDL zs@@O*5dkGFij*QwL5NGGB2f&^}5GM0v4a1X;ba6NDcu41}<27U-U0q^0^5L1}WGa06w)Zxd# zVfY9G6+iqMI0EluU=1LqXy9DDizj*))@B;#>a)$cshI{=n>BV`KOs^U4h{}JN4d#5 zo}Fq`r)KNBlpeMF3-d}C-bEw9MU2N2JSlk6;PE&&ZEgx~THH+VM2g1+7bZ7iT+k%W zjT9FK7YQD-;kt5+DkP`^QA}>8c+B8tjGIXw6FeT{37f~0JZbWT;4z|DJQ3$fS}w&6 zn;S`ZEci5B+}~nXnJ28LfmHQm)vB}A+S~^uEOV+j!1R4&7!5M1DJC243}JVFQ&N^i zttPyjDM*N&q(RDTl4g-AJ5D17%R&8tDyCt0EMXYFUHsRUcZ*$LiZS((e|n~DK{hb~A)d8Eb4 z6l5$bS1|MzE8&)h!A(Zxvbx@;p~K_q3S{zbCXat&c?3{hg|WQb?M%@r$})K!o>H&C z63naLKGcRi7SKPal+KlM2YEm~!dvPZqzBw+6qeQ7@Kp=F2Z!#zIM-lR{TYS^-0c+> z(&37_4h7RK2)L(iz=sk!G|-BUMzMR{!irmIsZQAqp_3UkU5)O-?T16!)-L|^etdfm zzTd;sF`@mli$ApoKjBVzc)H2@@-Ey6yskas+v%sUAMf?k#Ya563X58xgO6sT2bnU`rtP$Ns&q? zQgM|6{G~lFBO6MAFcnvYN5d~l(uUIKkyJPq9`_Z5%PMVE-_%-+1k_Fy zq=_Ewi}0+EYP$qE14v#hoPpIC}JdS^r-tj13L| literal 0 HcmV?d00001 diff --git a/TRAVERCE.BAS b/TRAVERCE.BAS new file mode 100644 index 0000000..81465ca --- /dev/null +++ b/TRAVERCE.BAS @@ -0,0 +1,28 @@ +10 SCREEN 2:SCREEN 0:CLS:KEY OFF +20 COLOR 13 :FOR I=1 TO 24:PRINT " Y O A N N";:NEXT +30 X1=1:Y1=10:X=1:Y=10:LOCATE 10,1:COLOR 14:PRINT "*" +40 A$=INKEY$:IF A$="" THEN 150 +45 IF X=80 THEN 1100 +50 IF (A$="8" OR A$="~") AND Y >1 THEN Y=Y-1:GOTO 100 +60 IF (A$="2" OR A$="`") AND Y<24 THEN Y=Y+1:GOTO 100 +70 IF A$="6" AND X<80 THEN X=X+1:GOTO 100 +80 IF (A$="4" OR A$="|") AND X>1 THEN X=X-1:GOTO 100 +90 GOTO 110 +100 AA=1 +110 IF SCREEN (Y,X)=35 THEN E=E+1:LOCATE 1,1:PRINT "* = ";E:GOTO 120 +115 IF SCREEN (Y,X)=32 THEN 120 +116 IF AA = 0 THEN 150 +117 IF E => 1 THEN AM=1 :GOTO 120 +118 CLS:PRINT " MISSION EJOUE !!!!!!!!":GOTO 1000 +120 LOCATE Y1,X1:PRINT " ";:LOCATE Y,X:COLOR 14:PRINT "*";:X1=X:Y1=Y +130 IF AM =1 THEN 140 ELSE 150 +140 LOCATE 1,1:E=E-1:PRINT "* = ";E:AM=0 +150 RANDOMIZE Z*X*X1*Y*Y2*X2/Y1*AM-TIMER:Z=INT(RND*45):X2=INT(RND*80):Y2=INT(RND*24):IF X2 =0 OR Y2=0 THEN 150 +160 IF Z MOD 23 <>0 THEN LOCATE Y2,X2:COLOR 3:PRINT "H";:GOTO 40 +170 LOCATE Y2,X2:COLOR 8:PRINT "#";:GOTO 40 +1000 PRINT "VOULEZ - VOUS REJOUER ?? " +1010 A$=INKEY$:IF A$="" THEN 1010 +1011 IF A$="O" OR A$="o" THEN RUN ELSE END +1100 CLS:COLOR 12:PRINT " V O U S A V E Z G A G N E R A U j E U X I M P O S S I B L E " +1101 GOTO 1000 + \ No newline at end of file diff --git a/TUYAU.DAT b/TUYAU.DAT new file mode 100644 index 0000000..151953e --- /dev/null +++ b/TUYAU.DAT @@ -0,0 +1 @@ +A001DR080FB001DR080OC001DR054OC001FC002DR081OR082FC002FR057OC003DR400OC003FC004DR500OC004FB001FR010OB002DR020OC001DR030OC001FR987OR988OC002DR045OC002FC003DR060OC003FB002FR090OA001F \ No newline at end of file diff --git a/TYPEALIM.DAT b/TYPEALIM.DAT new file mode 100644 index 0000000000000000000000000000000000000000..0b625c547ecc887a431425ceec5543bcbf3d7099 GIT binary patch literal 1760 zcmZux(Q>0O4AiIiEzj3J-1N}_1)La*8k=eRIX83veJk4p$ef{&E^BKot-QKmqU3?i zbI=OxZgY6WuHJ_3Ni&5PW%;v16`MIZ4{oX-s2lAx+ad7sWa?b&hIoJsjoJAl05;uX zcIm9JVf-b@eda2%VSR@1*h9b0z30XBZ0Zs>QVlO}Ydm$|dJWsy)4F>x$d;hFYD5yTMAx4k?SyV>ZDMN{6DGxmOB(rlCN!kT1b z+s=l$WWD21tW@>SW9UwzwCmsQCFdchqu=Q?ax?ey;plMe`pZTKQg%>8HFt8J8?$p1Bh9wydiUD{r z96C|0sHMO*dfcpxhEGTvt@3@WnMOkIn=2cMSRtAE4O>mhZ4 zxtKViDbWpT8RwxsCun8^Zsck9+72~FPDW44)+hzT;qV20SdsHuEJ$Ea5>UF*_Fy6I zuMdoOTyJ>m-^UyM*71(3-ufmHiMaUDKX6Mg{ey0U%-9!}_nwg+%^x(c;*fVB=&sc| zuUN}lMiwtsEZ~i=@+ot_X~AGus8tSHU^?EO+74|LTuC>6u{+> ": STOP +7 REM +8 REM +9 REM +10 COLOR 3:PRINT :PRINT +15 PRINT :PRINT " V O U L E Z - V O U S L E S E X P L I C A T I O N S O / N " +16 A$=INKEY$:IF A$="" THEN 16 ELSE IF A$= "o" OR A$="O" THEN 20 ELSE 30 +20 COLOR 9:CLS:PRINT :PRINT :PRINT " U N V O Y A G E D E L ' I N C O N U E " +21 COLOR 2:PRINT :PRINT " Ceci est un jeu qui se passe dans une ville I N C A ,nous sommes en 2548 vous possdez d'une corde ,d'un cadrant solair ,d'une lampe de poche ,un peu d'argent : 2000 Frs " +22 COLOR 3:PRINT :PRINT " Tout au long de cette aventure vous pourez trouver des objets, de l'argent , des parchemins , des indices etc... " +23 COLOR 4:PRINT:PRINT " L'ecrant sera diviser en deux partie : partie TEXTE ,partie GRAPHISME. Pour vous deplacer ,vous utiliserez les chiffres,pour realiser des actions vous utiliserez les lettre qui seront indiques (ex A pour prendr" +24 PRINT "clef ect.)":PRINT +25 COLOR 20:PRINT " Pour sortir du jeux : ";:COLOR 5:PRINT " 0 ":PRINT +26 PRINT " App Sur une touche pour commencer Bonne Chance " +27 A$=INKEY$:IF A$="" THEN 27 ELSE IF A$="0" OR A$="" THEN SYSTEM +30 SCREEN 6:CLS:COLOR 2 +31 PRINT :PRINT " Ce matin - la vous tes Paris ,vous avez dj pris votre petit djeuner ... Quand soudain sous votre porte une lettre si glissa . " +32 PRINT :PRINT " -A- pour ouvrir la porte et regarder qui a gliss cette lettre " +33 PRINT " -B- pour ouvrir la lettre et la lire " +34 PALETTE 1,6:PALETTE 2,3 +35 LINE (1,100)-(639,199),1,B:LINE (2,101)-(229,139),2,BF:LINE (411,101)-(638,139),2,BF +36 LINE (229,101)-(411,159),1,BF:LINE (2,159)-(639,199),2,BF:LINE (250,159)-(240,179):LINE -(320,179):LINE -(330,159):LINE -(250,159):PAINT (301,161),3:LINE (250,159)-(320,179),0:LINE (330,159)-(240,179),0 +37 GOSUB 9000 +38 IF A$="A" THEN 39 ELSE IF A$="B" THEN 40 ELSE GOTO 37 +39 CLS:LOCATE 11,1:PRINT " Vous ouvrez la porte d'un geste rapide et sec , mais Helas ... Vous regarder les portes de l'ascenseur qui se ferment d'un air dsespr .. Vous ouvrez l'enveloppe et ..... ":PLAY "P1P1P1P1":GOTO 40 +40 COLOR 1,15:PALETTE 1,0:PALETTE 3,13 +41 CLS:PRINT :PRINT " B O N J O U R .... " :PRINT +42 PRINT " Je vous derange peut tre ,M A I S ce que j'ai a vous dire est plus I M P O R T A N T que le reste : effet je vous engage a rechercher TILKA une statuette d'une grande importance car en effet celle - ci pourrait " +43 PRINT " sauver la vie hummaine du monde en entier ":PRINT :PRINT " A T T E N T I O N cette mission est tres dangereuse car la ville inca possde de nombreux pieges : il faudra trouvez 7 clefs qui serons cacher dans la ville ":PRINT +44 PRINT " Dans cette lettre vous trouverez un billet d'avion pour 9h00 ORLY dpchez-vous !!! ":PRINT +45 PRINT " AH ,j'oubliait nous n'avons pas pu se procurer un plan ,et vous disposer de 2000 frs":PRINT :PRINT " C O N S E I L S" +46 PRINT :PRINT " I pour inventre " +47 PRINT " S pour somme d'argent possede " +48 S=2000:PRINT :PRINT "APP sur une Touche ... ":GOSUB 9000 +50 COLOR ,0:PALETTE 1,6:PALETTE 2,5:PALETTE 3,14 +51 CLS :PRINT +52 PRINT " Comme la lettre vous la conseill vous vous dpechez pour sauter dans l'avion 9h00 pour Tilka . ":PLAY "p4":PRINT +53 PRINT " Vous tes maintenant dans le taxi , votre coeur bat de plus en plus fort car cela faisait longtemps que vous n'avier pas fais de mission de ce genre ":PLAY "p4":PRINT +54 PRINT " Voila vous tes Orly ,vous courez le plus possible parce qu il est 8h40 ":PLAY "p4":PRINT :PRINT " Enfin dans l'avion quel soulagement Vous ne l'avez pas ratter ... " +55 PRINT:PRINT :PLAY "p2":PRINT " 10 h sont passes ,vous tes Tilka ,vous descendez de l'avion puis puis vous apercevez une voiture qui vous attend . Personne au alentour !?. Le pillote de l'avion dit << Cette voiture je l'ai amm" +56 PRINT " ici car dans ce coin il y a personne 200 KM la ronde ...>> ,puis il parti ":PRINT " vous pntrez dans la voiture ... une lettre blanche attir vos yeux , vous la prenez puis vous la lisez ...." +57 COLOR 3:PRINT :PRINT " app sur une touche ....":GOSUB 9000 +58 CLS:COLOR 1,15:PALETTE 1,0:PRINT :PRINT " B O N S O I R ! ! ! ":PRINT +59 PRINT " M E R C I d'avoir accept cette mission . Cette voiture contient de la nouriture pour un moi,4 bidons d'essence,5 bouteilles de gaz pour rechaud, des ustensiles pour la cuisine ,une radio qui se connect sur satelite,sa frequence" +60 PRINT " est de 50 Mhz .Dans le coffre arrire il a y une tente et deux duvets ":PRINT :PRINT " signer l ' X +61 LINE (1,90)-(640,200),1,BF +62 PLAY "p1p1p1p1p1p1p1p1":COLOR 2,0:LOCATE 12:PRINT " Vous repliez la lettre et vous commencez vous instaler prs d'un abre Puis aprs avoir lu le compliqu mode d'emplois vous instalez la radio ":PLAY "p2" +63 PRINT " Apres avoir cuisin un bon petit plat ,vous le mangez car vous avez enormment faim .En suite vous vous couchez tranquillemant ....":PLAY "p1p2":PRINT " app sur une touche pour vous reveillez !!!! ":GOSUB 9000 +64 CLS:PALETTE 1,6:PALETTE 2,14:PALETTE 3,2 +65 PRINT :PRINT " Le landemain matin vous vous reveiller trs tt car vous savez que vous avez du pain la planche,vous djeunez trs vite et vous contempler le paysage pour savoir par o vous allez commencer : " +66 PRINT "choisissez le numero correspondant a ce que vous voulez voir : " +67 LINE (1,50)-(639,199),1,B +68 LINE (1,100)-(200,100),1:LINE -(300,150),1:LINE -(639,150),1:PAINT (320,175),3,1 +69 PUT (50,70),T1:PUT (400,130),T2:PUT (520,120),T3:PUT (400,170),T4 +70 LOCATE 14,7:PRINT "1":LOCATE 20,52:PRINT "2":LOCATE 20,66:PRINT "3":LOCATE 24,52:PRINT "4";:LOCATE 5 +71 GOSUB 9000 +72 IF A$="1" OR A$="&" THEN 80 +73 'IF A$="2" OR A$="" OR A$="`" THEN '"???" +74 'IF A$="3" THEN '"???" +75 'IF A$="'" OR A$="|" OR A$="4" THEN '"???" +76 GOTO 71 +80 CLS::PALETTE 3,6:PALETTE 1,13:COLOR 1:PRINT :PRINT +81 PRINT " Apres un bon bout de marche vous arrivez avotre but.Vous contemplez le temple avec stuppeur .Il est gigantesque ... Vous avez face a vous un grand escalier sur les deux cots il y a rien : Qu'allez-vous faire ?" +82 PRINT " ( 1 pour monter les esc. 2 pour rebrousser le chemin ) " +83 LINE (1,50)-(639,199),1,B:LINE (120,150)-(540,199),3,BF:LINE (170,100)-(470,150),2,BF:LINE (220,50)-(420,100),1,BF:LINE (270,70)-(370,100),0,BF:LINE (270,100)-(170,199),1:LINE -(470,199),1:LINE -(370,100),1:LINE -(270,100),1:PAINT (275,120),1 +84 GOSUB 9000 +85 IF A$="1" OR A$="&" THEN 90 +86 IF A$="2" OR A$="" OR A$="`" THEN 88 +87 GOTO 84 +88 CLS:PALETTE 1,6:PALETTE 2,14:PALETTE 3,2 +89 PRINT " Reflexion faite ce lieu vous parrait banal alors vous partez vers le camp ":GOTO 66 +90 CLS:PALETTE 1,8:PALETTE 3,4:COLOR 3 +91 PRINT " Vous tes dans une piece sombre . 1 pour analyser les murs 2 pour retourner au camp";:IF C(4)=0 THEN PRINT "3 pour prendre la clef " +92 LINE (1,50)-(639,199),1,B:LINE (70,80)-(560,169),1,BF:LINE (1,50)-(70,80),1:LINE (639,199)-(560,169),1:LINE (70,169)-(1,199),1:LINE (560,80)-(639,50),1:PAINT (25,70),1:PAINT (600,80),1:LINE (290,110)-(330,169),0,B,15:LINE (70,80)-(560,169),0,B +93 GOSUB 9000 +94 IF A$="2" OR A$="`" OR A$="" THEN 88 +95 IF A$="&" OR A$="1" THEN 98 +96 'IF A$="3" AND C(4)=0 THEN '"???" +98 CLS:PRINT " VOUS analysez les murs minussiosement quand soudin vous declanchez un systeme qui ouvre une porte. 1 pour y entrer 2 pour la refermer " +99 LINE (215,20)-(435,199),1,B:LINE (290,80)-(360,139),1,B:LINE (215,20)-(290,80),1:LINE(435,199)-(360,139),1:LINE (215,199)-(290,139),1:LINE (435,20)-(360,80),1:LINE (1,20)-(215,199),1,BF:LINE (435,20)-(639,199),1,BF +100 GOSUB 9000 +101 IF A$= "&" OR A$= "1" THEN goto 105 +102 IF A$= "`" OR A$= "" OR A$="2" THEN goto 98 +103 GOTO 100 +104 ' *** *** +105 ' +9000 REM |||||||||||||||||||| I T E R S E C T I O N |||||||||||||||||||||||||||| +9001 A$=INKEY$ ':IF A$="" THEN 9001 ELSE IF A$="0" OR A$="" THEN 'SAVE "voyage":SYSTEM +9002 'IF A$="i" OR A$="I" THEN +9003 IF A$="s" OR A$="S" THEN PRINT " Somme d'argent = ";S:PLAY "p2":PRINT "votre choix ":GOTO 9001 +9090 RETURN +60000 CLS:LOCATE 10 +60010 LINE (1,15)-(1,20),1:LINE -(20,20),1:LINE -(20,14),1:LINE (2,12)-(2,15),1:LINE (3,12)-(3,5),1:LINE (4,5)-(4,2),1:LINE -(9,2),1:LINE -(9,5),1:LINE (10,5)-(10,8),1:LINE -(12,8),1:LINE (6,10)-(14,10),1:LINE (14,9)-(17,9),1:LINE (19,10)-(19,14),1 +60011 LINE (5,11)-(5,15),1:LINE -(14,15),1:LINE -(14,10),1:PSET (6,2),1:PSET(7,2),1:PSET (17,8),1:PSET(11,9),1:PSET (18,10),1:PSET (9,11),1:PSET (10,11),1:PSET(13,11),1:PSET (20,11),1:PSET (4,11),1:PSET (2,13),1:PSET (6,13),1:PSET (13,13),1:PSET(9,14) +60020 PAINT (7,7),1:PAINT (13,17),1:PAINT (9,13),0 +60030 GET (1,1)-(20,20),T2 +60040 CLS:LOCATE 10:LINE (24,5)-(27,13),3,BF:LINE (7,9)-(10,12),3,BF:LINE(6,12)-(11,19),2,BF:LINE (3,19)-(14,24),2,BF:LINE (1,24)-(16,30),1,BF:LINE (22,13)-(29,24),2,BF :LINE (19,24)-(30,30),1,BF +60050 GET (1,1)-(30,30),T3 +60060 CLS:LOCATE 10:LINE (7,9)-(10,12),2,BF:LINE(6,12)-(11,19),2,BF:LINE (3,19)-(14,24),2,BF:LINE (1,24)-(16,30),2,BF:LINE (16,25)-(30,30),2:LINE -(16,30),2:PAINT (20,28),1,2 +60070 GET (1,1)-(30,30),T1 +60074 CLS:LOCATE 10:LINE (3,19)-(14,24),2,BF:LINE (1,24)-(16,30),2,BF +60075 GET (1,19)-(16,30),T4 +60080 RETURN diff --git a/Y.BAS b/Y.BAS new file mode 100644 index 0000000..920c9a0 --- /dev/null +++ b/Y.BAS @@ -0,0 +1,4 @@ +screen 1 +paint (160,100),"@"+chr$(16)+chr$(68)+chr$(17) +end + \ No newline at end of file diff --git "a/\302\261MEG\302\261\302\261\302\261" "b/\302\261MEG\302\261\302\261\302\261" new file mode 100644 index 0000000..84cf842 --- /dev/null +++ "b/\302\261MEG\302\261\302\261\302\261" @@ -0,0 +1 @@ + 1 ZORK SYSTEM & LOGIQUE Vous flicite d'avoir choisie samessagerie faites en part aux AUTRES Merci beaucoup BONJOUR 4 BONJOUR 4 BONJOUR Tout va bien et meme tres bien SALUT LES P'TIT NUL COMMENT a roule les cours ! Haha pas trible ce que je vois !!! Bye ZORK SYSTEME & LOGIQUE \ No newline at end of file