** ПЭВМ АГАТ **

15.05.1984

Школьница версий А1.1 и Э1.3

Ссылка на скан документа в архиве академика Ершова.

Разница между версиями понятна. У Apple нет кириллицы на клавишах и в знакогенераторе, нет цвета для текстовых режимов. У АГАТа это всё есть, кроме того, количество памяти позволило иметь дополнительные функции, и встроенный язык РОБИК. Текст явно написан с оглядкой на АГАТ-4, например, упоминается переключатель на клавиатуре.

APPENDIX A

СООТВЕТСТВИЕ РУССКОЙ И АНГЛИЙСКОЙ ЛЕКСИКИ В ОПИСЫВАЕМЫХ ВЕРСИЯХ

В связи с отсутствием на клавиатуре ЭВМ "APPLE" русских букв версия Э1.3 базируется на английской версии. Ниже приводятся соответствия между ключевыми словами, заголовками режимов и т.д. (кроме диагностических сообщений и названий стандартных процедур и функций - они приведены в приложениях...)

А.1 ОБЩЕЕ СИСТЕМНОЕ МЕНЮ.

      А1.1                                         Э1.3
********************************	********************************
*     ПРОГРАММНАЯ СИСТЕМА      *	*      PROGRAMMING SYSTEM      *
*                              *	*                              *
*     "Ш К О Л Ь Н И Ц А"      *	*      "S H C O L N I C A"     *
*                              *	*                              *
*    (НАЧАЛЬНЫЙ ЗАГРУЗЧИК)     *	*        (INITIAL LOADER)      *
*                              *	*                              *
*            ВЕРСИЯ 1          *	*          VERSION 1           *
*                              *	*                              *
*        НОВОСИБИРСК 1984      *	*       NOVOSIBIRSK 1984       *
*                              *	*                              *
********************************	********************************

   В СИСТЕМЕ ЕСТЬ:			THERE ARE IN SYSTEM:

     Р - РАПИРА-ИНТЕРПРЕТАТОР			R - RAPIRA-INTERPRETATOR
     Ф - РАЗМЕТКА РАБОЧИХ ДИСКОВ	    M - EXIT TO MONITOR

   ЧТО ?				  YOUR CHOICE:

А.2 КЛЮЧЕВЫЕ СЛОВА ЯЗЫКА РАПИРА.

А1.1	   Э1.3
БПС	   NLF
БУМАГУ	   PRINTER
В	   IN
ВИДА	   TYPE
ВВОД	   INPUT
ВКЛ	   ON
ВСЕ	   CLOSE
ВСЕХ	   ALL
ВЫБОР	   CASE
ВЫВОД	   OUTPUT
ВЫКЛ	   OFF
ВЫХОД	   EXIT
ДАННЫХ	   DATA
ДЗУ	   DISK
ДЛЯ	   FDR
ДО	   TO
ЗАКРЫТЬ	   STORE
3АЩИТУ	   PROTECT
И	   AND
ИЗ	   OF
ИЛИ	   OR
ИМЕН	   NAMES
ИМЕНА	   NAMES
ИНАЧЕ	   ELSE
КАК	   AS
КАТАЛОГ	   CATALOG
КНД	   END
КОНТРОЛЬ   CONTROL
МЕНЮ	   MENU
НА	   TO
НЕ	   NOT
ОТ	   FROM
ОТКРЫТЬ	   OPEN
ОТЛАДКУ	   DEBUG
ПАКЕТ	   PACKETS
ПОВТОР	   REPEAT
ПОЗИЦИЯ	   LOCATE
ПОКА	   WHILE
ПРОКРУТКУ  MONITOR
ПРОТОКОЛ   PROTOCOL
ПРОЦ	   PROC
ПУСК	   START
РАЗ	   TIMES
РАЗА	   TIME
РАПИРА	   JNO
РЕЗ	   RES
РОБИК	   ---
СЛЕД	   TRACE
СТЕРЕТЬ	   DELETE
СТОП	   STOP
СТРОК	   LINES
ТЕКСТОВ	   TEXTS
ТО	   THEN
ФАЙЛ	   FILE
ФАЙЛА	   FILE
ФАЙЛОВ	   FILES
ФУНЦ	   FUNC
ЧАСТ	   PARTIAL
ШАГ	   STEP
ЭКРАН	   DISPLAY
ЗАП	   REC
ФАЙЛ	   FILE
ПРОЦ	   PROC
ФУНЦ	   FUNC

СВОБОДНЫХ БЛОКОВ: 234	234 FREE BLOCKS

