Basic CP/M-80 от Orion Soft 1996 г. Орион-128,  основы программирования, уроки языка

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

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

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

Е:01.11.96 (С) 1996г. Орионсофт

БЕЙСИК   страница 2

Образы диска являются загрузочными работают под CP/M-80 V3.61,  V3.62, V3.63 и выше

Скачать образ диска для Готека в формате *.hfe

Скачать образ в формате *.odi

Это описание BAS2.TXT скачать

Примеры:

BASC TEST, B:LISTE=PROG Исходный текст программы PROG находится в файле с названием PROG на актуальном накопителе. Компилятор передает включенную в список исходную программу в файл LISTE на накопителе B. Объектный код запоминается в файле TEST на актуальном накопителе.
BASC, B:LISTE=PROGI В этой версии вызова исходная программа только включается в список.
BASC TEST,LST:=TEST/C/E/D Исходный текст TEST.BAS переводится и объектный код записывается в файл TEST.REL. Файл списка  выводится на печатающее устройство.

4.2. Старт редактора связей языка Бейсик

После завершения работы компилятора, для дальнейшей обработки скомпилированной программы необходимо запустить вспомогательную программу  LINK, которая формирует программу в машинных кодах, непосредственно пригодную для выполнения (загрузочный модуль).
Формат: LINK [<допустимое название файла> [,<допустимое название файла>]...
[/<варианты>]]
Если вспомогательная программа вызывается без параметров, она сообщает об этом с помощью звездочки и ждет ввода параметров.
<Допустимые названия файлов>- это названия файлов, принятые в операционной системе СРМ. Вы называете файлы в которых записаны подлежащие загрузке перемещением об'ектные программы. Здесь автоматически предусматривается буквенная метка ".REL". Однако, если имя файла помечено с помощью поставленного сзади /N, то речь идет о названии об'ектного файла, в который записывается абсолютная об'ектная программа с буквенной меткой ".COM".

<Варианты> указываются с помощью косой черты, стоящей перед буквой. Для Бейсик-программы действительны следующие варианты:
/N Это выражение, стоящее после названия файла, говорит о том, что этот файл следует использовать в качестве об'ектного файла для абсолютной  программы в машинных кодах.
/Е Об'ектный файл с буквенной меткой ".COM" записывается на внешнее зу, и затем происходит передача управления операционной системе. Перед этим  все необходимые программы бейсик-компилятора автоматически считываются из файла BASIC.REL и связываются с об'ектной программой.
/C Как /E, но программа сразу выполняется.
После успешной обработки операторов вспомогательная программа выводит следующие сообщения:
DATA <начало программы> <конец программы> <байты> <свободная память>
[<адрес старта> <конец программы> <число страниц>]
<начало программы> указывает шестнадцатеричный адрес, начиная с которого в рабочей памяти размещена скомпилированная программа.
<Конец программы> указывает шестнадцатиричный адрес последней ячейки памяти, занятой в рабочей памяти скомпилированной программой.
<Байты> указывает в десятичной форме число байтов, занятых программой в рабочей памяти.
<Свободная память> указывает в десятичной форме число ячеек памяти, не использованных во время выполнения вспомогательной программы.
<Адрес старта> указывает шестнадцатеричный адрес, с которого начинается выполнение программы (не обязательно совпадает с адресом начала программы).
<Число страниц> указывает в десятичной форме число 256-байтных блоков, занимаемых программой.

Примеры:

LINK TEST,MROUT,PROG/N/E Связываются программы TEST и MROUT. Абсолютная
программа в машинных кодах заносится в файл с
названием PROG.COM. Программы Бейсик-компилятора
подвязаны.

5. Директивы языка Бейсик

5.1. Директива NEW

С помощью директивы NEW стираются программная память и память для
переменных.
Формат: NEW
Примечание: После NEW интерпретатор переходит в директивный режим. Директи-
ва NEW может использоваться и как оператор. Компилятор языка
бейсик игнорирует эту директиву.
Пример: 5 REM защита программы от несанкционерованного доступа.
10 PRINT "CODEWORT BITTE:" запрос на ввод кодового слова
15 CODE$=INIT$(10) ввод кодового слова из 10 знаков, отсутствие
протокола на дисплее.
20 IF CODE$=CODEWORT$ THEN 50. Сравнение введенного кодового
слова с паролем.
25 PRINT "вы не имеете права доступа!"
30 NEW стирание памяти
50 PRINT "к вашим услугам"
открытие программы
60 ...


5.2. Директива RESET

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


5.3. Директива AUTO

С помощью директивы AUTO автоматически генерируются номера строк. После
каждого нажатия кнопки "ВК" формируется новый номер строки.
Формат: AUTO
С помощью параметра <номер строки> указывается номер первой строки. По
умолчанию используется номер 10.
С помощью параметра <шаг> указывается величина шага до следующей строки. По
умолчанию используется шаг 10.
Примечание: Между двумя строками программы должно всегда оставаться
достаточно "места", чтобы при коррекции и изменениях можно
было вставить новые строки программы. Поэтому шаг меньше 5 не
должен использоваться. Эта директива игнорируется бейсик-
компилятором.

5.4. Директива CLEAR

С помощью директивы CLEAR все числовые переменные могут быть заняты
нулями, все строки переменных стать пустыми и все открытые файлы закрыться.
Дополнительно, на выбор указываются два параметра.
Формат: CLEAR [,[<старший адрес, который может использоваться программой>]
[,<величина строковой области интерпретатора>]]
С помощью первого параметра используемая память делится таким образом,
что образуется защищенная область памяти, в которую могут быть загружены
вызываемые программой программные модули.
Второй параметр имеет стандартную длину 128 байтов (по умолчанию) или,
если свободная память составляет меньше чем 1024 байтов, равен 1/8 свободной
памяти. Оба параметра могут быть числовым выражением, числовой переменной
или числовой константой.

Примеры: CLEAR
CLEAR , 24576
CLEAR ,, 1000
CLEAR ,24576, 512
Примечание: Директива также может использоваться как оператор. В
компиляторе языка бейсик аргументы должны быть типа
"INTEGER". Если в качестве аргумента задается нуль, то
компилятор использует стандартное значение. Изменение
стековой области необходимо только в исключительных случаях
(например, при очень большом числе подпрограмм или циклов
FOR-NEXT).

5.5. Директива CONT

Директива CONT позволяет продолжить программу, прерванную кнопками
CTRL+C, операторами STOP или END.
Фопмат: CONT
Примечание: Содержимое переменных сохраняется неизменным, однако оно может
быть предварительно изменено с помощью операторов в режиме
настольной эвм. Продолжение возможно также после прерывания
программы из-за ошибки; однако следует учесть, что ошибка может
привести к появлению неправильных значений переменных. Это
можно заметить, если перед директивой CONT вывести значения
переменных на дисплей в режиме настольной эвм (обеспечение
проверки программы).
Вместо CONT программа может быть продолжена с определенного
номера строки путем ввода оператора GOTO в режиме настольной
ЭВМ. Здесь тоже переменные остаются неизменными.
Компилятор языка бейсик игнорирует директиву CONT.

Пример: 10 FOR A%=1 TO 30
20 PRINT A%
30 NEXT A%
RUN
1 2 3 4 ... 24 25
Нажмите кнопку CTRL+C
BREAK в 20
ОК
CONT
26 27 28 29 30
OK

5.6. Директива SYSTEM

С помощью директивы SYSTEM возможна передача управления операционной
системе. Все открытые файлы перед этим закрываются.
Формат: SYSTEM
Примечание: Директива также может использоваться как оператор.

5.7. Директива EDIT

