home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib22a.dsk / DECEMBER.1984 / STOCK.ANALYST.bas < prev   
BASIC Source File  |  2023-02-26  |  25KB  |  524 lines

  1. 10  REM  *********2.22.85********
  2. 20  REM  *    STOCK.ANALYST     *
  3. 30  REM  *     BY JIM GANZ      *
  4. 40  REM  *  COPYRIGHT (C) 1984  *
  5. 50  REM  *  BY MICROSPARC, INC  *
  6. 60  REM  *  CONCORD, MA. 01742  *
  7. 70  REM  ************************
  8. 80  GOTO 4310
  9. 90  REM  LINE UP DECIMAL POINTS
  10. 100  POKE 36,HT - LEN(X$)
  11. 110  RETURN 
  12. 120  REM  DOLLAR FORMATTER
  13. 130 NF = (X <0):X$ =  STR$( ABS( INT((.005 +X) *100)/100))
  14. 140  IF  INT( VAL(X$)) =  INT((.005 +X) *100)/100  THEN X$ = X$ +".00"
  15. 150  IF  LEN(X$) = 2  AND  LEFT$(X$,1) = "."  THEN X$ = X$ +"0"
  16. 160  IF  MID$ (X$, LEN(X$) -2,1) < >"."  THEN X$ = X$ +"0"
  17. 170  IF X >0  AND X <1  THEN X$ = "0" +X$
  18. 180  IF X <0  AND X > -1  THEN X$ = "-0" + RIGHT$(X$, LEN(X$) -1)
  19. 190 MAX = 4:PN = 0: FOR Y =  LEN(X$) -3 TO 1  STEP  -1:L$ =  LEFT$(X$,Y):R$ =  RIGHT$(X$, LEN(X$) -Y)
  20. 200 PN = PN +1: IF PN = MAX  THEN X$ = L$ +"," +R$:PN = 0:MAX = 3
  21. 210  NEXT : IF NF  THEN X$ = "-" +X$
  22. 220  RETURN 
  23. 230  REM  FRACTION EVALUATION
  24. 240 NUM = 0:DEN = 0
  25. 250  FOR F = 1 TO  LEN(X$): IF  MID$ (X$,F,1) =  CHR$(32)  THEN FF =  VAL( LEFT$(X$,F)):RF = F:F =  LEN(X$): NEXT : GOTO 270
  26. 260  NEXT :X =  VAL(X$): RETURN 
  27. 270 NUM =  VAL( MID$ (X$,RF +1,1))
  28. 280 DEN =  VAL( RIGHT$(X$,1))
  29. 290 X =  ABS(FF) +NUM/DEN: IF FF <0  THEN X =  -X
  30. 300  RETURN 
  31. 310  REM  INDEX OF STOCKS
  32. 320  HOME 
  33. 330  IF   NOT REC  THEN  VTAB 12: HTAB 12: FLASH : CALL BALL: PRINT "NO STOCKS ON FILE": NORMAL : FOR X = 1 TO 2500: NEXT : POP : GOTO 4710
  34. 340  VTAB 2: HTAB 1: PRINT  LEFT$(F3$,11)" INDEX OF STOCKS " LEFT$(F3$,12)
  35. 350 START = 1:OSTART = START
  36. 360  VTAB 18: PRINT F3$: PRINT PRMPT$: VTAB 4: POKE TL,3: POKE BL,15: POKE 34,1: POKE 35,17
  37. 370 FLAG = (REC >10)
  38. 380  FOR X = START TO START +9
  39. 390  IF X < >REC  THEN 430
  40. 400  IF X = START +9  OR X = REC  THEN  PRINT  TAB( 4 - LEN( STR$(X)))X") "ST$(X,0);: CALL  -868: HTAB 40 - LEN(ST$(X,1)): PRINT ST$(X,1)
  41. 410 X = START +9: NEXT : IF FLAG  THEN OSTART = START:START = 1
  42. 420  GOTO 450
  43. 430  PRINT  TAB( 4 - LEN( STR$(X)))X") "ST$(X,0);: CALL  -868: HTAB 40 - LEN(ST$(X,1)): PRINT ST$(X,1): NEXT 
  44. 440 OSTART = START:START = X
  45. 450  CALL  -958: VTAB 15: IF FLAG  THEN  PRINT  TAB( 4)"SEE MORE OF THE LIST"
  46. 460  PRINT  TAB( 4)"RETURN TO PREVIOUS MENU"
  47. 470  IF   NOT FLAG  THEN  POKE LL,3: GOTO 490
  48. 480  POKE LL,14
  49. 490  CALL CUR +26
  50. 500  IF FLAG  AND  PEEK(LL) = 12  THEN  VTAB 4: GOTO 380
  51. 510  IF  PEEK(LL) = 12  OR (FLAG  AND  PEEK(LL) = 13)  THEN  POP : GOTO 4710
  52. 520 ST$ = ST$(OSTART + PEEK(LL) -1,0)
  53. 530  TEXT : RETURN 
  54. 540  REM  SELECT OUTPUT DEVICE
  55. 550  IF OD$ = "SCREEN"  THEN  RETURN 
  56. 560  IF PD$ = "NO"  THEN  GOSUB 580: PRINT D$"PR#"PS: RETURN 
  57. 570  VTAB 12: INPUT "ENTER BINARY DRIVER CALL (DECIMAL):";X: GOSUB 580: CALL X: RETURN 
  58. 580  VTAB 12: HTAB 1: CALL  -868: PRINT "POSITION PAPER THEN PRESS ";: INVERSE : PRINT "RETURN";: NORMAL : POKE CB,0: INPUT " ";X$: HOME : RETURN 
  59. 590  REM  SORT STOCK NAMES
  60. 600 SFLAG = 1: FOR X = 1 TO REC -1: IF ST$(X,0) >ST$(X +1,0)  THEN X$ = ST$(X,0):Y$ = ST$(X,1):ST$(X,0) = ST$(X +1,0):ST$(X,1) = ST$(X +1,1):ST$(X +1,0) = X$:ST$(X +1,1) = Y$:SFLAG = 2
  61. 610  NEXT : ON SFLAG GOTO 630,600
  62. 620  REM  UPDATE INDEXFILE
  63. 630  PRINT : PRINT D$"OPEN"FI$",S"DS",D"DD
  64. 640  PRINT D$"WRITE"FI$
  65. 650  PRINT REC
  66. 660  FOR X = 1 TO REC
  67. 670  PRINT ST$(X,0): NEXT 
  68. 680  PRINT D$"CLOSE"
  69. 690  IF DFLAG  THEN DFLAG = 0: RETURN 
  70. 700  PRINT D$"OPENSP."NM$",L55,S"DS",D"DD
  71. 710  PRINT D$"WRITESP."NM$",R0"
  72. 720  FOR X = 0 TO 7: PRINT S$(X): NEXT : PRINT 0
  73. 730  PRINT D$"CLOSE"
  74. 740  RETURN 
  75. 750  REM  INITIALIZE A STOCK
  76. 760  HOME 
  77. 770  HTAB 8: PRINT "** STOCK INITIALIZATION **"
  78. 780  VTAB 4: HTAB 1: PRINT " COMPANY: " LEFT$(F5$,12);: HTAB 11: INPUT "";NM$
  79. 790 NM$ =  LEFT$(NM$,12): IF NM$ = ""  THEN  CALL BELL: GOTO 780
  80. 800  FOR I = 1 TO  LEN(NM$):K =  ASC( MID$ (NM$,I,1)): IF (K >47  AND K <58)  OR (K >64  AND K <91)  OR K = 46  THEN  NEXT : GOTO 820
  81. 810  CALL BELL:I =  LEN(NM$): NEXT : VTAB 4: HTAB 1: PRINT "LETTERS, DIGITS, OR PERIODS (.) ONLY!": FOR I = 1 TO 1500: NEXT : VTAB 4: HTAB 1: CALL  -868: GOTO 780
  82. 820  VTAB 4: HTAB 11: PRINT NM$;: CALL  -868: PRINT 
  83. 830  IF CFLAG  THEN  RETURN 
  84. 840  VTAB 5: PRINT " ABBREVIATION: " LEFT$(F5$,8);: HTAB 16: INPUT "";S$(0)
  85. 850 S$(0) =  LEFT$(S$(0),8): IF S$(0) = ""  THEN  CALL BELL: GOTO 840
  86. 860  VTAB 5: HTAB 16: PRINT S$(0);: CALL  -868: PRINT 
  87. 870  IF CFLAG  THEN  RETURN 
  88. 880  VTAB 6: PRINT " EXCHANGE:": PRINT 
  89. 890  FOR X = 0 TO 14: HTAB 8 - LEN(EX$(X,0)): PRINT EX$(X,0) LEFT$(F4$,5)EX$(X,1): NEXT 
  90. 900  VTAB 24: PRINT PRMPT$;
  91. 910  CALL CUR,8,22
  92. 920 S$(1) =  STR$( PEEK(LL) -1)
  93. 930  VTAB 6: HTAB 12: PRINT EX$( VAL(S$(1)),1): CALL  -958
  94. 940  IF CFLAG  THEN  RETURN 
  95. 950  VTAB 8: INPUT " DATE OF PURCHASE (MM/DD/YY): ";S$(2)
  96. 960  IF  LEN(S$(2)) <6  OR  LEN(S$(2)) >8  THEN  CALL BELL: GOTO 950
  97. 970  VTAB 8: HTAB 18: PRINT ": "S$(2);: CALL  -868
  98. 980  IF CFLAG  THEN  VTAB 11: HTAB 21: PRINT S$(2)": $"S$(4);: CALL  -868: PRINT : RETURN 
  99. 990  VTAB 9: HTAB 1: INPUT " NUMBER OF SHARES ACQUIRED: ";S$(3)
  100. 1000  IF S$(3) = ""  THEN  CALL BELL: GOTO 990
  101. 1010  IF CFLAG  THEN  RETURN 
  102. 1020  VTAB 11: PRINT " PRICE PER SHARE ON "S$(2);: INPUT ": $";S$(4)
  103. 1030  IF S$(4) = ""  THEN  CALL BELL: GOTO 1020
  104. 1040  IF CFLAG  THEN  RETURN 
  105. 1050  VTAB 12: INPUT " AGENT'S COMMISSION: $";S$(5)
  106. 1060 X =  VAL(S$(5)): GOSUB 130: VTAB 12: HTAB 23: PRINT X$;: CALL  -868: PRINT 
  107. 1070  IF CFLAG  THEN  RETURN 
  108. 1080  VTAB 13: INPUT " ODD LOT COST: $";S$(6)
  109. 1090 X =  VAL(S$(6)): GOSUB 130: VTAB 13: HTAB 17: PRINT X$;: CALL  -868: PRINT 
  110. 1100  IF CFLAG  THEN  RETURN 
  111. 1110  VTAB 14: INPUT " SECURITY EXCHANGE FEE: $";S$(7)
  112. 1120 X =  VAL(S$(7)): GOSUB 130: VTAB 14: HTAB 26: PRINT X$;: CALL  -868: PRINT 
  113. 1130  IF CFLAG  THEN  RETURN 
  114. 1140  VTAB 18: PRINT  TAB( 4)"THE ABOVE INFORMATION IS CORRECT"
  115. 1150  PRINT  TAB( 4)"MAKE CORRECTIONS TO THE ABOVE DATA"
  116. 1160  PRINT  TAB( 4)"EXIT TO THE MAIN MENU"
  117. 1170  VTAB 22: PRINT PRMPT$
  118. 1180  CALL CUR,18,20
  119. 1190  VTAB 18: CALL  -958: ON  PEEK(LL) GOTO 1200,1260,4710
  120. 1200  VTAB 18: CALL  -958: PRINT  TAB( 6) LEFT$(F1$,30): PRINT  TAB( 6)"STAND BY WHILE FILE IS CREATED": PRINT  TAB( 6) LEFT$(F1$,30): VTAB 17
  121. 1210 REC = REC +1
  122. 1220 ST$(REC,0) = NM$:ST$(REC,1) = S$(2)
  123. 1230  IF REC >1  THEN  GOSUB 600: GOTO 4710
  124. 1240  GOSUB 630: GOTO 4710
  125. 1250  REM  MAKE CHANGES
  126. 1260 CFLAG = 1
  127. 1270  VTAB 16: PRINT " SAVE INFORMATION TO DISK": PRINT " RETURN TO MAIN MENU": VTAB 20: PRINT PRMPT$
  128. 1280  POKE TL,3: POKE BL,16: POKE LL,15: CALL CUR +26
  129. 1290  ON  PEEK(LL) GOSUB 780,840,1320,4710,950,990,4710,1020,1050,1080,1110
  130. 1300  IF  PEEK(LL) = 13  OR  PEEK(LL) = 14  THEN CFLAG = 0: ON  PEEK(LL) = 13 GOTO 1200: ON  PEEK(LL) = 14 GOTO 4710
  131. 1310  POKE LL, PEEK(LL) -1 + PEEK(TL): CALL CUR +26: GOTO 1290
  132. 1320  VTAB 20: CALL  -958: PRINT "WILL YOU MAKE ANY OTHER CHANGES BESIDES THAT TO 'EXCHANGE' (Y/N)? ";
  133. 1330  GET X$: IF X$ < >"Y"  AND X$ < >"N"  THEN  CALL BELL: GOTO 1330
  134. 1340  PRINT X$: IF X$ = "N"  THEN 1370
  135. 1350  VTAB 20: CALL  -958: FLASH : PRINT " PLEASE MAKE ALL OTHER CHANGES FIRST ": NORMAL 
  136. 1360  FOR X = 1 TO 2500: NEXT : POP : GOTO 1260
  137. 1370  VTAB 6: CALL  -958: GOSUB 880: GOTO 1200
  138. 1380  REM  STATUS UPDATE
  139. 1390  GOSUB 320:Z = OSTART + PEEK(LL) -1
  140. 1400  PRINT D$"OPENSP."ST$",L55,S"DS",D"DD
  141. 1410  PRINT D$"READSP."ST$",R0"
  142. 1420  FOR X = 0 TO 7: INPUT S$(X): NEXT : INPUT SREC:SHARES =  VAL(S$(3))
  143. 1425  IF SREC > = 20  THEN  PRINT D$;"CLOSE SP."ST$: HOME : VTAB 8: PRINT "20 UPDATES HAVE BEEN MADE TO THIS FILE. START ANOTHER FILE WITH ANOTHER NAME.": CALL BELL: FOR I = 1 TO 3000: NEXT : GOTO 4710
  144. 1430  ON   NOT SREC GOTO 1480: FOR X = 1 TO SREC
  145. 1440  PRINT D$"READSP."ST$",R"X
  146. 1450  FOR S = 1 TO 4: INPUT X$: NEXT 
  147. 1460 SHARES = SHARES + VAL(X$)
  148. 1470  NEXT 
  149. 1480  PRINT D$"CLOSE": HOME 
  150. 1490  HTAB 8: PRINT "** UPDATE STOCK STATUS **"
  151. 1500  VTAB 3: PRINT ST$" ("S$(0)")"
  152. 1510  PRINT "EXCHANGE: "EX$( VAL(S$(1)),1)
  153. 1520  PRINT "NUMBER OF SHARES OWNED: "SHARES
  154. 1530  VTAB 7: PRINT  TAB( 5)"UPDATE THIS STOCK": PRINT  TAB( 5)"DELETE THIS STOCK FROM FILE": PRINT  TAB( 5)"RETURN TO MAIN MENU"
  155. 1540  PRINT : PRINT PRMPT$: CALL CUR,7,9
  156. 1550  ON  PEEK(LL) GOTO 1590,1560,4710
  157. 1560 ST$(Z,0) = ST$(REC,0):ST$(Z,1) = ST$(REC,1):REC = REC -1
  158. 1570  PRINT D$"DELETESP."ST$",S"DS",D"DD
  159. 1580 DFLAG = 1: GOTO 1230
  160. 1590  VTAB 7: CALL  -958: INPUT "TODAY'S DATE (MM/DD/YY): ";U$(2)
  161. 1600  IF  LEN(U$(2)) <6  OR  LEN(U$(2)) >8  THEN  CALL BELL: GOTO 1590
  162. 1610  VTAB 8: INPUT "PRICE PER SHARE: $";U$(4)
  163. 1620  IF U$(4) = ""  THEN  CALL BELL: GOTO 1610
  164. 1630  VTAB 10: PRINT "TODAY, I AM..."
  165. 1640  VTAB 12: PRINT  TAB( 4)"NOT MAKING ANY TRANSACTIONS"
  166. 1650  PRINT  TAB( 4)"PURCHASING MORE SHARES OF THIS STOCK"
  167. 1660  PRINT  TAB( 4)"ACQUIRING SHARES THROUGH A SPLIT"
  168. 1670  PRINT  TAB( 4)"ACQUIRING SHARES THROUGH A DIVIDEND"
  169. 1680  PRINT  TAB( 4)"SELLING SHARES OF THIS STOCK"
  170. 1690  VTAB 19: PRINT PRMPT$
  171. 1700  CALL CUR,12,16
  172. 1710  VTAB 10: CALL  -958
  173. 1720  ON  PEEK(LL) GOTO 2010,1730,1730,1730,1920
  174. 1730  REM  * BUY
  175. 1740  VTAB 10: INPUT "NUMBER OF SHARES ACQUIRED: ";U$(3)
  176. 1750  IF U$(3) = ""  THEN  CALL BELL: GOTO 1740
  177. 1760  ON  PEEK(LL) -2 GOTO 1860,1890
  178. 1770  VTAB 11: INPUT "AGENT'S COMMISSION: $";U$(5)
  179. 1780 X =  VAL(U$(5)): GOSUB 130: VTAB 11: HTAB 22: PRINT X$
  180. 1790  VTAB 12: INPUT "ODD LOT COST: $";U$(6)
  181. 1800 X =  VAL(U$(6)): GOSUB 130: VTAB 12: HTAB 16: PRINT X$
  182. 1810  VTAB 13: INPUT "SECURITY EXCHANGE FEE: $";U$(7)
  183. 1820 X =  VAL(U$(7)): GOSUB 130: VTAB 13: HTAB 25: PRINT X$
  184. 1830 X$ = U$(4): GOSUB 240:X = X * VAL(U$(3)) + VAL(U$(5)) + VAL(U$(6)) + VAL(U$(7))
  185. 1840 U$(0) =  STR$(X):U$(1) = "B"
  186. 1850  GOTO 2060
  187. 1860  REM  * STOCK SPLIT
  188. 1870 U$(1) = "S"
  189. 1880  GOTO 2030
  190. 1890  REM  * DIVIDEND
  191. 1900 U$(1) = "D"
  192. 1910  GOTO 2030
  193. 1920  REM  * SELL
  194. 1930  VTAB 10: INPUT "NUMBER OF SHARES SOLD: ";U$(3)
  195. 1940  IF U$(3) = ""  OR  VAL(U$(3)) >SHARES  THEN  CALL BELL: GOTO 1930
  196. 1950 U$(3) = "-" +U$(3)
  197. 1960  VTAB 11: INPUT "NET AMOUNT REC'D: $";U$(0)
  198. 1970  IF U$(0) = ""  THEN  CALL BELL: GOTO 1960
  199. 1980 X =  VAL(U$(0)): GOSUB 130: VTAB 11: HTAB 20: PRINT X$
  200. 1990 U$(0) = "-" +U$(0):U$(1) = "N"
  201. 2000  GOTO 2040
  202. 2010  REM  * NO TRANSACTION
  203. 2020 U$(1) = "N":U$(3) = "0"
  204. 2030 U$(0) = "0"
  205. 2040  FOR X = 5 TO 7:U$(X) = "0": NEXT 
  206. 2050  REM  WRITE UPDATE
  207. 2060 SREC = SREC +1
  208. 2070  PRINT D$"OPENSP."ST$",L55,S"DS",D"DD
  209. 2080  PRINT D$"WRITESP."ST$",R0"
  210. 2090  FOR X = 0 TO 7: PRINT S$(X): NEXT : PRINT SREC
  211. 2100  PRINT D$"WRITESP."ST$",R"SREC
  212. 2110  FOR X = 0 TO 7: PRINT U$(X): NEXT 
  213. 2120  PRINT D$"CLOSE"
  214. 2130 ST$(Z,1) = U$(2): GOTO 4710
  215. 2140  REM  REPORT MENU
  216. 2150  VTAB 9: HTAB 1: PRINT "REPORT MENU:": VTAB 11
  217. 2160 RFLAG = 1
  218. 2170  PRINT  TAB( 5)"RETURN TO MAIN MENU";: CALL  -868: PRINT 
  219. 2180  PRINT  TAB( 5)"INDIVIDUAL STOCK STATUS";: CALL  -868: PRINT 
  220. 2190  PRINT  TAB( 5)"INDIVIDUAL STOCK HISTORY";: CALL  -868: PRINT 
  221. 2200  PRINT  TAB( 5)"PORTFOLIO STATUS";: CALL  -868: PRINT 
  222. 2210  CALL CUR,11,21
  223. 2220  ON  PEEK(LL) GOTO 2270,2290,2770,3640,4970
  224. 2230  IF  PEEK(LL) <10  THEN  VTAB 23: CALL  -958
  225. 2240  ON  PEEK(LL) -6 GOSUB 5010,4990,5030,5050,5080
  226. 2250  VTAB 23: HTAB 1: PRINT PRMPT$;
  227. 2260  POKE LL, PEEK(LL) -1 + PEEK(TL): CALL CUR +26: GOTO 2220
  228. 2270  POKE 34,8: POKE 35,14: HOME : TEXT :RFLAG = 0: GOTO 4770
  229. 2280  REM  INDIVIDUAL STOCK STATUS
  230. 2290  GOSUB 320: HOME : VTAB 12: PRINT "COMPILING DATA... STAND BY"
  231. 2300 SHARES = 0:INVEST = 0:NETINV = 0:RTURN = 0
  232. 2310  PRINT D$"OPENSP."ST$",L55,S"DS",D"DD
  233. 2320  PRINT D$"READSP."ST$",R0"
  234. 2330  FOR X = 0 TO 7: INPUT S$(X): NEXT : INPUT SREC
  235. 2340 SHARES =  VAL(S$(3))
  236. 2350 X$ = S$(4): GOSUB 240:S4 = X
  237. 2360 NETINV = SHARES *S4 + VAL(S$(5)) + VAL(S$(6)) + VAL(S$(7))
  238. 2370 INVEST = NETINV
  239. 2380  IF   NOT SREC  THEN U$(2) = S$(2):U$(4) = S$(4):X$ = U$(4): GOSUB 240:U4 = X: GOTO 2480
  240. 2390  FOR RD = 1 TO SREC
  241. 2400  PRINT D$"READSP."ST$",R"RD
  242. 2410  FOR S = 0 TO 7: INPUT U$(S): NEXT 
  243. 2420 SHARES = SHARES + VAL(U$(3))
  244. 2430 X$ = U$(4): GOSUB 240:U4 = X
  245. 2440 NETINV = NETINV + VAL(U$(0))
  246. 2450  IF  LEFT$(U$(0),1) = "-"  THEN RTURN = RTURN + ABS( VAL(U$(0)))
  247. 2460  IF  LEFT$(U$(0),1) < >"-"  THEN INVEST = INVEST + VAL(U$(0))
  248. 2470  NEXT 
  249. 2480  PRINT D$"CLOSE"
  250. 2490 X = NETINV: GOSUB 130:NETINV$ = X$
  251. 2500  IF PFLAG  THEN  RETURN 
  252. 2510  GOSUB 550
  253. 2520  HOME : PRINT : POKE 36,9: PRINT "** STATUS REPORT **": PRINT 
  254. 2530  PRINT ST$" ("S$(0)")"
  255. 2540  PRINT "EXCHANGE: "EX$( VAL(S$(1)),1);: IF S$(1) < >"3"  THEN  PRINT " ("EX$( VAL(S$(1)),0)")": GOTO 2560
  256. 2550  PRINT 
  257. 2560  PRINT : PRINT "INITIAL PURCHASE ON "S$(2)
  258. 2570  PRINT S$(3)" SHARES AT $"S$(4)" PER SHARE"
  259. 2580  PRINT "ADDITIONAL FEES/CHARGES: $";
  260. 2590 X =  VAL(S$(5)) + VAL(S$(6)) + VAL(S$(7)): GOSUB 130: PRINT X$
  261. 2600  PRINT  LEFT$(F1$,37): PRINT "STATUS AS OF "U$(2)":": PRINT  LEFT$(F1$,37)
  262. 2610  PRINT "NUMBER OF SHARES OWNED: "SHARES
  263. 2620  PRINT "PRICE PER SHARE: $"U$(4)
  264. 2630 HT = 36: PRINT 
  265. 2640  PRINT "INVESTMENT TO DATE";:X = INVEST: GOSUB 130: GOSUB 100: PRINT "$"X$
  266. 2650  PRINT "RETURN TO DATE";:X = RTURN: GOSUB 130: GOSUB 100: PRINT "$"X$
  267. 2660  PRINT "NET INVESTMENT TO DATE";
  268. 2670 X$ =  CHR$(43 +2 *( SGN( VAL(NETINV$)) <0)) +" $" + RIGHT$(NETINV$, LEN(NETINV$) -( LEFT$(NETINV$,1) = "-")): GOSUB 100: PRINT " "X$
  269. 2680  PRINT : PRINT "VALUE OF HOLDING";
  270. 2690 X = SHARES *U4:VL = X: GOSUB 130: GOSUB 100: PRINT "$"X$
  271. 2700 PL = VL -NETINV
  272. 2710 S$ =  CHR$(43 +2 *( SGN(PL) <0))
  273. 2720  IF PL <0  THEN  PRINT "LOSS";: GOTO 2740
  274. 2730  PRINT "PROFIT";
  275. 2740 X =  ABS(PL): GOSUB 130: GOSUB 100: CALL  -1008: CALL  -1008: PRINT S$" $"X$
  276. 2750  PRINT : GOTO 3610
  277. 2760  REM  INDIVIDUAL STOCK HISTORY
  278. 2770  GOSUB 320: HOME : VTAB 12: PRINT "COMPILING DATA... STAND BY"
  279. 2780 BOUGHT = 1:SOLD = 0:DIVD = 0
  280. 2790  PRINT D$"OPENSP."ST$",L55,S"DS",D"DD
  281. 2800  PRINT D$"READSP."ST$",R0"
  282. 2810  FOR X = 0 TO 7: INPUT S$(X): NEXT : INPUT SREC
  283. 2820 AB$ = S$(0):EX$ = EX$( VAL(S$(1)),1)
  284. 2830 BT$(0,0) = S$(2):BT$(0,1) = S$(3):BT$(0,2) = S$(4):X =  VAL(S$(5)): GOSUB 130:BT$(0,4) = X$:X =  VAL(S$(6)): GOSUB 130:BT$(0,5) = X$:X =  VAL(S$(7)): GOSUB 130:BT$(0,6) = X$
  285. 2840 X$ = S$(4): GOSUB 240:SX = X
  286. 2850 X =  VAL(S$(3)) *SX: GOSUB 130:BT$(0,3) = X$
  287. 2860 X = X + VAL(S$(5)) + VAL(S$(6)) + VAL(S$(7)): GOSUB 130:BT$(0,7) = X$
  288. 2870  IF   NOT SREC  THEN 2930
  289. 2880  FOR RD = 1 TO SREC: PRINT D$"READSP."ST$",R"RD
  290. 2890  FOR S = 0 TO 7: INPUT U$(S): NEXT : IF  VAL(U$(0)) < >0  THEN U$(0) =  RIGHT$(U$(0), LEN(U$(0)) -1)
  291. 2900  IF  LEFT$(U$(3),1) = "-"  THEN U$(3) =  RIGHT$(U$(3), LEN(U$(3)) -1)
  292. 2910  ON U$(1) = "B" GOSUB 2940: ON U$(1) = "S" GOSUB 3050: ON U$(1) = "D" GOSUB 3110: IF U$(1) = "N"  AND  VAL(U$(3))  THEN  GOSUB 3220
  293. 2920  NEXT 
  294. 2930  PRINT D$"CLOSE": GOTO 3320
  295. 2940  REM  BOUGHT TRANSACTION
  296. 2950 BT$(BOUGHT,0) = U$(2)
  297. 2960 BT$(BOUGHT,1) = U$(3)
  298. 2970 BT$(BOUGHT,2) = U$(4)
  299. 2980 X =  VAL(U$(5)): GOSUB 130:BT$(BOUGHT,4) = X$
  300. 2990 X =  VAL(U$(6)): GOSUB 130:BT$(BOUGHT,5) = X$
  301. 3000 X =  VAL(U$(7)): GOSUB 130:BT$(BOUGHT,6) = X$
  302. 3010 X$ = U$(4): GOSUB 240:X = X * VAL(U$(3)): GOSUB 130:BT$(BOUGHT,3) = X$
  303. 3020 X = X + VAL(U$(5)) + VAL(U$(6)) + VAL(U$(7)): GOSUB 130:BT$(BOUGHT,7) = X$
  304. 3030 BOUGHT = BOUGHT +1
  305. 3040  RETURN 
  306. 3050  REM  STOCK SPLIT
  307. 3060 BT$(BOUGHT,0) = U$(2)
  308. 3070 BT$(BOUGHT,1) = U$(3)
  309. 3080 BT$(BOUGHT,2) = "SPLIT"
  310. 3090 BOUGHT = BOUGHT +1
  311. 3100  RETURN 
  312. 3110  REM  STOCK DIVIDEND
  313. 3120 DI$(DIVD,0) = U$(2)
  314. 3130 DI$(DIVD,1) = U$(3)
  315. 3140 DI$(DIVD,2) = U$(4)
  316. 3150 X$ = U$(4): GOSUB 240:X =  VAL(U$(3)) *X: GOSUB 130:DI$(DIVD,3) = X$
  317. 3160 BT$(BOUGHT,0) = DI$(DIVD,0)
  318. 3170 BT$(BOUGHT,1) = DI$(DIVD,1)
  319. 3180 BT$(BOUGHT,2) = "STOCK DIVIDEND"
  320. 3190 DIVD = DIVD +1
  321. 3200 BOUGHT = BOUGHT +1
  322. 3210  RETURN 
  323. 3220  REM  SOLD TRANSACTION
  324. 3230 SD$(SOLD,0) = U$(2)
  325. 3240 SD$(SOLD,1) = U$(3)
  326. 3250 SD$(SOLD,2) = U$(4)
  327. 3260 X =  VAL(U$(0)): GOSUB 130:SD$(SOLD,3) = X$
  328. 3270 SOLD = SOLD +1
  329. 3280  RETURN 
  330. 3290  IF OD$ = "PRINTER"  THEN  RETURN 
  331. 3300 LC =  PEEK(37) +1: VTAB 24: PRINT "PRESS ANY KEY TO CONTINUE ";: POKE CB,0: CALL  -756: HTAB 1: CALL  -868: VTAB LC: HTAB 1: RETURN 
  332. 3310  REM  * PRINT REPORT
  333. 3320  HOME : GOSUB 550: PRINT "STOCK: " LEFT$(ST$,29 - LEN(AB$))" ("AB$")"
  334. 3330  PRINT "EXCHANGE: "EX$
  335. 3340  PRINT  LEFT$(F2$,39): IF OD$ = "SCREEN"  THEN  INVERSE 
  336. 3350  PRINT " ACQUISITIONS ": NORMAL 
  337. 3360 HT = 39:LNE = 6: POKE 34,3
  338. 3370  PRINT "DATE" SPC( 6)"#SHARES" SPC( 2)"PPS" SPC( 11)"AMOUNT"
  339. 3380  FOR X = 0 TO BOUGHT -1:LNE = LNE +2 +5 *(BT$(X,2) < >"STOCK DIVIDEND"  AND BT$(X,2) < >"SPLIT"): IF LNE >23  THEN  GOSUB 3290:LNE = 6 +4 *(BT$(X,2) < >"STOCK DIVIDEND"  AND BT$(X,2) < >"SPLIT")
  340. 3390  PRINT BT$(X,0);: POKE 36,10: PRINT BT$(X,1);: POKE 36,19: PRINT BT$(X,2);: IF (BT$(X,2) = "STOCK DIVIDEND"  OR BT$(X,2) = "SPLIT")  THEN  PRINT : GOTO 3440
  341. 3400 X$ = BT$(X,3): GOSUB 100: PRINT X$: PRINT : POKE 36,4: PRINT "AGENT'S COMMISSION";:X$ = BT$(X,4): GOSUB 100: PRINT X$
  342. 3410  POKE 36,4: PRINT "ODD LOT COST";:X$ = BT$(X,5): GOSUB 100: PRINT X$
  343. 3420  POKE 36,4: PRINT "SEC. EXCHANGE FEE";:X$ = BT$(X,6): GOSUB 100: PRINT X$
  344. 3430  POKE 36,4: PRINT "TOTAL COST";:X$ = BT$(X,7): GOSUB 100: PRINT X$
  345. 3440  PRINT : NEXT 
  346. 3450  ON   NOT SOLD GOTO 3530
  347. 3460 LNE = LNE +3: IF LNE >23  THEN  GOSUB 3290:LNE = 6
  348. 3470  PRINT  LEFT$(F1$,39): IF OD$ = "SCREEN"  THEN  INVERSE 
  349. 3480  PRINT " SALES ": NORMAL 
  350. 3490  PRINT "DATE" SPC( 6)"#SHARES" SPC( 2)"PPS" SPC( 8)"NET REC'D"
  351. 3500  FOR X = 0 TO SOLD -1:LNE = LNE +1: IF LNE >23  THEN  GOSUB 3290:LNE = 5
  352. 3510  PRINT SD$(X,0);: POKE 36,10: PRINT SD$(X,1);: POKE 36,19: PRINT SD$(X,2);:X$ = SD$(X,3): GOSUB 100: PRINT X$
  353. 3520  NEXT 
  354. 3530  ON   NOT DIVD GOTO 3600:LNE = LNE +3: IF LNE >23  THEN  GOSUB 3290:LNE = 6
  355. 3540  PRINT  LEFT$(F1$,39): IF OD$ = "SCREEN"  THEN  INVERSE 
  356. 3550  PRINT " STOCK DIVIDENDS ": NORMAL 
  357. 3560  PRINT "DATE" SPC( 6)"#SHARES" SPC( 2)"PPS" SPC( 11)"AMOUNT"
  358. 3570  FOR X = 0 TO DIVD -1:LNE = LNE +1: IF LNE >23  THEN  GOSUB 3290:LNE = 4
  359. 3580  PRINT DI$(X,0);: POKE 36,10: PRINT DI$(X,1);: POKE 36,19: PRINT DI$(X,2);:X$ = DI$(X,3): GOSUB 100: PRINT X$
  360. 3590  NEXT 
  361. 3600 LNE = LNE +2: IF LNE >23  THEN  GOSUB 3290
  362. 3610  PRINT D$"PR#0"
  363. 3620  PRINT : PRINT "PRESS ANY KEY FOR MENU ";: POKE CB,0: CALL  -756: HTAB 1: GOTO 4710
  364. 3630  REM  PORTFOLIO STATUS
  365. 3640  HOME : VTAB 4: HTAB 8: PRINT "* STOCK PORTFOLIO REPORT *": ON   NOT REC GOSUB 330:PFLAG = 1:T(0) = 0:T(1) = 0:T(2) = 0
  366. 3650  VTAB 10: INPUT "ENTER TODAY'S DATE (MM/DD/YY): ";DT$
  367. 3660  IF  LEN(DT$) <6  OR  LEN(DT$) >8  THEN  CALL BELL: VTAB  PEEK(37): GOTO 3650
  368. 3670  VTAB 12: PRINT "COMPILING DATA... STAND BY"
  369. 3680  FOR PX = 1 TO REC
  370. 3690 ST$ = ST$(PX,0)
  371. 3700  GOSUB 2300
  372. 3710 PR$(PX,0) =  LEFT$(ST$,15)
  373. 3720 PR$(PX,1) = S$(0)
  374. 3730 PR$(PX,2) = EX$( VAL(S$(1)),0)
  375. 3740 PR$(PX,3) =  STR$(SHARES)
  376. 3750 PR$(PX,4) = U$(4)
  377. 3760 X = SHARES *U4:VL = X: GOSUB 130:PR$(PX,5) = X$
  378. 3770 PR$(PX,6) = NETINV$
  379. 3780 PL = VL -NETINV:S$ =  CHR$(43 +2 *( SGN(PL) <0)):X =  ABS(PL): GOSUB 130:PR$(PX,7) = S$ +X$
  380. 3790 T(0) = T(0) +VL:T(1) = T(1) +NETINV:T(2) = T(2) +PL
  381. 3800  NEXT :PFLAG = 0
  382. 3810  FOR X = 0 TO 2:X = T(Z): GOSUB 130:T$(Z) = X$: NEXT 
  383. 3820  IF T(2) >0  THEN T$(2) = "+" +T$(2)
  384. 3830  HOME 
  385. 3840  IF OD$ = "PRINTER"  THEN 3970
  386. 3850  REM  * SCREEN OUTPUT
  387. 3860  PRINT "STOCK PORTFOLIO REPORT";: HTAB 41 - LEN(DT$): PRINT DT$
  388. 3870  HTAB 11: PRINT "VALUE OF" SPC( 4)"NET INV" SPC( 4)"PROFIT/";
  389. 3880  PRINT "COMPANY" SPC( 4)"HOLDING" SPC( 4)"TO DATE" SPC( 7)"LOSS"F1$
  390. 3890  POKE 34,5: VTAB 6
  391. 3900 XV = 4: FOR X = 1 TO REC:XV = XV +1
  392. 3910  IF XV = 21  THEN  VTAB 24: PRINT "PRESS ANY KEY TO CONTINUE ";: POKE CB,0: CALL  -756: HTAB 1: CALL  -868:XV = 6: VTAB 22: HTAB 1
  393. 3920  PRINT PR$(X,1);:HT = 18:X$ = PR$(X,5): GOSUB 100: PRINT X$;:HT = 29:X$ = PR$(X,6): GOSUB 100: PRINT X$;:HT = 40:X$ = PR$(X,7): GOSUB 100: PRINT X$;
  394. 3930  NEXT : IF XV >19  THEN  GOSUB 3300
  395. 3940  PRINT : INVERSE : PRINT "TOTALS";: NORMAL :HT = 18:X$ = T$(0): GOSUB 100: PRINT X$;:HT = 29:X$ = T$(1): GOSUB 100: PRINT X$;:HT = 40:X$ = T$(2): GOSUB 100: PRINT X$;
  396. 3950  GOTO 3620
  397. 3960  REM  * PRINTER OUTPUT
  398. 3970  GOSUB 560
  399. 3980  PRINT  CHR$(9)"80N": REM  SET 80-COLUMN MODE
  400. 3990  PRINT "PORTFOLIO STATUS REPORT";: POKE 36,71 - LEN(DT$): PRINT "PREPARED "DT$
  401. 4000  PRINT 
  402. 4010  POKE 36,38: PRINT "PRICE";: POKE 36,48: PRINT "VALUE OF";: POKE 36,60: PRINT "NET INV."
  403. 4020  PRINT "COMPANY";: POKE 36,16: PRINT "ABBREV";: POKE 36,25: PRINT "EXCH";: POKE 36,30: PRINT "# SHR";: POKE 36,37: PRINT "PR SHR";: POKE 36,49: PRINT "HOLDING";: PRINT : POKE 36,60: PRINT "TO DATE";: POKE 36,71: PRINT "PROF/LOSS"
  404. 4030  PRINT F1$F1$
  405. 4040  FOR X = 1 TO REC
  406. 4050  PRINT PR$(X,0);: POKE 36,16: PRINT PR$(X,1);: POKE 36,25: PRINT PR$(X,2);
  407. 4060  POKE 36,30: PRINT PR$(X,3);
  408. 4070  POKE 36,37: PRINT PR$(X,4);
  409. 4080 HT = 56:X$ = PR$(X,5): GOSUB 100: PRINT X$;
  410. 4090 HT = 68:X$ = PR$(X,6): GOSUB 100: PRINT X$;
  411. 4100 HT = 80:X$ = PR$(X,7): GOSUB 100: PRINT X$
  412. 4110  NEXT : PRINT 
  413. 4120  PRINT "TOTALS:";
  414. 4130 HT = 56:X$ = T$(0): GOSUB 100: PRINT X$;
  415. 4140 HT = 68:X$ = T$(1): GOSUB 100: PRINT X$;
  416. 4150 HT = 80:X$ = T$(2): GOSUB 100: PRINT X$
  417. 4160  PRINT : PRINT D$"PR#0"
  418. 4170  GOTO 4710
  419. 4180  REM  ENTER DISK COMMANDS
  420. 4190  HOME 
  421. 4200  PRINT "ENTER DISK COMMAND OR <RETURN>"
  422. 4210  PRINT F2$: POKE 34,2
  423. 4220 X$ = "": PRINT 
  424. 4230  PRINT "COMMAND:";: CALL  -657
  425. 4240  FOR S = 512 TO 767:S$ =  CHR$( PEEK(S) -128): IF S$ < > CHR$(13)  THEN X$ = X$ +S$: NEXT : GOTO 4290
  426. 4250 S = 767: NEXT 
  427. 4260  IF X$ = ""  THEN 4710
  428. 4270  IF  LEFT$(X$,4) = "OPEN"  OR  LEFT$(X$,4) = "INIT"  THEN  CALL BELL: GOTO 4220
  429. 4280  PRINT D$X$: GOTO 4220
  430. 4290  GOTO 4710
  431. 4300  REM  INITIALIZATION
  432. 4310 D$ =  CHR$(4):CUR = 768
  433. 4320  IF  PEEK(CUR) < >32  OR  PEEK(CUR +1) < >190  THEN  PRINT D$"BLOADCURSOR.BAR,A"CUR
  434. 4330 TL = 2:BL = 3:LL = 4
  435. 4340  FOR X = 1 TO 40:F1$ = F1$ +"-":F2$ = F2$ +"=":F3$ = F3$ +"*":F4$ = F4$ +".":F5$ = F5$ + CHR$(95): NEXT 
  436. 4350 PRMPT$ = "ARROWS MOVE  'RETURN' TO SELECT/MODIFY"
  437. 4360 PS = 1: REM  PRINTER SLOT #
  438. 4370 OD$ = "SCREEN": REM  OUTPUT DEVICE; SCREEN OR PRINTER
  439. 4380 PD$ = "NO": REM  RAM PRINTER DRIVER YES/NO
  440. 4390 FI$ = "SP.INDEXFILE"
  441. 4400 DS = 6:DD = 1: REM  SLOT AND DRIVE
  442. 4410 BELL =  -198
  443. 4420 CB =  -16368
  444. 4430  DIM EX$(14,1),ST$(99,1),BT$(20,7),SD$(20,3),DI$(20,3),PR$(99,7)
  445. 4440  FOR X = 0 TO 14: READ EX$(X,0),EX$(X,1): NEXT 
  446. 4450  DATA  AS,AMERICAN,B,BOSTON,C,CINCINNATI,CBOE,CHICAGO BOARD OPTIONS EXCH.
  447. 4460  DATA  I,INTERMOUNTAIN,M,MIDWEST,MO,MONTREAL,OTC,NASDAQ,NY,NEW YORK
  448. 4470  DATA  P,PACIFIC,PH,PHILADELPHIA,SC,SPOKANE,TO,TORONTO,VC,VANCOUVER
  449. 4480  DATA  *,OTHER
  450. 4490  REM  CHECK FOR INDEXFILE
  451. 4500  ONERR  GOTO 4530
  452. 4510  PRINT D$"VERIFY"FI$",S"DS",D"DD
  453. 4520  GOTO 4560
  454. 4530  IF  PEEK(222) < >6  THEN 5120
  455. 4540 DFLAG = 1: ONERR  GOTO 5120
  456. 4550  GOSUB 630: GOTO 4710
  457. 4560  ONERR  GOTO 5120
  458. 4570  PRINT : PRINT D$"OPEN"FI$",S"DS",D"DD
  459. 4580  PRINT D$"READ"FI$
  460. 4590  INPUT REC: ON   NOT REC GOTO 4690: FOR X = 1 TO REC: INPUT ST$(X,0): NEXT 
  461. 4600  FOR X = 1 TO REC
  462. 4610  PRINT D$"OPENSP."ST$(X,0)",L55,S"DS",D"DD
  463. 4620  PRINT D$"READSP."ST$(X,0)",R0"
  464. 4630  INPUT X$: INPUT X$
  465. 4640  INPUT ST$(X,1): FOR Y = 0 TO 4: INPUT X$: NEXT : INPUT SREC
  466. 4650  IF   NOT SREC  THEN 4680
  467. 4660  PRINT D$"READSP."ST$(X,0)",R"SREC
  468. 4670  INPUT X$: INPUT X$: INPUT ST$(X,1)
  469. 4680  PRINT D$"CLOSE": NEXT 
  470. 4690  PRINT D$"CLOSE"
  471. 4700  REM  MAIN MENU
  472. 4710  TEXT : HOME 
  473. 4720  PRINT F3$;: FOR X = 1 TO 5: HTAB 1: PRINT "*";: HTAB 40: PRINT "*";: NEXT : PRINT F3$
  474. 4730  VTAB 3: HTAB 10: PRINT "NIBBLE STOCK ANALYST"
  475. 4740  HTAB 15: PRINT "BY JIM GANZ"
  476. 4750  HTAB 4: PRINT "COPYRIGHT 1984 BY MICROSPARC, INC."
  477. 4760  IF RFLAG  THEN  VTAB 15: GOTO 4820
  478. 4770  VTAB 9: HTAB 1: PRINT "MAIN MENU:": VTAB 11
  479. 4780  PRINT  TAB( 5)"UPDATE A STOCK'S STATUS"
  480. 4790  PRINT  TAB( 5)"REPORT MENU"
  481. 4800  PRINT  TAB( 5)"INITIALIZE A STOCK"
  482. 4810  PRINT  TAB( 5)"ENTER DISK COMMANDS"
  483. 4820  PRINT  TAB( 5)"QUIT"
  484. 4830  PRINT 
  485. 4840  PRINT  TAB( 5)"DISK DRIVE" LEFT$(F4$,22)" "DD
  486. 4850  PRINT  TAB( 5)"DISK SLOT" LEFT$(F4$,23)" "DS
  487. 4860  PRINT  TAB( 5)"PRINTER SLOT" LEFT$(F4$,20)" "PS
  488. 4870  PRINT  TAB( 5)"RAM PRINTER DRIVER" LEFT$(F4$,14);: HTAB 37 - LEN(PD$): PRINT ". "PD$
  489. 4880  PRINT  TAB( 5)"OUTPUT DEVICE" LEFT$(F4$,15);: HTAB 38 - LEN(OD$): PRINT " "OD$
  490. 4890  VTAB 23: HTAB 1: PRINT PRMPT$;
  491. 4900  IF RFLAG  THEN 2150
  492. 4910  CALL CUR,11,21
  493. 4920  ON  PEEK(LL) GOTO 1390,2150,760,4190,4970
  494. 4930  IF  PEEK(LL) <10  THEN  VTAB 23: CALL  -958
  495. 4940  ON  PEEK(LL) -6 GOSUB 5010,4990,5030,5050,5080
  496. 4950  VTAB 23: HTAB 1: PRINT PRMPT$;
  497. 4960  POKE LL, PEEK(LL) -1 + PEEK(TL): CALL CUR +26: GOTO 4920
  498. 4970  HOME : END 
  499. 4980  REM  MODIFY CONFIGURATION
  500. 4990  VTAB 18: HTAB 38: GET X$: IF X$ <"1"  OR X$ >"7"  OR  VAL(X$) = PS  THEN  CALL BELL: GOTO 4990
  501. 5000  PRINT X$:DS =  VAL(X$): RETURN 
  502. 5010  VTAB 17: HTAB 38: GET X$: IF X$ <"1"  OR X$ >"2"  THEN  CALL BELL: GOTO 5010
  503. 5020  PRINT X$:DD =  VAL(X$): RETURN 
  504. 5030  VTAB 19: HTAB 38: GET X$: IF X$ <"1"  OR X$ >"7"  OR  VAL(X$) = DS  THEN  CALL BELL: GOTO 5030
  505. 5040  PRINT X$:PS =  VAL(X$): RETURN 
  506. 5050  VTAB 20: IF PD$ = "NO"  THEN PD$ = "YES": GOTO 5070
  507. 5060 PD$ = "NO"
  508. 5070  HTAB 37 - LEN(PD$): PRINT ". "PD$: RETURN 
  509. 5080  VTAB 21: IF OD$ = "SCREEN"  THEN OD$ = "PRINTER": GOTO 5100
  510. 5090 OD$ = "SCREEN"
  511. 5100  HTAB 37 - LEN(OD$): PRINT ". "OD$: RETURN 
  512. 5110  REM  ERROR TRAP
  513. 5120  TEXT : HOME : NORMAL 
  514. 5130  CALL BELL: CALL  -3288: PRINT : PRINT D$"CLOSE"
  515. 5140 ER =  PEEK(222)
  516. 5150  IF ER = 4  THEN  PRINT "DISK WRITE PROTECTED": GOTO 5230
  517. 5160  IF ER = 6  THEN  PRINT "FILE NOT FOUND": GOTO 5230
  518. 5170  IF ER = 8  THEN  PRINT "DISK I/O ERROR": GOTO 5230
  519. 5180  IF ER = 9  THEN  PRINT "DISK FULL": GOTO 5230
  520. 5190  IF ER = 10  THEN  PRINT "FILE LOCKED": GOTO 5230
  521. 5200  IF ER = 11  THEN  PRINT "SYNTAX ERROR": GOTO 5230
  522. 5210  IF ER = 13  THEN  PRINT "FILE TYPE MISMATCH": GOTO 5230
  523. 5220  PRINT "ERROR #";ER" IN LINE "; PEEK(218) + PEEK(219) *256
  524. 5230  PRINT "PRESS ANY KEY TO CONTINUE": GET K$: PRINT : GOTO 4710