А.3 НАЗВАНИЯ РЕЖИМОВ (ИНФОРМАЦИОННАЯ СТРОКА ЭКРАНА)

       РЕЖИМ	               А1.1	                    Э1.3
  ОСНОВНОЙ	       ** РАПИРА-АГАТ 1.1 **	     RAPIRA-APPLE ][ PLUS
  ПРИОСТАНОВКА	       ** П А У З А **	                  P A U S E
  ОСТ. ПО ОШИБКЕ       ** О Ш И Б К А **	           ERROR PAUSE


     А1.1		                    Э1.3
********************************	********************************
*                              *	*                              *
*  ТЕКСТОВЫЙ РЕДАКТОР СИСТЕМЫ  *	*      RAPIRA TEXT EDITOR      *
*                              *	*                              *
*     "Ш К О Л Ь Н И Ц А"      *	*         (VERSION 4)          *
*                              *	*                              *
*      НОВОСИБИРСК 1985        *	********************************
*                              *	
********************************	

ПЕРЕЙТИ К СТРОКЕ     КАТАЛОГ	           SET LINE NUMBER	CATALOG
ЗАПОМНИТЬ ТЕКСТ	   СЧИТАТЬ ФАЙЛ	              SET TEXT	      LOAD FILE
ВЫДАТЬ НА БУМАГУ  ЗАПИСАТЬ ФАЙЛ	          WRITE TO PRINTER    SAVE FILE
ОЧИСТИТЬ БУФЕР	   СТЕРЕТЬ ФАЙЛ	            CLEAR BUFER	    DELETE FILE
ВЫЙТИ	          ДОПИСАТЬ ФАЙЛ	                EXIT	    APPEND FILE
КОНЕЦ ОПИСАНИЯ	  РАБОТА С ДЗУ 2	   FINISH EDITING   SET DRIVE 2

ИМЯ ФАЙЛА:ИМЯ-ТЕКУЩЕГО-ФАИЛ	          FILE NAME:CURRENT-FILENAME


    ПРОЧИЕ СООБЩЕНИЯ:

           А1.1	Э1.3

   НОМЕР СТРОКИ (1) -	              LINE NUMBER (1)
   С КАКОЙ СТРОКИ (1) -	              FROM (1)
   ДО КАКОЙ СТРОКИ (75) -	      TO (75)
   НАЖМИТЕ ЛЮБУЮ КЛАВИШУ	      PRESS ANY KEY
   ПАМЯТЬ ПЕРЕПОЛНЕНА	              BUFFER FULL
	                              TEXT,FILE NAME

А.4 ПРОЧИЕ СООБЩЕНИЯ И ЗАПРОСЫ СИСТЕМЫ.

А1.1	Э1.3
	
  ОСТАНОВ В СТРОКЕ 12 ИМЯПРОЦ   *** BREAK IN LINE 12 OF 'PROCNAME' ***
    ИМЯ: ПРИСВАИВАТЬ (Д/Н)?	        NAME: ASSIGN (Y/N) ?
    ЗАПОМНИТЬ (Д/Н) ?	                TO SAVE (Y/N)?
    КАТАЛОГ ИМЕН	                    CATALOG NAMES
    КАТАЛОГ ПРОЦЕДУР	                CATALOG PROCEDURES
     .ПУСТО.	                            .EMPTY.
     .ПРОЦЕДУРА.	                    .PROCEDURE.
     .ФУНКЦИЯ.	                            .FUNCTION.
     .ФАЙЛ.	                            .FILE.
     (Ч) , (П) , (С)	                    (P) , (E) , (S)
     ЦЕЛ	                            INT
     ДРОБ	                            REAL
     КОРТ	                            KORT
     МНОЖ	                            SET
 

APPENDIX B

СИМВОЛЫ.

В этом приложении описывается символьный набор системы "ШКОЛЬНИЦА", ввод и отображение символов, их свойства в различных режимах работы системы.

Основное изложение ведется для ЭВМ "АГАТ" и ВЕРСИИ А1.1. В скобках приводятся соответствующие сведения "APPLE" и ВЕРСИИ Э1.3.

В.1 ПОНЯТИЕ О СИМВОЛАХ И ИХ ОБРАБОТКЕ.

Весь диалог пользователя с ЭВМ ведется с помощью символов. Символ - это минимальная единица текстовой информации в системе (в языке это литера). В системе "ШКОЛЬНИЦА" предусмотрена обработка 256 различных символов. Сопоставление им цифр, букв, знаков и даже некоторых действий позволяет организовать хранение и обработку текстовой информации с ЭВМ.

Символы различаются по своему коду. Код символа - это целое число от 0 до 255.

Символы выполняют три основные функции:

- Вводятся с клавиатуры ЭВМ (каждая клавиша, нажатая на том или ином регистре, посылает в машину код, рассматриваемый системой как код некоторого символа);

- Из них состоят хранящиеся в памяти текстовые данные;

- Выводятся на экран, печатающее устройство и т.п. (некоторым символам соответствует определенное изображение, возможно, разное на разных устройствах).

Кроме того, поступление с клавиатуры или на вывод некоторых символов рассматривается системой как сигнал пользователя или программы о необходимости выполнить дополнительные действия, предусмотренные в данном режиме работы. Такие символы часто называют управляющими.

Схематически процесс ввода, хранения и отображения символов можно изобразить так:

КЛАВИАТУРА	       ПАМЯТЬ	        ЭКРАН, ПЕЧ. УСТР-ВО

 НАЖАТАЯ -(ВВОД) --> КОД СИМВОЛА - (ВЫВОД) --> ИЗОБРАЖЕНИЕ
 КЛАВИША     ^                        ^          СИМВОЛА
           ВЫПОЛНЕНИЕ ДОПОЛНИТЕЛЬНЫХ ДЕЙСТВИЙ

Поскольку многие вводимые символы сразу же поступают на вывод, то есть символы, которые несут дополнительную нагрузку и на вводе, и на выводе.

Ниже приводится более подробное описание набора символов системы "ШКОЛЬНИЦА" и их функциональной нагрузки.

В.2 КЛАВИАТУРА.

Клавиатура обеспечивает ввод символов на 4 регистрах: основном (одиночно нажатые клавиши), регистрах "РЕГ". "УПР" и "УПР-РЕГ" ("SHIFT", "CTRL" и "CTRL-SHIFT"). Нажатие любой клавиши, кроме "СБР" и "ПВТ" ("RESET" и "REPT"), на одном из этих регистров вызывает ввод в машину некоторого символа.

В таблицах 2.1 и 2.2 показано, какой код выдает та или иная клавиша. Обратите внимание на следующие особенности:

А) существуют клавиши (например, пробел, цифры, стрелки и др.), Которые "нечувствительны" к некоторым регистрам и выдают один и тот же символ;

