Offset = OX2000 * (y & 0X01) + 80 * (y>>1) + X/4,
а) номер пиксела в байте определится так
X %4.
Необходимо учесть, что здесь определяется номер пары битов байта, соответствующих этому пикселу, т.е. его цвету. Все номера считаются от нуля.
б) Для EGA адаптера при двухцветном изображении
Offset = 80 * Y + X/8,
А номер пиксела соответственно X%8.
При четырехцветном изображении
Offset = 80 * Y + X/4,
Номер пиксела - X%4.
При шестнадцати – цветном изображении
Offset = 80 * Y + X/2,
А номер пиксела – X%2.
в) Для VGA – адаптера в режиме 11h (черно-белом) смещение будет
Offset = 80 * Y + X/8, а номер пиксела X%8.
В режиме 12h смещение равно
Offset = 320 * Y + X/2, а номер пиксела X%2.
В режиме 13h смещение равно
Offset = 320 * Y + X, так как каждому пикселу соответствует 1 байт памяти, размер строки – 320 пикселов.
Следует отметить, что в режиме 12h определяется номер четверки битов байта, соответствующей пикселу, т.е. его цвету.
В зависимости от поставленной задачи могут осуществляться соответствующие операции с битами выбранных пикселов.
Адрес байта, которому принадлежит данный пиксел определяется функцией
P = MK_FP (segment, offset)
Глава 8. Ввод графической информации с помощью сканера.