- 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
Операторы
В версии для компьютера 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, and +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
Timex BASIC — диалект, используемый на Spectrum-совместимом компьютере TS2068 (но не TS2048, который использует обычный Sinclair BASIC). Помимо стандартных операторов Sinclair BASIC, имеет шесть дополнительных:
- DELETE, FREE, ON ERR, RESET, SOUND, STICK
Расширения и варианты
- MegaBASIC, расширение разработанное в 1984 г., Mike Leaman из компании YS, имеет операторы while, repeat, until, команды для управления набором спрайтов. Расширение было нацелено на облегчение создание игровых и учебных программ. Сопровождалось программой Sprite Designer для создания спрайтов.
- Beta BASIC, расширение Sinclair BASIC разработанное в 1985 г., Dr. Andy Wright из компании BetaSOFT. Распространено мнение о том, что это полноценный интерпретатор аргументированное тем, что имеется собственный редактор программ. На самом деле Beta BASIC (как и остальные расширения) не позволяет создавать программы работающие без загрузки кода Beta BASIC и использует процедуры ПЗУ (Sinclair BASIC).
- PRO-DOS, расширение разработанное компанией HJB в 1985 г.
- Show, расширение предназначенное не для программирования, а для создания простых презентационных роликов. Содержит демонстрационную программу. Дополнительные операторы позволяют создавать бегущие строки и надписи скроллирующиеся в любом направлении и выводимые разными шрифтами. Расширение оказалось востребованным студиями кабельного телевидения выводившими таким образом свою программу на день. Имеет версию адаптированную для IS-DOS.
- Laser BASIC, чрезвычайно удачное расширение разработанное Oasis Software в 1986 г. Предназначалось специально для создания игровых программ, в каком качестве и стало популярно (из отечественных, на этом языке написана игра «Приключения Буратино» от Вячеслава Медноногова). Этот Бейсик входил в пакет Laser Compact, также включавший впечатляющие demo-программы и компилятор Бейсика Laser Compiler.
- SAM BASIC, также разработанный Dr. Andy Wright, являлся интерпретатором BASIC для компьютера SAM Coupé, и имел обратную совместимость с версией Sinclair BASIC для ZX Spectrum.
- 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 — Оригинальная инструкция 1982 года, написанная Steven Vickers (упоминается выше)
- Sinclair ZX81 Basic Programming — также написан Vickers
- The History of Sinclair BASIC — от Andrew Owen, чья документация по Sinclair BASIC размещена на сайте World of Spectrum
- YS MegaBasic manual — Руководство пользователя интерпретатора MegaBasic от журнала Your Spectrum
Для улучшения этой статьи желательно?: - Проставив сноски, внести более точные указания на источники.
Диалекты языка программирования Бейсик Классические Altair BASIC • Applesoft BASIC • Atari BASIC (ST) • BASIC Programming • Color BASIC • Commodore BASIC • Dartmouth BASIC • Family BASIC • G-BASIC • GFA BASIC • GW-BASIC • HP BASIC for OpenVMS • IBM (BASICA • Cassette • Disk) • Integer BASIC • Locomotive BASIC • Mallard BASIC • Microsoft BASIC • MSX BASIC • ScriptBasic • Sinclair BASIC • STOS BASIC • TI BASIC (TI 99/4A • калькуляторы) • Tiny BASIC • Turbo-Basic XL • UBASIC • Бейсик Вильнюс
Переходные BASIC-256 • Basic4GL
Процедурные AmigaBASIC • AMOS BASIC • BBC BASIC • Beta BASIC • DarkBASIC • FreeBASIC • GFA BASIC • GLBasic • Liberty BASIC • Microsoft Small Basic • PureBasic • QBasic • QB64 • QuickBASIC • ScriptBasic • SuperBasic • ThinBasic • True BASIC • Turbo Basic • XBasic • Xblite • Basic4ppc • Visual Basic • Visual Test
Объектные BlitzMax • FreeBASIC • Gambas • GLBasic • KBasic • PowerBASIC • ProvideX • RapidQ • REALbasic • Run BASIC • AutoIt • StarOffice Basic • Visual Basic (.NET)
Мобильные Basic4ppc • GLBasic • NS Basic
Категории:- Basic
- ZX Spectrum
Wikimedia Foundation. 2010.