HPIB Stuff - some capture stuff

Steve Robertson steerex at ccvn.com
Sat May 3 18:29:32 CDT 2008


> 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.
> 
> Hope all's well and thanks again,
> Rodney Brown
> 

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.

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

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 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.

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) :-) 

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.

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.

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 :-)

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. 

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?

See ya,
SteveRob

steerex at ccvn.com  






More information about the cctalk mailing list