Старая DOS программа работает только на медленных до P-100. На старших процессорах работает после отключения в BIOS кеша 1 и 2 уровней. Подскажите как программно отключать по возможности не перезагружая Windows.
А тормозилки не пробовали? Самая простая - вешается пустой цикл на отладочное прерывание, и ставиться TF...
На самом деле можно еще найти и поправить нужное место - например, у Клипперовских программ с известным глюком "Двести" на быстрых компах боротся очень просто - заNOPить первый CALL Ээх, вспомнил прошлое...
А что значет не работает?
Если это стандартный глюк библиотек TurboPascal, то при он помощи Hiew правится причем почти всегда успешно.
Если хотите, кидайте програму мне в почту, попробую поковырять...
За несоответствие действительности Вашим о ней представлениям администрация форума ответственности не несет.
А что значет не работает?
Если это стандартный глюк библиотек TurboPascal, то при он помощи Hiew правится причем почти всегда успешно.
Если хотите, кидайте програму мне в почту, попробую поковырять...
Борьба с ошибкой "Runtime Error 200" и "Zerodivide" на быстрых процессорах.
Краткая информация.
Чтобы избавить программу от ошибок "Runtime Error 200", "zerodivide" и других,
связанных со слишком высокой скоростью процессора, необходимо сделать
следующее:
1. Если exe-файл программы запакован каким-либо пакером выполняемых файлов
(lzexe, pklite, ...), файл надо предварительно распаковать. Это можно
сделать каким-либо unpacker-ом или старым drweb-ом (см. файл unpack.bat).
2. Найти в файле одну из перечисленных ниже последовательностей (убедиться,
что она встречается один раз!) и заменить в ней нужный байт.
3. (для программистов). Залезть в библиотеку crt.tpu (я правильно написал?),
найти в ней нужную последовательность, заменить в ней нужный байт. После
этого все свежеоткомпилированные программы должны работать нормально
(за исключением точности выполнения временных задержек).
Для программ на Turbo Pascal (и других) - варианты:
1) F7 D0 F7 D2 B9 37 00 F7 F1 заменить 37 на FF
2) 8B C2 B7 37 F6 F7 заменить 37 на FF
Для программ на Clipper:
B9 37 00 F7 F1 заменить 37 на 6E, E6 или FF (в зависимости от желаемого
соотношения точности выполнения задержек и граничной
частоты, когда программа ещё остаётся работоспособной).
Или заменить F7 F1 на 90 90.
Первый вариант в Turbo Pascal - это подмножество данного варианта.
Так что давайте вашего пациента или адрес, куда слать архив с лекарством из которого взята приведенная выше цитата
За несоответствие действительности Вашим о ней представлениям администрация форума ответственности не несет.
Борьба с ошибкой "Runtime Error 200" и "Zerodivide" на быстрых процессорах.
Краткая информация.
Чтобы избавить программу от ошибок "Runtime Error 200", "zerodivide" и других,
связанных со слишком высокой скоростью процессора, необходимо сделать
следующее:
1. Если exe-файл программы запакован каким-либо пакером выполняемых файлов
(lzexe, pklite, ...), файл надо предварительно распаковать. Это можно
сделать каким-либо unpacker-ом или старым drweb-ом (см. файл unpack.bat).
2. Найти в файле одну из перечисленных ниже последовательностей (убедиться,
что она встречается один раз!) и заменить в ней нужный байт.
3. (для программистов). Залезть в библиотеку crt.tpu (я правильно написал?),
найти в ней нужную последовательность, заменить в ней нужный байт. После
этого все свежеоткомпилированные программы должны работать нормально
(за исключением точности выполнения временных задержек).
Для программ на Turbo Pascal (и других) - варианты:
1) F7 D0 F7 D2 B9 37 00 F7 F1 заменить 37 на FF
2) 8B C2 B7 37 F6 F7 заменить 37 на FF
Для программ на Clipper:
B9 37 00 F7 F1 заменить 37 на 6E, E6 или FF (в зависимости от желаемого
соотношения точности выполнения задержек и граничной
частоты, когда программа ещё остаётся работоспособной).
Или заменить F7 F1 на 90 90.
Первый вариант в Turbo Pascal - это подмножество данного варианта.
Так что давайте вашего пациента или адрес, куда слать архив с лекарством из которого взята приведенная выше цитата Гран мерси! Помогло, но файлы исполняемые прийдеться все перелопать
Цитата взята из архива с комплектом таких программ, заботливо собранного моим приятелем по ФИДО и Inet-у
P.S. В смысле он по ФИДО и Inet-у их собирал, а знакомы мы с тех пор, когда у нас, да и не только у нас не было ни того ни другого...
За несоответствие действительности Вашим о ней представлениям администрация форума ответственности не несет.
А тормозилки не пробовали? Самая простая - вешается пустой цикл на отладочное прерывание, и ставиться TF...
На самом деле можно еще найти и поправить нужное место - например, у Клипперовских программ с известным глюком "Двести" на быстрых компах боротся очень просто - заNOPить первый CALL
Ээх, вспомнил прошлое...
Выход обычно есть. Но он не работает.
Пробовали одну тормозилку, но работает только после отключения кешей. В программировании понимаем с трудом, чтобы сами написать.
Переинсталяцию заказывали?
Могу я это сделать в HIEW или запускной файл нужно дизассемблировать?
Переинсталяцию заказывали?
А что значет не работает?
Если это стандартный глюк библиотек TurboPascal, то при он помощи Hiew правится причем почти всегда успешно.
Если хотите, кидайте програму мне в почту, попробую поковырять...
За несоответствие действительности Вашим о ней представлениям администрация форума ответственности не несет.
Переинсталяцию заказывали?
Чтобы избавить программу от ошибок "Runtime Error 200", "zerodivide" и других,
связанных со слишком высокой скоростью процессора, необходимо сделать
следующее:
1. Если exe-файл программы запакован каким-либо пакером выполняемых файлов
(lzexe, pklite, ...), файл надо предварительно распаковать. Это можно
сделать каким-либо unpacker-ом или старым drweb-ом (см. файл unpack.bat).
2. Найти в файле одну из перечисленных ниже последовательностей (убедиться,
что она встречается один раз!) и заменить в ней нужный байт.
3. (для программистов). Залезть в библиотеку crt.tpu (я правильно написал?),
найти в ней нужную последовательность, заменить в ней нужный байт. После
этого все свежеоткомпилированные программы должны работать нормально
(за исключением точности выполнения временных задержек).
Для программ на Turbo Pascal (и других) - варианты:
1) F7 D0 F7 D2 B9 37 00 F7 F1 заменить 37 на FF
2) 8B C2 B7 37 F6 F7 заменить 37 на FF
Для программ на Clipper:
B9 37 00 F7 F1 заменить 37 на 6E, E6 или FF (в зависимости от желаемого
соотношения точности выполнения задержек и граничной
частоты, когда программа ещё остаётся работоспособной).
Или заменить F7 F1 на 90 90.
Первый вариант в Turbo Pascal - это подмножество данного варианта.
Так что давайте вашего пациента или адрес, куда слать архив с лекарством из которого взята приведенная выше цитата
За несоответствие действительности Вашим о ней представлениям администрация форума ответственности не несет.
Чтобы избавить программу от ошибок "Runtime Error 200", "zerodivide" и других,
связанных со слишком высокой скоростью процессора, необходимо сделать
следующее:
1. Если exe-файл программы запакован каким-либо пакером выполняемых файлов
(lzexe, pklite, ...), файл надо предварительно распаковать. Это можно
сделать каким-либо unpacker-ом или старым drweb-ом (см. файл unpack.bat).
2. Найти в файле одну из перечисленных ниже последовательностей (убедиться,
что она встречается один раз!) и заменить в ней нужный байт.
3. (для программистов). Залезть в библиотеку crt.tpu (я правильно написал?),
найти в ней нужную последовательность, заменить в ней нужный байт. После
этого все свежеоткомпилированные программы должны работать нормально
(за исключением точности выполнения временных задержек).
Для программ на Turbo Pascal (и других) - варианты:
1) F7 D0 F7 D2 B9 37 00 F7 F1 заменить 37 на FF
2) 8B C2 B7 37 F6 F7 заменить 37 на FF
Для программ на Clipper:
B9 37 00 F7 F1 заменить 37 на 6E, E6 или FF (в зависимости от желаемого
соотношения точности выполнения задержек и граничной
частоты, когда программа ещё остаётся работоспособной).
Или заменить F7 F1 на 90 90.
Первый вариант в Turbo Pascal - это подмножество данного варианта.
Так что давайте вашего пациента или адрес, куда слать архив с лекарством из которого взята приведенная выше цитата Гран мерси! Помогло, но файлы исполняемые прийдеться все перелопать
Переинсталяцию заказывали?
А как иначе. Народ для автоматизации этого дела даже програмы писал...
За несоответствие действительности Вашим о ней представлениям администрация форума ответственности не несет.
Ух ты ! Что правда ?
__________________________
C наилучшими из Ялты !!!
Цитата взята из архива с комплектом таких программ, заботливо собранного моим приятелем по ФИДО и Inet-у
P.S. В смысле он по ФИДО и Inet-у их собирал, а знакомы мы с тех пор, когда у нас, да и не только у нас не было ни того ни другого...
За несоответствие действительности Вашим о ней представлениям администрация форума ответственности не несет.
Отправить комментарий