SDS Sigma 7 BASIC in 1971
Another of the early space games, Star Trek would go on to be famous because of it's small demands on the hardware needed to run the game.
The Star Trek story has long been assumed to have started on in 1972 on the HP2000C, written by Mike Mayfield while working at Centerline Engineering. For years this story was passed from hand to hand, encoded in the
REM statements in various versions of David Ahl's famous BASIC games books.
Proving Metcalf's Law once again, Mike Mayfield saw this page and dropped me a letter on Dec 3rd, 2000. It turns out that "the story" is all wrong. That's what makes maintaining this site fun. Take it away Mike!
Back in 1971 I was a senior in high school. My school didn't have any computers, but I had managed to "use" (read "steal") an account on a Sigma 7 at University of California, Irvine. I was trying to teach myself BASIC from a book. At the time there was a program that ran on a vector graphics terminal on the Sigma 7 that was a simple "shoot-em-up" space war game [ed: a port of Spacewar]. I wanted to make a game like that, but I only had access to an ASR-33 Teletype non-video terminal (hey, there is only some much I could "use" in high school).
This was back when Star Trek [ed: the show] was hot. A bunch of my other geek friends from high school and I spent a lot of hours brainstorming what we could do if we didn't have a video terminal. Since I was the only one in the group that had any knowledge of computers (little as it was), we ended up coming up with a lot of unimplementable ideas. One idea that did stick was the idea of printing a galactic map and a star map to give you some idea what to shoot at, and having phasors reduce power exponentially, like they would if they shot in all directions. It may seem pretty simple now, but for a bunch of high school kids in the early seventies, it seemed pretty cool.
The program went through dozens and dozens of iterations, mainly over the summer after we graduated. I didn't have any disk space allocation, so I had to punch a paper tape each day when I finished and load it back in again the next day. Working on a 10 character per second terminal forced me to keep the program small. Otherwise, I probably would have gone crazy adding feature after feature.
Late that summer I bought HP's first programmable calculator, the HP-35. I ended up going down to the local sales office several times for help on the programming. One time they mentioned that I could use their computer if I would convert my Star Trek program to their computer so that they could use it. Since their BASIC variant was so different from the BASIC on the Sigma 7 and the program had gotten pretty messy by then from all the changes, I ended up just doing a rewrite. The program was added to HP's public domain library, which is where Dave Ahl got it.
"Their computer" was an HP 2000C, a system built out of various combinations of CPU's and peripherals which ran BASIC in a time-share basis.
The Sigma 7 was at the end of it's lifespan, so that version of the game simply disappeared into the aether. The HP was a new machine and the version on it became widespread when HP released it in their software catalog. So here we are thirty years later and the only recorded history put it on the HP.
But that left me wondering how the game continues to be associated with "Centerline Engineering and/or Custom Data"...
Centerline Engineering and Custom Data were actually just figments of my imagination. They were possible names for a company I wanted to start, but never did. I was just an 18 year old kid on a stolen computer account driving to UC Irvine on my Sears motorcycle. Can you imagine anything more stereotypical "geek"?
The next important development in the Star Trek history is when David Ahl saw the HP version. David worked at DEC in the education department, and his main job was publishing a newsletter which often included type-in games. He was apparently so impressed with Star Trek that he ported it to DEC BASIC and sent it out in the newsletter. Many of the games from the newsletter were later collected into a DEC book, 101 BASIC Computer Games. Here are some notes from a later version of the book, BASIC Computer Games1.
Many versions of Star Trek have been kicking around various college campuses since the late sixties. I recall playing one at Carnegie-Mellon Univ. in 1967 or 1968, and a very different one at Berkeley [once again, almost certainly versions of Spacewar]. However, these were a far cry from the one written by Mike Mayfield of Centerline Engineering and/or Custom Data. This was written for an HP2000C and completed in October 1972. It became the "standard" Star Trek in February 1973 when it was put in the HP contributed program library and onto a number of HP Data Center machines.
In the summer of 1973, I converted the HP version to BASIC-PLUS for DEC's RSTS-11 compiler and added a few bits and pieces while I was at it. Mary Cole at DEC contributed enormously to this task too. Later that year I published it under the name SPACWR (Space War - in retrospect, an incorrect name) in my book 101 Basic Computer Games. It is difficult today to find an interactive computer installation that does not have one of these versions of Star Trek available.
The history gets a little convoluted at this point, because the 1973 version David ported from Mike's code, and the later versions that became popular are different programs. This wasn't clear to me until after I had completed the first version of this article, when I got a great e–mail from one of the original authors, Bob Leedom. Take it away Bob!
In early 1974 I started staying late at work (at the company formerly known as Westinghouse, now a sector of Northrop Grumman - I'm still there) to play with a Data General Nova 800 that wasn't being used after hours. It was the biggest computer any of us could imagine having available, with 32k words of memory!
My big project was to try to get a game called SPACWR running on the Nova. This had been published in 1973 by Dave Ahl in a book called "101 BASIC Games", and was originally written by Mike Mayfield of Centerline Engineering. It was really the first Star Trek program I'd ever seen, and I was excited about getting it to run. (At that time, Star Trek [the show] had been in cancellation limbo for about six years.) Unfortunately, the program used a foreign version of BASIC, and I had to figure out the (extensive!) string manipulation code and translate it to the Data General BASIC syntax.
After I converted the code to Data General's version of BASIC and got the game running, various friends would come in to play and enjoy it with me - but, as engineers, we were all full of "what if you could do this?" ideas. My buddies would make the suggestions and then disappear, and the next night I'd have a new version available. As it turned out, we very seldom finished a game, because our enjoyment was primarily that of adding new features and trying them out.
As a result, although we kept the two original displays the same (the short-range and long-range scans, covering the current and current-and-surrounding quadrants, respectively), we "improved" nearly everything else about the interface. A few of these are:
- Three-letter commands (NAV, SRS, LRS,...) instead of numbers
- Non-stationary Klingons (if your shot doesn't destroy them, they wake up and move to a new location)
- Damage and status reports by Spock, Scott, Uhura, and others
- Several features having to do with navigation, maneuvering, and fire control
- A beefed up library computer that added:
- a generalized course direction calculator for firing torpedoes and getting to starbases
[as opposed to just in-quadrant torpedo calculations]
- a table of galaxy quadrant names.
The list above is the version that most people have played, and it's the one described below in The Game section.
The last (quadrant-names) bit was invented by me in response to complaints by picky engineers who objected to the galaxy's appearance as an eight-by-eight square, and - even worse - to calling these 64 regions "quadrants". ("If they're quadrants, there should be only four of them!")
So I wrote a little paper that I posted near the computer terminal that began, "Recently, certain critics have professed confusion as to the origin of the 'quadrant' nomenclature used on all standard CG (Cartesian Galactic) maps. Naturally, for anyone with the remotest knowledge of history, no explanation is necessary; however, ...as every schoolboy knows,...".
I had spent a whole evening with a National Geographic star map, picking out interesting names for the regions that in the original game were known by such dull appellations as, "quadrant 3,4". And I got a couple of chuckles from my friends over my reference to the quadrants' being "...designated by ancient 'Roman Numerals' (the origin of which has been lost)."
Eventually, I wrote to a newspaper in Menlo Park, CA that I subscribed to and told them about this improved version of the game. The paper was called People's Computer Company (published from 1972 or so for about six years, originally by Bob Albrecht, in Menlo Park, CA)2, and it was one of the very first periodicals devoted to computing for students and laymen.
David Ahl had just started his Creative Computing magazine. He read my letter in PCC, called me for a copy, and published my version as Super Star Trek in Creative Computing. When his "best of" book came out, there was Super Star Trek again.
101 BASIC Computer Games must have sold all over the world, because for fifteen years after it came out, I got letters from most of the USA, plus England, Australia, and a few other countries. I answered them all, and in several cases struck up ongoing exchanges with some of the correspondents. And now an e-mail message from you. The ripples never seem to cease!
- Mike Mayfield writes Star Trek on the Sigma 7
- He then ports to the HP, and HP distributes it
- David Ahl sees the HP version and ports it to DEC BASIC, and then publishes it in his book of BASIC games
- Bob Leedom sees David's version and writes an upgrade while porting it to the NOVA
- David sees Bob's newer version in the PCC, and publishes it as "Super Star Trek" in later versions of his book
- the latest version of the book is in print right when the home computer revolution takes off
The last point is important. Over a period of two or three years at the end of the 1980's the number of machines running BASIC multiplied on the order of 1000 times. By that time David had left DEC and started the amazing Creative Computing magazine, where he re–published his earlier DEC game in Microsoft BASIC versions as BASIC Computer Games.
The book was a standard in the early 80's, you could find a copy in almost every high school computer lab. Bob's Super Star Trek was the "premier" game in the book., and I ended up playing versions on machines ranging from the PET to an IBM 370 system at UofWaterloo. It became a standard on practically every machine, so much so that when the IBM PC shipped it's version of BASIC included the game on the disk. There was even a version for the Atari 2600 console from Sears Telegames called Stellar Track, this is interesting considering the 2600 had no built-in text capabilities.
Like many of the early games, the original concepts spawned a huge number of clones. David Matuszek and Paul Reynolds took Mike's ideas and wrote a new version in FORTRAN (BASIC is an offshoot of FORTRAN) on DEC machines called UT Super Star Trek, which they distributed via DECUS. Eric Alman (of Sendmail fame) then took the UT version and re-wrote it in C to create BSD Trek.
At my high school a version of Star Trek was very popular on the PET machines we had, but this was a highly modified version that was cleaned up considerably. For instance, the galactic map and the computer library map were combined, which seems natural in retrospect. Although it was lacking some commands it made up for it with greatly improved gameplay, and it also included Romulans with cloaking devices.
Friends of mine attempted to make a more advanced version on the PET that followed the basic Star Trek concept, but showed the world through a animated 2D viewport. The view was in character graphics, periods for stars for instance, and you could move around with the arrow keys. Sadly they finished school before it was completed. The same general process was also used to create the superb Star Raiders.
When the second generation of home computers started appearing in the mid-1980's, a new generation of Star Trek's appeared along with them. They added some form of graphics to the game, typically via a modified character set so the star map had little ship icons instead of
+K+ to represent the Klingons. Versions similar to this can still be found today, my friend Colin recently showed me a great version on the Palm.
There were a number of commercial versions as well, one I played on the ST called Star Fleet 1 which included ship—board issues like damage control on a 2D side view map. This went on to spawn a huge sequel with so many features that the gameplay was destroyed and it was a complete flop.
But the best version of all time was one on the Mac called Rescue. At first I was going to give a short description of the game here, but since then I've decided it's so good it deserves it's own article.
Pilot the Enterprise to victory over an invading force of Klingon warships.
As the name and time frame implies, Super Star Trek is set in the original Star Trek universe. The leadin story starts after the Federation has been invaded by a strike force of Klingon ships. As the captain if the Enterprise you have a fixed time (normally 30 days) in which to destroy the ships. Helping you are a number of Federation starbases, which will repair and rearm the ship. Depending on the difficulty level you select, the number and smarts of the Klingon ships will increase, while the number of friendly starbases and the time you have will decrease.
The portion of the galaxy you're fighting in is divided up into an 8x8 quadrant grid, and each quadrant divided up into an 8x8 sector grid. Locations in the galaxy are given in y,x pairs with 1,1 in the upper left, so if you're at the bottom left of the galactic map, you're at 8,1. Locations within a quadrant are similarly measured, so your complete position requires two pairs of numbers. In addition each quadrant was clustered into a group of quadrants with a given name and number, like "Rigel III", this was just for spice though.
Movement is not grid based, but uses polar coordinates instead. Directions are given in a radial format where 1 points directly to the right, then increases counterclockwise to 9 which is the same as 1. So 3 points straight up, 7 is down. Distances are measured in terms of 1 quadrant, so to move from 8,1 to 7,1 (up one quadrant) you'd move direction 3 and distance 1. Movement within a quadrant is possible with decimal values.
You view the contents of the local quadrant with the command "srs" (Short Range Scan, or SRS). The local quadrant comes up as a 8x8 grid, contents include stars, your ship, Klingon ships, and starbases. A longer range view of area around the ship can be displayed with "lrs", which prints out a short list of a 3x3 map of quadrants, but instead of a map of the contents it instead displays numbers listing the number of Klingons, bases and stars.
The Enterprise is limited primarily by energy. You need to use up energy for practically everything you do, and once it's used up you'll have to run to a starbase for more. Your primary defense is your shields, which are sort of a battery. You charge them up with energy, and can get that energy back if you need it. Every hit you take from the Klingon ship's phasers drain your shields by the amount of the hit, and that energy is lost. In addition, hits from the enemy ships did damage to the various systems on the ship. Repairs would start on these and take some time to complete depending on how damaged the system was.
You have two primary offensive weapons, phasers and photon torpedoes. The former always hits, but drains energy from your ship's reserves, and grows weaker with distance. It's important to use enough energy to penetrate the shields of the Klingon ship at whatever distance. Torpedoes have to be aimed, using the same directions defined above, but if they hit the ship is instantly destroyed. Torpedoes also have the advantage of not taking up any power, but you have a limited supply of them. At higher levels torpedoes become harder to use because the Klingon ships will move after firing, making it harder to correct your aim. Unfortunately they "corrected" for this by adding a calculator for aiming the shots, which I never really liked.
UT Super Star Trek added a number of features, and changed the layout of the map from 8x8 to 10x10 grids. One of the famous additions was 'the thing', which would appear on the SRS as a "?". Every so often The Thing would 'screech' and Spock would say something pithy.
All of these versions are essentially the same in concept however. You fly from quadrant to quadrant looking for, and killing, the Klingon ships, followed by visits to the starbases for refueling and repairs.
I think the history of Star Trek is fascinating. Since most of us have run a copy at one time or another, I felt it was worth the effort to write this article on it.
Star Trek is a page that contains pointers to many versions of the game. One of these is Mike's original version for the HP, which was scanned in from printouts by Takeo Katoh (who received them from Chris).
Classic Computer Game: Star Trek is Chris Nystrom's page on the game, and one of the best I've seen. It includes a ANSI–C port of a later version of Bob Leedom's BASIC source, a rewrite of the same code into ANSI–C (as opposed to a port, this has a different structure as well as a different language) and links to ports of other common versions of the game.
Tom Almy has made an ANSI–C version of Super Star Trek ported directly from the UT SSTrek code. It's similar to BSDTrek in concept but more faithful to the original. He's also added a number of new commands and features gathered from other versions.
Another updated version for the PC is Star Trek for Windows 9x. This version uses windows to display the output of the various commands, so you have a SRS and LRS up at all times for instance. It allows you to register (for money) and receive numerous additional features.
OpenTrek is a port of the original with a greatly updated "3D" interface that runs on Windows95/98 or Linux (both require 3D support). It's open software (GNU licensed) and includes the source code.
MonkeyPlay hosts a nice web conversion of the original (with the original interface, sort of).
Mike Mayfield for appearing out of the blue and filling in that gaping hole in the history.
Bob Leedom for providing a lot of history for the article in one great e–mail.
Chris Nystrom, who provided me with lots of historical detail and plenty of links and pointers.
2) PCC was very influential in the 1970s, publishing both PCC and (later) Dr. Dobb's Journal of Computer Calisthenics and Orthodontia, now known simply as Dr. Dobb's Journal. The PCC started life as the People's Computer Center, a drop–in where people could use terminals to try out computers. One amazing development that came out of there was what seems to be the first BBS. Today the PCC is a non–profit organization dedicated to producing training materials — but their web site is all too corporate and includes nothing on their rich history.
Radio Shack also published a book on BASIC games, and it included a very different version that was sort of a text based Spacewar, but with various messages from Star Trek characters.