Locomotive BASIC

редактировать
Locomotive BASIC
Локомотив BASIC amstrad cpc.PNG
Первое появление1984; 36 лет назад (1984)
OS AMSDOS
Лицензия Собственная
Под влиянием

Locomotive Basic - это проприетарный диалект Язык программирования BASIC, написанный Locomotive Software на Amstrad CPC (где он был встроен в ROM ), а затем как приложение GEM на Amstrad PC1512 и 1640. Он был основным потомком Mallard BASIC, интерпретатора для CP / M, поставляемого с Amstrad PCW.

Существует две версии Locomotive BASIC: 1.0, которая поставляется только с моделью CPC 464, и 1.1, которая поставляется со всеми другими версиями. BASIC 1.1 также поставлялся с машинами серии Amstrad CPC Plus как часть поставляемого игрового картриджа.

Содержание

  • 1 Разработка
  • 2 Возможности
  • 3 Современные конкуренты
  • 4 Ссылки
  • 5 Внешние ссылки

Разработка

Разработка была основана на существующей работе, недавно проведенной написанием Mallard BASIC для Acorn Computers аддон Z80 для BBC Micro. Сообщается, что на улучшение существующего кода ушло около 12 недель, и на него «очень повлиял» BBC BASIC, хотя и добавлены дополнительные функции для выполнения вещей, которые потребовали бы язык ассемблера на BBC.

Возможности

Это была довольно простая, но мощная реализация BASIC по стандартам того времени, с выделенными командами для работы с графикой (такими как DRAW, PLOT, INK и PAPER во всех версиях; плюс FILL в v1.1), даже позволяя создавать несколько экранов, окон и т.п., хотя цветовая система и обработка палитры были неудобными. Таблица с числовыми кодами для 27 системных цветов была напечатана на корпусе встроенного 3-дюймового дисковода на машинах 664 и более поздних моделей. Каким бы простым она ни была, она выделялась среди других BASIC того времени, предлагая таймер - механизм программного прерывания с использованием команд EVERY или AFTER; это предлагало синхронизированный повторяющийся или однократный вызов, соответственно, на номер строки BASIC по вашему выбору.

Кроме того, по сравнению с другими домашними компьютерами того времени, Amstrad через Locomotive BASIC предоставил относительно высокий уровень контроля над звуковым чипом CPC AY-3-8912 с 3 мелодическими каналами и 1 шумовым каналом. Этот же чип также использовался на более поздней модели ZX Spectrums, а также компьютеры Atari ST и MSX, но ни у одного из них не было такой полной встроенной команды SOUND. Многие вещи, от выбора конкретной канала или комбинации каналов, установка огибающих, громкости, высоты тона, шума и т. д. может быть выполнена с помощью одной команды SOUND, с o 7 параметров. Конечно, особенно сложные и / или низкоуровневые методы не могут быть реализованы с помощью BASIC, поскольку они требуют более точного или прямого доступа к оборудованию, например особенно сложная музыка с трекеров (включая имитацию аккордов с использованием арпеджио и т. д.), воспроизведение звуков с цифровыми семплами, как в игре RoboCop например, и т. д.

Управление дисками, лентами и файлами осуществлялось самим BASIC, и обычно этого было достаточно для простого управления файлами с помощью таких команд, как GET, PUT, ERASE, SAVE, MERGE, RUN, CAT, LOAD и т. Д. Фактически, в те годы BASIC, поставляемый в стандартной комплектации с каждым недорогим домашним компьютером, также действовал как более или менее простая операционная система.

Также были доступны некоторые специальные команды для распределения и обработки памяти, такие как MEMORY и параметрическая команда ЗАГРУЗИТЬ, позволяющая, например, загрузить файл, содержащий "сырые" данные изображения, в видеопамять, вызывая его отображение, с помощью пары инструкций BASIC. Добавление правильного адреса (а) памяти в качестве параметра к командам ЗАГРУЗИТЬ или СОХРАНИТЬ позволит легко загружать необработанные несжатые изображения экрана размером 16 КБ. Вызов другого адреса приводил к принудительному сбросу системы (вызов 0), знаменитому «Нажатию любой клавиши» (call bb18) или для устранения мерцания в анимации, позволяя синхронизировать с растровым сканированием монитора через «синхронизацию кадров с обратным ходом» (call bd19); в Basic 1.1 для этого была дана отдельная команда - FRAME. С помощью PEEK и POKE CALL предоставил интерфейс для программирования на ассемблере из BASIC.

Современные конкуренты

Locomotive BASIC по сравнению с Commodore 64 BASIC (Commodore BASIC ), в котором не было специальных команд для графики или звука, позволял делать практически все, что было в пределах стандартных возможностей машины. Это было немаловажно, так как некоторые другие машины той эпохи, использующие полную графику или звук, были ограничены программистами на ассемблере. MSX, Spectrum и некоторые другие предлагали аналогичный, более или менее полный набор команд для своих звуковых и графических возможностей. Единственное, что явно выходило за рамки возможностей BASIC, - это режимы нерабочей развертки, используемые в играх и демонстрациях, режимы 27-цветной графики, воспроизведение цифрового звука и плавная прокрутка.

В отличие от Sinclair BASIC или Commodore 64 BASIC, у которых были различные сочетания клавиш или специальные клавиши для выбора символов или цветов, ключевые слова Locomotive BASIC вводились полностью, а интерпретатор анализировал, распознавал и токенировал их. Однако были сокращения вроде "?" для «ПЕЧАТЬ» и несколько ярлыков. Программы могут быть сохранены на компакт-кассете или гибком диске и извлечены как двоичные файлы или файлы ASCII.

Ссылки

Внешние ссылки

Последняя правка сделана 2021-05-28 05:20:23
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте