*DECK RCFGEN
*WIDTH,80,0 
.PROC,RCFGEN*I, 
I"INPUT FILE"=(*F,*K=COMPILE,*N=INPUT), 
L"LISTING FILE"=(*F,0,*K=OUTPUT,*N=OUTPUT), 
O"BINARY OUTPUT FILE"=(*F,0,*K=RCFILE,*N=RCFILE), 
LO"LIST OPTIONS"=(0,ALL=$$$$$$$$$$,*K=CFGX,*N=0,*A),
RN"RECORD NAME"=(0,*F,*K=0,*N=0).COM. 
RETURN(ZZZZZRC) 
COPYBR(I,ZZZZZRC) 
REWIND(ZZZZZRC) 
.IF,$_RN_$.EQ.$0$,L1. 
.IF,((HID.AND.770000B).EQ.0),L2.
SET,R1=($M$*10000B).OR.HID. 
.ELSE,L2. 
SET,R1=HID. 
.ENDIF,L2.
.ENDIF,L1.
BEGIN(COMPASS,ZZZZZRD,R1+B) 
RETURN(ZZZZZRC,ZZZZZRD) 
REVERT.  RCFGEN COMPLETE. 
EXIT(S) 
REVERT(ABORT)  RCFGEN ABORTED.
.DATA,ZZZZZRD 
.PROC,COMPASS,HOSTPID.
#.EX.COMPASS(#I=ZZZZZRD,X=ZZZZZRC,#L=L,#LO=LO,B=O,A,S=0,PC=HOSTPID) 
.EOR
          IDENT RCFGEN,0
          LIST   -#B,-#L,-#N,-#R
          ABS 
          NOLABEL 
  
          TITLE  RCFGEN - ASSEMBLE CONFIGURATION TABLES FOR RHF.
**        COPYRIGHT (C) CONTROL DATA CORPORATION, 1982, 1984. 
*         ALL RIGHTS RESERVED.
  
*         GENERATE PREFIX TABLE.
  
          VFD    12/7700B,12/0016B,36/0 
.IF,$_RN_$.EQ.$0$,DEFRN.
          BASE   OCTAL
 DD       SET    "PCOMMENT" 
          BASE   *
          VFD    18/3LRCF,18/DD,6/0,18/0
.ELSE,DEFRN.
          VFD    42/0L_RN_,18/0 
.ENDIF,DEFRN. 
 DD       MICRO  2,8,$"DATE"$ 
          CON    10H"DD"
 TT       MICRO  2,9,$"TIME"$ 
          CON    10H"TT"
.IF,SYS.EQ.NOSB,NBE.
          CON    10HNOS/BE 1
.ELSE,NBE.
          CON    10HNOS 2 
.ENDIF,NBE. 
 PRFXVER  BSS    1
          CON    10H"MODLEVEL"
          CON    1HT
  DIS 7,COM 
  
*         GENERATE 50 TABLE.
  
          VFD    12/5000B,6/02B,6/02B,18/0,18/0 
  
*         GENERATE HEADER INFORMATION.
  
.IF,$_RN_$.EQ.$0$,DEFRN.
          VFD    18/3LRCF,18/DD,6/0,18/0
.ELSE,DEFRN.
          VFD    42/0L_RN_,18/0 
.ENDIF,DEFRN. 
          CON    10H"DD"
          CON    10H"TT"
  DIS 7,COM 
          BSSZ   5
  
*         GENERATE POINTER AREA.
  
  
*CALL,COMRPTRS
  
*         GENERATE RCFILE DATA. 
  
          LOC    0                 ALL DATA RELATIVE TO 0 
  
  
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                         * 
*  THE FOLLOWING SYMBOLS MUST HAVE THE SAME VALUES AS THE * 
*  CORRESPONDING SYMBOLS IN RHF COMMON DECK  * COMRNET *  * 
*                                                         * 
*                              COMRNET SYMBOL DEFINITION  * 
*                              -------------------------  * 
  
 NAD$LEN  EQU    5             DEF NAD$LENGTH  # 5 #
  
*                                                         * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
  
**        MACRO DEFINITIONS 
  
