As I unboxed things I came across an ancient paper scroll. It was yellowed, both from age and because the initial color of he paper was yellow. It was fragile, not quite to the point of crumbling to dust when touched, but it tore easily.
I was careful in handling it, setting it aside until I made time to examine it more closely.
Later, I took the scroll to my desk. It had torn in the middle of the upper edge and as I tried to unroll it, the tear kept going. I found some tape and taped it together to keep he whole scroll from being torn in two.
As I unrolled it, I saw a strange arcane language, one not spoken for quite some time. It was a little hard to read as some of the ink had faded and the font was difficult to make out.
As I looked at it, a smile spread across my face. I knew what this was.
I held in my hands the source code for a text game of Star Trek using ASCII graphics.
This is a piece of computing history. It was one of the first games using text only and printed out a ‘board’ using ASCII characters to represent the Enterprise, starbases, and Klingon ships. It was written in the BASIC computer, meaning if you could get the source code, you could read it, understand it, and modify it if you had the skills. Most programs back then were written in assembly language, which was hard to read, hard to use, and had to be compiled (i.e. run through an interpreter so it could be written in ones and zeroes the computer could understand.)
Way back in the days of my youth, I took computer programming in high school. This was just at the beginning of the personal computer age. We had terminals that printed out your programs and the results on long scrolls of yellow paper. There were two games available on the mainframe our school used – Adventure and Star Trek. Adventure was a big complex text game and we couldn’t get the source code for it, but Star Trek … that one we could.
It was a simple game. You played the Starship Enterprise. There were simple commands for movement, scanning for Klingons, firing photon torpedoes and phasers. You had to watch out to not use all your energy or you’d be left dead in space. You could dock at a starbase and refuel. It was fun and we’d quickly work through our class assignments so we could have time to play Star Trek.
It was that code, written in BASIC, which fired my desire to learn programming. I saved my money and got a TRS-80, Model 1 which had a whopping 16k of memory and a 300 baud modem for connecting to other computers. You could get a module that would increase the memory capacity to 32K. Looking back I’m shocked we were able to write programs that would actually do something in just 16K of RAM (random access memory).
A friend of mine downloaded the code and modified it adding a few printouts and corrections to the code. That is the version I have. It is interesting trying to read the code, which I knew pretty well at one time. I can make out parts of it and I can guess at a few parts. Back in the day no one used long variable names to describe what the variables represented, they just used I or X or JG. Memory was at a premium and writing out a variable like EnergyLevel took up space. Take up too much space and you don’t have enough room to finish your program, let alone run it.
I find it funny in sci-fi shows when the future engineers can come back and look at something like BASIC code and immediately know what it is, how it works and what the code is supposed to do. Almost 50 years later and I’m having some trouble reading a language I knew fairly well. Take a high school kid today, give them the same code and I wonder if they’d have any clue about what it is doing.
I’m going to type it into my computer to save it for posterity. I can probably find a BASIC emulator to run it. More than likely I’ll convert it over to Python. Then I can have a little fun commanding the Starship Enterprise one more time.
If you’d like to support my efforts, why not buy me a chocolate chip cookie through my Ko-Fi page? https://ko-fi.com/jhusum