TARO
          IDENT  TARO 
          ENTRY  TARO 
          SYSCOM B1 
          TITLE  TARO - TERMINAL ARGUMENT OPERATIONS. 
*COMMENT  TARO - TERMINAL ARGUMENT OPERATIONS.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4
*****     TARO - TERMINAL ARGUMENT OPERATIONS.
* 
*         J. C. BOHNHOFF.    72/08/31.
*         W. E. MARTIN.      78/09/30.
          SPACE  4
*         COMMON TEXTS. 
  
  
*CALL     COMCMAC 
*CALL     COMKMAC 
*CALL     COMSPRD 
          SPACE  4,45 
***       TARO - TERMINAL ARGUMENT OPERATIONS.
* 
*         ENTRY FORMAT -
* 
*         FORTRAN EXTENDED  - 
* 
*                CALL TARO ( VALUE, MASK, TERM, RETURN )
* 
*         COBOL - 
* 
*                ENTER TARO USING VALUE, MASK, TERM, RETURN.
* 
*         WHERE - (VALUE) = A 24 BIT VALUE TO BE USED TO ALTER TERMINAL 
*                USER ARGUMENT AREA.
* 
*                MASK - A VALUE TAKEN AS A BINARY MASK - ONLY THE 
*                LOWEST 24 BITS ARE USED. 
* 
*                TERM - THE NAME OF THE TERMINAL FOR WHICH THE
*                OPERATION IS TO BE DONE.  IF ABSENT OR ZERO, IT IS 
*                IS ASSUMNED THE TERMINAL THAT ORIGINED THE CALLING 
*                TRANSACTION, AND THE NAME MAY BE 1 - 7 CHARACTERS, 
*                LEFT JUSTIFIED BINARY ZERO FILLED, OR LEFT-JUSTIFIED 
*                BLANK FILLED.
* 
*                RETURN - LOCATION IN WHICH TO PLACE THE RESULTANT
*                USER ARGUMENT BITS.  THIS VALUE IS ALSO RETURNED 
*                AS THE VALUE OF A FORTRAN FUNCTION. (OPTIONAL).
* 
*         NOTES - 
* 
*         THE *USER ARGUMENT* AREA (24 BITS IN EACH TERMINAL TABLE
*         ENTRY) IS OPERATED UPON AS FOLLOWS -
* 
*         RETURN = USER ARG = (USER ARG .AND. MASK) .XOR. VALUE.
* 
*         SEE *TAF* LISTING FOR FORMAT OF TERMINAL-TABLE ENTRIES. 
* 
*         USES   A - 1, 2, 3, 5, 6, 7.
*                X - ALL. 
*                B - 1. 
*         CALLS  ZFN. 
* 
*         MACROS TARO.
  
  
          VFD    42/0LTARO,18/TARO
  
 TAR3     SA1    TARB        RESTORE (A0) 
          SA0    X1+
  
 TARO     SUBR               ENTRY/EXIT 
          SX6    A0          SAVE (A0)
          SA2    X1          READ VALUE 
          SA6    TARB 
          SB1    1
          SA3    A1+B1       READ MASK ADDRESS
          BX5    X5-X5       ASSUME NO RETURN 
          SA4    A1+2        READ TERMINAL NAME ADDRESS 
          MX0    -24
          SA3    X3          READ MASK
          ZR     X4,TAR1     IF NO TERMINAL NAME OR RETURN ADDRESS
          SA5    A4+1        RETURN ADDRESS 
          SA4    X4          READ TERMINAL NAME 
          UX6    X4 
          NZ     X6,TAR1     IF NOT DEFAULT ORIGINATING TERMINAL
          BX4    X4-X4
 TAR1     MX6    42 
          BX2    -X0*X2      (X2) = VALUE 
          BX4    X6*X4       (X4) = TERMINAL NAME 
          LX2    30          POSITION VALUE 
          BX5    -X6*X5      (X5) = RETURN
          BX3    -X0*X3      (X3) = MASK
          BX7    X2+X3       (X7) = VALUE AND MASK
          BX1    X4 
          SA7    TARA+1 
          ZR     X4,TAR2     IF ORIGINATING TERMINAL
          RJ     ZFN         ZERO FILL NAME 
 TAR2     IX6    X1+X5       (X6) = TERMINAL NAME AND RETURN ADDRESS
          SA6    TARA        STORE ARGUMENT WORD
          TARO   A6          ISSUE REQUEST TO EXECUTIVE 
          ZR     X5,TAR3     IF NO RETURN VALUES DESIRED
          SA1    X5          READ RETURN VALUE
          BX6    X1          (X6) = FUNCTION RETURN 
          EQ     TAR3        RESTORE (A0) AND RETURN
  
 TARA     CON    0           STORAGE FOR *TARO* ARGUMENTS 
          CON    0
 TARB     CON    0           STORAGE FOR (A0) 
          SPACE  4
*         COMMON DECK.
  
*CALL     COMKZFN 
          SPACE  4
          END 
