Интерпретатор Basic V4.10 Орион-128 Пушкова, основы программирования, уроки языка

Как научиться писать программы в Basic V4.10 для Ориона-128 и Ориона-ПРО.

Продаю платы и наборы микросхем, куплю микросхемы Платы и комплектующие на ПК Орион-128

31.03.2023 обновление информации

Basic для Ориона 128 Пушкова v4.10 распределение памяти

Распределение памяти при работе в системе BASIC V4.10

 Интерпретатор Basic V4.10 Орион-128

Описываемый интерпретатор Basic для компьютера "Орион-128" представляет собой дальнейшее развитие предыдущих версий и обеспечивает работу с четырьмя квазидисками в среде операционной системы ORDOS версии 4.XX. В системном ПЗУ должна быть записана программа "Монитор-2".
Интерпретатор может функционировать как отдельно, так и совместно с дополнительными оверлейными блоками: программой выдачи полных сообщений об ошибках (ERMBS$) и программой Меню (MNUBS$), использующей стандартный драйвер оконного интерфейса VBOX.

Настоящее описание не ставит целью обучение программированию на языке Бейсик и содержит лишь необходимую информацию, касающуюся особенностей работы данной версии интерпретатора и синтаксиса использования его зарезервированных слов. Для получения дополнительной информации по программированию на Бейсике можно обратиться к литературе [1]-[6].

1. Константы

В Бейсике существует два типа констант: числовые и строковые (символьные).

Числовые константы - это любые десятичные числа из интервала от -1.7Е+38 до 1.7Е+38 в формате с плавающей или фиксированной запятой. Точность задания констант - 6 значащих цифр.
Для целых чисел в диапазоне 0..65535 (0FFFFH) допускается использовать шестнадцатиричное представление, при этом перед первой шестнадцатиричной цифрой числа необходимо указать знак "&", например: &F812 .
Если целое десятичное число, используемое в качестве адреса памяти в POKE, PEEK и USR, превышает значение 32767 (7FFFH), то оно должно быть преобразовано в дополнительный код вычитанием из него величины 65536.
В шестнадцатиричном представлении такое преобразование выполняется автоматически.

Строковая константа - это последовательность любых отображаемых символов (с кодами 20H..7EH), заключенная в кавычки " ".

2. Переменные

Так же, как и константы, переменные в Бейсике могут быть двух типов: числовые и строковые.
Обращаются к переменным по имени (идентификатору), которое состоит из одного или более символов. Первый из них обязательно должен быть буквой латинского алфавита (A..Z), а все последующие - буквой этого же алфавита или цифрой (0..9). Значащими символами являются только первые два, остальные - игнорируются.
В конце имени строковых переменных должен быть указан символ "$" независимо от длины имени.

В программах разрешено использование массивов как числовых, так и строковых переменных. Массив с максимальным значением индекса не более 10 можно не описывать в операторе DIM.

3. Выражения

Переменные и константы образуют выражения языка Бейсик. Кроме них в выражения входят знаки операций, скобки и имена функций. Все операции можно разделить на 4 типа: арифметические ( +, -, *, /, ^ ), строковые ( + ), операции отношения ( <, >, =, <>, <=, >= ) и логические (NOT, AND, OR).
Для строковых переменных и констант разрешены только операции отношения и операция конкатенации (сцепления строк), обозначаемая знаком "+".
Вычисление выражения осуществляется в порядке, определяемом расстановкой скобок () и приоритетами операций.

4. Имена файлов

Имена файлов указываются в соответствующих командах, операторах и функциях Бейсика по правилам, установленным для ORDOS.
Перед именем файла (до 8 символов) может быть указано имя квазидиска с двоеточием ":" (ровно 2 символа). Если имя квазидиска опущено, то выбирается текущий. В имени файла пробелы не допускаются.
Для правильной обработки файла большинство команд и операторов требуют указания его типа (расширения имени), задаваемого двумя символами после точки. В этом случае длина первой части имени (до точки) не должна превышать 5 символов.
Если в некоторой команде разрешается опускать тип файла, то в случае, когда тип не указан, он считается заданным по умолчанию. Это означает, что интерпретатор сам добавляет к имени такой тип, какой предусмотрен в данной команде. К таким командам относятся RUN, LOAD, MERGE, SAVE, GET и PUT.
Типы файлов могут быть следующими:

".BS" - текст программы на Бейсике в упакованном (токенизированном) виде;
".TX" - текст программы на Бейсике в символьном виде в формате текстовых редакторов ORDOS. Признаком конца текста является байт 0FFH;
".PC" - спрайт, упакованный в формате графического редактора PENX.

Допускается использовать имена файлов без типов или с произвольным типом в командах LOAD, KILL, OPEN и функциях LOF, EXIST, INP, причем действие по умолчанию распространяется только на команду LOAD, если соответствующий файл без типа на диске не найден.

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

