Can someone shed some light on this ?

In the ATADISK sources for CE 4.x and 5.0, when calling GetATAWindows which
maps the CF card's I/O addresses into virtual memory, the code adds a
'modifier' which is an offset based on the number of address lines the card
reports it has for this configuration.

For the typical case of 0x1F0-0x1F7,0x3F6-0x3F7, it reports ten address
lines, so the driver maps addresses 0x5F0-0x5F7,0x7F6-0x7F7.

This appears to generally work since most cards must only use the addresses
they report, but a handful of cards don't. If 0x1F0-0x1F7,0x3F6-0x3F7 are
used, those card work fine.

CE 5.0 appears to have added an option to not use the 'modifier' and CE 3.0
didn't have it.

I'm tempted to remove it from my 4.x/5.0 builds, but I don't understand why
it was ever added in the first place.