*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 = ACNBADDR; # ADDRESS OF ACNB # BUFADDR = PSUEDONH; # ADDR OF BUFFER TO HOLD FC/ACK # P = PSUEDONH; BUFSIZE = DRBS[0] - BLKHSIZE; # NUMBER OF FC/ACKS/NAKS TO SEND# P = P + BLKHSIZE; # ADDR OF WORD CONTAINING PFC # FCACN[0] = ACNBACN[0]; # APPLICATION CONNECTION NUMBER # P = ATACBA[ACNBAN[0]]; P = 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 = PSUEDONH + I ; FCACN[0] = ACNBACN[0]; # APPLICATION CONNECTION NUMBER # MGETS(LFCACK + BLKHSIZE + ABHSIZE,BUFADDR,TRUE) ; P = BUFADDR; BLDMSG; END # CREAT FC/ACK OR NAK # MRELS(PSUEDONH); END OSCHAPP(P); 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 ADDR OF ACB TO QUEUE SUP MSG TO * ACNTIND ACNT TABLE INDEX FOR CONNECTION NUMBER * P ADDR OF ACNT FOR APP * P ADDR OF WORD TO HOLD ABH WORD * P 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); # LINK TO APPL ACB # ACNTABO[ACNTIND] = ACNTABO[ACNTIND] - 1; # DECREM BLKS OUT # END # END BLDMSG # END # END HSFCACK # TERM