I originally posted this in the forums quite a few years ago:
When, more recently, I revisited it to strip it down into separate roms each hard-coded for a single bankswitching type and transfer method, I also updated the original a bit.
The source is quite a mess, as I really have very little programming skills in general, and this one was actually one of my first attempts at coding in assembly, after learning it by reading the tutorials and programming threads here on AtariAge. Since I didn't really want to try to understand what my old messy menu code is doing, nor to redo it from scratch, I only hacked in a few changes and called it a day! ?
Most relevant changes (more details can be found in the source):
- removed a couple of bankswitching methods because, with the better knowledge I now have after over a decade on AA, I realized my original implementation for those couldn't actually work (I only have a small collection of carts, so I couldn't test all types).
- updated the serial output: I increased the baudrate, and also changed it to output raw binary data (previously it outputted ascii code that needed further conversion using an utility program). Now it takes about 1 second to send a 4k dump at the maximum speed (for comparison, using the audio method at the slowest speed, it takes 1 minute and a half!).
- added an output signal on the right controller port that can be used to automate the cart switching. The picture below shows the dumper I originally built (a pass-through eprom cartridge) modified with an additional 3.5mm jack: by connecting a standard male to male audio cable between it and with the matching jack on my Serial adapter/level converter (which in turn plugs into the right controller port), the dumper automatically enables the cartridge when needed. When nothing is plugged in the jack, I manually select the dumper or the cart using the switch on the side.
The menu is still the same flickering mess, with only minor changes. You're not supposed to look at it for very long, anyway, so I guess it's fine. You navigate the menu using the console switches and, optionally, a keyboard controller which is useful in "custom" mode to enter hex values directly. It used to support also a joystick controller, but I removed that when fixing the "debounce" of the switches which didn't work very well.
Here is the latest binary and the source.
And a pdf with basic instructions that I quickly put together:
Basically, after selecting the options using the menu, it works exactly like the separate versions posted in the previous blog entry. The conversion utility is the same too.