1000  FILES *
1010  DIM A$[255],B$[255],C$[255],D$[255],L$[2],Z$[255]
1020  PRINT "TAPE FILE NAME? ";
1030  LINPUT A$
1040  ASSIGN A$,1,N
1050  IF N<3 THEN 1080
1060  PRINT "FILE "A$" CANNOT BE ASSIGNED.  RETURN CODE ="N
1070  GOTO 1020
1080  LINPUT #1;A$
1090  X=2*(246#NUM(A$[2]))
1100  R1=X+1
1110  R2=X+24
1120  T0=NUM(A$[10])
1130  T1=T2=T4=0
1140  T3=0
1150  REM IF 1#NUM(A$[10]) AND N <= 0 THEN 1180
1160  PRINT "TAPE NUMBER(S)? ";
1170  LINPUT C$
1180  PRINT "ADJUST PAPER, PRESS 'RETURN'"LIN(1)
1190  ENTER 255,X,X
1200  REM INIT
1210  L9=66
1220  L0=1
1230  L8=L9-4
1240  L=L9-1
1250  GOSUB 2770
1260  GOSUB 2110
1270  IF  END #1 THEN 2070
1280  PRINT #1;CTL(21)
1290  LINPUT #1;A$[1,R2]
1300  A$=A$[R1]
1310  B=1
1320  REM CHECK FOR NEW ACCT
1330  IF A$[1,2]=L$ THEN 1360
1340  GOSUB 2200
1350  L$=A$[1,2]
1360  Z$=""
1370  Z0=11-B
1380  GOSUB 2670
1390  REM GET NAME, TYPE, ETC.
1400  Z$=A$[3,8]
1410  Z0=8
1420  GOSUB 2670
1430  F=NUM(A$[5])>127
1440  F8=0
1450  C=NUM(A$[7])>127
1460  IF F9 THEN 1560
1470  Z$=A$[15]
1480  Z=8192
1490  GOSUB 2710
1500  Z$=CHR$(32+38*F+35*(C AND  NOT F)+7*(X2>4095)-5*(NUM(A$[3])>127))
1510  F8=POS(" C",Z$[1,1])
1520  Z=16
1530  GOSUB 2730
1540  Z$[2]=CHR$(32+44*(X2=4)+48*(X2=2)+53*(X2=1))
1550  GOTO 1580
1560  Z$=CHR$(32+38*F+35*(C AND  NOT F))
1570  Z$[2]=CHR$(32+48*(NUM(A$[3])>127))
1580  Z$[3]=CHR$(32+77*F*C)
1590  Z0=3
1600  GOSUB 2670
1610  REM BLOCKSIZE, COMMON OFFSET
1620  Z=256*NUM(A$[9])+NUM(A$[10])-1024* NOT F
1630  Z0=9
1640  GOSUB 2630
1650  REM LAST ACCESS
1660  Z$=A$[11]
1670  Z=512
1680  GOSUB 2710
1690  Z=X1
1700  Z0=6
1710  GOSUB 2630
1720  Z$="/"
1730  Z0=1
1740  GOSUB 2670
1750  Z=X2
1760  Z0=3
1770  GOSUB 2580
1780  Z$=" |"
1790  GOSUB 2670
1800  REM LAST UPDATE
1810  Z$=A$[13]
1820  Z=24
1830  GOSUB 2710
1840  Z=X1
1850  GOSUB 2630
1860  Z$=":"
1870  Z0=1
1880  GOSUB 2670
1890  Z=X2
1900  Z0=2
1910  GOSUB 2580
1920  REM LENGTH
1930  Z=256*NUM(A$[23])+NUM(A$[24])
1940  IF F THEN 1970
1950  Z=65536.-Z
1960  Z=Z*(F8=0)+INT((Z+255)/256)*(F8#0)
1970  Z0=9
1980  GOSUB 2630
1990  T1=T1+Z
2000  T2=T2+Z
2010  REM PRINT
2020  PRINT "      "B$
2030  L=L+1
2040  IF L<L8 THEN 1280
2050  GOSUB 2110
2060  GOTO 1280
2070  T4=B=1
2080  GOSUB 2200
2090  PRINT LIN(0 MIN L-L9)"---"LIN(-L0)
2100  STOP 
2110  REM PAGE
2120  PRINT LIN(0 MIN L-L9)"---"LIN(-L0)
2130  PRINT SPA(6);C$;LIN(2);SPA(29)"BLOCKSIZE/      LAST          LENGTH"
2140  PRINT "      ACCOUNT   ENTRY NAME     OFFSET   ACCESS   UPDATE  ";
2150  PRINT "BLOCKS/RECRD"
2160  PRINT 
2170  L=L0+6
2180  L$=""
2190  RETURN 
2200  REM CONVERT ACCOUNT NUMBER
2210  IF T3<1 THEN 2380
2220  IF LEN(L$)<2 THEN 2380
2230  Z0=21
2240  Z$="          ======  ==="
2250  GOSUB 2680
2260  Z0=9
2270  Z=T1
2280  GOSUB 2630
2290  Z0=19
2300  Z$="    ==/=== | ===:=="
2310  GOSUB 2680
2320  Z0=9
2330  Z=T2
2340  GOSUB 2630
2350  PRINT "      ";B$
2360  L=L+1
2370  T1=0
2380  IF T4 THEN 2570
2390  B=1
2400  Z$=A$
2410  Z=1024
2420  GOSUB 2710
2430  Z$=CHR$(64+X1)
2440  Z0=1
2450  GOSUB 2670
2460  Z=X2
2470  Z0=3
2480  GOSUB 2580
2490  IF F9 THEN 2570
2500  Z$=A$[15]
2510  Z=16384
2520  GOSUB 2710
2530  IF X2<8191 THEN 2570
2540  Z$=" PFA"
2550  Z0=4
2560  GOSUB 2670
2570  RETURN 
2580  REM ZERO-FILL
2590  FOR Z9=1 TO Z0
2600  Z$[Z9]="0"
2610  NEXT Z9
2620  GOTO 2650
2630  REM SPACE-FILL
2640  Z$[1,Z0]=""
2650  CONVERT Z TO Z$[Z0]
2660  Z$[2*Z0-LEN(Z$)]=Z$[Z0]
2670  REM CONCATENATE
2680  B$[B]=Z$[1,Z0]
2690  B=B+Z0
2700  RETURN 
2710  REM UNPACK STRING
2720  X2=256*NUM(Z$)+NUM(Z$[2])
2730  REM UNPACK INTEGER
2740  X1=INT(X2/Z)
2750  X2=X2-Z*X1
2760  RETURN 
2770  REM READ LABEL
2780  B=1
2790  Z=TIM(3)
2800  Z0=2
2810  GOSUB 2630
2820  Z$="/"
2830  Z0=1
2840  GOSUB 2670
2850  Z=TIM(2)
2860  Z0=3
2870  GOSUB 2580
2880  Z$=""
2890  Z0=2
2900  GOSUB 2670
2910  Z$="DIRECTORY - HIB/SLEEP TAPE"
2920  Z0=27
2930  GOSUB 2670
2940  Z$=CHR$(T0+64)
2950  Z0=2
2960  GOSUB 2670
2970  Z$=C$
2980  Z0=12
2990  GOSUB 2670
3000  Z=NUM(A$[12])
3010  Z0=6
3020  GOSUB 2630
3030  Z$="/"
3040  Z0=1
3050  GOSUB 2670
3060  Z$=A$[13]
3070  Z=24
3080  GOSUB 2710
3090  Z=X1
3100  Z0=3
3110  GOSUB 2580
3120  Z=X2
3130  Z0=4
3140  GOSUB 2630
3150  Z$=":"
3160  Z0=1
3170  GOSUB 2670
3180  Z=INT(ABS(256*NUM(A$[15])+NUM(A$[16])-36000.)/600+.5)
3190  Z0=2
3200  GOSUB 2580
3210  C$=B$
3220  F9=246#NUM(A$[2])
3230  RETURN 
3240  END 
