Супер Экспандер
VIC -1211 Super Expander — картридж для VIC-20 домашнего компьютера . Он был разработан для предоставления нескольких расширений интерпретатора BASIC программировании на компьютере, в основном для помощи в графики и звука . Он также предоставил 3 КБ дополнительной оперативной памяти (из которых 136 байт использовалось самим картриджем). Картридж был создан компанией Commodore Business Machines (CBM) и выпущен в 1981 году.
Описание
[ редактировать ]Диалект BASIC, поставляемый в комплекте с VIC-20, Commodore BASIC V2.0 , был известен своей скудной функциональностью. Он даже не соответствовал характеристикам старой линейки компьютеров Commodore, PET , на которой в то время уже была версия Commodore BASIC 4.0. В результате к моменту выпуска VIC-20 он устарел и казался довольно примитивным по сравнению с диалектами BASIC, доступными на других микрокомпьютерах. Честно говоря, решение Commodore переработать старый BASIC и тот факт, что он мог уместиться всего в 16 КБ ПЗУ (включая KERNAL ), помогли свести цену VIC-20 к минимуму и тем самым способствовали его огромному успеху. Плюс он был стабильным и почти полностью свободным от ошибок , чего нельзя было сказать о некоторых конкурирующих BASICах.
Тем не менее, в VIC BASIC не только отсутствовали команды, считавшиеся фундаментальными для языка BASIC, такие как «else» и «renum», но и полностью не поддерживались графические и звуковые эффекты. Чтобы использовать графику и звук VIC-20, программистам приходилось « PEEK и POKE » байты непосредственно из/в графическое/звуковое оборудование VIC-20, чип видеоинтерфейса 6560 (VIC) . Это делало программирование довольно утомительным и подверженным ошибкам, поскольку загадочные адреса и коды памяти приходилось постоянно использовать , ошибки в них обычно приводили к сбою компьютера вместо выдачи сообщения об ошибке, и для выполнения даже простых задач требовалось множество операторов. Подобная вещь была смертью крошечной оперативной памяти и медленно интерпретируемой парадигмы BASIC того времени.
Программисты могли в некоторой степени смягчить эти проблемы, используя машинный код , но это само по себе было утомительным процессом с довольно крутой кривой обучения. Чтобы устранить эти недостатки, компания Commodore создала картридж Super Expander . Он предоставил дополнительные команды BASIC для облегчения использования графики и звука на VIC-20. Он также имел команды для чтения джойстика и светового пера , а также разблокировал использование функциональных клавиш .
Графика
[ редактировать ]VIC-20 не поддерживал напрямую графику высокого разрешения. Графика высокого разрешения была реализована путем «раскрашивания» дисплея символами и «переопределения» растровых изображений символов на лету. Это был сложный и длительный процесс; реализация его в программе на языке BASIC была практически бесполезна из-за времени выполнения, необходимого для рисования чего-либо.
Super Expander взял на себя всю тяжелую работу. Это позволяло программисту рисовать точки, линии, эллипсы и дуги, а также рисовать замкнутые области с помощью однострочных операторов. Можно было использовать все 16 цветов VIC-20, хотя и с ограничениями, связанными с ограничениями чипа 6560. Разрешение экрана составляло 160×160 пикселей , уменьшенное по сравнению с 192×200, разрешенным чипом 6560, чтобы обеспечить попиксельную адресацию. Поддерживалось многоцветное высокое разрешение (с разрешением 80×160), и его можно было смешивать с обычным высоким разрешением.
Звук
[ редактировать ]Звуковые возможности VIC-20 были довольно упрощенными, поэтому программирование звуковых эффектов с использованием «PEEK и POKE» было не такой уж сложной задачей, как программирование графики. Несмотря на это, Super Expander предоставлял команду для воспроизведения простых тонов на четырех голосовых каналах VIC-20 и управления громкостью.
Воспроизведение музыки не поддерживалось на VIC-20; Обычным способом реализации музыкальной ноты было воспроизведение тона внутри цикла for задержки . Напротив, с помощью Super Expander музыкальные партитуры можно было воспроизвести, просто напечатав строку символов. (Музыкальные строки отличались от обычных струн с помощью специального символа обратного управления, знакомого каждому, кто использовал цвета или элементы управления курсором в программах VIC-20.) Каждый из четырех голосовых каналов VIC-20 мог воспроизводить свои собственные партитуры одновременно. создавая гармоничные эффекты, которые могли быть поразительными по меркам того времени.
Другие устройства
[ редактировать ]Super Expander предоставляет команды для чтения состояния джойстика и лепестков , а также положения светового пера. В случае с джойстиком, поскольку он был «цифровым» или «переключательным», дальнейшая битовая обработка для декодирования его положения требовалась .
Функциональные клавиши
[ редактировать ]Обычно функциональные клавиши VIC-20 можно использовать только в программе путем сканирования соответствующего кода клавиши при чтении клавиатуры . VIC-20 В прямом режиме они не могли ничего сделать. С помощью Super Expander функциональные клавиши можно назначить для выполнения команд в немедленном режиме. По умолчанию они поставляются с предварительно запрограммированными наиболее распространенными командами BASIC, аналогично GW-BASIC на IBM PC . Затем пользователь мог назначить свои собственные команды или любую произвольную строку функциональным клавишам.
Недостатки
[ редактировать ]Ниже приведены основные ограничения привлекательности и полезности Super Expander .
- Компания Commodore разработала Super Expander для отображения графического дисплея в системе координат 1024×1024 . По этой схеме каждый видеопиксель имел размер 6,4 (или 12,8) «виртуальных» пикселей. Это означало, что для размещения пикселей в точных позициях на экране необходимо было запрограммировать дополнительную операцию масштабирования. Аналогичная функциональность была обеспечена в BASIC 3.5 и 7.0 через
SCALE
команда, но в этих версиях BASIC масштабирование было необязательным и могло выполняться до любого произвольного размера, указанного пользователем. - Соотношение сторон устройства вывода (т.е. телевизора) не учитывалось системой координат. Таким образом, в NTSC круг размером, скажем, 300×300 будет выглядеть эллиптическим. Аналогично, линия, проведенная от (0,0) до (300,300), не будет отображаться как 45°.
- При рисовании дуг окружности начальный и конечный углы должны были указываться в нестандартных единицах измерения: 100 «градианов» окружности (в отличие от 360 градусов или 400 фактических градантов ).
- Super Expander не имел возможности выводить растровое изображение на дисплей. Это означало, что произвольные растровые изображения, которые можно было бы использовать в играх с высоким разрешением, нужно было рисовать попиксельно. Медлительность интерпретатора BASIC сделала его непригодным для таких приложений, как аркадные игры. В результате возможности Super Expander были в основном полезны для рисунков, ориентированных на форму, таких как диаграммы и простые изображения, или для игр в приключенческом стиле со статическими изображениями.
- Программы, написанные с использованием дополнительных команд Super Expander, не были переносимыми . Хотя это неизбежно (поскольку программы не помещаются в память нерасширенного VIC-20, а дополнительные команды BASIC все равно не распознаются). Пользователю необходимо было иметь картридж и установить его перед запуском программы, написанной с использованием дополнительных команд. Загрузка программы на нерасширенный VIC-20 выдавала ошибки. Поэтому спектр программного обеспечения, выпущенного для использования возможностей Super Expander , включая программы ввода текста, публикуемые в журналах, был очень небольшим.
Несмотря на вышесказанное, возможности Super Expander заполнили многие пробелы в среде программирования VIC-20. Кроме того, аналогичные микрокомпьютеры, представленные на рынке, имели те же или эквивалентные недостатки.
См. также
[ редактировать ]- Коммодор БЕЙСИК
- MOS Technology VIC (также известный как чип видеоинтерфейса MOS Technology 6560)
- Супер Экспандер 64