Еще один гость из прошлого — Atari 800XL

Совершенно случайно, можно сказать, попал ко мне в руки вот такой компьютер. Причем в виде только основного блока, без проводов и коннекторов.

Точную дату его рождения установить не удалось, но выпускались такие компьютеры с 1983 года.

Очень хороший обзор этого компьютера в свое время написал PlazmX на Хабре.

Предварительно очистив компьютер от пыли и отмыв все пластиковые детали от отложений времени, начал искать подходящие разъемы. И тут выяснилось, что в нашем городке, практически невозможно найти 5-ти и 7-ми контактные DIN разъемы. У торгующих Б/У дедков нашлись только 3-х контактные разъемы. Пришлось заказывать разъемы в Китае и ждать. Через месяц пришли разъемы и с их помощью были изготовлены необходимые соединительные провода.

Для питания компьютера был использован блок питания на 5 вольт и 4 ампера. Назначение контактов разъемов легко находится в интернете. Правда пришлось заранее подумать, как подключить этот компьютер к почти современному монитору, но и тут Китай помог переходником.

Вот все и работает 🙂 Наигравшись со встроенным бейсиком, захотелось чего-то еще. И оно не заставило себя долго искать.

Напомню, что к Atari невозможно присоединить обычный магнитофон, для загрузки программ. В комплекте к компьютеру шло специальное устройство (магнитофон), которое обменивалось данными с компьютером уже в цифровом виде.

Делать эмулятор магнитофона на базе современного ПК, как в статье у PlazmX, я посчитал слишком сложным и недостойным ретро-компьютера.

За основу эмулятора цифрового магнитофона была взята любимая мною Arduino. На просторах сети нашелся и проект эмулирующий шину передачи данных SIO, используемую в Atari — http://whizzosoftware.com/sio2arduino/. А в статье про реализацию подобного устройства нашлась ссылка на образы программ для этого «цифрового магнитофона».

Первый вариант моего устройства выглядел вот так:

Для сокращения проводников, я переделал программу на использование дисплея, подключенного по I2C протоколу. Энкодером планировалось сделать перемещение по списку имеющихся на карте памяти файлов. Но увы, имеющийся объем памяти и библиотека работы к картой памяти не позволили реализовать эту функцию. Пришлось функционал оставить «как есть». Устройство получилось рабочее. Захотелось поместить его в корпус.

И тут я обратил внимание на то, что непонятно как крепить на корпусе выбранный мной модуль для карты памяти. Пришлось задействовать Data Shield для Arduino UNO и на его базе сделать нужный мне шилд, для подключения прочих внешних устройств.

Так что, если китайцы не делают нужный тебе шилд — собери его сам 🙂

В результате большая часть компонентов аккуратно вместилась в пластиковый корпус и закрепилась в нем.

С помощью микродрели и паяльника переделанного в резак, были проделаны отверстия под разъемы и карту памяти. Использование же Arduino UNO в проекте, позволит питать устройство не только от USB, но и от любого другого источника питания.

Однако дальнейшее размещение компонентов в корпусе, показало, что не все они туда помещаются как того хотелось бы. Прежде всего сказалась толщина пирога из платы I2C и платы LCD дисплея. Пришлось крепить дисплей не изнутри, а снаружи корпуса. В общем получилось как-то так.

Так же фирменного кабеля с разъемами на SIO2 интерфейс у меня не было, но выручили соединительные проводники от Ардуино мама-мама. В результате все заработало как и хотелось.

«В лоб» не все игры грузятся нормально, видимо нужно выбирать рассчитанные на имеющийся объем памяти. Но они грузятся и собрать коллекцию особо понравившихся, только дело времени.

Однако ложка дегтя во всем этом так-же нашлась. Оказалось, что поиграть без джойстика в игры не получится.

Но ничего, буду ждать джойстики и нормальный интерфейсный разъем с Ebay.com.

Исходный код моего проекта, со всеми библиотеками, выложен на GITHUB.