*DECK NCSTTP
USETEXT NIPDEF
USETEXT ACB 
USETEXT ACNB
USETEXT AHEADER 
USETEXT APPSTAT 
USETEXT AT
USETEXT DRHDR 
USETEXT DUMPFLG 
USETEXT LLCB
USETEXT MSGIDX
USETEXT NCNB
USETEXT NCNT
USETEXT PCNB
USETEXT PWL 
USETEXT OVERLAY 
USETEXT PARAMP
USETEXT PARAMS
USETEXT PT
USETEXT STPRESP 
USETEXT SUPMSG
PROC NCSTTP((LLCBAD),(CN),(TRIGGER),(SMPTR)); 
STARTIMS; 
 #
*1DC  NCSTTP
* 
*     1. PROC NAME           AUTHOR              DATE 
*        NCSTTP              C. BITTNER          81/05/15 
* 
*     2. FUNCTIONAL DESCRIPTION 
*        NETWORK CONNECTION STATE TABLE PROCESSOR 
* 
*     3. METHOD USED
*        VALIDATE TRIGGER. SET CURRENT STATE (IF THERE IS NO NCNB 
*        THEN SET THE CURRENT STATE TO STATX). CALL XSTTP (STATE TABLE
*        PROCESSOR) PASSING THE STATE TABLE ORDINAL, CURRENT
*        CONNECTION STATE AND TRIGGER.  IF A LEGAL TRIGGER IS 
*        RETURNED THEN DO THE FOLLOWING (IF VALUE NOT SET TO NOCHG):  
*        A) ACTION - EXECUTE NETWORK CONNECTION STATE TABLE 
*           ACTION (ISSUE SM, ETC)
*        B) NEWSTATE - UPDATE NEW CONNECTION STATE
*        C) TRIGC - TRIGGER HOST CONNECTION STATE TABLE 
*        D) TRIGB - TRIGGER HOST BLOCK PROTOCOL STATE TABLE 
* 
*        IF AN ILLEGAL TRIGGER IS RETURNED THEN DO THE
*        FOLLOWING:  IF THE TRIGGER IS INTERNAL TO NIP THEN ABORT 
*        NIP.  IF ILLEGAL EXTERNAL TRIGGER AND IN DEBUG MODE
*        ABORT CCP (SEND NPI/IN TO CCP).  IF ILLEGAL EXTERNAL 
*        TRIGGER AND NOT IN DEBUG MODE, IGNORE TRIGGER (NO-OP). 
* 
* 
*     4. ENTRY PARAMETERS 
*        LLCBAD - LLCB ADDRESS  OR  NCNB ADDRESS
*        CN - NETWORK CONNECTION NUMBER 
*        TRIGGER - NETWORK CONNECTION STATE TABLE TRIGGER 
*        SMPTR - ADDRESS OF SM BUFFER 
* 
*     5. EXIT PARAMETERS
*        NONE 
* 
*     6. SYMPL TEXTS USED 
*        ACNB 
*        APPSTAT
*        AT 
*        NCNB                NCNT 
*        OVERLAY
*        NIPDEF              PARAMP 
*        PARAMS              PT 
*        STPRESP      PCNB     PWL
*        SUPMSG 
*        AHEADER     LLCB     MSGIDX
* 
*     7. ROUTINES CALLED
*        NBSTTP - NETWORK BLOCK PROTOCOL STATE TABLE PROCESSOR
*        HCSTTP - HOST CONNECTION STATE TABLE PROCESSOR 
*        MGETS - GET A BUFFER 
*        LOCLLCB - FIND LLCB ADDRESS
*        LOCNCNT - LOCATE NCNT ENTRY ADDRESS
*        OMSG - ISSUE DAYFILE MESSAGE 
*        OVLCALL - LOAD AND EXECUTE OVERLAY 
*        ABORT - ABORT NIP
*        NFOB - LINK MESSAGE ON PIP OUTBOUND CHAIN
*        CRNCNBP - INTERNAL PROC TO CREATE NCNB 
*        NNPIIN          OVL SEND NPI/IN TO CCP 
*        NICTEAX         OVL ISSUE ICN/TE/A 
*        COMPCON         OVL TRIGGER CONNECTION PROCESSING ROUTINES 
*        NTCNTAR         OVL ISSUE TCN/TA/R 
*        UPDNCNB         OVL UPDATE NCNB ON RECEIPT OF CHC/TE 
*        NICNTEA         OVL SEND ICN/TE/A TO CCP 
*        NTCNTAN         OVL SENT TCN/TA/N TO CCP 
*        NPPCT           OVL CONVERT PCNB TO NCNB 
*        RELNCNB         OVL RELEASE NCNB 
*        STPNERR         OVL ISSUE STP ERROR MESSAGE
*        XERRMSG         OVL ISSUE ERROR MESSAGE
*        STRTCON         OVL TRIGGER CONNECTION PROCESSING ROUTINES 
*        XSTTP - STATE TABLE PROCESSOR
*        XTRACE - RECORD PROCEDURE CALL 
* 
*     8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION 
*        "CCP ERROR - NCSTTP" 
*        "NIP INTERNAL ERROR - PROC NAME" 
*        "INVALID TRIGGER NUMBER - __STTP"
* 
*        THIS PROCEDURE IS CALLED BY HCSTTP, NBSTTP 
*        NPNIPSM, NPPWL, AND RELCONN. 
* 
 #
STOPIMS;
# 
 INPUT PARAMETERS 
# 
  
      ITEM LLCBAD;           # LLCB ADDRESS                            #
      ITEM CN;               # CONNECTION NUMBER                       #
      ITEM TRIGGER;          # STATE TABLE TRIGGER                     #
      ITEM SMPTR;            # ADDRESS OF SM BUFFER                    #
  
# 
 EXTERNAL VARIABLES 
# 
  
 XREF 
   BEGIN
   PROC ABORT;               # ABORT NIP                               #
   PROC NBSTTP;              # NETW BLOCK PROTOCOL STATE TABLE PROC    #
   PROC HCSTTP;              # HOST CONNECTION STATE TABLE PROC        #
   PROC MGETS;
   PROC HRELPWL;             # RELEASE USED PORTION OF NWL             #
   PROC LOCLLCB ; 
   PROC LOCNCNT;             # LOCATE NCNT ENTRY ADDRESS               #
   PROC NFOB ;
   PROC OMSG;                # ISSUE DAYFILE MESSAGE                   #
   PROC OVLCALL;             # LOAD AND EXECUTE OVERLAY                #
   PROC XSTTP;               # STATE TABLE PROCESSOR                   #
   PROC XTRACE;              # RECORD PROCEDURE CALL                   #
   END
  
# 
 INTERNAL VARIABLES 
# 
  
      SWITCH NCACTION NC0,NC1,NC2,NC3,NC4,NC5,NC6,NC7,NC8,
            NC9,NC10,NC11,NC12,NC13,NC14,NC15,NC16,NC17,NC18,NC19;
  
      ITEM ACN;              # APPLICATION CONNECTION NUMBER           #
      ITEM AN;               # APPLICATION NUMBER                      #
      ITEM CURST;            # CURRENT STATE                           #
      ITEM NCNTEAD;          # NCNT ENTRY ADDRESS                      #
      ITEM RESP  U;          # RESPONSE WORD                           #
      ITEM TRC      I ;            # TERMINATED REASON CODE            #
  
#**********************************************************************#
 BEGIN
  
      BEGIN 
      CONTROL IFEQ DEBUG,1; 
        XTRACE("NCSTT") ; 
      CONTROL FI; 
  
      TRC = 0 ;                    # ASSUMING RC TO TERMINATE IS ZERO  #
      CURST = 0 ; 
      P<ACNB> = 0 ; 
      PARAMS3 = 0;
      P<NCNB> = 0;
      P<SUPMSG> = SMPTR+BLKHSIZE+ABHSIZE; 
      P<SMNVF> = P<SUPMSG>; 
      P<SMNIP> = P<SUPMSG>; 
# VALIDATE TRIGGER NUMBER    #
      IF TRIGGER LQ NCMTR AND TRIGGER GQ 0
      THEN
        BEGIN                # VALID TRIGGER  NUMBER                   #
        P<LLCB> = LLCBAD ;
        IF LLCBID[0] EQ NCNBIDVALUE      OR 
          LLCBID[0] EQ LCNBIDVALUE OR 
           LLCBID[0] EQ PCNBIDVALUE 
        THEN
          BEGIN 
          P<NCNB> = LLCBAD ;
          CURST = NCNBCST[0] ;
          P<ACNB>=NCNBACNB[0];
          LOCLLCB(NCNBHN[0],NCNBTN[0],LLCBAD) ; 
          END 
        ELSE   # THIS IS AN LLCB (CALLED FROM HOST SIDE)  # 
          BEGIN 
          LOCNCNT(LLCBAD,CN,NCNTEAD);  # LOCATE NCNT ENTRY ADDRESS     #
          P<NCNT> = NCNTEAD;
          IF P<NCNT> EQ 0 
          THEN
            CURST = STATX;
          ELSE
            BEGIN 
            P<NCNB> = NCNTNCNB[0];
            IF P<NCNB> EQ 0 
            THEN
              CURST = STATX;
            ELSE
              BEGIN 
              CURST = NCNBCST[0] ;
              P<ACNB> = NCNBACNB[0] ; 
              END 
            END 
          END 
        XSTTP(NCORD,CURST,TRIGGER,RESP);  # CALL STATE TABLE PROC      #
        P<STRESP> = LOC(RESP);
        IF LEGTRIG[0] 
        THEN
          BEGIN              # LEGAL TRIGGER                           #
          IF ACTION[0] NQ NOCHG 
          THEN
            GOTO NCACTION[ACTION[0]];  # EXECUTE PROPER ACTION         #
          ELSE
            GOTO NCA; 
          CONTROL EJECT;
  
NC0:  
# 
      BUILD NCNB, LINK IT TO ACNB 
      FORMAT ICN/AP/R FROM CR/IAP/N 
      SEND ICN/AP/R TO NETWORK
# 
      CRNCNBP; # BUILD NCNB FROM CR/IAP/N                              #
      NCNBACNB[0] = ACNBADD;
      P<ACNB> = ACNBADD;
      ACNBNCNB[0] = NCNBADD; # LINK NCNB/ACNB                          #
      SICNXXP; # SEND ICN/AP/R TO NETWORK                              #
      GOTO NCA ;
NC1:  
# 
      CNCNB2  (ACTION NO. 1)
      REJECT CN IF IN SHUTDOWN ELSE CREATE NCNB 
# 
      IF SHUTDOWN 
      THEN # REJECT, HOST IN SHUTDOWN MODE                             #
        PARAMS3 = RTEA"HSD";
      ELSE
        BEGIN 
        IF ATACBA[NVFAN] EQ 0 
        THEN # NVF NOT YET NETTED ON                                   #
          PARAMS3 = RTEA"NNO";
        END 
      IF PARAMS3 EQ 0 
      THEN
        CRNCNBP; # BUILD NCNB IF POSSIBLE                              #
      IF PARAMS3 NQ 0 
      THEN # ERROR DETECTED                                            #
        BEGIN 
        IF TRIGGER EQ RICNTER 
        THEN # ERROR ON ICN/TE/R                                       #
          BEGIN 
          PARAMS1 = SMPTR; # FWA OF SM BUFFER                          #
          PARAMS2 = LLCBAD; # LLCB ADDRESS                             #
          OVLNAME = NICTEAXP; # SEND ICN/TE/A                          #
          OVLCALL;
          END 
        ELSE # ERROR ON ICN/EX/R OR ICN/AP/R                           #
          SICNXXP; # SEND ICN/EX/A OR ICN/AP/A                         #
        GOTO NCST$EXIT; # EXIT NCSTTP IMMEDIATELY                      #
        END 
      GOTO NCA; 
NC2:  
# 
      DNCNB1  (ACTION NO. 2)
      ISSUE TCN/TA/R TO CCP 
# 
  
  
#  ISSUE TCN/TA/R TO CCP                                               #
  
      PARAMS1 = P<NCNB>;     # NCNB ADDRESS                            #
      PARAMS2 = RCBRK;       # REASON CODE FROM CR/TRM/R               #
      OVLNAME = NTCNTARP;    # OVERLAY NAME                            #
      OVLCALL;               # LOAD AND EXECUTE OVERLAY                #
      GOTO NCA; 
NC3:  
# 
      UNCNB  (ACTION NO. 3) 
      UPDATE NCNB WITH TERMINAL CHARACTERISTIC CHANGES
# 
  
      PARAMS1 = P<NCNB>;  # NCNB ADDRESS                               #
      PARAMS2 = SMPTR;     # SM BUFFER - CHC/TE                        #
      OVLNAME = UPDNCNBP;  # OVERLAY NAME                              #
      OVLCALL;               # LOAD AND EXECUTE OVERLAY                #
      GOTO NCA; 
