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 程序中发现的另一件事是我在调试程序时使用它,但由于某种原因它无法正常工作。不知道那里发生了什么,发现我真的必须按住这个组合才能让程序退出。不确定它是否与程序的执行速度有关,或者是否是使用嵌套循环导致了这种情况的发生。

于 2010-08-22T07:22:26.377 回答