Форум: "Система";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];
ВнизПорты в Win2000 Найти похожие ветки
← →
Pasha (2001-09-21 15:44) [0]Как можно считать из порта и записать в порт если ОС Win2000.
Желательно с примером.
← →
Mihaliu (2001-09-22 17:41) [1]У меня не получяется и и в 98
Если можееш подскажи свой вариант с примером
← →
UsBall (2001-09-22 21:18) [2]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й доступа к портам нет такого, он конечно возможен, но на вскидку сейчас не подскажу.
← →
Tosov (2001-09-23 06:07) [3]попробуй CreateFile
hPort=CreateFile("COM2",Generic_read or Generic_write,0,nil,Open_existing,file_flag_overlapped,0);
потом ReadFile и WriteFile
Сам не пробовал - это из книги
← →
Mihaliu (2001-09-23 18:41) [4]cli , sti что такое?
← →
Mihaliu (2001-09-24 00:21) [5]UsBall © Большое СПАСИБО !!! Помогло. Под 98 Работает б/п.
← →
unionsoft (2001-09-24 13:44) [6]Оно все и под Win2000 работать должно, при условии что:
Мой Компьютер -> Свойства -> Оборудование -> Диспетчер устройств -> Порт LPT1 -> Свойства
и вот тут выставить распознование старого Plug"n"Play.
← →
UsBall (2001-09-25 01:03) [7]Чесно говоря не особо помню команды ассемблера, но по смыслу просто - это запрещение и разрешение прерываний - полагаю тебе же не нужно , что бы какая то подпрограмма в момент ТВОЕГО общения с портом что то там изменила?
Да, а то что ассемблерный код то использован заметил?
Код я не изобретал сам - пару лет назад надо было сделать приблуду на принтерный порт и опрограмить её - тогда и нашёл:) Приблуда заработала.
Насколько помню - под Вин2000 с портами надо работать, как с файлами - Tosov правильное направление мысли даёт:)
← →
harisma (2001-09-25 12:55) [8]Самое интересное, что под вин98 конструкция CreateFile(), а потом Read/Write File работает нормально, а под вин2000 нет. У меня та же проблема. Необходимо работать с Сом портами под Вин2000. Кто работал и может подсказать? Компоненты - в крайнем случае. Надо через WinAPI
← →
inferno123 (2001-09-25 14:06) [9]Ребята. У меня такая-же проблема, только несколько хуже. Мне необходимо работать не с 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 произвольным портом, так его даже открыть не получается.
Так что кто точно знает как это делать, подскажите, ради бога, уже весь замучился.
← →
seal (2001-09-25 14:35) [10]2harisma © (25.09.01 12:55)
У меня программа, сделанная на базе Async32, отлично работает под 2000. Компонент этот очень простой, если посмотреть исходники, то там ничего и нет, кроме CreateFile, ReadFile, CloseHandle, WriteFile.
← →
Digitman (2001-09-25 15:01) [11]в W2k решение практически одно - писать SYS
← →
Mihaliu (2001-09-25 20:58) [12]Под 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й доступа к портам нет такого, он конечно возможен, но на вскидку сейчас не подскажу.
← →
Michael (2001-09-26 00:25) [13]Точно sys писать надо, чем я сейчас и занимаюсь.
Может кто ответит на конкретный вопрос : как в обработчике запроса IRP_MJ_READ или IRP_MJ_WRITE получит адрес (указатель) буфера данных вызывающего прикладного приложения ?
← →
AKV (2001-09-26 05:37) [14]Даю справку о 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 года
Возврат к оглавлению
← →
Коляныч (2001-09-26 10:48) [15]У материнской платы ASUS P2B есть проблема в Win2000: COM-порты не открываются через CreateFile. Лечится прошивкой свежего BIOS
← →
Batmen (2001-09-26 11:30) [16]%-0
Вот такое решение
а у меня P2B упс
и правда не работает
пошел прошивать
СПАСИБО Коляныч
← →
unionsoft (2001-09-26 19:28) [17]Посмотри вот здесь:
http://www.webdoc.ru/text.phtml?level=&id=27&script_id=750
← →
Mihaliu (2001-10-15 19:05) [18]i
← →
dimkos (2001-11-27 10:48) [19]Интересно пробывал ли ктолибо писать даннные в LPT порт на удаленном компе. У меня пока не получилось, хотя через API порт открывается и в него что то пишется, хотя эффекта никакого....
← →
Vasiatka (2002-01-14 15:15) [20]Народ, а кто-нибудь для USB на дельфях писал!
Если - да ! То пожалуста пришлите примеры!!!!!!!!
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.008 c