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


 

Язык 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

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

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 (Орион-Софт)

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

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

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

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

 

 

 

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

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