Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Технологии программирования > Железо. Написание драйверов
Перезагрузить страницу Помогите разобраться с LTP портом а точнее с FIFO
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Anonymous
Guest
 
Сообщений: n/a
По умолчанию Помогите разобраться с LTP портом а точнее с FIFO - 17.03.2003, 16:39

Помогите разобраться с LTP портом а точнее с FIFO
а еще точнее с ее программированием и как она работает
Заранее благодарен

pisim@netu.ru
----------------------
Перемещена из форума по VC++ - В.
Ответить с цитированием
  (#2 (permalink)) Старый
Panam Panam вне форума
Новичок
 
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 10.01.2003
По умолчанию 03.04.2003, 19:29

1) Na ddanyj moment ja tozhe pytajus' soedinit' 2 compa s pomoshju LPT. Kak sdelat' tak, chtoby message (khotja by 1 byte, no nado n bytes), kotoroe vysylaju iz odnogo PC, poluchil drugoj?

Chto nuzhno obespechivat': a) na programmnom; B) na apparatnom urovnjakh?

2) Mozhet, stoit "podruzhit'sja" s COMn/USB? Mozhet, tak budet proshe v programmon otnoshnii?
==============================================
P.S: V dannyj moment polzujus' standartnym LPT-provodom. Kazhetsja , nazyvaetsja, SPP. V BIOS'e ustanovlen rezhim "Bi-directional" (ne Output Only, ECP ili EPP). Pri etom util "Net connect PC-to-PC" v Windows Commander prekrasno rabotaet).

Ja proboval vyzyvat' DeviceIoControl(IOCTL_IEEE1284_NEGOTIATE...) i peradat' cherez masku vsevozmozhnye pary ReadMode/WriteMode, no ni odna iz nikh ne prokhodit.
Ответить с цитированием
  (#3 (permalink)) Старый
Anonymous
Guest
 
Сообщений: n/a
По умолчанию 25.06.2003, 02:59

Попробуй программировать порт на низком уровне (геморно, правда):

Поиск адреса порта по его номеру:
Код:
short int GetLPTAddr (char Number)
{        
  short int Address
  asm
  {
        push edi
        push es
        push edx
        mov eax, 40h
        mov es,eax
        mov ax,2
        xor edx,edx
        mov dl, byte ptr Number; номер порта
        mul edx
        add ax,6
        mov edi,eax
        mov ax,es:[edi]
        mov word ptr Address, ax; адрес порта
        pop edx
        pop es
        pop edi
   }
   return Address;
}

Запись байта в порт:
void Write (short int Address, char Data)
{
 asm
 {
   push ax
   push dx
   mov dx, word ptr Address
   mov al, byte ptr Data
   out dx, al
   pop dx
   pop ax
 }
}

Чтение байта из порта:
char Read (short int Address)
{
 char Data
 asm
 {
   push dx
   mov dx, word ptr Address
   in al, dx
   mov byte ptr Data, al
   pop dx
 }
 return Data
}
Вроде так, под Win9x работает точно, под остальными мастдаями - не знаю, не проверял
Ответить с цитированием
  (#4 (permalink)) Старый
Olesya Olesya вне форума
Member
 
Сообщений: 1,485
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 11.06.2002
По умолчанию 25.06.2003, 22:56

Код:
out dx, al
Под NT в user mode об этом можеш забыть. См. FAQ
Ответить с цитированием
  (#5 (permalink)) Старый
Anonymous
Guest
 
Сообщений: n/a
По умолчанию 14.11.2003, 01:49

Была у меня тема - курсач по асму - файловый менеджер на два копа чрез lpt. Хоть байт хоть килобайт - шли как хочешь, единственное тебе приядется реализовать собственный интерфейс обмена, т.е. сам должениписать функции которые принимабт байт по определенному состоянию одного из пином регистро состояния. Но делать надо так распайку, что бы регистр управления одгого порта контачил с регистром состояния другого, тогда все будет ок. vavan150504@tut.by
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
VICX VICX вне форума
Новичок
 
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.02.2004
По умолчанию 09.02.2004, 22:06

Насчёт работы с портами в NT из USER-MODE есть одна маленькая хитрость :
слабодокументированная функция ZwSetInformationProcess.
Кому интересно - вышлю код.

Victor.
vicx@orel.ru
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с новой видеокартой, а точнее слотом StormShadow Видеокарты 15 03.02.2012 14:15
Об образовании. Точнее куда это его реформируют?!))) aag Мысли вслух 71 16.11.2011 14:23
Слетела ассоциация файлов, точнее инет-ссылок/ярлыков. chestersounder Windows XP 5 02.03.2011 15:24
Необычная проблема с экраном(а точнее с его разрешением).. Selendal Видеосистема 16 30.09.2008 03:34
Очередь с приоритетами FIFO serg_grem C++ Builder 0 03.11.2007 17:09
Помогите, пожалуйста! проблема с портом a-lian Сетевые подключения 16 19.09.2007 15:40
Зачем нужна константа S, точнее ей же присвоено Hello programer4ever Delphi 5 18.04.2007 07:47
Разработка подпрограммы работы с приоритетной очередью FIFO nygger Вопросы начинающих программистов 4 15.12.2006 18:43
XML Parser а точнее XmlNodeType imported_Arty .NET 4 01.02.2005 18:32
Работа с COM-протами, fifo на UART Anonymous Железо. Написание драйверов 2 26.03.2004 09:07
Как послать а точнее принять поток TFileStream Anonymous Delphi 0 01.10.2003 17:39



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов