Функция 04h позволяет определить подключено ли световое перо или нет. Если подключено, можно определить его координаты. Функция позволяет узнать позицию светового пера и в текстовых, и в графических координатах.
Заметим, что световое перо EGA программно не полностью совместимо с CGA, в результате чего программы поддерживающие возможность использования светового пера для видеоадаптера CGA будут работать неправильно с видеоадаптером EGA. Видеоадаптер VGA не имеет светового пера.
На входе: AH = 04h.
На выходе: AH = 0 - световое перо не подключено (все остальные регистры не содержат полезной информации);
AH = 1 - световое перо подключено;
CH = координаты вертикальной позиции курсора в пикселах (графические режимы с низким разрешением);
CX = координаты вертикальной позиции курсора в пикселах (графические режимы с высоким разрешением);
BX = координаты горизонтальной позиции курсора в пикселах;
DH = координаты вертикальной позиции курсора в номерах строк;
DL = координаты горизонтальной позиции курсора в номерах колонок.
Приведем пример использования этой функции:
mov ah,4 int 10h ; определяем положение светового пера
cmp ah,0 ; переходим на метку not_pen, если jz not_pen ; перо не подключено
mov light_pen_col,dl ; сохраняем координаты светового пера mov light_pen_row,dh