PDA

Просмотр полной версии : Управление LPT-портом на Ц++ Билдере



ALKO
24.10.2013, 16:53
Установил я на 98-ую винду Си Билдер. (Эту версию (http://old-dos.ru/index.php?page=files&mode=files&do=show&id=2013))
И теперь хотелось бы узнать , как прочесть\записать биты в LPT.
Реально ли стандартными средствами Ц++ Билдера или нужны дополнительные библиотеки ?

Eltaron
24.10.2013, 17:34
Накрайняк прямо через асм-вставку писать/читать порт 0x378. В 98й винде для этого ничего дополнительно не требуется.

ALKO
24.10.2013, 17:52
Так ?

_asm {
out 0x378, 0b10101010
}

Eltaron
24.10.2013, 17:55
Так ?

_asm {
out 0x378, 0b10101010
}
А такой опкод вообще есть?
хотя бы

push eax
ld al, 0b10101010
out 0x378, al
pop eax

ALKO
24.10.2013, 17:58
хотя бы
Тогда наверное не ld , а mov

marinovsoft
24.10.2013, 20:28
Под w98 нормально работала и 5-я и 6-я версия билдера и 7-е делфи.


push eax
ld al, 0b10101010
out 0x378, al
pop eax


а не out dx,al ? или порт в команде out может задваться 16-битной константой ? ЕМНИП, только 8-битной.

Eltaron
24.10.2013, 21:45
ЕМНИП, только 8-битной.
Да, ошибся.

ALKO
26.10.2013, 16:46
Под w98 нормально работала и 5-я и 6-я версия билдера и 7-е делфи.
6-ая версия у меня не пошла (при загрузке IDE через некоторое время выбивает эррор)

А в первой версии не удаётся скомпилить то, чтo заключено в asm.
Пишет " cant find tasm32.exe"

NovaStorm
26.10.2013, 20:57
Ну, вероятно, надо поставить турбоассемблер и прописать пути. Хотя он вроде и так должен ставиться в полной установке.

ALKO
26.10.2013, 22:27
Я ещё установил Borland C++ 3.1 (МС-Досовая оболочка)
Можно ли через него хотя бы что-нибудь мигнуть в LPT ?

NovaStorm
26.10.2013, 22:57
outp(0x378,n);
outportb(0x378,n);
http://smendes.com/el31p/parallel.htm