Язык Basic V2.4 Орион-128, основы программирования, уроки языка
Как научиться владеть языком Basic V2.4 в Орион-128 и Орион-ПРО.
01.04.2023 обновление информации
BAS24.TX version 2.4 /1993
Бейсик Орион V2.4
Занимаемые адреса озу: 0000-2625h, адрес начала программы:
2800h (независимо от адреса посадки файла .bs).
В предлагаемой версии интерпретатора устранены ошибки, обнаруженные в версии 1.1 ("радио", № 4,5, 1991), улучшена работа некоторых команд, операторов и функций, добавлена обработка шестнадцатиричных чисел и введены новые операторы и команды:
get, put, sound, delete, auto, renum, merge, else. Интерпретатор работает как с процессором кр580вм80, так и с z80. рассмотрим изменения более подробно.
Улучшение существующих команд, операторов и функций
1. выполнение в непосредственном режиме - устранена ошибка, вызванная неправильной работой подпрограммы вывода символа на экран (порча буфера ввода).
2. ввод строки программы - устранена ошибка определения адреса конца программы.
3. прерывание выполнения программы при нажатии упр+c работа программы приостанавливается (раздается звуковой сигнал, и после отпускания клавиши на экране появляется курсор). При повторном нажатии упр+c работа программы прерывается, а при нажатии любой другой клавиши - продолжается.
4. обработка чисел
устранена ошибка при анализе чисел с плавающей запятой и отрицательным порядком. Введена обработка шестнадцатиричных чисел в диапазоне 0..ffffh. синтаксис шестнадцатиричного числа: &<шестнадцатиричные цифры>
5. команда edit - после входа в edit курсор устанавливается между номером строки и ее текстом. При нажатии упр+c изменения строки не сохраняются.
6. команды list/llist изменен синтаксис команд:
list {n}
llist {n} - выводят строку программы с указанным номером на экран и
печать соответственно. если номер не указан, то выводится вся программа;
list {n1},{n2}
llist {n1},{n2} - выводят строки программы с номерами от n1 (или
сначала) до n2 (или до конца) включительно. вместо запятой можно
использовать знак "-".
при первом запуске llist (lprint) файл lpt ищется сначала на диске "b",
а потом на диске "a".
7. команды run и load загрузка файлов (.bs) с диска производится
независимо от их адреса "посадки" в область 2800h (адрес начала
программы).
при загрузке контролируется об'ем свободной памяти.
8. оператор lprint
на печать могут быть выведены символы с кодами, большими 7fh. Ширина печати задается в ячейке с адресом 0007h и может быть изменена оператором poke 7,<ширина печати> . если задать значение 0, то печать будет происходить без ограничения ширины. В операторе lprint теперь работают функции tab, spc и запятая в качестве разделителя.
9. оператор input - при нажатии "вк" без ввода значения заносится 0 для числовой переменной и пустая строка - для символьной.
10. оператор restore в операторе restore разрешается указывать номер строки, на которую необходимо установить указатель data: restore {n}
если номер строки n указан, указатель data устанавливается на строку n (если такой строки в программе нет, выдается ошибка 08), в противном случае - на начало программы.
11. функция pos
pos(0) - позиция курсора в строке (0..63),
pos(1) или
pos(-1) - позиция печатающей головки (0..ширина печати-1).
функция pos(1) контролирует следующие символы:
0dh - сбрасывает pos(1) в 0,
08h - уменьшает pos(1) на 1 (если pos(1)>0), все остальные символы с
кодами, большими 1fh, увеличивают pos(1) на 1. следует учитывать, что
использование управляющих esc-последовательностей вносит несоответствие
в pos(1).
12. функция inp
inp(-1) - опрос готовности принтера. если в системе
есть файл с именем "lpt", и принтер готов, то выдается значение
"истина" (-1), в противном случае - "ложь" (0).
inp(0) - ввод символа с клавиатуры (0f803h),
inp(1) - опрос кода нажатой клавиши (0f81bh).
inp(строка) - проверка наличия файла с именем, заданным
параметром (строка), на диске 'b:' . если файл найден, выдается
значение "истина" (-1), в противном случае - "ложь" (0).
новые операторы и команды
-------------------------
1. оператор get (ар2 + ~e)
синтаксис:
get "имя" {(x,y)} {режим изображения {,режим цвета}}
- считывает с квазидиска на экран графический массив
(спрайт) с именем "имя.pc", представленный в формате графичес-
кого редактора penx$. если отсутствуют необязательные коорди-
наты (x,y) загрузки левого нижнего угла картинки, то в качестве
этой точки выбирается точка последнего графического построения.
режим экрана 1 не поддерживается.
необязательный параметр {режим изображения} определяет,
какую операцию над байтами изображения спрайта и экрана необхо-
димо выполнить при загрузке (по умолчанию принимается 1):
0 - изображение не загружается,
1 - изображение на экране заменяется изображением спрайта,
2 - выполняется операция "исключающее или",
3 - выполняется операция "об'единительное или",
4 - выполняется операция "логическое и",
5 - изображение спрайта инвертируется.
указанная операция не действует на цветовые атрибуты. зна-
чения x лежат в пределах 0..383, y -в пределах 0..255, при этом
если читаемый фрагмент не умещается на экране, будет выведена
только его часть.
необязательный параметр {режим цвета} может принимать сле-
дующие значения (по умолчанию - 1):
0 - цвет не загружается ("монохромный" режим),
1 - загружается цвет спрайта,
2 - устанавливается цвет последнего оператора color.
при загрузке графического фрагмента используется промежу-
точный буфер спрайтов с конечным адресом 7fffh. в ячейке 7ffch
хранится высота загруженного спрайта, в ячейке 7ffdh - его ши-
рина, в ячейках 7ffeh,7fffh - начальный адрес буфера (в соотве-
тствии со стандартом penx$).
2. оператор put (ар2 + ~f)
синтаксис:
put "имя" {(x,y)} ширина,высота - записывает на квазидиск
под именем "имя.pc" графический фрагмент экрана с цветом в фор-
мате графического редактора penx$. необязательные параметры
(x,y) задают координаты левого нижнего угла спрайта на экране
(если они не заданы, то выбирается точка последнего графическо-
го построения). размеры сохраняемого спрайта- (ширина*8) х (вы-
сота) точек. в отличие от оператора get, сохраняемый спрайт
должен полностью помещаться на экране.
режим экрана 1 не поддерживается.
при сохранении графического фрагмента используется проме-
жуточный буфер спрайтов с конечным адресом 7fffh.
3. оператор sound (ар2 + ~g)
синтаксис:
sound f,t {,f,t,...} - формирует звуковой сигнал (серию
сигналов) со средней частотой f (гц) и длительностью t (мс).
оператор sound удовлетворительно генерирует сигналы с частотами
от 1 гц до 4 кгц (более высокая частота не обеспечивается из-за
ограниченной тактовой частоты процессора). нотный диапазон: от
большой октавы до 4 октавы включительно. если задано f=0, то
формируется пауза заданной длительности. диапазон значений дли-
тельности от 1 мс до 32 с.
оператор sound отбрасывает дробную часть значений f и t.
4. оператор else (ар2 + <- )
оператор else выполняется в операторе if в случае ложного
значения условного выражения.
синтаксис:
if <условие> then <операторы> {:else <операторы> }
где в качестве операторов тоже могут использоваться конструк-
ции if..then..else. после else, также как и после then, может
сразу стоять номер строки перехода.
5. команда delete (ар2 + ~d) или (ар2 + k5)
синтаксис:
delete n - удаление строки программы с номером n,
delete {n1},n2 - удаление строк от n1 (или с начала прог-
раммы) до n2. номера, задаваемые в команде delete, должны соот-
ветствовать существующим строкам программы. вместо запятой до-
пускается использовать знак "-".
6. команда auto (ар2 + вк)
синтаксис:
auto {n}{,m} - ввод и редактирование строк программы с
автоматическим выбором очередного номера строки. величина n за-
дает начальный номер строк (по умолчанию 10), m - шаг изменения
номеров (по умолчанию 10). после ввода команды auto на экране
появляется начальный номер строки n (а если строка существует в
программе, то и текст строки), и осуществляется переход в режим
"edit". после нажатия "вк" введенная строка заносится в прог-
рамму, интерпретатор вычисляет номер следующей строки, и про-
цесс ввода (редактирования) строки повторяется. для выхода из
команды auto необходимо нажать упр+c.
прерывание команды auto происходит также в случае ошибки
(например, переполнение памяти или выбор номера строки больше
65529).
особенностью команды auto является возможность изменения
естественного хода нумерации, так как в команде запоминается
номер последней введенной строки и относительно него вычисляет-
ся следующий номер. для реализации такой возможности необходи-
мо отредактировать номер строки, при этом следует помнить,
что при вводе номера без текста строки соответствующая строка
(если она есть в программе) будет удалена.
7. команда renum (ар2 + ~n) или (ар2 + ком)
синтаксис:
renum {n}{,m} - перенумерация строк программы. значения
n и m аналогичны параметрам в команде auto.
команда renum сначала просматривает всю программу с целью
выявления номеров несуществующих строк в командах run, goto,
gosub, on, then, else, restore, а также проверяет допустимость
новых номеров строк (номер строки не должен превышать 65529) с
выдачей сообщений об ошибках "?08 ошибка в..." и "n>65529 ошиб-
ка" соответственно.
если указанных ошибок не обнаружено, то начинается коррек-
тировка программы. в случае программы большого об'ема возможна
выдача сообщения о переполнении памяти ("?07 ошибка"), при этом
программа окажется скорректированной не полностью, что приведет
к ее порче. поэтому перед выполнением renum целесообразно прог-
рамму сохранить на квазидиске.
8. команда merge (ар2 + ~i) или (ар2 + таб)
синтаксис:
merge "имя файла" - вставляет строки программы, храня-
щейся на диске под именем "имя файла" (.bs), в текущую програм-
му.
особенностью интерпретатора является возможность использо-
вания в операторах run, load, merge, save, kill, get, put в ка-
честве имени файла не только строковых констант, но и строко-
вых переменных и выражений, за исключением элементов массивов.
строковое выражение должно быть заключено в скобки.
уточнения описания basic
------------------------
1. оператор next
next i,j,..,k - заменяет несколько операторов:
next i: next j: .. next k
2. функция rnd
rnd(0) - повтор последнего псч,
rnd(1) - выдача нового псч,
rnd(-x) - инициализация датчика псч в соответствии с x.
3. функция fre
fre(число) - об'ем свободной памяти
fre(строка) - об'ем буфера символьных переменных.
20.02.93 в.пушков
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 В данной таблице нажатие клавиши <УПР> для сокращения обозначено через ^.
|
Программирование микропроцессорных комплектов i8080, 580вм80, z80, i8085, 1810, 1824
Орион-128 описание команд микропроцессора к580вм80 (Орион-Софт)
На предыдущую страницу На главную страницу На следующую страницу