позориться так до конца.
https://disk.yandex.ru/d/-jRJr5UUSJOqtA
оно под tang20k с набортной sdram
я не настоящий сварщик
позориться так до конца.
https://disk.yandex.ru/d/-jRJr5UUSJOqtA
оно под tang20k с набортной sdram
я не настоящий сварщик
Когда я начинал свой проект (приостановлен, пока не знаю, когда продолжу), решил разорвать "Алесту" на два компьютера, т.е. отделить СРС. По сути, это два компьютера на одной плате, использующие общие компоненты. Кому-то нужно СРС, кому-то - сама "Алеста". Чисто моё рассуждение и мой подход, никому не навязываю и не предлагаю.
Коллега, ваша работа впечатляет. И пусть вы «не сварщик» — у вас несомненно есть талант, чтобы им стать.
И ваш труд стал для меня ключевым источником вдохновения. За что — огромная благодарность.
Последний раз редактировалось Sherlock; 15.09.2025 в 17:19.
здрасте!
я опять наступил в неполную дешифрацию адресов. конкретно порт 7Fxx. в биосе была запись в порт 7Схх для отключения ПЗУ со страницы 0.
на сейчас у меня грузится всё, но я пока не реализовал видео режим 3 для ХДМИ.
есть некие фундаментальные косяки.
CRT формирует видеосигнал, для ХДМИ я использую готовое ядро. синхронизации между ними никакой. но я могу сделать буфер строки и тогда картинка есть и правильная. проблема в несовпадении частоты кадров. памяти на целый кадр у меня нет.
выкинуть mc6845 и лазать контроллером ХДМИ вместо неё в память - тоже некошерно, разные частотные домены. у алесты 16/13.33 мгц у ХДМИ - 27мгц. делать FIFO и прочие прелести - я не настоящий сварщик
я завел 32кб двупортовой памяти, пишу параллельно в неё и в ОЗУ алесты, затем распаковываю байт видеопамяти в пиксели через палитру и тд.
но и тут есть нюанс. можно быстро подменить С000 ОЗУ через маппер страницу. например с 3 на 7. CRT будет показывать корректно, я - нет.
это мне нужно 128кб чтобы всё параллельно ОЗУ отслеживать.
пока я занят загрузкой биоса алесты с набортной spi флэшки в sdram для эмуляции ПЗУ. для высвобождения блочной памяти.
потом в планах эмуляция FDC, что я уже делал для железной ямахи MSX.
Копейкин(19.09.2025)
Коллега. А почему у вас не совпадает частота кадров нельзя ли поподробней? В моем понимании нужна только буферизация строки. Которая отображается два раза.
Кстати. Для астрал была если я не ошибаюсь поддержка двух вариантов частоты кадров 50 и 60 герц. Управлялось битами (перемычками па ,ppi) посмотрите оригинальную схему амстрад. Там 2 или 3 перемычки на ppi. Одна как раз и есть частота кадров. Для алесты алесты можно просто поменяйте программу в БИОС. Это каконично для нее.
На мой взгляд 60 Гц должно работать для hdmi.
я использую режим 720х576 50Гц (625 линий) и как-то 312 линий от mc6845 не могу впихнуть. ползет вниз. добавляешь строку - ползет вверх.
у хдми корки есть лапка reset, её можно использовать для синхронизации когда у mc6845 начинается кадр. но тогда ХДМИ встает в непонятный режим 573 строки и нормальными мониторами не опознается.
хз. есть куда подумать.
пока заведу основную логику, демки покручу.
Рекомендую попробовать 60 герц.
Коллега, а какая у вас частота CLK на шине HDMI?
- - - Добавлено - - -
В исходном коде частота 27МГц. Но в реальности она точно такая?
- - - Добавлено - - -
Изучив бегло ваш код верхнего уровня. У меня возник вопрос к блоку кода always FF который генерирует FF видео reset. Трудно продидактить конечную форму сигнала. Но одно важнейшее условие он должен быть длиной один пиксель клок.
Я думаю что вы долго с этим разбирались тестировали изменяли эта работа сложная. Но тут очень важно каждая длина этого сигнала может поломать работу HDMI модуля.
- - - Добавлено - - -
На мой взгляд лучше этого не делать. Необходимо в памяти держать лишь одну строку. И отображать ее два раза.я завел 32кб двупортовой памяти, пишу параллельно в неё и в ОЗУ алесты, затем распаковываю байт видеопамяти в пиксели через палитру и тд.
но и тут есть нюанс. можно быстро подменить С000 ОЗУ через маппер страницу. например с 3 на 7. CRT будет показывать корректно, я - нет.
это мне нужно 128кб чтобы всё параллельно ОЗУ отслеживать.
Если вы успешно используете асинхронное FIFO то это правильное решение. (если нет то можно два буфера на дну строку. В один кладем из другого читаем)
При это крайне важно чтобы этот промежуточный узел согласования разверток выдавал идеально точно в количестве pixel_clock как одну строку так и весь кадр.
- - - Добавлено - - -
P.S. Возможно стоит не использовать HDMI, а вместо этого использовать DVI. Это проще.
Кстати то ядро которое вы используете работает на двух clk. Один clk_pixel_x5, а другой его деление на 5 clk_pixel. Второй не clke так было бы правильно а именно clk.
Работать должно, но на мой взгляд это спорное решение.
Последний раз редактировалось Sherlock; 16.09.2025 в 09:41.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)