Sinclair BASIC
Sinclair BASIC (назван по фамилии изобретателя сэра Клайва Синклера) — диалект языка программирования BASIC, применявшийся на 8-разрядных бытовых компьютерах производства Sinclair Research и Timex Sinclair. Интерпретатор Sinclair BASIC разработан компанией Nine Tiles Networks Ltd.
Изначально разработан в 1979 году для размещения в 4 килобайтах ПЗУ компьютера ZX80. Эта версия представляла собой неполную реализацию минимального стандарта ANSI 1978 года. При адаптации для компьютеров ZX81 и TS1000, имевших 8 КБ ПЗУ, интерпретатор был улучшен и в версии для компьютера ZX Spectrum с 16 КБ ПЗУ стал почти полной реализацией стандарта.
Оригинальный Sinclair BASIC
![](http://upload.wikimedia.org/wikipedia/ru/thumb/c/c5/3DMAZE-line370-delay5-to-0.png/304px-3DMAZE-line370-delay5-to-0.png)
Большая верхняя часть экрана содержит код текущей загруженной программы, 3D Monster Maze. Текущая выбранная строка помечена «программным указателем», инвертированным символом знака 'больше'. Нижняя часть экрана содержит текущую версию редактируемой строки, находящейся в буфере строчного редактора. Текущая позиция ввода помечена инвертированной буквой, обозначающей режим ввода, буква 'L' обозначает режим обычного ввода букв. Пользователь изменил количество итераций в цикле задержки, чтобы повысить скорость игры. Нажатие клавиши ввода подтвердит внесение изменений.
Операторы
В версии для компьютера ZX Spectrum существует 86 операторов Sinclair BASIC, включая команды (50), функции (31) и другие ключевые слова (5):
- ABS, ACS, AND¹, ASN, AT, ATN, ATTR, BEEP, BIN, BORDER, BRIGHT, CAT², CHR$³, CIRCLE, CLEAR, CLOSE#², CLS, CODE³, CONTINUE, COPY, COS, DATA, DEF FN, DIM, DRAW, ERASE², EXP, FLASH, FN, FOR, FORMAT², GO SUB, GO TO, IF4, IN, INK, INKEY$³, INPUT, INT, INVERSE, LEN, LET5, LINE, LIST, LLIST, LN, LOAD, LPRINT, MERGE, MOVE², NEW, NEXT, NOT¹, OPEN#², OR¹, OUT, OVER, PAPER, PAUSE, PEEK, PI, PLOT, POINT, POKE, PRINT, RANDOMIZE, READ, REM, RESTORE, RETURN, RND, RUN, SAVE, SCREEN$³, SGN, SIN, SQR, STEP, STR$³, TAB, TAN, THEN 4, TO, USR, VAL3, 6, VAL$³, VERIFY
Операторы, присутствующие только в версиях для ZX81 и его клонов TS1000 и TS1500:
- FAST, SCROLL, SLOW, UNPLOT, GOSUB, GOTO (вместо GO SUB, GO TO в версии для ZX Spectrum)
В версии интерпретатора для 128K моделей (Spectrum 128K, Spectrum +2, +3, +2A и +2B) было добавлено два оператора:
- PLAY, SPECTRUM
Примечания
- Функции AND, NOT и OR являются логическими операторами.
- CAT, CLOSE#, ERASE, FORMAT, MOVE и OPEN# являются командами для работы с файлами на устройстве хранения данных ZX Microdrive, при попытке использования без наличия такого устройства (или дисковой системы, поддерживающей эти команды) приводят к ошибке.
- Имена строковых переменных могут содержать только одну букву.
Таким образом, команды «LET A=5», «LET Apples=5» и "LET A$="Hello"" являются правильными, но "LET APPLES$="Fruit"" будет ошибочной. - Оператор ELSE в IF—THEN(—ELSE) условиях не предусмотрен.
Таким образом, вместо кода
10 IF V=5 THEN GO TO 50 ELSE GO TO 100
нужно использовать
10 IF V=5 THEN GO TO 50
20 GO TO 100 - Оператор LET является обязательным (то есть нужно использовать «LET A=1», но не «A=1»); что является заметным отличием от большинства диалектов языка BASIC.
- Функция VAL обрабатывает не только числа, но и выражения. Например, «PRINT VAL(A$)», где строка A$ содержит «3*3+4+COS(0)», выведет число 14.
В отличие от диалектов BASIC для бытовых компьютеров, подобных Microsoft BASIC, где для доступа к фрагментам строк используются функции LEFT$(), MID$() и RIGHT$(), Sinclair BASIC использует способ, подобный работе с массивами. Например, «A$ (5 TO 10)» вернёт подстроку, начинающуюся с пятого и кончающуюся десятым символом строковой переменной A$.
Расширения и варианты
- Timex BASIC — диалект, используемый на Spectrum-совместимом компьютере TS2068 (но не TS2048, который использует обычный Sinclair BASIC). Помимо стандартных операторов Sinclair BASIC, имеет шесть дополнительных: DELETE, FREE, ON ERR, RESET, SOUND, STICK.
- Beta BASIC[англ.], расширение Sinclair BASIC, выпущенное в 1983 году, разработчик — Dr. Andy Wright из компании BetaSOFT[1]. Распространено мнение о том, что это полноценный интерпретатор, аргументированное тем, что в нём имеется собственный редактор программ. На самом деле Beta BASIC (как и остальные расширения) не позволяет создавать программы, работающие без загрузки кода Beta BASIC, и использует процедуры ПЗУ (Sinclair BASIC).
- YS MegaBasic[англ.] — разработано в 1984 году[2] Майком Лименом (англ. Mike Leaman) из компании Your Spectrum, имеет операторы while, repeat, until, команды для управления набором спрайтов. Расширение нацелено на облегчение создание игровых и учебных программ. Сопровождалось программой Sprite Designer для создания спрайтов.
- PRO-DOS, расширение, разработанное компанией HJB в 1985 году.
- Laser BASIC, расширение, разработанное Oasis Software в 1986 году[3]. Предназначалось специально для создания игровых программ, в каком качестве и стало популярно (так, в России на этом языке была написана игра «Подкидной дурак» от Вячеслава Медноногова[4]). Этот Бейсик входил в пакет Laser Compact, также включавший впечатляющие demo-программы и компилятор Бейсика Laser Compiler.
- SAM BASIC, также разработанный Dr. Andy Wright, являлся интерпретатором BASIC для компьютера SAM Coupé и имел обратную совместимость с версией Sinclair BASIC для ZX Spectrum.
- Show, расширение, предназначенное не для программирования, а для создания простых презентационных роликов. Содержит демонстрационную программу. Дополнительные операторы позволяют создавать бегущие строки и надписи, скроллирующиеся в любом направлении и выводимые разными шрифтами. Расширение оказалось востребованным студиями кабельного телевидения, выводившими таким образом свою программу на день. Имеет версию, адаптированную для IS-DOS[источник не указан 3072 дня].
- Sinclair Extended BASIC является развивающимся ретро-проектом, целью которого является создание улучшенной версии Sinclair BASIC (бета-версия была доступна на июль 2005).
Источники
- Vickers, Steven (1982). Sinclar ZX Spectrum BASIC Programming. Sinclair Research.
- Ardley, Neil (1984). Sinclair ZX Spectrum+ User Guide. Dorling Kindersley совместно с Sinclair Research. ISBN 0-86318-080-9.
- Диалекты бейсика для ZX Spectrum. — Питер, 1992. — ISBN 5-7190-0001-1.
Ссылки
- Sinclar ZX Spectrum BASIC Programming Архивная копия от 24 сентября 2006 на Wayback Machine — Оригинальная инструкция 1982 года, написанная Стивом Викерсом[англ.] (англ. Steven Vickers).
- Sinclair ZX81 Basic Programming Архивная копия от 22 апреля 2007 на Wayback Machine — также написан Стивом Викерсом.
- The History of Sinclair BASIC — от Andrew Owen, чья документация по Sinclair BASIC размещена на сайте World of Spectrum.
- YS MegaBasic manual Архивная копия от 9 июля 2009 на Wayback Machine — Руководство пользователя интерпретатора MegaBasic от журнала Your Spectrum.
- Basinc Архивная копия от 27 августа 2022 на Wayback Machine — эмулятор для Windows.
- Уроки изучения бейсика (ZX-Spectrum) Архивная копия от 16 апреля 2016 на Wayback Machine на YouTube канале (Блоги и обзоры советского радио).
Примечания
- ↑ Beta Basic Архивная копия от 13 апреля 2016 на Wayback Machine на сайте World of Spectrum
- ↑ YS MegaBasic Архивная копия от 25 марта 2016 на Wayback Machine на сайте World of Spectrum
- ↑ Laser Basic Архивная копия от 26 апреля 2016 на Wayback Machine на сайте World of Spectrum
- ↑ «Спектрум. Возникновение» (Vega) (неопр.). Дата обращения: 3 апреля 2016. Архивировано 7 декабря 2014 года.