The Famous Basic Computer Games Book Gets A 2021 Update

If you are a certain age, your first programming language was almost certainly BASIC. You probably at least saw the famous book by Ahl, titled BASIC Computer Games or 101 BASIC Computer Games. The book, published in 1973 by [David Ahl] was a staple in its day and the first computer book to sell over one million copies. Of course, if you want to run Super Star Trek or Hamurabi, you better fire up an old retrocomputer or a simulator because BASIC in 1973 doesn’t look like what we have today. Or, you can head to GitHub where [coding-horror] is inviting people to help update the programs using modern languages.

One of our favorites, Bagels, is there with directories for C#, Java, Javascript, Python, Ruby, and VB.net. It doesn’t appear that all of the games are in all the languages, though. There’s also a .Net solution file that apparently has a few entries in it. We were also happy to see Super Star Trek represented, along with a link to an article about a C++ language port. The original games were tweaked to run on VintageBasic.

By today’s standards, these games are pretty crude, but they are still engaging and, if you remember them, always nostalgic.  There is one thing missing, though. In 1973, you had no choice but to type the programs in yourself. You couldn’t help but learn something about programming in the process. Besides, you then had to debug the program to find your typing mistakes and that was definitely educational. It might seem like these games are ultra-simple, but hexapawn does machine learning and the lunar lander game is a simple physics simulation.

Regardless of language, if I were using these with a student, I might be tempted to make them type the programs in by hand. They’d probably revolt against the idea, but it might be good training. Think of “wax on, wax off” from the Karate Kid.

Seeing some of these old gems is like unexpectedly running into an old friend. If you want to help out, there’s a discussion board available. You’d think BASIC would be gone by now, but it still hangs in there. If your program is short enough, you might even run it on Twitter.

