Jump to content

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

Синклер БЕЙСИК
Парадигма Императив
Разработано Джон Грант, Стив Викерс
Разработчик Сети девяти плиток,
Синклер Исследования
Впервые появился 1979 год ; 45 лет назад ( 1979 )
Платформа ZX80 , ZX81 , ZX Spectrum, +, 128, +2, +3 , T/S 2068 , TC 3256
Лицензия Собственный

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 КБ, и следующий месяц он потратил на его сокращение. Первоначально это была неполная реализация Американского национального института стандартов (ANSI) стандарта Minimal BASIC 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 команду, помещая курсор «>» после номера строки в последней введенной строке.

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

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

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

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

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

  • Белый : только ключ
  • Красный на самом ключе: SYMBOL SHIFT плюс ключ
  • Зеленый над клавишей: EXTENDED MODE за которым следует ключ
  • Красный под клавишей: EXTENDED MODE с последующим SYMBOL SHIFT плюс ключ

Эта концепция себя исчерпала, и более поздние машины, работающие под управлением 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 = 5 то же самое, что LET numberofapples = 5 относятся к одной и той же переменной.

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

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

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

  • PLAY моделей 128k. General Instrument AY-3-8910 , который управлял музыкальным чипом
  • SPECTRUM, который переключил Spectrum 128k в режим совместимости со Spectrum 48k.

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

  • EDITAR (чтобы отредактировать номер строки или вызвать полноэкранный редактор строк)
  • NUMERO (для перенумерации строк программы)
  • BORRAR (для удаления строк программы)
  • ANCHO (чтобы установить ширину столбца устройства RS-232 , но недокументировано, поскольку код был сломан)

В отличие от 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, которые также являются командами). или функции):

