Система программирования Паскаль-монитор версии 15.0 от 15.02.1982 г. является наиболее продвинутой, имеющимся в распоряжении нашего коллектива. Она включает в себя пакетный компилятор, диалоговой отладчик, а также ряд вспомогательных программ для редактирования текстов на Паскале и работой с личными библиотеками пользователя мониторной системы "Дубна"(*PERSO).
Эта система имеет ряд особенностей при организации диалогового режима, в отличие от классического Паскаля на ПЭВМ.
В начале вставим стандартный паспорт вызова Паскаль-Монитора:
ШИФP 410300 ЗC5^ //Шифр пользователя Ильина А.П. и стандартный паспорт МС "Дубна".
ОЗУ 32^ // 32 килослова. Максимально доступная ОЗУ для пользовательской программы.
TEЛE^ //Устанавливается при работе с терминалами. Обязательно для организации диалога
EEB1A3 // Вызов МС "Дубна"
*NAME TECT // Заголовок программы (опционально). Если он не нужен оставить просто *NAME
*CALL FICMEMОRУ //Опция обязательна
*LIBRARУ:13 // Библиотека МС "Дубна" с системой Паскаль-Монитор
*NО LIST //Убрать если нужна выдача листинга и работа с диалоговым отладчиком.
*PASCAL
Добавим тело программы:
PRОGRAM TEST(INPUT,ОUTPUT,PASTEL); //PASTEL - переменная, отвечающая за работу с терминалом и диалоговым отладчиком. Иногда можно обойтись без нее.
VAR
A,B,C,D: INTEGER;
PASTEL:ARRAУ[0:25] ОF CHAR; //Устанавливаем длину выдачи.
PRОCEDURE PASBIND(VAR X:TEXT); EXTERNAL; //Обязательная процедура для организации ввода с терминала.
BEGIN
PASTEL[3]:=CHR(0); //Подавление выдачи диалогового отладчика.
WRITELN ('BBEДИTE ЧETЫPE ЧИCЛA:' );
PASBIND(INPUT); //Запускаем процедуру ввода данных с терминала.
READLN (A,B,C,D);
WRITELN ('ИX CУMMA: ', A+B+C+D);
READLN
END.
*EXECUTE
*END FILE
Далее в КРАБе даем команду на формирование подсистемы.:
Ф ПС
ШИФP 410300000000
ПОДCИCTEMA BKЛЮЧEHA
BОЙTИ? (ДA,HET)ДА
Результат:
*NAME TECT
*CALL FICMEMОRУ
*LIBRARУ:13
*NО LIST
*PASCAL
*EXECUTE
BBEДИTE ЧETЫPE ЧИCЛA:
1 2 3 4
ИX CYMMA: 10
GET(F) EOF=TRUE
INPUT
PASCAL PM DUMP 3615 STACK LENGTH. NAME= TEST.LINE=13
A=1. B=2. C=3. D=4.
PASCAL PMD END -
То же с включенным листингом, диалоговым отладчиком и без PASTEL:
PASCAL COMPILER 15.0 (15.02.82)
00001 1 0 PROGRAM TEST(INPUT,OUTPUT);
00001 2 1 VAR
00001 3 1 A,B,C,D: INTEGER;
00013 4 1 PROCEDURE PASBIND(VAR X:TEXT); EXTERNAL;
00013 5 2 BEGIN
00014 6 2 WRITELN ('BBEДИTE ЧETЫPE ЧИCЛA:' );
00017 7 2 PASBIND(INPUT);
00021 8 2 READLN (A,B,C,D);
00030 9 2 WRITELN ('ИX CYMMA: ', A+B+C+D);
00036 10 2 READLN
WHAT=
00050 11 0 END.
*EXECUTE
WHAT=
BBEДИTE ЧETЫPE ЧИCЛA:
1 2 3 4
ИX CYMMA: 10
GET(F) EOF=TRUE
INPUT
PASCAL PM DUMP 3619 STACK LENGTH. NAME= TEST.LINE=11
A=1. B=2. C=3. D=4.
PASCAL PMD END
- Войдите или зарегистрируйтесь, чтобы оставлять комментарии