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 и его различных клонов. Оригинальная версия продолжала модифицироваться и портироваться в эпоху после Sinclair.

История

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

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

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

В феврале 1982 года у Nine Tiles начались разногласия с Синклером по поводу причитающихся роялти за различные руководства, которые выпустила Nine Tiles. Примерно в то же время Викерс и его коллега из Синклера Ричард Альтвассер покинули свои компании, чтобы начать проект Jupiter Ace . [9] Когда Spectrum был запущен, ПЗУ все еще не было завершено, и хотя Nine Tiles продолжала работать над ним до апреля 1982 года, к тому моменту уже было продано 75 000 Spectrum, и проект был отменен. Недостающая функциональность была позже добавлена ​​дополнительным кодом в ZX Interface 1. После того, как Nine Tiles и Синклер пошли своими путями, было создано несколько новых версий 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 8-bit computers , клавиши вверх и вниз можно использовать для перемещения между строками в программе и редактирования их на месте.EDITNEW LINE

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

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

Система имеет преимущество представления всех многосимвольных ключевых слов как одного символа в памяти, что было значительной экономией на ранних машинах, которые поставлялись только с 1 КБ ОЗУ. Это односимвольное представление включало многосимвольные элементы, такие как <>. Это имеет дополнительные преимущества упрощения времени выполнения, так как оно может немедленно определить, является ли символ в исходном коде ключевым словом или текстом, а также означает, что ключевые слова никогда не вводятся напрямую, то есть можно, например, иметь переменную с именем "PRINT", так как система может определить, что она не совпадает с ключевым словом.

По мере развития систем и добавления новых ключевых слов система ввода становилась все более сложной в использовании. 48 BASIC в Spectrum требовал, чтобы каждая клавиша содержала до четырех ключевых слов. Ввод ключевых слов был трудоемким процессом поиска соответствующей клавиши на относительно небольшом шрифте клавиатуры, а затем правильного ввода нескольких нажатий клавиш, необходимых для правильного ввода. Например, для ввода BEEPтребовалось нажать + для доступа к расширенному режиму (более поздние модели включают отдельную клавишу), удерживать нажатой, а затем и нажимать . Для улучшения сложного ввода в Spectrum ключевые слова были закодированы цветом, чтобы указать требуемый режим: [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, затем считывает тип, чтобы увидеть, что это строка, а затем должна прочитать следующий байт длины и пропустить это количество байтов, чтобы найти следующую запись в таблице. Чтобы сделать это несколько проще, массивы также хранили двухбайтовую длину, поэтому всю структуру можно было пропустить более легко.

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

Подробности ключевых слов

ZX81 8K BASIC использовал более короткие формы GOTO, GOSUB, CONTи RAND, тогда как Spectrum 48 BASIC использовал более длинные формы GO TO, GO SUB, CONTINUEи RANDOMIZE. ZX80 4K BASIC также использовал эти более длинные формы, но отличался использованием написания RANDOMISE. ZX81 8K BASIC был единственной версией, которая использовала FAST, SCROLL, SLOWи UNPLOT. ZX80 4K BASIC имел исключительную функцию TL$(); она была эквивалентна строковому оператору (2 TO )в более поздних версиях.

Уникальные кодовые точки назначаются в наборе символов ZX80 , наборе символов ZX81 и наборе символов ZX Spectrum для каждого ключевого слова или многосимвольного оператора, то есть <=, >=, <>, ""(токенизировано только на ZX81), **(заменено на на Spectrum). Они расширяются путем ссылки на таблицу токенов в ПЗУ. Таким образом, ключевое слово использует только один байт памяти, что является значительной экономией по сравнению с традиционным побуквенным хранением. Это также означало, что интерпретатор BASIC мог быстро определить любую команду или функцию, оценив один байт, и что ключевые слова не должны быть зарезервированными словами, как в других диалектах BASIC или других языках программирования, например, разрешено определять переменную с именем PRINTи выводить ее значение с помощью PRINT PRINT. Это также связано с требованием синтаксиса, согласно которому каждая строка начинается с ключевого слова команды, и нажатие одной клавиши для этой команды в начале строки переводит редактор из командного режима в буквенный режим. Таким образом, назначение переменной требует LET(то есть не только ). Эта практика также отличается от других диалектов BASIC. Кроме того, это означало, что в отличие от других диалектов BASIC, интерпретатору не нужны были скобки для идентификации функций; было достаточно, не нужно (хотя последнее допускалось). 4K BASIC ROM ZX80 имел короткий список исключений из этого: функции , , , , , и не имели однобайтовых токенов , но печатались побуквенно и требовали скобок. Они были перечислены как INTEGRAL FUNCTIONS на этикетке выше и справа от клавиатуры. [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К БАЗОВЫЙ

4K BASIC для ZX80 [76] (названный так из-за размещения в 4  КБ постоянной памяти (ПЗУ)), был разработан Джоном Грантом из Nine Tiles для ZX80. Он имеет только целочисленную арифметику.

8К БАЗОВЫЙ

8K BASIC — это ZX81 BASIC (также доступный в качестве обновления для ZX80 [5] ), обновленный с помощью арифметики с плавающей точкой Стивом Викерсом , названный так из-за размещения в ПЗУ объемом 8 КБ.

48 ОСНОВНОЙ

48 BASIC — это BASIC для оригинального 16/48 КБ ОЗУ ZX Spectrum (и клонов), с цветом и большим количеством периферийных устройств, добавленных Стивом Викерсом и Джоном Грантом. Он находится в 16 КБ ПЗУ и стал называться 48 BASIC с появлением ZX Spectrum 128, в то время как 16 КБ Spectrum больше не продавались, а большинство существующих были обновлены до 48 КБ. [6]

128 ОСНОВНОЙ

128 BASIC — это BASIC для ZX Spectrum 128. [7] Он предлагает дополнительные команды и использует побуквенный ввод.

+3 БАЗОВЫЙ

+3 BASIC — это BASIC с поддержкой дисков для ZX Spectrum +3 и +2A. [6]

Т/С 2000 БАЗОВЫЙ

T/S 2000 BASIC используется на Spectrum-совместимом Timex Sinclair 2068 (T/S 2068) и добавляет следующие шесть новых ключевых слов:

БАЗОВЫЙ64

BASIC64 от Timex из Португалии — это программное расширение [77] , позволяющее улучшить базовое программирование с графическими режимами 512×192 и двухэкранных областей, доступными только на компьютерах Timex Sinclair. Это расширение добавляет команды и выполняет полную переадресацию памяти, чтобы избежать перезаписи системой расширенной области памяти экрана. Существуют две версии из-за различных карт памяти — версия для TC 2048 и версия для T/S 2068 и TC 2068 .

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

Timex Extended Basic от Timex из Португалии используется на компьютере Timex Computer 3256 , добавляя команды TEC – Timex Extended Commands, поддерживающие звуковой чип AY-3-8912, сеть RS-232 и графический режим с высоким разрешением 512x192 пикселей. [78] [79]

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

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

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

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

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

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

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

Примечания

  1. ^ Необязательные параметры заключены в [квадратные скобки]
  2. ^ Они предполагают, что компьютер находится в режиме  K  (ключевое слово), который обычно находится в начале строки при вводе BASIC. На Spectrum 16K и 48K расширенный режим включается одновременным нажатием клавиш и , а не клавиши, которая присутствует на Spectrum+ и более поздних моделях.CAPS SHIFTSYMBOL SHIFTEXTENDED MODE
  3. ^ abc «False» в 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, OVERи INVERSEset атрибуты для вывода текста и графики на экран. Их можно использовать либо как команды, чтобы применить ко всему последующему выводу, пока не будут установлены снова, либо внутри оператора PRINT, чтобы применить только с этой точки до конца оператора.
  6. ^ abcdef CAT, ERASE, FORMATи MOVEизначально были разработаны для использования с периферийными устройствами, но на момент запуска ZX Spectrum они не были полностью реализованы, так что их использование приводило к сообщению об ошибке (Invalid Stream). Позже с помощью теневого ПЗУ 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 г.). «Сэр Клайв Синклер: «Я вообще не пользуюсь компьютером»». The Guardian . Получено 23 мая 2011 г. Он стремится отдать должное [...], не в последнюю очередь Nine Tiles, компании, которая создала операционную систему Basic.
  2. Адамсон и Кеннеди, стр. 63.
  3. Адамсон и Кеннеди 1986, стр. 64.
  4. Адамсон и Кеннеди 1986, стр. 70.
  5. ^ ab "ZX80 – 8K BASIC ROM Upgrade". www.fruitcake.plus.com .
  6. ^ abcd "World of Spectrum - Документация - ZX Spectrum +3 - Глава 7". worldofspectrum.org .
  7. ^ abcd "World of Spectrum - Документация - Руководство по ZX Spectrum 128, страница 6". worldofspectrum.org .
  8. Смит, Тони (23 апреля 2012 г.). «С 30-летием, Sinclair ZX Spectrum». The Register .
  9. Адамсон и Кеннеди 1986, стр. 88.
  10. Данн, Пол (7 декабря 2022 г.), SpecBAS , получено 12 декабря 2022 г.
  11. ^ "CSDb". База данных сцен 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. ^ ab Vickers 1983, стр. 70.
  18. ^ abc Vickers 1983, стр. 85.
  19. ^ Викерс 1983, стр. 69–70.
  20. ^ abcd Vickers 1983, стр. 101.
  21. ^ Викерс 1983, стр. 116.
  22. ^ Викерс 1983, стр. 135.
  23. ^ ab Vickers 1983, стр. 93.
  24. ^ Викерс 1983, стр. 113.
  25. ^ Викерс 1983, стр. 110–111.
  26. Cambridge Communication 1983, стр. 15.
  27. ^ ab Vickers 1983, стр. 91.
  28. ^ ab Vickers 1983, стр. 123.
  29. ^ abc Vickers 1983, стр. 103.
  30. ^ "World of Spectrum - Документация - Руководство по ZX Spectrum - Глава 24". worldofspectrum.org .
  31. ^ Викерс 1983, стр. 168.
  32. ^ Викерс 1983, стр. 19.
  33. ^ abc Vickers 1983, стр. 151.
  34. ^ ab Vickers 1983, стр. 68.
  35. ^ ab Vickers 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. ^ ab Vickers 1983, стр. 32.
  45. ^ ab Vickers 1983, стр. 37.
  46. ^ ab Vickers 1983, стр. 25.
  47. ^ ab Vickers 1983, стр. 159.
  48. ^ ab Vickers 1983, стр. 110.
  49. ^ Викерс 1983, стр. 131.
  50. ^ abcd Vickers 1983, стр. 16.
  51. ^ ab Vickers 1983, стр. 112.
  52. ^ Викерс 1983, стр. 57.
  53. ^ ab Vickers 1983, стр. 13.
  54. ^ Викерс 1983, стр. 144.
  55. ^ Викерс 1983, стр. 15.
  56. ^ ab Vickers 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. ^ ab Vickers 1983, стр. 14.
  70. ^ Викерс 1983, стр. 143.
  71. ^ Викерс 1983, стр. 69.
  72. ^ Викерс 1983, стр. 32, 51.
  73. ^ Викерс 1983, стр. 180.
  74. ^ Викерс 1983.
  75. ^ Викерс 1983, стр. 141.
  76. ^ "Руководство пользователя Sinclair ZX80 4K Basic для ZX80".
  77. ^ "Техническая информация Timex – Basic 64 для TC2048". timex.comboios.info .
  78. ^ "Микросетка № 46, Майо, 1987" (PDF) . loadzx.com .
  79. ^ "Timex Computer 3256, Timex Portugal". k1.spdns.de .
  80. ^ abcdefgh "World of Spectrum - Sinclair BASIC - Дом проекта Sinclair Extended Basic". www.worldofspectrum.org . Архивировано из оригинала 13 октября 2002 г.
  81. ^ "Beta Basic в Spectrum Computing - игры, программное обеспечение и оборудование для Sinclair ZX Spectrum". Spectrum Computing . Получено 13 декабря 2022 г. .
  82. ^ "YS MegaBasic в Spectrum Computing - игры, программное обеспечение и оборудование для Sinclair ZX Spectrum". Spectrum Computing . Получено 13 декабря 2022 г. .
  83. ^ "Zebra OS64 в Spectrum Computing - игры, программное обеспечение и оборудование для Sinclair ZX Spectrum". Spectrum Computing . Получено 13 декабря 2022 г. .
  84. ^ "История Sinclair BASIC - Sinclair Wiki". sinclair.wiki.zxnet.co.uk .
  85. ^ "Неполная сборка Spectrum ROM". Архивировано из оригинала 1 сентября 2015 г.
  86. ^ "ULAplus". sites.google.com . Архивировано из оригинала 25 мая 2013 . Получено 21 марта 2016 .
  87. ^ "ZX Interface 2 - SE BASIC (ПЗУ-картридж стороннего производителя)". www.fruitcake.plus.com . Архивировано из оригинала 25 марта 2015 г. Получено 23 марта 2016 г.
  88. ^ "OpenSE BASIC". SourceForge . 16 апреля 2013 г.
  89. ^ "OpenSE BASIC в Spectrum Computing - игры, программное обеспечение и оборудование для Sinclair ZX Spectrum". Spectrum Computing . Получено 13 декабря 2022 г. .
  90. ^ "Мир Спектрума - Компилятор HiSoft COLT". Мир Спектрума .
  91. ^ "HiSoft COLT Compiler at Spectrum Computing - игры, программное обеспечение и оборудование для Sinclair ZX Spectrum". Spectrum Computing . Получено 13 декабря 2022 г. .
  92. ^ "Мир Спектрума - HiSoft BASIC". Мир Спектрума .
  93. ^ "HiSoft BASIC в Spectrum Computing - игры, программное обеспечение и оборудование для Sinclair ZX Spectrum". Spectrum Computing . Получено 13 декабря 2022 г. .
  94. ^ "World of Spectrum - Лазерный компилятор". World of Spectrum .
  95. ^ "Laser Compiler at Spectrum Computing - игры, программное обеспечение и оборудование для Sinclair ZX Spectrum". Spectrum Computing . Получено 13 декабря 2022 г. .
  96. ^ "World of Spectrum - Компилятор Softek 'IS' BASIC". World of Spectrum .
  97. ^ "Компилятор целых чисел в Spectrum Computing - игры, программное обеспечение и оборудование для Sinclair ZX Spectrum". Spectrum Computing . Получено 13 декабря 2022 г. .
  98. ^ "World of Spectrum - Целочисленный компилятор". World of Spectrum .
  99. ^ "World of Spectrum - Softek 'FP' Полный компилятор". World of Spectrum .
  100. ^ "Softek 'FP' Full Compiler в Spectrum Computing - игры, программное обеспечение и оборудование для Sinclair ZX Spectrum". Spectrum Computing . Получено 13 декабря 2022 г. .
  101. ^ "World of Spectrum - ZIP-компилятор". World of Spectrum .
  102. ^ "Компилятор ZIP в Spectrum Computing - игры, программное обеспечение и оборудование для Sinclair ZX Spectrum". Spectrum Computing . Получено 13 декабря 2022 г. .
  103. ^ Берри, Стивен (1984). "QL keywords". Архивировано из оригинала 22 февраля 2017 года . Получено 27 июня 2023 года .{{cite web}}: CS1 maint: неподходящий URL ( ссылка )
  104. ^ "Sam Coupe Scrapbook: Sam BASIC". www.mono.org . Получено 13 декабря 2022 г. .
  105. ^ "Проект Sparky eZX BASIC". rk-internet.com .
  106. ^ "Филип Кендалл - Базовый". www.shadowmagic.org.uk .
  107. ^ «Филипп Кендалл – CheckBasic». www.shadowmagic.org.uk .
  108. ^ «Binsic — это не код инструкций Синклера». 25 июня 2012 г.
  109. ^ "ZX Spin и BASin - ULAplus". sites.google.com .
  110. ^ "ZXDunny/SpecBAS". 5 июня 2021 г. – через GitHub.
  111. ^ «ZX-Basic: обратно совместимый, но улучшенный компилятор программ Sinclair BASIC».
  112. ^ "ZX-Basicus: анализатор/синтезатор/оптимизатор/интерпретатор программ Sinclair BASIC для ZX Spectrum 48K". jafma.net .

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

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