Сектор истори ЭВМ

By admin, 29 апреля, 2022

Система программирования Паскаль-монитор версии 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