2010-04-21 59 views
5

我在CP/M 2.2上運行Turbo Pascal 3.01A。假設我使用Turbo Pascal中的R菜單選項運行的Pascal程序有一個錯誤並進入無限循環。是否有一個特殊的控制角色會中斷我的程序並返回到Turbo Pascal菜單?終止掛起程序並返回到Turbo Pascal 3

+0

哇!我們可以問爲什麼? – 2010-04-21 14:12:45

+3

@尼爾·巴特沃斯,只是懷舊。對於從當今世界的巨大而不透明的圖書館中逃離出來,有一些東西是非常放鬆和滿意的,相反,假裝當天只有你,你的代碼,機器和一個足夠小的圖書館能夠理解。而且我必須說,即使在這麼多年之後,Turbo Pascal也是一個愉快的工作環境,而且現在我已經掌握了Greenspun的知識和經驗,所以Pascal語言的吸引力減少了! – 2010-04-21 14:27:21

+0

我知道你的意思 - 我對在CP/M上工作的愉快回憶 - 沒有任何庫,一切用Z80彙編編寫。我害怕 - 我的經驗總是你必須打開重置按鈕,然後進入顯示器(這是任何年輕人的內置調試器)到找出發生了什麼事。 – 2010-04-21 14:42:13

回答

6

{U +}指令將導致編譯後的代碼在每個語句後檢查一個鍵是否已被命中。如果是這樣,鍵擊將檢查^ C;如果不是^ C,擊鍵將被丟棄。雖然這有用地允許該程序被中止,但它減慢了速度,而且令人煩惱地殺死了提前提示能力。不幸的是,CP/M沒有提供任何類型的鍵盤中斷(儘管一些CP/M實現可能提供一個),所以沒有更好的選擇。如果Turbo Pascal有一個選項可以實現自己的鍵盤緩衝,但是我不知道。

4

在您的Turbo Pascal 3程序開始時(在Program聲明下)是Compiler Directive {$U+}。這應該允許你做一個CTRL + C。只有在調試程序時始終使用它,因爲它會降低程序的執行速度。如果它運行正常,請將其刪除,然後編譯您的程序。

通常在Turbo Pascal 3中,編譯器有一組默認編譯器指令。 「U用戶中斷」通常默認是關閉的。

我最近在我的Turbo Pascal程序中發現的另一件事是我在調試我的程序時使用了這個功能,並且出於某種原因它沒有工作。不知道那裏發生了什麼,發現我真的不得不按住這個組合來讓程序退出。不確定它是否與程序的執行速度有關,或者是否使用導致這種情況發生的嵌套循環。