* 
*         APPLICATION TABLE 
* 
  
          PURGMAC APPL
 APPL     MACROE NAME,ENABLED,MXCONS,MXCOPYS,SVR,ASTART,SYSORG
 L1       IFEQ   .STATE,0 
 .STATE   SET    1                 SET APPLICATION STATE
 FAPLPTR  BSS    0                 FIRST APPLICATION ADDRESS
 L1       ELSE
 A        ERRNZ  .STATE-1          MACRO CALLS OUT OF ORDER 
 L1       ENDIF 
 L1       IFC    EQ,*NAME*MHF*
 .MHF     SET    1                 MHF DEFINED
 L1       ENDIF 
 L1       IFC    EQ,*NAME**,1 
          ERR                      N#_AME IS A REQUIRED PARAMETER 
 .EN      SET    1                 DEFAULT TO ENABLED 
 L1       IFC    NE,*ENABLED**
 L2       IFC    EQ,*ENABLED*NO*
 .EN      SET    0                 DISABLED 
 L2       ELSE
          IFC    NE,*ENABLED*YES*,1 
 A        ERR                      ILLEGAL E#_NABLED PARAMETER
 L2       ENDIF 
 L1       ENDIF 
 L1       IFC    EQ,*NAME*MLTF* 
 L2       IFNE   .EN,0
 .EN      SET    0                 MLTF DISABLED
1  ERR    *APPL NA#_ME=MLTF* NO LONGER NEEDED.  SET TO *DISABLED*.
 L2       ENDIF 
 L1       ENDIF 
 .SV      SET    0                 DEFAULT TO NOT SERVER
 L1       IFC    NE,*SVR**
 L2       IFC    EQ,*SVR*YES* 
 .SV      SET    1                 SERVER 
 L2       ELSE
          IFC    NE,*SVR*NO*,1
A         ERR                      ILLEGAL S#_VR PARAMETER
 L2       ENDIF 
 L1       ENDIF 
 .AS      SET    0                 DEFAULT TO NOT AUTOSTART 
 L1       IFC    NE,*ASTART** 
 L2       IFC    EQ,*ASTART*YES*
 .AS      SET    1                 AUTOSTART
 L2       ELSE
          IFC    NE,*ASTART*NO*,1 
 A        ERR                      ILLEGAL A#_START PARAMETER 
 L2       ENDIF 
 L1       ENDIF 
 .SY      SET    1                 DEFAULT TO SYSTEM ORIGIN REQUIRED
 L1       IFC    NE,*SYSORG** 
 L2       IFC    EQ,*SYSORG*NO* 
 .SY      SET    0                 NOT SYSTEM ORIGIN
 L2       ELSE
          IFC    NE,*SYSORG*YES*,1
 A        ERR                      ILLEGAL S#_YSORG PARAMETER 
 L2       ENDIF 
 L1       ENDIF 
 .CPYS    SET    1                 DEFAULT TO 1 COPY
 L1       IFC    NE,*MXCOPYS**
 .CPYS    SET    MXCOPYS
 L1       ENDIF 
          ERRNG  128-.CPYS         M#_XCOPYS MUST BE .LT.128
 .CONS    SET    1                 DEFAULT TO 1 CONNECTION
 L1       IFC    NE,*MXCONS** 
 .CONS    SET    MXCONS 
 L1       ENDIF 
          ERRNG  128-.CONS         M#_XCONS MUST BE .LT.128 
          ERRZR  .CONS             M#_XCONS MUST BE .GT. 0
 L1       DUP    .CPYS
 N$APLS   SET    N$APLS+1          INCREMENT NUMBER OF APPLICATIONS 
 .LAPL    SET    *
          VFD    42/0H#_NAME,1/.EN,1/.SV,1/.AS,1/.SY,14/0 
          VFD    60/0 
          VFD    12/.CONS,12/1,12/.CONS,24/0
          VFD    60/0 
          VFD    60/0 
 L2       DUP    .CONS
          VFD    60/0 
          VFD    60/0 
          VFD    60/0 
 L2       ENDD
 L1       ENDD
          ENDM
  
