stringtranslate.com

Синклер БЕЙСИК

Sinclair BASICдиалект языка программирования BASIC , используемый в 8-битных домашних компьютерах от Sinclair Research , Timex Sinclair и Amstrad . Интерпретатор Sinclair BASIC был написан Nine Tiles Networks Ltd. [1]

Разработанная для работы всего с 1 КБ ОЗУ , система принимает ряд решений для снижения использования памяти. Это привело к появлению одной из наиболее примечательных особенностей Sinclair BASIC: ключевые слова вводились с помощью одиночных нажатий клавиш; каждое из возможных ключевых слов было сопоставлено с клавишей на клавиатуре, при нажатии жетон помещался в память, а все ключевое слово распечатывалось на экране. Это облегчило ввод кода и одновременно упростило анализатор .

Исходная версия ZX80 поддерживала только целочисленную математику, что частично компенсировало некоторые конструктивные замечания по экономии памяти, которые отрицательно влияли на производительность. Когда система была перенесена на ZX81 в 1981 году, была добавлена ​​полная реализация с плавающей запятой . Эта версия была очень медленной и входила в число самых медленных BASICов на рынке в то время, но, учитывая ограниченные возможности машины, это не вызывало серьезного беспокойства.

Производительность стала более серьезной проблемой с выпуском ZX Spectrum в 1983 году, который работал слишком медленно, чтобы в полной мере использовать новые функции машины. Это привело к созданию совершенно нового BASIC для следующего Sinclair QL , а также ряда сторонних BASIC для Spectrum и его различных клонов. Первоначальная версия продолжала модифицироваться и портироваться в постсинклеровскую эпоху.

История

Клайв Синклер впервые встретился с Джоном Грантом, владельцем Nine Tiles, в апреле 1979 года, чтобы обсудить BASIC для новой компьютерной концепции Синклера. [2] Синклер был вдохновлен на создание новой машины после того, как увидел, как его сын наслаждается TRS-80 , но цена этой машины в 500 фунтов стерлингов оказалась серьезным ограничением ее популярности. Ему нужен был новый комплект, который расширил бы их предыдущий MK14 и имел встроенный BASIC по целевой цене 79,95 фунтов стерлингов. Чтобы соответствовать этой цене, машина будет поставляться только с 1 КБ ОЗУ и 4 КБ ПЗУ. Грант предложил вместо этого использовать язык Форт , но бюджет не позволял этого. Грант написал интерпретатор BASIC в период с июня по июль 1979 года, но изначально размер кода составлял 5 КБ, и следующий месяц он потратил на его сокращение. Первоначально это была неполная реализация стандарта Minimal BASIC Американского национального института стандартов (ANSI) 1978 года только с целочисленной арифметикой, называемого 4K BASIC . [3]

Еще до того, как ZX80 был представлен в феврале 1980 года, постоянное ценовое давление в отрасли позволяло еще больше снизить сложность и стоимость и без того недорогой конструкции. В частности, многие отдельные схемы в ZX80 были перереализованы в едином незафиксированном логическом массиве от Ferranti , что позволило снизить цену всего до 49,95 фунтов стерлингов при увеличении размера ПЗУ до 8 КБ. Эта работа была поручена Стиву Викерсу , который присоединился к Nine Tiles в январе 1980 года. Пока Грант работал над интерфейсом кода с аппаратным обеспечением, Викерс использовал большее пространство для введения арифметики с плавающей запятой и набора триггерных функций , которые ожидались от любого BASIC. с той эпохи, производя 8K BASIC . [4] Первоначальная версия не поддерживала принтер ZX и содержала ошибку в функции извлечения квадратного корня . Nine Tiles предоставила новую версию для решения этих проблем, но Синклер не спешил включать новую версию в ПЗУ. Новые ПЗУ в конечном итоге были предложены и владельцам более ранних ZX80. [5]

