good. Now, here's a little detail about what I do for PhD. I will ask for an excuse about my English, which sucks, so I have to talk like kids to be sure my words are fully understood.
I'm working at a monitoring/warning system based on ARM microcontrollers. I managed to compile Unix FreeBSD 8.0 on a Marvell openRD platform (
http://www.newit.co.uk/ - go to "shop" and look for "openrd ultimate"). I have several USB data acquisition units (
http://www.bmcm.de/us/prgr-meassyst.html#external - search for "usb-AD"). With their help (long live the bavarian measuring systems, they are the kings) I managed to bypass their i386-based libraries and talk directly to USB-AD. I can read volts and logic states and I can also create voltage output and digital states. Problem is... USB-AD has only 4 digital inputs and 4 digital outputs, but my project is based on analog stuff so... not a real problem. I worked with USB-AD and I am really impressed by its performance. I can fully program it to do almost anything - from controlling/reading states of "french potatoes cooking" process to complicated industrial stuff involving PID algorithms, so I can recommend the following procedure...
For this pertec pain-in-the-butt system, there IS a problem. The "bmcm.de" product which I recommend is... the USB-PIO (search on the site, bmcm.de -> english -> products -> usb-pio). That unit is connected to USB and has 24 channels, some of them can be programmed to be bi-directional. Now... if I follow the protocol I posted earlier and I also use two (or three?) USB-PIO units, it is possible that the PERTEC communication protocol can be implemented using a C program and the LibAD (C) bmcm deutschland, which is supported by any i386 CPU architecture.
Basically, those usb-pio can read states and output states according to the pertec protocol, in order to send and receive data to the tape.
With a little "tune-up", the C program can use the stdin/stdout in order to send/get data to/from tape.
"Dreamland example" (tape.c does not exist yet)
# cc tape.c -o tape
# tar -cf - /kits/windows |gzip -9 - |./tape -send
what does this mean:
cc tape.c -o tape -compile the program - we suppose I drunk enough beer to write a perfect program and to build an error-free binary file;
tar -cf windows.tar /kits/windows -create an uncompressed archive called "windows.tar" which contains all the files in the folder /kits/windows
gzip -9 windows.tar -compress the windows.tar into windows.tar.gz and removes windows.tar
tape -send windows.tar.gz - the "dreamland example" program which sends the file to the tape.
now the pipe stuff:
tar -cf /kits/windows -|gzip -9 -
tar creates the uncompressed archive (which goes out to the typing terminal as the " - " specifies). Data from the tape terminal is captured via pipe ( " | " ) by gzip, which compresses it and also outputs to the stdout. "tape" program in the current folder ("./") captures the data from stdout (standard output - typing terminal, " - " ) and sends it to the tape.
another example: my cat played with the remote controller, TV started to act funny and I filmed everything. The film is stored on a 9 track tape via ./tape -send pussycat.avi (dreamland - fictional not-yet implemented program).
I can play the film using ./tape -get - |mplayer -cache 32768 -fs -
./tape gets the data and sends it (" | ") through the pipe to mplayer, which fills its cache then plays the film. I tried this with a DDS 8mm tape drive and it played like a youtube flash film via an internet connection on 14k baud old modem. I mean like sh*t. Slow transfer rate from tape to mplayer. ( this time for real - the commands are: dd if=pussycat.avi of=/dev/nsa0 for transfer to the tape, cat /dev/nsa0 |mplayer -cache 32768 - to play the film from the tape ).
Now - this "tape.c" should be the "alice in wonderland" software which I can help to develop using those usb-pio units. Or I can start building it around Xmas this year (if wife stops her shopping marathon, which is improbable)
Also, these units can be programmed in Windows (9x, XP, 7, vista - which sucks) using their specific libraries, which come on CD when product is purchased. I hate the world of Billy the Evil (Microsoft) so my conclusion stops here, I did no further research in this area.
My spare time is limited and I can't start the work. Also, I have no USB-PIO units to have the required i/o lines. But maybe somebody can get the idea and make it work.
Also, I did some extensive research on every tape drive documentation available at bitsavers.org - no hardware (block) schematics with no detail about pertec. Nothing.
I also found this:
http://openswitch.com/HDW-BX100.aspx - this thing can talk to pertec tape drives. I wrote them about details, but probably I have to buy one and somehow reverse-engineer the protocol. Again, no spare time.
I hope this can also help and I can also offer support for software programming, but limited on Unix FreeBSD only - I quit linux when RedHat 8.0 went out to the world and no updates in this area for a long time.