52 thoughts on “The Famous Basic Computer Games Book Gets A 2021 Update

  1. Oh yeah, I remember those. Our Basic on the HP-3000 wasn’t quite the same dialect (not that it mattered, since I didn’t know either one– nor did I have a manual) But I did use it to puzzle it out and had a whale of a time writing games on our terminal– at 75 baud (initially– the following year we got an upgrade to 110 baud)

    1. Well, yes. I took my first computer class in high school in 1970. We had two ASR33 terminals connected to a 12-bit 32K PDP-8 running the TSS/8 operating system. The computer was shared by at least eight other high schools around the Boston area. Up to 32 users could simultaneously run 4K programs written in BASIC, FOCAL, FORTRAN, and assembly language. Mass storage consisted of a shared 64K drum, DECtape random access tape drives, and for most of us, paper tape. It was slow, but it worked. Are you surprised by this?

      1. Not everyone is was as privileged to grow up in the shadow of the MIT campus during the computer revolution. The historical state of school computer labs isn’t commonly documented information. My school shared a single Apple II between multiple classes at a time when Windows 95 was released. Are you surprised by this?

        1. Yes, I was privileged, but perhaps not as you might think. My mother was a Black woman who graduated in 1951 with a degree in Mathematics from a small woman’s college, while working the night shift at a mattress factory to pay the tuition. Her first job was as a Computer at the MIT Instrumentation Laboratory, where she calculated missile trajectories by writing up coding sheets for the patch panels that then controlled MIT’s brand new Whirlwind computer.

          Years later, she ended up as a math teacher at my high school, ran the math lab, and pushed for the school system to join an eight city consortium that bought the PDP-8. She would eventually own various Apple computers, and was a total whiz at HyperCard.

          She is why I’m still a working programmer 50 years later.

          1. Gosh! Your own “Hidden Figures” mom.

            I didn’t know the Whirlwind needed patch panels. I thought it was totally programmable through its TX-1 / pdp-1 style machine language.

            Having the vision to actually buy a school level pdp-8 in the 70s is pioneering stuff. In the UK, very few schools had access to any computing tech: eg the prestigious private school Eton only had access to a relatively slow Elliott Brothers 803 at the time.

          2. The patch panels were effectively hardwired long term memory. I believe Whirlwind also originally had Williams tube memory, which wasn’t exactly reliable or permanent. Core memory was invented and added a few years later, that made it programmable in the sense we think of it now.

        2. Some schools did look to the future. My high school had no attachment to silicon valley or some other technical hub. But as I said, the school board had a mainframe, which meant some of the cost was already there.

          Just because Kamala Harris attended high school there a few years later doesn’t mean it was a good or bad school.

        3. Well I grew up in the shadow of a General Motors Plant in the 70s and our school had a PDP1134 with like ten terminals. We had BASIC, ForTran 77, RPG (it was cancelled before I could take it), CoBOL 81 and Pascal (was new in the late 80s). I don’t know how, our town was as backwards as could be.

      2. Am I surprised? Kinda. A pdp-8 with 32KW was essentially a 4KW x 8 banks machine with a split instruction / data address space . Basic would have been about 8KW? (unless it split the editor and runtime into 2x 4KW) and some space must have been reserved for TSS – presumably more than the 200(octal) words for being able to reload TSS.

        So this leaves about 5 x 4KW banks free for users; which in turn means that it must have been swapping like crazy to keep with with 32 users without terrible response times.

        How was it done? Dedicated line editing buffers (32x 80 = 2560 bytes = just enough space in a 4KW bank including an editor).

        I never experienced 70s computing. My first exposure to BASIC was a North Star Horizon in early 1980 shared with 8 users (but I’m not sure if everyone shared a single Z80 or it was a multiprocessor system). We never exceeded the user allocation, because our programs were so small.

        So, curious – how was it done?

        1. TSS/8 was basically a primitive virtual machine hypervisor. Each user was allocated a virtual 4K PDP-8, which would reside in one of the available memory banks while running. There was a memory management unit that allowed one bank to be selected as the current instruction/data memory. Since it only had a few registers (program counter, accumulator, and a flag register), context switches were a snap. One instruction that trapped to an interrupt, that was used to implement system calls. The operating system fit in a single 4K bank (or 8K, I don’t remember), and implemented a file system, DECtape driver, command line interpreter (a simplified version of the PDP-6 and 10 CLIs), program loader, scheduler, and would swap user memory spaces (as a 4K page) to/from the 64K drum.

          Pretty much any standalone (OS/8) program that fit in 4K could be adapted to run under TSS/8. That eventually included 4K versions of BASIC, FORTRAN II, FOCAL (a DEC specific BASIC-like language), TECO (programmable character editor), and even a stripped down version of LISP.

          One of my first real hacks was figuring out how to use PEEK and POKE system calls to implement a real time chat program. That allowed the students at the various high schools to communicate whatever nonsense they felt like when taking a break from working on their programs. The program would soon be banned, as chat usage quickly crowded out actual work.

          1. By the way, drum-based programming is a lost art, I only had to do it once myself. For those who don’t know, drums were head per track devices, so there was no seek time, only rotational latency. The speed of rotation and the bit density were tuned to match the speed of the memory subsystem. Once the data was underneath the heads, you could transfer as much as you liked in a single high speed DMA operation. You’d optimize the placement of data on drum and your calculations such that you could read a block of input into memory, process it, and have the destination block rotating in place just as you finished, immediately followed by the next block of input data. Done right, it was quite fast. The scheduler in TSS/8 was cognizant of the drum position, swapping user memory in/out would happen without the users noticing the delay.

          2. Thanks for the detailed reply. I’ve been working on a blog post about early virtual memory systems, Multics and their influence on the 80286’s MMU. I hadn’t really considered how a hypervisor (without VM) would fit in.

            The TSS/8’s system sounds a lot like how it was done on a pdp-6 and pdp-10, but stripped down to a 12-bit machine. Seems horribly constrained to me, but was probably quite acceptable from a 70s perspective.

            WRT Drums: yes very much a forgotten tech. The legendary LGP-30 I believe was a drum-based machine. Also the Manchester Atlas, the first Virtual Memory computer (using pages, not segments) used drums as swap space.

    2. Note the small text on the first cover: “Microcomputer Edition”
      Presumably, the original was pre-microcomputer.

      One of my first exposures to computers was a TI Silent 700 terminal with acoustic coupler attached over the phone to a Honeywell mini at the local university. It was mesmerizing playing Star Trek at 300 baud.

    3. David Ahl worked for DEC, in some educational program. So the games came from that, I can’t remember if the first book was published by DEC, or if it was Ahl’s side project.

      He also tried to convince them to make a smaller PDP-8, he definitely got a prototype built, which wouid fit classroom situations and budget, but the company declined.

      So Ahl left DEC, and started “Creative Computing” in October 1974, which barely precedes the Altair 8800. So it started out aimed at that BASIC on a minicomputer educational market, but if course added microcomputers after a while.

      Let’s not forget that the People’s Computer Company started in San Francisco some time before the Altair, a newsletter but also a storefront with TTY machibes (and I assume a remote tineshare computer). They too promoted BASIC as the way to start programming, and of course once the Altair arrived, decided it needed a TinyBASIC.

      Circa 1974, my high school had some sort of comouter program, I know there was a TTY machine, but I don’t know what they were doing, or the language. The schoolboard had a mainframe, I assume that was the computer.

    4. Thanks for all the interesting replies. To Marc: Yes, I am somewhat surprised by that. I was born in the early-mid 80s, so this is all before my time. Am I wrong to think that the vast majority of schools in the US did not have access to minicomputers, so it would seem that the market for this book was quite small. That said, I find the computing history of that era quite fascinating.

  2. Like Ameyring’s, my copy also says “First printing January 1978”. And it has a different cover from that shown above – a robot playing cards, dice, basketball, and such-like.

    My “More…” is “First printing June 1979”. With a cooler dude and computer on the cover. Dedicated: “To people everywhere who look back and wonder how they ever got along without a personal computer…”.

    In those days, If you wanted to sell personal computers, your machines pretty much had to include the Basic these books were guaranteed to work with.

    These books, of course, were written for the most stolen version of Basic. So, that helped a little software outfit that went on to some notoriety.

    1. Wikipedia seems to imply the DEC book was reprinted with another title after microcomputers took off. That sounds right, but I’m not going to dig. “Updated for Microsoft BASIC”.

      But the second book, “More” is obviously games that came after the first, and probably has games written for the microcomputer.

  3. ” inviting people to help update the programs using modern languages.”
    Fist the book is on-line: http://vintage-basic.net/games.html

    I wonder if Arm 64 assembly counts. To learn more about Arm64 assembly (I learn better by doing), I wrote the simple Mugwump game in assembly on an RPI running PI OS 64. Fun exercise to just twiddle the bits. Now that I have a base set of Assembly routines I might tackle another one at some point as it should go a bit faster. Not a portable language by any means, but assembly can be just plain fun to program in! Not really productive … just fun.

    I used to have the books and the Big Book of Games too. Got rid of them several years ago as they were taking up space on the shelf. I must have copied several of the programs in back in high school and college days….. talk about spaghetti code!

    Oh, yeah, I converted one of the Lunar games to a Rust application and it was torture going from spaghetti to structured. It was a way to learn more about Rust though.

  4. OMG

    I have these books. Good fun! and inspiration. I learned a fair bit from those… and the copy of QBASIC that came with DOS 6.22 on my first computer, a hand-me-down 386 from my mother in the mid-1990s. From those, and from the MYST games, which I absolutely adore… I have a determination in me…

    Someday, someday before I die, I will write a text adventure in C64 BASIC. A *proper* one (I wrote one already but let’s just say it’s not one I want to talk about)… and it will be good! I finally have a working C64 now, so I have one fewer excuse.

  5. I have both of these!

    On a related note, for quite a while now I’ve been looking for an old book of Apple II games I used to check out from the library when I was a kid. It had a Space Invaders clone in it and that book was just about the only Apple programming book that extensively used sprites in its programs. But I don’t remember the title. I think the cover was yellow, but my memory of it has grown hazy. Anybody know what this book was?

    1. Google images for ‘apple games book’ comes up with ‘Apple Fun’ from 1984 which has a yellow cover. I spent a whole thirty seconds looking but didn’t see much else.

  6. Wow! I have those two books right in front of me now! Anytime I want to learn a new programming language, I start with books like these where I have already experienced creating hundreds of programs.

    Back in 1978 I had the first store selling Apple II and Commodore PET computers in my area. I created some of these programs for demos. At one business exposition, my version of “Eliza” was so popular, people got addicted to it and wouldn’t get off the computer to share with other people! (“Eliza” is in book two. It was a remake of a program called “Doctor” that was originally written in LISP as an early attempt at demonstrating Artificial Intelligence. These days, the concept is called “chatbots”. I’ve made hundreds of versions of this concept over the years, and I’m surprised that there hasn’t been better advancement in capability and content.)

  7. One thing I wish these books had included: How to go about SOLVING the problems that lead to creating the programs. Take “Maze” for instance: Once you actually create the program from the listing it is easy enough to figure out what is going on. What would have been really useful to programmers was an instruction that said, “Lets create a program that draws a maze. The first problem you have to overcome is what? and what is your plan to overcome that problem?”

    I mention this because I learned to program in the Army using “Programmed Instruction” courses from IBM, and those textbooks actually taught me how to think about creating a program from scratch. I think an opportunity was missed in the late ’70s by not producing materials suitable for teaching the real skills behind problem-solving and designing a program to execute the solutions.

  8. I have a copy of “More”, only a couple of games were ever keyed in from it however, as I had a VIC-20, and most of the games are too big for its memory. (3.5k)

    I still pull the book off the shelf occasionally and flip through the games, the core ideas for some stuff have value as seeds for games which could still be popular today. (Add graphics to the driving games for instance)

  9. About 15 years ago (I actually checked the file date!) I wrote a C version of the Star Trek game. The main problem of course was that the high-level program flow was unstructured. It would happily GOTO from one block of code to another to end the game. I had to add a global game state variable to tell the game logic when you had won or lost a game, which would get checked after the current command finished.

    Also the INPUT statement was another suprising trouble spot. I had to add a line input function and then more functions to parse it for one or two ints, or a float. BASIC was good about free-form stuff like that.

    1. Oh man, Deer Lodge library had the first edition, and it was great for a beginner programmer like me. Though it did take some patience to convert it to work in MS qbasic. I did get the checkers program to work, but never got around to getting the maze generator ported.
      Wish I could have been there when they had their yearly book sales, I’m sure that poor book ended up in a dumpster, as no one but a nerd like me would’ve cared about it in the year 2000.

  10. BASIC was and still is a fantastic language for all sorts of projects. I remember playing Super Star Trek on an HP minicomputer over an acoustic coupler and modem. You can still program your computer in BASIC. There are several modern versions being maintained, just as easy and fun as the original but with more bells and whistles. Take a look at Liberty BASIC for example.

  11. Not only do I remember those, I still have them! Those were some of my earliest computer books when I was a kid.

    I have to ask, though:

    “Regardless of language, if I were using these with a student, I might be tempted to make them type the programs in by hand. They’d probably revolt against the idea, but it might be good training. ”

    Maybe things have changed since I was programming, but aren’t programs keyed in by hand as you write them? Why would a programming student balk at that idea? Have things really gotten that bad out there?

  12. BASIC Computer Games

    https://en.wikipedia.org/wiki/BASIC_Computer_Games

    Around 1971, Ahl ported two popular early mainframe games from DEC’s FOCAL language to BASIC: Hamurabi and Lunar Lander. He published the BASIC versions in DEC’s educational newsletter, EDU, which he edited. Their popularity was such that he called for more submissions for future editions of the newsletter, and quickly gathered many, with a considerable group of them coming from high school students. The wide availability of BASIC on various platforms, notably the Data General Nova and HP 2100 series, led to considerable porting effort to and from the DEC platform.

    In 1974 Ahl left DEC to start Creative Computing magazine. He re-acquired the rights to the book from DEC and re-published under the name BASIC Computer Games.

  13. I had not heard of this book, but it reminded me of a favourite of mind “Land of Lisp” by Conrad Barski. It was about learning lisp by programming a series of simple games.

    Very much recommended.

  14. I remember running these on a VZ200 little home computer, Z80 (clocked at 4.58MHz to use the same xtal for PAL chroma, with 8k RAM, expandable with a 16kB plug-in module) I was very annoyed that the distributor (Dick Smith, think Oz Radio Shack) wouldn’t buy my graphical, self-playing Othello game because someone had already sold them a version. It was typed in directly from this book, except that it had a typo that made it crash if a null entry was made!

  15. I actually did some porting from these books around 1998/1999. Ported them over to VB and then VB.Net. Brought back a lot of memories from when I first typed those programs into a TI-99/4A then an Atari 800XL back in the mid 80’s. It was a learning experience and a whole lot of fun.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.