MSX BASIC
MSX BASIC — диалект языка программирования BASIC, разработанный в 1983 году компанией Microsoft. Представляет собой расширенную версию Microsoft BASIC version 4.5 и имеет поддержку для графических, музыкальных и прочих возможностей бытовых компьютеров стандарта MSX. Разработан как последователь GW-BASIC (1983), одного из стандартных диалектов BASIC для 16-разрядных IBM PC-совместимых компьютеров. В процессе разработке MSX-BASIC основное внимание уделялось гибкости системы и возможности её расширения.
Распространение
MSX-BASIC поставлялся со всеми компьютерами стандарта MSX и был записан в ПЗУ компьютера. При старте системы, если другое ПО, записанное в ПЗУ, не перехватывает управление, запускается MSX-BASIC и отображается приглашение командной строки. Примерами другого ПО, перехватывающего управление при старте системы, являются игровые картриджи (запускается вместо BASIC, если вставлен в слот) и контроллер дисковода (показывает приглашение MSX-DOS, если в дисководе находится дискета с системными файлами).
Когда MSX BASIC используется, ПЗУ, содержащее код интерпретатора и BIOS, занимает младшие 32 КБ адресного пространства процессора Z80. В старших 32 КБ находится ОЗУ, из которого для BASIC-программ и данных доступно от 23 КБ до 28 КБ. Точное значение объёма доступной оперативной памяти зависит от наличия контроллера дисковода и версии MSX-DOS.
Среда разработки
Среда разработки MSX BASIC очень похожа на среду Dartmouth Time Sharing System (Dartmouth BASIC). Она представляет собой интегрированную среду разработки с интерфейсом командной строки (исключение представляют функциональные клавиши, позволяющие вводить некоторые часто используемые команды одним нажатием; их назначение отображается в нижней части экрана). Все строки программы должны быть пронумерованы; строки, вводимые без указания номера, выполняются сразу.
Версии MSX BASIC
Каждая новая версия стандарта на компьютеры MSX включала новую версию MSX BASIC. Все версии имеют обратную совместимость и предоставляют возможности использования нового и дополнительного аппаратного обеспечения новых моделей компьютеров.
MSX BASIC 1.0 / 1.1
- Поставлялся с компьютерами MSX 1.0 / 1.1
- Объём ПЗУ 16 КБ
- Отсутствует встроенная поддержка дисководов, требуется картридж Disk BASIC (4 КБ)
- Поддерживает все доступные на MSX1 видеорежимы:
- Screen 0 (текстовый режим 40 x 24 символов)
- Screen 1 (смешанный текстовый режим 32 x 24 символов, аппаратные спрайты и цвет для символов)
- Screen 2 (графический режим высокого разрешения 256 x 192 точек, 16 цветов)
- Screen 3 (графический режим низкого разрешения 64 x 48)
- Полная поддержка аппаратных спрайтов и автоматическое определение их столкновений, с генерацией прерываний
- Полная поддержка штатного звукогенератора General Instruments AY-3-8910 (PSG)
MSX BASIC 2.0
- Поставлялся с компьютерами MSX 2.0
- Объём ПЗУ 16 КБ
- Добавлена поддержка новых видеорежимов:
- Обновление Screen 0 (текстовый режим 80 x 24)
- Screen 5 (графический режим 256 x 212/424 точек, 16 цветов из 512 доступных)
- Screen 6 (графический режим 512 x 212/424 точек, 4 цветов из 512)
- Screen 7 (графический режим 512 x 212/424 точек, 16 цветов из 512)
- Screen 8 (графический режим 256 x 212/424 точек, 256 цветов, без палитры)
- Режимы с 424 строками могут отображаться только в режиме чередования строк
- Добавлена поддержка цветных спрайтов (16 цветов)
- Добавлена поддержка аппаратных графических функций (копирование блоков, закраска и другие)
- Добавлена поддержка нижних 32 КБ ОЗУ компьютера в виде виртуального диска с ограниченными возможностями (может хранить только некоторые типы файлов). Эта область ОЗУ недоступна напрямую, так как ПЗУ BIOS и интерпретатора BASIC находятся в том же адресном пространстве.
MSX BASIC 3.0
- Поставлялся с компьютерами MSX 2.0+
- Объём ПЗУ 16 КБ
- Добавлена команда SET SCROLL для управления плавной аппаратной прокруткой в BASIC-программах
- Добавлена поддержка новых видеорежимов:
- Screen 10 (графический режим 256 x 212/424 точек, 12499 отображаемых цветов одновременно в формате YJK + 16 цветов из палитры, содержащей 512 цветов в формате RGB)
- Screen 11 (графический режим 256 x 212/424 точек, 12499 цветов YJK одновременно + 16 цветов из 512 в RGB)
- Screen 12 (графический режим 256 x 212/424 точек, 19268 цветов YJK одновременно)
MSX BASIC 4.0
- Поставлялся с компьютерами MSX Turbo R (выпускались только в Японии)
- Добавлена поддержка видеорежимов 512 x 512 точек (16 цветов из 512) и 256 x 212 (19268 цветов)
- Добавлена команда _PAUSE для создания программных задержек, не зависящих от выбранного процессора и его тактовой частоты
- Добавлены команды для управления устройством записи и воспроизведения цифрового звука (_PCMPLAY, _PCMREC)
MSX BASIC 4.1
- Поставлялся с компьютером FS-A1GT MSX Turbo R
- Имеет расширения для работы с интерфейсом MIDI
Расширения MSX BASIC
Так как возможность расширения была предусмотрена в MSX BASIC изначально, создание дополнительных модулей осуществлялось очень просто. Поддержка дополнительных устройств обычно добавлялась с помощью картриджей, содержавших также сами устройства или аппаратный интерфейс для их подключения. Например, MSX Disk-BASIC поставлялся в картридже, имевшем интерфейс для подключения дисководов, и добавлял новые команды для работы с ними.
Также существовала возможность расширения MSX BASIC чисто программными способами. Интересным расширением для MSX BASIC 1.0/1.1 было расширение с названием Screen IV, реализующее дополнительный видеорежим смешанного типа, Screen 4, позволявший выводить символьную информацию с разрешением 64 x 24 символа в графическом режиме высокого разрешения (Screen 2).
Интересные факты
- Вильнюсский бейсик создавался с нуля для машин с системой команд PDP-11 под сильным влиянием MSX Basic. В частности, совпадают названия большинства операторов и функций, а также коды сообщений об ошибках.
- Оператор цикла FOR в MSX BASIC имел отличительную особенность — при любых значениях параметров цикла тело цикла выполнялось по крайней мере один раз.
Ссылки
- MSX.bas — сайт на Португальском языке, посвящённый разработке ПО на MSX-BASIC
- MSX2 TECHNICAL HANDBOOK