home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / basic / library / gwbasic / friendly / menu3.bas < prev    next >
Encoding:
BASIC Source File  |  1994-05-25  |  29.2 KB  |  339 lines

  1. 10 FOR A=1 TO 10:KEY A,"":NEXT:KEY OFF:WIDTH 80:SCREEN 0,0,0:ON ERROR GOTO 210:ON KEY(10) GOSUB 3380:KEY(10) ON
  2. 20 GOSUB 240
  3. 30 COLOR 0,7:LOCATE 9,1:PRINT" A ":LOCATE 11,1:PRINT" B ":LOCATE 13,1:PRINT" C ":LOCATE 15,1:PRINT" D ":LOCATE 9,27:PRINT" E ":LOCATE 11,27:PRINT" F ":LOCATE 13,27:PRINT" G ":LOCATE 15,27:PRINT" H ":LOCATE 9,57:PRINT" I ":LOCATE 11,57:PRINT" J "
  4. 40 LOCATE 13,57:PRINT" K ":LOCATE 15,57:PRINT" L "
  5. 50 COLOR 6,0:LOCATE 9,5:PRINT"Business Simulation":LOCATE 11,5:PRINT"Depreciation Costs":LOCATE 13,5:PRINT"Inventory Reorder":LOCATE 15,5:PRINT"Present/Future Value":LOCATE 9,31:PRINT"Amortization Analysis"
  6. 60 LOCATE 11,31:PRINT"Economic Order Quantity":LOCATE 13,31:PRINT"Break Even Analysis":LOCATE 15,31:PRINT"Stock Ratio Analysis":LOCATE 9,61:PRINT"Check Book Register":LOCATE 11,61:PRINT"Intro Menu #1":LOCATE 13,61:PRINT"Intro Menu #2"
  7. 70 LOCATE 15,61:PRINT"Return To DOS"
  8. 80 GOSUB 260
  9. 90 COLOR 4:LOCATE 22,2:PRINT"╔"STRING$(37,"═")"╤╤"STRING$(37,"═")"╗"
  10. 100 PRINT" ║"TAB(7);:COLOR 0,7:PRINT"    AVAILABLE ON MENU ONE    ";:COLOR 4,0:PRINT TAB(40)"││"TAB(45);:COLOR 0,7:PRINT"     AVAILABLE ON MENU TWO     ";:COLOR 4,0:PRINT TAB(79)"║"
  11. 110 PRINT" ║";:COLOR 2:PRINT TAB(11)"Introduction & Games"TAB(40);:COLOR 4:PRINT"││"TAB(50);:COLOR 2:PRINT"Games & Entertainment";:COLOR 4:PRINT TAB(79)"║";
  12. 120 LOCATE 25,2:PRINT"╚"STRING$(37,"═")"╧╧"STRING$(37,"═")"╝";:COLOR 3,0
  13. 130 GOSUB 270:IF RS$<"A" OR RS$>"L" THEN 130 ELSE ON ASC(RS$)-64 GOTO 140,740,2310,1440,300,1250,620,2410,150,170,180,160
  14. 140 RUN"BUSONE"
  15. 150 RUN"info"
  16. 160 CLS:SYSTEM
  17. 170 ON ERROR GOTO 190:RUN"MENU1"
  18. 180 ON ERROR GOTO 200:RUN"MENU2"
  19. 190 CLEAR:ON ERROR GOTO 210:GOSUB 220:RUN"MENU1"
  20. 200 CLEAR:ON ERROR GOTO 210:GOSUB 220:RUN"MENU2"
  21. 210 IF ERR=6 THEN RESUME NEXT ELSE RUN
  22. 220 LOCATE 19,1:PRINT SPC(79):COLOR 0,7:LOCATE 19,14:PRINT"Please Insert Other Diskette And Strike Any Key When Ready":COLOR 7,0
  23. 230 GOSUB 270:LOCATE 19,1:PRINT SPC(79):GOSUB 260:RETURN
  24. 240 COLOR 12,0:CLS:LOCATE 1,20,0:PRINT STRING$(43,"─"):LOCATE 3,20:PRINT STRING$(43,"─"):LOCATE 1,19:PRINT"┌":LOCATE 1,63:PRINT"┐":LOCATE 3,63:PRINT"┘":LOCATE 3,19:PRINT"└":LOCATE 2,19:PRINT"│"SPC(43)"│":COLOR 0,7
  25. 250 LOCATE 2,29:PRINT" F R I E N D L Y W A R E ":COLOR 3,0:LOCATE 5,24:PRINT"Programs Available From This Menu":RETURN
  26. 260 LOCATE 19,14:COLOR 15:PRINT"*****";:COLOR 3,0:PRINT" Strike Key Corresponding To Program Desired ";:COLOR 15:PRINT"*****":COLOR 3:RETURN
  27. 270 IF INKEY$<>"" THEN 270
  28. 280 DEF SEG=&H40:POKE &H17,(PEEK(&H17) OR 96):RS$=INKEY$:IF RS$="" THEN 280 ELSE DEF SEG:RETURN
  29. 290 CLS:PRINT:COLOR 0,7:PRINT" F10 ";:COLOR 7,0:PRINT" To Menu":COLOR 11,0:LOCATE 1,19:PRINT"┌"STRING$(43,"─")"┐":LOCATE 3,19:PRINT"└"STRING$(43,"─")"┘":LOCATE 2,19:PRINT"│"SPC(43)"│":RETURN
  30. 300 AMNT#=0:IST#=0:TNT#=0:TMT#=0:MD=0:PYMT#=0:NB=0:YS=0:PF#=0:GOSUB 360:GOSUB 370
  31. 310 GOSUB 270:IF RS$<"A" OR RS$>"E" THEN 310 ELSE ON ASC(RS$)-64 GOTO 320,330,340,350,10
  32. 320 HD$="Calculate Interest Rate ":GOSUB 420:GOSUB 440:GOSUB 450:GOSUB 460:GOSUB 470:GOSUB 540:GOSUB 500:GOSUB 410:GOTO 300
  33. 330 HD$="Calculate Payment Amount":GOSUB 420:GOSUB 440:GOSUB 460:GOSUB 470:GOSUB 480:GOSUB 590:GOSUB 500:GOSUB 410:GOTO 300
  34. 340 HD$=" Calculate Loan Amount  ":GOSUB 420:GOSUB 450:GOSUB 460:GOSUB 470:GOSUB 480:GOSUB 600:GOSUB 500:GOSUB 410:GOTO 300
  35. 350 HD$=" Calculate Loan Payoff  ":GOSUB 420:GOSUB 440:GOSUB 450:GOSUB 470:GOSUB 480:GOSUB 490:GOSUB 610:GOSUB 500:GOSUB 410:GOTO 300
  36. 360 GOSUB 290:COLOR 0,7:LOCATE 2,29:PRINT" A M O R T I Z A T I O N ":COLOR 7,0:RETURN
  37. 370 COLOR 11,0:LOCATE 5,30:PRINT"Functions Available":PRINT TAB(30)STRING$(20,"-")
  38. 380 LOCATE 8,26:COLOR 0,7:PRINT" A ":LOCATE 10,26:PRINT" B ":LOCATE 12,26:PRINT" C ":LOCATE 14,26:PRINT" D ":LOCATE 16,26:PRINT" E "
  39. 390 COLOR 7,0:LOCATE 8,30:PRINT"Calculate interest rate":LOCATE 10,30:PRINT"Calculate payment amount":LOCATE 12,30:PRINT"Calculate loan amount":LOCATE 14,30:PRINT"Calculate loan payoff":LOCATE 16,30:PRINT"Return to menu #3"
  40. 400 COLOR 11,0:LOCATE 23,12:PRINT"***** Strike Key Corresponding To Function Desired *****":COLOR 7,0:RETURN
  41. 410 LOCATE 25,22:PRINT"***** Strike Key To Return To Menu *****";:COLOR 7,0:GOTO 270
  42. 420 GOSUB 360:GOSUB 2440:LOCATE 6,16:PRINT"Loan Amount":LOCATE 8,16:PRINT"Payment Amount":LOCATE 10,16:PRINT"Number Of Years":LOCATE 12,16:PRINT"No. Payments Per Year":LOCATE 14,16:PRINT"Interest Rate"
  43. 430 LOCATE 16,16:PRINT"No. Payments made":LOCATE 18,16:PRINT"Payoff Amount":LOCATE 20,16:PRINT"Total Interest Paid":LOCATE 22,16:PRINT"Total Amount To Pay":RETURN
  44. 440 LOCATE 6,16,1:COLOR 11,0:PRINT"Loan Amount                   ";:GOSUB 2940:AMNT#=VAL(ZA):IF AMNT#=0 THEN 440 ELSE RETURN
  45. 450 LOCATE 8,16,1:COLOR 11,0:PRINT"Payment Amount                ";:GOSUB 2940:PYMT#=VAL(ZA):IF PYMT#=0 THEN 450 ELSE RETURN
  46. 460 LOCATE 10,16,1:COLOR 11,0:PRINT"Number Of Years               ";:DEC=1:GOSUB 2940:YS=VAL(ZA):IF YS=0 THEN 460 ELSE RETURN
  47. 470 LOCATE 12,16,1:COLOR 11,0:PRINT"No. Payments Per Year         ";:GOSUB 3250:NB=VAL(ZA):IF NB=0 THEN 470 ELSE RETURN
  48. 480 LOCATE 14,16,1:COLOR 11,0:PRINT"Interest Rate                 ";:DEC=3:GOSUB 2940:IST#=VAL(ZA):IF IST#=0 THEN 480 ELSE RETURN
  49. 490 LOCATE 16,16,1:COLOR 11,0:PRINT"No. Payments Made             ";:GOSUB 3250:MD=VAL(ZA):RETURN
  50. 500 LOCATE 6,16:PRINT USING"Loan Amount             $$################,.##";AMNT#:LOCATE 8,16:PRINT USING"Payment Amount          $$################,.##";PYMT#:LOCATE 10,16:PRINT USING"Number Of Years            ################,.#";YS
  51. 510 LOCATE 12,16:PRINT USING"No. Payments Per Year        #############,###";NB:LOCATE 14,16:PRINT USING"Interest Rate            ################,.##%";IST#;:IF SW THEN PRINT" +":SW=0
  52. 520 LOCATE 16,16:PRINT USING"No. Payments made            ############,####";MD:LOCATE 18,16:PRINT USING"Payoff Amount          $$#################,.##";PF#:LOCATE 20,16:PRINT USING"Total Interest Paid    $$#################,.##";TNT#
  53. 530 LOCATE 22,16:PRINT USING"Total Amount To Pay    $$#################,.##";TMT#:RETURN
  54. 540 X1#=0:X2#=1:IST#=.5
  55. 550 I#=(AMNT#*IST#)/(PYMT#*NB)-1+(1/((1+(IST#/NB))^(YS*NB))):IF ABS(ABS(I#)-1E-10)<5E-10 THEN 580
  56. 560 IF I#>0 THEN X2#=IST# ELSE IF HH#=I# THEN IST#=1:SW=1:GOTO 580 ELSE HH#=I#:X1#=IST#
  57. 570 IST#=(X1#+X2#)/2:GOTO 550
  58. 580 TMT#=YS*PYMT#*NB:TNT#=TMT#-AMNT#:PF#=AMNT#:IST#=(INT(IST#*10000+.5))/100:RETURN
  59. 590 IST#=IST#/100:PYMT#=((AMNT#*IST#)/NB)/(1-(1/(((1+(IST#/NB))^(YS*NB))))):PYMT#=(INT(PYMT#*100+.5))/100:TMT#=YS*PYMT#*NB:IST#=IST#*100:TNT#=TMT#-AMNT#:PF#=AMNT#:RETURN
  60. 600 IST#=IST#/100:AMNT#=PYMT#*((1-(1/((1+(IST#/NB))^(YS*NB))))/(IST#/NB)):AMNT#=(INT(AMNT#*100+.5))/100:TMT#=YS*PYMT#*NB:PF#=AMNT#:TNT#=TMT#-AMNT#:IST#=IST#*100:RETURN
  61. 610 IST#=IST#/100:PF#=AMNT#*((1+(IST#/NB))^MD)-PYMT#*((1-((1+(IST#/NB))^MD))/(-(IST#/NB))):PF#=(INT(PF#*100+.5))/100:IST#=IST#*100:TMT#=PF#:TNT#=PF#-(AMNT#-PYMT#*MD):TNT#=(INT(TNT#*100+.5))/100:RETURN
  62. 620 GOSUB 630:GOSUB 660:GOSUB 650:GOTO 620
  63. 630 GOSUB 290:LOCATE 2,31:COLOR 0,7:PRINT" B R E A K   E V E N ":COLOR 11,0:LOCATE 4,32:PRINT"Break Even Analysis":COLOR 7,0
  64. 640 LOCATE 5,4:PRINT"╔"STRING$(72,"═")"╗":FOR J=6 TO 23:LOCATE J,4:PRINT"║":LOCATE J,77:PRINT"║";:NEXT:LOCATE 24,4:PRINT"╚"STRING$(72,"═")"╝";:RETURN
  65. 650 COLOR 11,0:LOCATE 25,17:PRINT"***** Strike Any Key For Additional Analysis *****";:COLOR 7,0:GOTO 270
  66. 660 LOCATE 7,18,0:PRINT"Fixed Costs (In $)":LOCATE 9,18:PRINT"Variable Costs (In %)"
  67. 670 LOCATE 7,18,1:COLOR 11,0:PRINT"Fixed Costs (In $)            ";:GOSUB 2940:FCOST#=VAL(ZA):IF FCOST#=0 THEN 670
  68. 680 LOCATE 9,18,1:PRINT"Variable Costs (In %)         ";:DEC=3:GOSUB 2940:VPERC#=VAL(ZA)
  69. 690 IF VPERC#=0 OR VPERC#>99 THEN LOCATE 23,20,0:PRINT"Percent cannot be greater than 100 - Retry":FOR I=1 TO 2500:NEXT:LOCATE 23,19:PRINT SPACE$(43):LOCATE 9,40:PRINT SPACE$(30):GOTO 680
  70. 700 LOCATE 7,18,1:PRINT USING"Fixed Costs (In $)            $$##########,.##";FCOST#:LOCATE 9,18,1:PRINT USING"Variable Costs (In %)                  ##,.##%";VPERC#:LOCATE 11,15,0:PRINT"Sales         Fixed Costs    Variable Costs      Net Profit"
  71. 710 FPERC#=(100-VPERC#)/100:VCOST#=INT(((FCOST#*VPERC#/FPERC#/100)+5.000001E-03)*100)/100:SALES#=VCOST#+FCOST#:COLOR 7,0:PC#=.75
  72. 720 FOR I=13 TO 23:ESALES#=INT(((SALES#*PC#)+5.000001E-03)*100)/100:ECOST#=INT(((ESALES#*VPERC#/100)+5.000001E-03)*100)/100:EPROFIT#=ESALES#-FCOST#-ECOST#:IF PC#=1 THEN COLOR 11,0:EPROFIT#=0
  73. 730 LOCATE I,7:PRINT USING"$$##########,.## $$##########,.## $$##########,.## $$##########,.##";ESALES#;FCOST#;ECOST#;EPROFIT#;:COLOR 7,0:PC#=INT((PC#+5.500001E-02)*100)/100:NEXT:RETURN
  74. 740 GOSUB 800:GOSUB 810
  75. 750 IF RS$="E" THEN 10 ELSE IF RS$<"A" OR RS$>"D" THEN GOSUB 270:GOTO 750 ELSE GOSUB 800:ON ASC(RS$)-64 GOTO 760,770,780,790
  76. 760 HD$="      Straight-line method":GOSUB 860:GOSUB 870:GOSUB 900:GOSUB 930:GOSUB 1000:GOSUB 1020:GOSUB 1040:GOSUB 1060:GOSUB 850:GOTO 740
  77. 770 HD$="   Units-of-production method":GOSUB 860:GOSUB 880:GOSUB 900:GOSUB 1200:GOSUB 1020:GOSUB 1230:GOSUB 850:GOTO 740
  78. 780 HD$="    Declining-balance method":GOSUB 860:GOSUB 870:GOSUB 900:GOSUB 930:GOSUB 1020:GOSUB 1040:GOSUB 1110:GOSUB 850:GOTO 740
  79. 790 HD$=" Sum-of-the-years-digits method":GOSUB 860:GOSUB 870:GOSUB 900:GOSUB 930:GOSUB 1020:GOSUB 1040:GOSUB 1160:GOSUB 850:GOTO 740
  80. 800 GOSUB 290:COLOR 0,7:LOCATE 2,29:PRINT" D E P R E C I A T I O N ":COLOR 7,0:RETURN
  81. 810 COLOR 11,0:LOCATE 5,32:PRINT"FUNCTIONS AVAILABLE":PRINT TAB(32)STRING$(19,"-")
  82. 820 LOCATE 8,25:COLOR 0,7:PRINT" A ":LOCATE 10,25:PRINT" B ":LOCATE 12,25:COLOR 0,7:PRINT" C ":LOCATE 14,25:COLOR 0,7:PRINT" D ":LOCATE 16,25:PRINT" E "
  83. 830 COLOR 7,0:LOCATE 8,29:PRINT"Straight-line method":LOCATE 10,29:PRINT"Units-of-production method":LOCATE 12,29:PRINT"Double-Declining-balance method":LOCATE 14,29:PRINT"Sum-of-the-years-digits method":LOCATE 16,29:PRINT"Return to menu #3"
  84. 840 COLOR 11,0:LOCATE 23,12:PRINT"***** Strike Key Corresponding To Function Desired *****":COLOR 7,0:GOTO 270
  85. 850 LOCATE 25,22:PRINT"***** Strike Key To Return To Menu *****";:COLOR 7,0:GOTO 270
  86. 860 COLOR 11,0:LOCATE 4,25:PRINT HD$:COLOR 7,0:GOSUB 640:RETURN
  87. 870 LOCATE 7,16,0:PRINT"Asset Cost":LOCATE 9,16:PRINT"Estimated Residual Value":LOCATE 11,16:PRINT"Estimated Life (20 Yrs Max)":LOCATE 13,16:PRINT"Fiscal Year Starting Month (1-12)":LOCATE 15,16:PRINT"Usage Year Starting Month (1-12)":RETURN
  88. 880 LOCATE 7,16,0:PRINT"Asset Cost":LOCATE 9,16:PRINT"Estimated Residual Value":LOCATE 11,16:PRINT"Estimated Life (Hours)":LOCATE 13,16:PRINT"Hours Used During Year":LOCATE 15,16:PRINT"Hourly Depreciation Rate"
  89. 890 LOCATE 17,16:PRINT"Current Year Depreciation":RETURN
  90. 900 LOCATE 7,16,1:COLOR 11,0:PRINT"Asset Cost                        ";:GOSUB 2940:COST#=VAL(ZA):IF COST#=0 THEN 900
  91. 910 LOCATE 9,16:COLOR 11,0:PRINT"Estimated Residual Value          ";:GOSUB 2940:VALUE#=VAL(ZA)
  92. 920 IF VALUE#>COST# THEN LOCATE 23,17:COLOR 11,0:PRINT"Salvage value cannot be greater than cost - Retry":FOR I=1 TO 2500:NEXT:LOCATE 23,17:PRINT SPACE$(49):LOCATE 9,45:PRINT SPACE$(20):COLOR 7,0:GOTO 910 ELSE RETURN
  93. 930 LOCATE 11,16:COLOR 11,0:PRINT"Estimated Life (20 Yrs Max)       ";:GOSUB 3250:LF#=VAL(ZA):IF LF#=0 THEN 930
  94. 940 IF LF#>20 THEN LOCATE 23,17:COLOR 11,0:PRINT"Estimated life cannot be greater than 20 - Retry":FOR I=1 TO 2500:NEXT:LOCATE 23,17:PRINT SPC(49):LOCATE 11,45:PRINT SPC(20):COLOR 7,0:GOTO 930
  95. 950 IF LF#<3 THEN LOCATE 23,17:COLOR 11,0:PRINT"This method not advisable for short term - Retry":FOR I=1 TO 2500:NEXT:LOCATE 23,17:PRINT SPC(50):LOCATE 11,45:PRINT SPC(20):COLOR 7,0:GOTO 930
  96. 960 LOCATE 13,16:COLOR 11,0:PRINT"Fiscal Year Starting Month (1-12) ";:GOSUB 3250:FMNT#=VAL(ZA):IF FMNT#=0 THEN 960
  97. 970 LOCATE 15,16:COLOR 11,0:PRINT"Usage Year Starting Month  (1-12) ";:GOSUB 3250:UNMT#=VAL(ZA):IF UNMT#=0 THEN 970 ELSE NMNT#=UNMT#
  98. 980 IF UNMT#<FMNT# THEN NMNT#=UNMT#+12
  99. 990 PARTIAL#=12-(NMNT#-FMNT#):RETURN
  100. 1000 AN#=(COST#-VALUE#)/LF#:IF PARTIAL#<12 THEN FIRST#=AN#*PARTIAL#/12:LAST#=AN#*(12-PARTIAL#)/12:REMAIN#=12-PARTIAL#:YS#=LF#-1
  101. 1010 RETURN
  102. 1020 COLOR 11,0
  103. 1030 LOCATE 7,16:PRINT USING"Asset Cost                    $$##############,.##";COST#:LOCATE 9,16:PRINT USING"Estimated Residual Value      $$##############,.##";VALUE#:RETURN
  104. 1040 LOCATE 11,16:PRINT USING"Estimated Life (20 Yrs Max)                   ####";LF#:LOCATE 13,16:PRINT USING"Fiscal Year Starting Month (1-12)               ##";FMNT#:
  105. 1050 LOCATE 15,16:PRINT USING"Usage Year Starting Month (1-12)                ##";UNMT#:RETURN
  106. 1060 IF PARTIAL#<12 GOTO 1080
  107. 1070 LOCATE 17,16:PRINT USING"Annual Depreciation           $$##############,.##";AN#:RETURN
  108. 1080 LOCATE 17,16:PRINT"First " PARTIAL# " Months Deprec.";TAB(46);:PRINT USING "$$##############,.##";FIRST#:LOCATE 19,16:PRINT"Annual Deprec.: " YS# " Years";TAB(46);:PRINT USING "$$##############,.##";AN#
  109. 1090 LOCATE 21,16,1:PRINT"Last  " REMAIN# " Months Deprec.";TAB(46);:PRINT USING "$$##############,.##";LAST#:RETURN
  110. 1100 LOCATE 17,6,0:PRINT"Yr.      Deprec.  Yr.      Deprec.  Yr.      Deprec.  Yr.      Deprec.":LOCATE 18,6:PRINT"---  -----------  ---  -----------  ---  -----------  ---  -----------":RETURN
  111. 1110 GOSUB 1100:PC#=INT((100/LF#*.02+5.000001E-03)*100)/100:BK#=COST#:AN#=INT((PARTIAL#/12*(PC#*BK#)+5.000001E-03)*100)/100:BK#=BK#-AN#:YRS#=1
  112. 1120 FOR C= 6 TO 65 STEP 18:FOR R=19 TO 23:LOCATE R,C,0:PRINT USING"## ";YRS#;:COLOR 7,0:PRINT USING"$$#######,.##";AN#:COLOR 11,0
  113. 1130 YRS#=YRS#+1:IF YRS#>LF# THEN RETURN
  114. 1140 AN#=INT((PC#*BK#+5.000001E-03)*100)/100:BK#=BK#-AN#:IF BK#<VALUE# AND BK#>0 THEN BK#=BK#+AN#:AN#=INT((BK#-VALUE#+5.000001E-03)*100)/100:BK#=0
  115. 1150 NEXT:NEXT:RETURN
  116. 1160 GOSUB 1100::DENOM#=0:FOR I=1 TO LF#:DENOM#=DENOM#+I:NEXT:BK#=COST#-VALUE#:YRS#=1:AN#=INT((PARTIAL#/12*(LF#/DENOM#*BK#)+5.000001E-03)*100)/100
  117. 1170 FOR C= 6 TO 65 STEP 18:FOR R=19 TO 23
  118. 1180 LOCATE R,C,0:PRINT USING"## ";YRS#;:COLOR 7,0:PRINT USING"$$#######,.##";AN#:COLOR 11,0:AN#=INT((((12-PARTIAL#)/12*((LF#-YRS#+1)/DENOM#*BK#))+((12-(12-PARTIAL#))/12*((LF#-YRS#)/DENOM#*BK#))+5.000001E-03)*100)/100:YRS#=YRS#+1:IF YRS#>LF# THEN RETURN
  119. 1190 NEXT:NEXT:RETURN
  120. 1200 LOCATE 11,16:COLOR 11,0:PRINT"Estimated Life (Hours)            ";:GOSUB 3250:LF#=VAL(ZA):IF LF#=0 THEN 1200
  121. 1210 LOCATE 13,16:COLOR 11,0:PRINT"Hours Used During Year            ";:GOSUB 3250:HRS#=VAL(ZA):IF HRS#=0 THEN 1210
  122. 1220 HR#=(COST#-VALUE#)/LF#:AN#=HR#*HRS#:RETURN
  123. 1230 LOCATE 11,16,0:PRINT USING"Estimated Life (Hours)                     #######";LF#:LOCATE 13,16:PRINT USING"Hours Used During Year                     #######";HRS#
  124. 1240 LOCATE 15,16:PRINT USING"Hourly Depreciation Rate          $$##########,.##";HR#:LOCATE 17,16:PRINT USING "Current Year Depreciation     $$##############,.##";AN#:RETURN
  125. 1250 GOSUB 1260:GOSUB 1290:GOSUB 1280:GOTO 1250
  126. 1260 GOSUB 290:COLOR 0,7:LOCATE 2,27:PRINT" E C O N O M I C   O R D E R ":COLOR 7,0:COLOR 11,0:LOCATE 4,30:PRINT"Economic Order Quantity":COLOR 7,0
  127. 1270 COLOR 11,0:LOCATE 4,30:PRINT HD$:COLOR 7,0:LOCATE 5,11:PRINT"╔"STRING$(58,"═")"╗":FOR J=6 TO 23:LOCATE J,11:PRINT"║":LOCATE J,70:PRINT"║";:NEXT:LOCATE 24,11:PRINT"╚"STRING$(58,"═")"╝";:RETURN
  128. 1280 COLOR 11,0:LOCATE 25,17,0:PRINT"***** Strike Any Key For Additional Analysis *****";:COLOR 7,0:GOTO 270
  129. 1290 LOCATE 7,18,0:PRINT"Units Required During Year":LOCATE 9,18:PRINT"Ordering Cost, Per Order":LOCATE 11,18:PRINT"Holding Cost, Per Unit":LOCATE 13,18:PRINT"Economic Order Quantity"
  130. 1300 LOCATE 15,18:PRINT"Number of Orders Per Year":LOCATE 17,18:PRINT"Average Units In Inventory":LOCATE 19,18:PRINT"Total Ordering Cost":LOCATE 21,18:PRINT"Total Holding Cost"
  131. 1310 COLOR 11,0:LOCATE 7,18,1:PRINT"Units Required During Year    ";:GOSUB 3250:UNITS#=VAL(ZA):IF UNITS#=0 THEN 1310
  132. 1320 LOCATE 9,18,1:PRINT"Ordering Cost, Per Order      ";:GOSUB 2940:COST#=VAL(ZA):IF COST#=0 THEN 1320
  133. 1330 LOCATE 11,18,1:PRINT"Holding Cost, Per Unit        ";:GOSUB 2940:HOLD#=VAL(ZA):IF HOLD#=0 THEN 1330
  134. 1340 EOQ#=INT(SQR(2*UNITS#*COST#/HOLD#)+.5):ODS#=INT((UNITS#/EOQ#)+.5):IF (ODS#*EOQ#)<UNITS# THEN ODS#=ODS#+1
  135. 1350 AVR#=INT(EOQ#/2+.5):TOTCOST#=INT((COST#*ODS#+5.000001E-03)*100)/100:TOTHOLD#=INT((AVR#*HOLD#+5.000001E-03)*100)/100
  136. 1360 LOCATE 7,18,0:PRINT USING"Units Required During Year      ###########,##";UNITS#
  137. 1370 LOCATE 9,18:PRINT USING"Ordering Cost, Per Order      $$##########,.##";COST#
  138. 1380 LOCATE 11,18:PRINT USING"Holding Cost, Per Unit        $$##########,.##";HOLD#
  139. 1390 LOCATE 13,18:PRINT USING"Economic Order Quantity          ##########,##";EOQ#
  140. 1400 LOCATE 15,18:PRINT USING"Number of Orders Per Year        ##########,##";ODS#
  141. 1410 LOCATE 17,18:PRINT USING"Average Units In Inventory       ##########,##";AVR#
  142. 1420 LOCATE 19,18:PRINT USING"Total Ordering Cost           $$##########,.##";TOTCOST#
  143. 1430 LOCATE 21,18:PRINT USING"Total Holding Cost            $$##########,.##";TOTHOLD#:RETURN
  144. 1440 AMNT#=0:IST#=0:TNT#=0:TMT#=0:MD=0:PYMT#=0:NB=0:YS=0:PRS#=0:GOSUB 1500:GOSUB 1510
  145. 1450 IF RS$<"A" OR RS$>"E" THEN GOSUB 270:GOTO 1450 ELSE ON ASC(RS$)-64 GOTO 1460,1470,1480,1490,10
  146. 1460 HD$="Calculate Present Value ":GOSUB 1500:GOSUB 1560:GOSUB 1580:GOSUB 1600:GOSUB 1610:GOSUB 1650:GOSUB 1630:GOSUB 1550:GOSUB 270:GOTO 1440
  147. 1470 HD$="Calculate Future Value  ":GOSUB 1500:GOSUB 1560:GOSUB 1570:GOSUB 1600:GOSUB 1610:GOSUB 1660:GOSUB 1630:GOSUB 1550:GOSUB 270:GOTO 1440
  148. 1480 HD$=" Calculate Interest Rate":GOSUB 1500:GOSUB 1560:GOSUB 1570:GOSUB 1580:GOSUB 1600:GOSUB 1670:GOSUB 1630:GOSUB 1550:GOSUB 270:GOTO 1440
  149. 1490 HD$="Calculate No. Of Years ":GOSUB 1500:GOSUB 1560:GOSUB 1570:GOSUB 1580:GOSUB 1610:GOSUB 2050:GOSUB 1630:GOSUB 1550:GOSUB 270:GOTO 1440
  150. 1500 GOSUB 290:LOCATE 2,21:PRINT" P R E S E N T / F U T U R E   V A L U E ":COLOR 7,0:RETURN
  151. 1510 COLOR 11,0:LOCATE 5,30,0:PRINT"Functions Available":PRINT TAB(30)STRING$(20,"-")
  152. 1520 LOCATE 8,26:COLOR 0,7:PRINT" A ":LOCATE 10,26:PRINT" B ":LOCATE 12,26:PRINT" C ":LOCATE 14,26:PRINT" D ":LOCATE 16,26:PRINT" E "
  153. 1530 COLOR 7,0:LOCATE 8,30:PRINT"Calculate Present Value":LOCATE 10,30:PRINT"Calculate Future Value":LOCATE 12,30:PRINT"Calculate Interest Rate":LOCATE 14,30:PRINT"Calculate Number Of Years":LOCATE 16,30:PRINT"Return to menu #3"
  154. 1540 COLOR 11,0:LOCATE 23,12,0:PRINT"***** Strike Key Corresponding To Function Desired *****":COLOR 7,0:GOTO 270
  155. 1550 LOCATE 25,22,0:PRINT"***** Strike Key To Return To Menu *****";:COLOR 7,0:RETURN
  156. 1560 COLOR 11,0:LOCATE 4,30:PRINT HD$:COLOR 7,0:GOSUB 2440:LOCATE 8,22:PRINT"Present Value":LOCATE 11,22:PRINT"Future Value":LOCATE 14,22:PRINT"Number Of Years":LOCATE 17,22:PRINT"Interest Rate":LOCATE 20,22:PRINT"Return on Investment":RETURN
  157. 1570 LOCATE 8,22,1:COLOR 11,0:PRINT"Present Value         ";:GOSUB 2940:PRS#=VAL(ZA):IF PRS#=0 THEN 1570 ELSE RETURN
  158. 1580 LOCATE 11,22,1:COLOR 11,0:PRINT"Future Value          ";:GOSUB 2940:FT#=VAL(ZA):IF FT#=0 THEN 1580
  159. 1590 IF FT#<=PRS# THEN LOCATE 24,13:PRINT"Future Value Must Be Greater Than Present Value - Retry";:FOR I=1 TO 2500:NEXT:LOCATE 24,13:PRINT SPC(55);:LOCATE 11,46:PRINT SPC(20):GOTO 1580 ELSE RETURN
  160. 1600 LOCATE 14,22,1:COLOR 11,0:PRINT"Number Of Years       ";:DEC=2:GOSUB 2940:YS=VAL(ZA):IF YS=0 THEN 1600 ELSE RETURN
  161. 1610 LOCATE 17,22,1:COLOR 11,0:PRINT"Interest Rate         ";:DEC=3:GOSUB 2940:IST#=VAL(ZA):IF IST#=0 THEN 1610 ELSE RETURN
  162. 1620 LOCATE 20,22,1:COLOR 11,0:PRINT"Return On Investment    ";:GOSUB 2940:RETRN#=VAL(ZA):IF RETRN#=0 THEN 1620 ELSE RETURN
  163. 1630 LOCATE 8,22:PRINT USING"Present Value       $$############,.##";PRS#:LOCATE 11,22:PRINT USING"Future Value        $$############,.##";FT#:LOCATE 14,22:PRINT USING"Number Of Years     ###############.##";YS
  164. 1640 LOCATE 17,22:PRINT USING"Interest Rate       ##############.##%";IST#:LOCATE 20,22:PRINT USING"Return On Investment $$###########,.##";RETRN#:RETURN
  165. 1650 PRS#=INT((FT#/((1+IST#/100)^YS)+5.000001E-03)*100)/100:RETRN#=FT#-PRS#:RETURN
  166. 1660 FT#=INT((PRS#*((1+IST#/100)^YS)+5.000001E-03)*100)/100:RETRN#=FT#-PRS#:RETURN
  167. 1670 IST#=5.1:BT#=INT((FT#-FT#*.0001)*100):TP#=INT((FT#+FT#*.0001)*100)
  168. 1680 GS#=INT((PRS#*((1+IST#/100)^YS)+5.000001E-03)*100)/100:GS#=INT(GS#*100)
  169. 1690 IF GS#>BT# AND GS#<TP# THEN 2030
  170. 1700 IF GS#>TP# THEN IST#=IST#-5:GOTO 1730
  171. 1710 IST#=IST#+5
  172. 1720 GOTO 1680
  173. 1730 GS#=INT((PRS#*((1+IST#/100)^YS)+5.000001E-03)*100)/100
  174. 1740 GS#=INT(GS#*100)
  175. 1750 IF GS#>BT# AND GS#<TP# THEN 2030
  176. 1760 IF GS#>TP# THEN IST#=IST#-1:GOTO 1790
  177. 1770 IST#=IST#+1
  178. 1780 GOTO 1730
  179. 1790 GS#=INT((PRS#*((1+IST#/100)^YS)+5.000001E-03)*100)/100
  180. 1800 GS#=INT(GS#*100)
  181. 1810 IF GS#>BT# AND GS#<TP# THEN 2030
  182. 1820 IF GS#>TP# THEN IST#=IST#-.1:GOTO 1850
  183. 1830 IST#=IST#+.1
  184. 1840 GOTO 1790
  185. 1850 GS#=INT((PRS#*((1+IST#/100)^YS)+5.000001E-03)*100)/100
  186. 1860 GS#=INT(GS#*100)
  187. 1870 IF GS#>BT# AND GS#<TP# THEN 2030
  188. 1880 IF GS#>TP# THEN IST#=IST#-.01:GOTO 1910
  189. 1890 IST#=IST#+.01
  190. 1900 GOTO 1850
  191. 1910 GS#=INT((PRS#*((1+IST#/100)^YS)+5.000001E-03)*100)/100
  192. 1920 GS#=INT(GS#*100)
  193. 1930 IF GS#>BT# AND GS#<TP# THEN 2030
  194. 1940 IF GS#>TP# THEN IST#=IST#-.001:GOTO 1970
  195. 1950 IST#=IST#+.001
  196. 1960 GOTO 1910
  197. 1970 GS#=INT((PRS#*((1+IST#/100)^YS)+5.000001E-03)*100)/100
  198. 1980 GS#=INT(GS#*100)
  199. 1990 IF GS#>BT# AND GS#<TP# THEN 2030
  200. 2000 IF GS#>TP# THEN 2030
  201. 2010 IST#=IST#+.0001
  202. 2020 GOTO 1970
  203. 2030 RETRN#=FT#-PRS#
  204. 2040 RETURN
  205. 2050 YS=1.1
  206. 2060 BT#=INT((FT#-FT#*5.000001E-03)*100)
  207. 2070 TP#=INT((FT#+FT#*5.000001E-03)*100)
  208. 2080 GS#=INT((PRS#*((1+IST#/100)^YS)+5.000001E-03)*100)/100
  209. 2090 GS#=INT(GS#*100)
  210. 2100 IF GS#>TP# THEN YS=YS-10:GOTO 2130
  211. 2110 YS=YS+10
  212. 2120 GOTO 2080
  213. 2130 GS#=INT((PRS#*((1+IST#/100)^YS)+5.000001E-03)*100)/100
  214. 2140 GS#=INT(GS#*100)
  215. 2150 IF GS#>TP# THEN YS=YS-1:GOTO 2180
  216. 2160 YS=YS+1
  217. 2170 GOTO 2130
  218. 2180 GS#=INT((PRS#*((1+IST#/100)^YS)+5.000001E-03)*100)/100
  219. 2190 GS#=INT(GS#*100)
  220. 2200 IF GS#>TP# THEN YS=YS-.5:GOTO 2230
  221. 2210 YS=YS+.5
  222. 2220 GOTO 2180
  223. 2230 GS#=INT((PRS#*((1+IST#/100)^YS)+5.000001E-03)*100)/100
  224. 2240 GS#=INT(GS#*100)
  225. 2250 IF GS#>BT# AND GS#<TP# THEN 2290
  226. 2260 IF GS#>TP# THEN 2290
  227. 2270 YS=YS+.05
  228. 2280 GOTO 2230
  229. 2290 RETRN#=FT#-PRS#
  230. 2300 RETURN
  231. 2310 GOSUB 2320:GOSUB 2340:GOSUB 2330:GOTO 2310
  232. 2320 GOSUB 290:LOCATE 2,27:PRINT" R E - O R D E R   P O I N T ":COLOR 7,0:COLOR 11,0:LOCATE 4,29:PRINT"Inventory Re-order Point":COLOR 7,0:GOSUB 2440:RETURN
  233. 2330 COLOR 11,0:LOCATE 25,17,0:PRINT"***** Strike Any Key For Additional Analysis *****";:COLOR 7,0:GOTO 270
  234. 2340 LOCATE 7,18,0:PRINT"Units Used Daily":LOCATE 9,18:PRINT"Delivery Days Required"
  235. 2350 COLOR 11,0:LOCATE 7,18,1:PRINT"Units Used Daily        ";:GOSUB 3250:UNITS#=VAL(ZA):IF UNITS#=0 THEN 2350
  236. 2360 LOCATE 9,18,1:PRINT"Delivery Days Required  ";:GOSUB 3250:TIME#=VAL(ZA):IF TIME#=0 THEN 2360
  237. 2370 LOCATE 7,18,0:PRINT USING"Units Used Daily           ##########,##";UNITS#:LOCATE 9,18:PRINT USING"Delivery Days Required     ##########,##";TIME#:LOCATE 11,13:PRINT"Safety Margin       Minimum Quantity      Re-order Point"
  238. 2380 MA#=0:MN#=INT(UNITS#*TIME#+.5)
  239. 2390 FOR I=13 TO 21:RO#=INT(MA#*MN#+MN#+.5):MA#=INT(MA#*100):LOCATE I,18:PRINT USING"##%            ########,##          ########,##";MA#;MN#;RO#:IF I=13 THEN COLOR 7,0
  240. 2400 MA#=INT((MA#/100+5.500001E-02)*100)/100:NEXT:RETURN
  241. 2410 GOSUB 2420:GOSUB 2430:GOTO 2450
  242. 2420 GOSUB 290:LOCATE 2,29:PRINT" S T O C K   R A T I O S ":COLOR 7,0:RETURN
  243. 2430 COLOR 11,0:LOCATE 4,30,0:PRINT"Enter Known Information"
  244. 2440 LOCATE 5,11:PRINT"╔"STRING$(58,"═")"╗":FOR J=6 TO 22:LOCATE J,11:PRINT"║":LOCATE J,70:PRINT"║":NEXT:LOCATE 23,11:PRINT"╚"STRING$(58,"═")"╝";:RETURN
  245. 2450 LOCATE 6,16:PRINT"Average Inventory":LOCATE 7,16:PRINT"Current Assets":LOCATE 8,16:PRINT"Fixed and Long-Term Assets":LOCATE 9,33:PRINT"Total Assets":LOCATE 11,16:PRINT"Current Liabilities":LOCATE 12,16:PRINT"Long-Term Liabilities"
  246. 2460 LOCATE 13,28:PRINT"Total Liabilities":LOCATE 15,16:PRINT"Net Sales":LOCATE 16,16:PRINT"Cost of Goods Sold":LOCATE 17,16:PRINT"Total Operating Expenses":LOCATE 18,35:PRINT"Net Income":LOCATE 20,16:PRINT"Shareholders Equity"
  247. 2470 LOCATE 21,16:PRINT"Shares Outstanding":LOCATE 22,16:PRINT"Price Per Share"
  248. 2480 CR#=0:QR#=0:IU#=0:ITR#=0:FAU#=0:TAU#=0:DTE#=0:OP#=0:PWR#=0:NPNS#=0:ROIA#=0:PER#=0:EPS#=0
  249. 2490 LOCATE 6,16,1:COLOR 11,0:PRINT"Average Inventory                  ";:GOSUB 2940:I#=VAL(ZA)
  250. 2500 LOCATE 7,16,1:COLOR 11,0:PRINT"Current Assets                     ";:GOSUB 2940:CA#=VAL(ZA)
  251. 2510 LOCATE 8,16,1:COLOR 11,0:PRINT"Fixed And Long Term Assets         ";:GOSUB 2940:NFA#=VAL(ZA)
  252. 2520 LOCATE 9,33,1:COLOR 11,0:PRINT"Total Assets     ";:TA#=CA#+NFA#:PRINT USING"$$###########,.##";TA#
  253. 2530 LOCATE 11,16,1:COLOR 11,0:PRINT"Current Liabilities                ";:GOSUB 2940:CL#=VAL(ZA)
  254. 2540 LOCATE 12,16,1:COLOR 11,0:PRINT"Long Term Liabilities              ";:GOSUB 2940:LTD#=VAL(ZA)
  255. 2550 LOCATE 13,28,1:COLOR 11,0:PRINT"Total Liabilities     ";:TD#=CL#+LTD#:PRINT USING"$$###########,.##";TD#
  256. 2560 LOCATE 15,16,1:COLOR 11,0:PRINT"Net Sales                          ";:GOSUB 2940:S#=VAL(ZA)
  257. 2570 LOCATE 16,16,1:COLOR 11,0:PRINT"Cost of Goods Sold                 ";:GOSUB 2940:COG#=VAL(ZA)
  258. 2580 LOCATE 17,16,1:COLOR 11,0:PRINT"Total Operating Expenses           ";:GOSUB 2940:OE#=VAL(ZA)
  259. 2590 LOCATE 18,35,1:COLOR 11,0:PRINT"Net Income     ";:NI#=S#-COG#-OE#:PRINT USING"$$###########,.##";NI#
  260. 2600 LOCATE 20,16,1:COLOR 11,0:PRINT"Shareholders Equity                ";:GOSUB 2940:SE#=VAL(ZA)
  261. 2610 LOCATE 21,16,1:COLOR 11,0:PRINT"Shares Outstanding                 ";:GOSUB 3250:SO#=VAL(ZA)
  262. 2620 LOCATE 22,16,1:COLOR 11,0:PRINT"Price Per Share                    ";:GOSUB 2940:PPS#=VAL(ZA)
  263. 2630 LOCATE 24,18:PRINT"***** Strike Any Key To Calculate Ratios *****";:GOSUB 270:GOSUB 2420:COLOR 11,0:LOCATE 4,31,0:PRINT"These Are Your Ratios":GOSUB 2440
  264. 2640 IF CA#>0 AND CL#>0 THEN CR#=CA#/CL#
  265. 2650 TA#=CA#+NFA#
  266. 2660 IF CL#<>0 AND CA#<>I# THEN QR#=(CA#-I#)/CL#
  267. 2670 IF S#>0 AND I#>0 THEN IU#=S#/I#
  268. 2680 IF COG#>0 AND I#>0 THEN ITR#=COG#/I#
  269. 2690 IF S#>0 AND NFA#<>0 THEN FAU#=S#/NFA#
  270. 2700 IF S#>0 AND TA#>0 THEN TAU#=S#/TA#
  271. 2710 X1#=(TD#-CL#+SE#)
  272. 2720 IF X1#<.01 THEN ELSE DTE#=(TD#-CL#)/X1#
  273. 2730 IF OE#>0 AND S#>0 THEN OP#=OE#/S#
  274. 2740 IF SE#<>0 THEN PWR#=NI#/SE#
  275. 2750 IF S#<>0 THEN NPNS#=NI#/S#
  276. 2760 IF TA#<>0 THEN ROIA#=NI#/TA#
  277. 2770 IF SO#<>0 THEN EPS#=NI#/SO#
  278. 2780 IF EPS#<>0 THEN PER#=PPS#/EPS#
  279. 2790 LOCATE 6,58,0:PRINT"Averages"
  280. 2800 LOCATE  8,15:PRINT USING"Current Ratio          ########.##";CR#;:PRINT"            2.5 x"
  281. 2810 LOCATE  9,15:PRINT USING"Quick Ratio              ######.##";QR#;:PRINT"            1.0 x"
  282. 2820 LOCATE 10,15:PRINT USING"Inventory Utilization   #######.##";IU#;:PRINT"              9 x"
  283. 2830 LOCATE 11,15:PRINT USING"Inventory Turnover Ratio#######.##";ITR#;:PRINT"            .17 x"
  284. 2840 LOCATE 12,15:PRINT USING"Fixed Asset Utilization #######.##";FAU#;:PRINT"            3.0 x"
  285. 2850 LOCATE 13,15:PRINT USING"Total Asset Utilization #######.##";TAU#;:PRINT"            1.8 x"
  286. 2860 LOCATE 14,15:PRINT USING"Debt to Equity Ratio    #######.##";DTE#;:PRINT"         Variable"
  287. 2870 LOCATE 15,15:PRINT USING"Operating Ratio         #######.##";OP#;:PRINT"            .60 x"
  288. 2880 LOCATE 16,15:PRINT USING"Profits-Worth Ratio     #######.##";PWR#;:PRINT"            .18 x"
  289. 2890 LOCATE 17,15:PRINT USING"N.Profits-N.Sales Ratio #######.##";NPNS#;:PRINT"            .05 x"
  290. 2900 LOCATE 18,15:PRINT USING"ROI in Assets Ratio     #######.##";ROIA#;:PRINT"         Variable"
  291. 2910 LOCATE 19,15:PRINT USING"Price Earnings Ratio    #######.##";PER#;:PRINT"            9.0 x"
  292. 2920 LOCATE 20,15:PRINT USING"Earnings Per Share      $$#####.##";EPS#;:PRINT"         Variable"
  293. 2930 COLOR 11,0:LOCATE 24,16,0:PRINT"***** Strike Any Key To Try Another Analysis *****";:GOSUB 270:GOTO 2410
  294. 2940 LENGTH=12:DEFSTR Z:FIRSTONE=1:DEF SEG=&H40:POKE &H17,(PEEK(&H17) OR 96)
  295. 2950 IF DEC=1 THEN MASK$=" #############,.#":DEC=0:GOTO 2990
  296. 2960 IF DEC=2 THEN MASK$=" ############,.##":DEC=0:GOTO 2990
  297. 2970 IF DEC=3 THEN MASK$=" ###########,.##%":DEC=0:GOTO 2990
  298. 2980 MASK$="$$"+STRING$(11,"#")+",.##"
  299. 2990 ZH="000":XLIN=CSRLIN:XPOS=POS(0)-1:ZR=SPACE$(LENGTH):FLAG=0:PERIOD=0
  300. 3000 RSET ZR=ZH:LOCATE XLIN,XPOS,1:PRINT USING MASK$;VAL(ZR)/100;:LOCATE ,POS(0)-1
  301. 3010 DEF SEG:POKE 106,0:IF INKEY$<>"" THEN 3010
  302. 3020 ZI=INKEY$:IF ZI="" THEN 3020
  303. 3030 IF ZI="0" AND FIRSTONE THEN 3020 ELSE FIRSTONE=0
  304. 3040 IF ZI=CHR$(13) THEN ZA=SPACE$(LENGTH+2):ZH=STR$(VAL(ZH)/100):RSET ZA=ZH:RETURN
  305. 3050 IF ZI="." AND PERIOD=0 THEN PERIOD=1:GOTO 3020
  306. 3060 IF LEN(ZI)>1 THEN IF RIGHT$(ZI,1)=CHR$(75) THEN 3170 ELSE 3020
  307. 3070 IF ZI=CHR$(8) THEN 3170
  308. 3080 IF FLAG OR ZI<"0" OR ZI>"9" THEN 3020
  309. 3090 IF PERIOD=1 THEN MID$(ZH,LEN(ZH)-1,1)=ZI:GOTO 3130
  310. 3100 IF PERIOD=2 THEN MID$(ZH,LEN(ZH),1)=ZI:GOTO 3130
  311. 3110 IF LEN(ZH)>LENGTH-1 THEN 3020
  312. 3120 ZH=ZH+"0":MID$(ZH,LEN(ZH)-2)=ZI
  313. 3130 RSET ZR=ZH:LOCATE XLIN,XPOS,1:PRINT USING MASK$;VAL(ZR)/100;:LOCATE ,POS(0)-1
  314. 3140 IF PERIOD=2 THEN FLAG=1
  315. 3150 IF PERIOD=1 THEN PERIOD=2
  316. 3160 GOTO 3020
  317. 3170 IF LEN(ZH)<3 THEN ZH="0"+ZH
  318. 3180 IF LEN(ZH)<3 THEN 3020
  319. 3190 IF PERIOD=1 THEN PERIOD=0:MID$(ZH,LEN(ZH)-1,1)="0":GOTO 3230
  320. 3200 IF PERIOD=2 AND FLAG THEN FLAG=0:PERIOD=1:MID$(ZH,LEN(ZH),1)="0":GOTO 3230
  321. 3210 IF PERIOD=2 THEN PERIOD=0:MID$(ZH,LEN(ZH)-1)="0":GOTO 3230
  322. 3220 MID$(ZH,LEN(ZH)-2,1)="0":ZH=LEFT$(ZH,LEN(ZH)-1)
  323. 3230 LOCATE XLIN,XPOS:PRINT SPC(LENGTH);
  324. 3240 LOCATE XLIN,XPOS,1:RSET ZR=ZH:PRINT USING MASK$;VAL(ZR)/100;:LOCATE ,POS(0)-1:GOTO 3020
  325. 3250 DEFSTR Z:MASK$="############,### ":ZA=SPACE$(10)
  326. 3260 XLIN=CSRLIN:XPOS=POS(0):PRINT USING MASK$;0;
  327. 3270 ZH="":DEF SEG:POKE 106,0:IF INKEY$<>"" THEN 3270
  328. 3280 ZI=INKEY$:IF ZI="" THEN 3280
  329. 3290 IF ZI=CHR$(13) THEN LSET ZA=ZH:RETURN
  330. 3300 IF ZI=CHR$(8) OR RIGHT$(ZI,1)=CHR$(75) THEN 3350
  331. 3310 IF LEN(ZI)>1 THEN 3270
  332. 3320 IF ZI<"0" OR ZI>"9" THEN 3280
  333. 3330 IF LEN(ZH)>9 THEN 3280
  334. 3340 ZH=ZH+ZI:RSET ZA=ZH:LOCATE XLIN,XPOS:PRINT USING MASK$;VAL(ZA);:GOTO 3280
  335. 3350 IF LEN(ZH)<1 THEN 3280
  336. 3360 ZH=LEFT$(ZH,LEN(ZH)-1):RSET ZA=ZH:LOCATE XLIN,XPOS:PRINT USING MASK$;VAL(ZA);:GOTO 3280
  337. 3370 GOTO 10
  338. 3380 RUN
  339.