Супер Экспандер 64
Super Expander 64 — это картриджное расширение встроенного BASIC интерпретатора Commodore 64 домашнего компьютера . Он был опубликован Commodore Business Machines в 1983 году. Встроенный BASIC C64 был адаптирован из PET и VIC 20 , и этот язык не имеет прямой поддержки звукового и графического оборудования системы. Super Expander 64 добавляет функции для рисования графики, использования спрайтов, чтения джойстиков, воспроизведения звука и другие функции.
Дополнительный код отображается в 8-килобайтной области «нижнего картриджа» по цене от 8000 до 9FFF, что сокращает 38 911 байт для пользовательских программ на указанные 8 КБ.
Графика
[ редактировать ]После инициализации экрана для графики «высокого разрешения» (320 × 200 монохромных пикселей) или многоцветной (ширина 160 × 200 пикселей в четырех цветах) с помощью команды ГРАФИК можно было рисовать линии, круги, эллипсы, дуги, прямоугольники и многое другое, используя команды РИСОВАНИЕ, КРУГ и КОРОБКА. PAINT «заполнит» область, ограниченную линиями, например, внутреннюю часть КРУГА или КОРОБКИ. Команда CHAR использовалась для «печати» символов из ПЗУ генератора символов на экран растровой графики. SSHAPE и GSHAPE сохраняли содержимое прямоугольной области графики высокого разрешения в строковую переменную, а GSHAPE «отпечатывал» его обратно на экран в произвольных местах. Подобную «графику в строке» можно также использовать для переноса чего-либо, нарисованного на экране высокого разрешения, в один из восьми шаблонов спрайтов.
Спрайты
[ редактировать ]Помимо набора команд для инициализации, позиционирования и перемещения спрайтов (или блоков подвижных объектов, как их называл Commodore; графические элементы с аппаратной поддержкой, которые могли свободно перемещаться по экрану независимо от другой графики и текста на экране), Super Expander имел встроенную функцию в инструменте для редактирования шаблона из 8 спрайтов (вызывается с помощью команды SPRDEF) либо в высоком разрешении (24 × 21 пиксель), либо в многоцветном (12 ширины × 21 пиксель) режиме.
Был даже способ реализовать «прерывания» в программе BASIC, если два спрайта столкнулись, если спрайт столкнулся с другой графикой и/или текстом на экране, или если было активировано прикрепленное световое перо. Команда COLINT устанавливает прерывание, указывая на начальный номер строки BASIC «обработчика прерываний», который должен заканчиваться оператором RETURN (часть стандартного, нерасширенного BASIC), чтобы передать управление обратно прерванной «основной линии». «часть программы.
Звук
[ редактировать ]Воспроизведение последовательности музыкальных нот было привязано к стандартной БЕЙСИКОВОЙ команде «ПЕЧАТЬ» с помощью специального «управляющего символа», очень похожего на управление курсором, изменение цвета и другие управляющие символы. Например PRINT CHR$(6);"CDEFGAB"
играл нарастающую гамму. Такие команды, как TEMPO и TUNE, использовались для установки темпа воспроизведения и тембра последовательности нот.
«Особенностью» этой функции является то, что при вводе специального управляющего символа (нажатием CTRL+ F) вместе с кавычкой, а затем удалив кавычку, машина «проиграет» все, что было набрано во время редактирования программы; нажмите клавишу G, и машина произнесла «Плинг!» с высотой ноты соль...!
Аппаратный ввод/вывод
[ редактировать ]Такие функции, как RJOY, RPEN и RPOT, будут считывать состояние подключенного джойстика, светового пера или аналогового «манипулятора». В сочетании с командами, связанными с движением спрайтов, потребовалась всего одна строка кода BASIC, чтобы заставить спрайт двигаться в направлении, указанном подключенным джойстиком.
Разнообразный
[ редактировать ]Была доступна команда KEY, которая настраивала четыре функциональные клавиши на клавиатуре 64 для «ввода» произвольной строки. По умолчанию эти клавиши были настроены для ввода таких команд, как RUN, LIST, SPRDEF, GRAPHICS и других, но пользователь мог изменить это с помощью команды KEY либо в прямом режиме, либо под управлением программы.
Технические проблемы
[ редактировать ]Во всех версиях BASIC на 8-битных машинах Commodore использовалась схема замены ключевых слов BASIC однобайтовым кодом — например, словом « PRINT
" будет заменено однобайтовым значением или токеном , а не пятью ASCII-кодами для пяти букв в слове. Super Expander добавил больше команд, чем могла вместить эта система, поэтому для нового команды были реализованы.
Из-за особенности интерпретатора BASIC (обработка «THEN-части» конструкции IF/THEN не перескакивала через вектор в ОЗУ, а вместо этого выполняла прямой JuMP к стандартной, нерасширенной процедуре декодирования команд BASIC) Операторы IF/THEN должны были вставлять дополнительное двоеточие (:) сразу после ключевого слова THEN, если следующая команда была одним из нестандартных ключевых слов BASIC Super Expander. Например, IF (condition) THEN DRAW ...
даст ?SYNTAX ERROR
сообщение — нужно было написать его так IF (condition) THEN:DRAW ...
— обратите внимание на двоеточие между THEN и командой DRAW, добавленной Super Expander.
Руководство доступно онлайн в виде электронного текста. [1]
Ссылки
[ редактировать ]- ^ «Руководство пользователя картриджа SUPER EXPANDER 64» . Архивировано из оригинала 29 сентября 2007 года.