pic pic pic
pic pic Astrocade Machine Language Source Code pic
pic  
Machine Language Source code for various programs, mostly cartridges are
available here.  Some of the material is scanned, but a good portion of it has
been retyped and is ready to be assembled.  Also, some of it has been dis-
assembled and commented.  If you're a machine language programmer, then there
is a WEALTH of material here:
1) 300 to 2000 BAUD Loader, (Scanned, PDF)

2) 300 to 2000 BAUD Loader, (Ready to Assemble)

300 to 2000 BAUD Loader Utility Program

     This program loads audio tapes generated by the old version of BALLY BASIC into the New and Improved version of AstroBASIC. This is the source code for the BASIC program that is included in the AstroBASIC manual. This program will NOT run as a cartridge.

Amazing Maze / Tic-Tac-Toe
Amazing Maze / Tic-Tac-Toe

This cartridge by Bally has been disassembled by Richard Degler.

How many times have you introduced someone to Amazing Maze on your Bally machine, only to hear "What's all that it's doing at the bottom?" before every game. When you say "It's still thinking." they ask "About what??"

Well, now you can show them with a copy of this X-RAY Mazing Maze binary. This modified version of Amazing Maze shows what the computer is thinking about instead of just the scratchpad area where it is working out the mazes.

Now that you can see the maze being generated I've counted several times how many generations of a route it takes for the computer to get one that works. On the "Hard" level I've counted as high as 68 failed routes and as low as four. I did this about six times and the average seemed to be about fifty or so. So perhaps that generation of a good route after four times was a fluke.

Give this program a try-- it's pretty neat to know what is going on behind-the-scenes of the maze while it is being created.

Also modified slightly is the Tic-Tac-Toe game using circles (there's now actually two different shapes) instead of re-using the square selector...

As you can see from the game logic AI, it knows it needs to block or win when there are two of a kind in a row, but besides that it's just random.

1) Astro Battle (Ready to Assemble)


Astro Battle Game Cartridge

Disassembly begun Aug. 1, 2011 by Adam Trionfo
Preliminary Release-- This disassembly is NOT considered finished and it may contain errors. This is being released so that those who are curious can take a look at it.

1) Table of contents / Assembly Header File
2) ROM (Subroutines, Character Set, et. all)
3) ROM (Cross-reference)
4) Scribbling (Assembly Listing)
5) Scribbling (Cross-reference)
6) Calculator (Assembly Listing)
7) Calculator (Cross-reference)
8) Checkmate (Assembly Listing)
9) Checkmate (Cross-reference)
10) Gunfight (Assembly Listing)
11) Gunfight (Cross-reference)

12) Bally ROM Source, (Gold Standard)
13) Bally ROM Source, (Archive Version)

Astrocade On-Board ROM

This is the Bally ROM scans from the "Nutting Manual" and the code in ready-to-assemble format. It includes the source for the 4K of System ROM, and the other 4K contain Checkmate, Calculator, Gun Fight and Scribble.

The scans of the manual are not needed anymore now that the source-code has been retyped. It is for archival and reference purposes. The "archive" version of the source code assembles to the 8K Bally On-board ROM. It matches EXACTLY with the 3159 version. This version matches VERY closely with the scanned "Nutting Manual" source code, so it is being kept for reference.

The "gold standard" version, created and updated by Richard Degler, is the updated assembly source code for ALL THREE versions of the Bally System BIOS. It can be used to recreate any version of the on-board ROMs. By changing the EQUate 0,1s in the first block marked with "###"'s you can conditionally generate either the WHITE.bin or ASTRO.bin (a.k.a BIOS3159.BIN) both known as "OVER" ROMs, in addition to version 0 BALLY.bin (BIOS3164.BIN or "GAME OVER") from the same source code.

To understand the differences between these various versions of the On-Board ROMs, there are two different documents to read:

1) Astrocade BIOS Changes Between the On-Board ROMs
By Richard Degler - (January 10, 2010) This article covers what was changed between the three Bally / Astrocade System ROMS. This complements the "Astrocade BIOS Comparision FAQ, below.

