*DECK DBBASICF
USETEXT CCTTEXT 
USETEXT DBTEXT
PROC BASIC$F; 
*CALL DEBUGVARS 
*CALL GETSET
*CALL TABLNAMES 
*CALL FNAT1 
*CALL FNATVALS
*CALL,DBSAT 
  
XREF ITEM SATINDX I;
  
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 
THE FOLLOWING ARRAY MUST BE UPDATED AND CHECKED WHEN THE 6RM
VALUE FOR THE NEW FILE ORGANISATIONS IS KNOWN.
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#
  
ARRAY [7]; ITEM FO =
  [SEQUENTIAL,WORD$ADDR,RELATIVE,INDEXED,ORGERR,DIRECT, 
  ACTUAL$KEY,ORGERR]; 
  
#LABEL TYPE CONVERSION ARRAY# 
ARRAY [3]; ITEM LT =
    [STANDARD,DATA$NAME,OMITTED,LABELERR];
  
#THIS PROCEDURE SETS THE BASIC FNAT FIELDS
# 
START("BASIC$F")
CONTROL IFNQ CB5$CDCS,"NO"; 
    IF $G(SATRELFLAG,SAT$,SATINDX) EQ 0 
    THENB("AREA - NOT RELATION")
  
#$S(FN$MFILPOS,FNAT$,FNAT$PTR,FITPNO[1])(SEMI)
ENABLE AFTER FITPNO DEFINED IN DARVAR#
$S(FN$ORG,FNAT$,FNAT$PTR,FO[DFITFO]);  #FILE ORGANIZATION#
    ENDIF 
  $S(FN$PROCMODE,FNAT$,FNAT$PTR,SEQACCESS); 
  
IF $G(FN$ORG,FNAT$,FNAT$PTR) EQ SEQUENTIAL
  THENB("ACCESS MODE MUST BE SEQUENTIAL") 
  $S(FN$ACCESS,FNAT$,FNAT$PTR,SEQACCESS); 
  ELSEB("SET TO DYNAMIC") 
  $S(FN$ACCESS,FNAT$,FNAT$PTR,DYNAMIC); 
ENDIF 
$S(FN$SSCHEMA,FNAT$,FNAT$PTR,1);
$S(FN$AREAORD,FNAT$,FNAT$PTR,AORDINAL); 
  
$S(FN$LABELREC,FNAT$,FNAT$PTR,OMITTED);                                 000291
IF FITCM[1] EQ 0
  THENB("RECORDING MODE IS BINARY") 
  $S(FN$RECMODE,FNAT$,FNAT$PTR,BINMODE);
  ELSEB("RECORDING MODE IS DECIMAL")
  $S(FN$RECMODE,FNAT$,FNAT$PTR,DECMODE);
ENDIF 
$S(FN$VBITS,FNAT$,FNAT$PTR,$G(SATFDLBITS,SAT$,SATINDX));
CONTROL IFNQ CB5$CDCS,"CDCS1";
$S(FN$EXTERNAL,FNAT$,FNAT$PTR,1); 
CONTROL FI; 
CONTROL IFEQ CB5$CDCS,"CDCS1";
IF (CCTSUBPROGR AND NOT CCTMAINSUB) OR $G(SATFDL,SAT$,SATINDX) NQ 0 
THENB("SHARED AREA OR RELATION")
    $S(FN$EXTERNAL,FNAT$,FNAT$PTR,1); 
ENDIF 
CONTROL FI; 
CONTROL FI; 
FINIS("BASIC$F")
TERM