Б) клавиатура обеспечивает ввод не всех 256 символов; это может оказаться удобным в тех программах, где потребуются зарезервированные символы, которые нельзя ввести с клавиатуры;

В) некоторые клавиши АГАТА" на регистрах "УПР" и "УПР-РЕГ" вообще не выдают никакого символа.

Г) каждая функциональная клавиша выдает тот же код, что и некоторая буквенная клавиша на регистре "УПР" (CTRL), например, клавиша перевода строки и "УПР-М" ("CTRL-M").

Символы, которые несут дополнительную функциональную нагрузку на вводе, приведены в таблицах 2.5 и 2.6

В.3 ПРОГРАММНАЯ СРЕДА

Алфавитом языка РАПИРА допустим лишь ограниченный набор символов (см. Приложение ...). Но в составе текстов могут встречаться все 256 символов. Задать в программе символ, который не вводится с клавиатуры, можно с помощью стандартной функции СИМ. Она имеет один параметр - десятичный код требуемого символа - и выдает в качестве результата литеру, содержащую этот символ.

Наоборот, определить по символу его код можно с помощью стандартной функции код. Ее параметром должна быть литера. Результат - целое число от 0 до 255.

В текстовый файл можно ввести любой символ, кроме символа с кодом 0, - он считается признаком конца файла. При попытке его вывода он заменяется символом с кодом 135.

Редактором программных текстов не вводится и не обрабатывается символ с кодом 127. При загрузке файла с диска этот символ заменяется пробелом.

В.4 ЭКРАН И БУМАГА

Вывод символа на экран и бумагу заключается в формировании изображения, соответствующего этому символу.

При выводе некоторых символов выполняются дополнительные действия (см. Таблицы 2.5, 2.6). Как можно видеть, все управление цветом выдаваемых символов, очистка экрана и другие полезные возможности в версии А1.1 возложены на символы. Это позволяет легко управлять изображением на экране, вставляя в выводимые из программы тексты символы переключения. В версии Э1.3 аналогичные действия выполняются с помощью стандартных процедур.

В.5 УПРАВЛЯЮЩИЕ КЛАВИШИ ОСНОВНОГО ДИАЛОГОВОГО РЕЖИМА.

Находясь в основном диалоговом режиме, можно достаточно свободно использовать при наборе весь экран.

Клавиша (РЕД) ( (ESC) ) устанавливает режим свободного перемещения по экрану. Это значит, что с помощью клавиш ← → ↑ ↓ ( J K L M, соответственно), можно подвести курсор к любой точке экрана, не вводя при этом в машину ни одного символа. В А1.1 в этом режиме курсор на экране мигает. Нажатие любой другой клавиши вызывает выход из этого режима.

Клавиши ↑ и ↓, нажатые вне этого режима, имеют тот же смысл.

Клавиша → кроме перемещения курсора дописывает в конец строки текущий символ с экрана. Пройдя по некоторому тексту на экране этой клавишей, можно, таким образом, ввести его в машину целиком, не набирая заново.

Клавиша ← кроме перемещения курсора стирает последний символ во вводимой строке, оставляя его на экране. Имейте в виду, что стирается не всегда тот символ, на который указывает курсор. Если, например, в ситуации

      ПРИМЕР НЕСООТВЕТСТВИЯ 
      ТЕКСТА ЭКРАНУ¤

Нажать клавишу ↑ и пять раз клавишу ← то из вводимой строки исчезнут буквы "КРАНУ" а не "ЕСООТ", как это будет изображено на экране.

Клавиша F2 уничтожает на экране текущий символ, сдвигая при этом остаток экранной строчки влево. На освобождающееся место вставляется пробел.

Клавиша F3 освобождает на экране одну позицию перед текущим символом. Остаток экранной строчки при этом сдвигается вправо, и последний символ в ней пропадает.

Символ "УПР-L" очищает текстовое окно экрана и устанавливает курсор в его левый верхний угол.

Клавиши 1, 2, 3, 4, 5, 6, 7, 0, . , = и соответствующие им символы управляют цветом вывода символов и фона на экран (см. Таблицу 2.5).

В версии Э1.3 на ЭВМ "APPLE" эти клавиши и клавиши F2, F3, УПР-L аналогов не имеют.

Клавиши 8 и 9 заполняют пробелами, соответственно, остаток строки и остаток экрана, начиная с текущей позиции курсора (в версии Э1.3 им соответствуют клавиши E и F в режиме ESC).

Клавиша перевода строки (RETURN) сигнализирует машине о конце ввода пользователем очередной строки.

Клавиша F1 (CTRL-C) является универсальной клавишей останова. Связанные с ней в системе действия уже упоминались в основном тексте.

Нажатие клавиши УПР-X означает отказ от ввода строки. При этом на экране появляется символ "", строчка автоматически переводится и выдается приглашение к новому вводу.

Клавиша УПР-V позволяет записать во вводимую строку любой управляющий символ, не выполняя связанных с ним действий. На экране этот символ высвечивается инверсным желтым цветом. Вставка обычного символа равносильна вводу самого символа. Нельзя вставить только символ перевода строки (код 141, клавиша "УПР-V"). В версии Э1.3 этот механизм реализован только в редакторе.

В.6 НЕСТАНДАРТНОЕ ИСПОЛЬЗОВАНИЕ КЛАВИАТУРЫ.

Описанное в предыдущем параграфе использование клавиатуры и управляющих символов не является единственно возможным. Можно организовать диалог программы с пользователем через стандартную функцию КЛАВ, которая запрашивает с клавиатуры символ и возвращает в качестве результата его код. Все дополнительные действия в этом случае организуются программно.

Иное использование клавиатуры принято, например, в редакторе (см. П.5.2 и таблицу 2.7).

