Here are a few photos I took during development of the Apple //e between 1981 and 1983.
This photo was taken in Sep 1981, while I was working on the ROM for the //e. I'd hacked up a keyboard with a long cable, just because the parts were handy. Aside from those on the Lisa prototypes, it was perhaps the only functional detachable keyboard at Apple.
There's an Apple /// behind me, and an Apple II next to it. The II was used as a Pascal development system for code to be run on the ///. On the shelf above my head, on top of the cassette player, is an Apple Profile, which was the 5MB (yes, megabyte) hard drive for the Apple ///. The //e prototype is right next to my feet. Note the hole in my shoe...
The circuit board, in its wire-wrap days.
The loaded board (the left half) emulated the IOU and MMU custom chips, each of which became a single 40-pin part. When the first chips arrived, we disconnected the emulator.
A close-up. The ROMs are out of their sockets, no doubt getting another erase/burn cycle.
The two prototypes had names
Occasionally, we'd discover that the two prototype boards behaved differently; usually this was because a fix was installed on one of the boards, but not the other. So we needed a way to tell them apart easily. A colleague (it was either Jeff Aronoff or Neal Johnson) came in one day with a sheet of stickers from a cereal box.
So, one machine got the name "Flash", the other was called "Superman."
I got this fortune at lunch one day. It says "You will have good luck and overcome many hardships." I figured it couldn't hurt with the development schedule...
The IOU and MMU chips in the flesh
Inside an early case.
I got to take home this prototype machine, which also had a modified Apple-II style plastic housing. (It was chopped up a bit to make room for the few extra keys the //e had.) The IOU and MMU chips shown had metal covers that were simply held in place with Scotch tape. (In order to allow for probing during testing, there was never any protective oxide layer on these prototype chips. They were expected to fail within a few weeks or months due to corrosion from humidity.)
In those days (1981-87), I used to run a lot of X10 lamp controls around my house. I plopped a ThunderClock card into the //e; the card also had an ultrasonic emitter to communicate with an X10 control console.
Lou Infeld, fellow Apple software engineer, was finishing up a Scheduler program designed to operate X10 devices. I'd bring home his latest build and run it, sometimes testing several versions in a week — especially if he added new features at my request.
The Scheduler had a built-in almanac to allow sunrise/sunset as well as standard timed events. I had Lou add a "cycle callout," so I could insert code to run every second as the Scheduler checked for events, as well as "software events" — triggered similar to X10 events — that allowed me to call a function on demand.
Using this system, I was controlling my heating system, indoor and outdoor lighting, a Votrax speech synthesizer, and a departure-lighting scheme. When I would leave the house at night, the Votrax would shout out some insult, the heating thermostat would set back, and the outdoor lights would go on. Five minutes later, the outdoor lights dimmed to a "maintenance" level while I was gone. Upon my arrival home, the heat would restore to the original temp, the Votrax would shout another amusing sentence, and the outdoor lights would extinguish.
The Scheduler's almanac allowed it to know whether or not to actually turn on outdoor lighting, based on its knowledge of local sunrise and sunset times.
The prototype Apple //e, running 24 hours a day, lasted about 18 months before one of the custom chips finally died. I attribute their long life to the continuous operation, which avoided thermal cycles. The constant system temperature also kept humidity at bay.
I don't recall much about the whole Scheduler system, since it was running back in 1981. I do recall that the Votrax would say things like "How come you never take me along?" when I'd leave, "Hello Mr. Burglar, take anything but don't hurt me!" or "Quick! Hide! My wife is home!" when someone arrived home. There were probably a dozen sentences for departures and arrivals.
Controlling the heating system was fairly easy: I wired a surplus thermistor to the game-paddle inputs. By calling the paddle-read routine, I could determine the approximate resistance of the thermistor. I had written a quick BASIC program to initially determine the correspondence between temperature and the paddle value returned, then used these values in my Scheduler extension that controlled the heat.
I built another Apple ][ card with a couple of small relays controlled by software. The 24vac power to the heating thermostat was wired to one of the relays. I set the thermostat a few degrees warmer than we ever needed, so that, in the absence of the computer, the furnace would run to, say, 74 degrees and stop. When the program wanted to cut off the heat, it clicked the relay to interrupt the 24v supply, and the furnace would see that as the thermostat shuttting off. If the computer crashed (which was very rare), either of two things would happen: a) the heating system would continue running till the thermostat stopped it at 74, or b) the heating system would be left in an "off" state by the computer. Because I was living in the San Francisco Bay Area, this was not a problem: we'd never freeze.
One of the game-switch inputs was used to sense arrivals and departures. I wired it to a spare relay in my alarm system; since I always armed and disarmed the alarm, that was a perfect indication of departures and arrivals.
I always wanted to install a driveway sensor to announce my arrival as I came up the long driveway, but I never got around to it.