stringtranslate.com

Цвет БАЗОВЫЙ

Color BASIC — это реализация Microsoft BASIC , которая включена в ПЗУ цветных компьютеров Tandy/Radio Shack TRS-80, выпущенных в период с 1980 по 1991 год. BASIC (универсальный код символических инструкций для начинающих) — это язык высокого уровня с простым синтаксисом, который позволяет легко писать простые программы. Цвет BASIC интерпретируется , то есть декодируется по мере его запуска.

Фон

Disk Extended Color BASIC 2.1 на компьютере Tandy Color 3

Ядром Color BASIC был Microsoft BASIC-69 , который Тэнди лицензировал у Microsoft. Color BASIC 1.0 был выпущен вместе с оригинальным цветным компьютером 4 КБ TRS-80 в 1980 году. Он находится в 8 КБ ПЗУ и отвечает за все «хозяйственные» обязанности в системе. Сюда входит инициализация оборудования, управление памятью , обработка прерываний и т. д. Как и в большинстве реализаций BASIC, каждая строка кода начинается с номера строки и состоит из одного или нескольких операторов с переменными и операторами. Для следующего уровня BASIC — Extended Color BASIC требуется 16 КБ памяти. («ECB») Extended BASIC требуется для контроллера гибких дисков , который затем предоставляет вам Disk Extended Color BASIC. («DECB») Эмуляторы цветных компьютеров, на которых работает этот и другие интерпретаторы, доступны для современных компьютеров, для некоторых из которых требуется файл «моментального снимка» физической машины. [2]

Переменные

Color BASIC понимает один тип числовых переменных и строковые переменные. В именах переменных в Color BASIC первые два символа имеют значение. Первым символом имени переменной должна быть буква. Второе может быть буквой или цифрой. Строковые переменные обозначаются добавлением знака доллара ($) после имени переменной.

Примеры

A = 5 A$ = «ЭТО СТРУНА» K7 = 10 BB$ = «ПРИВЕТ!» ЗЗ = 1,54

Числовые переменные имеют только один тип — двоичную реализацию с плавающей запятой. Каждая числовая переменная использует 5 байт памяти и может находиться в диапазоне от -1E+38 до 1E+37.

В отличие от большинства реализаций Microsoft BASIC, Color BASIC требует от пользователя зарезервировать место для строковых переменных с помощью оператора CLEAR.

Многомерные массивы также поддерживаются как с числовыми, так и со строковыми переменными. В случае массива адрес элемента заключается в круглые скобки:

A ( 1 ) = 1 A$ ( 1 ) = "КНИГИ"

Несколько размеров разделяются запятыми.

А ( 1 , 3 ) = 4 А$ ( 2 , 2 ) = "XYZ123"

Операторы и символы

Color BASIC предоставляет несколько операторов как для математических, так и, в меньшей степени, для строковых операций.

+ может использоваться для объединения строк или для математического сложения
- используется для вычитания
* используется для умножения
/ используется для деления

Круглые скобки ( ) используются для изменения математического порядка операций.

И используется для логических операций «и».
OR используется для логических операций «или».
NOT используется для логических операций «нет».

Для тестирования используются следующие операторы:

= равно
> больше, чем
< меньше чем
>= больше или равно (также допустимо =>)
<= меньше или равно (также допускается =<)
<> не равно (также допускается ><)

Другие символы, используемые в BASIC:

" " указывает на то, что строковые данные являются константой (статическими).
: разделяет несколько команд в одной строке программы
Точка с запятой, если она встречается в функции PRINT, приведет к тому, что вывод останется в той же строке.
Запятая, встречающаяся в функции ПЕЧАТЬ, приведет к переходу к следующему столбцу.

Ключ

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

str указывает, что требуется строковое выражение. Это может быть статическое строковое значение (в кавычках), строковая переменная или другая функция или выражение, возвращающее строку символов.

номер устройства указывает на устройство. По умолчанию предполагается устройство 0 (экран и клавиатура). В Color BASIC программисту доступны устройства №-1 (кассета) и №-2 (принтер).

Режим редактирования

