← На главную

Memoire Morte собрал Memo-1 с 65C02, Minitel 1b и автоопределением

28.07.2026 13:56 · hackernews

Бенуа Авелин, известный как Memoire Morte, собрал простой компьютер Memo-1 на базе процессора 65C02, работающего на частоте 1 МГц. К чипу прикрутили 32 КБ RAM, 16 КБ ROM и две микросхемы ввода-вывода — 65C22 VIA и 6551 ACIA (не W65C51, у той проблемы с Minitel). В качестве терминала используется французский Minitel 1b.

Карта памяти поделена пополам: нижние 32 килобайта отданы RAM по адресам $0000–$7FFF. Выше, в $8000–$8FFF, сидит VIA, а ACIA отвечает за $9000–$9FFF. Ещё 8 КБ с $A000 по $BFFF выведены на внешний 32-пиновый разъём J4 — туда можно воткнуть картридж с ROM или кассетный модуль для сохранения и загрузки кода. Сигнал /Ext select подтягивается к земле, когда процессор обращается к этому слоту. Оставшиеся 16 КБ занимает системное ROM ($C000–$FFFF).

VIA обслуживает два порта для джойстиков Atari CX40. Порт A отвечает за первый джойстик, порт B — за второй, биты 0–4 соответствуют направлениям и огню. Встроенный в ПЗУ бейсик предлагает функцию JOY(0) или JOY(1), возвращающую пятибитную маску. Там же есть команда TONE, она выдаёт прямоугольный сигнал на седьмом бите порта B, позволяя пищать нотами: например, нота ля 440 Гц требует значения 1136 при тактовой 1 МГц.

При включении стартовый код инициализирует ACIA и VIA, переключает Minitel на нужную скорость и отключает локальное эхо. Появляется меню: клавиша «1» запускает монитор WOZMON, написанный Стивом Возняком для чтения и правки памяти. «2» грузит MS-BASIC (Microsoft BASIC). Если в слоте расширения обнаружен картридж, появляется пункт «3», а меню считывает из первых восьми байт картриджа ($A000–$A007) имя и прыгает на $A008. Автоопределение работает хитро: если по адресу $A000 читается $A0, значит, шина висит в воздухе, и слота нет. Клавиша «A» показывает экран с информацией о системе и лицензии Creative Commons BY-NC-SA.

Проект сделан для удовольствия и обучения, автор благодарит Бена Итера за дизайн 6502-компьютера и Йена Уорда за видеоуроки. Исходники написаны под ассемблер ca65 и компоновщик ld65, для сборки достаточно выполнить пару команд в папке src с учётом путей к asminc. Поддержка принтеров Minitel пока в процессе.

Читать оригинал →