00010 REM &REM&
00020 PRINT 'CS';
INPUT "MSORT file to check:",MFN$! Get MSORT file name
00025 LET T=0 ! Initialize deleted records to 0
00030 OPEN(1,OPT="TEXT")MFN$ ! Open MSORT file
00040 READ RECORD(1,IND=25,SIZ=4)A$ ! Get start block of deleted key
00050 IF DEC(A$) = 0 ! If start block is 0 then
LET T=0; ! number of delete records is 0
GOTO 130 ! Go determine # of records used
FI
00060 LET P=(DEC(A$)-1) * 1024 ! then pointer is block -1 * block size
00070 READ RECORD(1,IND=P,SIZ=6)B$ ! get # of bytes in block and next
! block pointer
00080 LET B=DEC(B$(1,2)) ! Calc # of bytes in this block
00090 LET B=B-6 ! Subtract size of this pointer
00100 LET B=B/4, ! Divide by size of each entry which
! yields # of delete records for THIS
! block
T=T+B ! T = total delete records in file
00110 IF B$(3,4)=DIM(6,$00$) ! Check for more deleted blocks
GOTO 130 ! If none then get out of loop
00120 P=(DEC(B$(3,4))-1)*1024; ! get next deleted key block
GOTO 70 ! and continue
00130 READ RECORD(1,IND=33,SIZ=4)C$ ! Get "high water mark" for file
! (Max # of records EVER written)
00140 LET U=DEC(C$)-T ! Get number of used records in file
00150 PRINT "NUMBER OF USED RECORDS: ",! Display result
U