2)Astrocade BIOS Comparision FAQ
By Adam Trionfo - (July 30, 2006) This is a comparison of the first two Astrocade BIOS that were dumped. These two ROM BIOS have nicknames: 3159 ROM and White ROM. There are forty-one bytes that are different between the two. They are listed here with brief comments followed by excerpts from the 3159 ROM Listing to give greater detail.

Balcheck 1.0, (Ready to Assemble)

Balcheck 1.1, (With Comments)

Balcheck

This source code is for use with the BalCheck hardware. There is conditional assembly so that it will assemble for the 3159 or the 3164 ROM. Two versions are available. The regular one, plus one that has a thouroughly commented memory test section by David Turner.

Bally BASIC Demo Cartridge
Bally BASIC Demo Cartridge

Disassembled by Richard Degler in March of 2010. This archive contains the assembly source code for the BASIC Demo cart, information regarding the changes made to the BASIC in the cart, a listing of the BASIC program in the Demo cart and an explanation of Ken Lill's experiments getting the BASIC program to run in Blue Ram BASIC.

Bally Demo Cartridge, (Ready to Assemble)

Bally Demo Cartridge, (PDF)

Bally Demo Cartridge

This cartridge demos the capabilities of the Bally / Astrocade. This is also known, sometimes, as the Dealer Demo.

1) AstroBASIC (Scan from 80-Column Paper)

2) AstroBASIC (Original file From Jamie Fenton's disk)

3) AstroBASIC (PDF on simulated 14"x11" paper size)

3) AstroBASIC, (Gold Standard)

4) AstroBASIC, (Archive Purposes)

BASIC, AstroBASIC

Although this Decemeber 1980 assembly listing is labeled as "Bally BASIC," this source code listing actually matches byte-for-byte with the released version of AstroBASIC. AstroBASIC is the version of BASIC that has the tape input/output port included in the cartridge.

There are various versions of this listing available. They are:
  1. AstroBASIC (Scan from 80-column paper) - The scanned version of AstroBASIC was printed on 8 1/2" x 11" paper in the 1980's. The line-width of the printed file was 120 columns, so anything over 80 characters printed at the beginning of the same line at position one. Very strange looking.

  2. AstroBASIC (From Jamie Fenton's Disk) - Al Kossow from bitsavers.org sent me this 64-page AstroBASIC assembly listing on June 1, 2011. This was taken from Jamie Fenton's original December 1980 file from her original disks. The column width is 120, so make sure to turn off word-wrap to see this properly.

  3. AstroBASIC (From Jamie Fenton's Disk) - This is a pdf created using Jamie's original file. This pdf can be printed on 8 1/2" x 11" paper in landscape format and it preserves the 64-page format. The font may be pretty small though. You may need to "scale to page" when you print as not to lose anything outside of your printer's margins.

  4. "Gold Standard" Version - This source code was updated by Richard Degler for ease of reading and use. He added additional comments where he could. This is the version that you want to download and actually use.

  5. "Archive" Version - This source code was retyped from the PDF version and changed to standard Z-80 mnemonics (the original mnemonics were VERY different). This version most closely matches the original source-code, though consider this for use for archival purposes only.
Bally BASIC, (Scanned, PDF)
Bally BASIC, (Ready to Assemble)

BASIC, Bally BASIC

The PDF version was supplied by Brett Bilbrey. The version that can be assembled was created from scratch by Richard Degler using the AstroBASIC source-code as a model. He added additional comments where he could.

Blue Ram Keyboard Driver Disassembly
Blue Ram Keyboard Driver Disassembly

Richard Degler extracted the BALLY Basic keyboard driver for using the Blue Ram Keybaord from here.

This disassembly is quite extensive and, like all of Richard's disassembly work, is very well commented. Included in this archive are: KEYBOARD.PRG (the tape contents - not really a program but direct commands), KEYBOARD.TXT (the raw Basic listing with a data block in the middle), and KEYBOARD.ASM (the disassembly of the driver itself).

Most of the machine code was the same as in Blue Ram Basic 1.1 so I already had that commented. Also included the Basic text listing (commented) and a Key Map.

Chicken! Chicken!
The Bit Fiddlers, 1982.
Disassembly, Richard Degler, August 2013.

     It's late... you've got to get your brood home in time to watch "Fowl Play." The only problem... there's six lanes of freeway between you and home. And every day it seems to get worse...

     CHICKEN! is a one or two player game of skill. It pits each player against six lanes of highway of ever increasing traffic density. The object, of course, is to get your chickens across the road.

     This is Richard Degler's disassembly of the Bit Fiddler's "Chicken (The Bit Fiddlers).bin." This game originally loaded via Bally BASIC, AstroBASIC or the "Machine Language Manager." This version of the binary will run as a cartridge.

Color BASIC, (Ready to Assemble)
BASIC, Color BASIC

This version of BASIC was never released for the Astrocade-- it exists as an archived prototype only. This version of the source code was created from scratch by Richard Degler using the AstroBASIC source-code as a model. He added additional comments where he could.

Brickyard / Clowns, (Ready to Assemble)
Brickyard / Clowns

Brickyard / Clowns - Videocade #2004
Programmed by Bob Ogdon, Audio by Scot Norris
Bally Mfg. Corp. - Action/Skills Series
Released 1978

Cartridge Disassembly begun in 2011 by Adam Trionfo.

Dogpatch (2008, Complete Disassembly)

Dogpatch (2003, Incomplete Disassembly)

Dog Patch

A complete disassembly of the Astrocade cartridge Dogpatch. Originally worked on by Adam Trionfo in 2003 and left in an incomplete state. In 2008 Richard Degler took the source-code and finished the disassembly. Both versions have been left online for comparison purposes.

Football (Scan of Original Source)

Football (Retyped, Ready for Assembly)

Football

This is the source for the Bally / Astrocade cartridge. The retyped source code matches byte-for-byte with the released cartridge.

1) Fawn Dungeon, (Scanned PDF)

2) Fawn Dungeon, (Ready to Assemble)