* 
*         REMOTE MAINFRAME HEADER 
* 
*         (NOTE - IF APPLICATION MHF IS NOT ALREADY DEFINED, THE FIRST
*                 NPID MACRO CALL DEFINES MHF (ENABLED, AUTO-START).) 
* 
  
          PURGMAC NPID
 NPID     MACROE PID,ENABLED,MFTYPE 
 .PIDMIC  MICRO  1,,/PID/ 
 .PIDLEN  MICCNT .PIDMIC
          ERRNZ  .PIDLEN-3         P#_ID MUST BE 3 CHARACTERS LONG
 .CUR     DECMIC .CNT,3            CURRENT LABEL COUNT LETTERS
 .CNT     SET    .CNT+1            INCREMENT COUNT
 .NXT     DECMIC .CNT,3            NEXT LABEL COUNT LETTERS 
 L1       IFEQ   .STATE,1 
 L2       IFEQ   .MHF,0 
          APPL NAME=MHF,ASTART=YES  DEFINE MHF APPLICATION
 L2       ENDIF 
 LAPLPTR  EQU    .LAPL             LAST APPLICATION TABLE ADDRESS 
          VFD    42/NDTLWA-NDTPTR,18/NDTPTR  NDT LENG/RELOCATION ADDR 
 NDTPTR   BSS    0                 NETWORK DESCRIPTION TABLE
 L1       ELSE
 A        ERRNZ  .STATE-4          MACRO CALLS OUT OF ORDER 
 .NLD".CUR" EQU  .NLID".CUR"
 .NPT".CUR" EQU  .NPTH".CUR"
 L1       ENDIF 
 .STATE   SET    2                 SET HEADER STATE 
 .EN      SET    1                 DEFAULT TO ENABLED 
 L1       IFC    NE,*ENABLED**
 L2       IFC    EQ,*ENABLED*NO*
 .EN      SET    0                 DISABLED 
 L2       ELSE
          IFC    NE,*ENABLED*YES* 
 A        ERR                      ILLEGAL E#_NABLED PARAMETER
 L2       ENDIF 
 L1       ENDIF 
 N$IDS    SET    N$IDS+1           INCREMENT NUMBER OF IDENTIFIERS
 .PD".CUR" BSS   0                 LABEL FOR CURRENT PID HEADER 
          VFD    18/0H#_PID,5/0,1/.EN,18/0,18/.PD".NXT" 
          VFD    42/0H#_MFTYPE,18/.LD".NXT" 
          VFD    12/0,12/.NLD".NXT",12/.NPT".NXT",6/0,18/.PTH".NXT" 
          ENDM
  
* 
*         LID ENTRY 
* 
  
          PURGMAC NLID
 NLID     MACROE LID,ENABLED
 .LIDMIC  MICRO  1,,/LID/ 
 .LIDLEN  MICCNT .LIDMIC
          ERRNZ  .LIDLEN-3         LI#_D MUST BE 3 CHARACTERS LONG
 .NXT     DECMIC .CNT,3 
 L1       IFEQ   .STATE,2 
 .STATE   SET    3                 SET LID STATE
 .NLID".NXT" SET 1                 SET NUMBER OF LIDS TO ONE
 .LD".NXT" BSS   0                 LABEL OF FIRST LID 
 L1       ELSE
 A        ERRNZ  .STATE-3          MACRO CALLS OUT OF ORDER 
 .NLID".NXT" SET .NLID".NXT"+1     INCREMENT NUMBER OF LIDS 
 L1       ENDIF 
 .EN      SET    1                 DEFAULT TO ENABLED 
 L1       IFC    NE,*ENABLED**
 L2       IFC    EQ,*ENABLED*NO*
 .EN      SET    0                 DISABLED 
 L2       ELSE
          IFC    NE,*ENABLED*YES*,1 
 A        ERR                      ILLEGAL E#_NABLED PARAMETER
 L2       ENDIF 
 L1       ENDIF 
 N$IDS    SET    N$IDS+1           INCREMENT NUMBER OF IDENTIFIERS
          VFD    11/0,1/.EN,18/0H#_LID
          ENDM
  
* 
*         PATH ENTRY
* 
  
          PURGMAC PATH
 PATH     MACROE LNAD,RNAD,ENABLED,LT,RT,AC 
          LOCAL  A
 .NXT     DECMIC .CNT,3 
