cdc:nos2.source:nam5871:hcsttp
Table of Contents
HCSTTP
Table Of Contents
- [00020] PROC HCSTTP1)
- [00121] PROC HBSTTP
- [00122] PROC BLINK
- [00123] PROC ABORT
- [00124] PROC LOCLLCB
- [00125] PROC NCSTTP
- [00126] PROC OMSG
- [00127] PROC OSCHAPP
- [00128] PROC OVLCALL
- [00129] PROC XSTTP
- [00130] PROC XTRACE
- [00131] PROC MGETS
- [01159] PROC CRACNBP
Source Code
- HCSTTP.txt
- *DECK HCSTTP
- USETEXT NIPDEF
- USETEXT ACB
- USETEXT ACNB
- USETEXT ACNT
- USETEXT AHEADER
- USETEXT APPSTAT
- USETEXT AT
- USETEXT DRHDR
- USETEXT DUMPFLG
- USETEXT MSGIDX
- USETEXT NCNB
- USETEXT OVERLAY
- USETEXT PARAMP
- USETEXT PARAMS
- USETEXT PT
- USETEXT PWL
- USETEXT STPRESP
- USETEXT SUPMSG
- PROC HCSTTP((ACBAD),(ACN),(TRIGGER),(SMPTR));
- STARTIMS;
- #
- *1DC HCSTTP
- *
- * 1. PROC NAME AUTHOR DATE
- * HCSTTP C. BITTNER 81/05/15
- *
- * 2. FUNCTIONAL DESCRIPTION
- * HOST CONNECTION STATE TABLE PROCESSOR
- *
- * 3. METHOD USED
- * VALIDATE TRIGGER. SET CURRENT STATE (IF THERE IS NO ACNB
- * 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 HOST CONNECTION STATE TABLE ACTION
- * (ISSUE SM, ETC)
- * B) NEWSTATE - UPDATE NEW HOST CONNECTION STATE
- * C) TRIGC - TRIGGER NETWORK CONNECTION STATE TABLE
- * D) TRIGB - TRIGGER NETWORK BLOCK PROTOCOL (IVT) 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 ISSUE ERR/LGL TO
- * APPLICATION.
- *
- *
- *
- * 4. ENTRY PARAMETERS
- * ACBAD - ACB ADDRESS
- * ACN - APPLICATION CONNECTION NUMBER
- * TRIGGER - HOST CONNECTION STATE TABLE TRIGGER NUMBER
- * SMPTR - ADDRESS OF SM BUFFER
- *
- * 5. EXIT PARAMETERS
- * NONE
- *
- * 6. SYMPL TEXTS USED
- * NIPDEF ACB
- * ACNB ACNT
- * APPSTAT AHEADER
- * AT MSGIDX
- * NCNB PARAMP
- * PT
- * PARAMS OVERLAY
- * STPRESP
- *
- * 7. ROUTINES CALLED
- * HBSTTP - HOST BLOCK PROTOCOL STATE TABLE PROCESSOR
- * LOCLLCB - LOCATE LLCB
- * NCSTTP - NETWORK CONNECTION STATE TABLE PROCESSOR
- * XSTTP - STATE TABLE PROCESSOR
- * ABORT - ABORT NIP
- * OSCHAPP - SWAPIN APPLICATION
- * OVLCALL - LOAD AND EXECUTE OVERLAY
- * CRACNB - INTERNAL PROCEDURE TO CREATE ACNB
- * STRTCON OVL TRIGGER CONNECTION CREATION ROUTINES
- * HCRCBU OVL SEND CR/CB/U
- * HCONCBU OVL SEND CON/CB/U
- * HTCHAR OVL SEND TCH/TCHAR
- * UPACNB4 OVL UPDATE ACNB ON RECEIPT OF CR/RCN/N
- * HCACRQA OVL SEND CON/ACRQ/A
- * STRTSW OVL TRIGGER CONNECTION SWITCHING ROUTINES
- * HCRRCNR OVL SEND CR/RCN/R
- * HCRTRMN OVL SEND CR/TRM/N
- * HCRIAPR OVL SEND CR/IAP/R
- * HSFCINA OVL SEND FC/INACT SUP MSG TO APP
- * HSWACNB OVL SWITCH ACNB FROM OLD APP TO NEW APP
- * SENDACC OVL TRIGGER CONNECTION ACCEPTED PROCESSORS
- * RELACB OVL RELEASE ACB
- * HCONEND OVL SEND CON/END/N
- * STPHERR OVL ISSUE STATE TABLE ERROR MESSAGE
- * HLGLERR OVL SEND ERR/LGL
- * XERRMSG OVL OUTPUT ERROR MESSAGE
- *
- * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
- * "INVALID TRIGGER NUMBER - HCSTTP"
- * "NIP INTERNAL ERROR - HCSTTP1"
- * "NIP INTERNAL ERROR - HCSTTP2"
- *
- * THIS PROCEDURE IS CALLED BY HAPFAIL,HBSTTP,HPNOFF,
- * HPPUT AND NCSTTP.
- *
- #
- STOPIMS;
- #
- INPUT PARAMETERS
- #
- ITEM ACBAD; # ACB ADDRESS #
- ITEM ACN; # APPLICATION CONNECTION NUMBER #
- ITEM TRIGGER; # STATE TABLE TRIGGER NUMBER #
- ITEM SMPTR; # ADDRESS OF SM BUFFER #
- ITEM TEMP; # TEMP VARIABLE #
- #
- EXTERNAL VARIABLES
- #
- XREF
- BEGIN
- PROC HBSTTP; # HOST BLOCK PROTOCOL STATE TABLE PROC #
- PROC BLINK;
- PROC ABORT; # ABORT NIP #
- PROC LOCLLCB; # LOCATE LLCB #
- PROC NCSTTP; # NETWORK CONNECTION STATE TABLE PROC #
- PROC OMSG; # ISSUE DAYFILE MESSAGE #
- PROC OSCHAPP; # SWAPIN APPLICATION #
- PROC OVLCALL; # LOAD AND EXECUTE OVERLAY #
- PROC XSTTP; # STATE TABLE PROCESSOR #
- PROC XTRACE; # RECORD PROCEDURE CALL #
- PROC MGETS ;
- END
- #
- INTERNAL VARIABLES
- #
- SWITCH HCACTION HC0,HC1,HC2,HC3,HC4,HC5,HC6,HC7,HC8,HC9,
- HC10,HC11,HC12,HC13,HC14,HC15,HC16,HC17,
- HC18,,HC20,HC21,HC22,HC23,HC24,HC25
- ,HC26
- ,HC27
- ,HC28
- ;
- ITEM ACNTINDX; # ACNT INDEX #
- ITEM CRAC ; # CONNECTION NUMBER IN CR/SWH/R #
- ITEM AN; # APPLICATION NUMBER #
- ITEM NCN; # NETWORK CONNECTION NUMBER #
- ITEM CURST; # CURRENT STATE #
- ITEM LLCBAD; # LLCB ADDRESS #
- ITEM RESP; # RESPONSE RETURNED FROM STATE TABLE PROC #
- ITEM INDEX I ;
- ITEM OLDAN; # APPLICATION NUMBER #
- ITEM CURACNT U ; # CURRENT ACNT #
- ITEM BUFFERADR I ; # ADDRESS OF NEEDED BUFFER #
- #**********************************************************************#
- BEGIN
- BEGIN
- CONTROL IFEQ DEBUG,1;
- XTRACE("HCSTT") ;
- CONTROL FI;
- LLCBAD = 0 ;
- PARAMS5 = FALSE ;
- PARAMS7 = 0 ;
- # VALIDATE TRIGGER NUMBER #
- IF TRIGGER LQ HCMTR AND TRIGGER GQ 0
- THEN
- BEGIN # VALID TRIGGER NUMBER #
- P<ACB> = ACBAD; # BASE ACB #
- P<ACNT> = ACBACNT[0]; # BASE ACNT #
- IF ACN NQ 0
- THEN
- BEGIN
- ACNTINDX = ACN + ACNTHSIZE - ACNTMINACN[0];
- P<ACNB> = ACNTACNB[ACNTINDX];
- P<NCNB> = ACNBNCNB[0]; # ADDRESS OF NCNB #
- END
- ELSE
- P<ACNB> = 0;
- IF P<ACNB> EQ 0
- THEN
- CURST = STATX; # CURRENT STATE #
- ELSE
- CURST = ACNTCS[ACNTINDX];
- XSTTP(HCORD,CURST,TRIGGER,RESP);
- P<STRESP> = LOC(RESP); # RESPONSE WORD #
- IF LEGTRIG[0]
- THEN
- BEGIN # LEGAL TRIGGER #
- IF ACTION[0] NQ NOCHG
- THEN
- GOTO HCACTION[ACTION[0]]; # EXECUTE PROPER ACTION #
- ELSE
- GOTO HCA;
- HC0:
- #
- CACNBTI (ACTION NO. 0)
- CREATE ACNB AND SEND CR/ITE/R TO NVF
- #
- PARAMP1 = SMPTR + BLKHSIZE + ABHSIZE; # FWA OF ICN/TE/R #
- CRACNBP ; # CALL INTERNAL PROC TO BUILD ACNB #
- PARAMS1 = SMPTR; # ADDRESS OF ICN/TE/R #
- PARAMS2 = ACN; # APPLICATION CONNECTION NUMBER #
- PARAMP5 = STRTCX"CRITE$" ;
- OVLNAME = STRTCONP; # SEND CR/ITE/R TO NVF #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- GOTO HCA;
- HC1:
- #
- RECEIVED ICN/AP/R FROM NETWORK
- #
- PARAMP1 = SMPTR + BLKHSIZE + ABHSIZE; # FWA OF ICN/AP/R #
- CRACNBP ; # BUILD THE ACNB #
- #
- AND SEND CR/RAP/R TO NVF USING THE ICN/AP/R BUFFER
- #
- PARAMS1 = SMPTR ;
- PARAMS2 = ACN ;
- PARAMS3 = P<ACNB> ;
- PARAMP5 = STRTCX"CRRAP$" ;
- OVLNAME = STRTCONP ; # OVERLAY TO SEND CR/RAP/R #
- OVLCALL ;
- GOTO HCA ;
- HC2:
- #
- DLACNB (ACTION NO. 2)
- SEND CON/CB/U TO APPLIACTION
- #
- PARAMS1 = RCB"LND"; # REASON CODE 1 - NETWORK TERMINATED CON #
- PARAMS2 = P<ACNB>; # ACNB ADDRESS #
- OVLNAME = HCONCBUP; # OVERLAY NAME #
- PARAMS3 = 0 ;
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- GOTO HCA;
- HC3:
- #
- SEND TCH/TCHAR TO APPLICATION
- #
- IF ACNBNCNB[0] NQ 0
- THEN # NCNB EXISTS #
- BEGIN # SEND TCH/TCHAR TO APPLICATION #
- PARAMS1 = P<ACNB>; # ACNB ADDRESS #
- OVLNAME = HTCHARP; # OVERLAY NAME #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- END
- #
- UPDATE ACNB ON RECEIPT OF CR/RCN/N
- #
- PARAMS1 = P<ACNB>; # ADDR OF APPLICATION CONNECTION BLOCK #
- PARAMS2 = SMPTR; # ADDR OF CR/RCN/N SM BUFFER #
- OVLNAME = UPACNB4P; # OVERLAY NAME #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- GOTO HCA;
- HC4:
- #
- CRRCNCB ( ACTION NO. 4 )
- COMBINED ACTION OF ACTION 5 AND ACTION 9.
- SWITCH ACNB TO NVF
- SEND CR/RCN/R AND CR/CB/U TO NVF
- #
- HC5:
- #
- SACNB2 (ACTION NO. 5)
- SWITCH ACNB AND SEND CR/RCN/R TO NVF
- #
- #
- CON/REQ/A CASE
- SWITCH ACNB FROM APPL TO NVF
- #
- PARAMS1 = ACBAD; # ADDRESS OF OLD ACB #
- PARAMS2 = ACN; # ADDRESS OF OLD CONNECTION NUMBER #
- PARAMS3 = ATACBA[NVFAN]; # ADDRESS OF NEW ACB #
- PARAMS4 = 0; # NO NEW CONNECTION NUMBER #
- PARAMS8 = FALSE; # SET NOT LOANED CONNECTION SWITCH #
- OVLNAME = HSWACNBP; # NAME OF OVERLAY TO LOAD #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- # BASE ACNT TO NVF-S NEW CONNECTION JUST SWITCHED TO #
- OLDAN = ACBAN[0]; # APPLIC. NO. OF APPL REFUSING CONNECTION #
- P<ACNB> = PARAMS1; # ADDRESS OF NEW ACNB #
- PARAMS2 = 0 ; # PRESET APPL. NAME TO ZERO #
- IF ACNBPRID[0] NQ 0
- THEN
- BEGIN # FROM SECONDARY APPL. #
- IF NOT ACNBPRAF[0] # PRIM NOT FAILED YET #
- THEN
- BEGIN # PRIMARY APPL. HAS NOT GONE #
- P<ACB> = ATACBA[ACNBPRAN[0]] ; # ACB OF PRIMARY #
- TEMP = P<ACNT>; # SAVE ACNT TEMPLATE #
- P<ACNT> = ACBACNT[0]; # PRIMARY APPL ACNT #
- ACNTINDX = ACNBPRACN[0] + ACNTHSIZE - ACNTMINACN[0];
- # GET INDEX TO ACNT #
- ACNTSECAN[ACNTINDX] = NVFAN; # ACNB IS NOW WITH NVF #
- ACNTSECACN[ACNTINDX] = ACNBACN[0]; # ACN IN NVF ACNB #
- P<ACNT> = TEMP; # RESTORE ACNT #
- PARAMS2 = ACBANAME[0] ; # PRIMARY APPL. NAME #
- PARAMS3 = ACNBRC[0] + CRSWHTAB;# SET REASON CODE TO RC+20B #
- END # PRIM HAS NOT GONE #
- ELSE
- BEGIN
- PARAMS3 = RCRC"PAF" ; # PRIM HAS GONE, SET RC TO 11B #
- ACNBPRID[0] = 0 ; # #
- END
- END # FROM SECODARY APPL. #
- ELSE
- BEGIN # NOT LOANED CONN. #
- PARAMS3 = ACNBRC[0] ; # SET REASON IN CR/RCN TO APL RC#
- END # NOT LOANED CONN. #
- # ISSUE CR/CRN/R TO NVF #
- P<ACB> = ATACBA[NVFAN];
- P<ACNT> = ACBACNT[0];
- ACNTINDX = ACNBACN[0] + ACNTHSIZE - ACNTMINACN[0];
- # ISSUE RECONNECT (CR/RCN/R) TO NVF #
- PARAMS4 = OLDAN; # AN OF APPL REFUSING CONNECTION #
- OVLNAME = HCRRCNRP; # OVERLAY NAME #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- #
- CHECK IF THIS IS THE LAST CONNECTION OF AN EX-PRU
- APPLICATION. IF SO , RELEASE THE ACB OF IT
- #
- P<ACB> = ATACBA[OLDAN] ;
- IF ACBWOFF[0] AND ACBNPRU[0] EQ 0
- THEN
- BEGIN
- PARAMS1 = ACBAN[0] ;
- OVLNAME = RELACBP ;
- OVLCALL ;
- END
- IF ACTION[0] EQ SACNB2
- THEN
- GOTO HCA; # ACTION ACNB2 SEND CR/RCN ONLY #
- # CONTINUE WITH ACTION CRRCNCB (4), SEND CR/CB/U #
- HC9:
- #
- CRCBU (ACTION NO. 9)
- SEND CR/CB/U TO NVF
- #
- PARAMS2 = P<ACNB>; # ACNB ADDRESS #
- OVLNAME = HCRCBUP; # OVERLAY NAME #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- #
- SEND CON/CB TO PRIMARY APPLICATION IF THERE IS ONE
- #
- PARAMS1 = RCB"LND"; # REASON CODE 1 - NETWORK TERMINATED CON #
- OVLNAME = HCONCBUP; # NAME OF OVERLAY TO LOAD #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- GOTO HCA;
- HC6:
- #
- CHTCCA (ACTION NO. 6)
- SEND TCH/TCHAR TO APPLICATION
- #
- IF ACNBNCNB[0] NQ 0
- THEN # NCNB EXISTS #
- BEGIN # SEND TCH/TCHAR TO APPLICATION #
- PARAMS1 = P<ACNB>; # ACNB ADDRESS #
- OVLNAME = HTCHARP; # OVERLAY NAME #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- GOTO HCA;
- END
- ELSE # NO NCNB EXISTS #
- GOTO HC77;
- HC7:
- GOTO HCA;
- HC8:
- #
- UACNB1 (ACTION NO. 8)
- UPDATE ACNB
- #
- PARAMS1 = P<ACNB>; # ADDR OF APPL CONNECTION BLOCK #
- PARAMS2 = SMPTR; # ADDR OF SM BUFFER #
- PARAMS9 = COMPCX"UACNB$" ;
- OVLNAME = COMPCONP; # OVERLAY NAME #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- GOTO HCA;
- HC10:
- #
- UACNB2 (ACTION NO. 10)
- UPDATE ACNB WITH INFORMATION FROM CON/REQ/N
- SEND CR/ACC/U TO NVF
- SEND TCH/TCHAR TO APPLICATION
- #
- PARAMS1 = P<ACNB>; # ADDR OF APPL CONNECTION BLOCK #
- PARAMS2 = SMPTR; # ADDR OF CON/REQ/N SM BUFFER #
- PARAMS9 = SENDX"UACNB3$" ;
- OVLNAME = SENDACCP; # OVERLAY NAME #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- # SEND CR/ACC/U TO NVF #
- PARAMS1 = P<ACNB>;
- PARAMS9 = SENDX"CRACC$" ;
- OVLNAME = SENDACCP; # OVERLAY NAME #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- # SEND TCH/TCHAR TO APPLICATION #
- PARAMS1 = P<ACNB>;
- IF ACNBNCNB[0] NQ 0
- THEN # NCNB EXISTS #
- BEGIN # SEND TCH/TCHAR TO APPLICATION #
- PARAMS1 = P<ACNB>; # ACNB ADDRESS #
- OVLNAME = HTCHARP; # OVERLAY NAME #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- END
- GOTO HCA;
- HC11:
- #
- RECEIVED CR/IAP/N FROM NVF
- - VLLCB - VALIDATE LOGICAL LINK (FOR A-A CONNECTIONS)
- - IF EXIST CHOOSE A PROPER CONNECTION NUMBER TO USE WITH IT
- #
- PARAMP1 = SMPTR ; # CR/IAP/N FROM NVF #
- PARAMP2 = P<ACNB> ; # CONNECTION BLOCK INFO #
- # #
- OVLNAME = HVLLCBP ;
- OVLCALL ; # CALL OVERLAY AND EXECUTE #
- # #
- IF PARAMP3 EQ 0 # NO LOGICAL LINK. WE SENT ANOTHER CR/IAP #
- THEN
- RETURN;
- ELSE
- BEGIN
- LLCBAD = PARAMP3 ; # LOGICAL LINK FOR THAT A-A CONNECTION #
- NCN = PARAMP4 ; # CONNECTION NUMBER ON THIS LOGICAL LINK #
- ACNBADD = P<ACNB> ;
- P<SMNVF> = SMPTR + BLKHSIZE + ABHSIZE ;
- P<SMNIP> = P<SMNVF>;
- CRBYTE = CRIOCTN[0]; # SAVE BYTE COUNT IN POINTER TABLE #
- ICNCN[0] = NCN; # MADE NCN AVAILABLE TO BLDNCNB #
- ACNBABL[0] = CRIAABL[0] ;
- ACNBVCBO[0] = CRVCB[0] ;
- ACNBICT [0] = CRICT[0] ;
- ACNBALN[0] = CRALN[0]; # APPLICATION LIST NUMBER #
- IF CRASNOD[0] EQ 0 AND CRADNOD[0] EQ 0
- THEN
- ACNBDT[0] = DT$INTA ;
- ELSE
- ACNBDT[0] = DT$INTE ;
- END
- # #
- GOTO HCA ;
- HC12:
- #
- RECEIVED CR/IAP/A FROM NVF
- SEND CON/ACRQ/A TO APPL WITH RC FROM CR/IAP/A
- #
- P<SMNVF> = SMPTR + BLKHSIZE + ABHSIZE ;
- IF CRRIAP[0] NQ RCIA"APF"
- THEN # APPLICATION HAS NOT FAILED #
- BEGIN
- P<ACB> = ATACBA[ACNBIAN[0]]; # ADR OF ACB TO QUEUE CON/ACRQ/A#
- IF ACBERCNT[0] LS MAXLGERR
- THEN # OKAY TO GENERATE CON/ACRQ/A #
- BEGIN
- PARAMS1 = CRRIAP[0]; # REASON CODE FROM CR/IAP/A #
- PARAMS2 = P<ACNB>; # ADDRESS OF ACNB FOR CONNECTION#
- OVLNAME = HCACRQAP; # NAME OF OVERLAY TO LOAD #
- OVLCALL; # LAOD AND EXECUTE OVERLAY #
- END
- ELSE # REACHED MAX NO OF ERR SUP MSG #
- BEGIN
- IF ACBERCNT[0] EQ MAXLGERR
- THEN # REACHED MAX NO OF ERR SUP MSG #
- BEGIN
- PARAMS1 = RLG"IAL"; # ERR/LGL RC FOR TOO MANY ERRORS#
- OVLNAME = HLGLERRP; # NAME OF OVERLAY TO LOAD #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- END
- END
- END
- GOTO HCA ;
- HC13:
- #
- SACNB1 (ACTION NO.13)
- SWITCH ACNB - SEND CR/SWH/N AND CON/REQ/R
- #
- # CR/SWH/R CASE #
- P<SMNVF> = SMPTR + BLKHSIZE + ABHSIZE; # FWA OF CR/SWH/R TEXT #
- CRAC = CRSWAN[0] ;
- P<ACB> = ATACBA[CRAC] ; # ACB OF APPL TO BE SWITCHED TO #
- # SEND CR/SWH/N TO NVF #
- PARAMS1 = SMPTR; # SM BUFFER - CR/SWH/R #
- PARAMS2 = P<ACNB> ;
- PARAMS9 = STRTSX"CRSWH$" ;
- OVLNAME = STRTSWP; # OVERLAY NAME #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- IF P<ACB> NQ 0 AND NOT ATNVFN[CRAC] AND NOT ATNVFF[CRAC]
- THEN
- BEGIN # APPL TO SWITCH TO IS NETTED ON #
- # SWITCH ACNB FROM NVF TO NEW APPL #
- PARAMS4 = 0; # INITIALIZE FOR NOT RETURNING LOAND CN#
- IF ACNBPRID[0] NQ 0
- THEN
- BEGIN # IT IS LOANED CONN. #
- IF CRSWLST[0] GQ CRSWHSPR
- THEN
- BEGIN # RETURN TO PRIMARY APPL. #
- IF ACNBPRAF[0]
- THEN
- BEGIN # REAL PRIMARY HAS NETTED OFF BUT #
- PARAMS2 = 0 ; # ANOTHER APPLICATION HAS NETTED ON #
- PARAMS3 = RCRC"PAF" ; # WITH THE SAME AN #
- ACNBPRID[0] = 0 ; # CLEAR BECAUSE NO LONGER A LOAN CON#
- GOTO SENDCRN ; # RECONNECTION CONN. TO NVF WITH RC #
- END # 11B #
- ELSE
- BEGIN # REAL PRIMARY HAS NOT FAILED OR #
- PARAMS4 = ACNBPRACN[0]; # NETTED OFF. USE THE SAME ACN #
- # ZERO OUT THE SECONDARY ID IN ACNT ENTRY OF CONN #
- # CONNECTED TO PRIMARY APPLICATION. #
- P<ACB> = ATACBA[ACNBPRAN[0]] ; # ACB OF PRIMARY #
- P<ACNT> = ACBACNT[0] ;
- INDEX = ACNBPRACN[0] + ACNTHSIZE - ACNTMINACN[0] ;
- ACNTSECID[INDEX] = 0 ;
- P<ACB> = ATACBA[CRAC] ; # RESET ACB ADDRESS #
- ACNBPRID[0] = 0 ; # CLEAR BECAUSE IT NO LONGER A LOANE#
- END # CONNECTION #
- END
- END # IT IS A LOANED CONN #
- PARAMS1 = ACBAD; # ADDRESS OF OLD ACB #
- PARAMS2 = ACN; # ADDRESS OF OLD CONNECTION NUMBER #
- PARAMS3 = P<ACB>; # ADDRESS OF NEW ACB #
- PARAMS8 = FALSE; # SET NOT LOANED CONNECTION SWITCH #
- OVLNAME = HSWACNBP; # NAME OF OVERLAY TO LOAD #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- IF PARAMS1 EQ 0 # NO NEW ACNB WAS ASSIGNED #
- THEN
- BEGIN # CAN NOT ASSIGN NEW CONN. #
- PARAMS2 = 0 ; # PRESET TO ZERO #
- IF ACNBPRID[0] NQ 0
- THEN
- BEGIN # SWITCH FROM SECONDARY APPL. #
- IF NOT ACNBPRAF[0]
- THEN
- BEGIN # PRIMARY APPL. NOT GONE YET #
- P<ACB> = ATACBA[ACNBPRAN[0]] ; # ACB OF PRIMARY #
- # ZERO OUT THE SECONDARY ID IN ACNT ENTRY OF CONN #
- # CONNECTED TO PRIMARY APPLICATION. #
- CURACNT = P<ACNT> ;
- P<ACNT> = ACBACNT[0] ;
- INDEX = ACNBPRACN[0] + ACNTHSIZE - ACNTMINACN[0] ;
- ACNTSECID[INDEX] = 0 ;
- P<ACNT> = CURACNT; # RESET ACNT ADDRESS #
- PARAMS2 = ACBANAME[0] ; # SET APPL NAME IN CR TO PRIM #
- PARAMS3 = RCRC"SRC" ; # REASON CODE IN CR/RCN = 25B #
- END # PRIMARY HAS NOT GONE #
- ELSE
- BEGIN
- PARAMS3 = RCRC"PAF" ; # PRIM IS GONE, REASON CODE IS 9#
- ACNBPRID[0] = 0 ; # #
- END
- END # SWITCH FROM SECOND APPL. #
- ELSE
- PARAMS3 = RCRC"ARC" ;
- GOTO SENDCRN ; # SEND CR/CRN/R TO NVF #
- END # CONN. CAN NOT BE ASSIGNED #
- ELSE
- BEGIN # NEW CONN. ASSIGNED #
- P<ACNB> = PARAMS1; # ADDRESS OF NEW ACNB #
- IF CRSWLST[0] EQ CRSWHSOK
- THEN
- BEGIN # SWITCHING FROM PRIM TO SECOND #
- IF NOT ACNBPRAF[0] # PRIMARY NOT FAILED #
- THEN
- BEGIN
- OLDAN = ACBAN[0] ; # AN OF SECONDARY #
- P<ACB> = ATACBA[ACNBPRAN[0]] ; # ACB OF PRIMARY #
- P<ACNT> = ACBACNT[0] ; # UPDATE SECID FIELD IN ACNT #
- ACNTINDX = ACNBPRACN[0] + ACNTHSIZE - ACNTMINACN[0] ;# OF#
- ACNTSECAN[ACNTINDX] = OLDAN ; # PRIMARY APPLICATION #
- ACNTSECACN[ACNTINDX] = ACNBACN[0] ;
- END
- P<ACB> = ATACBA[CRAC] ; # SET TEMPLATE BACK TO SECODARY #
- END
- # SEND CON/REQ/R TO APPLCATION #
- PARAMS1 = SMPTR; # ADDR OF CR/SWH/R BUFFER #
- PARAMS2 = P<ACNB>; # ACNB OF NEW CONN (NVF-S ACNB) #
- PARAMS9 = STRTSX"CONREQ$" ;
- OVLNAME = STRTSWP; # OVERLAY NAME #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- # BASE ACNT TO NEW APPLICATION-S ACNT #
- P<ACNT> = ACBACNT[0];
- ACNTINDX = ACNBACN[0] + ACNTHSIZE - ACNTMINACN[0];
- END
- END
- ELSE
- BEGIN # APPL SWITCHING TO FAILED OR NETTED OFF #
- # SEND RECONNECT (CR/RCN/R) TO NVF #
- PARAMS2 = 0 ; # PRESET TO ZERO #
- IF ACNBPRID[0] NQ 0
- THEN
- BEGIN # FROM SECONDARY APPL #
- IF NOT ACNBPRAF[0]
- THEN
- BEGIN # PRIMARY NOT GONE YET #
- P<ACB> = ATACBA[ACNBPRAN[0]] ; # ACB OF PRIMARY #
- # ZERO OUT THE SECONDARY ID IN ACNT ENTRY OF CONN #
- # CONNECTED TO PRIMARY APPLICATION. #
- CURACNT = P<ACNT> ;
- P<ACNT> = ACBACNT[0] ;
- INDEX = ACNBPRACN[0] + ACNTHSIZE - ACNTMINACN[0] ;
- ACNTSECID[INDEX] = 0 ;
- P<ACNT> = CURACNT ; # RESET ACNT ADDRESS #
- PARAMS2 = ACBANAME[0] ; # PRIM APPL. NAME #
- PARAMS3 = RCRC"SNA" ; # REASON ON CR/CRN/R = 26B #
- END
- ELSE
- BEGIN
- PARAMS3 = RCRC"PAF" ; # RC = 11B #
- ACNBPRID[0] = 0 ; # #
- END
- END
- ELSE
- PARAMS3 = RCRC"ANF" ;
- SENDCRN:
- PARAMS1 = P<ACNB> ;
- PARAMS4 = CRSWAN[0]; # AN OF APPL WHICH FAILED OR NETTED OFF #
- OVLNAME = HCRRCNRP; # OVERLAY NAME #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- # CHANGE STATE TO 6 #
- NEWSTATE[0] = HCRCNVF; # RECONNECT TO NVF INITIATED #
- END
- GOTO HCA;
- HC14:
- #
- DLACNB5 (ACTION NO. 14)
- RECEIPT OF CR/TRM/R FROM NVF
- SEND CR/TRM/N AND CON/CB/U
- #
- # SEND CR/TRM/N TO NVF #
- PARAMS1 = SMPTR;
- P<SUPMSG> = SMPTR + AIPHSIZE + ABHSIZE; # FWA OF CR/TRM/R #
- RCBRK = CRRTRM[0]; # SAVE REASON CODE FOR BRK #
- OVLNAME = HCRTRMNP; # OVERLAY NAME #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- # SEND CON/CB/U TO APPLICATION #
- PARAMS1 = RCBRK; # REASON CODE FROM CR/TRM/R #
- PARAMS2 = P<ACNB>; # ACNB ADDRESS OF CONN TO TERMINATE #
- OVLNAME = HCONCBUP; # OVERLAY NAME #
- PARAMS3 = 0 ;
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- GOTO HCA;
- HC15:
- #
- CRTRMN1 (ACTION NO. 15)
- RECEIPT OF CR/TRM/R FROM NVF
- SEND CR/TRM/N TO NVF
- (SEND CON/ACRQ/A TO APPL)
- #
- P<SMNVF> = SMPTR + AIPHSIZE + ABHSIZE;
- RCBRK = CRRTRM[0]; # REASON FOR BRK #
- PARAMS1 = SMPTR;
- OVLNAME = HCRTRMNP;
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- #
- SEND CON/ACRQ/A TO APPL
- #
- IF ACNBBS[0] EQ (ACNBSIZE+ACNBAPEN) # A-A CONNECTION ACNB #
- THEN
- BEGIN
- P<ACB> = ATACBA[ACNBIAN[0]] ;
- IF P<ACB> NQ 0
- THEN
- BEGIN # ACB STILL THERE #
- IF ACBERCNT[0] LS MAXLGERR
- THEN # OKAY TO GENERATE CON/ACRQ/A #
- BEGIN
- PARAMS1 = RCBRK; # REASON CODE FOR TERMINATION #
- PARAMS2 = P<ACNB>; # ADDRESS OF ACNB FOR CONNECTION#
- OVLNAME = HCACRQAP; # NAME OF OVERLAY TO LOAD #
- OVLCALL; # LAOD AND EXECUTE OVERLAY #
- END
- ELSE # REACHED MAX NO OF ERR SUP MSG #
- BEGIN
- IF ACBERCNT[0] EQ MAXLGERR
- THEN # REACHED MAX NO OF ERR SUP MSG #
- BEGIN
- PARAMS1 = RLG"IAL"; # ERR/LGL RC FOR TOO MANY ERRORS#
- OVLNAME = HLGLERRP; # NAME OF OVERLAY TO LOAD #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- END
- END
- END # ACB STILL THERE #
- END
- GOTO HCA;
- HC16:
- #
- CRTRMN2 (ACTION NO. 16)
- RECEIPT OF CR/TRM/R FROM NVF
- SEND CR/TRM/N TO NVF
- #
- P<SMNVF> = SMPTR + AIPHSIZE + ABHSIZE;
- RCBRK = CRRTRM[0]; # REASON FOR BRK #
- PARAMS1 = SMPTR;
- OVLNAME = HCRTRMNP;
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- GOTO HCA;
- HC17:
- #
- RECEIVED CON/ACRQ/SM FROM APPLICATION
- #
- PARAMP1 = 0 ; # NO MESSAGE YET FROM NETWORK SIDE #
- CRACNBP ; # CALL INTERNAL PROC TO BUILD ACNB #
- P<AHEADER> = SMPTR + BLKHSIZE; # BASE APPLICATION HEADER #
- ACNBABN[0] = ABHABN[0]; # APPLICATION BLOCK NUMBER #
- #
- AND SEND CR/IAP/R TO NVF
- #
- PARAMS1 = 0 ; # INDICATE FIRST CALL #
- PARAMS2 = ACN ;
- P<SUPMSG> = SMPTR+AIPHSIZE+ABHSIZE;
- ACNBANM[0] = CONANM[0] ; # STORE REQUESTED APPLICATION NAME #
- ACNBHID[0] = CONHID [0] ; # STORE HOST ID #
- ACNBIAN[0] = ACBAN[0] ;
- ACNBLID[0] = CONULID[0] ;
- PARAMS3 = ACNBIAN[0] ;
- PARAMS4 = P<ACNB> ; # SO THAT OVERLAY CAN RETRIEVE VALUES #
- PARAMS7 = P<AHEADER>; # PASS CONACRQ HEADER ADDRESS #
- OVLNAME = HCRIAPRP; # SEND CR/IAP/R TO NVF #
- OVLCALL ;
- GOTO HCA;
- HC18:
- #
- UACNB3 (ACTION NO. 18)
- UPDATE ACNB AND SEND CR/ACC/U TO NVF
- #
- PARAMS1 = P<ACNB>; # ADDR OF APPL CONNECTION BLOCK #
- PARAMS2 = SMPTR; # ADDR OF CON/REQ/N SM BUFFER #
- PARAMS3 = 0;
- PARAMS9 = SENDX"UACNB3$" ;
- OVLNAME = SENDACCP; # OVERLAY NAME #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- # SEND CR/ACC/U #
- PARAMS1 = P<ACNB>;
- PARAMS9 = SENDX"CRACC$";
- OVLNAME = SENDACCP; # OVERLAY NAME #
- OVLCALL;
- IF PARAMS3 NQ 0
- THEN
- BEGIN # BAD INPUT CHAR TYPE-BREAK CONNECTIONS
- AND RECONNECT TO NVF #
- TRIGB[0] = NOCHG;
- PARAMS1 = PARAMS3; # REASON CODE FOR CON/CB #
- PARAMS2 = P<ACNB>; # ACNB OF CONN TO BREAK #
- OVLNAME = HCONCBUP; # OVERLAY NAME #
- PARAMS3 = 0 ;
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- END
- GOTO HCA;
- HC20:
- #
- SFCINAC ( ACTION NO. 20 )
- SEND FC/INACT/SM TO APPLICATION
- #
- PARAMS1 = P<ACB>; # ADDRESS OF ACB #
- PARAMS2 = ACNBACN[0]; # APPLICATION CONNECTION NUMBER #
- OVLNAME = HSFCINAP; # NAME OF OVERLAY TO LOAD #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- GOTO HCA;
- HC21:
- #
- SACNB3 (ACTION NO. 21)
- SWITCH ACNB - SEND CR/RCN/R AND CON/END/N
- #
- # CON/END/R CASE
- SWITCH ACNB FROM APPL TO NVF
- #
- P<SUPMSG> = SMPTR + BLKHSIZE + ABHSIZE; # FWA OF CON/END/R #
- # FLAG TO RELACNB NOT TO FREE THE #
- # ACNT ENTRY ASSO. WITH THIS ACNB #
- PARAMS1 = ACBAD; # ADDRESS OF OLD ACB #
- PARAMS2 = ACN; # ADDRESS OF OLD CONNECTION NUMBER #
- PARAMS3 = ATACBA[NVFAN]; # ADDRESS OF NEW ACB #
- PARAMS4 = 0; # NOT RETURNING LOANED CON TO PRI APP #
- PARAMS8 = CONLOAN[0]; # LOAN CONNECTION FLAG #
- OVLNAME = HSWACNBP; # NAME OF OVERLAY TO LOAD #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- # BASE ACNT TO NVF-S NEW CONNECTION JUST SWITCHED TO #
- OLDAN = ACBAN[0]; # APPLIC. NO. OF APPL ENDING CONNECTION #
- P<ACNB> = PARAMS1; # ADDRESS OF NEW ACNB #
- PARAMS7 = SMPTR ;
- PARAMS5 = FALSE ; # CLEAR LOAN BIT FOR CON/END/N #
- PARAMS8 = FALSE ; # ASSUMING LENDING IS O.K. #
- IF ACNBPRID[0] NQ 0
- THEN
- BEGIN # SEC. APPL. SEND CON/END/R ON LOANED CON#
- IF CONLOAN[0]
- THEN
- BEGIN # LENDING IS NOT O.K. #
- RC[0] = 1 ; # SET REASON CODE IN CON/END/N FOR #
- PARAMS8 = TRUE ;
- END
- # NO FORWARDING INDICATION, CONNECTION NOW #
- # SWITCHED BACK TO PRIMARY APPLICATION #
- IF CONANM[0] EQ "ABORT"
- THEN
- BEGIN # SEC. APPL. ABORTED CON #
- PARAMS1 = RCB"LCA" ; # REASON OF ABORTTING ON #
- PARAMS2 = P<ACNB> ; # CON/CB/R TO PRIMARY APPL.#
- OVLNAME = HCONCBUP ;
- OVLCALL ;
- PARAMS1 = P<ACNB>; # PASS ACNB ADDR TO SEC OVERLAY #
- PARAMS3 = RCRC"SAC" ; # RC = 12B REASON CODE OF CR/RCN/R #
- PARAMS2 = 0 ; # NO APPL. NAME IN CR/RCN #
- END # SEC. APPL. ABORTED CON #
- ELSE
- BEGIN # SEC APPL. PASSES CON TO #
- # ANOTHER APPL. #
- IF NOT ACNBPRAF[0]
- THEN
- BEGIN # PRI. APPL. NOT ABORTED #
- # RECON TO PRIMARY APPL. #
- PARAMS3 = RCRC"STC" ; # RC = 24B REASON CODE OF CR/CRN #
- P<ACB> = ATACBA[ACNBPRAN[0]] ; # ACB OF PRIM. APPL. #
- PARAMS2 = ACBANAME[0] ; # NAME OF PRIMARY APPL. #
- END
- ELSE
- BEGIN # PRIM APPL. HAS ABORTED #
- PARAMS3 = RCRC"PAF" ; # RC = 11B REASON CODE ON CR/CRN #
- PARAMS2 = 0 ; # NO APPL. NAME #
- ACNBPRID[0] = 0 ;
- END
- END # SEC. APPL. PASSED CON #
- END # SEC. APPL. SENDS CON/END ON LOANED CON #
- ELSE
- BEGIN # CON/END/R FROM PRIM. APPL. #
- PARAMS2 = CONUANM[0] ; # NEXT APPLICATION NAME #
- IF CONLOAN[0]
- THEN
- BEGIN # LOAN BIT IS ON #
- P<NCNB> = ACNBNCNB[0] ;
- IF P<NCNB> NQ 0
- AND ( NCNBDT[0] EQ DT$INTA # INTRA-HOST CONNECTN #
- OR NCNBDT[0] EQ DT$INTE ) # INTER-HOST #
- THEN
- BEGIN # DO NOT LOAN THIS CONNECTION, TERMI#
- RC[0] = 02 ; # NATE CONN. AND SEND CON/END/N WITH#
- # REASON CODE 2 #
- PARAMS3 = RCRC"ATC" ; # NORMAL TERMINATION REASON CODE #
- PARAMS2 = 0 ; # CLEAR NEXT APPLICATION NAME #
- PARAMS8 = TRUE ; # LENDING NOT O.K., FOR CON/END/N #
- END
- ELSE
- BEGIN # PRIM. APPL. TRYING TO LOAN CON TO SEC. APL#
- ACNBPRAN[0] = OLDAN ; # SAVE OLD APPL. NUM. #
- ACNBPRACN[0] = ACN ; # SAVE OLD ACN IN SEC ACN#
- ACNTWD[ACNTINDX] = 0 ; # CLEAR UP THE ENTRY #
- ACNTSECAN[ACNTINDX] = NVFAN ; # NVF 'S AN #
- ACNTSECACN[ACNTINDX] = ACNBACN[0];# ACN OF THIS CON IN NVF #
- PARAMS3 = RCRC"LSA" ; # RC = 10B REASON CODE TO NVF FOR #
- PARAMS5 = TRUE ; # SET LOAN BIT INDICATOR FOR #
- # CON/END/N PROCESSOR #
- # LOANED CONNECTION #
- END
- END # LOAN BIT IS ON #
- ELSE
- PARAMS3 = RCRC"ATC" ; # NORMAL RECONNECT #
- END # CON/END/R FROM PRIM. APPL. #
- P<ACB> = ATACBA[NVFAN] ; # SET BASE TO NVF 'S #
- P<ACNT> = ACBACNT[0] ;
- ACNTINDX = ACNBACN[0] + ACNTHSIZE - ACNTMINACN[0] ;
- # SEND CR/RCN/R TO NVF #
- PARAMS4 = OLDAN; # AN OF APPL ENDING CONNECTION #
- OVLNAME = HCRRCNRP; # OVERLAY NAME #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- # SEND CON/END/N TO APPLICATION #
- PARAMS1 = SMPTR; # SM BUFFER (CON/END/R) #
- PARAMS2 = OLDAN; # AN OF APPL ENDING CONNECTION #
- OVLNAME = HCONENDP; # OVERLAY NAME #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- GOTO HCA;
- HC27:
- #
- UCRCBU ( ACTION 27 )
- SENDING CR/BU/U TO NVF ONLY
- #
- HC22:
- #
- GOCRCNE ( ACTION NUMBER 22 )
- SEND CR/CB/U TO NVF
- AND CON/END/N TO APPLICATION (BY ACTION 26)
- #
- PARAMS2 = P<ACNB> ;
- OVLNAME = HCRCBUP ;
- OVLCALL ;
- IF ACTION[0] EQ UCRCBU
- THEN
- GOTO HCA ; # SENDING CR/CB/U ONLY #
- # CONTINUE ACTION 26 TO SEND CON/END/N #
- HC26:
- #
- NCONEND (ACTION NO. 22)
- SEND CON/END/N TO APPLICATION
- #
- PARAMS1 = SMPTR; # SM BUFFER (CON/END/R) #
- PARAMS2 = ACBAN[0];
- PARAMS5 = FALSE ; # NO LOANED FLAG ON #
- OVLNAME = HCONENDP; # OVERLAY NAME #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- # NO LONGER PART OF NWL #
- GOTO HCA;
- HC23:
- #
- UPACNB4 (ACTION NO. 23)
- UPDATE ACNB ON RECEIPT OF CR/RCN/N
- #
- PARAMS1 = P<ACNB>; # ADDR OF APPLICATION CONNECTION BLOCK #
- PARAMS2 = SMPTR; # ADDR OF CR/RCN/N SM BUFFER #
- OVLNAME = UPACNB4P; # OVERLAY NAME #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- GOTO HCA;
- HC24:
- #
- ACTION 24 - SEND CR/IAP/R TO NVF WITH RC FROM ICN/AP/A
- #
- P<SMNIP> = SMPTR + ABHSIZE + BLKHSIZE; # GET THE ICN/AP/A #
- PARAMS1 = ICNRAP[0] ; # GET THE REASON CODE #
- PARAMS2 = ACN ;
- PARAMS3 = 0 ; # THIS IS NOT THE FIRST CALL #
- PARAMS4 = P<ACNB> ;
- PARAMS7 = 0; # NO OLD AHEADER NEEDED #
- OVLNAME = HCRIAPRP ; # SEND CR/IAP/R TO NVF #
- OVLCALL ;
- GOTO HCA ;
- HC25:
- #
- ACTION 25 : CHANGE PWL HEADER TO APPL. BLOCK HEADER
- THEN LINK TO APPROPPRIATE ACB.
- #
- MGETS(BLKHSIZE+ABHSIZE+LXFTN,BUFFERADR,TRUE);# GET BUFFER TO HOLD#
- # IFT OR OFT/OFF/N#
- P<PWLHDR> = SMPTR ;
- P<AHEADER> = BUFFERADR + BLKHSIZE ;
- ABHWORD[0] = 0 ;
- ABHABT[0] = APPCMD ;
- ABHACT[0] = CT60TRANS ;
- ABHTLC[0] = LXFTN ;
- P<SUPMSG> = BUFFERADR + BLKHSIZE + ABHSIZE ;
- SPACN[0] = ACN ; # SEND AS ASYN SM #
- IF PWLRC[0] EQ OFTRC
- THEN
- PFCSFC[0] = OFTOFFN ;
- IF PWLRC[0] EQ IFTRC
- THEN
- PFCSFC[0] = IFTOFFN ;
- BLINK(BUFFERADR,P<ACB>) ;
- OSCHAPP(P<ACB>); # SWAP IN APPLICATION #
- GOTO HCA;
- HC28:
- IF ACNBPRID[0] NQ 0
- THEN
- BEGIN # CR/RCN/A RECEIVED ON LOANED CN#
- PARAMS1 = P<ACNB> ;
- IF NOT ACNBPRAF[0]
- THEN
- BEGIN # PRIM APPL. HAS NOT GONE #
- P<ACB> = ATACBA[ACNBPRAN[0]] ; # ACB IF PRIMARY APPL. #
- PARAMS4 = ACBAN[0] ; # APPLICATION TO RECONN TO #
- CURACNT = P<ACNT> ;
- P<ACNT> = ACBACNT[0] ;
- INDEX = ACNBPRACN[0] + ACNTHSIZE - ACNTMINACN[0] ;
- ACNTSECID[INDEX] = 0 ;
- P<ACNT> = CURACNT ; # RESET ACNT ADDRESS #
- P<SMNVF> = SMPTR + BLKHSIZE + ABHSIZE ; # CR/RCN/A MESSAGE #
- PARAMS2 = ACBANAME[0] ; # SO, SWITCH CON BACK TO PRI APP#
- PARAMS3 = CRRRCN[0] ; # BY SENDING CR/RCN/R TO NVF #
- # WITH REASON FROM CR/RCN/A #
- END # PRIM HAS NOT GONE #
- ELSE
- BEGIN # PRIM APPL. HAS NETOFFED/FAILED#
- PARAMS2 = 0 ; # NULL APPLICATION'S NAME #
- PARAMS3 = RCRC"PAF" ;# RC = 11B REASON CODE OF CR/RCN/R IS 11B#
- PARAMS4 = ACBAN[0] ;
- ACNBPRID[0] = 0 ; # #
- END
- OVLNAME = HCRRCNRP ; # SEND CR/RCN/R TO NVF #
- OVLCALL ;
- END # CR/RCN/A RECEIVED ON LOANED CN#
- ELSE
- ABORT(DFMSG30,0) ; # ABORT NIP, BECAUSE OF NVF ERR #
- HCA:
- IF NEWSTATE[0] NQ STATX
- THEN
- BEGIN
- ACNTCOS[ACNTINDX] = CURST; # OLD CONNECTION STATE #
- ACNTCTR[ACNTINDX] = TRIGGER; # OLD CONNECTION TRIGGER #
- IF NEWSTATE[0] NQ NOCHG
- THEN
- ACNTCS[ACNTINDX] = NEWSTATE[0]; # UPDATE NEW STATE #
- END
- IF TRIGC[0] NQ NOCHG
- THEN # TRIGGER CONNECTION STATE TABLE #
- BEGIN
- IF LLCBAD EQ 0
- THEN
- BEGIN # THIS IS NOT AN A-A CASE WITH LL PRE-ALLOCATED#
- P<NCNB> = ACNBNCNB[0];
- NCN = NCNBCN[0] ; # NETWORK CONNECTION NUMBER #
- CONTROL IFEQ DEBUG,1;
- IF P<NCNB> EQ 0
- THEN # VALID CHECK FOR T-A ONLY #
- BEGIN
- D27M2[0] = "HCSTTP1";
- ABORT(DFMSG27,0);
- END
- CONTROL FI;
- LOCLLCB(NCNBHN[0],NCNBTN[0],LLCBAD);
- CONTROL IFEQ DEBUG,1;
- IF LLCBAD EQ 0
- THEN
- BEGIN
- D27M2[0] = "HCSTTP2";
- ABORT(DFMSG27,0);
- END
- CONTROL FI;
- END
- NCSTTP(LLCBAD,NCN,TRIGC[0],SMPTR); # CALL NETWORK-SIDE #
- END
- IF TRIGB[0] NQ NOCHG
- THEN
- HBSTTP(P<ACNB>,TRIGB[0],0);
- END
- ELSE
- BEGIN # ILLEGAL TRIGGER #
- IF TRIGGER LS HCMINXT OR TRIGGER GR HCMAXXT
- THEN
- BEGIN # TRIGGER INTERNAL TO NIP #
- PARAMS1 = ACBAN[0]; # APPLICATION NUMBER #
- PARAMS2 = ACN; # APPLICATION CONNECTION NUMBER #
- PARAMS3 = TRIGGER; # ILLEGAL TRIGGER NUMBER #
- PARAMS4 = CURST; # CURRENT CONNECTION STATE #
- PARAMS6 = "HCSTTP"; # NAME OF STATE TABLE PROCESSOR #
- OVLNAME = STPHERRP; # ISSUE STP ERROR MESSAGE #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- ABORT(0,0); # ABORT NIP #
- END
- ELSE
- BEGIN # ILLEGAL EXTERNAL TRIGGER FROM APP #
- # ISSUE ERR/LGL TO APPLICATION #
- PARAMS1 = RLG"ISM"; # RC=7 ILLOGICAL SM #
- OVLNAME = HLGLERRP; # SEND ERR/LGL TO APP #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- END
- END
- END
- ELSE
- BEGIN
- PARAMS1 = DFMSG26;
- PARAMS6 = "HC";
- OVLNAME = XERRMSGP;
- OVLCALL;
- END
- HC77:
- #
- EXIT
- #
- RETURN;
- END
- PROC CRACNBP ; # CREATE ACNB #
- BEGIN
- IF PARAMP1 EQ 0
- THEN
- BEGIN # WE HAVE TO CREATE AN ACNB TO NVF #
- PARAMP2 = ATACBA[NVFAN] ;
- END
- ELSE
- PARAMP2 = P<ACB> ;
- PARAMP5 = STRTCX"BACNB$" ;
- OVLNAME = STRTCONP; # BUILD ACNB #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- P<ACNB> = PARAMP3; # BASE ACNB #
- P<ACNT> = PARAMP4; # BASE ACNT #
- ACN = ACNBACN[0]; # APPLICATION CONNECTION NUMBER ASSIGNED #
- ACNTINDX = ACN + ACNTHSIZE - ACNTMINACN[0];
- RETURN ;
- END
- END
- TERM
1)
ACBAD),(ACN),(TRIGGER),(SMPTR
cdc/nos2.source/nam5871/hcsttp.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator