Борьба с ошибкой "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" и других,
связанных со слишком высокой скоростью процессора, необходимо сделать
следующее:
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 - это подмножество данного варианта.
Так что давайте вашего пациента или адрес, куда слать архив с лекарством из которого взята приведенная выше цитата