Last week I found a vintage Macintosh SE that had long been hidden inside the store room of my apartment. The machine could not power on at first, but after cleaning up the motherboard, reseating all socketed chips, and replacing the RAM with using spare SIMM modules from my junk box, the machine managed to boot up just fine. Below is a photo of the machine, complete with keyboard and mouse, running MacWrite:
Using Amigakit’s SCSI2SD adapter, I was able to remove the dead 20MB SCSI hard drive and emulate it using a micro-SD card. The machine now works just fine on a 256MB SD card running as the SCSI hard drive and 4MB of memory:
My first wish is to be able to access the Internet, albeit in slow and primitive fashion, on this vintage machine. Obviously I do not expect to torrent or watch HD movies on it, but simple stuff like email, FTP, telnet, or even web browsing should be possible. With this in mind, I started to look for possible ways to connect this machine to the Internet. However, without a hard-to-find SCSI to Ethernet module (such as the Asante EN/SC or the DaynaPORT SCSI/Link) or a PDS Ethernet Card designed for the SE (one made for the SE/30 won’t work), the only way is to use an external modem on the serial port and access the Internet via dial-up. But as I am not sure if my external dial-up modem would work with the Mac, my plan is to use a cross-over null modem cable to connect the Mac to my Raspberry Pi hosting a PPPD server, and use MacPPP and Config PPP on the SE for Internet access. The connection will be very slow but should be usable for simple tasks.
Setting up the connection
The two serial ports of a Macintosh are mini-Din-8 connectors labeled with a telephone (the “modem port”) and a printer (“printer port”) and an adapter or a custom-made cable is needed in order to connect it to the standard DB-9 or DB25 serial ports found on most PCs. For this, I used the following pinout, found on allpinouts.org:
To test the connection, I used ZTerm on the SE, with a terminal software such as Putty or TeraTerm on my PC, configured both serial ports to se to the same configuration (baud rate, stop bit, partity bit and handshake settings), try to type on each of the terminals and make sure that you can see what you type on the other side. Contrary to what I read on some other sites such as this, no level shifters are necessary, even for USB to serial adapters, as the RS-232 procotol should be tolerant enough to intepret the voltage levels of the RS-422 protocols used by the SE appropriately.
With the serial port setup, the next step is set up the PPP server. For this, I use the following script to run PPPD on my Raspberry Pi:
while : do STR="Starting Point-to-Point Daemon ..." #echo $STR # Start the Point to Point daemon in console mode, with debug messages (debug param) # See https://linux.die.net/man/8/pppd for details sudo pppd nodetach local noauth proxyarp defaultroute nocrtscts lock 192.168.1.203:192.168.1.204 /dev/ttyUSB0 19200 # Wait for 1 second after PPPD quits, then call it again sleep 1 done
This causes PPPD to keep running on the host machine and constantly looking for new connections. It will auto-start again after each connection session. By configuring the above script to run in the background as soon as the Raspberry Pi starts up, the PI is now efficiently a minature PPP server. Refer to my previous article more more details on setting up PPPD.
With PPPD running, click Open on the Config PPP panel and your PPP connection should be established. With this, I was able to download from an FTP server using Fetch:
Although the serial port speed is set to 19200bps, download speed is only 1.8KB/s or around 14.4Kbps. The low throughput is probably due to protocol overhead as well as the efficiency of the serial port implementation on the Macintosh SE.
Despite the slow connection, NCSA Telnet 2.6 is able to connect to the Raspberry Pi running Ubuntu with Telnet enabled, and use Lynx:
MacTCP Ping also works, supporting both IP address and domain names. It can ping www.google.com just fine:
TurboGopher 1.0.8b4.1, the last version to run on System 6, also works well, reading news on gopher.floodgap.com:
As for news reading via NNTP, InterNews 1.1 is the only client which I could run reliably on System 6. However, as most of the free NNTP news servers are long dead, I used NNTP//RSS, a simple utility that parses RSS feeds and streams them via the NNTP protocol (port 119) that can be read by older news client. The utlity even has a simple web-based user interface running on port 7810 for you to configure the RSS feeds:
With this, InterNews works well and I am able to to read up-to-date news from various sources such as Reuters or CNN:
The next thing I wanted to try is email. For this I used Eudora 1.3.1, a lightweight POP3/SMTP mail client that runs on System 6:
Here you will notice that there are no options to configure POP3/SMTP ports as well as no options for SMTP authentication, although the POP3 account password is asked every time Eudora is started. IMAP support is out of the question too. Eudora simply assumes POP3 port 110, SMTP port 25 and that no SMTP authentication is required. This is a common problem which prevents vintage computer enthusiasts from using older mail clients with nowadays’ highly secure mail servers.
One way to bypass this is to use hMailServer and set up your own server that supports the configuration required by Eudora. You can choose to disable SMTP authentication and SSL/TLS for your IP address. Open Settings > Advanced > IP Ranges, add a new range that covers your IP address and uncheck “Require SSL/TLS for authentication” as well as various options under “Require SMTP authentication”:
A second problem is that Eudora does not send the domain name as part of the username used for POP3 authentication. For example, if your email address is firstname.lastname@example.org, only macdev would be sent during POP3 authentication. This is not needed in the early days of the Internet, but required in this days and age where a single ISP may support emails having different domain names. To by pass this, in hMailServer configuration, add your preferred domain under Domains, and set the same domain for the “Default domain” field under Settings > Advanced:
With these modifications, Eudora should be able to send and receive mails normally. The following screen shows how a modern email will look like under Eudora 1.3.1:
A lot of raw email headers, usually hidden in modern email clients, are also shown under Eudora. In the following screenshot we can see the DKIM headers, used to detect email spoofing, and various other headers:
Also, this version of Eudora doesn’t like having a lot of mails in Inbox, especially with only 4MB of RAM, and will complain if this is the case. We’ll need to choose to “Live Dangerously” in order to use Eudora:
My final wish on this machine is to see if I could find a working web browser. Among all the 68k browsers I tried, only MacWWW v1.0.3 works to a certaint extent. All other browsers such as MacWeb, NCSA Mosaic, Netscape or even MacLynx either support System 7 or later only, or run erratically on System 6.0.8.
textfiles.com is the only website which could be opened properly on MacWWW during my tests. To open a URL, choose Navigate > Open by Doc ID and enter the site URL:
en.wikipedia.org could load, but showed a “Domain not configured” error message:
I encountered this error back in 2013 when using MacWeb on System 9, but at the time could not understand why. The reason is because most of these early web browsers did not support virtual host names, which is needed to host multiple websites on a single IP address. I guess MacWWW will send the site IP after DNS lookup, not the domain name, in the headers of the HTTP request, to download the page, causing the “Unconfigured domain” error, as the server is only configured to serve by domain name, not by raw IP. Unfortunately, MacWWW does not have any proxy server options so that we could use a solution such as MacProxy, which claims to make pages compatible with MacWeb and other early web browsers which do not support virtual host names.
MacWWW also repeatedly complains that a printer is not selected in Chooser as if we needed to print every single page that is opened:
Opening other web pages, even a default page from an Apache or IIS setup, results in error “Redirection response from server is not handled by this client”. One may think that this is because the HTTP response contains a 3XX Redirect not supported by MacWWW, but this is simply not the case after a check with wget. I guess this is a bug in MacWWW which is caused by failure to parse certain modern HTTP headers:
Finally, quitting MacWWW or closing any window, will cause a crash. If Multifinder is not enabled, message “Sorry, a system error has occurred” will be shown and you will need to restart your computer unless an extension such as Bomb Shelter is installed, which will add a Continue button. If Multifinder is enabled, you will see the following error message:
To enable Multifinder, use Special > Set Startup Disk:
So for the moment, I guess native web surfing, even if limited, is not feasible on System 6, unless somebody develops a more modern web browser for it. I did find Browsy, an open-source minimal System 6 web browser, which currently is able to download and displays raw HTML text, and will try to improve it. For now, if you need to surf the net on System 6, the only way is to use Lynx via a terminal client such as NCSA Telnet, like what I did.
As for Internet Relay Chay (IRC), I was able to get ircle 1.5.6 to run on System 6, but did not try to link it with any IRC servers:
Maybe when I have the time, getting it to work with BitlBee and chatting on Facebook or Skype on my Macintosh SE will be my next challenge.
I also tried Eliza v1.1, an early natural language processing computer program, that allowed me to chat with my Mac SE. The application took a long time to start up, did not show any text cursor when I typed, but did work and seemed to be able to create a feeling of a somewhat natural conversation:
The conversation always starts with “How do you do. Please tell me your problem.” This sentence comes from the Eliza.script file, which contains all that Eliza can say to you:
Interestingly, Eliza v1.1 can work on a Macintosh 512K with System 3.2. Its next version, Eliza v2.5, can only work on System 6 and above. Eliza now supports voice via the Macintalk extension and displays what it says in bold capitalized text:
Also in Eliza v2.5, the script file is probably bundled as part of the application’s resources and is no longer a separate file. I did not have the time use ResEdit to explore what kind of English sentences it may be able to say.
Attempting to launch SoftPC, an x86 emulator which emulates a 80286 with 640K of RAM, triggers a warning about insufficient memory:
The message says that SoftPC needs at least 20MB of memory. I do not know where it gets that figure from, probably due to some corrupted application resource entries. Anyway, that is definitely falsified, since I was able to continue after clicking OK:
The reported MS-DOS version is 3.30. If the keyboard mapping is incorrect, edit the autoexec.bat file and remove or modify the KEYB statement as needed, since the default SoftPC configuration will set the UK keyboard layout. To run DOS apps, copy DOS programs to a folder on your hard drive, and choose to map a network drive from the Setup menu:
In my experiment, text mode applications such as Turbo Pascal 5.5 or Microsoft QuickBasic work fine, although the speed is a bit slow for any serious usage:
Some simple graphics games such as Arcade Volleyball (AV.EXE) are able to run and display nicely, but playing is impossible due to slow speed:
Paratrooper is somewhat playable, although the shooting sound is a bit longer than usual, and the helicopters move slowly:
Alleycat displays neatly, but is too slow to be played:
What works well is the classic Prince of Persia game in black and white when running natively as a 68K application. Animation is smooth and the sound is great:
Strangely, Think C 3.01 loads properly on this machine and is able to build an application (I tried Bullseye from the examples) for the first time. However, trying to open the project subsequently will fail with an “Out of memory” error:
I know this is not a memory issue because I encountered the same issue on my Macintosh SE/30 with 16MB of RAM. Lauching the Macintosh Programmer’s Workshop (MPW) 3.1 Shell also failed with a lot of error message being written to the worksheet itself:
For now, I can only try MS-BASIC’s PICTURE.BAS sample drawing application, which works well:
Chipmunk Basic, a command-line Basic intepreter, also works great:
Wordperfect Works, an all-in-one Office solution for 68k Mac:
This is MacPaint opening a screenshot of the Mac SE desktop:
An image of the current screen will be stored in the root folder of the disk if you press Command-Shift-3 (the Command key is the key with the Apple logo on the keyboard). A maximum of 10 screenshots, namely Screenshot 0 to Screenshot 9, can be taken this way. If you already have 10 screenshots, a ‘beep’ will be played and no more screenshots will be taken until you move the screenshots to a different folder. Screenshots are stored as 576×720 black and white PICT files. To use the screenshots, convert them to modern formats such as JPEG or PNG with Graphics Converter, followed by running ImageBatch to crop the converted files to the standard 512×342 screen resolution of the Mac SE.
Download the HFS disk image with most of the applications mentioned in this article from this link. The disk image can be mounted with Mini vMac. You can also search Mac GUI, Macintosh Garden and the Macintosh Repository for other applications not found in the HFS disk image.