cdc:nos2.source:nam5871:cssano
Table of Contents
CSSANO
Table Of Contents
- [00006] PROC CSSANO
- [00007] ACQUIRE NEW OPERATOR.
- [00010] ACQUIRE NEW OPERATOR.
- [00029] PROC SSBCBW
- [00030] PROC SSBSBW
- [00031] PROC SSTAQE
Source Code
- CSSANO.txt
- *DECK CSSANO
- USETEXT TEXTCS
- USETEXT TEXTSS
- USETEXT TXTAPSS
- USETEXT TXTSMCS
- PROC CSSANO;
- # TITLE - ACQUIRE NEW OPERATOR. #
- BEGIN
- #
- ** CSSANO - ACQUIRE NEW OPERATOR.
- *
- * D.K. ENDO 82/03/09
- *
- * THIS PROCEDURE, GIVEN A HOP/STRT OR A CON/REQ, INITIALIZES THE
- * APPROPRIATE OCB AND MAKES QUEUE ENTRIES AS NEED FOR THE OPERATOR
- * CONNECTION.
- *
- * ENTRY 1. ENTRIES IN THE PROTOCOL EVENT QUEUE.
- *
- * EXIT 1. APPROPRIATE OCB INITIALIZED.
- * 2. ENTRIES IN THE CONNECTION TRAFFIC QUEUE.
- *
- #
- #
- **** PROC CSSANO - XREF LIST BEGINS.
- #
- XREF
- BEGIN
- PROC SSBCBW; # CLEAR BIT IN WORD #
- PROC SSBSBW; # STORE BIT IN WORD #
- PROC SSTAQE; # ADD QUEUE ENTRY #
- END
- #
- ****
- #
- DEF INTMSG1L # 40 #; # INITIAL NOP MESSAGE LENGTH #
- DEF INTMSG2L # 50 #; # INITIAL DOP MESSAGE LENGTH #
- DEF NOP$BIT # 39 #; # NOP BIT POSITION IN AAWC WORD #
- DEF NTO$BIT # 49 #; # NO TIME OUT BIT POSITION IN AAWC WORD #
- DEF SHDMSGL # 30 #; # SHUT DOWN MESSAGE LENGTH #
- ITEM HR$WC I = 4; # HISTORY REQUEST QUEUE ENTRY WORD COUNT #
- ITEM I; # LOOP INDUCTION VARIABLE #
- #
- THE FOLLOWING BASED ARRAY IS USED TO POINT TO THE REPORT BIT
- MAPS IN THE NPUCB-S
- #
- BASED ARRAY FLG$WORD [00:00] S(NPCBSZ$);
- BEGIN
- ITEM FW$WORD I(00,00,60);
- END
- #
- THE FOLLOWING TWO ARRAYS DEFINE THE ENTRY AND HEADER OF AN ENTRY
- MADE TO THE HISTORY REQUEST QUEUE WHEN A HOP/STRT REQUEST COMES
- IN.
- #
- ARRAY HR$ENT [00:01] S(1);
- BEGIN
- ITEM HRE$TXT C(00,00,10) = ["HI."];
- ITEM HRE$VAL C(01,00,07) = ["HI0"];
- ITEM HRE$STYP C(01,42,03) = ["VEB"];
- END
- ARRAY HR$HDR [00:00] S(1);
- BEGIN
- ITEM HRH$SPC U(00,00,06) = [ 1 ];
- ITEM HRH$APC U(00,06,06) = [ 0 ];
- ITEM HRH$CWC U(00,12,06) = [ 1 ];
- ITEM HRH$OID U(00,18,12) = [ HOPORD$ ];
- ITEM HRH$CV C(00,30,03) = [ "HI0" ];
- ITEM HRH$CCC U(00,48,12) = [ 3 ];
- END
- #
- THE FOLLOWING ARRAYS ARE MESSAGES THAT ARE SENT TO THE NOP WHEN
- HE/SHE CONNECTS TO CS.
- #
- ARRAY INTMSG1 [00:00] S(4);
- BEGIN
- ITEM IM1$TXT C(00,00,35) =
- ["HELLO, YOU ARE NOW AN NPU OPERATOR."];
- ITEM IM1$ZBYT U(03,30,30) = [0];
- END
- ARRAY INTMSG2 [00:00] S(5);
- BEGIN
- ITEM IM2$TXT C(00,00,41) =
- ["HELLO, YOU ARE NOW A DIAGNOSTIC OPERATOR."];
- ITEM IM2$ZBYT U(04,06,54) = [0];
- END
- ARRAY SHDMSG [00:00] S(3);
- BEGIN
- ITEM SD$TXT C(00,00,28) =
- ["HOST IDLE DOWN IN PROGRESS."];
- ITEM SD$ZBYT U(02,48,12) = [0];
- END
- #
- THE FOLLOWING IS USED TO POINT TO THE APPROPRIATE MESSAGE TO BE
- SENT TO THE NOP
- #
- BASED ARRAY LINTXT [00:00] S(4);
- BEGIN
- ITEM LT$TXT C(00,00,40);
- END
- CONTROL EJECT;
- # #
- # CSSANO CODE BEGINS HERE #
- # #
- #
- * IF THIS SM IS A HOP/STRT, THEN SET THE PAGE LENGTH IN THE HOP-S
- * OCB THE DEFAULT K-DISPLAY VALUE, MAKE A HISTORY REQUEST QUEUE
- * ENTRY, SET STATE FOR HOP-S OCB, AND SET THE PROTOCOL CODE OF
- * THE PROTOCOL RESPONSE TO HOP/STRT/N. SEND THE PROTOCOL RESPONSE.
- * FOR EACH NPUCB SET THE REPORT FLAG FOR THE HOP.
- #
- IF WCB$SMID[0] EQ SMID"HOPSTRT"
- THEN
- BEGIN
- OC$TNAM[HOPORD$] = "HOSTCS";
- OC$PL[HOPORD$] = HOPLPL[0] - 1;
- OC$RPL[HOPORD$] = HOPRPL[0];
- OC$ACN[HOPORD$] = HOPORD$;
- OC$UNAM[HOPORD$] = " ";
- OC$TYPE[HOPORD$] = OPTYP"HOP";
- SSTAQE(P<HRQ>,HR$WC,HR$HDR,HR$ENT);
- WCB$SMID[1] = SMID"HOPSRTN";
- WCB$WC[1] = 2;
- ABHWORD[1] = 0;
- ABHADR[1] = HOPORD$;
- OC$STATE[HOPORD$] = TRUE;
- SSTAQE(P<CNQ>,WCBUF[1],ABH[1],CSSM[1]);
- P<FLG$WORD> = LOC(NPU$RFLGS[0]);
- FOR I=0 STEP 1 UNTIL CSNPCNT-1
- DO
- BEGIN
- SSBCBW(FLG$WORD[I],HOPORD$) ;
- END
- END
- ELSE
- #
- * IF THIS SM IS A CON/REQ, THEN SET TERMINAL NAME, USER NAME AND
- * PAGE LENGTH OF OCB TO CORRESPONDING FIELDS IN CON/REQ, SET THE
- * TIME OUT FLAG IN THE OCB ACCORDING THE CTIM BIT IN AAWC WORD.
- * IF CS SHUTDOWN IS IN PROGRESS, THEN SEND THE INITIAL MESSAGE WITH
- * THE INPUT ALLOWED FLAG CLEARED AND SEND IDLE DOWN MESSAGE WITH
- * THE FLAG SET, OTHERWISE JUST SEND THE INITIAL MESSAGE WITH THE
- * INPUT ALLOWED FLAG SET. SET THE PROTOCOL CODE OF PROTOCOL
- * RESPONSE TO CON/REQ/H. FOR EACH NPUB CLEAR THE REPORT FLAG FOR
- * THIS OPERATOR.
- #
- BEGIN
- OC$TNAM[CONACN[0]] = CONTNM[0];
- OC$ACN[CONACN[0]] = CONACN[0];
- OC$UNAM[CONACN[0]] = CONUSE[0];
- OC$PL[CONACN[0]] = CONPL[0];
- OC$STATE[CONACN[0]] = TRUE;
- IF B<NTO$BIT,1>CONAAWC[0] EQ 1
- THEN
- BEGIN
- OC$NTO[CONACN[0]] = TRUE;
- END
- ELSE
- BEGIN
- OC$NTO[CONACN[0]] = FALSE;
- END
- IF B<NOP$BIT,1>CONAAWC[0] EQ 1
- THEN
- BEGIN
- OC$TYPE[CONACN[0]] = OPTYP"NOP";
- END
- ELSE
- BEGIN
- OC$TYPE[CONACN[0]] = OPTYP"DOP";
- END
- WCB$WORD[1] = 0;
- WCB$SMID[1] = SMID"CONREQN";
- WCB$WC[1] = 2;
- ABHWORD[1] = 0;
- ABHADR[1] = ABHADR[0];
- SSTAQE(P<CNQ>,WCBUF[1],ABH[1],CSSM[1]);
- IF CSSTATE
- THEN # IF TRUE, THEN GRADUAL SHUT DOWN #
- BEGIN
- WCB$IAF[1] = FALSE;
- SSTAQE(P<CNQ>,WCBUF[1],ABH[1],LINTXT[0]);
- WCB$WC[1] = 2 + (SHDMSGL / 10);
- ABHTLC[1] = SHDMSGL;
- P<LINTXT> = LOC(SHDMSG);
- END
- ELSE IF OC$TYPE[CONACN[0]] EQ OPTYP"NOP"
- THEN
- BEGIN
- WCB$SMID[1] = SMID"TTEXT";
- WCB$WC[1] = 2 + (INTMSG1L / 10);
- ABHTLC[1] = INTMSG1L;
- P<LINTXT> = LOC(INTMSG1);
- END
- ELSE
- BEGIN
- WCB$SMID[1] = SMID"TTEXT";
- WCB$WC[1] = 2 + (INTMSG2L / 10);
- ABHTLC[1] = INTMSG2L;
- P<LINTXT> = LOC(INTMSG2);
- END
- WCB$IAF[1] = TRUE;
- SSTAQE(P<CNQ>,WCBUF[1],ABH[1],LINTXT[0]);
- P<FLG$WORD> = LOC(NPU$RFLGS[0]);
- FOR I=0 STEP 1 UNTIL CSNPCNT-1
- DO
- BEGIN
- SSBCBW( FLG$WORD[I] , ABHADR[0] );
- END
- END
- RETURN; # **** RETURN **** #
- END # CSSANO #
- TERM
cdc/nos2.source/nam5871/cssano.txt ยท Last modified: 2023/08/05 17:21 by Site Administrator