Введение
Bally Astrocade (также известный как Bally Arcade и первоначально как Bally ABA 1000) — это домашняя видеоигровая консоль второго поколения и простая компьютерная система, разработанная командой в Midway, которая в то время являлась игровым подразделением Bally. Она была впервые анонсирована как "Bally Home Library Computer" в октябре 1977 года и изначально стала доступна по почтовому заказу в декабре 1977 года. Однако из-за задержек в производстве устройства поступили в продажу в магазинах только в апреле 1978 года, и её фирменный стиль был изменен на "Bally Professional Arcade". Консоль продавалась лишь ограниченное время, после чего Bally приняла решение покинуть рынок. Позже права были приобретены сторонней компанией, которая переиздала и продавала её примерно до 1984 года. Astrocade особенно примечательна своими очень мощными графическими возможностями для своего времени и сложностью их реализации.
Наттинг и Мидуэй
В конце 1970-х годов компания Midway заключила контракт с Dave Nutting Associates на разработку видеочипа, который можно было бы использовать во всех их игровых системах – от аркадных автоматов до домашних компьютеров. Система, разработанная Nutting, применялась в большинстве классических аркадных игр Midway того времени, включая Gorf и Wizard of Wor. Чипсет поддерживал относительно высокое для того времени разрешение 320×204 в четырех цветах на строку, однако для работы в этом режиме требовалась память с более высокой скоростью доступа, чем у распространенной динамической оперативной памяти 2 МГц той эпохи.
Использование консоли
Первоначально известная как Bally Home Library Computer, она была выпущена в 1977 году, но доступна была только по почтовому заказу. Задержки в производстве привели к тому, что ни один экземпляр не был отгружен до 1978 года, и к этому времени машина была переименована в Bally Professional Arcade. В этой форме она продавалась в основном в компьютерных магазинах и имела ограниченное розничное распространение (в отличие от Atari VCS). В 1979 году Bally потеряла интерес к аркадному рынку и решила продать свое подразделение потребительских товаров, включая разработку и производство игровой консоли. Примерно в то же время другая компания безуспешно пыталась вывести на рынок свой дизайн консоли под названием Astrovision. Представитель Montgomery Ward, отвечавший за систему Bally, связал обе компании, и в итоге была достигнута договоренность. В 1981 году устройство было перевыпущено с бесплатным картриджем BASIC под названием Bally Computer System, а в 1982 году название снова изменилось на Astrocade. Под этим именем она продавалась до кризиса игровой индустрии в 1983 году, а затем исчезла примерно в 1985 году. Midway давно планировала выпустить систему расширения для устройства, известную как ZGRASS 100. Система разрабатывалась группой компьютерных художников из Университета Иллинойса в Чикаго, известной как 'Circle Graphics Habitat', совместно с программистами из Nutting. Midway считала, что такая система во внешнем блоке сделает Astrocade более привлекательной для рынка. Однако она все еще не была готова к выпуску, когда Bally продала подразделение. Несколько экземпляров, возможно, были произведены как ZGRASS 32 после перевыпуска машины Astrovision. Система, объединенная в один блок, в конечном итоге была выпущена как Datamax UV 1. Изначально ориентированная на рынок домашних компьютеров, машина была переориентирована как система для вывода высококачественной графики на видеокассету. Они предлагались для продажи в период с 1980 по 1982 год, но точное количество выпущенных экземпляров неизвестно.
Описание
Базовая система работала на Zilog Z80, управляющем чипом дисплея через буфер оперативной памяти между ними. Чип дисплея имел два режима: режим низкого разрешения 160 × 102 и режим высокого разрешения 320 × 204, оба с 2 битами на пиксель для четырех цветов. Такой тип цветопередачи/разрешения обычно превышал возможности оперативной памяти того времени, которая не могла считывать данные достаточно быстро, чтобы соответствовать скорости обновления изображения на телевизоре. Система использовала режим адресации по страницам, позволяя считывать одну "строку" за раз с очень высокой скоростью в буфер внутри чипа дисплея. Затем строка могла быть выведена на экран с более умеренной скоростью, а также меньше загружать процессор, который также пытался использовать ту же память. В Astrocade контакты, необходимые для использования этого "трюка", не были подключены. Таким образом, система Astrocade осталась только с режимом низкого разрешения 160 × 102. В этом режиме система использовала 160 × 102 × 2 бита = 4080 байт памяти для хранения изображения на экране. Поскольку машина имела всего 4 КБ (4096 байт) оперативной памяти, это оставляло очень мало места для программных функций, таких как подсчет очков и игровые опции. Остальная часть программы должна была быть помещена в ПЗУ. В Astrocade использовались цветовые регистры, или цветовое перенаправление, позволяющие выбирать четыре цвета из палитры в 256 цветов. Цветовая анимация была возможна путем изменения значений регистров, а с помощью прерывания по вертикальному последействию их можно было менять построчно. Дополнительный набор из четырех цветовых регистров можно было "подменять" в любой точке строки, что позволяло создавать два "полуэкрана", разделенных вертикально. Изначально предназначенный для создания области для счета по бокам экрана, программисты также использовали эту функцию для эмуляции 8-цветных режимов. В отличие от VCS, Astrocade не поддерживал аппаратные спрайты. Однако он включал в себя систему, подобную блиттеру, и программное обеспечение для управления ею. Память выше 0x4000 была выделена для дисплея, а память ниже – для ПЗУ. Если программа записывала данные в область ПЗУ (что обычно невозможно, поскольку оно "только для чтения"), видеочип принимал эти данные, применял к ним функцию и затем копировал результат в соответствующее место в оперативной памяти. Какую функцию использовать, хранилось в регистре в чипе дисплея и включало распространенные инструкции, такие как XOR и битовый сдвиг. Это позволяло Astrocade поддерживать любое количество спрайтоподобных объектов независимо от аппаратного обеспечения, но с тем недостатком, что программное обеспечение должно было перерисовывать их при перемещении. Astrocade была одной из первых систем, использующих картриджи, известные как Videocades, которые были разработаны так, чтобы быть максимально близкими по размеру и форме к аудиокассете. В устройстве также было предустановлено две игры в ПЗУ: Gunfight и Checkmate, а также простая, но полезная программа-калькулятор и программа для рисования под названием Scribbling. Большинство картриджей содержали две игры, и при их вставке машина сбрасывалась и отображала меню, начиная с программ на картридже, а затем перечисляя четыре встроенные программы. Astrocade имела относительно сложное устройство ввода, включающее несколько типов элементов управления: контроллер был выполнен в форме рукоятки пистолета с кнопкой-спусковым крючком спереди; небольшой 4-позиционный/8-направленный джойстик был расположен сверху рукоятки, а вал джойстика был подключен к потенциометру, что означало, что стиком можно было вращать, чтобы использовать его как контроллер для весла. На передней панели устройства была 24-клавишная "шестигранная панель" для выбора игр и опций, а также для работы с калькулятором. На задней панели было несколько портов, включая разъемы для питания, контроллеров и порт расширения. Одной из особенностей было то, что верхняя задняя часть устройства была пустой и могла быть открыта для хранения до 15 картриджей. Возможность модернизации системы с игровой консоли до персонального компьютера, а также библиотека из почти 30 игр в 1982 году – вот некоторые причины, по которым она была более универсальной, чем ее основные конкуренты, и Джефф Ровин назвал ее одним из семи основных поставщиков видеоигр.
Астро Базис
Astrocade также включал в себя картридж языка программирования BASIC, написанный Джейми Фентоном, который расширил Palo Alto Tiny BASIC Ли Чэнь Вэна. Впервые опубликован как Bally BASIC в 1978 году. Разработка интерпретатора BASIC на системе была сложной, поскольку только дисплей потреблял почти всю доступную оперативную память. Решением этой проблемы стало хранение кода программы BASIC в видеопамяти. Это было достигнуто путем чередования каждого бита программы с самим дисплеем: BASIC использовал все четные биты, а дисплей – нечетные. Интерпретатор считывал два байта, отбрасывал все нечетные биты и собирал результаты в один байт кода. Это делалось невидимым путем установки двух цветов, идентичных другим двум, так что цвета 01 и 11 были одинаковыми (белыми), и, следовательно, наличие или отсутствие бита для BASIC не влияло на изображение на экране. Дополнительная память была освобождена за счет уменьшения количества вертикальных строк до 88 вместо 102. Это позволило выделить 1760 байт оперативной памяти для программ BASIC. Недостатком было то, что большая часть возможностей графической системы становилась недоступной. Программы вводились через клавиатуру калькулятора с пластиковой накладкой, на которой были изображены буквы, символы и ключевые слова BASIC. Выбор осуществлялся с помощью набора из 4 цветных клавиш модификаторов. Например, ввод "WORD" (золотого цвета), затем нажатие клавиши сдвига и клавиши "+" приводил к команде GOTO. Поддерживался простой редактор строк. После ввода номера строки, соответствующей существующей программе, каждое нажатие клавиши "PAUSE" загружало следующий символ из памяти. Программа Astro BASIC, которая впоследствии стала коммерческой, – Artillery Duel. Джон Перкинс написал игру первым и представил её в фанзине The Arcadian, откуда она была адаптирована для руководства Astro BASIC. Впоследствии Перкинс разработал картридж Astrocade для этой игры.
Код образца
Следующая демонстрационная программа из руководства показывает работу с джойстиком и графическими функциями. "Проверьте свою ловкость! Ручка первого игрока перемещает фазер влево или вправо, а нажатие на курок осуществляет выстрел. Второй игрок управляет целью, в то время как первый игрок стреляет." Этот листинг демонстрирует, как ключевые слова, которые были преобразованы в токены, всегда отображались с последующим пробелом.
ZGRASS
ZGRASS-устройство подключалось к Astrocade и превращало его в полноценный компьютер, включая полноразмерную клавиатуру, математический сопроцессор (FPU), 32 КБ оперативной памяти и новый 32 КБ ПЗУ, содержащий язык программирования GRASS (на этой машине иногда называемый GRAFIX). Устройство также добавляло порты ввода-вывода для кассетного магнитофона и дисковода, что позволяло использовать его с CP/M.
Прием
Журнал Games включил Bally Professional Astrocade в свой "Топ-100 игр 1981 года", отметив, что "наиболее нам понравились картриджи с классическими играми Gunfight, Red Baron и Demolition Derby". Дэнни Гудман из Creative Computing Video & Arcade Games заявил в 1983 году, что Astrocade "обладает одним из лучших наборов графики и звука среди домашних видеоигр".