I’m pleased to announce the release of version 2 of the ‘alt’ firmware for the U1MB, Incognito, and SIDE/SIDE2. Please visit the firmware page to download new ROMs, drivers, and tools. As well as updated firmware manuals, updated APT documentation may be found here on the APT documentation page.
Ten months after I started work on the custom U1MB firmware for the Mini-ATX 1088XEL, I’m happy to announce its public release. The 1088XEL – paired with the XEL-CF adapter – offers dual-CF card operation, as well as compatibility with SD/CF adapters and SD/IDE adapters. You can download the firmware, user guide and technical documentation from the 1088XEL Firmware Page.
Following on from the previous “September” update, a major re-write of the SIDE Loader culminates in the release of a further firmware update for Ultimate 1MB, Incognito and SIDE/SIDE2. For the first time, the new SIDE Loader is also available as an XEX which can be run from DOS.
The revised SIDE Loader offers a powerful new search facility which is able to scan the entire directory hierarchy for files and folders.
You can download the new update – together with revised documentation – via the firmware section.
After some extensive development work following the previous update, the “final” firmware update for U1MB, Incognito and SIDE/SIDE2 is complete. New features include:
- Dedicated High-Speed SIO menu
- SIO2BT support (at up to 56kb/s) and high-speed SIO for PCLink and other serial devices
- Built-in CIO “Z:” RTC device handler
- Improved SDX support
- Rapidus plug-in and support for PBI BIOS extensions in fast linear 65C816 RAM (U1MB only)
- General SIDE loader improvements
Grab the latest updates from the Firmware section.
Another firmware update for Ultimate 1MB, Incognito including Main BIOS, PBI BIOS and SIDE XEX Loader, plus updated XEX Loader for SIDE/SIDE2. New features include:
- Unified user interface for both main BIOS and XEX Loader
- Improved SIO2BT support
- High-speed SIO support for PCLink and other serial devices
- Improved CF card hot-swap handling in PBI BIOS and loader
- Improvements to keyboard and joystick handling
- Various bug fixes
The updates (and corresponding documentation) may be downloaded via the firmware page. Please see the heavily revised user manual for details of the new features – in particular the SIO driver section.
New updates for Ultimate 1MB, Incognito and SIDE/SIDE2 may be found in the firmware section of the site. New features include:
- Loader: joystick operation augmented by console key home, page down and page up navigation keys (primarily aimed at XEGS with keyboard disconnected)
- Loader: joystick control generally improved with proper debounce and better auto-repeat
- Loader: position in file or option list now preserved when moving between menus
- Loader: minor bug fixes
- Main BIOS: config changes requiring reboot now detected when swapping profiles
- Main BIOS: dual-level HDD write lock (see below)
- PBI BIOS: SIO2BT automatically handled by high speed SIO handler (simply enable HSIO for the appropriate drive)
- PBI BIOS: HDD writes can now be blocked at the partition or physical disk level (meaning writes to the MBR and partition table may be completely blocked once the media is partitioned)
- PBI BIOS: Patch vectors for RAM-based IO driver code
After a year of development and nine months of public beta testing, release versions of the “Alt” firmware (Main BIOS, PBI BIOS and XEX Loader) for U1MB and Incognito are finally available for download, along with an updated User Manual and newly written Technical Documentation. Also available is the new stand-alone XEX Loader for the SIDE/SIDE2 cartridge.
As well as correcting any issues over the coming weeks, I will also be adding complete sample flash ROM images (including the WIP Graphical OS) and uploading a small library of plugins for the U1MB BIOS (including a plugin supporting the new Rapidus board).
XEGS, Williams, AtariMax, Sic!, SDX, OSS, Megacart: just a few of the diverse banked cartridge formats available for the 8-bit Atari. If I peer into my drawer right now, I can see about a dozen flash carts I’ve collected over the years, all employing incompatible banking schemes. And since I’m a developer, if I want to build – for example – an AtariMax 1Mbit ROM and test it on real hardware, I either have to pull the chip and use my USB programmer, or wait for the flashing software on the A8 to move 128KB of data across the serial interface and onto the flash cart. Recently we’ve seen several cartridges which emulate a wide variety of banking schemes, but getting the ROMs onto the cart has tended to involve a lot of lengthy flash operations. The AtariMax MyIDE II cartridge, meanwhile, supports only a limited number of banking schemes. That’s where the Ultimate SD Cart steps in: running a wide variety of cartridge ROMs straight from an SD card.
In june 2015 I was approached by Robin Edwards (electrotrains) to write a menu for his new SD-card based multicart for the 8-bit Atari. Robin had already written his own perfectly serviceable menu for the cartridge (as well as the Altera FPGA firmware), but he thought his effort could perhaps be improved upon a little. Happy to oblige, I shortly afterwards took delivery of a prototype version of the SD cartridge and began writing a new menu based on Robin’s existing code. Robin was keen to listen to suggestions, one of which was the inclusion of a cartridge reset button so that the device could be put back into an initialisation state without power cycling the Atari every time the user wanted to get back to the boot menu. This addition made it into the pre-production board which arrived at my door a couple of months later.
The board is supplied uncased, the idea being that users adapt an existing cartridge shell to house the PCB. Although I have a few suitable candidates for cart shells, several shells are closed by a self-tapping screw which would pass through the middle of the PCB. Since no central aperture is present on the board, such shells would have to be glued shut. The board does include two through-hole mounting points at the front corners of the PCB, but although these are at a suitable pitch for an AtariMax cartridge shell, they are too far back on the board to actually use with that shell. Nevertheless, these are minor quibbles regarding what is a well conceived basic design which will suit the form factor of most standard-sized cartridge shells, mounting pillars notwithstanding.
The FPGA and RAM are mounted on what is the back side of the board, with the SD card slot on top. On the chip side we also have a JTAG header, activity LED header, and reset button. The FPGA firmware can be updated using a USB Blaster cable (available cheaply from online vendors) and the (free) Quartus II software from Altera. The entire project is open-source too, with all code hosted on github.
Perhaps unusually, the ROM-based menu which is actually booted when the Atari is powered on is not housed in a discreet flash ROM chip (which is conspicuously absent from the board) but in the FPGA’s internal flash memory. Because of this, any replacement boot ROM is loaded from the SD card. The firmware looks for an 8KB ROM file called “_boot.rom” and loads it on power-up, resorting to the built-in menu ROM if no such file is found.
In developing for the SD cart, I discovered a quite unusual event-driven operation. The FPGA firmware boots and reads the file catalogue from the SD card before the Atari ROM even boots, and maps segments of the directory in ROM for retrieval and display by the boot menu. The firmware responds to messages from the boot ROM and in turn sends messages back to the boot ROM telling it when to repaint the display, reboot, etc. The main objectives here appear to have been getting the menu up on the screen as near instantaneously as possible, and keeping the boot ROM reasonably uncomplicated. In any case, the system works well, and the firmware loads even the largest ROM images into its internal RAM with little noticeable lag after a file is selected.
While the original boot menu works perfectly well, the replacement (with slightly snazzier design and a few extra nods towards ease of use) is nearing completion. Keyboard and joystick operation is supported, and large volumes of CAR files can be browsed with ease.
Compatibility appears excellent. During menu development, Robin and I have tested a large selection of cartridge ROMs, all of which have performed flawlessly. What has impressed me most is that – even though I am not a gamer – this cartridge has provided solutions to issues I didn’t realize could be solved: namely, testing large cartridge ROMs in real-hardware environments without enduring long flashing operations. I can compile a 128KB AtariMax ROM, pop the SD card into my PC’s card reader, copy the file and have it booted up on the Atari in a matter of seconds. The fact the cartridge employs SD cards is another boon, since – unlike CF cards – the media is now inexpensive and ubiquitous.
As a first iteration, the Ultimate SD Cart is not without its quirks, and – as closely involved in the project as I have been – I’m still left with the feeling that the incredibly rapid development cycle was even faster than it needed to be, causing some features which obviously suggest themselves for inclusion to be relegated to a possible future firmware revision. On the other hand, the cartridge fulfils its original remit (fast, convenient and compatible cartridge emulation) superbly well, and since design and testing is only the first part of a large production run, it’s natural that Robin wanted to move things forward apace. In any case, extra features (such as hard disk functionality) could be seen as feature-creep, although they may find their way onto the board via firmware updates. In addition, since this is an open-source project, it offers a rare chance for third parties to develop for an original device with plenty of potential.
From a developer’s point of view, I would now not be without this device, since it’s massively speeded up my real-hardware testing cycle, and I can imagine that for anyone with a large collection of game or productivity ROMs or anyone wishing to develop and test cartridge-based software, the Ultimate SD Cart will prove indispensable.
You can pre-order your Ultimate SD Cart over on the AtariAge thread.
Note: illustrations show a pre-production cartridge. PCB colour and other details may differ on the production part.
After two months of development, a new (beta) BIOS is available for the Ultimate 1MB:
Features of the new BIOS include:
- The ability to set the date and time from the setup menu
- Dual configuration profiles
- Categorized menus covering system settings, hard disk, device setup, etc
- Turbo-Freezer compatibility
- Customisable shortcut keys
- OS-independent Ultra-speed SIO for serial disk drives
- Optional BIOS logo screen and boot device selection menu
- Optional flash write protection
- System information page displaying CPU type, audio/video hardware, etc
- BIOS Plugin API for diverse hardware control (Ultimate 1MB only)
- Variable SpartaDOS X ROM sizes (192, 256 and 320KB)
A near identical version of the BIOS for Incognito will follow shortly. If you have comments, questions or suggestions, please visit the corresponding thread on the AtariAge forum.