ASMB,R,L,C
      NAM LU2ST,7  09580-16127  REV.A  770201 
* 
*---------------------------------------------------------------
* 
*     RELOC.     09580-16127
*     SOURCE     09580-18127
* 
*     M.KAESSNER    REV.A   770201
* 
*     HP 92425A TEST SYSTEM SOFTWARE IS THE PROPRIETARY 
*     MATERIAL OF THE HEWLETT-PACKARD COMPANY.  USE AND 
*     DISCLOSURE THEREOF ARE RESTRICTED BY WRITTEN AGREEMENT. 
* 
*     (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977. 
*     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. 
* 
*---------------------------------------------------------------
* 
      ENT LU2ST 
      EXT .ENTR,DRTXX 
      SPC 1 
A     EQU 0 
B     EQU 1 
      SKP 
*     THIS ROUTINE IS USED TO RETURN THE STATION NUMBER OF THE LU 
* THAT IS PASSED IN AS A PARAMETER.  THIS IS SOMEWHAT MORE DIFFICULT
* THAN SIMPLY INDEXING INTO THE DRTXX TABLE AND RETRIVING THE STATION 
* BITS.  THE REASON FOR THIS IS THAT THE STATION BITS INDICATE ONLY A 
* RELATIVE OR "FAKE" STATION NUMBER.  IF THE REAL STATION NUMBER, THE 
* LU OF THE STATION'S CRT, WERE STORED IT WOULD REQUIRE UP TO 6 BITS. 
* SINCE ONLY 7 STATIONS MAXIMUM CAN BE CONNECTED, THIS ONLY REQUIRES
* 3 BITS. 
* 
* ALGORITHM:
* 1. ENTER DRTXX FOR THE LU PASSED IN AND GET DRTXX WORD. 
* 
* 2. MASK OFF ALL BUT THE "FAKE" STATION NUMBER (BITS 0-2). 
* 
* 3. MERGE THE "FAKE" STATION WITH DEVICE TYPE "1" AND SAVE IN STN. 
* 
* 4. SCAN THE DRTXX TABLE FOR THIS WORD.  THE POSITION OF THE MATCHING
*    WORD WITHIN DRTXX IS THE LU OF THE STATION'S CRT, HENCE, THE 
*    STATION NUMBER.
* 
* 5. RETURN 
      SKP 
LU    NOP 
LU2ST NOP 
      JSB .ENTR 
      DEF LU
* 
*     TEST FOR LEGAL LU 
* 
      LDA LU,I      GET PASSED LU 
      SSA           IS LU NEG?
      JMP ERR        YES, ERROR 
      SZA,RSS       IS LU 0?
      JMP ERR        YES, ERROR 
      LDB DRTXX,I   GET TABLE SIZE
      STB CNT        (SAVE FOR LATER) 
      CMB 
      ADA B         COMPARE TO TABLE SIZE 
      SSA,RSS       BIGGER? 
      JMP ERR        YES, ERROR 
* 
*     GET DRTXX WORD
* 
      LDA DRTXX     GET TABLE ADDRESS 
      ADA LU,I      ADD LU AS OFFSET
      LDA A,I       GET LU'S WORD 
      AND STMSK     STRIP ALL BUT STATION BITS
      ADA TYPE1     ADD TYPE 1 BITS 
      STA STN       SAVE FOR LATER
* 
*     SCAN DRTXX TO FIND DEVICE TYPE 1 WITH SAME STATION
* 
      CLA,INA 
      STA LUN       INITIALIZE LU COUNTER 
      LDB DRTXX 
      INB           B REGISTER IS ADDRESS POINTER 
      SPC 1 
LOOP  LDA B,I       GET NEXT ENTRY
      CPA STN       EQUAL TO STATION WORD?
      JMP EXIT       YES, EXIT WITH LU
      LDA LUN        NO, CHECK INDEX
      CPA CNT       EQUAL TO END OF TABLE?
      JMP ERR        YES, NO STATION NUMBER 
      INB            NO, INCREMENT ADDRESS POINTER
      ISZ LUN       INCREMENT LU COUNT
      JMP LOOP
* 
*     NORMAL EXIT 
* 
EXIT  LDA LUN       EXIT WITH LUN OF CRT
      JMP LU2ST,I 
* 
*     ERROR EXIT
* 
ERR   CLA           RETURN 0 FOR ERROR
      JMP LU2ST,I 
* 
*     CONSTANTS AND VARIBLES
* 
CNT   BSS 1 
LUN   BSS 1 
STN   BSS 1 
STMSK OCT 7 
TYPE1 OCT 210 
      END 
      END$
                                                                                                                                                                                                                