NC4:  
# 
      INCNB  (ACTION NO. 4) 
      UPDATE NCNB WITH TERMINAL NAME AND SEND ICN/TE/N TO CCP 
# 
  
      CONTROL IFEQ DEBUG,1; 
        IF P<NCNB> EQ 0 
        THEN
          BEGIN              # NO CONNECTION                           #
          D27M2[0] = "NCSTTP1"; 
          ABORT(DFMSG27,0);  # "NIP INTERNAL ERROR"                    #
          END 
      CONTROL FI; 
      NCNBTNAM[0] = CRITN[0];  # TERMINAL NAME                         #
  
      # ISSUE ICN/TE/N       #
      PARAMS1 = NCNBCN[0];
      PARAMS2 = LLCBAD; 
      PARAMS9 = COMPCX"ICNTE$" ;
      OVLNAME = COMPCONP;    # OVERLAY NAME                            #
      OVLCALL;               # LOAD AND EXECUTE OVERLAY                #
      GOTO NCA; 
NC5:  
# 
      SICNTEA  (ACTION NO. 5) 
      SEND ICN/TE/A TO CCP
# 
      PARAMS1 = CRRITE;      # REASON CODE FROM NVF                    #
      PARAMS2 = CN;          # NETWORK CONNECTION NUMBER               #
      PARAMS3 = LLCBAD;      # LLCB ADDRESS                            #
      OVLNAME = NICNTEAP;    # OVERLAY NAME                            #
      OVLCALL;               # LOAD AND EXECUTE OVERLAY                #
      GOTO NCA; 
  
NC6:  
# 
      SEND ICN/AP/N TO CCP (AFTER CR/RAP/N FROM NVF)
# 
      SICNXXP; # SEND ICN/AP/N TO NETWORK                              #
      GOTO NCA ;
NC7:  
NC8:  
# 
      STCNTAN  (ACTION NO. 8) 
      ISSUE TCN/TA/N TO CCP 
# 
  
      RCBRK = TCNRC[0];      # REASON CODE FOR TERMINATION             #
      PARAMS1 = P<NCNB>;     # NCNB ADDRESS                            #
      OVLNAME = NTCNTANP;    # OVERLAY NAME                            #
      OVLCALL;               # LOAD AND EXECUTE OVERLAY                #
      GOTO NCA; 
NC9:  
NC10: 
      GOTO NCA; 
NC16: 
# SEND IMMEDIATE WORKLIST TO PIP                                       #
      P<PCNB> = P<NCNB> ; 
      PCNBRC[0] = RCBRK ;  # SAVE REASON CODE (IF TCN/TA)  #
      MGETS(LTCPWL,P<PWLHDR>,TRUE); 
      PWLID[0] = PWLIDVALUE ; 
      PWLHN[0] = PCNBHN[0] ;
      PWLTN[0] = PCNBTN[0] ;
      PWLCN[0] = CN ; 
      PWLOP[0] = PWLOPTRMCN; # TERMINATE CONN REQUEST                  #
      PWLRC[0] = TRC ;             # TELL PIP THE REASON CODE          #
#       AND LINK IT TO IMMEDIATE QUEUE                                 #
      PCNBIMMO[0] = P<PWLHDR> ; 
  
      GOTO NCA ;
NC17: 
# 
        AFTER COMPLETION SEND TCN/TA/R TO CCP 
# 
      PARAMS1 = P<NCNB> ; 
      PARAMS2 = RCBRK;
      OVLNAME = NTCNTARP ;
      OVLCALL ;         # SEND TCN/TA/R TO CCP                         #
      GOTO NCA ;
NC18: 
# 
      NO TCN/TA/R TO CCP
# 
      GOTO NCA ;
NC19: 
      P<SUPMSG> = SMPTR + BLKHSIZE + ABHSIZE ;
      IF PFC[0] EQ OFT
      THEN
        TRC = OFTRC ; 
      ELSE
        IF PFC[0] EQ IFT
        THEN
          TRC = IFTRC ; 
        ELSE
          ABORT(0,0) ;
      GOTO NC16 ; 
  
  
  
  
NC11: 
  
