If your adventures in retrocomputing have taken you down the path towards Digital Equipment Corporation, you will recognize these tape cartridges from the VAX and Alpha systems. Although many VAX systems were equipped with the more traditional 9-track open-reel magnetic tapes so they could interchange data with other mainframe and super-mini computers, almost every VAX sold had a TK-50 tape drive hidden somewhere in its cabinet, if not bolted to the face of the main cabinet right next to the operator’s console.
Although my first “mini” was a pdp-11, the market was flooded with medium-sized Vaxen in the months leading up to the Y2K non-disaster and I was able to pick up a small cluster of VAX 6000 systems for the grand price of $500. Hooking these 3-phase monsters up to a residential electrical system was a challenge in itself — one that involved rotary converters to turn the single-phase 60 Hz supply into the three-phase flavor that the VAX wanted. After watching my electric meter spin out-of-control for a few years (mostly due to inefficiencies in the rotary converter — not the computer), I eventually retired the bulk of the cluster, moving memory cards and CPU’s into a single rack that eventually yielded a Vax 6560 — a model never actually sold by DEC that included a six-processor SMP configuration with 32 megabytes of dynamic RAM per CPU. I ran the hobbyist version of VMS up until HP started getting weird about the “layered” products like the COBOL compiler and eventually switched the system over to NetBSD.
Frankly, running a VAX without VMS wasn’t much fun and the last real use I got out of the VAX was between 2008 and 2012 when I had a gig writing (and maintaining) a fairly large library of COBOL programs. People can piss and moan all they want about COBOL and VMS, but when you’re the system administrator and can set things up the “right” way, it really is a solid and reliable combination for old-school data processing.
The VAX started getting flaky in late 2012 and I eventually moved everything over to a DEC 3000 (Alpha) desktop that was set up to dual-boot both NetBSD and VMS. Running with only one or two concurrent users, the Alpha was just as fast as the VAX. It used very little electrical power, and could sit on a desktop disguised as “just another PC.” The DEC 3000 also used a member of the same “family” of tapes, the TK-70.
Five years later, I’m finally starting to move stuff off the DEC 3000 and into a Linux machine, a Dell Optiplex 755, that’s easier to find parts for and maintain. The Dell is equipped with several different interfaces, allowing me to use many of the same disk and tape subsystems that it inherited from the VAX and earlier systems (like the various PDP-11 and PDP-8 systems that spent their final days entertaining me here at paleoferrosaurus.com.) Still, some of this hardware is nearly as old as I am, and after a half-century is starting to show its age.
My retrochallenge project for April 2017 was the TapeStore server, and this is where I’m starting to archive many of the tapes I’ve collected over the years from these various systems. The improvement this week, was connecting a DLT 7000 tape drive to the TapeStore server and starting to collect images of the various TK-70, TK-50, and similar DLT tapes in the library.
Unlike the folks in Redmond, who have banished support for magnetic tape from current editions of the Windows Server operating system, the folks who maintain Linux (at least the Ubuntu strain) still manage to keep the SCSI device drivers in the kernal and have left utilities like mt and tar still able to work their magic from the command line. Other than having some trouble with the naming conventions, I was able to hook up the DLT 7000 and access my old tapes without any difficulty… The following script shows a typical session:
Script started on Sat 13 May 2017 02:08:33 PM EDT root@alpha:~# pwd /home/harve root@alpha:~# mt -f /dev/st0 status drive type = 114 drive status = 419430400 sense key error = 0 residue count = 0 file number = 0 block number = 0 root@alpha:~# tar -tvf /dev/st0 drwxr-xr-x harve/users 0 2011-05-14 17:55 harve/comp_arch drwxr-xr-x harve/users 0 2011-05-14 17:55 harve/comp_arch/Homework -rw-r--r-- harve/users 130145 2011-05-14 17:55 harve/comp_arch/Homework/Homework3.docx -rw-r--r-- harve/users 17380 2011-05-14 17:55 harve/comp_arch/Homework/Homework5.xlsx -rw-r--r-- harve/users 20424 2011-05-14 17:55 harve/comp_arch/Homework/Homework4.docx -rw-r--r-- harve/users 71174 2011-05-14 17:55 harve/comp_arch/Homework/comp_arch_homework.ods -rw-r--r-- harve/users 77312 2011-05-14 17:55 harve/comp_arch/Homework/comp_arch_homework.xls -rw-r--r-- harve/users 30152 2011-05-14 17:55 harve/comp_arch/Homework/full_adder.ps -rw-r--r-- harve/users 31279 2011-05-14 17:55 harve/comp_arch/Homework/half_adder.ps -rw-r--r-- harve/users 30675 2011-05-14 17:55 harve/comp_arch/Homework/not_gate.ps -rw-r--r-- harve/users 568 2011-05-14 17:55 harve/comp_arch/Homework/not_gate.v -rw-r--r-- harve/users 29311 2011-05-14 17:55 harve/comp_arch/Homework/or_gate.ps -rw-r--r-- harve/users 705 2011-05-14 17:55 harve/comp_arch/Homework/or_gate.v -rw-r--r-- harve/users 30780 2011-05-14 17:55 harve/comp_arch/Homework/xor_gate.ps -rw-r--r-- harve/users 716 2011-05-14 17:55 harve/comp_arch/Homework/xor_gate.v -rw-r--r-- harve/users 753 2011-05-14 17:55 harve/comp_arch/Homework/hw3a.asm -rw-r--r-- harve/users 14543 2011-05-14 17:55 harve/comp_arch/Homework/P4.asm -rw-r--r-- harve/users 521 2011-05-14 17:55 harve/comp_arch/Homework/squares.txt drwxr-xr-x harve/users 0 2011-05-14 17:55 harve/comp_arch/Logisim -rw-r--r-- harve/users 7492 2011-05-14 17:55 harve/comp_arch/Logisim/4-bit parity generator.circ -rw-r--r-- harve/users 10237 2011-05-14 17:55 harve/comp_arch/Logisim/4-Bit Barrel Shift.circ -rw-r--r-- harve/users 8486 2011-05-14 17:55 harve/comp_arch/Logisim/barrel_shifter.png -rw-r--r-- harve/users 118337 2011-05-14 17:55 harve/comp_arch/Logisim/Bigger_Barrel_Shifter.circ -rw-r--r-- harve/users 25292 2011-05-14 17:55 harve/comp_arch/Logisim/comparator1.gif -rw-r--r-- harve/users 81 2011-05-14 17:55 harve/comp_arch/Logisim/Comparator_ROM -rw-r--r-- harve/users 3802 2011-05-14 17:55 harve/comp_arch/Logisim/Cross-Over.circ -rw-r--r-- harve/users 2630 2011-05-14 17:55 harve/comp_arch/Logisim/cross-over.png -rw-r--r-- harve/users 5698 2011-05-14 17:55 harve/comp_arch/Logisim/Diode ROM Comparator.circ -rw-r--r-- harve/users 6893 2011-05-14 17:55 harve/comp_arch/Logisim/Diode_ROM_Comparator.png -rw-r--r-- harve/users 30207 2011-05-14 17:55 harve/comp_arch/Logisim/Discete_Comparator.circ -rw-r--r-- harve/users 45620 2011-05-14 17:55 harve/comp_arch/Logisim/Discreet_Barrel_Shifter.circ -rw-r--r-- harve/users 149693 2011-05-14 17:55 harve/comp_arch/Logisim/fig424.jpg -rw-r--r-- harve/users 6963594 2011-05-14 17:56 harve/comp_arch/Logisim/logisim-win-2.7.1.exe -rw-r--r-- harve/users 7333 2011-05-14 17:55 harve/comp_arch/Logisim/parity.gif -rw-r--r-- harve/users 6320 2011-05-14 17:55 harve/comp_arch/Logisim/Sub Comparator.circ -rw-r--r-- harve/users 4748 2011-05-14 17:55 harve/comp_arch/Logisim/Sub_Comparator.png -rw-r--r-- harve/users 4287 2011-05-14 17:55 harve/comp_arch/Logisim/Circuit A.png -rw-r--r-- harve/users 3317 2011-05-14 17:55 harve/comp_arch/Logisim/encoder.png -rw-r--r-- harve/users 5182 2011-05-14 17:55 harve/comp_arch/Logisim/parity2.png -rw-r--r-- harve/users 4791 2011-05-14 17:55 harve/comp_arch/Logisim/parity3.png -rw-r--r-- harve/users 16633 2011-05-14 17:55 harve/comp_arch/Logisim/Parity Generator.png -rw-r--r-- harve/users 811 2011-05-14 17:55 harve/comp_arch/Logisim/XNOR.png drwxr-xr-x harve/users 0 2011-05-14 17:56 harve/comp_arch/MARS -rw-r--r-- harve/users 3124936 2011-05-14 17:56 harve/comp_arch/MARS/Mars_4_1.jar drwxr-xr-x harve/users 0 2011-05-14 17:56 harve/comp_arch/MARS/Program1 -rw-r--r-- harve/users 7654 2011-05-14 17:56 harve/comp_arch/MARS/Program1/fibonacci.s -rw-r--r-- harve/users 14130 2011-05-14 17:56 harve/comp_arch/MARS/Program1/listing.lst -rw-r--r-- harve/users 23483 2011-05-14 17:56 harve/comp_arch/MARS/Program1/listing.pdf -rw-r--r-- harve/users 2543 2011-05-14 17:56 harve/comp_arch/MARS/Program1/one.html -rw-r--r-- harve/users 11397 2011-05-14 17:56 harve/comp_arch/MARS/Program1/output.pdf -rw-r--r-- harve/users 2242 2011-05-14 17:56 harve/comp_arch/MARS/Program1/output.txt -rw-r--r-- harve/users 5617 2011-05-14 17:56 harve/comp_arch/MARS/Program1/Program1.tgz -rw-r--r-- harve/users 18651 2011-05-14 17:56 harve/comp_arch/MARS/Program1/source_code.pdf drwxr-xr-x harve/users 0 2011-05-14 17:56 harve/comp_arch/MARS/Program2 -rw-r--r-- harve/users 12975 2011-05-14 17:56 harve/comp_arch/MARS/Program2/birthday.asm -rw-r--r-- harve/users 14293 2011-05-14 17:56 harve/comp_arch/MARS/Program2/birthday.script -rw-r--r-- harve/users 29051 2011-05-14 17:56 harve/comp_arch/MARS/Program2/Birthday_asm.docx -rw-r--r-- harve/users 44504 2011-05-14 17:56 harve/comp_arch/MARS/Program2/Birthday_asm.pdf -rw-r--r-- harve/users 16653 2011-05-14 17:56 harve/comp_arch/MARS/Program2/Birthday_Script.docx -rw-r--r-- harve/users 48137 2011-05-14 17:56 harve/comp_arch/MARS/Program2/Birthday_Script.pdf -rw-r--r-- harve/users 87114 2011-05-14 17:56 harve/comp_arch/MARS/Program2/mccabe_program2.tgz -rw-r--r-- harve/users 2734 2011-05-14 17:56 harve/comp_arch/MARS/Program2/two.html drwxr-xr-x harve/users 0 2011-05-14 17:56 harve/comp_arch/MARS/Program3 -rw-r--r-- harve/users 15989 2011-05-14 17:56 harve/comp_arch/MARS/Program3/p3.asm -rw-r--r-- harve/users 32515 2011-05-14 17:56 harve/comp_arch/MARS/Program3/Program3.docx -rw-r--r-- harve/users 66517 2011-05-14 17:56 harve/comp_arch/MARS/Program3/Program3.pdf -rw-r--r-- harve/users 1500 2011-05-14 17:56 harve/comp_arch/MARS/Program3/three.html drwxr-xr-x harve/users 0 2011-05-14 17:56 harve/comp_arch/MARS/Program4 -rw-r--r-- harve/users 3047 2011-05-14 17:56 harve/comp_arch/MARS/Program4/four.html -rw-r--r-- harve/users 14770 2011-05-14 17:56 harve/comp_arch/MARS/Program4/Program4.asm -rw-r--r-- harve/users 17149 2011-05-14 17:56 harve/comp_arch/MARS/Program4/p4_working.asm -rw-r--r-- harve/users 1741 2011-05-14 17:56 harve/comp_arch/MARS/Program4/permute.cpp -rw-r--r-- harve/users 582611 2011-05-14 17:56 harve/comp_arch/MARS/Program4/permute.exe -rw-r--r-- harve/users 21065 2011-05-14 17:56 harve/comp_arch/MARS/Program4/Program4.docx -rw-r--r-- harve/users 133434 2011-05-14 17:56 harve/comp_arch/MARS/Program4/Program4.pdf root@alpha:~/tape2173# tar -xvf /dev/st0 harve/comp_arch harve/comp_arch/Homework harve/comp_arch/Homework/Homework3.docx harve/comp_arch/Homework/Homework5.xlsx harve/comp_arch/Homework/Homework4.docx harve/comp_arch/Homework/comp_arch_homework.ods harve/comp_arch/Homework/comp_arch_homework.xls harve/comp_arch/Homework/full_adder.ps harve/comp_arch/Homework/half_adder.ps harve/comp_arch/Homework/not_gate.ps harve/comp_arch/Homework/not_gate.v harve/comp_arch/Homework/or_gate.ps harve/comp_arch/Homework/or_gate.v harve/comp_arch/Homework/xor_gate.ps harve/comp_arch/Homework/xor_gate.v harve/comp_arch/Homework/hw3a.asm harve/comp_arch/Homework/P4.asm harve/comp_arch/Homework/squares.txt harve/comp_arch/Logisim harve/comp_arch/Logisim/4-bit parity generator.circ harve/comp_arch/Logisim/4-Bit Barrel Shift.circ harve/comp_arch/Logisim/barrel_shifter.png harve/comp_arch/Logisim/Bigger_Barrel_Shifter.circ harve/comp_arch/Logisim/comparator1.gif harve/comp_arch/Logisim/Comparator_ROM harve/comp_arch/Logisim/Cross-Over.circ harve/comp_arch/Logisim/cross-over.png harve/comp_arch/Logisim/Diode ROM Comparator.circ harve/comp_arch/Logisim/Diode_ROM_Comparator.png harve/comp_arch/Logisim/Discete_Comparator.circ harve/comp_arch/Logisim/Discreet_Barrel_Shifter.circ harve/comp_arch/Logisim/fig424.jpg harve/comp_arch/Logisim/logisim-win-2.7.1.exe harve/comp_arch/Logisim/parity.gif harve/comp_arch/Logisim/Sub Comparator.circ harve/comp_arch/Logisim/Sub_Comparator.png harve/comp_arch/Logisim/Circuit A.png harve/comp_arch/Logisim/encoder.png harve/comp_arch/Logisim/parity2.png harve/comp_arch/Logisim/parity3.png harve/comp_arch/Logisim/Parity Generator.png harve/comp_arch/Logisim/XNOR.png harve/comp_arch/MARS harve/comp_arch/MARS/Mars_4_1.jar harve/comp_arch/MARS/Program1 harve/comp_arch/MARS/Program1/fibonacci.s harve/comp_arch/MARS/Program1/listing.lst harve/comp_arch/MARS/Program1/listing.pdf harve/comp_arch/MARS/Program1/one.html harve/comp_arch/MARS/Program1/output.pdf harve/comp_arch/MARS/Program1/output.txt harve/comp_arch/MARS/Program1/Program1.tgz harve/comp_arch/MARS/Program1/source_code.pdf harve/comp_arch/MARS/Program2 harve/comp_arch/MARS/Program2/birthday.asm harve/comp_arch/MARS/Program2/birthday.script harve/comp_arch/MARS/Program2/Birthday_asm.docx harve/comp_arch/MARS/Program2/Birthday_asm.pdf harve/comp_arch/MARS/Program2/Birthday_Script.docx harve/comp_arch/MARS/Program2/Birthday_Script.pdf harve/comp_arch/MARS/Program2/mccabe_program2.tgz harve/comp_arch/MARS/Program2/two.html harve/comp_arch/MARS/Program3 harve/comp_arch/MARS/Program3/p3.asm harve/comp_arch/MARS/Program3/Program3.docx harve/comp_arch/MARS/Program3/Program3.pdf harve/comp_arch/MARS/Program3/three.html harve/comp_arch/MARS/Program4 harve/comp_arch/MARS/Program4/four.html harve/comp_arch/MARS/Program4/Program4.asm harve/comp_arch/MARS/Program4/p4_working.asm harve/comp_arch/MARS/Program4/permute.cpp harve/comp_arch/MARS/Program4/permute.exe harve/comp_arch/MARS/Program4/Program4.docx harve/comp_arch/MARS/Program4/Program4.pdf root@alpha:~/tape2173# exit exit Script done on Sat 13 May 2017 02:14:51 PM EDT