Remotely accessing your computer’s desktop, files and network from anywhere has enabled remote working (i.e. ‘work from home’) for the last several decades. Modern PCs have more than enough computational grunt for Virtual Network Computing (VNC), but where does that leave our retro computing community? [Marcio Teixeira] has it covered with MiniVNC, a brand-new remote desktop server for (very) vintage Macintosh computers.
Now before you say anything, it’s true that ChromiVNC has existed for some time, and is a pretty decent remote desktop server for old Macs. However MiniVNC has several significant advantages, most notably, MiniVNC is fully compatible with MacTCP. Apple’s very first TCP/IP networking stack landed on the Macintosh platform with System 6. As such, MiniVNC can serve up a remote desktop on some of the oldest Mac computers, including the Macintosh Plus.
It’s hard to overstate just how cool that is – the iconic Macintosh Plus was released in 1986, runs at a pedestrian 8MHz and supports a maximum of 4MB memory. While much of MiniVNC was written in C++, portions of the software (including TRLE encoding) had to be handwritten in 68K assembly language to ensure decent performance. The entire focus of MiniVNC was on performance and flexibility, with accuracy coming in second, which seems like the right decision. The odd screen artifact and missed update seems to be reasonable trade-off to get this running somewhat smoothly on a Motorola 68000 processor.
‘Newer’ Macintosh computers will also work with this software. If you’re lucky to have a 68020 processor or later, the MiniVNC software will make use of extra CPU instructions to improve performance even further. Every little bit helps, as gathering screen updates on such a primitive system is very resource intensive. Nothing was simple with this project, from creating loops using callback routines to even something as simple as recording the mouse button state. The entire project is available on GitHub with a fascinating and detailed write-up.
The vintage computing community has declared this month as #MARCHintosh, a celebration of all things Mac. We can’t enough of our Mac hacks here, so make sure to keep sending in those tips. In the meantime check out our Macintosh coverage to date, including this brand new SE/30 logic board.
It’s actually quite amazing what the 16-bit world accomplished with minimal hardware. This was largely due to concise system routines written in assembly and tight control over the output of compiled programs. Much of what we do today, was accomplished even then (on a smaller scale), just without all the bloat. An old computer is not a useless device at all. I often wonder just what speed gains we could see, if all system routines could be written 100% in assembler. Not practical at all – but just thinking. I don’t think we realize how capable any computer is when the software is written with efficiency in mind. Even NASA used the Amiga for quite a few years.
I’ve also wondered the same thing! Anyhow, just to clarify, the Mac has a Motorola 68000, a 32-bit processor – Apple has always been cutting edge! It also has a very capable CISC instruction set, more pleasant to code in than x86 or RISC.
Oh boy, I’m getting flashbacks to the 16 vs. 32-bit wars of the 1980’s. The 68000 has a 32-bit instruction set but 16-bit ALU’s, and 16-bit internal and external data busses. Motorola call it a “16/32-bit” processor. BTW, did you know IBM also sold a system using the 68000? The System 9000 in 1982, a year before the Apple Lisa and two years before the Macintosh.
True true. Even today people still discuss these things. The Z80 also is partially 16-Bit or 2×8-Bit, due to registers that can be merged into one/split into two. Alas, some people get really upset if mentioned. As if a pure 8-Bit CPU exists in real-world. Adress space alone is higher than 8-Bit (16-Bit) normally on 8-Bit CPUs. That leaves the bit-ness to the ALU. So yeah, it really depends on how we look at it. ;)
When the remote desktop client takes more cycles than would just emulating the remote system locally you know your hacking!
Shouldn’t it be made the other way around? i.e. a Vintage Mac runs a VNC client that can control a much more powerful machine? That’s the concept of thin client, right? Which will actually make vintage computer appears useful.
I actually would like to make something so I can stream games from a modern PC and record myself playing them on a vintage Mac. I think that would be amusing!
In this latest video, I talk to Rick from Lisa2.com about the Apple Lisa while I remotely connect and control his Lisa computers via the Internet using MiniVNC!
https://youtu.be/BJqkBN8TZkc
This is so dang cool! I knew I had a reason to hold onto my old Mac+ and Mac Classic. About the only thing missing on that RaSCSI project portion is a speaker to give us the jet engine like turbine sound of an old 20MB Rodime spinning up and the sound of the heads moving back and forth. Oh and the need to randomly give it a jolt or twist to get over any sticktion issues…
I wonder if we could do a similar thing on an Amiga… or maybe do it “faster and better” using something like the A314 to handle the heavy lifting…