.IF,SYS.EQ.NOS,NOSOS
 NOS      IFEQ   .STATE,2          IF NLID OMITTED
 .STATE   SET    3
 .NLID".NXT" SET 0                 SET NUMBER OF LIDS TO ZERO 
 .LD".NXT" BSS   0                 LABEL OF PSEUDO LID
 NOS      ENDIF 
.ENDIF,NOSOS. 
 L1       IFEQ   .STATE,3 
 .STATE   SET    4                 SET PATH STATE 
 .NPTH".NXT" SET 1                 SET NUMBER OF PATHS TO ONE 
 .PTH".NXT" BSS  0                 LABEL OF FIRST PATH
 L1       ELSE
 A        ERRNZ  .STATE-4          MACRO CALLS OUT OF ORDER 
 .NPTH".NXT" SET .NPTH".NXT"+1     INCREMENT NUMBER OF PATHS
 L1       ENDIF 
 .EN      SET    1                 DEFAULT TO ENABLED 
 L1       IFC    NE,*ENABLED**
 L2       IFC    EQ,*ENABLED*NO*
 .EN      SET    0                 DISABLED 
 L2       ELSE
          IFC    NE,*ENABLED*YES*,1 
 A        ERR                      ILLEGAL E#_NABLED PARAMETER
 L2       ENDIF 
 L1       ENDIF 
          RMT 
 A        EQU    LNAD-NADPTR       DEFER EQUATE UNTIL SYMBOLS DEFINED 
          RMT 
 .CUR     DECMIC .CNT-1,3 
 .#L       BINCVT LT,#L#_T
 .R       BINCVT RT,R#_T
 N$PTHS   SET    N$PTHS+1          INCREMENT NUMBER OF PATHS
          VFD    1/.EN,9/0,4/.R,4/.#L,6/A/NAD$LEN,18/RNAD,18/.PD".CUR"
          VFD    32/0,16/0###_AC,12/N$PTHS
          ENDM
  
* 
*         LOCAL NAD ENTRY 
* 
  
          PURGMAC LNAD
 LNAD     MACROE CH,MAXNDRS,DEDICATE,CMPATHS,CMBUFFS,CWIPNAM,CWTYPE,AUTO
,LOAD,AUTODUMP,LOG,TRACE
 L1       IFEQ   .STATE,4 
 .STATE   SET    5                 SET LOCAL NAD STATE
 .NXT     DECMIC .CNT,3 
 .PD".NXT" EQU   0                 END PID HEADERS
 .NLD".NXT" EQU  .NLID".NXT"
 .NPT".NXT" EQU  .NPTH".NXT"
 .NUMLNAD SET    1                 SET NUMBER OF LOCAL NADS TO ONE
 NADPTR   BSS    0                 LABEL OF FIRST LOCAL NAD 
 L1       ELSE
 A        ERRNZ  .STATE-5          MACRO CALLS OUT OF ORDER 
 .NUMLNAD SET    .NUMLNAD+1        INCREMENT NUMBER OF LOCAL NADS 
 L1       ENDIF 
 .MXNDR   SET    3                 DEFAULT TO 3 NDRS
 L1       IFC    NE,*MAXNDRS**
 .MXNDR   SET    MAXNDRS
 L1       ENDIF 
