Jump to content

Цвет БАЗОВЫЙ

Цвет БАЗОВЫЙ
Разработано Билл Гейтс [1]
Разработчик Майкрософт
Впервые появился 1980 год ; 44 года назад ( 1980 )
Стабильная версия
Цвет БАЗОВЫЙ 1.3 (1982 г.)
Расширенный цветной BASIC («ECB») (1984)
Диск Extended Color BASIC («DECB») (1984)
Платформа Цветной компьютер TRS-80

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$="THIS IS A STRING"
K7=10
BB$="HELLO!"
ZZ=1.54

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

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

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

A(1)=1
A$(1)="BOOKS"

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

A(1,3)=4
A$(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}]
...
NEXT (num)
создает цикл, в котором числовая переменная (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. ^ БЕСПОРЯДОК
Примечания
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c2c420c84c2802e31ffd128210d8d7e6__1710176220
URL1:https://arc.ask3.ru/arc/aa/c2/e6/c2c420c84c2802e31ffd128210d8d7e6.html
Заголовок, (Title) документа по адресу, URL1:
Color BASIC - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)