Работа с паралельным портом - ПОМОГИТЕ
Перехожу с досовского паскаля на Делфи. Не могу обращатся физически к памяти и к портам. Как это делается под Виндами???
Советовали исспользовать ассемблер(ассемблеровскую встаку). Скиньте пример програмы с такой вставкой.
Заранее благодарен...
Перехожу с досовского паскаля на Делфи. Не могу обращатся физически к памяти и к портам. Как это делается под Виндами???
Лучше скажи, зачем тебе понадобилось обращаться напрямую к портам или памяти? В Винде так не программят.
Лучше скажи, зачем тебе понадобилось обращаться напрямую к портам или памяти? В Винде так не программят.
Мене надо с максимальной скоростью считывать и писать в паралельный порт. Как мене сделать такую фишку под винду???
Мене надо с максимальной скоростью считывать и писать в паралельный порт. Как мене сделать такую фишку под винду???
W9X:
[COLOR=darkblue]
procedure WritePort(addr: word; data: byte);
asm
mov al, data
mov dx, addr
out dx, al
end;
function ReadPort(Addr: word): byte;
asm
mov dx, Addr
in al, dx
end;
[/COLOR]
W9X:
[COLOR=darkblue]
procedure WritePort(addr: word; data: byte);
asm
mov al, data
mov dx, addr
out dx, al
end;
function ReadPort(Addr: word): byte;
asm
mov dx, Addr
in al, dx
end;
[/COLOR]
Большое спасибо,.. на днях попробую,.. пока нет времени... уехал на море... 8)
Как я понял, етот код по указанному адрессу пишет один байт информации, и с указанного адресса читает байт информации.
У меня было сделано так - програма ищет самый большой непрерывный кусок памяти и туда непрерывно пишет, до прерывания, возвращает начало еттой памяти и размер изпользованной, потом я читаю с памяти и обрабатую полученные данный.
Если не сложно поясни, что такое dx и al?(как я понял ето какойто служебный регистр). И какая идёт адрессация в виндах? в досе у меня было POINTER, NAME^, @NAME. так и работали. И изменятся ли адреса паралельного порта ($378 and $278)?
Как я понял, етот код по указанному адрессу пишет один байт информации, и с указанного адресса читает байт информации.
Если не сложно поясни, что такое dx и al?
И изменятся ли адреса паралельного порта ($378 and $278)?
Понял правильно.
dx, al - регистры процессора.
В качестве Addr задаешь адрес порта ($378 или $278 - что прописано в BIOS)