.TITLE BFDEFS .LIST TTM ; BIO DATABASE FILE ROOT OFSETS ; RT.SIZE==0 RT.AGE==2 ;FILE AGE RT.BIAS==4 ;FILE AGE BIAS RT.KEY==6 ;POINTER TO FIRST KEY RT.FREE==10 ;POINTER TO FIRST FREE BLOCK RT.NLV==12 ;NUMBER OF LEVELS IN THIS FILE RT.FDB==14 ;ADDRESS OF FILE'S FDB RT.LEV==16 ;CURRENT ACTIVE LEVEL NUMBER RT.BUF==20 ;POINTER TO CURRENT ACTIVE BUFFER RT.PCL==22 ;POINTER TO CURRENT ACTIVE LEVEL TABLE RT.LLA==24 ;POINTER TO LAST LEGAL ADDRESS OF CURRENT BLOCK RT.DTY==26 ;DATA TYPE RT.VER==30 ;STRUCTURE VERSION NUMBER. ; LV.1ST==506. ;ROOT BLOCK OFFSET TO FIRST LEVEL TABLE. ; ; FAKE LEVEL TABLE TO MAKE THE ROOT BLOCK LOOK LIKE A KEY BLOCK ; RT.LEN==LV.1ST-0 ;LENTH OF A KEY(MUST BE 4 IN THE ROOT BLOCK) RT.SCN==LV.1ST-2 ;SIZE OF RETRIVAL SECTION OF KEY RT.LLK==LV.1ST-4 ;OFFSET TO LAST LEGAL KEY IN BLOCK RT.PCB==LV.1ST-6 ;POINTER TO CURRENT BLOCK RT.PCE==LV.1ST-10 ;POINTER TO CURRENT ELEMENT RT.FLG==LV.1ST-12 ;FLAG WORD FOR THE ROOT AND FILE AS A WHOLE ; ;LEVEL TABLE OFFSETS ; LV.LEN==0 ;LENTH OF A KEY IN THIS LEVEL LV.SCN==-2 ;SCAN SIZE OF KEY LV.LLK==-4 LV.PCB==-6 ;Pointer to Current Block LV.PCE==-8. ;Pointer to Current Element in key block LV.FLG==-10. ;FLAG WORD FOR THIS LEVEL LV.SIZE==-12. ;SIZE OF A LEVEL TABLE IN BYTES ; ;BIT MASKS FOR FLAG WORDS ; FL.INT==1 ;DATA SECTION CONTAINS INTEGERS FL.FLT==2 ;DATA SECTION CONTAINS REALS FL.ASC==4 ;DATA SECTION CONNTAINS ASCII DATA FL.WRT==10 ;FILE IS OPENED FOR WRITE ACCESS FL.FKY==20 ;BIT MASK FOR KEYS FOUND THIS SEARCH FL.MOD==40 ;BIT MASK FOR CURENT BLOCK MODIFIED FL.ACT==100 ;BIT FOR INDICATING ACTIVE LEVEL FL.COR==200 ;FILE MAY BE CORRUPTED ; ;DATA BLOCK OFSETS ; DB.SIZE==512. ;SIZE OF A DATA BLOCK DB.PNB==510. ;POINTER TO NEXT BLOCK DB.BLT==508. ;BLOCK TYPE WORD 'RT'==ROOT 'DB'==DATA 'FR'==FREE BLOCK DB.LLA==506. ;LAST LEGAL ADDRESS FOR ELEMENTS IN BLOCK ; ;ERROR RETURN CODES ; ER.NRB==-100. ;NOT A ROOT BLOCK ER.NWA==-99. ;NOT WRITE ACCESSED ER.FAIL==0 ;CAN'T PERFORM OPERATION FOR OTHER REASON THAN ABOVE ER.NMK==-1 ;THERE ARE NO MORE KEYS TO MATCH YOUR PATTERN .END