TSIM
          IDENT  TSIM 
  
          ENTRY  TSIM 
  
          TITLE  TSIM - TERMINAL STATUS AND INFORMATION.
*COMMENT  TSIM - TERMINAL STATUS AND INFORMATION. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4
***       TSIM - TERMINAL STATUS AND INFORMATION. 
*         J.C.BOHNHOFF. CPD. 72/08/31.
          SPACE  4
*CALL,COMKMAC 
*CALL     COMSPRD 
          SPACE  4
***       CALL FORMAT - 
* 
*         FORTRAN EXTENDED
*                CALL TSIM(CODE,MASK,CRIT,RLENG,LIST,LENG)
*         COBOL 
*                ENTER TSIM USING CODE,MASK,CRIT,RLENG,LIST,LENG
* 
*         WHERE: CODE= 0 IF DATA BASE NAME FIELD IS TO BE SEARCHED. 
*                    = 1 IF USER ARGUMENT FIELD IS TO BE SEARCHED.
*                    = 2 IF COMMUNICATION LINE FIELD IS TO BE SEARCHED. 
*                    = 3 IF TERMINAL NAME FIELD IS TO BE SEARCHED.
*                            COBOL - COMPUTATIONAL-1
*                            FORTRAN EXTENDED - INTEGER 
*                MASK= A VALUE TAKEN AS A BINARY MASK.
*                CRIT= CRITERION VALUE FOR SEARCH.
*                RLENG= NUMBER OF ENTRIES FOUND. THIS ARGUMENT IS ALSO
*                       RETURNED AS A FORTRAN FUNCTION VALUE. 
*                            COBOL - COMPUTATIONAL-1
*                            FORTRAN EXTENDED - INTEGER 
*                LIST= LOCATION OF A LIST TO CONTAIN FOUND ENTRIES. 
*                      IF ZERO OR ABSENT, NO LIST IS RETURNED BUT RLENG 
*                      IS GIVEN AS THE NUMBER OF FOUND ENTRIES. 
*                LENG= NUMBER OF WORDS THAT LIST CAN HOLD.
*                      IF ZERO OR ABSENT, NO LIST IS RETURNED BUT RLENG 
*                      IS GIVEN AS THE NUMBER OF FOUND ENTRIES. 
*                      ONLY THE LOWEST ORDER 12 BITS OF THIS VALUE
*                      ARE USED.
*                            COBOL - COMPUTATIONAL-1
*                            FORTRAN EXTENDED - INTEGER 
* 
*         OPERATION:  
*         THE FIELD SPECIFIED BY *CODE* IS EXAMINED IN EACH TERMINAL
*         TABLE ENTRY BY TAKING THE LOGICAL PRODUCT OF THE FIELD AND
*         *MASK* AND THEN TAKING THE LOGICAL DIFFERENCE OF THIS PRODUCT 
*         AND *CRIT*.  IF THIS RESULT IS ZERO, THE TERMINAL ENTRY IS
*         PLACED IN *LIST*. IF NOT ZERO, NO ACTION. 
* 
*         SEE *TRANEX* FOR TERMINAL TABLE FORMAT. 
  
  
 TSIM     PS                 ENTRY/EXIT 
          SA2    A1+1        READ MASK ADDRESS
          SA3    A1+2        READ CRITERION ADDRESS 
          SA2    X2          READ MASK
          SA3    X3          READ CRITERION 
          BX6    X2          STORE MASK AND CRIT. ARGUMENTS 
          SA2    X1          READ CODE
          BX7    X3 
          SA6    TSIA+1      STORE MASK 
          UX2    X2 
          SA5    A1+3        READ RLENG ADDRESS 
          SA7    TSIA+2      STORE CRITERION
          SA1    A1+4        READ LIST ADDRESS
          BX3    X3-X3       ASSUME NO LIST 
          MX0    42 
          ZR     X1,TSI1     IF NO LIST, LENG 
          SA3    A1+1        READ LENG ADDRESS
          BX1    -X0*X1      LIST ADDRESS 
          ZR     X3,TSI1     IF NO LENG 
          SA3    X3          READ LENG
          MX6    -12         EXTRACT LENGTH 
          BX3    -X6*X3 
  
*         FORM WORD 0 OF ARGUMENT LIST. 
  
 TSI1     MX6    6
          LX2    -12         POSITION CODE
          BX5    -X0*X5      RLENG ADDRESS
          LX6    -6 
          LX1    30          POSITION LIST ADDRESS
          BX2    X6*X2
          LX3    18          LIST LENGTH
          BX6    X1+X5       LIST, RLENG
          IX7    X2+X3       CODE, LENG 
          BX6    X6+X7       COMPLETE WORD 0
          SA6    TSIA 
          TSIM   A6          ISSUE REQUEST
          SA1    X5          RETURN RLENG 
          BX6    X1 
          JP     TSIM        RETURN 
  
 TSIA     CON    0,0,0       ARGUMENT STORAGE 
  
          END 
