![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Порты в Win2000 [D5, Win2k]
Pasha © (2001-09-21 15:44:00)Как можно считать из порта и записать в порт если ОС Win2000.
Желательно с примером.
Vasiatka (2002-01-14 15:15:00) [1]Народ, а кто-нибудь для USB на дельфях писал!
Если - да ! То пожалуста пришлите примеры!!!!!!!!
dimkos (2001-11-27 10:48:00) [2]Интересно пробывал ли ктолибо писать даннные в LPT порт на удаленном компе. У меня пока не получилось, хотя через API порт открывается и в него что то пишется, хотя эффекта никакого....
Mihaliu (2001-10-15 19:05:00) [3]i
unionsoft (2001-09-26 19:28:00) [4]Посмотри вот здесь:
http://www.webdoc.ru/text.phtml?level=&id=27&script_id=750
Batmen (2001-09-26 11:30:00) [5]%-0
Вот такое решение
а у меня P2B упс
и правда не работает
пошел прошивать
СПАСИБО Коляныч
Коляныч (2001-09-26 10:48:00) [6]У материнской платы ASUS P2B есть проблема в Win2000: COM-порты не открываются через CreateFile. Лечится прошивкой свежего BIOS
AKV (2001-09-26 05:37:00) [7]Даю справку о TVicHW32 5.0 для D, BC, VB, MC:
TVicHW32 5.0
Описание применения
Copyright (C) 1997-2001 Виктор Ижикеев
mailto: tools@entechtaiwan.com
http://www.entechtaiwan.com/tools.htm
Содержание
0.Что нового в версии 5.0?
1. Общие сведения о TVicHW32
1.1. Что такое TVicHW32
1.2. Базовые функции TVicHW32
2. Доступ к заданным адресам физической памяти
3. Работа с портами ввода-вывода
3.1. Общие сведения о работе с портами.
3.2. Одиночные операции записи/чтения
3.3. Запись/чтение массивов данных
4. Обработка аппаратных прерываний
4.1. Стандартный способ обработки прерываний
4.2. Расширенные возможности при обработке прерываний
4.3. Проблемы времени отклика (быстродействия)
5. Специфические функции для работы с LPT-портами
5.1. Предварительные замечания
5.2. Общие функции для работы с LPT
5.3. Работа с отдельными контактами разъема LPT
5.4. Ввод/вывод сигналов LPT
6. Считывание информации о дисках IDE, включая серийный номер
7. Доступ к информации об устройствах PCI
8. Работа с клавиатурой
8.1. Посылка кодов в контроллер клавиатуры
8.2. Перехват нажатий клавиш клавиатуры
9. Выделение памяти под буферы DMA
10. Выполнение пользовательского кода в Ring 0 CPU
11. Лицензирование и регистрация (как и где купить)
12. Контактная информация
...
Тыры пыры три рубля
...
12. Контактная информация
Последнюю версию TVicHW32 всегда можно найти в сети на сайте фирмы EnTech Taiwan:
http://www.entechtaiwan.com/tools.htm
Вопросы, комментарии и пожелания присылайте по электронной почте на tools@entechtaiwan.com
С уважением,
Виктор Ижикеев
30 мая 2001 года
Возврат к оглавлению
Michael (2001-09-26 00:25:00) [8]Точно sys писать надо, чем я сейчас и занимаюсь.
Может кто ответит на конкретный вопрос : как в обработчике запроса IRP_MJ_READ или IRP_MJ_WRITE получит адрес (указатель) буфера данных вызывающего прикладного приложения ?
Mihaliu (2001-09-25 20:58:00) [9]Под 9х подсказка UsBall © самая полноценная .
Навернека помогает cki ,sti
2 Mihaliu
Это кусочек из программы, работающей с устройством через LPT.
Реально работающей!
Под 98й он работает, а вот под 2000й не будет, по идее не должен.
function Port_Read( Addres_Port : word ) : byte;
{Эта функция читает порт Ввода - вывода. Прерывания запрещены! Адрес базовый порта LPT 888}
begin
asm
mov dx, Addres_Port
cli
in al, dx { Читает значение из порта}
sti
mov Result, al
end;
end;
{----------------------------------------------------------------------------------------------------}
procedure Port_Write( Addres_Port : word; Value : byte );
{ Эта функция пишет в порт Ввода - вывода. Прерывания запрещены!}
begin
asm
mov dx, Addres_Port
mov al, Value
cli
out dx, al { Пишет значение в порт }
sti
end;
end;
Под 2000й доступа к портам нет такого, он конечно возможен, но на вскидку сейчас не подскажу.
Digitman (2001-09-25 15:01:00) [10]в W2k решение практически одно - писать SYS
seal (2001-09-25 14:35:00) [11]2harisma © (25.09.01 12:55)
У меня программа, сделанная на базе Async32, отлично работает под 2000. Компонент этот очень простой, если посмотреть исходники, то там ничего и нет, кроме CreateFile, ReadFile, CloseHandle, WriteFile.
inferno123 (2001-09-25 14:06:00) [12]Ребята. У меня такая-же проблема, только несколько хуже. Мне необходимо работать не с COM и LPT портами, а с совершенно левыми и именно под W2k, так что кто чего знает, подскажите. Позарез нужно. Ну а под 95/98 делается очень легко и без API:
Пишем:
asm
Mov DX,310H //Порт назначения
Mov AX,0 //Что надо засунуть в порт
Out DX,AX //Пихаем
end;
Читаем:
asm
Mov DX,300H // Порт назначения
In AX,DX //Читаем
end
Я пробовал работать через API (CreateFile, ReadFile, CloseHandle WriteFile) c произвольным портом, так его даже открыть не получается.
Так что кто точно знает как это делать, подскажите, ради бога, уже весь замучился.
harisma (2001-09-25 12:55:00) [13]Самое интересное, что под вин98 конструкция CreateFile(), а потом Read/Write File работает нормально, а под вин2000 нет. У меня та же проблема. Необходимо работать с Сом портами под Вин2000. Кто работал и может подсказать? Компоненты - в крайнем случае. Надо через WinAPI
UsBall (2001-09-25 01:03:00) [14]Чесно говоря не особо помню команды ассемблера, но по смыслу просто - это запрещение и разрешение прерываний - полагаю тебе же не нужно , что бы какая то подпрограмма в момент ТВОЕГО общения с портом что то там изменила?
Да, а то что ассемблерный код то использован заметил?
Код я не изобретал сам - пару лет назад надо было сделать приблуду на принтерный порт и опрограмить её - тогда и нашёл:) Приблуда заработала.
Насколько помню - под Вин2000 с портами надо работать, как с файлами - Tosov правильное направление мысли даёт:)
unionsoft (2001-09-24 13:44:00) [15]Оно все и под Win2000 работать должно, при условии что:
Мой Компьютер -> Свойства -> Оборудование -> Диспетчер устройств -> Порт LPT1 -> Свойства
и вот тут выставить распознование старого Plug"n"Play.
Mihaliu (2001-09-24 00:21:00) [16]UsBall © Большое СПАСИБО !!! Помогло. Под 98 Работает б/п.
Mihaliu (2001-09-23 18:41:00) [17]cli , sti что такое?
Tosov (2001-09-23 06:07:00) [18]попробуй CreateFile
hPort=CreateFile("COM2",Generic_read or Generic_write,0,nil,Open_existing,file_flag_overlapped,0);
потом ReadFile и WriteFile
Сам не пробовал - это из книги
UsBall (2001-09-22 21:18:00) [19]2 Mihaliu
Это кусочек из программы, работающей с устройством через LPT.
Реально работающей!
Под 98й он работает, а вот под 2000й не будет, по идее не должен.
function Port_Read( Addres_Port : word ) : byte;
{Эта функция читает порт Ввода - вывода. Прерывания запрещены! Адрес базовый порта LPT 888}
begin
asm
mov dx, Addres_Port
cli
in al, dx { Читает значение из порта}
sti
mov Result, al
end;
end;
{----------------------------------------------------------------------------------------------------}
procedure Port_Write( Addres_Port : word; Value : byte );
{ Эта функция пишет в порт Ввода - вывода. Прерывания запрещены!}
begin
asm
mov dx, Addres_Port
mov al, Value
cli
out dx, al { Пишет значение в порт }
sti
end;
end;
Под 2000й доступа к портам нет такого, он конечно возможен, но на вскидку сейчас не подскажу.
Mihaliu (2001-09-22 17:41:00) [20]У меня не получяется и и в 98
Если можееш подскажи свой вариант с примером