Grabduck

Вы все еще считаете, что воткнуть пару проводков в Arduino это DIY?

:

На днях, товарищу SWG, модератору моего форума, матерому электронщику с сорокалетним, как минимум, стажем пришло ностальгическое настроение и он начал выкладывать архивные фотки своих конструкций из 80х. А после и остальные подтянулись. Мимо такой прелести я пройти не смог и позволил себе сделать небольшую компиляцию олдового тру-хардкора эпохи тотального DIY.

SWG:
«Комп, сделанный по мотивам МИКРО-80 из Радио 83г, совместимый с ним программно и аппаратно, хотя и сделанный по-своему… Из того, что удалось достать.

Например, системная шина была не на двунаправленных буферах, а с открытым коллектором (ну, не было еще тогда у меня 589АП16 и АП26). Да и схемы почти всех модулей пришлось делать по своему.Тем не менее — все работало. И все позже публиковавшиеся программы в Радио, и даже для появившейся позже РК-86 и Микроши — удалось под свою адаптировать. Ну, и сам кое — что уже писал. На Асме, на Бэйсике.



Вот собственно сам компьютер. Сначала использовал встроенный дисплей на 16 трубке. Но на нем было мелковато, пришлось купить телевизор Юность — 406Д (глаза дороже!), с трубкой 31 см. Это уже было шикарно…
Клавиатура была выполнена отдельно. Или непосредственно притыкалась вплотную, через 24х контактный 2х рядный разьем, или подключалась кабелем — удлинителем длиной от 1,5 до 2,5м.
На морде расположен технический (еще называли „инженерный“) пульт.

С него можно перехватывать управление системной шиной, переводить процессор в шаговый режим, задавать на шину адрес и данные, писать данные в ячейки памяти и ОЗУ. Также ловить стробы совпадения по заданному адресу (с переходом в режим ожидания на нем или без), видеть основные сигналы шины на линейке светодиодов, а также данные и адрес — в 16-ричном виде на индикаторе АЛС318 (под светодиодами). Ввод адресов и данных — с клавиатуры пульта в 16-ричном виде.

Крупные кнопки под выключателем питания:
1. Перевод процессора в шаговый режим.
2. Включение клавиатуры технического пульта.
3. Включение режима прямого доступа с пульта в память.
4. Включение режима прямого доступа с пульта в область адресов устройств ввода — вывода.
5. Автоматический останов по совпадению адреса на системной шине с адресом, заданным на пульте. Удобно для отладки. Обычно после остановки программы по нужному адресу, можно было прогнать программу по шагам, просмотреть любые ячейки памяти, или просто давать команды процессора с пульта.

Мелкие кнопки (от калькулятора) — ввод 16-ричных значений (кнопки 0-9 и A-F), выставление адреса с пульта на системную шину, запись данных, чтение данных по заданному адресу, инкремент и декремент для адреса и для данных, последовательная запись с автоинкрементом адреса, чего-то еще (уже все не помню, давно было)…
На 9 разрядном индикаторе — 4 16-ричных разряда адреса пульта или системной шины, два 16-ричных разряда данных пульта, и два — данных системной шины.
Под индикатором — круглые кнопки: системного сброса и кнопка готовности для шагового режима.

Ряд светодиодов:
M1 — сигнал системной шины в начале каждого командного цикла.
ОЖ — сигнал состояния ожидания готовности устройства процессором.
РПР — сигнализация разрешения прерываний.
СТК — признак работы процессора со стеком.
БУФ — не помню, кажется, индикация подключения буфера пульта к системной шине.
ОСТ — сигнализация состояния останова процессора.
Чт ЗУ — сигнал чтения ОЗУ.
Зп ЗУ — сигнал записи ОЗУ.
Чт Кпр — чтение вектора с контроллера прерываний.
Чт ВВ — сигнал чтения Ввода-вывода.
Зп ВВ — сигнал записи Ввода-вывода.

С этого технического пульта я протестировал впервые комп, затем с него же записал в 573РФ2 коды знакогенератора дисплея и служебную программу „MONITOR“ — что-то наподобие современного BIOS в компах. Там — подпрограммы работы с коавиатурой, дисплеем, магнитофоном, тесты и дампы памяти, и многое другое».

На 24х контактный разьем для клавиатуры выведены 8 бит данных, 8 бит адреса, сигналы чтения и записи для устройств ввода — вывода, земля, питание +5v (и кажется +12, не помню уже), сигнал готовности, может, что-то еще (лень разыскивать документацию).

На этот разьем через разветвители также подключал программаторы, считыватель с перфоленты, принтер — самодельный, матричный, с управлением двумя шаговиками (привод каретки и протяжка бумаги), и 8-игловой головкой, непосредственно от компа. В принтере были только ключи и несколько датчиков на оптопарах (начала и конца стороки, положения ротора ШД привода каретки, наличия бумаги). Датчики тоже опрашивались компом. Вся программа драйвера печати в компе занимала меньше килобайта в ПЗУ. Программы записи и чтения программаторов — десятки байт.

Этот комп пропахал у меня с 84 по 91 год… Да и позже, как программатор ПЗУ всяких, использовал.

Внутренности


А потом пришел товарищ ShadS и порвал всем мозг убойной мышой для спектрума.

ShadS:
«Давным давно, был у меня спектрум, ну и естественно, программа ARTStudio.
В то время уже становились популярными компы IBM, у которых была мыша и все такое. И мне страсть как хотелось сообразить себе мышу на спектрум, чтобы курсор не кнопочками гонять а по взрослому……

Короче вот что я прилепил к спектруму, хотя сейчас от созерцания этого — ощущения не однозначные (ржавая кучка непонятностей), но это работало…… Позже я прилепил айбиэмовскую мышу, но в самом начале, толи мне ее недокупиться было, толи еще чего, не помню, но слепил сам…»

Весьма солидно снаружи, почти как фабричная, если не придираться.

И брутальный самопал внутри:

Обратите внимание на реализцию кнопок. Только DIY! Только хардкор!

Логика

Обратите внимание на зелененький конденсатор. Прям над двумя синими проводками. Это знаменитый конденсатор серии «КМ». Из-за наличия в них каких то редких металлов (вроде бы палладия) огромное количество советской электроники не дожило до наших дней. Разломали на металлолом подчистую :(

Механика

Черт, это круто. Самодельные даже ролики, а оптопара из лампочки (sic!) и фоторезисторов.

И это реально работало?!!! Удивленно вопросили обитатели и получили ответ.

«Реальнее не бывает. Там в мыше, чисто логика была, которая сигналы с фотодиодов преобразовывала в ТТЛ, все фотодиоды и кнопки были заведены на сдвиговый регистр, и последовательно опрашивались внешним устройством.
В качестве внешнего устройства был небольшой блочек на процессоре Z80, который регулярно опрашивал и накапливал данные координат, кнопок, а также ждал обращений от спектрума.
Спектрум, когда ему было удобно делал запрос на этот блочок и получал актуальные данные координат и кнопок.

Интересно я интегрировал это дело в АРТСтудио. Оказалось, что вся память под программу забита и свободного места не было, куда драйверок можно было впихнуть. Тогда я вычислил место в программе где находилась какаято не нужная мне функция, нафиг вырезал ее код (естественно заткнул вызов бывшей функции), а в освободившееся место, записал код обработки мыши...»