Двухканальная осциллографическая приставка к ПК 2003г №4

В этом форуме обсуждаются статьи напечатанные в журнале "Радио"

Двухканальная осциллографическая приставка к ПК 2003г №4

Сообщение кондёр » 04 янв 2009, 09:17

Просьба рассказать кто её собрал. Возник вопрос:скачал программу, запустил в W98SE, появилось чёрное окно с надписью:Runtime error 200 at 04BC:0091. Неужели без приставки больше ничего не появится? Если так и должно быть,то я начну сборку платы). Спасибо.
кондёр
 
Сообщения: 76
Зарегистрирован: 31 окт 2008, 01:07

Re: Двухканальная осциллографическая приставка к ПК 2003г №4

Сообщение ASD » 04 янв 2009, 10:54

Это известная особенность старых програм, написанных на языке Turbo Pascal еще для компьютеров с процессорами 286-486. Они отказываются работать на более быстрых компьютерах из-за переполнения счетчика во время инициализации программного модуля CRT. По Интернету в свое время ходили программы, исправляющие этот дефект. Одна из них называлась, кажется, CRT_FIX, поищите ее.
ASD
 
Сообщения: 644
Зарегистрирован: 11 мар 2008, 15:52

Re: Двухканальная осциллографическая приставка к ПК 2003г №4

Сообщение UrfinJ » 20 янв 2009, 20:37

Ошибка 200 - известная в Виндовсе.
Если запускать программу в чистом Досе, все работает нормально без проблем. Эмуляция Дос в Виндос помогает не всегда.
Можно попробовать запускать в виртуальной машине, но это замедляет процессы и без гарантии что получится.
Есть выход - переписать на Дельфи заново, код ведь одинаковый. Подключаемые библиотеки доступа к портам есть бесплатные, так что и в Вин ХР можно запустить без проблем.
UrfinJ
 
Сообщения: 236
Зарегистрирован: 06 июл 2008, 22:40

Re: Двухканальная осциллографическая приставка к ПК 2003г №4

Сообщение кондёр » 21 янв 2009, 02:51

Большое спасибо за ответы. Попробовал CRT_FIX-не помогло. Попробую еще P2fix. Наверно придется ДОС изучать, я его совсем не знаю. Может "замедлялку" для проца попробовать? В биосе понизить частоту не получается, с 2ГГц). Или нет, проще старое железо найти и на нем все запустить).
кондёр
 
Сообщения: 76
Зарегистрирован: 31 окт 2008, 01:07

Re: Двухканальная осциллографическая приставка к ПК 2003г №4

Сообщение UrfinJ » 25 янв 2009, 16:25

кондёр

Нет-нет!!!
В Вин98 есть возможность при загрузке после БИОС, выйти в чистый ДОС через нажатую клавишу F8 и выбрать чистый ДОС. Помню как все начинало работать без проблем. Изучать ДОС не надо, хотя это просто. Просто в появившемся черном экране с мигающим курсором надо вручную ввести путь, например: c:\MyProg\proga.exe
В дальнейшем чтобы не набирать эту строку, надо создать файл с расширением BAT, например Start.bat и записав в него например строчку c:\MyProg\proga.exe
Сохранить его по адресу C:\ то есть в корне диска. ( Это можно сделать и в Вин98 заранее).
Далее при начальной загрузке (конечно через F8) надо просто напечатать Start
Расширение BAT подразумевается по умолчанию, поэтому запустится сначала файл Start.bat , который отыскав внутри себя строку, запустит файл proga.exe, который находится по адресу c:\MyProg

По виртуальной машине - ссылка следующая: http://www.virtualbox.org/ (это если интересно, прога бесплатная, там и ДОС и Виндос и Линукс)

Что касается частоты проца. Он по большому счету не играет роли, если обмен идет через стандартные порты, у которых частота фиксированна и не зависит от шины и проца. По крайней мере я не знаю случая чтобы у нас на работе были проблемы с этим.
Замедлялка нужна только при работе в ОС, которая выше версии ДОС 6.22, в данном случае - Вин98 и выше.
UrfinJ
 
Сообщения: 236
Зарегистрирован: 06 июл 2008, 22:40

Re: Двухканальная осциллографическая приставка к ПК 2003г №4

Сообщение ASD » 25 янв 2009, 17:08

