stringtranslate.com

Супер Экспандер 64

Super Expander 64 — это картриджное расширение встроенного интерпретатора BASIC домашнего компьютера Commodore 64. Он был выпущен Commodore Business Machines в 1983 году. Встроенный BASIC C64, Commodore BASIC , был адаптирован из PET и VIC 20 , и язык не имеет прямой поддержки звукового и графического оборудования системы. Доступ к оборудованию должен был осуществляться через прямой доступ к ячейкам памяти, сопоставленным с определенными аппаратными регистрами, с помощью операторов и . Super Expander 64 добавляет функции для рисования графики, использования спрайтов , чтения джойстиков, воспроизведения звука и другие функции. PEEKPOKE

Дополнительный код отображается в области «нижнего картриджа» объемом 8 килобайт по адресу $8000-$9FFF, сокращая 38 911 байт для пользовательских программ на указанные 8 КБ.

Графика

После инициализации экрана для графики «высокого разрешения» (320 × 200 монохромных пикселей) или многоцветной (160 широкоэкранных × 200 пикселей в четырех цветах) с помощью GRAPHICкоманды можно рисовать линии, круги, эллипсы, дуги, прямоугольники и многое другое с помощью команд DRAW, CIRCLE, и BOX. PAINT«заполнит» бы область, ограниченную линиями, например, внутреннюю часть CIRCLEили BOX. CHARКоманда использовалась для «печати» символов из ПЗУ генератора символов на экран растровой графики . и сохраняла бы содержимое прямоугольной области графики высокого разрешения в строковую переменную и «отпечатывала» бы ее обратно на экран в произвольных местах. Такая «графика-в-строке» также могла бы использоваться для переноса чего-либо, нарисованного на экране высокого разрешения, в один из восьми шаблонов спрайтов.SSHAPEGSHAPE GSHAPE

Спрайты

Помимо ряда команд для инициализации, позиционирования и перемещения спрайтов (или подвижных объектов-блоков, как их называл Commodore; графических элементов с аппаратной поддержкой, которые могли свободно перемещаться по экрану независимо от другой графики и текста на экране), Super Expander имел встроенный инструмент для редактирования шаблона из 8 спрайтов (вызывался с помощью команды SPRDEF), либо в режиме высокого разрешения (24 × 21 пиксель), либо в многоцветном режиме (12 в ширину × 21 пиксель).

Был даже способ реализации "прерываний" в программе BASIC, если сталкивались два спрайта, если спрайт сталкивался с другой графикой и/или текстом на экране, или если активировалось подключенное световое перо. Команда COLINTустанавливала прерывание, указывая на начальный номер строки BASIC "обработчика прерываний ", который должен был заканчиваться оператором RETURN(частью стандартного, нерасширенного BASIC) для того, чтобы передать управление обратно прерванной, "основной" части программы.

Звук

Воспроизведение последовательности музыкальных нот было привязано к стандартной PRINTкоманде BASIC с помощью специального «управляющего символа», очень похожего на управление курсором, смену цвета и другие управляющие символы. Например, воспроизводилась восходящая гамма. Команды типа и использовались для установки темпа воспроизведения и тембра последовательности нот.PRINT CHR$(6);"CDEFGAB"TEMPOTUNE

«Причуда» этой функции заключается в том, что при вводе специального управляющего символа (нажатием CTRL+ F) вместе с кавычками, а затем при удалении кавычек машина «воспроизводит» все, что было набрано во время редактирования программы; нажимайте клавишу G, и машина воспроизводит «Плинг!» с высотой тона ноты G...!

Аппаратный ввод-вывод

Такие функции, как RJOY, RPENи RPOTсчитывали бы состояние подключенного джойстика, светового пера или аналогового манипулятора . В сочетании с командами, связанными с движением спрайта, требовалась всего одна строка кода BASIC, чтобы заставить спрайт двигаться в направлении, указанном подключенным джойстиком.

Разнообразный

Была доступна команда KEY, которая настраивала четыре функциональные клавиши на клавиатуре 64 на «ввод» произвольной строки. По умолчанию эти клавиши были настроены на ввод команд типа RUN, LIST, SPRDEF, GRAPHICSи других, но пользователь мог изменить это с помощью KEYкоманды либо в прямом режиме, либо под управлением программы.

Технические проблемы

Все версии BASIC на 8-битных машинах Commodore использовали схему замены ключевых слов BASIC однобайтовым кодом — например, слово " PRINT" заменялось однобайтовым значением или токеном , а не пятью ASCII-кодами для пяти букв в слове. Super Expander добавлял больше команд, чем могла вместить эта система, поэтому была реализована система двухбайтовых токенов для новых команд.

Из-за странности интерпретатора BASIC (обработка "THEN-части" конструкции IF/THEN не перепрыгивала через вектор в ОЗУ, а вместо этого выполняла прямой переход к стандартной, нерасширенной процедуре декодирования команд BASIC), операторы IF/THEN должны были иметь дополнительное двоеточие (:), вставленное сразу после ключевого слова THEN, если следующая команда была одним из нестандартных ключевых слов BASIC Super Expander. Например, выдавало бы сообщение — его нужно было написать так — обратите внимание на двоеточие между THEN и командой DRAW, добавленной Super Expander.IF (condition) THEN DRAW ...?SYNTAX ERRORIF (condition) THEN:DRAW ...


Руководство доступно в электронном виде . [ 1]


Ссылки

  1. ^ "Руководство пользователя картриджа SUPER EXPANDER 64". Архивировано из оригинала 29 сентября 2007 г.