Когда Синклер проиграл конкурс на создание компьютера BBC , он приступил к реализации планов по созданию недорогой цветной машины, которая в апреле 1982 года появилась как ZX Spectrum . Объем ПЗУ снова будет увеличен, на этот раз до 16 КБ. В соответствии со своей философией создания систем с наименьшими затратами, Синклер хотел внести абсолютный минимум изменений в существующий 8K BASIC. Хотя Nine Tiles считали, что для новой машины потребуется что-то гораздо лучшее, график не позволял этого, и было создано еще одно расширение исходного кода. Из-за того, что объем оперативной памяти также был увеличен до 48 КБ, эта версия была известна как 48K BASIC и, в конечном итоге, 48 BASIC с появлением ZX Spectrum 128, когда Spectrum 16 КБ больше не продавался, и большинство существующих в использовании было увеличен до 48 КБ. [6] [7] Новая версия была доступна ближе к концу 1981 года, но она была «удручающе медленной» и «улиткоподобной». Кроме того, поскольку до конца года прототипов не было, отсутствовала поддержка новой линейки периферийных устройств, которую планировал Синклер. [8]

В феврале 1982 года у Nine Tiles начались разногласия с Синклером по поводу задолженности по гонорарам за различные руководства, выпущенные Nine Tiles. Примерно в то же время Викерс и его коллега из Синклера Ричард Альтвассер покинули свои компании, чтобы начать проект Jupiter Ace . [9] Когда Spectrum был запущен, ПЗУ еще не было завершено, и хотя Nine Tiles продолжали работать над ним до апреля 1982 года, к этому моменту уже было продано 75 000 Spectrums, и проект был отменен. Отсутствующая функциональность позже была добавлена ​​дополнительным кодом в интерфейсе ZX 1 . После того, как Nine Tiles и Sinclair пошли своим путем, было создано несколько новых версий 48 BASIC.

В 1983 году, в рамках вывода Spectrum на рынок США как TS2068, Timex модифицировала его как T/S 2000 BASIC . Новая версия не могла запускать многие программы Spectrum из-за перемещения памяти функций машины. Похожая, но несколько более совместимая версия была представлена ​​как часть испанского Spectrum 128 1985 года, 128 BASIC . [7]

Amstrad приобрела Sinclair Research в 1986 году. Поскольку Sinclair никогда не владела авторскими правами на этот язык, Amstrad пришлось заключить новую лицензию с Nine Tiles. В этот период также появилось несколько других версий, поскольку были представлены различные расширения и клоны Spectrum. К ним относятся +3 BASIC , BASIC64 и Timex Extended Basic . [7] [6]

По состоянию на 2015 год существуют интерпретаторы для современных операционных систем [10] и более старых систем [11] , которые позволяют легко использовать Sinclair Basic.

Описание

Редактирование программы

Как и большинство BASIC для домашнего компьютера, Sinclair BASIC основан на своем линейном редакторе . Когда машина загружается, она запускает BASIC и отображает инверсное видео «K» внизу экрана, обозначающее точку входа. Когда вводится строка и NEW LINEнажимается клавиша, она либо запускается немедленно, если у нее нет префикса номера строки , либо очищает экран и выполняет эквивалент команды LIST, помещая курсор «>» после номера строки в большинстве случаев. недавно введенная строка.

В отличие от большинства машин того времени, редактор не позволял редактировать произвольную форму ни в одной точке экрана. Вместо этого, когда пользователь нажимает , текущая строка кода копируется обратно в нижнюю часть экрана. Пользователь может перемещаться по этой строке по горизонтали с помощью клавиш курсора и фиксировать свои изменения повторным нажатием . Напротив, на обычных машинах, таких как Commodore 64 или Atari 400 , клавиши вверх и вниз можно было использовать для перемещения между строками программы и редактирования их на месте.EDITNEW LINE

Наиболее примечательной особенностью редактора было то, что ключевые слова вводились с помощью одиночных нажатий клавиш. Например, на ZX81 нажатие клавиши на клавиатуре приведет к вводу всего ключевого слова в текущую строку редактирования. После ввода ключевого слова курсор изменится на букву «L», указывая, что последующая информация будет интерпретироваться как обычный текст. Например, повторное нажатие в этот момент приведет к вводу одной буквы «P».PPRINTP

Ключам обычно присваивались два отдельных ключевых слова — одно над ним и одно под ним. Нажатие клавиши в режиме «K» приведет к вводу ключевого слова над клавишей, например, PRINTдля . Если система находилась в режиме «L», можно было вернуться в режим «K», нажав клавишу Shift  — системы изначально не поддерживали строчный текст, поэтому в противном случае сдвиг не требовался. Ключевые слова под клавишами требовали второго нажатия клавиши + , которое переводило редактор в «функциональный режим», изменяя курсор на «F». Ввод общего кода часто приводил к значительному количеству нажатий клавиш.P⇧ ShiftNEW LINE

