ASMB,R
* 
*     NAME:   IO..
*     SOURCE: 92070-18100 
*     RELOC:  92070-1X100 
*     PGMR:   C.H.W.
* 
*  **************************************************************** 
*  * (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 IO..,7  92070-1X100  REV.1941  790409 
* 
* 
* 
* 
      SUP 
      ENT IO..
* 
      EXT O.BUF,TMP.,OPEN.,WRITF
      EXT CNUMO,.MVW
      EXT $LUTA,$LUT#,$DVTA 
* 
* 
IO..  NOP 
      JSB OPEN.     OPEN LIST FILE
      DEF *+5 
      DEF O.BUF 
      DEF TMP.
      DEF TMP.+3
      DEF ZERO
* 
      CLA 
      STA IERR      INITIALIZE ERROR FLAG 
* 
      JSB OUTPT     OUTPUT HEADER 
      DEF HDR 
      DEF HDRL
* 
      LDB $LUTA     ADDR OF "LUT" 
      STB PNTR
      CLA,INA 
* 
IO.10 STA LU        SAVE NEXT LU #
      JSB DECIM     CONVERT TO 2 ASCII DIGITS 
      STA M1F1
      STA M1F10 
* 
      CLA 
      STA TEMP      TEMP=DVT # DURING SEARCH
      CPA PNTR,I    THIS LU HAVE A DVT? 
      JMP IO.80      NO 
      LDB $DVTA     ADDR OF 1ST DVT IN DVT AREA 
*  HERE WE COMPUTE RELATIVE DVT # FROM ITS ADDRESS
IO.20 ISZ TEMP      BUMP DVT #
      CPB PNTR,I    IS THIS THE ONE FOR THE LU? 
      JMP IO.25      YES
      ADB .20        NO, POINT TO DVT21 
      STB TEMP1 
      LDB 1,I       GET DVTP SIZE 
      LSR 9         RIGHT JUSTIFY IN B
      ADB TEMP1     COMPUTE ADDR
      ADB .2          OF NEXT DVT 
      JMP IO.20      AND ITERATE
* 
IO.25 LDA TEMP      DVT # 
      JSB DECIM     CONVERT TO 2 ASCII DIGITS 
      STA M1F2
* 
      LDB PNTR,I    GET DVT ADDR
      STB DVADR 
      ADB .4        POINT TO DVT5 
      LDA 1,I       GET IT
      ELA,CLE,ERA   CLEAR SIGN
      ADA .5        POINT TO IFT6 
      LDA 0,I       GET IT
      STA IFT6
      JSB OCTAL     CONVERT TO ASCII-OCTAL
      STA M1F3      STORE S.C. IN ASCII 
* 
      LDA DBLNK 
      STA M1F4      DVR PARAMETER FIELD 
      STA M1F4+1     TO BLANKS IN CASE THERE
      STA M1F4+2      IS NONE 
      LDB PNTR,I    DVT ADDR
      ADB .20       POINT TO DVT21
      LDA 1,I 
      AND B1770     ISOLATE # OF PARAMS 
      SZA,RSS       ANY?
      JMP IO.30      NO 
      ADB .2         YES, POINT TO D.P. (DVT23) 
      LDA 1,I       GET 1ST PARAM 
      STA TEMP
* 
      JSB CNUMO     CONVERT DVR PARAM TO ASCII(OCTAL) 
      DEF *+3 
      DEF TEMP
      DEF M1F4
* 
IO.30 LDB DVADR 
      ADB .19       ADDR OF DVT20 
      LDA 1,I       GET DEVICE PRIORITY 
      JSB OCTAL     CONVERT TO ASCII-OCTAL
      STA M1F5
* 
      JSB CNUMO     CONVERT DVT ADDR TO ASCII(OCTAL)
      DEF *+3 
      DEF DVADR 
      DEF M1F6
* 
      LDB DVADR 
      ADB .5        POINT TO DVT6 
      LDA 1,I       GET IT
      ALF,ALF       RIGHT JUSTIFY DEVICE TYPE 
      STA TEMP
      JSB OCTAL     CONVERT TO ASCII-OCTAL
      STA M1F7      STORE DEVICE TYPE IN MSG
* 
      LDB DSCTB     ADDR OF DEVICE DESCRIPTION TABLE
IO.40 LDA 1,I       GET CODE WORD 
      CPA N1        END OF TABLE? 
      JMP IO.45      YES, USE BLANKS
      XOR TEMP      SET-UP FIELD COMPARISON 
      STA TEMP1 
      LDA 1,I       GET CODE WORD AGAIN 
      ALF,ALF 
      RAL,RAL       GET MASK FOR TEST 
      AND TEMP1     TEST UNDER MASK 
      AND B77       6 BIT DEVICE TYPE ONLY
      SZA,RSS       IS IT THIS DEVICE TYPE? 
      JMP IO.45      YES
      ADB .7        POINT TO NEXT ENTRY 
      JMP IO.40      & ITERATE
IO.45 LDA 1 
      INA           A=ADDR OF DESCRIPTION 
      LDB DESCR     ADDR OF DESTINATION 
      JSB .MVW      MOVE INTO OUTPUT LINE 
      DEF .6
      NOP 
* 
      LDA IFT6      CONTENTS OF IFT6
      ALF,ALF       RIGHT JUSTIFY INTERFACE TYPE
      JSB OCTAL     CONVERT TO ASCII-OCTAL
      STA M1F9      STORE I.TYPE IN MSG 
* 
      JSB OUTPT     PRINT LINE FOR THIS LU
      DEF MSG1
      DEF MSG1L 
* 
IO.50 ISZ PNTR      POINT TO NEXT LUT ENTRY 
      LDA LU
      CPA $LUT#     ALL LU'S PROCESSED? 
      JMP IO.90      YES
      INA           BUMP LU # 
      JMP IO.10      AND DO IT
* 
*  NO DVT ASSIGNED TO LU
IO.80 LDA M1F1      ASCII LU #
      STA M2F1      STORE IN MSG
      STA M2F2
      JSB OUTPT     PRINT LU UNASSIGNED LINE
      DEF MSG2
      DEF MSG2L 
      JMP IO.50 
      SPC 2 
*  ERROR EXIT 
ERR   LDB IO..
      ADB .3        ADDR OF ERROR PARAM ADDR
      LDB 1,I       PICK-UP ERROR PARAM ADDR
      STA 1,I       RETURN ERROR CODE 
* 
IO.90 LDA IO..,I
      JMP 0,I       RETURN
      SPC 3 
* 
*  ROUTINE TO CONVERT NUMERIC TO 2 ASCII DIGITS 
* 
DECIM NOP 
      CLB 
      DIV .10 
      SZA,RSS 
      LDA B20       SUPPRESS LEADING ZERO 
      ALF,ALF 
      IOR 1         MERGE 2 DIGITS
      XOR ASC00     FORM ASCII NUMERICS 
      JMP DECIM,I 
      SPC 3 
* 
*  ROUTINE TO CONVERT TO 6-BITS TO 2 ASCII-OCTAL CHARACTERS 
* 
OCTAL NOP 
      AND B77       ISOLATE BITS 5-0
      CLB 
      DIV .8        A=HI, B=LOW 
      ALF,ALF       LEFT JUSTIFY HI 
      IOR 1         MERGE DIGITS
      IOR ASC00     CONVERT TO ASCII NUMERICS 
      JMP OCTAL,I   RETURN
      SPC 3 
* 
*  ROUTINE TO WRITE LINE TO LIST FILE 
* 
OUTPT NOP 
      DLD OUTPT,I   GET ADDR OF BUFFER & ADDR OF LENGTH 
      DST OUTP5     STORE IN-LINE OF CALL 
      JSB WRITF     WRITE LINE
      DEF *+5 
      DEF O.BUF 
      DEF IERR
OUTP5 BSS 2 
      LDA IERR      GET FMGR ERROR CODE 
      SSA           ERROR?
      JMP ERR        YES
      ISZ OUTPT 
      ISZ OUTPT 
      JMP OUTPT,I   RETURN
      SPC 3 
* 
*  DATA AREA
* 
TEMP  NOP 
TEMP1 NOP 
PNTR  NOP 
IERR  NOP 
IFT6  NOP 
LU    NOP 
DVADR NOP 
ZERO  DEC 0 
.2    DEC 2 
.3    DEC 3 
.4    DEC 4 
.5    DEC 5 
.6    DEC 6 
.7    DEC 7 
.8    DEC 8 
.10   DEC 10
.19   DEC 19
.20   DEC 20
B20   OCT 20
B77   OCT 77
B1770 OCT 177000
N1    DEC -1
ASC00 ASC 1,00
DESCR DEF M1F8
DSCTB DEF TABLE 
* 
HDR   ASC 18,    LU    DVT  S.C.   DP#1 PRIO  DVT 
      ASC 17, ADR D.TYPE-  DEVICE    I.TYPE  LU 
HDRL  ABS *-HDR 
DBLNK EQU HDR+1 
* 
MSG1  ASC 2,
M1F1  NOP 
      ASC 2,
M1F2  NOP 
      ASC 2,
M1F3  NOP 
      ASC 1,
M1F4  BSS 3 
      ASC 1,
M1F5  NOP 
      ASC 2,
M1F6  BSS 3 
      ASC 2,
M1F7  NOP 
      ASC 1,
M1F8  BSS 6 
      ASC 2,
M1F9  NOP 
      ASC 1,
M1F10 NOP 
MSG1L ABS *-MSG1
* 
MSG2  ASC 2,
M2F1  NOP 
      ASC 17,    -------------------- LU UNASSI 
      ASC 14,GNED --------------------
M2F2  NOP 
MSG2L ABS *-MSG2
* 
*  TABLE OF DESCRIPTIONS BASED ON DEVICE TYPE 
*     1ST WD OF EACH ENTRY:  BITS 11-6 CONTAIN MASK FOR TYPE CHECK
*                            BITS  5-0 HAVE VALUE TO TEST UNDER MASK
TABLE EQU * 
      OCT 7000      0 - 7 
      ASC 6,KEYBD CTL DV
      OCT 7712      12
      ASC 6,LINE PRINTER
      OCT 7010      10-17 
      ASC 6,SYS PERIPHRL
      OCT 7020      20-27 
      ASC 6,SER RECORDNG
      OCT 7030      30-37 
      ASC 6,MOV HD DISC 
      OCT 7440      40-43 
      ASC 6,CPU FUNCTION
      OCT 7444      44-47 
      ASC 6,MISC PERPHRL
      OCT 7050      50-57 
      ASC 6,A/D MEAS DEV
      OCT 7060      60-67 
      ASC 6,CPU COMM DVR
      OCT 7070      70-77 
      ASC 6,INSTRUMENT
      DEC -1
      ASC 6,
* 
SIZE  EQU * 
* 
      END 
                          