Mainly Neat Stuff --> Vintage Networking --> TCP/IP on the Mac 512K
All the FAQs state that the oldest Mac that can be directly connected to the internet is the Mac Plus. Indeed, there are good technical reasons why this ought to be true.
Of course, it has always been possible to connect a Mac 512K to the internet by setting it up as a serial terminal to a multi-user computer connected to the internet (eg a Unix workstation or a Vax or a PC running Linux). All that is needed is a simple terminal emulator (MacTerminal and Red Ryder were popular applications for this in the 1980's), a modem or direct serial connection to the internet host and a user account. But a computer that doesn't run its own TCP/IP stack doesn't count as a "first class internet client".
And I want my Mac 512K to be a "first class internet client".
Connecting a Mac Plus or later to the internet is straightforward. Any Mac that can comfortably run System 6 can run MacTCP and, with the exception of a modern web browser, there is a wealth of internet software.
The most obvious limitation of the Mac 512K is the 64KB ROM that it shares with the original Mac 128K. System 6 requires the 128KB ROM from the Mac Plus or 512Ke, and MacTCP requires System 6. ROM swaps were available for the 128K and 512K but I wanted to work with the basic Mac 512K package. An upgraded Mac would be no different to using a Mac Plus or 512Ke. A similar argument applies to using a third party RAM upgrade.
Lack of storage using single sided floppy drives (400KB) is easily addressed. The HD20 INIT can be used with the Mac 512K to provide HFS support for 800KB floppy drives or an HD20 hard disk. 800KB is more than enough space for a Mac application of this vintage.
The network connection is also straightforward to resolve. Like all old desktop Macs, the 512K has a built-in LocalTalk network port. TCP/IP can't be directly passed along a LocalTalk network but it can be "tunneled" by encapsulating TCP/IP data inside AppleTalk packets. This technique was invented at Stanford University and was made commercial by Kinetics, developers of one of the first LocalTalk to Ethernet gateways, who named it KIP (Kinetics Internet Protocol). Surprisingly, given the Not Invented Here mentality prevalent at Apple at the time, KIP was adopted by Apple and evolved into the MacIP protocol.
For much of the initial testing, I cheated by used a Mac Plus with an external SCSI hard disk. That way, I could determine working software settings with confidence that the problems I encountered weren't caused by using unsupported hardware. However all of the final testing was performed on the 512K.
One of the first TCP/IP applications for the Mac was TOPS Terminal. Many Mac users will be familiar with TOPS peer to peer file sharing software, originally written by Centram Systems West and later by Sun Microsystems. Long before file sharing was included in System 7, Macs could use TOPS to share files between one another without the need for a dedicated server. TOPS even included support for PC and Sun workstation clients and LocalTalk to Ethernet integration. Sun eventually sold off the TOPS side of their business and the product died off in the early 1990's.
The same team that produced TOPS also created TOPS Terminal, a Telnet and FTP package with its own TCP/IP stack. TOPS Terminal was released, free of charge, in 1988 but only one version seems to exist in the wild nowadays. Fortunately, the distribution that is available is more or less complete and includes copious documentation.
The distribution notes say that TOPS Terminal requires:
This hints that the 128KB ROM are required but there's no explicit statement that this is the case. It's quite possible that the lowest spec Mac on which the developers tested the software was the 512Ke so it was worth trying TOPS Terminal on the older spec 512K hardware.
Surprisingly, the setup more or less works. The documentation for TOPS Terminal explains how to configure the TOPS TCP/IP control panel to use a dynamic or a static (manually configured) IP address in conjunction with a KIP server. In theory, the control panel should work with a MacIP server (MacIP is a superset of KIP) but I had absolutely no success with IPNetRouter. (IPNetRouter is a very capable piece of software so the failure to support an obsolete protocol should not be regarded as a criticism.) A correspondent doing the same experiments had partial success with Apple IP Gateway software for connecting to a host on his local network. However my Gatorbox has explicit KIP server support and works perfectly. I'd expect a Kinetics FastPath to work equally well although I have not had the opportunity to test one.
This is the TOPS TCP/IP control panel with dynamic KIP IP address configuration enabled. Note the absence of a DNS settings panel; TOPS TCP/IP does not support DNS so you must know the IP address of the host to which you wish to connect. The radio button for address resolution (which is a KIP server option) didn't work in my experiments.
After a couple of tests conncting to a Telnet server on my local network, I fired up TOPS Terminal and pointed it at an internet host at work. Both terminal and login settings were configured for VT100 emulation. I found it best to run UK-localized system software on the Mac in conjunction with the Plus-style keyboard. The lack of a Control key was annoying although TOPS Terminal provides keyboard mapping.
As a terminal, TOPS worked reasonably. Of the applications I tried, Lynx had the most problems. Note the screen corruption in long link titles; NCSA Telnet runnning on a Mac Plus with MacTCP exhibits a similar problem but the page displays perfectly from modern Telnet clients using the same user account.
The biggest problem with TOPS Terminal on the Mac 512K is stability. TOPS Terminal crashes easily especially when a connection is closed and a new connection is opened. Even after much tweaking of settings, it crashes with such regularity that I couldn't imagine using it for serious work. Comment on performance with Mac Plus to follow.
Early versions of NCSA Telnet predated Apple's MacTCP software so the software included its own TCP/IP stack. Like Tops Terminal, this stack can work with a static IP address or it can obtain an address dynamically from a KIP or MacIP server.
Versions 2.3 and 2.4 (with documentation) are relatively easy to locate on the internet; the minimum system software requirement for these is System 5.0 (System 4.3, Finder 6.0). This combination will just about run on a Mac 512K but the size on disk of the system files requires the use of an HD20. Unfortunately this combination leaves just 389KB of RAM free for applications but Telnet requires at least 544KB. Unsurprisingly, both versions bomb when started on a Mac 512K.
I also obtained one of the earliest NCSA Telnet implementations -- "Telnet 3/87 (KIP0287)". "Get Info" on the application reports the version as "1.0" but earlier versions definitely existed. This version gets an IP address from my GatorBox but the gateway address or subnet mask appear to be incorrect so I could not connect to any hosts.
If anyone comes across a version of NCSA Telnet earlier than 2.3 and later than the KIP one mentioned above, please let me know.
The minimum system software configuration for MacTCP 1.0 is System 6.0.x which will not run on a Mac 512K. It is possible that MacTCP might run on older system software but the control panel itself is big. MacTCP uses nearly 100KB of RAM which makes it unrealistic for the Mac 512K even though Apple provided an installer program so that you could use it on a 512Ke.
Tops Terminal is the most viable connection option for the Mac 512K. The software isn't 100% reliable but it works well enough for occasional connections to a Unix host to check mail or similar. Some experimentation may be required when configuring a KIP LocalTalk to Ethernet gateway but Kinetics FastPaths and Cayman Systems GatorBoxes are cheap on the second hand market.
While I was conducting these experiments, a few people commented on the limitations of the Telnet protocol. All data (including passwords and usernames) are sent as plain text in a Telnet connection so many Unix hosts no longer permit Telnet connections across the internet. However the Telnet daemon can be configured on a local Linux or OS X system to which the Mac 512K connects, providing access to the SSH protocol for secure internet connections.
Copyright information: If you wish to use any images on these pages, please contact the author, Phil Beesley on firstname.lastname@example.org.