Amiga 1200 #02: подключение и доработка FDD, запись дискет на PC

Hardware
DIY
Amiga
Retro
Arduino
[ 18.05.2020 ]
Update: [ 14.10.2020 ]

Дорабатываем и подключаем к Amiga 1200 привод FDD от PC. Тестируем запись дискет на PC двумя способами.  Первый способ записи от параллельного порта компьютера с помощью утилиты ADTWin. Второй способ с помощью платы Arduino Pro Mini и утилиты Arduino Amiga FDD Reader/Writer.

Запись дискет на PC через параллельный порт

Ни каких оригинальных дискет от «Амиги» в наличии не имелось. Чтобы проверить работоспособность доработанного FDD и что-нибудь загрузить, предстояло их подготовить на ПК. Для Windows имеется утилита ADTWin, которая позволяет управлять стандартным 3.5" дисководом через параллельный порт и записывать образы «амижных» дискет ADF в родном формате для Amiga. Она работает только на запись.

Amiga 1200 #02

Для проверки способа потребовалось собрать старую машину с материнской платой, где есть в наличии параллельный порт. Установка ОС с флешки через USB не поддерживается. Сборка потянула за собой поиски CD или DVD привода и дисков с какой-нибудь подходящей операционной системой. Старое барахло не только греет душу, но и бывает полезным. Нашлись все компоненты, FDD дисковод попался от какого-то сервера. Инсталляция Windows XP прошла успешно.

Кабель FDD с разъёмом на параллельный порт, он же LPT, паялся по схеме с страницы ADTWin, там всё довольно подробно описано. Дело это муторное, жилы тонкие, иногда обрывались. Собственно, кроме старого железа, стандартного «писишного»  FDD и спаянного кабеля ничего не требуется.

Amiga 1200 #02

Я попробовал записать при Generic настройках в программе ADTWin пару новых дискет с оболочкой Workbench AmigaOS.  Забегая вперёд, дискеты в модифицированном приводе на «Амиге» читались уверено.  Конечно, многое ещё зависит от состояния носителей информации и оборудования. После пары перезагрузок на старом ПК посыпался старый HDD Maxtor. WinXP запустить больше не получилось, компьютер уходил в перезапуск. Замены жёсткого диска под рукой не оказалось и на этом опыты с данным способом записи завершились.

Запись дискет на PC с помощью Arduino Pro Mini

Следующий способ от разработчика Роберта Смита (Robert Smith) построен на плате Arduino Pro Mini с микроконтроллером ATmega 328. Все схемы и исходники имеются на сайте Arduino Amiga Floppy Disk Reader/Writer, а также доступны в репозитории на Github с открытым исходным кодом.

Amiga 1200 #02

Сначала я прошил Arduino Pro Mini с помощью Arduino IDE через адаптер USB -» UART. Потом собрал схему на проводниках. Интерфейсный шлейф к дисководу должен использоваться с прямым подключением без перекруток (как и на «Амиге»). Аккуратно разобрал один IDC разъём, обрезал использованные жилы с перекруткой и заново обжал IDC в тисках.

Стандартный PC FDD дополнительно запитал от БП зарядки телефона через изготовленный кабель с micro USB. Силы тока для питания привода только от компьютерного USB разъёма в 500 mA недостаточно. После подключения схемы можно пробовать запись через спец софт Arduino Amiga Floppy Disk Reader and Writer.

Amiga 1200 #02

Адаптер USB -» UART у меня висел на 3 COM порту, выбираем его. Прежде чем писать ADF образы, надо провести диагностику (Run Diagnostics). Для калибровки требуется дискета в формате «Амиги». Тут пригодилась дискета с Workbench, записанная первым способом через параллельный порт. Так как Amiga работает с дискетами только двойной плотности DD, я заклеил одно из сквозных окон на дискете HD (не путать с окном с защёлкой защиты от записи) изолентой на всякий случай. Так мы дадим понять FDD приводу, что используется дискета DD.

Amiga 1200 #02

Диагностика прошла успешно. Дальше проводим запись ADF образа на дискету. А потом чтение с неё в файл. После каждой операции выводятся диалоговые окна. Не всегда сообщение о успешной записи соответствует действительности. Пара дискет у меня писались успешно, но читались с ошибками.

Amiga 1200 #02

В итоге, помимо Workbench, я записал ещё несколько дискет с демо версией игры Flashback и работой от демосценеров Andromeda - Nexus 7. Этот способ показался несколько капризным. Хорошо работал только на новых (не использованных) дискетах. Запись через параллельный порт, на мой взгляд, стабильнее.

Доработка привода FDD

Большинство «Амиг» были оснащены 3.5" дисководом для дискет двойной плотности DD (double density) максимальной ёмкостью в 880 KB при использовании стандартной файловой системы FFS. Аналогично, на своём промежутке времени, на PC могли использоваться дискеты DD максимальной ёмкостью в 720 KB со своей файловой системой. В пике развития этих носителей информации большее распространение получили дискеты высокой плотности HD (high density) ёмкостью 1.44 MB, которые будут применяться в данном случае.

В запасах нашёл привод FDD ALPS DF354H(121G), для корректной работы с «Амигой» он требует небольшой переделки. Демонтируем нижнюю крышку, видим плату контроллера, которую и будем модифицировать. Процесс оказался не слишком сложным, главное проявить аккуратность. Схемы доработки разных дисководов есть на ещё живой странице на немецком языке.

Amiga 1200 #02

Первым делом нужно переключить режим определения привода с диска B на A в PC терминологии. У «Амиги» основной привод должен определяться как DF0. На плате я зачистил паяльником пятак DS1 и запаял DS0. Далее я соединил контакт 34 разъёма IDC дисковода и площадку RD на плате (чёрный провод) для подачи сигнала готовности READY.

Amiga 1200 #02

Затем перерезал дорожку от 2 контакта IDC разъёма. Аккуратно с прогревом отпаял и отогнул контакт (5 нога получается от метки на фото) у контроллера SD705A, подложил изоляцию и запаял перемычку между этими контактами (синий провод) для подачи сигнала наличия дискеты DISKCHANGE. В итоге плату прозвонил, места пайки промыл спиртом. На этом доработка завершилась.

Тестирование FDD на Amiga 1200

Amiga 1200 #02

В наличии уже есть доработанный FDD, прямой кабель к нему и записаны несколько дискет. Собираем хозяйство и тестируем чтение. Все дискеты успешно считались. Будет с чего загрузиться и проверить работу будущих контроллеров клавиатуры и мыши.

Amiga 1200 #02