10 REM  DEPRECIATION PROGRAM
20 DIM I$(25), DP$(8), Z$(3)
30 PRINT
40 PRINT "  TAX DEPRECIATION"
50 PRINT
60 REM *** INPUT DATA ***
70 INPUT "NAME OF ITEM"; I$
80 INPUT "ENTER TODAYS DATE (MM/DD/YY)"; DP$
90 INPUT "PURCHASE DATE (MM/DD/YY)"; D$
100 INPUT "COST OF ITEM"; C
110 INPUT "USEFUL LIFE"; L
120 PRINT "DEPRECIATION RATE"
121 INPUT "(NEW=200%; USED=150%)"; R
130 REM *** CALCULATE YEARLY RATE ***
140 YR = R / (100 * L)
150 REM *** CALCULATE EXTRA FIRST YR DEPRECIATION ***
160 IF L >= 6 THEN ED = .2 * C
165 IF L < 6 THEN ED = 0
170 CV = C - ED
180 REM *** CALCULATE INVESTMENT CREDIT ***
190 IF L < 3 THEN IC = 0
200 IF L >= 3 THEN IC = C / 30
210 IF L >= 5 THEN IC = C / 15
220 IF L >= 7 THEN IC = C / 10
230 MM = VAL ( LEFT$ (D$,2))
240 DD = VAL ( MID$ (D$,4,2))
250 YY = VAL ( RIGHT$ (D$,2))
260 IF DD <= 15 THEN FY = 13 - MM
270 IF DD > 15 THEN FY = 12 - MM
275 LY = 12 - FY
280 REM *** FIRST YEAR DEPRECIATION ***
290 CY = 1
300 D(CY) = CV * YR * (FY / 12)
310 CV = CV - D(CY)
320 REM *** MIDDLE YEARS DEPRECIATION ***
330 FOR CY = 2 TO L
340   D(CY) = YR * CV
350   CV = CV - D(CY)
360 NEXT 
370 REM *** LAST YEAR DEPRECIATION ***
380 IF CY = 0 THEN 410
385 CY = L + 1
390 D(CY) = YR * CV * (LY / 12)
400 CV = CV - D(CY)
410 REM *** OUTPUT TO SCREEN ***
420 PRINT : PRINT
430 PRINT TAB(6);"DEPRECIATION ANALYSIS FOR ";I$
440 PRINT TAB(10);"DATE PREPARED; ",DP$
450 PRINT
460 PRINT "ITEM NAME: "; TAB(20);I$
470 PRINT "DATE OF PURCHASE: "; TAB(20); D$
480 PRINT "COST: "; TAB(17);
481 PRINT USING "$$#,###.##"; C
490 PRINT "USEFUL LIFE: "; TAB(20); L; "YEARS"
500 PRINT "DEPRECIATION RATE: "; TAB(20); R; "%"
510 PRINT
520 CY = 1
530 Y = 1899 + YY
540 INPUT "PRESS RETURN TO CONTINUE "; Z$
550 PRINT
560 PRINT " YEAR"; TAB(10);"INVESTMENT CREDIT";TAB(30);"EXTRA FIRST YEAR DEPRECIATION"
570 PRINT Y + CY; TAB(10);
571 PRINT USING "###.##";IC;
572 PRINT TAB(30);
573 PRINT USING "###.##";ED
580 PRINT
590 PRINT " YEAR"; TAB(10); "DEPRECIATION"
600 IF LY <> 0 THEN 620
610 FOR CY = 1 TO L: GOTO 630
630   PRINT Y + CY; TAB(9);
631   PRINT USING "#,###.##"; D(CY)
640 NEXT
650 IF D(CY) <= 0 THEN 670
660 PRINT
670 PRINT "SALVAGE VALUE AT END OF";CY+Y-1;"IS";
671 PRINT USING "$$#,###.##"; CV
680 REM *** PRINTOUT ROUTINE GOES HERE ***
