Posts

Basic ITS hacking

OK, so ITS has only one level of directory in its file system, otherwise known as the SNAME portion of a filename. How do you create a directory if there isn't one already? For instance, if you login as an unknown user JAO and ITS complains it can't find MD:USERS1;LOGIN JAO , and Emacs won't let you create a file USERS1;LOGIN JAO because USERS1; doesn't exist, what do you do? I expected there to be a DDT command to create a directory. But there isn't one. I found a cryptic comment to "look at the documentation for the OPEN UUO." So I did. Examining SYSDOC;_CALLS.124 The file names ..NEW. (UDIR) cause a new directory to be created with the given sname if none already exists. Creating a directory in this way causes a message to be printed on the system console. (A directory is destroyed only when the disks are salvaged by the stand-alone salvager, which is generally run just before the time-sharing system is restarted. A directory is then destroy...

Getting KLH-10 and ITS to work under Mac OS X

I've cycled back to being interested in the Incompatible Timesharing System (ITS). In the interim, I replaced my G4 iBook with a Intel-based MacBookPro. With a bit of hacking, I was actually able to get local networking to communicate with the simulated PDP-10, and thought I would record some of the details. I needed to Install tuntaposx . I used the macports version. Crudely hack the ks-base-its build in klh10-2.0h from panda-dist (and additional patches) to define KLH10_NET_TUN=1 under Mac OS X. I need to clean up my own sources and put them up on github. Also, I needed to hack around the removal of "mtio.h" from Mac OS X 10.6, borrowing the minimum definitions from FreeBSD headers. I guess Apple decided they really didn't want tape drives connected to their machines. Maybe it is still in OS X server? There are a few rough edges in tun/tap support. Following a hint I found online, I open a bash shell as root, and execute exec 4<> /dev/tap0 # create t...

Restoring the Heathkit Jr 35

Image
Heathkit Jr Electronic Workshop "35", Model JK-18 The Heathkit Jr 35 evidently had been stored with batteries in the battery holder, which corroded badly. I replaced it with a plastic RadioShack 4 D-cell battery holder (270-389), wired into the negative power rail and the hot side of the power switch (which is part of the variable resistor). Corroded battery holder Replacement battery holder mounted I mounted the replacement battery holder with a dozen "heavy duty" 1 inch foam double-stick mounting squares (rated to hold 900g), stacked in four groups each three high to overcome the various screws protruding through the main board. The remote speaker station The rubber foot used to protect the relay from being crushed when you turn the kit over was stuck to the remote speaker station. I put it in its rightful place. Relay with the brown rubber foot Earlier, I had built a couple simple circuits, which showed the meter and new battery pack w...

Heathkit Jr. 35

I just picked up a Heathkit Jr. "35" circuit experimenter kit on eBay. I had one of these as a child; I don't remember how it is that we came to own it, but I had an itch to re-read the manual. Buying the manual from vintagemanuals.com would have cost as much as the kit + manual. I remember being befuddled by the descriptions of how transistors worked. It turns out the descriptions of capacitors and transistors were a bit sketchy: I think it is pretty much impossible to understand how the AM radio experiments actually function from the text. The operation of the ferrite-core antenna and the various windings are unexplained as well. I was a bit surprised to find all four transistors in the kit are identical. Thanks to this Heathkit part cross-reference , I see that they are part 417-118, a.k.a. 2N3393 NPN transistors.

Importing from Wordpress.com

I'm working on importing my blog from Wordpress.com . Blogger.com apparently will let me use AdSense even with free hosting, and I should get to know more about AdSense and about the Blogger platform as well, as a Googler. I used the Wordpress.com export feature to create an XML file, and used the http://wordpress2blogger.appspot.com/ tool to convert it, as I was under the 1 MB size limit. The code behind that converter is evidently at  http://code.google.com/p/google-blog-converters-appengine/ . That tool plus Safari saved the result with an .xml.html extension, which resulted in a Blogger error code of "bX-uroqxm" when importing. Removing the extraneous .html allowed the Blogger import to mostly succeed. It does not re-map my Wordpress author identity to my Blogger profile. It also does a pretty poor job importing my source-code formatted content. So I'll be slowly publishing the old posts, tweaking that kind of thing as I go.

ChaosNET implementations for PDP-10

This is not particularly interesting, but I wanted to record a couple of links to ChaosNET code for the PDP-10. The ChaosNET memo describes an ITS (Incompatible Time-Sharing System) interface, for which the code is somewhere in the ITS sources, and a Lisp Machine implementation, for which code is in the CADR sources and Symbolics code base, but also a TOPS-20/TENEX implementation, a VMS/VAX implementation, and a UNIX implementation. The UNIX implementation was documented by James E. Kulp for Symbolics, and the code seems to have survived. The TOPS-20/TENEX is harder to find, but it looks like BitSavers' Foonly archives have some files. DSK:<FOONEX>CHAOS.MAC;399 DSK:<FOONEX>CHABUG.MAC;8 DSK:<FOONEX>CHAOS0.MAC;3 DSK:<FOONEX>CHATTY.MAC;21 I have no idea whether this is at all related to the implementation the AI MEMO mentions. A Google search turns up some interesting code (might be for the PDP-11 front end, for ITS) from AI:SYSTEM CH10.defs1 ...

Another Symbolics keyboard adapter

Hans Hübner has been at it again, and has developed code to allow a  Teensy AVR development board to adapt a Symbolics keyboard to USB . I ordered a Teensy board of my own, and was hoping to develop a small adapter to avoid cutting up my keyboard cable, but Teensy does not work with my old Mac OS X 10.4 system.