ASMB,R,Q,C
      HED IB4A4, RTE4 HPIB MATURE UTILITIES 
      NAM IB4A4,7 59310-1X015 REV 1940 790717 
      ENT HPIB,IBSTS
      EXT .ENTR,EXEC,LUTRU
* 
EQTA  EQU 1650B 
DRT   EQU 1652B 
LUMAX EQU 1653B 
* 
*     HPIB - RTE BUS UTILITY
* 
*     RELOC:  59310-1X015 PHANTOM MODULE
*     SOURCE: 59310-18015 
* 
*************************************************** 
* 
*     CALL HPIB (LU,IFUN,IPARM) 
* 
HPIB  NOP 
      JSB SET       RECOVER VALID PARMS 
      LDA CPAR2,I 
HPIB1 ASL 6 
      IOR LU        FORM CNTRL WORD 
      STA T1
      JSB EXEC      DO CONTROL REQ. 
       DEF *+4
       DEF .3        REQ.CODE 
       DEF T1        CNTRL WORD 
       DEF CPAR3,I   OPTIONAL PARM
      JMP RTN 
* 
      SKP 
* 
* 
*     STATUS RECOVERY: I=IBSTS(LU)
* 
IBSTS NOP 
      JSB SET       GET LU & VALIDATE 
      LDA T1
      AND B377      (A)=STATUS BYTE 
* 
RTN   STA T1
RTN1  LDA .0A       CLEAR OPT. PARMS
      STA CPAR2 
      STA CPAR3 
      LDA T1
      JMP XIT,I     & LEAVE 
* 
      SKP 
*     GET PARMS & VALIDATE
* 
SET   NOP 
      LDA SET       RECOVER RETURN ADDR 
      ADA M2               &
      LDA 0,I       GET PARM LIST ADDR
      STA XIT 
      JMP SET1
* 
CPAR1 DEF * 
CPAR2 DEF * 
CPAR3 DEF .0        (OPTIONAL)
* 
XIT   NOP 
SET1  JSB .ENTR     GET PARMS 
       DEF CPAR1
      LDA CPAR1,I 
      AND B377      EXTRACT SESSION LU
      STA LU        SAVE SESSION LU 
* 
      JSB LUTRU     SET TRUE (SYSTEM) LU. 
      DEF *+3       SYSTEM LU IS RETURNED IN A REGISTER AND 
      DEF LU        ALSO STORED.
      DEF LUT 
* 
      CPA M1        DOES SESSION LU MAP TO SYSTEM LU? 
      JMP LOSE      NO. ERROR.
* 
      CMA,INA       YES. INSURE VALID SYSTEM LU.
      ADA LUMAX 
      SSA 
      JMP LOSE      WRONG!
      LDA DRT 
      ADA LUT       INDEX TO
      ADA M1         APPROPRIATE
      LDA 0,I        DRT ENTRY USING SYSTEM LU. 
      SZA,RSS 
      JMP RTN       (IGNORE BIT BUCKET) 
      STA T2           &
      AND B77       EXTRACT EQT # 
      ADA M1
      MPY .15       FIND EQT ADDR 
      ADA EQTA
      LDB 0 
      ADA .4        GET EQT WORD 5
      LDA 0,I          &
      STA T1        CHECK DEVICE TYPE 
      ALF,ALF 
      AND B77 
      CPA B37       HPIB? 
      JMP SET,I      OK, LEAVE, (B)=EQT ADDR
* 
LOSE  LDA .0A 
      STA CPAR2     CLEAR OPT.PARMS 
      STA CPAR3 
      JSB EXEC
       DEF *+5
       DEF .2 
       DEF .1       "ILL RQ-HPIB" 
       DEF MSGA 
       DEF .12
      JSB EXEC      & QUIT! 
       DEF *+2
       DEF .6 
* 
* 
*     STORAGE, ETC... 
* 
      SUP 
.0    DEC 0 
.1    DEC 1 
.2    DEC 2 
.3    DEC 3 
.4    DEC 4 
.6    DEC 6 
.12   DEC 12
.15   DEC 15
.16   DEC 16
M1    DEC -1
M2    DEC -2
B37   OCT 37
B77   OCT 77
B377  OCT 377 
* 
.0A   DEF .0
* 
LU    BSS 1 
LUT   BSS 1 
T1    BSS 1 
T2    BSS 1 
* 
MSGA  ASC 12,ILL RQ-HPIB PROG ABORTED 
* 
SIZE  EQU * 
      END 
                                              