У меня на входе 25МГц от видео-части, потому и декадный делитель. И в качестве процессора будет Z80 на 20МГц (или на 10МГц, если потянет узкий фронт такта).
Сейчас очень сильно переработал ТГ, что бы избавиться от возможных глитчей на защёлках видео-выхода. В сухом остатке имею честные 10МГц на корке T80 (в режиме Z80) без WAIT'ов. По копированию из видеопамяти - при ширине банок в 16 бит можно сделать видеовывод из 4-х плоскостей, как в Орион-Про.
Так же формирователь видео-сигнала переработал, опираясь на решения в Про-шке, с использованием ИР10, которые гораздо доступнее ИР13. Жду память для тестов на реальных таймингах, скоро уже придёт.
"Байт-48"
И сделай. 3/4 плоскостной режим + порт FC (порт покраски экрана константой RGBIRGBI для монохромного режима). Получится так:
Скрытый текст
Код:ОРГАНИЗАЦИЯ ЭКРАННОЙ ПАМЯТИ Orion-PRO, Ориона-128 ------------------------------------------------- Экранная память располагается в 0 и 1 страницах ОЗУ, при- чем количество экранов и распределение сегментов в них зависит от текущего цветового режима, задаваемого разрядами порта 0F8H: D4 D3 D2 D1 D0 ------------------ 0 x 0 0 0 - монохромный, палитра 1 0 x 0 0 1 - монохромный, палитра 2 0 x 0 1 x - запрет видеосигнала 0 x 1 0 0 - 2-битный (4-цветный), палитра 1 0 x 1 0 1 - 2-битный (4-цветный), палитра 2 0 x 1 1 x - 16-цветный с групповым кодированием 0 1 1 1 x - псевдоцветной (цвет - в порт 0FCH) 1 x 0 x x - 3-битный (8-цветный RGB) 1 x 1 x x - 4-битный (16-цветный RGBI) Для Ориона-128 то же, но только D0..D2. Режимы от D3,D4 недоступны В монохромном режиме палитре 1 соответствует комбинация цветов - (черный, зеленый), палитре 2 - (белый, зеленый). В 4-цветном (2-х битовом) режиме палитре 1 соответствуют цвета - (черный, синий, зеленый, красный), палитре 2 - (белый, синий, зеленый, красный). Код палитры для псевдоцветного режима записывается в порт с адресом 0FCH. Выбор на отображение одного из 4-х экранов выполняется пу- тем записи номера экрана в порт 0FAH: D0 \ номер экрана D1 / D6 - выключение регенерации ОЗУ D7 - включение широкого экрана Разряды D2-D5 являются резервными. Если разряд D7 установлен в единицу, то ширина экрана сос- тавляет 512 точек (64 байта), что при высоте 256 байт соответс- твует объему памяти 16 Кбайт. В противном случае экранная плос- кость ОЗУ имеет ширину 384 точки (48 байт) и занимает объем 12 Кбайт. В 3-х битном и 4-х битном (EGA-режим) цветовых режимах до- пускается использование только двух экранов, поэтому разряд D0 порта 0FAH игнорируется. Рассмотрим распределение сегментов экранного ОЗУ в различ- ных цветовых режимах. 1.2.3 МОНОХРОМНЫЙ И ПСЕВДОЦВЕТНОЙ РЕЖИМЫ ---------------------------------------- В монохромном и псевдоцветном режимах возможно использова- ние до 4-х экранов, занимающих только сегменты 0-й страницы ОЗУ: Стр.0 Экран 12 К Экран 16 К --------¬ ------------ ------------ Экран 0 ->¦ 3 ¦ C000H..EFFFH C000H..FFFFH ¦=======¦ Экран 1 ->¦ 2 ¦ 8000H..AFFFH 8000H..BFFFH ¦=======¦ Экран 2 ->¦ 1 ¦ 4000H..6FFFH 4000H..7FFFH ¦=======¦ Экран 3 ->¦ 0 ¦ 0000H..2FFFH 0000H..3FFFH L-------- В монохромном режиме единичному значению некоторого бита экранного сегмента ОЗУ соответствует засветка изображаемой точ- ки, нулевому - гашение. В псевдоцветном режиме цвет отображаемых точек зависит от кода палитры, записанного в порт 0FCH. Старшие 4 бита значения этого порта определяют один из 16 цветов фона (для погашенных точек), младшие 4 бита - один из 16 цветов переднего плана (для засвеченных точек). Заметим, что при широком экране-0 область 0F000H..0FFFFH экрана (не путать с системной областью 0F000H..0FFFFH) доступна только через окно. Прямой доступ к экрану возможен только по адресам 0C000-0EFFFH. Это относится ко всем цветовым режимам. 1.2.4. 4-ЦВЕТНЫЙ РЕЖИМ ----------------------- В 4-цветном (2-битном) режиме цвет каждой отображаемой точки зависит от соответствующих битов двух экранных плоскостей (сегментов), находящихся в страницах 0 и 1 ОЗУ: Стр.0 Стр.1 --------T-------¬ Экран 0 ->¦ 3 ¦ 7 ¦ ¦=======+=======¦ Экран 1 ->¦ 2 ¦ 6 ¦ ¦=======+=======¦ Экран 2 ->¦ 1 ¦ 5 ¦ ¦=======+=======¦ Экран 3 ->¦ 0 ¦ 4 ¦ L-------+-------- L--¬ ---- 0 0 -> черный (белый) 0 1 -> красный 1 0 -> зеленый 1 1 -> синий 1.2.5. 8-ЦВЕТНЫЙ и 16-ЦВЕТНЫЙ РЕЖИМЫ ОРИОН-ПРО ----------------------------------------------- Это новый графический режим. Функционально он тождествен EGA режиму на IBM PC AT (был широко распространен на 286 моде- лях). В 8-цветном (3-битном) и 16-цветном (4-битном) режимах для формирования отображаемой точки в каждом из двух экранов используются соответственно 3 и 4 плоскости экранного ОЗУ: Стр.0 Стр.1 --------T-------¬ ¦ 3 (G)¦ 7 (I)¦ Экран 0 ->+-------+-------+ ¦ 2 (R)¦ 6 (B)¦ ¦=======+=======¦ ¦ 1 (G)¦ 5 (I)¦ Экран 1 ->+-------+-------+ ¦ 0 (R)¦ 4 (B)¦ L-------+-------- Сегментам 3 и 1 соответствует зеленый цвет (G), 2 и 0 - красный (R), 6 и 4 - синий (B), 7 и 5 (в 3-битном режиме не ис- пользуются) - управление яркостью (I). Путем записи комбинации битов в соответствующие сегменты экрана можно получить точку заданного цвета. 1.2.6. РЕЖИМ С ГРУППОВЫМ КОДИРОВАНИЕМ ЦВЕТА ------------------------------------------- В 16-цветном режиме с групповым кодированием каждый из 4-х экранов формируется из содержимого двух сегментов памяти: из плоскости изображения (0 страница ОЗУ) и плоскости цветовых ат- рибутов (1 страница ОЗУ), причем восьми соседним точкам плос- кости изображения, расположенным в пределах одного байта, соот- ветствует один байт из плоскости цветовых атрибутов. Старшие 4 бита в байте цветового атрибута определяют цвет фона (для погашенных точек), младшие 4 бита - цвет переднего плана (для засвеченных точек) в пределах одного экранного бай- та. Стр.0 Стр.1 (изобр) (цвет) --------T-------¬ Экран 0 ->¦ 3 ¦ 7 ¦ ¦=======+=======¦ Экран 1 ->¦ 2 ¦ 6 ¦ ¦=======+=======¦ Экран 2 ->¦ 1 ¦ 5 ¦ ¦=======+=======¦ Экран 3 ->¦ 0 ¦ 4 ¦ L-------+-------- Для всех цветовых режимов действует ограничение на исполь- зование широкого экрана с номером 0, описанное в П.1.2.3. Следует помнить, что экраны аппаратно привязаны к конкрет- ным сегментам ОЗУ, а не к окнам, т.е. отображение информации экрана не зависит от рабочей страницы ОЗУ и включения / выклю- чения окон.[свернуть]
Порты F8 и FA делай полными (все по 8 разрядов), т.к. нам еще нужен будет F8.D6 чтобы включать символьный режим экрана и FA.D6..D3 для номера фонта. Позже добавим ПЗУ 27W512 между памятью графики и выводящим графику регистром (половина ПЗУ прошита кодом "вход=выход" {F8.D6=A15}, половина наборами шрифтов {FA.D6..D3}=A14..A11 - выбор шрифта) и зануление младшего адреса видео-ОЗУ в режиме символьного экрана кратное 8/16 (F8.D5=0/1) строкам (чтобы выводить символы из ПЗУ).
Последний раз редактировалось Error404; 22.02.2018 в 13:22.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Оно то УCЕ охота добавить, а как же несколько платок 100х100
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
На плате с процессором места ДОФИГА...
Пока что не разводил, просто прикинул по корпусам. Нужно сперва видео-модуль с реальной памятью проверить, а так же блок с процессором пока что допиливаю - что-то из схемы Z80 Card 2 не так сделал, в итоге кроме TEST128 ничего не работает (testZ80 включает видеорежим 2 и тишина...).
- - - Добавлено - - -
"Полные" порты - не проблема.
Проблема появляется при наличии символьного экрана - или "убить" часть памяти впустую, или сделать адекватный участок под "недоэкран" и на адресацию памяти придётся вешать КП12 (сейчас - КП11). что бы можно было правильно организовать переключение сканируемых участков.
"Байт-48"
Я за экран с потерями памяти, когда значимыми в видеопамяти являются строки кратные 8 (16). Ну как с потерями, память не теряется (в некратных строках процессор по-прежнему может хранить какие-то данные даже при символьном экране, некратные адреса же надо "занулять" только в цикле обращения видеоадаптера/регенерации). А то, что в 16к получается впихнуть только 1 экран размером 2к (1к) символов, так это плата за то, что эту же схему (а значит и ПО ее поддерживающее) можно "малой кровью" (т.е. не перепахиваю всю плату) реализовать и на обычных Орионах. Совместимость и реализуемость - она дороже красивости единичного специализированного решения ИМХО.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Error404, не торопите автора топика.
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
Это да, я пока ещё добиваю интеграцию Z80, были косяки в схеме.
Вот как добьюсь работы тестов и ORDOS, так и займусь модификацией видео-части.
А по платкам 100х100 - для видео это только на SMD-комплектующих получится, с учётом всех "хотелок" Посмотрим, как оно у меня получится ещё вообще.
"Байт-48"
У кого есть схемы по Z80-Card-II, киньте их тут
Тест застопорился на RAM protect - никак не могу найти схему для этого узла =/
"Байт-48"
При переезде на реальный Z80 могут возникнуть трудности. Ведь корка t80 по растактовке далека от оригинала.
Я пробовал еще две корки Z80 с более манием приближенной растактовкой к реалу.
Корка az80. В принципе работает, только у меня не получилось ее разогнать по частоте.
Корка T80pa (модернизированная корка t80). Гонится на ура и растактовка значительно ближе к реалу.
Качество не очень, но все же лучше чем ничего. Клик.
Последний раз редактировалось OrionExt; 23.02.2018 в 11:40.
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)