cdc:nos2.source:nam5871:hswacnb
Table of Contents
HSWACNB
Table Of Contents
- [00013] PRGM HSWACNB
- [00082] PROC ABORT
- [00083] PROC DELCDR
- [00084] PROC HUPDDAW
- [00085] PROC INSCDR
- [00086] PROC OVLCALL
- [00087] PROC HALLOCN
- [00088] PROC KPUT
- [00089] PROC RELACNB
- [00090] PROC XTRACE
Source Code
- HSWACNB.txt
- *DECK HSWACNB
- USETEXT ACB
- USETEXT ACNB
- USETEXT ACNT
- USETEXT AT
- USETEXT KDIS
- USETEXT KHDRX
- USETEXT NIPDEF
- USETEXT OVERLAY
- USETEXT PARAMP
- USETEXT PARAMS
- USETEXT SYSTIME
- PRGM HSWACNB; # SWITCH ACNB FROM ONE APP TO ANOTHER #
- STARTIMS;
- #
- *1DC HSWACNB
- * 1. PROC NAME AUTHOR DATE
- * HSWACNB C. BITTNER 81/12/01
- *
- * 2. FUNCTIONAL DESCRIPTION
- * SWITCH ACNB FROM OLD APPLICATION TO NEW APPLICATION
- *
- * 3. METHOD
- * CALL HALLOCN TO ALLOCATE A NEW CONNECTION NUMBER
- * PICK UP ACNT ENTRY OF OLD CONNECTION FOR NEW ACNT ENTRY
- * ASSIGN ACNB OF OLD CONNECTION AS ADDRESS OF NEW CONNECTION (ACNB)
- * IF DATA QUEUED TO ACNB,
- * CALL DELCDR TO DELETE ACNB FROM CONNECTION DATA RING.
- * CALL RELACNB TO DELETE OLD ACN
- * UPDATE FIELDS IN ACNB
- * IF DATA QUEUED TO ACNB,
- * CALL INSCDR TO INSERT ACNB IN CONNECTION DATA RING.
- *
- * 4. ENTRY PARAMETERS
- * PARAMS1 ADDRESS OF OLD ACB
- * PARAMS2 OLD CONNECTION NUMBER
- * PARAMS3 ADDRESS OF NEW ACB
- * PARAMS4 CONNECTION NO IF RETURNING LOANED CON
- * PARAMS8 FLAG TO INDICATE IF CONNECTION BEING LOANED
- * = FALSE IF NOT BEING LOANED.
- * = TRUE IF BEING LOANED.
- *
- * 5. EXIT PARAMETERS
- * PARAMS1 ADDRESS OF NEW ACNB
- * = 0 IF NO NEW ACNB WAS ASSIGNED.
- *
- * 6. COMDECKS CALLED AND SYMPL TEXTS USED
- * ACB
- * ACNB
- * ACNT
- * AT
- * NIPDEF
- * OVERLAY
- * PARAMS
- * SYSTIME
- *
- * 7. ROUTINES AND OVERLAYS CALLED
- * DELCDR DELINK ACNB FROM CONNECTION DATA TABLE
- * HALLOCN - ALLOCATE NEW CONNECTION NUMBER
- * HUPDDAW UPDATE DATA AVAILABLE WORD
- * INSCDR INSERT ACNB IN CONNECTION DATA RING
- * RELACNB RELEASE OLD ACNB
- * STRTSW OVL TRIGGER ROUTINE RELACNB
- * XTRACE - RECORD PROCEDURE CALL
- *
- * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
- * THIS PROGRAM IS A SECONDARY OVERLAY CALLED BY HCSTTP.
- *
- * W A R N I N G - THIS PROGRAM PLUS PROCEDURE RELACNB CANNOT
- * EXCEED THE SECONDARY OVERLAY BUFFER SIZE MINUS
- * 5 (473B WORDS).
- *
- #
- STOPIMS;
- #
- EXTERNAL VARIABLES
- #
- XREF
- BEGIN
- PROC ABORT ;
- PROC DELCDR; # DELINK ACNB FROM CONNECTION DATA RING #
- PROC HUPDDAW; # UPDATE DATA AVAILABLE WORD #
- PROC INSCDR; # INSERT ACNB IN CONNECTION DATA RING #
- PROC OVLCALL; # LOAD AND EXECUTE OVERLAY #
- PROC HALLOCN ;
- PROC KPUT ;
- PROC RELACNB; # RELEASE OLD ACNB #
- PROC XTRACE; # RECORD PROCEDURE CALL #
- LABEL RJMAIN; # ADDRESS IN OVLCALL TO RETURN TO #
- END
- #
- INTERNAL VARIABLES
- #
- ITEM ACN; # APPLICATION CONNECTION NUMBER #
- ITEM ACNTINDX; # INDEX INTO ACNT #
- ITEM INCR B; # TRUE = INCREASE NO OF DELIVERABLES#
- ITEM NUMBLKS; # NUMBER OF DATA BLOCKS QUEUED TO ACNB #
- ITEM OACNTINDX; # INDEX INTO OLD ACNT #
- ITEM OLDACNB; # OLD ACNB #
- ITEM OLDACNT; # OLD ACNT #
- ITEM OLDCN; # OLD CONNECTION NUMBER #
- ITEM TEMPACNT; # ACNT ENTRY OF CONNECTION #
- ITEM PRIMINFO ; # PRIMARY APPLICATION INFO #
- ARRAY HSWERR S(4) ;
- BEGIN
- ITEM HSWERR1 C(0,0,31) = [" NIP CANNOT RETURN LOANED CONN."] ;
- ITEM HSWERR2 U(3,6,54) = [0] ;
- END
- #**********************************************************************#
- BEGIN
- CONTROL IFEQ DEBUG,1;
- XTRACE("HSWAC") ;
- CONTROL FI;
- P<ACB> = PARAMS1; # ADDRESS OF OLD ACB #
- OLDCN = PARAMS2; # OLD CONNECTION NUMBER #
- ACN = PARAMS4; # NEW CONNECTION NUMBER IF LOANED CN#
- P<ACNT> = ACBACNT[0];
- OLDACNT = P<ACNT>;
- OACNTINDX = OLDCN - ACNTMINACN[0] + ACNTHSIZE;
- OLDACNB = ACNTACNB[OACNTINDX];
- P<ACNB> = OLDACNB;
- TEMPACNT = ACNTWD[OACNTINDX]; # SAVE STATES FOR CONNECTION #
- IF ACN EQ 0
- THEN
- BEGIN # ALLOCATE THE ACN #
- HALLOCN(PARAMS3,ACN); # ALLOCATE NEW CONNECTION NUMBER #
- END
- IF ACN NQ 0
- THEN
- BEGIN
- PRIMINFO = ACNBPRID[0] ; # SAVE THE PRIM APPL. INFO #
- NUMBLKS = ACNBBLKSQ[0];
- IF NUMBLKS NQ 0
- THEN # DATA QUEUED TO ACNB #
- BEGIN
- DELCDR(OLDACNB); # DELETE ACNB FROM CONNECTION DATA RING #
- HUPDDAW(P<ACB>,P<ACNB>,-NUMBLKS,-NUMBLKS);
- END
- IF KDIS$RT
- AND ACBKNDX[0] NQ 0
- AND ACBKNDX[0] GQ KDAPPST[0]
- AND ACBKNDX[0] LQ KDAPPND[0]
- THEN
- KPUT(KHDRNP[0],ACBKNDX[0]-KDAPPST[0],KPAPNDM,ACBBLKSQ[0]) ;
- INCR = FALSE; # DECREMENT NO OF DELIVERABLE BLKS #
- P<ACB> = PARAMS3; # ADDRESS OF NEW ACB #
- P<ACNT> = ACBACNT[0];
- ACNTINDX = ACN + ACNTHSIZE - ACNTMINACN[0];
- CONTROL IFEQ DEBUG,1;
- IF ACNTACNB[ACNTINDX] NQ 0
- AND ACNBPRID[0] NQ 0
- THEN
- ABORT(HSWERR,0) ; # ACTIVE CONNECTION IN LOANED ENTRY #
- CONTROL FI;
- ACNTWD[ACNTINDX] = TEMPACNT; # ACNT ENTRY OF CONNECTION #
- ACNTABO[ACNTINDX] = 0 ; # CLEAR THE ABO COUNT #
- ACNTACNB[ACNTINDX] = OLDACNB; # SWITCH ACNB FROM NVF TO APP
- OR FROM OLD APP TO NEW APP #
- ACNBLO[0] = FALSE; # CLEAR LIST OFF FLAG #
- RELACNB(OLDACNB,TRUE,PARAMS8); # CLEAN UP OLD ACNB INFOMATION #
- # SET FIELDS IN ACNB #
- P<ACNB> = OLDACNB;
- ACNBAN[0] = ACBAN[0]; # APPLICATION NUMBER #
- ACNBACN[0] = ACN; # APPLICATION CONNECTION NUMBER #
- ACNBTLO[0] = ATDIS[ACNBAN[0]]; # UPDATE TEMP LIST OFF FLAG #
- IF NUMBLKS NQ 0
- THEN # DATA QUEUED TO ACNB #
- BEGIN
- HUPDDAW(P<ACB>,P<ACNB>,NUMBLKS,NUMBLKS);
- INSCDR(P<ACNB>); # INSERT ACNB INTO CONNECTION DATA RING #
- END
- ACBNCN[0] = ACBNCN[0] + 1 ; # UPDATE NUMBER OF CONN TO APP#
- IF KDIS$RT
- AND ACBKNDX[0] NQ 0
- AND ACBKNDX[0] GQ KDAPPST[0]
- AND ACBKNDX[0] LQ KDAPPND[0]
- THEN
- KPUT(KHDRNP[0],ACBKNDX[0]-KDAPPST[0],KPAPNCN,ACBNCN[0]);
- ACNBFLAGS[0] = FALSE ;
- ACNBBCHK[0] = FALSE; # CLEAR BLOCK SEQUENCE CHECK FLAGS #
- ACNBD[0] = ATT[ACNBAN[0]]; # DATA TRUNCATION FLAG #
- ACNBH[0] = ATH[ACNBAN[0]]; # HALF DUPLEX FLAG #
- ACNBINACT[0] = RTSECS[0] + INACTVAL;
- ACNBPRID[0] = PRIMINFO ; # RESTORE THE PRIM APPL. INFO #
- PARAMS1 = P<ACNB>; # ADDRESS OF NEW ACNB #
- INCR = TRUE; # DECREMENT NO OF DELIVERABLE BLKS #
- END
- ELSE
- BEGIN
- PARAMS1 = 0; # NO NEW ACNB WAS ASSIGNED #
- END
- GOTO RJMAIN; # RETURN TO CALLING PROGRAM #
- END
- TERM
cdc/nos2.source/nam5871/hswacnb.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator