19 25 ^Y EM конец устройства 1а 26 ^Z SUB подставляемый символ 1B 27 ^[ ESC смена регистра 1C 28 ^/ FS разделитель файлов 1D 29 ^] GS разделитель групп 1E 30 ^^ RS разделитель записей 1F 31 ^- US разделитель элемент. Символы: 20 32 пробел 21 33 ! 22 34 " 23 35 # 24 36 $ 25 37 % 26 38 & 27 39 ' 28 40 ( 29 41 ) 2А 42 * 2B 43 + 2C 44 , 2D 45 - 2E 46 . 2F 47 / 30 48 0 31 49 1 32 50 2 33 51 3 34 52 4 35 53 5 36 54 6 37 55 7 38 56 8 39 57 9 3A 58 : 3B 59 ; 3C 60 < 3D 61 = 3E 62 > 3F 63 ? 40 64 @ 41 65 A 42 66 B 43 67 C 44 68 D 45 69 E 46 70 F 47 71 G 48 72 H 49 73 I 4A 74 J 4B 75 K 4C 76 L 4D 77 M 4E 78 N 4F 79 O 50 80 P 51 81 Q 52 82 R 53 83 S 54 84 T 55 85 U 56 86 V 57 87 W 58 88 X 59 89 Y 5A 90 Z 5B 91 [ 5C 92 \ 5D 93 ] 5E 94 ^ 5F 95 . 60 96 - 61 97 A 62 98 B 63 99 C 64 100 D 65 101 E 66 102 F 67 103 G 68 104 H 69 105 I 6A 106 J 6B 107 K 6C 108 L 6D 109 M 6E 110 N 6F 111 O 70 112 P 71 113 Q 72 114 R 73 115 S 74 116 T 75 117 U 76 118 V 77 119 W 78 120 X 79 121 Y 7A 122 Z 7B 123 7C 124 ! 7D 125 7E 126 - 7F 127 DEL ПРИЛОЖЕНИЕ Е. Различия между интерпретируемым и компилируемым диалектами -------------- Бейсика. Версия языка Бейсик, описанная в настоящей системной документации, отличается по ряду деталей при работе в режимах интерпретации и компиляции. На это указывалось в соответствующих местах отдельных глав описания языка. В данном приложении соответствующие различия сведены вместе. В сязи с тем, что команды, обеспечивающие энтерактивный ввод программы и ее обработку, в режиме компиляции не используются, следующие команды игнорируются Бейсик-компилятором: NEW LIST SAVE AUTO LLIST LOAD CONT DELETE MERGE EDIT RENUM ERASE У следующих операторов языка Бейсик функциональное использование в режимах компиляции и интерпретации отличаются описанным ниже образом. 1. Команда CLEAR Действия, выполняемые командой, в обоих режимах одинаковые. Однако в режиме компиляции аргументы должны быть целого типа. Если в качестве аргумента используется значение, равное нулю, то принимаются стандартные значения команды CLEAR. 2. Команда RUN В режиме компиляции команда RUN может быть выполнена только не принимая во внимание опцию "R". В этом смысле лучше использовать оператор CHAIN. Команда RUN в режиме компиляции выполняет программу в машинных кодах, которые запомнены в файлах с признаком типа "COM". При этом активируемая программа может быть любой программой в машинных кодах. 3. Команды TRON и TROFF В режиме компиляции должна быть задана опция /D, если требуется использовать обе эти команды. В противном случае операторы игнорируются и компилятор выдает предупреждение. 4. Операторы соглашений DEFINT, DEFSNG, DEFDBL и DEFSTR. В режиме компиляции эти операторы обрабатываются статически, что означает, что их действие распространяется на всю программу, как только компилятор распознает в тексте программы оператор DEF???. Обойти эти операторы, например с помощью оператора GOTO, как в режиме интерпретации, в режиме компиляции невозможно. 5. Оператор соглашения DIM В режиме компиляции для определения верхних границ индексов могут использоваться только целочисленные константы, но не константы с плавающей точкой, переменные или выражения. 6. Оператор ERASE В режиме компиляции этот оператор не существует. 7. Операторы FOR, TO, STEP и NEXT В режиме компиляции в качестве индекса цикла допустимы также переменные вещественного типа удвоенной точности. 8. Оператор CALL В режиме компиляции на месте начального адреса подпрограммы (в виде десятичной или шестнадцатеричной константы) должен находиться идентификатор подпрограммы, состоящий максимально из 6 символов. Для процедур на языке ассемблера это имя должно быть декларировано после PUBLIC. Задание параметров зависит от опций. 9. Оператор USR В режиме компиляции следует учитывать что для вызовов USR не предусмотрена передача параметров. Однако можно записать данные в защищенную область памяти с помощью оператора POKE, которые потом могут быть считаны и обработаны процедурой в машинных кодах. Эта процедура может возвратить одно целочисленное значение вызывающей программе. Остальные значения могут быть считаны из защищенной области памяти с помощью оператора PEEK. Рекомендуется связывать используемые программы в машинных кодах с компилируемой бейсик- программой с помощью редактора. Эти части программы могут быть затем вызваны с использованием оператора CALL. 10. Оператор CHAIN При компиляции режимы MERGE <номер строки>, CALL и DELETE не поддерживаются. Передача переменных в вызываемую программу должна выполняться с помощью оператора COMMON. 11. Оператор COMMON Для режима компиляции формат оператора COMMON расширен: формат: COMMON [/<имя>/] [<идентификатор переменной>] [<идентификатор переменной>]... При этом в качестве имени может быть задан идентификатор (максимально 6 символов) процедуры в машинных кодах. При вызове соответствующей процедуры с помощью оператора CALL это избавляет от передачи передаваемых параметров. Все массивы, используемые в операторах COMMON, должны быть предварительно определены в операторе DIM. Перед оператором COMMON могут находится только операторы соглашений; ими являются следующие: COMMON DIM OPTION BASE REM DEFDBL, DEFSNG, DEFINT, DEFSTR %INCLUDE 12. Оператор REM Строки комментариев в режиме компиляции обходятся. 13. Оператор END В режиме компиляции по оператору END закрываются все открытые файлыи компилятор выполняет возврат в операционную систему. Если оператор END отсутствует, то компилятор принимает, что он находится после последней программной строки. 14. Оператор STOP В режиме компиляции оператор STOP соответствует оператору END. Дополнительно перед возвратом в операционную системувыдается шестнадцатеричный адрес, по которому выполнялся оператор STOP. Если использовались опции /D,/X или /E, то выдается также и номер строки, в которой был задан оператор STOP. 15. Оператор ON ERROR GOTO В режиме компиляции для Бейсик-компилятора необходимо использовать опцию /Е. 16. Оператор RESUME В режиме компиляции для Бейсик-компилятора необходимо выбирать опцию /X. ПРИЛОЖЕНИЕ F. Управляющие символы, которые могут использоваться при -------------- обработке Бейсик-программы Как Бейсик-интерпретатор, так и Бейсик-компилятор распознают ряд управляющих символов, которые могут использоваться для управления их работой. +A включение режима редактирования для только что введенной строки (см. также раздел 5.7.). +C прерывание выполнения программы и возврат на уровень команд интерпретатора (используется только для бейсик-интерпретатора - см.также раздел 5.5.). +H стирание последнего введенного символа (аналог клавиши ). +I установка табулятора (аналог клавиши <тав>). +O прерывание программной выдачи, программа при этом продолжает выполняться. Повторное использование клавиши возобновляет выдачу. +R повторная выдача только что введенной строки. +S задержка выполнения программы. +Q продолжение работы программы, прерванной по +S. +U стирание только что введенной строки. ПРИЛОЖЕНИЕ G. Зарезервированные обозначения в языке Бейсик ------------- ABS GOTO POKE AND HEX$ POS ATN IF PRINT AUTO IMP PRINT$ CALL INKEY$ PUT CDBL INP RANDOMIZE CHAIN INPUT READ CHR$ INPUT# RENUM CINT INPUT$ RESET CLEAR INSTR RESTORE CLOSE INT RESUME COMMON KILL RETURN CONT LEFT$ RIGHT$ COS LEN RND CSNG LINE INPUT RSET CVD LINE INPUT# RUN CVS LIST SAVE DATA LLIST SGN DEF LOAD SIN DEFDBL LOG SPACE$ DEFINT LOF SPC DEFSNT LOG SQR DEFSTR LPOS STOP DELETE LPRINT STR$ DIM LSET STRING$ EDIT MERGE SWAP ELSE MID$ SYSTEM END MKD$ TAB EOF MKI# TAN EGV MKS$ TROFF ERASE MOD TRON ERL NEW USR ERR NAME VAL ERROR NOT VARPTR EXP OCT$ WAIT FIELD ON WEND FILES OPEN WHILE FN OPTION BASE WIDTH FOR OR WRITE FRE OUT %INCLUDE GET PEEK GOSUB ----------------------------------------------------------- * * *