ASMB,R,L
      NAM IEQCK,7  92080-1X595 REV.2026  800414 
* 
*     SOURCE 92080-18595          PART OF %ZTMP 92080-16510 
* 
      SPC 2 
********************************************************************* 
* (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980.  ALL RIGHTS RESERVED. * 
* NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, REPRODUCED, OR TRANS- * 
* LATED TO ANOTHER PROGRAM LANGUAGE WITHOUT PRIOR WRITTEN CONSENT   * 
* OF THE HEWLETT-PACKARD COMPANY.                                  *
********************************************************************* 
      SPC 2 
      EXT EXEC,.ENTR
      ENT IEQCK 
* 
********************************************************************* 
*                                                                   * 
*  THIS ROUTINE RETURNS A CODE DESCRIBING THE AVAILABILITY AND THE  * 
*    INITIALIZATION STATUS OF A MULTIPOINT TERMINAL WHOSE LU# IS    * 
*    PASSED AS THE FUNCTION PARAMETER.  FOR FORTRAN PROGRAMS, THE   * 
*    CALLING SEQUENCE IS:                                           * 
*                                                                   * 
*             ISTAT = IEQCK(LU)  WHERE: 'ISTAT' IS ANY INTEGER VAR. * 
*                                                  AND              * 
*                                       'LU' IS THE TERMINAL LU#    * 
*                                                                   * 
*  THE FORMAT OF 'ISTAT' ON RETURN IS AS FOLLOWS:                   * 
*                                                                   * 
*     UPPER BYTE                  LOWER BYTE                        * 
*   +---------------------------+-------------------------------+   * 
*   /   AVAILABILITY INDICATOR  /  INITIALIZED/NOT INITIALIZED  /   * 
*   +---------------------------+-------------------------------+   * 
*                                                                   * 
*  THE 'AVALABILITY INDICATOR' = CHARACTER "B" IF BUSY              * 
*                                CHARACTER "A" IF AVAILABLE         * 
*                                CHARACTER "D" IF DOWN              * 
*                                                                   * 
*  THE LOWER BYTE =              CHARACTER "I" IF INITIALIZED       * 
*                                CHARACTER "N" IF NOT INITIALIZED   * 
*                                                                   * 
*                                                                   * 
*  FOR EXAMPLE IF THE LU IS 'BUSY' AND 'INITIALIZED', THIS FUNCTION * 
*    WILL RETURN THE CHARACTER STRING "BI".                         * 
*                                                                   * 
*                         STEVE WITTEN                              * 
*                           DATA SYSTEMS DIVISION                   * 
*                             APRIL 11, 1980                        * 
********************************************************************* 
* 
D15   DEC 15
D13   DEC 13          'EXEC' REQUEST CODE FOR STATUS REQUEST
D12   DEC 12
DM1   DEC -1
D1    DEC 1 
* 
EQT#5 NOP             EQT ENTRY WORD#5
EQTAD NOP             ADDRESS OF EQT
TEMP  NOP             TEMPORARY 
BTEMP NOP             TEMPORARY 
* 
BPEQT OCT 1650        BP COMMUNICATION AREA LOCATION OF EQT ADDRESS 
BPDRT OCT 1652        BP COMMUNICATION AREA LOCATION OF DRT ADDRESS 
MASK  OCT 140000
MASK2 OCT 77
* 
A     EQU 0 
B     EQU 1 
* 
LU    NOP             MULTIPOINT TERMINAL LU# 
* 
IEQCK NOP             ENTRY POINT 
* 
      JSB .ENTR       GET MULTIPOINT TERMINAL LU# 
      DEF LU
* 
      JSB EXEC        GET EQT WORD#5
      DEF *+4           WITH 'EXEC' TO
      DEF D13             DETERMINE THE 
      DEF LU,I              MULTIPOINT TERM'S 
      DEF EQT#5               AVAILABILITY
* 
      LDA EQT#5       PUT EQT WORD IN 'A' 
      AND MASK        ISOLATE BITS 14 & 15
      SSA,RSS         TERMINAL BUSY?
      JMP CHK         NO, CHECK BIT 14
      JMP BUSY        TERMINAL IS BUSY OR WAITING FOR DMA 
CHK   RAL             MAKE BIT 14 THE SIGN BIT
      SSA,RSS         TERMINAL AVAILABLE OR DOWN? 
      JMP AVAL        TERMINAL IS AVAILABLE 
      JMP DOWN        TERMINAL IS DOWN
* 
BUSY  LDB "B" 
      JMP INIT
* 
AVAL  LDB "A" 
      JMP INIT
* 
DOWN  LDB "D" 
* 
INIT  STB BTEMP 
      LDA BPEQT       GET THE EQUIPMTENT TABLE ADDRESS
      LDA A,I 
      STA EQTAD       STORE ADDRESS OF EQT FOR LATER USE
* 
      LDA BPDRT       GET THE DEVICE REF. TABLE ADDRESS 
      LDA A,I 
* 
      ADA LU,I        ADD LU# AS OFFSET INTO TABLE
      ADA DM1            AND SUBTRACT ONE TO GET TO EQT ENTRY FOR LU# 
* 
      LDA A,I         GET CONTENTS OF THAT ADDRESS
      AND MASK2          AND ISOLATE LOWER SIX BITS 
* 
      ADA DM1         SUBTRACT ONE AGAIN
* 
      MPY D15         MULTIPLY BY 15
      ADA EQTAD         AND ADD EQT ADDRESS 
* 
      ADA D12         ADD 12 FOR OFFSET 
* 
      LDA A,I         LOAD A INDIRECT TWICE 
      LDA A,I            TO GET CONTENTS OF EQT WORD #16
* 
      LDB BTEMP       RECALL AVAILABILITY 
      SZA             TERMINAL INITIALIZED??
      JMP OK          -----+
      ADB "N"              |--> RETURN CORRECT INFO TO CALLER 
      JMP QUIT             |
OK    ADB "I"         -----+
* 
QUIT  SWP             SWAP REGISTERS SO CALLER'S INFO IS IN A-REG.
      JMP IEQCK,I     ...AND RETURN 
* 
"B"   OCT 041000
"A"   OCT 040400
"D"   OCT 042000
"I"   OCT 000111
"N"   OCT 000116
* 
      END 
                                  