cdc:nos2.source:nam5871:cscant
Table of Contents
CSCANT
Table Of Contents
- [00005] PROC CSCANT
- [00006] CSCANT - ACCEPT NOP TYPEIN.
- [00010] ACCEPT NOP TYPEIN.
- [00045] PROC SSTAQE
Source Code
- CSCANT.txt
- *DECK CSCANT
- USETEXT TEXTCS
- USETEXT TEXTSS
- USETEXT TXTAPSS
- PROC CSCANT;
- # TITLE CSCANT - ACCEPT NOP TYPEIN. #
- BEGIN # CSCANT #
- #
- ** CSCANT - ACCEPT NOP TYPEIN.
- *
- * D. G. DEPEW. 81/06/05.
- *
- * THIS PROCEDURE HANDLES INBOUND DATA (SYNCHRONOUS) BLOCKS FROM THE
- * NETWORK. ITS FUNCTION IS TO FORWARD THE TYPEIN TO THE I-LAYER
- * (FOR COMMAND PROCESSING) OR DISCARD IT, AS APPROPRIATE.
- *
- * ENTRY WCBUF[0] = WORD COUNT WORD FROM ORIGINAL CONNECTION
- * TRAFFIC QUEUE (*CNQ*) ENTRY.
- * ABHBUF[0] = APPLICATION BLOCK (EVENT) HEADER FOR THE DATA
- * (BASED ARRAY *ABH* IN *TXTAPSS* POINTS HERE).
- * MSGBUF[0] = DISPLAY CODED TEXT LINE (BASED ARRAY *APSM*
- * IN *TXTAPSS* POINTS HERE).
- *
- * EXIT ONE OF THE FOLLOWING:
- * - AN ENTRY FOR THE TYPEIN IS PLACED IN THE OPERATOR
- * TYPEIN QUEUE (*OPTQ*) AND THE STATE IS UPDATED.
- * - THE TYPEIN IS IGNORED.
- * - THE TYPEIN IS DISGARDED AND A TERMINAL TEXT ENTRY
- * CONTAINING THE MESSAGE *INPUT IGNORED..* IS PLACED IN
- * CONNECTION TRAFFIC QUEUE (*CNQ*).
- *
- * NOTES 1. CS ONLY PROCESSES *MSG* TYPE NETWORK BLOCKS. ANY
- * OTHER TYPE OF SYNCHRONOUS INBOUND DATA (*BLK* BLOCKS
- * AND TRANSPARENT MODE INPUT) IS IGNORED AND THE MESSAGE
- * *INPUT IGNORED..* IS SENT TO THE TERMINAL.
- * 2. THE PROCESSING IS DEFINED BY THE CS/NOP C-LAYER STATE
- * DIAGRAM.
- #
- #
- **** PROC CSCANT - XREF LIST.
- #
- XREF
- PROC SSTAQE; # ACCEPT QUEUE ENTRY #
- #
- ****
- #
- DEF IGTLW$ #2#; # *INPUT IGNORED..* TEXT LENGTH IN WORDS #
- ITEM NACN; # NOP ACN = ORDINAL OF ACN LIST ENTRY #
- #
- * ABH AND SM BODY ARRAYS FOR LST/ON/SM.
- #
- ARRAY LONABH [00:00] S(1);
- BEGIN
- ITEM LOH$ABT U(00,00,06) = [APPCMD]; # BLOCK TYPE #
- ITEM LOH$ADRABN U(00,06,30) = [0]; # ADDR, BLOCK NR #
- ITEM LOH$ACT U(00,36,04) = [CT60TRANS]; # CHARACTER TYPE #
- ITEM LOH$DBC U(00,40,08) = [0]; # CLARIFIER #
- ITEM LOH$TLC U(00,48,12) = [LLST]; # TEXT LENGTH #
- END
- ARRAY LONSM [00:00] S(1);
- BEGIN
- ITEM LOM$PSFC U(00,00,16) = [LSTON]; # PFC/SFC #
- ITEM LOM$RES1 U(00,16,08) = [0]; # RESERVED #
- ITEM LOM$ACN U(00,24,12); # CONNECTION NUM #
- ITEM LOM$RES2 U(00,36,24) = [0]; # RESERVED #
- END
- ARRAY IGNORE [00:00] S(IGTLW$);
- BEGIN
- ITEM I$TEXT C(00,00,15) = ["INPUT IGNORED.."];
- ITEM I$ZERO U(01,30,30) = [0];
- END
- #
- * SAVE THE NOP'S ACN NUMBER. TAKE A MAIN BRANCH DEPENDING UPON THE
- * APPLICATION BLOCK TYPE.
- #
- NACN = ABHADR[0];
- IF ABHABT[0] EQ APMSG
- THEN # MUST PROCESS THIS BLOCK #
- BEGIN
- #
- * IF THE CONNECTION IS ACTIVE, FORWARD THE TYPEIN TO THE I-LAYER
- * AND SET THE STATE OF THE CONNECTION TO INDICATE THAT A COMMAND
- * IS IN PROGRESS. HOWEVER, IF THE CANCEL INPUT FLAG IS SET,
- * IGNORE THE TYPEIN AND ISSUE A LST/ON/SM TO TURN AROUND THE
- * HALF DUPLEX OPERATION. DISCARD THE TEXT FOR ANY OTHER STATE.
- #
- IF ACN$NOPST[NACN] EQ S"ACTIVE"
- THEN # ALL IS WELL #
- BEGIN
- IF ABHCAN[0] NQ 0
- THEN # HOP HAS CANCELLED TYPEIN #
- BEGIN
- WCB$WORD[1] = LLST + 2;
- LOM$ACN[0] = NACN;
- SSTAQE (P<OTQ>, WCBUF[1], LONABH[0], LONSM[0]);
- END
- ELSE
- BEGIN
- SSTAQE (P<OPTQ>, WCBUF[0], ABHBUF[0], MSGBUF[0]);
- ACN$NOPST[NACN] = S"COMMAND";
- END
- END
- #
- * IF THE CONNECTION IS IN THE CLEAR INPUT STATE, THEN SEND A
- * LST/ON/R TO GET THE NEXT MSG BLOCK.
- #
- ELSE IF ACN$NOPST[NACN] EQ S"CLEARI"
- THEN
- BEGIN
- WCB$WORD[1] = LLST + 2;
- LOM$ACN[0] = NACN;
- SSTAQE(P<OTQ>, WCBUF[1], LONABH[0], LONSM[0]);
- END
- END # *MSG* BLOCK #
- ELSE # UNACCEPTABLE INPUT #
- BEGIN
- #
- * DISCARD THE INPUT BLOCK. IF IT IS A *BLK* BLOCK OR TRANSPARENT
- * INPUT, AND THE CONNECTION IS ACTIVE, SEND THE *INPUT IGNORED..*
- * MESSAGE. (I.E., DON'T SEND THE MESSAGE FOR OTHER CONDITIONS
- * SUCH AS A NULL BLOCK WITH THE BREAK OCCURRED FLAG SET.)
- #
- IF ACN$NOPST[NACN] EQ S"ACTIVE"
- AND (ABHABT[0] EQ APPBLK OR ABHXPT[0] EQ 1)
- THEN
- BEGIN
- WCB$WORD[1] = IGTLW$ + 2; # TERM TEXT NTRY SIZ, IAF=FALSE #
- WCB$SMID[1] = SMID"TTEXT";
- SSTAQE (P<CNQ>, WCBUF[1], ABHBUF[0], IGNORE);
- END
- END # UNACCEPTABLE INPUT #
- END # CSCANT #
- TERM
cdc/nos2.source/nam5871/cscant.txt ยท Last modified: 2023/08/05 17:21 by Site Administrator