ASMB,Q,C   ** RTE-IV EQUIPMENT LOCK CHECKING MODULE **
*     NAME:   CHEL
*     SOURCE: 92067-18479 
*     RELOC:  92067-16268 
*     PGMR:   AVD 
* 
*  **************************************************************** 
*  * (C)  COPYRIGHT  HEWLETT-PACKARD  COMPANY  1979.   ALL RIGHTS * 
*  * RESERVED.   NO PART  OF  THIS  PROGRAM  MAY BE  PHOTOCOPIED, * 
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT * 
*  * THE  PRIOR  WRITTEN  CONSENT  OF   HEWLETT-PACKARD  COMPANY. * 
*  **************************************************************** 
* 
      NAM CHEL,7 92067-1X479 REV.2040 800724
* 
      ENT CHEL
      EXT $ELTB 
* 
      SUP 
A     EQU 0 
B     EQU 1 
* 
******************************************************************* 
*  THE CHECK EQUIPMENT LOCK ROUTINE ALLOWS A DRIVER OR OTHER
*  PROGRAM TO DETERMINE WHETHER A GIVEN EQUIPMENT IS LOCKED OR NOT. 
*  IT IS UP TO THE CALLING ROUTINE TO TAKE APPROPRIATE ACTION BASED 
*  ON THAT KNOWLEDGE. 
*  THIS ROUTINE IS APPENDED TO THE CALLER'S MEMORY SPACE. 
* 
*  CALLING SEQUENCE:
* 
*        LDB   EQT # WHOSE LOCKEDNESS (LOCHNESS?) IS TO BE KNOWN
*        JSB   CHEL 
*  RETURN---
* 
*  ON RETURN: 
*        (A) = 0, IF SPECIFIED EQT. NO. IS NOT LOCKED.  ELSE, 
*        (A) = LOCKER'S ID SEGMENT ADDRESS. 
******************************************************************* 
* 
* 
CHEL  NOP 
      CLO         FIRST CLEAR OVERFLOW, TO BE USED AS A FLAG. 
      RSA         GET A COPY OF THE STATUS REGISTER.
      ALF         GET WHICH_MAP? BIT IN LEAST_SIGNI_POZ.
      SLA         AND COPY IT INTO
      STO          THE FLAG.
      SOS         IF THE SYSTEM MAP IS ENABLED, 
      JMP CH500    GO DO A REGULAR LOAD,
* 
      XLA $ELTB,I   ELSE DO A CROSS-LOAD. 
CH050 SSA,RSS     IF TABLE IS EMPTY,
      JMP CH200    RETURN WITH (A) = 0. 
* 
      ELA,CLE,ERA GET RID OF NOT_EMPTY BIT FROM HEADER WORD.
      STA TEMP1   STORE TABLE LENGTH. 
      CMA,INA     NEXT STORE 2'S COMPLE 
      STA TEMP2    OF TABLE LENGTH. 
      SOS         IF THE SYSTEM MAP IS ENABLED, 
      JMP CH501    GO DO REGULAR LOAD,
* 
      XLA $ELTB     ELSE DO A CROSS-LOAD. 
CH075 ADA D1      GET ADDR OF 1ST EQT. #
      STA TEMP3    IN TABLE, AND STORE IT.
CH100 LDA TEMP3   GET ADDR OF NEXT EQT. # IN TABLE. 
      SOS         IF THE SYSTEM MAP IS ENABLED, 
      JMP CH502    GO DO REGULAR LOAD,
* 
      XLA A,I       ELSE DO A CROSS-LOAD. 
CH150 CPA B       COMPARE WITH CALLER-SPECIFIED EQT. #. 
      JMP CH300   MATCHES, SO GO FIND LOCKER. 
* 
      ISZ TEMP3   GET ADDR OF NEXT EQT. # IN TABLE. 
      ISZ TEMP2   IF NOT ALL ENTRIES COMPARED,
      JMP CH100    LOOP BACK. 
* 
CH200 CLA         EQT. NOT LOCKED,  (A) = 0,
      JMP CHEL,I   AND RETURN.
* 
CH300 LDA TEMP3   GET MATCHED EQT. #'S ENTRY ADDR.
      ADA TEMP1   OFFSET TO LOCKER'S ID SEG ADDR. 
      SOS         IF THE SYSTEM MAP IS ENABLED, 
      JMP CH503    GO DO REGULAR LOAD,
* 
      XLA A,I       ELSE DO A CROSS-LOAD. 
      ELA,CLE,ERA KEEP ONLY THE ID SEG ADDR.
      JMP CHEL,I  RETURN WITH (A) = LOCKER'S ID SEG ADDR. 
* 
* 
CH500 LDA $ELTB,I 
      JMP CH050 
* 
CH501 LDA $ELTB 
      JMP CH075 
* 
CH502 LDA A,I 
      JMP CH150 
* 
CH503 LDA A,I 
      ELA,CLE,ERA 
      JMP CHEL,I
* 
* 
* 
D1    DEC 1 
TEMP1 NOP 
TEMP2 NOP 
TEMP3 NOP 
      END 
                                                                                                                                                                      