IEEE-488 on the PDP-11

Glen Slick glen.slick at gmail.com
Tue Nov 16 12:25:22 CST 2021


On Tue, Nov 16, 2021 at 9:23 AM Douglas Taylor via cctalk
<cctalk at classiccmp.org> wrote:
>
> I'm going by the 'Instrument Bus Subroutines Programmer's Reference
> Manual' that is on bitsavers. [/pdf/dec/pdp11/minc]  In section 4, page
> 4-1 it seems to imply that there are 6 files:
>
> IBLIB.OBJ
> IBSVER.FOR
> IBMNC.SYS
> IBNMNC.SYS
> IBXMNC.SYS
> IBXNMC.SYS
>
> I think that's it.  *.OBJ is a library to link to, *.FOR is a test
> program, *.SYS are device drivers for MINC and ordinary PDP-11 SJ, FB
> and XM monitors.  It probably is on it's own disk (RX01 RX02?)
>
> Doug

I have an original DEC RX01 floppy labeled:

AS-H300E-BC
INSTMT BUS SUB V2.1 BIN RX1
(c) 1983 Digital Equipment Corporation

I have an image I created from that floppy which I can mount using
PUTR, and then access the files on the floppy image:

C:\PUTR>PUTR
PUTR V2.01  Copyright (C) 1995-2001 by John Wilson <wilson at dbit.com>.
All rights reserved.  See www.dbit.com for other DEC-related software.

COPY mode is ASCII, SET COPY BINARY to change
(C:\PUTR)>MOUNT RX0: AS-H300E.IMG /RONLY /RX01
(C:\PUTR)>DIR RX0:

 Volume in drive RX0 is RT11A
 Directory of RX0:\*.*

 16-Nov-2021
IB    .MAC    76  27-Mar-1982
IBBASE.MAC     8  27-Mar-1982
IBCBLK.MAC     3  27-Mar-1982
IBCMD .MAC     2  27-Mar-1982
IBDCL .MAC     1  27-Mar-1982
IBDEV .MAC     2  27-Mar-1982
IBERMF.MAC     5  27-Mar-1982
IBERR .MAC     4  27-Mar-1982
IBERRF.MAC     2  27-Mar-1982
IBERSH.MAC     3  27-Mar-1982
IBGET .MAC     1  27-Mar-1982
IBGTL .MAC     1  27-Mar-1982
IBIFC .MAC     1  27-Mar-1982
IBINIT.MAC     6  27-Mar-1982
IBLEGL.MAC     2  27-Mar-1982
IBLLO .MAC     1  27-Mar-1982
IBLNR .MAC     2  27-Mar-1982
IBLSN .MAC     5  27-Mar-1982
IBPPD .MAC     2  27-Mar-1982
IBPPE .MAC     2  27-Mar-1982
IBPPL .MAC     2  27-Mar-1982
IBPPU .MAC     1  27-Mar-1982
IBRCVS.MAC     1  27-Mar-1982
IBRDA .MAC     1  27-Mar-1982
IBRECV.MAC     3  27-Mar-1982
IBREMO.MAC     2  27-Mar-1982
IBREN .MAC     1  27-Mar-1982
IBSDC .MAC     1  27-Mar-1982
IBSEND.MAC     3  27-Mar-1982
IBSPL .MAC     3  27-Mar-1982
IBSRQ .MAC     5  27-Mar-1982
IBSRQF.MAC     1  27-Mar-1982
IBSTER.MAC     2  27-Mar-1982
IBSTS .MAC     2  27-Mar-1982
IBTERM.MAC     2  27-Mar-1982
IBTIMO.MAC     2  27-Mar-1982
IBTLK .MAC     4  27-Mar-1982
IBUNIT.MAC     2  27-Mar-1982
IBUNL .MAC     2  27-Mar-1982
IBUNT .MAC     2  27-Mar-1982
IBWAIT.MAC     1  27-Mar-1982
IBXFER.MAC     3  27-Mar-1982
IB    .ASM     9  27-Mar-1982
IBLOC .ASM     1  27-Mar-1982
IBMNC .SYS    10  27-Mar-1982
IBXMNC.SYS    11  27-Mar-1982
IBNMNC.SYS    10  27-Mar-1982
IBXNMC.SYS    11  27-Mar-1982
IBDBLD.COM     1  27-Mar-1982
IBLIB .OBJ    45  27-May-1982
IBSVER.FOR     7  27-Mar-1982
IBXBLD.COM     1  08-Mar-1983
IBSBLD.COM     2  08-Mar-1983
IBLBLD.COM    10  27-Mar-1982
< UNUSED >   193
 54 Files, 293 Blocks
 193 Free blocks

(C:\PUTR)>COPY RX0:IBSVER.FOR C:
IBSVER.FOR


