Retrochallenge, Retrochallenge 2016/01

Retrochallenge 2016/01: Post 4

(This is part four of the chronicle of my Retrochallenge 2016/01 submission, which is to port some classic Star Trek text games to the Mattel Aquarius. To jump to the beginning, go here.)

STTR1’s Gone Gold

STTR1_cassette.jpg
STTR1 cassette case

The straight port of STTR1 for the Aquarius is nearing completion. These were the tasks on my TODO list:

  1. Finalize the code
  2. Create a Git repository for the files that will be publicly shared
  3. Record STTR1 to a cassette tape
  4. (Finally) run STTR1 on a real Aquarius
  5. Create & print artwork for the cassette case

Finalize the Code

I’m trying to keep the target platform an Aquarius with a 16K RAM extension, even in emulation. One of the files I’ll be including in the distribution is a ROM (.bin file) image. This  will allow easier loading on emulators or perhaps one day the file can be included with a multi-cart. To accomplish this, I used the modern hack Bootloader BASIC v2.1 (or BLBasic) found on the Atariage forums. This is an enhanced version of Aquarius Extended BASIC that, among other things, will create a ready-to-run binary version of a BASIC program. The clever trick exploits the fact that Virtual Aquarius emulator redirects printer output to a text file on the host computer. BLBasic re-purposes the LDUMP command to instead export a binary version of a BASIC program to the host computer via the emulated Aquarius printer port.

However I was seeing some strange behavior emanating  from the .bin version of STTR1 while using MESS. It could be that MESS is not correctly emulating the Aquarius, or perhaps the STTR1 code along with whatever runtime is needed by BLBasic was hitting the upper bounds of the available memory.

So I’ve trimmed the memory footprint of the STTR1 code on the Aquarius by:

  1. Consolidating multiple lines of HP Time-Shared BASIC to a single line using the “:” command separator. HP must’ve allowed strictly one command per line number in its Time-Shared BASIC because the original code never strays from that.
  2. Trimming REM statements when HP added the program to their Contributed Program Library.

Consolidating commands introduced many new bugs because I inevitably removed a line number that was referenced somewhere else by a GOTO.  I became very familiar with the “UL” error.

UL UNDEFINED LINE. Attemp-
ted branch to a line that is not in
memory, or deletion of a non-
existent line.

Create a Git Repository

Nothing too interesting . I’ve been using bitbucket.org for no particular reason. I know all the cool kids are hanging out at github, but I’m too lazy to migrate. So far, I’ve uploaded:

  • the text of the BASIC source
  • a .CAQ file (cassette file format for Virtual Aquarius)
  • and the a .BIN file created by Bootloader BASIC.

The repository is here.

Record STTR1 to a Cassette Tape

STTR1_Recorder
Recording STTR1 WAV file to Cassette Tape using a GE 3-5015C Tape Recorder

In the Virtual Aquarius emulator, you can run the CSAVE command and it will export a .CAQ data file to your PC. Included in the tools sub-directory of the emulator is a program called CAQ2WAV.EXE. This Windows application will convert a .CAQ to a .WAV audio file.

I used Audacity to play the .WAV file to this gorgeous c.1986 General Electric 3-5015C tape recorder connected to the laptop’s audio output. Moved the tape over to the Aquarius’s Data Record and CLOAD’ed the muther in.

For all the stink eye that cassettes get, let me say that this all worked on the first try. Sure it takes 4m30s but that’s time to meditate – or run a very good mile.

STTR1_Aquarius_Loading
Red DATA Light means life is good

(Finally) Play STTR1 on a Real Aquarius

STTR1_Aquarius_Instr
STTR1 Instructions being printed to screen

The game plays well on the Aquarius. I even love the keyboard. The program includes an option to either print the instructions to screen or to the Aquarius’ thermal printer. I almost got weepy seeing that work on the first run.

STTR1_Aquarius_Play1

Create & print artwork for the cassette case

I wanted a nice looking cassette case for STTR1. I looked at some examples of the third-party games sold in the eighties, for example “Chuckman“. And skimmed through episodes of Star Trek: The Only Series on Netflix to find some screen shots of space scenes to grab. After a long night of cutting, pasting, rotating, blurring, and undoing, I came up with something I like. Even has liner notes.

I’ll include this as a PDF or PNG in the repository.

STTR1_Case.png

Up Next

My original plan was to also port Super Star Trek. Alas that one may have to wait for a future Retrochallenge. Instead I want to add color, sound, and maybe even extremely crude graphics to STTR1, making it what? STTR2?


 

Advertisements