Введение
Британский домашний компьютер начала 1980-х годов
Jupiter Ace от Jupiter Cantab был британским домашним компьютером, выпущенным в 1982 году. Ace отличался от других микрокомпьютеров того времени тем, что в качестве среды программирования использовал Forth вместо более популярного BASIC. Это различие, а также ограниченное количество доступного программного обеспечения и некачественный символьный графический дисплей, привели к ограниченным продажам, и машина не добилась успеха. Оба разработчика ранее работали в команде ZX Spectrum: Альтвассер занимался разработкой ZX81 и аппаратным дизайном Spectrum, а Виккерс адаптировал и расширил 4K ROM ZX80 до 8K ROM ZX81 и написал большую часть ROM для Spectrum. Jupiter Ace был назван в честь одного из первых британских компьютеров, Pilot ACE, и поступил в продажу 22 сентября 1982 года по цене 89,95 фунтов стерлингов. Использование Forth вместо более привычного BASIC, доступность и успех ZX Spectrum, ограниченное количество опубликованного программного обеспечения, некачественный корпус и небольшой объем начальной памяти – все это препятствовало более широкому признанию на рынке. В конечном итоге Jupiter Cantab прекратила свою деятельность к концу октября 1983 года. В 1984 году бренд был приобретен компанией Boldfield Computing Ltd, которая продавала оставшиеся запасы по почте за 26 фунтов стерлингов.
Продажи
Продажи машины никогда не были большими; сообщалось, что до закрытия Jupiter Cantab было продано около 5000 экземпляров Ace. К началу 2000-х годов сохранившиеся машины стали редкостью и часто продавались по высокой цене как коллекционные предметы. Язык Forth, несмотря на свою структурированность и мощность, считался сложным в освоении, а знания BASIC, полученные при работе с другими домашними компьютерами, не помогали в его изучении. В обзоре 1982 года отмечалось, что "успех Jupiter Ace будет зависеть от того, примет ли покупающая публика этот микрокомпьютерный язык". Кроме того, для машины существовало очень ограниченное количество опубликованного программного обеспечения – как коммерческих программ, так и программ, напечатанных в любительских журналах, – и их возможности были ограничены небольшим объемом оперативной памяти базовой модели. Попытки продвижения Ace на образовательном рынке также не увенчались успехом: ключевыми проблемами были сомнения в актуальности Forth для учебных программ и отсутствие поддержки этого языка со стороны преподавателей. Ученики проявляли больший интерес к изучению широко распространенного BASIC, чем к языку, используемому лишь на одной (редкой) машине с необычным синтаксисом RPN. Наконец, графическое представление на основе тайлов уступало пиксельной графике других машин, которые, в отличие от Ace, поддерживали цветное изображение. Это ограничило продажи преимущественно узким кругом энтузиастов технического программирования.
Дизайн
Jupiter Ace часто сравнивают с ZX81 из-за схожих размеров, низкой стоимости и аналогичного форм-фактора. Внутренне его конструкция больше напоминает ZX Spectrum, хотя Ace также имел выделенную видеопамять объемом 2 КБ, что частично предотвращало замедление работы при обращении программ к тому же банку памяти (тем же микросхемам), что и видеопамять. Как и в Spectrum, в Ace использовались черные клавиши из токопроводящей резины, но в отличие от Spectrum, клавиши имели токопроводящую площадку, которая прижималась непосредственно к дорожкам на печатной плате, а не использовала мембрану. В результате клавиши часто переставали надежно работать, пока их не очистят или не обновят токопроводящий материал. Аудиовозможности контролировались процессором с программируемой частотой и длительностью. Звук выводился через небольшой встроенный динамик. Как было принято в то время, для хранения данных использовался обычный кассетный магнитофон вместо дисководов. Аналогично, для отображения требовался телевизор, но только черно-белый, в отличие от цветного, поддерживаемого конкурирующими моделями, такими как Spectrum. Вторичный (недокументированный) разъем на задней панели корпуса предоставлял доступ к некоторым видеосигналам, предположительно для будущей цветной видеокарты, но официальный продукт, использующий этот разъем, так и не был выпущен. Jupiter Ace был основан на процессоре Zilog Z80, с которым дизайнеры имели опыт работы, полученный при разработке Sinclair ZX81 и ZX Spectrum. Графику и текст можно было отображать одновременно: (1) переопределение символьных плиток обеспечивало стандартную графику 256×192, ограниченную 128 доступными (определяемыми) символами 8×8, одновременно с построением графики 64×48. Внутренний динамик напрямую управлялся процессором в однозадачном режиме, с контролем частоты и длительности звука в миллисекундах. Хранение данных осуществлялось через кассетный интерфейс со скоростью 1500 бод. Файлы могли использоваться для хранения программ на языке Forth (скомпилированного кода) или для дампа памяти.
Память
Ace имел 8 КБ ROM, содержащий ядро Forth и операционную систему, а также предопределенный словарь слов Forth объемом около 5 КБ. Оставшиеся 3 КБ ROM поддерживали несколько функций: библиотеку чисел с плавающей точкой и таблицу определения символов, доступ к магнитофону, декомпиляцию и переопределение вновь отредактированных "слов" (то есть подпрограмм). Часть ROM была написана на машинном коде Z80, но часть также была закодирована на Forth. Следующие 8 КБ представляли собой встроенную RAM, которая была частично декодирована: 2 КБ видео-RAM дублировались, а 1 КБ пользовательской RAM – четырежды (одна и та же область памяти отображалась по нескольким разным адресам). Использование нижнего зеркала адресов видео-RAM позволяло выбирать приоритет процессора, что приводило к появлению случайных пикселей на экране, когда подсистема видео и процессор обращались к видео-RAM одновременно в одном тактовом цикле. Использование верхнего адреса на короткое время приостанавливало работу процессора из-за помех, что влияло на синхронизацию программы и делало этот режим непригодным для операций ввода-вывода. Поскольку видео-RAM была частично отделена от основной адресной и шины данных, подсистема видео и процессор в основном могли работать параллельно. Первые 16 КБ адресного пространства использовались для ROM, видео-RAM и доступной пользовательской RAM, оставляя вторые 16 КБ свободными для расширения RAM, а верхние 32 КБ – неопределенными. Один 1К банк позволял переопределить большинство из 128 символов на основе ASCII в формате 8x8 пикселей. В другом 1К банке хранилось полноэкранное отображение 24 строк по 32 столбца символов в черно-белом цвете. Цвет планировалось реализовать как расширение, но, хотя плата цветной графики и была разработана, коммерческое производство так и не было налажено. 1 КБ RAM с возможностью установки пакета расширения RAM на 16 КБ, а позднее – на 32 КБ. Компания Boldfield Computing также выпускала PCB, которая обеспечивала электрическую совместимость краевого разъема с Sinclair ZX81, позволяя использовать пакет RAM ZX81 объемом 16 КБ.
Технические характеристики
Процессор: Zilog Z80A с тактовой частотой 3,25 МГц. Операционная система: FORTH (и как язык программирования, и как интерфейс командной строки). Память: 2 КБ для видео + 1 КБ базовой, расширяемой до 49 КБ (без учета видеопамяти). Видео: Независимая подсистема с двумя выделенными банками SRAM: экран (1 КБ) + тайлы символов (1 КБ). Звук: Внутренний динамик, управляемый процессором (без выделенного звукового чипа). Расширение: 2 разъема: основной (для подключения к процессору) + видео (экран + AV-сигнал). Клавиатура и набор символов: 40-клавишная QWERTY-клавиатура (доступ к символам с помощью дополнительной клавиши). Все символы в наборе символов (основанном на ASCII 1967) могут быть переопределены. Набор символов: Основан на ASCII 1967 с расширениями, аналогичными набору символов ZX Spectrum, включая символы ↑, £ и ©. Упоминания оперативной памяти Ace иногда включают отдельную видеопамять объемом 2 КБ, которая была недоступна для программирования, что может вводить в заблуждение. Кроме того, часто утверждается, что благодаря эффективности языка Forth, 1 КБ стандартной оперативной памяти фактически был эквивалентен как минимум 2 КБ на системе, использующей BASIC.
Разработка
Избегание использования исходных текстов компенсировалось сохранением комментариев, вводимых в код вместе с скомпилированным результатом, что традиционные компиляторы отбрасывали бы. Комментарии затем восстанавливались при декомпиляции. В результате принципа "код – это источник", изменение слова (редактирование) требовало обновления всего кода, использующего это вновь отредактированное слово. Это осуществлялось с помощью нестандартной команды REDEFINE. Хотя компилируемый Forth и не был специально разработан для этой цели, его можно было использовать для расширения ПЗУ встроенной системы. Внешние ПЗУ разрабатывались на Ace Forth для использования в качестве управляющих приложений.
Юпитер Асс номер 1
Оригинальный Jupiter Ace, выпуск 1, был представлен в 1982 году и поставлялся в блистерной упаковке, изготовленной методом вакуумной формовки. Сообщается, что было выпущено 5000 экземпляров.