С помощью директивы EDIT редактируется строка программы на языке
Бейсик.
Формат: EDIT номер строки
или EDIT
Эта директива вызывает загрузку соответствующей строки в буфер EDIT. Если на
месте номера строки стоит точка, то в буфер EDIT загружается актуальный
номер строки. Для редактирования имеются следующие 6 групп операторов:
1 группа: Передвижение курсора
После загрузки строки EDIT, курсор стоит на первом знаке строки. С
помощью кнопки "SPACE" курсор двигается на одну позицию направо, и с помощью
"DEL"- на одну позицию налево. Если курсор должен быть подвинут на I
позиций, то может быть или использована функция повтора (соответствующая
кнопка остается нажатой до тех пор, пока не будет достигнута нужная
позиция), или количество позиций I вводится в виде числа и ввод завершается
с помощью соответствующей кнопки.
2 Группа: Вставка текста
С помощью оператора <текст><кнопка"ESC"> заданный текст вставляется в
строку, начиная с актуальной позиции курсора.
С помощью оператора
х<текст><кнопка"ESC">
заданный текст вставляется в конце строки. Если из-за вставленного текста
превышена допстимая длина строки, ввод блокируется. Возможно лишь стирание
или выход из дирктивы EDIT.
3 Группа: Стирание текста
с помощью оператора [I] D
справа от актуальной позиции курсора стираются I знаков. Если I отсутствует,
стирается один знак. С помощью
H<текст><кнопка "ESC">
стираются все знаки, стоящие справа от актуальной позиции курсора. На место
стертых знаков вставляется заданный текст.
4 Группа: Поиск отдельных знаков
с помощью оператора
[I] S<знак>
курсор останавливается перед знаком, который был найден I-раз. Если I не
задан, курсор останавливается перед знаком, найденным один раз. Если знак не
найден, курсор стоит в конце строки. Оператор
[I] K<знак>
ищет I-ое появление заданного знака и стирает все имеющиеся до этого знаки.
Курсор останавливается перед знаком, который был найден I-раз.
5 Группа: Замена знаков
с помощью оператора
[I] C<I знаков>
справа от актуальной позиции курсора заменяются I знаков на заданные знаки.
Если I отсутствует, заменяется только один знак.
6 Группа: Окончание редактирования строки.
Нажатие кнопки "ВК" заканчивает директиву EDIT и передает
отредактировванную строку в программу. При этом отредактированная строка
программы еще раз появлляется на экране дисплея.
Оператор Е делает то же самое, но отредактированная строка программы
не появляется на экране дисплея.
Оператор Q заканчивает редактирование строки программы, при этом содержимое
буфера EDIT не передается в программную память.
Оператор L выводит на экран актуальное содержимое буфера EDIT и ставит
курсор на начало строки.
С помощью оператора А буфер EDIT может быть вновь загружен прежним
содержимым строки программы.
Примечание:
При EDIT-директивах I,X,H и S вместо кнопки "ESC" может использоваться
кнопка "ET". Однако в этом случае происходит выход из директивы EDIT и
активируется директивный режим интерпретатора языка бейсик. Директива EDIT
игнорируется компилятором.

Пример:
В проекте программы имеет место следующая строка комментариев:

250 REM DRUCKE KENNZIFFER1; KENZIFFER2; PREIS

Эта строка комментариев должна быть с помощью простого редактирования
преобразована в корректную строку программы. Она имеет форму:

250 PRINT USING "####.## MARK/TONNE ####.###
TONNEN PREIS #######,.## MARK";KENZIFFER1;
KENZIFFER2; PREIS

Сначала вызывается директива EDIT:
EDIT 250 <кнопка "ВК">
с помощью EDIT-оператора L строка идинцируется на дисплее:

250 REM DRUCKE KENNZIFFER1; KENZIFFER2; PREIS

С помощью EDIT-оператора IID стирается текст "REM DRUCKE". Перед текстом
"KENNZIFFER1" должен быть вставлен текст "PRINT USING", включая строку
форматных знаков. Для этого, сначала с помощью EDIT-оператора SK курсор
позиционируется в позицию перед текстом "KENNZIFFER1". Потом с помощью EDIT-
оператора I может быть вставлен желаемый текст:

IPRINT USING "####,.## MARK/TONNE #####,.###
TONNEN PREIS #######,.## MARK";<TASTO
"ESC">

Для проверки новой строки еще раз используется EDIT-оператор L, который
теперь выводит на дисплей:

250 PRINT USING "####,.## MARK/TONNE #####,.###
TONNEN PREIS #######,.### MARK";KENNZIFFER1;
KENNZIFFER2; PREIS

т.к. строка не содержит ошибок, директива EDIT завершается с помощью кнопки
"ВК".
Процесс редактирования может быть существенно сокращен, если используется
EDIT-оператор 2КК (поиск второго появления знака к и стирание всех знаков до
него). Затем курсор стоит перед текстом "KENNZIFFER1" и текст может быть
вставлен с помощью EDIT-оператора I.

Указание:
Если Бейсик-интерпретатор обнаруживает синтаксическую ошибку в
программе, то обработка программы прерывается и выводится сообщение об
ошибке. Вслед за этим активируется директива EDIT для строки программы<
содержащей ошибку> за счет этого возможна непосредственная коррекция строки.
При этом следует учитывать, что после окончания редактирования (нажатие
кнопки "ВК" или использование EDIT- оператора Е), содержимое всех переменных
становится равным 0. Однако, если переменные должны использоваться в рамках
поиска ошибки, то необходимо сначала автоматически заданную директиву EDIT
прервать с помощью EDIT-оператора Q и после проверки содержимого переменных
вновь задать ее. (См. Также последний абзац этого указания.)
Если при вводе текста программы с клавиатуры, прежде чем будет нежата
кнопка "ВК", обнаруживается ошибка, путем нажатия кнопок CRTL+A может быть
активирована директива EDIT. Интерпретатор выводит в этом случае включение
строки, восклицательный знак и знак пробела, и активирует директиву EDIT.
Однако, если ошибка обнаруживается только после нажатия кнопки "ВК",
директива EDIT может быть вызвана с помощью точки, вместо номера строки.
Точка обозначает актуальную, т.е. введенную последней строку.

