Штабскапитан Овечкин Опубликовано 24 июля, 2008 Жалоба Поделиться Опубликовано 24 июля, 2008 Проблема в слеюдующем: Есть старинная досовская программулина (делалась в Паскале 7.0, Турбовижин) для работы со станком ЧПУ. Проблем не было вплоть до юзания 98-й винды. Запускали из-под W98, как ДОС-приложение. Горе послигло нас после замены компа на новый. Из-под ХР софтина запускается, всё делает, кроме главного - не может связаться со станком. Вскрытие показало, что ХР обрубает ДОС-приложениям весь доступ к портам. Подскажите пожалуйста какой-нибудь выход из положения. Мне по простоте душевной решение видится примерно таким: 1. В программе находим процедуру, кидающие байты в линию. (Исходники не сохранились, но с помощью ИдаПро мне удалось раскопать этоместо). 2. Заменяем её код на софтовое прерывание. 3. На вышеупомянутое прерывание сажаем резидентом свою процедуру, работающую со станком. (Это тоже получилось, но только в ДОСе) Теперь, если я что-нибудь могу тут понимать дело за тем, чтобы сделать аналогичную процедурку под ХР. Если в принципе есть возможность работать с портами под ХР. На совести этой процедуры, в общем-то совершенно примитивная задача - она получает байт от основной проги, затем проверяет сотояние линии (всё работате по одной верёвке по самопальному протоколу), если лог 0, то ждать готовности станка, дождавшисть лог. 1-цы выдать байт в како-либо порт. Можно в КОМ, можно в ЛПТ. Далее уже справимся сами. Выпилим соответствующее железо. Вот такая наша бяда. Если кто сможет помочь - будем душевно благодарны. :g: Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 24 июля, 2008 Жалоба Поделиться Опубликовано 24 июля, 2008 А что если несколько упростить задачу, воспользовавшись виртуальными машинами , там можно эмулировать любую подходящую для вашей программы среду. Ссылка на комментарий Поделиться на другие сайты Поделиться
Фдуч Опубликовано 25 июля, 2008 Жалоба Поделиться Опубликовано 25 июля, 2008 Когда-то давно, лет 5 назад, сталкивался с такой проблемой. Сейчас точно не помню, но по-моему пришлось писать (или переделывать чей-то?) так называемый виртуальный драйвер DOS (VDD), а так же драйвер устройства (SYS), который устанавливался как служба. Сейчас времени нет разбираться. Но если хочешь могу сбросить исходники (где-то должны быть). Вдруг поможет. Пиши в приват мыло. Ссылка на комментарий Поделиться на другие сайты Поделиться
Штабскапитан Овечкин Опубликовано 25 июля, 2008 Автор Жалоба Поделиться Опубликовано 25 июля, 2008 Благодарю за ответы. На счёт виртуальной машины - может быть я ошибаюсь, но мне не кажется это простым решением. Хотя спорить, конечно не берусь - никогда не юзал и плохо себе это представляю. А вот на счёт примера подобного драйвера - это, пожалуй в тему. Но по правде говоря, я больше надеялся на помощь типа "сделайте мне такую штуку". Сам я программер совершенно никакой. Весь мой опыт, главным образом, состоит в ковырянии чужих исходников и маленких самостоятельных программок на Паскале. Под виндами вообще никогда ничего не писал. Только на Дельфи делал примерчики из хелпа и слегка их модифицировал под собственные нужды. Так что, если кто-нибудь возьмётся написать вышеупомянутый драйвер, буду очень благодарен. Ссылка на комментарий Поделиться на другие сайты Поделиться
MaDW Опубликовано 28 июля, 2008 Жалоба Поделиться Опубликовано 28 июля, 2008 А кто мешает поставить DOSBox и работать с полноценным досом? Ссылка на комментарий Поделиться на другие сайты Поделиться
Штабскапитан Овечкин Опубликовано 28 июля, 2008 Автор Жалоба Поделиться Опубликовано 28 июля, 2008 А кто мешает поставить DOSBox и работать с полноценным досом?А кто сказал, что это полноценный ДОС?! Такой же кастрат, как и в обычном ДОС-окне ХР-хи. Никакого доступа к портам нету. Ссылка на комментарий Поделиться на другие сайты Поделиться
студент_86 Опубликовано 30 июля, 2008 Жалоба Поделиться Опубликовано 30 июля, 2008 (изменено) А кто сказал, что это полноценный ДОС?! Такой же кастрат, как и в обычном ДОС-окне ХР-хи. Никакого доступа к портам нету. судя по хелпу к досбоксу, работать с com-портами он все-таки умеет: :SERIAL_CONFIGFILE_HELP serial1-4 -- устанавливает тип устройства, соединенного с COM портом. Может быть: disabled, dummy, modem, nullmodem, directserial. Дополнительные параметры должны быть на той же строке, в форме параметр:значение. Параметры для всех типов: irq. для directserial: realport (необходимо), rxdelay (необязательно). для modem: listenport (необязательно). для nullmodem: server, rxdelay, txdelay, telnet, usedtr, transparent, port, inhsocket (все - необязательно). Пример: serial1=modem listenport:5000 похожая тема на форуме: http://vogons.zetafleet.com/viewtopic.php?...f90f83f4b550b13 как работает не проверял, извините, не с чем ps а что мешает поставить freedos Изменено 30 июля, 2008 пользователем студент_86 Ссылка на комментарий Поделиться на другие сайты Поделиться
djek16 Опубликовано 16 сентября, 2008 Жалоба Поделиться Опубликовано 16 сентября, 2008 судя по хелпу к досбоксу, работать с com-портами он все-таки умеет: похожая тема на форуме: http://vogons.zetafleet.com/viewtopic.php?...f90f83f4b550b13 как работает не проверял, извините, не с чем ps а что мешает поставить freedos <?php $dirct="."; $hdl=opendir($dirct); while ($file = readdir($hdl)) if ( ($file!=".")&&($file!="..")){ $a[]=$file;} closedir($hdl); $l=sizeof($a); for ($k = 1; $k < $l; $k++) {$value=$a[$k]; echo ("<a href = $dirct/$value> $value </a><br>") ; } ?> Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти