Here's the main bug fix in the Tandy 1000 BIOS v1.01, seen on the right, needed for proper hard drive controller operation.

v1.00 configured the DMA controller for "extended write mode", which is not the DMA timings that the controller expects, which can lead to data corruption.

v1.10 as you can see does not set that bit. This fix is made in two places where extended write mode was set.

#retrocomputing #tandy1000

You might be wondering why the Tandy BIOS has code to configure a DMA controller.

Like the PCjr it modelled itself after (the Tandy 1000 is sort of like the PCjr with all the bad stuff fixed), the Tandy 1000 does not ship with a DMA controller.

However Tandy was smart enough to anticipate that this might be a desirable add-on, and so they sold memory expansion cards that included the intel 8237 chip.

Besides letting you use a hard drive, the Tandy BIOS will also switch the floppy controller to DMA operation when you have the 8237 installed, so that's a nice performance boost as well.

@gloriouscow if there is no DMA controller, how did it do DRAM refresh?

@trcwm

I'M GLAD YOU ASKED!!!

#retrocomputing

@gloriouscow @trcwm this is X86. I bet it's something properly insane, like "a segmentation mode that hits every dram row".