Разработан | Steve Leininger |
---|---|
Впервые появился | 1977 |
Под влиянием | |
Tiny BASIC, Palo Alto Tiny BASIC | |
Под влиянием | |
TRS-80 Level II BASIC |
Level I BASIC является диалектом Язык программирования BASIC, который поставлялся с первым TRS-80, TRS-80 Model I.
Сотрудник Tandy Стив Лейнингер написал первый черновик NIBL (Национальный промышленный базовый язык) интерпретатор BASIC для SC / MP при работе в National Semiconductor. Не имея возможности взять с собой этот исходный код, он сначала нанял консультанта для написания интерпретатора . Когда этот подрядчик не смог выполнить поставку, он адаптировал общедоступную версию Tiny BASIC Ли-Чен Ван для первоначального прототипа TRS-80 Model I. Это потребовало всего 2 КБ. памяти для интерпретатора , оставляя в среднем еще 2 КБ свободными для пользовательских программ в обычных 4-килобайтных схемах памяти ранних машин.
Во время демонстрации руководству, тогдашний президент Tandy Corporation Чарльз Тэнди попытался указать свою зарплату, но не смог. Это произошло потому, что Tiny BASIC использовал 2-байтовые целые числа со знаком с максимальным значением 32 767. Результатом стал запрос математики с плавающей запятой для производственной версии.
Это привело к замене существующего 16-битного целочисленного кода версией, использующей 32-битный одинарной точности числа с плавающей запятой. Leininger дополнительно расширил язык для поддержки процедур ввода-вывода (клавиатура, CRT, а также чтение и запись с кассет). Язык умещается в пределах 4 КБ ROM.
В презентации, анонсирующей TRS-80, Лейнингер сказал: «То, что мы сделали, мы вернулись через Wang Basic и полностью удалили около 60 процентов его, целочисленные накладные расходы и все такое ".
Когда был представлен TRS-80, были анонсированы три версии BASIC:
Язык уровня I не был доступен для TRS-80 Model II, но на короткое время вновь появился как базовый пакет для модели TRS-80 III в 1981 году по цене 699 долларов по сравнению с системой за 999 долларов с Model III BASIC (еще один продукт Microsoft). Язык был идентичен версии Model I, но с добавлением команд для вывода на принтер.
Уровень I BASIC поддерживал следующие ключевые слова:
NEW
, RUN
, LIST
, CONT
(для продолжения или возобновления программы с точки останова )ПЕЧАТЬ
, ВВОД
, ЧТЕНИЕ
, ДАННЫЕ
, ВОССТАНОВЛЕНИЕ
, LET
GOTO
, GOSUB
, ON-GOTO
, ON-GOSUB
, RETURN
, IF-THEN
( но нет ELSE
), FOR-TO-STEP / NEXT
, STOP
, END
CLS
, SET
, RESET
, POINT ()
ABS ()
, INT ()
, RND ()
, MEM
Как Palo Alto Tiny BASIC, на котором он был основан, Уровень I BASIC не токенизировал ключевые слова, такие как Microsoft BASIC, но использовал сокращения, чтобы уменьшить объем памяти, используемый ключевые слова, такие как F.
для FOR
, G.
для GOTO
, P.
для PRINT
и T.
для THEN
.
Язык поддерживает 26 переменных одинарной точности от A до Z, две строки A $ и B $ (каждая из которых ограничена 16 символами) и один предварительно определенный массив A (). В языке отсутствовал оператор DIM для измерения массива, размер которого определялся доступной памятью, не используемой листингом программы (4 байта на элемент). Поскольку в языке отсутствовало много общих математических функций, в руководстве были представлены списки подпрограмм для квадратного корня, возведения в степень, экспонент, логарифмов. Функции, арифметического знака и тригонометрии.
Графическая поддержка была минимально возможной: CLS
, для экрана CLear ; SET (X, Y)
, который подсвечивает место на дисплее; RESET (X, Y)
, который выключил его; и POINT (X, Y)
, который вернул 1, если местоположение было освещено, и 0, если это не так. Координаты могут быть любым выражением в диапазоне от 0 до 127 для оси X и от 0 до 47 для оси Y. Поддерживалось только черно-белое отображение.