A         ERRMI  MAX$NDRS-.MXNDR
 .DE      SET    1                 DEFAULT TO DEDICATED 
 L1       IFC    NE,*DEDICATE** 
 L2       IFC    EQ,*DEDICATE*NO* 
 .DE      SET    0                 NOT DEDICATED
 L2       ELSE
          IFC    NE,*DEDICATE*YES*,1
 A        ERR                      ILLEGAL D#_EDICATED PARAMETER
 L2       ENDIF 
 L1       ENDIF 
 .CMP     SET    0
 .CMPATH  SET    CMPATHS
 L1       IFC    NE,*CMPATHS**
 L2       IFGE   .CMPATH,0
 L3       IFLE   .CMPATH,63 
 .CMP     SET    .CMPATH           SET CONVERT MODE PATHS 
 L3       ELSE
 A        ERR                      ILLEGAL C#_MPATHS VALUE
 L3       ENDIF 
 L2       ELSE
 A        ERR                      ILLEGAL C#_MPATHS VALUE
 L2       ENDIF 
 L1       ENDIF 
 .CMB     SET    0                 INITIALIZE CONVERT BUFFERS 
 .CMBUFF  SET    CMBUFFS
 L1       IFC    NE,*CMBUFFS**
 L2       IFGE   .CMBUFF,0
 L3       IFLE   .CMBUFF,63 
 .CMB     SET    .CMBUFF           SET CONVERT MODE BUFFERS 
 L3       ELSE
 A        ERR                      ILLEGAL C#_MBUFFS VALUE
 L3       ENDIF 
 L2       ELSE
 A        ERR                      ILLEGAL C#_MBUFFS VALUE
 L2       ENDIF 
 L1       ENDIF 
 .AL      SET    1                 DEFAULT TO AUTO_LOAD = YES 
 L1       IFC    NE,*AUTOLOAD** 
 L2       IFC    EQ,*AUTOLOAD*NO* 
 .AL      SET    0                 AUTO_LOAD = NO 
 L2       ELSE
          IFC    NE,*AUTOLOAD*YES*,1
 A        ERR                      ILLEGAL AUTO#_LOAD PARAMETER 
 L2       ENDIF 
 L1       ENDIF 
 .AD      SET    0                 DEFAULT TO NOT AUTODUMP
 L1       IFC    NE,*AUTODUMP** 
 L2       IFC    EQ,*AUTODUMP*YES*
 .AD      SET    1                 AUTODUMP 
 L2       ELSE
          IFC    NE,*AUTODUMP*NO*,1 
 A        ERR                      ILLEGAL AUTO#_DUMP PARAMETER 
 L2       ENDIF 
 L1       ENDIF 
 .CWTRACE SET    0                 USE DEFAULT TRACE OPTION 
 L1       IFC    NE,*TRACE**
 L2       IFC    EQ,*TRACE*NO*
 .CWTRACE SET    1                 TRA_CE = NO
 L1       SKIP
 L2       ENDIF 
 L2       IFC    EQ,*TRACE*YES* 
 .CWTRACE SET    2                 TRA_CE = YES 
 L1       SKIP
 L2       ENDIF 
 L2       IFC    EQ,*TRACE*FULL*
 .CWTRACE SET    3                 TRA_CE = FULL
 L1       SKIP
 L2       ENDIF 
 A        ERR                      ILLEGAL TRA#_CE PARAMETER
 L1       ENDIF 
 L1       IFC    EQ,*CWTYPE** 
 .CWT     MICRO  1,5,*3L170*
 L1       ELSE
 .CWT     MICRO  1,5,*3L#_CWTYPE* 
 L1       ENDIF 
 .LOG     SET    1                 ENABLE LOCAL NAD ERROR LOGGING 
 L1       IFC    NE,*LOG**
 L2       IFC    EQ,*LOG*NO*
 .LOG     SET    0
 L2       ELSE
          IFC    NE,*LOG*YES*,1 
 A        ERR                      ILLEGAL L#_OG PARAMETER
 L2       ENDIF 
 L1       ENDIF 
 .NADORD  SET    *-NADPTR 
          VFD    1/.DE,5/12B,6/0,6/.CMB,6/.CMP,6/0,6/.MXNDR,6/.NADORD/NA
,D$LEN,6/CH#_B,12/0 
          VFD    60/0 
          VFD    1/0,1/.AL,1/.AD,3/0,6/0,2/.CWTRACE,1/.LOG,45/0 
          VFD    60/0 
 L1       IFC    EQ,*CWIPNAM**
          VFD    42/0,18/".CWT" 
 L1       ELSE
          VFD    42/0L#_CWIPNAM,18/".CWT" 
 L1       ENDIF 
          ENDM
  
* 
*         REMOTE NAD ENTRY
* 
  
          PURGMAC RNAD
 RNAD     MACROE ND,DD,LOG,CWIPNAM,CWTYPE,AUTOLOAD,AUTODUMP,TRACE 
 L1       IFEQ   .STATE,5 
 .STATE   SET    6                 SET REMOTE NAD STATE 
 L1       ELSE
 A        ERRNZ  .STATE-6          MACRO CALLS OUT OF ORDER 
 L1       ENDIF 
 .LOG     SET    0
 L1       IFC    NE,*LOG**
 L2       IFC    EQ,*LOG*YES* 
 .LOG     SET    1
 L2       ELSE
          IFC    NE,*LOG*NO*,1
 A        ERR                      ILLEGAL LOG PARAMETER
 L2       ENDIF 
 L1       ENDIF 
 .AL      SET    0                 DEFAULT TO NOT AUTOLOAD
 L1       IFC    NE,*AUTOLOAD** 
 L2       IFC    EQ,*AUTOLOAD*YES*
 .AL      SET    1                 AUTOLOAD 
 L2       ELSE
          IFC    NE,*AUTOLOAD*NO*,1 
 A        ERR                      ILLEGAL AUTO#_LOAD PARAMETER 
 L2       ENDIF 
 L1       ENDIF 
 .AD      SET    0                 DEFAULT TO NOT AUTODUMP
 L1       IFC    NE,*AUTODUMP** 
 L2       IFC    EQ,*AUTODUMP*YES*
 .AD      SET    1                 AUTODUMP 
 L2       ELSE
          IFC    NE,*AUTODUMP*NO*,1 
 A        ERR                      ILLEGAL AUTO#_DUMP PARAMETER 
 L2       ENDIF 
 L1       ENDIF 
 .CWTRACE SET    0                 USE DEFAULT TRACE OPTION 
 L1       IFC    NE,*TRACE**
 L2       IFC    EQ,*TRACE*NO*
 .CWTRACE SET    1                 TRA_CE = NO
 L1       SKIP
 L2       ENDIF 
 L2       IFC    EQ,*TRACE*YES* 
 .CWTRACE SET    2                 TRA_CE = YES 
 L1       SKIP
 L2       ENDIF 
 L2       IFC    EQ,*TRACE*FULL*
 .CWTRACE SET    3                 TRA_CE = FULL
 L1       SKIP
 L2       ENDIF 
 A        ERR                      ILLEGAL TRA#_CE PARAMETER
 L1       ENDIF 
 L1       IFC    EQ,*CWTYPE** 
 .CWT     MICRO  1,1,*0*
 L1       ELSE
 .CWT     MICRO  1,5,*3L#_CWTYPE* 
 L1       ENDIF 
          VFD    8/0###_ND,4/0###_DD,1/.LOG,47/0
          VFD    1/0,1/.AL,1/.AD,3/0,6/0,2/.CWTRACE,1/.LOG,45/0 
          VFD    60/0 
 L1       IFC    EQ,*CWIPNAM**
          VFD    42/0,18/".CWT" 
 L1       ELSE
          VFD    42/0L#_CWIPNAM,18/".CWT" 
 L1       ENDIF 
          ENDM
  
* 
*         CONVERT BINARY CHARACTERS TO BINARY VALUE 
* 
  
          PURGMAC BINCVT
          MACRO  BINCVT,OUT,IN,NAME 
 .VALUE   SET    IN 
 .RESULT  SET    0
 L1       IFGE   .VALUE,1000
 .RESULT  SET    10B
 .VALUE   SET    .VALUE-1000
 A        ERRPL  .VALUE-1000       ILLEGAL BINARY VALUE NAME
 L1       ENDIF 
 L1       IFGE   .VALUE,100 
 .RESULT  SET    .RESULT+4
 .VALUE   SET    .VALUE-100 
 A        ERRPL  .VALUE-100        ILLEGAL BINARY VALUE NAME
 L1       ENDIF 
 L1       IFGE   .VALUE,10
 .RESULT  SET    .RESULT+2
 .VALUE   SET    .VALUE-10
 A        ERRPL  .VALUE-10         ILLEGAL BINARY VALUE NAME
 L1       ENDIF 
          IFEQ   .VALUE,1,1 
 .RESULT  SET    .RESULT+1
 A        ERRPL  .VALUE-2          ILLEGAL BINARY VALUE NAME
 OUT      SET    .RESULT
          ENDM
  
* 
*         MAXIMUM NUMBER OF NDRS
* 
  
          PURGMAC LNDR
 LNDR     MACROE MAXNDRS
 L1       IFEQ   .STATE,0 
 MAX$NDRS SET    MAXNDRS
          ERRZR  MAX$NDRS          M#_AXNDRS MUST BE .GT. 0 
 L1       ELSE
 A        ERR                LNDR CONFIGURATION STATEMENT OUT OF ORDER
 L1       ENDIF 
          ENDM
  
