[image]

Эмуляция среды ДОС под Windows XP

 
1 2 3

ad2

втянувшийся

Возникла такая проблема: имеется прибор, для работы с которым используется програмное обеспечивание (ещё 90-х годов), разработанное под дос, в 95-й выньде тоже работает нормально. Собственно, программа работает с прибором через COM-порт, и в плане работы именно с прибором проблемы нет. Однако есть большое но - для нормальной работы используется русификатор keyrus.exe. Получается такая фигня: запускаешь программу, а точнее пакетный файл и вначале шрифт нормальный, затем, переключаешь программно режим работы прибора, при этом загружается другая досовская программа и выползают крякозябры.
Если всё под досом, то там этот несчастный русификатор висит резидентом, и при запуске другой программы (а там их куча, отдельно для старта, для тех или иных операций, для выхода из режима и т.п.) таких проблем нет. Конечно, было бы здорово найти новую версию программы, да фиг там, фирма - производитель (ЛОМО) в этом плане и не чешется.
Собственно, такой вот глупый вопрос - можно ли как-то эмулировать среду дос, т.е., чтобы всякие там резиденты работали нормально под XP? Не хочется ставить Windows95. В принципе, если бы не русификатор, то всё было бы нормально.
   

Vale

Сальсолёт

Во-1, не 95, а 98SE
Во-2, вроде ж в окне ДОС в ХР русификация есть
   

au

   
★★☆
А если открыть окно "доса" (run > cmd.exe) и там запустить всё, тоже не получается как надо?
   1.5.01.5.0
RU Серокой #09.02.2009 20:44
+
-
edit
 

Серокой

координатор
★★★★
А в "Панель управления -> Язык и региональные стандарты -> Дополнительно" стоит, чтобы в не-юникодовских программах был русский язык?

// Ого, как ж программа напрямую с СОМ-портами работает!?
   
+
-
edit
 

Kernel3

аксакал

А если ничё из вышеперчисленного не поможет, скачать эмулятор ДОСа :)
   
RU Kernel3 #09.02.2009 21:16  @Серокой#09.02.2009 20:44
+
-
edit
 

Kernel3

аксакал

Серокой> // Ого, как ж программа напрямую с СОМ-портами работает!?

Ну как "как"... Байтик туды, байтик - сюды :F
   

ad2

втянувшийся

Vale> Во-1, не 95, а 98SE
Vale> Во-2, вроде ж в окне ДОС в ХР русификация есть

Во-1, не в 98SE, а в 95:)). На компе переход к XP был от 95.
А во-2, нет там русификации.

Программа то запускается, и русификатор русифицирует, не знаю правда, как, то ли заменяет таблицу символов, толи резидентно висит (скорее последнее). Дело в том, что при вызове из дос-программы другой (типа через EXEC) в том же окне русификатор выгружается, скорее всего. Впрочем, завтра попробую ещё раз через окно, и скачаю эмулятор доса.
Языки и региональный стандарты вряд ли помогут, программы то все досовские, а над окном (эмуляции доса) я уже поиздевался, ничего не выходит.
   

Mishka

модератор
★★★
ad2> Во-1, не в 98SE, а в 95:)). На компе переход к XP был от 95.

Вале тебе говорит, что ставить надо 98, а не 95. :)

ad2> А во-2, нет там русификации.

В смысле нет? Ты про саму 95-98 или про ДОС только.

ad2> Программа то запускается, и русификатор русифицирует, не знаю правда, как, то ли заменяет таблицу символов, толи резидентно висит (скорее последнее).

И то, и другое? Таблицу заменяет для показа символов, а резидентно весит для перекодировки вводимых с клавиатуры.

ad2> Дело в том, что при вызове из дос-программы другой (типа через EXEC) в том же окне русификатор выгружается, скорее всего. Впрочем, завтра попробую ещё раз через окно, и скачаю эмулятор доса.
Не должен, просто программа сама может таблицы фонтов сменить.

ad2> Языки и региональный стандарты вряд ли помогут, программы то все досовские, а над окном (эмуляции доса) я уже поиздевался, ничего не выходит.

у тебя должны быть проблемы доступа к СОМ портам, но эту проблему тут уже обсуждали.
   6.06.0

ad2

втянувшийся

