Орион-128 :: работа цифровых схем :: изучаем, пробуем запустить

Автор Slabovik, 18 Янв., 2021, 22:43

« предыдущая - следующая »

Slabovik

Есть у меня мой маленький фетиш: люблю изучать "брутальное железо". В своё время это была ламповая техника, апофигеозом которой для меня стал Р-250, ну и далее не менее любимая "цифра" - вычислительные системы, собранные не на современном Verilog, а на рассыпухе. Достаточно яркий представитель этого - радиолюбительский комп Орион-128, описание которого было опубликовано в 199..? забыл каком году. Будучи студентом, я его собирал, и он у меня даже до сих пор рабочий лежит, оформленный в корпусе с дисководом. А сейчас зачем-то снова в руки попала голая плата из тех лет, ну и... а давайте, соберём! :) Ну, хотя бы до состояния "работает, можно оформлять" (тайная мысль: а может платку по-новой переразвести?).

В общем, набил я его микросхемами. На этом этапе фоток почему-то не сделал, от радости наверное... Но в общем, набил я его, в отличие от тех старых сборок, не серией 155, а микросхемами серии 1533. Современными, то есть. Серию 1564 (1554) брать не стал, ибо там могут быть косяки совместимости КМОП-ТТЛ. Только DD18 и DD28 поставил К155ТМ7, ибо 1533 не достал. Не существенно...

Схему самого компьютера приводить не буду. Не то, чтобы у меня её нет, но большинство схем гуляет с опечатками. У себя я многое исправил (на схеме), но, забегая вперёд, скажу, что компик у меня не запустился и наверняка этому есть причины, в т.ч. связанные неточностями в схеме
↓ спойлер ↓
есть информация из первоисточника, что при подготовке статей к публикации, редакцией почему-то были проигнорированы правки, ну попросту был опубликован материал без учёта найденных ошибок. В итоге это привело к довольно длинной череде заметок типа "найдённые ошибки и опечатки"
[свернуть]

Сразу встал вопрос: а чем питать? Что-то не хочется городить "родной" источник питания, который достаточно капризен в работе. В итоге поступил просто: исходя из того, что достаточно легко найти какой-нибудь блок от ноутбука с напряжением 16-20 вольт, или даже простой трансик с выпрямителем и даже без стабилизации, за питающее напряжение принимаем всё, что от 14 и до 25 вольт.

Из "хардверно обеспеченного" такое легко можно следать на какой-нибудь UC3842, TL494 и подобном. Но сейчас поступил проще: поскольку место от "родного" преобразователя не задействовано (а площадка там размером 50 на 60 или даже 65 мм), то впихиваем туда последовательно две понижайки на TPS5430 и один ICL7660. Первая понижайка делает из входного 14-25 стабильные 12 вольт, которыми питается процессор (потребление в пределах 100 мА, что немного, но важно, чтобы это напряжение подавалось одновременно, либо чуцть ранее 5 вольт). Вторая понижайка делает из 12 вольт 5 вольт, которыми питается процессор, вся логика, и преобразователь на ICL, который вырабатывает -5 вольт (используется в процессоре для подачи на подложки - увы, тогда технология требовала). Потребление по -5 вольт считанные миллиамперы. Попутно от этого напряжение питается ОУ, работающий в роли компаратора для чтения с магнитофона.

Схема выглядит так (уж извините, не причёсана т.к. к публикации я её не готовил, а только чтобы сделать плату да запустить)

Orion-128_PS_scheme.png

Для сопряжения этого блочка с основной платой, пришлось "изобрести" разъём (на схеме чудовище справа), через который блочок "прилипал бы" к плате, становясь с ней одним целым. Точки легко нашлись, а дальше только штангенциркуль да ловкость рук

Orion-128_PS_fixing_pins.png

Плата односторонняя - это потому что ЛУТ. Габаритные и выводные детали с одной стороны, а SMD со стороны фольги.

Orion-128_PS_empty_plate.jpg

Вот, напихал деталей

Orion-128_PS_filled_plate_inside.jpg

Orion-128_PS_filled_plate.jpg

Запаял что-то типа стоек в основную плату. Высоту сделал по высоте конденсаторов на плате блочка, чтобы они чуть-чуть не доставали.

Orion-128_PS_base_connection.jpg

