10 KEY DEF 0,1,13,13,13:KEY DEF 1,1,13,13,13:KEY DEF 2,1,13,13,13:KEY DEF 8,1,13,13,13:KEY DEF 66,1,13,13,13:KEY DEF 68,1,13,13,13:ON BREAK GOSUB 5600
20 DIM V$(50,3),MOIS$(12),M1(50),M2(50),M3(50),M4(50),M5(50),M6(50),RESULTAT(50),RENDEMENT(50),PLUSVALUE(50),ECART(50),REVENU(50),VENTE(50),COUPON(50),ACHAT(50),DROITA(50),DROITV(50),REF(50),PH(50),PB(50)
30 GOTO 80
40 MODE 2:INK 0,15:INK 1,0:BORDER 1:LOCATE 27,3:PRINT "*  MENU D'INTRODUCTION  *"
60 LOCATE 10,7:PRINT" TOUTES LES REFERENCES SERONT DONNEES AU : 1er JANVIER ";ANNEE$
70 LOCATE 25,10:PRINT"(sauf autre date sauvegardee)":GOTO 170
80 MODE 2:INK 0,15:INK 1,0:BORDER 1:LOCATE 29,2: PRINT "**  LA CORBEILLE  **":LOCATE 24,4:PRINT CHR$(164);" POWER SOFT & Andre BORG 1985"
90 LOCATE 22,8:PRINT "   **  MENU D'INITIALISATION  **"
100 LOCATE 15,12:PRINT"(A)  POUR PRECISER L'ANNEE CONCERNEE."
110 LOCATE 15,14:PRINT"(M)  POUR ALLER DIRECTEMENT AU MENU D'INTRODUCTION."
120 LOCATE 15,20:PRINT "VOTRE CHOIX "
130 A$=INKEY$: a$=UPPER$(a$):IF A$="" THEN 120
140 IF A$="A" THEN 220
150 IF A$="M" THEN 40
160 IF A$="" OR A$<>"A" OR A$<>"M" THEN PRINT CHR$(7):GOTO 120
170 LOCATE 10,14:PRINT" 1 - POUR CHARGER LES DONNEES A PARTIR D'UNE DISQUETTE":LOCATE 10,16:PRINT" 2 - POUR CREER OU METTRE A JOUR LE FICHIER"
180 LOCATE 15,20:PRINT "VOTRE CHOIX "
190 A$=INKEY$:IF A$="" THEN 180
200 IF VAL(A$)<1 OR VAL(A$)>2 THEN PRINT CHR$(7):LOCATE 28,20:PRINT STRING$(7," "):GOTO 180
210 ON VAL(A$)  GOTO 240,340
220 CLS:LOCATE 26,10:PRINT "INDIQUEZ L'ANNEE DURANT LAQUELLE VOUS ALLEZ ASSURER LA GESTION DU PORTEFEUILLE"
230 GOSUB 5650:GOTO 40
240 CLS
250 LOCATE 28,6:PRINT "* CHARGEMENT DES DONNEES *":LOCATE 16,12:PRINT " METTEZ LA DISQUETTE DE DONNEES DANS LE LECTEUR ":LOCATE 17,14:PRINT "APPUYEZ SUR UNE TOUCHE QUELCONQUE POUR CONTINUER"
260 A$= INKEY$:IF A$="" THEN 250
270 MODE 2:INK O,15:INK 1,0:BORDER 1:LOCATE 10,10:PRINT "CHARGEMENT EN COURS.. PATIENTEZ..."
280 OPENIN "DBOURSE"
290 FOR N=1 TO 50:INPUT #9, V$(N,1):NEXT:FOR N=1 TO 50:INPUT #9, V$(N,2):NEXT:FOR N=1 TO 50:INPUT #9, V$(N,3):NEXT
300 FOR N=1 TO 50:INPUT #9,M1(N):NEXT:FOR N=1 TO 50:INPUT #9,M2(N):NEXT:FOR N=1 TO 50:INPUT #9,M3(N):NEXT:FOR N=1 TO 50:INPUT #9,M4(N):NEXT:FOR N=1 TO 50:INPUT #9,M5(N):NEXT:FOR N=1 TO 50:INPUT #9,M6(N):NEXT
310 FOR N=1 TO 50:INPUT #9,COUPON(N):NEXT:FOR N=1 TO 50:INPUT #9,DROITA(N):NEXT:FOR N=1 TO 50:INPUT #9,DROITV(N):NEXT:FOR N=1 TO 50:INPUT #9,REF(N):NEXT:FOR N=1 TO 50:INPUT #9,PH(N):NEXT:FOR N=1 TO 50:INPUT #9,PB(N):NEXT
320 INPUT #9,PVT,COUPON,ACHAT,VENTE,VP,PRP,DRTA,DRTV,ANNEE$
330 CLOSEIN
340 MODE 2:INK 0,15:INK 1,0:BORDER 1:LOCATE 4,9:IF VAL(ANNEE$)<1985 OR VAL(ANNEE$)>2000 THEN PRINT "Vous n'avez pas indique pour quelle annee vous allez assurer cette gestion":LOCATE 10,11:PRINT"INDIQUEZ L'ANNEE DE REFERENCE ":GOSUB 5650
350 MODE 2:INK 0,15:INK 1,0:BORDER 1:LOCATE 25,8:PRINT "L'ANNEE DE REFERENCE EST : ";ANNEE$
360 LOCATE 10,10:PRINT "INDIQUEZ LE JOUR ET LE MOIS QUI SERONT DONNES A TOUTES":LOCATE 10,11:PRINT "LES OPERATIONS  QUI VONT SUIVRE"
370 WINDOW #6,10,80,14,14:LOCATE #6, 15,14:INPUT #6,"JOUR (JJ) : ",J$:IF LEN(J$)<>2 OR J$="" OR VAL(J$)>31 THEN PRINT CHR$(7):CLS#6:GOTO 370
380 WINDOW #7,10,80,15,15:LOCATE #7,15,15:INPUT #7,"MOIS (MM) : ",M$:IF LEN(M$)<>2 OR M$="" OR VAL(M$)>12 THEN PRINT CHR$(7):CLS#7:GOTO 380
390 MODE 2:INK 0,15:INK 1,0:BORDER 1
400 LOCATE 25,2:PRINT "* MENU  PRINCIPAL *":LOCATE 15,4:PRINT "1  - MISE A JOUR DU FICHIER VALEURS":LOCATE 15,6:PRINT "2  - EDITION DE L'ANALYSE DU PORTEFEUILLE"
410 LOCATE 15,8:PRINT "3  - ENREGISTREMENT DES MOUVEMENTS":LOCATE 15,10:PRINT "4  - EDITION DES FICHES DE SITUATION DES TITRES":LOCATE 15,12:PRINT "5  - EDITION DU  BILAN GLOBAL"
420 LOCATE 15,14:PRINT "6  - REMISE A ZERO DES MOUVEMENTS ":LOCATE 15,16:PRINT "7  - SAUVEGARDE DU FICHIER":LOCATE 15,18:PRINT "8  - RECHERCHE D'UNE INFORMATION OU LISTE DES CODES"
430 LOCATE 15,20:PRINT "9  - CHANGER LA DATE D'EDITION  "
440 LOCATE 20,23:PRINT "VOTRE CHOIX  "
450 A$=INKEY$:IF A$="" THEN 440
460 IF VAL(A$)<1 OR VAL(A$)>9 THEN  PRINT  CHR$(7):LOCATE 33,24:PRINT STRING$(7," "):GOTO 440
470 IF VAL(A$)=8 THEN 4470
480 IF VAL(A$)=9 THEN 350
490 ON VAL(A$) GOTO 510,740,1170,2140,2340,3520,2190
500 GOTO 400
510 ZONE 13:X=0:MODE 2:INK 0,15:INK 1,0:BORDER 15:LOCATE 15,1:PRINT "MISE A JOUR DU FICHIER VALEURS AU : ";:GOSUB 5710
520 LOCATE 2,3:INPUT "Numero de la FICHE a mettre a jour (0 ou RETURN Pour Retourner au MENU): ",N:IF N>50 THEN PRINT CHR$(7):GOTO 520
525 IF N=0 THEN 390
530 LOCATE 2,4:PRINT STRING$(75,CHR$(208)):LOCATE 2,15:PRINT STRING$(75,CHR$(210))
540 FOR I=4 TO 15 :LOCATE 1,I:PRINT CHR$(209):LOCATE 77,I:PRINT CHR$(211):NEXT I
560 LOCATE 2,5:PRINT , "NUMERO   : ";N:LOCATE 2,7:PRINT ,"VALEUR   :  ";UPPER$(V$(N,1)):LOCATE 2,9:PRINT ,USING "COURS    : ####.## FRANCS ";M2(N)
570 LOCATE 2,11:PRINT, "DATE DU DERNIER MOUVEMENT : "; UPPER$(V$(N,2)):LOCATE 2,13:PRINT,USING "COURS DE REFERENCE        : ####.## FRANCS ";REF(N):LOCATE 14,14:PRINT"(Pour l'Annee ";ANNEE$;")"
580 LOCATE 8,17:PRINT"APPUYEZ SUR : "; "   1 - Pour indiquer le Nom de la Valeur":LOCATE 25,18: PRINT  "2 - Pour mettre a jour le Cours":LOCATE 25,19:PRINT "3 - Pour passer a une autre Fiche"
590 LOCATE 25,20:PRINT "4 - Pour retourner au Menu Principal":LOCATE 25,21:PRINT  "5 - Pour conserver la Fiche Libre (voir Notice)":LOCATE 25,22:PRINT  "6 - Pour indiquer le cours de Reference"
600 LOCATE 35,24:PRINT "VOTRE CHOIX  "
610 A$=INKEY$:IF A$="" THEN 600
620 IF VAL(A$) <1 OR VAL(A$)>6 THEN PRINT CHR$(7):GOTO 600
630 ON VAL (A$) GOTO 650,680,510,390,640,710
640 V$(N,1)="**** FICHE  LIBRE ****":GOTO 510
650 LOCATE 22,7:PRINT STRING$(50," ")
660 LOCATE 14,7:INPUT "VALEUR   :  ",V$(N,1):NOM$=V$(N,1):IF LEN(NOM$)>22 THEN 650
670 GOTO 600
680 LOCATE 22,9:PRINT STRING$(20," ")
690 LOCATE 14,9:INPUT"COURS    : ",M2(N)
695 IF M2(N)>9999 THEN PRINT CHR$(7):GOTO 680
700 GOTO 600
710 LOCATE 40,13:PRINT STRING$(20," "):LOCATE 14,13:INPUT  "COURS DE REFERENCE        : ",REF(N)
715 IF REF(N)>9999 THEN PRINT CHR$(7):GOTO 710
720 GOTO 600
730 CLS:GOTO 520
740 ZONE 25:MODE 2:INK 0,15:INK 1,0:BORDER 1: LOCATE 25,4:PRINT "EDITION DE L'ANALYSE DU PORTEFEUILLE"
750 GOSUB 3910
760 A$=INKEY$:IF A$="" THEN 760
770 IF VAL(A$)<1 OR VAL (A$)>3 THEN PRINT CHR$(7):GOTO 760
780 ON VAL(A$) GOTO 790,800,390
790 CLS:GOSUB 3670:GOTO 890
800 MODE 2:INK 0,15:INK 1,0:BORDER 15:W=2
810 WINDOW #1,1,80,1,4
820 WINDOW #2,1,80,5,23
830 WINDOW #3,1,80,24,25
840 PRINT #1," ANALYSE DU PORTEFEUILLE  ";ANNEE$;"  (1ere Partie)  AU : ";:X=1:GOSUB 5710:PRINT #1,STRING$ (79,45)
850 PRINT #1, "!CODE";"!      TITRE             ";"  ! COURS  !";" NBRE!";" EVALUATION";"! P.R.TOTAL!";" VAR. %!"
860 PRINT #1,STRING$ (79,45)
870 PRINT #3," Si (N. SIGN) ou un P.R.TOTAL negatif voir Notice pour explications"
880 IF W=2 THEN 900
890 GOSUB 3720
900 FOR N=1 TO 50
910 IF V$(N,1)="" THEN 1120
920 IF W=2 THEN GOTO 930 ELSE 940
930 IF N=11 OR N=21 OR N=31 OR N=41 THEN GOSUB 3820
940 PRINT #(W), "!"; USING " ##";N,
950 ZONE 32
960 PRINT #(W), " ! ";UPPER$(V$(N,1)),
970 ZONE 10
980 PRINT #(W), "!";USING "####.##" ;M2(N);
990 ZONE 8
1000 PRINT #(W), " !";USING " ###";M1(N);
1010 M6(N)=M2(N)*M1(N)
1020 PRINT #(W)," !"; USING " ######.## ";M6(N);
1030 PRINT #(W),"!";
1040 PRINT #(W),USING "######.## ";M3(N);
1050 IF M3(N)=0 OR M2(N)=0 THEN RESULTAT(N)=0:GOTO 1080
1060 IF M3(N)<0 THEN 1090
1070 ECART(N)=M6(N)-M3(N):RESULTAT(N)=ECART(N)/M3(N)*100
1075 IF ABS(RESULTAT(N))>=1000 THEN 1090
1080 PRINT #(W),"!";USING " ###.##";RESULTAT(N);:GOTO 1100
1090 PRINT #(W),"!";" N.SIGN";
1100 PRINT #(W),"!"
1110 NEXT N
1120 PRINT #(W),STRING$ (79,45)
1130 IF W=8 THEN 3980
1140 PRINT#3, "FIN DE LA PREMIERE PARTIE.APPUYEZ SUR UNE TOUCHE POUR LA 2eme PARTIE"
1150 A$=INKEY$:IF A$="" THEN 1150
1160 CLS #1:CLS #2:CLS #3:GOTO 3930
1170 MODE 2:INK 0,15:INK 1,0:BORDER 1:LOCATE 25,4:PRINT "ENREGISTREMENT DES MOUVEMENTS"
1180 GOSUB 3870
1190 A$=INKEY$:IF A$="" THEN 1190
1200 IF VAL(A$)<1 OR VAL (A$)>3 THEN PRINT CHR$(7):GOTO 1190
1210 ON VAL(A$) GOTO 1220,1240,390
1220 W=8:GOSUB 3670:GOTO 1250
1230 GOTO 1250
1240 MODE 2:INK 0,15:INK 1,0:BORDER 15:W=0:GOTO 1260
1250 MODE 2:INK 0,15:INK 1,0:BORDER 15:IF W=8 THEN PRINT#8,CHR$(27) "p" CHR$(1)
1260 CLS:LOCATE 10,1:PRINT #(W)," MOUVEMENTS AU : ";:X=W:GOSUB 5710
1270 IF W=8 THEN CLS:IF W=8 THEN PRINT #(0)," MOUVEMENTS AU : ";:X=0:GOSUB 5710
1280 LOCATE 6,25:PRINT "Operation Type  1 (ACHAT) - 2 (VENTE) - 3 (COUPON) - 4 (DROIT) "
1290 IF W=8 THEN PRINT#8,CHR$(27) "p" CHR$(0)
1300 IF W=8 THEN LOCATE 1,2:PRINT #0, STRING$(50,"=")
1310 LOCATE 1,2:PRINT #(W), STRING$(50,"=")
1320 LOCATE 1,3:INPUT "CODE VALEUR (0 ou RETURN Pour RETOURNER AU MENU): ",N:IF N>50 THEN PRINT CHR$(7):GOTO 1320
1330 IF N=0 THEN 390
1340 IF W=8 THEN PRINT#8,CHR$(27) "p" CHR$(1)
1350 LOCATE 10,5:PRINT #(0),UPPER$(V$(N,1))
1360 IF W=8 THEN LOCATE 1,10:PRINT #8,USING"CODE : ##       ";N;
1370 IF W=8 THEN PRINT #8,UPPER$(V$(N,1))
1380 IF W=8 THEN PRINT#8,CHR$(27) "p" CHR$(0)
1390 PRINT #(0):PRINT #(W),"POSITION INITIALE   LE         : ";UPPER$(V$(N,2))
1400 PRINT #(W),STRING$ (50,45)
1410 PRINT #(W),USING "NOMBRE DE TITRES               :    ###";M1(N)
1420 IF M1(N)=0 THEN M3(N)=0
1430 PRINT #(W),"PRIX DE REVIENT TOTAL          :  ";USING"#####.## Francs";M3(N)
1440 IF M3(N)=0 THEN M5(N)=0
1450 IF M3(N)=0 THEN 1470
1460 M5(N)=M3(N)/M1(N)
1470 PRINT #(W),"PRIX DE REVIENT UNITAIRE       :  ";USING"#####.## Francs";M5(N)
1480 LOCATE 1,12:INPUT "OPERATION TYPE     : ",C
1490 IF C<1 OR C>4 THEN PRINT CHR$(7):LOCATE 21,12:PRINT STRING$(30," "):GOTO 1480
1500 LOCATE 1,12:PRINT STRING$(54," ")
1510 LOCATE 1,12:INPUT  "DATE     : ",V$(N,3):IF V$(N,3)="" THEN V$(N,3)=J$+"/"+M$+"/"+ANNEE$
1520 LOCATE 1,12:IF W=8 THEN PRINT #0,"DATE             : ",V$(N,3)
1530 IF W=8 THEN PRINT#8,CHR$(27) "p" CHR$(1)
1540 LOCATE 1,12:IF C=1 THEN PRINT #(W), "ACHAT " ; "LE     : ";UPPER$(V$(N,3))
1550 LOCATE 1,12:IF C=2 THEN PRINT #(W), "VENTE " ; "LE     : ";UPPER$(V$(N,3))
1560 LOCATE 1,12:IF C=3 THEN PRINT #(W), "COUPON " ; "LE     : ";UPPER$(V$(N,3))
1570 LOCATE 1,12:IF C=4 THEN PRINT #(W), "DROIT " ; "LE     : ";UPPER$(V$(N,3))
1580 LOCATE 1,13:IF C=4 THEN INPUT "NOMBRE       : ",NBRE
1590 IF C<>4 THEN LOCATE 1,13:INPUT "NOMBRE           : ",NOMBRE
1600 IF C<>4 THEN LOCATE 1,13:PRINT #(0), "NOMBRE           : ";NOMBRE
1610 IF W=8 AND C<>4 THEN LOCATE 1,13:PRINT #8,USING "NOMBRE        : ### ";NOMBRE
1620 IF W=8 AND C=4 THEN LOCATE 1,13:PRINT #8,USING "NOMBRE       : ### ";NBRE
1630 IF W=8 THEN PRINT#8,CHR$(27) "p" CHR$(0)
1640 IF C=4 THEN GOSUB 5020:GOTO 1770
1650 IF C<>2 THEN  1700
1660 IF C=2 AND NOMBRE<=M1(N) THEN 1700
1670 IF C=2 AND NOMBRE>M1(N) THEN GOSUB 2310
1680 GOTO 1260
1690 GOTO 1770
1700 LOCATE 1,14:INPUT "VALEUR UNITAIRE                : ",COURS
1710 LOCATE 1,14:PRINT #(W), USING "VALEUR UNITAIRE                : ######.## Francs ";COURS
1720 LOCATE 1,15:INPUT  "TOTAL DES FRAIS                :  ",FRAIS
1730 LOCATE 1,15:PRINT #(W),USING "TOTAL DES FRAIS                : ######.## Francs ";FRAIS
1740 IF C=2 THEN MONTANT=(NOMBRE*COURS)-FRAIS:GOTO 1760
1750 MONTANT=(NOMBRE*COURS)+FRAIS
1760 PRINT #(W),USING "MONTANT TOTAL                  : ######.## Francs ";MONTANT
1770 LOCATE 7,17:PRINT "ENTREES CORRECTES (O/N) "
1780 R$=INKEY$:r$=UPPER$(r$):IF R$="" THEN 1770
1790 IF R$="N" THEN 1240
1795 IF R$="O" THEN 1810
1800 IF R$<>"N" OR R$<>"O" THEN PRINT CHR$(7):GOTO 1770
1810 V$(N,2)=V$(N,3)
1820 LOCATE 1,17:PRINT STRING$(50," "):ON C GOTO 1840,1870,1930,1830
1830 M3(N)=M3(N)+TOTAL:M5(N)=M3(N)/M1(N):GOTO 1940
1840 M1(N)=M1(N)+NOMBRE:M3(N)=M3(N)+MONTANT:IF M1(N)=0 THEN M5(N)=0:IF M1(N)=0 THEN ACHAT(N)=0:GOTO 1860
1850 M5(N)=M3(N)/M1(N)
1860 ACHAT(N)=MONTANT:ACHAT=ACHAT+ACHAT(N):GOTO 1940
1870 PRU=M5(N):PV=M4(N):M1(N)=M1(N)-NOMBRE:M3(N)=(M3(N))-MONTANT:M5(N)=M3(N)/M1(N)
1880 IF M1(N)=0 THEN M5(N)=M3(N)/NOMBRE
1890 IF M1(N)=0 THEN M4(N)=ABS(M3(N))
1900 PV=(MONTANT-(PRU*NOMBRE)):M4(N)=PV
1910 VE=VENTE(N):VENTE(N)=MONTANT+VE:VENTE=VENTE+VENTE(N)
1920 PVT=PVT+PV:GOTO 1940
1930 COUPON(N)=COUPON(N)+ MONTANT:COUPON=COUPON+MONTANT
1940 PRINT #(W),"NOUVELLE POSITION   LE         :  ";UPPER$(V$(N,3))
1950 PRINT #(W),STRING$(50,45)
1960 PRINT #(W),"NOMBRE DE TITRES               :    ";USING"###";M1(N)
1970 PRINT #(W), "PRIX DE REVIENT TOTAL          : ";USING"######.## Francs ";M3(N)
1980 PRINT #(W), "PRIX DE REVIENT UNITAIRE       :  ";USING "#####.## Francs";M5(N)
1990 IF C=1 THEN PRINT #(0),STRING$(80," ")
2000 IF C=4 AND TOTAL=0 THEN PRINT #(W),USING "MONTANT DES DROITS             : ######.## Francs ";TOTAL
2010 IF C=4 AND TOTAL>0 THEN DROITA(N)=TOTAL: PRINT #(W),USING "MONTANT DES DROITS ACHETES     : ######.## Francs ";DROITA(N)
2020 IF C=4 AND TOTAL<0 THEN DROITV(N)=ABS(TOTAL):PRINT #(W),USING "MONTANT DES DROITS VENDUS      : ######.## Francs ";DROITV(N)
2030 IF C=1 THEN GOTO 2100
2040 IF C=3 THEN GOTO 2090
2050 IF C=4 THEN GOTO 2100
2060 IF C=2 THEN GOTO 2080 ELSE 2100
2070 IF C<>4 THEN PRINT #(W),STRING$(80," ")
2080 PRINT #(W),"PLUS VALUE REALISEE            :  ";USING "#####.## Francs ";M4(N);
2090 IF C=3 THEN PRINT #(W),"DIVIDENDES ENCAISSES           :  ";USING "#####.## Francs ";COUPON(N);
2100 LOCATE 1,25:PRINT "PRESSEZ UNE TOUCHE POUR CONTINUER                                   "
2110 IF INKEY$="" THEN 2110
2120 IF W=0 THEN 1240
2130 IF W=8 THEN 1270
2140 MODE 2:INK 1,0:INK 0,15:BORDER 1:LOCATE 20,4:PRINT "EDITION DES FICHES DE SITUATION DES TITRES "
2150 GOSUB 3850
2160 A$=INKEY$:IF A$="" THEN 2160
2170 IF VAL(A$)<1 OR VAL(A$)>3 THEN PRINT CHR$(7):GOTO 2160
2180 ON VAL(A$) GOTO 2430,2440,390
2190 CLS:LOCATE 8,10:PRINT "   POUR SAUVEGARDER LE FICHIER,METTEZ LA DISQUETTE DE DONNEES DANS LE LECTEUR ":PRINT:PRINT "                     ET FRAPPEZ UNE TOUCHE QUELCONQUE"
2200 IF INKEY$="" THEN 2200
2210 MODE 2:INK O,15:INK 1,0:BORDER 1:LOCATE 10,10:PRINT "SAUVEGARDE EN COURS...PATIENTEZ.."
2220 OPENOUT "DBOURSE"
2230 FOR N=1 TO 50:PRINT#9,V$(N,1):NEXT:FOR N=1 TO 50:PRINT#9,V$(N,2):NEXT:FOR N=1 TO 50:PRINT#9,V$(N,3):NEXT
2240 FOR N=1 TO 50:PRINT #9,M1(N):NEXT:FOR N=1 TO 50:PRINT #9,M2(N):NEXT:FOR N=1 TO 50:PRINT #9,M3(N):NEXT:FOR N=1 TO 50:PRINT #9,M4(N):NEXT:FOR N=1 TO 50:PRINT #9,M5(N):NEXT:FOR N=1 TO 50:PRINT #9,M6(N):NEXT
2250 FOR N=1 TO 50:PRINT #9,COUPON(N):NEXT:FOR N=1 TO 50:PRINT #9,DROITA(N):NEXT:FOR N=1 TO 50:PRINT #9,DROITV(N):NEXT:FOR N=1 TO 50:PRINT #9,REF(N):NEXT:FOR N=1 TO 50:PRINT #9,PH(N):NEXT:FOR N=1 TO 50:PRINT #9,PB(N):NEXT
2260 PRINT #9,PVT,COUPON,ACHAT,VENTE,VP,PRP,DRTA,DRTV,ANNEE$
2270 CLOSEOUT
2280 FOR I=1 TO 150:NEXT:CLS:LOCATE 15,10:PRINT "SAUVEGARDE TERMINEE.. FRAPPEZ UNE TOUCHE"
2290 A$=INKEY$:IF A$="" THEN 2280
2300 GOTO 390
2310 LOCATE 10,16:PRINT "IMPOSSIBLE DE VENDRE AUTANT DE TITRES ":LOCATE 10,17:PRINT "LA QUANTITE QUE VOUS POSSEDEZ EST INSUFFISANTE .":LOCATE 10,18:PRINT "PROCEDEZ D'ABORD A UN ACHAT"
2320 LOCATE 10,23:PRINT "PRESSEZ UNE TOUCHE POUR CONTINUER":A$=INKEY$:IF A$="" THEN 2310
2330 RETURN
2340 MODE 2:INK 0,15:INK 1,0:BORDER 1:LOCATE 25,4:PRINT "EDITION DU BILAN GLOBAL"
2350 GOSUB 3890
2360 A$=INKEY$:IF A$="" THEN 2360
2370 IF VAL(A$)<1 OR VAL(A$)>3 THEN PRINT CHR$(7):GOTO 2360
2380 ON VAL (A$) GOTO 2390,2400,390
2390 CLS:W=8:GOSUB 3670:GOTO 2890
2400 CLS:W=0:GOTO 2890
2410 A$=INKEY$:IF A$="" THEN 2410
2420 GOTO 390
2430 W=8:GOSUB 3670:GOTO 2450
2440 W=4:ZONE 32:GOTO 2460
2450 ZONE 32:MODE 2:INK 0,15:INK 1,0:BORDER 15
2460 MODE 2:INK 0,15:INK 1,0:BORDER 15:CLS #1:PRINT #1,"             FICHES DE SITUATION DES TITRES ANNEE : ";ANNEE$
2470 PRINT #1,"                   SITUATION AU : ";:X=1:GOSUB 5710
2480 IF W=8 THEN GOSUB 5630
2490  IF W=8 THEN PRINT#8,CHR$(12)
2500 IF W=8 THEN PRINT#8,CHR$(27) "p" CHR$(1)
2510 IF W=8 THEN PRINT #8,"             ";"  FICHES DE SITUATION DES TITRES ANNEE : ";ANNEE$
2520 IF W=8 THEN PRINT #8:PRINT #8,"                     ";"SITUATION AU : ";:X=8:GOSUB 5710
2530 VP=0:PRP=0
2540 IF W=4 THEN  GOSUB 5070:IF W=4 THEN GOTO 2580
2550 FOR N=1 TO 50
2560 IF N=5 OR N=10 OR N=15 OR N=20 OR N=25 OR N=30 OR N=35 OR N=40 OR N=45 THEN PRINT #8,CHR$(12)
2570 IF M1(N)=0 OR V$(N,1)="" THEN 390:GOTO 2600
2580 M6(N)=M1(N)*M2(N)
2590 IF N<1 OR N>50 THEN 2830
2600 IF W=8 THEN PRINT#8,CHR$(27) "p" CHR$(1)
2610 ZONE 32:PRINT #(W):PRINT #(W),"    ";"  Code No ";N,"                VALEUR TOTALE  ":PRINT #(W),"      ";UPPER$  (V$(N,1)),USING "             #######.## Francs";M6(N)
2620 PRINT #(W),"      Derniere operation le : ";UPPER$(V$(N,3))
2630 IF W=8 THEN PRINT#8,CHR$(27) "p" CHR$(0)
2640 PRINT #4:PRINT #(W),USING "       ###";M1(N);
2650 PRINT #(W),USING " TITRE(S) A                      :  ######.## Francs";M2(N)
2660 IF V$(N,3)="" THEN V$(N,3)=V$(N,2)
2670 PRINT #(W), USING "           PRIX DE REVIENT UNITAIRE        :  ######.## Francs";M5(N)
2680 PRINT #(W), USING "           PRIX DE REVIENT TOTAL           :  ######.## Francs";M3(N)
2690 IF M3(N)=0 THEN 2780
2700 IF M2(N)=0 THEN VARIATION =0:GOTO 2720
2710 VARIATION=(M6(N)/(M3(N))-1)*100:IF M3(N)<0 THEN 2730
2720 PRINT #(W), USING "           VARIATION                       :     ###.## % ";VARIATION:GOTO 2740
2730 PRINT #(W),"           VARIATION                       : Valeur non Significative"
2740 PRINT #(W), USING "           DIVIDENDES ENCAISSES            :  ######.## Francs";COUPON(N)
2750 IF DROITA(N)=0 AND DROITV(N)=0 THEN PRINT #(W),USING "           MONTANT DES DROITS              :  ######.## Francs ";DROITA(N)
2760 IF DROITA(N)>0 THEN PRINT #(W), USING "           MONTANT DES DROITS ACHETES      :  ######.## Francs";DROITA(N)
2770 IF DROITV(N)<>0 THEN PRINT #(W), USING "           MONTANT DES DROITS VENDUS       :  ######.## Francs";DROITV(N)
2780 VP=VP+M6(N):PRP=PRP+M3(N)
2790 DRTA=DRTA+DROITA(N):DRTV=DRTV+DROITV(N)
2800 IF W=4 THEN 2840
2810 NEXT N
2820 IF W=8 THEN 390
2830 ZONE 13
2840 LOCATE 25,24:PRINT " 1 - POUR LIRE UNE NOUVELLE FICHE":LOCATE 25,25:PRINT " 2 - POUR RETOURNER AU MENU PRINCIPAL"
2850 LOCATE 1,24:PRINT "VOTRE CHOIX  "
2860 A$=INKEY$:IF A$="" THEN 2850
2870 IF VAL(A$)<1 OR VAL(A$)>2 THEN PRINT CHR$(7):GOTO 2850
2880 ON VAL(A$) GOTO 2440,390
2890 CLS
2900 IF W=0 THEN 2950
2910 ZONE 20:MODE 2:INK 0,15:INK 1,0:BORDER 1:IF W=8 THEN PRINT #8,CHR$(12)
2920 LOCATE 16,8:PRINT "EDITION DU BILAN GLOBAL   ";ANNEE$;"  AU: ";:X=0:GOSUB 5710
2930 GOSUB 5630
2940 IF W=8 THEN PRINT#8:PRINT#8:PRINT#8:PRINT#8:PRINT#8,CHR$(27) "p" CHR$(1):GOTO 2960
2950 ZONE 20:MODE 2:INK 1,0:INK 0,15:BORDER 15
2955 mk$="!**********!":msk$="!************!"
2960 PRINT #(W),SPACE$(27);:PRINT #(W),"BILAN GLOBAL  ";ANNEE$:PRINT #(W):PRINT #(W),SPACE$(12);:PRINT #(W)," PERIODE DU : 1er Janvier ";ANNEE$;"  AU : ";:X=W:GOSUB 5710
2970 IF W=8 THEN PRINT#8,CHR$(27) "p" CHR$(0)
2980 VP=0:PRP=0:FOR N=1 TO 50
2990 M6(N)=M1(N)*M2(N):VP=VP+M6(N):PRP=PRP+M3(N):NEXT N
3000 PRINT #(W):PRINT #(W),SPACE$(26);:PRINT #(W),"(Montants en Francs)":PRINT #(W),"    ";STRING$(66,45)
3010 PRINT #(W),"    !     R U B R I Q U E       !   CREDIT   !   DEBIT    !   VAR %  !"
3020 PRINT #(W),"    ";STRING$(66,45)
3030 PRINT #(W),"    ! EVALUATION GLOBALE.....   ! ";USING"#######.## ";VP;:PRINT #(W),"!************!**********!"
3040 PRINT #(W),"    ! PRIX DE REVIENT TOTAL..   ";msk$;USING" #######.## " ;PRP;:PRINT #(W),mk$
3050 IF VP=0 THEN DIFFERENCE =0:GOTO 3080
3060 DIFFERENCE=VP-PRP
3070 IF DIFFERENCE <0 THEN 3130
3080 PRINT #(W),"    ! VARIATION..............   ! ";USING"#######.## ";DIFFERENCE;
3090 IF PRP<=0 THEN RATIO=0:GOTO  3150
3100 RATIO=(VP/PRP-1)*100
3110 IF VP=0 THEN RATIO=0
3120 PRINT #(W),msk$;USING"#####.## ";RATIO;:PRINT #(W)," !":GOTO 3160
3130 PRINT #(W),"    ! VARIATION...........      ";msk$;USING" #######.## ";ABS(DIFFERENCE);:GOTO 3140
3140 PRINT #(W),"!";USING"#####.## ";RATIO;:PRINT #(W)," !":GOTO 3160
3150 PRINT #(W),msk$;USING"#####.## ";RATIO;:PRINT #(W)," !":GOTO 3190
3160 MONTANT=PVT:IF PVT>=0 THEN 3180
3170 IF PVT <=0 THEN 3190
3180 PRINT #(W),"    ! PLUS VALUES REALISEES..   ! ";USING"#######.## ";PVT;:PRINT #(W),msk$;:GOTO 3210
3190 PRINT #(W),"    ! MOINS VALUES REALISEES.   ";msk$;USING" #######.## ";ABS(PVT);:PRINT #(W),"!";
3200 IF PRP<=0 THEN RATIO=0:IF PRP<=0 THEN 3240
3210 RATIO=(PVT/PRP)*100:GOTO 3240
3220 IF RATIO <=0 THEN 3240
3230 PRINT #(W);msk$;USING"#####.## ";RATIO;:PRINT #(W)," !":GOTO 3250
3240 PRINT #(W),USING"#####.## ";RATIO;:PRINT #(W)," !"
3250 MONTANT=COUPON
3260 PRINT #(W),"    ! DIVIDENDES ENCAISSES...   !";USING" #######.## ";COUPON;:PRINT #(W),msk$;
3270 IF PRP<=0 THEN RATIO=0:IF PRP<=0 THEN 3290
3280 RATIO=(COUPON/PRP)*100
3290 PRINT #(W),USING "#####.## ";RATIO;:PRINT #(W)," !"
3300 IF VP=0 THEN RENDEMENT =0:GOTO 3330
3310 RENDEMENT=DIFFERENCE+PVT+COUPON
3320 IF RENDEMENT <0 THEN RENDEMENT =ABS(RENDEMENT):GOTO 3340
3330 PRINT #(W),"    ! RENDEMENT GLOBAL.......   !";USING" #######.## ";RENDEMENT;   :PRINT #(W),msk$;:GOTO 3360
3340 PRINT #(W),"    ! RENDEMENT GLOBAL.......   ";msk$;
3350 PRINT #(W),USING" #######.## ";RENDEMENT;:PRINT #(W),"!";
3360 IF PRP<=0 THEN RATIO=0:IF RATIO=0 THEN 3380
3370 RATIO=((DIFFERENCE+COUPON+PVT)/PRP)*100
3380 PRINT #(W),USING "#####.## ";RATIO;:PRINT #(W)," !"
3390 PRINT #(W),"    ";STRING$(66,45)
3400 PRINT #(W),"    !";"        MONTANTS CUMULES DEPUIS LA DERNIERE REMISE A ZERO";"       !"
3410 PRINT #(W),"    !";SPACE$(64);"!"
3420 PRINT #(W),"    !          TOTAL DES ACHATS     ",USING "#######.##   ";ACHAT;:PRINT #(W),"                !"
3430 MONTANT=VENTE
3440 PRINT #(W),"    !          TOTAL DES VENTES     ",USING "#######.##   ";VENTE;:PRINT #(W),"                !"
3450 PRINT #(W),"    !          SOLDE                ",USING "#######.##   ";(ACHAT-VENTE);:PRINT #(W),"                !"
3460 PRINT #(W),"    ";STRING$(66,45)
3470 IF PRP<=0 THEN PRINT #(W),"   Le Prix de revient etant <= 0 les ratios ne sont plus significatifs.            Ils sont remis a zero."
3480 IF W=8 THEN 390
3490 LOCATE 2,24:PRINT,"FIN D'EDITION . APPUYEZ SUR UNE TOUCHE POUR RETOURNER  AU MENU PRINCIPAL"
3500 A$=INKEY$:IF A$="" THEN 3500
3510 GOTO 390
3520 CLS
3530 LOCATE 18,2: PRINT "* REMISE A ZERO DES MOUVEMENTS DE L'ANNEE :";ANNEE$;" *"
3540 LOCATE 15,12:PRINT "VOULEZ-VOUS FAIRE UNE  REMISE A ZERO DES MOUVEMENTS ? "
3550 LOCATE 30,14:INPUT "(OUI ou NON) :",R$
3560 R$=UPPER$(R$)
3570 IF R$="OUI" THEN 3590
3580 IF R$<>"OUI" THEN 390
3590 LOCATE 10,17:PRINT "VOUS AVEZ REPONDU OUI.  CONFIRMEZ EN APPUYANT  SUR UNE TOUCHE ."
3600 A$=INKEY$:IF A$="" THEN 3590
3610 ACHAT=0:VENTE=0:PVT=0:COUPON=0:DRTA=0:DRTV=0:ANNEE$=""
3620 FOR N=1 TO 50:PB(N)=0:NEXT:FOR N=1 TO 50:PH(N)=0:NEXT:FOR N=1 TO 50:COUPON(N)=0:NEXT:FOR N=1 TO 50:M4(N)=0:NEXT:FOR N=1 TO 50:M2(N)=0:NEXT:FOR N=1 TO 50:REF(N)=0:NEXT
3630 MODE 2:INK 0,15:INK 1,0:BORDER 1
3640 LOCATE 26,10:PRINT "LE FICHIER EST REMIS A ZERO.":LOCATE 10,12:PRINT "APPUYEZ SUR UNE TOUCHE POUR RETOURNER AU MENU D'INITIALISATION"
3650 A$=INKEY$:IF A$="" THEN 3650
3660 GOTO 80
3670 PRINT #8,CHR$(27) "N" CHR$ (2)
3680 PRINT #8,CHR$(27) "R" CHR$ (3)
3690 RETURN
3700 CLS
3710 CLS:RETURN
3720 CLS:W=8
3730 LOCATE 16,8:PRINT " ANALYSE DU PORTEFEUILLE  ";ANNEE$;" AU :";:X=0:GOSUB 5710:LOCATE 18,10:PRINT " (1ere Partie)      PLUS-VALUES BOURSIERES"
3740 GOSUB 5630
3750 PRINT#8,CHR$(12):PRINT#8,CHR$(27) "p" CHR$(1)
3760 PRINT #8, " ANALYSE DU PORTEFEUILLE  ";ANNEE$;" SITUATION AU : ";:X=8:GOSUB 5710:PRINT #8," (1ere Partie)  :   PLUS-VALUES BOURSIERES"
3770 PRINT#8,CHR$(27) "p" CHR$(0)
3780 PRINT #8,STRING$ (79,45)
3790 PRINT #8, "!CODE";"!      TITRE             ";"  ! COURS  !";" NBRE!";" EVALUATION";"! P.R.TOTAL!";" VAR. %!"
3800 PRINT #8,STRING$ (79,45)
3810 RETURN
3820 LOCATE 10,25:PRINT,"APPUYEZ SUR UNE TOUCHE POUR CONTINUER"
3830 A$=INKEY$:IF A$="" THEN 3830
3840 CLS #3:RETURN
3850 LOCATE 20,8:PRINT "1 - EDITION DES FICHES SUR L'IMPRIMANTE":LOCATE 20,10:PRINT "2 - LIRE UNE FICHE SUR L'ECRAN":LOCATE 20,12:PRINT "3 - RETOUR AU MENU PRINCIPAL":LOCATE 25,15:PRINT "VOTRE CHOIX   "
3860 RETURN
3870 LOCATE 20,8:PRINT "1 - EDITION DES MISES A JOUR SUR L'IMPRIMANTE":LOCATE 20,10:PRINT "2 - EDITION DES MISES A JOUR SUR L'ECRAN":LOCATE 20,12:PRINT "3 - RETOUR AU MENU PRINCIPAL":LOCATE 25,15:PRINT "VOTRE CHOIX   "
3880 RETURN
3890 LOCATE 20,8:PRINT "1 - EDITION DU BILAN GLOBAL SUR L'IMPRIMANTE":LOCATE 20,10:PRINT "2 - EDITION DU BILAN GLOBAL SUR L'ECRAN":LOCATE 20,12:PRINT "3 - RETOUR AU MENU PRINCIPAL":LOCATE 25,15:PRINT "VOTRE CHOIX   "
3900 RETURN
3910 LOCATE 20,8:PRINT "1 - EDITION DE L'ANALYSE SUR L'IMPRIMANTE":LOCATE 20,10:PRINT "2 - EDITION DE L'ANALYSE SUR L'ECRAN":LOCATE 20,12:PRINT "3 - RETOUR AU MENU PRINCIPAL":LOCATE 25,15:PRINT "VOTRE CHOIX   "
3920 RETURN
3930 PRINT #1," ANALYSE DU PORTEFEUILLE  ";ANNEE$;"  (2eme Partie)  AU : ";:X=1:GOSUB 5710:PRINT #1,STRING$ (79,45)
3940 PRINT #1, "!CODE";"!      TITRE             ";"  ! COUPONS !";"REND.%!";"RAP.VENTES!";"RAP.% !";"REND.TOT %!"
3950 PRINT #1,STRING$ (79,45)
3960 PRINT #3," Si (N. SIGN) voir Notice pour explications"
3970 IF W=2 THEN 3990
3980  GOSUB 4310
3990 FOR N=1 TO 50
4000 IF V$(N,1)="" THEN 4260
4010 IF W=2 THEN GOTO 4020 ELSE 4030
4020 IF N=11 OR N=21 OR N=31 OR N=41 THEN GOSUB 3820
4030 PRINT #(W), "!"; USING " ##";N,
4040 ZONE 32
4050 PRINT #(W), " ! ";UPPER$(V$(N,1)),
4060 PRINT #(W), "!";USING "#####.##" ;COUPON(N);
4070 ZONE 7
4080 IF COUPON(N)=0 OR M3(N)=0 THEN RENDEMENT(N)=0:GOTO 4110
4090 RENDEMENT(N) =(COUPON(N)/M3(N))*100
4095 IF ABS(RENDEMENT(N))>=1000 THEN PRINT #(W)," !";"N.SIGN";:GOTO 4120
4100 IF M3(N)<0 THEN PRINT #(W)," !";"N.SIGN";:GOTO 4120
4110 PRINT #(W)," !";USING "###.##";RENDEMENT(N);
4120 PRINT #(W),"!";
4130 ZONE 10
4140 PRINT #(W),USING "######.##";M4(N);
4150  IF M3(N)=0 THEN PLUSVALUE(N)=0:GOTO 4170
4160 PLUSVALUE(N)=(M4(N)/M3(N))*100:IF PLUSVALUE(N)<0 THEN 4180
4170 PRINT #(W)," !";USING "###.##";PLUSVALUE(N);:GOTO 4190
4180 PRINT #(W)," !";"N.SIGN";
4190 IF M1(N)=0 OR M2(N)=0 THEN REVENU(N)=0:GOTO 4220
4200 IF M3(N)<0 THEN 4230
4210 REVENU(N)=PLUSVALUE(N)+RENDEMENT(N)+RESULTAT(N)
4215 IF ABS(REVENU(N))>=1000 THEN 4230
4220 PRINT #(W),"!";USING "   ###.## ";REVENU(N);:GOTO 4240
4230 PRINT #(W),"!";"   N.SIGN ";
4240 PRINT #(W),"!"
4250 NEXT N
4260 PRINT #(W),STRING$ (79,45)
4270 IF W=8 THEN 4300
4280 PRINT #3, "FIN DE LA DEUXIEME PARTIE APPUYEZ SUR UNE TOUCHE POUR LA 3eme PARTIE"
4290 A$=INKEY$:IF A$="" THEN 4290
4300 CLS #1:CLS #2:CLS #3:CLS #4:GOTO 5130
4310 CLS #3:W=8
4320 PRINT#8,CHR$(12)
4330 LOCATE 16,8:PRINT " ANALYSE DU PORTEFEUILLE  ";ANNEE$;" AU :";:x=0:GOSUB 5710:LOCATE 18,10:PRINT " (2eme Partie)      RAPPORTS DES TITRES"
4340 GOSUB 5630
4350 PRINT#8,CHR$(27) "p" CHR$(1)
4360 PRINT #8, " ANALYSE DU PORTEFEUILLE  ";ANNEE$;" SITUATION AU : ";:X=8:GOSUB 5710:PRINT #8, " (2eme Partie)  :  RAPPORTS DES TITRES"
4370 PRINT #8,CHR$(27) "p" CHR$(0)
4380 PRINT #8,STRING$ (79,45)
4390 PRINT #8, "!CODE";"!      TITRE             ";"  ! COUPONS !";"REND.%!";"RAP.VENTES!";"RAP.% !";"REND.TOT %!"
4400 PRINT #8,STRING$ (79,45)
4410  RETURN
4420 CLS #3:PRINT #3,"APPUYEZ SUR UNE TOUCHE POUR CONTINUER"
4430 A$=INKEY$:IF A$="" THEN 4430
4440 GOTO 4450
4450 CLS #3:CLS #1:CLS #4:GOTO 5230
4460 A$=INKEY$:IF A$="" THEN 4460
4470 MODE 2:INK 0,15:INK 1,0:BORDER 1
4480 LOCATE 25,2:PRINT "RECHERCHE D'UNE INFORMATION":LOCATE 15,5:PRINT "1 - NOM D'UNE VALEUR":LOCATE 15,7:PRINT "2 - QUANTITE POSSEDEE"
4490 LOCATE 15,9:PRINT "3 - COUT RESIDUEL UNITAIRE D'ACHAT D'UNE VALEUR":LOCATE 15,11:PRINT "4 - MONTANT DES DIVIDENDES D'UNE VALEUR":LOCATE 15,13:PRINT "5 - MONTANT DES VENTES D'UNE VALEUR"
4500 LOCATE 15,15:PRINT "6 - POUR CONSULTER LA LISTE DES CODES":LOCATE 15,17:PRINT "7 - RETOUR AU MENU PRINCIPAL"
4510 LOCATE 25,22:PRINT "VOTRE CHOIX  "
4520 A$=INKEY$:IF A$="" THEN 4510
4530 IF VAL(A$)<1 OR VAL(A$)>7 THEN PRINT CHR$(7):GOTO 4510
4540 CLS #1:CLS #2:CLS #3:CLS #4
4550 ON VAL(A$) GOTO 4560,4600,4650,4710,4760,4880,390
4560 GOSUB 4810:GOSUB 5000
4570 LOCATE 10,14:PRINT "LE NOM DE LA VALEUR EST      : ";UPPER$(V$(N,1))
4580 A$=INKEY$:IF A$="" THEN 4580
4590 GOTO 4470
4600 GOSUB 4810:GOSUB 5000
4610 LOCATE 10,14:PRINT USING "LE NOMBRE DE TITRES EST      : ###";M1(N)
4620 LOCATE 10,16:PRINT "LE NOM DE LA VALEUR EST      : ";UPPER$(V$(N,1))
4630 A$=INKEY$:IF A$="" THEN 4630
4640 GOTO 4470
4650 GOSUB 4810:GOSUB 5000
4660 IF M1(N)=0 THEN ACH=0:IF M1(N)=0 THEN 4670
4670 LOCATE 10,14:PRINT USING "LE COUT RESIDUEL D'ACHAT EST : #####.## Francs";M5(N)
4680 LOCATE 10,16:PRINT "LE NOM DE LA VALEUR EST      : ";UPPER$(V$(N,1))
4690 A$=INKEY$:IF A$="" THEN 4690
4700 GOTO 4470
4710 GOSUB 4810:GOSUB 5000
4720 LOCATE 10,14:PRINT USING "LE TOTAL DES COUPONS EST     : #####.## Francs";COUPON(N)
4730 LOCATE 10,16:PRINT "LE NOM DE LA VALEUR EST      : ";UPPER$(V$(N,1))
4740 A$=INKEY$:IF A$="" THEN 4740
4750 GOTO 4470
4760 GOSUB 4810:GOSUB 5000
4770 LOCATE 10,14:PRINT USING "MONTANT TITRES VENDUS        : #####.## Francs";M4(N)
4780 LOCATE 10,16:PRINT "LE NOM DE LA VALEUR EST      : ";UPPER$(V$(N,1))
4790 A$=INKEY$:IF A$="" THEN 4790
4800 GOTO 4470
4810 MODE 2:INK 0,15:INK 1,0:BORDER 1
4820 LOCATE 20,2:PRINT "RECHERCHE D'UNE INFORMATION"
4830 LOCATE 10,12: INPUT "NUMERO DE CODE DE LA VALEUR  : ",N
4840 IF N<1 OR N>50 THEN PRINT CHR$(7):GOTO 4830
4850 LOCATE 40,12:PRINT STRING$(10," ")
4860 LOCATE 40,12:PRINT N
4870 RETURN
4880 MODE 2:INK 0,15:INK 1,0:BORDER 15:WINDOW #5,1,80,5,15
4890 PRINT #1,"          LISTE DES CODES DES VALEURS"
4900 FOR N=1 TO 50
4910 IF N=11 OR N=21 OR N=31 OR N=41 THEN GOSUB 5610
4920 IF V$(N,1)="" THEN 4960
4930 PRINT #5, USING "   CODE : ##";N;
4940 PRINT #5,"   -  ";UPPER$(V$(N,1))
4950 NEXT
4960 LOCATE 5,25:PRINT STRING$(70," "):LOCATE 5,25:PRINT "FIN D'EDITION .  APPUYEZ SUR UNE TOUCHE POUR RETOURNER AU MENU "
4970 A$=INKEY$:IF A$="" THEN 4970
4980 GOTO 390
4990 GOTO 5290
5000 LOCATE 15,20:PRINT "APPUYEZ SUR UNE TOUCHE POUR RETOURNER AU MENU"
5010 RETURN
5020 LOCATE 1,14:INPUT"POUR UNE VALEUR UNITAIRE DE    : ",DRT
5030 LOCATE 1,14:PRINT #(W), USING "POUR UNE VALEUR UNITAIRE DE    : ######.## Francs ";DRT
5040 TOTAL=NBRE*DRT
5050 LOCATE 1,15:PRINT #(W),USING "MONTANT TOTAL NET              : ######.## Francs ";TOTAL
5060 END
5070 END
5080 END
5090 END
5100 END
5110 END
5120 END
5130 END
5140 END
5150 END
5160 END
5170 END
5180 END
5190 END
5200 PRINT #1,STRING$ (79,45)
5210 PRINT #3," Si (N. SIGN) ou un P.R. UNITAIRE negatif voir Notice pour explications"
5220 IF W=2 THEN 5240
5230 GOSUB 5510
5240 FOR N=1 TO 50
5250 IF V$(N,1)="" THEN 5460
5260 IF W=2 THEN GOTO 5270 ELSE 5280
5270 IF N=11 OR N=21 OR N=31 OR N=41 THEN GOSUB 3820
5280 PRINT #(W), "!"; USING " ##";N,
5290 ZONE 32
5300 PRINT #(W), " !  ";UPPER$(V$(N,1)),
5310 ZONE 10
5320 PH(N)=MAX(M2(N),PH(N)):IF PH(N)=0 THEN PH(N)=M2(N)
5330 PRINT #(W)," !";USING "####.##";PH(N);
5340 ZONE 2
5350 PB(N)=MIN(M2(N),PB(N)):IF PB(N)=0 THEN PB(N)=M2(N)
5360 PRINT #(W), " !";USING "####.##";PB(N);
5370 PRINT #(W)," !"; USING "#####.##";M2(N);
5380 PRINT #(W),"!";
5390 PRINT #(W), USING "#####.##";M5(N);
5400 IF M2(N)=0 OR REF(N)=0 GOTO 5410 ELSE 5420
5410 VARIA=0:GOTO 5430
5420 VARIA=((M2(N)-REF(N))/REF(N))*100
5425 IF ABS(VARIA)>=1000 THEN 5435
5430 PRINT #(W)," !"; USING " ###.##";VARIA;:GOTO 5440
5435 PRINT #(W)," ! N.SIGN";
5440 PRINT #(W),"!"
5450 NEXT N
5460 PRINT #(W),STRING$ (79,45)
5470 IF W=8 THEN 390
5480 PRINT#3, "FIN D'EDITION. APPUYEZ SUR UNE TOUCHE POUR RETOURNER AU MENU PRINCIPAL"
5490 A$=INKEY$:IF A$="" THEN 5490
5500 CLS#1:CLS#2:CLS#3:CLS#4:GOTO 390
5510 CLS#1:CLS#2:CLS#3:CLS#4:W=8
5520 LOCATE 16,8:PRINT" ANALYSE DU PORTEFEUILLE  ";ANNEE$;"  AU :";:X=0:GOSUB 5710:LOCATE 18,10:PRINT " (3eme Partie)     GUIDE  BOURSIER   "
5530 GOSUB 5630
5540 PRINT#8,CHR$(12):PRINT#8,CHR$(27) "p" CHR$(1)
5550 PRINT #8, " ANALYSE DU PORTEFEUILLE  ";ANNEE$;"  SITUATION AU : ";:X=8:GOSUB 5710:PRINT #8," (3eme Partie)  :  GUIDE  BOURSIER   "
5560 PRINT#8,CHR$(27) "p" CHR$(0)
5570 PRINT #8,STRING$ (79,45)
5580 PRINT #8, "!CODE";"!      TITRE                ";"!  MAXI  !";" MINI.  !";" COURS  !";" PR UNIT !";" VAR. %!"
5590 PRINT #8,STRING$ (79,45)
5600 RETURN
5610 LOCATE 10,25:PRINT,"APPUYEZ SUR UNE TOUCHE POUR CONTINUER":A$=INKEY$:IF A$="" THEN 5610
5620 CLS #5:RETURN
5630 LOCATE 20,12:PRINT "Patientez......Impression en cours........."
5640 RETURN
5650 WINDOW #6,29,80,16,16
5660 LOCATE 20,16:INPUT" ANNEE : ",ANNEE$
5670 IF VAL(ANNEE$)<1985 OR VAL(ANNEE$)>2000 THEN PRINT CHR$(7):CLS#6:GOTO 5660
5680 CLS#6:RETURN
5690 IF INKEY$<>"" THEN 5690
5700 ON BREAK GOSUB 5690:RETURN
5710 m=VAL(M$):MOIS$(1)="Janvier":MOIS$(2)="Fevrier":MOIS$(3)="Mars":MOIS$(4)="Avril":MOIS$(5)="Mai":MOIS$(6)="Juin":MOIS$(7)="Juillet":MOIS$(8)="Aout":MOIS$(9)="Septembre":MOIS$(10)="Octobre":MOIS$(11)="Novembre":MOIS$(12)="Decembre"
5720 j=VAL(J$):PRINT #(X),j;MOIS$(m);" ";ANNEE$:RETURN