Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.20;
Скачать: CL | DM;

Вниз

чтение порта принтера ....где ошибка моя ?   Найти похожие ветки 

 
aha   (2005-02-06 22:59) [0]

читаю порт принтера под виндами 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;


 
GanibalLector ©   (2005-02-06 23:33) [1]

твой код будет работать только под 9х и все.
Рекомендую использовать АПИ ф-ции для работы с уст-вом.
З.Ы.регистр 378предназначен для записи выводимого на принтер байта данных. допускается чтение только что записанного байта. Шо ты читаешь?


 
GanibalLector ©   (2005-02-06 23:41) [2]

>mov al,temp
а это что? Тебе нужно наоборот из регистра в переменную.А ты что творишь???


 
GanibalLector ©   (2005-02-06 23:46) [3]

И что самое интересное...Получил ты байт с порта.И ???

asm
...
end;
Result:=temp;


>  j:integer;
Зачем?


 
GuAV ©   (2005-02-06 23:50) [4]

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-07 00:08) [5]

>Это же и творит.
Не-а. Нужно mov temp,al


 
GuAV ©   (2005-02-07 00:17) [6]


> Не-а. Нужно mov temp,al


Наконец до меня дошло: ничего не нужно, в т.ч. сам temp.


 
GanibalLector ©   (2005-02-07 00:36) [7]

> ничего не нужно, в т.ч. сам temp.
Не понял.Это еще почему?
Я понимаю,что можно так :

   asm
     ...
     mov Result,al
   end;

НО!Может чел,что-то творит потом еще со своей переменной.


 
aha   (2005-02-07 20:02) [8]

насколько я знаю , есть же 5 входных сигралов идущие с принтера , вот  я и хочу прочитать состояние своего дивайса используя эти входа ...


 
begin...end ©   (2005-02-07 20:33) [9]

> [4] GuAV ©   (06.02.05 23:50)

> Следует убрать begin...end.

За что?
:-)


 
aha   (2005-02-07 20:38) [10]

убрал begin end - ничего не изменилось , может адрес другой должен быть ? не $378 ?


 
aha   (2005-02-07 21:31) [11]

адрес возьми другой , дурень ( это я сам себе отвечаю :-) ) адрес  то не 378 , а 379 ....


 
GuAV ©   (2005-02-07 22:23) [12]

function tf1.GetByte: byte;assembler;
       var
temp:byte;
       j:integer;
begin

asm
mov dx,$378 // or $379
in al,dx
end;


 
GuAV ©   (2005-02-07 22:25) [13]

begin...end ©   (07.02.05 20:33) [9]
> [4] GuAV ©   (06.02.05 23:50)

> Следует убрать begin...end.

За что?
:-)


:-)
Тебя так часто используют...



Страницы: 1 вся ветка

Текущий архив: 2005.03.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.061 c
6-1105989056
vic_vm
2005-01-17 22:10
2005.03.20
Определить IP по доменному имени при выходе в инетчерез proxy


14-1109713249
Димон
2005-03-02 00:40
2005.03.20
У меня глюки или активность на форуме правда упала?


3-1108632194
Rule
2005-02-17 12:23
2005.03.20
Странно необъяснимое поведение хранимой процедуры в Фаерберде ...


4-1107328870
Игорь Шевченко
2005-02-02 10:21
2005.03.20
Любителям "скырть процесс" под NT посвящается...


6-1105480714
bulkas
2005-01-12 00:58
2005.03.20
Непрочитанные сообщения