* 
*         RHF TRACE MODE
* 
  
          PURGMAC DEBUG 
 DEBUG    MACROE TRACE
 L1       IFC    NE,*TRACE**
 L2       IFC    EQ,*TRACE*NO*
 TRACEFLG SET    0
 L2       ELSE
 L3       IFC    EQ,*TRACE*YES* 
 TRACEFLG SET    -1 
 L3       ELSE
 A        ERR    ILLEGAL T#_RACE PARAMETER
 L3       ENDIF 
 L2       ENDIF 
 L1       ENDIF 
          ENDM
  
* 
*         UCP CHARGES FOR RHF CALL
* 
  
          PURGMAC CHARGE
 CHARGE   MACROE TYPE,CPA,CPB,IO,CMFL,PP
 .CHA     SET    TYPE 
          IFNE   .CHA,1,2          IF NOT TYPE 1
          IFNE   .CHA,2,1            AND NOT TYPE 2 
 A        ERR    ILLEGAL T#_YPE PARAMETER 
 .CHA     DECMIC .CHA 
          BASE   DECIMAL
          IFC    NE,*CPA**,1
 CH".CHA"C#_PA  SET     CPA 
          IFC    NE,*CPB**,1
 CH".CHA"C#_PB  SET     CPB 
          IFC    NE,*IO**,1 
 CH".CHA"#I#_#O   SET     IO
          IFC    NE,*CMFL**,3 
          BASE   OCTAL
 CH".CHA"C#_MFL SET     CMFL
          BASE   *
          IFC    NE,*PP**,1 
 CH".CHA"P#_P   SET     PP
  
          BASE   *
          ENDM
  
  
  
 .STATE   SET    0                 INITIALIZE STATE 
 .CNT     SET    0                 INITIALIZE COUNT 
 .MHF     SET    0                 INITIALIZE MHF (NOT DEFINED) 
 N$APLS   SET    0                 INITIALIZE NUMBER OF APPLICATIONS
 N$IDS    SET    0                 INITIALIZE NUMBER OF IDENTIFIERS 
 .NUMLNAD SET    0                 INITIALIZE NUMBER OF LOCAL NADS
 N$PTHS   SET    0                 INITIALIZE NUMBER OF PATHS 
 MAX$NDRS SET    3                 INITIALIZE NUMBER OF NDRS
 TRACEFLG SET    0                 DEFAULT TRACE MODE (-1=ON,0=OFF) 
 CH1CPA   SET    2                 DEFAULT TYPE 1 CPA CHARGE
 CH1CPB   SET    0                 DEFAULT TYPE 1 CPB CHARGE
 CH1IO    SET    0                 DEFAULT TYPE 1 IO  CHARGE
 CH1CMFL  SET    10B               DEFAULT TYPE 1 CM  CHARGE
 CH1PP    SET    0                 DEFAULT TYPE 1 PP  CHARGE
 CH2CPA   SET    10D               DEFAULT TYPE 2 CPA CHARGE
 CH2CPB   SET    0                 DEFAULT TYPE 2 CPB CHARGE
 CH2IO    SET    0                 DEFAULT TYPE 2 IO  CHARGE
 CH2CMFL  SET    10B               DEFAULT TYPE 2 CM  CHARGE
 CH2PP    SET    0                 DEFAULT TYPE 2 PP  CHARGE
 FWA      BSS    0
  
          LIST   #L,#X
          XTEXT                    READ CONFIGURATION FROM LFN
          LIST   *
  
* 
*     CONTROL STATEMENTS FOR APPLICATION PROGRAM STARTUP FOLLOW:  
* 
  
          IF     -DEF,JOBPTR
 JOBPTR   DIS    ,*JOBAB,T77777.* 
 APLPTR   DIS    ,*APLNAMEANDPARAMETERS*
