![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
чтение порта принтера ....где ошибка моя ? [Win95/98]
aha © (2005-02-06 22:59:00)читаю порт принтера под виндами 98 - почему то ерунда получается
procedure Tf1.SpeedButton19Click(Sender: TObject);
var
bi:byte;
begin
bi:= getbyte;
f1.caption:= inttostr(bi);
end;
function tf1.GetByte: byte;assembler;
var
temp:byte;
j:integer;
begin
asm
mov dx,$378
in al,dx
mov al,temp
end;
end;
GuAV (2005-02-07 22:25:00) [1]begin...end © (07.02.05 20:33) [9]
> [4] GuAV © (06.02.05 23:50)
> Следует убрать begin...end.
За что?
:-)
:-)
Тебя так часто используют...
GuAV (2005-02-07 22:23:00) [2]function tf1.GetByte: byte;assembler;
var
temp:byte;
j:integer;
begin
asm
mov dx,$378 // or $379
in al,dx
end;
aha (2005-02-07 21:31:00) [3]адрес возьми другой , дурень ( это я сам себе отвечаю :-) ) адрес то не 378 , а 379 ....
aha (2005-02-07 20:38:00) [4]убрал begin end - ничего не изменилось , может адрес другой должен быть ? не $378 ?
begin...end (2005-02-07 20:33:00) [5]> [4] GuAV © (06.02.05 23:50)
> Следует убрать begin...end.
За что?
:-)
aha (2005-02-07 20:02:00) [6]насколько я знаю , есть же 5 входных сигралов идущие с принтера , вот я и хочу прочитать состояние своего дивайса используя эти входа ...
GanibalLector (2005-02-07 00:36:00) [7]> ничего не нужно, в т.ч. сам temp.
Не понял.Это еще почему?
Я понимаю,что можно так :
asm
...
mov Result,al
end;
НО!Может чел,что-то творит потом еще со своей переменной.
GuAV (2005-02-07 00:17:00) [8]
> Не-а. Нужно mov temp,al
Наконец до меня дошло: ничего не нужно, в т.ч. сам temp.
GanibalLector (2005-02-07 00:08:00) [9]>Это же и творит.
Не-а. Нужно mov temp,al
GuAV (2005-02-06 23:50:00) [10]GanibalLector © (06.02.05 23:41) [2]
а это что? Тебе нужно наоборот из регистра в переменную.А ты что творишь???
Это же и творит.
>function tf1.GetByte: byte;assembler;
> var
> temp:byte;
> j:integer;
>begin
>
>asm
>mov dx,$378
>in al,dx
>mov al,temp
>end;
> end;
Следует убрать begin...end.
GanibalLector (2005-02-06 23:46:00) [11]И что самое интересное...Получил ты байт с порта.И ???
asm
...
end;
Result:=temp;
> j:integer;
Зачем?
GanibalLector (2005-02-06 23:41:00) [12]>mov al,temp
а это что? Тебе нужно наоборот из регистра в переменную.А ты что творишь???
GanibalLector (2005-02-06 23:33:00) [13]твой код будет работать только под 9х и все.
Рекомендую использовать АПИ ф-ции для работы с уст-вом.
З.Ы.регистр 378предназначен для записи выводимого на принтер байта данных. допускается чтение только что записанного байта. Шо ты читаешь?