MSX BASIC

Поделись знанием:
Перейти к: навигация, поиск

MSX BASIC — диалект языка программирования BASIC, разработанный в 1983 году компанией Microsoft. Представляет собой расширенную версию Microsoft Standart 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 BASIC"

Ссылки

  • [www.basic.msxall.com/ MSX.bas] — сайт на Португальском языке, посвящённый разработке ПО на MSX-BASIC
  • [www.konamiman.com/msx/msx2th/th-2.txt MSX2 TECHNICAL HANDBOOK]

Отрывок, характеризующий MSX BASIC

– Напротив, – сказал он ворчливым и сердитым тоном, так противоречившим лестному значению произносимых слов, – напротив, участие вашего превосходительства в общем деле высоко ценится его величеством; но мы полагаем, что настоящее замедление лишает славные русские войска и их главнокомандующих тех лавров, которые они привыкли пожинать в битвах, – закончил он видимо приготовленную фразу.
Кутузов поклонился, не изменяя улыбки.
– А я так убежден и, основываясь на последнем письме, которым почтил меня его высочество эрцгерцог Фердинанд, предполагаю, что австрийские войска, под начальством столь искусного помощника, каков генерал Мак, теперь уже одержали решительную победу и не нуждаются более в нашей помощи, – сказал Кутузов.
Генерал нахмурился. Хотя и не было положительных известий о поражении австрийцев, но было слишком много обстоятельств, подтверждавших общие невыгодные слухи; и потому предположение Кутузова о победе австрийцев было весьма похоже на насмешку. Но Кутузов кротко улыбался, всё с тем же выражением, которое говорило, что он имеет право предполагать это. Действительно, последнее письмо, полученное им из армии Мака, извещало его о победе и о самом выгодном стратегическом положении армии.
– Дай ка сюда это письмо, – сказал Кутузов, обращаясь к князю Андрею. – Вот изволите видеть. – И Кутузов, с насмешливою улыбкой на концах губ, прочел по немецки австрийскому генералу следующее место из письма эрцгерцога Фердинанда: «Wir haben vollkommen zusammengehaltene Krafte, nahe an 70 000 Mann, um den Feind, wenn er den Lech passirte, angreifen und schlagen zu konnen. Wir konnen, da wir Meister von Ulm sind, den Vortheil, auch von beiden Uferien der Donau Meister zu bleiben, nicht verlieren; mithin auch jeden Augenblick, wenn der Feind den Lech nicht passirte, die Donau ubersetzen, uns auf seine Communikations Linie werfen, die Donau unterhalb repassiren und dem Feinde, wenn er sich gegen unsere treue Allirte mit ganzer Macht wenden wollte, seine Absicht alabald vereitelien. Wir werden auf solche Weise den Zeitpunkt, wo die Kaiserlich Ruseische Armee ausgerustet sein wird, muthig entgegenharren, und sodann leicht gemeinschaftlich die Moglichkeit finden, dem Feinde das Schicksal zuzubereiten, so er verdient». [Мы имеем вполне сосредоточенные силы, около 70 000 человек, так что мы можем атаковать и разбить неприятеля в случае переправы его через Лех. Так как мы уже владеем Ульмом, то мы можем удерживать за собою выгоду командования обоими берегами Дуная, стало быть, ежеминутно, в случае если неприятель не перейдет через Лех, переправиться через Дунай, броситься на его коммуникационную линию, ниже перейти обратно Дунай и неприятелю, если он вздумает обратить всю свою силу на наших верных союзников, не дать исполнить его намерение. Таким образом мы будем бодро ожидать времени, когда императорская российская армия совсем изготовится, и затем вместе легко найдем возможность уготовить неприятелю участь, коей он заслуживает».]
Кутузов тяжело вздохнул, окончив этот период, и внимательно и ласково посмотрел на члена гофкригсрата.
– Но вы знаете, ваше превосходительство, мудрое правило, предписывающее предполагать худшее, – сказал австрийский генерал, видимо желая покончить с шутками и приступить к делу.
Он невольно оглянулся на адъютанта.
– Извините, генерал, – перебил его Кутузов и тоже поворотился к князю Андрею. – Вот что, мой любезный, возьми ты все донесения от наших лазутчиков у Козловского. Вот два письма от графа Ностица, вот письмо от его высочества эрцгерцога Фердинанда, вот еще, – сказал он, подавая ему несколько бумаг. – И из всего этого чистенько, на французском языке, составь mеmorandum, записочку, для видимости всех тех известий, которые мы о действиях австрийской армии имели. Ну, так то, и представь его превосходительству.
Князь Андрей наклонил голову в знак того, что понял с первых слов не только то, что было сказано, но и то, что желал бы сказать ему Кутузов. Он собрал бумаги, и, отдав общий поклон, тихо шагая по ковру, вышел в приемную.
Несмотря на то, что еще не много времени прошло с тех пор, как князь Андрей оставил Россию, он много изменился за это время. В выражении его лица, в движениях, в походке почти не было заметно прежнего притворства, усталости и лени; он имел вид человека, не имеющего времени думать о впечатлении, какое он производит на других, и занятого делом приятным и интересным. Лицо его выражало больше довольства собой и окружающими; улыбка и взгляд его были веселее и привлекательнее.
Кутузов, которого он догнал еще в Польше, принял его очень ласково, обещал ему не забывать его, отличал от других адъютантов, брал с собою в Вену и давал более серьезные поручения. Из Вены Кутузов писал своему старому товарищу, отцу князя Андрея:
«Ваш сын, – писал он, – надежду подает быть офицером, из ряду выходящим по своим занятиям, твердости и исполнительности. Я считаю себя счастливым, имея под рукой такого подчиненного».
В штабе Кутузова, между товарищами сослуживцами и вообще в армии князь Андрей, так же как и в петербургском обществе, имел две совершенно противоположные репутации.
Одни, меньшая часть, признавали князя Андрея чем то особенным от себя и от всех других людей, ожидали от него больших успехов, слушали его, восхищались им и подражали ему; и с этими людьми князь Андрей был прост и приятен. Другие, большинство, не любили князя Андрея, считали его надутым, холодным и неприятным человеком. Но с этими людьми князь Андрей умел поставить себя так, что его уважали и даже боялись.
Выйдя в приемную из кабинета Кутузова, князь Андрей с бумагами подошел к товарищу,дежурному адъютанту Козловскому, который с книгой сидел у окна.