Kamrad.ru
 
 
дневники | кабинет | регистрация | календарь | участники | faq | правила | поиск | фотоальбом | каська | выйти
Kamrad.ru Kamrad.ru » Форумы общей тематики » Программы (software) » Старые проги на новых процессорах
новая тема  ответить следующая тема | предыдущая тема
Автор
 
mOOrmaN - offline mOOrmaN
Question07-03-2001 10:52 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Старые проги на новых процессорах

Некоторые программы скомпилированые на старых (ну там 386) машинах не хотят запускаться на P-II - выдают ошибку 200. Подскажите плис, как это вылечить? Где-то раньше видел тему в инете, да забыл где.

Xpert - offline Xpert
Smile07-03-2001 11:36 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



По-моему тебе сюда:
http://www.kamrad.ru/forum/Forum1/HTML/000218.html

------------------
Кто не боится Дьявола, тому не нужен бог.

mOOrmaN - offline mOOrmaN
Wink07-03-2001 16:13 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Спасибо, но дело не в скорости. Ошибка (о которой речь) возникает от заточености старых паскалевских компиляторов на архитектуру старых же 86 процессоров. Уже готовый екзешник можно отредактировать, но что именно?...

Alexvn - offline Alexvn
Smile07-03-2001 16:38 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Администратор
Буржуин проклятый



В теме по ссылке как раз и написано, что можно сделать. А где именно редактировать - не знаю.

Xpert - offline Xpert
Smile09-03-2001 03:00 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Я, конечно, мог бы вспомнить молодость, достать дебаггер и заново начать разбираться, где какие байтики надо поменять, чтобы программка работала. Но, все-таки, не буду. Могу только вкратце сказать, из-за чего такая фигня возникает. При компиляции паскалем программ, использующих библиотеку CRT (uses crt), в самом начале программы появляются два call-а на процедурки, устанавливающие всякия параметры и прерывания. В одной из процедурок есть что-то типа определения скорости проца, там хитрым образом засекается количество циклов проца, затраченных на выполнение какой-то фигни. Затем то-ли время, то-ли еще что-то (я не помню) делится на это число - получается некий параметр, определяющий скорость проца, он используется в delay-ях и еще где-то. Так вот, на быстрых процах количество циклов проца оказывается равным нулю, из-за чего далее возникает ошибка деления на 0 - та самая Runtime error 200.
Способов борьбы с этим много. Большинство описаны в ветке по ссылке.
Если очень надо, то могу поподробнее рассказать что и где конкретно глючит, но ты для этого должен нормально дружить с ассемблером.

------------------
Кто не боится Дьявола, тому не нужен бог.

mOOrmaN - offline mOOrmaN
Smile09-03-2001 11:03 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Ин принцЫп-то действительно надо. Есть пара старых прог (нечто вроде баз данных) которыми надо будет попользоваться некоторое время, и запускать при этом анрилы да архиваторы ну совсем неудобно. А на счёт дружбы с ассемблером я так знаю как он выглядит, call от mov отличу но всерьёз бодаться не способен, так что пардон

max3000 - offline max3000
Smile09-03-2001 16:07 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Всё так, как сказал Xpert, только наоборот.
Т.е. количество циклов не зависит от скорости проца, а зависит только время. И делится не время на кол-во циклов, а кол-во циклов на время.
Ускоряй системный таймер, тока потом придёться вручную время править (или написать прогу такую). Я впрочем могу такую прогу написать - для ускорения и корректировки времени, но боюсь, что она будет работать только в ДОС'е и не слишком новых виндах. Если надо пиши.

Xpert - offline Xpert
Smile09-03-2001 18:16 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



2 max3000
Ну да, так и есть. Просто давно было, уже плохо помню.

А прогу я (с одним парнем) написал уже, она садится резидентом и забивает нужные регистры. Поэтому ошибка деления на 0 не может возникнуть. Если эту программулинку запускать до нужной проги, то все будет работать. По крайней мере, у меня - работает.
Могу по почте заслать, если кому надо.

------------------
Кто не боится Дьявола, тому не нужен бог.

max3000 - offline max3000
Smile09-03-2001 20:21 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Зачем резиденты?
Просто ускоряется системный таймер. По тестам 800-й P3 станет, например сотым, если тест не будет трогать таймер, а в реале практически не замедлится. И всё будет работать как надо (если не будет трогать таймер). "Замедлить" можно где-то в 65535 раз.
Я, пожалуй, попробую написать прогу, но вот беда тестить негде, у самого 412МГц, вероятность ошибки очень низкая ~3%.

mOOrmaN - offline mOOrmaN
Thumbs up10-03-2001 12:16 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



2Xpert Надо, если не трудно зашли пожалуйста на orlov@tversu.ru
Кстати не очень понял: резидент в окне ДОС или для всей винды? (Хотя это уж не так принципиально)

Jazz - offline Jazz
10-03-2001 12:22 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Модератор
Freelancer



Мне тоже уже понадобилось.
aleks96@mail.ru

Спасибо.

Xpert - offline Xpert
Smile11-03-2001 05:54 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Двоим заинтересованным камрадам (Jazz & mOOrman) ушла передача в виде аттача . Т.е. разрекламированная мной утилитка обрела еще 2х новых владельцев.

------------------
Кто не боится Дьявола, тому не нужен бог.

Jazz - offline Jazz
Smile11-03-2001 06:59 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Модератор
Freelancer



2 Xpert

Спасибо.Пришло...

Romsan - offline Romsan
Arrow11-03-2001 10:19 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад-Банкир



Хотя уже договорились... но всеж...
Я пользовался просто замедлителем... ЦПУ-Киллер...

mOOrmaN - offline mOOrmaN
Thumbs up14-03-2001 07:10 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Xpert, спасибо, то что надо!

GoldenAndy - offline GoldenAndy
Smile15-03-2001 08:51 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Есть у меня програмулина, pasp2fix называется.
Она сканит прогу (ЕХЕ-файл) и исправляет ошибку деления на 0. После этого хоть на третьем пне 800 гоняй!

пишите по goldenandy@pisem.net - пришлю...

Текущее время: 07:25
новая тема  ответить следующая тема | предыдущая тема
 
Перейти:

версия для печати   отправить эту страницу по e-mail   подписаться на эту тему

 
Powered by: vBulletin Version 2.0.1
Copyright ©2000, 2001, Jelsoft Enterprises Limited.
Любое использование материалов сайта
возможно только с разрешения его администрации.


 

Рейтинг@Mail.ru
Рейтинг@Mail.ru