This article is based on two email exchanges between Jamie Fenton (formally known a Jay Fenton), the creator of Bally BASIC, and myself. It is my hope that the information here will persuade a programmer to further investigate and attempt to create an Astrocade equivalent of the excellent utility for the Atari 2600, Makewav.
There have been discussions lately at rec.games.video.classic about creating a program that will convert binary files into WAV files that can then be loaded into the Astrocade via Astro BASIC or Blue Ram BASIC (both would require some form of RAM expander). Since Makewav does this already for the Supercharger (on the Atari 2600), it certainly seems like an attainable goal. For the duration of this article I will refer to this theoretical equivalent of Makewav as Astrowav
Such a program would be useful for a few reasons:
It will allow cartridges converted to WAV files to be loaded (and used) on the Blue Ram (and other compatible RAM devices). This was a common practice years ago, except people used cassettes.
Eager people who want to create new cartridges will have an easy to use platform to develop with.
Archival of cassette programs. These cassette tapes are losing data integrity (and eventually won't load anymore). Such archiving will be achieved by copying cassette tapes to WAV files, then examining them with a program based on Astrowav that will remove hiss and make the WAV files "stable."
There is no current development, at least not publicly, for the Astrocade. Before this area can mature, Astrowav must be created. It isn't that new games and demos can't be created for the Astrocade without out it, but the development would become easier. Making easy to use tools available will attract people to the Astrocade, just as it has for all the classic platforms.
It seems to me that among the pool of talented people who read rec.games.video.classic (or some other newsgroup), there might be someone willing to tackle this project. I am trying to gather the needed information for Astrowav so that I can post it on my web site (http://www.ballyalley.com) and let people know about it where it will do the most good: the Internet.
I contacted Jamie Fenton hoping that she might be able to provide documentation on the format used to save and load files via the BASIC interface (at 2000 baud and perhaps even the older 300 baud). If she didn't, then I wondered if she could help me get in contact with some people who might (I'm particularly interested in contacting John Perkins, the man behind Perkins Engineering, maker of the Blue Ram, Blue Ram BASIC and other Astrocade hardware and software).
In reference to the Bally cassette format, she answered, via email, that she "should be able to remember enough about it to reconstruct it."
Here is her advice, edited for presentation:
"I would indeed go get a copy of a tape, turn it into WAV, and then study the results. You would see, in a simple FM modulated format, ASCII with token codes to represent commands.
"I think it was something like a short square wave cycle for 1, long square wave cycle for 0 (or the opposite). One way to proceed would be to use one of the tapes that shipped with the unit that also has source published in the manual. Then you get an ASCII table and look up the first line number. It should start with "10" ASCII, which would be a pattern of 31 30 Hexidecimal or 00110000 00110001 on the tape. By seeing how this all comes across, you will quickly deconstruct the encoding format.
"I have all the sources to Basic, alas on an obsolete disk format (it may be as new as CP/M if we are lucky). I also have a box of old printouts. One of my "to do" items is to get the disks to a media conversion house and open-source everything I can. I would hope to do this for Basic, GORF, Robby Roto, and maybe someday MS. GORF. I just found some videotapes of old Bally tests which I converted from BetaMax I to VHS."
"Good to have RTF files [of the Bally documentation]. Can you put them up on a web site for everyone? I actually did check with Dave Nutting who gave me the green light for this sort of thing. It also gets rid of that annoying red confidential information notice better than the red filters we used to use!"
I have some WAV files of several Astrocade cassettes already. Though nearly twenty years has passed since many of these cassettes were made, I am surprised at how many still load (with enough effort!) after all this time. Though it seems that the ones that I need (ie. the Blue Ram Utility) don't load properly anymore.
I know nothing at all about audio files, so looking at these files does me little good. Jamie's statement of "simple FM modulated format" is something I don't even understand.
I do know what she means by the ASCII and token codes. The Peek and Poke manual gives a lesson about how Bally BASIC stores programs into memory. That is a good thing too, because bytes aren't just "dropped" straight into memory. They are rearranged first (otherwise that 1.8k of memory in Bally BASIC would be even less).
I mentioned to her that my Blue RAM Utility doesn't work, she has hopeful ideas about this too: "I may have a Blue Ram tape or two myself. One could conceivably reconstruct via comparison of multiple copies, or by checking for opcode plausibility for binary data." That would be some job though. Is there someone who is reading this that has The Blue Ram Utility on a cassette that still functions?
So then, is there anyone willing to step up and get fifteen minutes of fame by opening up the future of Astocade development by creating Astrowav? If no one comes forward, I will brush up on my C skills and muddle my way through it-- the going will be slow since I know nothing at all about audio files and my C skills are limited to classroom experience.
Looking ahead, once Astrowav is created, a very convenient follow-up will be another program that allows the user to type in Bally BASIC programs in a PC text-editor and then convert them to a binary file. Such a program, along with Astrowav, would allow a CD-ROM to be created (much in the same vein as Stella Gets a New Brain).
It will be great to have BASIC, GORF, Robby Roto and Ms. GORF become open-source. That sure would give a boost to the Bally community. In the meantime, why don't we all work together to see what we can come up with? Feel free to contact me(firstname.lastname@example.org), as I look forward to hearing from other enthusiastic souls.
-- February 3, 2001