📂 Документ: lang-basic-v20_clean.html


 

Язык Basic V2.0 Орион-128,  основы программирования, уроки языка

Как научиться владеть языком Basic V2.0 в Орион-128 и Орион-ПРО.

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

BAS1.TX  и  BAS2.TX

Бейсик - интерпретатор V2.0

Для того, что бы начать работу с бейсиком необходимо загрузить с магнитофона (если интерпретатор не записан в ппзу на диске 'а') файл basic$ и запустить его директивой l операционной системы:
 b> basic$ {вк}
на дисплее при этге появится сообщение:

basic/orion version 2.0
о'к

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

Дополнительная страница памяти с адраса 0000h по адрес 0efffh используется операционной системой как квазидиск, в то же время область с адреса 0c000h по 0efffh играет для видеоконтроллера роль цветового дисплея, т.е. в этой области памяти дополнительной страницы хранится информация о цвете точек, выводимых на дисплей. Вопрос o приоритете использования этой общей области в каждом конкретном случае решается той программой, которой в данный момент отдано управление. бейсик, перед тем, как начать работать проверяет размер квазидиска (и если он превышает 0c000h выводит сообщение "диск!", что говорит о том, что вам необходимо удалить какие-нибудь файлы, с тем, чтобы освободить для бейсика область цветового озу. После того, как интерпретатор начнет работать, он сам заблокирует размер квазидиска и не допустит записи на него файлов, если общий размер диска в этом случае превысит 0c000h. По окончании работы интерпретатора максимальный размер квазидиска будет восстановлен.

Сообщение "о'к" в бейсике выполняет ту же роль, что и угловая скобка в ос или => в мониторе-1 - показывает, что интерпретатор завершил выполнение очередного действия и ждет от вас следующей команды.

В отличие от бейсика микро-80 и "микрона" наш интерпретатор при первоначальном запуске не воспринимает информацию находящуюся в программном буфере (с адреса 2200h и выше) как программу, т.е. работает так, как если бы перед этим была выполнена директива 'new'. Если вы закончили работать с интерпретатором и хотите переити в ос, надо выполнить директиву 'system', учитывая при этом, что программа на бейсике при этом будет потеряна, если вы предварительно не сохраните ее на квазидиске. Если вы все же перешли в ос, случайно забыв сохранить вашу программу, дело можно довольно легко поправить, имея некоторый навык работы с памятью в шестнадцатеричных кодах. Для этого надо вызвать программу m128$, директивой 'dump' просмотреть область памяти с 2200h для того, чтобы примерно определить,
где находится конец программы, а потом, перейдя назад в ос сохранить на квазидиске вашу программу директивой 's', например:

 b>s prog1 2200,37ff{вк}

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

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

в режиме ввода и редактирования строки работа некоторых
клавиш отличается от от их использования в другию программах,
в частности в ос "ordos". эти отличия касаются
только функциональных и управляющих клавиш. рассмотрим их.
клавиши {<-}, {->}, {таб}
-------------------------
клавиши {<-} и {->} ("кусор влево" и "курсор вправо")
работают так же как обычно и служат для установки курсора в
нужную позицию строки. это же можно отнести к клавише {таб}.
следует учитывать, что строкой считается последовательность
введенных значащих символов (т.е. имеющих коды от 20 hex до
7е hex включительно), длиной от 1 до 128 символов, поэтому
за крайнюю девую и последнюю введенную правую позицию строки
курсор выйти не может. например, при завершении
интерпретатором выполнения каких-то действий и переходе его
в режим ожидания ввода очередной команды на экран выводится
сообщение "o'k" и курсор устанавливается в первую позицию
следующей строки экрана. попытки нажимать клавиши {->}, {<-}
и {таб} ни к чему не приведут. попробуйте теперь ввести с
клавиатуры какую-нибудь последовательность символов,
например:
 o'k
бейсaк/орион-128 
теперь клавиши {<-},{->} и {таб} будут работать в пределах
введенной вами строки, от буквы 'б' до до цифры '8'.
клавиши {f2}, {зб}
------------------
клавиша {f2} - уничтожение символа в позийй курсора с
одновременной сдвижккй оставшейся правой части строки влево.
клавиша {зб} - сдвиг курсора на одну позицию влево с
уничтожением находящегося в этой позиции символа.
выполнив приведенный выше пример установите курсор под
буквой 'а' и нажмите клавишу {f2}. буква 'а' при этом
сотрется, а вся оставшаяся справа от курсора часть строки
сместится на одну позицию влево. при этом курсор остается на
месте. нажмите теперь клавишу с буквой 'и', и вы получите на
экране строку:
 бейсик/орион-128 
похоже, но несколько иначе работает клавиша {зб}
("забить") - она уничтожает один символ, стояший слева от
курсора и перемещает курсор на его место. таким образом,
манипулируя указанными клавишами можно исправлять
неправильно набранные символы и дописывать новые.
клавиши {f1},{f3},{угол} и {стр}
------------)-------------------
клавиши {f1},{f3},{угол} и {стр} выводят в строку часто
используемые в непосредственном режиме команды бейсика:
list, run, edit, cls. для их выполнения надо нажать клавишу
{вк}.
клавиши "курсор вверх", "курсор вниз", {пс}, {f4}
-------------------------------------------------
эти клавиши в режиме ввода и редактирования никаких
действий не производят и не используются.
клавиша {f4} служит для останова работы бейсик-программы.
нажатие этой клавиши приводит к выводу на дисплей сообщения
'стоп в <номер строки>' и переходу интерпретатора в режим
непосредственного выполнения. работа программы может быть
продолжена при помощи директивы 'cont'.

все зарезервированные слова бейсика можно набирать так же
как, например, list - сразу целым слосом. для этого
необходимо нажать клавишу {ар2} - на месте курсора при этом
появляется светлый прямоугольник с буквой 'к', а затем
нажать одну из символьных клавиш. действие клавиши {ар2}
отменяется ее повторныи нажатием. соответствие ключевых слов
бейсика символьным клавишам приведено в таблице 1. здесь
надо сделать следующие пояснения: за клавишами букв русского
и латинского алфавита, а также клавишaми {/?} и {зб}
закреплено по одному ключевому слову, независиио от того, в
каком регистре - верхнем или нижнем происходит работа. в эту
группу слов попали все наиболее часто встречающиеся команды
и операторы интерпретатора, причем там, где это возможно,
сохранена фонетическая привязка к слову. остальные клавиши
могут выводить на экран по два различных слова, в
зависимости от регистра. к этой группе относятся в основном
названия функций, большая часть из которых является
трехбуквенными словами. такое устройство клавиатуры не
предполагает обязательного изучения таблицы перед тем, как
вы начнете работать на бейсике, или необходимости иметь
таблицу постоянно перед глазами. пользуясь вначале только
несколькими клавишами для ввода запомнившихся слов и вводя
остальные слова непосредственно по буквам, вы можете
постепенно оссаивать новые клавиши.


---------------------------------------------------
: таблица 1. :
:----------------:----------------:---------------:
: `/а - files : k/к - kill : v/ж - if :
: a/а - read : l/л - line : w/в - screen :
: b/б - box : m/м - dim : x/ь - cont :
: c/ц - color : n/н - next : y/ы - system :
: d/д - data : o/о - poke : z/з - paint :
: e/е - def : p/п - pset : {/ш - save :
: f/ф - for : q/я - peek : |/э - rem :
: g/г - goto : r/р - return : }/щ - load :
: h/х - then : s/с - stop : ~/ч - step :
: i/и - input : t/т - restore : //? - print :
: j/й - gosub : u/у - cur : {зб}- new :
:----------------:----------------:---------------:
: { } - tab : % - int : * - str$ :
: 0 - spc : 5 - sgn : : - or :
:----------------:----------------:---------------:
: ! - sqr : & - pos : + - and :
: 1 - rnd : 6 - inp : ; - not :
:----------------:----------------:---------------:
: " - cos : ' - abs : < - chr$ :
: 2 - sin : 7 - usr : , - left$ :
:----------------:----------------:---------------:
: # - atn : ( - fre : = - fn :
: 3 - tan : 8 - len : - - dpl :
:----------------:----------------:---------------:
: $ - log : ! - val : > - mid$ :
: 4 - exp : 9 - asc : . - right$ :
---------------------------------------------------

 краткке описание команд, операторов
и функций языка 

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

команды:
****************

 cont  -продолжение выполнения программы
после останова, начиная с
очередного оператора.

 edit  {номер строки} -вывод на экран заданной программно
строки для редактирования.

 files  -вывод на экран каталога квазидиска
'b'.

 list  {номер строки} -вывод на экран строк программы
из памяти, начиная с заданного
номера.

 load  "<имя файла>" -загрузка программы из файла с
заданным именем (с одновременным
стиранием пограммных строк,
находившихся в памяти до этого
момента.

 new  -удаление из памяти всех
программных строк, переменных и
массивов.

 run  {номер строки} -выполнение находящейся в памяти
программы; если задан номер, то
программа выполняется начиная
с указанной строки.

 run  "<имя файла>" -загрузка программы из файла с
заданным именем (с одновремейным
стиранием пограммных строк,
переменных и массивов
находившихся в памяти до этого
момента) и запуск программы со
строки, имеющей наименьший номер.

 save  "<имя файла>" -создание в квазидиске 'b' файла с
заданным именем и запись в него
бейсик-программы из оперативной
памяти.

 system  передача управления операционной
системе.

операторы:
******************
box <ширина>,<высота>-закраска прямоугольника шириной
<ширина>*8 точек и высотой, заданной
значением <высота>, расположенного
вправо и вверх от точки, где было
закончено последнее графическое
построение.

 cls  -очистка экрана дисплея.

 color  <цвет фона>, -установка цвета фона и цвета
<цвет переднего перднего плана. (обратить внимание
плана> на оператор screen).

 clear  sчисловое -присваивание нулевых значений
значение всем строкквым и числовым
переменным и элементам массивов. если
задан необязательный параметр, то
происходит резервирование дополни-
тельного буфера для переменных,
определяемый значением параметра.

 cur  <строка>, -устан. курсор в позицию, заданную
<столбец> параметрами <строка>,<столбец>

 data  <список -добавление строковых и числовых
переменных> констант к пргграммному списку
значений для операторов 'read'.

 def fn  <имя функ- -присваивание имени строковой или
ции>(фиктивная пе- числовой функции и задание ее
ременная) = <вы- определения в виде выражения.
ражение>

 dim  <имя массива> -распределение памяти для массивов.
(индекс {,индекс}) задаваемое в качестве параметра
значение <индекс> определяет макси-
мальное значение индекса (размерность)
массива.

 dpl  <приращение x>, -построение линии из точки, где былo
<приращение y> закончено последнее графическое
{,<цвет>} построение до точки с относительными
координатами x и y заданным цветом.

 for  <переменная> -начало цикла for/next .
=<начальное значе-
ние>
 то  <конечное зна-
чение>
{ step  <приращение>}

 gosub  <номер строки> -перeдача управления в подпрограмму
с заданным номером строки (см.
return .


 goto  <номер строки> -перeдача управлeния строке с
заданным номером.

 if  <условие> then  -выполнение оператора (операто-
<оператор>/<строка ров) следующих за then если выполн.
операторов> условие, в противном случае - переход
на следующую строку.

 if  <условие> then  -условная передача управления нa
<номер строки> строку с заданным номером.
 input  {"запрос";} -присваивание вводимых с клавиатуры
<переменная>/<список значений переменной (или нескольким
переменных> переменным. если после текстового
сообщения ("запрос") стоит ';',
на экран выводится знак вопроса,
если вместо ';' стоит ',', знак
вопроса не выводится.

 kill  "<имя файла>" -удаление с квазидиска 'b' файла с
заданным именем.

 line  <выражение>, -построиtь линию от точки, где было
<выражение>{,<цвет>} закончено последнее графическое
построефие (операторами  pset, line 
или dpl  до точки с графическими
координатами, определяемыми
выражениями, используемыми в качестве
параmетров.

 next  {<переменная>} -ококнчание цикла for/next 

 on  <выражение> -переход к строке с одним из
 goto  <ном. строки> указанных номеров в зависимости от
{,<ном. строки>,...} конкретного значения заданного
выражения.

 on  <выражение> -передача управления в подпрограмму
 gosub  <ном. строки> стркке с одним из указанных номеров
{,<ном. строки>,...} в зависимости от конкретного значения

заданного выражения.

 paint <координата -закраска ограниченной фигуры произ-
x>, <координата y>, вольных очертаний заданным цветом
<цвет> до границы того же цвета начиная из
точки с графическими координатами
x,y. (только для режима screen1).

 poke  <aдрес>, -запись заданного значения в ячейку
<значение> с заданным адресом.

 print  {список зна- -вывод на экран перечисленных в спис-
чений} {;} или {,} ке значений. если после оператора не
стоит ';' или ',' формируется сигнал
возврата каретки и перевода строки.
если значения в списке разделяют ';',
то они будут выводится друг за другом,
если ',', то вывод очередного значения
будет производиться в начало следующей
зоны ( 14 позиций ).

 pset  <координата x> -вывод на экран дисплея отдельной
,<координата y> точки с графическими координатами x,y.
{,<цвет>}

 read  <переменная> -присваивание переменным с заданными
<список переменных> именами значений из списка переменных

 rem  {комментарий} -задание комментария. все символы,
следующие за командным словom и
и состоящие в той же самой программной
строке не исполняются и интерпретиру-
ются как комментарий.

 right$  (строковое -выделение из строкового значения
значение,длина) подстроки заданной длины, начиная с
крайнего правого символа.

 rnd (1)  -генерация случанного числа, лежащего
в интервале {0,1}. rnd( )??

 sgn  (числовое -выдача знака заданного числового
значение) значения. результат выполнения функции
равен +1, если число положительно, -1
если оно отрицательно и 0 если число
равно 0.

 sin  (числовое -вычисление синуса заданного числового
значение) значения.

 spc  (числовое -пропуск заданного числа позиций в
значение) вщводимой на печать строке. используется
только с оператором 'print'.
sqr  (числовое -вычисление квадратного корня заданно-
значение) го числового значения.

 str$  (числовое -преобразование заданного$числового
значение) значения в строку символов.

 tan  (числовое -вычисление тангенса заданного
значение) числового значения.

 tab (числовое -горизонтальн. табуляция. используется
значение) только с оператором 'print'.

 usr  (адрес) -передача управления программе в ма-
шинных кодах, находящейся по заданному
адресу. если программа заканчивается
оператором 'ret', то значением функции
будет значение аккумулятора процессора
после выполнения программы.
 val  (строковое -преобразование строкового значения в
значение) число.

 
  B2.TX
основном тех, действие которых имеет свою спецмфику для прк
"орион-128":

s c r e e n x - включение цветового режима дисплея. x
может принимать значения 0,1,2. при х=0 включается
монохромный (зелено-черный) режим, при х=1 -
четырехцветный, и при х=2 - 16-и цветный режим. оператор
screen для данной версии "бейсика" является выполняемым, то
есть при появлении его в программе немедленно происходит
переключение дисплея на отображение уже имеющейся на экране
графической информации в том режиме, который указан в
качестве параметра в операторе screen. кроме того он
является установочным и влияет на то, как будут выполняться
встречающиеся за ним в программе операторы cls, color,
print, box, paint, pset, line, dpl.

c o l o r x,y - oператор задания цвета. x и y - любые
целые числа в интервале от 0 до 15. х - цвет фона, y - цвет
переднего плана. само по себе выполнение оператора color не
приводит ни к каким изменениям на экране, однако следующие
за ним отераторы cls, pset, line, box, paint, print выводят
информацию на дисплей в том цветовом решении, которое задано
оператором color. в цветовом режиме 1 (т.е. если перед этим
был выполнен оператор screen 1) значения x и y должны лежить
в пределах 0-3, тем не менее выполнение оператора color с
большими значениями (но не более 15) не будет воспринято как
ошибка. значения цвета при этом установятся равными остатку
от деления x и 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, то выводимая на экран информация будет
сливаться с фоном и станет не видна. в этом случае выходить
из такой ситуации придется "вслепую", либо пользоваться
кнопкой системного сброса.

c l s - очистка экрана. в режимах screen 1 и screen 2
экран окрашивается в цвет, указанный первым параметром
последнего выполнявшегося оператора color.

графический и символьный экран:
-------------------------------
графический экран "ориона" представляет собой поле 384 x
256 точек соответственно по горизонтали и по вертикали.
началом координат считается точка в левом нижнем углу
экрана. она имеет координаты (0,0). крайняя правая нижняя
точка ммеет координаты (383,0), правая верняя - (383,255) и
левая верхняя - (0,255). таким образом центром экрана можно
счмтать точку (192,128). в отличие от других компьютеров
подобного типа переключение режимов дисплея в "орионе" не
изменяет разрешающую способность, а влияет лишь на то, каким
образом происходит окраска точек. это надо всегда учитывать
при работе с графикой на прк "орион". если вы выполните
какие-то графические построения в одном из режимов 0-2, а
после этого переключитесь в другой режим картина на экране
может предстать полным хаосом, лишенным всякого смысла.
строго говоря как такового символьного дисплея у "ориона"
нет и вывод символов происходит так же как и графики -
отдельными точками. однако же символы выводятся на экран в
определенные позиции, таких позиций 64 в строке и 25 в
вертикальной колонке. для определения места, куда будет
выведен символ используются координаты курсора - их значения
лежат в пределах 0-63 по горизонтали и 0-24 по вертикали.
отсчет ведется так же как и в графике от левого нижнего угла
экрана. для установки курсора в нужную позицию используетву
оператор

c u r x,y - здесь x - символьная координата по
горизонтали, y - по вертикали. в некоторых бейсиках название
этого оператора звучит как locate x,y. действие его при этом
совершенно такое же. чтобы немного проиллюстрировать
сказанное, попробуйте ввести и выполнить следующую
программу:
10 screen 2: color 1,14: cls
20 cur 26,12: print"orion-128"
в режиме screen2 вывод информации оператором print
происходит только на передний план экрана дисплея, а
цветовая атрибутика остается та, которая уже была в этом
месте. так, в приведенном примере оператор cls устанавливает
цветовые атрибуты для всего экрана 1,14 - ярко-желтый цвет
на темно-синем фоне. чтобы изменить цветовые атрибуты
прямоугольной области в бейсик введен специальный оператор

b o x p,y - этот оператор окрашивает фон прямоугольной
области тем значением фона, который задан последним
оператором color. в этом режиме возможна окраска только 8-и
смежных точек одновременно (см. ), поэтому значение p в
операторе box p,y определует размер окрашиваемого
прямоугольника по горизонтали количеством таких "восьмерок".
y - высота прямоугольника в точках. так, box 2,16 задает
прямоугольник (квадрат) размером 16x16 точек. левый нижний
угол прямоугольника располагается там, где закончилось
последнее графическое построение. попробуйте дополнить
программу, которую вы делали выше еще одной строкой:
30 color 4,15: pset 144,120: box 10,20
и выполнить всю программу.
в приведенном в е примере мы воспользовались оператором
p r i n t. в зависимости от того, какой режим дисплея
включен в настоящий момент действие этого оператора
несколько различно. если в режиме screen 2 оператор print
выводит информацию в том цветовом решении, которое уже было
задано в этом месте экрана независимо от того, какие
операторы color ему прешествуют, то в режиме screen 1
оператор print выводит каждый символ в виде матрицы 6 x 10
точек, окрашивая фон и передний план матрицы теми цветами,
которые заданы последним оператором color. например:
10 screen 1: color 0,2> cls
20 color 1,3: print " красно-синий "
30 color 2,1: print " зелено-красный "
40 color 3,0: print " сине-черный "
50 color 0,2: stop
кроме того в режиме screen 1 блокируется скроллинг экрана
при переводе строки, если курсор находится в нижней строке
экрана, как это промсходмт в режимах 0 и 2. в такой ситуации
курсор переходит на верхнюю строку, а экран остается
неподвижным.

построение точек и линий.
--------------------------
для построения точки в любом месте экрана используется
оператор
p s e t x,y,c - параметр c в этом операторе
необязателен и может отсутствовать. если его нет, то
рисуется точка с координатами x и y окрашенная в цвет,
заданнщй вторым параметром в последнем операторе color. если
присутствует параметр c - цвет, то точка будет нарисована
этим цветом. если далее вновь встретится оператор pset без
третьего параметра c, то эта точка опять же будет нарисована
цветом, заданным последним оператором 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-и горизонтальных точек переднего плана в тот же
цвет, фон при этом не затрагивается.
для построения линии используется оператор
l i n e x,y,c или d p l x,y,c
оператор line строит линию до точки с координатами x,y из
точки, где было закончено последнее построение одним из
операторов pset, line или dpl. dpl отличается от line
только тем, что параметры x и y в операторе dpl являются
относительными координатами к той точке, откуда строится
линия и могут принимать как отрицательные так и
положительные значения. в отношении третьего
(небязательного) пераметра c справедливо все, что было
сказано выше об операторе pset.
в этой версии бейсика отсутствуют такие графические
операторы как, например, circle. однако построение
окружности можно просто выполнить с помощью небольшой
подпрограммы, пользующейся только операторами pset и line.
то же самое, кстати, можно отнести ко многим средствам
расширенных бейсиков - практически все их операторы можно
эмулировать пользуусь простыми средствами имеющимися в вашем
бейсике или в крайнем случае при помощи функции 'usr' и
небольших программ в машинных кодах. в качестве еще одного
примера приведем программу построения двух цветных
окружностей:

10 sgreen2: color0,15:cls
20 xc=192: yc=128: r=80: n=50: c=14: gosub 1000
30 xc=100: yc=100: r=40: n=50: c=9: gosub 1000
900 stop
1000 rem------------подпрограмма--------------
1010 rem--------построения окружности---------
1020 pset xc+r,yc,c
1030 for i=0 to 6.3 step 6.284/n
1040 line xc+r*cos(i),yc+0.8*r*sin(i),c
1050 next: return

со строки с номером 1000 здесь приведена универсальная
подпрограмма построения произвольной окружности. для
обращения к подпрограмме должны быть заданы следующие
параметры: xc, yc - координаты центра окружности, r -
радиус, c - цвет и n - количество шагов разбиения. (на самом
деле подпрограмма строит не окружность, а n-угольник, и чем
больше n тем ближе его форма к окружности, но зато при
увеличении n увеличиваетву и время, затрачиваемое на
построение). в строках 20 и 30 задаются параметры и
происходит вызов подпрограммы. следует отметить, что если в
вашей программе окружность строится несколько раз имеет
смысл поступить по другому - в начале программы определить и
вычислить два массива - синусов и косинусов, а потом для
построения пользоваться ими. это резко ускорит выполнение
программ. в строке 1040 значение координаты y умножается на
коэффициент 0.8. это делается чтобы выправить геометрию
экрана, так как по горизонтали экран "ориона-128" несколько
сжат. пользуясь этим коэффициентом можно строить не только
окружности, но и эллипсы.

для режима 1 существует еще один графический оператор
p a i n t x,y,c - выполнение этого оператора
позволяет закрасить (залить) область, ограниченную линией
какого-либо цвета этим же цветом, начиная от точки с
коождинетами x,y. при этом фигура, которая закрашивается
может иметь любую сложность, важно только чтобы в ней не
было разрывов, иначе произойдет "заливка" всего экрена.
чтобы проиллюстрировать действие этого оператора исправьте
начальные строки предыдущего примера следующим образом:
10 screen1: color3,2:cls
20 xc=192: yc=128: r=80: n=50: c=2: gosub 1000
25 paint xc,yc,c
30 xc=100: yc=144: r=40: n=50: c=1: gosub 1000
35 paint xc,yc,c
900 ....
результатом работы этой программы будут два цветных
круга.

команды работы с файлами операционной системы.
----------------------------------------------
из бейсика "орион" исключены команды непосредственной
записи программ на магнитную ленту и их чтения. вместо этого
введены команды, с помощью которых программа может быть
оформлена в виде стандартного файла "ordos", записана на
квазидиск и считана оттуда. запись и чтение таких файлов на
магнитную ленту осуществляется программой "ch$" в общем
стандарте. директив работы с файлами в бейсике пять: sаve,
load, run, kill, files.

s a v e "имя" - эта команда создает на диске 'b' файл и
записывает в него программу из программного буфера
бейсик-интерпретатора. посадочный (стартовый) адрес таких
программ равен 2200h. при выполнении директивы интерпретатор
всегда добавляет к имени, которое вы выбрали для вашей
программы расширение '.bs'. т.е. если вы решили создать фаил
и при помощи диреотмвы save хотите присвоить ему имя,
например, "прог1":
o'k
save "прог1"
то на диске 'b' в результате выполнения этой команды
появится файл с именем 'прог1.bs'. (заметим, что расширение
имени можно набирать вместе с именем; так, выполнение команд
sаve "прог1" и save "прог1.bs" приведет к совершенно
одинаковому результату). так как в операционной системе
"оrdos" длина имени ограничена восемью символами, длина имен
бейсик-программ не должна превышать пяти символов. не будет
воспринята как ошибка попытка создать файл с более длинным
именем - при выполнении директива отсечет лишние символы,
ограничив собственно имя пятью. пример: директива save
"программа2" создаст на диске файл с именем 'прогр.bs'
(разумеется, если файла с таким именем еще нет на диске).

l o a d "имя" - эта директива читает из файла с именем
"имя" бейсик программу и записывает ее в программный буфер
интерпретатора. при этом теряется программа, которая была в
буфере ранее (даже если нумерация строк этих программ
различна). все имевшиеся числовые и строковые переменные при
этом обнуляются. проделать то же самое, но после загрузки
еще и запустить считанную программу можно с помощью
директивы

r u n "имя". все сказанное об именах файлов для
бейсик-программ при обьяснении работы дмрективы save в
полной мере относится и к командам load и run. используя
директиву run "имя" можно организовать работу программ на
бейсике таким образом, что программа в зависимости от тех
или иных обстоятельств сама загружает другую бесик-программу
и предает ей управление, та, в свою очередь, следующую и так
далее, т.е. оператор run"имя" можно использовать не только в
непосредственном, но и в программном режиме.

f i l e s. эта команда выводит на экран дисплея каталог
файлов диска 'b', а так же в шестнадцатеричном виде
стартовай адрес и длину каждого файла.

k i l l "имя.bs". директива уничтожения файла. для
выполнения директивы kill в отличие от остальных директив
работы с файлами имя программы должно вводиться полностью,
включая расширение. работа директивы аналогична работе
директивы 'e' операционной системы. при применении этой
команды следует соблюдать осторожность, так же как и при
работе с директивой 'e' ос - уничтоженный файл чаще всего
восстановить уже невозможно.

 

 

4. Версия Пушкова V4.10 под ОР ДОС  работает с процессором ВМ80 и Z80

5. Версия для CP/M-80

6. BASIC MSX, работает на Z80 под Ор Дос, смотреть описание, и скачать

Осваиваем микрокомпьютер интересная книга в 2-х томах по программированию на бэйсике от А до Я

Осваиваем микрокомпьютер К-1 Б.Р.Смит 1989 скачать часть 1-я

Осваиваем микрокомпьютер К-1 Б.Р.Смит 1989 скачать часть 2-я

 

Байсик Орион назначение клавиш при нажатии АР2 (ESC)

 F2 – уничтожение символа в позиции курсора (сдвиг влево правой части от курсора)

F1 - LIST,  F3 -  RUN, УГОЛ (HOME) - EDIT, CTP  -  CLS

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

BASIC4.10

F5 (^D) - DELETE

КОМ (^^) - RENUM

^G - SOUND

ТАБ(^I) - MERGE

<-  (^H) - ELSE

^E - GET

ВК (^M) - AUTO

ПС  (^J) - END

^F - PUT

BASIC2.40 (1.0 1.2 1.3)

@/Ю - FILES

K/K – KILL

V/Ж- CLEAR

A/A - READ

L/K - LINE

W/B – SCRENN

B/Б - BOX

M/M – DIM

X/Ь – CONT

C/Ц - COLOR

N/H – NEXT

Y/Ы – SYSTEM

D/Д – DATA

O/O - POKE

Z/З – PAINT

E/E – DEF

P/П – PSET

[/Ш – SAVE

F/Ф – FOR

Q/Я – PEEK

\ / Э – REM

G/Г – GOTO

R/P – RETURN

J/Щ – LOAD

H/X - THEN

S/C – STOP

^/Ч -  STEP

I/И - INPUT

T/T – RESTORE

/ / ? – PRINT

J/Й - GOSUB

U/У - CUR

ЗБ – NEW

[ ] – TAB
0 – SPC

% - INT
5-  SGN

* - STR$
: - OR

! –SQR
1- RND

& - POS
6- INP

+ - AND
; - NOT

“ – COS
2 - SIN

. – ABS
7 - UBS

< - CHR$
, - LEFT$

# - ATN
3 - TAN

( - FRE
8 – LEN

= - FN
- - DPL

$ - LOG
4 - EXP

) – VAL
9 - ABC

> - MID$
. – RIGHT$

 

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

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

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

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

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

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

 

 

 

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

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