5. Команды, операторы и функции

Одним из основных операторов языка является оператор присваивания. Его действие заключается в вычислении значения выражения, стоящего справа от знака "=", и присвоении вычисленного значения переменной, идентификатор которой указан слева от этого знака. Ключевое слово LET, применяемое во многих других версиях Бейсика, указывать не надо. Полный перечень команд, операторов и функций языка и синтаксис их использования приведены в здесь.

6. Запуск интерпретатора

Интерпретатор должен находиться в любом из квазидисков в виде командного файла, т.е. иметь в имени признак "$". Обычно используется стандартное имя BASIC$.
После запуска интерпретатор переходит к процедуре выполнения так называемого "холодного старта".
Сначала он запоминает текущий диск, который будет приниматься по умолчанию в командах, работающих с файлами (вместо диска A: запоминается диск B: ).
Далее определяется максимальный диск, имеющийся в компьютере, чтобы предотвратить обращение к несуществующим дискам в процессе работы.
Затем интерпретатор проверяет, до какого адреса заполнен диск B: , и, если этот адрес превышает 0C000H (т.е. область цветовых атрибутов экрана занята файлами), выводит сообщение "ДИСК!". В этом случае необходимо удалить ненужные файлы с тем, чтобы освободить для Бейсика область цветового ОЗУ. Если область цвета свободна, интерпретатор устанавливает верхнюю границу квазидиска, равную 0BFFFH.

После этого автоматически выполняется директива NEW, и интерпретатор приступает к анализу командной строки ORDOS.
Если в командной строке указано имя файла, то определяется его тип. Допустимыми яляются файлы ".BS" (подразумевается по умолчанию) и ".TX". Перед именем файла может быть указано имя диска с двоеточием - этот диск становится текущим. Файл с заданным именем ищется на текущем диске и, при успешном завершении поиска, запускается (в случае файла ".BS") или просто загружается (в случае ".TX"). Если задано недопустимое имя файла, или файл не найден, выдается соответствующее сообщение об ошибке.

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

В случае пустой командной строки интерпретатор ищет на диске B: временный файл с именем ###.BS или ###.TX и, если он найден, то производится его загрузка с автоматическим стиранием с диска. Диск B: остается текущим.

Если указанных файлов не найдено, то выводится графическая заставка, и интерпретатор ожидает нажатия любой клавиши с последующим переходом в непосредственный режим. Если нажатая клавиша - <F4>, то автоматический запуск внешнего Меню блокируется.

Примененный алгоритм начального старта позволяет осуществлять запуск (загрузку) программ на Бейсике из ORDOS, если имя файла с программой указано в командной строке.

Описанная возможность обработки временных файлов ###.BS и ###.TX используется программой оконного Меню.

Загрузка файлов типа ".TX" занимает длительное время, поэтому при начальном старте во время нее интерпретатор выводит сообщение "ЗАГРУЗКА!" .

Примеры:
--------

BASIC - обычный запуск интерпретатора с текущего диска;

BASIC D: - запуск интерпретатора с текущего диска с последующей установкой диска D ;

C: BASIC B:TV - запуск интерпретатора с диска C и выполнение программы TV.BS, находящейся на диске B (диск B станет текущим);

D: BASIC PROBA.TX - запуск интерпретатора с диска D и загрузка программы с этого же диска, записанной в текстовом виде.

7. Выход из интерпретатора

Для выхода из интерпретатора в ORDOS необходимо дать команду SYSTEM. Допускается ее применение как в непосредственном, так и в программном режимах. Перед выходом интерпретатор восстанавливает максимальный размер диска B: . Выйти в ORDOS можно и через программу Меню. Перед выходом необходимо убедиться, что Ваша программа сохранена. Если все же возникнет ситуация, когда Вы перейдете в ОС, случайно забыв записать программу на диск (допустим, нажав клавишу "Сброс"), дело еще можно поправить, имея некоторый навык работы с памятью в шестнадцатиричных кодах. Для этого надо вызвать программу M128$ и директивой DUMP или MODIFY посмотреть содержимое ячеек 0005H и 0006H. В этой паре ячеек хранится адрес конца Вашей программы. Можно поступить и по-другому: директивой DUMP просмотреть область памяти, начиная с адреса 2A00H (с этой ячейки начинается текст программы на Бейсике), для того, чтобы примерно определить, где находится ее конец. Признаком конца программы являются три последовательных ячейки с нулевыми значениями (00 00 00). Зная начальный (2A00H) и конечный адреса, можно сохранить на квазидиске Вашу программу.

8. Вход в программу Меню