NC12: 
# 
      STANRNC  (ACTION NO. 12)
      ISSUE TCN/TA/N TO CCP 
      RELEASE NCNB
# 
  
      RCBRK = TCNRC[0];  # REASON CODE FOR TERMINATION                 #
      PARAMS1 = P<NCNB>;     # NCNB ADDRESS                            #
      OVLNAME = NTCNTANP;    # OVERLAY NAME                            #
      OVLCALL;               # LOAD AND EXECUTE OVERLAY                #
      PARAMS1 = P<NCNB>;     # NCNB ADDRESS                            #
      OVLNAME = RELNCNBP;    # OVERLAY NAME                            #
      OVLCALL;               # LOAD AND EXECUTE OVERLAY                #
      GOTO NCA; 
  
  
NC13: 
# 
      STEARNC (ACTION NO. 13) 
      ISSUE ICN/TE/A AND DELETE NCNB
# 
  
      PARAMS1 = CRRITE;  # REASON CODE FROM NVF                        #
      PARAMS2 = CN;  # NETWORK CONNECTION NUMBER                       #
      PARAMS3 = LLCBAD;  # LLCB ADDRESS                                #
      OVLNAME = NICNTEAP;  # OVERLAY NAME                              #
      OVLCALL;               # LOAD AND EXECUTE OVERLAY                #
      PARAMS1 = P<NCNB>;  # NCNB ADDRESS                               #
      OVLNAME = RELNCNBP;  # OVERLAY NAME                              #
      OVLCALL;               # LOAD AND EXECUTE OVERLAY                #
      GOTO NCA; 
  
NC14: 
# 
      RLNCNB  (ACTION NO. 14) 
      RELEASE NCNB
# 
      PARAMS1 = P<NCNB>;     # NCNB ADDRESS                            #
      RCBRK     = RCCB"LLF" ;  # LOGICAL-LINK HAS FAILED               #
#                                                                      #
      OVLNAME = RELNCNBP;    # OVERLAY NAME                            #
      OVLCALL;               # LOAD AND EXECUTE OVERLAY                #
      GOTO NCA; 
  
  
NC15: 
# 
      SAPARNC  (ACTION NO. 15)
      ISSUE ICN/AP/A AND DELETE NCNB
# 
      PARAMS3 = CRRRAP[0]; # REASON CODE FROM CR/RAP/A                 #
      SICNXXP; # SEND ICN/AP/A OR ICN/EX/A                             #
      PARAMS1 = P<NCNB> ; 
      OVLNAME = RELNCNBP; # RELEASE NCNB                               #
      OVLCALL ; 
      GOTO NCA; 
  
  
  
      CONTROL EJECT;
