1  REM * MANUFACTURING *
2  REM *DISPLYS SUBASSY WITH EACH CMP-PT AND USAGE*
5  H$='29'31'31'31'31'31
10  DIM X$[20],A$[20],Z$[20],Y$[10],H$[6]
20  Y$="0123456789"
100  FILES FS1,FS2
3000  PRINT H$"DISPLAY SUBASSY (WITH COMPONENT PARTS)";
3005  GOSUB 8100
3010  IF G1 THEN 3000
3015  N=1
3020  IF  END #N THEN 3052
3025  S1=1
3030  READ #N;P2
3035  IF SGN(P2)#-1 THEN 3030
3040  S1=2
3042  READ #N;P1
3044  IF Q1=P1 AND Q2=-P2 THEN 3095
3046  IF Q1<P1 THEN 3058
3048  IF Q1>P1 OR Q2>-P2 THEN 3025
3050  GOTO 3058
3052  N=N+1
3056  IF N<3 THEN 3065
3058  PRINT '7'7'7"SUBASSY NOT ON FILE"
3060  READ #1,1
3062  READ #2,1
3064  GOTO 3000
3065  IF  END #N THEN 3052
3070  GOTO S1 OF 3030,3042
3095  PRINT 
3100  PRINT "COMP.PT   USAGE  COMP.PT   USAGE  COMP.PT   USAGE  COMP.PT   USAGE"
3110  PRINT "---------------  ---------------  ---------------  ---------------"
3120  PRINT 
3130  I=1
3135  IF  END #N THEN 3260
3137  S1=1
3140  READ #N;P2
3145  IF SGN(P2)=-1 THEN 3330
3150  S1=2
3155  READ #N;P1
3160  Q=INT(P1/100)
3165  P1=P1-Q*100
3170  PRINT TAB((I-1)*17);
3175  Z$="##-####-## "
3180  X$="0"
3185  Z[1]=P1
3190  Z[2]=INT(P2/100)
3195  Z[3]=P2-Z[2]*100
3200  GOSUB 7000
3205  Z$="####"
3210  X$=" "
3215  Z[1]=Q
3220  GOSUB 7000
3225  IF I=4 THEN 3240
3230  I=I+1
3235  GOTO 3137
3240  PRINT 
3245  PRINT 
3250  GOTO 3130
3260  N=N+1
3265  IF N>2 THEN 3330
3270  IF  END #N THEN 3260
3275  GOTO S1 OF 3140,3150
3330  PRINT 
3334  PRINT 
3335  PRINT "ANY MORE SUBASSYS TO BE DISPLAYED";
3340  INPUT X$
3350  IF X$[1,1]#"Y" THEN 9999
3355  GOTO 3060
7000  REM
7005  V=Z2=Z3=Z4=Z5=Z7=Z8=Z9=1
7010  DIM V$[72]
7020  Z0=Z9-1
7025  Z0=Z0+1
7030  IF Z0=LEN(Z$)+1 THEN 7350
7035  IF Z$[Z0,Z0]="#" THEN 7075
7040  IF Z$[Z0,Z0+1]=".#" THEN 7075
7045  IF Z$[Z0,Z0+1]="+#" THEN 7065
7050  V$[V,V]=Z$[Z0,Z0]
7055  V=V+1
7060  GOTO 7025
7065  Z4=0
7070  GOTO 7025
7075  Z=100
7080  Z6=Z[Z2]
7085  Z9=Z0-1
7090  Z9=Z9+1
7095  IF Z$[Z9,Z9]="." THEN 7110
7100  IF Z$[Z9,Z9]="#" THEN 7090
7105  GOTO 7130
7110  IF Z5#1 THEN 7130
7115  Z5=0
7120  Z=Z9
7125  GOTO 7090
7130  IF Z#100 THEN 7140
7135  Z=Z9
7140  IF Z4=1 THEN 7175
7145  IF Z6 >= 0 THEN 7165
7150  V$[V,V]="-"
7155  V=V+1
7160  GOTO 7175
7165  V$[V,V]=" "
7170  V=V+1
7175  IF Z=Z9 THEN 7190
7180  Z6=ABS(Z6)+5*10^(Z-Z9)
7185  GOTO 7195
7190  Z6=ABS(Z6)+.5
7195  Z7=10^(Z-Z0-1)
7200  Z4=10*Z7
7205  FOR Z1=Z-Z0 TO Z+1-Z9 STEP -1
7210  IF Z1#0 THEN 7235
7215  V$[V,V]="."
7220  V=V+1
7225  Z3=0
7230  GOTO 7330
7235  Z8=INT(Z6/Z7)
7240  IF Z6<Z4 THEN 7260
7245  V$[V,V]="#"
7250  V=V+1
7255  GOTO 7325
7260  Z6=Z6-Z8*Z7
7265  IF Z8=0 THEN 7275
7270  Z3=0
7275  IF Z3=0 THEN 7315
7280  IF Z1#1 THEN 7300
7285  V$[V,V]="0"
7290  V=V+1
7295  GOTO 7325
7300  V$[V,V]=X$
7305  V=V+1
7310  GOTO 7325
7315  V$[V,V]=Y$[Z8+1,Z8+1]
7320  V=V+1
7325  Z7=Z7/10
7330  NEXT Z1
7335  Z3=Z4=Z5=Z7=1
7340  Z2=Z2+1
7345  GOTO 7020
7350  PRINT V$;
7355  V$=""
7360  RETURN 
8000  G1=Z=0
8010  FOR I1=1 TO LEN(A$)
8020  FOR I2=1 TO 10
8030  IF A$[I1,I1]=Y$[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$
8102  IF X$="0" THEN 9999
8105  G1=0
8110  IF LEN(X$)=10 THEN 8125
8115  PRINT '7'7"INVALID DATA"
8117  G1=1
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 OR Z>19 THEN 8115
8150  Q1=Z
8155  A$[1,4]=X$[4,7]
8160  A$[5]=X$[9]
8165  GOSUB 8000
8170  IF G1 THEN 8115
8175  Q2=Z
8180  RETURN 
9999  END 
