IDEa APT PBI BIOS
In 2010 there weren’t many hard disk interfaces available for the 8-bit Atari, so I was delighted when a fellow Atarian from overseas sold me his IDEa interface. As my first “real” PBI host adapter, the IDEa fascinated me and I received a great deal of technical insight from Konrad Kokoszkiewicz, the author of its firmware. Having just finished the SpartaDOS X soft-driver for MyIDE, I was keen to try my hand at a PBI driver. My initial experiments were unsuccessful, but I refused Konrad’s offer of the source code for the original ROM (which would have meant the result of my endeavours would be unpublishable), determined to produce something original which I could publish. So I persevered and eventually got it working, and this paved the way for the Ultimate 1MB and Incognito PBI BIOSes. Although I didn’t release the IDEa BIOS at the time, I continued to develop it, and eventually I fitted the IDEa inside my modified Atari 1200XL, where it runs with a Compact Flash adapter, and in tandem with a SIDE2 cartridge driven by the Ultimate 1MB PBI BIOS.
I should point out that this ROM is in no way intended to “improve” on Konrad’s original IDEa firmware: it is offered as an up-to-date, APT compatible upgrade for those who wish to use the interface with currently available tools, and who wish to enjoy media interchangeability with IDE Plus 2.0, Ultimate, SIDE, etc. I spoke to Konrad at length about the notion of producing an APT BIOS for IDEa, and since he felt it was unlikely that he would get around to producing one, he invited me to write one myself if I had the inclination. Here it is.
Note: Konrad warned me that he experienced stability issues with a developmental bank-switched PBI BIOS he wrote for the IDEa interface some years ago. Although I have experienced no issues at all with this new bank-switched BIOS in daily use, if you experience any stability issues, please notify me immediately.
The ZIP file contains a 128KB BIN file for flashing to the (E)EPROM chip on your IDEa. If you need to manufacture a BIN image for use with a different chip (i.e. larger or smaller than 128KB), simply concatenate or truncate the file to suit the chip capacity. The only requirement is that the 4KB of data (2 x 2KB banks) is repeated across the entire chip.
Note: this ROM is ONLY for the version 2 IDEa interface, NOT for the original KMK/JZ interface. If you require a version for the original (non-bank-switched) interface, please email me.
Note that the APT BIOS uses LBA exclusively, so devices which only support CHS addressing (such as some old Transcend flash modules) will not work with it. The BIOS supports primary and secondary IDE controllers (i.e. dual drive operation), with no need to explicitly enable support for a secondary device. Naturally one should avoid clashing drive number assignments on the primary and secondary disks when creating partitions.
This BIOS does not implement dynamic partition mounting, drive mapping, or any other part of the APT’s mounting API. I consider this no great shortcoming, however. In all other respects, this is a complete APT implementation. Additional DRQ checks have been implemented which attempt to detect skipped or double reads/writes, with no impact on performance. All the recent augmentations to the APT spec have been reflected in this BIOS (such as external FAT partitions, etc).
A two second spin-up delay on boot is currently allowed for rotational disks, prior to the BIOS issuing a drive reset and then reading the partition table. The delay has no real purpose when CF media is used, however. Having only tested the BIOS briefly with spinning platter disks, I’d appreciate any feedback on the practical suitability of the spin-up delay. The only other point of note is that Reset pressed while Select is held down causes a system reboot.
I’d appreciate any ideas for improvements to the BIOS, and naturally I’d like to hear about any bugs which are discovered.