ASMB,R,L,C
      NAM HPIBT,6  92071-1X313  REV 2040  800414
* 
      ENT HPIBT,HPIBB,CNFUE 
* 
      EXT .ZPRV,$LUTA,$LIBR,$LIBX,IXGET,IXPUT 
* 
******************************************************************* 
*  * (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 HEWLETT-PACKARD COMPANY.        * 
******************************************************************* 
* 
*     HPIB CONFIGURATION TABLE *
* 
*  ***PLEASE NOTIFY BASIC/L MANAGER OF ANY CHANGES TO THIS ROUTINE*** 
* 
*     RELOC:  PART OF 92071-12005 AND 92076-12002 
*     SOURCE: 92071-18313 
*     PGMR:   T.A.L.
* 
A     EQU 0 
B     EQU 1 
* 
HPIBT NOP           ZERO HPIB CNFG TABLE & DISABLE ERROR
      JSB $LIBR     HANDLING FOR AN HP-IB DEVICE. 
       NOP
      JSB IXGET     GET DVT TABLE ENTRY ADDRESS 
       DEF *+2
       DEF LUTA 
      STA DVTA      SAVE IT 
      CLA,INA       SET LU=1
      STA LU
NXTLU JSB CNFUE     CHECK LU CONFIGURATION
      SZA           LU CONFIGURED IN HPIB TABLE?
      JMP ZDVT      YES, DISABLE BIT 14 IN DVT20
CONT  LDA LU        GET LU AGAIN
      CPA .64       LAST LU IN HPIB TABLE?
      JMP ZEROT     YES, NOW ZERO HPIB CNFG TABLE 
      INA           INDEX TO NEXT LU
      STA LU        SAVE IT 
      JMP NXTLU     CHECK NEXT LU CONFIGURATION 
* 
ZDVT  LDA DVTA      GET DVT TABLE ENTRY ADDRESS 
      ADA LU        ADD LU
      ADA M1        MINUS 1 
      STA TBLAD     SAVE IT 
      JSB IXGET     GET DVT ADDRESS 
       DEF *+2
       DEF TBLAD
      ADA .19       INDEX TO DVT20
      STA TBLAD     SAVE IT 
      JSB IXGET     ZERO DISABLE/ENABLE ERROR HANDLING
       DEF *+2
       DEF TBLAD
      AND MSK14     BIT (BIT 14) IN DVT20.
      STA LUFLG     SAVE WORD 
      JSB IXPUT     RESTORE DVT20 
       DEF *+3
       DEF TBLAD
       DEF LUFLG
      JMP CONT      CONTINUE
* 
ZEROT CLA           ZERO HPIB TABLE 
      LDB HPIBB     GET CONFIGURATION TABLE ADDR. 
ZERO  STA B,I       ZERO
      INB            CONFIGURATION TABLE
      CPB HPIBE     DONE? 
      RSS           YES, RETURN 
      JMP ZERO      NO, ZERO REST OF TABLE
      JSB $LIBX     RETURN
       DEF HPIBT
* 
HPIBB DEF LUFLG 
LUFLG REP 4         HPIB CONFIGURATION TABLE
      NOP 
HPIBE DEF * 
* 
* 
CNFUE NOP           A REGISTER CONTAINS LU
      JSB .ZPRV 
       DEF END
      AND B77       MASK IT 
      CLB           CLEAR TABLE ADDR. OFFSET
CNF2  ADA M17       FIND WORD CONTAINING LU (16 LU'S/WORD)
      SSA           WORD FOUND? 
      JMP CNF4      YES, TABLE ADDR. OFFSET IN B. 
      INA           NO, ADJUST LU 
      INB           ADJUST OFFSET 
      JMP CNF2      TRY AGAIN 
CNF4  INA           COMPUTE NUMBER OF BITS TO ROTATE
      CMA,INA       TO SIGN BIT POSITION. 
      SZA           LESS THAN 16? 
      IOR RRL       YES, MERGE NUMBER OF BITS TO ROTATE 
      STA CNF6      SAVE RRL N
      LDA HPIBB     GET TABLE STARTING ADDRESS
      ADB A         ADD OFFSET
      LDA B,I       GET WORD CONTAINING LU BIT POSITION 
CNF6  NOP           ROTATE LU POSITION TO SIGN BIT
      AND BIT15     ZERO BIT 15 
      RAL           RETURN A=0/1, DISABLE/ENABLE
END   JMP CNFUE,I   ERROR HANDLING. 
       DEF CNFUE
* 
LU    NOP 
DVTA  NOP 
TBLAD NOP 
LUTA  DEF $LUTA 
B77   OCT 77
.19   DEC 19
.64   DEC 64
M1    DEC -1
M17   DEC -17 
BIT15 OCT 100000
MSK14 OCT 137777
RRL   RRL 16
      END 
                                                                                                                                                                                                                  