ad2>> Во-1, не в 98SE, а в 95:)). На компе переход к XP был от 95.
Mishka> Вале тебе говорит, что ставить надо 98, а не 95. :)
Так 95-й не мой, я сам с этим спектрометром не работаю, просто просили помочь, 95-й, а также 98-й и мылениум ставить сам не хочу.
ad2>> А во-2, нет там русификации.
Mishka> В смысле нет? Ты про саму 95-98 или про ДОС только.
Я про программу под досом. Впрочем, почитал сейчас на ixbt про проблемы с запуском досовских программ под XP, узнал много нового, завтра буду экспериментировать. Вообще, поразительно, уж сколько лет как MS-DOS почил в бозе, а до сих проблем от него выше крыши.
ad2>> Программа то запускается, и русификатор русифицирует, не знаю правда, как, то ли заменяет таблицу символов, толи резидентно висит (скорее последнее).
Mishka> И то, и другое? Таблицу заменяет для показа символов, а резидентно весит для перекодировки вводимых с клавиатуры.
Да скорее всего. Правда, не знаю, как он это делает именно в эмуляторе, в чистом досе он, по идее, просто перехватывает прерывание от клавы и меняет при необходимости ссылку на таблицу символов. Но это в общем то неважно.
ad2>> Дело в том, что при вызове из дос-программы другой (типа через EXEC) в том же окне русификатор выгружается, скорее всего. Впрочем, завтра попробую ещё раз через окно, и скачаю эмулятор доса.
Mishka> Не должен, просто программа сама может таблицы фонтов сменить.
Тут дело в том, что изначально программа разрабатывалась до появления XP, соответственно, без учёта его особенностей. Запуск в режиме совместимости тоже не помогает, пожалуй надо поковыряться в config.nt, ну или действительно запускать по совету Kernel3 специальный эмулятор.
ad2>> Языки и региональный стандарты вряд ли помогут, программы то все досовские, а над окном (эмуляции доса) я уже поиздевался, ничего не выходит.
Mishka> у тебя должны быть проблемы доступа к СОМ портам, но эту проблему тут уже обсуждали.
Нет, с этим проблем как раз-то нет, то есть сигнал на прибор и с него проходит нормально. Никакие драйвера здесь не используются и прямой доступ к портам тоже вроде не требуется.
В общем, завтра поиздеваюсь над системой. Благодарю за советы.
   
RU Серокой #10.02.2009 02:09  @Kernel3#09.02.2009 21:16
+
-
edit
 

Серокой

координатор
★★★★
Kernel3> Ну как "как"... Байтик туды, байтик - сюды :F

Ага, и облом, запусти Dos navigator под XP, он к диску напрямую лезет. ;)
Или терминальную какую программу под ДОС же.
Я не понимаю, программа не должна(!) корректно работать с прибором через COM-порт!
   
+
-
edit
 

Balancer

администратор
★★★★★
NT для DOS-приложений эмулирует доступ к COM-портам. Раньше, вроде, так было. Соответственно, XP и выше тоже должны. Программа думает, что работает напрямую, но все данные проходят через драйвер-обработчик операционки.
   

pokos

аксакал

Для этих целей я пользовал DOSbox, была такая программка. Прекрасно эмулировала.
Если дело только в СОМ-порту и русификаторе, то эмулятор ни к чему.
Русификатор прописывается в autoexec.nt, и все дела. А СОМ-порты и так работают отлично.
   6.06.0
+
-
edit
 

varban

администратор
★★★☆
Еще один кириллизатор DOS'a:

http://varban.airbase.ru/old-airbase/files/CYRILLIC.rar

В режиме русификатора с раскладкой йцукен: cyrillic /s /c

Есть не только таблица 866, но и 855, также как и фонетическая раскладка.

Можно подгружать внешний шрифт.

Если сильно надо, могу найти утилитку, которая меняет только шрифт.

А если позарез, могу раскопать сорс (Борланд Си), который меняет встроенный в знакогенераторе видях, начиная с EGA :) Тогда можно скомпилировать утилитку и обойтись без резидента.
   7.07.0
+
-
edit
 

varban

администратор
★★★☆
Но по гамбургскому счету Мишка прав - хрюшке не нужны сторонные утилитки для запуска досовской программульке. Я использую cyrillic.com для работы только в гольном ДОСе, потому что лучше резидент, чем стандартная кириллизация досовских времен.

Но это уже риалтайм, в моем случае возможная операционка только DOS.
   7.07.0

ad2

втянувшийся

Всё решилось. Поблема, как оказалось, вообще не связана с эмуляцией доса, просто в бат-файлах для запуска самой программы неверно были прописаны пути, точнее говоря, эмулятор попросту не находил keyrus. Сейчас исправил пути, всё нормально заработало.

Серокой> Я не понимаю, программа не должна(!) корректно работать с прибором через COM-порт!
Так работает же! :))
   

ad2

втянувшийся

