Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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
1-22618
VictorT
2002-03-27 16:29
2002.04.08
Список файлов в конкретной папке (без вложеных)


1-22731
Surprising
2002-03-26 21:22
2002.04.08
Не выделение ячейки в StringGrid


14-22832
tovSuhov
2002-02-25 17:58
2002.04.08
Куда пропала ветка из раздела


1-22640
asat
2002-03-27 20:57
2002.04.08
Как прервать цикл?


14-22827
giokoed
2002-02-28 18:22
2002.04.08
Создание игры





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский