We need eggs, but the chickens all died in 1992.
Last time, I gave my IIc Plus a little checkup, then proceeded to try booting it. Everything seemed to go well, but that was based entirely on a red light and an audible bonk. We need to see some video output!
I have a plan cooking to solve the video output problem, but as a stop-gap measure, I found this thing on the junk pile:
That’s an InterView USB video scanner that works with S-Video and Composite. In theory, it allows you to see composite signals in a window on your modern computer. In reality, they stopped updating the driver several years ago, so it’s a door-stop. Such is the world we live in. The newest drivers available on their website no longer work on current versions of OS X or Windows, so I’m a bit stuck. Or am I? They still make a newer product called the XtraView, which uses software called ProView. It stands to reason that it has mostly the same hardware in it as the older InterView product, so maybe the newer software will recognize it. It doesn’t have to work perfectly- anything approximating a visible video signal would solve my problem here. The software is a free download, so it’s worth a try.
Well, amazingly, it works! Sort of. The picture is rubbish, and riddled with artifacts, but you can see what’s going on for the most part. It’s unclear how much of the issues are due to it not being the correct driver, and how much is just the limits of the product. It’s worth noting here that the Apple II doesn’t exactly produce an NTSC signal. It’s more like… “NTSC-ish”. Woz found he could save some chips by faking color. The signal is monochrome, but by changing the pixels faster than expected for a monochrome signal, it gets interpreted as having a chroma subcarrier, and shown as color. This is known as “artifact color”. It was a hack that worked okay at the time, but modern displays are fussier about signals being in-spec, so not all of the quality issues here may be the InterView’s fault. There’s a lot of conversion going on here between the Apple II and my USB port, so we have to expect rough edges. Anyways, it solves my immediate problem, so hooray for the junk pile.
Please excuse the nasty fan noise and the video artifacts. Ironically, all that is coming from the modern equipment doing the recording, not the IIc Plus.
The first thing to notice is the error message when it can’t find a floppy in the drive. “Unable to find a bootable disk online”. The wording is odd and reads like something written by the marketing department. The word “online” here was rather incorrectly used even in 1988. Add it to the list of quirks in an already quirky machine.
The second thing to notice is that, from power on, in 3.5 seconds flat, the machine is sitting at an interactive prompt where you can write code. This really shows the difference between retrocomputers and modern computers. These old machines begged you to program them. It was hard not to be in state where you could program them. A modern machine takes several minutes and many gigabytes of software to reach a comparable state, and even then it requires hours of reading documentation and most of a computer science degree to know what to do from there. Retrocomputers were so approachable that a six-year-old child could turn it on and write code with no help. I’ll give you one guess how I know that to be true. I think this level of approachability today has been lost in the machines themselves, but I suppose it still exists in some environments, such as the web. Things like Scratch and the Lego programming environment are decent substitutes, but they still require adult supervision and a lot of infrastructure to get going. So, to summarize, get off my lawn.
Well, now what? There’s a noticeable lack of being able to do anything besides write code. The reason being, there’s no operating system to boot. This is a problem, and here’s where we arrive at the central challenge for this article. Let’s say you’ve bought a retrocomputer from eBay, craigslist, etc. Most likely, it didn’t come with any floppies. Perhaps you have a blank floppy or two, but those are no good by themselves. How do you boot the machine into real software? Like a modern computer, we need an operating system. To get an operating system, we need to format a floppy disk and make it bootable. To do that, we need an operating system. You see the dilemma we’re in.
This is a distinctly modern problem. Back in the day, the machine would have, of course, come with many bootable disks, any number of which could be used to create subsequent bootable disks. The machines have largely outlived their original software, however, so we’re in a classic chicken-and-egg quandary. Luckily, we can break the cycle by going deeper. What do we really need here? We need the ability to create a bootable disk. That really means we need code in the RAM of the machine capable of doing so. There are ways to get that code into RAM without booting an OS from a floppy.
One common way is using the cassette port. Lots of early retrocomputers had cassette ports, because it was an inexpensive form of persistent storage, and a cassette interface is a very easy thing to build into a computer (it’s literally a single I/O pin). The nice thing about a cassette port is that it relies on a lowest-common-denominator file format that still exists- audio. There are services like Apple Game Server where you can literally play data out of your iPhone’s headphone jack into your Apple II, and the Apple II can boot from that. Very, very, very slowly. This is something of a last resort. The reason this works at all is because the Apple II has support in ROM for loading from the cassette port with no operating system in memory. Not so for the floppy drives. In any case, Apple did not see fit to include a cassette port on the IIc Plus, and nobody blames them.
Luckily, there’s a better way- Apple Disk Transfer Pro. This is a fantastic piece of free software that no Apple II user should be without. In addition to using the cassette port if needed, ADTPro can get code into the RAM on your machine via serial port. It takes advantage of a feature of the Apple firmware whereby it can take standard input from the serial port (or any expansion card that conforms to certain rules). ADTPro sends input commands to put the machine into the ROM Monitor mode, then proceeds to type its own client code into memory via standard input, after which it runs itself. The author has effectively created a way to netboot an Apple II, and it is simply marvelous to watch.
However, that means we need a serial connection from our modern laptop to the Apple II. Even that is a lot to ask these days, because computers don’t even have RS232 serial ports anymore! These days we have USB, which is a complex and demanding set of standards and protocols that an 8-bit Apple II would have no hope of talking to without assistance. Luckily, there are USB-to-Serial converters. If you’ve played with Arduinos or Raspberry Pis or similar toys, there’s a good chance you already have one these, in fact. Of course, they require a driver, which is always unsettling, because it means at some arbitrary point in the future, it will stop working. For the moment, though, it solves our problem.
So, we need two cables to start with- a USB-RS232 converter, and then something to convert to the IIc Plus’ MiniDIN-8 serial port.
Being the hacking-inclined sort of person that I am, I fully intended to get my hands dirty and build a cable for this. Well, thanks to globalization, these things are so insanely, ridiculously, mind-bogglingly cheap that I just couldn’t justify the time and effort. Buying the two cables you see above cost less than getting the connectors alone would have cost me in order to build my own cable. What a strange world we live in.
At the very least, I intended to combine those two cables into one with some hackery. Unfortunately, the critical part (the FTDI chip that converts USB to RS232) is inside the male DB-9 connector. That means I have to keep the “middle” part of the two cables, so no combining is really possible. I’m doubtful I could extract the circuit from inside that connector without destroying it, so I’m stuck with a boring, unhacked pair of off-the-shelf cables. Boo.
Once connected, ADTPro can work its magic. Rather than reproduce a video of the process, I’ll include David Schmidt’s nicely produced one. He’s the author of ADTPro, and I could not demo it better than he does.
Once the ADTPro client has teleported itself into RAM, it can then write itself to a blank floppy. This leaves us with a bootable client version of the ADTPro software in the drive. With that, we can now transfer other disk images from our modern computer to the Apple II and save them out as real floppies. In this way, we can build up a library of usable disks that make the machine as useful on its own as it once was!
So, once we have a bootable ADTPro client, we can use it to transfer a copy of the Apple IIc Plus System Utilities. This is a disk that would have come with the machine, and allows you to do basic housekeeping tasks of the sort we have an urgent need to do. Transferring it takes a little while, because it’s 800k (one of the downsides to the large 3.5″ format in the IIc Plus). So, you’ll spend some time looking at this…
Now that we can boot the system utilities, we have the ability to make new bootable ProDOS disks, create and save our own programs, and so on. Yay!
Unfortunately, this video reveals that we’ve hit a wall on usability for this setup. The 80-column text mode (which is the most useful) is a bit too much for this XLR8 video scanner to handle. This was a common problem back in the 1980s as well, since a lot of people used a television as their computer monitor. Televisions of the period weren’t good enough to show 80-column text either. So, time to say goodbye to the USB digitizer and solve our display problem once and for all. More on that later.
Oh, and for all you regular IIc owners who are scoffing at the IIc Plus, let me ask you- can your Apple IIc do this?
Didn’t think so. *drops mic*