I've been adding some additional function to the BIOS update, now supports multiple sector reads, writes and verifies... it also enables the write cache on the Microdrive when it's initialized.
Testing so far has been solid and reliable, albeit not a ton of hours and only a single prototype system. Still, it's promising as there hasn't been any crashes (yet). Doing block reads always had good performance, as the Read Ahead Cache is enabled by default on the drive. In general, the MicroDrive tends to perform a bit better than a Compact Flash Card on single sector reads. As the Write Cache is not enabled by default, write performance with single block writes was pretty bad, under 30KB per second. This is due to the disk latency and the suspected sector interleave, which is not listed in any spec sheet I've managed to dig up. As the prototype system is only running at 4 MHz, it's just not quick enough to request block writes without missing the next block address, and having to wait for the disc to complete a revolution to write the next sequential sector. Enabling the write cache during the initialization process put the write data rate right up with the read data rates... nice.
Using my earlier testing of single block transfers, the data rates are around 176KB/second (read and write are virtually the same). Using a modified routine with the new BIOS to use 16KB transfers (32 blocks per transfer) and the rates go up to 183KB/second. A nice increase overall. But alas... there's no defacto OS and filesystem on the 6502 that would be managing multiple sector transfers, especially with a 64KB address range.
My next phase is to build a daughter board for the C02 Pocket SBC, which will include the SC28L92 DUART, a 128KB SRAM, a 128KB NOR Flash (replacing the EEPROM) and an ATF1504ASV CPLD. The goal is to replace both the existing ATF22V10 and ATF16V8 used for all of the existing glue logic on the two boards. I'll use a small ribbon cable from the daughter board to the RTC/CF-Card adapter plugged into the ATF16V8 socket. Working on that now.. but will be a while before that's done, as I need to figure out the CPLD code and pin-outs first.
|