2010-04-21 2 views
5

CP/M 2.2에서 Turbo Pascal 3.01A를 실행하고 있습니다. 터보 파스칼의 R 메뉴 옵션을 사용하여 실행 한 내 파스칼 프로그램에 버그가있어 무한 루프가 발생한다고 가정합니다. 내 프로그램을 방해하고 Turbo Pascal 메뉴로 돌아갈 특별한 제어 문자가 있습니까?정지 프로그램을 종료하고 Turbo Pascal 3으로 돌아 가기

+0

와우! 왜 그런지 물을 수 있을까요? –

+3

@Neil Butterworth, 단지 향수. 엄청나게 불투명 한 오늘날의 세계에서 탈출하고, 단지 당신, 코드, 기계, 그리고 이해하기에 충분히 작은 도서관이있는 날에 돌아오고있는 척하는 것은 매우 편안하고 만족스러운 무언가가 있습니다. 그리고 저는이 세월이 지난 후에도 터보 파스칼은 쾌적한 작업 환경이라고 말합니다 - 그리고 파스칼 언어가 덜 익숙해 져서 제가 그린 스푼에 지식과 경험을 쏟아 부 었다고 말해야합니다! –

+0

나는 당신이 의미하는 바를 알고있다. 나는 CP/M에서 일하는 것에 대한 행복한 기억을 가지고있다. 라이브러리가 없다. Z80 어셈블러로 작성된 모든 것. 나는 침입 키로 도울 수는 없다. 내 경험은 항상 리셋 버튼을 누른 다음 모니터에 뛰어 들어야한다는 것이었다. (그것은 젊은 사람들을위한 내장 된 디버거이다.) 무슨 일이 일어 났는지 알아봐. –

답변

6

{U +} 지시문은 컴파일 된 코드가 각 명령문 다음에 키가 눌 렸는지 여부를 검사합니다. 그렇다면 키 입력은^C;^C가 아니라면 키 스트로크가 삭제됩니다. 이 기능이 유용하게 프로그램을 중단시킬 수는 있지만, 속도가 느려지고 오히려 성가 시게 사전 선행 능력이 사라집니다. 불행하게도, CP/M은 어떤 종류의 키보드 인터럽트도 제공하지 못합니다 (일부 CP/M 구현은이를 제공 할 수 있습니다). 터보 파스칼이 자체 키보드 버퍼링을 구현할 수있는 옵션이 있다면 좋겠지 만 전혀 알지 못합니다.

4

터보 파스칼 3 프로그램 (Program 성명)의 시작 부분에 컴파일러 지침 {$U+}이 있습니다. 이렇게하면 CTRL + C을 할 수 있습니다. 프로그램의 실행 속도를 늦추므로 프로그램을 디버깅하는 동안에 만 항상 이것을 사용하십시오. 실행이 괜찮 으면 제거한 다음 프로그램을 컴파일하십시오.

일반적으로 Turbo Pascal 3에는 컴파일러의 기본 컴파일러 지시문 세트가 있습니다. "U - 사용자 인터럽트"는 일반적으로 기본적으로 해제되어 있습니다.

터보 파스칼 프로그램에서 최근에 발견 한 또 다른 사실은 프로그램을 디버깅하는 동안 사용하고 있었고 작동하지 않는 이유가있었습니다. 거기에서 무슨 일이 일어나고 있었는지 확실하지 않고 프로그램을 종료시키기 위해이 조합을 유지해야한다는 것을 알았습니다. 프로그램의 실행 속도와 관련이 있는지 또는이 문제를 일으키는 중첩 루프를 사용했는지 확실하지 않습니다.