The most commonly found computers in public schools in the early to mid-1980s were the Apple ][ plus and //e. These were 8-bit computers, running MOS 6502 CPUs (or some variant), running at 1 Mhz. They typically had anywhere from 48 to 64 kilobytes of RAM. They were the models Apple made before the Lisa and Macintosh.
When they finally installed a computer lab at my junior high school, around 1984, I got myself acquainted with Applesoft BASIC, which was a version of Microsoft BASIC. What was kind of unique about it is in addition to being an interpreter used for program development, it functioned like a command line for the computer’s operating system. After booting with a floppy diskette, which contained Apple DOS, you could do every disk management function by typing commands into it, rather like the MS-DOS command line.
I mostly used BASIC with the Apples, though I got into Apple Pascal my senior year in high school. Like with Atari BASIC (which I mentioned in Part 1), each segment of Applesoft BASIC code (which could contain several commands) had to have a line number for sequencing and labeling.
Fortunately over the last several years I’ve been able to scrounge together some images of my old Apple II disks that I can run in an emulator, so I can show some of the stuff I did while I was in school.
The music you hear for the next two videos is just some MODule background music I picked, playing on my PC. The first for the video below is called “Leave the brain at home.” This video is of a computerized version of Mad Libs.
Since I was in about 5th grade my friends and I loved to play Mad Libs. The problem was we’d always write our substitution words in the books we’d get. If we wanted to play them over again we’d have to erase what we wrote in before, eventually wearing out the paper. I thought this was wasteful, so I tried to computerize the game. I wrote a suite of programs when I was in junior high school: Ad Libs Creator, Ad Libs Displayer (what you see in the video above), and Ad Libs Editor. Creator and Editor were rudimentary. I didn’t have a very sophisticated concept of text at the time. The best I could do with the skills I had was to have the user enter each word and blank of their Mad Lib one word/blank at a time, at prompts. Not user-friendly. Displayer was rather popular with my friends. When I was in the computer lab I’d sometimes hear them laughing off in some corner. One day I went over and asked them what was so funny. They said they were playing with my Ad Libs program. How gratifying! 🙂 That was the idea, to make the game fun to play.
Trying to get published
Compute! was my favorite magazine. I had a subscription to it for years during the 1980s. I looked forward to each issue with bated breath, and I read it cover to cover. The most exciting things for me were the type-in programs. Each issue had programs people had submitted to the magazine. The editors would pick some and publish them in BASIC, with complete source code. The original idea, I think, was to create an educational vehicle. Readers were expected to type in the programs, and when done, use them. The early issues had articles that explained how the programs worked, part by part. I found them very educational.
I updated my Ad Libs programs some in high school. I felt as though I had finally gotten them debugged and in a form I liked. I decided to try to get them published in Compute!. I spent what felt like months writing and editing my article that would go with them. Once I felt that was done, I took my shot. I put my programs on disk, printed out my article, and sent them to the magazine. Some months later I got a rejection letter. I vaguely remember one of the things it said was they did not take unsolicited material. It also said that regardless, my article and programs didn’t fit in with their editorial focus, or something. Sigh… Anyway, that was one lesson learned: Pass the idea by one of the editors first. Give them a summary of what your submission will be about before you go through the trouble of writing it. That way if they don’t like it you haven’t wasted the effort. I didn’t write these programs to get published, but I figured I’d try.
Trying again, or…not
The background music for this video is a MODule called “Earthquake”.
Week-In-Advance, written in BASIC, compiled using Einstein BASIC compiler
In the 1980s it was common for computer shows to take place at local malls, about once a year. I looked forward to them every time. I could spend almost a whole day at those things. One of those times I saw an Apple Lisa on display. It was around 1985, or later. I had the opportunity to try it out. I remember I was running a calendaring application on it. It would show me a month in the traditional calendar layout. I could click on individual days in the month, and it would bring up a form where I could enter new events for the day. This was so it could post reminders about upcoming events for the user. It made quite an impression on me. I must’ve thought, “Gosh, I could use something like this!” When I was in junior high and high school I often wrote down due dates for assignments and tests in a pocket notebook I carried with me. It got confusing and messy sometimes. I wanted something that was better organized. The only computers I could program on in the school were Apple IIs. I don’t remember when, but at some point while I was in high school I resolved to write my own scheduling program. Inspired by the way the Lisa worked, I wanted to create my own windowing interface. I made an effort to make it easy to use. From the outset I wanted to try (again) getting it published in Compute!.
Not being that great with graphics, I decided to do it all in text mode. It’s hard for me to remember how long it took. From the time I started on it, I was done with it anywhere from 6 months to a year later. I’d spend 1 or 2 hours a day on it if I didn’t have a heavy homework load. It was a real learning experience. There were some hard skills I had to learn in order to accomplish what I wanted.
I tried out a couple different interface designs, which I threw out, before I finally figured out how to create expanding and shrinking windows. The main problem I had with the other two designs was they were too slow.
One of the things I realized was the only way I could manage the amount of code I was creating was to break it up into “procedural” chunks that I could GOSUB to and RETURN from. If I had done it in a language like Pascal it would’ve been easier, I think.
The next realization I made is I needed to be able to edit events, not just add and delete them. So I created my own little text editor, which you can see a couple times in the video. It shows up as a subwindow inside the larger events window, where events are listed for a day. I don’t show all the features of it in this video. You see me just appending text to an event. I could put it into “insert mode”, or delete characters, through a couple of key combinations.
The last realization I made is I couldn’t use the program all the time. I didn’t have time to make it to the lab every day so I could view the things I had coming up. I needed a way to print out my schedule. So I added that (which I couldn’t demonstrate in the video). Finally, in February 1988 I got it all done.
I used it for real scheduling for about 5 months, until I graduated. It worked well. It was my first experience in creating something that was actually useful. Too bad I didn’t start on it sooner.
By the time I was done I had sworn off trying to get it published. It had grown way beyond the size I was anticipating, to about 800 LOC (program lines on the display, not in line numbers). The print columns in the magazine were narrower than the columns displayed for a listing on the screen. I figured it would be too large to publish. It may not have made a difference. Compute! would stop publishing type-ins in May 1988, though I think their platform-specific magazines (they had one for Apple IIs) continued to publish type-ins. Anyway, that’s water under the bridge.
Looking back on it now the interface design had some flaws in it, but I felt very satisfied with it at the time.
Apple II music video
I thought this video deserved an honorable mention. Someone wrote a BASIC program in text mode to create a computerized music video for a song. The music you hear is not being output by the computer (it didn’t have the power for that), but the computer’s display is synchronized to the music using wait loops.
At the end you see some of the code that was used to generate the display, and the Apple II computer itself. The square box to the left of the computer is the 5-1/4″ floppy disk drive for the machine.
There were many classic games for the Apples. These are some that made an impression on me. I put up the next 3 videos on YouTube. Karateka was put up by someone else.
Star Blazer, by Tony Suzuki, Star Craft, Inc.
You go on 3 missions: 1) bomb a radar dish, 2) bomb a fast tank while ships fly at you, and 3) bomb a radar dish while balloon-launching ships try to blow you up (the balloons have bombs attached). It’s been years since I played this game, so my technique is not so good as you can tell. I remember what I used to do with the tank is I’d get some “yo-yo” action going with it, back and forth, and then I’d fly up and forward, get a little bit in front of the tank, then drop down fast and launch a bomb. This would cause the bomb to drop faster than usual, hopefully on the tank. Timing was crucial.
One of the challenges is going after your objective while also picking up fuel packets that are dropped by parachute by an orange craft that flies across the top of the screen every once in a while.
Drol, by Aik Beng, Broderbund Software
Choplifter, by Dan Gorlin, Broderbund Software
Karateka, by Jordan Mechner, Broderbund Software
This was one of the few adventure games I saw on the Apples. It has some properties that appear in today’s fighting games, like a real-time health indicator for each fighter. The goal was to kill all the fighters, including the “boss” character at the end, and rescue the princess. Getting past the fighters was pretty straightforward for me, though as you see in the video, you had to remember to get into the fighting position to defend yourself, otherwise you get killed in one punch. There were a couple tricks in the game. One was a razor sharp doorway that looked like a set of vertical bars (like in a jail). You had to figure out how to get past that. Once you get past the “boss” you had to be careful how you approached the princess. If you went into her cell in fighting position, she’d kill you in one kick. You were supposed to stand up straight and run in. Once I figured these things out the game was pretty easy to beat. It was challenging enough that it was fun, but after a while it got boring except for the graphics and sound effects.
As you’ll notice most of the games I cite here were from Broderbund. On the Apple they were quite the game company. They had many excellent titles.
There were some other games I played, like Sabotage, Russki Duck, Apple Panic, Canonball Blitz (a game like Donkey Kong), and Horizon V. I’m familiar with Aztec, Robot Wars by Muse Software, Castle Wolfenstein by Muse Software (the inspiration for Wolfenstein 3D, and Return to Castle Wolfenstein on the PC), Bilestoad, and the Ultima role-playing series, because I used to watch other kids play them.
In terms of graphics a lot of these were not high quality, but I think all of them really utilized the hardware to its potential, and had interesting gameplay. Even though the sound quality was not good (all you had was the internal speaker), a lot of times these games had sound effects that did not appear in the Atari 8-bit versions for some reason. Not as much effort was put into them.
Here’s a long video of me playing Robot Odyssey.
Robot Odyssey, by Mike Wallace and Leslie Grimm,
The Learning Company
This was a sequel to another educational game called “Rocky’s Boots,” which put the learner through a series of challenges, one per room. You solved them by building circuits in the rooms out of logic gates. This game is similar, except the player is programming robots, and they work autonomously. The interiors of robots are really like “rooms.” Even though they’re all the same size, you can put robots inside each other. The player has to pick up certain items and go through mazes throughout the game. S/he is usually prevented from doing so by “sentries.” In these cases the player needs to program a robot to go get items or take him/her through mazes.
I don’t show you all the action. I tried to just show the interesting stuff (not always succeeding). The audio gets behind the video towards the middle. That’s the fault of my screen capture software.
When I was a teen I found this game fascinating. It was the most advanced gaming environment I’d seen. Things happened in real time. Even if you walked out of a room, it didn’t mean everything had stopped. This was often the case with other 8-bit games of this style. Things only happened in a room if you were in it. In this game you can get a robot going doing something, leave the room and go do something else, and then come back. Everything will have happened as if you were in the room with the robot the whole time. I learned a lot about building logic circuits through “Rocky’s Boots” and this game.
Graphics resolution was a problem. It was hard building anything but basic circuits, because if you built something complex you’d get a jumble of gates and connections, and it was difficult to sort out. Fortunately the game gives you a “chip lab” where you can build your circuits inside a prototyping chip, “burn some EPROMS” from it, save the chips, and use them in the game. This keeps circuitry manageable.
My high school had this game and I played it every chance I got. I never finished it. Since I have an emulator now I’ve taken time to play it from time to time. The gameplay is not so nice anymore. I’m used to better environments, but I still hope to finish it. 🙂 There’s nothing else like it out there today.
The original Flight Simulator, by subLogic
This was the predecessor to Flight Simulator II, which was bought and developed further by Microsoft. Flight Simulator was extremely simple. It had no sound effects. The only graphics you had were wireframe. You couldn’t hit anything except the ground, and you could land anywhere. You could “declare war” and “enemy planes” (dots) would come up to fight you. I found this mode more frustrating than fun. You could shoot at them (I think), but you had no targeting crosshair or tracer bullets, so you had no idea where you were firing.
I could never get used to FS II, particularly on the 8-bits. It was too boggy. You would start into a turn, and realize 5 seconds later how deep a turn you went into. I found it impossible to maneuver. Even though this version is also slow, it ran at a fast enough speed that I didn’t get too surprised by what I saw happening. The instrument panel made more sense to me, too. The graphics were crap. Most personal computer users of the time probably didn’t realize it, because it was the best 3D graphics people knew how to do on such a limited platform.
I had a lot of fun with the Apples. I did some of my most creative work with them as a teenager.
—Mark Miller, https://tekkie.wordpress.com