Введение

COSMAC Elf – компьютер на базе микропроцессора RCA 1802, описанный в серии статей о создании в журнале Popular Electronics в 1976 и 1977 годах. Через объявления в электронных журналах компании Netronics и Quest Electronics предлагали недорогие, улучшенные комплекты, основанные на этой конструкции. Система представляла собой один из первых одноплатных персональных компьютеров. Она работала без встроенной ПЗУ, а программы вводились непосредственно с помощью интегрированного в процессор DMA, используя 8 переключателей и кнопку ввода. Система оснащалась двумя шестнадцатеричными светодиодными дисплеями для вывода значений данных в байтах и набором из 8 переключателей для ввода. (Гексадецимальная клавиатура была опциональным расширением). Базовая конфигурация включала 256 байт оперативной памяти, но проекты расширения могли увеличить её до объёма, кратного степени двойки, с верхним пределом в 64 КБ адресного пространства. В оригинальной конструкции Elf использовался кварцевый генератор с частотой от 1 до 2 МГц, работающий со встроенной в 1802 генераторной схемой. Простая схема использовала функцию DMA 1802 для ввода программ и данных в оперативную память через переключатели. Ввод байта через переключатели и нажатие кнопки "ввод" записывали байт в оперативную память и отображали его на паре шестнадцатеричных светодиодов, после чего счётчик DMA перемещался на следующую ячейку. Для предотвращения изменения памяти можно было использовать переключатель "защита памяти". Если при вводе программы была допущена ошибка, её можно было исправить, включив защиту памяти, отключив режим загрузки (тем самым сбросив счётчик программ до нуля), включив режим загрузки и нажав "ввод" для перехода к адресу ошибочных данных. После отключения защиты памяти можно было ввести правильное значение. В четвёртой статье серии были представлены модификации для использования сопутствующей микросхемы видеогенератора RCA 1861 “Pixie” (CDP1861). Pixie требовал тактовую частоту 1,76 МГц, и поскольку это была нераспространённая частота кварца, обычно использовался легкодоступный цветной кварц на частоте 3,579545 МГц в отдельной генераторной схеме с делителем частоты на два для управления тактовыми входами как микропроцессора, так и Pixie. Получаемая частота 1,7897725 МГц была достаточно близка для нормальной работы аппаратного обеспечения. Монохромный видеовыход (с временными характеристиками, приближёнными к стандарту NTSC) мог быть сгенерирован с использованием операций DMA, чередующихся с тщательно расположенными опкодами 1802 в качестве инструкций программного обеспечения. Максимальное разрешение 1861 составляло 64h x 128v прямоугольных пикселей. Изменяя расположение инструкций в подпрограммах управления видеодисплеем и прерываний, можно было повторять строки пикселей для получения более низкого разрешения, что позволяло использовать видеодисплей с 256 байтами оперативной памяти (64 × 32 квадратных пикселя). Однобитный выход микропроцессора, линия Q, мог управляться программным обеспечением для воспроизведения звуков через подключённый динамик, для сохранения программ в оперативной памяти на кассетный магнитофон и для последовательного ввода-вывода. Инструкции перехода в наборе инструкций 1802 могли считывать состояние входных линий EF1–EF4 с одним битом, которые использовались для считывания состояния кнопки "I" (ввод) (обычно EF4), программ с кассетного магнитофона через интерфейсные схемы, последовательного ввода-вывода и ввода от периферийных устройств, таких как световое перо. Также имеется семь 8-битных портов ввода-вывода для декодирования и подключения периферии.

Микрокомпьютеры

Первоначальные компьютеры Elf по сути представляли собой самодельные версии RCA Microkit, Microtutor I и Microtutor II, которые были демонстрационными платами RCA для их предшественника CDP1801, состоящего из двух чипов, и одночиповых микропроцессоров CDP1802. Улучшенные комплекты, такие как Netronics Elf II и Quest Super Elf, добавляли встроенные функции, такие как клавиатуры для ввода данных, последовательный ввод-вывод, интерфейс для кассет и видеочип CDP1861 "Pixie". Позже RCA представила свою собственную аналогичную расширенную версию под названием COSMAC VIP. В августе 2006 года журнал Nuts and Volts совместно с Spare Time Gizmos выпустил проект по созданию "Cosmac Elf 2000", основанный на оригинальном Elf, с использованием некоторых новых и более доступных компонентов, а также улучшенными функциями, модулями и возможностями, включая плату STG1861 Pixie Graphics Replacement, функционально эквивалентную ныне редкой интегральной схеме RCA CDP1861. Membership Card – это современный, простой ремейк COSMAC Elf для любителей ретрокомпьютеров, разработанный для размещения в банке Altoids. В Интернете можно найти различные другие любительские системы, включая аппаратные эмуляторы на базе FPGA и современных микроконтроллеров.

Программное обеспечение

Серия информационных бюллетеней и небольших буклетов, предлагаемых компаниями Netronics и Quest, содержала программы на машинном языке 1802 и CHIP 8, а также схемы для расширения возможностей Elf и подключения периферийных устройств, включая световое перо. Другую подобную информацию и любительские программные проекты можно найти в Интернете. Единственная опубликованная книга о процессоре 1802 – это «Руководство программиста по 1802» Тома Свана (1981), которая после многих лет отсутствия в продаже стала доступна в формате PDF. Tiny BASIC, версия BASIC, предложенная Томом Питтманом, позволяла создавать небольшие программы на BASIC для Elf, которые можно было отображать на монохромном графическом дисплее Pixie с низким разрешением или с помощью аппаратного обеспечения TV Typewriter. Питтман также написал небольшой буклет о 1802 под названием «Краткий курс программирования», который он разрешил опубликовать и сделать доступным в Интернете бесплатно. Майк Райли разработал редактор, ассемблер, интерпретаторы BASIC и FORTH, BIOS и дисковую операционную систему Elf/OS, предназначенную для работы на расширенных системах Elf, включая COSMAC Elf 2000. Другие доступные языки указаны в статье о RCA 1802 в Википедии, включая интерпретаторы, компиляторы и ассемблеры. Игровые картриджи для RCA Studio II содержат игры Chip 8, которые могут работать и на других системах 1802. Дампы файлов этих игр можно найти в Интернете.