Просмотр полной версии : "Океан-240": видеовыход
Картинка Для Привлечения Внимания: так выглядит "Турбо-Монитор" на студийном мониторе Sony PVM-14.
http://sensi.org/~tnt23/ok240/ok240_video_signal.png
78145
Ссылки для медитаций:
http://nauchebe.net/2014/05/formirovanie-televizionnyx-signalov-v-sxemax-na-mikrokontrollere/
HardWareMan
09.11.2018, 11:45
А так ли он студиен этот твой Сони ПВМ-14?
http://jpegshare.net/images/72/a0/72a046b8be2cce3816d34681dd14e9db.png
На этом же мониторе BBC Micro показывает шикарно.
HardWareMan
09.11.2018, 12:49
Ну, у меня 32ВТЦ шикарно показывает Денди и Спецтрум. Так что тоже не показатель. :)
В любом случае, в строке нет задней площадки.
Ну, у меня 32ВТЦ шикарно показывает Денди и Спецтрум. Так что тоже не показатель. :)
В любом случае, в строке нет задней площадки.
А как 32ВТЦ показывает "Океан"? :)
Про заднюю площадку вот мне тоже показалось странновато.
HardWareMan
09.11.2018, 15:49
tnt23, я могу узнать это если ты мне его подаришь!
tnt23, я могу узнать это если ты мне его подаришь!
Подставляй полу!
https://upload.wikimedia.org/wikipedia/commons/0/0a/The_Great_Wave_off_Kanagawa.jpg
Так-то, если резисторы R19-R21 выкрутить в ноль, картинка становится более-менее пристойная (режим 512x256 моно).
http://sensi.org/~tnt23/ok240/mono.jpg
78146
perestoronin
10.11.2018, 02:55
R19-R21 выкрутить в ноль
В схеме косяк, видеовыход нужно промоделировать и скорректировать и саму схему и номиналы деталей.
Если в лом, то можно позаимствовать подобные схемы из новых клонов БК-0011М и Спектрума Профи
Проверил схему на соответствие журнальной, полностью совпадают.
Проверил на собранной плате(старой), там все тоже соответствует схеме и номиналы стоят как в схеме.
Я планирую подключать EGA монитор, поэтому после ПЗУ пока не ставлю ничего.
Новую плату не допаял, жду детали, вот придут тогда и проверим выход на этот монитор.
Проверил на собранной плате(старой), там все тоже соответствует схеме и номиналы стоят как в схеме.
А старую плату к чему подключали?
perestoronin
10.11.2018, 14:15
Проверил схему на соответствие журнальной, полностью совпадают.
я про некорректную журнальную схему писал
ошибки в проектировании схемы Океана
предлагаю присмотреться к аналогичным узлам у Профи Спектрумовского и к БК-0011М. Последняя как раз тоже имеет ПЗУ палитр на видеовыходе. Можно подсмотреть как там согласование выходов РТ4 сделаны со входами транзисторными.
tnt23,
Юность Ц401 с переделанным входом.
А ч/б как обычно "колокольчик", но с раздельными видео и ССИ, КСИ.
Поразглядывал каскады формирования видео в БК-0011М, много думал.
66883
В принципе, если в наших двухтактных выходах выбросить нижнее плечо на КТ361, получится обычный эмиттерный повторитель.
Пока остановился на таком варианте модификации выходов R, G и B:
заменил перемычками резисторы R19-R21 (в оригинале 1К6)
резисторы R13-R15 заменил на 3К3 (в оригинале 5К1)
базы транзисторов посадил на землю через резисторы 510 Ом
Выходы ч/б VIDEO и синхросмеси не трогал. В ч/б VIDEO по-прежнему отсутствует задняя полка, с этим надо будет разобраться позже.
Картинка в целом на троечку, нужно приделать клавиатуру и наваять какую-нибудь испытательную таблицу в цветном режиме.
tnt23,
Мне внести эти изменения на плату, или еще подождать немного до окончательного варианта.
А может сделать так. Выбросить все эти формирователи с платы, а вывести сигналы на разьем.
На него (разьем ) добавить питание и весь огород(если он нужен) городить на доп плате.
Все сигналы вывести раздельно.(R, G, B, Vsyn, Hsyn, Video).
L Juriy, думаю, формирователи лучше на плате оставить. Все-таки реплика, более-менее точная и законченная. Чтобы подключать к ТВ без дополнительных плат.
Откопал стюардессу:
заменил перемычками резисторы R19-R21 (в оригинале 1К6)
Оказалось, что с такими номиналами совершенно не работает цвет фона. Новая вводная:
R19-R21 - 220R
perestoronin
20.11.2018, 00:54
совершенно не работает
Может в симулятор электронных схем участок схемы с РТ4 c палитрой, резисторами "ЦАП" и транзисторными каскадами согласования, эквивалентом входа монититора/телевизора попробуете загнать и замучить до победного, после чего рабочую теорию из симулятора на железке проверить и сообщить какие номиналы резисторов по факту нужны и возможно какие изменения в схеме требуются.
Может в симулятор электронных схем участок схемы с РТ4 c палитрой, резисторами "ЦАП" и транзисторными каскадами согласования, эквивалентом входа монититора/телевизора попробуете загнать и замучить до победного, после чего рабочую теорию из симулятора на железке проверить и сообщить какие номиналы резисторов по факту нужны и возможно какие изменения в схеме требуются.
Так я это уже проделал в первом приближении, разве что схему формирования полного ч/б ТВ сигнала не учитывал. В принципе все выглядело красиво, кроме выходного размаха напряжения:
http://sensi.org/~tnt23/ok240/video_sim.png
Более того, вчера я убил очередной вечер, играясь с номиналами, и в результате опять вернулся к штатному журнальному варианту. Только придавил уровни RGB после усилителей сильно.
PS В Тест-ПЗУ второй графический тест, который рисует монохромную шахматную доску, пошагово окрашивает ее темные шашечки в цвета фона
PPS То, что называется "монохромный режим", на самом деле не черно-белый, как я ошибочно полагал, а ОДНОцветный. Один цвет фона и один цвет переднего плана, то есть варианты "белые буквы на черном фоне", "голубые буквы на черном фоне", "черные буквы на синем фоне" и т.д.
PPPS а "Инв.зеленый" у меня отображается как "черные буквы на синем".
Вход видеосигнала черно-белого ТВ соединяется с выходом VIDEO кабелем, имеющим волновое сопротивление 50...150 Ом. Амплитуда сигнала составляет 3 В (двойной размах) (ее можно уменьшить, установив резистор 50...100 Ом между выходом VIDEO и общим проводом).
И все-таки что-то не так с формированием видео. Попробую сделать несколько слайдов.
Верхняя половина экрана - монохромный режим (мелкие кудряшки). Лаконичная палитра из двух цветов, варианты перебираются каждые 16 строк растра.
Нижняя половина экрана - цветной режим (бигуди покрупнее). Цветов на строчку растра уже заметно больше.
Возможность отслеживать обратный ход луча - бесценно.
http://sensi.org/~tnt23/ok240/retrace.png
78147
(А еще же ведь есть прерывания, и вообще маячит гигаскрин)
Возможность отслеживать обратный ход луча - бесценно.
попахивает коммодорщиной)
Да не только коммодорщиной, даже спектрумизмом где-то!
MacBuster
24.11.2018, 23:23
Возможность отслеживать обратный ход луча - бесценно.
Прямо вот так - именно момент начала обратного хода луча в каждой строке?
Прямо вот так - именно момент начала обратного хода луча в каждой строке?
Строчный и кадровый сигналы гашения заведены на линии 0 и 1 порта B с адресом 41h. Читая их, можно узнавать момент начала невидимой части строки и кадра с некоторой погрешностью. А если повезет, то и их окончания.
tnt23, У меня вопрос по РТ4.
У тебя которая стоит, журнальная или от Az mastera.?
В протеусе что то не нормально работают, или я где то накосячил.
L Juriy, у меня журнальная, см.приложение.
Прошивка от AZMaster на экране давала очень странную картинку, с пикселями в области бордюра и прочим мусором.
Все же в эмуляторе цвета перепутаны:
67923
У меня давно есть вопрос. Возможно он глупый и интересный только мне, но надеюсь, что на него просто ответить. На картинках (http://azmaster.narod.ru/Ocean-240/Magazine/MPSS_1986_4_75.jpg) параметры изображения соответствуют пиксельклоку 12.5/6.25 МГц. Но откуда берутся такие частоты? На схеме есть генератор на 12 МГц, в тексте и на других картинках параметры соответствуют частоте 12 МГц. На рисунках 4 и 5 ошибка или я проглядел источник частоты 12.5?
ivagor, 40.96мкс - это длительность вывода видимой части растра (собственно 32 байтов в строке видеоОЗУ, не учитывая всякие полки до и после и обратный ход). Так-то генератор там на 12МГц ровно (у нервных вроде меня 12.228МГц).
Раз уж ты неосторожно сюда забрел, давай тебя помучаем про бейсики для "Океана", а потом еще про однобитный звук?
Раз уж ты неосторожно сюда забрел, давай тебя помучаем про бейсики для "Океана", а потом еще про однобитный звук?
Все корабли легко плывут по морю-окиану, но «Сокол» – корабль Садко, не может сдвинуться с места. Напрасно Садко велит кидать в море сперва пшеницу, потом – бочки серебра и золота. Корабль не двигается с места, и Садко понимает, что Морской Царь требует человеческой жертвы.
Помучать меня про бейсики и звук можно, но все же я пока не понял насчет пиксельклока.
ivagor, 40.96мкс - это длительность вывода видимой части растра (собственно 32 байтов в строке видеоОЗУ, не учитывая всякие полки до и после и обратный ход). Так-то генератор там на 12МГц ровно (у нервных вроде меня 12.228МГц).
Попробую расписать подробнее, что именно я не понял.
картинка 4: 1.28 мкс - это 16 точек при пиксельклоке 12.5 МГц или 8 при 6.25 МГц
картинка 5: 40.96 мкс - это 512 точек при пиксельклоке 12.5 МГц или 256 при 6.25 МГц
Откуда взялись именно такие цифры? Скорее всего ошибка на картинках 4 и 5? На других картинках и в тексте цифры соответствуют частотам кратным 12 МГц. Разница все же не такая и маленькая. Например 512 точек при 12 МГц будет 42.67 мкс (как на векторе) - разница 1.71 мкс с картинкой 5.
Просто есть еще смежный вопрос, связанный с выборкой видеоданных из памяти и доступом процессора к памяти.
Пусть все пляшет от 12 МГц. Fcpu=12/5=2.4 МГц. Tcpu=416.67 нс. Fpix512=12 МГц. Tpix512=83.33 нс. Tpix512*512/Tcpu=102.4 такта, т.е. нацело не делится. Доступ проца и видеоконтроллера к озу асинхронный (судя по диаграммам вроде нет)?
Все корабли легко плывут по морю-окиану, но «Сокол» – корабль Садко, не может сдвинуться с места. Напрасно Садко велит кидать в море сперва пшеницу, потом – бочки серебра и золота. Корабль не двигается с места, и Садко понимает, что Морской Царь требует человеческой жертвы.
У далеких немских стран
Есть, ребята, окиян.
По тому ли окияну
Ездят только басурманы;
С православной же земли
Не бывали николи
Ни дворяне, ни миряне
На поганом окияне.
От гостей же слух идет,
Что девица там живет;
Но девица не простая,
Дочь, вишь, месяцу родная,
Да и солнышко ей брат.
Та девица, говорят,
Ездит в красном полушубке,
В золотой, ребята, шлюпке
И серебряным веслом
Самолично правит в нем;
Разны песни попевает
И на гусельцах играет...
- - - Добавлено - - -
Помучать меня про бейсики и звук можно, но все же я пока не понял насчет пиксельклока.
Попробую расписать подробнее, что именно я не понял.
картинка 4: 1.28 мкс - это 16 точек при пиксельклоке 12.5 МГц или 8 при 6.25 МГц
картинка 5: 40.96 мкс - это 512 точек при пиксельклоке 12.5 МГц или 256 при 6.25 МГц
Откуда взялись именно такие цифры? Скорее всего ошибка на картинках 4 и 5? На других картинках и в тексте цифры соответствуют частотам кратным 12 МГц. Разница все же не такая и маленькая. Например 512 точек при 12 МГц будет 42.67 мкс (как на векторе) - разница 1.71 мкс с картинкой 5.
Просто есть еще смежный вопрос, связанный с выборкой видеоданных из памяти и доступом процессора к памяти.
Пусть все пляшет от 12 МГц. Fcpu=12/5=2.4 МГц. Tcpu=416.67 нс. Fpix512=12 МГц. Tpix512=83.33 нс. Tpix512*512/Tcpu=102.4 такта, т.е. нацело не делится. Доступ проца и видеоконтроллера к озу асинхронный (судя по диаграммам вроде нет)?
Я склонен думать, что ошибка на картинках. При пиксельклоке 6.5МГц тактовая должна была бы быть 13.0МГц. Не знаю, существовали ли в природе СССР доступные кварцевые резонаторы на такие частоты (хотя 6.5МГц похожа на ПЧ звука в советском же телевидении (поправьте меня) и можно было раздуть кварц на гармонике? во я гоню). Возможно также, что цифры на картинках взяты из расчетных данных, где для простоты могли оперировать кратными степеням двойки частотами.
Про асинхронный доступ не скажу, но вроде они доступаются к видеопамяти по очереди. Там еще странно написано в статье, что видеопроцессор притормаживается при конфликте доступа с процессором, но я это плохо понимаю.
Наконец то считал свою РТ4. Она полностью совпала с журнальной.
Я грешил что она сдохла, но оказывается ошибался.
Тест запускал и тишина. Подозреваю ВВ55 , на ней все время висячие выводы, а их не должно быть.
Пока отложил, другими делами занимаюсь.
Не, 6.5 там не фигурирует, 6.25 (12.5/2).
У меня есть дикое предположение, надеюсь неправильное, что некоторые точки при выводе пропускаются. Тогда все получается легко и просто.
Если выборка видеоданных 2 байта за 3 такта процессора, то
1) Tсpu*3=1.25 мкс
2) 1.25 мкс/Tpix512=15 точек. Т.е. при такой прикидке в режиме 512 точек не успеваем показать 1 точку из 16. В режиме 256 покажем 7 с половиной точек.
L Juriy, у меня тест в самом начале не шел дальше, так как была неисправна ВВ55, на которую заведен обратный ход луча. В ожидании этого самого луча тест не двинется дальше темного экрана.
- - - Добавлено - - -
У меня есть дикое предположение, надеюсь неправильное, что некоторые точки при выводе пропускаются. Тогда все получается легко и просто.
Если выборка видеоданных 2 байта за 3 такта процессора, то
1) Tсpu*3=1.25 мкс
2) 1.25 мкс/Tpix512=15 точек. Т.е. при такой прикидке в режиме 512 точек не успеваем показать 1 точку из 16. В режиме 256 покажем 7 с половиной точек.
Это очень смелая гипотеза. Пропущенные при выводе точки быстро бы себя обнаружили на границах байт. (В цветном режиме, действительно, какая-то паразитная полоска в конце видимой части строки видна, но это может быть что угодно).
А откуда взялась длительность такта процессора, равная 0.5мкс?
Это очень смелая гипотеза. Пропущенные при выводе точки быстро бы себя обнаружили на границах байт. (В цветном режиме, действительно, какая-то паразитная полоска в конце видимой части строки видна, но это может быть что угодно).
А откуда взялась длительность такта процессора, равная 0.5мкс?
Такт процессора Tcpu=1/2.4e6=416.67 нс
Есть идея, как можно сочетать целые такты процессора и кратность 8 точкам - надо чередовать циклы выборки разной длительности.
Например чередование циклов
1) 6 тактов процессора (за которые нужно выбрать 4 байта видеоинформации)
и
2) 10 тактов процессора (за которые нужно выбрать 6 байт видеоинформации)
Tcpu*16/Tpix=80 точек, т.е. за 16 тактов процессора мы покажем ровно 80 точек 512 (или 40 точек 256)
512 точек при этом ровно на такты процессора не разобьем, но это и не обязательно, только надо иметь отдельный способ узнать, где у нас можно начинать показывать точки и где надо заканчивать их показывать с разрешением не хуже Tpix512*2=166.67 нс. Такую инфу можно хранить, например, в пзу.
Я только не пойму, зачем такие сложности с процессором. В моем представлении видеопроцессор - обычно довольно тупая схема с кучей счетчиков, формирующая ворох клоков для разверток, регистров-мультиплексоров и проч. И вывод на экран обычно тупой и незатейливый, читаем видео-ОЗУ подряд и подряд (16 бит за раз, между прочим), а в перерывах давая CPU доступиться к памяти.
На схеме есть блок, обозначенный как "Узел синхронизации", но я ни из журнальной статьи, ни бдением над картинкой узла, так и не понял, как он работает. (Хочется верить, что чуть притормаживается процессор при одновременном доступе к видеопамяти).
- - - Добавлено - - -
Такую инфу можно хранить, например, в пзу
Такое ПЗУ там как раз есть, это РТ4 с пиксельклоком/2 и сигналами цвета и разверток на входах.
Сложность в том, что если у нас доступ процессора и видеоконтроллера к озу не асинхронный и частоты кратные, тогда надо как-то сгруппировать целое число тактов в циклы. Можно не париться с группировкой в сравнительно малотактные циклы, если читать видеоинформацию на строку раньше в какое-нибудь промежуточное озу маленькой емкости, но вроде в океане это не так.
Единственное место, куда данные из видео-ОЗУ читаются видеоконтроллером, это составной сдвиговый регистр в 16 бит на основе ИР16. Он тактируется клоком 6МГц, а значения в него записываются по сигналу V, который где-то формируется чуть загодя (пока не нашел) получается делением 12МГц на 16 (выход >=15 ИЕ7) и вполне может чуть задержаться в исключительном случае.
Почитал, посмотрел и кажется понял.
Можно визуализировать примерно так:
VvvvvvvvvvvvvvvvVvvvvvvvvvvvvvvvVvvvvvvvvvvvvvvvVv vvvvvvvvvvvvvvVvvvvvvvvvvvvvvv
PppppPppppPppppPppppPppppPppppPppppPppppPppppPpppp PppppPppppPppppPppppPppppPpppp
!!!!!++++++++++!!!!!++++++++++!!!!!++++++++++!!!!! ++++++++++!!!!!+++++++++++++++
Строка v - это точки видеопроцессора (режим 512). V - условное место запроса на выборку из озу (каждые 16 точек режима 512).
Строка p - такты процессора. P - выделил начало такта.
Нижняя строка показывает, где запросы на доступ попадают на такты процессора (!). Видеоконтроллер читает параллельно из двух линеек озу, поэтому на каждый V достаточно одного чтения из одной линейки. Получается видеоконтроллеру нужно читать примерно 1 раз в 3 такта процессора (и 1 раз в 4 такта процессора) в рамках этого макроцикла (16 тактов процессора или 80 точек 512). Как я понял из статьи, если процессор обращается к памяти, видеоконтроллер ждет, но это не проблема т.к. в рамках микроцикла (3 или 4 такта процессора) окно доступа для него останется, процессору же память чаще одного раза в 3 такта не нужна.
- - - Добавлено - - -
Т.е. доступ проца к памяти в океане прозрачный.
У меня интуитивное ощущение прозрачности доступа процессора тоже было, навеянное статьей и слегка подкрепленное результатами простого цикла вывода единичек-ноликов в порт спикера для формирования стабильных как скала 50КГц.
tnt23, спасибо за обсуждение! Мне было интересно сравнить с вектором, где ту же проблему (сочетание пиксельклока 6/12 МГц и быстрой работы процессора) решили задиранием частоты процессора. В океане более цивильно, без оверклока проца, зато сложнее, т.е. дороже.
ivagor, взаимное спасибо! я от силы треть твоих рассуждений смог одолеть, но неизменно поражен обстоятельностью подхода. Чтобы подвести наукоподобный итог теме, могу попытаться снять осциллограммы ключевых сигналов.
А про бейсики пройдем в соседнюю тему?
А про бейсики пройдем в соседнюю тему?
Я готов, главное не возлагать на меня особых надежд :)
ivagor, пройдемте! https://zx-pk.ru/threads/30047-mnogoobrazie-okeanskikh-bejsikov.html
А я все не уймусь. Есть еще вопрос. Сколько тактов процессора в строке? Если брать 64 мкс, то это 768 точек режима 512, а целого числа тактов процессора не получается. Можно предположить, что их 152, а в точках, соответственно 760, тогда длительность строки 63.33 мкс. Есть еще неприятный вариант, что точек все же 768 (64 мкс), но тогда в строке нецелое число тактов процессора (153.6). При этом будет период 5 строк для повторов "паттерна смещений" тактов процессора относительно изображения.
- - - Добавлено - - -
Еще бы уточнить, сколько строк в кадре - 312?
картинка 4: 1.28 мкс - это 16 точек при пиксельклоке 12.5 МГц или 8 при 6.25 МГц
Видеопроцессор заносит данные о точках в выходной сдвиговый регистр с частотой 12.0МГц/16=750КГц. Это дает 1.3(3)мкс на 16 точек в режиме 512.
- - - Добавлено - - -
Еще бы уточнить, сколько строк в кадре - 312?
Это разве что измерить период следования кадровых гасящих с поправкой на мой кварц 12.288.
Видеопроцессор заносит данные о точках в выходной сдвиговый регистр с частотой 12.0МГц/16=750КГц. Это дает 1.3(3)мкс на 16 точек в режиме 512.
После того, как ты написал
Так-то генератор там на 12МГц ровно
я уже исходил из этого
Fpix512=12 МГц. Tpix512=83.33 нс.
И все цифры и прикидки дальше ориентированы на это.
Это разве что измерить период следования кадровых гасящих с поправкой на мой кварц 12.288.
Или написать программку, которая, например, будет менять палитру с периодом равным предполагаемой длительности строки. Если при этом граница цветов будет горизонтальная - длительность строки правильная. Если диагональная - неправильная. А если привязаться к развертке (по прерыванию вроде можно на океане?), то картинка будет неподвижная.
- - - Добавлено - - -
если привязаться к развертке (по прерыванию вроде можно на океане?)
Что-то я засомневался насчет океанского прерывания для данной задачи
Или написать программку, которая, например, будет менять палитру с периодом равным предполагаемой длительности строки. Если при этом граница цветов будет горизонтальная - длительность строки правильная. Если диагональная - неправильная. А если привязаться к развертке (по прерыванию вроде можно на океане?), то картинка будет неподвижная.
Такое я пробовал (давно и бессистемно). Получал цветные полоски с диагональной границей цветов.
Прерываний напрямую от луча нет, есть только прерывание от программируемого таймера. Я просто в цикле ждал обратного хода луча по строке, читая соответствующий бит ВВ55, и менял палитру. Все же инструментальный способ надежнее :)
Все же в эмуляторе цвета перепутаны:
Это ещё вопрос, у кого перепутаны. Я делал по таблице из журнала МПСиС 86-4 стр. 76 (http://azmaster.narod.ru/Ocean-240/Magazine/MPSS_1986_4_76.jpg). Как минимум, сразу бросается в глаза порядок цветов в монохромном/одноцветном режиме, по журналу: белый, красный, зелёный, синий, голубой, желтый, инв.зелёный, чёрный.
Цвет фона я перепутал, согласен, но если он чёрный, то он чёрный в любом случае.
Это ещё вопрос, у кого перепутаны. Я делал по таблице из журнала МПСиС 86-4 стр. 76 (http://azmaster.narod.ru/Ocean-240/Magazine/MPSS_1986_4_76.jpg). Как минимум, сразу бросается в глаза порядок цветов в монохромном/одноцветном режиме, по журналу: белый, красный, зелёный, синий, голубой, желтый, инв.зелёный, чёрный.
Цвет фона я перепутал, согласен, но если он чёрный, то он чёрный в любом случае.
На приведенном снимке один и тот же код, выполняемый на железке (клоне) и на эмуляторе в цветном режиме. На эмуляторе имеем цвета: черный (биты 00), красный (01), малиновый (10), белый (11). На железке: черный (00), красный (01), синий (10), голубой (11).
Можно было бы предположить, что в железе тоже перепутаны цвета, однако картинка OKEAH.240 выводится достоверно, с синим морем и красным флажком на трубе корабля.
картинка OKEAH.240 выводится достоверно, с синим морем и красным флажком на трубе корабля.
Как или где можно увидеть эту картинку?
Как или где можно увидеть эту картинку?
Здесь есть ссылка на видео - https://zx-pk.ru/threads/14176-kompyuter-quot-okean-240-quot.html?p=989926&viewfull=1#post989926
Как-то так:
67942
Насчет рисунка корабля - он сам палитру не задает, какая палитра будет на момент его запуска, та и повлияет на результирующие цвета.
Насколько помню, корабль на реале я запускал с палитрой по умолчанию. (Хотя вот сказал и засомневался; оригинальные цвета Монитора 240.2 были довольно вырвиглазные, и я точно что-то патчил в нем).
Anyway, вот картинка из эмулятора:
67943
Насчет заливки корабля - крупноблочная выполняется прямоугольниками (Esc '1'), поэтому так быстро. Как конкретно дозаливаются оставшиеся уголки я не смотрел, но кроме линий и прямоугольников (и инверсных точек) других примитивов нет, т.ч. выбор невелик.
я точно что-то патчил в нем
Интересно, какое число у тебя в порт 0E1h выводится?
- - - Добавлено - - -
Anyway, на твоей картинке цвета в другом порядке, хотя я полагаю там в порт 0E1h числа подряд выводятся.
http://sensi.org/~tnt23/ok240/retrace.png
Смотрю на картинку и в журнал (палитра 3) и то ли авторы не знали, что такое малиновый цвет или потом в прошивке РТ4 поменяли на синий (или голубой).
На приведенном снимке один и тот же код, выполняемый на железке (клоне) и на эмуляторе в цветном режиме.
Многое зависит от того, что у тебя в РТ-шке записано. Я же делал в соответствии с таблицей из журнала, хотя и там могли накосячить.
Интересно, какое число у тебя в порт 0E1h выводится?
- - - Добавлено - - -
Anyway, на твоей картинке цвета в другом порядке, хотя я полагаю там в порт 0E1h числа подряд выводятся.
На картинке с бигудями точно не вспомню, исходника не сохранилось. Вроде там в порт 0E1h писались числа типа 41h, 42h и так далее.
- - - Добавлено - - -
Многое зависит от того, что у тебя в РТ-шке записано. Я же делал в соответствии с таблицей из журнала, хотя и там могли накосячить.
У меня в РТ4 прошит журнальный вариант. Коллега L Jury вычитал свою РТ4 и подтверждает идентичность журнальной прошивке.
В журнале только один цвет описан как инверсный - зелёный, а у тебя на картинке он синий. И вода, скорее всего, не синяя должна быть, а бирюзовая, т.е. синий+зелёный.
В журнале только один цвет описан как инверсный - зелёный, а у тебя на картинке он синий. И вода, скорее всего, не синяя должна быть, а бирюзовая, т.е. синий+зелёный.
Вот что такое "инв.зеленый", я ваще не понимаю, кроме того, что он относится к монохромному режиму 512 точек. Не исключено, что у меня перепутаны местами выходы RGB на разъеме видео.
Не исключено, что у меня перепутаны местами выходы RGB на разъеме видео.
Вот я об этом постоянно думаю :)
- - - Добавлено - - -
А инверсный зелёный - это такая фича, там 0 - это зелёный, а 1 - цвет фона.
- - - Добавлено - - -
Там с РТ-шки один выход идёт, означающий, будет ли добавлен цвет фона. Интересно, есть ли такие варианты, когда и цвет фона выдаётся и цвет пикселей не чёрный?
- - - Добавлено - - -
На картинке с бигудями точно не вспомню, исходника не сохранилось.
Жаль. Я делал нечто аналогичное для Вектора, чтобы все цвета всех палитр отображать. Хотелось бы такое и для Океана иметь...
Сообщение от tnt23
Не исключено, что у меня перепутаны местами выходы RGB на разъеме видео.
Вот я об этом постоянно думаю
Перепаять пару проводков нетрудно. Но на эмуляторе-то море малиновое :)
А инверсный зелёный - это такая фича, там 0 - это зелёный, а 1 - цвет фона.
Понятно. Зеленый фон в цветном режиме я наблюдал, а вот синий - только в моно.
Там с РТ-шки один выход идёт, означающий, будет ли добавлен цвет фона. Интересно, есть ли такие варианты, когда и цвет фона выдаётся и цвет пикселей не чёрный?
Надо покурить прошивку РТ. Кстати, прошивка с сайта AZMaster сильно отличается. Попробуй ее с эмулятором?
Испытательную таблицу для Океана я накодю (накожу).
Смотрю на картинку и в журнал (палитра 3) и то ли авторы не знали, что такое малиновый цвет или потом в прошивке РТ4 поменяли на синий (или голубой).
Вот кстати да, белый цвет с кодом не 00 есть только в палитре 3, т.е. у tnt23 выбрана та-же палитра. Выходит содержимое РТ4 всё же не соответствует описанию в журнале?
- - - Добавлено - - -
Попробуй ее с эмулятором?
Это надо сильно менять формирование видеовывода, у меня пока цвета жёстко зашиты в коде эмуляции видео Океана.
Товарищи, господа, вместо долгих прений можно было просто посмотреть прошивку РТ4 и увидеть, что авторы считают, что малиновый - это синий с красным (A по адресам DC и DD).
- - - Добавлено - - -
Прошивку RT4_VC_MPSS.ZIP я с журналом сравнил (хотя до меня ее уже сравнивали) - совпадает.
- - - Добавлено - - -
Т.е. у b2ma соответствует журналу, а вот какая РТ4 была на компе, за которым рисовали кораблик - это вопрос.
Может я чего не понимаю, но А это будут еденицы на шинах 12,14, идут через резисторы на 15,17 и далее подписано R,G. А если видеовыход инверсный, то это и будет синий. А белый там случайно не ноль?
- - - Добавлено - - -
Да нет, Е стоит, т.е. не инверсный.
Может я чего не понимаю, но А это будут еденицы на шинах 12,14, идут через резисторы на 15,17 и далее подписано R,G. А если видеовыход инверсный, то это и будет синий. А белый там случайно не ноль?
Но тогда бы все другие цвета не соответствовали. Белый - E.
Для ориентира
палитра 0 (C0-C7): 1 1 - черный/фон(как я понимаю) 2 2 - красный 4 4 - зеленый 8 8 - синий
палитра 1 (С8-СF): E E - белый 2 2 - красный 4 4 - зеленый 8 8 - синий
палитра 2 (D0-D7): 2 2 - красный 4 4 - зеленый C C - голубой 6 6 - желтый
палитра 3 (D8-DF): 1 1 - черный/фон 2 2 - красный A A - малиновый, так малиновый E E - белый
и т.д.
Всё было бы так, если бы слева от транзисторов было написано (сверху вниз) 15,16,17, но там почему-то 17,15,16.
Совсем забыл. В "Прекрасном ассемблере" есть рыба для "Океана" (https://zx-pk.ru/threads/29780-programmirovanie-na-assemblere.html?p=988115&viewfull=1#post988115): ждет ввода с клавиатуры, полученный код маскирует по 7fh и засылает в порт цвета. Запускать с 8000h.
Вот такая картинка получается с 40h в порту цвета:
40h
67950
41h
67951
42h
67952
43h
67953
Всё было бы так, если бы слева от транзисторов было написано (сверху вниз) 15,16,17, но там почему-то 17,15,16.
Можно попробовать прикинуть и из такого расклада
палитра 0 (C0-C7): 1 1 - черный/фон 2 2 - зеленый 4 4 - синий 8 8 - красный
палитра 1 (С8-СF): E E - белый 2 2 - зеленый 4 4 - синий 8 8 - красный
палитра 2 (D0-D7): 2 2 - зеленый 4 4 - синий C C - малиновый 6 6 - голубой
палитра 3 (D8-DF): 1 1 - черный/фон 2 2 - зеленый A A - желтый E E - белый
...
Тоже как-то не очень. Считать интерпретацию с инверсией желания нет, т.к. будет совсем интересно.
Может схема на сайте azmastera не вполне соответствует журнальной? Или она тоже из журнала? Тогда непонятно, почему его прошивка такая своеобразная.
Может схема на сайте azmastera не вполне соответствует журнальной? Или она тоже из журнала? Тогда непонятно, почему его прошивка такая своеобразная.
Его прошивка РТ4 вызывала у меня сомнения, когда я только начал настраивать свой экземпляр. Она точно не журнальная, и с ней наблюдались артефакты изображения на бордюре, чего в Океане быть не может (к сожалению).
Может схема на сайте azmastera не вполне соответствует журнальной? Или она тоже из журнала?
Увидел, схема из журнала.
Такс. На реале в моно-режиме (ESC 80) имеем белый цвет на чёрном фоне, что соответствует журналу. А вот дальше последовательность цветов: зеленый, синий, красный, малиновый, голубой, инверсный синий (!), черный.
Такс. На реале в моно-режиме (ESC 80) имеем белый цвет на чёрном фоне, что соответствует журналу. А вот дальше последовательность цветов: зеленый, синий, красный, малиновый, голубой, инверсный синий (!), черный.
На 100% соответствует прошивке, если учесть порядок нумерации выводов, на который обратил внимание b2m. Но тогда и цвета в 4х цветном должны совпадать с этими (https://zx-pk.ru/threads/29725-quot-okean-240-quot-videovykhod.html?p=997606&viewfull=1#post997606). И тогда сильное несоответствие с таблицей 2.
Я перепаял выходной кабель так, чтобы в монохромном режиме последовательность цветов соответствовала журнальной (особенно "инв. зелёный"). И все стало замечательно, и цвета у Тетриса такие же, как в эмуляторе (только палитру надо выбрать правильно).
Попозже попробую кораблик.
Вопрос сводится к тому - где ошибка, в таблице или в схеме. Критерии выбора тут определять владельцам реалов и автору эмулятора.
Можно привлечь всякие дополнительные соображения, например красный фон в палитре 2 при старте конфига с fdd вызывает вопрос, зеленый наверно менее неприятный. С другой стороны, белый кораблик и синее море получить меняя распайку все равно не получится.
- - - Добавлено - - -
С другой стороны, белый кораблик и синее море получить меняя распайку все равно не получится.
Правда можно получить белый корабль и голубое море.
Правда можно получить белый корабль и голубое море.
Как? Палитры с сочетанием белого и голубого нет вроде.
Как? Палитры с сочетанием белого и голубого нет вроде.
Вот это-то и смущает.
Критерии выбора тут определять владельцам реалов и автору эмулятора.
Не, я сдаюсь. Я когда сделал эмуляцию Океана, меня цвета тоже напрягали, но софта особо не было (а тем более работающего реала), и я решил подождать. Сейчас есть реал, но всё равно не понятно. Так что буду ждать.
Насчет белого корабля и голубого моря. Фиксируем прошивку, меняем распайку. Черный фон и белый корабль будут только с палитрой 3, остаются еще 2 цвета и 2 варианта распайки (не соответствующих ни таблице ни схеме), дающих голубое море. Отличаться они будут цветом полоски на трубе и букв - зеленые или синие.
Если вдруг кого-то интересовало (меня интересовало), какая палитра здесь (https://youtu.be/M6C2gXHD-to?t=12), то это палитра 5 при распайке соответствующей схеме. Там черный фон, красная полоска и буквы, синее море и голубой корабль. Из за серьезных засветов в некоторые моменты видео можно принять голубой за белый, но при журнальной прошивке это невозможно.
Размышления вслух. Теоретически можно посадить сверху вторую РТ4 и переключать их каким-нибудь битиком. Одна прошивка будет давать соответствие таблице 2 и эмулятору, а вторая - нумерации выводов на схеме.
А тогда чему соответствует прошивка AZmaster?
Какой схеме и распайке разьема?
Ведь для чего она была сделана.
Прошивка AZmastera явно требует другой распайки входных (адресных) сигналов РТ4. 6 МГц нужно подать на A3 вместо A0, номер палитры на A4-A6 вместо A3-A5, переключение режима на A7 вместо A6, сигнал с DD10.4 на A0 вместо A7. При таких изменениях должна пойти адекватная картинка с его прошивкой, но это еще не все, палитру он тоже поменял. Причем некоторые изменения можно понять, например во всех (кроме черной 7й) 4х цветных палитрах 0й цвет стал цветом фона - имхо это вполне логично и рационально, т.к. я не могу понять зачем авторы океана решили потерять возможность произвольно менять один из цветов в части палитр. А вот то, что 3й цвет в 6 из 8 4х цветных палитр стал белым - это спорное решение.
С 2х цветными режимами тоже интересно, во всех, кроме 7й черной цвет фона стал цветом фона, "инверсного зеленого" нет. Но добавилась своя фишка - в трех палитрах цветной бордюр.
- - - Добавлено - - -
А если поставить его прошивку не меняя соответствие адресных входов РТ4, то будут цветные точки на бордюре, возможно срывы синхронизации, в режиме высокого разрешения точки через одну, а в режиме низкого - по пол-точки. Режимы и палитры будут переключаться не так, как ожидается.
Надо будет сделать экспериментальную прошивку на основе "журнальной", разрешив произвольные цвета фона. Но это, конечно, будет уже не труъ.
зачем авторы океана решили потерять возможность произвольно менять один из цветов в части палитр
Возможно, они ориентировались на черно-белый (с градациями яркости) дисплей как наиболее доступный рабочий вариант того времени.
Насчет ч/б я не понял, возможность выбирать градации ярксти тоже хорошая. Я вижу простую вещь, что они фиксировали в некоторых палитрах цвет фона, хотя вместо этого могли дать возможность его выбирать произвольно, в т.ч. тот который фиксировали?! Если бы они при этом сделали другой цвет выбираемым (как в случае с "инверсным зеленым") - тогда еще понятно. Возможно я что-то упускаю.
- - - Добавлено - - -
Единственная фишка, которую смог придумать и которая теоретически могла быть реализована с неизменяемым цветом фона в некоторых палитрах - использование битов фона для каких-то других целей. Т.е. включаем палитру с фиксированным фоном, меняем для каких-то левых надобностией биты цвета фона (например соединили с ними еще один канал магнитофонно-звукового цапа и получили стерео-цап) а на экране при этом все спокойно.
А не может быть, что это осадок итеративного процесса разработки? Сначала сделали чб, потом придумали как прикрутить палитру, но не обязательно самый удобный для разработчиков способ совпал с нашими представлениями о комфорте. В какой-то момент решили, что переделывать софт некогда, лучше публикация.
Единственная фишка, которую смог придумать и которая теоретически могла быть реализована с неизменяемым цветом фона в некоторых палитрах - использование битов фона для каких-то других целей. Т.е. включаем палитру с фиксированным фоном, меняем для каких-то левых надобностией биты цвета фона (например соединили с ними еще один канал магнитофонно-звукового цапа и получили стерео-цап) а на экране при этом все спокойно.
Genlock!
- - - Добавлено - - -
А не может быть, что это осадок итеративного процесса разработки? Сначала сделали чб, потом придумали как прикрутить палитру, но не обязательно самый удобный для разработчиков способ совпал с нашими представлениями о комфорте. В какой-то момент решили, что переделывать софт некогда, лучше публикация.
Вот если бы добраться до Трушкина (vladtru), который последним общался с Д.А.Тилининым, может, у него какие-то материалы остались или контакты других разработчиков из той же группы.
Вот если бы добраться до Трушкина (vladtru), который последним общался с Д.А.Тилининым, может, у него какие-то материалы остались или контакты других разработчиков из той же группы.
Он на ютубе вроде активно обитает, что мешает ему написать? Только зачем. Сейчас-то уж точно есть что есть, а все это вечное кто виноват? к чему тут.
Он на ютубе вроде активно обитает, что мешает ему написать? Только зачем. Сейчас-то уж точно есть что есть, а все это вечное кто виноват? к чему тут.
Ну я писал, а фигли толку (с)
И не "кто виноват" было движителем моей мысли, а "что еще можно узнать".
Ну я писал, а фигли толку (с)
Из собственного опыта реакции на ютубные подергивания: может быть есть смысл написать еще разок. Она иногда странным образом сглатывает уведомления и не всегда очевидно, где их потом искать.
Daniil Chislov 86
09.02.2019, 00:01
svofski, а можно ссылочку на его канал ?)
Daniil Chislov 86, конечно: https://www.youtube.com/channel/UCxL5_4cP-CMFeo4NDoX9cEQ
Daniil Chislov 86
10.02.2019, 12:22
svofski, сколько плейлистов ,ухх :)
Палитры:
http://sensi.org/~tnt23/ok240/palettes.jpg
78148
По идее еще должны быть видны вариации цвета фона (когда цвет точки задается двумя нулями, выводится цвет из регистра фона), но у меня видеовыход замучан так, что цвета фона от черного не различает.
А сколько строк на каждую палитру, примерно 13?
Около 13, да.
Делитель для системного таймера 0x500, что при клоке 1.5МГц даёт прерывание с частотой 1171.875 Гц, или каждые 13,3(33) строки.
Получается у океана 320 строк в кадре.
- - - Добавлено - - -
Интересно, если делитель 96, то прерывания должны быть каждую строку. Только надо еще как-то по горизонтали попасть.
- - - Добавлено - - -
На реале можно попробовать отталкиваться от бита в порту 41h, а в эмуляторе никак.
Получается у океана 320 строк в кадре.
В видимой области (внутри черного бордюра) их точно 256. А вот сколько в кадре всего - я делю 15625 на 50 и получаю 312.5. Магическое число, знакомое по УКНЦ.
- - - Добавлено - - -
Только надо еще как-то по горизонтали попасть.
Как на Векторе (?), видимо: подождать луча и быстро запрограммить таймер. Будем иметь некоторое одинаковое запаздывание прерывания, что даже может быть удобно для перенастройки палитры в момент обратного хода по кадру.
А по горизонтали попасть - ну, наверное, как все делают - добить NOP-ами. Я пробовал менять палитру парой команд MVI A и OUT, в видимую строку растра таких полосок попадает примерно 6.
делю 15625 на 50 и получаю 312.5
Как рассуждал я: видим довольно качественную фотографию, без смазывания, артефактов и т.д. Т.е. скорее всего картинка статическая, кадры не бегут, значит общее число строк нацело делится на период прерываний. Ближайшее подходящее 320/13.(3)=24. Причем в кадр умещается 24/8=3 повторения цикла палитры (часть спрятана в невидимой области). 320 строк есть, например, у ориона, у пентагона, может еще у кого, так сразу не вспомню. А кадровая 15625/320=48.828 Гц.
Если кадры бегут, то мои рассуждения рассыпаются.
- - - Добавлено - - -
Кроме того, если оценивать на глаз, то я бы сказал, что верхняя черная строка примерно такой же высоты, как и две другие, а значит действительно 3 полных периода перебора палитр в кадре. Если строки и бегут, то очень медленно.
ivagor, кадры и строки не бегут. Чуть дрожал момент смены палитр, у меня не было этому объяснения. Дрожание пропало, когда я добавил синхронизацию еще и по обратному строчному сигналу перед программированием таймера.
Вот картинка со сменой палитр каждую строку, с правильно предсказанным тобой делителем 96.
http://sensi.org/~tnt23/ok240/palette_per_line
78149
Если менять палитру каждые 8 строк (делитель 96*8=768), то в кадр поместится 320/8/8=5 периодов смены палитр. При этом строки будут одинаковые, в отличие от делителя 500h.
- - - Добавлено - - -
Кстати, насчет кадровой частоты и прочих частот. Вспомнил, что у тебя кварц 12.28 МГц, значит реальная кадровая будет не 48.8 Гц (которая была бы при кварце 12 МГц), а почти точно 50 Гц, примерно 49.967448 Гц.
Если менять палитру каждые 8 строк (делитель 96*8=768), то в кадр поместится 320/8/8=5 периодов смены палитр. При этом строки будут одинаковые, в отличие от делителя 500h
Как-то так:
http://sensi.org/~tnt23/ok240/palette_per_8_lines
78150
- - - Добавлено - - -
Вспомнил, что у тебя кварц 12.28 МГц, значит реальная кадровая будет не 48.8 Гц (которая была бы при кварце 12 МГц), а почти точно 50 Гц, примерно 49.967448 Гц
Это да, но монитор студийный лопает почти все подряд :)
Но я еще не угомонился. У меня остался вопрос, который пытался поднимать раньше - сколько тактов процессора в строке? Судя по последним данным, строка все же должна быть ровно 64 мкс (при кварце 12 МГц). Точек в строке целое число - 768 HiRes или 384 LoRes. А вот тактов процессора - 153.6. Пытаюсь совместить это с одинаковыми видимыми строками и пока не вполне получается.
- - - Добавлено - - -
Есть идея. Если переключение палитр на последней картинке происходит в невидимой области, то все может выглядеть вполне ровным. Но если выдвинуть этот момент в видимую область, то возможно станет виден узор (или как его назвать) с периодом 5 строк, там типа +-несколько точек вправо-влево.
На последнем слайде процессор никак не участвует в формировании строки, кроме изменения палитры с частотой строчной развертки.
Можно попробовать сформировать развернутый код для изменения палитры в строке, привязать его к началу строки и поймать результат.
На последнем слайде процессор никак не участвует в формировании строки, кроме изменения палитры с частотой строчной развертки.
Но он же меняет палитру после реакции на на прерывание, и делает это с точностью в лучшем случае до своего такта, а не до такта таймера (тактов таймера в строке целое число). Вытаскивание смены палитр в видимую область, как я написал выше, может помочь.
Добавил в обработчик прерывания 4 NOP, момент смены палитры снова вылез в видимую область (снова - потому что он уже раньше был виден). Проявляется в виде легкого дрожания, видимого как градиент из четырех коротких отрезков строки шириной примерно 5-6 пикселей (точно не измерить, эффект дрожит).
- - - Добавлено - - -
Дрожание можно заметить на этом кадре, выражается как сечение лучом строк примерно в районе 5 и 6 вертикальных столбцов (каждый шириной в байт).
http://sensi.org/~tnt23/ok240/palette_jitter.jpg
Зафиксирую, что про вытаскивание момента смены палитр в видимую область я скорее всего туплю, т.к. если бы там был "узор", то он бы и на остальной строке сказался.
Надо подумать, может схему посмотреть. Вопрос очень узкоспециальный, просто мне хотелось бы сложить пазл, чтобы все части подошли друг к другу.
- - - Добавлено - - -
Последний скриншот все же склоняет к мысли, что вытаскивать момент смены палитр в видимую область небесполезно.
У меня в итоге есть только идея попробовать менять палитру не по прерываниям, а по программным задержками. Каждые 5 строк - это должны быть 768 тактов процессора. В кадре будет 320/5=64 смены палитр, т.е. 8 периодов смены. На сегодня я все, может завтра ближе к вечеру попробую набросать программку. Или другие идеи появятся.
- - - Добавлено - - -
Собрался уже все выключить и идея появилась. Можно тестировать с прерываниями, но иначе. Экран очищаем, все 0. Задаем период прерывания 48, т.е. пол строки. И меняем две палитры с разным нулевым цветом, например 0ю (черный) и 1ю (белый), или 0ю (черный) и 2ю (красный) и т.д., там еще зеленый есть, если больше нравится. Будет ли строго вертикальная и стабильная граница между двумя цветами?
А я уже на сегодня точно все.
Задаем период прерывания 48, т.е. пол строки.
Попробовать можно, но это уже на пределе. Процессор медленный, обработчик может не успеть.
Утро вечера мудренее или что-то в этом духе. Сообразил, как простой вилкой тестов проверить число тактов проца в строке. Делаем 2 теста, меняющих палитру с разными фонами каждые N тактов - N=153 и 154. 153 должен давать диагональ в одну сторону, а 154 - в другую. Но у простоты есть и оборотная сторона - кадры будут бежать, число тактов в кадре нацело на 153 или 154 не делится. Надеюсь диагонали все же можно будет разглядеть.
Делаем 2 теста, меняющих палитру с разными фонами каждые N тактов - N=153 и 154. 153 должен давать диагональ в одну сторону, а 154 - в другую. Но у простоты есть и оборотная сторона - кадры будут бежать, число тактов в кадре нацело на 153 или 154 не делится. Надеюсь диагонали все же можно будет разглядеть.
А практически как это должно выглядеть? tight loop без прерываний, забитый NOP-ами?
И нельзя ли использовать для синхронизации тактов процессора с началом прерывания команду HALT?
А практически как это должно выглядеть? tight loop без прерываний, забитый NOP-ами?
Да, только вместо чисто nopов будет микс команд. Вечером сделаю.
И нельзя ли использовать для синхронизации тактов процессора с началом прерывания команду HALT?
:) можно, а почему вдруг такой вопрос?
- - - Добавлено - - -
А, наверно я не понял вот это
для синхронизации тактов процессора с началом прерывания
Т.е. в таком смысле вряд ли.
Сообщение от tnt23
И нельзя ли использовать для синхронизации тактов процессора с началом прерывания команду HALT?
можно, а почему вдруг такой вопрос?
Потому что сейчас у меня ожидание прерывания сделано как JMP ., а это значит, что точный момент первого изменения палитры в обработчике будет плавать в зависимости от того, на какой машинный такт команды JMP по времени придется прерывание по лучу.
jmpом лучше не ждать, лучше halt. Есть даже картинка (https://zx-pk.ru/threads/9431-pk8000-bystrodejstvie-arkhitektury-issledovanie.html?p=152134&viewfull=1#post152134) от другого компьютера (ПК8000) где я зачем-то (сем не знаю зачем) ждал прерывания jmpом. Полоса странного цвета на бордюре между зеленым и синим как раз "дрожание", последняя версия emu80 Pyka даже практически умеет эмулировать этот момент.
tnt23, я тут накопипастил три тестика, надеюсь найдешь время их попробовать.
Ожидаемые результаты: во всех два цвета - зеленый и красный.
test153 - недолет, кадры бегут, граница между цветами диагональная, в сторону /
test154 - перелет, кадры бегут, граница между цветами диагональная, в сторону \
test768 - попадание, картинка неподвижна, 5 строк одного цвета и 5 - другого (но строки могут начинаться в любом месте).
- - - Добавлено - - -
Забыл (как обычно) - выход в дос по нажатию любой клавиши.
ivagor, результаты домашки прилагаю.
681246812568126
(Вместо выхода в дос у меня рисуется дивной красоты сине-белый матросский матрас. Видимо, включается альтернативная страница видео-ОЗУ)
Вместо выхода в дос у меня рисуется дивной красоты сине-белый матросский матрас. Видимо, включается альтернативная страница видео-ОЗУ
Виноват, выход в дос сначала был, а прямо перед выкладыванием я его случайно "соптимизировал" и не обратил внимания.
Результаты 153 и 768 не вызывают удивления, а вот над 154 надо подумать.
- - - Добавлено - - -
Важный вопрос - в 153 и 154 кадры бегут?
- - - Добавлено - - -
Понял, в названии 153 и 154 run, а в 768 stand still
В 153 и 154 кадры бегут, заснять это на видео сложно.
Предлагаю следующее толкование результатов.
То, что мы видим на фото - это результат комбинации двух разверток: развертки ТВ/монитора и развертки фотоаппарата (вероятно в телефоне).
Если внимательно посмотреть на фотографию 153 (strips_run_right.jpg) то мы видим 3 линии. 2 потемнее с одинаковым наклоном - это результат работы программы, а светлая диагональная (примерно по центру) с другим наклоном - это результат сочетания развертки ТВ и фотоаппарата для данной картинки.
На 154 (strips_run_left_do_they_not.jpg) видны две светлые линии с наклоном / - это опять результат сочетания развертки ТВ и фотоаппарата для данной картинки. А результат работы программы - это три фрагмента темной линии с наклоном \. Три фрагмента получились из-за развертки фотика.
Развертка фотоаппарата сказывается на динамичных бегущих кадрах, на стабильных все нормально.
Что из этого следует. Получить с использованием того же фотоаппарата картинки только с "нужными" линиями на бегущих кадрах не получится. В лучшем случае можно поменять картинку, чтобы эффект был более заметен.
А если предварительно засинхриться по окончанию кадрового гасящего импульса? Тогда, по моим представлениям, тесты 153 и 154 будут образовывать стабильную диагональ, и останется только подобрать режим съемки (или попробовать видеозахват).
А если предварительно засинхриться по окончанию кадрового гасящего импульса? Тогда, по моим представлениям, тесты 153 и 154 будут образовывать стабильную диагональ
Да, только я в эмуляторе не могу отладить такую программу.
- - - Добавлено - - -
Вернее так - нужно не предварительно засинхриться, а синхрить каждый кадр.
- - - Добавлено - - -
Сообразил, как можно совместить стабильную картинку и наклон и отладить (но не посмотреть) в эмуляторе.
Делаем в кадре максимальное число строк по 153 или 154 такта, а остаток до 49152 добиваем балластом.
153*321 + 39 (балласт) = 49152
154*319 + 26 (балласт) = 49152
Вернее так - нужно не предварительно засинхриться, а синхрить каждый кадр.
Да, я это и имел в виду.
Делаем в кадре максимальное число строк по 153 или 154 такта, а остаток до 49152 добиваем балластом.
Лучше сделать меньшее количество строк, чтобы бОльшая часть с начала кадра была ими заполнена, а меньшая (остаток) просто черная. Легче идентифицировать конец работы кода.
Лучше сделать меньшее количество строк, чтобы бОльшая часть с начала кадра была ими заполнена, а меньшая (остаток) просто черная. Легче идентифицировать конец работы кода.
Можно и так, но я не вполне понял зачем идентифицировать конец работы кода.
Можно и так, но я не вполне понял зачем идентифицировать конец работы кода.
Не знаю, это чисто моё психологическое. Типа глазом видно, что вот до этого момента мы щелкали палитрами, а вот тут перестали.
Сделал вариант практически по ТЗ - основное место занимает зеленый фон с красной линией и есть черный промежуток. Приложил исходники. В дос эта версия должна выходить.
Слайды 153 и 154. Картинки стоят как вкопанные, цвета в обоих случаях красный с зеленым, просто телефон так видит.
6813968140
Думаю можно подвести итог по параметрам изображения океана. 320 строк, 384 LoRes точки / 768 HiRes точек в строке, 153.6 такта процессора в строке, 49152 такта процессора в кадре.
Дальше отвлеченные бесполезные рассуждения.
На мой взгляд авторы могли взять кварц 12.5 МГц и сделать 400/800 точек в строке, 160 тактов процессора в строке, и 312 строк в кадре (49920 тактов процессора в кадре). Тогда и штатные возможности ВМ80 были бы полностью использованы (2.5 МГц) и целое число тактов процессора в строке и нормальное число строк в кадре. Возможно такие кварцы были менее доступны, чем 12 МГц.
320 строк, 384 LoRes точки / 768 HiRes точек в строке, 153.6 такта процессора в строке, 49152 такта процессора в кадре.
Отлично, это можно уже занести в копилку знаний. Заодно вычислить, сколько занимает один такт процессора.
На мой взгляд авторы могли взять кварц 12.5 МГц и сделать 400/800 точек в строке, 160 тактов процессора в строке, и 312 строк в кадре (49920 тактов процессора в кадре). Тогда и штатные возможности ВМ80 были бы полностью использованы (2.5 МГц) и целое число тактов процессора в строке и нормальное число строк в кадре. Возможно такие кварцы были менее доступны, чем 12 МГц.
Авторы точно не страдали от невозможности достать комплектуху. Скорее просто не могли придумать, куда нужно столько строчек в строке, и сколько видеопамяти отъестся. Или, возможно, просто не задумывались в эту сторону. Вот что процессор работает на 1.5МГц, как я понял, малость расстраивает.
Эти доработки можно по идее реализовать, переписать софт, но это будет уже не "Океан-240".
Насчет процессора не все так плохо, 2.4 не намного меньше 2.5.
- - - Добавлено - - -
А лично у тебя, кстати, в связи с общим оверклоком проц аж на 2.45-2.46 работает.
Я стал себя чувствовать немного лучше :)
Но все равно маловато процессора, тем более что доступ ко вкусным периферийным вещам идет через команды IN/OUT. 153.6 тактов на строку имеется в виду на все 384 точки, включая бордюр; значит, типовая пара
MVI A, d8 ; 7 тактов
OUT d8 ; 11 тактов
съедает 7+11=18 тактов, и таких типовых пар за строку процессор успеет сделать лишь 19. А если выкинуть бордюр, то на 256 точек типовых пар будет 14... что плохо согласуется с практикой. На практике у меня в видимую строку укладывалось хорошо если 3 таких пары, ну максимум 6. (NB: проверить еще раз)
tnt23, ты в расчете торопишься.
1. mvi + out = 7+10 тактов для 8080. В видимой части строки (256 точек) таких пар поместится 153.6*256/384/17=почти точно 6.
На практике у меня в видимую строку укладывалось хорошо если 3 таких пары, ну максимум 6.
Т.е. 6 пар - нормальный, правильный результат.
И это даже можно попробовать высчитать из последних картинок.
2. Картинка 154 снята попрямее, лучше по ней. Ширина "зеленой" (мы же знаем, что она зеленая) части изображения в районе над черной линией - примерно 371 точка картинки. Ширина красной части в этой строке - примерно 64 точки картинки. 371/64=5.7969. Учитывая перекошенность картинки и низкую точность измерения вполне нормальный результат.
- - - Добавлено - - -
А есть еще "метод b2ma", xra + out=14 тактов. В видимой части строки поместится 153.6*256/384/14=7.3 полоски. Если бы у тебя показывал цвет фона, то почти можно было бы стандартную последовательность цветов БЖГЗПКСЧ показать, по крайней мере 7 цветов из 8.
А есть еще "метод b2ma", xra + out=14 тактов. В видимой части строки поместится 153.6*256/384/14=7.3 полоски. Если бы у тебя показывал цвет фона, то почти можно было бы стандартную последовательность цветов БЖГЗПКСЧ показать, по крайней мере 7 цветов из 8.
Как работает "метод b2m"? Просто пересылкой регистр-регистр можно вывести 6 значений с заранее установленным признаком цветного режима, если требуется.
Займусь-ка обратно цветом фона.
Как работает "метод b2m"?
Есть исходное состояние
01111000 Б
и 7 переходов по маске xor (я привел маски, не результирующие состояния)
00001000 Б->Ж
00101000 Ж->Г
00001000 Г->З
00111000 З->П
00001000 П->К
00101000 К->С
00001000 С->Ч
Получается есть 1 исходное значение и 3 разных маски, регистров хватает и даже остаются.
Но у меня есть подозрение, что если менять цвет только цветом фона, полоски могут получиться слегка зигзагообразные.
Чтобы было ровно возможно придется продумать комбинированный метод, т.е. нарисовать полоски разными цветами и менять цвет фона/палитру на одинаковых цветах. А тут возникает еще один вопрос - b2m в эмуляторе сделал цвета фона темными, а переднего плана - светлыми, т.е. они не совсем совпадают и не взаимозаменяемы. Интересно, как на реале.
b2m в эмуляторе сделал цвета фона темными, а переднего плана - светлыми, т.е. они не совсем совпадают и не взаимозаменяемы. Интересно, как на реале.
На реале, подозреваю, один и тот же цвет фона и переднего плана должен выглядеть одинаково. На моей реплике это уже давно не так, я скрутил яркости напроч(tm), чтобы получить пристойные цвета переднего плана на студийном RGB мониторе. При этом полностью потерял цвета фона, то есть фон всегда черный (темный).
b2m в эмуляторе сделал цвета фона темными, а переднего плана - светлыми
Там на схеме вроде разные номиналы резисторов для фона и для переднего плана. Или я ошибаюсь?
Там на схеме вроде разные номиналы резисторов для фона и для переднего плана. Или я ошибаюсь?
Там действительно разные номиналы, и с ними изначально у меня получались приличные цвета фона (хотя и блекловатые).
Уменьшил сопротивления в диодных цепях до 220 Ом, в палитрах стал проявляться бледный цвет фона:
https://sensi.org/~tnt23/ok240/background.png
78151
HardWareMan
04.03.2019, 08:04
tnt23, у тебя серт протух:
https://jpegshare.net/images/51/7c/517c9c97f076f6e5e78d2124211b1ac6.png
Обновись.
HardWareMan, спасибо. Это не совсем у меня, но я передам по принадлежности :)
Update: поправили.
HardWareMan
04.03.2019, 13:38
tnt23, вижу, даже тэг сработал:
https://jpegshare.net/images/b2/1c/b21c880b30e321bbf560df79e0b0ba97.png
Жизнь потихоньку налаживается, можно и конфиг эмулятора чуть подкорректировать. Чтобы вторая область видеопамяти была в эмуляторе и на реале в одном месте, надо поправить в разделе vid : okean-video {
строку
page[1]=mem[4000]
на
page[1]=mem[1C000]
Решил не оффтопить в спрайтах, а написать сюда. Фэнтезийный вариант, как с минимальными затратами получить режим с 16 цветами. Речь о режиме 128x256x16 цветов на точку. Для него нужна замена одной микросхемы и немного вашего любимого провода. D66 (556РТ4) надо заменить как минимум на 556РТ14 и подать туда на три "лишние" адресных входа: сигналы с D34\10 и D36\10 и 3 МГц. Для переключения режима придется пожертвовать половиной палитр и один бит номера палитры отдать собственно на переключалку 2-4/16. Если есть подобная ПЗУшка бОльшего размера, то палитрами можно не жертвовать, но тогда нужно куда-то засунуть бит переключения режимов.
Можно воспринимать это как затравку для размышления над New Okeanом.
А нельзя ему палитру сделать в РУ, чтобы было как на Векторе? 4 цвета само по себе это не обязательно плохо. Плохо, что приходится мириться со странными наборами цветов.
Если заменить ROM на SRAM, то было бы совсем хорошо. Проблема в том, что тогда надо обеспечить возможность процессору записывать в SRAM палитры.
Признаюсь, что немного думал на эту тему, и одна из мыслей такая - весь "классический" океанский софт вроде бы переключает палитры через Esc, а не лезет самостоятельно в порт. А это значит, что можно на SRAM не подавать номер палитры, а вместо этого менять там цвета. При этом три бита порта освободятся. Примерно аналогично можно поступить с битами выбора цвета фона, если сделать перепрограммируемую палитру, то они имхо не нужны (при этом формат хранения и фрагмент схемы после пзу придется немного поменять). Итого освобождаются 6 бит порта, которых с запасом хватит для задания адреса SRAM палитры при программировании. Там достаточно 256/8=32 адреса, т.е. 5 бит, если без ранее озвученной фантазии про 16цветный режим. А если бит c D10\18 отрабатывать не через пзу, а отдельно логикой, то хватит и SRAM с 4 битами адреса. Но еще нужен порт данных для записи в SRAM, надо смотреть куда его приткнуть.
NEO SPECTRUMAN
12.07.2019, 19:26
Но еще нужен порт данных для записи в SRAM, надо смотреть куда его приткнуть.
в итоге софта под это не будет
тот который будет
будет работать только в эмуляторе
тк никто дорабатывать машину для этого не будет
платформа не такая распространенная и известная
чтобы сейчас делать новые видео режимы...
меритесь с тем что есть
и ищите способ как выжать больше из то что есть
(впридачу на вид у океана большие возможности)
а не что можно припаять чтоб было 16 цвет на точку...
в итоге софта под это не будет
Мы и так не обременены тяжким наследием огромного количества написанного для Океана софта. Все обе игры для него разрабатываются прямо сейчас.
perestoronin
12.07.2019, 20:08
Решил не оффтопить в спрайтах, а написать сюда. Фэнтезийный вариант, как с минимальными затратами получить режим с 16 цветами. Речь о режиме 128x256x16 цветов на точку. Для него нужна замена одной микросхемы и немного вашего любимого провода. D66 (556РТ4) надо заменить как минимум на 556РТ14 и подать туда на три "лишние" адресных входа: сигналы с D34\10 и D36\10 и 3 МГц. Для переключения режима придется пожертвовать половиной палитр и один бит номера палитры отдать собственно на переключалку 2-4/16. Если есть подобная ПЗУшка бОльшего размера, то палитрами можно не жертвовать, но тогда нужно куда-то засунуть бит переключения режимов.
Можно воспринимать это как затравку для размышления над New Okeanом.
+1 Добавить в разводку очередного варианта платы не сложно. Насочинять остальную часть прошивки 556РТ14 для такой замены кому поручить?
- - - Добавлено - - -
Если заменить ROM на SRAM, то было бы совсем хорошо. Проблема в том, что тогда надо обеспечить возможность процессору записывать в SRAM палитры.
Признаюсь, что немного думал на эту тему, и одна из мыслей такая - весь "классический" океанский софт вроде бы переключает палитры через Esc, а не лезет самостоятельно в порт. А это значит, что можно на SRAM не подавать номер палитры, а вместо этого менять там цвета. При этом три бита порта освободятся. Примерно аналогично можно поступить с битами выбора цвета фона, если сделать перепрограммируемую палитру, то они имхо не нужны (при этом формат хранения и фрагмент схемы после пзу придется немного поменять). Итого освобождаются 6 бит порта, которых с запасом хватит для задания адреса SRAM палитры при программировании. Там достаточно 256/8=32 адреса, т.е. 5 бит, если без ранее озвученной фантазии про 16цветный режим. А если бит c D10\18 отрабатывать не через пзу, а отдельно логикой, то хватит и SRAM с 4 битами адреса. Но еще нужен порт данных для записи в SRAM, надо смотреть куда его приткнуть.
+1 тоже интересный вариант, но требует схемной проработки вместо более простой предыдущей замены. Кроме того емкие SRAM не долго живут в таких узлах, а разные долгоживущие КР531РУ9 имеют совсем небольшую емкость. Достаточно для задумки КР531РУ9 ? 64 бит (16 слов х 4 разряда) ?
Не стоит воспринимать озвученные мною фантазии слишком серьезно. Хотя они сравнительно реалистичные (особенно первая с заменой пзушки на более емкую), но для их внедрения нужны какие-то очень весомые причины и много желания. Про New Okean я специально написал, хотя это и было толстовато.
Можно спуститься поближе к земле и вспомнить, что у tnt23 не все было гладко с получением цветного изображения с океана. Если уж прикладывать силы, то наверно в первую очередь сюда и уточнить аналоговую часть, чтобы были нормальные цвета изображения и фона. Возможно этот вопрос уже решен, просто я не в курсе.
NEO SPECTRUMAN
12.07.2019, 22:54
Кроме того емкие SRAM не долго живут в таких узлах
откуда такая инфа?
На мой дилетантский взгляд для палитры лучше (для любого компа которому их будет достаточно, не обязательно для океана) 1802ИР1. Пример такого их использования в Aleste 520. Они двухпортовые и быстрые (в алесте нормально работают с пиксельклоком 16 МГц).
На мой дилетантский взгляд для палитры лучше (для любого компа которому их будет достаточно, не обязательно для океана) 1802ИР1. Пример такого их использования в Aleste 520. Они двухпортовые и быстрые (в алесте нормально работают с пиксельклоком 16 МГц).
ИР1 периодически попадаются трупы, приехала мне как-то партия из 4-х чипов, ни одной живой - где-то часть битов выбита, где-то залипшие биты... Хотя чипы были новые.
perestoronin
13.07.2019, 07:53
На мой дилетантский взгляд для палитры лучше (для любого компа которому их будет достаточно, не обязательно для океана) 1802ИР1. Пример такого их использования в Aleste 520. Они двухпортовые и быстрые (в алесте нормально работают с пиксельклоком 16 МГц).
Крайне дефицитная вещь КР1802ИР1, как и КР531АП2. Лучше их оставить для платок ДВК и Союз Неона, а в Океан чего попроще и невостребованное в остальных машинках.
- - - Добавлено - - -
откуда такая инфа?
Не зря же даже К155РУ2 заменяют знатоки на сравнительно надежные КР531РУ9.
PS. Может я не со всеми другими м.с. SRAM знаком, которые можно запихнуть в узлы палитры, так Вы просветите пожалуйста.
Если 1802ИР1 проблемные (о чем я не знал, Дмитрий2012, собиравший алесту, не упоминал об этом, возможно у него проблем и не было) и дефицитные, то есть DM85S68N. Они несколько своеобразные (по записи) и сравнительно редкие, но вроде еще можно купить.
Не зря же даже К155РУ2 заменяют знатоки на сравнительно надежные КР531РУ9.
Как я понимаю, тут дело в требуемой скорости (играю в капитана очевидность). В корвете (10 МГц) и векторе (12 МГц) работали нормально, в ATM2 (14 МГц) читал про проблемы. Для примера у океана 12, как и у вектора.
perestoronin
13.07.2019, 09:03
DM85S68N не нужны, когда есть две коробки КР531РУ9
Хитрый план сбагрить остатки?)))
Есть SRAMина, соответствующая 556РТ4 по организации/объему и быстродействию - 185РУ7. Но у нее выход не ОК и она дороговата. Вместо двух 155РУ2 или 531РУ9 теоретически можно использовать (в новоделах) 185РУ9, она еще и сравнительно недорогая (дешевле 185РУ7). Можно и дальше фантазировать на эту тему, есть ведь и забугорные SRAMины (корпус DIP, 5 V, 55 нс - могут и подойти), вопрос в необходимости всего этого.
Добавить в разводку очередного варианта платы не сложно.
Хорошо бы перед разводкой нового варианта перенести старый (единственный доступный на сегодняшний день) из easyEDA в KiCad, и добавить туда исправления и дополнения.
Идея появилась из-за неудовлетворенности существующими палитрами. То есть надо добавить еще палитр. Предполагаю, что их число можно увеличить вдвое добавив еще один бит адресации ПЗУ палитр. Один бит в таком богатом компьютере где-нибудь да найдется. Воображаемая совместимость при этом пострадает минимально. А уж какое именно это ПЗУ технологически, и не станет ли оно случайно в чьей-то модификации перезаписываемым, дело второстепенное.
Идея появилась из-за неудовлетворенности существующими палитрами. То есть надо добавить еще палитр. Предполагаю, что их число можно увеличить вдвое добавив еще один бит адресации ПЗУ палитр. Один бит в таком богатом компьютере где-нибудь да найдется. Воображаемая совместимость при этом пострадает минимально. А уж какое именно это ПЗУ технологически, и не станет ли оно случайно в чьей-то модификации перезаписываемым, дело второстепенное.
Есть три старших бита порта C ППА DD67, обозначенные как USER1, USER2, USER3 (PC5, PC6, PC7). Чем не юзерское применение?
А ПЗУ палитры наверняка и так имеет 4 бита адреса из которых один хронический 0? Тогда вся переделка будет одну ножку поднять и один проводок протянуть.
(Ну и страниц 40 форума на обсуждение какие именно наборы цветов будут в новых 8 ячейках. Если бы были Спасибки, можно было бы уложиться в 25 страниц).
Насчет экономии бит есть еще кандидат - бит REST порта С1h. Стартовую раскладку памяти можно отключать, например, записью в любой порт. Хотя этот бит лучше использовать для каких-либо дополнительных операций с памятью.
- - - Добавлено - - -
отключать, например, записью в любой порт
Поясню - по факту наличия сигнала записи в порт ввода-вывода. Надо вспомнить, в каком компе так сделано, может даже не в одном.
NEO SPECTRUMAN
13.07.2019, 15:22
тогда уже не морочить голову
и ставить um70c171
А ПЗУ палитры наверняка и так имеет 4 бита адреса из которых один хронический 0? Тогда вся переделка будет одну ножку поднять и один проводок протянуть.
ПЗУ видеовыхода вот оно, что куда поднимать-тянуть?
69573
perestoronin
14.07.2019, 01:42
Зачем easyEDA, впрочем и KiCad не нужен наверное, есть же проект в gEDA.
ПЗУ видеовыхода вот оно, что куда поднимать-тянуть?
69573
Ох. Ну а что эти буковки все значат? Как я понимаю, на входе должно быть два бита кода цвета и три бита кода палитры, итого 5. Что делают там все остальные?
Вижу у себя ошибку в номере вывода, смотрел по журналу и написал D10\18 вместо D10\13.
D42-3 - 6 МГц, используются для режима 512 точек
С/M - переключение цветного/монохромного режимов
D10\13 - переключение активной/неактивной части изображения (поправьте, если что)
На мой взгляд прохожего, ставить большую пзушку только ради увеличения числа палитр - это очень слабо и малополезно.
Зачем easyEDA, впрочем и KiCad не нужен наверное, есть же проект в gEDA.
Ну да, я ошибся. Все равно перенести надо из старого пакета 2011 года, который к тому же не работает нормально.
После дополнительных размышлений пришел к выводу, что предложенный здесь (https://zx-pk.ru/threads/29725-quot-okean-240-quot-videovykhod.html?p=1020153&viewfull=1#post1020153) вариант, хотя и даст возможность показать 16 цветов, но организация у него будет совершенно ненормальная и для практического использования непригодная. Для полноценного режима 128x256x16 только замены пзу мало, сдвиговую часть тоже надо дорабатывать. В итоге совсем малой кровью обойтись не получится.
После дополнительных размышлений пришел к выводу, что предложенный здесь (https://zx-pk.ru/threads/29725-quot-okean-240-quot-videovykhod.html?p=1020153&viewfull=1#post1020153) вариант, хотя и даст возможность показать 16 цветов, но организация у него будет совершенно ненормальная и для практического использования непригодная. Для полноценного режима 128x256x16 только замены пзу мало, сдвиговую часть тоже надо дорабатывать. В итоге совсем малой кровью обойтись не получится.
Тогда скрепя сердце займемся эксплуатированием того, что имеем - плавных скроллингов и второй страницы видео-ОЗУ.
Графика океана велика и могуча.
После обязательного вступления все же хочу дополнить, что там можно было доделать для нормального режима 128x256x16. Один из вариантов - подавать на входы 9 D34-37 частоты 3/6 через мультиплексор (в алесте использовали 555КП11, но, как я понимаю, можно и другой), переключением которого управлять битом режима 2-4/16. При этом отпадает необходимость подавать 3 МГц на РТ14 и там освобождается обратно третий бит палитры, т.е. возвращается полная совместимость со старыми режимами. Если учесть еще и старый переключатель цвет/монохром, то получается аж 2 новых режима 128x256x16 с разной организацией байтов, но проблемы в этом нет.
Когда мы придем к власти и допишем все две игры для классического океаноида, можно будет задуматься об МГТФе и навесных корпусах логики.
Еще немного подумал насчет использования 155РУ2 (предыдущая серия дум здесь (https://zx-pk.ru/threads/29725-quot-okean-240-quot-videovykhod.html?p=1020162&viewfull=1#post1020162)). Авторы вполне могли сделать палитру с РУ2 и без "дополнительной логики" для бита D10\13, 4 бита адреса хватает: 2 бита со сдвиговых регистров, 1 бит - 6 МГц и 1 бит - D10\13. Просто пришлось бы как в векторе перепрограммировать палитру не только когда хотим изменить цвета, но и при переключении режима 256/512. Для обеспечения программирования палитры схему, конечно, все же пришлось бы доработать.
UPD: Дополнительных микросхем не нужно, все укладывается в ВВ55 D67. Два старших бита порта E1h (цвет/монохром и выбор видеостраницы) лучше бы перенесли в биты USER2-3 порта E2h. А порт E1h стал бы полностью для программирования 155РУ2 - 4 бита адреса и 4 бита данных.
Апнем тему.
Для собственного лучшего понимания (наконец), как устроены цвета в "Океане", взял скриншот несостоявшейся демы и исследовал его при помощи, значить, головного мозга.
https://www.sensi.org/~tnt23/ok240/screen/background_explained.png
79641
Зачем нужна палитра 111, состоящая из сплошного черного цвета, я не понимаю. Может быть, гасить экран на время рисования?
Более внимательно просимулировал канал формирования цвета (эмулятор http://www.falstad.com/circuit/, исходник прилагаю). Журнальные номиналы резисторов (1к6 и 5к1) дают практически одинаковую яркость фона и переднего плана. То есть в режиме "цвет фона" этот самый цвет фона перебивает цвет переднего плана. Имеем, например, в палитре №5 базовые цвета (синий, зеленый, желтый) плюс один из базовых (допустим, красный).
Но если взять другие значения резисторов, то яркость фона может суммироваться с яркостью переднего плана. Получаем в палитре базовые цвета (синий, зеленый, желтый) плюс один из оттенков базовых (допустим, ярко-зеленый).
Зачем нужна палитра 111, состоящая из сплошного черного цвета, я не понимаю. Может быть, гасить экран на время рисования?
Вероятнее всего - да. Чтобы скрыть процесс "длительного" рисования - рисуем в палитре 0b111, а затем перещелкиваем на нужную.
Обзавелся наконец GBS-8200, пока со штатной прошивкой. С моим кварцем 12.288МГц частота строк получается 16КГц, гонбес ее не в состоянии переварить.
Кварца ровно на 12МГц под рукой нет, но есть 11.7МГц, с ним строчная выходит 15.25КГц, и иногда случаются проблески сознания.
https://www.sensi.org/~tnt23/ok240/gbs8200_15250.png
В общем, все это время я ломился в открытую дверь.
Тест, переключающий палитры несколько раз за кадр, по непонятной пока мне причине не способен показать цвета фона. Возможно, дело тут в современном LCD мониторе, но факт остается фактом.
В статике цвета фона вполне себе есть. Я только поменял резисторы R13-R15 c 5.1К на 2К, чтобы фон стал поярче.
https://www.sensi.org/~tnt23/ok240/backgrounds_2k.png
IRL цвета более различимы, просто не было сил возиться с камерой телефона для достоверной цветопередачи. Самый правый нижний слайд - на самом деле темно-белый фон.
PS Для GBS-8200 очень рекомендую https://github.com/ramapcsx2/gbs-control - на порядки больше возможностей отстроить изображение под конкретный источник видеосигнала
Палитры с фонами. По-моему, на экране не 8 цветов, а несколько больше :)
https://www.sensi.org/~tnt23/ok240/palettes_with_bg_2K.png
Не очень актуальный для цветной машины и нашего времени момент, но все же. В формирователе ЧБ сигнала стоят три одинаковых резистора 3к3, что в результате дает одинаковые градации яркости.
Стоит посмотреть в сторону аналогичного формирователя у спектрумообразных.
79803
В отечественных клонах спектрума стоят резисторы 470, 1К и 2К.
sergey_sitnik
08.01.2024, 22:11
Всем доброго вечера!!! Спаял плату Океан-240, возникла такая проблема с изображением, помощи не прошу но может кто знает где копать....800588005780056
sergey_sitnik, может, LCD телевизор дурит? какой-нибудь конвертор используете?
sergey_sitnik
10.01.2024, 17:25
В общем заменил кварцевый резонатор на 12,288 МГц удалось вывести нормально изображение на VGA монитор через китайскую плату RGB\VGA конвертер.... Кто скажет так должно быть....?80078
Нет, так точно не должно быть. Хорошо бы посмотреть осциллограммы видеосигнала, отдельно строчных и кадровых СИ.
Также хорошо бы проверить правильность прошивки РТ4.
Развертка и с кварцем ровно на 12.0 МГц тоже должна быть приемлемая.
sergey_sitnik
10.01.2024, 18:55
Согласен!!! Как я понимаю о прошивки РТ4 также зависит синхронизация! И еще такой момент временами пропадает изображение но при это все импульсы присутствуют, и это что характерно не у меня одного... Глюки один в один ! Если кварц на 12 МГц то кадровая получается 48 Гц Строчка 15,6 кГц. По идее должно работать.... я тоже с этим согласен. Да и вот еще что если вытащить ПЗУ с СР\М то при запуске турбо монитора.. получается такая картина при любом кварце...80079
Прошивка эта...80081
sergey_sitnik, прошивка RT4 не соответствует журнальной. Вот журнальная:
80084
А ваша больше похожа на "нестандартную", с сайта AZMASTER.
PS вот тут уже сталкивались с различными прошивками - https://zx-pk.ru/threads/29725-quot-okean-240-quot-videovykhod.html?p=995053&viewfull=1#post995053
Или вот (https://zx-pk.ru/threads/29725-quot-okean-240-quot-videovykhod.html?p=997669&viewfull=1#post997669)
Или вот (https://zx-pk.ru/threads/29725-quot-okean-240-quot-videovykhod.html?p=997669&viewfull=1#post997669)
Безуспешно пытался найти этот твой пост :)
sergey_sitnik
11.01.2024, 09:19
Если у кого есть файл "журнальной" прошивки , поделитесь если не жалко..
Если у кого есть файл "журнальной" прошивки , поделитесь если не жалко..
Так вон по ссылке выше, что я давал, к сообщению прицеплен архив с бинарником
sergey_sitnik
11.01.2024, 12:06
80086 Это то что нужно как я понимаю!!
80086 Это то что нужно как я понимаю!!
Да
sergey_sitnik
12.01.2024, 20:34
Прошил РТ4 "прошивка по журналу"80096800968009780098
Это изображение через СКАРТ и через "тюльпан" , чрез Китай RGB\VGA конвертер добиться ни чего не получилось
Конвертеру могут не нравится 320 строк в кадре.
sergey_sitnik
12.01.2024, 22:09
Я тоже так думаю
UncleDim
12.08.2024, 23:21
На N-ый (N>4) день плотного общения с новорожденным Океаном внимание обращено на центровку изображения, а именно - некое заметное смещение значащей части вниз, вплоть до неотображения одной-полутора-двух (пока не точно не считал) строк, чего ранее на всяких ретрокомпах не наблюдалось (неон не считаем). вряд ли, я так понимаю, кто-то это лечил, но полечить имхо надо. наверное стоит совместить это дело с усекновением КСИ хотя бы до 8 строк, а то 16 - это как-то нынче не очень прилично.. и тему прерываний от кги/сги подключить можно заодно, чтоб два раза не вставать. да будет срач здоровая дискуссия!
Дак разрисуй времянки по дампу ПЗУ, обсудим.
UncleDim
13.08.2024, 18:27
Да какие там времянки в дампе ПЗУ, она ж на всём готовом работает, только цвет/гашение и выдает.. все времянки в мелкой логике..
UncleDim
13.08.2024, 21:46
Сделяль. И вновь диодно-резисторная логика, извините)
Подмешал по "И" сигнал К4 к К5, идущему на 9 вывод DD6, по картинке надеюсь будет понятно. Кадровый синхроимпульс укоротился на свою первую половину, в итоге телек подвинул картинку вверх на 8 океанских строк - маленькое счастье! теперь черненькие полосочки и сверху, и снизу, а не только сверху)
81125
- - - Добавлено - - -
было: 16 строк КСИ, 32 КГИ, 256 полезный растр, 16 КГИ
стало: 8 строк КСИ, 32 КГИ, 256 полезный растр, 24 КГИ
Что за черненькие полосочки? картинку бы.
UncleDim
14.08.2024, 17:47
Да рамка по периметру)
- - - Добавлено - - -
Кстати на фотках прям на этой странице видно смещение вниз, "рамка" снизу тонюсенькая (на моем телеке ее вообще снизу не было)
сорри за "какчество", но ради чего делалось укорочение кадрового надеюсь понятно:
было
81127
стало
81128
UncleDim
15.08.2024, 08:18
Прошивка AZmastera явно требует другой распайки входных (адресных) сигналов РТ4. 6 МГц нужно подать на A3 вместо A0, номер палитры на A4-A6 вместо A3-A5, переключение режима на A7 вместо A6, сигнал с DD10.4 на A0 вместо A7. При таких изменениях должна пойти адекватная картинка с его прошивкой
нагуглил картинок разных программаторов - "а вот и он, больной зуб!"
просто существует и такой вариант нумерации адресных выводов
81129
"Литература
1. Назаров Н. Программатор для микросхем К556РТ4 — В помощь радиолюбителю, Вып.83 с.26"
HardWareMan
15.08.2024, 13:06
UncleDim, у микросхем памяти есть только одна "стандартная" распайка: JEDEC. И она имеет смысл только для ПЗУ (потому что ПЗУ пишется на другом оборудовании), для DRAM (потому что, например, РУ5 это 4х РУ6 внутри и поэтому регенерировать надо только по А0-А6) и без разницы для SRAM (потому что она пишется и считывается в одном и том же устройстве). А разводку обычно делают как проще на плате развести, чтобы уменьшить количество переходных отверстий и прочее. Особенно для ПЗУ работающих как ПЛМ. ПЗУ хранящие программу стараются оставлять JEDEC, но иногда в каких-то целях и её меняют. Ну и последнее: бывают ошибки в справочниках, где нумерация указана неправильно, такое проверяется лишь кроссчекингом в нескольких источниках.
UncleDim
15.08.2024, 16:37
бывают ошибки в справочниках
потом они идут "в массы", и уже поздно доказывать кто прав кто нет -просто надо помнить о таких нюансах
81130
HardWareMan
15.08.2024, 16:53
[QUOTE=UncleDim;1202535]потом они идут "в массы", и уже поздно доказывать кто прав кто нет -просто надо помнить о таких нюансах
https://i.postimg.cc/NGSWq1gQ/scale-1200.png
UncleDim
23.11.2024, 12:32
поигрался тут с палитрами. получил таки кораблик как с картинки, с синим морем)
"но осадок остался"(с)
По журнальной прошивке и таблице палитр выходит, что выводы РТ4 следуют в порядке B,G,R,bg (от старшего к младшему)
А по журнальной же схеме - R, B, G, bg
пришлось опять переставлять штырьки от мониторного разъема)
в прошивке поменял в 3й палитре малиновый на синий,
до кучи в "черной" 7й палитре поменял "всегда черный" на "всегда фон"
С палитрой кораблика уже разбирались примерно отсюда (https://zx-pk.ru/threads/29725-quot-okean-240-quot-videovykhod.html?p=997548&viewfull=1#post997548) досюда (https://zx-pk.ru/threads/29725-quot-okean-240-quot-videovykhod.html?p=997669&viewfull=1#post997669).
UncleDim
23.11.2024, 14:45
ivagor, да, но вопрос "кто прав" (прошивка/таблица или схема) остался, как я понял, открытым
UncleDim
24.11.2024, 10:52
"Okean240_book(v_02).pdf" добавляет интриги
стр. 11:
---
УПРАВЛЕНИЕ ЦВЕТОВЫМИ ВОЗМОЖНОСТЯМИ "ОКЕАНА-240"
ЧЕРЕЗ ПОРТ Е1H (241D)
ДАННЫЕ СВЕДЕНИЯ ДОСТОВЕРНЫ ДЛЯ НЕИНВЕРСНОГО ПОДКЛЮЧЕНИЯ ВИДЕОУСИЛИТЕЛЕЙ ТЕЛЕВИЗОРА К ЦВЕТОВЫМ КАНАЛАМ "ОКЕАН-240" СОГЛАСНО СХЕМЕ, (ПО СБРОСУ УСТАНАВЛИВАЕТСЯ ЧЕРНЫЙ ФОН, ЗЕЛЕНОЕ ИЗОБРАЖЕНИЕ).
ДАННЫЕ СВЕДЕНИЯ ОТЛИЧАЮТСЯ ОТ ПРИВЕДЕННЫХ В МПСС N4 ЗА 1986Г., СТР. 76, ТАБ. 2.
---
и далее в таблицах видим, среди прочих, такие вот цвета фона: СИНИЙ, ЯРКО-СИНИЙ, ТЕМНО-СИНИЙ, ТЕМ-ЗЕЛЕНЫЙ, ЯРКО ЗЕЛЁНЫЙ, ...
(документ на всякий случай прилагается)
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot