Описание
компьютера Орион-128
|
Журнал
РАДИО
|
БЕЙСИК "ORION"
РЕДАКТОР ПАМЯТИ
Все, кому приходилось заниматься вводом вручную шестнадцатиричных кодов дампов программ, публикуемых в журнале, знает, какое это трудоемкое занятие. Обычно это приходится делать пользуясь директивой М МОНИТОРа, которая рассчитана для исправления нескольких ячеек в уже существующей программе. Трудности можно значительно уменьшить, если воспользоваться для этого специальной программой ввода и редактирования шестнадцатиричных дампов - редактора памяти. Правда, саму программу (ее коды приведены в табл.1 ) придется вводить, как обычно.
Программа рассчитана для работы в области ОЗУ начиная с адреса 0В000H. Изменить стартовый адрес необходимо монитором "М128$" (директива "FILE ADDRESS").
Работа с программой не требует особых пояснений: запустите программу и введите начальный адрес просмотра - на экран будет выведено изображение, представленное на рис.1. Перемещая курсор клавишами управления, установите его там, где предполагаете производить изменения. Введите новое значение байта или тетрады байта. При этом одновременно будет изменяться контрольная сумма строки (правая колонка), а также сумма всего блока.
Несколько слов об общем управлении программой. Клавиши F1, F3 позволяют листать "страницы" (блоки) памяти соответственно "вверх" и "вниз". Чтобы оперативно изменить адрес просмотра, нажмите клавишу F2 и введите четыре символа нового адреса (вместе с незначащими нулями). Клавиша F4 - возврат в операционную систему.
Программа производит модификацию ячеек памяти сразу, по мере того, как вы вводите новые значения с клавиатуры, поэтому информация на экране всегда соответствует тому, что находится в ОЗУ в данный момент. Не следует проделывать какие-либо изменения в области 0В000Н - 0FFFFH. Здесь находится системная область памяти, и ее модификация может уничтожить весь ваш труд. Перед началом ввода дампа новой программы необходимо предварительно обнулить область памяти, в которую вы будете заносить коды.
Надеемся, что описанный редактор памяти значительно упростит вам операцию ввода Бейсика "ORION".
БЕЙСИК "ORION"
Язык Бейсик является одним из наиболее популярных языков программирования персональных компьютеров, особенно для тех, кто только начинает пробовать свои силы на этом поприще. Не случайны поэтому и многочисленные просьбы читателей, уже собравших "Орион", как можно скорее опубликовать для него Бейсик. Некоторые читатели даже попробовали, по аналогии с пакетом "МИКРОН" (РЕДАКТОР, АССЕМБЛЕР, ДИЗАССЕМБЛЕР), запустить на "Орионе" "Бейсик Радио-86РК" [1] или Бейсик - "МИКРОН" [2]. К сожалению, различия в построении интерфейса дисплея "Радио-86РК" и "Ориона" и наличие в последнем внутреннего квазидиска делают невозможным использование этих программ в полном объеме и оставляют недоступными для пользователя большинство возможностей, которыми обладает "Орион".
Предлагаемый здесь интерпретатор языка Бейсик для ПРК ОРИОН (BASIC - ORION VERSION 1.0) является минимальной 8-килобайтной версией.
Пользуясь версией интерпретатора, можно практически полностью реализовать все заложенные в ОРИОН возможности, не вникая в тонкости построения видеоконтроллера, таблицы распределения адресов и многой другой специальной информации, которую совершенно необходимо знать тем, кто пишет программы в машинных кодах или на языке АССЕМБЛЕР.
При разработке интерпретатора Бейсик для ОРИОНа, впрочем, как и самого компьютера, авторы ориентировались (во всяком случае стремились к этому) в первую очередь на пользователей, являющихся читателями журнала "Радио", и старались максимально использовать уже опубликованный материал по "Микро-80" и "Радио-86РК". Вводя в интерпретатор новые (по отношению к предыдущим Бейсикам) команды и операторы, предпринята попытка учесть и распространяющийся в нашей стране "BASIC-MSX" и, по возможности, приблизить их структуру и синтаксис к этому стандарту. Разумеется, нельзя говорить о полной программной совместимости программ, написанных на "BASIC-MSX" и нашем Бейсике, однако, если вам придется делать перевод программ, написанных, например, на кассетном Бейсике IBM (THE IBM PERSONAL COMPUTER BASIC VERSION 1.10), то эта работа потребует от вас минимальных усилий.
Общая для большинства версий Бейсика часть команд и операторов уже достаточно полно была описана в [1], [2] и [3]. Это дает нам возможность не повторять вновь, начиная с азов, уроки Бейсика, а отослать читателя к более ранним публикациям журнала и соответствующей литературе. В этой статье мы приведем полное описание операторов и особенностей языка, не встречавшихся ранее. Все остальные операторы будут приведены в виде списка с краткой аннотацией.
И в заключение краткого вступления, прежде чем перейти непосредственно к Бейсику, мы хотим высказать еще одно замечание. Интерпретатор языка Бейсик - довольно сложная программа и надо прямо сказать, еще не успела пройти достаточно длительной "обкатки". В таких программах рано или поздно могут обнаружиться ошибки, и от этого не застрахованы даже программы, работающие в гораздо более серьезных областях человеческой деятельности (вспомним хотя бы о космических аппаратах) потерянных из-за ошибок в программах бортовых компьютеров) . Вышесказанное не означает, конечно, что ошибки в интерпретаторе обязательно должны быть.
Мы считаем, что настоящую обкатку Бейсик начнет проходить только после этой публикации, и надеемся, читатели не будут излишне строги к авторам этого программного продукта для ПРК ОРИОН, а помогут в случае обнаружения каких-либо недостатков интерпретатора их оперативно устранить.
ОСОБЕННОСТИ РАБОТЫ ИНТЕРПРЕТАТОРА
Интерпретатор "BASIC/ORION" предназначен для работы только в среде операционной системы "ORDOS" [4]. Он должен находиться на одном из квазидисков "А" или "В" в виде командного файла, т. е. иметь в имени файла признак "$". Обычно используется стандартное имя "BASIC$".
На диск "В" интерпретатор можно занести директивой "S" операционной системы после ввода и проверки кодов из табл.2 (поблочные контрольные суммы приведены в табл.3).
Возможна и такая ситуация, когда на экране появится сообщение ДИСК!, а нажатие любой клавиши приведет к передаче у правления обратно в ОС. Чтобы объяснить, что происходит в этом случае, необходимо вспомнить структуру памяти компьютера "Орион-128". Дополнительная страница ОЗУ, начиная с адреса 0C000Н по адрес 0EFFFH, используется операционной системой как квазидиск. В то же время область памяти дополнительной страницы с адреса 0С000Н по 0EFFFH отведена под атрибуты цвета экрана, т. е. в этой области хранится информация о цвете точек, выводимых на дисплей. Вопрос о приоритете использования этой общей области в каждом конкретном случае решается той программой, которая в данный момент выполняется в памяти компьютера.
Перед тем, как начать работу, интерпретатор проверяет, до какого адреса заполнен квазидиск, и, если этот адрес превышает 0С000Н, выводит сообщение "ДИСК!". В этом случае вам не остается ничего другого, как удалить ненужные файлы с тем, чтобы освободить для Бейсика область цветового ОЗУ. В процессе работы интерпретатор сам установит допустимый размер квазидиска, а по окончании работы - восстановит его максимальный размер.
Сообщение. "ОК:" в Бейсике играет ту же роль, что и угловая скобка в ОС или "==>" в "Мониторе-1", и показывает, что интерпретатор завершил выполнение очередного действия и ожидает от вас следующей команды.
При первоначальном запуске интерпретатора директива "NEW" выполняется автоматически - обнуляются все переменные и массивы, очищается программный буфер и стек. "Старая" программа, находившаяся в ОЗУ, интерпретатором не воспринимается, поэтому, закончив работать с Бейсиком, не забудьте сохранить на диске "В" вашу программу, иначе она будет потеряна. Если все же возникнет ситуация, когда вы перейдете в ОС, случайно забыв записать программу на диск (допустим, нажав клавишу "сброс"), дело еще можно поправить, имея некоторый навык работы с памятью в шестнадцатиричных кодах. Для этого надо вызвать программу М128$ и директивой "DUMP" или "MODIFY" посмотреть содержимое ячеек 0005 и 0006. В этой паре ячеек хранится адрес конца вашей программы. Можно поступить и по другому - директивой "DUMP" просмотреть область памяти, начиная с адреса 2200Н (с этой ячейки всегда начинается текст программы на Бейсике), для того, чтобы примерно определить, где находится ее конец. Признаком конца программы являются три последовательных ячейки с нулевыми значениями (00 00 00). Зная начальный (2200H) и конечный адреса, легко сохранить на квазидиске вашу программу директивой "S".
РАБОТА С КЛАВИАТУРОЙ
В режиме ввода и редактирования строки работа функциональных и управляющих клавиш несколько отличается от привычной по другим программам, в частности в ORDOS. Рассмотрим эти отличия.
Клавиши <-, ->, ТАБ ("курсор влево" и "курсор вправо") выполняют свои обычные функции и служат для установки курсора в нужную позицию строки. Это же можно отнести и к клавише ТАБ. Строкой в Бейсике считается последовательность введенных значащих символов (т. е. имеющих HEX коды от 20 до 7E включительно), длиной от 0 ("пустая строка") до 127 символов. Действие данных клавиш возможно только в пределах введенной строки. За границы строки курсор выйти не может. Например, при завершении интерпретатором выполнения каких-то действий и переходе его в режим ожидания ввода очередной команды на экран выводится сообщение "ОК:" и курсор устанавливается в первую позицию следующей строки экрана. Попытки нажатия клавиш <-, -> и ТАБ ни к чему не приведут. Попробуйте теперь ввести с клавиатуры последовательность символов, например:
БЕЙСАК/ОРИОН-128 (ошибка введена умышленно)
Клавиши <-, -> ТАБ будут работать в пределах введенной вами строки - от буквы "Б" до цифры "8".
Клавиша F2 - уничтожение символа в позиции курсора с одновременным сдвигом оставшейся правой части строки влево.
Вернемся к приведенному выше примеру. Установите курсор под буквой "А" и нажмите клавишу F2. Буква "А" при этом исчезнет, а вся оставшаяся справа от курсора часть строки сместится на одну позицию влево. Курсор при этом остается на месте. Нажмите теперь клавишу с буквой "И", и вы получите на экране строку:
БЕЙСИК/ОРИОН-128
Похоже, но несколько иначе работает клавиша ЗБ ("забой") - она уничтожает один символ, стоящий слева от курсора и перемещает курсор на его место. Таким образом, манипулируя указанными клавишами, можно исправлять неправильно набранные символы и дописывать новые.
Клавиши F1, F3, УГОЛ и СТР вводят в строку часто используемые в непосредственном режиме команды Бейсика: LIST, RUN, EDIT, CLS. Для их выполнения надо нажать клавишу ВК.
Клавиши "Курсор вверх", "Курсор вниз", ПС в режиме ввода и редактирования никаких действий не производят и не используются.
Для остановки работы БЕЙСИК программы нажмите клавишу F4. Это приведет к выводу на дисплей сообщения "СТОП В (НОМЕР СТРОКИ)" и переходу интерпретатора в режим ожидания ввода команды. Работа программы может быть продолжена директивой "CONT".
Все зарезервированные слова Бейсика можно вводить сразу - целым словом. Для этого необходимо вначале нажать клавишу АР2 (при этом на месте курсора появляется светлый прямоугольник с буквой "К"), а затем нажать еще одну из символьных клавиш. Действие клавиши АР2 отменяется ее повторным нажатием. Соответствие ключевых слов Бейсика символьным клавишам приведено в табл.4.
Таблица 4.
@/Ю |
FILES |
К/К |
KILL |
V/Ж |
CLEAR |
A/А |
READ |
L/Л |
LINE |
W/G |
SCREEN |
В/Б |
BOX |
М/М |
DIM |
X/b |
CONT |
С/Ц |
COLOR |
N/H |
NEXT |
Y/b |
SYSTEM |
D/Д |
DATA |
О/О |
POKE$ |
Z/3 |
PAINT |
Е/Е |
DEF |
Р/П |
PSET |
[/Ш |
SAE |
F/Ф |
FOR |
Q/Я |
PEEK |
\/Э |
REM |
G/Г |
GOTO |
R/P |
RETURN |
]/Ц |
LOAD |
H/X |
THEN |
S/C |
STOP |
~/Ч |
STEP |
I/И |
INPUT |
Т/Т |
RESTORE |
//щ |
|
J/Й |
GOSUB |
U/У |
CUR |
?/3Б |
NEW |
|
TAB |
|
INT |
STR$ |
|
0 |
SPC |
5 |
SGN |
OR |
|
|
SQR |
POS |
+ |
AND |
|
1 |
RND |
6 |
INP |
|
NOT |
COS |
BS |
< |
СНR$ |
||
2 |
SIN |
7 |
USR |
LEFT |
|
ATN |
( |
FRE |
|
FN |
|
3 |
TAN |
8 |
LEN |
„ |
DFL |
|
LOG |
) |
VAL |
> |
MID$ |
4 |
EXP |
9 |
ASC$ |
. |
RIGHT$ |
Здесь надо сделать следующие пояснения: за клавишами букв русского и латинского алфавитов, а также клавишами ? и ЗБ закреплено по одному ключевому слову, независимо от того, в каком регистре - верхнем или нижнем - находится клавиатура. В эту группу слов попали все наиболее часто встречающиеся команды и операторы интерпретатора, причем там, где это возможно, сохранена фонетическая привязка к слову. Остальные клавиши могут выводить на экран по два различных слова, в зависимости от состояния регистра. К этой группе относятся в основном названия функций, большая часть из которых является трехбуквенными словами. Такое "устройство" клавиатуры не предполагает обязательного изучения таблицы перед тем, как вы начнете работать на Бейсике, или необходимости иметь таблицу постоянно перед глазами. Пользуясь вначале только несколькими клавишами для ввода запомнившихся слов и вводя остальные слова непосредственно по буквам, вы можете постепенно осваивать новые клавиши.
ОПИСАНИЕ КОМАНД, ОПЕРАТОРОВ И ФУНКЦИЙ ЯЗЫКА
В приведенном ниже перечне команд, операторов и функций языка мы придерживались следующего соглашения: все, что набрано без угловых или квадратных скобок, является обязательными атрибутами, в том числе круглые скобки и запятые. Угловыми скобками отмечены параметры, которые могут быть представлены в числовой форме, в форме выражений, требующих вычисления, либо строковые константы и переменные. В квадратные скобки заключены параметры, которые являются необязательными и могут отсутствовать.
КОМАНДЫ
ОПЕРАТОРЫ
ФУНКЦИИ
Описание операторов.
Рассмотрим работу некоторых операторов более подробно, в основном тех, действие которых имеет свою специфику для ПРК "Орион-128".
SCREENX.
SCREENX - включение цветового режима дисплея. Х может принимать значения 0, 1, 2. При Х=0 включается монохромный (зелено-черный) режим, при Х=1 - четырехцветный и при Х=2 - 16-цветный режим. Оператор SCREEN для данной версии Бейсика является выполняемым, т. е. при появлении его в программе немедленно происходит переключение дисплея на отображение уже имеющейся на экране графической информации в том режиме, который указан в качестве параметра в операторе SCREEN. Одновременно он является установочным и влияет на то, как будут выполняться встречающиеся за ним в программе операторы CLS, COLOR, PRINT, BOX, PAINT, PSET, LINE, DPL.
COLOR X, Y
Оператор задания цвета. X и Y- любые целые числа в интервале от 0 до 15. Х - цвет фона, Y - цвет переднего плана. Само по себе выполнение оператора COLOR не приводит ни к каким изменениям на экране, однако следующие за ним операторы CLS, PSET, LINE, BOX, PAINT, PRINT выводят информацию на дисплей в том цветовом решении, которое задано оператором COLOR. В цветовом режиме 1 (т. е. если перед этим был выполнен оператор SCREEN 1) значения Х и Y должны лежать в пределах 0-3, тем не менее выполнение оператора COLOR с большими значениями (но не более 15) не будет воспринято как ошибка. Значения цвета при этом установятся равными остатку от деления Х и Y на 4. Так, в режиме SCREEN 2 оператор COLOR 6,15 установит цвет выводимых точек белыми на темно-желтом фоне, а оператор COLOR 2,3 - голубыми на темно-зеленом. Если же включен режим SCREEN 1, отображение информации и в том и в другом случае будет происходить синим цветом на зеленом фоне. В режиме SCREEN 0 оператор COLOR не выполняется. При "холодном" запуске интерпретатора устанавливается режим 2 и цвет выводимой на дисплей информации 0,15, т. е. белые символы на черном фоне. В данном случае Бейсик неявно выполняет действия, которые эквиваленты выполнению следующих операторов: SCREEN 2: COLOR 0,15: CLS (ВК] Если в операторе COLOR задать одинаковые параметры, например COLOR 0,0, то выводимая на экран информация будет сливаться с фоном и станет не видна. Выходить из такой ситуации придется, набирая "вслепую" приведенную выше строку операторов, либо использовать кнопку системного сброса.
CLS
Очистка экрана. В режимах SCREEN 1 и SCREEN 2 экран окрашивается в цвет, указанный первым параметром последнего выполнявшегося оператора COLOR.
ГРАФИЧЕСКИЙ И СИМВОЛЬНЫЙ ЭКРАН
Графический экран "Ориона" представляет собой поле 384х256 точек соответственно по горизонтали и вертикали. Началом координат считается точка в левом нижнем углу экрана - она имеет координаты 0,0. Крайняя правая нижняя точка имеет координаты 383,0, правая верхняя - 383,255 и левая верхняя - 0,255. Таким образом, центром экрана можно считать точку (192,128). В отличие от других компьютеров подобного типа переключение режимов дисплея в "Орионе" не изменяет разрешающую способность экрана, а влияет лишь на то, каким образом происходит окраска точек. Это обстоятельство следует учитывать при работе с графикой на ПРК "Орион": если вы выполните какие-то графические построения в одном из режимов, а после этого переключитесь в другой режим, изображение на экране может предстать полным хаосом, лишенным всякого смысла.
Строго говоря, как такового символьного дисплея у "Ориона" нет, и вывод символов происходит в графическом режиме. Тем не менее символы выводятся на экран в строго определенные позиции. Таких позиций 64 в строке и 25 в вертикальной колонке. Для определения места, куда будет выведен символ, используются координаты курсора - их значения лежат в пределах 0-63 по горизонтали и 0-24 по вертикали. Отсчет ведется так же, как и в графическом режиме, от левого нижнего угла экрана.
CUR
Для установки курсора в нужную позицию используется оператор:
CUR X, Y - здесь Х - символьная координата по горизонтали, Y - по вертикали. В некоторых Бейсиках используется аналогичный оператор LOCATE X, Y, действие которого при этом совершенно такое же. Чтобы немного проиллюстрировать сказанное, попробуйте ввести и выполнить следующую программу:В режиме SCREEN 2 вывод информации оператором PRINT происходит только на передний план экрана дисплея, а цветовая атрибутика остается та, которая уже существовала в этом месте. Так, в приведенном примере оператор CLS устанавливает цветовые атрибуты для всего экрана "1,14" - ярко-желтый цвет на темно-синем фоне.
BOX
Чтобы изменить цветовые атрибуты прямоугольной области в Бейсик, введен специальный оператор:
BOX [(X, Y) P, Q [,F, С]
Наличие в синтаксисе оператора квадратных скобок говорит о том, что параметры в них не являются обязательными и могут отсутствовать. Так, это оператор может принимать вид: BOX (X, Y) P, Q, F, С либо BOX P, Q, F, С либо BOX P, Q
Действие этого оператора заключается в том, что он заменяет атрибуты цвета всех точек прямоугольной области теми значениями фона и цвета переднего плана, которые либо заданы последним оператором COLOR (последний из трех приведенных выше операторов), либо значениями параметров F и С. Графическую информацию, уже имеющуюся в этом месте экрана, оператор BOX не стирает. В режиме 2 возможна окраска только восьми горизонтально расположенных смежных точек экрана одновременно, поэтому значение Р в операторе BOX определяет размер окрашиваемого прямоугольника по горизонтали количеством таких "восьмерок". Q - высота прямоугольника и в точках. Так, Р=2, Q=16 зададут прямоугольник (квадрат) размерами 16х16 точек. Левый нижний угол прямоугольника располагается там, где закончилось последнее графическое построение , или же в точке с координатами (X, Y), но обязательно в точке, значение горизонтальной координаты которой кратно 8. Так, оператор BOX (3, 15) 2,16 построит цветовой прямоугольник, левый нижний угол которого находится в точке (0,15), а не (3,15), как это указано в операторе. Попробуйте дополнить программу, которую вы вводили выше еще одной строкой:
30 COLOR 4,15: PSET 144,120: BOX 10,20
Некоторые отличия в работе этих программ все же будут. Так, в первых двух вариантах присутствует оператор COLOR, который может изменить действие графических операторов в строках, идущих после 30-й. В первом и третьем вариантах присутствует явный оператор PSET, который выведет на экран точку с координатами (144,120), а во втором и четвертом случаях этого не произойдет.
В приведенном в начале примере мы воспользовались оператором PRINT. В зависимости от того, какой режим дисплея включен в настоящий момент, действие этого оператора несколько различно. Если в режиме SCREEN 2 оператор PRINT выводит информацию в том цветовом решении, которое уже было задано в этом месте экрана независимо от того, какие операторы COLOR ему предшествуют, то в режиме SCREEN 1 оператор PRINT выводит каждый символ в виде матрицы 6х10 точек, окрашивая фон и передний план матрицы теми цветами, которые заданы последним оператором COLOR. Например:Кроме того, в режиме SCREEN 1 блокируется скроллинг экрана при переводе строки, если курсор находится в нижней строке экрана, как это происходит в режимах 0 и 2. В такой ситуации курсор переходит на верхнюю строку, а экран остается неподвижным.
ПОСТРОЕНИЕ ТОЧЕК И ЛИНИЙ
PSET X, Y [,С]
Для построения точки в любом месте экрана - параметр С в этом операторе необязателен и может отсутствовать. Если его нет, то на экран выводится точка с координатами Х и Y, окрашенная в цвет, заданный вторым параметром в последнем операторе COLOR. Если присутствует параметр С - цвет, то точка будет нарисована этим цветом. Если далее вновь встретится оператор PSЕТ без третьего параметра С, то эта точка опять же будет нарисована цветом, заданным последним оператором COLOR. В качестве примера рассмотрим следующую последовательность операторов (предполагается, что компьютер работает в режиме SCREEN 2):
COLOR 0,15: PSET 0,0: PSET 10,0,12: PSET 20,0
При выполнении этой строки будут выведены 3 точки: первая - цветом 15 (белый), вторая - 12 (красный) и третья - опять белым.
Для режима SCREEN 1 оператор PSET работает также, необходимо только учитывать допустимое количество цветов: 0-15 для режима 2 и 0-3 - для режима 1. Кроме того, в режиме 2 вывод на экран точки в некоторую позицию вызовет перекрашивание соседних 7-й горизонтальных точек переднего плана в тот же цвет, фон при этом не затрагивается.
LINE
Для построения линий используется оператор
LINE
[(X0, Y0)] X, Y [,С] или
DPL (X0, Y0) X, Y [,С]
Оператор LINE строит линию до точки с координатами X, Y из точки, где было закончено последнее построение, либо из точки с графическими координатами (X0, Y0), если эти параметры заданы в операторе. Оператор DPL отличается от LINE только тем, что параметры Х и Y в нем являются относительными координатами к той точке, откуда начинает строиться линия и могут принимать как отрицательные, так и положительные значения. В отношении третьего (необязательного) параметра "С" справедливо все, что было сказано выше об операторе PSET.
В этой версии Бейсика отсутствуют такие графические операторы, как, например, CIRCLЕ, однако построение окружности можно просто выполнить с помощью небольшой подпрограммы, пользующейся только операторами PSET и LINE, то же самое, кстати, можно отнести ко многим средствам расширенных Бейсиков - практически все их операторы можно эмулировать, пользуясь простыми средствами, имеющимися в вашем Бейсике или в крайнем случае с помощью функции "USR" или оператора "LOAD" и небольших программ в машинных кодах. В качестве еще одного примера приведем программу построения двух цветных окружностей:со строки с номером 1000 здесь приведена универсальная подпрограмма построения произвольной окружности. Для обращения к подпрограмме должны быть заданы следующие параметры: ХС, YC - координаты центра окружности, R - радиус, С - цвет и N - количество шагов разбиения (на самом деле подпрограмма строит не окружность, а N - угольник, и чем больше N, тем ближе его форма к окружности, но при увеличении N увеличивается и время, затрачиваемое на построение). В строках 20 и 30 задаются параметры и происходит вызов подпрограммы. Следует отметить, что если в вашей программе окружность строится несколько раз, имеет смысл поступить по другому - в начале программы определить и вычислить два массива - синусов и косинусов, а потом для построения пользоваться ими. Этот способ резко ускорит выполнение программ. В строке 1040 значение координаты Y умножается на коэффициент 0.8. Это делается, чтобы выправить геометрию экрана, так как по горизонтали экран "Ориона-128" несколько сжат.
PAINT
Для режима 1 существует еще один графический оператор:
PAINT X, Y, С - выполнение этого оператора позволяет закрасить (залить) область, ограниченную линией какого-либо цвета этим же цветом, начиная от точки С координатами X, Y. При этом фигура, которая закрашивается, может иметь любую сложность, важно только, чтобы в ней не было разрывов, иначе произойдет "заливка" всего экрана. Чтобы проиллюстрировать действие этого оператора, исправьте начальные строки предыдущего примера следующим образом:Результатом работы этой программы будут два цветных круга.
КОМАНДЫ РАБОТЫ С ФАЙЛАМИ ОПЕРАЦИОННОЙ СИСТЕМЫ
Из Бейсика "ОРИОН" исключены команды непосредственной записи программ на магнитную ленту и их чтения. Вместо этого введены команды, с помощью которых программа может быть оформлена в виде стандартного файла "ORDOS", записана на квазидиск и считана оттуда. Запись и чтение таких файлов на магнитную ленту осуществляется программой "СН$" в общем стандарте. Директив работы с файлами в Бейсике пять: SAVE, LOAD, RUN, KILL, FILES.
SAVE
SAVE "ИМЯ" - эта команда создает на диске "В" файл и записывает в него программу из программного буфера Бейсик-интерпретатора. "Посадочный" (стартовый) адрес таких программ равен 2200Н. При выполнении директивы интерпретатор всегда добавляет к имени, которое выбрали для вашей программы расширение "BS". Таким образом, если вы решили создать файл и с помощью директивы SAVE хотите присвоить ему имя, например, "ПРОГ1", введите SAVE "ПРОГ1", и на диске "В" в результате выполнения этой команды появится файл с именем "ПРОГ1.BS" (заметим, что расширение имени можно набирать вместе с именем: так, выполнение команд SAVE "ПРОГ1" и SAVE "ПРОГ1.BS" приведет к совершенно одинаковому результату). Так как в операционной системе "OR DOS " длина имени ограничена восемью символами, имена Бейсик - программ не должны превышать пяти символов. Попытка создать файл с более длинным именем (но не более восьми символов) не будет воспринята как ошибка - при выполнении директива отсечет лишние символы, ограничив собственно имя пятью. Пример: директива SAVE "ПРОГ1234" создаст на диске файл с именем "ПРОГ1.BS" (разумеется, если файла с таким именем еще нет на диске).
LOAD
LOAD "ИМЯ" - эта директива может загрузить из диска "В" программу на Бейсике (если имя файла имеет расширение ".BS") либо произвольный командный файл или блок данных. В первом случае директива читает из файла с именем "ИМЯ.BS" Бейсик -программу и записывает ее в программный буфер интерпретатора. Программа, которая находилась в буфере ранее, при этом теряется (даже если нумерация строк этих программ различна). Все имевшиеся числовые и строковые переменные обнуляются.
При загрузке командного файла (имеющего в имени символ "$" директива LOAD работает аналогично соответствующей директиве операционной системы "ORDOS". Если придерживаться определенных соглашений (программа из командного файла не должна нарушать стек и заканчиваться командой RET), то после ее выполнения управление будет передано обратно интерпретатору. Следует помнить также, что программа, загружаемая директивой LOAD, не должна располагаться в областях, используемых при работе самим Бейсиком.
RUN
Загрузить программу на Бейсике, а после загрузки еще и запустить считанную программу можно с помощью директивы RUN "ИМЯ". Все сказанное об, именах файлов для Бейсик - программ при объяснении работы директивы SAVE в полной мере относится и к командам LOAD и RUN. Используя директиву RUN "ИМЯ", можно организовать работу программ на Бейсике таким образом, что программа в зависимости от тех или иных обстоятельств сама загружает другую Бейсик - программу и передает ей управление, та, в свою очередь, следующую и так далее, т. е. оператор RUN "ИМЯ" можно использовать не только в непосредственном, но и в программном режиме. Применять директиву RUN для загрузки в ОЗУ командных файлов нельзя.
FILES
FILES - эта команда выводит на экран дисплея каталог файлов диска "В", а также стартовый адрес и длину каждого файла в шестнадцатиричном виде.
KILL
KILL "ИМЯ.BS" - директива уничтожения файла. Для выполнения директивы KILL, в отличие от остальных директив работы с файлами, имя программы должно вводиться полностью, включая расширение. Работа директивы аналогична работе директивы "Е" операционной системы. При использовании этой команды следует соблюдать осторожность так же, как и при работе с директивой "Е" ОС - уничтоженный файл чаще всего восстановить уже невозможно.
В. СУГОНЯКО, В. САФРОНОВ
Московская обл.
ЛИТЕРАТУРА
1. Долгий А. Бейсик
для "Радио-86РК".- Радио. 1987, № 1.
2. Барчуков В., Фадеев Е. Бейсик "Микрон". - Радио, 1988, № 8.
3. Зеленко Г.. Панов В„ Попов С. Бейсик для "Микро-80".- Радио, 1985, № 1-3;
1986, № 2, 3.
4. Сугоняко В., Сафронов В. Операционная система "ORDOS" для ПРК "Орион-128".-Радио,
1990, № 8.
Отсканировано с журнала Радио №4, №5 1991 г.
Отредактировано Лесных Ю. 2001 г.
Описание
компьютера Орион-128
|
Журнал
РАДИО
|