fix a fencepost error in the transition from lba28 to lba48 commands. since drive idents return max lba + 1 and since 0 sectors is valid for removable media, the all ones lba is not addressable. therefore the maximum lba28 address is (1<<28) - 2, not (1<<28) - 1. many thanks to squeek@gmail.com for reporting a problem and verifying the fix. cosmetically, the useless masks were removed from the outbs.