ASMB,Q,C
      HED <QUEZ> 3000 SLAVE REQ. WATCHDOG * (C) HEWLETT-PACKARD CO. 
      NAM QUEZ,17,2 91750-16156 REV.2013 800418 MEF: 3000 HSI LINK
      SPC 1 
******************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980. ALL RIGHTS      *
*  * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,       *
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT*
*  * THE PRIOR WRITTEN CONSENT OF THE HEWLETT-PACKARD COMPANY.   *
******************************************************************
      SPC 1 
      EXT EXEC,XLUEX,RNRQ,#LU3K,#QXCL,#QZRN,D$XS5 
      SUP 
      SPC 1 
      UNL           NEXT 5 LINES ARE FOR PRODUCTION ENGINEERING 
*  NAME: QUEZ 
*SOURCE: 91750-18156
* RELOC: 91750-16156
*  PGMR: DMT
      LST 
*************** QUEZ FOR HSI LINK **************
*                                              *
*    SOURCE: 91750-18156                       *
*                                              *
*    BINARY: 91750-16156                       *
*                                              *
*    PRGMR: JIM HARTSELL                       *
*                                              *
*    DATE: FEBRUARY 17, 1976                   *
*                                              *
*----------------------------------------------*
*                                              *
*  MODIFIED BY DMT IN JUNE 1979 FOR XLUEX CALL *
*                                              *
************************************************
      SPC 2 
* QUEZ IS A "POLLING PROGRAM" FOR UNSOLICITED LINE BIDS 
* FROM THE HP3000.  WHEN QUEX HAS NOTHING TO DO, QUEZ IS
* SCHEDULED TO WAIT FOR THE SLC DRIVER TO RECEIVE AN "ENQ"
* FROM THE 3000.  QUEZ THEN WRITES A ZERO LENGTH
* REQUEST TO QUEX'S I/O CLASS, TO FORCE QUEX TO READ THE BUFFER.
* 
* QUEZ ALSO PERFORMS "LINE OPEN" CALL FOR QUEX SO THAT QUEX 
* NEED NOT LOCK UP A PARTITION DURING I/O SUSPEND.
* 
QUEZ  LDA D$XS5     CHECK FOR 
      AND D2         MODEM LINK.
      SZA           0 = HSI, 2 = MODEM. 
      JMP WRDVR     ERROR--MODEM. 
* 
      LDA #LU3K     CONFIGURE XLUEX ARRAY.
      IOR BIT15 
      STA LU3K
* 
      LDA B,I       GET SCHEDULE PARAM. 
      SZA,RSS       NORMAL "POLLING" ENTRY? 
      JMP POLL      YES.
* 
* LINE OPEN SECTION. QUEX HAS SCHEDULED QUEZ WITH WAIT. 
* 
      JSB XLUEX     ISSUE LINE OPEN REQUEST.
      DEF *+6        (SETS # RETRIES = 7, 
      DEF D2           LONG TIMEOUT = 60 SEC.,
      DEF LU3K          # ID SEQUENCES = 0) 
      DEF D2         GO TO "SEND" STATE.
      DEF D3
      DEF LOPWD     (QUEX WILL CHECK FOR ERRORS)
* 
      JMP EXIT      TERMINATE WHEN CALL COMPLETES.
      SPC 4 
* 
*  WRONG DRIVER FOR THIS QUEZ. REPORT THE ERROR.
* 
WRDVR JSB EXEC      REPORT ERROR
      DEF *+5        ON SYS CONSOLE.
      DEF D2
      DEF D1
      DEF WRMSG 
      DEF D12 
* 
      JSB EXEC      SUSPEND.
      DEF *+2 
      DEF D7
* 
      JMP WRDVR     STAY IN LOOP IN CASE OF "GO". 
* 
WRMSG ASC 12,>> QUEZ EXPECTS HSI LINK 
      SPC 3 
B     EQU 1 
DM1   DEC -1
D1    DEC 1 
D2    DEC 2 
D3    DEC 3 
D6    DEC 6 
D7    DEC 7 
D12   DEC  12 
BIT15 OCT 100000
GLLCK OCT 40002 
CLS20 DEF 20,I
LOPWD OCT 060200
SPRWD OCT 024500
LU3K  OCT 0,0       2-WORD ARRAY FOR XLUEX. 
TEMP  NOP 
TEMP1 NOP 
      SKP 
* 
* SLAVE "POLL" SECTION. 
* 
POLL  LDA #QZRN 
      STA TEMP1 
* 
      JSB XLUEX     ISSUE SPECIAL "READ ENQ". 
      DEF *+6 
      DEF D1
      DEF LU3K
      DEF TEMP1     RESOURCE NUMBER.
      DEF D0
      DEF SPRWD 
* 
      JSB RNRQ      HANG ON ATTEMPT TO LOCK RN. 
      DEF *+4        COMMUNICATION DRIVER WILL UNLOCK 
      DEF GLLCK      WHEN AN "ENQ" IS RECEIVED AND QUEZ 
      DEF #QZRN      WILL RESUME EXECUTION WITH RN LOCKED.
      DEF TEMP
D0    NOP           IGNORE ERROR RETURN.
* 
      JSB EXEC      CLASS WRITE TO QUEX.
      DEF *+8        (NO REPLY EXPECTED)
      DEF CLS20 
      DEF D0
      DEF D0        DUMMY BUFFER ADDRESS. 
      DEF D0        ZERO-LENGTH RECORD. 
      DEF D0        LENGTH PASSED TO QUEX.
      DEF D0
      DEF #QXCL 
      NOP           IGNORE ERRORS.
* 
EXIT  JSB EXEC      TERMINATE 
      DEF *+4        SERIALLY 
      DEF D6          REUSABLE. 
      DEF D0
      DEF DM1 
* 
      JMP QUEZ      GO TO BEGINNING ON RESCHEDULE.
      SPC 1 
* 
      BSS 0         SIZE OF QUEZ
* 
      END QUEZ
                                                                                          