.IF,SYS.EQ.NOS,NOS. 
          DIS    ,*RETURN(OUTPUT)*
          DIS    ,*EXIT.* 
          DIS    ,*DMD.*
          DIS    ,*DMD(0,50000)*
          DIS    ,*IF,(EF.NE.RRE).AND.(EF.NE.DRE).AND.(EF.NE.OKE)*
          DIS    ,* .AND.(EF.NE.SSE).AND.(EF.NE.RAE),P.*
          DIS    ,*WRITEF(OUTPUT)*
          DIS    ,*REQUEST(PAUSE) RHF SPOT ABORTED, TYPE DROP TO PRINT.*
          DIS    ,*ENDIF,P.*
          DIS    ,*RETURN(OUTPUT) KILL LISTING. * 
.ELSE,NOS.
          DIS    ,*APR(11)* 
          DIS    ,*EXIT(S)* 
          DIS    ,*DMP.*
          DIS    ,*DMD(0,50000)*
          DIS    ,*IF,(EF.NE.RRE).AND.(EF.NE.OKE),P.* 
          DIS    ,/ROUTE(OUTPUT,DEF,#ST=*,DO=*)/
          DIS    ,*PAUSE. RHF SPOT ABORTED, TYPE DROP TO PRINT.*
          DIS    ,*ENDIF,P.*
          DIS    ,*APR(11) KILL LISTING. *
.ENDIF,NOS. 
          ENDIF 
 EOJ      BSS    0
 NDTLWA   BSS    0
  
* 
*         ALLOCATE ITEMS
* 
  
          ORG    MAXNDRS
          VFD    60/MAX$NDRS
          ORG    NUMNADS
          VFD    60/.NUMLNAD
          ORG    TRACE
          VFD    60/TRACEFLG
          ORG    PASSWD 
          VFD    42/0LPASSWRD,18/0
          ORG    ACCNT1            CHARGES FOR TYPE 1 UCP CALLS 
          CON    CH1CPA*4          CPA
          CON    CH1CPB*4          CPB
          CON    CH1IO*4           IO 
          CON    CH1CMFL*100B      CM 
          CON    0                 ECS
          CON    CH1PP*4           PP 
          BSSZ   3
          ORG    ACCNT2            CHARGES FOR TYPE 2 UCP CALLS 
          CON    CH2CPA*4          CPA
          CON    CH2CPB*4          CPB
          CON    CH2IO*4           IO 
          CON    CH2CMFL*100B      CM 
          CON    0                 ECS
          CON    CH2PP*4           PP 
          BSSZ   3
  
* 
*         THE ORDER OF THE FOLLOWING ITEMS MUST BE PRESERVED
*         FOR THE OPERATOR INTERFACE CODE.
* 
  
          ORG    NUMAPLS
          VFD    60/N$APLS
          ORG    NUMIDS 
          VFD    60/N$IDS 
          ORG    NUMPTHS
          VFD    60/N$PTHS
  
          ORG    NDRCOM 
          VFD    60/377777B        STORAGE RESERVED IN /COMRNDR/
 L1       IF     -DEF,FAPLPTR 
   ERR    RCFGEN - NO *APPL* DIRECTIVES WERE PROCESSED. 
 L1       ELSE
          ORG    FAPLADR
          VFD    60/FAPLPTR 
 L1       ENDIF 
 L1       IF     -DEF,LAPLPTR 
   ERR    RCFGEN - NO *NPID* DIRECTIVES WERE PROCESSED. 
 L1       ELSE
          ORG    LAPLADR
          VFD    60/LAPLPTR 
 L2       IF     -DEF,NDTPTR
   ERR    RCFGEN - NO *NPID* DIRECTIVES WERE PROCESSED. 
 L2       ELSE
          ORG    NDTADDR
          VFD    60/NDTPTR
 L2       ENDIF 
 L1       ENDIF 
 L1       IF     -DEF,NADPTR
   ERR    RCFGEN - NO *LNAD* DIRECTIVES WERE PROCESSED. 
 L1       ELSE
          ORG    NADTBL 
          VFD    60/NADPTR
 L1       ENDIF 
          ORG    JOBNAME
          VFD    60/JOBPTR
          ORG    APLNAME
          VFD    60/APLPTR
          ORG    JOBLGTH
          VFD    60/EOJ-JOBPTR
  
          ORG    RCFLGTH
          VFD    42/0,18/NDTLWA-FWA                     RCFDATA LENGTH
          ORG    PRFXVER
          VFD    42/0H"PROGNAM",18/0H"RCFVER" 
  
  
          END 
.EOR
*WIDTH
