280 Zzzap, Dodgem (Disassembly)
280 Zzzap / Dodgem
Partial (Incomplete) Disassembly.
Bally Mfg. Corp.
Programmed by Jay Fenton.
A preliminary Z80 disassembly of the 280 Zzzap / Dodgem cartridge. This is the first release of this code. It is very rough: some of the code has been disassembled and the car graphic pattern has been found. Most code is still not commented.
1) 300 to 2000 BAUD Loader, (Scanned, PDF)|
2) 300 to 2000 BAUD Loader, (Ready to Assemble)
300 to 2000 BAUD Loader
(aka 300 Baud to 2000 Baud Tape Conversion Program)
By Jay Fenton.
This is the Z80 machine language source code for the 300 Baud to 2000 Baud Tape Conversion Program that is included on pages 104-107 of the "AstroBASIC" manual. This program loads 300-Baud audio tapes generated by the old version of Bally BASIC into the New and Improved version of "AstroBASIC," which utilizes 2000-baud recordings. Once a 300-baud program is loaded into "AstroBASIC," it can be saved in 2000-baud format.
This utility is meant to be loaded into "AstroBASIC" using the :RUN command (it will not run as a cartridge).
A ready-to-run version of this program is available:
- 300 Baud to 2000 Baud Tape Conversion Program - This program has been archived in AstroBASIC format.
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
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.
"Arcadian RDOS 1.0"|
By Stu Haigh
This is a CP/M compatible resident Disk Operating System. This code is designed to interface into the Cromemco software system and is provided with an autoload feature that will load track zero, sector zero of Drive A starting at RAM location 0080. Control will then be passed to the just loaded code at location 0080.
The code uses a 5501 as a COM. controller and a 1771 Flex Disk controller. It will support four 5 1/4", or two 5 1/4" and one 9", or two 9" disk drives.
The short letter that Stu wrote to Bob Fabris is available here:
Here are the photocopied datasheets that were included with Stu's RDOS source code.
- Letter (To Bob)(From Stu Aaigh)
- TMS 5501 I/O Controller
- Western Digital FD1771 A/B 01-02 Floppy Disk Formatter/Controller
- Western Digital FD1771 Floppy Disk Formatter/Controller
1) Astro Battle (Ready to Assemble)|
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)
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)
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:
- 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.
- 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.
- 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.
- "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.
- "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.
Blast Droids (Ready to Assemble)
Written by Dan Drescher, and J.P. Curran.
Blast Droids is a 4K cartridge released in 1983.
This disassembly was started November 30, 2016 by Adam Trionfo. Most of the game's graphics have been found, but much of the code has not been disassembled.
Blue Ram Keyboard Driver Disassembly
Blue Ram Keyboard Driver Disassembly
Richard Degler extracted the BALLY Basic keyboard driver for using the Blue Ram Keybaord
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.
Color BASIC, (Ready to Assemble)
BASIC, Color BASIC
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
Cartridge Disassembly begun in 2011 by Adam Trionfo.
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.
Cosmic Raiders (Disassembly)
Partial (Incomplete) Disassembly.
A preliminary Z80 disassembly of the Cosmic Raiders cartridge. This is the second release of this code. It is still very rough, but much more of the code has been disassembled. Many of the graphic patterns have been found. Most code is still not commented. This code is being distributed to get some help/advice on certain aspects of the code.
Crazy Climber (Original Source Code)
Programmed by Michael Garber.
Riff Raff Games.
Released in 2011
This is the complete source code for the homebrew version of Crazy Climber, released by Riff Raff Games in 2011. This game was programmed by Michael Garber. Michael allowed the release of this source code on June 11, 2016. Thanks, Michael!
Dogpatch (2008, Complete Disassembly)|
Dogpatch (2003, Incomplete Disassembly)
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)
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)
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)|
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 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.
Gunfight: A Z80 Instruction by Instruction Breakdown|
Michael Matte, 198x.
In the 1980s, Michael Matte, a passionate Astrocade user, used the Z80 source code listing for the 8K ROM, available in the "Nutting Manual," as a basis for his detailed breakdown of Gunfight. Michael created the breakdown "to provide beginner assembly or machine language programmers an inside look at the game Gunfight. The documentation will reveal how on-board subroutines in the System ROM can be used to execute particular tasks. The 'special routines' listing can be used as a reference source for programming demos or games."
The archive includes Michael Matte's complete, 42-page breakdown of the Astrocade game Gunfight. This breakdown will be most useful if used with the source code for the Bally's 8K system ROM, which is available in the "Nutting Manual."
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
Disassembly, Version .05 (April 22, 2016)
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 versions of The Incredible Wizard disassembly are available for reference or comparison purposes:
- "The Incredible Wizard" Disassembly - Version .04 (July 26, 2013)
- "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:
- HVGLIB.H - The header file needed to use the ZMac assembler to assemble the source file.
- Machine Music Demo.asm - The Z80 source file disassembled by Richard Degler.
- Machine Music Demo.bin - The binary file created by the assembly file. The file is NOT
- Machine Music Demo.lst - The assembly listing file created by ZMac.
- 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
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)."
Palo Alto Tiny BASIC, Version 3|
By Li-Chen Wang.
Article excerpted from PCC's Reference Book of Personal And Home Computing, Edited by Dwight McCabe. 1977. Pages 58-88.
Bally BASIC (and "AstroBASIC") are a superset of the original Palo Alto Tiny BASIC.
This version of Li-Chen Wang's Palo Alto Tiny BASIC will run on either the 8080 or Z-80, and only uses 2K of core memory. It contains a number of nice features including command abbreviations and error messages. At the end of the listing is a cross reference table for symbols used in the program and also the object code for the program. For further information on Tiny BASIC languages, see Dr. Dobb's Journal, Volume 1.
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.
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)
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)
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)
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
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)
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.