Fawn Dungeon

This is an incomplete machine language game written by Barry McCleave. The player in this D&D-type game can wander around a maze, but there are no monsters. This is an interesting piece of what might have become something interesting. As it stands, it is little more than a programming exercise.

The scanned pdf is an early version of the source code (August 10, 1981) for the Astrocade prototype "Fawn Dungeon." It has some handwritten notes. This 16-page version of the program does not work (the cowboy does not come onto the screen). Using this source-code and the final version of the working prototype, a completed sourcecode was created that assembles EXACTLY as the finished binary version.

Barry was in communication with Bob Fabris (the Arcadian newsletter editor) while he was creating and revising his code. Bob had at least two revisions of "Fawn Dungeon" written code, as well as two EPROMs with different versions of the binary on it. Included below are some letters and EARLY code that Barry sent to Bob.

Here, Barry is toying with the idea of writing a "Dungeon's and Dragons" game and he thanks Bob for sending him much-needed information on how to program the Bally Arcade in machine language.

Letter from Barry McCleave to Bob Fabris (Letter 01) - PDF Version
Letter from Barry McCleave to Bob Fabris (Letter 01) - Text Version

Letter from Barry McCleave to Bob Fabris (Letter 02) - PDF Version
Letter from Barry McCleave to Bob Fabris (Letter 02) - Text Version

Here is the first round of coarse code (which here is considered an alpha version). This was included with Barry's second letter. This code is extremely early, crude and handwritten. Bob's copy was a photocopy from Barry and this scan of it is barely legible.

Fawn Dungeon (Alpa Code)

In his Barry's second letter, he alludes to how to modify a board for an EPROM. He included this hardware and directions for Bob:

Modification for 2716 EPROM

It is clear that Bob didn't understand everything that Barry was talking about, and so he wrote a letter to someone named "Al" and some or all of what Barry had sent to him to this presumable Bally Arcade guru:

Letter from Bob to Al

Finally, a schematic was found along with all this paperwork, but it isn't clear if this was originally included with everything:

Schematics (not sure if these are related to Fawn Dungeon)
1) Goldfish Demo (Scanned)
     PDF

2) Goldfish Demo (Version 1.01)
     Ready to assemble. Will NOT run as a cartridge.

3) Goldfish Demo (Versions 1.1-1.4)
     Zipped archive of three assembly files and one binary file. These WILL run as a cartridge.