Orion-128_PS_foiled_side.jpg

Самое сложное - вставить проводочки-стойки на свои места. Ну.. для этого руки есть :)
Завелось всё сразу, чётко и без проволочек (это если не считать, что вначале я почему-то забыл запаять бутстрепные конденсаторы, но после исправления этого недоразумения - действительно чётко).

Orion-128_PS_at-work.jpg

Потребление собранного хозяйства оказалось на уровне 9 ватт. По современным меркам конечно кошмарно, но оно так приятно греет в холода :)

А вот с работой цифровой схемы что-то не заладилось. В следующих постах будет пробовать разбираться.
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

Slabovik

Первое включение без телевизора показало, что схема вполне живая. Осциллограф бодро показал активность на шине адреса, шине данных. Правда, показатель активности (сигналы бегают) - ещё не показатель разумной деятельности :) Увы... на одной линии шины адресов было тихо и заметно больше других грелась DD20. Поиск показал наличие залипухи на шину питания. Убрал. Потребление сразу упало миллиампер на 50 (интересно, что вроде ничего не повредилось. Впрочем, пострадавший мог быть только самим буфером шины, а он защищён от к.з.)
И конечно же перепутал включение РФ2 - вставил кверху ногами  :-\  Блина, это всё из-за надписи наоборот. Думал, уж сгорела. Нифига! Вставляю в программатор, считываю - прекрасно читается, байт в байт всё совпадает. Вставляю обратно - наблюдаю признаки разумной активности на шинах!

Ладно, дальше ТВ. Подключение по SCART. Тут неявный момент есть - надо не забыть подать на один пин напряжение хотя бы 5 вольт, чтобы ТВ переключился в режим компонентного сигнала. В противном случае он будет ожидать композит, а его правильно "миксить" ещё та задача.

Увы... на экране стабильный белый квадрат. И только по его каёмке какое-то лёгкое шевеление (каёмка - схемотехническая недоработка. Она то справа, то слева. Происходит из-за чуть, буквально на десяток-другой наносекунд, несвоевременного прихода сигнала гашения).

Лезем осциллографом. На шине данных проца - есть активность. На системной шине данных - есть активность. Сигнал DSYN (запрос процом цикла шины памяти) имеется. Выборка из ПЗУ происходит разумно. А вот интересно, на шине данных памяти нули появляются только когда есть сигнал WR (запись процессором в память). На регистрах видео - стабильные 1 по всем разрядам.
Буферы умерли? Проверяем - нифига! Память вся дохлая?.. И что-то дёрнуло посмотреть сигналы RAS и CAS. Ё-маё! Почему-то CAS поступает РАНЬШЕ RAS!  :o

Конечно, в таком режиме память стабильно в отключке, а на её выводах данных напряжение от "свободно висящих" буферных регистров, которые это состояние (в силу их ТТЛ-ьности) принимают это за плохонькую, но "1"

В общем, надо плотно посидеть и разобраться в схеме. Продолжим завтра :)
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

Slabovik

#2
Для того, чтобы разбираться, нужна схема.
Оригинальную найти не проблема (https://www.google.com/search?q=%D0%BE%D1%80%D0%B8%D0%BE%D0%BD-128+%D1%81%D1%85%D0%B5%D0%BC%D0%B0). Но она с ошибками (они найдены, описаны).

Схема с учтёнными ошибками пристёгнута внизу поста. Сканировал и исправлял собственноручно ;)
Там же ещё чей-то труд в формате .PDF. Читается легче, но... досадные ошибки тоже есть! :P
Ничего. Сидим, сравниваем, понимаем :)

Начнём с синхрогенератора, самой основы функционирования всего. Для того, чтобы было наглядно видны зависимости, перерисовываем в более удобочитаемом виде

Orion-Sync_scheme.png

Ну как? Полагаю, инфу, как работают JK-счётчики, без проблем найдёте сами.
Синхрогенератор формирует основные сигналы для арбитража шины памяти (сигналы RAS, CAS, также помним, что их активные уровни - низкие), работы ЦП (F1, F2), и самое объёмное - сигналы управления развёрткой.

Собственно, развёртка у нас работает, изображение стабильное.
Чисто на основе схемы рисуем самые быстрые времянки (временные диаграммы)

