Бентон-Харбор БЕЙСИК
Семья | БАЗОВЫЙ |
---|---|
Разработано | Гордон Летвин |
Разработчик | Винтек, Хиткит |
Впервые появился | 1978 год |
Платформа | Хиткит H8 |
ТЫ | HDOS |
Лицензия | Коммерческое проприетарное программное обеспечение |
Под влиянием | |
Дартмут БЕЙСИК |
Benton Harbour BASIC и Extended Benton Harbour BASIC — две версии языка программирования BASIC, написанные Heathkit для своих H8 микрокомпьютеров . BASIC были созданы по образцу Dartmouth BASIC и, таким образом, в некоторых отношениях отличаются от многих клонов Microsoft BASIC конца 1970-х годов. Они отличаются друг от друга тем, что первый мог работать на машинах с объемом основной памяти всего 8 КБ и поддерживал только строковые константы, тогда как расширенный требовал 12 КБ и добавлял строковые переменные и дополнительные функции. Он назван в честь города, где находился Хиткит. [1]
История
[ редактировать ]Heathkit следил за развивающейся областью микрокомпьютеров с 1974 года, но в то время они не могли понять, для чего какой-либо из традиционных клиентов Heath будет использовать их. Отношение изменилось, когда в январе 1975 года MITS представила комплект Altair 8800 , который стал бестселлером. Heathkit начал программу по разработке собственного комплекта, который намного превосходил бы Altair. [2] который, как известно, имел низкую надежность из-за ряда конструктивных решений. [а] Идея создания компьютера оставалась горячей темой в компании, но начала развиваться после того, как один инженер заявил: «Хорошо, мы создадим компьютер. Но мы не собираемся заниматься программным обеспечением!» [2]
Идея не заниматься программным обеспечением быстро оказалась плохой. Хотя новая конструкция в значительной степени представляла собой переработанную конструкцию «Альтаира» или конструкции автобуса S-100 , как они были известны к тому времени, она отличалась настолько, что программное обеспечение для «Альтаира» не могло работать без преобразования. В результате потенциальному владельцу будет мало или вообще нечего делать со своим компьютером. [3] Было принято решение продавать системы хотя бы с некоторыми фундаментальными программами, но ни у кого в компании не было опыта работы с программным обеспечением. [3]
Компания связалась с Wintek из Лафайета, штат Индиана, с просьбой написать набор программ для системы. Wintek отправила одного из своих программистов, Гордона Летвина , в штаб-квартиру Heath в Бентон-Харборе, штат Мичиган, для встречи с ними. Руководитель проекта в Хите Луи Френцель рассказал, что однажды Летвин приехал на деловую встречу с длинными волосами, в высоких кроссовках и бархатном пальто. Несмотря на свое удивление появлением Летвина, Френцель быстро понял, что Летвин знает, что делает, и решил нанять его напрямую. [3]
Первым проектом Летвина была HDOS , операционная система для платформы. Завершив это, он начал работу над BASIC. Первые версии были чрезвычайно простыми, поддерживали только самые базовые функции, имели точность до 6 цифр, не имели манипуляций со строками. [3] и позволяет использовать только один оператор в строке. [4] Эта версия поставляется со всеми системами H8. За 10 долларов пользователь также мог приобрести Extended BASIC, начиная с версии 10, в которой были добавлены строковые переменные и различные дополнительные функции. [5]
Система не получила особенно хороших обзоров. В одном обзоре он был назван «средним качеством» и выразил обеспокоенность по поводу того, насколько он медленный: примерно в 10 раз медленнее, чем North Star BASIC . [6] Кроме того, несмотря на заявления Хита о том, что Extended обеспечивает улучшенную производительность, тестирование, проведенное одним пользователем, показало, что большинство операций были либо идентичными по скорости, либо немного медленнее, за исключением некоторых математических функций, таких как квадратный корень. [7]
Описание
[ редактировать ]Редактирование программы
[ редактировать ]Как и большинство BASICов той эпохи, систему можно было использовать либо в интерактивном, либо в программном режиме, или, как это было известно в то время, в немедленном режиме и в отложенном режиме. Хит называет их командным режимом и программным режимом. Операторы, введенные без номера строки в командном режиме, выполнялись немедленно. Те, у которых номер был впереди, помещались в соответствующее место в памяти программы, возможно, заменяя существующую строку тем же номером. В отличие от более поздних версий домашнего компьютера , H8 не предполагал какого-либо дисплея с адресацией курсора, поэтому редактирование кода приходилось выполнять путем повторного ввода всей строки с места. *
быстрый. [8] Номера строк могут находиться в диапазоне от 1 до 65 535. [9] и любая отдельная строка может содержать до 80 символов в базовой версии и 100 в расширенной. [8]
Одной из продвинутых особенностей системы было то, что она предлагала систему автозаполнения . При вводе исходной команды, как только она будет однозначно идентифицирована, система немедленно вставит все слово. [10] Хотя некоторые другие диалекты, такие как Sinclair BASIC, предлагали аналогичные функции, они делали это с использованием специальных нажатий клавиш или символов, которые выполняли замену.
Заявления и команды
[ редактировать ]Операторы были разделены на группы: те, которые можно было использовать только в командном режиме и, следовательно, известные как команды, и те, которые можно было использовать в командном или программном режиме. Среди тех, которые можно было использовать только в командном режиме, были: RUN
, CONTINUE
если оно было приостановлено, и SCRATCH
а не более распространенный NEW
стереть программу — (SCRATCH использовался в ряде современных BASICов). Программы были сохранены с помощью DUMP
вместо SAVE
, но загружен с использованием LOAD
. Файлы имели длинные имена и могли быть VERIFY
после ДАМПА. [11]
Операторы, которые можно было использовать в командном или программном режиме, составляли большую часть языка. Среди них были общие IF...THEN
и эквивалент IF...GOTO
видел в нескольких других системах, FOR...NEXT...STEP
, DIM
для 1 или 2 измерений, GOSUB...RETURN
, GOTO
с возможностью использования переменных, а также констант номеров строк, необязательный LET
, LIST
который может перечислять только одну строку или всю программу, ON...GOTO
и ON...GOSUB
вычисляемые ветки , PEEK
и POKE
, PRINT
, READ...DATA
и RESTORE
. Отсутствовал ряд утверждений, встречавшихся на большинстве диалектов той эпохи, в том числе STOP
, END
, DEF FN
и REM
. INPUT
поддерживался с одним дополнительным приглашением, и если приглашение присутствовало, то вопросительный знак, который обычно появлялся, был подавлен. Это также может быть вызвано, если не вводить строку подсказки, а просто использовать точку с запятой. [12] Дополнением стало PAUSE
команда, встречающаяся на некоторых диалектах, которая останавливает выполнение до тех пор, пока не будет нажата клавиша. [13]
Математические операторы были стандартными; +
, -
, *
, /
и ^
. Логические операторы также были стандартными; =
, <
, >
, <=
, >=
и <>
. [14] Включены логические операторы NOT
, AND
и OR
. [15]
Функции также были в основном стандартными, в том числе ABS
, ATN
, ABS
, COS
, EXP
, INT
это было усечение, а не пол, как в большинстве версий, LOG
, POS
который вернул позицию курсора, RND
, SGN
, SIN
, SQR
, SPC
которые выводят несколько пробельных символов и TAB
перейти к определенному столбцу, FRE
распечатать объем свободной памяти и USR
для вызова подпрограмм языка ассемблера . [16] Случайные числа основывались на сериях; RND(0)
вернет последнее число без перехода вперед в серии, RND(-1)
повторно заполняется, и любое положительное значение параметра возвращает следующее значение в серии. [17]
Также существовал ряд дополнительных функций и команд специального назначения, в том числе PAD
который возвращает значение клавиши, удерживаемой на клавиатуре передней панели , и SEG
который преобразовывал значение ключа из PAD в цифру, которую затем можно было вывести на 7-сегментный дисплей. [18] [19] Как и Altair BASIC , Benton Harbour также включал в себя OUT
оператор для записи значения в номер порта, поскольку Intel 8080 использовал пронумерованные порты ввода-вывода. [19]
Переменные могли иметь один символ или один символ и одну цифру — имена с двумя буквами не допускались. [20]
Расширенный БЕЙСИК
[ редактировать ]Самым заметным дополнением расширенного BASIC стали строковые переменные и ряд функций для работы со строками. Строковые переменные обозначались знаком $, как и в большинстве диалектов, и могли содержать до 256 символов. [20] Строковые функции включены в стандарт CHR$
, STR$
, LEFT$
, RIGHT$
, MID$
, ASC
и VAL
. [21] Конкатенация была выполнена с помощью +
. [15] Расширенный также поддерживается LINE INPUT
которые читают всю строку как одну строку вместо того, чтобы интерпретировать пробелы как разделители между значениями. [22]
Еще одно изменение заключалось в том, что FRE
функция заменена командой FREE
, который распечатал подробную таблицу, показывающую использование памяти. PAUSE
был изменен, чтобы принять необязательное значение, которое позволит выйти из состояния паузы по истечении этого времени. Внутренние часы обновлялись каждую миллисекунду, поэтому это значение измерялось с шагом 2 мс. Новый PORT
оператор позволил направить вывод PRINT на другое устройство, что значительно упростило вывод текста, чем использование OUT и циклическое перебор строки. [13]
В Extended также добавлен ряд функций, призванных упростить программирование. Примечательным было добавление второго поля ввода, разделенного запятыми, позволяющего перечислять диапазон строк, например LIST 10,500
, также встречается на некоторых других диалектах, таких как Atari BASIC . Другие включены BUILD
, который на большинстве диалектов назывался бы AUTO
, который включил автоматическую нумерацию строк. Например, BUILD 100,10
приведет к автоматической печати числа «100» после ввода строки, а затем каждая введенная строка будет увеличивать число на 10; 100, 110, 120 и т. д. Это отключалось нажатием control-C. [23] DELETE
разрешено удаление диапазона строк, используя тот же формат диапазона, что и LIST
. [24]
Еще одним дополнением стало CNTRL
команда, которая имела множество настроек, основанных на списке пронумерованных записей. CNTRL 0,500
, для «установки нуля» настроит систему так, чтобы она реагировала на нажатия клавиш Control-B, выполняя GOSUB для строки, в данном случае 500. Настройка 1 устанавливает количество цифр, прежде чем она переключится на экспоненциальный формат, 2 управляет обновляет светодиодный дисплей на передней панели, 3 устанавливает ширину «зон печати», которые используются при печати списка, разделенного запятыми (обычно 14 символов), а 4 включает или выключает аппаратные часы. [25] Выключение часов может ускорить работу программ на целых 15%. [26]
Наконец, было добавлено небольшое количество новых математических функций, в том числе MAX
и MIN
которым был предоставлен список значений, разделенных запятыми, и TAN
. [27]
Примечания
[ редактировать ]- ^ Подробное обсуждение некоторых из этих вопросов первоначальными разработчиками см. на странице терминирования шины S-100 и устаревшей поддержки .
Ссылки
[ редактировать ]Цитаты
[ редактировать ]- ^ Сурден 1977 , с. 35.
- ^ Jump up to: а б Циммерман 1982 , с. 16.
- ^ Jump up to: а б с д Циммерман 1982 , с. 17.
- ^ Мур 1981 , с. 122.
- ^ Подуска 1979 , с. 134.
- ^ Мур 1981 , с. 125.
- ^ Подуска 1979 , стр. 134, 135.
- ^ Jump up to: а б Руководство 1980 г. , с. 5.74.
- ^ Руководство 1980 г. , с. 5.25.
- ^ Руководство 1980 г. , с. 5.72.
- ^ Руководство 1980 г. , стр. 5.27–5.32.
- ^ Руководство 1980 г. , с. 5.59.
- ^ Jump up to: а б Руководство 1980 г. , с. 5.89.
- ^ Руководство 1980 г. , с. 5.84.
- ^ Jump up to: а б Руководство 1980 г. , с. 5,85.
- ^ Руководство 1980 г. , с. 5.66.
- ^ Руководство 1980 г. , с. 5.91.
- ^ Руководство 1980 г. , стр. 5.64–5.65.
- ^ Jump up to: а б Подушка 1979 , с. 135.
- ^ Jump up to: а б Руководство 1980 г. , с. 5.83.
- ^ Руководство 1980 г. , с. 5.70.
- ^ Руководство 1980 г. , с. 5.60.
- ^ Руководство 1980 г. , с. 5.27.
- ^ Руководство 1980 г. , с. 5.28.
- ^ Руководство 1980 г. , стр. 5.34–5.36.
- ^ Подуска 1979 , с. 35.
- ^ Руководство 1980 г. , с. 5.92.
Библиография
[ редактировать ]- «Бентон-Харбор BASIC и расширенный BASIC» (PDF) . Справочное руководство по программному обеспечению операционной системы Heath Disk (PDF) . Хит. 1980.
- Подушка, Пол (март 1979 г.). «Сборка компьютера Heath H8» (PDF) . Байт . стр. 12–13, 124–140.
- Мур, Мартин (апрель 1981 г.). «Строительство H-89. Часть 2» . Килободные микрокомпьютеры . стр. 116–125.
- Циммерман, Фредрик (осень 1982 г.). «Пятая годовщина H8: истоки и перспективы» . Секстант .
- Сурден, Эстер (4 июля 1977 г.). «Хит видит будущие доходы от DP» . Компьютерный мир .
Дальнейшее чтение
[ редактировать ]- Хауэлл, Эдгар (январь 1981 г.). «Улучшение H8 BASIC» . Килободные микрокомпьютеры . стр. 130–132.