Завершите программу зависания и вернитесь к Turbo Pascal 3

Я использую Turbo Pascal 3.01A на CP/M 2.2. Предположим, что моя программа на Паскале, которую я запускаю, используя опцию меню R в Турбо Паскале, имеет ошибку и входит в бесконечный цикл. Есть ли специальный управляющий символ, который будет прерывать мою программу и возвращаться в меню Turbo Pascal?

2 ответа

Решение

Директива {U+} заставит скомпилированный код проверять после каждого оператора, нажата ли клавиша. Если это так, нажатие клавиши будет проверено на ^C; если нет ^ C, нажатие клавиши будет отменено. Хотя это полезно для прекращения работы программы, она замедляет работу, а также довольно раздражающе убивает возможность опережающего ввода. К сожалению, CP/M не предоставляет никаких клавиатурных прерываний (хотя некоторые реализации CP / M могут их предоставлять), поэтому лучшей альтернативы нет. Было бы неплохо, если бы у Turbo Pascal была возможность реализовать собственную буферизацию клавиатуры, но я не знаю ни одной.

В начале вашей программы Turbo Pascal 3 (под Program заявление) является директивой компилятора {$U+}, Это должно позволить вам сделать CTRL + C. Всегда используйте это только во время отладки вашей программы, так как это замедляет скорость выполнения вашей программы. Если все работает нормально, удалите его и затем скомпилируйте вашу программу.

Обычно в Turbo Pascal 3 компилятор имеет набор директив компилятора по умолчанию. U - User Interrupt обычно отключен по умолчанию.

Еще одна вещь, которую я обнаружил в своей программе Turbo Pascal совсем недавно, заключалась в том, что я использовал ее во время отладки своей программы, и по какой-то причине она не работала. Не уверен, что там происходит и обнаружил, что мне действительно нужно было удерживать эту комбинацию, чтобы заставить программу выйти. Не уверены, что это как-то связано со скоростью выполнения программы или это было связано с использованием вложенного цикла.

Другие вопросы по тегам