Orion-Sync-1st-timing.png

И вот тут есть одно скользкое место. Отмечено стрелочкой. Верхняя часть DD6, формирующая RAS, меняет своё состояние по восходящему фронту сигнала 42. Но дело в том, что изначально состояние DD6 может быть любым, а следовательно, действительно, RAS может быть как впереди CAS, так и позади. Видимо, чтобы этого не было, введены сигналы на Reset счётчиков, которые должны, как я полагаю, ставить RAS на его положенное место (как раз то самое место, отмеченное стрелкой). Но этого по какой-то причине не происходит, RAS устойчиво идёт позади CAS. При этом DSYNC (CPU) имеет вполне правильное положение.

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

Slabovik

Немного практики. Собственно, было предположение, что RAS оказался инвертированный из-за несвоевременного (т.е. задержанного) прихода сигнала на ножки 2 микросхем DD5 и DD6. Если бы он приходил вот в то окошко, отмеченное ноликом чуть ниже стрелки, было бы всё прекрасно. А он приходит по всей видимости позже, чуть правее восходящего фронта сигнала 42 (там ещё пунктирчик вертикальный для ориентира). Соответственно, его фаза получается полностью противоположной.

Посмотрим осциллограммы.

Для начала просто оценка задержек от прохождения в цепочке микросхем.

OSC_00.jpg

Сигнал 46, а это всего лишь третий разряд счётчика-указателя байт, задержан от отметки, вызвавшей его переключение уже на 40 наносекунд. Ладно, извращаемся с втыканием щупов (эквилибристика прямо) и вот

OSC_01.jpg

ЫЫЫ!!!  Догадка абсолютно верна. Вот то сочетание на выводах 2 и 3 микросхем (там внутри микросхемы они по "И" работают) находится в самом конце цепочки переключений. Вот нифига себе, да? Общая задержка от импульса-инициатора порядка 180 :o наносекунд. На самом деле это OVERдофига. Естественно, в указанное окошко импульс опаздывает на целую сотку наносекунд. Позже, как будет время, попробую расписать цепочку, по которой происходит эта задержка, согласно справочным данным, и тогда посмотрим, насколько она согласуется с наблюдаемыми данными.

А пока я не придумал ничего, как просто инвертировать RAS. Порезал проводочек от 12-й ноги DD6 (ой, как же стрёмно так поступать) и вставил в разрыв "на соплях" один инвертор ЛН1.

Вкоряка-для-установки-RAS.jpg

И ОПА! У нас появились чёткие данные на шине памяти - она перестала быть в повисшем состоянии!

Смотрим, что у нас там

OSC_02.jpg

OSC_03.jpg

Вполне неплохо. Только я ошибся, указав, что задержка 40 наносекунд. Там же 200 наносекунд одно деление, поэтому правильно считать, что наносекунд там примерно 80. Но это как раз норма для этих микросхем, что в общем-то тоже неплохо.

Подключаем к телевизору

OSC_есть-изображение-на-старте.jpg

и наблюдаем уже что-то разумное. Это картинка отображает содержимое ОЗУ, которое получается при включении и пока процессор его ещё "не трогал". Ну т.е. "мусор".  Он стабилен, не бегает - это очень хорошо. Значит, данные как минимум читаются, само ОЗУ не битое. Ну а регенерация автоматическая.

По отпускании Reset видна какая-то разумная деятельность (установлена ПЗУ с тестом памяти), соответствующая ожидаемому

OSC_разумная-деятельнсть.jpg

Но всё-таки не до конца. Видно, что память записывается, очищается - так и должно быть, а в конце программы должен показаться такой вот экран
↓ спойлер ↓
[свернуть]
но у меня этого нету. В конце экран просто становится чёрным. Причина не ясна. По поведению шин, проц работает разумно, заканчивая свою работу в бесконечном цикле ничегонеделания (джамп сам на себя). По наблюдаемым эффектам вроде тоже.

Если присмотреться к предпоследней осциллограмме, то есть там момент, который меня смущает. А именно, строб записи в DD47, DD48.
Он формируется сигналом 57 (RAS) на элементе DD10.3... Но вот... а почему RAS? Ведь оперативка отдаёт правильные данные по CAS. Ведь здесь тайминги такие, что между установкой CAS и снятием RAS 100 наносекунд, а у нас согласно предыдущей осциллограмме данные "выползают" 80 (а может и все 90) наносекунд, а RAS уже "ушёл"... Непонятка. Но на схемах, что я вижу, это именно RAS.