ТАБЛИЦА 2.1. Коды клавиш в версии А1.1.

КЛАВ. ОДНА РЕГ  УПР УПР-РЕГ! КЛАВ. ОДНА	РЕГ УПР	УПР-РЕГ
-------------------------------------------------------
 ;+   187  171  187   187  !  Ч^   254	222   -	  158
 1!   177  161  177   177  !  Ш[   251	219   -	  155
 2"   178  162  178   178  !  Щ]   253	221   -	  157
 3#   179  163  179   179  !  Ь_   255	233   -	  159
 4c   180  164  180   180  !  ЫY   249	217   -	  153
 5%   181  165  181   181  !  ЪX   248	216   -	  152
 66   182  166  182   182  !  Э\   252	220   -	  156
 7'   183  167  183   183  !  Ю@   224	192  128  128
 8(   184  168  184   184  !  ЯQ   241	209   -	  145
 9)   185  169  185   185  !  /?   175	191  175  175
 0    176  160  176   176  !  .>   174	190  174  174
 -=   173  189  173   173  !  ,<   172	188  172  172
 АA   193  193  129   129  !  :*   186	170  186  186
 БB   226* 194* 130   130  !ПРОБЕЛ 160	160  160  160
 ВW   194  215   -    151  ! Ф. 1  144	144  144  144
 ГG   231  199  135   135  ! Ф. 2  145	145  145  145
 ДD   228  196  132   132  ! Ф. 3  146	146  146  146
 ЕE   197  197  133   133  ! Ф. 4  147	147  147  147
 ЖV   246  214   -    150  ! Ф. 5  148	148  148  148
 ЗZ   250  218   -    154  ! Ф. 6  156	156  156  156
 ИI   233  201  137   137  ! Ф. 7  157	157  157  157
 ЙJ   234  202  138   138  ! Ф. 8  158	158  158  158
 КK   203  203  139   139  ! Ф. 9  159	159  159  159
 ЛL   236  204  140   140  ! Ф. 0  129	129  129  129
 МM   205  205  141   141  ! Ф. .  130	130  130  130
 НN   200  206  142   142  ! Ф. =  131	131  131  131
 ОO   207  207  143   143  !  F1   132	132  132  132
 ПP   240  208   -    144  !  F2   133	133  133  133
 РR   208  210   -    146  !  F3   134	134  134  134
 СS   195  211   -    147  !   ↑   153  153  153  153
 ТT   212  212   -    148  !   ↓   154  154  154  154
 УU   245  213   -    149  !   →   149  149  149  149
 ФF   230  198  134   134  !   ←   136  136  136  136
 ХH   216  200  136   136  ! РЕД   155	155  155  155
 ЦC   227  195  131   131  !	   141	141  141  141
-----------------------------------------------------

* Ввод зависит от положения тумблера слева на клавиатуре. При его переключении для буквенных клавиш колонки кодов надо заменить так: 1 ↔ 2 , 3 ↔ 4 .

ТАБЛИЦА 2.2. Коды клавиш в версии Э1.3.

КЛАВ. ОДНА SHIFT CTRL ОБЕ ! КЛАВ.ОДНА SHIFT CTRL  ОБЕ
-----------------------------------------------------
 +;    187  171	 187  171 !   K    203  203  139  139
 !1    177  161	 177  161 !   L    204  204  140  140
 "2    178  162	 178  162 !   M    205  221  141  157
 #3    179  163	 179  163 !   N^   206  219  142  158
 $4    180  164	 180  164 !   O    207  207  143  143
 %5    181  165	 181  165 !   P@   208  192  144  128
 &6    182  166	 182  166 !   Q    209  209  145  145
 '7    183  167	 183  167 !   R    210  210  146  146
 (8    184  168	 184  168 !   S    211  211  147  147
 )9    185  169	 185  169 !   T    212  212  148  148
  0    160  176	 160  176 !   U    213  213  149  149
 =-    173  189	 173  189 !   V    214  214  150  150
 A     193  193	 129  129 !   W    215  215  151  151
 B     194  194	 130  130 !   X    216  216  152  152
 C     195  195	 131  131 !   Y    217  217  153  153
 D     196  196	 132  132 !   Z    218  218  154  154
 E     197  197	 133  133 !   ←    136  136  136  136
 F     198  198	 134  134 !   →    149  149  149  149
 G     199  199	 135  135 !  ESC   155  155  155  155
 H     200  200	 136  136 ! ПРОБЕЛ 160  160  160  160
 I     201  201	 137  137 ! RETURN 141	141  141  141
 J     202  202	 138  138 !   >.   174  190  174  174
 ?/    175  191	 175  175 !   <,   172  188  172  172
 *:    186  170	 186  170 !	
-----------------------------------------------------
ТАБЛИЦА 2.3. Вывод символов на экран в версии А1.1

КОД! 160 176 192 208 224 240 
------------------------------
 0 !	  0   @	  P   Ю	  П  !
 1 !  !   1   A	  Q   А	  Я  !
 2 !  "	  2   B	  R   Б   Р  !
 3 !  #	  3   C	  S   Ц	  С  !
 4 !  $	  4   D	  T   Д	  Т  !
 5 !  %	  5   E	  U   Е	  У  !
 6 !  &	  6   F	  V   Ф	  В  !
 7 !  '	  7   G	  W   Г	  В  !
 8 !  (	  8   H	  X   Х	  Ь  !
 9 !  )	  9   I	  Y   И	  Ы  !
10 !  *	  :   J	  Z   Й	  З  !
11 !  +	  ;   K	  [   К	  Ш  !
12 !  ,	  <   L	  \   Л	  Э  !
13 !  -   =   M	  ]   М	  Щ  !
14 !  .	  >   N	  ^   Н	  Ч  !
15 !  /   ?   O   _   О   Ъ  !
------------------------------

Символы с кодами 128-159 (управляющие) на экран не выдаются. Их действия при выводе см. в таблице 2.5.

Символы с кодами 0-127 выводятся так же, как символы с кодами 128-255.

ТАБЛИЦА 2.4. Вывод символов на экран в версии Э1.3 (ASCII-код)

 К !  32  48   0  16  -	ИНВЕРСНЫЕ
 О !  96 112  64  80  -	МИГАЮЩИЕ
 Д ! 160 176 192 208  -	НОРМАЛЬНЫЕ
   ! 224 240				
----------------------	
 0 !	  0   @	  P  !
 1 !  !	  1   A	  Q  !
 2 !  ~	  2   B	  R  !
 3 !  #	  3   C	  S  !
 4 !  $	  4   D	  T  !
 5 !  %   5   E	  U  !
 6 !  &	  6   F	  V  !
 7 !  `   7   G	  W  !
 8 !  (	  8   H	  X  !
 9 !  )	  9   I	  Y  !
10 !  *	  :   J	  Z  !
11 !  +	  ;   K	  [  !
12 !  ,	  <   L	  \  !
13 !  -	  =   M	  ]  !
14 !  .	  >   N	  ^  !
15 !  /	  ?   O	  _  !
----------------------	

Символы с кодами 128-159 на экран не выводятся. Их действие на вводе см. в таблице 2.6.

ТАБЛИЦА 2.5. Управляющие символы в версии А1.1
(ОПИСАНИЕ В П.5).

КОД  КЛАВИША ВРЕМЯ  ДЕЙСТВИЯ
-------------------------------------------------------------------
129	0    вывод  уст. выдачу нормальных символов
130	.    вывод  уст. выдачу инверсных символов
131	=    вывод  уст. выдачу мигающих символов
132	F1   ввод   универсальная клавиша останова и прерывания
133	F2   ввод   сдвиг остатка строки экрана влево на одну позицию
134	F3   ввод   сдвиг остатка строки экрана вправо на одну позицию
135   УПР-G  вывод  звуковой сигнал
136     ←    вывод* сдвиг курсора к предыдущему символу на экране
             ввод   уничтожение последнего введенного символа
138   УПР-J  вывод  переход к началу следующей строки
140   УПР-I  вывод  очистка текстового окна экрана
141          вывод  переход к началу следующей строки
	     ввод   конец строки ввода
144	1    вывод  уст. красный цвет выдачи
145	2    вывод  уст. зеленый цвет выдачи
146	3    вывод  уст. желтый цвет выдачи
147	4    вывод  уст. синий цвет выдачи
148	5    вывод  уст. фиолетовый цвет выдачи
149     →    вывод  сдвиг курсора к следующему символу на экране
             ввод   ввод текущего символа с экрана
150   УПР-V  ввод   вставка упр. символа во вводимую строку
152   УПР-X  ввод   отказ от вводимой строки
153     ↑    вывод  сдвиг курсора на строчку вверх
154     ↓    вывод  сдвиг курсора на строчку вниз
155    РЕД   ввод   переход в режим свободного перемещения по экрану
156     6    вывод  уст. голубой цвет выдачи
157     7    вывод  уст. белый цвет выдачи
158     8    вывод  очистка остатка текущей строки (в пределах окна)
159     9    вывод  очистка остатка экрана (в пределах окна)
-------------------------------------------------------------------

* Те же действия на вводе в режиме РЕД

ТАБЛИЦА 2.6 Управляющие символы в версии Э1.3 
(ОПИСАНИЕ СМ. В П.5).

НА ВВОДЕ:			
КЛАВ. КОД ВВ.СИМВ.   ДЕЙСТВИЯ
--------------------------------------------------------------
CTRL-O   132   останов программы
CTRL-G   223   вводится как "_"
RETURN  141   конец вводимой строки
CTRL-X    -    отказ от вводимой строки
   →      -    ввод текущего символа с экрана
   ←      -    уничтожение последнего введенного символа
SHIFT-N  219   вводится как "["
SHIFT-M	 221   вводится как "]"
   D  **  -    т0 же самое
   J  *   -    сдвиг курсора к предыдущему символу на экране
   B  **  -    то же самое
   K  *   -    сдвиг курсора к следующему символу на экране
   A  **  -    то же самое
   M  *   -    сдвиг курсора на строчку вниз
   C  **  -    то же самое
   E  **  -    очистка остатка текущей строки (в пределах окна)
   F  **  -    очистка остатка экрана (в пределах окна)
   @  **  -    очистка всего экрана (в пределах окна)
---------------------------------------------------------------
   *  В режиме ESC	
   ** В режиме ESC; после исполнения происходит выход из этого режима	
			
НА ВЫВОДЕ:			
КОД  СИМВОЛ    ДЕЙСТВИЯ
---------------------------------------------------------------------
135  CTRL-G  звуковой сигнал
136  CTRL-H  сдвиг курсора к предыдущему символу на экране
138  CTRL-B  переход к началу следующей строки
141  CTRL-M  то же самое
149  CTRL-U  сдвиг курсора к следующему символу на экране
---------------------------------------------------------------------
ТАБЛИЦА 2.7. УПРАВЛЯЮЩИЕ КЛАВИШИ РЕДАКТОРА

А1.1  Э1.3   НАЗНАЧЕНИЕ
-------------------------------------------
  ↑   CTRL-O	
  ↓   CTRL-L   перемещение курсора по экрану
  →	→	
  ←	←	
      RETURN в режиме редактирования - вставка новой строки, 
             в режиме меню - конец ответа на запрос
  1   CTRL-D   уничтожить текущий символ (DELETE)
  2   CTRL-I   начать вставку символа (INSERT)
  3   CTRL-B   перейти к началу следующей строки текста (BEGIN)
  4   CTRL-P   показать предыдущую страницу текста (PREVIOUS)
  5   CTRL-N   показать следующую страницу текста (NEXT)
  6   CTRL-Z   центрировать текущую строчку
  7   CTRL-S   склеить текущую строчку текста со следующей
  8   CTRL-T   обрезать остаток текущей строки текста (TRUNCATE)
  9   CTRL-K   уничтожить текущую строку ТЕКСТА (KILL)
  F3  CTRL-F   найти очеред. вхождение запоминаемой цепочки символов (FIND)
  F1  CTRL-C   отказ от запроса в меню (CANCEL)
 РЕД   ESC     переход из режима редактирования в режим меню и наоборот
УПР-V CTRL-V   вставка в текст управляющего символа
УПР-A CTRL-A   в данной позиции цепочки допустим любой символ (ANY)
-------------------------------------------

APPENDIX D

ДИАГНОСТЧЕСКИЕ СООБЩЕНИЯ.

В этом приложении описываются сообщения об ошибках, выдаваемые интерпретатором языков РАПИРА и РОБИК в версиях А1.1 и Э1.3. Основное изложение ведется для версии А1.1. В скобках приведены соответствующие данные по Э1.3. Все принятые в системе количественные ограничения, нарушение которых контролируется интерпретатором, можно найти в приложении 5.

D.1 ЛЕКСИЧЕСКИЕ И СИНТАКСИЧЕСКИЕ ОШИБКИ.

D.1.1 ПРИЧИНЫ ВОЗНИКНОВЕНИЯ

Лексические и синтаксические ошибки - это ошибки в записи программы, т.е. Несоблюдение правил построения лексем, выражений и предписаний по синтаксическим диаграммам языка (см. прил.3). Ошибки в записи лексем - имен, текстов, чисел, специальных составных символов - называются лексическими. Ошибки при составлении предписаний из отдельных лексем называются синтаксическими. При попытке ввести такое предписание в машину будет выдано сообщение о синтаксической (лексической) ошибке, и программа не выполнится.

В системе "Школьница" такие ошибки возможны в следующих ситуациях:

1) Неверное предписание в основном диалоговом режиме. Строка дублируется от начала предписания, в котором допущена ошибка, до конца строки; причем неправильная лексема выделяется на экране цветом (А1.1) или инверсом (Э1.3), затем выдается сообщение о характере ошибки.

чтобы все-таки исполнить предписание, в котором допущена ошибка, его необходимо полностью ввести еще раз, исправив ошибку. В случае сложных предписаний это можно сделать с помощью описанных в приложении 2 средств экранного редактирования в основном диалоговом режиме.

2) Неверное предписание в процедурном блоке. При выходе из редактора и проверке синтаксиса на экран выдается участок редактируемого текста, в котором начало ошибочной лексемы отмечено курсором. На нижней строке выдается сообщение о характере ошибки. Следует исправить ошибку и повторить выход.

3) Неверная запись данных во время ввода по предписанию ввод данных (INPUT DATA). Если данные вводятся с клавиатуры, то, как и в первом случае, выдается последняя введенная строка с выделенной ошибочной лексемой, а затем - сообщение "ошибка: повторите ввод" ("ERR:REENTER"). После этого следует продолжить ввод данных, считая ошибочную лексему переводом строки (см. пример в п.4.9 инструкции).

При вводе данных из файла выдается только сообщение "ошибка ввода" ("INPUT ERROR"), и ошибка считается ошибкой исполнения программы (см. П.2.2 сообщения п14 и п15).

4) Неверное предписание в процедурном блоке, вводимом из ДЗУ по предписаниям "ВВОД ИЗ ДЗУ" (INPUT OF DISK) и "ВКЛ ПАКЕТ" (ON PACKET). В этой ситуации выдается сообщение о характере ошибки, а сама она рассматривается как ошибка исполнения программы. Исправить ошибку можно средствами редактора.

При возникновении синтаксической (лексической) ошибки текущий режим работы системы не меняется. Вся диагностическая информация поступает в поток системного вывода.

D.1.2 ДИАГНОСТИЧЕСКИЕ СООБЩЕНИЯ

Большинство сообщений имеет вид:
ТРЕБУЕТСЯ <СПИСОК ЛЕКСЕМ> (<СПИСОК ЛЕКСЕМ> EXPECTED)

Такие сообщения выдаются, когда при анализе очередной лексемы оказалось, что по правилам записи предписания она недопустима. Список состоит из тех лексем, которые допустимы в данной позиции. Он, однако, не всегда точно указывает на те изменения, которые необходимо произвести в программе.

Ниже перечислены все возможные сообщения о лексических и синтаксических ошибках и краткие пояснения к ситуациям, в которых они возникают.

ЛЕКСИЧЕСКИЕ ОШИБКИ.

Л1. ТРЕБУЕТСЯ ЦИФРА ПОСЛЕ ТОЧКИ (REAL PART EXRESTED)

В записи дробного числа отсутствуют цифры после точки, что недопустимо. Примеры:

10.	25.E17

Если необходимо записать число с нулевой дробной частью, то следует после точки поставить ноль:

10.0	25.0E17 ИЛИ 25E17

Л2. ТРЕБУЕТСЯ ПОКАЗАТЕЛЬ СТЕПЕНИ (EXPONENT EXPECTED)

Допущена ошибка в записи порядка дробного числа. Примеры:

1E-A	1.1E*+7

Л3. НЕ ЗАКРЫТ ТЕКСТ (QUOTE EXPECTED)

Отсутствует закрывающая кавычка текста. Если необходим символ перевода строки внутри текста, то его следует вставить программными средствами, например, с помощью функции сим (CHR).

Л4. "" В КОНЦЕ ИМЕНИ (NAME EТВS BY "")

Л5. "_" В ИМЕНИ ("_" IN NAME)

Такие имена по правилам языка недопустимы.

Л6. НЕПОНЯТНЫЙ СИМВОЛ (BAD SYMBOL)

Встретился символ, не входящий в алфавит языка (% управляющие символы и др.) Или подчерк стоит не внутри имени, текста или комментария.

В версии А1.1 непонятными считаются все управляющие символы, вставленные во вводимую строку.

В версии Э1.3 непонятными считаются все управляющие символы, кроме символа перевода строки и редактирующих.

Л7. СЛИШКОМ ДЛИННАЯ ЛЕКСЕМА (LONG LEXEM)

Длина лексемы - текста, числа, имени при вводе с клавиатуры, из файла или при анализе описания процедурного блока больше максимально допустимой.

Л8. НЕДОПУСТИМОЕ ДРОБНОЕ (REAL OVERFLOW)

Вводится слишком большое или слишком маленькое (по модулю) дробное число. Это сообщение будет выдано в том случае, когда явно задан недопустимый порядок числа: например, хотя число 0,001e128 возможно, его явно указанный порядок 128 недопустим.

Л9. ТРЕБУЕТСЯ "*)" ("*)" EXPECTED)

Нет закрывающей скобки комментария в процедурном блоке.

СИНТАКСИЧЕСКИЕ ОШИБКИ

С1. ТРЕБУЕТСЯ ";" (";" EXPECTED)

Начало предписания может быть воспринято как некоторое другое правильное предписание, а дальнейшая его часть синтаксически неверна. По диаграмме в этой позиции может стоять точка с запятой или некоторая, необязательная часть предписания.

Можно выделить основные типы ошибок, которые сопровождаются этой диагностикой.

А) Нет разделителя между предписаниями, например:

А->В ВЫВОД:В;

Б) Неверное начало предписания (рассматривается как пустое предписание), например:

А->В; )А+В)*2->С;

В) Начало выражения, которым оканчивается предписание, представляет собой другое правильное выражение:

  ВЫВОД: (А+И) ! (С+Е);
  КОНТРОЛЬ А> (К+М) );

Подчеркнута та часть предписания, которая представляет собой синтаксически правильную конструкцию.

Г) Пропущена запятая в списке элементов (в предписаниях вкл, выкл, ввод, вывод, имена), например:

   ВКЛ ПРОКРУТКУ: А,В С,Д;
   ВЫВОД: А+7, В**2(7-К);

С2. ТРЕБУЕТСЯ "ВСЕ" ("CLUSE" EXPECTED)

Ситуация, подобная C1, возникла в сложном предписании; т.е. по диаграмме в текущей позиции допустимы слово "ВСЕ" ("CLOSE") или предписание. Примеры:

ЕСЛИ А>В ТО 1->А ВСЕ;

После "1->А" возможны еще предписания через ";", ключевое слово "ВСЕ" ("CLOSE") или ключевое слово "иначе" ("ELSE') с альтернативной частью условного предписания.

Еще больше возможных продолжений можно найти в следующей ситуации (см. диаграмму 18):

ВЫБОР А ИЗ 1: 1-)В В

СЗ. ТРЕБУЕТСЯ "КНЦ" ("END" EXPECTED)

С4. ТРЕБУЕТСЯ "РЕЗ" ("RES" EXPECTED)

Ситуация, подобная C1, возникла в описании процедурного блока.

С5. ТРЕБУЕТСЯ ИМЯ (NAME EXPECTED)

С6. ТРЕБУЕТСЯ ИМЯ ФАЙЛА (FILE NAME EXPECTED)

По диаграмме предписания в данной позиции должно стоять имя.

С7. ТРЕБУЕТСЯ ВЫРАЖЕНИЕ ИЛИ "ИЗ" (EXPRESSION OR "OF" EXPECTED)

Ошибка в заголовке предписания выбор (CASE), при котором неизвестно, какая из двух форм этого предписания имелась в виду, например:

ВЫБОР :

С8. ТРЕБУЕТСЯ ОПЕРАНД (OPERAND EXPECTED)

Ошибка в записи операнда одной из операции в выражении.

С9. ТРЕБУЕТСЯ ЗНАК ОПЕРАЦИИ ИЛИ ПРИСВАИВАНИЕ (OPERATION OR "->" EXPECTED)

В начале предписания стоит выражение, после которого нет знака присваивания или скобок вызова. Других предписании, начинающихся с выражения, в языке нет.

С10. ТРЕБУЕТСЯ ПРОЦ.БЛОК (PROC.BLOCK EXPECTED)

Нет заголовка описания процедуры или функции "ПРОЦ" или "ФУНК" ("PROC" или "FUNC"). Эта диагностика возможна в двух сдучаях:

А) В анализируемом как процедурный блок тексте первая лексема не "ПРОЦ" и не "ФУНК";

В) После конца описания очередной процедуры или функций есть еще символьная информация, не являющаяся описанием процедурного блока или комментарием.

Таким образом, в транслируемом файле могут располагаться только процедуры и функции, возможно, разделенные комментариями.

С11. ТРЕБУЕТСЯ УСТРОЙСТВО (DEVICE EXPECTED)

В предписаниях переключения вывода ВКЛ/ВЫКЛ отладку /ВЫВОД/ протокол не указано направление вывода - "НА БУМАГУ" или "НА ЭКРАН" или "В ФАЙЛ имя".

С12. НЕВЕРНЫЙ ЗАГОЛОВОК ЦИКЛА (BAD LOOP TITLE)

нет на месте ключевых слов "ОТ" ("FROM") или "ИЗ" ("OF") в цикле для ("FOR"). Например:

ДЛЯ I=5 ДО 7 ::

С13. НЕВЕРНЫЙ РЕЖИМ (BAD OPTION)

Указан несуществующий режим в предписаниях ВКЛ/ВЫКЛ. Например:

ВКЛ СВЕТ;

С14. СЛИШКОМ ДЛИННЫЙ СПИСОК (LONG LIST)

Слишком много элементов кортежа, множества, параметров процедуры на вводе (см. приложение 5).

С15. ТАКОЕ ИМЯ УЖЕ БЫЛО (TWICE DECLARED NAME)

Повторение имени в записи, списке локальных имен и имен параметров процедуры, совпадение имени параметра с локальным именем.

С16. ПРОЧИЕ СООБЩЕНИЯ:

ТРЕБУЕТСЯ УСЛОВИЕ	CONDITION EXPECTED
ТРЕБУЕТСЯ ВЫРАЖЕНИЕ		EXPRESSION EXPECTED
ТРЕБУЕТСЯ "]" ИЛИ ","		"]" OR "," EXPECTED
ТРЕБУЕТСЯ ":" ИЛИ ","		":" OR "," EXPECTED
ТРЕБУЕТСЯ "БУМАГУ" ИЛИ "ЭКРАН"		"PRINTER" OR "DISPLAY" EXPECTED
ТРЕБУЕТСЯ ">" ИЛИ ","		">" OR "," EXPECTED
ТРЕБУЕТСЯ "*>" ИЛИ ","		"*>" OR "," EXPECTED
ТРЕБУЕТСЯ "c>" ИЛИ ","		"c>" OR "," EXPECTED
ТРЕБУЕТСЯ ")" ИЛИ ","		")" OR "," EXPECTED
ТРЕБУЕТСЯ ")"		")" EXPECTED
ТРЕБУЕТСЯ "="		"=" EXPECTED
ТРЕБУЕТСЯ КЛЮЧЕВОЕ СЛОВО		КЛЮЧЕВОЕ СЛОВО EXPECTED
ТРЕБУЕТСЯ "::"		"::" EXPECTED

D.1.3 ОШИБКИ ПРОГРАММИСТА.

П1. 0**0

Х/0	
		ИМЯ:НЕДОПУСТИМЫЙ ПАРАМЕТР	(ИМЯ:OUTRANGE VALUE)
		ИМЯ:ВЫХОД ЗА ГРАНИЦЫ ЭКРАНА	(ИМЯ:OUT OF SCREEN)
		НЕДОПУСТИМОЕ ДРОБНОЕ	(REAL OVERFLOW)
		СЛИШКОМ БОЛЬШОЕ ЦЕЛОЕ	(LONG INTEGER)

П2. НЕДОПУСТИМЫЕ ОПЕРАНДЫ ОПЕРАЦИЯ (BAD ОПЕРАЦИЯ OPERANDS)

Сделана попытка выполнить указанную операцию над об'ектами непредусмотренных для нее видов.

П3. НЕВЕРНАЯ ДЛИНА ВЫРЕЗКИ (BAD CLIP SIZE)

П4. ВЫРЕЗКА НЕВОЗМОЖНА (BAD CLIP TYPE)

П5. НЕВЕРНЫЕ ИНДЕКСЫ (BAD INDICES)

П6. ТЕКСТ - НЕ ЛИТЕРА

Параметры стандартных функций СИМ (CHR) и ПРИГЛ (PROMPT), а также первый операнд операции "ИЗ" ("OF") должны быть односимвольными текстами (литерами).

П7. В ЗАПИСИ НЕТ ПОЛЯ ИМЯ (NO NAME ИМЯ IN RECORD)

В записи отсутствует поле с указанным именем.

СОДЕРЖАНИЕ

A.0	СООТВЕТСТВИЕ ЛЕКСИКИ..................	A-1
A.1	ОБЩЕЕ СИСТЕМНОЕ МЕНЮ..................	A-1
A.2	КЛЮЧЕВЫЕ СЛОВА ЯЗЫКА РАПИРА...........	A-1
A.З	НАЗВАНИЯ РЕЖИМОВ......................	A-3
A.4	ПРОЧИЕ СООБЩЕНИЯ И ЗАПРОСЫ СИСТЕМЫ....	A-3

B.0	СИМВОЛЫ...............................	B-1
B.1	ПОНЯТИЕ О СИМВОЛАХ И ИХ ОБРАБОТКЕ.....	B-1
B.2	КЛАВИАТУРА............................	B-2
B.З	ПРОГРАММНАЯ СРЕДА.....................	B-2
B.4	ЭКРАН И БУМАГА........................	B-3
B.5	УПРАВЛЯЮЩИЕ КЛАВИШИ...................	B-3
B.4	НЕСТАНДАРТНОЕ ИСПОЛЬЗОВАНИЕ КЛАВИАТУРЫ.	B-4

C.0 ---   ---   ---   ---   ---   ---   ---	C-1

D.0	ДИАГНОСТИЧЕСКИЕ СООБЩЕНИЯ..............	D-1
D.1	ЛЕКСИЧЕСКИЕ И СИНТАКСИЧЕСКИЕ ОШИБКИ....	D-1
D.1.1	ПРИЧИНЫ ВОЗНИКНОВЕНИЯ..............	D-1
D.1.2	ДИАГНОСТИЧЕСКИЕ СООБЩЕНИЯ..........	D-2
D.1.3	ОШИБКИ ПРОГРАММИСТА................	D-6

* * *