|
Megadrive256 - Эмулятор дисковода Амиги
Название: Megadrive256
Тип изделия: Эмулятор дисковода Амиги
Разработчик: Тимур Ташпулатов
Период разработки: 2005-н.в.
История зарождения
Весной 2005 года мне позвонил приятель. Его знакомая искала помощников,
чтобы дотащить до помойки какой-то раритетный "коммодор". Так я стал
счастливым обладателем Commodore Amiga 500 французского розлива, монитора
1085S и штук тридцати дискет с играми и программами. Из игр запустилась от
силы половина, а дискет с системой не оказалось ни одной, кроме загрузочной
с каким-то редактором. Очень быстро выяснилось, что формат дискеты,
используемой Амигой, невозможно ни прочитать, ни тем более записать на PC.
С грехом пополам, используя загрузочную дискету с редактором, самодельный
шнур PC-Amiga и утилиту transadf, удалось сделать себе несколько системных
и игровых дискет, но путь этот был столь же геморройным, сколь и
малоэффективным. Тут и появилась идея заменить встроенный дисковод Амиги
на что-нибудь электронное, с поддержкой современной flash-памяти, чтобы
можно было залить туда несколько сотен образов дискет. Таким образом,
можно будет пересмотреть всё лучшее для Амиги, избежав возни с дискетами.

Реализация
Прототип эмулятора был построен на МК ATmega161 семейства AVR компании
Atmel. Согласно прикидкам, для эмуляции дисковода двойной плотности (DD,
880К) должно было хватить 8МГц тактовой частоты МК. В качестве дисплея
применялся популярный LCD от мобильных телефонов Nokia 3310 (84x48 точек,
шина SPI). Внешняя память - карточка SD/MMC в режиме доступа также по SPI.
Для хранения образа дискеты использовался внешний 30-pin 4МБ SIMM модуль.
Более цивилизованный вариант эмулятора использовал ATmega128L с тактовой
частотой 8МГц и отдельный 8MБ чип DRAM. Предполагалось, что может быть
поддержано одновременно до двух эмулируемых дисководов, а один MFM-образ
DD-дискеты занимает более 2.5МБ. Впоследствии от использования DRAM в виде
отдельных чипов пришлось отказаться по причине их малой распространённости
и низковольтности.
Сегодняшний вариант эмулятора работает на ATmega2560 с тактовой частотой
16МГц. В качестве дисплея применён графический LCD (128x64 точек, I2C). В
качестве ОЗУ - 72-pin 4МБ SIMM.
Общая картина работы эмулятора: с карточки flash-памяти выбирается
желаемый файл .ADF, загружается и преобразуется в MFM-образ дискеты в DRAM,
после чего эмулятор готов к работе. МК отрабатывает формируемые Амигой
сигналы управления дисководом (выбор устройства, DIR, SIDE, STEP), формируя
в свою очередь сигналы TRK0, RDY и поток MFM-данных. Поддерживаются также
сигнал DISK CHANGE и специфическая процедура определения Амигой параметров
подключенного дисковода с использованием сигналов MTR и RDY.
Текущие возможности
На сегодня устройство эмулирует один стандартный дисковод Амиги двойной
плотности (880K). Поддерживается только чтение. Также поддерживается
работа с PC DD (720K) форматом, который используется в MSX и Atari ST.
Присутствует экспериментальная поддержка TR-DOS (файлы .TRD).

Область применения
Предполагается, что это старинная вычислительная техника, синтезаторы.
Планы на будущее
Поддержка записи, поддержка других популярных форматов (.FDI, .DMS).
Распространение
Эмулятор ещё не завершён. Это закрытый проект, впрочем будущее может
измениться.
Автор -= / tnt23 / =- © 01/2008
|