Goldfish Demo

Goldfish Demo 1.0 is for the Bally Astrocade game console and the Machine Language Manager cartridge. It won't run unless it is loaded from tape into Machine Language Manager. The program is meant to reside at memory location $4B40.

In January 2008, Lance F. Squire converted the Goldfish Demo to run as a cartridge. The binary for version 1.1 and the source-code for versions 1.2-1.4 are included in one archive. Version 1.4 is the finished product; it runs perfectly.

ICBM Attack
ICBM Attack
1982
Disassembly, Version .03 (July 29, 2013)

     "ICBM Attack" was released in 1982 by Spectre Systems. It was designed and programmed by Brett Bilbrey. The sound is by Marion Nelepa.

     "ICBM Attack" requires a special analog hand controller to play - it can not be played without it.

Incredible Wizard, The
Incredible Wizard, The
1982
Disassembly, Version .04 (July 26, 2013)

     This is a disassembly of the "Wizard of Wor" clone for the Astrocade called "The Incredible Wizard." This disassembly was begun in November 2011 and has been worked on in fits and starts over the last few years. There is plenty of work that needs to be done, but this is a healthy beginning.

     The last version of "The Incredible Wizard" disassembly (version .03) is available for reference or comparison purposes:

     "The Incredible Wizard" Disassembly - Version .03 (Sept. 8, 2012)

Light Pen Sampler
Light Pen Sampler

Light pen machine code extracted from "Light Pen Sampler" basic tape maybe written by Craig J Anderson for H.A.R.D.. Reverse-engineered by Richard C Degler on March 3, 2010.

Machine Music Demo
Machine Music Demo
By Brett Bilbrey
Source: Hand-written Bally BASIC Listing

The Machine language portion of the code was disassembled by Richard C Degler on October 16, 2011.

The zipped archive contains the following programs:
  1. HVGLIB.H - The header file needed to use the ZMac assembler to assemble the source file.
  2. Machine Music Demo.asm - The Z80 source file disassembled by Richard Degler.
  3. Machine Music Demo.bin - The binary file created by the assembly file. The file is NOT executable.
  4. Machine Music Demo.lst - The assembly listing file created by ZMac.
  5. Machine_Music_Demo.pdf - This is the original scan of Brett Bilbrey's Bally BASIC program. It is not easy to read, but all the information is there if you're a determined reader.
1) Machine Language Manager, (Scanned PDF)

2) Machine Language Manager, (Ready to Assemble)

Machine Language Manager

This is the source code the for Bally / Astrocade cartridge. It is available in both scanned format and a ready to assemble document.

1) Muncher, (Disassembly, Text-- Ready to Assemble)

2) Muncher, (Scanned PDF)(Grayscale)

3) Muncher, (Scanned PDF)(B&W)

4) Muncher (Pac-Man) 8K Hex Listing


Muncher (Pac-Man)

     This is a disassembly of the "Muncher" cartridge that was done in the early 1980's. This seems to be the disassembly of Astrocade's "Pacman." The word "PAC-MAN" used for the system's on-board menu has been scratched out with pen and rewritten as "MUNCHER." I'm not sure if there are any differences in the rest of the code-- it is possible.

     The disassembly is 98-pages long with sparse comments. Since the scan is grayscale, the filesize is 43.5MB-- this is a large file. There is a smaller B&W version that is a about 5MB. For a quick look at the disassembly, or to print it, the B&W version is probably the better choice.

     Also included here, in a separate archive, is the 8K hex listing for "Muncher (Pac-Man)."

RAM Test, (Scanned PDF)
RAM Test (Generic Z-80 Source Code)

A five-page scan from Z80 Assembly Language Subroutines by Lance A. Leventhal and Winthrop Saville. This is a generic Z80 routine to perform a RAM test.

Seawolf/Missile (Disassembly)
Seawolf/Missile

