markz@microsoft.UUCP (Mark Zbikowski) (01/09/84)
The apparent position sensitive code in FORMAT/DISKCOPY, etc is due to an unfortunate bug in the IBM ROM. When performing any disk operation (except format), register AL has the number of sectors to be transferred. The ROM performs a simple check with this number and ES:BX to see if there is a 64K boundary in the range. If so, it reports a DMA violation. Unfortunately, the format command to the ROM places the number of sectors to be formatted in AL and ES:BX points to a table of 4 byte records, one for each sector to be formatted. The ROM then uses the SAME test to see if there is a segment violation. The test is inappropriate and, in this case, totally incorrect.