C Preamble record (1st record (64 bytes) of 1st block) C contains global information about the format C and size of the RDM data file. C C NOTE: 2 word integers (INTEGER*4) do not work right, must do C 2 integer*2 variables and conversion,that is- C reverse the words C (this is an RDM implementation quirk & not a F77 prob) C C xRnum,xSnum defined in RDMCOM. C xRnum = Number of records in file C xSnum = Number of Sorted Records C Byte preamb(64) INTEGER*2 xRnum1,xRnum2,xSnum1,xSnum2,Encry1,Encry2, 1 xRsize, !10 size in bytes of data records 2 xHnum, !12 number of blocks in header 3 xExtra, !14 extra header blocks not in xHnum 4 nFlds, !16 number of records in dictionary, C includes hash record (NumberFields) 4 DBStat, !30 not used 5 Unused(8) !48 unused, fill to 64 bytes BYTE SrtOrd(10) !38 permanent sort order of file. The C ! contents of each element is C ! dictionary sequence number of sort C ! field at that level. LOGICAL*2 IndexR, !20 not used (unsigned integer) 1 Synrec, !22 not used 2 Seqord, !24 header record number of 1st field C ! in dictionary sequence order. The C ! 1st record is numbered 1. 3 Namord, !26 header record number of dictionary C ! hash record; =9 for normal file 4 Dellst !28 not used LOGICAL*1 Chnged, !36 not used 1 FilFlg !37 not used CHARACTER Dbtype, !8 currently = CHR(1), Databasetype 1 fill, !9 reserved byte 2 xDbslv, !18 file security level 3 Recoff !19 not used (Recoffset) C C.. Equivalence the variables into the Preamble record buffer C EQUIVALENCE( preamb( 1), xRnum1 ) EQUIVALENCE( preamb( 3), xRnum2 ) !xRnum is product of xRnum1 & xRnum2 EQUIVALENCE( preamb( 5), xSnum1 ) EQUIVALENCE( preamb( 7), xSnum2 ) !xSnum is product of xSnum1 & xSnum2 EQUIVALENCE( preamb( 9), Dbtype ) EQUIVALENCE( preamb(10), fill ) EQUIVALENCE( preamb(11), xRsize ) EQUIVALENCE( preamb(13), xHnum ) EQUIVALENCE( preamb(15), xExtra ) EQUIVALENCE( preamb(17), nFlds ) EQUIVALENCE( preamb(19), xDbslv ) EQUIVALENCE( preamb(20), Recoff ) EQUIVALENCE( preamb(21), IndexR ) EQUIVALENCE( preamb(23), Synrec ) EQUIVALENCE( preamb(25), Seqord ) EQUIVALENCE( preamb(27), Namord ) EQUIVALENCE( preamb(29), Dellst ) EQUIVALENCE( preamb(31), DBStat ) EQUIVALENCE( preamb(33), Encry1 ) EQUIVALENCE( preamb(35), Encry2 )!Encryp is product of Encry1, Encry2 EQUIVALENCE( preamb(37), Chnged ) EQUIVALENCE( preamb(38), FilFlg ) EQUIVALENCE( preamb(39), SrtOrd ) EQUIVALENCE( preamb(49), Unused )