!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! 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 KEY'POSITION,B,1 MAP2 UB,X,1 !FILLER MAP2 DATA'BLOCKING'FACTOR,B,1 MAP2 UC,X,3 !FILLER MAP2 IDA'FREELIST'POINTER'A,B,1 ! MAP2 IDA'FREELIST'POINTER'B,B,1 ! MAP2 UF,X,2 !FILLER MAP2 IDA'FREE'CNT'LOW,B,1 !UNUSED RECS LOW BYTE MAP2 IDA'FREE'CNT'HI,B,1 !UNUSED RECS HI BYTE MAP2 UH,X,2 !FILLER MAP2 IDX'FREELIST'POINTER,B,1 ! MAP2 UJ,X,3 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 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!