NCA:  
  
          IF NEWSTATE[0] NQ STATX 
          THEN
            BEGIN 
            NCNBLCS[0] = CURST   ; # UPDATE LAST CONNECTION STATE      #
            NCNBLCT[0] = TRIGGER ;   # UPDATE LAST CONNECTION TRIGGER  #
            IF NEWSTATE[0] NQ NOCHG 
            THEN
              NCNBCST[0] = NEWSTATE[0]; # UPDATE NEW CONN STATE        #
            END 
  
          IF TRIGC[0] NQ NOCHG
          THEN
            BEGIN            # TRIGGER HOST CONNECTION STATE TABLE     #
  
  
            IF P<ACNB> EQ 0 
            THEN
              BEGIN          # THERE IS NO CONNNECTION                 #
              ACN = 0;  # APPLICATION CONNNECTION NUMBER               #
              AN = NVFAN;  # APPLICATION NUMBER                        #
              END 
            ELSE
              BEGIN          # THERE IS A CONNECTION                   #
              AN = ACNBAN[0];  # APPLICATION NUMBER                    #
              ACN = ACNBACN[0];  # APPLICATION CONNECTION NUMBER       #
              END 
            P<ACB> = ATACBA[AN];  # BASE APPLICATION CONTROL BLK       #
            HCSTTP(P<ACB>,ACN,TRIGC[0],SMPTR);
            END 
  
          IF TRIGB[0] NQ NOCHG
          THEN               # TRIGGER NETW BLOCK PROTOCOL STATE TABLE #
            BEGIN 
            CONTROL IFEQ DEBUG,1; 
            IF P<NCNB> EQ 0 
            THEN
              BEGIN 
              D27M2[0] = "NCSTTP2"; 
              ABORT(DFMSG27,0);  # "NIP INTERNAL ERROR"                #
              END 
            CONTROL FI; 
            NBSTTP(P<NCNB>,TRIGB[0],0); 
            END 
  
  
          END 
  
        ELSE
  
          BEGIN                # ILLEGAL TRIGGER                       #
          PARAMS1 = NCNBHN[0];  # HOST NODE                            #
          PARAMS2 = NCNBTN[0];  # TERMINAL NODE                        #
          PARAMS3 = CN;      # NETWORK CONNECTION NUMBER               #
          PARAMS4 = TRIGGER; # ILLEGAL TRIGGER                         #
          PARAMS6 = "NCSTTP";# NAME OF STATE TABLE PROCESSOR           #
          PARAMS7 = CURST;   # CURRENT CONNECTION STATE                #
          OVLNAME = STPNERRP;# ISSUE STP ERROR MESSAGE                 #
          OVLCALL;           # LOAD AND EXECUTE OVERLAY                #
          IF TRIGGER LS NCMINXT OR TRIGGER GR NCMAXXT 
          THEN                 # TRIGGER INTERNAL TO NIP               #
            BEGIN 
            ABORT(0,0); # ABORT NIP                                    #
            END 
  
          ELSE
  
            BEGIN            # ILLEGAL EXTERNAL TRIGGER (CCP)          #
            CONTROL IFEQ DEBUG,1; 
            IF TRIGGER EQ RICNTER OR TRIGGER EQ RICNAPR 
            THEN
              BEGIN 
              PARAMS1 = SMPTR;  # SM BUFFER                            #
              PARAMS2 = LLCBAD;  # LLCB ADDRESS                        #
              PARAMS3 = RTEA"TCE";  # RC=9 TERM CON EXISTS             #
              IF TRIGGER EQ RICNTER 
              THEN
              BEGIN 
              OVLNAME = NICTEAXP ;
              OVLCALL ; 
              END 
              ELSE
                BEGIN 
                P<NCNB> = 0; # SEND ICN/AP/A IMMEDIATELY               #
                SICNXXP;
                END 
              END 
                PARAMS1 = LLCBAD ;
                PARAMS2 = TRIGGER;     # BAD TRIGGER FROM NETWORK      #
                PARAMS3 = CURST;       # CURRENT STATE OF CONNECTION   #
                PARAMS4 = CN;          # NETWORK CONNECTION NUMBER     #
                PARAMS7 = X"43";       # STATE TABLE PROCESSOR         #
                OVLNAME = NNPIINP;  # SEND NPI/IN TO CCP               #
                OVLCALL;  # LOAD AND EXECUTE OVERLAY                   #
             CONTROL FI;
  
  
            END 
  
          END 
  
        END 
      ELSE                   # INVALID TRIGGER - NIP INTERNAL ERROR    #
  
NCERR:  BEGIN 
        PARAMS1 = DFMSG26;
        PARAMS6 = "NC"; 
        OVLNAME = XERRMSGP; 
        OVLCALL;
        END 
  
NCST$EXIT:  
#     EXIT                   #
  
      RETURN; 
      END 
  
  
  
      PROC CRNCNBP   ;       # CREATE NCNB                             #
      BEGIN 
      PARAMS1 = P<SUPMSG>; # FWA OF CR/IAP/N OR ICN/TE/R               #
                           #     OR ICN/EX/R OR ICN/AP/R               #
      PARAMS2 = LLCBAD;    # LLCB ADDRESS                              #
      PARAMP5 = STRTCX"BNCNB$" ;
      OVLNAME = STRTCONP ;
      OVLCALL;             # LOAD AND EXECUTE OVERLAY                  #
      P<NCNB> = PARAMS1;
      NCNBADD = PARAMS1; # NCNB ADDRESS                                #
      P<NCNT> = PARAMS2; # NCNT ADDRESS                                #
      RETURN ;
      END 
  
  
  
      PROC SICNXXP; # SEND ICN/XX TO NETWORK                           #
      BEGIN 
      PARAMS1 = SMPTR;
      PARAMS2 = LLCBAD; 
      PARAMS4 = P<NCNB>;
      PARAMS9 = COMPCX"ICNAP$"; 
      OVLNAME = COMPCONP; 
      OVLCALL;
      RETURN; 
      END 
 END
TERM
