Просмотр полной версии : Как послать сигналы с порта джойстика на LPT порт PC в эмуляторе? И в каком?
Когда-то написал на Бейсике прогу. Она через первый порт BB55-ой (на джойстик который обычно) управляла через оптотиристоры елочными гирляндами. (4-мя или 6-ю каналами, было 2 версии.) На компе она работает ок, а вот как подать сигналы в эмуляторе? На потр LPT лучше всего было бы.
Вот сама прога. Попробуйте, если хотите. Только, если сбросили брейком, запускайте через go to 1, а не run!
http://www.divshare.com/download/4834773-f24
Прога позволяет управлять через соответствующую схему гирляндами, лампами подсветки и т.д. У нее 10 забитых программ по 64 шага каждая, алгоритм работы каждой можно менять, регулируемая скорость проигрывания эффектов, паузы и автопереходы. Кто заинтересуется, могу рассказать подробнее. Схемы упраления есть в инете, но тоже могу нарисовать.
Но главное - КАК ЗАСТАВИТЬ ЕЁ РАБОТАТЬ НА PC? Т.е посылать команды в порт, так то она сама по себе работает! Перепробовал эмуляторов 10.
Кстати, на PC стоит XP.
Боюсь на XP ни как так как там должен быть соответсвующий дравер для LPT.
Так как любое обращение к LPT не из Ring 0 вызовет исключение и система станет ругатся. Самое оптимальное это Win 98 там реализация Ring 0 хуже сделана там можно и напрямую к порту обращатся. И я не уверен что есть эмуляторы которые без последников смогут напрямую управлять LPT портом.
Да я тоже не уверен, что XP пустит, но все-таки... Может, в каком-нибудь эмуляторе есть плагинчик какой? Или его можно как-то написать...
Что XP вредная к доступу к LPT, я в курсе. Вот, хотя бы:
http://www.pcports.ru/Articles.php
Но побороть то вроде можно, хотя и через ... , ну, в общем, с обратной стороны.
А 98-ю ставить только ради этого как-то не хочется.
Можно поробывать через драйвер www.pcports.ru толко я не уверен что какойто эмулятор поддержит прямое обращение к порту. Проще на Delphi написать программу и использовать драйвер с www.pcports.ru. Как управлять LPT можно прочитать у Гука.
Alexandr Medvedev
02.07.2008, 18:00
Так как любое обращение к LPT не из Ring 0 вызовет исключениеПрежде чем писать подобные глупости рекомендую запустить команду
echo "Hello world!" >lpt1Самое интересное что если принтер подключен к LPT1 то он начнёт печатать. Для этого даже администраторских прав не нужно.
cyrax inc
02.07.2008, 20:17
а какие эмуляторы транслируют состояние порта джойстика (какого, кстати? 0x01F?) в порт LPT?
А что, порт джойстика уже доступен на запись? Так и говорите- порт SounDrive....
Прежде чем писать подобные глупости рекомендую запустить команду
echo "Hello world!" >lpt1Самое интересное что если принтер подключен к LPT1 то он начнёт печатать. Для этого даже администраторских прав не нужно.
Так это команда вывода на печать по стандартному протоколу SPP или ECP (что в биосе включено) драйвер протокола прописан в виндовс.
А вот слабо состояние линии STROBE из командной строки подергать.:)
Мы тут вообще говорили про прямое управление LPT.
Alexandr Medvedev
02.07.2008, 21:18
Дык не надо путать порт LPT1 с портом 0x378. С первым можно работать хоть через CreateFile, а вот со вторым тока через драйвер.
Дык не надо путать порт LPT1 с портом 0x378. С первым можно работать хоть через CreateFile, а вот со вторым тока через драйвер.
Так я и не путаю это одно и тоже LPT это логическое имя 0х378 порта.
И как показывает практика открыть порт LPT через CreateFile очень проблемотично если установлен нестандартный драйвер принтера.
может я что-то не понимаю, но банальное решение, через которое работают программаторы etc не подойдет? навроде dlportio.dll
оно вроде как раз работать в Ring 0 и все обращения к lpt перехватывать и обрабатывать самостоятельно
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot