*DECK HCRRCNR USETEXT ACNB USETEXT AHEADER USETEXT AT USETEXT DRHDR USETEXT NCNB USETEXT NIPDEF USETEXT PARAMS USETEXT PT USETEXT SUPMSG PRGM HCRRCNR; STARTIMS; # *1DC HCRRCNR * * 1. PROC NAME AUTHOR DATE * HCRRCNR C. BITTNER 81/12/01 * * 2. FUNCTIONAL DESCRIPTION * FORMAT AND SEND CR/RCN/R TO NVF * * 3. METHOD * ALLOCATE A BUFFER FOR CR/RCN/R * SET UP APPLICATION BLOCK HEADER * SET UP CR/RCN/R TEXT * QUEUE MESSAGE ON NVF-S ACB * * 4. ENTRY PARAMETERS * PARAMS1 - ACNB OF NVF CONNECTION TO RECONNECT TO * PARAMS2 - ANAME FIELD OF CON/END/R * PARAMS3 - REASON CODE FOR RECONNECT * PARAMS4 - APPLICATION NO. OF APPL WHICH HAD THE CONNECTION * * 5. EXIT PARAMETERS * NONE * * 6. COMDECKS CALLED AND SYMPL TEXTS USED * ACNB * AHEADER * AT * NCNB * NIPDEF * PARAMS * PT * SUPMSG * * 7. ROUTINES AND OVERLAYS CALLED * BLINK - QUEUE MSG ON APPL-S ACB * MGETS - ALLOCATE EMPTY BUFFER * OSCHAPP - SCHEDULE APPLICATION * XTRACE - RECORD PROCEDURE CALL * * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION * THIS IS A SECONDARY OVERLAY CALLED BY HCSTTP. * W A R N I N G - THIS PROGRAM CANNOT EXCEED THE SECONDARY *CALL OSSIZE * # STOPIMS; # EXTERNAL VARIABLES # XREF BEGIN PROC MGETS; # ALLOCATE EMPTY BUFFER # PROC BLINK; # QUEUE MSG ON APPL-S ACB # PROC OSCHAPP; # SCHEDULE APPLICATION # PROC XTRACE; # RECORD PROCEDURE CALL # LABEL RJMAIN; # RETURN ADDRESS IN OVLCALL # END # INTERNAL VARIABLES # ITEM BUFADDR; # SM BUFFER # ITEM BUFSIZE ; ITEM EXTRAB U ; # EXTRA LENGTH OF CON/END/R # ITEM I ; #**********************************************************************# BEGIN CONTROL IFEQ DEBUG,1; XTRACE("HCRRC") ; CONTROL FI; # GET BUFFER TO HOLD CR/RCN/R # P = PARAMS7 ; # CON/END/R BUFFER # IF PARAMS7 EQ 0 # NOT CON/END/R CASE # OR ( DRBS[0] LQ ABHSIZE + BLKHSIZE + LCONEN # = 4 # AND PARAMS7 NQ 0 ) # AND FOR CON/END/R CASE # THEN EXTRAB = 0 ; ELSE BEGIN EXTRAB = DRBS[0] - BLKHSIZE - ABHSIZE - LCONEN ; # EXTRA WORDS # # IN CON/END/R # END BUFSIZE = LCRRCN + BLKHSIZE + ABHSIZE # NORMAL LENGTH OF CR/RC# + EXTRAB ; # AND LENGTH # # OF EXTRA WORD IN CON/END # MGETS(BUFSIZE, BUFADDR, TRUE) ; # SET UP APPLICATION BLOCK HEADER # P = BUFADDR + BLKHSIZE; # ADDR TO HOLD ABH # ABHABT[0] = APPCMD; # BLOCK TYPE # ABHACT[0] = CT60TRANS; # CHARACTER TYPE - TRANSPARENT # ABHTLC[0] = LCRRCN + EXTRAB ; # TEXT LENGTH # # SET UP CR/RCN/R MESSAGE # P = BUFADDR + BLKHSIZE + ABHSIZE; # FWA OF TEXT # P = P; # BASE CR/RCN/R # PFCSFC[0] = CRRCN; # SET FUNCTION CODE # CRRRCN[0] = PARAMS3; # REASON CODE FOR RECONNECT TO NVF # P = PARAMS1; # ACNB FOR NVF RECONNECT # P = ACNBNCNB[0]; # ADDR OF CORRESPONDING NCNB # CRNACN[0] = ACNBACN[0]; # NVF CONNECTION # CRABL[0] = ACNBABL[0]; # APPLICATION BLOCK LIMIT # CRDT[0] = ACNBDT[0]; # DEVICE TYPE # CRVCB[0] = ACNBVCBO[0]; # VCB ORDINAL # CRUNAME[0] = PARAMS2; # NEXT APPLICATION NAME # CRAN[0] = PARAMS4; # AN OF APPL WHICH HAD THE CONN # CRRCTC[0] = NCNBTC[0]; # TERMINAL CLASS # CRRCPW[0] = NCNBPW[0]; # PAGE WIDTH # CRRCPL[0] = NCNBPL[0]; # PAGE LENGTH # IF ACNBLIM[0] THEN # CONNECTION IN LIMBO # CRLIMBO[0] = TRUE; # COPY EXTRA WORDS IN CON/END INTO CR/RCN/R BUFFER # IF BUFSIZE GR LCRRCN + BLKHSIZE + ABHSIZE THEN BEGIN # EXTRA BUFFER TO BE COPIED# FOR I = 0 STEP 1 UNTIL EXTRAB - 1 DO BEGIN SPMWD[ LCRRCN + I ] = CMWORD[ BLKHSIZE + ABHSIZE + LCONEN + I ] ; END END # EXTRA BUFFER TO BE COPIED# # QUEUE CR/RCN/R ON NVF-S ACB # BLINK(BUFADDR,ATACBA[NVFAN]); # QUEUE MSG ON NVF-S ACB # OSCHAPP(ATACBA[NVFAN]); # SCHEDULE APPLICATION # GOTO RJMAIN; # RETURN TO CALLING PROGRAM # END TERM