home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG037.ARK / JRNL.BAS < prev    next >
BASIC Source File  |  1985-02-10  |  13KB  |  555 lines

  1. REM INITIALIZE
  2. R2=35
  3. R1=0
  4. C9=40:   R9=35
  5. E1=1: E2=30:   X3=40:  I1=31: I2=35: A1=C9+1:A2=C9+1:B1=C9+1
  6. LIN$="--------------------------------------------------------"
  7. B2=C9+1: X1=C9+1: X2=C9+1
  8. DIM D(C9,R9), T$(C9)
  9. REM CLEAR COLUMN NAMES TO BLANKS
  10. FOR I=0 TO C9
  11. T$(I)=" "
  12. NEXT I
  13. REM INSERT COLUMN NAMES HERE******************************
  14. T$(1)="FOOD"
  15. T$(2)="FUEL & OIL"
  16. T$(3)="XPDBL SUP"
  17. T$(4)="LIQUOR"
  18. T$(5)="BEER"
  19. T$(6)="SOFT DRKS"
  20. T$(7)="BAR SUPL."
  21. T$(8)="ICE"
  22. T$(9)="DECOR."
  23. T$(10)="ENG. MNT."
  24. T$(11)="HULL MNT."
  25. T$(12)="LIN & FRN"
  26. T$(13)="ADM SLRY"
  27. T$(14)="OP SLRY"
  28. T$(15)="SUP SLRY"
  29. T$(16)="RENT & UTL"
  30. T$(17)="TRANSP."
  31. T$(18)="ENTRTNMNT"
  32. T$(19)="COMMISNS"
  33. T$(20)="TAXES"
  34. T$(21)="TRAVEL"
  35. T$(22)="MISCLN"
  36. T$(23)="ELECTRONIC"
  37. T$(31)="GRP SALES"
  38. T$(32)="VCHR SALES"
  39. T$(33)="DIR SALES"
  40. T$(34)="CATERING"
  41. T$(35)="OTHER REV."
  42. F$="EACLRTINPBSQ"
  43. INPUT "FILE NAME"; JRN$
  44. REM
  45. REM
  46. 90 INPUT "READ OLD DATA FROM DISK? (Y OR N)";YN$
  47. IF YN$="N" THEN 95
  48. IF YN$<>"Y" THEN 90
  49. PRINT "LOAD PROPER DISK IN DRIVE A."
  50. INPUT "TYPE 'GO' WHEN READY";GO$
  51. PRINT: PRINT "READING FILE"
  52. FILE JRN$
  53. READ #1; A1,A2,B1,B2,E1,E2,I1,I2,X1,X2,X3,R1,R2,R9,C9
  54. FOR COL=1 TO C9
  55. READ #1; T$(COL)
  56. NEXT COL
  57. FOR ID=1 TO C9
  58. FOR JD=1 TO R9
  59. READ #1;D(ID,JD)
  60. NEXT JD
  61. NEXT ID
  62. CLOSE 1
  63. PRINT: PRINT
  64. 95 INPUT "WANT TO SEE COMMAND LIST? (Y OR N)";YN$
  65. IF YN$="N" THEN 543
  66. IF YN$<>"Y" THEN 95
  67. PRINT:  PRINT
  68. PRINT "E = ENTER. (ECCRR) ENTERS A VALUE IN COLUMN AND ROW SPECIFIED"
  69. PRINT "A = ACCUMULATE. (ACCRR) ADDS VALUES ENTERED AND ENTERS SUM."
  70. PRINT "C = CLEAR.***** CAUTION ****** CLEARS AN ENTIRE COLUMN"
  71. PRINT "    IF (CCC) OR A SINGLE ENTRY IF (CCCRR)"
  72. PRINT "L = LIST. DISPLAYS AN ELEMENT IF (LCCRR) OR AN ENTIRE"
  73. PRINT "    COLUMN IF (LCC)"
  74. PRINT "R = ROW. DISPLAYS ALL NON ZERO ITEMS IN THE ROW SPECIFIED."
  75. PRINT "    IF ROW NUMBER IS ENTERED (RRR)"
  76. PRINT "    IF NO ROW NUMBER, DISPLAYS ALL ROW TOTALS."
  77. PRINT "T = TRIAL BALANCE. PRINTS TRIAL BALANCE REPORT."
  78. PRINT "I = INCOME STATEMENT. PRINTS INCOME REPORT."
  79. PRINT "N = NAME OF COLUMN. INPUTS NAME OF COLUMN"
  80. PRINT "P = PARAMETERS. ALLOWS INPUT OF CHANGE IN PARAMETERS"
  81. PRINT "    SPECIFYING USE OF COLUMNS FOR SPECIAL FUNCTIONS"
  82. PRINT "    AN INPUT OF ZERO FOR A PARAMETER MEANS NO CHANGE"
  83. PRINT "B = LIST ALL COLUMN NAMES"
  84. PRINT "S = STOP. WRITES ALL DATA ON DISK AND RETURNS PROGRAM"
  85. PRINT "    CONTROL TO CP/M."
  86. PRINT "NOTATION (CCRR) MEANS COLUMN AND ROW NUMBERS OF ITEMS"
  87. PRINT "WHICH MUST ALWAYS BE TWO DIGITS. IE ONE IS 01, TWO 02 ETC."
  88. PRINT "AN ENTRY OF ZERO RETURNS TO COMMAND MODE."
  89. 543 PRINT: INPUT "COMMAND (E,A,C,L,R,T,I,N,P,B OR S)";S$: PRINT
  90. PRINT
  91. K=LEN(S$)
  92. FOR J=1 TO LEN(F$)
  93. IF LEFT$(S$,1)=MID$(F$,J,1) THEN 5470
  94. NEXT J
  95. GOSUB 9910
  96. GO TO 95
  97. 5470 ON J GOSUB 5730,5530,5930,6130,6530,7230,7430,5400\
  98. ,5405,5430,5490,9999
  99. GO TO 543
  100. 5400 INPUT "COLUMN NUMBER"; COL
  101.     INPUT "COLUMN NAME"; CNAME$
  102.     T$(COL)=CNAME$
  103.     GO TO 543
  104. 5405 PRINT "CURRENT PARAMETERS"
  105. PRINT: PRINT
  106. PRINT C9;"COLUMNS, ";R9;"ROWS": PRINT
  107. PRINT "ASSETS/LIABILITIES COL. ";A1;"TO ";A2
  108. PRINT "BANK ACCT WITHDRAWALS COL. ";B1;"DEPOSITS COL. ";B2
  109. PRINT "EXPENSES COL. ";E1;"TO ";E2
  110. PRINT "INCOME COL. ";I1;"TO ";I2
  111. PRINT "TRANSFER ID COL. ";X1;"   TRANSFER AMOUNT COL. ";X2
  112. PRINT "TRANSACTION ID COL. ";X3
  113. PRINT "ASSETS BEGINNING BAL. ROW ";R1
  114. PRINT "BUDGET AMOUNT ROW ";R2
  115. PRINT
  116. 5410 INPUT "HOW MANY COLUMNS MAX.";COL
  117. IF COL=0 THEN 5411
  118. IF COL<0 OR COL>99 THEN 5410
  119. C9=COL
  120. 5411 INPUT "HOW MANY ROWS MAX.";ROW
  121. IF ROW=0 THEN 5412
  122. IF ROW<0 OR ROW>99 THEN 5411
  123. R9=ROW
  124. 5412 INPUT "LOWEST ASSET/LIABILITY COLUMN";COL
  125. IF COL=0 THEN 5413
  126. IF COL<0 OR COL>C9+1 THEN 5412
  127. A1=COL
  128. 5413 INPUT "HIGHEST ASSET/LIABILITY COLUMN";COL
  129. IF COL=0 THEN 5414
  130. IF COL<A1 OR COL>C9+1 THEN 5413
  131. A2 = COL
  132. 5414 INPUT "BANK ACCT WITHDRAWALS COLUMN";COL
  133. IF COL=0 THEN 5415
  134. IF COL<A1 OR COL>A2 THEN 5414
  135. B1=COL
  136. 5415 INPUT "BANK ACCT DEPOSITS COLUMN";COL
  137. IF COL=0 THEN 5416
  138. IF COL<A1 OR COL>A2 THEN 5415
  139. B2=COL
  140. 5416 INPUT "LOWEST EXPENSE COLUMN";COL
  141. IF COL=0 THEN 5417
  142. IF COL<0 OR COL>C9+1 THEN 5416
  143. E1=COL
  144. 5417 INPUT "HIGHEST EXPENSE COLUMN";COL
  145. IF COL=0 THEN 5418
  146. IF COL<E1 OR COL > C9+1 THEN 5417
  147. E2=COL
  148. 5418 INPUT "LOWEST INCOME COLUMN";COL
  149. IF COL=0 THEN 5419
  150. IF COL<0 OR COL>C9+1 THEN 5418
  151. I1= COL
  152. 5419 INPUT "HIGHEST INCOME COLUMN";COL
  153. IF COL=0 THEN 5420
  154. IF COL<0 OR COL>C9+1 THEN 5419
  155. I2=COL
  156. 5420 INPUT "TRANSFER ID COLUMN";COL
  157. IF COL=0 THEN 5421
  158. IF COL<0 OR COL>C9+1 THEN 5420
  159. X1=COL
  160. 5421 INPUT "TRANSFER AMOUNT COLUMN";COL
  161. IF COL=0 THEN 5422
  162. IF COL<0 OR COL>C9+1 THEN 5421
  163. X2=COL
  164. 5422 INPUT "TRANSACTION ID COLUMN";COL
  165. IF COL=0 THEN 5423
  166. IF COL<0 OR COL>C9+1 THEN 5422
  167. X3=COL
  168. 5423 INPUT "ASSET ACCT BEGINNING BALANCE ROW";ROW
  169. IF ROW=0 THEN 5424
  170. IF ROW<0 OR ROW>R9+1 THEN 5423
  171. R1=ROW
  172. 5424 INPUT "BUDGET AMOUNT ROW";ROW
  173. IF ROW=0 THEN 5425
  174. IF ROW<0 OR ROW>R9+1 THEN 5424
  175. R2=ROW
  176. 5425 GO TO 543
  177. 5430 FOR COL=1 TO C9
  178. PRINT COL, T$(COL)
  179. NEXT COL
  180. GO TO 543
  181. 5490 PRINT "WRITING FILE"
  182. FILE JRN$
  183. PRINT #1;A1,A2,B1,B2,E1,E2,I1,I2,X1,X2,X3,R1,R2,R9,C9
  184. FOR COL=1 TO C9
  185. PRINT #1; T$(COL)
  186. NEXT COL
  187. FOR ID=1 TO C9
  188. FOR JD=1 TO R9
  189. PRINT #1;D(ID,JD)
  190. NEXT JD
  191. NEXT ID
  192. CLOSE 1
  193. PRINT "FINISHED"
  194. STOP
  195. REM
  196. REM ********ACCUMULATE IN SPECIFIED COLUMN/ROW ELEMENT********
  197. REM
  198. 5530 GOSUB 9730
  199. IF C<0 THEN 5690
  200. IF C=X1 OR C=X3 THEN 9950
  201. GOSUB 9830
  202. IF R<0 THEN 5690
  203. IF R NE R1 OR A2>C9 OR A1>A2 THEN 5610
  204. IF C<A1 OR C>A2 THEN 9970
  205. 5610 PRINT "COL.";C;"ROW";R;"ACCUMULATE";
  206. INPUT T
  207. IF T=0 THEN 5640
  208.     D(C,R)=D(C,R)+T
  209.     GOTO 5610
  210. 5640 T=D(C,R):  T=INT(ABS(T)*100+.5)/100
  211.     IF D(C,R)<0 THEN T=-(T)
  212.     D(C,R)=T
  213. 5690 RETURN
  214.     REM 
  215.     REM  ENTER IN CONSECUTIVE ROWS OF SPECIFIED COLUMN
  216.     REM
  217. 5730 GOSUB 9730
  218.     IF C<0 THEN 5890
  219.     GOSUB 9830
  220.     IF R<0 THEN 5890
  221. IF R<>R1 OR A2>C9 OR A1>A2 THEN 5760
  222.     IF C<A1 OR C>A2 THEN 9970
  223. 5760 PRINT T$(C)
  224. 5770 PRINT "COL.";C;"ROW";R;"ENTRY";
  225. INPUT T
  226. IF T=0 THEN 5890
  227.     IF C NE X1 AND C NE X3 THEN 5830
  228.     D(C,R)=INT(ABS(T))
  229.     GOTO 5840
  230. 5830 D(C,R)=INT(ABS(T)*100+.5)/100
  231. 5840 IF T<0 THEN D(C,R)=-(D(C,R))
  232. 5850 R=R+1
  233.     IF R>R9 THEN 5890
  234.     IF R NE R1 OR A2>C9 OR A1>A2 THEN 5770
  235.     IF C<A1 OR C>A2 THEN 5850
  236.     GOTO 5770
  237. 5890 RETURN
  238.     REM
  239.     REM   SET SPECIFIED ELEMENT OR COLUMN TO ZERO
  240.     REM
  241. 5930 GOSUB 9730
  242.     IF C<0 THEN 6090
  243.     IF K=3 THEN 6010
  244.     GOSUB 9830
  245.     IF R<0 THEN 6090
  246. PRINT "CLEAR COL. ";C;" ROW ";R;" (Y OR N)";
  247. INPUT YN$
  248. IF YN$<>"Y" THEN 6090
  249.     D(C,R)=0
  250.     GOTO 6090
  251. 6010 PRINT "CLEAR ALL OF COL. ";C;" (Y OR N)";
  252. INPUT YN$
  253. IF YN$<>"Y" THEN 6090
  254.     FOR R=0 TO R9
  255.     IF R=R1 OR R=R2 THEN 6040
  256.     D(C,R)=0
  257. 6040 NEXT R
  258. 6090 RETURN
  259.     REM
  260.     REM   COLUMN LIST ROUTINES
  261.     REM
  262. 6130 GOSUB 9730
  263.     IF C<0 THEN 6490
  264.     IF K=3 THEN 6230
  265.     GOSUB 9830
  266.     IF R<0 THEN 6490
  267.     REM
  268.     REM    LIST SPECIFIED COLUMN/ROW ELEMENT
  269.     REM
  270.     V=D(C,R):  L=15:  M=2
  271. IF C=X1 OR C=X3 THEN M=0
  272. 6180 GOSUB 9030
  273.     PRINT
  274.     GOTO 6490
  275.     REM
  276.     REM    LIST ALL NON ZERO ELEMENTS IN COLUMN
  277.     REM
  278. 6230 PRINT "COL.#--ROW #--XFR ID--TXN ID----$ AMOUNT   ";T$(C)
  279.     T=0
  280.     FOR R=0 TO R9
  281.     IF D(C,R)=0 OR R=R1 THEN 6390
  282.     V=C:  L=5:  M=0
  283.     GOSUB 9030
  284.     V=R:  L=7
  285.     GOSUB 9030
  286.     IF X1>C9 THEN 6310
  287.     V=D(X1,R)
  288. IF V>0 THEN L=9: GOSUB 9030
  289. 6310 IF X3>C9 THEN 6350
  290.     V=D(X3,R)
  291. IF V>0 THEN L=7: PRINT TAB(22);: GOSUB 9030
  292. 6350 IF C=X1 OR C=X3 THEN PRINT: GOTO 6390
  293. 6360 PRINT TAB(30);
  294.     V=D(C,R):  L=11:  M=2
  295.     GOSUB 9030
  296.     PRINT
  297.     T=T+D(C,R)
  298. 6390 NEXT R
  299.     IF C=X1 OR C=X3 THEN 6490
  300.     PRINT TAB(16);"COLUMN TOTAL";TAB(30);
  301.     V=T:  L=11:  M=2
  302.     GOSUB 9030
  303.     PRINT
  304. 6490 RETURN
  305.     REM
  306.     REM    ROW LIST ROUTINES
  307.     REM
  308. 6530 IF K=1 THEN 6840
  309.     IF K NE 3 THEN 9920
  310. H$=S$:   S$=LEFT$(H$,1)+"  "+RIGHT$(H$,2)
  311.     K=LEN(S$)
  312.     GOSUB 9830
  313.     IF R<0 THEN 7190
  314.     REM
  315.     REM   LIST ALL NON ZERO ELEMENTS IN ROW
  316.     REM
  317.     REM      EXCEPTING XFR ID AND TXN ID
  318.     REM
  319. PRINT "COL.#--ROW #----$ AMOUNT----COL. NAME"
  320.     T=0
  321.     FOR C=0 TO C9
  322.     IF D(C,R)=0 OR C=X1 OR C=X3 THEN 6750
  323.     V=C:  L=5:  M=0
  324.     GOSUB 9030
  325.     V=R:  L=7
  326.     GOSUB 9030
  327.     V=D(C,R):  L=13:  M=2
  328.     GOSUB 9030
  329. PRINT TAB(29);T$(C)
  330. IF C>=I1 OR C=B1 THEN T=T+D(C,R) ELSE T=T-D(C,R)
  331. 6750 NEXT C
  332. PRINT LEFT$(LIN$,28)
  333.     PRINT "ROW BALANCE";
  334. V=T:  L=12:  M=2
  335.     GOSUB 9030
  336.     PRINT
  337.     GOTO 7190
  338. REM
  339. REM
  340. REM   LIST TOTALS OF ALL ROWS WITH NON ZERO ELEMENTS
  341. REM
  342. REM   ALSO LISTS CHECKING ACCOUNT RUNNING BALANCE
  343. REM
  344. REM
  345. 6840 PRINT "ROW #--XFR ID--TXN ID--ROW TOTALS---CH ACC BAL"
  346.      IF R1>R9 OR B1>C9 OR B2>C9 THEN 6910
  347.      V=R1:  L=5:  M=0
  348.      GOSUB 9030
  349.      T4=D(B2,R1)
  350.     V=T4:  L=42:  M=2
  351.      GOSUB 9030
  352.      PRINT
  353. 6910 T5=0
  354. FOR R=0 TO R9
  355. IF R=R1 THEN 7140
  356. N=0:  T=0
  357. FOR C=0 TO C9
  358. IF D(C,R)=0 OR C=X1 OR C=X3 THEN 7010
  359. IF C>=I1 AND C<=I2 OR C=B1 THEN T=T+D(C,R) ELSE T=T-D(C,R)
  360. N=N+1
  361. 7010 NEXT C
  362. IF N=0 THEN 7140
  363. V=R:  L=5:  M=0
  364. GOSUB 9030
  365. IF X1>C9 THEN 7050
  366. V=D(X1,R)
  367. IF V>0 THEN L=9: GOSUB 9030
  368. 7050 IF X3>C9 THEN 7070
  369. V=D(X3,R)
  370. IF V>0 THEN L=7: PRINT TAB(15);: GOSUB 9030
  371. 7070 PRINT TAB(23);
  372. V=T:  L=1:  M=2
  373. GOSUB 9030
  374. T5=T5+T
  375. IF R1>R9 OR B1>C9 OR B2>C9 OR R=R2 THEN 7130
  376. IF D(B1,R)=0 AND D(B2,R)=0 THEN 7130
  377. T4=T4-D(B1,R)+D(B2,R)
  378. V=T4:  L=13
  379. GOSUB 9030
  380. 7130 PRINT
  381. 7140 NEXT R
  382. PRINT TAB(7);"TOTAL ALL ROWS";
  383. V=T5:  L=16:  M=2
  384. GOSUB 9030
  385. PRINT
  386. 7190 RETURN
  387. REM
  388. REM    DISPLAY TRIAL BALANCE
  389. REM
  390. 7230 PRINT "COL.#---NAME---------ACCT BAL.";
  391. PRINT "------BUDGET---COL. TOTALS"
  392. C1=0:  C2=C9
  393. GOSUB 8640
  394. PRINT LIN$
  395. PRINT "*****GRAND TOTALS";
  396. P1=T1:  P2=T2:  P3=T3
  397. GOSUB 8910
  398. RETURN
  399. REM
  400. REM
  401. REM     DISPLAY INCOME STATEMENT
  402. REM
  403. 7430 PRINT"COL.#---NAME-----------AMOUNT-";
  404. PRINT "------BUDGET-----VARIANCE-"
  405. IF I2>C9 OR I1>I2 THEN T1=0: T2=0: T3=0: GOTO 7470
  406. 7460 C1=I1:  C2=I2:  GOSUB 8640
  407. PRINT LIN$
  408. 7470 PRINT "*****TOTAL INCOME";
  409. P1=T1:  P2=T2:  P3=T3
  410. GOSUB 8910
  411. PRINT
  412. G1=T1:  G2=T2:  G3=T3
  413. IF E2>C9 OR E1>E2 THEN T1=0: T2=0: T3=0: GOTO 7530
  414. 7520 C1=E1:  C2=E2:  GOSUB 8640
  415. PRINT LIN$
  416. 7530 PRINT "***TOTAL EXPENSES";
  417. P1=T1:  P2=T2:  P3=T3:  GOSUB 8910
  418. PRINT
  419. G1=G1-T1: G2=G2-T2: G3=G3-T3
  420. PRINT "**SURPLUS/DEFICIT";
  421. P1=G1:  P2=G2:  P3=G3:  GOSUB 8910
  422. PRINT
  423. IF X2>C9 THEN 7710
  424. C1=X2:  C2=X2:  GOSUB 8640
  425. G1=G1+T1:  G2=G2+T2:  G3=G3+T3
  426. 7710 PRINT"****NET CASH FLOW";
  427. P1=G1:  P2=G2:  P3=G3:  GOSUB 8910
  428. PRINT
  429. IF A2>C9 OR A1>A2 THEN 8090
  430. T6=0
  431. IF R1>R9 THEN 7910
  432. FOR C=A1 TO A2
  433. T6=T6+D(C,R)
  434. NEXT C
  435. 7910 T7=0
  436. FOR C=A1 TO A2
  437. N=0:  T=0
  438. FOR R=0 TO R9
  439. IF D(C,R)=0 THEN 7960
  440. IF R=R2 OR R=R1 THEN 7960
  441. N=N+1
  442. T=T+D(C,R)
  443. 7960 NEXT R
  444. IF N>0 THEN T7=T7+T
  445. 7990 NEXT C
  446. T8=T7+T6
  447. PRINT "NET CASH BALANCE (ENDING)";
  448. V=T8:  L=13:  M=2
  449. GOSUB 9030:  PRINT
  450. PRINT "NET CASH BALA╬CE (BEGIN.)";
  451. V=T6:  GOSUB 9030
  452. PRINT "   NET CASH FLOW";
  453. V=T7:  GOSUB 9030:  PRINT
  454. 8090 RETURN
  455. REM
  456. REM    OUTPUT ROUTINES FOR TRIAL BALANCE OR INCOME STMT.
  457. REM
  458. 8640 T1=0:  T2=0:  T3=0
  459. FOR C=C1 TO C2
  460. IF C=X1 OR C=X3 THEN 8810
  461. N=0:  T=0
  462. FOR R=0 TO R9
  463. IF D(C,R)=0 OR R=R1 THEN 8710
  464. N=N+1
  465. IF R<>R2 THEN T=T+D(C,R)
  466. 8710 NEXT R
  467. IF N=0 THEN 8810
  468. P1=T:  T1=T1+P1
  469. IF R2>R9 THEN 8780
  470. P2=D(C,R2)
  471. T2=T2+P2:  P3=P1-P2:  T3=T3+P3
  472. 8780 V=C:   L=5:   M=0:   GOSUB 9030
  473. PRINT TAB(7); T$(C);
  474. GOSUB 8910
  475. 8810 NEXT C
  476. RETURN
  477. 8910 PRINT TAB(19);
  478. V=P1:   L=11:   M=2:   GOSUB 9030
  479. IF R2>R9 THEN 8990
  480. V=P2:  L=13:   GOSUB 9030
  481. V=P3:   L=13:   GOSUB 9030
  482. 8990 PRINT
  483. RETURN
  484. REM
  485. REM     FORMATTED PRINT ROUTINE
  486. REM
  487. REM
  488. 9030 IF M<>0 AND M<>2 THEN M=0
  489. 9040 L=INT(ABS(L))
  490. IF L<2 OR L>72 THEN L=14
  491. 9050 V1=INT(ABS(V))
  492. IF M=0 THEN V2=0:  GOTO 9080
  493. 9060 V2=INT((ABS(V)-V1)*100+.5)
  494. IF V2>100 THEN V2=0: V1=V1+1
  495. 9080 IF V1=0 AND M>0 THEN V1$="": GOTO 9210
  496. 9110 V9$=STR$(V1)
  497. IF V1<1000 OR M=0 THEN 9150
  498. IF V1<1E06 THEN 9140
  499. V$=STR$(V)
  500. GOTO 9350
  501. 9140 V1$=LEFT$(V9$,LEN(V9$)-4)
  502. V1$=V1$+","+MID$(V9$,LEN(V9$)-3,3)
  503. GOTO 9210
  504. 9150 IF M=0 THEN V1$=LEFT$(V9$,LEN(V9$)): GOTO 9210
  505. V1$=LEFT$(V9$,LEN(V9$)-1)
  506. 9210 IF M=0 THEN V2$="": GOTO 9310
  507. 9230 V9$=STR$(V2)
  508. IF LEN(V9$)<>3 THEN 9250
  509. 9240 V2$="."+V9$
  510. GOTO 9310
  511. 9250 IF LEN(V9$)=2 THEN V2$=".0"+V9$
  512. IF LEN(V9$)<>1 AND LEN(V9$)<>2 THEN PRINT "BAD .XX":STOP
  513. 9310 V9$=" "
  514. IF V<=-.005 THEN V9$="-"
  515. 9320 V$=V9$+V1$+V2$
  516. 9350 L9=LEN(V$)
  517. IF M=2 THEN L9=L9-1
  518. 9360 IF L>L9 THEN PRINT " ";: L9=L9+1: GOTO 9360
  519. 9380 PRINT MID$(V$,1,LEN(V$)-1);
  520. RETURN
  521. REM
  522. REM
  523. REM    CHECK FOR VALID COLUMN #
  524. REM
  525. 9730 IF K<3 THEN C=-1: GOTO 9920
  526. 9740 S2$=MID$(S$,2,1)
  527. IF S2$<"0" OR S2$>"9" THEN C=-1: GOTO 9930
  528. 9750 S3$=MID$(S$,3,1)
  529. IF S3$<"0" OR S3$>"9" THEN C=-1: GOTO 9930
  530. 9760 C=VAL(MID$(S$,2,2))    
  531. IF C<=C9 THEN 9990
  532. C=-(1)
  533. GOTO 9940
  534. REM
  535. REM    CHECK FOR VALID ROW
  536. REM
  537. 9830 IF K<>5 THEN R=-1: GOTO 9920
  538. 9840 S4$=MID$(S$,4,1)
  539. IF S4$<"0" OR S4$>"9" THEN R=-1: GOTO 9930
  540. 9850 S5$=MID$(S$,5,1)
  541. IF S5$<"0" OR S5$>"9" THEN R=-1: GOTO 9930
  542. 9860 R=VAL(MID$(S$,4,2))
  543. IF R<=R9 THEN 9990
  544. R=-1 
  545. GOTO 9960
  546. 9910 PRINT "INVALID COMMAND FUNCTION":  GOTO 9990
  547. 9920 PRINT "WRONG # OF CHARACTERS TYPED":  GOTO 9990
  548. 9930 PRINT "NON-NUMERIC ROW OR COLUMN #":  GOTO 9990
  549. 9940 PRINT "COLUMN NUMBER OUT OF RANGE":  GOTO 9990
  550. 9950 PRINT "ILLEGAL COLUMN FOR THIS FUNCTION":  GOTO 9990
  551. 9960 PRINT "ROW NUMBER OUT OF RANGE":   GOTO 9990
  552. 9970 PRINT "ILLEGAL ROW FOR THIS FUNCTION":   GOTO 9990
  553. 9990 RETURN
  554. 9999 END
  555. 4D3Ä4}4D3#û4à4E3₧4Ä4F3º4û4F3#»4₧4G3╕4º4G3#└4»4A3╔4╕4A3#╤4└4B3┘4╔4C4Γ4╤4C4#Ω4┘4D4≤4Γ4D4#√4Ω4E45≤4