*DECK DBBLD01 
USETEXT CCTTEXT 
USETEXT DBTEXT
USETEXT DNTEXT
PROC BUILD$01;
# 
THIS PROCEDURE CREATES THE LEVEL 01 ITEM FOR THE RECORD ENTRY.
ALSO THE NEWLY CREATED DNAT IS APPENDED TO THE DATARECNAME
AUX TABLE CHAIN POINTED TO BY THE FN$DRECPTR IN THE ASSOCIATED
FNAT. 
IF NO CHAIN YET EXISTS, THIS PROCEDURE SETS IT UP.
# 
*CALL DNATVALS
*CALL FNAT1 
*CALL FNATVALS
*CALL AUXT1 
*CALL AUXTVALS
*CALL DEBUGVARS 
*CALL GETSET
*CALL TABLNAMES 
  
ITEM LNEXTPTR;  #HOLDS AX$TNEXTPTR DURING CHAIN SEARCH# 
  
START("BUILD$01") 
  
#SETUP THE 01 DNAT ITEM#
$S(DN$LEVEL,DNAT$,DNAT$PTR,1);
$S(DN$TERMPER,DNAT$,DNAT$PTR,1);
$S(DN$LINE,DNAT$,DNAT$PTR,RSOURCELINE); #SAVE SUBSCHEMA LINE# 
$S(DN$SUBSCHEMA,DNAT$,DNAT$PTR,1);  #SET SS SOURCE FLAG#
$S(DN$SSORD,DNAT$,DNAT$PTR,RORDINAL);  #SAVE SS ORDINAL#
  
#GET PTR TO DATARECNAME AUX ENT CHAIN#
SETI("AUXT$PTR",AUXT$PTR,$G(FN$DRECPTR,FNAT$,FNAT$PTR)) 
  
SETI("CCTAUXTLEN",CCTAUXTLEN,CCTAUXTLEN+1)
  
  $S(AX$TNEXTPTR,AUX$,CCTAUXTLEN,AUXT$PTR); #NEW -> 1ST IN CHN# 
  $S(FN$DRECPTR,FNAT$,FNAT$PTR,CCTAUXTLEN); #FNAT -> NEW# 
  IV$($SET$,"FN$DRECPTR",$G(FN$DRECPTR,FNAT$,FNAT$PTR)) 
  IV$($SET$,"FNAT$PTR",FNAT$PTR)
  IV$($SET$,"CCTAUXTLEN",CCTAUXTLEN)
  
#CREATE NEW AUX ENTRY#
$S(AX$TTYPE,AUX$,CCTAUXTLEN,DATARECNAME); 
$S(AX$DATARCNAM,AUX$,CCTAUXTLEN,DNAT$PTR);
$S(AX$DATARCORD,AUX$,CCTAUXTLEN,RORDINAL);
  
#UPDATE POINTERS# 
SETI("DNAT$PTR",DNAT$PTR,DNAT$PTR+1)
  
FINIS("BUILD$01") 
TERM
