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