Помощь - Поиск - Пользователи - Календарь
Полная версия: Прочитать бит Ack (готовность принтера)
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Jill
Сам ассемблерный код есть:
Код
mov dx,379h
in al,dx
and al, 01000000b
shr al, 6; {состояние 6 бита}

Как оформить это в паскале? Подскажите, плз
Malice
Цитата(Jill @ 9.08.2006 15:28) *

Как оформить это в паскале? Подскажите, плз

Вот так:
Код
function test:byte;assembler;
asm
mov dx,379h
in al,dx
and al, 01000000b
shr al, 6
end;

Jill
Спасибо конечно smile.gif Но функцию я оформлю wink.gif
Может, некорректно сформулировала вопрос.
Меня интересует то, КАК это вывести (типа writeln(состояние бита)).
...или сама функция выдает значение?
volvo
Опять же непонятно, что именно у тебя не получается? Если тебе надо словесное описание, утановлен бит или сброшен, то вот так:
function _test: byte;
begin
_test := (Port[$379] and $40) shr 6;
end;

begin
if _test = 1 then writeln('set')
else writeln('not set');
end.

Или тебя интересует логическая переменная? Тогда просто TypeCast...
Jill
Все, разобралась, спасибо smile.gif
Только не пойму, почему set - даже если LPT не подсоединен. По идее - принтер ведь не готов?

Оффф... volvo, не мог бы ты зайти в левопрошитое дерево? пожалуйста
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.