Saturday, August 8, 2026

Tape Bridge Into The DEC-10

The skeleton of the Decwar Playing Robots is turning out to have other major uses. We now have an automated Tape Bridge between a local system and the DEC-10, and it's in action within Project UTEXAS as tape.py in the msc folder.

The tape.py code automatically copies files from a local filesystem into the DEC-10 filesystem. It's as quick and simple as possible, for doing fast iterations around editing local files using the modern IDE of your choice and then smoothly propagating those edits onto the DEC-10. It's almost a fully automated filesystem sync between your local system and the DEC-10, and in fact could be made into such by scheduling periodic runs. The only confusing part may be that it actually runs in the Docker container where the DEC-10 lives, which is effectively a third environment between your local system and the DEC-10. The local files are mirrored live within the container, and tape.py copies them from there. To use tape.py, have a terminal session connected to the container and run it there. If you wanted to schedule periodic runs for example, you'd do that in the container, not in your local system. This is necessary because the tape drive and the mounted tape live in the container as part of the DEC-10, not on your local system. In other words, the hardware is in the container and you work with it there, meanwhile your local system is simply a place for using modern tools to edit source code.

Execution begins in the container, where tape.py creates a temporary folder and copies in all necessary files. It then invokes a compiled exe named back10, named after the DEC-10 backup utility, to convert the temporary folder into a tape image with the historic Old Bits TOPS-10 tape format. This step generates a standard tape archive '.tap' file and verifies its integrity by listing its contents. If tape.py is executed with a '--simple' argument it terminates here, leaving the tape ready for use, and this is in fact the route taken during startup of the container when the tape is initially mounted on the drive. There is one tape mounted on the drive from container startup onwards. What we can do at any time is replace the contents of the tape using tape.py. One tape, many writes to it, many restores from it within the DEC-10. This one tape is the bridge between the local filesystem and the DEC-10, and many files can pass over it at various times during its lifetime. More tape drives and tapes are possible. One alone is minimalist simplicity.

When not in '--simple' mode the script transitions into the restoration phase, utilizing the pexpect library to establish a programmatic telnet connection to the DEC-10. With pexpect, the script sends text and monitors terminal output for expected responses. To the DEC-10 the script is indistinguishable from a human user telnetting in. The script is a robot and the overall setup is a kind of Turing Test. As long as the robot acts like a human, everything is fine. This system was developed from late 2024 for the Decwar playing robots. The full Decwar robots are more complex, of course, but the essential skeleton was directly adapted into tape.py with only an hours work. The robot opens a telnet connection and logs in, then uses the standard TOPS-10 tape utility BACKUP to copy in from the tape. The tape.py code here is actually a guide on how to use BACKUP, for whenever it needs to be done manually. It then gracefully logs out and closes the telnet connection.

No comments:

Post a Comment

Tape Bridge Into The DEC-10

The skeleton of the Decwar Playing Robots  is turning out to have other major uses. We now have an automated Tape Bridge between a local sys...