Как оказалось, я поторопился. Прав Серокой. Управвляющий сигнал на прибор (МФС-8) с компа проходит, а вот считывается непонятно что. Пришлось таки ставить 98SE и работать из под чистого доса, правда это мало помогло, оказывается, программа, написанная умельцами с ЛОМО (между прочим, на Форте, как указано в мануале) работает нормально только на компах не выше 486, а на пентиумах и выше не считывает с порта данные (или считывает неправильно). Как такое может быть, не понимаю. Более того, такая же байда была с программой на ИКС-40 (того же ЛОМО, естественно), пришлось использовать для него древнюю 486, потому что на специально купленном под него пентиуме программа не шла. Такое впечатление, что на ЛОМО какие-то вредители-программисты окопались.
   

HolyBoy

старожил

ad2> Пришлось таки ставить 98SE и работать из под чистого доса, правда это мало помогло, оказывается, программа, написанная умельцами с ЛОМО (между прочим, на Форте, как указано в мануале) работает нормально только на компах не выше 486, а на пентиумах и выше не считывает с порта данные (или считывает неправильно).

Бывает. Скомпилировано с жесткой оптимизацией под 486 процессор.
Тут другой вопрос: а почему бы не переписать эту программу? Под тот же линукс или ещё что-то? В смысле, если известны коды команд, которые надо подавать на устройство, известны расшифровки кодов ответов этого устройства, то переписать её на нормальный язык и использовать под нормальной ОС. Тогда и компьютеры можно мощные использовать (если надо), а можно и 486 продолжать использовать.
   

ad2

втянувшийся

Коды команд, разумеется, неизвестны, писать новую программу Ломовцы не будут и подробности и кодах команд не дадут, к сожалению. В принципе, если бы они были известны, то найти людей, которые напишут соответствующую программу (причём, бесплатно) несложно.
В общем, понятно, что придётся искать древний комп для прибора. Однако, досадно.
   

HolyBoy

старожил

ad2> Коды команд, разумеется, неизвестны, писать новую программу Ломовцы не будут и подробности и кодах команд не дадут, к сожалению.

Вы с ними связывались?
Вообще, ваша проблема решиться должна перекомпиляцией уже имеющейся у них программы под другой процессор. В любом случае, напрягите их. Вы ж их клиент, а не неизвестно кто.
   
+
-
edit
 

Mishka

модератор
★★★
HolyBoy> Бывает. Скомпилировано с жесткой оптимизацией под 486 процессор.
Это не оптимизация. Это программирование ожидания при помощи циклов (возможнжо пустых). Просто с таймером не умели работать.
   3.0.53.0.5

varban

администратор
★★★☆
Мне везло. Систему Кратер, которую я поддерживаю, разрабатывалась на экстишке, была запущена на 286/287, поработала на 386/387 DX, а теперь работает на 166 пне.
Ограничение, однако, есть: ISA слот.

Но я и не подумывал запустить риалтаймовскую систему под любыми вындами.
   1.0.154.481.0.154.48
NO Alexandrc #15.02.2009 21:25
+
-
edit
 

Alexandrc

аксакал

Ага, было такое. Причем реализация задержки через пустой цикл была в какой-то борландовской библиотеке и клиппере. Чтобы не перекомпилировать такие программы был написан специальный "замедлитель", резидент "тормозящий" процессор. Работал он под DOS. Скинуть к сожалению не могу, негде прочитать 5,25" диски, к тому же не факт, что они прочитаются. Ничего сложного в этой программe нет, попроси программеров пусть напишут.
Что-то типа программ по ссылкам:


404
А может и какая из них подойдет.
   
Это сообщение редактировалось 15.02.2009 в 21:35

ad2

втянувшийся

ad2>> Коды команд, разумеется, неизвестны, писать новую программу Ломовцы не будут и подробности и кодах команд не дадут, к сожалению.
HolyBoy> Вы с ними связывались?
HolyBoy> Вообще, ваша проблема решиться должна перекомпиляцией уже имеющейся у них программы под другой процессор. В любом случае, напрягите их. Вы ж их клиент, а не неизвестно кто.
Конечно же связывались, и долго объясняли, что прибор (ИКС-40) под пентиумом не работает. В конце концов они выдали что-то невразумительное насчёт архитектуры процессоров. Итог таков, что новые программы под эти приборы они писать не будут. Да и сами эти приборы уже не выпускают. Впрочем, древних 486-х по институту должно быыть навалом, так что найти-то машину несложно.
   
+
-
edit
 

Mishka

модератор
★★★
А протокол общениия с прибором они могут открыть? Если могут, то может проще свои программули написать?
   3.0.53.0.5

ad2

втянувшийся

Надеюсь, что могут и с ними по этому вопросу уже связываются, правда это дело не такое быстрое. А работать нужно уже сейчас.
   
1 2 3

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru