ASMB,R,L,C    ** FNDLU - FIND 'LU' FROM EQT4 ADDR IN B REG ** 
      HED -FNDLU - FIND 'LU' FROM EQT4 ADDRESS IN B-REG 
*     NAME:   FNDLU 
*     SOURCE: 92067-18309 
*     RELOC:  92067-16268 
*     PGMR:   G.L.M.
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978.  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 FNDLU,7 92067-1X309 REV.2013 780403 
      ENT FNDLU 
      EXT $RNTB 
* 
*     ROUTINE TO FIND THE LOGICAL UNIT NUMBER OF A DEVICE 
*     GIVEN THE ADDRESS OF WORD 4 OF ITS EQUIPMENT TABLE
*          CALLED AS FOLLOWS: 
* 
*          LDB EQT4       (PASSED FROM DVR00/DVR65) 
* 
*          JSB FNDLU    -OR-    JSB FNDLU   -OR-   CALL FNDLU (LUSDI) 
*          DEF *+2             DEF *+1
*          DEF LUSDI
* 
*          A-REG. = 0   IF NOT FOUND -OR- 
*          A-REG. = THE LOGICAL UNIT NUMBER IF FOUND
*          E-REG. = 0 IF DEVICE IS UP -OR-
*          E-REG. = 1 IF DEVICE IS DOWN (IF DOWN, ALL OTHER REGS INVALID) 
*          X-REG. = POSSIBLE RN# BYPASS WORD
*          Y-REG. = DEVICE TYPE (ISOLATED)
*          LUSDI  = RETURNED SAME AS A-REG. 
*          B-REG. = ASCII "00" -OR- LOGICAL UNIT IN ASCII (I.E. "16") 
* 
      SUP 
FNDLU NOP        ENTRY
      STB EQT4     SAVE B-REG FOR LATER TEST
      LDA FNDLU,I   GET ADRS OF RETURN ADDRESS
      ISZ FNDLU     BUMP TO POSSIBLE PRAM.
      LDB FNDLU,I   GET POSS. ADDRS OF PRAM.
      CPA FNDLU     PARAMETER PASSED? 
      CLB          NO, SET DUMMY ADRS (A-REG.)
      STB LUADR    SET ADDRESS FOR PASSED PRAM
      STA FNDLU     SET UP RETURN ADDRESS 
      CLA           SET START LU = 0
      STA LUNUM 
* 
NEXT  LDA LUNUM    GET CURRENT LU NUM-1 
      CPA LUMAX    DONE THRU ALL LU'S 
      JMP NTFND    YES, NOT FOUND!! 
      ISZ LUNUM    BUMP TO CURRENT LU 
      ADA DRT      POINT TO TABLE ADDRESS 
      LDA 0,I      GET CONTENTS 
      AND O77      MASK OF SUBCHANNEL BITS
      MPY D15      CALCULATE ADDRESS OF WORD 4
      ADA EQTA     BASE ADDRESS 
      ADA DM12     SUBTRACK ONE EQT & ADD DEC 3 
      CPA EQT4     COMPARE??
      JMP FOUND    YES !! 
      JMP NEXT     NO, TRY NEXT ONE 
      SPC 1 
NTFND STB LUNUM    NOT FOUND RETURN A=0 
      JMP FOND2 
* 
FOND1 LDB DRT           GET START OF DEVICE REFERENCE TABLE 
      ADB LUNUM     INDEX TO PROPER ENTRY 
      ADB DM1 
      STB LU1       SAVE THE ADDRESS
      ADB LUMAX     GET TO DRT PART 2 
      LDA B,I       FETCH IT
      CCE,SSA       IS THE LU DOWN? 
      JMP DWN       YES-EXIT
* 
      LDB EQT4      FETCH EQT 
      INB               WORD 5
      LDA B,I 
      RAL,RAL       GET STATUS
      AND D3          AND ISOLATE 
      CPA D1            DOWN ?
      JMP DWN           YES-EXIT (E SET ABOVE)
* 
*  NOW CHECK FOR A LU LOCK
* 
      LDA LU1,I     GET THE DRT ENTRY 
      AND M3700 
      CLE,SZA,RSS   IS THE DEVICE LOCKED? 
      JMP CAX       NO--CONTINUE
* 
      ALF,ALF       YES SO CONFIGURE A RN BYPASS WORD 
      RAL,RAL 
      STA EQT4      SAVE IN TMP 
      ADA RNTB      NOW GO TO RN # TABLE
      XLA A,I 
      AND B377      GET OWNER TO UPPER
      ALF,ALF       UPPER END 
      IOR EQT4      CONFIGURE WORD
CAX   CAX           SAVE IT IN (X)
      CLB           PREPARE FOR DIVIDE
* 
FOND2 LDA LUNUM    FOUND RETURN A= LU NUMBER
      DIV D10      CONVERT TO ASCII 
      ALF,ALF      POSITION MOST SIG. DIGIT 
      ADB 0        MIRGE IN LEAST 
      ADB ASC00    CONVERT TO ASCII 
DWN   LDA LUNUM    RESTORE BINARY VALUE 
      STA LUADR,I  PASS BACK TO CALLER
      JMP FNDLU,I 
      SPC 1 
FOUND LDA EQT4      GET THE SPECIFIED LU
      INA           AND NOW EQT 5 
      LDA A,I 
      AND MEQT      GET THE TYPE
      CAY           SAVE DEVICE TYPE
      SZA,RSS       DVR00 ? 
      JMP FOND1     YES, WERE DONE
      LDA DRT       MUST BE DVR05, SO GET DRT 
      ADA LUNUM     ADD LU #
      ADA DM1       DO OFFSET 
      LDA A,I       GET THE DRT VALUE 
      AND MSUB      GET THE SUB CHANNEL # 
      SZA,RSS       WAS IT THE CRT ?
      JMP FOND1     YES, SO DO IT.
      JMP NEXT
      SPC 1 
EQT4  NOP 
MSUB  OCT 174000
MEQT  OCT 37400 
DM1   DEC -1
LUADR NOP 
LUNUM NOP 
O77   OCT 77
D10   DEC 10
ASC00 ASC 1,00
D15   DEC 15
DM12  DEC -12 
LU1   NOP 
D3    DEC 3 
D1    DEC 1 
M3700 OCT 3700
RNTB  DEF $RNTB+0 
B377  OCT 377 
EQTA  EQU 1650B 
DRT   EQU 1652B 
LUMAX EQU 1653B 
A     EQU 0 
B     EQU 1 
      END 
                                                        