- Задержка, генерируемая Delay
В сети Интернет популярен неполноценный патч (см. ниже). Задержки, которые задаются процедурой Delay(), с этим патчем на разных машинах разные.
Вот другая процедура:
procedure Stop(Wait:LongInt); assembler;
asm
mov ah, 86h
mov dx, word ptr Wait
mov cx, word ptr Wait+2
int 15h
end; - Error 200
Программы, написанные на паскале (старые), вылетают с ошибкой "Runtime Error 200 (Division by zero)" / "Ошибка 200 (Деление на ноль)" на быстрых машинах типа PII-300.
Если в программе используется модуль CRT, то программа виснет при запуске из-за инициализации, которая потом используется процедурой Delay().
Инициализация происходит в любом случае - даже если эта процедура не используется в программе.
При написании своих программ используйте пропатченый CRT. (можно скачать с сайта) - Исправление уже написанных программ.
Чтобы заработала уже скомпилированная программа (чужая), возьмите hex-редактор (например, в School Pak есть HIEW) и:
Ищем: B93700F7F1
Меняем на: 6E (увеличение в 2 раза)
или на: 9090 (убрать деление вообще)
Программа _не_ должна быть запакована EXE-паковщиками. - Исправление CRT самостоятельно.
Для того, чтобы самому пропатчить CRT сделайте следующее.
В файле 'crt.asm', расположенном в каталоге 'BP\RTL\CRT', найдите строчки
NOT DX
MOV CX, 55
DIV CX
(они располагаются на строках 104-106).
Замените во второй строке значение '55' на что-то большее - например на '110' или '550'.
Либо можете удалить/закомментировать/заменить команду третьей строки на команду(ы) NOP. Затем, следуя инструкциям файла 'readme' из 'BP\RTL', создайте с помощью 'makefile', расположенного в том же каталоге, файлы 'TURBO.TPL' (для 'real mode') и 'TPP.TPL' (для 'protected mode').
Замените ими соответствующие файлы в каталоге 'BP\BIN'.
Патчить аналогичный модуль 'TPW.TPL' для Windows не обязательно, т.к. он не содержит такой ошибки.
Скачать сразу весь TURBO.TPL с патчем: TURBO.TPL (время задержки правильное)
Скачать установщик Turbo Pascal со всеми полезными патчами: Скачать Turbo Pascal School Pak
Скачать пропатченный (с неправильным временем задержки) модуль CRT (для разных версий Паскаля) с инструкцией по установке:
Нажмите для просмотра прикрепленного файла