5

CP/M 2.2 で Turbo Pascal 3.01A を実行しています。Turbo Pascal の R メニュー オプションを使用して実行している私の Pascal プログラムにバグがあり、無限ループに陥ったとします。プログラムを中断して Turbo Pascal メニューに戻る特別な制御文字はありますか?

4

2 に答える 2

8

{U+} ディレクティブにより、コンパイルされたコードは各ステートメントの後にキーがヒットしたかどうかをチェックします。そうであれば、^C のキーストロークがチェックされます。^C でない場合、キーストロークは破棄されます。これにより、プログラムを中断することができますが、動作が遅くなり、タイプアヘッド機能が無効になります。残念ながら、CP/M はキーボード割り込みをまったく提供していません (ただし、一部の CP/M 実装では提供されている場合があります)。Turbo Pascal に独自のキーボード バッファリングを実装するオプションがあればいいのですが、私は知りません。

于 2010-10-02T19:16:55.200 に答える
5

Turbo Pascal 3 プログラムの開始時 (Programステートメントの下) に Compiler Directive があり{$U+}ます。CTRLこれにより、 +を実行できるようになりますC。これは、プログラムの実行速度が遅くなるため、プログラムのデバッグ中にのみ使用してください。問題なく動作する場合は、削除してからプログラムをコンパイルします。

通常、Turbo Pascal 3 では、コンパイラに一連のデフォルト コンパイラ ディレクティブがあります。通常、「U - ユーザー割り込み」はデフォルトでオフになっています。

つい最近、Turbo Pascal プログラムで見つけたもう 1 つのことは、プログラムのデバッグ中にこれを使用していて、何らかの理由で機能していなかったことです。そこで何が起こっているのかわからず、プログラムを終了するには、この組み合わせを押し続ける必要があることがわかりました。プログラムの実行速度と関係があるのか​​ 、それともネストされたループの使用がこれを引き起こしたのかは不明です.

于 2010-08-22T07:22:26.377 に答える