5.8. Директивы LIST и LLIST

С помощью директив LIST и LLIST можно вывести на дисплей или на
печатающее устройство Бейсик-программу или отдельные разделы программы.
Формат: [ L ] LIST [[<номер первой подлежащей выводу строки>]
[-[<номер последней подлежащей выводу строки]]]
Вывод строк программы может быть прерван с помощью кнопок "CTRL+C". Путем
нажатия "CTRL+S" вывод прерывается, с помощью "CTRL+Q" вновь продолжается.

Примеры: LIST распечатываются все строки программы
LIST 100 распечатывается строка 100
LIST 100- распечатываются все строки, начиная с 100
LIST -200 распечатываются все строки до 200 включительно
LLIST 10-100 все строки между 10 и 100

Примечание: директивы LIST и LLIST игнорируются бейсик-компилятором.

5.9. Директива DELETE

Директива DELETE позволяет производить стирание строк внутри Бейсик-
программы.
Формат: DELETE [<номер первой подлежащей стиранию строки>]
[-<номер последней подлежащей стиранию строки>]
Стираются все строки, номера которых находятся внутри интервала номеров
строк, заданного в директиве DELETE. Если задается только первый параметр,
стирается только строка с указанным номером. Если задается только второй
параметр, стираются все строки начиная с первого номера, использованного в
программе, до заданного. Если параметры не задаются, стираются все строки.
Если задается номер строки, которой нет в программе, появляется сообщение об
ошибке:
ILLEGA FUNCTION CALL.

Пример: DELETE 50
DELETE 70-150
DELETE -100
Примечание:
Директива DELETE может быть применена в программе как оператор, чтобы,
например, стереть строки программы, которые не используются в дальнейшем
процессе ее выполнения. Директива игнорируется Бейсик-компилятором.

5.10. Директива RENUM

С помощью директивы RENUM можно осуществить автоматическое изменение
номеров строк.
Формат: RENUM [<новый номер строки>] [,[<старый номер строки>]
[,<новый шаг>]
Строки программы начиная со <старого номера строки> перенумеровываются
номерами, которые начинаются с <нового номера строки>, шаг нумерации равен
<новому шагу>. При этом автоматически актуализируются все ссылки на
изменившиеся номера строк (например, в операторах GOTO, GOSUB и т.Д.). Если
параметр <новый номер строки> или <новый шаг> не задается, по умолчанию
используется значение 10. Если отсутствует параметр <старый номер строки>,
автоматически берется первая строка программы. Если обнаруживается
неизвестная ссылка, происходит прерывание выполнения директивы RENUM для
этой строки и появляется сообщение об ошибке "UNDEFINED LINE XXXXX в YYYYY".
Нумерация продолжается в следующей строке программы.
Переупорядочивание номеров строк прерывается и появляется сообщение об
ошибке "ILLEGAL FUNCTION CALL", если встречается номер строки, больше 65529,
или если новые номера строк пересекаются со строками программы вне
программного блока.

Примеры:

RENUM - вся бейсик-программа перенумеровывается номерами,
начинающимися с 10, с шагом 10.
RENUM 500,100 - строки программы, начиная с номера 100, нумеруются
номерами, начинающимися с 500, с шагом 10.
RENUM 100, ,5 - вся бейсик-программа нумеруется номерами,
начинающимися с 100, с шагом 5.

Примечание:
Директиву RENUM удобно использовать для поиска неопределенных номеров
строк. Необходимо принять за правило, всегда включать директиву RENUM после
отладки или изменения программы. Тем самым программа сохраняет наглядность и
пригодность к изменениям. Директива RENUM игнорируется Бейсик-
интерпретатором.

5.11. Директива SAVE

С помощью директивы SAVE написанные (и проверенные) Бейсик-программы
могут быть записаны в файл.
Формат: SAVE <допустимое обозначение файла> [,A]
или
SAVE<допустимое обозначение файла> [,P]

 

Продолжение дальше....

 

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

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

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

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

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

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

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

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

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

 

 

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

 

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

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