1  H$='29'31'13'26'30
9  DIM N[300,2]
10  DIM X$[20],C$[10],T$[10],A$[20],H$[5],P$[1]
100  FILES FS1,FS2,INVSC1,INVSC2,TRANSF
150  FOR I=1 TO 10
152  PRINT #3,I; END 
155  PRINT #4,I; END 
157  NEXT I
160  Z0=0
165  N5=300
170  C$="0123456789"
200  P$=""
210  GOSUB 9400
220  PRINT H$[1,2]"ENTER TODAY'S DATE (MDY)";
230  INPUT D
240  GOSUB 9500
250  IF G1 THEN 220
1000  PRINT H$[1,2];H$[2,2];H$[2,2]"SUB ASSEMBLY";
1005  INPUT X$
1007  IF X$="0" THEN 9999
1010  GOSUB 8105
1015  IF G1 THEN 1000
1020  IF X1<20 THEN 1035
1025  GOSUB 9565
1030  GOTO 1000
1035  Q1=X1
1040  Q2=X2
1045  PRINT H$[1,2];H$[2,2];"UPDATE SUBASSY ITSELF OR A COMP.PT (S/C)";
1050  INPUT T$[1,1]
1052  IF T$[1,1]="0" THEN 1000
1055  IF T$[1,1]="S" THEN 2000
1060  IF T$[1,1]="C" THEN 3000
1070  PRINT "WHAT";
1080  GOTO 1050
2000  REM
2005  PRINT 
2010  PRINT "ADD,DELETE, OR CHANGE SUBASSY NUMBER";
2015  INPUT T$[2,2]
2020  IF T$[2,2]="0" THEN 1000
2025  IF T$[2,2]#"A" THEN 2055
2030  GOSUB 2100
2040  GOTO 1000
2055  IF T$[2,2]#"D" THEN 2070
2060  GOSUB 2300
2065  GOTO 1000
2070  IF T$[2,2]#"C" THEN 2085
2075  GOSUB 2400
2080  GOTO 1000
2085  GOSUB 9565
2090  GOTO 2010
2100  REM
2102  H9=0
2108  PRINT "ENTER COMP.PTS AND USAGE; '0' PT# TERMINATES INPUT"
2111  GOSUB 9150
2112  PRINT 
2115  FOR I=1 TO N5
2116  PRINT "COMP-PT#";
2117  INPUT X$
2118  IF X$="0" THEN 2145
2119  GOSUB 8105
2120  IF G1 THEN 2116
2125  N[I,1]=X2
2130  N[I,2]=X1
2132  GOSUB 8200
2140  N[I,2]=Z*100+N[I,2]
2142  NEXT I
2145  I=I-1
2150  E1=1
2151  E2=3
2152  F1=0
2155  IF  END #E1 THEN 2270
2157  IF  END #E2 THEN 2280
2160  S1=1
2162  READ #E1;P2
2165  IF SGN(P2)=-1 THEN 2175
2167  S2=1
2170  PRINT #E2;P2
2172  GOTO 2160
2175  S1=2
2177  READ #E1;P1
2180  IF Q1=P1 AND Q2=-P2 THEN 2297
2182  IF Q1<P1 THEN 2187
2185  IF Q1>P1 OR Q2>-P2 THEN 2215
2187  S2=2
2190  PRINT #E2;-Q2
2192  S2=3
2195  PRINT #E2;Q1
2197  FOR J=1 TO I
2200  FOR J1=1 TO 2
2202  S2=4
2205  PRINT #E2;N[J,J1]
2207  NEXT J1
2210  NEXT J
2212  GOTO 2220
2215  S2=7
2216  PRINT #E2;P2
2217  P2=P1
2218  GOTO 2167
2220  IF  END #E1 THEN 2290
2223  IF F1 THEN 2242
2225  S2=5
2227  PRINT #E2;P2
2230  S2=6
2232  PRINT #E2;P1
2235  S1=1
2237  READ #E1;P1
2240  GOTO 2230
2242  PRINT #E2; END 
2245  GOSUB 2700
2250  G1=0
2252  IF H9 THEN 2267
2255  A$=""
2260  T=T1=0
2265  GOSUB 9200
2267  RETURN 
2270  E1=E1+1
2271  IF E1>2 THEN 2277
2272  IF  END #E1 THEN 2270
2275  GOTO S1 OF 2162,2177
2277  F1=1
2278  GOTO 2187
2280  E2=E2+1
2282  IF E2<5 THEN 2286
2283  PRINT '7'7"SUBASSY FILE FULL--SUBASSY NOT ADDED"
2285  RETURN 
2286  IF  END #E2 THEN 2280
2287  GOTO S2 OF 2170,2190,2195,2205,2225,2230,2216
2290  E1=E1+1
2291  IF E1>2 THEN 2242
2292  IF  END #E1 THEN 2290
2293  GOTO 2237
2295  GOTO 2242
2297  PRINT '7'7"SUBASSY ALREADY ON FILE"
2298  G1=1
2299  RETURN 
2300  REM
2302  H9=F1=0
2305  GOSUB 2750
2307  IF G1 THEN 2350
2310  IF P9 THEN 2325
2312  IF  END #E1 THEN 2355
2315  IF  END #E2 THEN 2370
2317  PRINT #E2;P1
2320  READ #E1;P1
2322  GOTO 2317
2325  PRINT #E2; END 
2327  GOSUB 2700
2330  IF H9 THEN 2350
2335  A$=""
2340  T=T1=0
2345  GOSUB 9200
2350  RETURN 
2355  E1=E1+1
2357  IF E1>2 THEN 2325
2360  IF  END #E1 THEN 2355
2365  GOTO 2320
2370  E2=E2+1
2372  IF  END #E2 THEN 2370
2375  IF E2<5 THEN 2317
2380  PRINT '7'7'7"ERR2"
2390  STOP 
2400  REM
2402  H9=1
2405  GOSUB 2305
2407  IF G1 THEN 2460
2410  PRINT "NEW SUBASSY#";
2412  GOSUB 8100
2415  IF G1 THEN 2410
2417  IF X1<20 THEN 2425
2418  GOSUB 9565
2420  GOTO 2410
2425  T=Q1
2427  T1=Q2
2430  Q1=X1
2432  Q2=X2
2435  GOSUB 9150
2440  GOSUB 2150
2445  IF G1 THEN 2410
2450  A$=""
2455  GOSUB 9200
2460  RETURN 
2700  REM
2705  E1=1
2710  E2=3
2712  GOSUB 9150
2715  IF  END #E1 THEN 2730
2717  IF  END #E2 THEN 2740
2720  READ #E2;P
2722  PRINT #E1;P
2725  GOTO 2720
2730  E1=E1+1
2731  IF  END #E1 THEN 2730
2732  IF E1<3 THEN 2722
2735  PRINT '7'7"ERR1A"
2737  STOP 
2740  E2=E2+1
2742  IF E2>4 THEN 2747
2743  IF  END #E2 THEN 2740
2745  GOTO 2720
2747  PRINT #E1; END 
2748  RETURN 
2750  GOSUB 9150
2751  G1=P9=0
2752  E1=1
2755  E2=3
2757  IF  END #E1 THEN 2840
2760  IF  END #E2 THEN 2860
2762  S1=1
2765  READ #E1;P2
2767  IF SGN(P2)=-1 THEN 2777
2770  S2=1
2772  PRINT #E2;P2
2775  GOTO 2762
2777  S1=2
2780  READ #E1;P1
2782  IF Q1=P1 AND Q2=-P2 THEN 2802
2785  IF Q1<P1 THEN 2845
2787  IF Q1>P1 OR Q2>-P2 THEN 2792
2790  GOTO 2845
2792  S2=2
2795  PRINT #E2;P2
2797  P2=P1
2800  GOTO 2770
2802  IF  END #E1 THEN 2880
2803  FOR I=1 TO N5
2805  S1=1
2807  READ #E1;P1
2810  IF SGN(P1)=-1 THEN 2820
2811  N[I,1]=P1
2812  S1=2
2815  READ #E1;N[I,2]
2817  NEXT I
2820  I=I-1
2825  RETURN 
2840  E1=E1+1
2842  IF E1<3 THEN 2852
2845  PRINT '7'7"SUBASSY NOT ON FILE"
2847  G1=1
2850  RETURN 
2852  IF  END #E1 THEN 2840
2853  GOTO S1 OF 2765,2780
2860  E2=E2+1
2862  IF E2<5 THEN 2870
2865  PRINT '7'7"ERR1";
2867  STOP 
2870  IF  END #E2 THEN 2860
2872  GOTO S2 OF 2770,2795
2880  E1=E1+1
2882  IF E1<3 THEN 2890
2885  P9=1
2887  GOTO 2820
2890  IF  END #E1 THEN 2880
2892  GOTO S1 OF 2807,2815
3000  REM
3010  PRINT H$[1,2];H$[2,2]"ADD,DELETE, OR CHANGE A COMP.PT; OR CHANGE A USAGE"
3011  PRINT "ENTER:  'A','D','C', OR 'U'";
3015  INPUT T$[2,2]
3016  IF T$[2,2]="0" THEN 1000
3020  GOSUB 2750
3022  IF G1 THEN 1000
3025  IF T$[2,2]#"A" THEN 3045
3030  GOSUB 3100
3035  GOTO 3000
3045  IF T$[2,2]#"D" THEN 3065
3050  GOSUB 3300
3060  GOTO 3000
3065  IF T$[2,2]#"C" THEN 3080
3070  GOSUB 3500
3075  GOTO 3000
3080  IF T$[2,2]#"U" THEN 3095
3085  GOSUB 3600
3090  GOTO 3000
3095  PRINT "WHAT";
3097  GOTO 3015
3100  REM
3105  F1=0
3110  PRINT "ADD COMP-PART";
3112  INPUT X$
3115  IF X$="0" THEN 3195
3117  GOSUB 8105
3120  IF G1 THEN 3110
3125  FOR J=1 TO I
3127  Q=INT(N[J,2]/100)
3130  P=N[J,2]-Q*100
3132  IF P#X1 OR N[J,1]#X2 THEN 3142
3135  PRINT '7'7"NEW COMP-PT ALREADY ON FILE"
3137  F1=0
3140  RETURN 
3142  NEXT J
3143  IF F1 THEN 3195
3145  IF I<N5 THEN 3152
3147  PRINT '7'7"SUBASSY HAS ";N5;"COMP PARTS, THE LIMIT"
3150  GOTO 3137
3152  I=I+1
3155  N[I,1]=X2
3157  N[I,2]=X1
3160  GOSUB 8200
3162  N[I,2]=Z*100+N[I,2]
3175  GOSUB 9000
3177  IF G1 THEN 3195
3180  A$=X$
3190  GOSUB 9200
3195  RETURN 
3300  REM
3302  F1=0
3305  PRINT "DELETE COMP-PART";
3307  INPUT X$
3310  IF X$="0" THEN 3430
3315  GOSUB 8105
3320  IF G1 THEN 3305
3325  FOR J=1 TO I
3330  Q=INT(N[J,2]/100)
3335  P=N[J,2]-Q*100
3340  IF P=X1 AND N[J,1]=X2 THEN 3375
3345  NEXT J
3350  F1=0
3365  PRINT '7'7"COMP.PT NOT A PT OF SUBASSY"
3370  RETURN 
3375  IF F1 THEN 3430
3377  I=I-1
3380  FOR J1=J TO I
3385  N[J1,1]=N[J1+1,1]
3390  N[J1,2]=N[J1+1,2]
3395  NEXT J1
3400  GOSUB 9000
3405  T=T1=0
3410  A$=X$
3420  GOSUB 9200
3430  RETURN 
3500  REM
3505  F1=1
3510  PRINT "OLD COMP-PT";
3515  INPUT X$
3520  IF X$="0" THEN 3580
3525  GOSUB 8105
3530  IF G1 THEN 3510
3535  GOSUB 3325
3540  IF  NOT F1 THEN 3500
3545  T=X1
3550  T1=X2
3555  PRINT "NEW COMP-PT";
3556  GOSUB 8100
3557  IF G1 THEN 3555
3558  Q0=Q
3559  J0=J
3560  GOSUB 3125
3561  IF F1 THEN 3564
3562  F1=1
3563  GOTO 3555
3564  N[J0,1]=X2
3565  N[J0,2]=Q0*100+X1
3566  GOSUB 9000
3568  IF  NOT G1 THEN 3574
3570  PRINT '7'7"ERR3"
3572  STOP 
3574  A$=X$
3576  GOSUB 9200
3580  RETURN 
3600  F1=1
3605  PRINT "COMP-PT";
3610  INPUT X$
3615  IF X$="0" THEN 3680
3620  GOSUB 8105
3625  IF G1 THEN 3605
3627  GOSUB 3325
3630  IF  NOT F1 THEN 3600
3632  GOSUB 8200
3635  T=Q
3640  T1=Z
3645  N[J,2]=Z*100+P
3650  GOSUB 9000
3655  IF  NOT G1 THEN 3670
3660  PRINT '7'7"ERR4"
3665  STOP 
3670  A$=X$
3675  GOSUB 9200
3680  RETURN 
8000  G1=Z=0
8010  FOR I1=1 TO LEN(A$)
8020  FOR I2=1 TO 10
8030  IF A$[I1,I1]=C$[I2,I2] THEN 8070
8040  NEXT I2
8050  G1=1
8060  RETURN 
8070  Z=Z*10+I2-1
8080  NEXT I1
8090  RETURN 
8100  INPUT X$
8105  G1=0
8110  IF LEN(X$)=10 THEN 8125
8115  GOSUB 9565
8120  RETURN 
8125  IF X$[3,3]#"-" THEN 8115
8130  IF X$[8,8]#"-" THEN 8115
8135  A$=X$[1,2]
8140  GOSUB 8000
8145  IF G1 OR Z<10 THEN 8115
8150  X1=Z
8155  A$[1,4]=X$[4,7]
8160  A$[5]=X$[9]
8165  GOSUB 8000
8170  IF G1 THEN 8115
8175  X2=Z
8180  RETURN 
8200  PRINT "USAGE";
8205  INPUT A$
8210  GOSUB 8000
8215  IF  NOT G1 AND Z<10000 THEN 8240
8220  GOSUB 9565
8230  GOTO 8200
8240  RETURN 
9000  G1=0
9002  IF  END #E1 THEN 9100
9005  IF  END #E2 THEN 9120
9010  S2=1
9015  PRINT #E2;-Q2
9020  S2=2
9025  PRINT #E2;Q1
9030  FOR J=1 TO I
9035  FOR J1=1 TO 2
9040  S2=3
9045  PRINT #E2;N[J,J1]
9050  NEXT J1
9055  NEXT J
9060  IF P9 THEN 9085
9065  S2=4
9070  PRINT #E2;P1
9075  READ #E1;P1
9080  GOTO 9070
9085  PRINT #E2; END 
9090  GOSUB 2700
9095  RETURN 
9100  E1=E1+1
9102  IF E1>2 THEN 9085
9105  IF  END #E1 THEN 9100
9110  GOTO 9075
9120  E2=E2+1
9125  IF E2<5 THEN 9142
9130  PRINT '7'7'7'7"SUBASSY FILE FULL--COMP PART NOT ADDED"
9135  G1=1
9140  RETURN 
9142  IF  END #E2 THEN 9120
9145  GOTO S2 OF 9015,9025,9045,9070
9150  FOR I1=1 TO 4
9155  READ #I1,1
9160  NEXT I1
9170  RETURN 
9200  IF  END #5 THEN 9920
9210  PRINT #5;Q1,Q2,P$,T$[1,2],Z0,T,T1,A$,D, END 
9220  RETURN 
9400  REM
9410  IF TYP(5)=3 THEN 9470
9420  IF TYP(5)#1 THEN 9450
9430  READ #5;X
9440  GOTO 9410
9450  READ #5;T$
9460  GOTO 9410
9470  RETURN 
9500  G1=0
9505  X=INT(D/10^4)
9510  IF X<1 OR X>12 THEN 9565
9515  X1=INT((D-X*10^4)/100)
9520  IF X1<1 OR X1>31 THEN 9565
9525  X2=D-X*10^4-X1*100
9530  IF X2<72 OR X2>99 THEN 9565
9540  RETURN 
9565  PRINT '7'7"INVALID DATA";H$[3,5];
9570  G1=1
9580  RETURN 
9920  PRINT "TRANS FILE FULL"
9925  PRINT "LAST UPDATE EXECUTED BUT NOT RECORDED ON TRANS FILE"
9999  END 
