This is an expanded post about the General Video Assembler for the Bally Arcade/Astrocade. A just posted a much shorter version of this to the Bally Alley Yahoo Group.
I was going to make a "quick" video review of the Centipede clone, Sneaky Snake. This is the main game cartridge that we're currently playing in the Astrocade High Score Club. It's a 4K game. I wanted to give some background for the game, so I looked into how it was programmed. It was created entirely using an Astrocade with expansion RAM: the source code was created and assembled using the General Video Assembler, a program that was available on tape. Even the Sneak Snake EPROMs were burned using an Astrocade . This intrigued me, so I skimmed the General Video Assembler manual... and then spent some time updating the Dave Ibach area on BallyAlley.com. Silly, Adam, now I probably won't have time to make a video for Sneaky Snake to get bonus points in the Astrocade HSC. Ah, well...
You can read the updated description of the General Video Assembler here:
This is an extended version of what's in the above link (minus the link to the manual):
General Video Assembler.
By General Video (Steve Walter and Dave Ibach).
Arcadian 4, no. 12 (Oct. 07, 1982): 123. (First Advertisement)
Arcadian 5, no. 4 (Feb. 18, 1983): 57. (Review)
Requires: "AstroBASIC" and a minimum of 4K add-On RAM expansion.
This machine language assembler cost $35. Here is an overview of it from an ad in the October 1982 Arcadian:
Speak to your Astrocade in its native language!
- Uses standard Z80 mnemonics
- Has complete editing facilities
- Prints extensive error messages
- Provides symbolic access to BASIC's variables
- Create object programs of unlimited size
- Requires Astrovision BASIC with taping facility and 4K (minimum) of add-on memory switchable between 6K and 2K address ranges (like Blue Ram)
The tape that this assembler was released on looks like this:
The General Video Assembler is made-up of four programs: Collector, Pass I, Pass II and Text Editor. Also included are two sample programs: Flying Witch, and Logo. The software can be downloaded here:
This assembler actually required a keypad overlay that looked like this:
This 16-page manual is quite extensive. Here is the complete first page from the manual. It gives the user an indication of what the program can do on the Astrocade.
Provided in this manual is a comprehensive description of the General Video Assembler for the Z80-based Astrocade. The General Video Assembler includes an editor for preparation of the source program, Pass I and Pass II which translate Z8O source statements into hexadecimal, and the Collector for joining together multiple segments.
An assembler is different from [an interpreter]. Your Astrocade BASIC is [an interpreter]. It can execute a BASIC program directly by a RUN command, translating each BASIC statement before executing it. Consequently a BASIC [interpreter] is very convenient, but also very slow in execution since every statement must be translated before execution.
With an assembler, the source program cannot simply be RUN. It must first be assembled. This is a one-time process, converting source statements to hexadecimal, and is completely finished by the time the object program is CALLed. A change in the source program requires a new assembly. Since no translation goes on during execution, the speed is greatly increased.
It is not the purpose of this manual to teach Z8O machine coding. If you have experience with other assembler languages and understand hexadecimal, and need only a familiarity with the processor architecture and instructions, then you can get by with the Z80 Instruction Handbook by Nat Wadsworth (SCELBI Publications, 1978, about $6). Otherwise, get a more comprehensive textbook, like Programming the Z80 by Rodney Zaks (Sybex, 1980, about $12).
An Astrocade game computer, Astrocade BASIC with taping facilities and add-on memory is required. The add-on memory must be at least 4K (hex) in size and it must be switch able from the 2K (hex) to the 6K (hex) address ranges (like the Blue RAM or Viper).
Since there is no floppy disk capability, all intermediate files must be recorded on tape. Thus tape handling can be excessive at times, in spite of operational streamlining. This is true in particular of multi-segment programs. To facilitate this, the user is strongly urged to install an I/O switch for switching between input and output taping. Steve Walters explained how to do this in Arcadian 4, no. 2 (Dec. 07, 1981): 16.
It's hard for me to believe that a Z80 assembler exists for the Astrocade; that's just crazy to me. According to the Paul's interview with Dave Ibach, about 100 copies of the program were sold; more than I would expect in the little Astrocade community. The full interview with Dave Ibach is here:
Has anyone here used this assembler besides Paul? I haven't used it, but revisiting the documentation makes me want to try it out. Maybe I'll make a video of me using the General Video Assembler; now that would bore some folks to death!