vtc is a VTserver client that runs under 2.11BSD. It reads a file from VTserver, and pipes it to its output. This solves the problem of loading the rest of 2.11BSD onto a machine that has no tape drive or removable disks.

2.11BSD comes with some standalone utilities, and 4 large files. The first is a dump of the root partition. This can easily be loaded using VTserver and the standalone restor. At this point you can boot 2.11BSD. The problem is that the remaining files are tar files: file6.tar, file7.tar, and file8.tar. Unless you have a tape drive, and some way of writing these onto a tape, there has until now been no way to load these.

vtc takes a single command line argument: the file number to be read from VTserver. The specified file is read from VTserver and piped to the output. If file6.tar is file 6 to VTserver, then the appropriate command is "vtc 6 >file6.tar". On a PDP-11/53 vtc will run successfully at 9600 baud. Transferring these large files will be an overnight task. Once the file is transferred, you can "tar xpf file6.tar" to reconstruct the /usr partition (read setup.ps first so that you extract into the correct directory).

I eventually want to be able to  do it this way: "vtc 6 | tar xpf -". At present this will hang. It is probably because vtc runs out of CPU time to handle the real-time protocol if tar is also running. I'd someday like to fix this, and also get vtc running at 38400. I hope that using the XON/XOFF of CBREAK mode might accomplish this.

Once you  have loaded the 2.11BSD root partition, getting vtc onto the target machine is somewhat of a chicken-and-egg problem. You can squirt vtc.c at the PDP-11 using the Kermit "transmit" function, possibly with a "set transmit pause" of 100~300 milliseconds for each line. On the PDP-11, the command to receive the file would be "cp /dev/tty vtc.c". However, compiling vtc.c requires many include files, which are on file6.tar. You could extract these and transmit these to the PDP in the same manner.

An alternative approach is to compile vtc elsewhere, for example on 2.11BSD running under simh, then transfer the binary to the real PDP-11. It is safest to transfer it as a hex file, therefore, the procedure is as follows:

  1. compile vtc and get it onto your Windows machine.
  2. compile "hexify"
  3. Hexify vtc to vtc.hex
  4. transfer vtc.hex, cphex.c, and stdio.h to the PDP-11 using Kermit's transmit command
  5. compile cphex on the PDP-11
  6. use cphex to convert vtc.hex to vtc

Hexify converts a binary into a simple hex format. cphex reverses the process.

The distribution already contains vtc.hex, so in most cases you can start with step 4.

vtc.zip contains:

bulletHexify.cpp and the Visual Studio project files for it
bulletvtc (executable)
bulletthe 2.11BSD stdio.h

Thanks to Bruce Robertson for being the vtc guinea pig.


Last modified: December 31, 2009