ChipMaster's bwBASIC This also includes history going back to v2.10. *WARN* some binary files might have been corrupted by CRLF.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

150 lines
6.3 KiB

  1. 1 REM FINRAT
  2. 5 CLEAR 3000
  3. 10 CLS
  4. 20 PRINT TAB(10); "FINANCIAL RATIOS":PRINT
  5. 30 PRINT"THIS PROGRAM WILL COMPUTE SOME COMMONLY USED FINANCIAL RATIOS
  6. 35 PRINT"USING INFORMATION FROM A FIRM'S BALANCE SHEET AND INCOME
  7. 40 PRINT"STATEMENT. THE PROGRAM IS MENU DRIVEN. DATA FOR A COMPANY
  8. 45 PRINT"MAY BE INPUT, COMPUTATIONS MAY TAKE PLACE, INPUT DATA MAY
  9. 50 PRINT"BE EDITED, AND THE DATA MAY EVEN BE STORED ON CASSETTE OR
  10. 55 PRINT"DISKETTE. THE PROGRAM MAY BE EASILY MODIFIED BY THOSE
  11. 60 PRINT"DESIRING TO COMPUTE OTHER RATIOS OR DESIRING TO SHOW MORE
  12. 65 PRINT"DETAIL IN THE BALANCE SHEET.
  13. 90 PRINT:INPUT"PRESS ENTER TO BEGIN";Z9$
  14. 100 DIM A$(40),A(40),R$(30),R(30),B$(30),B(30)
  15. 110 FOR I=1 TO 27:READ A$(I):NEXT
  16. 113 FOR I=1 TO 13:READ R$(I):NEXT
  17. 120 GOSUB 9000
  18. 140 PRINT
  19. 150 INPUT"ARE DISK DRIVES ATTACHED(Y/N)";Z7$
  20. 160 IF Z7$<>"Y" AND Z7$<>"N" THEN GOSUB 10000:GOTO 150
  21. 200 CLS:PRINT TAB(10); "MENU":PRINT
  22. 205 PRINT"0. QUIT
  23. 210 PRINT"1. INPUT BALANCE SHEET AND INCOME DATA
  24. 220 PRINT"2. PRINT OUT BALANCE SHEET AND INCOME DATA AS INPUT
  25. 230 PRINT"3. EDIT INPUT DATA
  26. 240 PRINT"4. COMPUTE AND PRINT OUT APPROPRIATE RATIOS
  27. 250 PRINT"5. STORE COMPANY INPUT DATA ONTO DISKETTE
  28. 260 PRINT"6. READ COMPANY INPUT DATA FROM DISKETTE
  29. 270 PRINT"7. STORE COMPANY INPUT DATA ONTO CASSETTE
  30. 280 PRINT"8. READ COMPANY INPUT DATA FROM CASSETTE
  31. 290 PRINT"9. CHANGE DATE
  32. 300 INPUT"INPUT YOUR CHOICE";Z1
  33. 305 IF Z1 = 0 THEN END
  34. 310 ON Z1 GOSUB 6000,6100,6200,6300,4000,4100,4200,4300,900
  35. 320 GOTO 200
  36. 900 CLS:PRINT "DATE CHANGE":PRINT
  37. 910 PRINT"PRESENT DATE FOR DATA IS ";D$;:INPUT"NEW DATE ";D$
  38. 920 RETURN
  39. 4000 REM PRINT OUT DATA FOR COMPANY ON DISKETTE
  40. 4010 CLS:INPUT"PRESS ENTER WHEN DISKETTE READY";Z9$
  41. 4020 PRINT
  42. 4030 PRINT"PRESENT DISK FILE NAME IS ";C$;:INPUT" NEW NAME";C$
  43. 4040 OPEN"O",1,C$
  44. 4050 FOR I=1 TO 27:WRITE # 1,A(I):NEXT:WRITE # 1,D$
  45. 4060 CLOSE #1
  46. 4070 RETURN
  47. 4100 REM INPUT DATA FOR COMPANY FROM DISKETTE
  48. 4110 CLS:INPUT"PRESS ENTER WHEN DISKETTE READY";Z9$
  49. 4120 PRINT
  50. 4130 INPUT"ENTER NAME OF DISK FILE ";C$
  51. 4140 OPEN"I",1,C$
  52. 4150 FOR I=1 TO 27:INPUT #1,A(I):NEXT:INPUT #1,D$
  53. 4160 CLOSE #1
  54. 4170 RETURN
  55. 4200 REM INPUT COMPANY DATA FROM CASSETTE
  56. 4210 CLS:INPUT"PRESS ENTER WHEN CASSETTE READY";Z9$
  57. 4220 ' IF Z7$="Y" THEN CMD"T"
  58. 4230 FOR I=1 TO 27:INPUT #-1,A(I):NEXT:INPUT #-1,D$
  59. 4240 RETURN
  60. 4300 REM PRINT COMPANY DATA ONTO CASETTE
  61. 4310 CLS:INPUT"PRESS ENTER WHEN CASSETTE READY";Z9$
  62. 4320 ' IF Z7$="Y" THEN CMD"T"
  63. 4330 FOR I=1 TO 27:WRITE #-1,A(I):NEXT:WRITE #-1,D$
  64. 4340 RETURN
  65. 6000 REM INPUT OF BALANCE SHEET AND INCOME STATEMENT DATA
  66. 6005 CLS:PRINT"ENTER THE FOLLOWING DATA":PRINT
  67. 6010 FOR I=1 TO 27
  68. 6020 PRINT A$(I);TAB(40);:INPUT A(I)
  69. 6030 NEXT I
  70. 6040 RETURN
  71. 6100 REM DISPLAY INPUTS
  72. 6105 CLS
  73. 6110 INPUT"IS LINE PRINTER OUTPUT DESIRED(Y/N)";Z2$
  74. 6120 IF Z2$<>"Y" AND Z2$<>"N" THEN GOSUB 10000:GOTO 6110
  75. 6125 IF Z2$="Y" THEN INPUT"PRESS ENTER WHEN PRINTER READY";Z9$
  76. 6130 CLS
  77. 6135 PRINT "DATE IS ";D$:IF Z2$="Y" THEN LPRINT "DATE IS ";D$:LPRINT " "
  78. 6140 FOR I=1 TO 27
  79. 6150 PRINT USING F$(1);I,A$(I),A(I):IF Z2$="Y" THEN LPRINT USING F$(1);I,A$(I),A(I)
  80. 6160 IF Z2$="N" AND I/14=INT(I/14) THEN GOSUB 10100
  81. 6170 NEXT I
  82. 6180 GOSUB 10100
  83. 6190 RETURN
  84. 6200 REM EDIT INPUT ITEM
  85. 6210 CLS
  86. 6220 FOR I=1 TO 27:PRINT USING F$(1);I,A$(I),A(I):FOR JJ=1 TO 300:NEXT:NEXT I
  87. 6230 INPUT"INPUT ITEM # TO CHANGE(0 TO END)";II
  88. 6240 IF II=0 THEN RETURN
  89. 6250 PRINT:PRINT USING F$(2);II,A$(II),A(II);
  90. 6260 INPUT A(II)
  91. 6270 PRINT:GOTO 6230
  92. 6300 REM COMPUTATION AND PRINTOUT OF RATIOS AND OTHER DERIVED DATA
  93. 6305 INPUT"IS LINE PRINTER OUTPUT DESIRED(Y/N)";Z2$
  94. 6307 IF Z2$<>"Y" AND Z2$<>"N" THEN GOSUB 10000:GOTO 6305
  95. 6310 B(1)=A(11)+A(12)+A(13)+A(14)+A(15):REM CURRENT ASSETS
  96. 6320 B(2)=A(16)+A(17)+A(18)+A(19):REM FIXED & INTANGIBLE ASSETS
  97. 6330 B(3)=B(1)+B(2):REM TOTAL ASSETS
  98. 6340 B(4)=B(3)-A(19):REM TOTAL OPERATING ASSETS
  99. 6350 B(5)=A(20)+A(21)+A(22)+A(23):REM CURRENT LIABILITIES
  100. 6360 B(6)=A(24)+A(25):REM LONG TERM DEBT & PREFERRED
  101. 6370 B(7)=A(26):REM RETAINED EARNINGS
  102. 6380 B(8)=A(27):REM COMMON STOCK
  103. 6390 B(9)=B(7)+B(8):REM TOTAL STOCKHOLDERS EQUITY
  104. 6400 B(10)=B(5)+B(6)+B(9):REM TOTAL LIABILITIES AND EQUITY
  105. 6410 B(11)=A(1)-A(2):REM GROSS MARGIN
  106. 6420 B(12)=B(11)-A(3)-A(4)-A(5)-A(6):REM INCOME FROM OPERATIONS
  107. 6430 B(13)=B(12):REM EBIT
  108. 6440 B(14)=B(13)-A(7):REM EBT
  109. 6450 B(15)=B(14)-A(8):REM EARNINGS AFTER TAXES
  110. 6460 B(16)=A(9):REM DIVIDENDS ON PREFERRED STOCK
  111. 6470 B(17)=B(15)-B(16):REM EARNINGS AVAILABLE TO COMMON SHAREHOLDERS
  112. 6480 B(18)=B(1) - B(5) :REM WORKING CAPITAL
  113. 6500 REM RATIOS NEXT
  114. 6510 R(1)=B(17)/A(10):REM EPS
  115. 6520 R(2)=A(1)/B(4):REM TURNOVER OF OPERATING ASSETS
  116. 6530 R(3)=B(1)/B(5):REM CURRENT RATIO
  117. 6540 R(4)=(A(11)+A(12))/B(5):REM ACID TEST RATIO
  118. 6550 R(5)=A(1)/A(13):REM RECEIVABLES TURNOVER
  119. 6560 R(6)=A(2)/A(14):REM INVENTORY TURNOVER
  120. 6570 R(7)=B(11)/A(1):REM GROSS PROFIT MARGIN
  121. 6580 R(8)=A(1)/B(18):REM WORKING CAPITAL TURNOVER
  122. 6590 R(9)=B(15)/B(18):REM NET PROFITS TO WORKING CAPITAL
  123. 6600 R(10)=B(5)/(B(9)+A(25)-A(19)):REM CURRENT DEBT TO NET WORTH
  124. 6610 R(11)=B(18)/B(3):REM WORKING CAPITAL TO TOTAL ASSETS
  125. 6620 R(12)=A(1)/B(3):REM SALES TO TOTAL ASSETS
  126. 6630 R(13)=B(9)/A(10):REM BOOK VALUE PER SHARE
  127. 6800 REM PRINT RATIOS
  128. 6805 CLS
  129. 6807 PRINT D$:IF Z2$="Y" THEN LPRINT "DATE IS ";D$:LPRINT
  130. 6810 FOR I=1 TO 13
  131. 6820 PRINT USING F$(3);R$(I),R(I)
  132. 6830 IF Z2$="Y" THEN LPRINT USING F$(3);R$(I),R(I)
  133. 6840 NEXT I
  134. 6850 GOSUB 10100
  135. 6860 RETURN
  136. 8000 REM DATA
  137. 8010 DATA SALES,COST OF GOODS SOLD,ADMINISTRATIVE & SELLING EXP.,GENERAL EXPENSES,DEPRECIATION,OTHER EXPENSES,INTEREST EXPENSE,INCOME TAXES,DIVIDENDS ON PREFERRED STOCKS,SHARES OUTSTANDING
  138. 8020 DATA CASH,MARKETABLE SECURITIES,NET ACCTS RECEIVABLE,INVENTORY,PREPAID EXPENSE,NET PLANT & EQUIP.,NET BUILDINGS, LAND(COST),INTANGIBLES
  139. 8030 DATA ACCOUNTS PAYABLE,NOTES PAYABLE,ACCRUED EXPENSES,LONG TERM DEBT(CURR. PORTION),LONG TERM DEBT(NON CURR),PREFERRED STOCK,RETAINED EARNINGS, COMMON STOCK
  140. 8050 DATA EPS,TURNOVER OF OPERATING ASSETS,CURRENT RATIO,ACID TEST RATIO,RECEIVABLES TURNOVER,INVENTORY TURNOVER
  141. 8060 DATA GROSS PROFIT MARGIN,WORKING CAPITAL TURNOVER,NET PROFITS TO WORKING CAPITAL,CURRENT DEBT TO NET WORTH
  142. 8070 DATA WORKING CAPITAL TO TOTAL ASSETS,SALES TO TOTAL ASSETS,BOOK VALUE PER SHARE
  143. 9000 REM PRINTING FORMATS
  144. 9010 F$(1)="## % % #########.##"
  145. 9020 F$(2)="## % % ########.##"
  146. 9030 F$(3)="% % ####.##"
  147. 9099 RETURN
  148. 10000 PRINT"INPUT ERROR! TRY AGAIN":FOR JJ=1 TO 300:NEXT:RETURN
  149. 10100 INPUT"PRESS ENTER TO CONTINUE";Z9$:RETURN