HPIB Stuff - some capture stuff

Rodney Brown rdbrown at pacific.net.au
Sun May 4 19:11:14 CDT 2008


On Sat, 2008-05-03 at 19:29 -0400, Steve Robertson wrote:
> > Thanks for your work on this Steve, I need to find the one or two I
> > spotted again, but yours was cleaner than mine.

> > I tested the PCI NI-Analyser card again on the HP150 - which is the
> > working HP-IB machine I have. Since I didn't know better I captured
> > everything again - including timings. For someone writing an emulator,
> > this could be helpful, but I don't know if you want another huge capture
> > file of boring Amigo protocol stuff. I've attached what I did and
> > captures of the analyser interface - I'd welcome your advice on what I
> > should be capturing that would be useful for protocol understanding.

> Hey Rodney,
> 
> Hope you don't mind but, I'm gonna post this to the classiccmp list.
> Someone there may want to follow the discussion.

Not a problem, HP150 boots to Amigo 9133 NI Analyser captures available
on request (7-zipped 16Mb capture file, 168Mb text output)

> What kind of system are you running the PCI Analyzer on? Windows? Linux?

I have an ISA NI GPIB+ card in a Win ME box that will go to Jon Johnston
of hpmuseum.net, so his CE friends could capture traces from more
interesting hardware.

A PCI NI GPIB+ card that is in a W2k box, but may end up in my Linux
box, as just a GPIB card.
Unfortunately National Instruments don't release programming info for
their analyser cards - when I last went looking they don't release the
format of the capture files, though I have some of that decoded, though
not all the named state transitions.

> I have FINALLY made some more progress with the ISA GPIB card in my
> Linux box. Unfortunately, it uses the NEC7210 chip which has been a pain
> in the rear to program. I found a few snippets of code online but really
> didn't find anything that directly addressed my needs.

> I have been able to read and write small data packets to the HP7980 but
> that's about all. With the tape drive, you have to worry about block
> sizes, file and record markers, rewind, readahead... Blah... Blah...
> Blah... As of now, I have not yet figured out how to handle all that
> stuff. So, I decided to take a break from the tape drive and concentrate
> on the HPIB CS80 disks.

> I suspect the HP150 is using the "Cold Load" command to read the tape on
> bootup. I have not been able to read a tape using that method on my PC
> (yet).  

I'm not surprised, from a quick read of the HP85 emulator, it looked
like that by default the Amigo disks work like a tape of fixed size
blocks.

> I was already familiar with the CS80 protocol so, I just had to learn to
> program the 7210 chip. It took a while but, I can finally, with some
> confidence, program the 7210 to do what I need. I was also able to write
> some code to support a couple of HP instruments (multimeter / frequency
> counter) over HPIB.

I don't have hardware or this kind of programming experience.

> Programming the CS80 disk was fairly easy and, at this point, I can read
> or write a raw binary file to any partition (including boot) of the HPIB
> disk from my PC (linux). That disk is then bootable from the HP1000 with
> a CS80 ROM.

> I have created a small "library" of sorts with the common CS80 methods
> and another with the HPIB methods in another. I'm not a "C" programmer
> so, anyone looking at the code would probably think it's sloppy. But, it
> works (sorta) :-) 

I'd be interested to have a look. Ultimately I'm interested in
collecting enough information to be able to emulate an HP3000, but
emulating disk devices to keep machines running is important too.
Asking Bering or Reactive AEM to open source their code to emulate HP-IB
devices using SCSI disks could work.

When we start the MPE/iX machine in the office, I'll try decompiling the
HIO at .PUB.SYS and the SL.PUB.SYS from a Series 52 Sysdump I have.
They should give some hints.

> The question is: What exactly are your goals at this point? If you're
> still trying to boot the HP150 off the HP7980, I can probably provide
> some additional insight into the tape protocol although, I cannot 
> provide any specific info for programming the HP150.

I'd like to get the 7980 to someone who can use it (~35kg, Melbourne,
Au). I have a few tapes I'd like to image if the drive is behaving, if
possible reading to my/a Linux box. The HP150 is the working HP-IB
(MS-DOS) machine I have, supporting Amigo & SS-80 protocols I think. The
techref manual for it probably describes HP-IB programming, probably
using ioctl calls on an HPIB device analogous to the AGIOS calls for
accessing the inherent HP2623 terminal emulator. Tony Duell has the only
copy I know of.

> One of the problems with programming the tape drive is that you cannot
> slow down the data interchange to see exactly what it is doing. With the
> disk there is no "timeout" for any of the transactions. You can slow
> down (or halt) the bus and watch the interaction between the disk and
> the computer without causing any errors. You cannot do this with the
> tape drive. It'll throw an error :-( Furthermore, when the computer
> boots there is a large chunk of data that is passed across the bus this
> bloats your analyzer's capture and makes it much harder to pick out the
> important bits.

The 7970s probably wouldn't have cared, but a 7980 is a different beast.

> You might try to capture only the transactions where the ATN is
> asserted. This will filter out the "data" and only leave the commands to
> wade through.

> If you have a HPIB card with the 7210 or 9914 I can perhaps provide some
> insight into register level programming with those chips. I have not
> given up on the AMIGO tape protocol. I just have been focused on other
> stuff :-)

The 7980 is CS-80 as you know

> There is a steep learning curve when tackling all these protocols at the
> same time. My suggestion would be to break up the project into smaller
> chunks. The first thing is to figure out how to do the register level
> programming on the HPIB card. You will need to know how to send and
> receive "commands" and "data", how to conduct a "parallel poll", and how
> to change "states" on the card. 

Understood

> The tape and disk protocols are not simple, I would also suggest using a
> simple device (HPIB meter  etc...) to refine you programming. Use the
> analyzer card to watch the bus to see exactly what happens when a
> certain chunk of code is executed. Once you get predictable results,
> it'll be easier to tackle a more complex protocol. 

> Talk to me about the HP150. What HPIB chip does it use? Does your
> version of DOS/UNIX have the tools that you need to do register level
> programming? I have HPUX 10.20 on a HP9000/800 that has HPIB support
> built in. Does the 150 have this kinda support?

I don't know what HP-IB chip the HP150 uses - but it looks like Tony has
answered.
My HP-UX boxes are 700 series without HP-IB - I should look out for such
an 800 series - though I remember those as being large.

> See ya,
> SteveRob

Thanks again Steve




More information about the cctech mailing list