!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! ROCK.BAS by Ed Schrayer
! Donated to AMUS JUN. 05, 1987
!
! Place this file on ppn DSK0:[7,6] and compile.
! For ease of use, place "ROCK.DO" on ppn DSK0:[2,2].
! (See end of text)
!
! Purpose : to examine the contents of a primary or secondary
! ISAM file index.
!
!
! Usage : Log to the ppn where the ISAM index resides.
! Type "ROCK 'filename' "
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
MAP1 ROCK
MAP2 U1,X,8
MAP2 UPDATE'COUNTER,B,1 !
MAP2 U9,X,1
MAP2 LRECLL,B,1 !LRECL LOW BYTE
MAP2 LRECLH,B,1 !LRECL HI BYTE
MAP2 KEY'SIZE,B,1 !
MAP2 SIZE'OF'DIR'ENTRY,B,1 !EVEN +4 BYTES
MAP2 ENTRIES'PER'DIR'BLK,B,1 !
MAP2 UA,X,1 !FILLER
MAP2 IDX'FREECOUNT,B,1
MAP2 UM,X,3
MAP2 RECS'ALLOC'IN'USE'LOW,B,1 !ACTIVE RECS LOW BYTE
MAP2 RECS'ALLOC'IN'USE'HI,B,1 !ACTIVE RECS HI BYTE
MAP2 UP,X,8
!
FILEBASE 0
RECNO=0
STRSIZ 20
START:
I$=""
?TAB(-1,0)
?TAB(2,5);:INPUT "ENTER THE INDEX NAME : ",I$
IF I$="" ?TAB(-1,0) : END
!
!Validate file name
!
POS=INSTR(1,I$,".")
IF POS>6 GOTO RPT'ERR
I$=I$[1,(POS-1)]
IF LEN(I$)>6 GOTO RPT'ERR
LOOKUP I$+".IDX",FND
IF FND=0 ?TAB(8,10);"FILE NOT FOUND - HIT RETURN : ";: &
INPUT "",DUMMY : GOTO START
!
!Treat the index as a random file; read the rock and close
!
OPEN #1,I$+".IDX",RANDOM,512,RECNO
READ #1,ROCK
CLOSE #1
?TAB(4,5);"RECORD LENGTH = ";((LRECLH*256)+(LRECLL))
?TAB(5,5);"KEY SIZE = ";KEY'SIZE
?TAB(6,5);"KEY POSITION = ";KEY'POSITION
?TAB(7,5);"BLOCKING FACTOR = ";DATA'BLOCKING'FACTOR
?TAB(10,5);"FILE CAPACITY (REC)= ";(((IDA'FREE'CNT'HI &
+RECS'ALLOC'IN'USE'HI)*256)+(IDA'FREE'CNT'LOW+RECS'ALLOC'IN'USE'LOW))
?TAB(12,5);"RECORDS IN USE = ";((RECS'ALLOC'IN'USE'HI*256)+RECS'ALLOC'IN'USE'LOW)
?TAB(14,5);"RECORDS AVAILABLE = ";((IDA'FREE'CNT'HI*256)+IDA'FREE'CNT'LOW)
?TAB(23,5);:INPUT"HIT RET TO CONTINUE : ",DUMMY
GOTO START
!
RPT'ERR:
?TAB(8,10);"ERROR IN FILE NAME - HIT RETURN : ";
INPUT "",DUMMY
GOTO START
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! ROCK.DO (Install on ppn DSK0:[2,2])
!
!
! Enter the following lines in a .DO file :
!
! :T
! RUN ROCK
! $0
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!