C****************************************************************************
C
C THIS PROGRAM IS THE INSTALLATION/VERIFICATION PROGRAM FOR THE IBS IEEE BUS
C INTERFACE ROUTINES.
C
C*****************************************************************************
C
EXTERNAL SERVE !ADDRESS OF USER'S SRQ HANDLING ROUTINE.
BYTE ASCII(26) !ASCII ARRAY CONTAINING THE ALPHABET.
INTEGER TALK,STAT

IBZERO=' ' !ASCII CODE FOR ZERO INSTRUMENT ADDRESS
LISTEN=5 !OUR LISTENER'S PRIMARY IEEE BUS ADDRESS.
TALK=6 !OUR TALKER'S PRIMARY IEEE BUS ADDRESS.
MAXL=15 !OUR MAXIMUM TRANSMIT/RECEIVE LENGTH.
LINE=6
C
TYPE 1000
 1000 FORMAT('1 IBS-11 V2.1 Verification Program'///
1' This procedure assumes that IB.SYS (or IBX.SYS) has been INSTALLED
2 and LOADED'/' in this system.   Also, this procedure assumes
3 that no devices'/' are connected to your IBV11-A/IB11
4 instrument bus.')
TYPE 1001
 1001 FORMAT(//' The first part of this test calls routines that do
1 not depend'/' on any device and thus should produce no
2 error messages.'//)
C
CALL IBSTER(16,20) !ALLOW ERROR NUMBER 16 (TIME-OUT) TO OCCUR 20 X
CALL IBSTER(5,5) !ALLOW THE NO DEFAULT LISTENER ERROR 5 TIMES
CALL IBSTER(7,2) !ALLOW THE BAD UNIT ERROR TO OCCUR TWICE
CALL IBSTER(15,25) !ALLOW THE NO VALID LISTENER ERROR TO OCCUR 25 X
CALL IBSRQ(SERVE,,,STAT) !SET-UP TO HANDLE SRQ'S
CALL IBSRQF(IFLG) !GET STATUS OF SRQ IEEE INTERFACE CONTROL LINE
CALL IBTERM() !CLEARS INTERNAL TERMINATOR'S LIST
CALL IBPPL !CONDUCT A PARALLEL POLL
CALL IBIFC !ISSUE THE IEEE INTERFACE-CLEAR
STAT=IBERRF() !GET ERROR INFORMATION
CALL IBRDA !DISABLE (TURN-OFF) THE IEEE REMOTE LINE
CALL IBREN !ENABLE (TURN-ON) THE IEEE REMOTE LINE
TYPE 1002,IBREMO() !READ AND TYPE THE REMOTE LINE STATUS
 1002 FORMAT(' IBREMO should return minus one at this point.  IBREMO ='
1I6)
C
TYPE 1003
 1003 FORMAT(//' At this point non-fatal error messages should begin to
1 appear.'//' ****EXPECTED ERROR MESSAGES****'
2/' -------------------------------')
CALL IBTIMO(120) !SET TIME-OUT VALUE TO 2 SECONDS
CALL IBDEV(TALK,IBZERO) !SET-UP SRQ-CAPABLE DEVICE ADDRESS LIST
CALL IBLNR() !CHECK FOR VALID LISTENERS
CALL IBSEND(ASCII,MAXL,LISTEN)
CALL IBSEOI(ASCII,MAXL,LISTEN)
CALL IBRECV(ASCII,MAXL,TALK)
CALL IBRCVS(STAT) !GET OUR RECEIVE STATUS BACK
LENGTH=IBXFER(MAXL,TALK,LISTEN)
CALL IBASND(ASCII,MAXL,LISTEN)
CALL IBARCV(ASCII,MAXL,TALK)
CALL IBAXFR(MAXL,TALK,LISTEN)
CALL IBWAIT !WAIT FOR PRECEDING ASYNCHRONOUS I/O TO COMPLETE
CALL IBFREE(LISTEN,TALK)
CALL IBGTL(LISTEN)
CALL IBSDC(LISTEN)
CALL IBGET(LISTEN)
CALL IBCMD(7)
STAT=IBSTS(TALK)
IFUN=IBSPL(STAT,TALK)
CALL IBPPE(ISENSE,LINE)
CALL IBPPD()
CALL IBPPU
CALL IBUNL
CALL IBUNT
CALL IBLLO
CALL IBDCL
CALL IBUNIT(2)
TYPE 1004
 1004 FORMAT(//' IBS-11 VERIFICATION PROCEDURE SUCCESSFUL!'//)
STOP 'END IBS VERIFY'
END
C
C*****************************************************************************
C
C THE USER'S SRQ HANDLING ROUTINE:
C
C*****************************************************************************
SUBROUTINE SERVE
RETURN
END


More information about the cctalk mailing list