- PVSM.RU - https://www.pvsm.ru -

Эмулятор дисковода для Atari на Arduino

Приветствую.
Делюсь опытом изготовления эмулятора дисковода для Atari на базе Arduino Nano. Под катом инструкция по сборке, схема, прошивки и демонстрация работы.
Эмулятор дисковода для Atari на Arduino - 1


В нашем музее (подробности в профиле) есть несколько компьютеров Atari, для которых хотелось сделать что-то, позволяющее быстро загружать программы. Оригинальные 410-е магнитофоны для этого не очень подходят, да и, если бы у нас был оригинальный дисковод, это тоже создало бы трудности. У Atari для загрузки программ в память используется собственный последовательный интерфейс — Atari SIO [1], разработанный Джо Декуром [2] в 1979 году. Что примечательно, Джо также участвовал в разработке стандартов модемной связи, USB и Bluetooth. И аналоговый магнитофон и цифровой дисковод передавали данные в компьютер Atari по одной и той же последовательной шине, пропускная способность которой могла достигать 120 кбит/с. Так как протокол последовательный, данные можно загружать прямо с компьютера через USB-UART адаптер и программу AspeQt [3], позволяющую эмулировать периферию Atari. Но хотелось чего-то компактного и автономного. Заказывать и паять плату для SIO2SD — эмулятора с SD картой не хотелось, но в процессе поисков попался проект SIO2Arduino [4], на базе которого я и собрал свое устройство.

Эмулятор можно собрать в нескольких вариантах, мне хотелось девайс с экраном, на котором можно выбрать образ нужной дискеты.

Первый прототип был собран за пару часов, кабель снял с нерабочего магнитофона Atari XC12, если бы его не было, пришлось бы повозиться с разъемом.
Эмулятор дисковода для Atari на Arduino - 2

Прототип был проверен на Atari 800XL, заработал сразу, без доработок и настроек.
Эмулятор дисковода для Atari на Arduino - 3

Можно было переходить ко второй фазе — полноценному прибору.
Вместо большой Arduino UNO решил собрать все на базе Arduino Nano. Все было смонтировано на монтажную плату и распаяно старым добрым МГТФ.

Вид со стороны Arduino
Эмулятор дисковода для Atari на Arduino - 4

Вид со стороны экрана
Эмулятор дисковода для Atari на Arduino - 5

По размерам хорошо подошел корпус Kradex Z119 [5] На переднюю панель вывел экран, кнопку переключения образов дисков и светодиод, который висит на ноге TX и показывает процесс загрузки.

Принципиальной схемы на сайте проекта не было, нарисовал сам. Сопротивления, регулирующие контрастность дисплея были подобраны для синего дисплея с белыми буквами. Для других цветов могут быть другими, лучше заранее настроить подстроечным резистором. При неправильных значениях сопротивлений символы на экране не видны, это сбило с толку при первом включении прототипа.

Эмулятор дисковода для Atari на Arduino - 6

При прошивке готового устройства нужно не забыть поменять в Arduino IDE плату с Uno на Nano, оказывается они немного не совместимы и IDE не видела Nano, пока не изменил настройки. Весь проект для Arduino IDE с настройками под экран и кнопку доступен по ссылке [6]

В собранном виде получился вот такой прибор:
Эмулятор дисковода для Atari на Arduino - 7
Эмулятор дисковода для Atari на Arduino - 8

Питание от кабеля micro-usb, карта памяти форматируется в FAT32, в корень скопировал образы дисков в формате ATR и XEX, большой архив с образами лежит на archive.org [7]

Для Atari 800XL порядок работы следующий:

  • Включаем SIO2Arduino
  • Кнопкой выбираем нужный образ дискеты
  • Включаем Atari

Загрузка начинается автоматически после включения или сброса, о чем свидетельствует бодро моргающий светодиод на линии TX. Игра A-Zone, образ которой занимает 92 кБ, грузится около 30 сек. Самые большие образы в архиве занимают 130 кБ.

Результат на экране:
Эмулятор дисковода для Atari на Arduino - 9

Благодарю за внимание

Автор: Коваленко Александр

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/staroe-zhelezo/265837

Ссылки в тексте:

[1] Atari SIO: https://en.wikipedia.org/wiki/Atari_SIO

[2] Джо Декуром: https://en.wikipedia.org/wiki/Joseph_C._Decuir

[3] AspeQt: https://sourceforge.net/projects/aspeqt/

[4] SIO2Arduino: http://whizzosoftware.com/sio2arduino/

[5] Kradex Z119: https://www.kradex.com.pl/shop?product=z119&lang=ru

[6] ссылке: http://wiki.itmuseum.in.ua/images/d/df/SIO2Arduino.zip

[7] archive.org: https://ia601305.us.archive.org/10/items/Atari800XEXATRFILES/Atari%20800%20XEX%20ATR%20FILES.rar

[8] Источник: https://geektimes.ru/post/294439/