MSX BASIC

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

MSX BASIC — діалект мови програмування BASIC, розроблений 1983 року компанією Microsoft. Є розширеною версією Microsoft BASIC version 4.5 і має підтримку для графічних, музичних та інших можливостей побутових комп'ютерів стандарту MSX. Розроблений як наступник GW-BASIC[en] (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[en]). Воно являє собою інтегроване середовище розробки з інтерфейсом командного рядка (винятком є функційні клавіші, що дозволяють вводити деякі команди, що часто використовуються, одним натисканням; їх призначення виводиться в нижній частині екрану). Усі рядки програми мають бути пронумеровані; рядки, що вводяться без зазначення номера, виконуються одразу.

Версії 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 Instrument[en] 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).

Цікаві факти[ред. | ред. код]

  • Вільнюський бейсик[ru] створювався з нуля для машин із системою команд PDP-11 під сильним впливом MSX BASIC. Зокрема, збігаються назви більшості операторів та функцій, а також коди повідомлень про помилки.
  • Оператор циклу FOR в MSX BASIC мав особливість — за будь-яких значень параметрів циклу тіло циклу виконувалося принаймні один раз.

Посилання[ред. | ред. код]