*DECK DELCDR USETEXT NIPDEF USETEXT ACNB USETEXT ACB USETEXT AT PROC DELCDR((ACNBFWA)); # DELINK ACNB FROM CONNECTION DATA RING # STARTIMS ; # *1DC DELCDR * 1. PROC NAME AUTHOR DATE * DELCDR E. GEE 85/04/02 * * 2. FUNCTIONAL DESCRIPTION. * DELINK ACNB FROM THE CONNECTION DATA RING. * * 3. METHOD. * DELINK THE ACNB FROM THE CONNECTION DATA RING. * IF ACB POINTS TO THIS ACNB, * UPDATE ACB T POINT TO NEXT ACNB IN CONNECTION DATA RING. * * 4. ENTRY PARAMETERS. * ACNBFWA ADDRESS OF ACNB TO BE DELINKED * * 5. EXIT PARAMETERS. * NONE. * * 6. COMDECKS CALLED. * ACB APPLICATION CONTROL BLOCK * ACNB APPLICATION CONNECTION BLOCK * AT APPLICATION TABLE * NIPDEF CONSTANT DEFINITIONS * * 7. ROUTINES CALLED. * XTRACE TRACE PROCEDURE CALL * * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION. * NONE * # STOPIMS; # EXTERNAL REFERENCES # XREF BEGIN PROC XTRACE; END # FORMAL PARAMETERS # ITEM ACNBFWA U; # FWA OF ACNB TO BE DELINKED # # LOCAL VARIABLES # ITEM CDRBP U; # CDR BACK POINTER # ITEM CDRFP U; # CDR FORWARD POINTER # CONTROL EJECT; BEGIN # BEGIN DELCDR # CONTROL IFEQ DEBUG,1; XTRACE("DECDR"); CONTROL FI; P = ACNBFWA; # FWA OF ACNB TO BE DELINKED # P = ATACBA[ACNBAN[0]]; # FWA OF ACB # CDRFP = ACNBCDRFP[0]; # NEXT ACNB IN CDR # CDRBP = ACNBCDRBP[0]; # PREVIOUS ACNB IN CDR # ACNBCDRFP[0] = 0; # CLEAR CDR POINTERS # ACNBCDRBP[0] = 0; P = 0; # DELINK REMOVED ACNB FROM CDR # IF CDRFP EQ ACNBFWA THEN # ONLY ACNB LEFT IN CDR # BEGIN ACBCDRP[0] = 0; # CLEAR CDR POINTER IN ACB # END ELSE # RELINK CDR AROUND DELINKED ONE# BEGIN ACNBCDRFP[CDRBP] = CDRFP; ACNBCDRBP[CDRFP] = CDRBP; IF ACNBFWA EQ ACBCDRP[0] THEN # ACNB IS POINTED TO BY ACB # BEGIN ACBCDRP[0] = CDRFP; # NEW ACNB POINTED TO BY ACB # END END RETURN; END # END DELCDR # TERM