Завтра попробую на DD10.3 заменить RAS на CAS и посмотрим, что будет. Мне ещё что-то подсказывает, что для строба одного DSYN более чем достаточно. Посмотрим... А пока баиньки :)
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

Slabovik

#4
Интересно получается. По разобранной мной схеме выходит, что задержка прихода сигнала сброса на DD5, DD6, который и фиксирует положение RAS относительно CAS для правильной работы должна составлять не более 100 нс, оптимально где-нибудь 80 (см. "быстрый" нарисованный график). По данным из справочников, выходит, что при типовых задержках в микросхемах, этот сигнал задержится на примерно 120 нс. А поскольку его инициатором служит спадающий фронт 42 (все эти счётчики работают по спадающему фронту), а RAS ставится по восходящему (из-за наличия инверсии на тактовом входе D0 микросхемы DD6) этого же сигнала, получается, для правильной работы импульс Reset должен придти при низком положении сигнала 42. А он приходит при высоком.

Причём выясняется, что у микросхем 155ИЕ5 и 1533ИЕ5, равно как и у их зарубежных аналогов, быстродействие одинаковое у разных серий, что вообще удивительно. Потому что я полагал, что серия 1533 быстрее и конфликт происходил на этой почве. Увы.

В качестве разминки составил сводную табличку учёта примерных задержек по пути счётных импульсов
↓ спойлер ↓
Задержки.png
[свернуть]

Чтобы было меньше 100 нс, микросхемы должны обладать гораздо более высоким быстродействием. Есть конечно вариант, что более медленные микросхемы также дадут правильную фазу RAS. Однако я сейчас не могу проверить 155-ю серию.

Тем не менее, проблема в том, что как ни считай, согласно имеющейся схемы Reset DD5 и DD6 всё-равно приходится на промежуток с высоким уровнем сигнала 42. Просто перестаю понимать, как эта штука должна работать. Тем не менее, не исключаю какой-либо косяк в самой плате, на которой это всё собрано, либо в отрисованной схеме. Вариант только один - искать  :)

==== зы ====

Пока никого нет, не буду делать новый пост, а добавлю сюда осциллограммы синхронизации узла формирования изображения. Т.е. память, регистры DD47, DD48 и собственно регистры сдвига DD51, DD52.

Перед снятием осциллограмм я отрезал 9-ю ногу D10.3 от RAS и подсоединил её к CAS. Интересно, что подсоединить оказалось её нужно буквально к соседней микросхеме, причём ножка абсолютно напротив, так что проводочек всего полсантиметра длиной. Осциллограммы трактую, как правильное решение. Правда, на телевизоре при этом никаких изменений нет - по результатам работы теста экран остаётся чёрным (а должны быть рисунки микросхем и в самом конце большие цветные квадраты).

Ладно, вот осциллограммы

Сопоставление RAS, CAS, запроса шины ЦП (DSYN) и ноги 11 промежуточных регистров DD47 DD48
OSC_04.jpg

Как ведёт себя информация на выходе регистров
OSC_05.jpg
OSC_06.jpg
В самом начале, когда Latch поднимается, на шине данных памяти ещё устаревшие данные. Это потому что CAS тоже только что стал активным. Через 80 нс информация актуализируется и, если прочитанный бит отличается от того, что только что был чуть ранее, становится видны такие "тычки". Это совершенно нормально - данные в регистры сдвига поступают синхронно с поднятием CAS - сигнал 96

OSC_07.jpg

В общем, мне видится, что в этом месте всё выглядит нормально с учётом того, что на DD10.3 RAS заменил на CAS.
Нужно ещё проверить мысль о том, что даже CAS здесь не нужен и можно подать инвертированный DSYN прямо с ноги 8 DD13.2 на ноги 11 регистров. Ведь задача регистров только хранить байт в течение одного цикла, когда к шине обращается процессор. В остальное время они могут быть прозрачны без необходимости защёлкивания в них.

=== зызызы ===
И ещё добавлю немного занятного от проца

Собственно, положение сигнала SYNC и DBIN прцессора. SYNC указывает на то, что в следующем цикле будет обращение проца к шине. Это состояние по восходящему фронт F2 (он же CAS), защёлкиваем триггером DD13.2, называем DSYN (или CPU) и используем как сигнал монополизации шины процом. Проц никого не ждёт, а остальные ориентируются на этот сигнал как на сигнал запрета обращения к шине.
OSC_08.jpg

и то же самое покрупнее
OSC_09.jpg
Процессор устроен так, что никогда не обращается к шине два цикла подряд - всегда пропускает либо один, либо два, а иногда и более циклов. Этим моментом и пользуется контроллер вывода изображения, чтобы в эти "дырки" получить доступ к памяти - ему хватает и даже ещё остаётся...

А это я захотел посмотреть, как выглядит сигнал WR.
OSC_10.jpg
Честно говоря, положение его так себе - он формируется только к концу цикла DSYNC и непосредственно для управления записью в память использоваться не может... скользкое место...
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

Slabovik

#5
Есть ощущение, что слегка пологие фронты сигналов, выходящих из ЦП следствие не очень крутых фронтов сигналов F1 и F2.
На деле работе это не должно мешать, но раньше на форумах я сталкивался с вопросами, а как повысить их крутизну.
Ка работает "родная" ГФ24 я показывал уже здесь (https://anklab.ru/forum/index.php?msg=616). В общем-то неплохо, длительность восходящего фронта 20-25 нс.

Снял осциллограммы с Ориона.
OSC_11.jpg

OSC_11_1.jpg

F1 и F2 формируются элементом с открытым коллектором на DD12 типа К155ЛА7 и резисторами R10, R11 по 390 Ом (а у меня 430 Ом)
Видно, что восходящие фронты заметно длиннее, я бы сказал, 30-40 нс.

С другой стороны нужно учесть, что осциллограммы ГФ24 были сняты на "чистых" её выводах, т.е. процессор туда не был подключен. Ну т.е. условия не одинаковые и об этом надо помнить, сравнивая осциллограммы.

Несомненно, хотелось бы фронты сделать покрасивее. Но как - это вопрос. Там же по ссылке я пробовал ставить ICL в качестве формирователя. Не прокатило. Сейчас же послушал одного совета и заменил резисторы на генераторы тока. При этом вполне логично предположил, что генераторы тока могут давать меньший ток, нежели резисторы. Смотрим, что из этого получилось

OSC_12.jpg

OSC_12_1.jpg

Ну что, факир был пьян и фокус не удался. Глядя на это безобразие в совокупности, можно сделать вывод, что входы тактирования F1 и F2 у процессора обладают немаленькой ёмкостью. Посему очень хочется попробовать вот такую вещь

Выходной-каскад-тактирования.png

т.е. банальный двукаскадный эмиттерный повторитель. Верхний транзистор вкупе с резистором в эквиваленте заменяет верхнее имеющееся сейчас сопротивление 390 Ом эквивалентным сопротивлением (4,7 кОм / h21 транзистора), что, при h21, например, всего лишь 60, даёт 4700/60 = 80 Ом. 80 Ом - это примерно в 5 раз меньше 390 Ом. Но надо пробовать. К сожалению, плата Ориона эту выкрутасу попробовать уже не даёт, надо значительно порезать проводники и просто нет места, чтобы втиснуть транзисторы. Поэтому оставлю идею на потом...

=== зы: продолжим колупаться на тему "почему нет нормального изображения".

Очередная осциллограмма - работа DD49, DD50 - это гейты между шиной данных памяти и системной шиной.

OSC_13.jpg

Проблем не видно. Переключаются, сигнал записи есть. При чтении из памяти OE также активируется (на этой осциллограмме попало чтение из ROM, при этом Direction переключается, но на системную шину подаются данные ROM, а не RAM, поэтому в эти моменты OE остаётся на высоком уровне)
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

Slabovik

#6
Если последить за сделанными осциллограммами, то возникает вопрос: а при поднятом CAS микросхемы памяти отключают свой выход, переводят его в третье состояние? Осциллограммы показывают, что на шине данных памяти при поднятии CAS состояние не меняется, от чего есть ощущение, что выходы поддерживаются активными. Нужно свериться с даташитом... Есть конечно вариант, что они такие потому, что присутствует заметная ёмкость шины даных, но это тоже можно проверить экспериментально.

Дело в том, что еслм выходы при поднятом CAS не в третьем состоянии, то есть конфликт в моменты записи данных в память - данные на шину памяти с системной шины поступают сразу - см. осциллограмму чуть выше.

Тем временем, есть желание проверить регистры выбора положения экрана в памяти. Это порт FAxx (так-то FA, но порты положены на память и ещё их дешифрация так себе). Это DD28. Cостоит из двух частей. Вначале в первую часть по стробу выбора порта записываются биты D0, D1, а затем по стробу от контроллера дисплея они, будучи инвертированными, переписываются в следующий регистр, откуда уже поступают на мультиплексоры адресной шины. Запись в порт 00 означает появление 11 на VA14, VA15, что соответствует начальному адресу экрана C000.

Собственно, сам строб записи (активный уровень высокий) и биты данных, поступающие в порт

OSC_14.jpg

А вот это то же самое, только на выходе первого регистра

OSC_15.jpg

И сразу же непонятка. Бит D0 записался и остался храниться на выходе порта (на осциллограмме он инвертирован т.к. порт имеет и прямой и инверсный выходы), А вот бит D1 не запомнился. Не это ли является причиной отсутствия изображения? Потому что тест что-то рисует в экране C000, а остальные просто стирает в процессе. Выяснить правильность догадки поможет только замена микросхемы...

===== зызызы =====
Ну что ж, замена DD28 произведена. Установил новую КР1533ТМ7 (ну да, новую - вышедшую с завода 14 лет назад, хотя по сравнению с той микросхемой 1982 года выпуска, она действительно новая  :) )

Финальный-коврик.jpg

Думаю, всё и так понятно ;)

Из нерешённых задач осталась задача исправления неправильного положения кадрового синхроимпульса. Проблема врождённая, выросшая из того, что у телевизоров того времени не было проблемы с регулировкой положения изображения на экране. Нынче стандарты соблюдаются жёстче и где-то 4 строки изображения "съедены" сверху. Нужно сделать, чтобы кадровый синхроимпульс приходил примерно на 8 строк раньше, чем он приходит сейчас...
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

Slabovik

Захотел посмотреть, что там по поводу "погашенных" строк, ширины синхроимпульса и т.д.

Ширина строчного синхроимпульса 32 пикселя. Гашение слева 12*8, справа 16*8. По стандартам вроде всё как доктор прописал.
Однако изображение выглядит чуть сдвинутым влево. Грубо говоря, слева у меня пустого места на экране 5 см, справа 6,5 см. Объяснить не могу. Но это потом.

Вот соотношение ССИ и КСИ - оно наиболе интересно в данный момент

OSC_16.jpg

Ширина КСИ 4 строки. Это вообще-то уже мало. Надо 5 или даже 6 для формата 6:9. Интересно конечно, но именно такой формат предполагает имеющееся разрешение экрана, хотя если быть точным, то 16:10. В этом случае абсолютно совпадает всё: пиксельная частота, длина строки в пикселях, количество строк и т.д. Как это могли угадать в середине 80-х - вопрос интересный :)

По-идее у нас должно быть 315 строк развёртки, при этом ширина "тёмных" строк должна быть 25+6+28 (гашение заднее + КСИ + гашение переднее).

Несколько позже попробую нарисовать диаграммы и посмотреть, а как оно там формируется...

зы: поставил ради интереса кварц на 12 МГц. Работает устойчиво, по косвенным признакам программы исполняются. На осциллографе нет визуальных проблем. Однако при подключении телевизора на последнем изображения нет. Ну да, развёртка получается 60 Гц и телевизор её не воспринимает (а может с таким количеством строк или ещё чего), не считает нужным обрабатывать. Даже немного обидно...
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

Slabovik

Не обходится без ошибок. Три вечера ушло на то, чтобы осознать, что цоколёвка ЛА и ЛЕ не совпадает по выводам. Вот ведь... Впрочем, это не страшно, так нарабатывается опыт :)

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

Изначально была идея просто сдвинуть синхроимпульс на 4 строки простой инверсией сигнала 52, приходящего на DD7.4
При этом реализовывалась схема 24-4-28 (см. картинку выше). Однако практика показала, что изображение хотя и сдвинулось вниз, но недостаточно - ещё буквально несколько строк сверху оказывались "за кадром".

В итоге, как ни крути, пришёл к тому же варианту (ух, я не очень любить такое), что был предложен на одном форуме (https://zx-pk.ru/threads/30107-smeshchenie-izobrazheniya-oriona-po-vertikali.html). Ввиду того, что изначальная схема весьма минималистична (за это безусловный респект её разработчикам), она нифига не гибка для изменений. Шаг в сторону и кранты...
В общем, пришлось навесом пристегнуть одну микросхему типа 155ЛА1 (лучше конечно 1533, но под руку попала 155). Суть изменений отобразил на своей схеме

Orion-Sync_scheme_corrected.png

Да, RAS так и пришлось инвертировать (см. историю выше), для инверсии использовал освободившийся DD7.4
"Навешенная" микросхема смотрится ужасно. Надо ещё придумать, куда её можно деть

Orion_Sync_навеска.jpg

С обратной стороны платы выглядит немножко культурнее

Orion-Sync_навеска-с-обратной-стороны.jpg

но вывод 13 DD10.4 не имеет подсоединённых проводников, поэтому подпаиваться пришлось прямо на ногу микросхемы.

Да, как и говорил ранее, DD10.3 я тоже отключил от схемы и теперь он свободен. На выводы 11 "Strobe" DD47, DD48 подал сигнал DSYNС напрямую с вывода 8 DD13.2

Orion-Sync_правка-DSYNC.jpg

Сейчас DD47, DD48 становятся с режим хранения только при активации сигнала DSYNC, всё остальное время оставаясь прозрачными. Как и ожидалось, на работе это никак не сказалось, а DD10.3 освободился. Ну, а вдруг понадобится где-нибудь ещё...

Да, если подать на вывод "8" разъёма SCART (именно так он у меня подключен к телевизору) напряжение выше 5 вольт, то для телевизора это служит сигналом, что изображение широкоформатное, т.е. 16:9. Я так и сделал. Получилось вот так

Финальный-коврик2.jpg

Если аккуратно измерить линеечкой, то выяснится, что соотношение сторон коврика действительно очень близко к 3:2 (384/256 = 3/2), что даёт нам практически квадратный пиксель, собственно, каким он и должен быть. Ибо неквадратность пикселя, воспринимаемая как данность в то прошедшее время, нынче весьма докучает.

Поля на этом фото я постарался оставить так, как их видно в реальности на телевизоре. Правда, по краям они чуть больше, чем на фото, но главное - изображение целиком на экране, сверху есть чёрное поле величиной вроде как две (а может три) строки), внизу поле заметно больше. Но это уже терпимо.

Правда, есть ещё один недостаток. Если внимательно присмотреться к двум чёрным лоскутикам коврика, что в самой верхней строке лоскутиков, то выяснится, что левый чёрный лоскутик какой-то не совсем чёрный, чем лоскутик в центре. Пока не могу ответить на вопрос, почему так. Отсутствие полной черноты хорошо видно в 4-цветном режиме.
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

Slabovik

Чуток ностальгии. Достал я с пыльных полок свой рабочий экземпляр, который собирал, начиная с 1992 года, запустил в 1993, поставил дисковод в 1994, и в дальнейшем чуток хотел улучшить, но... руки были ещё кривоваты, да и первая IBM-совместимая на 386SX-20 с целым мегабайтом памяти взяла своё...
Включил - работает! Засунул дискету - читает и пишет!

Великолепный стартовый экран графического редактора PENX версии 4.0
ORION_from_1993_p13.jpg

А это оболочка ORDOS для чтения-записи дискет в формате, совместимом с CP/M-80
ORION_from_1993_p14.jpg

К сожалению, ощутить удовольствие полностью не удалось - половина клавиш на клавиатуре не работают. В принципе, разобрать - почистить - смазать - собрать. Но, увы, не сегодня... Да и клавиатура - это то, что я в те годы так и не довёл до ума, хотя начинал несколько раз.

ORION_from_1993_p01.jpg

А это мордочка дисковода. Вначале был МС5311, но у него рассыпался двигатель и где-то в 97 или 98 я его заменил на вынутый из какой-то 286-й (ага, 286-е к этому времени уже пошли на свалку) TEAC. Прекрасный дисковод, кстати. Жаль, он у меня один такой...

