cdc:nos2.source:nam5871:hsfcack
Table of Contents
HSFCACK
Table Of Contents
- [00011] PROC HSFCACK(PSUEDONH,ACNBADDR)
- [00059] PROC BLINK
- [00060] PROC MGETS
- [00061] PROC MRELS
- [00062] PROC OSCHAPP
- [00063] PROC XTRACE
- [00123] PROC BLDMSG
Source Code
- HSFCACK.txt
- *DECK HSFCACK
- USETEXT ACB
- USETEXT ACNB
- USETEXT ACNT
- USETEXT AT
- USETEXT DRHDR
- USETEXT PARAMS
- USETEXT NIPDEF
- USETEXT SUPMSG
- PROC HSFCACK(PSUEDONH,ACNBADDR);
- STARTIMS;
- #
- *1DC HSFCACK
- *
- * 1. PROC NAME AUTHOR DATE
- * HSFCACK E. GEE 85/05/05
- *
- * 2. FUNCTIONAL DESCRIPTION :
- * SEND FC/ACK AND/OR FC/NAK SUPERVISORY MESSAGES TO THE
- * APPLICATION.
- *
- * 3. METHOD USED:
- * IF ONLY QUEUEING FC/ACK FOR APPLICATION,
- * CALL BLDMSG TO BUILD AND QUEUE FC/ACK FOR APPLICATION.
- * ELSE (QUEUING ONE OR MORE FC/NAKS AND FC/ACK FOR APPL),
- * CALL BLDMSG TO BUILD AND QUEUE FC/ACK OR FC/NAK FOR EACH
- * ENTRY IN NAK/ACK BUFFER.
- * 4. ENTRY PARAMS:
- * PSUEDONH ADDR OF NAK/ACK BUFFER.
- * ACNBADDR ACNB ADDRESS .
- *
- * 5. EXIT PARAMS:
- * NONE.
- *
- * 6. COMDECKS CALLED
- * NIPDEF SUPMSG ACB ACNB
- * ACNT AT
- * DRHDR PARAMS
- *
- * 7. ROUTINES CALLED:
- * BLINK LINK MESSAGE TO ACB OF APPLICATION.
- * OSCHAPP SCHEDULER FOR APPLICATION.
- * MGETS GET BUFFER FOR FC/ACK OR FC/NAK
- * MRELS RELEASE BUFFER
- *
- * 8. NOTE:
- * THIS PROCEDURE IS CALLED BY HBSTTP.
- *
- *
- #
- STOPIMS;
- #
- EXTERNAL REF
- #
- XREF
- BEGIN
- PROC BLINK ;
- PROC MGETS ;
- PROC MRELS; # RELEASE BUFFER #
- PROC OSCHAPP ;
- PROC XTRACE ;
- END
- #
- INPUT PARAMETERS
- #
- ITEM PSUEDONH; # ADDR OF BUF CONTAINING ACK/NAK#
- ITEM ACNBADDR; # ADDRESS OF ACNB #
- #
- INTERNAL VARIABLES
- #
- ITEM ACNTIND ; # INDEX OF ACNT #
- ITEM BUFADDR ; # BUFFER ADDRESS OF SM #
- ITEM BUFSIZE ; # SIZE OF PSUEDO BUFFER #
- ITEM I ;
- #**********************************************************************#
- #
- EXECUTABLE CODE BEGINS HERE
- #
- BEGIN # BEGIN HSFCACK #
- CONTROL IFEQ DEBUG,1;
- XTRACE("HSACK") ;
- CONTROL FI ;
- P<ACNB> = ACNBADDR; # ADDRESS OF ACNB #
- BUFADDR = PSUEDONH; # ADDR OF BUFFER TO HOLD FC/ACK #
- P<DRHDRWD> = PSUEDONH;
- BUFSIZE = DRBS[0] - BLKHSIZE; # NUMBER OF FC/ACKS/NAKS TO SEND#
- P<SUPMSG> = P<DRHDRWD> + BLKHSIZE; # ADDR OF WORD CONTAINING PFC #
- FCACN[0] = ACNBACN[0]; # APPLICATION CONNECTION NUMBER #
- P<ACB> = ATACBA[ACNBAN[0]];
- P<ACNT> = ACBACNT[0] ;
- ACNTIND = ACNBACN[0] - ACNTMINACN[0] + ACNTHSIZE ;
- IF PFCSFC[0] EQ FCACK
- THEN # ONLY QUEUE FC/ACK FOR APP #
- BEGIN
- BLDMSG;
- END
- ELSE # ONE OR MORE NAK FOLLOWED BY AK#
- BEGIN
- FOR I = BLKHSIZE STEP 1 WHILE I LQ BUFSIZE
- DO
- BEGIN # CREATE FC/ACK OR NAK #
- # ENTRY BY ENTRY #
- P<SUPMSG> = PSUEDONH + I ;
- FCACN[0] = ACNBACN[0]; # APPLICATION CONNECTION NUMBER #
- MGETS(LFCACK + BLKHSIZE + ABHSIZE,BUFADDR,TRUE) ;
- P<DRHDRWD> = BUFADDR;
- BLDMSG;
- END # CREAT FC/ACK OR NAK #
- MRELS(PSUEDONH);
- END
- OSCHAPP(P<ACB>);
- RETURN ;
- CONTROL EJECT;
- PROC BLDMSG;
- STARTIMS;
- #
- *1DC BLDMSG
- *
- * 1. PROC NAME AUTHOR DATE
- * BLDMSG E. GEE 02/26/85
- *
- * 2. FUNCTIONAL DESCRIPTION.
- * BUILD AND QUEUE FC/ACK OR FC/NAK SUPERVISORY MESSAGE FOR
- * APPLICATION.
- *
- * 3. METHOD USED.
- * COMPLETE BUILDING SUPERVISORY MESSAGE.
- * BUILD APPLICATION BLOCK HEADER WORD.
- * CALL BLINK TO QUEUE SUPERVISORY MESSAGE.
- *
- * 4. ENTRY PARAMS.
- * BUFADDR ADDR OF BUFFER TO HOLD APPL ACK/NAK SUP MSG
- * P<ACB> ADDR OF ACB TO QUEUE SUP MSG TO
- * ACNTIND ACNT TABLE INDEX FOR CONNECTION NUMBER
- * P<ACNT> ADDR OF ACNT FOR APP
- * P<DRHDRWD> ADDR OF WORD TO HOLD ABH WORD
- * P<SUPMSG> ADDR OF WORD CONTAINING NETWORK ACK/NAKS
- *
- * 5. EXIT PARAMS.
- * NONE.
- *
- * 6. COMMON DECKS AND SYMPL TEXT USED.
- * NONE.
- *
- * 7. ROUTINES CALLED.
- * BLINK LINK MESSAGE TO ACB OF APPLICATION.
- * OSCHAPP ISSUE SWAPIN FOR APPL IF NECESSARY
- *
- * 8. DAYFILE MESSAGES OR OTHER IMPORTANT INFORMATION.
- *
- * THIS PROCEDURE IS A INTERNAL PROCEDURE OF HSFCACK.
- *
- *
- #
- STOPIMS;
- CONTROL EJECT;
- BEGIN
- #
- INTERNAL VARIABLES
- #
- ARRAY ABH$ S(1); # APP BLOCK HEADER FOR SUP MSG #
- BEGIN
- ITEM ABH$ABT U(00,00,06) = [APPCMD]; # APP BLOCK TYPE #
- ITEM ABH$ADR U(00,06,12) = [0]; # APP CON NUMBER #
- ITEM ABH$ABN U(00,18,18) = [0]; # APP BLOCK NUMBER #
- ITEM ABH$ACT U(00,36,04) = [CT60TRANS]; # APP CHAR TYPE #
- ITEM ABH$DBC U(00,40,08) = [0]; # DATA BLOCK CLARIFIER#
- ITEM ABH$TLC U(00,48,12) = [LFCACK]; # TEXT LENGTH IN CHARS#
- ITEM ABH$WORD U(00,00,60); # APP BLOCK HEADER WD #
- END
- #**********************************************************************#
- #
- EXECUTABLE CODE BEGINS HERE
- #
- CMWORD[BLKHSIZE+ABHSIZE] = SPMSG0[0]; # COPY SUP MSG #
- CMWORD[ABHSIZE] = ABH$WORD[0]; # CREATE APP BLOCK HEADER WORD #
- BLINK(BUFADDR,P<ACB>); # LINK TO APPL ACB #
- ACNTABO[ACNTIND] = ACNTABO[ACNTIND] - 1; # DECREM BLKS OUT #
- END # END BLDMSG #
- END # END HSFCACK #
- TERM
cdc/nos2.source/nam5871/hsfcack.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator