getting ready to take on the programming project
getting ready to take on the programming project
If it's SCSI, it handles standard SCSI codes for tape devices (isn't it nice when there's a standard?). Cipher may have added a few code extensions, but you probably won't ever use them. Interface in Windows is via normal SPTI, or, alternately ASPI32 if you're running XP and earlier.
Windows generally considers most SCSI tape drives to be the same logically, regardless of their actual physical manifestation.
Programming is mostly a matter of writing CDBs and handing them off to the driver (SPTI or ASPI). SCSI codes are documented in many places all over the web.
Well, I still want to see this tape drive spin (read/write) data from Windows.
I'm using an older USB-to-SCSI adapter from Ratoc Systems (Japanese peripheral company) with a recent commodity Dell laptop. I was able to get a Windows 7 driver for the host adapter. Next, I used Robin Miller's SCSI Utilities and was able to issue some basic SCSI commands and successfully communicate with the tape drive! Also, I was able to get the Windows SPTI example program and compile that with Visual Studio Express 2013.
So, I've confirmed the drive works, my host adapter works, and that I can compile a Windows program with calls to Windows SCSI Pass Through Interface (SPTI)..
Now I need to write a simple program to read and write to tape.
DEC's TSZ07 Technical Manual lists the SCSI commands supported, but it looks like the primary commands are:
READ
WRITE
READ BLOCK LIMITS - to determine the block size
SPACE - to skip over logical blocks
REWIND
WRITE FILEMARKS
and MODE SELECT / MODE SENSE to set parameters
However, the technical manual provides no detail and instead refers you to another DEC manual "SCSI: A Developer's Guide" (part #EK-SCSIS-DK).
So, while I could start hacking away, I'd like to find this manual first. I'm hoping for some examples, or more details on DEC's support. I can't find this manual online.
My concern is that, after reading the SCSI standard, there are descriptions of partitions and I'm not exactly sure how to put logical blocks and file marks together. Plus there are at least four different variants of the READ command.
I could be overcomplicating it. The tape drive is from 1992, so it could be that the layout is super simple:
Each tape is a volume with one partition. The partition consists of logical blocks, with filemarks being a separator between files.
If this is the case, I'm wondering if you start to read a tape, how do you know how much to read?
So, I guess if anyone has some experience in this area, I'd love to hear about how I can approach this. Just as well, I'd love to get the DEC EK-SCSIS-DK manual !!
-Matt