This is a disassembly of the Bally / Astrocade cartridge "Seawolf/Missile" (Videocade #2002). This game was programmed by Rick Spiece and released in 1977.

This partial disassembly was started by Adam Trionfo in 2011. The binary output matches byte-for-byte with original cartridge release. Although only one day was spent working with this file, a respectable amount of work was done and it seems worth sharing.

Songs, (Ready to Assemble)
Songs

This Bally / Astrocade cartridge has been attributed to Scot Norris. This cartridge has been disassembled by Richard Degler. Two versions are included in the zip archive:

1) SONGS.ASM - Version 1.2 - Note Values changed to names found in "Music.lib"

2) SONGS.z80 - Version 1.1 - Note Values only

The source code is about 35 pages.

Space Fortress (Ready to Assemble)
Space Fortress

This Bally / Astrocade cartridge was programmed by Bob Odgon. This cartridge has been disassembled by Adam Trionfo. Currently most of the graphics have been found and much of the program has been disassembled, but only a small portion of it has been commented.

Space Invaders (Prototype)
Space Invaders (Prototype)

This prototype game has been disassembled by Richard Degler. The prototype is 2K compared to the released version which is 4K.

Comments from Richard made on June 15, 2014:

"Counting two additional blocks of unused data/code, the total is 1100 bytes remaining in the released version. In the DEMO prototype, only THREE Invader bombs are active at the same time, and they do share the Player's straight shot pattern. The LEVEL is handled as if it were limited to 1 - 4 just missing the descriptions, and the Invaders are taller, resulting in the flickering feet of the middle rows. The UFO comes out slightly less often, but the scoring is still RANDOM 1- to 3- hundred points per hit, without displaying it next to the (missing) explosion."

1. Star Battle, (Ready to Assemble)

2. Star Battle, (PDF)

Star Battle

This source code is for the Bally cartridge "Star Battle." The cartridge has been disassembled by, possibly, Tom Woods in 1979. As it was included in the Bob Fabris collection without any notes to who actually did it, it is impossible to know for sure. The source code, including cross-reference and an opcode listing, is 30 pages.

In December 2011 the "Star Battle" ROM was disassembled and is available in text format. It is ready to assemble and will match 100% with the cartridge ROM. The cartridge was disassembled from scratch and it was only after it was nearly finished that the PDF version of the disassembly was consulted. The text version is probably the preferred version for many people, but the PDF does have some additional comments to offer.

Stranded on Rigel 5 (Text Assembly File)
Stranded on Rigel 5

This Bally BASIC program is from ARCADIAN, 4, no. 7 (May 7, 1982): 72-73. It has some machine language routines in it and Richard Degler disassembled these routines. The information that he gleaned from his investigation was used to create a quite extraordinary assembly file. This file will NOT assemble into the original program in any way, but it gives SO much information about how "Stranded on Rigel 5" works.

STWEEK, (Disassembly and More)
Stweek (Sound Tweeker)

Stweek was never officially released. Word has it that Scot Norris used this for programming sound for the DNA (BALLY) carts. This is a very commented disassembly by Richard Degler. This 23 page zip includes:

1) STWEEK Manual - Written by Richard Degler
2) STWEEK.asm - A complete disassembly of Stweek
3) Stweek_Discussion.txt - Posting compilation between Richard and Adam Trionfo.
4) Two songs that can be loaded in MESS.

Treasure Cove (Complete) - Text.

Treasure Cove (Preliminary)- Text.

Treasure Cove (Preliminary) - Scanned PDF

Treasure Cove

The "complete" source code is a disassembly of the "Treasure Code" game based on the "preliminary" version. This version matches 100% with the game ROM.

The "preliminary" version is the 27 pages of source code for Treasure Cove, as supplied by Brett Bilbrey, the programmer of the cartridge. This preliminary version is not the final version (that source code is not available). The preliminary source code has been retyped and is available in a text version, but it will NOT run (see the file for details).

Video Storybook (Partial Disassembly)
Video Storybook

Richard Degler finished disassembling the Astrocade unreleased cartridge "Video Storybook" as far as he plans to take it. There are still a lot of Variables and Routines that are left unidentified, but someone filled up an entire 8K ROM with some pretty twisted code, leaving only 132 bytes at the end.

Wizard of Wor
Wizard of Wor (Arcade Game)

This is 373 pages of source code in assembly language for the arcade game Wizard of Wor. This is not the cartridge version of the game for the Bally / Astrocade.

pic
pic pic pic