home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / cpmug / cpmug087.ark / CGDEPCAL.BAS < prev    next >
Encoding:
BASIC Source File  |  1986-10-20  |  5.9 KB  |  164 lines

  1.      rem This is the Depreciation Calculator
  2.  
  3. %INCLUDE ALL.BAS
  4.      dim n(2,20),k$(3,20)
  5.      z5$="b:cg"
  6.      RESTORE
  7.      DATA 0,28,31,30,31,30,31,31,30,31,30,31
  8.      DATA 24,24,24,17,2,5,14,20,20
  9.      DATA 4,10,10,24,24,1,8,2,12,12,12,4,4,12,12,12,12
  10.      FOR Z=1 TO 12:READ N(1,1):NEXT Z:N(1,1)=0: REM DUMMY READ TO SET POINTER
  11. 1008 DIM H(9),S(9),T(4,9)
  12. 1009 PRINT clear$:PRINT
  13. 1090 U$="##,###,###"
  14. 1095 FOR Z=1 TO 104:A$=A$+"-":NEXT Z
  15. 1100 REM GET DATES ROUTINE
  16. 1145 Z9=0
  17. 1200 REM READ TAB VALUES ROUTINE
  18. 3000 REM READ NAME FILE SUBROUTINE
  19. 3005 a5=T%(12)
  20.      FOR Z=3 TO 11:READ N(1,Z):NEXT Z
  21. 3085 Z9=1:FOR Z=3 TO 11:K$(0,Z)=MID$(N$,Z9,N(1,Z)):Z9=Z9+N(1,Z):NEXT Z
  22. 3090 N$="":FOR Z=1 TO 20:N(1,Z)=0:NEXT Z
  23. 3125 REM ROUTINE TO ELIMINATE TRAILING BLANKS
  24.      l8=1
  25. 3130 FOR I=3 TO 6
  26.      l9=len(k$(0,i))
  27. 3140 FOR Z=l9 TO l8 STEP -1
  28. 3150 IF MID$(K$(0,I),Z,1)<>" " THEN 3170
  29. 3160 NEXT Z
  30. 3170 Z$=""
  31. 3180 FOR Z0=1 TO Z
  32. 3190 Z$=Z$+MID$(K$(0,I),Z0,1)
  33. 3200 NEXT Z0
  34. 3210 K$(0,I)="":K$(0,I)=Z$
  35. 3220 NEXT I
  36. 6000 REM CALCULATE DEPRECIATION ON ASSETS
  37. 6005 PRINT clear$:PRINT
  38. 6010 PRINT "CALCULATING DEPRECIATION FOR THE YEAR"
  39. 6015 FOR Z=0 TO 9
  40. 6020 H(Z)=0:S(Z)=0:T(0,Z)=0:T(1,Z)=0:T(2,Z)=0:T(3,Z)=0:A(Z)=0
  41. 6025 NEXT Z
  42. 6030 T1=0:T2=0:T3=0:T4=0:P0=1
  43. 6035 X=1
  44. 6200 open z5$ recl 256 as 1
  45. 6205 z3=(size(z5$)*block.size)/256
  46. 6210 FOR Z2=1 TO Z3
  47. 6215 read #1,z2;N(2,1),N(2,2),N(2,3),N$
  48. 6220 IF N(2,2)=0 THEN 6230
  49. 6225 NEXT Z2
  50. 6230 close 1
  51. 6235 Z2=Z2-1
  52. 6240 PRINT:PRINT "RECORDS TO BE CALCULATED ";Z2
  53. 6245 PRINT:INPUT "TO DO CALCULATION, TYPE RETURN.";line temp$
  54.      FOR Z=1 TO 17:READ N(1,Z):NEXT Z
  55.      RESTORE : REM RESTORE POINTER TO READ DAYS PER MONTH
  56. 6300 open z5$ recl 256 as 1
  57. 6310 FOR Z1=1 TO Z2
  58. 6320 read #1,z1;N(2,1),N(2,2),N(2,3),N$,D1,D2,D3,D4,D5,D6,D7,D8,D9
  59. 6325 D6=0:D7=0:D8=0
  60. 6330 Z9=1:FOR Z=4 TO 8:K$(3,Z)=MID$(N$,Z9,N(1,Z)):Z9=Z9+N(1,Z):NEXT Z
  61. 6400 IF RIGHT$(K$(3,7),2)=RIGHT$(D$(6),2) THEN GOSUB 10000
  62. 6420 IF K$(3,8)="SL" THEN GOSUB 20000
  63. 6430 IF K$(3,8)="D1" THEN GOSUB 20200
  64. 6440 IF K$(3,8)="D2" THEN GOSUB 20400
  65. 6450 IF K$(3,8)="D3" THEN GOSUB 20600
  66. 6460 IF K$(3,8)="SD" THEN GOSUB 20800
  67. 6500 print #1,z1;N(2,1),N(2,2),N(2,3),n$,D1,D2,D3,D4,D5,D6,D7,D8,D9
  68. 6600 NEXT Z1
  69. 6700 GOTO 30000
  70. 10000 REM THIS ROUTINE RETURNS A DECIMAL PART OF THE YEAR BASED
  71. 10005 REM ON THE YEAR END DATE AND ASSET ACQUISITION DATE
  72. 10010 REM FOR BOTH ORDINARY AND CLADR DEPRECIATION SYSTEMS
  73. 10015 REM FOR FIRST YEAR DEPRECIATION PURPOSES
  74. 10050 PRINT clear$:PRINT
  75. 10060 PRINT "DO YOU WISH TO TAKE THE ADDITIONAL 20% FIRST YEAR"
  76. 10070 PRINT "DEPRECIATION ALLOWED FOR THIS ASSET?"
  77. 10080 PRINT:INPUT line temp$
  78. 10085 IF left$(temp$,1)="n" OR left$(temp$,1)="N" THEN 10100
  79. 10090 IF left$(temp$,1)<>"y" AND left$(temp$,1)<>"Y" THEN 10050
  80. 10095 GOSUB 10600
  81. 10100 IF LEFT$(K$(3,7),1)="H" THEN Y1=.5:GOTO 10595
  82. 10105 IF LEFT$(K$(3,7),3)="M01" THEN Y1=1:GOTO 10595
  83. 10110 IF LEFT$(K$(3,7),3)="M02" THEN Y1=0:GOTO 10595
  84. 10310 FOR Z=0 TO 11
  85. 10315 IF Z=VAL(LEFT$(K$(3,7),2)) THEN 10450
  86. 10320 READ X
  87. 10330 Y1=Y1+X
  88. 10340 NEXT Z
  89. 10450 Y1=Y1+VAL(MID$(K$(3,7),4,2))
  90. 10460 RESTORE
  91. 10465 Y1=365-Y1
  92. 10470 Z9=80
  93. 10475 FOR Z=1 TO 25
  94. 10480 IF VAL(RIGHT$(K$(3,7),2))=Z9 THEN Y1=Y1+1:Y1=Y1/366:GOTO 10595
  95. 10485 Z9=Z9+4
  96. 10490 NEXT Z
  97. 10580 Y1=Y1/365
  98. 10595 RETURN
  99. 10600 IF K$(3,6)<>"N" THEN 10695
  100. 10610 D2=D2-D1*.2:D3=D3+D1*.2
  101. 10695 RETURN
  102. 20000 REM THIS ROUTINE CALCULATES STRAIGHT LINE DEPRECIATION
  103. 20005 Z9=D2-D9:REM Z9 = DEPRECIABLE BASIS LESS SALVAGE
  104. 20010 Z9=Z9/D5:REM Z9 = ADJUSTED BASIS/REMAINING YEARS
  105. 20015 D5=D5-1:REM REDUCE REMAINING LIFE FIGURE
  106. 20020 IF Y1<>0 THEN Z9=Z9*Y1
  107. 20025 IF D2-Z9<D9 THEN Z9=D2-D9
  108. 20030 D8=D8+Z9:D7=D8/4:D6=D8/12
  109. 20040 D2=D2-Z9:REM REDUCE DEPRECIABLE BASIS BY YEARS DEPRECIATION
  110. 20050 D3=D3+Z9:REM INCREASE PRIOR YEARS DEPRECIATION BY AMOUNT TAKEN
  111. 20060 Z9=0:Y1=0
  112. 20195 RETURN
  113. 20200 REM THIS ROUTINE CALCULATES DECLINING BALANCE - 125% DEPRECIATION
  114. 20205 Z9=D2-D9:REM Z9 = DEPRECIABLE BASIS LESS SALVAGE
  115. 20210 Z9=Z9/D5:REM Z9 = ADJUSTED BASIS/REMAINING YEARS
  116. 20211 Z9=Z9*1.25
  117. 20215 D5=D5-1:REM REDUCE REMAINING LIFE FIGURE
  118. 20220 IF Y1<>0 THEN Z9=Z9*Y1
  119. 20225 IF D2-Z9<D9 THEN Z9=D2-D9
  120. 20230 D8=D8+Z9:D7=D8/4:D6=D8/12
  121. 20240 D2=D2-Z9:REM REDUCE DEPRECIABLE BASIS BY YEARS DEPRECIATION
  122. 20250 D3=D3+Z9:REM INCREASE PRIOR YEARS DEPRECIATION BY AMOUNT TAKEN
  123. 20260 Z9=0:Y1=0
  124. 20395 RETURN
  125. 20400 REM THIS ROUTINE CALCULATES DECLINING BALANCE - 150% DEPRECIATION
  126. 20405 Z9=D2-D9:REM Z9 = DEPRECIABLE BASIS LESS SALVAGE
  127. 20410 Z9=Z9/D5:REM Z9 = ADJUSTED BASIS/REMAINING YEARS
  128. 20411 Z9=Z9*1.5
  129. 20415 D5=D5-1:REM REDUCE REMAINING LIFE FIGURE
  130. 20420 IF Y1<>0 THEN Z9=Z9*Y1
  131. 20425 IF D2-Z9<D9 THEN Z9=D2-D9
  132. 20430 D8=D8+Z9:D7=D8/4:D6=D8/12
  133. 20440 D2=D2-Z9:REM REDUCE DEPRECIABLE BASIS BY YEARS DEPRECIATION
  134. 20450 D3=D3+Z9:REM INCREASE PRIOR YEARS DEPRECIATION BY AMOUNT TAKEN
  135. 20460 Z9=0:Y1=0
  136. 20595 RETURN
  137. 20600 REM THIS ROUTINE CALCULATES DECLINING BALANCE - 200% DEPRECIATION
  138. 20605 Z9=D2-D9:REM Z9 = DEPRECIABLE BASIS LESS SALVAGE
  139. 20610 Z9=Z9/D5:REM Z9 = ADJUSTED BASIS/REMAINING YEARS
  140. 20611 Z9=Z9*2
  141. 20615 D5=D5-1:REM REDUCE REMAINING LIFE FIGURE
  142. 20620 IF Y1<>0 THEN Z9=Z9*Y1
  143. 20625 IF D2-Z9<D9 THEN Z9=D2-D9
  144. 20630 D8=D8+Z9:D7=D8/4:D6=D8/12
  145. 20640 D2=D2-Z9:REM REDUCE DEPRECIABLE BASIS BY YEARS DEPRECIATION
  146. 20650 D3=D3+Z9:REM INCREASE PRIOR YEARS DEPRECIATION BY AMOUNT TAKEN
  147. 20660 Z9=0:Y1=0
  148. 20795 RETURN
  149. 20800 REM THIS ROUTINE CALCULATES SUM-OF-YEARS-DIGITS DEPRECIATION
  150. 20805 Z9=D2-D9:REM Z9 = DEPRECIABLE BASIS LESS SALVAGE
  151. 20810 FOR Z=1 TO D5:B=B+Z:NEXT Z:Z=0:Z=D5/B:B=0
  152. 20811 Z9=Z9*Z:REM ADJUSTED BASIS * SUM-OF-YEARS DECIMAL
  153. 20815 D5=D5-1:REM REDUCE REMAINING LIFE FIGURE
  154. 20820 IF Y1<>0 THEN Z9=Z9*Y1
  155. 20825 IF D2-Z9<D9 THEN Z9=D2-D9
  156. 20830 D8=D8+Z9:D7=D8/4:D6=D8/12
  157. 20840 D2=D2-Z9:REM REDUCE DEPRECIABLE BASIS BY YEARS DEPRECIATION
  158. 20850 D3=D3+Z9:REM INCREASE PRIOR YEARS DEPRECIATION BY AMOUNT TAKEN
  159. 20860 Z9=0:Y1=0
  160. 20995 RETURN
  161. 30000 REM ROUTINE TO CLOSE FILES AND RETURN TO BIZMASTERII
  162. 30005 close 1
  163. 30050 CHAIN "master16"
  164.