Если вы допустили ошибку при вводе строки, вы можете либо перепечатать ее с нуля (или DEL), либо отредактировать ее. В режиме РЕДАКТИРОВАНИЯ вы получаете перепечатку строки и вторую копию, которую нажимаете ПРОБЕЛ между символами. Вы не можете использовать клавиши со стрелками. Backspace переводит вас влево, но фактически не стирает его в буфере. «i» переводит вас в режим вставки. нажатие возврата выведет вас из этого состояния. «c» меняет один символ, «d» удаляет один символ. «x» переводит вас в конец строки, позволяя продолжить ее. 'l' перерисовывает линию. 's' ищет следующий экземпляр символа. Для команд «s», «c» и «d» вы также можете ввести число (#) перед нажатием любой из них, что будет: «s» — поиск # экземпляра символа, «c» — позволит вам чтобы изменить количество символов, 'd' - удалить # количество символов.

Функции

ABS(num)
возвращает абсолютное значение числа
ASC(str)
возвращает код ASCII первого символа в строке
CHR$(num)
возвращает один строковый символ с номером кода ASCII
EOF(device number)
возвращает 0, если в файле есть данные, или -1, если он находится в конце файла
INKEY$
возвращает символ, если была нажата клавиша на клавиатуре, или ноль, если ничего не нажималось
INT(num)
возвращает целую часть числа
INSTR(startpos,search str,target str)
ищет первую строку в целевой строке. startpos не является обязательным.
JOYSTK(num)
возвращает положение оси джойстика (0-3) со значением от 0 до 63
LEFT$(str,num)
возвращает первые («левые») символы строки str
LEN(str)
возвращает длину (в символах) строки str
MEM
возвращает доступную свободную память в байтах
MID$(str,start num,length num)
возвращает подстроку строки str, начинающуюся с начальной позиции num и длиной num символов. Также можно переназначить, добавив ="newvalue"
PEEK(num)
возвращает значение номера ячейки памяти (0-65535)
POINT(x num,y num)
возвращает цвет полуграфической точки в позиции x numm (0–63) и y num (0–31)
RIGHT$(str,position num)
возвращает конечную («правую») часть строки str, начиная с позиции символа num
RND(number)
возвращает случайное число (целое) от 1 до num
SGN(num)
возвращает знак числа num , 1, если положительное значение, -1, если отрицательное, 0, если 0
SIN(num)
возвращает синус числа в радианах
STR$(num)
возвращает строку числа num
USR(num)
вызывает подпрограмму машинного языка , адрес которой хранится в ячейках памяти 275 и 276. Подпрограмме передается число , а после ее завершения назначается возвращаемое значение.

Команды

AUDIO [ON|OFF]
Подключает или отключает кассетный звук от звука телевизора.
CLEAR variable space[,highest memory location]
резервирует память для строковых переменных и, возможно, программы на машинном языке.
CLOAD ["name"]
загружает программу BASIC с кассеты. Если имя не указано, загружается следующая программа
CLOADM ["name"]
загружает программу машинного языка с кассеты. Если имя не указано, загружается следующая программа
CLOSE [device number]
закрывает устройство (в Color BASIC это может быть только №-1, кассета)
CLS(num)
очищает экран. Можно указать дополнительный номер цвета (0–8).
CONT
продолжает программу после нажатия BREAK или оператора STOP
CSAVE ["name"]
сохраняет программу BASIC на кассету с дополнительным именем
DATA var,var,var...
сохраняет данные в программе BASIC для извлечения с помощью команды READ
DIM variable(dimension[,dimension 2,...]
измеряет массив и резервирует для него место в памяти
END
указывает на конец программы BASIC
EXEC
[ адрес памяти ] выполняет программу машинного языка по адресу памяти . Если ничего не указано, используется адрес выполнения программы, загруженной с ленты.
INPUT [device number] [{prompt text};] variable [,variable 2, variable n]
Ожидает ввода от номера устройства . Если не указано, предполагается устройство 0 (клавиатура). На экране можно распечатать дополнительную подсказку для оператора ввода.
LIST [starting line] - [ending line]
перечисляет строки вашей программы. Начало или конец можно опустить, или, если оба опущены, будет отображена вся программа.
LLIST [starting line] - [ending line]
работает как LIST, но выводит на принтер
MOTOR [ON|OFF]
включает или выключает кассетный мотор
NEW
стирает содержимое памяти (программу и переменную)
ON {num} GOSUB line 1, line 2, ... line n
вычисляет выражение номер и вызывает указанную подпрограмму номер номер
ON (num) GOTO line 1, line 2, ... line n
вычисляет выражение номер и переходит к указанной строке с номером
OPEN "[I|O]",device number[,"filename"]
открывает устройство для связи
POKE memory address, data
записывает данные (0-255) в адрес памяти (0-65535)
PRINT device number,expression
печатает данные на указанное устройство. Если этот параметр опущен, предполагается #0 (экран).
PRINT @{screen position} expression
работает как PRINT, но печатает в указанном месте (0-511).
READ variable[,variable,...]
считывает следующую переменную(и) из программы BASIC, встроенной в операторы DATA
RENUM NewStart num, OldStart num, Increment num
перенумеровывает каждую строку (необязательно Oldstart ) (с необязательно NewStart) программы: кратно (необязательно num). : Если все параметры опущены, в качестве приращения в списке будет использоваться 10. : С программой на 10 строк, с разделением на 10. 10,20,30,40,50,60,70,80,90,100: перенумеровать 100, 40, 2. Это приведет к изменению нумерации, начиная с номера строки 40. Все номера строк, следующие за ней и включая 40, будут изменены на 2 строки сейчас. 10,20,30,100,102,104,106,108,110, 112
RESET(x,y)
устанавливает для полуграфического пикселя в позиции x (0-63) и y (0-31) черный цвет
RESTORE
сбрасывает указатель READ обратно на первый оператор DATA
RETURN
возвращается из подпрограммы
RUN num
запускает программу BASIC (необязательно) по указанному номеру строки
SET(x,y,color)
устанавливает для полуграфического пикселя в позиции x (0-63) y (0-31) цвет (0-8)
SKIPF ["filename"]
пропускает программы BASIC на ленте, пока не будет найдено указанное имя программы
SOUND tone,duration
звучит тон с частотой (1-255) и длительностью (1-255)
STOP
заставляет программу прекратить выполнение
TAB(column)
табуляции в указанном столбце (используется с PRINT)
VAL(str)
возвращает числовое значение строки, содержащей число в строковой форме

Поток управления

GOSUB {line number}
вызывает подпрограмму по указанному номеру строки
GOTO {line number}
переходит к указанному номеру строки программы
IF {test} THEN {command(s)} [ELSE {command(s)}]
выполняет условный тест. Если тест верен, ТО выполняются команды, в противном случае (ИНАЧЕ) выполняются другие команды. Если не указано ELSE и тест ложный, будет запущена следующая строка программы.
FOR {num} = {number} TO {number} [STEP {number} ]...СЛЕДУЮЩИЙ (число)
создает цикл, в котором числовая переменная (num) выполняется от начального номера до конечного с шагом числа (ШАГ). Если шаг опущен, предполагается 1

Сообщения об ошибках

/0
деление на ноль
AO
указанный файл уже открыт
BS
плохой индекс. нижний индекс находится за пределами диапазона DIM
CN
невозможно продолжить (см. команду CONT)
DD
попытаться изменить размер массива
DN
неверный номер устройства
DS
прямая ошибка оператора (в программе нет номеров строк)
FC
недопустимый вызов функции: функция содержит значение, выходящее за пределы допустимого диапазона.
FD
неправильные данные файла: попытка прочитать число в строковое значение и т. д.
FM
неверный режим файла, попытка ввода данных в файл, открытый для ВЫВОДА, и т. д.
ID
недопустимый прямой: указанную команду можно запустить только в программе
IE
введите после конца файла. См. ЭОФ
IO
ошибка ввода/вывода
LS
длинная строка: строки могут содержать только 255 символов.
NF
СЛЕДУЮЩИЙ без ЗА
NO
файл не открыт
OD
закончились данные: попытайтесь прочитать последние ДАННЫЕ в программе.
OM
недостаточно памяти
OS
недостаточно места для строк: см. CLEAR
OV
переполнение: число выходит за пределы диапазона
RG
ВОЗВРАТ без ГОСУБ
SN
ошибка синтаксиса
ST
строковая операция слишком сложна
TM
несоответствие типа (A$=3, A="CAT")
UL
попытаться перейти к несуществующей строке GOTO или GOSUB

Документированные подпрограммы ПЗУ

В ПЗУ Color BASIC имеется несколько подпрограмм для программ машинного языка, которые доступны для программирования общего назначения.

POLCAT
адрес [$A000]: опрашивает клавиатуру на наличие символа
CHROUT
адрес [$A002]: выводит символ на экран или устройство.
CSRDON
адрес [$A004]: запускает кассету и готовится к чтению
BLKIN
адрес [$A006]: читает блок с кассеты
BLKOUT
адрес [$A008]: записывает блок на кассету
JOYIN
адрес [$A00A]: считывает значения джойстика

Рекомендации

  1. ^ 80-США. Интервью Билла Гейтса из Microsoft, 80-США - Том IV, номер 3 (1981-05) (80-Northwest Publishing) (США), стр. 8. Совсем недавно он завершил работу над цветным компьютером Radio Shack. Больше всего его радует написанный им пакет Extended Color Basic.
  2. ^ БЕСПОРЯДОК
Примечания