Программное отключение кеша 1 и 2 уровня в Intel Pentium II

Старая DOS программа работает только на медленных до P-100. На старших процессорах работает после отключения в BIOS кеша 1 и 2 уровней. Подскажите как программно отключать по возможности не перезагружая Windows.

Аватар пользователя great coder

А тормозилки не пробовали? Самая простая - вешается пустой цикл на отладочное прерывание, и ставиться TF...

На самом деле можно еще найти и поправить нужное место - например, у Клипперовских программ с известным глюком "Двести" на быстрых компах боротся очень просто - заNOPить первый CALL;)
Ээх, вспомнил прошлое...

Выход обычно есть. Но он не работает.

Пробовали одну тормозилку, но работает только после отключения кешей. В программировании понимаем с трудом, чтобы сами написать.

Переинсталяцию заказывали?

Могу я это сделать в HIEW или запускной файл нужно дизассемблировать?

Переинсталяцию заказывали?

Аватар пользователя rgt

А что значет не работает?
Если это стандартный глюк библиотек TurboPascal, то при он помощи Hiew правится причем почти всегда успешно.
Если хотите, кидайте програму мне в почту, попробую поковырять...

За несоответствие действительности Вашим о ней представлениям администрация форума ответственности не несет.

rgt писал(-а):
А что значет не работает?
Если это стандартный глюк библиотек TurboPascal, то при он помощи Hiew правится причем почти всегда успешно.
Если хотите, кидайте програму мне в почту, попробую поковырять...
Вылетает с ошибкой 200 и указанием адреса

Переинсталяцию заказывали?

Аватар пользователя rgt

Цитата:

Борьба с ошибкой "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 - это подмножество данного варианта.


Так что давайте вашего пациента или адрес, куда слать архив с лекарством из которого взята приведенная выше цитата

За несоответствие действительности Вашим о ней представлениям администрация форума ответственности не несет.

rgt писал(-а):
Цитата:

Борьба с ошибкой "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 - это подмножество данного варианта.


Так что давайте вашего пациента или адрес, куда слать архив с лекарством из которого взята приведенная выше цитата Гран мерси! Помогло, но файлы исполняемые прийдеться все перелопать

Переинсталяцию заказывали?

Аватар пользователя rgt

Цитата:
Помогло, но файлы исполняемые прийдеться все перелопать

А как иначе. Народ для автоматизации этого дела даже програмы писал...

За несоответствие действительности Вашим о ней представлениям администрация форума ответственности не несет.

rgt писал(-а):
А как иначе. Народ для автоматизации этого дела даже програмы писал...

Ух ты ! Что правда ?

__________________________
C наилучшими из Ялты !!!

Аватар пользователя rgt

Цитата взята из архива с комплектом таких программ, заботливо собранного моим приятелем по ФИДО и Inet-у
P.S. В смысле он по ФИДО и Inet-у их собирал, а знакомы мы с тех пор, когда у нас, да и не только у нас не было ни того ни другого...

За несоответствие действительности Вашим о ней представлениям администрация форума ответственности не несет.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей