IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Прочитать бит Ack (готовность принтера), ...и вывести (0/1)
Jill
сообщение 9.08.2006 14:28
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 105
Пол: Женский
Реальное имя: Юлия

Репутация: -  0  +


Сам ассемблерный код есть:
Код
mov dx,379h
in al,dx
and al, 01000000b
shr al, 6; {состояние 6 бита}

Как оформить это в паскале? Подскажите, плз
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
Malice
сообщение 9.08.2006 14:42
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(Jill @ 9.08.2006 15:28) *

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

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

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Jill
сообщение 9.08.2006 14:55
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 105
Пол: Женский
Реальное имя: Юлия

Репутация: -  0  +


Спасибо конечно smile.gif Но функцию я оформлю wink.gif
Может, некорректно сформулировала вопрос.
Меня интересует то, КАК это вывести (типа writeln(состояние бита)).
...или сама функция выдает значение?

Сообщение отредактировано: Jill - 9.08.2006 14:59
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.08.2006 15:01
Сообщение #4


Гость






Опять же непонятно, что именно у тебя не получается? Если тебе надо словесное описание, утановлен бит или сброшен, то вот так:
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
сообщение 9.08.2006 15:13
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 105
Пол: Женский
Реальное имя: Юлия

Репутация: -  0  +


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

Оффф... volvo, не мог бы ты зайти в левопрошитое дерево? пожалуйста
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 6:54
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"