By Anonymous (not verified) , 27 May 2004
Старая DOS программа работает только на медленных до P-100. На старших процессорах работает после отключения в BIOS кеша 1 и 2 уровней. Подскажите как программно отключать по возможности не перезагружая Windows.
The content of this field is kept private and will not be shown publicly.

BBCode

  • No HTML tags allowed.
  • You may use the following BBCode tags:
    • [align]
    • [b]
    • [code]
    • [color]
    • [font]
    • [hr]
    • [i]
    • [img]
    • [list]
    • [quote]
    • [s]
    • [size]
    • [spoiler]
    • [sub]
    • [sup]
    • [table]
    • [u]
    • [url]
  • Web page addresses and email addresses turn into links automatically.
А тормозилки не пробовали? Самая простая - вешается пустой цикл на отладочное прерывание, и ставиться TF...

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

ilrix

21 years 9 months ago

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

ilrix

21 years 9 months ago

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

rgt

21 years 9 months ago

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

ilrix

21 years 9 months ago

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

rgt

21 years 9 months ago


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


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

ilrix

21 years 9 months ago


Борьба с ошибкой "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

21 years 9 months ago

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

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

Hidden

21 years 9 months ago

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

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

rgt

21 years 9 months ago

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