10  REM*** BAEDP TIMESHARE BILLING.
20  REM*** THIS PROGRAM OVERLAYS USFILM OVER FILE MASTER. 
30  REM*** ALSO INSERTS TIME $ AND DISK SPACE $. 
40  REM*** LEAVES SPECIAL $ ALONE.
50  REM***
60  FILES USFILM,MASTER,WORK
70  REM*** TIME AND DISK SPACE RATES.
80  DATA 1.5,.06
90  READ R1,R2
100  DIM A$[72],B$[26],N$[10],C$[5],X[4]
110  B$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
120  N$="0123456789"
130  L=2
140  E9=0
200  REM** CHECK USFILM ID/SYS. FOR EXISTENCE IN MASTER.
210  PRINT "CHECKING FOR ID/SYS ENTRIES MISSING FROM MASTER FILE."
220  E9=0
230  PRINT LIN(1)
240  READ #1,1
250  READ #2,1
260  READ #3,1
270  IF  END #1 THEN 510
280  READ #1;A1,B1,C1
290  REM*** GOSUB TO CONVERT A1 TO C$.
300  GOSUB 5000
310  REM*** SEARCH MASTER FOR C$.
320  IF  END #2 THEN 390
330  FOR I=L TO 32767
340  READ #2,I;A$
350  IF A$[1,5]<C$ THEN 380
360  IF A$[1,5]>C$ THEN 390
370  GOTO 270
380  NEXT I
390  REM*** SEARCH RECORD I-1.
400  L=I
410  I=I-1
420  READ #2,I
430  IF TYP(-2)=4 OR TYP(-2)=3 THEN 480
440  READ #2;A$,B1,B1,B1,B1,B1
450  IF A$[1,5]<C$ THEN 430
460  IF A$[1,5]>C$ THEN 480
470  GOTO 270
480  PRINT C$" MISSING FROM MASTER FILE."
490  E9=E9+1
500  GOTO 270
510  REM*** ALMOST DONE
520  IF E9>0 THEN 560
530  PRINT "ALL ENTRIES IN USFILM ARE PRESENT IN MASTER FILE."
540  PRINT "I CONGRATULATE YOU ON YOUR DILLIGENT AND ACCURATE"
550  PRINT "MASTER FILE UPDATING."
555  GOTO 1000
560  PRINT LIN(1)
561  PRINT E9;" ITEMS MISSING FROM MASTER FILE."
562  STOP 
1000  REM*** COPY MASTER TO WORK.
1010  READ #2,1
1030  IF  END #2 THEN 1120
1040  IF  END #3 THEN 1060
1050  GOTO 1080
1060  PRINT "FILE WORK IS TOO SMALL"
1070  STOP 
1080  FOR I=1 TO 32767
1090  READ #2;A$,B5,B4,B3,B2,B1
1100  PRINT #3,I;A$,B5,B4,B3,B2,B1
1110  NEXT I
1120  PRINT #3,I; END 
1130  REM*** OVERLAY WORK FILE DATA.
1140  READ #1,1
1150  READ #3,1
1160  I=1
1170  IF  END #1 THEN 1340
1180  READ #1;A1,T1,D1
1190  M1=R1*T1/60
1200  M2=R2*D1
1210  REM*** CONVERT A1 TO C$
1220  GOSUB 5000
1230  READ #3,I;A$,B5,B4,B3,B2,B1
1240  IF A$[1,5]#C$ THEN 1280
1250  PRINT #3,I;A$,T1,D1,M1,M2,B1
1260  I=I+1
1270  GOTO 1180
1280  IF C$<A$[1,5] THEN 1310
1290  I=I+1
1300  GOTO 1230
1310  PRINT "SEQUENCE ERROR IN MASTER OR USFILM"
1320  PRINT "PROCESSING ";C$
1330  STOP 
1340  REM*** COPY WORK OVER MASTER.
1350  READ #2,1
1360  READ #3,1
1370  IF  END #3 THEN 9999
1380  FOR I=1 TO 32767
1390  READ #3,I;A$,T1,D1,M1,M2,M3
1400  PRINT #2;A$,T1,D1,M1,M2,M3, END 
1410  NEXT I
5000  REM*** GOSUB TO CONVERT ID/SYS A1 TO C$
5010  C$=""
5020  J1=INT(A1/10000)
5030  C$[1,1]=B$[J1,J1]
5040  J2=A1-J1*10000
5050  J3=INT(J2/10)
5060  X[1]=INT(J3/100)
5070  X[2]=INT((J3-X[1]*100)/10)
5080  X[3]=J3-X[1]*100-X[2]*10
5090  X[4]=J2-10*J3
5100  FOR I1=1 TO 4
5110  I2=X[I1]+1
5120  C$[I1+1,I1+1]=N$[I2,I2]
5130  NEXT I1
5140  RETURN 
9999  END 
