How I introduced a 27-year-old computer to the web
Reviving an old computer is like restoring a classic car: there’s a thrill from bringing the ancient into the modern world. So it was with my first “real” computer, my Mac Plus, when I decided to bring it forward three decades and introduce it to the modern web.
It’s a lowly machine, my Mac. The specs pale in comparison to even my Kindle: 8 MHz CPU, 4 MB RAM, 50 MB hard drive, and 512 x 384 512 x 342 pixel black-and-white screen. My current desktop PC is on the order of 200,000 times faster — not even including the GPU. Still, that Mac Plus was where I cut my computing teeth as a child. It introduced me to C, hard drives, modems, and the internet.
Yes, in a certain sense, my Mac has already been on the internet, first via BBSes and later via Lynx through a dial-up shell sessions. (There’s nothing quite like erotic literature at 2400 bps when you’re 13 years old.) What it never did was run a TCP/IP stack of its own. It was always just a dumb terminal on the ‘net, never a full-fledged member.
How hard could it be to right that wrong?
Everything went smoothly at first. I had my mom ship the computer to me. It arrived in good condition, having been stored undisturbed in her basement since the mid-1990s. I plugged it and its external hard drive in, flipped the power switches, and watched the happy Mac glow to life on the tiny CRT. Sure, the hard drive gave a groan of protest when it first spun up, but that quieted down, and everything seemed stable with the data intact. At least for the first few minutes.
I was far down nostalgia lane playing a game of Glider when all of a sudden there was a loud *POP* and the smell of smoke. Panicked, I slammed the power switches off and pulled the plugs. It didn’t take much sniffing to find the source of the acrid odor: the external hard drive. The stress of current after years of disuse had proved too much for one of the filter caps in the external drive’s power supply.
Fortunately, Digikey still sold those exact caps(!), and I’m handy with a soldering iron, so a few days later I was back in business. On to the networking!
To accomplish my goal, I needed a web browser, a TCP/IP stack, and some way to connect the Mac to my home network.
The web browser was relatively easy to find thanks to guys running long-forgotten FTP sites in the dusty corners of the internet. MacWeb 2.0 was both old enough to run on my Plus and new enough to render HTML and speak HTTP. Sort of. But we’ll get to that in a minute.
Likewise, MacTCP existed in a version just barely able to run on System 7.0. It didn’t support niceties like DHCP, but MacWeb was happy to use it, and it installed without problems, so there was the TCP/IP stack.
Getting the Mac physically hooked to the network was a bigger challenge. The Mac Plus didn’t have an Ethernet port, and things like WiFi were years from being invented when it was manufactured. A couple of companies made SCSI-to-Ethernet adapters about 15 years ago, but those were rare and expensive. I thought about the problem for a while, and it occurred to me that I could channel the early days again: I could use the serial port and PPP or SLIP to bridge to the outside world. Like dialup without the modem.
I set up my Raspberry Pi and ran some Cat-5 to it from the router. Using a level shifter and a variety of old adapters, I managed to get a serial cable working between the Pi and the Mac. That took care of the hardware.
On the software side, I scrounged around and after several failed attempts found a PPP client that would run on the Plus and a super-simple PPP server called SLiRP for the Pi. Documentation for the combination of MacTCP, MacPPP, and SLiRP was, surprisingly, still available. After a bit of tinkering with the configuration, I was able to get MacTCP to talk to MacPPP, MacPPP to talk to SLiRP, SLiRP to use the Ethernet connection, and so on through my router and out to the internet. Since serial I/O on the Mac Plus was processor-intensive, throughput was limited to about 19 kbits/s, but 19 was a lot higher than 0.
Now, you might be wondering, “Wait, how did you get all of that abandonware on there in the first place?” Good question! The Mac’s floppy drive was old enough to be fundamentally incompatible with PC drives, and I didn’t have any floppy drives in my modern computers anyway.
I tried going down the avenue of 100 MB ZIP disks, since ZIP drives were made in both USB and SCSI-1 versions. While I did manage to get the Mac to use the ZIP disks (and in fact switched to one for the primary boot drive), and even got my Windows PC reading the HFS formatted disks using some nifty tools, every attempt to move data from the PC to the Plus resulted in nothing but corrupted files on the Zip disk.
That left the serial port. I happened to have an old terminal emulator called Microphone already installed on the Mac. Microphone supported ZMODEM for file transfers, which you’re probably nodding your head about if you remember BBSes. Thus, to transfer files to the Mac, I SFTPed the questionably legal files I needed from my PC onto the Raspberry Pi, plugged the Pi into the serial port, fired up Microphone on the Mac as a terminal, and launched Minicom on the Pi from the Mac. I nervously struck the keys to initiate a ZMODEM transfer from Minicom, selected the files, and hit enter. Minicom obliged, there was a BEEP! and a “Save incoming file?” dialog popped up on the Mac. Some un-binhexing later, I found myself running new software on my old Plus. Huzzah!
So, with the Raspberry Pi, MacTCP, and MacWeb all in place, it was time to surf the web! Right? Right?!
No. No surfing yet.
The MacWeb developers apparently took a look at the HTTP 1.0 spec, decided, “Who would ever need name-based virtual hosting?” and left out the feature that 99% of the sites on the modern web relied on. No support for virtual hostnames meant you got whatever you saw when you used the server’s IP address alone in the HTTP request, and for most sites, that was jack squat. Oh, and HTTPS, cookies, and CSS hadn’t been invented yet.
AAARGH!!!
I vented about the problems to Tyler, mentioned that I was in for a long stretch of coding to solve it, and was surprised when he whipped up a filtering proxy solution in about 20 minutes using Python, Requests, Flask, and Beautiful Soup. (Update 12/16: here’s the code from Tyler.) The key to it all was that MacWeb would include the full URL, with the hostname, when making a proxy request. Requests fetched the URL, stripped SSL and managed any cookies. BeautifulSoup stripped out things that MacWeb couldn’t understand, like CSS, Javascript, images, and DIVs. Flask pulled proxy duties, reading the request and sending the filtered result back to the Mac.
And that, friends, was sufficient to surf the web. It even looked surprisingly decent, almost like a mobile browser:
Sure, it was slow as hell, but it worked! Data loaded, pages rendered, and links were clickable. Even forms sort of worked.
Did I mention it was slow? It was slow. Soooo sloooow. Slow slow slow. Like, minutes to read and render a page slow. Here’s a video showing how slow:
Whatever. The goal was simply to introduce the Mac to the web.
The meet-and-greet was successful.
Speed is then about 350 Kbps
nice work 🙂
http://www.radiantsoftwares.com
very cool.
The mac might have a crystal for the serial, in which case you might be able to increase the baud rate?
That’s dedication. Almost makes we wish I still had the old Classic 2. Imagine how fast that would be. Imagine.
4mb RAM? That’s an absolute beast! My mom’s compaq had 4MB RAM, and that was around five years later if I recall correctly, in around 1993.
Good info.I’ve done basically the same thing for an old Tandy Color Computer under OS9.(Remember these?)Using a hacked interface in order to use an external hard drive ,the old COCO 3,(Originally with 64K of RAM,Upgraded to 512K,using a TV as a monitor) I got the old beast to access Slashdot.org plus other sites.It’s something to play with while I’m recovering from an amputation.
Посмотрел всё. Хоть и плохо понимаю английский, но урок очень пригодился ! Спасибо !
Hi!
You may also want to have a look at maclayers. If I recall correctly from the 68020 and onwards (SE etc), mac serial ports are capable of doing hardware handshaking with the right cable, flawless at 115k2 and technically with errors up to 1mbit (!).
Good dig!
Amazing! and very cool.
http://webhosting-store.com
Thanks for posting this article – hearing the sound that the plus’ keyboard makes sent me back to happy days 😀
I definitely think you should send a tweet from that machine, just because you can…hopefully.
How did you attempt transfers utilizing the zip disks? I don’t remember if System 7 had the native ability to read PC formatted disks, but I’m assuming that since you didn’t mention any third party software, that’s what you used. You would probably have better luck formatting them HFS and using this: http://www.mediafour.com/products/macdrive
Cool!
Were those HFS floppy disks that kind that went in the variable-speed floppy drives? If so, what tools did you use to get a PC to read them? I’ve got some old floppies I’d like to read but none of the Mac drive readers I’ve tried can recognize them.
omg! I can’t believe yoy did it! 🙂
great
Respect
A painstaking job but a real experience, great work!
I happen to have an old Mac, along with a nifty carrying case. It is in working condition, except for the external floppy drive, the input circuits of which my wife accidentally zapped with static electricity (they were very susceptable to that!) Unfortunately, mine is a 500KB “fat” Mac (which I converted from the original 128KB version). It is even slower than the Mac plus!
I also have an Apple Imagewriter printer to go with it, along with a box full of Mac software. This whole set is taking up storage space that I need for other things, but I haven’t the heart to toss it all into the trash!
@kizmiaz
You can restore an old car? you learned that.. this article is one of many to help people learn and expand their mind, then they can go on to build computers which control the manufacturing of the parts you use for your restorations. This article can inspire those 12 year old’s to pursue a future in computers, which controls every single aspect of your modern life. The tools you use, the electricity that powers them, the design of the tools and parts, the design and manufacturing of the materials used to house the workshop you use… and literally every other thing in your life. It is obviously a skill to be able to build cars, but that is a finite creation, in contrast if you learn to build and use computers you can use them as a tool to create whatever you desire.
Doesn’t the Plus support LocalTalk (over a serial cable?) Something like the Asante EtherTalk could then bridge that to Ethernet to go to your destination. At least that’s how I remember getting my SE hooked up for network games at one point.
Genius!
Amazing!
http://www.tpbin.com/
Well written article! (and video) 😀 Oh man, I remember reading about ZMODEM in High School; 3 years ago.
I wish I could still do this to my first computer I used; Mac LC 575 (33MHz CPU, 5MB RAM (expanded to 32MB), 160MB SCSI HDD [replaced by 250MB]) http://en.wikipedia.org/wiki/Macintosh_LC_500_series#LC_575). Though sadly, it was beyond my decision to keep it. We ended up destroying the first two computers I had ever used. RIP. It makes me sad and frustrated thinking about it, because I probably could have prevented them being from thrown out. 🙁 Here are some destruction shots of our Mac LC 575 (My dad’s first computer too!):
https://facebook.com/media/set/?set=a.3588467760979.199936.1551894292&l=d3a3eedc0a
We can learn a lot from our history. 🙂 I really do admire people like you. Doing the unthinkable and making the old meet the new again. (y) +99
PS: this blog post is doing rounds on The Daily Dot and The Next Web, congrats on going viral! Who would have thought ay?
Well written article! (and video) 😀 Oh man, I remember reading about ZMODEM in High School; 3 years ago.
I wish I could still do this to my first computer I used; Mac LC 575 (33MHz CPU, 5MB RAM (expanded to 32MB), 160MB SCSI HDD [replaced by 250MB]) http://en.wikipedia.org/wiki/Macintosh_LC_500_series#LC_575). Though sadly, it was beyond my decision to keep it. We ended up destroying the first two computers I had ever used. RIP. It makes me sad and frustrated thinking about it, because I probably could have prevented them being from thrown out. 🙁 Here are some destruction shots of our Mac LC 575 (My dad’s first computer too!):
https://facebook.com/media/set/?set=a.3588467760979.199936.1551894292&l=d3a3eedc0a
We can learn a lot from our history. 🙂 I really do admire people like you. Doing the unthinkable and making the old meet the new again. (y) +99
PS: this blog post is doing rounds on The Daily Dot and The Next Web, congrats on going viral! Who would have thought ay?
(re-posted this comment, due to my website not being displayed because I wanted to test if it auto added ‘http://’ to the front of the URL. Please publish this one if my site is linked cheers).
lol, reading this makes me feel really young. I’m young (20) enough to initially find ZMODEM in the books. 🙂
Quoted for the truth! I’ve stripped down computers down to their bare chassis and re-built them up from the ground again – Best feeling; it’s seriously the best way to learn, because it forces you to think and fix things if they don’t go right. 😀
I’ve been doing computer troubleshooting since I was probably 10 (even before?), I remember asking my dad for a Windows computer to play games (We had a Mac LC 575 at the time – which could only play a few Mac-based games), and my cousin had Windows 95 playing Sim City and The Sims) *Made me jelly*. 😛
With respect to localtalk vs serial/PPP: from what I have read sharing files over localtalk works on linux but TCP bridging to localtalk doesn’t:
http://www.applefritter.com/content/localtalk-ip-gateway-linux
I’ve never been a mac fan, but this project is interesting from an archaeological point of view.
wykop k***a
Two words- Hypercard, Macdraw. Both an endless pleasure and why I still have my classic 2 around.
Now if I could just get me a printer to output to………
Incredible! Person with a passion!
ah yes, I can remember those halcyon days of old. At least with the MAC you can see that something is h appening, what appears to be a frozen screen. My old PC, IBM clone, went to a blue screen and I had no way of knowing if the machine had died of was working. God, I do not miss that.
Goog job! It is realy hard to beleve that is possiable!
great work done
I recall having SCSI-to-Ethernet adapters to hook these things up.
Wow, this had the old Geek Alert going off big time! I haven’t decided if I feel old or just nostalgic for the old days of the ‘Net. Really, you haven’t gone old school until you’ve dialed into a mainframe at 300 baud, editing in line mode. I did this in college on my Commodore 64. It was technically my 2nd computer, since the first I ever used was a PDP-11 in my high school (Pascal anyone?).
Building out machines and hacking the software are really some of the best ways to understand how computing works. I always felt that the best developers were those who could write code from scratch with nothing more than an editor – no point and click tools to do the work for you. You get better and more efficient code that way and, more importantly, have a far easier time debugging problems than if you have to dig through bloated auto-generated code.
Anyway, thanks for this blast from the past. It makes me wish I still had that old Commodore to play with 🙂
Is that Mac too old for System 7.1? You might get better results kludging in an appletalk/ethernet adapter with OpenTransport in 7.1 and later.
Also, SCSI to CompactFlash adapters: http://www.ebay.com/bhp/scsi-cf
I have an SE30, much newer than your MacPlus, but saved for just your purpose. You motivate me. Unlike you, however, I fall asleep too easily to be certain of finishing the project. So I procrastinate, but wonder whether a friend, whose mind shines brightly 24 hours a day may be convinced to join in the project.
My first “build” was a MIPS Altair in ’74, for which my pilot friend and I purchased an ASR-30 (Google that one to see the lengths we had to go for mere I/O) as a keyboard. And that was nearly a decade after I was writing device drivers for the early (8K BOS) IBM 360-30.
I “have” a STARMAX (another Google) which needs a home with someone like yourself. Just might pay the shipping if you were interested.
Merry Christmas
john
Even easier is to run a Linux VM with Netatalk 2.1.6 on it. You then hook up an AFP bridge, which should give you about 115200bps.
Then you can also have pppd server going on as well, and it will act like it’s on the regular Ethernet network, except you’ll need a different cable for that.
That was great! Back in the days of Windows Runtime 286, I had to go inside of my first computer to replace a 5 1/4″ floppy drive. After getting over my fear, I did well; a friend talked me through it over the phone. While the case was open, I decided to add memory, and found out to just move a jumper from one position to another took the processor up from 16Mhz to 20Mhz. I was so happy! And the BBS mgt. pkg. I bought in ’94 was one week before the commercial Internet was announced. Needless to say, I couldn’t get a refund for the software!
Props!!! Now, interested in helping me get my Kaypro IV with cp/m on the web??
This is absolutely awesome! Good job. I love it when people make things perform in ways that was never intended just for the challenge.
The Raspberry Pi increased the overall computing power of the setup by a factor of about 1000-2000x 🙂
Brilliant!
I got a Mac 512ke on the internet a few years ago by this method:
Use a internet gateway that routes via Mac IP. (A) Find a version of Mac Internet Gateway by Vicomsoft and then Localtalk network using Mac IP. A nice period machine to run this would be a Quadra 700, PowerBook 500 series or something similar; something with both serial ports and ethernet (B) Some old Shiva routers do Mac IP, as well as the famous GatorBox. If you plan to run primordial Macintoshes (i.e.: Lisa, Mac 128/512k, Mac Plus, or even PowerBook 1xx series on the modern internet, having a GatorBox or some other type of gateway makes it easier and allows native use of the ancient computer’s networking.
ex-Apple engineer
Now load a heavy site like Google+ or Pandora Radio, and watch it go Boom! (again) 😀
Now there’s a Mac Genius!
This is a wonderful work. Hats off friend!
Really great work. I also enjoyed the $2600 tariff. There are barely any PCs that cost $2600 today, no less the $5200 that the Mac would cost in today’s dollars. It conjured memories of the old Compaq portable computers from 1985. They weighed 20 or 30 lbs., had a 4 inch monitor, and cost about $3500. Soon everything will be in the cloud, you’ll buy a new access unit at the grocery store each week, and throw it out on Friday. Oh, and it will be biodegradable.
Hi.I’m so exited to hear that and I wish succes for next project .
Twenty years ago we did a brisk business in putting the Plus, the SE, the “fast” SE30 and the Iicx onto the web. A bit easier in the day because little ISPs were happy to set up SLIP accounts — the a DynaPort SCSI to Ether adapter was absolutely required when connecting to a dedicated ISDN. On those earlier Macs there was always a speed gain using a RAM Disk. I remember the day I sent at least a hundred antique macs to recycling because simple reality no longer supported trying to do the highly impractical anymore.