Вход в Меню может быть запрещен или разрешен. Анализ признака разрешения запуска Меню производится в непосредственном режиме интерпретатора процедурой его "теплого старта" перед выдачей сообщения "ОК:". При этом, в случае разрешения запуска, на дисках B: и A: ищется файл MNUBS$, содержащий программу Меню, и, если этот файл найден, он загружается и запускается. В противном случае выводится сообщение "ОК:", и работа с интерпретатором ведется как обычно.
Запуск файла MNUBS$ запрещается при назначении команды выхода из Меню в интерпретатор.

Повторно войти в Меню можно нажатием клавиши <КОМ> (на клавиатуре МС7007) или <УПР>+<^>.
Меню размещается в памяти, начиная с адреса 0A800H, т.е. в области загрузки драйвера LPT и программы выдачи сообщений об ошибках ERMBS$. Файлы MNUBS$, ERMBS$ и LPT можно рассматривать как оверлейные блоки интерпретатора (от Overlay -"перекрытие"), которые попеременно загружаются в одну и ту же область по мере необходимости. Программа Меню использует еще один подзагружаемый файл - драйвер оконного интерфейса VBOX.

Имя файла MNUBS$ может быть изменено при настройке интерпретатора.

9. Работа с клавиатурой

Рассмотрим клавиши, действующие в непосредственном режиме при вводе и редактировании строк. Клавиши управления курсором влево и вправо выполняют свои обычные функции и служат для установки курсора в нужную позицию строки. Это относится и к клавише <ТАБ>. Клавиши перемещения курсора вверх и вниз используются для его установки в начало и конец строки соответственно.
Строкой в Бейсике считается последовательность введенных значащих символов (т.е. имеющих коды от 20H до 7FH включительно) длиной до 253 символов. Действие данных клавиш возможно только в пределах введенной строки (за границы строки курсор выйти не может).
Клавиша <F2> уничтожает символ в позиции курсора с одновременным сдвигом оставшейся правой части строки влево.
Похоже, но несколько иначе работает клавиша <ЗАБОЙ> (DEL) - она уничтожает один символ, стоящий слева от курсора, и перемещает курсор на его место.
Клавиши <F1>, <F3>, <УГОЛ> и <СТР> вводят в строку наиболее часто используемые в непосредственном режиме команды Бейсика: LIST, RUN, EDIT и CLS. Для их выполнения надо нажать клавишу <ВК>.

Для прерывания выполнения Бейсик-программы или команды используется клавиша <F4>. При первом нажатии на эту клавишу выполнение приостанавливается с выдачей звукового сигнала (на экране появляется курсор). Если снова нажать <F4>, произойдет прерывание программы (команды), а если любую другую клавишу -продолжение.
Клавиша <КОМ> или <УПР>+<^> вызывает программу Меню.

Практически все зарезервированные слова Бейсика можно вводить сразу - целым словом. Для этого необходимо в начале нажать клавишу <АР2> (при этом на месте курсора появляется светлый прямоугольник с буквой "К"), а затем нажать еще одну из клавиш. Действие клавиши <АР2> отменяется ее повторным нажатием.
За клавишами букв русского и латинского алфавитов, а также за клавишами <?>, <DEL> и другими управляющими клавишами закреплено по одному ключевому слову независимо от того, в каком регистре находится клавиатура. В эту группу слов попали все на иболее часто встречающиеся команды и операторы интерпретатора, причем там, где это возможно, сохранена фонетическая привязка к слову.

Указанные ключевые слова формируются путем последовательного нажатия клавиши <АР2> и требуемой клавиши.

В данной таблице нажатие клавиши <УПР> для сокращения обозначено через ^.

Basic для Ориона 128 Пушкова v4.10 таблица соответствия клавиш и ключевых слов

Остальные клавиши могут выводить на экран по два различных слова, в зависимости от состояния регистра. К этой группе относятся в основном названия функций, большая часть из которых является трехбуквенными словами. Такое устройство клавиатуры не предполагает обязательного изучения таблицы (Приложение C) перед тем, как начать работать на Бейсике, или необходимости иметь таблицу постоянно перед глазами.

В программном режиме для редактирования строки, вводимой в операторе INPUT, используются клавиши управления курсором, <ТАБ>, <ВК>, <DEL>, <F2>, <F4>.

Продолжение...

Текст подготовил Пушков

Программирование микропроцессорных комплектов i8080, 580вм80, z80, i8085, 1810, 1824

Орион-128 описание команд микропроцессора к580вм80 (Орион-Софт)

Язык Ассемблера для Ориона

Язык Си для Ориона

Язык Паскаль для Ориона

Язык Форт для Ориона

 

 

Купить платы, наборы микросхем на Орион-128, КР565РУ5В, КР565ру7В, к565ру5г AU, к565ру7г Au в позолоте, куплю микросхемы

 

Полезные и интересные статьи

На предыдущую страницу  На главную страницу  На следующую страницу