ORION_from_1993_p02.jpg

Питается это хозяйство тоже от чего-то старого

ORION_from_1993_p03.jpg

ORION_from_1993_p04.jpg

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

ORION_from_1993_p05.jpg

Но это тоже не первый блок питания, а замена старому, который был на трансформаторе и линейных стабилизаторах. Грелся неслабой печкой и когда я был готов к установке дисковода стало абсолютно ясно, что так продолжаться не может.

Клавиатура же никак не оформлена и всю долгую жизнь этого компьютера болтается на проводах, намертво запаянных в плату. Ну потому что разъёмов я тоже никак не мог достать таких, да и сейчас не могу, вот ведь... Не, ну правда, дурацкие они...

ORION_from_1993_p07.jpg


Заднюю панельку пытался облагородить, сделал разъёмы под EGA, COM, LPT

ORION_from_1993_p06.jpg

но сами интерфейсы так и остались недоделанными.
Интересно, что в киевском компьютере Юниор (http://pk8000.narod.ru/junior/), магнитофонный интерфейс был выполнен на микросхеме КР580ВВ51, которая обеспечивала синхронный ввод-вывод манчестерским кодом, аналогичный коду, использованному как в Орионе, так и в Радио-86. Очень хотелось повторить, чтобы уйти от программной эмуляции. Были разобраны дампы Юнитора, которые касались этого и у меня даже получалось работать с ВВ51 самостоятельно. Но... мне не удалось в то время обзавестись самой ВВ51, чтобы поставить в Орион. Вот ведь досада какая...

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

ORION_from_1993_p08.jpg

Как раз видно макетку, на которой должны были быть ВВ51

А это "второй этаж": контроллер дисковода и расширение памяти до 256 кБ, чтобы запустить CP/M

ORION_from_1993_p09.jpg

Вообще, конструкция крайне неудобная. Я так понимаю, что авторы платы рассчитывали на так называемую "крейтовую" структуру. Это когда имеется одна большая кросс-плата, стоящая в корзине, в которую втыкаются "рабочие" платы, в том числе и сама плата компьютера. Но кросс-плат я ни у кого не встречал, и сам тоже не делал, а просто воткнул "второй этаж" как на фото, тем самым лишившись возможности воткнуть в этот разъём что-либо ещё.

Но контроллер дисковода легко снимается

ORION_from_1993_p10.jpg

Модуль памяти сделан на коленке. ЛУТ тогда был недоступен, максимум - это рисование нитрокраской через иголку от шприца. Иголка укорачивалась, обтачивалась, чтобы не царапала, прикреплялась к карандашу, в "хвостик" ей накапывалась краска и таким образом можно было рисовать. В принципе, дорожки шириной в миллиметр вполне получались.

ORION_from_1993_p11.jpg

Но опять же пакость от второго этажа в том, что первый становился недоступен. И толком разъёмы тоже не предусмотрены. Удалось вмудрить какой-то разрезанный разъём DIN (который брат-близнец СНП-58, но отличается шагом и формой контактов), а вот второй конец платы вынужденно висит на проводах. Но даже так вопрос доступа решается.

Выглядит ужасно, да?

Ничего, вот это ещё ужаснее. Это та самая недоделка с COM-портами. На плате виден дополнительный дешифратор адресов и катронка под две ВВ51. Как уже сказал, в то время ВВ51 мне обзавестись так и не удалось...

ORION_from_1993_p12.jpg

К чему это я? Просто в раздумье. Найденная плата завелась, но что с ней делать дальше? В принципе, имеющийся на сегодняшний день опыт, позволяет сделать всё, что угодно в смысле реинжиниринга конструкции. Но надо ли оно? Прикольно - да, факт!

зы: кстати, в плане согласования со SCART мне посоветовали использовать микросхему THS7316. К сожалению, прикупить в данный момент не представляется возможным, хотя идея мне понравилась - это хорошая альтернатива повторителям на транзисторах.

зызы: на фото с экраном чётко видно срезанную верхнюю строчку символов. Это потому что в этом старом компьютере нет (и никогда не было) доработки со сдвигом синхроимпульса. Надо бы вставить, наверное...
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.