*DECK SWAPAFT                      03MAR81
USETEXT COMCBEG 
USETEXT COMCAPR 
USETEXT COMCCAE 
USETEXT COMQDEF 
USETEXT COMQFIL 
USETEXT COMQNET 
    PROC SWAPAFT(ALT);
      BEGIN  # SWAPAFT #
# 
**    SWAPAFT - SWAP AFT ENTRIES. 
* 
*     ENTRY      ACN = INDEX OF AFT ENTRY.
*                ALT = INDEX OF AFT ENTRY.
* 
*     EXIT       ACN = ALT. 
*                ALT = ACN. 
*                AFT ENTRIES EXCHANGED. 
* 
*     PROCESS    IF ALT EQ ACN: 
*                  ABORT. 
*                ELSE:  
*                  EXCHANGE CONTENTS OF ENTRIES.
*                  ACN = ALT, AND ALT = ACN.
# 
  
      ITEM ALT        U;           # ALTERNATE AFT INDEX #
  
# 
****  XREF
# 
      XREF
        BEGIN 
        PROC ABORTQ;
        PROC CMMALF;               # ALLOCATE CMM BLOCK # 
        PROC CONLOG;
        PROC NAME;                 # DEBUG CODE # 
        END 
# 
****  XREF END
# 
  
      DEF LEMSGSWP   #32#;
      ARRAY EMSGSWP    S(4);
        BEGIN 
        ITEM $DSWP      C(00,00,LEMSGSWP) = 
                 ["ASSIGNED TO CONNECTION NUMBER N."];
        ITEM EMSGSWPACN U(03,00,06);
        END 
  
      ITEM TEMP       U;           # TEMPORARY #
  
  
      IF ACN EQ ALT                # ERROR IF SAME ENTRY #
      THEN
        BEGIN 
        ABORTQ("SWAPAFT");         # ABORT PROGRAM #
        END 
  
      ELSE
        BEGIN 
        EMSGSWPACN = ALT + O"33"; 
        CONLOG(LOC(EMSGSWP),LEMSGSWP);
        IF AFT[ALT] EQ 0
        THEN
          BEGIN 
          CMMALF(FILENT, 0, CMMN, TEMP);
          AFT[ALT] = TEMP;
          END 
  
        AFT[ACN] == AFT[ALT]; 
        ACN == ALT; 
        END 
  
      END 
    TERM
