1  H$='29'31'13'26'30
10  DIM A$[20],H$[5],X$[1]
11  DIM C[4,8],S[16],P[13],T[5],L[5],Z[3],G[3],M[12],U[30]
100  FILES C1
101  P4=0
102  T9=0
150  PRINT H$[1,2]"(1) TOP OF FORM OR (2) ABDICK";
160  INPUT P5
200  READ C9,C8,C7,P9
210  DATA 13,4,8,13
220  MAT  READ P
230  DATA 1000,3800,4300,4900,6500,7500,7560,7760,8760,9760,9870,10350,10400
232  MAT  READ U
235  DATA 2100,3101,3300,3200,3400,4100,4200,0,1102,1104,1106,1108,1114,1118,1122
237  DATA 1126,1400,1401,1402,1403,1404,1405,1420,1300,1301,1302,1303,1200,1201,3120
240  MAT T=ZER
245  MAT S=ZER
250  MAT  READ M
255  DATA 31,28,31,30,31,30,31,31,30,31,30,31
260  DATA "C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","C11","C12","C13"
300  PRINT H$[1,2]"CURRENT DATE";
310  INPUT X
315  GOSUB 4800
317  IF X1>0 AND X1<13 THEN 345
320  GOSUB 4250
325  GOTO 300
345  IF X2<1 OR X2>31 THEN 320
350  IF X3<72 OR X3>99 THEN 320
355  D1=X1
360  D2=X2
365  D3=X3
370  D=D3*12+D1+(D2/M[D1])
375  PRINT "AUTO RENEW";
380  INPUT A$
385  P6=1
390  IF A$[1,1]="Y" THEN 400
395  P6=2
400  PRINT "FIRST PRD#";
405  INPUT P2
410  IF P2>0 AND P2<31 THEN 425
415  GOSUB 4250
420  GOTO 400
425  PRINT "LAST PRD#";
430  INPUT P3
435  IF P3>0 AND P3<31 AND P3 >= P2 THEN 450
440  GOSUB 4250
445  GOTO 425
450  PRINT "FIRST SER#";
455  INPUT X2
457  X1=P2
460  GOSUB 3100
462  IF B1 THEN 450
464  C2=X2
465  PRINT "LAST SER#";
467  INPUT X2
470  X1=P3
472  GOSUB 3100
475  IF B1 THEN 465
477  C4=X2
480  IF P2#P3 THEN 500
482  IF C4 >= C2 THEN 500
485  GOSUB 4250
487  GOTO 465
500  PRINT "OWNERSHIP (10=1&2)";
505  INPUT Q4
510  IF Q4 >= 0 AND Q4<11 THEN 560
550  GOSUB 4250
555  GOTO 500
560  P9=66
565  GOSUB 8000
1000  FOR Q1=P2 TO P3
1002  C=Q1
1005  GOSUB 3000
1006  C3=C4
1007  IF Q1=P3 THEN 1040
1010  C3=P[P1]
1020  IF P1=1 THEN 1040
1030  C3=C3-P[P1-1]
1040  FOR C1=C2 TO C3
1045  R=C1
1050  IF P1=1 THEN 1060
1055  R=R+P[P1-1]
1060  GOSUB 4000
1065  GOSUB 4100
1067  IF  NOT B1 OR S[3]#6 THEN 1080
1070  IF S[1]#Q1 THEN 1080
1071  IF Q4#10 THEN 1074
1072  IF S[8]=1 OR S[8]=2 THEN 1075
1073  GOTO 1080
1074  IF S[8]#Q4 THEN 1080
1075  GOSUB 2000
1080  NEXT C1
1085  C2=1
1088  GOSUB 2200
1090  NEXT Q1
1170  END 
2000  GOSUB 2600
2001  IF B1 THEN 2197
2002  L[4]=(D5-1)*S[15]
2006  L[5]=(D5-1)*S6
2010  GOSUB 5000
2015  PRINT TAB(9);
2020  Z$="#### "
2025  X$="0"
2030  Z[1]=C1
2032  IF S[1]#5 THEN 2035
2033  Z[1]=Z[1]+900
2035  GOSUB 9000
2040  Z$="A####   "
2042  Z[1]=S[2]
2045  GOSUB 9000
2050  Z$="#    "
2052  X$=" "
2055  Z[1]=S[3]
2060  GOSUB 9000
2065  MAT Z=G
2070  Z$="##/##/##  "
2075  GOSUB 9000
2076  IF S[7]#0 THEN 2080
2077  K=9
2078  GOSUB 9950
2079  GOTO 2092
2080  Z$="#####    "
2082  X$="0"
2085  Z[1]=S[7]
2090  GOSUB 9000
2092  Z$="#"
2093  X$=" "
2095  Z[1]=S[8]
2100  GOSUB 9000
2105  PRINT TAB(52);
2110  Z$="##M  "
2115  IF S5=1 THEN 2125
2120  Z$[3,3]="A"
2125  Z[1]=S[10]
2130  GOSUB 9000
2131  Z$=" #.##%    "
2132  Z[1]=S[16]+S[11]*.01
2133  IF S[16]#0 THEN 2137
2134  Z$="TE - ##   "
2135  Z[1]=S[11]
2137  GOSUB 9000
2140  Z$="######    "
2145  Z[1]=C[R2,7]
2146  GOSUB 9000
2147  L[1]=S[15]
2150  L[2]=S6
2155  L[3]=D5
2160  GOSUB 2400
2162  T9=T9+1
2165  FOR I=1 TO 5
2170  T[I]=T[I]+L[I]
2175  NEXT I
2180  K=1
2185  GOSUB 9900
2190  P9=P9+2
2195  IF P9<60 THEN 2197
2196  GOSUB 8000
2197  RETURN 
2200  PRINT "TOTAL UNITS=";T9;TAB(67)"TOTALS    ";
2202  X=(T[3]/T9)*100
2203  GOSUB 2900
2204  T[3]=X1
2205  MAT L=T
2210  GOSUB 2400
2215  GOSUB 8000
2220  MAT T=ZER
2222  T9=0
2225  RETURN 
2400  Z$="$######  "
2405  Z[1]=L[1]
2410  GOSUB 9000
2415  Z[1]=L[2]
2420  GOSUB 9000
2425  Z$=" ####.## "
2430  Z[1]=L[3]
2435  GOSUB 9000
2440  Z$="$########.##"
2445  Z[1]=L[4]
2450  GOSUB 9000
2455  PRINT "   ";
2460  Z[1]=L[5]
2465  GOSUB 9000
2470  RETURN 
2600  B1=0
2601  IF S[10]*S5#-12 THEN 2605
2603  B1=1
2604  RETURN 
2605  X=S[4]
2610  GOSUB 4800
2615  IF X1<8 THEN 2630
2620  X1=X1+60
2625  GOTO 2631
2630  X1=X1+70
2631  G[1]=X2
2632  G[2]=X3
2633  G[3]=X1
2635  X2=X2+S[10]
2640  IF X2 <= 12 THEN 2660
2645  X2=X2-12
2650  X1=X1+1
2655  GOTO 2640
2660  X3=X3-1
2665  IF X3>0 THEN 2695
2670  X2=X2-1
2675  IF X2>0 THEN 2690
2680  X2=12
2685  X1=X1-1
2690  X3=M[X2]
2695  D0=X1*12+X2+(X3/M[X2])
2700  D5=D0-D
2710  IF D5 <= 0 THEN 2745
2715  X=D5*100
2720  GOSUB 2900
2725  D5=X1
2740  GOTO 2765
2745  GOTO P6 OF 2750,2760
2750  D0=D0+12
2755  GOTO 2700
2760  D5=1
2765  IF S5#-1 THEN 2810
2770  IF D5<12 THEN 2603
2775  X=12
2780  X1=24
2785  IF D5 >= X AND D5<X1 THEN 2805
2790  X=X+12
2795  X1=X1+12
2800  GOTO 2785
2805  D5=X
2810  RETURN 
2900  X1=INT(X)
2905  IF X-X1<.5 THEN 2915
2910  X1=X1+1
2915  X1=X1*.01
2920  RETURN 
3000  P1=C
3005  IF C<9 THEN 3090
3010  P1=9
3015  IF C <= 16 THEN 3090
3020  P1=10
3025  IF C <= 23 THEN 3090
3030  P1=11
3035  IF C <= 27 THEN 3090
3040  P1=12
3045  IF C <= 29 THEN 3090
3050  P1=13
3090  RETURN 
3100  B1=0
3102  C=X1
3103  GOSUB 3000
3105  IF P1#5 THEN 3115
3110  X2=X2-900
3115  X=P[P1]
3120  IF P1=1 THEN 3130
3125  X=X-P[P1-1]
3130  IF X2>0 AND X2 <= X THEN 3140
3135  GOSUB 4250
3140  RETURN 
4000  X=R/C8
4038  X1=INT(X)
4040  X2=INT((X-X1)*100)
4042  FOR I=1 TO (C8-1)
4044  IF X2=I*25 THEN 4054
4046  NEXT I
4048  R1=X1
4050  R2=C8
4052  GOTO 4057
4054  R1=X1+1
4056  R2=I
4057  RESTORE 260
4058  FOR N=1 TO C9
4060  READ A$
4062  IF R1<201 THEN 4070
4063  R1=R1-200
4065  NEXT N
4067  PRINT "ERR IN P";
4068  STOP 
4070  ASSIGN A$,1,W5
4080  RETURN 
4100  B1=0
4102  MAT  READ #1,R1;C
4105  IF C[R2,1]=-1 THEN 4180
4107  B1=1
4110  J=1
4111  FOR I=1 TO 9 STEP 4
4112  S5=SGN(C[R2,J])
4113  C[R2,J]=ABS(C[R2,J])
4114  S[I]=INT(C[R2,J]/10^4)
4115  S[I+1]=C[R2,J]-S[I]*10^4
4116  IF I#9 THEN 4119
4117  S[I+1]=INT(S[I+1]/100)
4118  S[I+2]=C[R2,J]-S[I]*10^4-S[I+1]*100
4119  J=J+2
4120  NEXT I
4122  S[3]=INT(C[R2,2]/10^5)
4125  S[4]=C[R2,2]-S[3]*10^5
4145  S[7]=INT(C[R2,4]/10)
4150  S[8]=C[R2,4]-S[7]*10
4170  S[12]=INT(C[R2,6]/100)
4175  S[13]=C[R2,6]-S[12]*100
4176  S[14]=INT(C[R2,8]/10^5)
4177  S[15]=INT((C[R2,8]-S[14]*10^5)/10)
4178  S[16]=C[R2,8]-S[14]*10^5-S[15]*10
4179  S6=S[13]*10+S[14]
4180  RETURN 
4250  PRINT '7'7"INVALID DATA";H$[3,5];
4255  B1=1
4257  RETURN 
4800  X1=INT(X/10^4)
4810  X2=INT((X-X1*10^4)/100)
4820  X3=X-X1*10^4-X2*100
4830  RETURN 
5000  IF Q1#8 THEN 5050
5010  PRINT "VT06";
5020  RETURN 
5050  Z$="####-###"
5055  X$="0"
5060  X=INT(U[Q1]/1000)
5065  GOTO X OF 5070,5075,5080,5085
5070  Z[1]=2200
5072  GOTO 5090
5075  Z[1]=3000
5077  GOTO 5090
5080  Z[1]=3300
5082  GOTO 5090
5085  Z[1]=3360
5090  Z[2]=U[Q1]-X*1000
5095  GOSUB 9000
5100  RETURN 
6000  PRINT 
6040  RETURN 
8000  GOTO P5 OF 8005,8010
8005  PRINT '12'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18;
8007  GOTO 8020
8010  K=66-P9
8015  GOSUB 9910
8020  K=4
8030  GOSUB 9910
8040  PRINT TAB(16)"DATE: ";
8050  Z$="##/##/##"
8060  X$=" "
8070  Z[1]=D1
8080  Z[2]=D2
8090  Z[3]=D3
8100  GOSUB 9000
8110  PRINT TAB(50)"I N V E N T O R Y  C O N T R O L";
8120  K=30
8130  GOSUB 9950
8150  Z$="##"
8160  P4=P4+1
8165  Z[1]=P4
8167  PRINT "PAGE: ";
8170  GOSUB 9000
8172  GOSUB 6000
8175  PRINT TAB(53)"UNIT SUMMARY OF OWNERSHIP";
8176  IF P6=2 THEN 8180
8177  PRINT " (AUTO RENEW)";
8180  K=2
8185  GOSUB 9900
8190  PRINT "PRODUCT  SER#  CUST TRANS-   DATE   INVOICE LEASE  TERMS ";
8191  PRINT "TAX RATE AGREEMENT EQ.RENTAL   MAINT REMAINING   ";
8192  PRINT "REMAINING      REMAINING";
8193  GOSUB 6000
8194  PRINT TAB(17)"#  ACTION";TAB(39)"#    STATUS               ";
8195  PRINT "     #        PRICE    PRICE    LIFE   RENTAL BILLING ";
8196  PRINT "MAINT.BILLING";
8200  K=2
8210  GOSUB 9900
8220  P9=12
8230  RETURN 
9000  REM
9002  V=Z2=Z3=Z4=Z5=Z7=Z8=Z9=1
9004  DIM V$[30],Y$[10],Z$[30]
9006  Y$="0123456789"
9008  Z0=Z9-1
9010  Z0=Z0+1
9012  IF Z0=LEN(Z$)+1 THEN 9140
9014  IF Z$[Z0,Z0]="#" THEN 9030
9016  IF Z$[Z0,Z0+1]=".#" THEN 9030
9018  IF Z$[Z0,Z0+1]="+#" THEN 9026
9020  V$[V,V]=Z$[Z0,Z0]
9022  V=V+1
9024  GOTO 9010
9026  Z4=0
9028  GOTO 9010
9030  Z=100
9032  Z6=Z[Z2]
9034  Z9=Z0-1
9036  Z9=Z9+1
9038  IF Z$[Z9,Z9]="." THEN 9044
9040  IF Z$[Z9,Z9]="#" THEN 9036
9042  GOTO 9052
9044  IF Z5#1 THEN 9052
9046  Z5=0
9048  Z=Z9
9050  GOTO 9036
9052  IF Z#100 THEN 9056
9054  Z=Z9
9056  IF Z4=1 THEN 9070
9058  IF Z6 >= 0 THEN 9066
9060  V$[V,V]="-"
9062  V=V+1
9064  GOTO 9070
9066  V$[V,V]=" "
9068  V=V+1
9070  IF Z=Z9 THEN 9076
9072  Z6=ABS(Z6)+5*10^(Z-Z9)
9074  GOTO 9078
9076  Z6=ABS(Z6)+.5
9078  Z7=10^(Z-Z0-1)
9080  Z4=10*Z7
9082  FOR Z1=Z-Z0 TO Z+1-Z9 STEP -1
9084  IF Z1#0 THEN 9094
9086  V$[V,V]="."
9088  V=V+1
9090  Z3=0
9092  GOTO 9132
9094  Z8=INT(Z6/Z7)
9096  IF Z6<Z4 THEN 9104
9098  V$[V,V]="#"
9100  V=V+1
9102  GOTO 9130
9104  Z6=Z6-Z8*Z7
9106  IF Z8=0 THEN 9110
9108  Z3=0
9110  IF Z3=0 THEN 9126
9112  IF Z1#1 THEN 9120
9114  V$[V,V]="0"
9116  V=V+1
9118  GOTO 9130
9120  V$[V,V]=X$
9122  V=V+1
9124  GOTO 9130
9126  V$[V,V]=Y$[Z8+1,Z8+1]
9128  V=V+1
9130  Z7=Z7/10
9132  NEXT Z1
9134  Z3=Z4=Z5=Z7=1
9136  Z2=Z2+1
9138  GOTO 9008
9140  PRINT V$;
9142  V$=""
9144  RETURN 
9900  GOSUB 6000
9910  FOR I=1 TO K
9915  PRINT 
9930  NEXT I
9940  RETURN 
9950  FOR I=1 TO K
9960  PRINT " ";
9970  NEXT I
9980  RETURN 
9999  END 
