home *** CD-ROM | disk | FTP | other *** search
/ AppleDisk 1 / AppleDisk_001.dsk / INVEST.bas < prev    next >
Encoding:
BASIC Source File  |  1986-01-01  |  27.2 KB  |  548 lines

  1. 1  REM   **********************
  2. 2  REM   *       INVEST       *
  3. 3  REM   * DI ROBERT DOELLING *
  4. 4  REM   * (C)1986 EDITRONICA *
  5. 5  REM   *    E MICROSPARC    *
  6. 6  REM   **********************
  7. 10  GOTO 5270
  8. 20  REM   * SUBROUTINES *
  9. 30 CV =  PEEK(37)
  10. 40  VTAB CV +1: PRINT : CALL  -958: HTAB 10: INPUT "DATI OK? (S/N)";Q$
  11. 50  IF Q$ = "S"  OR Q$ = "N"  THEN  RETURN 
  12. 60  PRINT B$: GOTO 40
  13. 70  VTAB 22: PRINT "PREMI <RETURN> PER CONTINUARE ";: GET Q$: RETURN 
  14. 80  VTAB 20: PRINT "PREMI";: HTAB 8: INVERSE : PRINT "RETURN";: NORMAL : PRINT " SE I DATI SONO ESATTI"
  15. 90  HTAB 8: INVERSE : PRINT "ESC   ";: NORMAL : PRINT " PER IL MENU' PRINCIPALE"
  16. 100  HTAB 8: INVERSE : PRINT "<-    ";: NORMAL : PRINT " PER RISCRIVERE I DATI": RETURN 
  17. 110  REM   * ROUTINE D'IMMISSIONE DELLA DATA *
  18. 120  VTAB 16: HTAB 30: INVERSE : PRINT "00";: NORMAL : PRINT "/00/00";: CALL  -958
  19. 130  PRINT : PRINT : HTAB 4: INPUT "SCRIVI IL GIORNO (1-31) ";Q$
  20. 140 X =  INT( VAL(Q$)): IF X <1  OR X >31  THEN  PRINT B$: GOTO 120
  21. 150  VTAB 16: HTAB 30: PRINT X;"/";Y;"/";: INVERSE : PRINT "00";: NORMAL : CALL  -958
  22. 160  PRINT : PRINT : HTAB 4: INPUT "SCRIVI IL MESE (1-12) ";Q$
  23. 170 Y =  INT( VAL(Q$)): IF Y <1  OR Y >12  THEN  PRINT B$: GOTO 150
  24. 180  VTAB 16: HTAB 30: PRINT X;"/";Y;"/";: INVERSE : PRINT "00";: NORMAL : CALL  -958
  25. 190  PRINT : PRINT : INPUT "SCRIVI ULTIME DUE CIFRE ANNO (ES.86) ";Q$
  26. 200 Z =  INT( VAL(Q$)): IF Z >99  THEN  PRINT B$: GOTO 180
  27. 210 Z$ = Q$: IF Z <10  THEN Z$ = "0" + RIGHT$(Z$,1)
  28. 220 V$ =  STR$(X) +"/" + STR$(Y) +"/" +Z$
  29. 230  VTAB 16: HTAB 30: PRINT V$
  30. 240  GOSUB 30: IF Q$ = "N"  THEN 120
  31. 250 V =  INT((365 *Z +30 *Y +X) +.5)
  32. 260  RETURN 
  33. 270  REM   * ROUTINE FORMATTAZIONE $ *
  34. 280  IF X <0  THEN X =  -X:W$ = "-":AF = 1
  35. 300 X$ =  STR$(X)
  36. 320  IF  LEN(X$) >9  THEN Z$ =  LEFT$(X$,1) +"." + MID$ (X$,2,3) +"." + MID$ (X$,5,3) + RIGHT$(V$,3): GOTO 370
  37. 330  IF  LEN(X$) >6  THEN Z$ =  LEFT$(X$, LEN(X$) -6) +"." + MID$ (X$, LEN(X$) -5,3) +"." + RIGHT$(X$,3): GOTO 370
  38. 340  IF  LEN(X$) >3  THEN Z$ =  LEFT$(X$, LEN(X$) -3) +"." + RIGHT$(X$,3): GOTO 370
  39. 360 Z$ = X$
  40. 370  IF AF  THEN AF = 0:Z$ = "-" +Z$
  41. 380  RETURN 
  42. 390  REM   * $ ROUTINE IMMISSIONE *
  43. 400  GOSUB 80
  44. 410 Z$ = "             ":L = 9:V$ = "": REM   13 SPAZI  
  45. 420  NORMAL : VTAB 18: HTAB 1: PRINT "SCRIVI QUI -> ";: INVERSE : PRINT Z$
  46. 430  VTAB 18: HTAB 15 + LEN(Z$): GET Q$
  47. 440  IF Q$ =  CHR$(8)  THEN 410
  48. 450  IF Q$ =  CHR$(13)  AND  VAL(V$) = O  THEN  PRINT B$: GOTO 410
  49. 460  IF Q$ =  CHR$(13)  THEN X =  VAL(V$): NORMAL : RETURN 
  50. 470  IF Q$ =  CHR$(27)  THEN  NORMAL : GOTO 1120
  51. 480  IF  LEN(V$) = L  THEN 570
  52. 490  IF  ASC(Q$) <48  OR  ASC(Q$) >57  THEN  PRINT B$: GOTO 420
  53. 500  IF  VAL(Q$) = 0  AND  LEN(V$) = 0  THEN  PRINT B$: GOTO 410
  54. 510 V$ = V$ +Q$
  55. 520  IF  LEN(V$) >9  THEN Z$ =  LEFT$(V$,1) +"." + MID$ (V$,2,3) +"." + MID$ (V$,5,3) + RIGHT$(V$,3): GOTO 420
  56. 530  IF  LEN(V$) >6  THEN X$ =  LEFT$(V$, LEN(V$) -6) +"." + MID$ (V$, LEN(V$) -5,3) +"." + RIGHT$(V$,3): GOTO 560
  57. 540  IF  LEN(V$) >3  THEN X$ =  LEFT$(V$, LEN(V$) -3) +"." + RIGHT$(V$,3): GOTO 560
  58. 550 X$ = V$
  59. 560 Z$ =  LEFT$(Z$,( LEN(Z$) - LEN(X$))) +X$: GOTO 420
  60. 570  VTAB 18: HTAB 1: CALL  -868: PRINT "E' LA LUNGHEZZA MASSIMA D'IMMISSIONE!": PRINT B$: FOR PS = 1 TO 1000: NEXT 
  61. 580  VTAB 18: HTAB 1: CALL  -868:Q$ = "": GOTO 420
  62. 590  REM   * ROUTINE IMMISSIONE NOME DEL TITOLO *
  63. 600  GOSUB 80
  64. 610  VTAB 13: HTAB 1: PRINT "NON PUOI SCRIVERE PIU' DI 15 CARATTERI"
  65. 620  PRINT "NON INSERIRE SPAZI BIANCHI": PRINT "USA INVECE PUNTI PER SEPARARE LE PAROLE"
  66. 630 Z$ = "               ":L = 15:V$ = "": REM   15 SPAZI
  67. 640  NORMAL : VTAB 18: HTAB 4: PRINT "SCRIVI QUI -> ";: INVERSE : PRINT Z$
  68. 650  VTAB 18: HTAB 33: GET Q$
  69. 660  IF Q$ =  CHR$(8)  THEN 630
  70. 670  IF Q$ =  CHR$(13)  AND V$ = ""  THEN  PRINT B$: GOTO 630
  71. 680  IF Q$ =  CHR$(13)  THEN  NORMAL : GOTO 770
  72. 690  IF Q$ =  CHR$(27)  THEN 1120
  73. 700  IF (Q$ <"0"  AND Q$ < >".")  OR (Q$ >"9"  AND Q$ <"A")  OR Q$ >"Z"  OR (Q$ <"A"  AND V$ = "")  THEN  PRINT B$: GOTO 640
  74. 710  IF  LEN(V$) = L  THEN  NORMAL : GOTO 750
  75. 720 V$ = V$ +Q$
  76. 730  IF  LEN(V$) = L  THEN Z$ = V$: GOTO 640
  77. 740 Z$ =  LEFT$(Z$,( LEN(Z$) - LEN(V$))) +V$: GOTO 640
  78. 750  VTAB 18: HTAB 1: CALL  -868: PRINT "E' LA LUNGHEZZA D'IMMISSIONE MASSIMA!": PRINT B$;: FOR PS = 1 TO 1000: NEXT 
  79. 760  VTAB 18: HTAB 1: CALL  -868:Q$ = "": GOTO 640
  80. 770  IF S = 0  THEN  RETURN 
  81. 780  FOR X = 1 TO S
  82. 790  IF V$ = ST$(X)  THEN  VTAB 13: HTAB 1: CALL  -958: INVERSE : PRINT V$;" E' GIA' STATO IMMESSO": NORMAL : PRINT : GOSUB 70: VTAB 13: CALL  -958: GOTO 600
  83. 800  NEXT X: RETURN 
  84. 810  REM    * IMMISSIONE VALORE DELL'INVESTIMENTO *
  85. 820  VTAB 16: HTAB 1: CALL  -958: PRINT "DOVE VUOI SCRIVERE?:
  86. 830  PRINT "   1) PREZZO SINGOLO": PRINT "   2) PREZZO TOTALE"
  87. 840  VTAB 20: INPUT "FAI LA TUA SCELTA -> ";Q$
  88. 850 Q =  VAL(Q$)
  89. 860  IF Q <1  OR Q >2  THEN 840
  90. 870  IF Q = 1  AND AF = 1  THEN AF = 0: GOSUB 920
  91. 880  IF AF  THEN AF = 0
  92. 890  VTAB 16: HTAB 1: CALL  -958: IF Q = 1  THEN  PRINT "SCRIVI IL PREZZO SINGOLO": GOTO 910
  93. 900  PRINT "SCRIVI IL PREZZO TOTALE"
  94. 910  GOSUB 400: RETURN 
  95. 920  VTAB 16: HTAB 1: CALL  -958: PRINT "SCRIVI IL NUMERO DEI TITOLI ACQUISTATI": PRINT "IN DATA ";ID$
  96. 930  GOSUB 950:IS = X: RETURN 
  97. 940  REM    * IMMISSIONE VALORE PER QUANTITA' *
  98. 950  GOSUB 80
  99. 960 Z$ = ""
  100. 970  VTAB 18: HTAB 1: CALL  -868: PRINT "SCRIVI QUI -> ";Z$;: GET Q$
  101. 980  IF Q$ =  CHR$(8)  THEN Z$ = "": GOTO 970
  102. 990  IF Q$ =  CHR$(27)  THEN 1120
  103. 1000  IF Q$ =  CHR$(13)  AND  VAL(Z$) = 0  THEN  PRINT B$: GOTO 960
  104. 1010  IF Q$ =  CHR$(13)  THEN X =  VAL(Z$): VTAB 16: HTAB 1: CALL  -958: RETURN 
  105. 1020  IF Q$ =  CHR$(46)  THEN Z$ = Z$ +Q$: GOTO 970
  106. 1030  IF  ASC(Q$) <48  OR  ASC(Q$) >57  THEN  PRINT B$: GOTO 970
  107. 1040 Z$ = Z$ +Q$: GOTO 970
  108. 1050  HOME 
  109. 1060  VTAB 3: HTAB 14: PRINT "INVEST"
  110. 1070  HTAB 10: PRINT "DI R.F.DOELLING"
  111. 1080  HTAB 2: PRINT "(C)1986 EDITRONICA E MICROSPARC"
  112. 1090  VTAB 16: PRINT "SCRIVI LA DATA DI OGGI"
  113. 1100  GOSUB 120:CD$ = V$:CD = V
  114. 1110  REM   * MENU' PRINCIPALE *
  115. 1120  IF S = 0  THEN 5430
  116. 1130  IF S = 96  THEN  GOSUB 5480
  117. 1140  HOME : HTAB 9: INVERSE : PRINT "    MENU' PRINCIPALE    ": HTAB 9: PRINT "   LISTA INVESTIMENTI   ": NORMAL 
  118. 1150  GOSUB 1570: IF S <25  THEN 1170
  119. 1160  VTAB 17: HTAB 1: INVERSE : PRINT "L";: NORMAL : PRINT "ISTA SCHERMATA SEGUENTE"
  120. 1170  VTAB 18: HTAB 1: INVERSE : PRINT "A";: NORMAL : PRINT "GG.INVESTIMENTO";: HTAB 20: INVERSE : PRINT "D";: NORMAL : PRINT "EPENNA INVESTIMENTO"
  121. 1180  INVERSE : PRINT "T";: NORMAL : PRINT "ASSO DI REDDITO";: HTAB 20: INVERSE : PRINT "M";: NORMAL : PRINT "ODIFICA UNA VOCE"
  122. 1190  INVERSE : PRINT "I";: NORMAL : PRINT "MMETTI UTILE";: HTAB 20: INVERSE : PRINT "F";: NORMAL : PRINT "INE PROGRAMMA"
  123. 1200  VTAB 22: HTAB 1: PRINT "SCRIVI LA LETTERA CORRISPONDENTE": PRINT "ALL'OPZIONE SCELTA ";: GET Q$
  124. 1210  IF Q$ = "F"  AND CF = 1  THEN  GOSUB 4770
  125. 1220  IF Q$ = "F"  THEN  HOME : VTAB 12: HTAB 1: INPUT "SEI CERTO DI VOLER FINIRE? (S/N)";YY$: IF YY$ = "S"  THEN  GOSUB 5700: HOME : VTAB 13: HTAB 12: PRINT "ARRIVEDERCI!!!": END 
  126. 1230  IF (Q$ = "F")  AND (YY$ < >"S")  THEN  GOTO 1120
  127. 1240  IF Q$ = "A"  AND CF = 1  THEN  GOSUB 4770
  128. 1250  IF Q$ = "A"  THEN Q1 = 1: ON S <96 GOTO 2280: GOTO 1120
  129. 1260  IF Q$ = "D"  THEN 1320
  130. 1270  IF Q$ = "I"  THEN 1370
  131. 1280  IF Q$ = "T"  THEN 1420
  132. 1290  IF Q$ = "M"  THEN 1470
  133. 1300  IF Q$ = "L"  THEN 1150
  134. 1310  PRINT B$: GOTO 1200
  135. 1320  VTAB 18: HTAB 1: CALL  -958: PRINT "SCRIVI IL NUMERO DELLA VOCE"
  136. 1330  INPUT "CHE VUOI DEPENNARE -> ";Z$: IF Z$ = "L"  THEN  GOSUB 1570: GOTO 1320
  137. 1340 ZZ =  VAL(Z$): GOSUB 1530: IF AF  THEN 1320
  138. 1350  IF ZZ = I  THEN 4460
  139. 1360 I = ZZ: GOSUB 4650: GOTO 4460
  140. 1370  VTAB 18: HTAB 1: CALL  -958: PRINT "SCRIVI IL NUMERO DELL'INVESTIMENTO"
  141. 1380  INPUT "CHE DA' L'UTILE -> ";Z$: IF Z$ = "L"  THEN  GOSUB 1570: GOTO 1370
  142. 1390 ZZ =  VAL(Z$): GOSUB 1530: IF AF  THEN 1370
  143. 1400  IF ZZ = I  THEN 2510
  144. 1410  GOSUB 4770:I = ZZ: GOSUB 4650: GOTO 2510
  145. 1420  VTAB 18: HTAB 1: CALL  -958: PRINT "SCRIVI IL NUMERO DELL'INVESTIMENTO"
  146. 1430  INPUT "CHE VUOI ANALIZZARE -> ";Z$: IF Z$ = "L"  THEN  GOSUB 1570: GOTO 1420
  147. 1440 ZZ =  VAL(Z$): GOSUB 1530: IF AF  THEN 1420
  148. 1450  IF ZZ = I  THEN  GOSUB 3350: GOTO 1120
  149. 1460  GOSUB 4770:I = ZZ: GOSUB 4650: GOSUB 3350: GOTO 1120
  150. 1470  VTAB 18: HTAB 1: CALL  -958: PRINT "SCRIVI IL NUMERO DELLA VOCE"
  151. 1480  INPUT "CHE VUOI MODIFICARE -> ";Z$: IF Z$ = "L"  THEN  GOSUB 1570: GOTO 1470
  152. 1490 ZZ =  VAL(Z$): GOSUB 1530: IF AF  THEN 1470
  153. 1500  IF ZZ = I  THEN 1730
  154. 1510  GOSUB 4770:I = ZZ: GOSUB 4650: GOTO 1730
  155. 1520  REM   * CONTROLLA INPUT *
  156. 1530  IF ZZ >0  AND ZZ =  <S  THEN AF = 0: RETURN 
  157. 1540  INVERSE : PRINT "IMMISSIONE ERRATA": NORMAL : PRINT B$
  158. 1550 AF = 1: GOSUB 70: RETURN 
  159. 1560  REM   * LISTA TITOLO *
  160. 1570  POKE 34,3: POKE 35,16: CALL  -936
  161. 1580  IF L1 = 49  AND S >72  THEN L1 = 73:L2 = S: GOTO 1650
  162. 1590  IF L1 = 25  AND S >72  THEN L1 = 49:L2 = 72: GOTO 1650
  163. 1600  IF L1 = 25  AND S >48  THEN L1 = 49:L2 = S: GOTO 1650
  164. 1610  IF L1 = 1  AND S >48  THEN L1 = 25:L2 = 48: GOTO 1650
  165. 1620  IF L1 = 1  AND S >24  THEN L1 = 25:L2 = S: GOTO 1650
  166. 1630 L1 = 1: IF S >24  THEN L2 = 24: GOTO 1650
  167. 1640 L2 = S
  168. 1650  VTAB 4: HTAB 1: FOR X = L1 TO L2  STEP 2
  169. 1660  IF X >L2  THEN 1710
  170. 1670  HTAB (3 - LEN( STR$(X))): PRINT X;") ";ST$(X);
  171. 1680  IF X +1 >L2  THEN 1710
  172. 1690  HTAB (22 - LEN( STR$(X +1))): PRINT X +1;") ";ST$(X +1)
  173. 1700  NEXT 
  174. 1710  POKE 34,0: POKE 35,24: RETURN 
  175. 1720  REM   * ROUTINE MODIFICA VOCE TITOLO *
  176. 1730  HOME : INVERSE : HTAB 3: PRINT "ROUTINE MODIFICA VOCE INVESTIMENTO"
  177. 1740  NORMAL : PRINT : HTAB 6: PRINT "INVESTIMENTO: ";ST$(I)
  178. 1750 X = PP: GOSUB 280:PP$ = Z$:X = IW: GOSUB 280:IW$ = Z$
  179. 1760  VTAB 7
  180. 1770  PRINT M$;" DATA D'ACQUISTO"; TAB( 38 - LEN(PD$));PD$
  181. 1780  PRINT M$;" BASE INVESTIMENTO"; TAB( 38 - LEN(PP$));PP$
  182. 1790  PRINT M$;" N.TITOLI POSSEDUTI"; TAB( 38 - LEN( STR$(NS)));NS
  183. 1800  PRINT M$;" DATA BASE INT."; TAB( 38 - LEN(ID$));ID$
  184. 1810  PRINT M$;" VALORE DATA INT."; TAB( 38 - LEN(IW$));IW$
  185. 1820  PRINT M$;" TUTTE LE IMMISSIONI ESATTE-RETURN"
  186. 1830  VTAB 18: HTAB 1: CALL  -958: PRINT "SELEZIONA CON LE FRECCE, POI PREMI": PRINT "<RETURN> PER SCEGLIERE L'OPZIONE."
  187. 1840 CV = 12: POKE  -16368,0
  188. 1850  VTAB CV: HTAB 2: GET Q$
  189. 1860  IF Q$ =  CHR$(13)  THEN 1920
  190. 1870  IF Q$ =  CHR$(21)  OR Q$ =  CHR$(10)  THEN CV = CV +1: IF CV >12  THEN CV = 7: GOTO 1850
  191. 1880  IF Q$ =  CHR$(8)  OR Q$ =  CHR$(11)  THEN CV = CV -1: IF CV <7  THEN CV = 12: GOTO 1850
  192. 1890 QW =  ASC(Q$): IF   NOT ((QW = 21) +(QW = 10) +(QW = 8) +(QW = 11))  THEN  FOR TT = 1 TO 20:QW =  PEEK( -16336): NEXT TT
  193. 1900  GOTO 1850
  194. 1910  REM   * CF=CAMBIA FLAG *   
  195. 1920  IF CV < >12  THEN CF = 1
  196. 1930  ON (CV -6) GOTO 1940,1970,2020,2040,2090,2140
  197. 1940  VTAB 16: HTAB 1: CALL  -958: PRINT "NUOVA DATA DI ACQUISTO": GOSUB 120: GOSUB 2220: IF AF  THEN AF = 0: GOTO 1940
  198. 1950  VTAB 16: HTAB 1: CALL  -958
  199. 1960 PD$ = V$:PV = V: VTAB 7: HTAB 20: CALL  -868: HTAB (38 - LEN(PD$)): PRINT PD$: GOTO 1830
  200. 1970  VTAB 15: HTAB 1: CALL  -958: PRINT "SCRIVI PREZZO D'ACQUISTO + PROVVIGIONE"
  201. 1980  GOSUB 820: IF Q = 1  THEN PP = NS *X: GOTO 2000
  202. 1990 PP = X
  203. 2000  VTAB 14: HTAB 1: CALL  -958:X = PP: GOSUB 280:PP$ = Z$
  204. 2010  VTAB 8: HTAB 23: CALL  -868: HTAB (38 - LEN(PP$)): PRINT PP$: GOTO 1830
  205. 2020  VTAB 16: HTAB 1: CALL  -958: PRINT "CORREGGI IL NUMERO DEI TITOLI": GOSUB 950:NS = X
  206. 2030  VTAB 9: HTAB 23: CALL  -868: HTAB (38 - LEN( STR$(NS))): PRINT NS: GOTO 1830
  207. 2040  VTAB 15: HTAB 1: CALL  -958: PRINT "SCRIVI UNA DATA DI BASE INTERMEDIA"
  208. 2050  IF IV = 0  THEN  PRINT "COMPRESA NELL'ANNO DECORSO": GOTO 2070
  209. 2060  PRINT "DA ";ID$;" A ";CD$
  210. 2070  GOSUB 120: GOSUB 2170: IF AF  THEN AF = 0: GOTO 2040
  211. 2080 ID$ = V$:IV = V:AF = 1: GOSUB 4770: IF IW < >0  THEN 1730
  212. 2090  VTAB 15: HTAB 1: CALL  -958: IF IV = 0  THEN  GOSUB 2240: VTAB 15: HTAB 1: CALL  -958: GOTO 2040
  213. 2100  PRINT "VALORE DELL'INVESTIMENTO AL  ";ID$:AF = 1: GOSUB 820
  214. 2110  VTAB 15: HTAB 1: CALL  -958: IF Q = 1  THEN IW = X *IS: GOTO 2130
  215. 2120 IW = X
  216. 2130 X = IW: GOSUB 280:IW$ = Z$: GOTO 1730
  217. 2140  IF CF  THEN CF = 0: GOSUB 5010: IF Q1 = 1  THEN  GOSUB 5140:Q1 = 0
  218. 2150  GOTO 1120
  219. 2160  REM   * CONTROLLA DATA INT. *
  220. 2170  VTAB 18: HTAB 1: CALL  -958
  221. 2180  IF V < = PV  THEN  PRINT "LA DATA DEV'ESSERE SUCCESSIVA AL ";PD$: PRINT "DATA DI ACQUISTO":AF = 1: PRINT : GOSUB 70: RETURN 
  222. 2190  IF V <IV  THEN  PRINT "LA DATA DEV'ESSERE SUCCESSIVA AL ";ID$: PRINT "DATA BASE ATTUALE":AF = 1: PRINT : GOSUB 70: RETURN 
  223. 2200  IF CD -V >365  THEN  PRINT "LA DATA RISALE A OLTRE UN ANNO PRIMA!":AF = 1: PRINT : GOSUB 70: RETURN 
  224. 2210  VTAB 18: HTAB 1: CALL  -958
  225. 2220  IF V >CD  THEN  PRINT : PRINT "LA DATA DEVE PRECEDERE QUELLA ODIERNA!":AF = 1: PRINT : GOSUB 70: RETURN 
  226. 2230 AF = 0: RETURN 
  227. 2240  PRINT "NON E' STATA IMMESSA UNA DATA INTERMEDIA"
  228. 2250  PRINT : PRINT "DEVI IMMETTERNE UNA PRIMA DI SCRIVERE ": PRINT "IL VALORE INTERMEDIO ";: PRINT "DEL TITOLO"
  229. 2260  GOSUB 70: RETURN 
  230. 2270  REM   * ROUTINE DI AGGIUNTA DI UN TITOLO *
  231. 2280  HOME : VTAB 5: HTAB 7: PRINT "NUOVA VOCE D'INVESTIMENTO": HTAB 7: PRINT "-------------------------": REM      25 TRATTINI   
  232. 2290  VTAB 10: HTAB 7: PRINT "SCRIVI IL NOME DEL TITOLO"
  233. 2300  GOSUB 600:I = S +1:ST$(I) = V$
  234. 2310 CH = 20 -.5 * LEN(ST$(I))
  235. 2320  VTAB 7: HTAB CH: PRINT ST$(I)
  236. 2330  HTAB CH: FOR X = 1 TO  LEN(ST$(I)): PRINT "-";: NEXT 
  237. 2340  VTAB 10: HTAB 1: CALL  -958: PRINT "SCRIVI LA DATA IN CUI E' STATO FATTO": PRINT "L'INVESTIMENTO"
  238. 2360  GOSUB 120: GOSUB 2220: IF AF  THEN AF = 0: GOTO 2340
  239. 2370 PD$ = V$:PV = V
  240. 2380  VTAB 10: HTAB 1: CALL  -958: PRINT "QUANTI TITOLI HAI ACQUISTATO?": GOSUB 940:NS = X
  241. 2390  VTAB 10: HTAB 1: CALL  -958: PRINT "SCRIVI PREZZO D'ACQUISTO": PRINT "SPESE E PROVVIGIONI COMPRESE"
  242. 2400  GOSUB 820
  243. 2410  IF Q = 1  THEN PP = NS *X: GOTO 2430
  244. 2420 PP = X
  245. 2430  VTAB 10: HTAB 1: CALL  -958: PRINT "VUOI SCRIVERE LA DATA IN CUI            L'INVESTIMENTO PAGHERA' DIVIDENDI       O INTERESSI? (S/N) -> ";: GET Q$
  246. 2440 S = S +1: IF Q$ = "N"  THEN ND$ = "": GOTO 2490
  247. 2450  IF Q$ < >"S"  THEN 2430
  248. 2460  VTAB 10: HTAB 1: CALL  -958: PRINT "SCRIVI LA DATA DEL PROSSIMO PAGAMENTO DIDIVIDENDO": GOSUB 120
  249. 2470 ND$ = V$
  250. 2480  REM    * Q1=ADD FLAG *
  251. 2490 IW = 0:IV = 0:ID$ = "NON IMMESSA":CF = 1:CF = 1:TI = 0:NI = 0:CG = 0:D = 0: GOTO 1730
  252. 2500  REM   *IMMISSIONE DELL'UTILE *
  253. 2510  IF D = 0  THEN 2550
  254. 2520  FOR X = 1 TO D
  255. 2530  IF DT(X) = 1  THEN UU$ = "DA " +ST$(I) +" NELL'ANNO DECORSO": GOSUB 3230: GOTO 2580
  256. 2540  NEXT 
  257. 2550  IF CD -PV >365  AND IV = 0  THEN UU$ = "DA " +ST$(I) +" NELL'ANNO DECORSO": GOSUB 3230: GOTO 2580
  258. 2560  IF IV = 0  THEN UU$ = "DA QUANDO " +ST$(I): GOSUB 3230: GOTO 2580
  259. 2570 UU$ = "DA " +ST$(I) +" DA QUANDO " +ID$: GOSUB 3230
  260. 2580  VTAB 19: HTAB 1: CALL  -958: IF ND$ < >""  THEN 2650
  261. 2590  PRINT "NON C'E' ALCUNA DATA DI PAGAMENTO DI    DIVIDENDO IMMESSA"
  262. 2600  INPUT "VUOI SCRIVERNE UNA? (S/N) -> ";Q$
  263. 2610  IF Q$ = "N"  THEN 2700
  264. 2620  IF Q$ < >"S"  THEN  PRINT B$: GOTO 2580
  265. 2630  VTAB 19: HTAB 1: CALL  -958: PRINT "SCRIVI LA DATA DEL PROSSIMO PAGAMENTO"
  266. 2640  GOSUB 120:ND$ = V$:CF = 1: GOTO 2700
  267. 2650  VTAB 19: HTAB 1: CALL  -958: PRINT "DATA DEL PROSS. PAG. DI DIV.: ";ND$: INPUT "VUOI CAMBIARLA? (S/N) ";Q$
  268. 2660  IF Q$ = "N"  THEN 2700
  269. 2670  IF Q$ < >"S"  THEN  PRINT B$: GOTO 2650
  270. 2680  VTAB 20: HTAB 1: CALL  -958: PRINT "SCRIVI LA DATA DEL PROSSIMO PAGAMENTO"
  271. 2690  GOSUB 70: GOSUB 120:ND$ = V$:CF = 1
  272. 2700  VTAB 16: HTAB 1: CALL  -958: IF D = 0  THEN  PRINT "E' STATO PAGATO UN UTILE?": GOTO 2720
  273. 2710  PRINT "E' STATO PAGATO QUALCHE ALTRO UTILE?"
  274. 2720  INPUT " (S/N) -> ";Q$
  275. 2730  IF Q$ = "N"  THEN 1120
  276. 2740  IF Q$ < >"S"  THEN  PRINT B$: GOTO 2700
  277. 2750  VTAB 16: HTAB 1: CALL  -958: PRINT "SCRIVI LA DATA DEL PAGAMENTO"
  278. 2760  GOSUB 120: GOSUB 2210
  279. 2770  IF AF  THEN AF = 0: GOTO 2750
  280. 2780 DV = V:DD$ = V$
  281. 2790  VTAB 16: HTAB 1: CALL  -958: PRINT "SCRIVI L'IMPORTO PAGATO"
  282. 2800  GOSUB 400:DA = X
  283. 2810 T$(1) = "DIVIDENDO DI AZIONE"
  284. 2820 T$(2) = "REDDITO DI CAPITALE":T$(3) = "UTILE NON TASSABILE"
  285. 2830  VTAB 15: HTAB 1: CALL  -958: PRINT "L'UTILE E' STATO": PRINT 
  286. 2840  FOR X = 1 TO 3
  287. 2850  PRINT X;") ";T$(X)
  288. 2860  NEXT 
  289. 2870  PRINT : INPUT "SCEGLI IL N. -> ";DT$:DT =  VAL(DT$)
  290. 2880  IF DT <1  OR DT >3  THEN  PRINT B$;: GOTO 2830
  291. 2900  VTAB 15: HTAB 1: CALL  -958: PRINT "L'UTILE E' STATO REINVESTITO? (S/N) ";: INPUT "";Y$
  292. 2910  VTAB 15: HTAB 1: CALL  -958:X = DA: GOSUB 280
  293. 2920  PRINT Z$;" PAGATE IL ";DD$: PRINT "COME ";T$(DT)
  294. 2940  IF Y$ = "S"  THEN  PRINT "L'UTILE E' STATO REINVESTITO": GOTO 2960
  295. 2950  PRINT "L'UTILE NON E' STATO REINVESTITO"
  296. 2960  GOSUB 80: VTAB 22: HTAB 36: GET Q$
  297. 2970  IF Q$ =  CHR$(27)  THEN 1120
  298. 2980  IF Q$ =  CHR$(8)  THEN 2700
  299. 2990  IF Q$ =  CHR$(13)  THEN  GOSUB 3020: GOSUB 3230: GOTO 2700
  300. 3000  PRINT B$: GOTO 2960
  301. 3010  REM   * GESTIONE DEL TIPO DI UTILE *
  302. 3020  VTAB 16: HTAB 1: CALL  -958
  303. 3030  IF DT = 1  AND CD -DV >365  THEN  RETURN 
  304. 3040 CF = 1
  305. 3050  IF DT = 1  AND Y$ = "S"  THEN DT = 2: GOTO 3120
  306. 3060  IF DT = 1  THEN DT = 3: GOTO 3120
  307. 3070  IF DT = 2  AND Y$ = "S"  THEN DT = 4: GOTO 3120
  308. 3080  IF DT = 2  THEN DT = 5: GOTO 3120
  309. 3100  IF DT = 3  AND Y$ = "S"  THEN DT = 7: GOTO 3120
  310. 3110 DT = 8
  311. 3120 D = D +1:DD$(D) = DD$:DV(D) = DV:DT(D) = DT:DA(D) = DA:CF = 1:AF = 1
  312. 3130  IF D = 1  THEN 3210
  313. 3140  FOR X = D TO 1  STEP  -1
  314. 3150  IF DV(X) >DV(X -1)  THEN 3210
  315. 3160 DD$ = DD$(X):DD$(X) = DD$(X -1):DD$(X -1) = DD$
  316. 3170 DV = DV(X):DV(X) = DV(X -1):DV(X -1) = DV
  317. 3180 DT = DT(X):DT(X) = DT(X -1):DT(X -1) = DT
  318. 3190 DA = DA(X):DA(X) = DA(X -1):DA(X -1) = DA
  319. 3200  NEXT X
  320. 3210  GOTO 4770
  321. 3220  REM   * LISTA L'UTILE *
  322. 3230  HOME : HTAB 7: INVERSE : PRINT "   ROUTINE D'IMMISSIONE   ": HTAB 7: PRINT "        DELL'UTILE        ": NORMAL 
  323. 3240  PRINT : IF D = 0  THEN  HTAB 5: PRINT "NON E' STATO PAGATO ALCUN UTILE": HTAB 5: PRINT UU$: HTAB 5: PRINT "E' STATO ACQUISTATO.": RETURN 
  324. 3250  HTAB 5: PRINT "E' STATO PAGATO IL SEGUENTE UTILE": HTAB 5: PRINT UU$
  325. 3260  PRINT : HTAB 4: PRINT "DATA"; TAB( 14);"IMPORTO"; TAB( 24);"DATA"; TAB( 34);"IMPORTO": PRINT 
  326. 3270  FOR Y = 1 TO 11  STEP 2
  327. 3280 X = DA(Y): GOSUB 280
  328. 3290  HTAB (9 - LEN(DD$(Y))): PRINT DD$(Y);: HTAB (20 - LEN(Z$)): PRINT Z$;
  329. 3300  IF Y = D  THEN  RETURN 
  330. 3310 X = DA(Y +1): GOSUB 280
  331. 3320  HTAB (29 - LEN(DD$(Y +1))): PRINT DD$(Y +1);: HTAB (40 - LEN(Z$)): PRINT Z$
  332. 3330  IF Y +1 = D  THEN  RETURN 
  333. 3340  NEXT : RETURN 
  334. 3350  HOME : INVERSE : HTAB 9: PRINT "      ANALISI DEL       "
  335. 3360  HTAB 9: PRINT "    TASSO DI REDDITO    ": NORMAL : VTAB 5: HTAB 8
  336. 3370  PRINT "QUESTA ANALISI E' PER ";NS
  337. 3380  HTAB 8: PRINT "TITOLI DI ";ST$(I)
  338. 3390  VTAB 10: HTAB 1: PRINT "SCRIVI IL PREZZO CORRENTE": GOSUB 820
  339. 3400  IF Q = 1  THEN CW = X *NS: GOTO 3420
  340. 3410 CW = X
  341. 3420  VTAB 10: HTAB 1: CALL  -958: PRINT "SCRIVI LA TUA ALIQUOTA D'IMPOSTA (0-50%)": PRINT : HTAB 8: INPUT "-> ";TX$:TX =  VAL(TX$)
  342. 3430  IF TX <0  OR TX >50  THEN  PRINT B$: GOTO 3420
  343. 3440  VTAB 10: HTAB 1: CALL  -958: HTAB 9: PRINT "LA TUA ALIQUOTA D'IMPOSTA E' ";TX;"%": PRINT : GOSUB 30
  344. 3450  IF Q$ = "N"  THEN 3420
  345. 3460 TX = TX/100
  346. 3470  VTAB 10: HTAB 1: CALL  -958: PRINT "VUOI LA STAMPA DELL'";: INPUT "ANALISI? (S/N) -> ";Q$
  347. 3480  IF Q$ = "N"  THEN CF = 0: GOTO 3510
  348. 3490  IF Q$ < >"S"  THEN  PRINT B$: GOTO 3470
  349. 3500 CF = 1
  350. 3510 EV = CD:SV = PV:EW = CW:QP = TI:I2 = NI:BW = PP:SD$ = PD$:ED$ = CD$
  351. 3520  IF D = 0  THEN 3620
  352. 3530  FOR X = 1 TO D
  353. 3540  IF DT(X) = 2  OR DT(X) = 3  OR DT(X) = 4  OR DT(X) = 5  THEN QP = QP +DA(X): REM  TASSABILE
  354. 3550  IF DT(X) = 2  OR DT(X) = 4  OR DT(X) = 7  THEN BW = BW +DA(X): REM   REINVESTITO 
  355. 3590  IF DT(X) = 7  OR DT(X) = 8  THEN I2 = I2 +DA(X): REM  NON TASSABILE
  356. 3610  NEXT X
  357. 3620  GOSUB 4210
  358. 3630  IF CF = 0  AND IV = 0  THEN  GOSUB 4050: GOSUB 70: RETURN 
  359. 3640  IF CF = 0  THEN  GOSUB 4050: GOSUB 70: GOTO 3670
  360. 3650  GOSUB 3910
  361. 3660  IF (IV = A)  THEN 3900
  362. 3670 EV = IV:SV = PV:EW = IW:BW = PP:QP = TI:I2 = NI:I3 = CG:SD$ = PD$:ED$ = ID$
  363. 3680  IF D = 0  THEN 3720
  364. 3720  GOSUB 4210
  365. 3730  IF CF = 0  THEN  GOSUB 4050: GOSUB 70: GOTO 3750
  366. 3740  GOSUB 4440: GOSUB 3970
  367. 3750 EV = CD:SV = IV:EW = CW:BW = IW:QP = 0:I2 = 0:I3 = 0:SD$ = ID$:ED$ = CD$
  368. 3760  IF D = 0  THEN 3870
  369. 3770  FOR X = 1 TO D
  370. 3790  IF DT(X) = 2  OR DT(X) = 3  OR DT(X) = 4  OR DT(X) = 5  THEN QP = QP +DA(X): REM   TASSABILE  
  371. 3840  IF DT(X) = 7  OR DT(X) = 8  THEN I2 = I2 +DA(X)
  372. 3860  NEXT X
  373. 3870  GOSUB 4210
  374. 3880  IF CF = 0  THEN  GOSUB 4050: GOSUB 70: RETURN 
  375. 3890  GOSUB 4440: GOSUB 3970
  376. 3900  GOSUB 4440: HTAB 5: PRINT UL$:CF = 0: PRINT D$"PR#0": RETURN 
  377. 3910  GOSUB 4440
  378. 3920  HTAB (26 -.5 *( LEN(ST$(I)) + LEN( STR$(NS)) + LEN(PD$))): PRINT NS;" TITOLI DI ";ST$(I);" ACQUISTATI IL ";PD$
  379. 3930  HTAB 32: PRINT "ALIQUOTA D'IMPOSTA  ";TX$
  380. 3940  HTAB 32: FOR X = 1 TO (10 + LEN( STR$(TX))): PRINT "-";: NEXT : PRINT 
  381. 3950  IF IV < >0  THEN 3970
  382. 3960  PRINT : HTAB 1: PRINT "NON C'E' ALCUNA DATA INTERMEDIA IMMESSA"
  383. 3970  PRINT : HTAB 1: PRINT "**** PER IL PERIODO DAL ";SD$;" AL ";ED$;"****"
  384. 3980  HTAB 16: PRINT "LA BASE D'INVESTIMENTO IL ";SD$;" ERA ";BW$
  385. 3990  HTAB 11: PRINT "IL VALORE DELL'INVESTIMENTO IL ";ED$;" ERA ";EW$
  386. 4000  HTAB 2: PRINT "DIV/INT. TASSABILE"; SPC( ((12 - LEN(QP$)) > -1) *(12 - LEN(QP$)));;QP$; SPC( 10);"DIV/INT. ESENTE"; SPC( ((12 - LEN(I2$)) > -1) *(12 - LEN(I2$)));I2$
  387. 4010  HTAB 2: PRINT "PLUSV. SU CAPITALE"; SPC( ((12 - LEN(CG$)) > -1) *(12 - LEN(CG$)));CG$
  388. 4020  HTAB 2: PRINT "REDDITO LORDO"; SPC( ((12 - LEN(TR$)) > -1) *(12 - LEN(TR$)));TR$; SPC( 10);"REDDITO LORDO IN %"; SPC( ((12 - LEN(Y1$)) > -1) *(12 - LEN(Y1$)));Y1$
  389. 4030  HTAB 2: PRINT "REDDITO NETTO"; SPC( ((12 - LEN(AX$)) > -1) *(12 - LEN(AX$)));AX$; SPC( 10);"REDDITO NETTO IN %"; SPC( ((12 - LEN(Y2$)) > -1) *(12 - LEN(Y2$)));Y2$
  390. 4040  PRINT D$"PR#0": PRINT D$: RETURN 
  391. 4050  HOME : PRINT NS;" TITOLI DI ";ST$(I)
  392. 4060  PRINT : PRINT "ACQUISTATI IL ";PD$;". L'ALIQUOTA": PRINT "D'IMPOSTA E' ";TX$
  393. 4070  IF IV < >0  THEN 4090
  394. 4080  PRINT : PRINT "NON C'E' ALCUNA DATA INTERMEDIA IMMESSA"
  395. 4090  PRINT : PRINT "PER IL PERIODO ";SD$;" AL ";ED$
  396. 4100  PRINT : PRINT SD$;" BASE=";BW$
  397. 4110  PRINT ED$;" VALORE=";EW$
  398. 4120  PRINT : PRINT "DIV/INT. TASSABILE"; TAB( 35 - LEN(QP$));QP$
  399. 4130  PRINT "DIV/INT. ESENTE" TAB( 35 - LEN(I2$));I2$
  400. 4150  PRINT "PLUSVAL. SU CAPITALE"; TAB( 35 - LEN(CG$));CG$
  401. 4160  PRINT "REDDITO LORDO"; TAB( 35 - LEN(TR$));TR$
  402. 4170  PRINT "REDDITO LORDO IN %"; TAB( 35 - LEN(Y1$));Y1$
  403. 4180  PRINT "REDDITO NETTO"; TAB( 35 - LEN(AX$));AX$
  404. 4190  PRINT "REDDITO NETTO IN %"; TAB( 35 - LEN(Y2$));Y2$
  405. 4200  RETURN 
  406. 4210  IF (CD -PV) <365  THEN CT = 1: GOTO 4230
  407. 4230 TR = EW -BW +QP
  408. 4240 TA = TX *TR
  409. 4250 AX = TR -TA:Y = 365/(EV -SV)
  410. 4260 X = (TR +BW)/BW: GOSUB 4400:Y1$ = Z$
  411. 4270 X = (AX +BW)/BW: GOSUB 4400:Y2$ = Z$
  412. 4280 X = PP: GOSUB 280:PP$ = Z$
  413. 4290 X = IW: GOSUB 280:IW$ = Z$
  414. 4300 X = QP: GOSUB 280:QP$ = Z$
  415. 4310 X = (EW -BW): GOSUB 280:CG$ = Z$
  416. 4320 X = TR: GOSUB 280:TR$ = Z$
  417. 4330 X = AX: GOSUB 280:AX$ = Z$
  418. 4340 X = BW: GOSUB 280:BW$ = Z$
  419. 4350 X = I2: GOSUB 280:I2$ = Z$
  420. 4370 X = EW: GOSUB 280:EW$ = Z$
  421. 4380 TX$ =  STR$(TX *100) +"%"
  422. 4390  RETURN 
  423. 4400  IF X <1  THEN DF = 1
  424. 4410 V = (X ^Y) -1:Z =  INT(1000 *(V +.0005))/10
  425. 4420  IF DF  THEN DF = 0:Z$ = "(" + STR$(Z) +"%)": RETURN 
  426. 4430 Z$ =  STR$(Z) +"%": RETURN 
  427. 4440  PRINT D$"PR#1": PRINT  CHR$(9)"80N": RETURN 
  428. 4450  REM   * DEPENNA VOCE TITOLO *
  429. 4460  HOME : INVERSE : VTAB 5: HTAB 10: PRINT "ROUTINE ELIMINAZIONE VOCE": NORMAL 
  430. 4470  VTAB 8: PRINT "VUOI ";: INVERSE : PRINT "DEPENNARE ";ST$(I): NORMAL 
  431. 4480  PRINT : PRINT : INPUT "E' GIUSTO COSI'? (S/N) ";Q$
  432. 4490  IF Q$ = "N"  THEN 1120
  433. 4500  IF Q$ < >"S"  THEN  PRINT B$: GOTO 4460
  434. 4510  VTAB 10: HTAB 1: CALL  -958: PRINT "VUOI UN'ANALISI FINALE PRIMA CHE LA     VOCE SIA DEPENNATA? ";: INPUT "";Q$
  435. 4520  IF Q$ = "N"  THEN 4570
  436. 4530  IF Q$ < >"S"  THEN  PRINT B$: GOTO 4510
  437. 4540  GOSUB 3350
  438. 4550  HOME : PRINT "VUOI CONTINUARE A DEPENNARE"
  439. 4560  PRINT "IL ";ST$(I);" FILE? ";: INPUT "";Q$: IF Q$ < >"S"  THEN 1120
  440. 4570  PRINT DE$;ST$(I): PRINT DE$;"LISTA.TITOLI": IF (S -1) = 0  THEN S = 0: GOTO 5430
  441. 4580  FOR X = I TO S
  442. 4590 ST$(X) = ST$(X +1)
  443. 4600  NEXT 
  444. 4610 S = S -1
  445. 4620  GOSUB 5140:CF = 0:I = 0: GOTO 1120
  446. 4630 IW = 0
  447. 4640  REM   * LEGGE I FILE DEI TITOLI *
  448. 4650  HOME : VTAB 10: HTAB 5: PRINT "STO LEGGENDO IL FILE ";ST$(I)
  449. 4660  PRINT OP$;ST$(I)
  450. 4670  PRINT RD$;ST$(I)
  451. 4680  INPUT PD$,PV,NS,PP,ID$,IV,IW,D,ND$,TI,NI,CG
  452. 4690  IF D = 0  THEN 4730
  453. 4700  FOR X = 1 TO D
  454. 4710  INPUT DT(X),DD$(X),DV(X),DA(X)
  455. 4720  NEXT 
  456. 4730  PRINT CL$;ST$(I)
  457. 4740 AF = 1: IF IV = 0  THEN 4770
  458. 4750  IF CD -IV >365  THEN IV = 0:ID$ = "NON CE N'E' ALCUNO IMMESSO":IW = 0
  459. 4760  REM   *CONTROLLO DATA DIV. *
  460. 4770  IF D = 0  THEN 4970
  461. 4780  IF IV = 0  AND CD -DV(1) <365  THEN 4970
  462. 4790 X = 1
  463. 4800  IF X >D  THEN 4970
  464. 4810  IF IV = 0  THEN 4840
  465. 4820  IF DV(X) >IV  THEN 4970
  466. 4840 CF = 1: REM  IF DT(X) = 1 THEN 4920   
  467. 4850  IF DT(X) = 2  THEN PP = PP +DA(X):TI = TI +DA(X): GOTO 4920
  468. 4860  IF DT(X) = 3  THEN TI = TI +DA(X): GOTO 4920
  469. 4870  IF DT(X) = 4  THEN CG = CG +DA(X):PP = PP +DA(X): GOTO 4920
  470. 4880  IF DT(X) = 5  THEN CG = CG +DA(X): GOTO 4920
  471. 4890  IF DT(X) = 6  THEN PP = PP -DA(X): GOTO 4920
  472. 4900  IF DT(X) = 7  THEN PP = PP +DA(X):NI = NI +DA(X): GOTO 4920
  473. 4910 NI = NI +DA(X)
  474. 4920  FOR Y = X TO D
  475. 4930 Z = Y +1
  476. 4940 DT(Y) = DT(Z):DD$(Y) = DD$(Z):DV(Y) = DV(Z):DA(Y) = DA(Z)
  477. 4950  NEXT 
  478. 4960 D = D -1: GOTO 4770
  479. 4970  IF AF  THEN AF = 0: RETURN 
  480. 4980  IF CF  THEN CF = 0: GOSUB 5010
  481. 4990  RETURN 
  482. 5000  REM   * SCRIVE I FILE DEI TITOLI *
  483. 5010  HOME : VTAB 10: HTAB 5: PRINT "STO SCRIVENDO IL FILE ";ST$(I)
  484. 5020  PRINT OP$;ST$(I)
  485. 5030  PRINT CL$;ST$(I)
  486. 5040  PRINT DE$;ST$(I)
  487. 5050  PRINT OP$;ST$(I)
  488. 5060  PRINT WR$;ST$(I)
  489. 5070  PRINT PD$: PRINT PV: PRINT NS: PRINT PP: PRINT ID$: PRINT IV: PRINT IW: PRINT D: PRINT ND$: PRINT TI: PRINT NI: PRINT CG
  490. 5080  IF D = 0  THEN 5120
  491. 5090  FOR W = 1 TO D
  492. 5100  PRINT DT(W): PRINT DD$(W): PRINT DV(W): PRINT DA(W)
  493. 5110  NEXT 
  494. 5120  PRINT CL$;ST$(I): RETURN 
  495. 5130  REM   * SCRIVE LA LISTA DEI TITOLI *
  496. 5140  HOME : VTAB 10: HTAB 5: PRINT "STO SCRIVENDO LISTA.TITOLI"
  497. 5150  PRINT OP$;"LISTA.TITOLI"
  498. 5160  PRINT CL$;"LISTA.TITOLI"
  499. 5170  PRINT DE$;"LISTA.TITOLI"
  500. 5180  PRINT OP$;"LISTA.TITOLI"
  501. 5190  PRINT WR$;"LISTA.TITOLI"
  502. 5200  PRINT S
  503. 5210  FOR X = 1 TO S
  504. 5220  PRINT ST$(X)
  505. 5230  NEXT 
  506. 5240  PRINT CL$;"LISTA.TITOLI"
  507. 5250  RETURN 
  508. 5260  REM   * INIZIALIZZAZIONE *
  509. 5270  ONERR  GOTO 5510
  510. 5280 D$ =  CHR$(4):B$ =  CHR$(7) + CHR$(7) + CHR$(7):M$ =  CHR$(91) +" " + CHR$(93)
  511. 5290 OP$ = D$ +"OPEN ":RD$ = D$ +"READ ":WR$ = D$ +"WRITE ":CL$ = D$ +"CLOSE ":DE$ = D$ +"DELETE "
  512. 5300  DIM ST$(96),DD$(13),DV(13),DA(13),DT(13)
  513. 5310  PRINT D$;"VERIFY LISTA.TITOLI"
  514. 5320  PRINT OP$;"LISTA.TITOLI"
  515. 5330  PRINT RD$;"LISTA.TITOLI"
  516. 5340  INPUT S
  517. 5350  IF S = 0  THEN 5390
  518. 5360  FOR I = 1 TO S
  519. 5370  INPUT ST$(I)
  520. 5380  NEXT 
  521. 5390  PRINT CL$;"LISTA.TITOLI"
  522. 5400  FOR X = 1 TO 65:UL$ = UL$ +"-": NEXT 
  523. 5410 I = 0: GOTO 1050
  524. 5420  REM   * NESSUN TITOLO IMMESSO *
  525. 5430  HOME : VTAB 5: HTAB 1: INVERSE : PRINT "NON CI SONO TITOLI IMMESSI.           "
  526. 5440  PRINT "TRASFERISCO ALLA ROUTINE D'IMMISSIONE.": NORMAL 
  527. 5450 Q1 = 1: GOSUB 70
  528. 5460  GOTO 2280
  529. 5470  REM   * AVVERTIMENTO DI LISTA DI TITOLI LUNGA *
  530. 5480  HOME : VTAB 5: PRINT "NELLA TUA LISTA CI SONO 96 TITOLI": PRINT "E' IL MASSIMO CHE SI PUO' IMMAGAZZINARE"
  531. 5490  PRINT "DOVRAI DEPENNARE UN TITOLO DALLA ": PRINT "LISTA PRIMA DI POTERNE AGGIUNGERE": PRINT "UN ALTRO"
  532. 5500  PRINT : GOSUB 70: RETURN 
  533. 5510  REM   * INIZIALIZZA FILE LISTA TITOLI *
  534. 5520  IF  PEEK(222) < >6  THEN 5580
  535. 5530  IF  PEEK(222) = 6  THEN  PRINT D$;"OPEN LISTA.TITOLI"
  536. 5540  PRINT D$;"WRITE LISTA.TITOLI"
  537. 5550  PRINT 0
  538. 5560  PRINT D$;"CLOSE LISTA.TITOLI"
  539. 5570  GOTO 5320
  540. 5580  VTAB 20: HTAB 1: CALL  -958: PRINT "L'ERRORE N. "; PEEK(222);" E' AVVENUTO"
  541. 5590  PRINT "ALLA LINEA N. ";( PEEK(218) +( PEEK(219) *256))
  542. 5600  GOSUB 70:I = 0: GOTO 1120
  543. 5700  CALL  -936: VTAB 10: HTAB 11: INVERSE : PRINT "1";: NORMAL : PRINT " - MENU APPLEDISK"
  544. 5710  PRINT : HTAB 11: INVERSE : PRINT "2";: NORMAL : PRINT " - FINE"
  545. 5720  VTAB 15: HTAB 18: PRINT "< >";
  546. 5730  VTAB 15: HTAB 19: GET A$: PRINT A$: IF A$ < >"1"  AND A$ < >"2"  THEN 5730
  547. 5740  IF A$ = "1"  THEN  PRINT  CHR$(4)"RUN HELLO2": END 
  548. 5750  RETURN