Преимущество системы заключалось в том, что все многосимвольные ключевые слова представлялись в памяти как один символ, что было значительной экономией на первых машинах, поставлявшихся всего с 1 КБ ОЗУ. Это односимвольное представление включало в себя многосимвольные элементы, такие как <>. Это имеет дополнительные преимущества, заключающиеся в упрощении среды выполнения, поскольку позволяет сразу определить, является ли символ в исходном коде ключевым словом или текстом, а также означает, что ключевые слова никогда не вводятся напрямую, а это означает, что можно, например, иметь переменную с именем «ПЕЧАТЬ», поскольку система может определить, что это не то же самое, что ключевое слово.

По мере развития систем и добавления новых ключевых слов использовать систему ввода становилось все сложнее. 48 BASIC в Spectrum требовал, чтобы каждый ключ содержал до четырех ключевых слов. Ввод ключевых слов был трудоемким процессом поиска соответствующей клавиши относительно небольшим шрифтом на клавиатуре, а затем правильного ввода нескольких нажатий клавиш, необходимых для правильного ввода. Например, для входа BEEPнеобходимо ввести + , чтобы получить доступ к расширенному режиму (более поздние модели включают отдельную клавишу), удерживать ее нажатой, а затем нажать . Чтобы упростить сложную запись на Спектруме, ключевые слова были выделены цветом для обозначения требуемого режима: [12]CAPS SHIFTSYMBOL SHIFTEXTENDED MODESYMBOL SHIFTZ

Эта концепция себя исчерпала, и более поздние машины, работающие под управлением 128 BASIC (ZX Spectrum 128, +2, +3, +2A и +2B), имели более традиционный редактор, в котором пользователь вводил ключевое слово отдельными символами, аналогично другие домашние компьютеры той эпохи. Для этого потребовался новый токенизатор для преобразования строки в аналогичный внутренний формат.

Полученное в результате хранилище программы в памяти в остальном было похоже на Microsoft BASIC , в котором только ключевые слова представлены как токены, а неключевые слова - такие как строковые и числовые константы и имена переменных - остаются в исходном введенном формате. Однако этот введенный формат был не ASCII , а внутренним кодом символов, который содержит как печатные символы, так и токены ключевых слов. Хотя части таблицы, например, заглавные буквы от A до Z, расположены в том же порядке, что и в ASCII, их символы соответствуют разным числовым значениям, т. е. смещение их кодовых точек от нуля отличается от смещения ASCII, равного 65. Другое символы, такие как знаки препинания, возможно, были перемещены еще больше. Набор символов ZX Spectrum является наиболее ярким примером такого кода символов. Сопутствующие компьютеры, на которых работал Sinclair BASIC, использовали аналогичные варианты, например наборы символов ZX80 или ZX81 . Все эти разные, но связанные наборы символов включали токены Sinclair BASIC.

Типы данных

Одной из необычных особенностей Sinclair BASIC является способ хранения переменных в памяти. Обычно интерпретаторы используют записи фиксированного размера для хранения данных, что упрощает сканирование таблицы переменных. Из-за чрезвычайно ограниченной памяти серии ZX нужно было избегать ненужной траты места, и это привело к использованию формата переменной длины. Типы данных включали числа, хранящиеся в 5-байтовых значениях, строки длиной, а затем символы, а также массивы обоих этих типов. Данные хранились в самой таблице, что контрастировало с большинством BASICов той эпохи, где строки и элементы массива хранились в отдельной куче .

Первый байт записи переменной всегда содержал тип в первых трех битах и ​​первый символ имени в следующих пяти битах. Как и в большинстве диалектов микрокомпьютеров, A, A$, A()и A$()были разными переменными и могли хранить разные значения. Большинство переменных могут иметь только односимвольное имя; исключением являются числовые переменные (не массивы), где альтернативный формат содержал первый символ имени в тех же пяти битах, но затем следовали дополнительные символы, заканчивающиеся единицей с набором старших битов. Длинные имена переменных не зависели от пробелов и нечувствительны к регистру в более поздних версиях, поэтому они совпадают с именами одной и той же переменной.LET Number Of Apples = 5LET numberofapples = 5

Недостатком этого подхода является то, что сканирование таблицы для поиска значения ссылки на переменную является более сложным. Помимо проверки соответствия имени с использованием подмножества первого байта, если запись не та, которую ищут, необходимо прочитать тип из трех старших битов, а затем из следующего местоположения переменной в памяти. рассчитывается с использованием типа. Например, если программа встречает переменную «A», а таблица начинается с записи «B$», она не может сопоставить A с B, затем считывает тип и видит, что это строка, а затем должна прочитать следующий байт длины и пропустите это количество байтов вперед, чтобы найти следующую запись в таблице. Чтобы сделать это несколько проще, массивы также сохраняют двухбайтовую длину, поэтому всю структуру можно было легче пропустить.

Уникальной особенностью был «короткий плавающий» или целочисленный тип. Любая числовая переменная могла хранить любой тип, само хранилище не менялось и в любом случае использовало 5 байт. Целые числа обозначались путем установки байта экспоненты на ноль, а значения с плавающей запятой сохранялись с экспонентой формата превышения 128 . Это означало, что он не мог хранить ноль как число с плавающей запятой и терял одну возможную величину показателя степени. Он также не использовал меньше памяти, поскольку значения по-прежнему находились в памяти по 5 байт. Преимущество этого формата — производительность; математическая библиотека включала тесты для поиска нулевого показателя степени, и если бы он был замечен, то не пытался бы выполнять различные операции с оставшимися 3 байтами при определенных условиях.

Подробности ключевого слова

В ZX81 8K BASIC использовались более короткие формы GOTO, и GOSUB, тогда как в Spectrum 48 BASIC использовались более длинные формы , и . ZX80 4K BASIC также использовал эти более длинные формы, но отличался написанием . ZX81 8K BASIC был единственной версией, в которой использовались , и . ZX80 4K BASIC имел эксклюзивную функцию ; в более поздних версиях он был эквивалентен строковому оператору .CONTRANDGO TOGO SUBCONTINUERANDOMIZERANDOMISEFASTSCROLLSLOWUNPLOTTL$()(2 TO )

Уникальные кодовые точки назначаются в наборе символов ZX80 , наборе символов ZX81 и наборе символов ZX Spectrum для каждого ключевого слова или многосимвольного оператора, т. е <=. >=, , <>, ""(маркируется только в ZX81), **(заменяется на в Spectrum). Они расширяются путем ссылки на таблицу токенов в ПЗУ. Таким образом, ключевое слово использует только один байт памяти, что является значительной экономией по сравнению с традиционным побуквенным хранением. Это также означало, что интерпретатор BASIC мог быстро определить любую команду или функцию, оценив один байт, и что ключевые слова не обязательно должны быть зарезервированными словами, как в других диалектах BASIC или других языках программирования, например, разрешено определять переменную с именем PRINTи выводом . его значение с PRINT PRINT. Это также связано с требованием синтаксиса, согласно которому каждая строка начинается с ключевого слова команды, и нажатие одной клавиши для этой команды в начале строки переводит редактор из командного режима в буквенный режим. Таким образом, присваивание переменных требует LET(т.е. не только ). Эта практика также отличается от других диалектов BASIC. Кроме того, это означало, что, в отличие от других диалектов BASIC, переводчику не требовались круглые скобки для обозначения функций; было достаточно, но не нужно (хотя последнее и допускалось). Базовое ПЗУ 4K для ZX80 имело небольшой список исключений: функции , , , , , , и не имели однобайтовых токенов, но вводились побуквенно и требовали скобок. Они были указаны как ВСТРОЕННЫЕ ФУНКЦИИ на этикетке над клавиатурой справа. [13]LET a=1a=1SIN xSIN(x)CHR$()STR$()TL$()PEEK()CODE()RND()USR()ABS()

128 BASIC , присутствующий в ZX Spectrum 128, +2, +3, +2A и +2B, хранил ключевые слова внутри себя в однобайтовых кодовых точках, но использовал обычную систему побуквенного ввода BASIC. Также были представлены две новые команды:

Оригинальный испанский ZX Spectrum 128 включал четыре дополнительных команды редактора BASIC на испанском языке, [14] [15] одна из которых была недокументирована:

В отличие от функций LEFT$(), MID$()и RIGHT$(), используемых в вездесущих диалектах Microsoft BASIC для домашних компьютеров, доступ к частям строк в Sinclair BASIC осуществляется по числовому диапазону. Например, a$(5 TO 10)выдает подстроку, начинающуюся с 5-го и заканчивающуюся 10-м символом переменной a$. Таким образом, можно заменить команды LEFT$()и RIGHT$()просто опустив левую или правую позицию массива соответственно; например, a$( TO 5)эквивалентно LEFT$(a$,5). Далее a$(5)достаточно заменить только MID$(a$,5,1).

Синтаксис

Ключевые слова

На 16K/48K ZX Spectrum ( 48 BASIC) в Sinclair BASIC имеется 88 ключевых слов, обозначающих команды (из них 50), функции и логические операторы (31), а также другие ключевые слова (16, в том числе 9, которые также являются командами). или функции):

Официальные версии

4К БАЗОВЫЙ

8К БАЗОВЫЙ

48 БАЗОВЫЙ

128 БАЗОВЫЙ

+3 БАЗОВЫЙ

Т/С 2000 БАЗОВЫЙ

БЕЙСИК64

Timex расширенный базовый

Другие версии, расширения, производные и преемники

Интерпретаторы для семейства ZX Spectrum

Существует несколько интерпретаторов ZX Spectrum. [81]

Компиляторы для семейства ZX Spectrum

Существует несколько компиляторов ZX Spectrum. [81]

Производные и преемники для других компьютеров

Смотрите также

Примечания

  1. ^ Необязательные параметры заключены в [квадратные скобки]
  2. ^ Предполагается, что компьютер находится в режиме  K  (ключевое слово), который обычно находится в начале строки при вводе BASIC. На Spectrum 16K и 48K вход в расширенный режим осуществляется одновременным нажатием и , а не клавиши, которая присутствует на Spectrum+ и более поздних моделях.CAPS SHIFTSYMBOL SHIFTEXTENDED MODE
  3. ^ abc «Ложь» в Sinclair BASIC соответствует 0 (нулю), все остальное соответствует «истине». Таким образом, функции, которые возвращают значения «истина» или «ложь», фактически возвращают 0 в случае ложности и 1 в случае истины, хотя ANDобычно возвращают первое из условий, предоставленных для истинности, или 1, если числовые значения не были заданы. Например, 6 AND 7возвращает 6, а NOT 6=7возвращает 1.
  4. ^ abc Доступные номера цветов:

    Во всех командах, связанных с цветом, цифра 8 может использоваться для обозначения «прозрачности», а INKтакже PAPERможет быть установлена ​​на 9 для «контрастности», то есть для автоматического нанесения темного цвета на светлый фон или наоборот.

  5. ^ abcdef INK, PAPER, FLASH, и установите атрибуты BRIGHTдля вывода текста и графики на экран. Их можно использовать либо как команды для применения ко всем последующим выводам до тех пор, пока они не будут установлены снова, либо внутри оператора , чтобы применяться только с этой точки до конца оператора.OVERINVERSEPRINT
  6. ^ abcdef CAT, ERASEи изначально были разработаны для использования с периферийными устройствами, но на момент запуска ZX Spectrum они не были полностью реализованы, поэтому их использование приводило к появлению сообщения об ошибке (Invalid Stream) FORMAT. MOVEПозже с помощью теневого ПЗУ ZX Interface 1 они использовались для ZX Microdrive . (Теневое ПЗУ было выгружено, когда интерпретатор BASIC обнаружил синтаксическую ошибку, поэтому большинство команд ZX Microdrive используют "*").
  7. ^ ab В отличие от многих других диалектов BASIC, Sinclair Basic не включал ELSEоператор в предложение IFTHEN[– ELSE]. Обходным решением было бы использовать вместо этого конструкцию IFTHENGO TO, минуя строки, которые были бы в ELSEпредложении сGO TO
  8. ^ Память дисплея Spectrum начинается с адреса 16384 и имеет длину 6912 байт.
  9. ^ Строка внутри строки должна иметь двойные кавычки в Sinclair BASIC.

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

  1. Гарфилд, Саймон (28 февраля 2010 г.). «Сэр Клайв Синклер: «Я вообще не пользуюсь компьютером»». Хранитель . Проверено 23 мая 2011 г. Он стремится отдать должное [...], не в последнюю очередь Nine Tiles, компании, создавшей базовое операционное программное обеспечение.
  2. ^ Адамсон и Кеннеди, с. 63.
  3. ^ Адамсон и Кеннеди 1986, с. 64.
  4. ^ Адамсон и Кеннеди 1986, с. 70.
  5. ^ ab «ZX80 — Обновление БАЗОВОГО ПЗУ 8K» . www.fruitcake.plus.com .
  6. ^ abcd «Мир Spectrum — Документация — ZX Spectrum +3 — Глава 7». worldofspectrum.org .
  7. ^ abcd «Мир Spectrum - Документация - Руководство по ZX Spectrum 128, страница 6» . worldofspectrum.org .
  8. Смит, Тони (23 апреля 2012 г.). «С 30-летием, Синклер ZX Spectrum». Регистр .
  9. ^ Адамсон и Кеннеди 1986, с. 88.
  10. Данн, Пол (7 декабря 2022 г.), SpecBAS , получено 12 декабря 2022 г.
  11. Ссылки _ База данных сцен Commodore 64 . Проверено 12 декабря 2022 г.
  12. ^ Викерс 1983, с. 7–8.
  13. ^ "Изображение ZX80" .
  14. ^ "Разборка ПЗУ Spectrum 128 - испанский Spectrum 128" . www.fruitcake.plus.com .
  15. ^ Синклер (1985). ZX Spectrum 128 Введение и руководство по работе. Sinclair Research Ltd и Investronica, SA с. 9.
  16. ^ abcd Vickers 1983, с. 59.
  17. ^ аб Викерс 1983, с. 70.
  18. ^ abc Vickers 1983, с. 85.
  19. ^ Викерс 1983, с. 69–70.
  20. ^ abcd Vickers 1983, с. 101.
  21. ^ Викерс 1983, с. 116.
  22. ^ Викерс 1983, с. 135.
  23. ^ аб Викерс 1983, с. 93.
  24. ^ Викерс 1983, с. 113.
  25. ^ Викерс 1983, с. 110–111.
  26. ^ Cambridge Communication 1983, с. 15.
  27. ^ аб Викерс 1983, с. 91.
  28. ^ аб Викерс 1983, с. 123.
  29. ^ abc Vickers 1983, с. 103.
  30. ^ «Мир Spectrum - Документация - Руководство по ZX Spectrum - Глава 24» . worldofspectrum.org .
  31. ^ Викерс 1983, с. 168.
  32. ^ Викерс 1983, с. 19.
  33. ^ abc Vickers 1983, с. 151.
  34. ^ аб Викерс 1983, с. 68.
  35. ^ аб Викерс 1983, с. 41.
  36. ^ abc Vickers 1983, с. 142.
  37. ^ abc Vickers 1983, с. 60.
  38. ^ Викерс 1983, с. 79–81.
  39. ^ Викерс 1983, с. 11–123.
  40. ^ Cambridge Communication 1983, с. 18.
  41. ^ Викерс 1983, с. 66.
  42. ^ Cambridge Communication 1983, с. 19.
  43. ^ Викерс 1983, с. 31.
  44. ^ аб Викерс 1983, с. 32.
  45. ^ аб Викерс 1983, с. 37.
  46. ^ аб Викерс 1983, с. 25.
  47. ^ аб Викерс 1983, с. 159.
  48. ^ аб Викерс 1983, с. 110.
  49. ^ Викерс 1983, с. 131.
  50. ^ abcd Vickers 1983, с. 16.
  51. ^ аб Викерс 1983, с. 112.
  52. ^ Викерс 1983, с. 57.
  53. ^ аб Викерс 1983, с. 13.
  54. ^ Викерс 1983, с. 144.
  55. ^ Викерс 1983, с. 15.
  56. ^ аб Викерс 1983, с. 67.
  57. ^ Викерс 1983, с. 142–143.
  58. ^ Викерс 1983, с. 147.
  59. ^ Cambridge Communication 1983, с. 39.
  60. ^ Викерс 1983, с. 31–32.
  61. ^ Cambridge Communication 1983, с. 22.
  62. ^ Викерс 1983, с. 129.
  63. ^ Викерс 1983, с. 130.
  64. ^ Викерс 1983, с. 121.
  65. ^ Викерс 1983, с. 163.
  66. ^ Викерс 1983, с. 74.
  67. ^ Викерс 1983, с. 42.
  68. ^ Викерс 1983, с. 73.
  69. ^ аб Викерс 1983, с. 14.
  70. ^ Викерс 1983, с. 143.
  71. ^ Викерс 1983, с. 58.
  72. ^ Викерс 1983, с. 69.
  73. ^ Викерс 1983, с. 32, 51.
  74. ^ Викерс 1983, с. 180.
  75. ^ Викерс 1983.
  76. ^ Викерс 1983, с. 141.
  77. ^ «Руководство пользователя Sinclair ZX80 4K Basic для ZX80» .
  78. ^ «Техническая информация Timex — Basic 64 для TC2048» . timex.comboios.info .
  79. ^ "Микросетка № 46, Майо, 1987" (PDF) . loadzx.com .
  80. ^ «Компьютер Timex 3256, Timex Portugal» . k1.spdns.de .
  81. ^ abcdefgh «Мир спектра — Sinclair BASIC — главная страница расширенного базового проекта Sinclair». www.worldofspectrum.org . Архивировано из оригинала 13 октября 2002 года.
  82. ^ «Бета-версия Basic в Spectrum Computing — игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  83. ^ «YS MegaBasic в Spectrum Computing — игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  84. ^ «Zebra OS64 в Spectrum Computing — игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  85. ^ "История Sinclair BASIC - Sinclair Wiki" . sinclair.wiki.zxnet.co.uk .
  86. ^ "Неполная сборка ПЗУ спектра" . Архивировано из оригинала 1 сентября 2015 года.
  87. ^ "УЛАплюс". сайты.google.com . Архивировано из оригинала 25 мая 2013 года . Проверено 21 марта 2016 г.
  88. ^ «Интерфейс ZX 2 — SE BASIC (картридж ПЗУ стороннего производителя)» . www.fruitcake.plus.com . Архивировано из оригинала 25 марта 2015 года . Проверено 23 марта 2016 г.
  89. ^ "OpenSE BASIC" . СоурсФордж . 16 апреля 2013 г.
  90. ^ «OpenSE BASIC в Spectrum Computing — игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  91. ^ "Мир спектра - компилятор HiSoft COLT" . Мир Спектра .
  92. ^ «Компилятор HiSoft COLT в Spectrum Computing — игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  93. ^ «Мир спектра - HiSoft BASIC» . Мир Спектра .
  94. ^ «HiSoft BASIC в Spectrum Computing — игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  95. ^ "Мир спектра - лазерный компилятор" . Мир Спектра .
  96. ^ «Лазерный компилятор в Spectrum Computing - игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  97. ^ «Мир спектра - компилятор Softek IS BASIC» . Мир Спектра .
  98. ^ «Целочисленный компилятор в Spectrum Computing - игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  99. ^ "Мир спектра - целочисленный компилятор" . Мир Спектра .
  100. ^ "World of Spectrum - Полный компилятор Softek 'FP'" . Мир Спектра .
  101. ^ «Полный компилятор Softek 'FP' в Spectrum Computing - игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  102. ^ "Мир спектра - ZIP-компилятор" . Мир Спектра .
  103. ^ «ZIP-компилятор в Spectrum Computing — игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  104. ^ Берри, Стивен (1984). «Ключевые слова QL». Архивировано из оригинала 22 февраля 2017 года . Проверено 27 июня 2023 г.{{cite web}}: CS1 maint: unfit URL (link)
  105. ^ "Альбом для вырезок Сэма Купе: Сэм БЕЙСИК" . www.mono.org . Проверено 13 декабря 2022 г.
  106. ^ "Проект Sparky eZX BASIC" . rk-internet.com .
  107. ^ "Филип Кендалл - Базовый" . www.shadowmagic.org.uk .
  108. ^ "Филип Кендалл - CheckBasic" . www.shadowmagic.org.uk .
  109. ^ «Binsic - это не код инструкций Sinclair» . 25 июня 2012 г.
  110. ^ "ZX Spin и BASin - ULAplus" . сайты.google.com .
  111. ^ "ZXDunny/SpecBAS". 5 июня 2021 г. – через GitHub.
  112. ^ «ZX-Basic: обратно совместимый, но улучшенный компилятор программ Sinclair BASIC» .
  113. ^ «ZX-Basicus: анализатор/синтезатор/оптимизатор/интерпретатор программ Sinclair BASIC для ZX Spectrum 48K» . jafma.net .

Библиография

Внешние ссылки