UrfinJ писал(а):Что касается частоты проца. Он по большому счету не играет роли, если обмен идет через стандартные порты

В данном случае порты не при чем. В языке Turbo Pascal есть программный модуль CRT, в котором кроме функций вывода на экран имеются и некоторые другие процедуры, например, программное формирование задержки. Чтобы эта задержка не зависела от тактовой частоты процессора, в самом начале работы любой паскальной программы автоматически производится подсчет числа программных циклов, выполняемых за определенный отрезок времени, отсчитываемый по системному таймеру, и на этом основании вычисляется константа, которая затем используется для правильного формирования различных задержек. Если процессор работает слишком быстро, счетчик циклов за заданное время успевает переполниться, вот и получается "Runtime error 200". CRT_FIX это вовсе не "замедлялка". Процессор работает с прежней скоростью, просто константа вычисляется иначе.

Думаю, после того, как кондёр применил CRT_FIX, ошибка 200 у него больше не появлялась, но произошла какая-то другая, с которой нужно разбираться отдельно.
ASD
 
Сообщения: 644
Зарегистрирован: 11 мар 2008, 15:52

Re: Двухканальная осциллографическая приставка к ПК 2003г №4

Сообщение UrfinJ » 27 янв 2009, 02:03

ASD

"Runtime error 200" в документации означает всего лишь деление на ноль, которое приводит к немедленной остановке программы, это если быть точным. А модуль CRT работает быстрее пропорционально скорости проца, давно проверено.
В Вин98 очень мало программ выдают такую ошибку 200, большинство прог ДОС работает нормально. Ошибки возникают при конфликте доступа к портам, например чтобы получить тики таймера, так как встроенный в ДОС таймер имеет точность в милисекундах, а не микросекундах, которые доступны только через порт.
Тут есть выход - надо пробовать перекомпилировать с всеми опциями проверки (которые обычно исключают для увеличения скорости работы), но как я понимаю текста исходника нет, тогда проблема.
UrfinJ
 
Сообщения: 236
Зарегистрирован: 06 июл 2008, 22:40

Re: Двухканальная осциллографическая приставка к ПК 2003г №4

Сообщение ASD » 27 янв 2009, 09:33

UrfinJ писал(а):"Runtime error 200" в документации означает всего лишь деление на ноль

Совершенно справедливо, именно оно в конце концов и происходит.
UrfinJ писал(а):В Вин98 очень мало программ выдают такую ошибку 200, большинство прог ДОС работает нормально...

Ошибка, о которой идет речь, возникает только в программах, написанных на турбопаскале, а это далеко не все DOS-программы. В свое время было известно, как "вылечить" сам компилятор, после чего новые программы работали нормально, а старую было достаточно перекомпилировать. Я, помнится, проделал такую операцию и широко пользовался этим компилятором.

Исходный текст программы, кстати, есть.
ftp://ftp.radio.ru/pub/2004/04/USD.zip
Я тоже хотел ее перекомпилировать, но не нашел в своих архивах упомянутый выше доработанный компилятор.
ASD
 
Сообщения: 644
Зарегистрирован: 11 мар 2008, 15:52

Re: Двухканальная осциллографическая приставка к ПК 2003г №4

Сообщение UrfinJ » 27 янв 2009, 09:38

Подкину несколько ссылок по решению проблемы

http://students.uni-vologda.ac.ru/pages/pm98/mfv/crt/TP7PTCH5.HTM
http://zx.pk.ru/archive/index.php/t-1421.html
http://offline.computerra.ru/1998/264/1556/
http://support.ascon.ru/download.php?act=cat&cat=2

Они лечат готовые ЕХЕ файлы.

ASD
Я написал именно про Паскаль-программы, что они в большинстве работают нормально без ошибки 200.
А компилятор лежит в сети по многим ссылкам.
UrfinJ
 
Сообщения: 236
Зарегистрирован: 06 июл 2008, 22:40

Re: Двухканальная осциллографическая приставка к ПК 2003г №4

Сообщение ASD » 27 янв 2009, 10:46

UrfinJ писал(а):А компилятор лежит в сети по многим ссылкам.

Да не нужен он мне сейчас! Сильно потребуется - найду.
ASD
 
Сообщения: 644
Зарегистрирован: 11 мар 2008, 15:52

След.

Вернуться в Журнал "РАДИО"

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 150