cdc:nos2.source:nam5871:nxblock
Table of Contents
NXBLOCK
Table Of Contents
- [00009] PROC NXBLOCK1)
- [00065] PROC MGETS
- [00066] PROC NFOB
- [00067] PROC XTRACE
Source Code
- NXBLOCK.txt
- *DECK NXBLOCK
- USETEXT NIPDEF
- USETEXT AHEADER
- USETEXT BACKBUF
- USETEXT DRHDR
- USETEXT NCNB
- USETEXT NHEADER
- USETEXT PT
- PROC NXBLOCK((NCNBFWA),(BLOCKTYPE)); # SEND BLOCK PROTOCOL ELEMENT #
- STARTIMS;
- #
- *1DC NXBLOCK
- *
- * 1. PROC NAME AUTHOR DATE
- * NXBLOCK J.C. LEE 82/06/08
- *
- * 2. FUNCTIONAL DESCRIPTION
- * SEND NETWORK BLOCK PROTOCOL ELEMENTS
- * BACK/BRK/RST/INITN/INITR/TERM/ICMD/ICMDR TO NPU.
- *
- * 3. METHOD USED
- * IF BLOCKTYPE IS BACK
- * AND THERE IS A FREE ENTRY IN THE BACK BUFFER,
- * USE BACK BUFFER ENTRY FOR DOWNLINE BACK.
- * ELSE (BACK BUFFER CANNOT BE USED),
- * ALLOCATE BUFFER FOR THE DOWNLINE BLOCK
- * SET NETWORK BLOCK TYPE
- * CALL NFOB TO LINK BUFFER TO PIP OUTBOUND CHAIN
- *
- * 4. ENTRY PARAMETERS
- * NCNBFWA - FWA OF NCNB
- * BLOCKTYPE - NETWORK BLOCK TYPE
- *
- * 5. EXIT PARAMETERS
- * NONE
- *
- * 6. SYMPL TEXTS USED
- * AHEADER APPLICATION BLOCK HEADER WORD TEMPLATE
- * BACKBUF DOWNLINE BACK BUFFER
- * DRHDR BUFFER HEADER WORD TEMPLATE
- * NCNB NETWORK CONNECTION BLOCK TEMPLATE
- * NHEADER NETWORK BLOCK HEADER WORD TEMPLATE
- * NIPDEF CONSTANT DEFINITIONS
- *
- * 7. ROUTINES CALLED
- * MGETS - ALLOCATE BUFFER
- * NFOB - LINK BUFFER TO PIP OUTBOUND CHAIN
- * XTRACE - TRACE PROCEDURE CALL
- *
- * THIS PROCEDURE IS CALLED BY NFOB, NLOBCH,
- * HSFCBRK, AND NBSTTP.
- *
- #
- STOPIMS;
- #
- FORMAL PARAMETERS
- #
- ITEM NCNBFWA U; # FWA OF NCNB #
- ITEM BLOCKTYPE U; # NETWORK BLOCK TYPE #
- #
- EXTERNAL VARIABLES
- #
- XREF
- BEGIN
- PROC MGETS; # ALLOCATE BUFFER #
- PROC NFOB; # LINK BUFFER TO PIP OUTBOUND CHAIN #
- PROC XTRACE; # TRACE PROC CALL #
- END
- #
- LOCAL VARIABLES
- #
- DEF NETSIZE # 2 #; # BUFFER SIZE OF NETW DOWNLINE BLK #
- ITEM BUFFWA U; # BUFFER FOR NETWORK BLOCK #
- ITEM NXBSIZE; # BUFFER SIZE #
- CONTROL IFEQ DEBUG,1;
- ARRAY TRACE$NBLK [1:NETICMDR] S(1);
- BEGIN # TRACE NETWORK BLOCK CALL #
- ITEM NBLK$NAME C(00,00,05) = [
- "ERROR",
- "ERROR",
- "NXBCK",
- "ERROR",
- "NXBRK",
- "ERROR",
- "ERROR",
- "NXRST",
- "NXINR",
- "NXINN",
- "NXTRM",
- "NXICM",
- "NXICR",
- ];
- END
- CONTROL FI;
- #**********************************************************************#
- BEGIN
- CONTROL IFEQ DEBUG,1;
- XTRACE(NBLK$NAME[BLOCKTYPE]);
- CONTROL FI;
- P<NCNB> = NCNBFWA; # NCNB ADDRESS #
- IF (BLOCKTYPE EQ NETBACK) AND # DOWNLINE BACK FOR NPU #
- (BACKFFREE NQ 0) AND # FREE ENTRY IN BACK BUFFER #
- (NCNBTN[0] NQ 0) AND # CHECK FOR NOT INTRAHOST A-A CN#
- (NCNBHN[0] NQ 0)
- THEN # USE BACK BUFFER FOR BACK #
- BEGIN
- BUFFWA = BACKFFREE + 1; # ADDRESS OF FREE ENTRY IN BUF #
- P<DRHDRWD> = BACKFFREE;
- BACKFFREE = CMWORD[0]; # ADDRESS OF NEXT FREE ENTRY #
- END
- ELSE # GET BUFFER FOR DOWNLINE BLOCK #
- BEGIN
- IF (BLOCKTYPE NQ NETICMD) AND (BLOCKTYPE NQ NETBRK)
- THEN
- BEGIN
- NXBSIZE = NETSIZE;
- END
- ELSE
- BEGIN
- NXBSIZE = ICMDSIZE;
- END
- MGETS(NXBSIZE,BUFFWA,TRUE);
- END
- P<NHEADER> = BUFFWA + BLKHSIZE;
- NHWORD[0] = 0; # CLEAR NETWORK HEADER WORD #
- P<AHEADER> = P<NHEADER>;
- BT[0] = BLOCKTYPE; # NETWORK BLOCK TYPE #
- IF BLOCKTYPE EQ NETBACK
- THEN # SET BSN FOR DOWNLINE BLOCK #
- NHBSN[0] = TEMPBSN;
- ELSE IF (BLOCKTYPE EQ NETICMD) OR (BLOCKTYPE EQ NETBRK)
- THEN
- BEGIN
- ABHACT[0] = CT8ASCII; # SET CHARACTER TYPE #
- ABHTLC[0] = 1; # CHAR COUNT FOR INTERRUPT CHAR/BREAK RC #
- NHICMDA[1] = TEMPBSN; # SET INTERRUPT CHAR/BREAK REASON CODE #
- END
- NFOB(BUFFWA,NCNBFWA);
- RETURN;
- END
- TERM
1)
NCNBFWA),(BLOCKTYPE
cdc/nos2.source/nam5871/nxblock.txt ยท Last modified: 2023/08/05 17:23 by Site Administrator