10  REM*** BAEDP TIMESHARE BILLING.
20  REM*** THIS PROGRAM ALLOWS REPORT DATA FOR A GIVEN I.D./SYS.
30  REM*** TO BE DUMPED TO A TTY PROVIDING THAT DAILY FILES ARE
40  REM*** INTACT FOR THE PERIOD REQUESTED.
50  REM***
60  FILES *
70  DIM A$[72],N$[10],B$[26],F$[5],X[3],A[500,3]
80  N$="0123456789"
90  B$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
100  PRINT "I.D./SYS."
110  INPUT A$
120  GOSUB 400
130  IF Y8=0 THEN 160
140  PRINT "INV"'1"ALID I.D./SYS.  TRY AGAIN."
150  GOTO 100
160  F$[1,1]="F"
170  F$[2,2]=A$[5,5]
180  PRINT "BEGINNING DAY (JULIAN)"
190  INPUT D0
200  PRINT "ENDING DAY (JULIAN)"
210  INPUT D1
220  IF D0 >= 1 AND D0 <= 366 AND D1 >= 1 AND D1 <= 366 THEN 250
230  PRINT "DAYS >=1 AND <=366, PLEASE."
240  GOTO 180
250  PRINT "****************************************"
251  PRINT "DAY","TIME","SPACE"
252  PRINT "****************************************"
260  FOR D2=D0 TO D1
270  REM*** GOSUB FOR JULIAN DAY AND CREATION OF FILE NAME F$.
280  GOSUB 610
290  REM*** PRINT OUTPUT
300  IF T9#999999. THEN 330
310  PRINT D2,"NO FILE THIS DAY"
320  GOTO 370
330  IF T9#888888. THEN 360
340  PRINT D2,"NO I.D. OR ZERO TIME AND SPACE"
350  GOTO 370
360  PRINT D2,T9,D9
370  NEXT D2
380  PRINT LIN(1)
390  GOTO 100
400  REM*** GOSUB TO CONVERT A$(1,4) TO I.D. A9
410  Y8=0
420  IF LEN(A$)#5 THEN 450
430  IF A$[5,5]<"1" THEN 450
440  IF A$[5,5] <= "9" THEN 480
450  REM*** BAD I.D./SYS. IN A$.
460  Y8=1
470  RETURN 
480  FOR I1=1 TO 26
490  IF A$[1,1]=B$[I1,I1] THEN 520
500  NEXT I1
510  GOTO 450
520  A9=I1*1000
530  FOR J1=2 TO 4
540  FOR I1=1 TO 10
550  IF A$[J1,J1]=N$[I1,I1] THEN 580
560  NEXT I1
570  GOTO 450
580  A9=A9+(I1-1)*10^(4-J1)
590  NEXT J1
600  RETURN 
610  REM*** THIS GOSUB CONVERTS JULIAN DAY D2 TO F$(3,5)
620  REM*** AND ACCESSES DAILY FILE F$ IF IT EXISTS.
630  REM*** TIME(T9) AND SPACE(D9) ARE RETURNED.
640  REM***
650  REM***
660  X[1]=INT(D2/100)
670  X[2]=INT((D2-X[1]*100)/10)
680  X[3]=D2-X[1]*100-X[2]*10
690  FOR I1=1 TO 3
700  J1=X[I1]+1
710  F$[I1+2,I1+2]=N$[J1,J1]
720  NEXT I1
730  REM*** F$ NOW CONTAINS DAILY FILE NAME.
740  ASSIGN F$,1,R8
750  IF R8<3 THEN 790
760  REM*** TIME AND DISC = 999999 IF FILE NON-EXISTANT.
770  T9=D9=999999.
780  RETURN 
790  MAT A=ZER
800  IF  END #1 THEN 830
810  READ #1,2
820  MAT  READ #1;A
830  REM*** SEARCH BACK FOR I.D. A9
840  FOR I2=500 TO 1 STEP -1
850  IF A[I2,1]#0 THEN 870
860  NEXT I2
870  FOR I1=I2 TO 1 STEP -1
880  IF A[I1,1]>A9 THEN 940
890  IF A[I1,1]<A9 THEN 950
900  REM*** I.D. IS FOUND. SET TIME AND DISC SPACE.
910  T9=A[I1,2]
920  D9=A[I1,3]
930  RETURN 
940  NEXT I1
950  REM*** FILE F$ EXISTS, BUT I.D. A9 ISN'T IN IT.
960  REM*** SET TIME AND DISC SPACE = 888888.
970  T9=D9=888888.
980  RETURN 
990  END 