Ключевое слово Параметры [примечание 1] Введено с помощью [примечание 2] Тип Краткое содержание
ABSnumberEXTENDED MODE затем GФункция Возвращает значение абсолютное number[16]
ACSnumberEXTENDED MODE затем SYMBOL SHIFT+ WФункция Возвращает арккосинус number[17]
ANDSYMBOL SHIFT+ YЛогический оператор Возвращает true, если оба условия по обе стороны от AND ключевое слово истинно, иначе возвращает ложь [примечание 3] [18]
ASNnumberEXTENDED MODE затем SYMBOL SHIFT+ QФункция Возвращает арксинус number[19]
ATline, column;SYMBOL SHIFT+ IДругой Используется в PRINT оператор печати в указанной строке и столбце; [20] например, PRINT AT 5,10;"*" ставит звездочку в 10 столбце строки 5.
ATNnumberEXTENDED MODE затем SYMBOL SHIFT+ EФункция Возвращает арктангенс number[17]
ATTR(line, column)EXTENDED MODE затем SYMBOL SHIFT+ LФункция Возвращает байт , содержащий информацию о цветах текстовой ячейки на экране, соответствующих заданному line и column;обратите внимание, что, в отличие от большинства ключевых слов Sinclair BASIC, круглые скобки обязательны; первые три бита указывают цвет чернил (переднего плана), четвертый, пятый и шестой биты — цвет бумаги (фона), седьмой бит — насколько яркие цвета или нет, а восемь — мигают ли они. [21]
BEEPduration, pitchEXTENDED MODE затем SYMBOL SHIFT+ ZКоманда Производит звук из динамика компьютера; duration в секундах, высота звука в полутонах выше (положительное значение) или ниже (отрицательное значение) средней C [22]
BINnumberEXTENDED MODE затем BДругой Указывает number находится в двоичной записи [23]
BORDERnumberBКоманда Устанавливает границу экрана в цвет, указанный параметром number[примечание 4] [24]
BRIGHTnumberEXTENDED MODE затем SYMBOL SHIFT+ BКоманда/другое Делает все последующие цвета ярче, если number равен 1 или его обычный оттенок, если 0 [примечание 5] [25]
CATnumberEXTENDED MODE затем SYMBOL SHIFT+ 9Команда Отображает содержимое ZX Microdrive, указанное number[примечание 6] [26]
CHR$numberEXTENDED MODE затем UФункция Возвращает символ, соответствующий десятичной дроби number компьютера в наборе символов [27]
CIRCLEx, y, rEXTENDED MODE затем SYMBOL SHIFT+ HКоманда Рисует круг с центром в координатах ( x, y) и радиус r[28]
CLEARaddressXКоманда Очищает экран, [29] все переменные и GO SUB куча, [30] и опционально устанавливает максимальный адрес ОЗУ, который будет использоваться BASIC [31]
CLOSE #numberEXTENDED MODE затем SYMBOL SHIFT+ 5Команда Закрывает указанный номер потока для доступа [примечание 6]
CLSVКоманда Удаляет весь текст и графику с экрана. [29]
CODEstringEXTENDED MODE затем IФункция/другое Возвращает число, соответствующее первому символу в string компьютера в наборе символов ; [27] также используется для сохранения произвольных фрагментов памяти на ленту, диск и т. д. и загрузки их обратно — см. LOAD, SAVE и VERIFY для подробностей
CONTINUECКоманда Перезапускает программу после ее остановки из-за ошибки или нажатия пользователем кнопки CAPS SHIFT+ SPACE или BREAK ключи [32]
COPYZКоманда Отправляет отображаемый в данный момент экран на принтер [33]
COSnumberEXTENDED MODE затем WФункция Возвращает косинус number[34]
DATAcomma-separated valuesEXTENDED MODE затем DКоманда/другое Предоставляет числа и/или строки для использования с READ команда [35] и позволяет сохранять содержимое массива на ленту при использовании с SAVE команда [36] (как SAVE filename DATA array name())
DEF FNname(variable) = operationEXTENDED MODE затем 1Команда Определяет пользовательскую функцию, которую можно использовать с FN команда; определения функций должны иметь вид f(x)=operations, например f(x)=x*2 и имя функции не может состоять более чем из одной буквы плюс символ $, если функция возвращает строку [37]
DIMvariable(dimensions)DКоманда Объявляет массив с указанным dimensions, который может быть многомерным (например, DIM a(10,10); при использовании со строками последнее измерение указывает длину каждой строки (таким образом, DIM a$(2,5) представляет собой массив из двух строк длиной по пять символов каждая, и DIM b$(5) это одна строка из пяти символов) [38]
DRAWx, y [, r]WКоманда Рисует линию в текущем INK цвет по координатам ( x, y) из координат, использованных предыдущим PLOT или DRAW команда; если опционально r поставляется, он указывает радиус сегмента круга, который нужно нарисовать, в радианах [39]
ERASEdrive;"filename"EXTENDED MODE затем SYMBOL SHIFT+ 7Команда Удаляет указанный файл с ZX Microdrive. [примечание 6] [40]
EXPnumberEXTENDED MODE затем XФункция Возвращает e в степень number[41]
FLASHnumberEXTENDED MODE затем SYMBOL SHIFT+ VКоманда/другое Заставляет весь следующий текст чередовать передний план ( INK) и фон ( PAPER) цвета [примечание 5]
FNfunction(value)EXTENDED MODE затем SYMBOL SHIFT+ 2Функция Называет function определено ранее в программе с помощью DEF FN[37]
FORMATdrive;"name"EXTENDED MODE затем SYMBOL SHIFT+ 0Команда Форматирует картридж в указанном Microdrive и присваивает ему идентификатор. name[примечание 6] [42]
FORvariable = start TO endFКоманда Запускает FOR- NEXT петля; [43] имя переменной может состоять только из одного символа [44]
GO SUBnumberHКоманда Заставляет программу перейти на строку BASIC, указанную number; когда программа встречает команду RETURN, он вернется к оператору после GO SUB[45]
GO TOnumberGКоманда Заставляет программу перейти на строку BASIC, указанную number
IF condition THENUКоманда Оценивает condition, и если true, выполняет оператор, следующий за ключевым словом THEN это должно идти после условия, [46] например IF a=1 THEN LET b=2[примечание 7]
INaddressEXTENDED MODE затем SYMBOL SHIFT+ IФункция Возвращает байт , прочитанный из аппаратного порта ввода/вывода, соответствующего address[47]
INKnumberEXTENDED MODE затем SYMBOL SHIFT+ XКоманда/другое Устанавливает цвет переднего плана для текста и графики. [примечание 4] [примечание 5] [48]
INKEY$EXTENDED MODE затем SYMBOL SHIFT+ ZФункция Возвращает строку, представляющую клавишу, нажатую на клавиатуре в момент вызова функции, или пустую строку, если ее нет. [49] но не ждет нажатия клавиши
INPUT[prompt,] variableIКоманда Останавливает выполнение программы до тех пор, пока пользователь не введет что-нибудь на клавиатуре и не нажмет кнопку Enter ключ, затем сохраняет введенное значение в указанном variable; если опционально prompt поставляется, это будет показано на экране [50]
INTnumberEXTENDED MODE затем RФункция Возвращает целое значение number, округляя до ближайшего целого числа [16] (таким образом, INT -1.1 возвращает −2, а не −1)
INVERSEnumberEXTENDED MODE затем SYMBOL SHIFT+ MКоманда/другое Меняет цвета всего следующего текста, если number равно 1, поэтому он использует текущий цвет чернил для фона и текущий цвет бумаги для текста или возвращает их в нормальное состояние, если number 0 [примечание 5] [51]
LENstringEXTENDED MODE затем KФункция Возвращает количество символов (байтов) в string[52]
LETvariable=valueLКоманда Назначает value к именованной переменной [53]
LINEEXTENDED MODE затем SYMBOL SHIFT+ 3Другой
  • При использовании в INPUT перед строковой переменной, его приглашение не будет заключаться в кавычки (""), [20] например INPUT "Name: "; LINE n$
  • При использовании в SAVE оператор, чтобы при повторной загрузке сохраняемой программы BASIC она автоматически запускалась с указанного номера строки. [54]
LIST[number]KКоманда Выводит текущую программу BASIC на экран; если опционально number предоставляется, он пропускает все строки с меньшим номером [55]
LLIST[number]EXTENDED MODE затем SYMBOL SHIFT+ VКоманда Как LIST за исключением того, что список выводится на принтер [33]
LNnumberEXTENDED MODE затем SYMBOL SHIFT+ ZФункция Возвращает натуральный логарифм number[56]
LOAD"[filename]" [CODE [address[, length]]| DATA variable()]JКоманда Загружает программу или данные в ОЗУ с ленты, ZX Microdrive , диска и т. д., удаляя любую существующую программу и переменные BASIC; [50] если пустая строка ( ""), при этом загружается первая найденная программа, в противном случае на ленте будет выполняться поиск программы, указанной в строке; если опционально CODE предоставлено, загрузит программу в память по тому адресу, который она имела при сохранении, или по указанному address ( length предназначен в целях безопасности, чтобы попытаться загрузить нужную программу в случае, если на ленте их несколько с правильным именем, но разной длины); [57] если опционально DATA variable() предоставлен, загрузит данные с ленты в массив с именем variable()[36]
LPRINTtextEXTENDED MODE затем SYMBOL SHIFT+ CКоманда Как PRINT за исключением того, что вывод отправляется на принтер [33]
MERGE"[filename]"EXTENDED MODE затем SYMBOL SHIFT+ TКоманда Как LOAD, за исключением того, что текущая программа и переменные не удаляются; если номер строки существует в обоих, номер вновь загруженной программы перезаписывает существующий. С использованием MERGE предотвращает программу, сохраненную с помощью LINE из автоматического запуска после загрузки [58]
MOVEstream1 TO stream2EXTENDED MODE затем SYMBOL SHIFT+ 6Команда Перемещает данные из одного потока (клавиатуры, экрана, файла, принтера, сети и т. д.) в другой. [примечание 6] [59]
NEWAКоманда Удаляет текущую программу BASIC и все переменные. [50]
NEXTvariableNКоманда Закрывает FOR- NEXT петля; переменная должна совпадать с переменной соответствующего FOR команда [60] - "пустой" NEXTs для ссылки на непосредственно предшествующий FOR в программе не допускаются
NOTconditionSYMBOL SHIFT+ SЛогический оператор Возвращает истину, если condition ложно, иначе возвращает ложь [примечание 3] [18]
OPEN #streamEXTENDED MODE затем SYMBOL SHIFT+ 4Команда Открывает поток для чтения и/или записи в [примечание 6] [61]
ORSYMBOL SHIFT+ YЛогический оператор Возвращает true, если любое из условий по обе стороны от OR ключевое слово истинно, иначе возвращает ложь [примечание 3] [18]
OUTaddress, valueEXTENDED MODE затем SYMBOL SHIFT+ OКоманда Отправляет value ( байт ) в аппаратное обеспечение [отображенный в памяти ввод-вывод | порт ввода/вывода], соответствующий address[47]
OVERnumberEXTENDED MODE затем SYMBOL SHIFT+ NКоманда/другое С помощью операции XOR будет наложен следующий текст на то, что уже есть на экране, если number равно 1, вместо стирания или стирания, если number 0 [примечание 5] [51]
PAPERnumberEXTENDED MODE затем SYMBOL SHIFT+ CКоманда/другое Устанавливает цвет фона для текста и графики. [примечание 4] [примечание 5] [48]
PAUSEdelayMКоманда Останавливает выполнение программы на указанную задержку, в секунды в Европе или в Северной Америке [62] (таким образом, PAUSE 50 останавливается на одну секунду в Европе)
PEEKaddressEXTENDED MODE затем OФункция Возвращает байт, представляющий содержимое ячейки памяти, на которую указывает address[63]
PIEXTENDED MODE затем MФункция Возвращает значение числа Пи [56]
PLOTx, yQКоманда Рисует пиксель в текущем INK цвет на экране по координатам ( x, y) [64]
POINT(x,y)EXTENDED MODE затем SYMBOL SHIFT+ 8Функция Возвращает 1, если пиксель указывает на графические координаты ( x, y) в данный момент находится в цвете рукописного ввода (переднего плана), иначе возвращается 0 [28]
POKEaddress, valueOКоманда Устанавливает содержимое address в оперативной памяти, чтобы value[65]
PRINT[AT x,y;] textPКоманда Принты text (которые должны представлять собой одну или несколько строк или чисел, разделенных точкой с запятой) на экран. [53] Если используется с #0 или #1, он печатается в двух нижних (входных) строках экрана; если использовать с AT, он печатает по указанным координатам текста; в противном случае он печатает либо сразу после вывода любого предыдущего PRINT (если предыдущий оператор заканчивался точкой с запятой) или в первом столбце строки ниже предыдущего PRINT выход, [20] по умолчанию 0,0.
RANDOMIZE[number]TКоманда Инициализирует генератор случайных чисел ; если используется без number (или с 0), он делает это на основе внутренних часов компьютера, в противном случае он использует number предоставлено, которое должно находиться в диапазоне [1,65535] [66]
READvariableEXTENDED MODE затем AКоманда Принимает значение из DATA оператор и сохраняет его в указанном variable: первый раз READ используется, он получает первое значение после первого DATA, во второй раз он получает следующий и так далее. [35]
REMтекст EКоманда Начинает комментарий в исходном коде, что означает, что все после REM оператор игнорируется до конца строки [50] — обратите внимание, что сюда входит все, что идет после двоеточия, которое обычно начинает новый сегмент: 10 REM Nothing to see here : PRINT "Unprintable" не будет производить никакого вывода, например
RESTORE[number]EXTENDED MODE затем SКоманда Сбрасывает, где READ команды ищут значения в DATA операторы: если они используются без номера, следующий READ буду использовать первый DATA в программе с номером будет использоваться первый DATA на или после строки, номер которой указан [67]
RETURNYКоманда Возвращает выполнение первому оператору, следующему за последним. GO SUB команда, которая была выполнена [45]
RNDEXTENDED MODE затем TФункция Возвращает псевдослучайное число с восемью значащими цифрами в диапазоне [0,1) [68]
RUN[number]RКоманда Запускает текущую программу BASIC с первой строки, если нет. number указан, иначе из строки с этим номером (или первой после, если он не существует) [69]
SAVE"filename" [DATA variable() | LINE number]SКоманда Сохраняет текущую программу BASIC на ленту или другое запоминающее устройство с помощью filename указанный; если опционально LINE за которым следует номер строки, то программа запустится автоматически с указанного номера строки, когда она будет LOADЭд вернулся; с дополнительным DATA, команда сохраняет содержимое массива, указанного в переменной, вместо текущей программы BASIC. [36]
SCREEN$[(line, column)]EXTENDED MODE затем SYMBOL SHIFT+ Функция/другое Как функция идентифицирует символ в указанной строке и столбце на экране. [20] Используется после имени файла в LOAD или SAVE команда указывает, что содержимое памяти дисплея должно быть загружено или сохранено; по сути это делает его ярлыком для CODE 16384,6912[примечание 8] но не работает с VERIFY поскольку содержимое памяти дисплея будет другим к моменту, когда команда считывает сохраненные данные; [70]
SGNnumberEXTENDED MODE затем FФункция Возвращает 1, если number положительное значение, 0, если оно равно 0, и -1, если оно отрицательное. [16]
SINnumberEXTENDED MODE затем QФункция Возвращает синус number[34]
STEPnumberSYMBOL SHIFT+ DДругой Указывает интервал, используемый FOR заявление, [44] например FOR n=2 TO 6 STEP 2 пропущу n=3 и n=5 в цикле
STOPSYMBOL SHIFT+ AКоманда Завершает выполнение текущей программы с выходом в редактор BASIC; также может быть задано, когда компьютер ожидает ввода с помощью INPUT команда; [69] после остановки программы ее можно возобновить с помощью CONTINUE
SQRnumberEXTENDED MODE затем HФункция Возвращает квадратный корень из number[37]
STR$numberEXTENDED MODE затем YФункция Преобразует число в строку.
TABcolumnEXTENDED MODE затем PДругой В PRINT оператор, гарантирует, что выводимый текст начинается в указанном столбце, при необходимости переносясь на следующую строку, но не более чем на одну строку [29]
TANnumberEXTENDED MODE затем EФункция Возвращает тангенс number[71]
THENstatementSYMBOL SHIFT+ GДругой Следует условию в IF оператор, указывающий, что должно произойти, когда условие станет истинным [примечание 7] [46]
TOSYMBOL SHIFT+ FДругой Указывает диапазон от числа слева от TO по числу прав на него включительно; [72] при использовании с FOR оба числа должны быть указаны, а если они используются для разрезания строк, любое из них может быть опущено, чтобы указать начало или конец строки.
USRstring or addressEXTENDED MODE затем LФункция При вызове с односимвольной строкой возвращается адрес памяти, по которому определен глиф для определяемого пользователем графического символа, соответствующего этому символу. [23] Если она вызывается с адресом, она начинает выполнение машинного кода по этому адресу (таким образом делая ее одной из немногих функций Sinclair BASIC, имеющих побочный эффект ) и возвращает содержимое Z80 BC пары регистров . [73]
VALstringEXTENDED MODE затем JФункция Оценивает string как число и возвращает результат; [74] это может выполнять вычисления: VAL "1+2" возвращает 3, например, а также оценивает переменные и даже другие VAL заявления: LET a=1: VAL "a+VAL ""2"""[примечание 9] также возвращает 3
VAL$stringEXTENDED MODE затем SYMBOL SHIFT+ JФункция Похоже на: VAL но оценивает строку как строку [16]
VERIFY"[filename]"EXTENDED MODE затем SYMBOL SHIFT+ RКоманда Считывает программу или данные с ленты или другого хранилища, аналогично LOAD, но вместо загрузки в память сравнивает с программой или данными, которые уже находятся в памяти. Это предназначено для использования сразу после SAVE команда, чтобы убедиться, что программа или данные сохранены без повреждений. [75]
ZX Спектр
ZX Спектр+

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

[ редактировать ]

4К БАЗОВЫЙ

[ редактировать ]

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

  • Системные команды: NEW RUN LIST LOAD SAVE
  • Управляющие заявления: GOTO IF THEN GOSUB STOP RETURN FOR TO NEXT CONTINUE
  • Операторы ввода/вывода: PRINT INPUT
  • Заявление о назначении: LET
  • Другие заявления: CLEAR CLS DIM REM RANDOMIZE POKE
  • Функции: ABS CHR$ CODEPEEK RND STR$ TL$ USR

8К БАЗОВЫЙ

[ редактировать ]

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

  • Заявления: PRINT RAND LET CLEAR RUN LIST GOTO CONT INPUT NEW REM PRINT STOP BREAK IF STOP FOR NEXT TO STEP SLOW FAST GOSUB RETURN SAVE LOAD CLS SCROLL PLOT UNPLOT PAUSE LPRINT LLIST COPY DIM POKE NEW
  • Функции: ABS SGN SIN COS TAN ASN ACS ATN LN EXP SQR INT PI RND FUNCTION LEN VALSTR$ NOT CODE CHR$ INKEY$ AT TAB INKEY$ PEEK USR

48 БАЗОВЫЙ

[ редактировать ]

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

128 БАЗОВЫЙ

[ редактировать ]

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

  • Новые команды: LOAD ! SAVE ! MERGE ! ERASE ! PLAY SPECTRUM

+3 БАЗОВЫЙ

[ редактировать ]

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

  • Новые команды: FORMAT COPY

Т/С 2000 БАЗОВЫЙ

[ редактировать ]

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

  • DELETE удаляет диапазоны строк программы BASIC.
  • FREE — функция, которая определяет объем свободной оперативной памяти. PRINT FREE покажет, сколько оперативной памяти свободно.
  • ON ERR — это функция обработки ошибок, чаще всего используемая как ON ERR GO TO или ON ERR CONT.
  • RESET может использоваться для сброса поведения ON ERR. Он также предназначался для сброса периферийных устройств.
  • SOUND управляет AY-3-8192 звуковым чипом .
  • STICK это функция, которая определяет положение внутреннего джойстика (Timex Sinclair 2090).

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

  • PRINT # печатает на определенный выходной канал.
  • LIST # перечисляет программу для определенного выходного канала.
  • CLS* очищает обе области отображения.
  • INK* устанавливает цвет чернил для обеих областей отображения
  • PAPER* устанавливает цвет бумаги в обеих областях отображения
  • SCREEN$ выбирает режимы высокого/нормального разрешения.
  • PLOT* рисует пиксель и обновляет положение рисования.
  • LINE рисует линию из предыдущей позиции PLOT, поддерживая рисование дуги
  • CIRCLE* рисует круг или овал, в зависимости от режима экрана.

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

[ редактировать ]

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

  • Команды RAM-диска: LOAD! SAVE! CAT! MERGE! ERASE! CLEAR!
  • Команды RS-232: FORMAT! LPRINT LLIST
  • Команды AY-3-8912: BEEP!
  • Команды разрешения 512 x 192: SCREEN$ DRAW! PLOT! CIRCLE!

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

[ редактировать ]

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

[ редактировать ]

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

  • Бета-версия BASIC доктора Энди Райта изначально была расширением BASIC , но стала полноценным интерпретатором. [81]
  • YS MegaBasic Майка Лимана. [80] [82]
  • ZebraOS от Zebra Systems из Нью-Йорка, картриджная версия T/S 2000 BASIC, в которой использовался режим экрана 512×192. [83]
  • ПЗУ Sea Change от Стива Викерса и Яна Логана, модифицированное Джеффом Уэрмутом, ПЗУ на замену улучшенному Sinclair BASIC. [84]
  • Gosh Wonderful от Джеффа Уэрмута, заменяющее ПЗУ, которое исправляет ошибки и добавляет токенизатор, список потоков, команды удаления и перенумерации. [80] [85]
  • OpenSE BASIC (ранее SE BASIC) от Эндрю Оуэна, заменяющее ПЗУ с исправлениями ошибок и множеством улучшений, включая ULAplus. [86] поддержка, опубликовано как открытый исходный код в 2011 г. [87] [88] [89]

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

[ редактировать ]

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

  • HiSoft COLT Compiler (также известный как HiSoft COLT Integer Compiler) [90] [91]
  • HiSoft BASIC (также известный как HiSoft BASIC Compiler), компилятор с поддержкой целых чисел и чисел с плавающей запятой. [92] [93]
  • Лазерный компилятор [94] [95]
  • Целочисленный компилятор Softek 'IS' [96] [97] (преемник Softek Integer Compiler [98] )
  • Полный компилятор Softek 'FP' [99] [100]
  • ZIP-компилятор [101] [102]

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

[ редактировать ]
  • SuperBASIC , гораздо более продвинутый диалект BASIC, представленный в персональном компьютере Sinclair QL , имеющий некоторое сходство с более ранними версиями Sinclair BASIC. [103]
  • SAM Basic , BASIC на SAM Coupé , обычно считается клоном ZX Spectrum. [104]
  • ROMU6 от Сезара и Хуана Эрнандеса — MSX [80]
  • Spectrum 48 от Whitby Computers — Commodore 64 [80]
  • Sparky eSinclair BASIC от Ричарда Келша, операционная система, основанная на ZX Spectrum BASIC — Zilog eZ80 [105]
  • Sinbas by Pavel Napravnik - DOS [80]
  • Базовый [106] (и CheckBasic [107] ) Филиппа Кендалла — Unix
  • БИНСИК [108] Адриан МакМенамин, повторная реализация в Groovy по образцу ZX81 BASIC - Java
  • БАСин [109] Пол Данн, полная интегрированная среда разработки (IDE) Sinclair BASIC, основанная на эмуляторе ZX Spectrum. [80] - Окна
  • СпецБАС [110] (также известная как SpecOS) Пола Данна, интегрированная среда разработки (IDE), предоставляющая расширенный расширенный набор Sinclair BASIC — Windows , Linux , Pandora и Raspberry Pi.
  • ZX-Базовый [111] Обратно совместимый, но улучшенный компилятор программ Sinclair BASIC ZX Spectrum, написанный на Python , свободно доступный для Windows, Linux и Mac OS.
  • ZX-Базикус [112] Хуан-Антонио Фернандес-Мадригал, синтезатор, анализатор, оптимизатор , интерпретатор и отладчик Sinclair BASIC 48K для ПК, который можно бесплатно загрузить для Linux и Windows.

См. также

[ редактировать ]

Примечания

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

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

  5. ^ Перейти обратно: а б с д и ж INK, PAPER, FLASH, BRIGHT, OVER и INVERSE установить атрибуты для вывода текста и графики на экран. Их можно использовать либо как команды для применения ко всем последующим выводам до тех пор, пока они не будут установлены снова, либо внутри PRINT заявление, применяется только с этого момента и до конца заявления.
  6. ^ Перейти обратно: а б с д и ж CAT, ERASE, FORMAT и MOVE изначально были разработаны для использования с периферийными устройствами, но на момент запуска ZX Spectrum они не были полностью реализованы, поэтому их использование приводило к появлению сообщения об ошибке (Invalid Stream). Позже с помощью теневого ПЗУ ZX Interface 1 они использовались для ZX Microdrive . (Теневое ПЗУ было выгружено, когда интерпретатор BASIC обнаружил синтаксическую ошибку, поэтому большинство команд ZX Microdrive используют "*").
  7. ^ Перейти обратно: а б В отличие от многих других диалектов 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. ^ Перейти обратно: а б «ZX80 — Обновление БАЗОВОГО ПЗУ 8K» . www.fruitcake.plus.com .
  6. ^ Перейти обратно: а б с д «World of Spectrum — Документация — ZX Spectrum +3 — Глава 7» . worldofspectrum.org .
  7. ^ Перейти обратно: а б с д «World of 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. ^ Перейти обратно: а б с д Викерс 1983 , с. 59.
  17. ^ Перейти обратно: а б Викерс 1983 , с. 70.
  18. ^ Перейти обратно: а б с Викерс 1983 , с. 85.
  19. ^ Викерс 1983 , с. 69–70.
  20. ^ Перейти обратно: а б с д Викерс 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. ^ Перейти обратно: а б с Викерс 1983 , с. 103.
  30. ^ «World of Spectrum — Документация — Руководство по ZX Spectrum — Глава 24» . worldofspectrum.org .
  31. ^ Викерс 1983 , с. 168.
  32. ^ Викерс 1983 , с. 19.
  33. ^ Перейти обратно: а б с Викерс 1983 , с. 151.
  34. ^ Перейти обратно: а б Викерс 1983 , с. 68.
  35. ^ Перейти обратно: а б Викерс 1983 , с. 41.
  36. ^ Перейти обратно: а б с Викерс 1983 , с. 142.
  37. ^ Перейти обратно: а б с Викерс 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. ^ Перейти обратно: а б с д Викерс 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 , с. 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. ^ «Microset N.º46, май 1987 г.» (PDF) . loadzx.com .
  79. ^ «Компьютер Timex 3256, Timex Portugal» . k1.spdns.de .
  80. ^ Перейти обратно: а б с д и ж г час «Мир спектра — Sinclair BASIC — главная страница проекта Sinclair Extended Basic» . www.worldofspectrum.org . Архивировано из оригинала 13 октября 2002 года.
  81. ^ «Бета-версия Basic в Spectrum Computing — игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  82. ^ «YS MegaBasic в Spectrum Computing — игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  83. ^ «Zebra OS64 в Spectrum Computing — игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  84. ^ «История Sinclair BASIC — Sinclair Wiki» . sinclair.wiki.zxnet.co.uk .
  85. ^ «Неполная сборка ПЗУ спектра» . Архивировано из оригинала 1 сентября 2015 года.
  86. ^ «ЮЛАплюс» . сайты.google.com . Архивировано из оригинала 25 мая 2013 года . Проверено 21 марта 2016 г.
  87. ^ «Интерфейс ZX 2 — SE BASIC (картридж ПЗУ стороннего производителя)» . www.fruitcake.plus.com . Архивировано из оригинала 25 марта 2015 года . Проверено 23 марта 2016 г.
  88. ^ «ОпенСЕ БЕЙСИК» . СоурсФордж . 16 апреля 2013 г.
  89. ^ «OpenSE BASIC в Spectrum Computing — игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  90. ^ «Мир спектра — компилятор HiSoft COLT» . Мир Спектра .
  91. ^ «Компилятор HiSoft COLT в Spectrum Computing — игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  92. ^ «Мир Спектра — HiSoft BASIC» . Мир Спектра .
  93. ^ «HiSoft BASIC в Spectrum Computing — игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  94. ^ «Мир Спектра — Лазерный Компилятор» . Мир Спектра .
  95. ^ «Лазерный компилятор в Spectrum Computing — игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  96. ^ «Мир спектра — компилятор Softek IS BASIC» . Мир Спектра .
  97. ^ «Целочисленный компилятор в Spectrum Computing — игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  98. ^ «Мир спектра — целочисленный компилятор» . Мир Спектра .
  99. ^ «Мир спектра — полный компилятор Softek 'FP'» . Мир Спектра .
  100. ^ «Полный компилятор Softek 'FP' в Spectrum Computing — игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  101. ^ «Мир Спектра — ZIP-компилятор» . Мир Спектра .
  102. ^ «ZIP-компилятор в Spectrum Computing — игры, программное и аппаратное обеспечение Sinclair ZX Spectrum» . Спектральные вычисления . Проверено 13 декабря 2022 г.
  103. ^ Берри, Стивен (1984). «Ключевые слова QL» . Архивировано из оригинала 22 февраля 2017 года . Проверено 27 июня 2023 г. {{cite web}}: CS1 maint: неподходящий URL ( ссылка )
  104. ^ «Альбом для вырезок Сэма Купе: Сэм БЕЙСИК» . 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 — это не код инструкции Sinclair» . 25 июня 2012 г.
  109. ^ «ZX Spin и BASin — ULAplus» . сайты.google.com .
  110. ^ "ZXDunny/СпецБАС" . 5 июня 2021 г. – через GitHub.
  111. ^ «ZX-Basic: обратно совместимый, но улучшенный компилятор программ Sinclair BASIC» .
  112. ^ «ZX-Basicus: анализатор/синтезатор/оптимизатор/интерпретатор программ Sinclair BASIC для ZX Spectrum 48K» . jafma.net .

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

[ редактировать ]
  • Адамсон, Ян; Кеннеди, Ричард (1986). Синклер и технология «восхода солнца» . Пингвин.
  • Ардли, Нил (1984). Руководство пользователя Sinclair ZX Spectrum+ . Дорлинг Киндерсли совместно с Sinclair Research. ISBN  0-86318-080-9 .
  • Викерс, Стивен (1982). Программирование Sinclair ZX Spectrum BASIC . Синклер Исследования.
  • Викерс, Стивен (1983). Программирование Sinclair ZX Spectrum BASIC (2-е изд.). Синклер Исследования.
  • Кембриджские коммуникации (1983). Sinclair ZX Spectrum Microdrive и интерфейс 1 руководство . Синклер Исследования.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4fcee8c10c4dc4c63fa2e17124e05e00__1722581520
URL1:https://arc.ask3.ru/arc/aa/4f/00/4fcee8c10c4dc4c63fa2e17124e05e00.html
Заголовок, (Title) документа по адресу, URL1:
Sinclair BASIC - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)