AMOS Professional - это компилируемый язык программирования (диалект BASIC), разработанный François Lionet в начале 1990х, специально для платформы компьютеров Commodore Amiga.  Он адаптирован под уникальные графические и звуковые возможности чипсета Amiga.

Настройка VS Code

Для современной, удобной работы с кодом устанавливаем редактор Visual Studio Code под свою платформу (Windows, Linux, macOS). Нам понадобится поддержка синтаксиса языка. Для VS Code некий товарищ Docster выпустил расширение AMOS Professional с подсветкой кода и подсказками на команды и функции. Конечно, можно просто остановиться и использовать любой любимый редактор, где есть подсветка для Visual Basic - с ней работать вполне можно.

Далее текстовому файлу для кода можно определить оригинальное расширение (например .vsamos) с привязкой к синтаксису и кодировке ISO-8859-1, которую понимает компилятор AMOS без ошибок с символами. В VS Code это делается в настройках файла settings.json конфигурации пользователя.

{
    "files.associations": {
        "*.vsamos": "amos"
    },
    "[amos]": {
        "files.encoding": "iso88591"
    }
}

По языку AMOS теперь есть подробная документация в сети, кто-то взял pdf формат книги и заверстал в более удобный вид онлайн страниц. После настройки VS Code можно переходить к эмулятору WinUAE (для других OS есть свои реализации UAE).

devstratum - VS Code AMOS

Эмулятор WinUAE

WinUAE - это популярный эмулятор компьютеров Commodore Amiga для Windows, поддерживающий полную линейку моделей: A1000, A500, A600, A1200, A2000, A3000, A4000 и других. Он обеспечивает детальную эмуляцию аппаратных компонентов, включая чипсеты OCS, ECS, AGA, модели процессоров Motorola архитектуры 68K: 68000, 68010, 68020, 68030, 68040, 68060. Также есть поддержка различных карт расширений и режимов работы.

В этом материале не рассматривается настройка и конфигурация эмулятора под определенную модель. Для установки AmigaOS с необходимым софтом был настроен базовый конфиг модели A1200 (CPU 68020EC без FPU и MMU) на чипсете AGA с 8MB Fast RAM и виртуальным диском HDD. Системное разрешение монитора в Workbench установлено в режим DBLPAL High Res 640x512  No Flicker с палитрой в 16 цветов.

Виртуальный диск в эмуляторе амиги представляет собой выбранную папку в основной (хостовой) OS, поэтому в VS Code мы как бы работаем с файлами на HDD AmigaOS. Это удобно, нам доступны все файлы амиги, редактируем и правим как хотим. Использование образов и физических носителей Amiga здесь не рассматривается.

devstratum - AmigaOS

В AmigaOS устанавливаем пакет AMOS 2 Pro (6 дискет FDD) и компилятор AMOS Compiler. Как не странно, для компилятора был отдельный дистрибутив на 3 дискеты. Сам редактор и утилиты разработки в AMOS для своего времени были вполне удобными и мощными (v2.00 - 1993 год). И стоит отметить, что AmigaOS (первый релиз в 1985 году) намного опередила время со своей многозадачностью и графическим интерфейсом на рынке доступных компьютеров.

devstratum - AMOS Editor

В родном редакторе AMOS отсутствует подсветка синтаксиса кода и мы ограничены средой AmigaOS, поэтому предлагается использовать VS Code. Для импорта кода в редактор поддерживается команда Merge ASCII для загрузки текстового файла (с расширением .asc) в кодировке ISO-8859-1. В родном редакторе проекты .amos сохраняются в бинарном виде, они не пригодны для редактирования в стороннем редакторе.

Компиляция кода AMOS

Мы подошли к сути процесса. У нас есть файл с текстом кода, который мы редактировали в VS Code, осталось его скомпилировать в эмуляторе (либо на реальном железе) и получить исполняемый файл для компьютера Amiga. А для автоматизации процесса нам поможет простой скрипт, исполняемый из CLI консоли.

devstratum - DOpus APCM

Название файла скрипта apcmp.bat произвольное, в данном примере от системы APCmp компилятора. Для удобного запуска по команде Run используется файловый менеджер DOpus. Перед запуском следует проверить protect атрибуты файла, важно установить пункт Script - файл будет исполняемым.

При установке AMOS в системе создаются свои assign (назначения, пути) к файлам, папкам. А также в AmigaOS можно определять любые свои assign в файлах startup. В первой строке C:APCmp запускается компилятор, далее идет путь до файла, который будет компилироваться (в данном примере projects тоже является заданным assign, что соответствует пути от диска HDD к папке - DH0:projects).

C:APCmp projects:demoscene/scene_02/scene_02.vsamos type=1 inclib
ECHO ""
ECHO "----------------"
ECHO "Test Scene 02 Ready..."
ASK  "Stop now (Yes)?"
IF WARN
    ECHO "Close task..."
ELSE
    ECHO "Run programm..."
    projects:demoscene/scene_02/scene_02
ENDIF
ECHO ""
ECHO "----------------"
ASK  "Press Any Key..."

Все параметры компилятора можно посмотреть в документации. В данном случае при type=1 мы просто получаем исполняемый файл. Параметр inclib служит для добавления всех нужных библиотек AMOS в файл, что позволяет запускать программу автономно, без установленной среды AMOS на других машинах. Далее в скрипте просто удобные условия. Если компилятор вывел ошибку при проверке и токенизации кода, мы можем закрыть задачу, подтвердив вводом по клавише «Y».  Иначе будет запущен последний скомпилированный файл.

devstratum - AMOS Compile

Прототипы на AMOS

В процессе изучения AMOS создавались прототипы. В одном проверялись методы управления индексами палитры, получился эффект анимации перебором значений цвета в индексах.

В другом прототипе было исследование программного расчета эффекта starfield simulation и анимации подготовленных растровых объектов, используя возможности Blitter чипсета.

Update [ 30.06.2025 ]