Просмотр полной версии : Что максимум можно выжать из КР580ВГ75 Intel 8275? Обсуждение
Копейкин
19.03.2022, 20:18
Здравствуйте!
Подскажите пожалуйста, можно путём несложных доработок заставить Радио-86РК работать с 256 таблицей символов?
сам чип не поддерживает больше 7 бит, разве что можно переключать два банка со шрифтами.
Сейчас прийдут специалисты и расскажут что к чему, но в целом - можно смотреть датащит на КР580ВГ75 и держать в памяти, что cp/m для которой вероятно делался этот чип - 127 символов, то есть первая половина ASCII. А то что в Радио86 - это уже самодеятельность
Ну так и переключают адреса ПЗУ со шрифтом. В Микроше - два набора например, в Партнере - гораздо больше. 8 ? Или все же 4?
Забыл)) Давно дело было...
Копейкин
19.03.2022, 22:32
Ну, да. В моей новодельной рк-шке можно просто джампером выбрать одну из таблиц шрифтов. Вот и возникло смутное желание сделать полноценные 256 символов. Значит стоит посмотреть как это реализовано в микроше и партнёре?
В Микроше сигналом GPA0(33) переключают или с клавиатуры. Как перемычка установлена. Я делал с клавиатуры переключение.
Рядом же GPA1 (34) есть . LA0\LA1 наверное можно задействовать.
Копейкин, В КОИ-7 есть коды 0Eh и 0Fh, которые переключают раскладки. Вполне можно сделать так, чтобы после этих символов знакогенератор переключался "на лету" на другую раскладку - например между КОИ-7 Н0 и КОИ-7 Н1.
Копейкин
20.03.2022, 20:47
Джентльмены, но применение управляющих кодов и атрибутов всё равно ведь не даст возможность использовать 8-битную кодировку символа?
Есть как бы реверсивный приём: запихивать в ВГ75 горизонтальные смещения символов, и уже их использовать, как адрес в памяти. Но с 80 символами это несколько неудобно, это же не степень двойки, будут дыры. Хотя ... можно как-нибудь со старшим битом подшаманить. В смысле, затолкать в него перенос. И добавлять к старшей части счётчика адреса. Может прокатить.
Да, иначе если делать, то два VG75 как в видеокарте где-то в этой ветке
и это уже совсем не РК
Ведущий_специалист
22.03.2022, 13:03
Здравствуйте!
Подскажите пожалуйста, можно путём несложных доработок заставить Радио-86РК работать с 256 таблицей символов?
Да возможно. Или ставить вторую вг75 для этого, или делать схему как в кр04 (ну или наподобии того). Я сейчас как раз спаял 2 платы, одну по схеме фредди, вторую по своему методу, включая озу вместо ПЗУ в любом месте экранной области (увы атрибутами).
Джентльмены, но применение управляющих кодов и атрибутов всё равно ведь не даст возможность использовать 8-битную кодировку символа?
Дает. См. терминал на одной ВГ75, я описывал технологию смарт DMA.
- - - Добавлено - - -
Продолжу пожалуй по теме. Теоретики РКашечники сами разберутся.
Слабое место конструкции была не достаточная производительность DMA с некоторыми вытекающими последствиями. Я решился все же опубликовать невероятный способ. Вероятный оставил на полке. Динамическое изменение скорости работы DMAC спасло положение.
https://disk.yandex.ru/i/eBXeNsc57bbemg
Тута правленный бивис
https://disk.yandex.ru/d/GWHhpMoZwOVsjg
- - - Добавлено - - -
Я тут подумал, подумал и решил, что оно и так все возможные текстовые режимы умеет и делать больше ничего не надо. Надо бы каких то графических режимов сделать. Нужно составить список нужных. Мне виднеется 04-06h, возножно и 13h
- - - Добавлено - - -
Забыл дописать. VESA совместимый Bios я писать не буду. Предполагаю ограничиться режимами vga/svga с линейной адресацией, так как не охота реализовывать режимы с организацией из битовых плоскостей. Даже до инженеров ibm дошло это, но не сразу :)
Так ведь линейная адресация только в 13h, CGA обоих и в двухцветных ...
16 цветов все слоёные.
16ти цветные делать из-за их организации и не выйдет. Не вложусь в габариты даже полноразмерной isa карты. Наверно ограничусь совместимостью на уровне cga плюс 640х400х2. Оно хорошо влазит в размер одной микросхемы на 32кб. Больше ставить не хочу, это карта по мотивам конца 70х. Тогда много памяти не было и наборчик чипов как раз родом от туда. На сколько помню все мои ega и выше уже были не на рассыпухе. Так что и я не буду реализовывать их режимы на рассыпухе.
Переживаю, что в графическом режиме карточку программировали на прямую частенько, а это мне не нужно. А так то doom, xenon2, eye of beholder пойдёт и норм. Больше мне не надо. Текстовую часть оставлю как есть, очень хорошо работает и турбо буст будет обязательно, если отважусь на очередную плату.
Оригинальный Doom не заработает. Насколько я помню, он использует Mode X, т.е. битплановую адресацию. Насчёт Ксенона -- не уверен. EOB и прочие старые VGA игрушки должны заработать.
По сути, у тебя выходит MCGA адаптер. Который CGA + 13h. На нём много чего работает нормально.
- - - Добавлено - - -
Но 13h -- это всё-таки 64К.
Но 13h -- это всё-таки 64К.
Есть проблема куда серьезнее, чем 64кб ОЗУ. Это необходимость RAMDAC. 256х18бит. Логично было бы применить промышленный, пока их есть достаточно, даже новые можно купить. Однако что делать с историчностью конструкции? Тут я много думал, еще пару тройку лет назад, когда видеокарта была еще не для ISA. Помню возможные варианты решений:1.Забить на ramdac и 256 цветные режимы. 2.Использовать 3шт быстрых SRAM от кеша материнок с выходом на 3шт КС1118ПА1. 3. Использовать готовый VGA DAC (типа KDA0476 и др.) 1й вариант выбрал, как путь наименьшего сопротивления .
По сути, у тебя выходит MCGA адаптер. Который CGA + 13h. На нём много чего работает нормально.
Скорее всего выйдет MCGA без 13h ;)
Ведущий_специалист
25.05.2022, 15:22
Наконец то я доделал чудо от freddy (отдельная благодарность ему за это), описанное на 31-34 страницах. Вобщем да, оно заработало, перемычки на плате поставил по умолчанию и видяха откликается по адресу 0x8000h. Конечно пришлось повозиться немного с транзистором на hsinc vsinc я поставил bc817 и пришлось немного догонять уровни до 4 вольт. А так в целом под моим рк86 (пальмира) оно заработало. Наблюдается косячек, цвет фона нового символа на один пиксель переходит на предыдущий символ... что то наверное по времянкам упущено. Разберусь.
Подумываю, а не создать ли новую ветку в рк86 подобных о создании нового рк образного компа с 2хвг75 видяхой? Имхо - это по сути то, чего нехватало рк сообществу. Цветные буквы на цветном фоне при 8ми битном знакогенераторе да еще и 80 символов в строке.... да только мечтали о таком..
Копейкин
25.05.2022, 16:31
Интересен новый рк86 будет при условии совместимости со старым софтом. Мне так кажется.
Error404
25.05.2022, 21:58
Наконец то я доделал чудо от freddy (отдельная благодарность ему за это), описанное на 31-34 страницах. Вобщем да, оно заработало, перемычки на плате поставил по умолчанию и видяха откликается по адресу 0x8000h. Конечно пришлось повозиться немного с транзистором на hsinc vsinc я поставил bc817 и пришлось немного догонять уровни до 4 вольт. А так в целом под моим рк86 (пальмира) оно заработало. Наблюдается косячек, цвет фона нового символа на один пиксель переходит на предыдущий символ... что то наверное по времянкам упущено. Разберусь.
Подумываю, а не создать ли новую ветку в рк86 подобных о создании нового рк образного компа с 2хвг75 видяхой? Имхо - это по сути то, чего нехватало рк сообществу. Цветные буквы на цветном фоне при 8ми битном знакогенераторе да еще и 80 символов в строке.... да только мечтали о таком..
Такое устройство интересно как отдельное, подключаемое как адаптер к любой восьмибитке, стартово пускай и к РК86. Если вы соберете в отдельной теме полную методичку - схему, описание, прошивку, печатку, BIOS, советы по запуску и т.п. - то это было бы просто шикарно.
Есть проблема куда серьезнее, чем 64кб ОЗУ. Это необходимость RAMDAC.
Да, это сложный вопрос. Нужна быстрая -- не хуже 30нс! -- статика с мелкой, но необычной геометрией. Да, к примеру, в FPGA такой дошиша, но если есть FPGA, то тогда зачем вообще ВГ5? Сложный вопрос.
Скорее всего выйдет MCGA без 13h ;)
Тогда это будет просто CGA ;)
Вся прелесть MCGA именно в 13h. Под него же столько написано ...
Такое устройство интересно как отдельное, подключаемое как адаптер к любой восьмибитке, стартово пускай и к РК86. Если вы соберете в отдельной теме полную методичку - схему, описание, прошивку, печатку, BIOS, советы по запуску и т.п. - то это было бы просто шикарно.
Она и так подключается к любой 8-ми битке, даже к той, у которой нет нормальной человеческой шины с I\O. Эта видеокарта рождена специально быть универсальной. Печатка и подробнейшее описание программирования и режимов работы шины давно вылоложено в этой ветке, так же. BIOS там не предусмотрен, эта карта под неопределенный тип процессора. Предполагается что тот кто смог собрать это, хорошо знаком с описанием карты и легко напишет видеодрайвер по имеющейся технической документации под свои нужды.
- - - Добавлено - - -
Тогда это будет просто CGA
Вся прелесть MCGA именно в 13h. Под него же столько написано ...
согласен, хорошо, будет RAMDAC.
Пока было время, изучил вопрос детальнее, плохо что у меня железо не совместимо на уровне портов. Много грамотеев туда лезть будет напрямую.
Интересен новый рк86 будет при условии совместимости со старым софтом. Мне так кажется.
рк должен оставаться РК ради совместимости, а это чудо лучше подключать как внешнее устройство.
- - - Добавлено - - -
что то наверное по времянкам упущено. Разберусь.
Именно так. Попробую немного сэкономить Ваше время. Ваша U36 с нормальным быстродействием, а моя была тормозной. Нужно отрезать U36:11 и подать туда сигнал с U18:6. Вообще видеогенератор той карточки малость устаревший, теперешний намного лучше и менее зависим от серий микросхем.
В принципе, есть CY7C136, это 2Кx8 двухпортовка с временем доступа 25 и даже 15 нс, на RAMDAC её хватит. Единственное, чтобы ставить только два корпуса, наверное придётся на самом деле кодировать палитру в RGB565, и размножать младший бит зелёного в остальные компоненты, чтобы был правильный серый, все 64 уровня.
Ну будет использоваться только 1/8 микросхемы, что уж поделать ...
Правда, сейчас она у всех либо поставка под заказ, либо вообще из Китая.
- - - Добавлено - - -
Или можно наоборот, использовать оба порта, чтобы получить 16 бит, но тогда придётся либо ставить 15нс версию и городить арбитраж, либо снег.
Error404
26.05.2022, 12:56
Она и так подключается к любой 8-ми битке, даже к той, у которой нет нормальной человеческой шины с I\O. Эта видеокарта рождена специально быть универсальной. Печатка и подробнейшее описание программирования и режимов работы шины давно вылоложено в этой ветке, так же. BIOS там не предусмотрен, эта карта под неопределенный тип процессора. Предполагается что тот кто смог собрать это, хорошо знаком с описанием карты и легко напишет видеодрайвер по имеющейся технической документации под свои нужды.
Именно так. Вопрос и был - "полезна ли будет трансформация описания того варианта от вида `кто хочет - разберется` к виду `делай раз, делай два, с примерами`", и ответ для меня очевиден - конечно да, раз уж у Ведущего_специалиста есть желание заняться. Ветка со всей информацией (в т.ч. исходниками включая исходники печаток, на основе которых можно будет сделать адаптации под конкретные ПК, например адаптация к конкретному типу слота), собранными ссылками в первой посте темы - как на этом форуме принято, а не с середины треда, притом где желательно быть в теме предыдущих и последующих изысканий. С обсуждением - посмотреть чужой опыт и ошибки, а оно возникнет там где собирают, где понятно что как и зачем. Где так сделано, оказывается что те устройства под силу собрать людям которые в электронике "постольку-поскольку", где не сделано - устройства есть только у автора и одного-двух энтузиастов одного с ним уровня, при том что проекты то реально интересные.
LeoN65816
26.05.2022, 13:00
В принципе, есть CY7C136, это 2Кx8 двухпортовка с временем доступа 25 и даже 15 нс, на RAMDAC её хватит. Единственное, чтобы ставить только два корпуса, ...
Тогда уж смотри в сторону CY7C024.
КАТЕГОРИЧЕСКИ рекомендую (;)) изучить все ссылочки здесь (https://zx-pk.ru/threads/34003-dvukhportovaya-pamyat-na-rassypukhe.html?p=1140550&viewfull=1#post1140550).
Тогда уж смотри в сторону CY7C024.
Зачем? Она ещё больше, будет использоваться только 1/16 микросхемы. Речь же про RAMDAC, это полкилобайта всего.
Да, можно сделать всю видеопамять на двухпортовой статике и вырезать кусок под палитру, я хотел это предложить. Но для этого, наоборот, эти озушки слишком малы.
Ведущий_специалист
27.05.2022, 00:14
Попробую немного сэкономить Ваше время.
Спасибо за отзыв. Есть еще один пока непонятный нюанс. Режим чтения, он не доступен вообще в рабочем режиме DMA, то есть хочешь читать этот кусок ОЗУ - останови DMA?
Ведущий_специалист, ещё как доступен режим чтения и dmac трогать не следует, ним заведует конвейер видеошины. Там конвейеру вообще то фиолетово что выполнять. Любую одну из 4х команд ior,iow,rd,wr он выполняет исправно. Чтение желательно выполнять блоками для получения максимальной производительности, помните об особенности ее механизма чтения.
Если у вас видеокарта установлена поверх адресного пространства, а не в разрыв, т.е там уже есть физическое озу процессорной платы, то сигнал rd к видеокарте вобще не следует подключать.
- - - Добавлено - - -
Ежели не работает, можем пройтись по схеме.
Ведущий_специалист
27.05.2022, 17:40
Ведущий_специалист, ещё как доступен режим чтения и dmac трогать не следует, ним заведует конвейер видеошины. Там конвейеру вообще то фиолетово что выполнять. Любую одну из 4х команд ior,iow,rd,wr он выполняет исправно. Чтение желательно выполнять блоками для получения максимальной производительности, помните об особенности ее механизма чтения.
Если у вас видеокарта установлена поверх адресного пространства, а не в разрыв, т.е там уже есть физическое озу процессорной платы, то сигнал rd к видеокарте вобще не следует подключать.
- - - Добавлено - - -
Ежели не работает, можем пройтись по схеме.
Скажем так, пытался читать эту область директивой D все печально. Физически карта подключена к ркшке у меня в область 8000. ОЗУ я вынул, чтобы не мешала типа работе. Но чет почитал и глаза на лоб полезли, оно может работать поверх озу???
Испытания немного проблематичны, так как я настроил дисковую систему (оболочку) как раз на работу в этой области, что делает крайне неудобное чтение программ с сдшки, то приходится тесты набирать вручную... Соответственно крайне медленно все это происходит. Но если видяха ставится поверх ОЗУ это в корне меняет дело. Так то я любые тесты закомпилю и проверю.
Постараюсь ближайшее время проверить на считывание. Механизм работы понял и вроде должно работать. Про сигнал RD который можно не подключать немного не понял... Надо подумать )).
А вообще хочу также проверить это дело подключив к кр04, там как раз IOR IOW задействованы. Да и в будущем хочу собрать это в связке с 1821вм85.
...
Про сигнал RD который можно не подключать немного не понял... Надо подумать )).
А вообще хочу также проверить это дело подключив к кр04, там как раз IOR IOW задействованы. Да и в будущем хочу собрать это в связке с 1821вм85.
Про сигнал RD который НЕЛЬЗЯ подключать, когда карта установлена поверх ОЗУ, логически понятно.
В карту происходит запись по WR синхронно с ОЗУ, а вот читать из неё по RD - НЕЛЬЗЯ, так как в это время происходит чтение из ОЗУ, расположенного в том-же адресном пространстве.
Ведущий_специалист
28.05.2022, 20:58
.... а вот читать из неё по RD - НЕЛЬЗЯ, так как в это время происходит чтение из ОЗУ, расположенного в том-же адресном пространстве.
Я бы уточнил, что данные считаются из защелки, в которую запишутся данные из ОЗУ от предыдущего обращения. Тут понятно.
Просто я не понял тогда как вообще читать из нее, если RD физически к ней не подключен?
Ведущий_специалист
01.06.2022, 11:26
Нужно отрезать U36:11 и подать туда сигнал с U18:6. Вообще видеогенератор той карточки малость устаревший, теперешний намного лучше и менее зависим от серий микросхем.
Проделал подсказанное. Цвет "уплыл" полностью на предыдущее знакоместо, оставив вертикальную строчку на актуальном. Вернул все назад. Так гораздо лучше. А вообще мне нравится как работает. Сейчас пишу под нее программную оболочку как работать с цветом выводить инфу и т.д. Своего рода удобные библиотеки. Благо работать с ней в программном плане одно удовольствие.
Проделал подсказанное. Цвет "уплыл" полностью на предыдущее знакоместо, оставив вертикальную строчку на актуальном. Вернул все назад. Так гораздо лучше. А вообще мне нравится как работает. Сейчас пишу под нее программную оболочку как работать с цветом выводить инфу и т.д. Своего рода удобные библиотеки. Благо работать с ней в программном плане одно удовольствие.
Спасибо за отзыв, очень рад что вам карта понравилась. Сейчас занят попытками портировать графические режимы 04,05,06,13h, поэтому пишу сюда редко. С уплыванием цвета в предыдущее или последующее знакоместо поясню. Там есть канал вывода пикселей на ир10 и канал вывода цвета на ир37. Уплывание возникает из-за сильной разницы во времени прохождения сигнала через эти каналы, не смотря на то, что они синхронизированы одним и тем же импульсом. Исправить можно коррекцией с помощью конденсаторов или rc цепочек на входах записи. Я все время ставил 1533ир10 и неизвестную перемаркированную 74hc574, коррекции не требовалось.
Если будете разводить новую плату под комп на 8085, возьмите схему видеогенератора от ISA vg75, там все детские болезни по прошествию лет существования карты устранены. Он более технологичен и прощает сборку из разносерийных микросхем. Как раз как любит Error404, делай раз, делай два. По отзывам собравших ISA VG75 знаю что наладки он не требует.
- - - Добавлено - - -
Просто я не понял тогда как вообще читать из нее, если RD физически к ней не подключен?
тут я дополню немного. Если случай с не подключенным RD, то данные видеопамяти читаются из ОЗУ процессорной платы, так как там лежит копия видеобуфера. Напомню, что использовать карту с не подключенным RD возможно только в режиме видеошины 2, поскольку читать порт статуса ВГ75 при первоначальном запуске как то нужно. После запуска карте IORD также не нужен.
Ведущий_специалист
01.06.2022, 18:01
Ну я так и понял, что нет RD, то читаешь дублированный буфер, а состояние вг75 читаешь по IORD.
Еще поморочу голову насчет красивых буковок знакогенератора. Я в схеме поставил 8кб ПЗУ, в принципе то, что было залито от моего РК86 (VGA фонты) прекрасно поперли. Но я тут на форуме раскопал бинарник фонтов и было резко кинулся шить это дело, когда понял - что бинарник 12 кило и не влазит ))). Вопрос, как разделены фонты в этих 12ти килобайтах? я чет с полтыка не понял как работает, страница сколькими битами выделяется при работе с этим бинарником?
е прошил свою ПЗУ грубо обрезав этот 12ти килобайтный бинарник и прошил все 8. вроде показывает вот только вопрос )) что я обрезал там?
По поводу чтения. Есть подозрение - что я что то нахимичил в связке с U37A U37B. Все дело в том, что в оригинальной схеме стоит триггер U37A . Мне почему то это решение не зашло и я поставил ТМ9 (из схемы с тремя вг75). Соответственно с тм9 у меня управляется выборка ир37 и 1я лапа U34A. Благодаря чему освободился 0 бит ир37, и я его пустил на яркостный канал. В моей версии получилось 2 отдельных яркостных канала, для чернил так и для фона. НО!
Отвалился от слова совсем U37A, а так как U37B соединен 10 12 и 13 ногами с этим элементом пришлось химичить. Кстати, что означает U37r в оригинальной схеме... ? Я долго вдуплял и понял что всего лишь объеденины сбросы этих триггеров... или не так?Просто метка u37 это 1 и 4 лапы U37А.... но немного не связывается логически с метками с другой стороны ))).
страница сколькими битами выделяется при работе с этим бинарником?
там 4кб страницы (12бит)
вроде показывает вот только вопрос )) что я обрезал там?
скорее всего шрифт 8х8_bold отрезан.
Отвалился от слова совсем U37A, а так как U37B соединен 10 12 и 13 ногами с этим элементом пришлось химичить. Кстати, что означает U37r в оригинальной схеме... ? Я долго вдуплял и понял что всего лишь объеденины сбросы этих триггеров... или не так?Просто метка u37 это 1 и 4 лапы U37А.... но немного не связывается логически с метками с другой стороны ))).
13 вывод не соединен с U37A. А так то сигнал u37 это подтяжка к лог "1" выводов U37A,B. u37r это сброс строба записи VRDL, определяет начало заднего его фронта. VRDL должен быть короче ~VRD1
u37r рождается в U18F
Ведущий_специалист
10.06.2022, 23:52
Всем привет. Немного окультурил программно 2х вг75 видяшку.
https://cloud.mail.ru/public/SbYH/1gDaBKeML // тут должна быть ссылка на картинку
код выглядит типа вот так..
set_color(white_ink, black_paper);
printtext("The quick brown fox jumps over the lazy dog", 0, 0);
printtext("Съешь еще этих мягких французских булок да выпей чаю.", 0, 1);
printtext("1234567890", 0, 2);
set_color(yellow_ink, blue_paper);
printtext("Как насчет надписей типа Norton Commander?", 0, 4);
вобщем очень удобно с карточкой работать, из непоняток - старт экрана в 0.0 происходит только со второй попытки...
mvi m,21h
mov a,m
loop1:
mov a,m
ani 20h
jz loop1
loop2:
mov a,m
ani 20h
jz loop2
lxi h,08ff8h
вроде текст после такой настройки выводится откуда нужно но курсор... его видно на картинке, я хз почему он там.
Наконец оно выдало картинку. Это mode 06h, игра xenon2.
https://i90.servimg.com/u/f90/20/09/39/66/th/d3f9b610.jpg (https://servimg.com/view/20093966/64)
А так это все выглядит сейчас. На фото видно что использована первая версия карты для ISA.
https://i90.servimg.com/u/f90/20/09/39/66/th/67aabc10.jpg (https://servimg.com/view/20093966/63)
Предварительный итог: железо готово, плату можно разводить. Много вопросов к софту и video BIOS. Как их решать, пока многое не ясно. Да и я знаю пока единственный video BIOS в сети с открытым кодом. Это мой, и своровать идеи не у кого :)))
Игра запущена совместно с Trident 9000i-3, используя свойство моих видеокарт работать поверх чужой памяти. Пока так.
freddy, а у Вас случайно не осталось печатной платы для VGA карты на ВГ75?
freddy, а у Вас случайно не осталось печатной платы для VGA карты на ВГ75?
Нет. Все раздарил фанатам. Новый заказ не планирую. JLCPCB сдулись, теперь не знаю где прототипы производить.
Нет. Все раздарил фанатам. Новый заказ не планирую. JLCPCB сдулись, теперь не знаю где прототипы производить.
OK, спасибо! Я пока другим проектом занят (самодельная XT), а к этому готовлюсь.
В нашем радиомагазине неожиданно нашелся старый запас КР580ВГ75 - я купил все.
Дык, да, нету исходников ни EGA, ни VGA биосов.
Извините за некропост, но в документе
https://minuszerodegrees.net/oa/OA%20-%20IBM%20Enhanced%20Graphics%20Adapter.pdf
есть исходник EGA BIOS. Точнее листинг, но использовать можно.
Alikberov
06.10.2023, 10:47
В очередной раз перечитывая документацию по ВГ75, обратил внимание на коды C0-DF так называемых «рамок», которые формируются с помощью выводов LA0/LA1 с кучей логики и на практике вообще неудобно в реализации…
Особый интерес вызвали коды E4 и E5, которые при установке LA0 управляют сигналом HLGT, представляются обычными символами с неограниченным количеством на строку и никакого срыва цикла ПДП не вызывают.
Среди всех публикаций модифицирования знакогенератора РАДИО-86РК существует ряд недостатков:
Переключение битом ППА ВВ55 неудобно тем, что знакогенератор переключается для всего экрана целиком
Переключение атрибутами самой ВГ75 имеют свои нюансы с ограничением до 16 атрибутов на строку
Переключение между двумя наборами "ЗАГЛАВНЫЕ/строчные" не так универсально и не позволяет красиво оформить текст
Решил я попытаться сделать набросок по доработке узла знакогенератора с использованием сигнала LA0, чтобы подключить дополнительное ПЗУ с таблицей КОИ-8, где одна половина - с латиницей, а вторая - с кириллицей и псевдографикой.
Доработкой схемы РАДИО-86РК является добавление ИМС К155ТМ2:
Левая половинка «KOI7/8» хранит флаг выборки таблицы знакогенерации ("0" - родное ПЗУ; "1" - дополнительное)
Правая половинка «KOI8 (A10)» сохраняет флаг HLGT для выборки половинки дополнительного знакогенератора (128 символов с латиницей или 128 символов с кириллицей)
Навесной монтаж диодов и резисторов (подбираются соответствующим образом) на дополнительную ИМС К155ТМ2 или дополнительные ИМС К155ЛИ1 и К155ЛЛ1 решают проблему синхронизации и подавления выборки ПЗУ.
Дополнительное ПЗУ К573РФ2 с знакогенератором КОI8-R подключается параллельно с РФ1, но выводы 19 и 20 которого подключаются к нашему ТМ2.
Если схема работает, на экране в одной строке можно иметь сразу три знакогенератора:
Родной знакогенератор выбирается всегда началом строки растра (сигналы HRTC/VRTC сбрасывают первую половину нашего ТМ2)
Коды E4 или E5 в знакоместе вырабатывает высокий уровень LA0 и разблокируют прохождение тактовой частоты на ТМ2 через элемент И (первая половина триггера установится в "1", элементом ИЛИ блокируя родной знакогенератор до конца строки, а вторая половина триггера запомнит младший бит кода E4/E5 уровнем HLGT для выбора одной из двух страниц знакогенератора в РФ2 (на схеме указаны лишь сигналы «KOI8 (OE)» для выборки и «KOI8 (A10)» для вывода A10 этого ПЗУ)
Таким образом, в каждой строке можно использовать целых три набора символов:
Родной РК'шный выбирается всегда по умолчанию
Набор ASCII с латинницей в Верхнем и нижнем регистрах выбирается кодом E4
Набор KOI8-R с кириллицей в Верхнем и нижнем регистрах выбирается кодом E5
(На самом деле, переключать можно любым кодом C0…EF, но именно E4/E5 формируют устойчивый уровень LA0 на всех линиях знакоместа.)
Особенность обработки кодов E4 и E5 позволяет их использовать в любом количестве на строку, не вызывая сбоя в цикле ПДП (экран не поплывёт).
NEO SPECTRUMAN
25.03.2024, 07:08
а тут я нипонел (или забыл)
а как на этой вг75 видео карте имитируетсо битмапные видео режимы? о_О
или это модифицированнный дум запускали под текстмод?
Alikberov
26.09.2024, 00:34
С юности меня интересовали студийные технологии телевидения.
В частности, наложение различной справочной информации на изображение в кадре, бегущая строка и т.п.
Сейчас вернулся к вопросу и сделал набросок одного из возможных вариантов синхронизации ВГ75 от внешнего источника композитного видео.
Из всех доработок:
Отрезаем вывод 7 ВГ75 к выводу 4 ЛП5 и оба выводим к дополнительному ТМ2
Отрезаем выводы 2 и 3 у ИЕ4 от массы и подключаем к дополнительному ТМ2Логика работы схемы следующая:
Первая половина ТМ2 включена в режим инвертирования сигнала «BURST» от LM1881 и пока не пришёл ССИ как лог. "0", с вывода 6 выдаётся лог. "0" на вывод 4 элемента ЛП5 D5.2
В конце графической линии растра ВГ75 вырабатывает сигнал HRTC и стробирует загрузку "1" с первой половины ТМ2 во вторую половину ТМ2
Загруженная лог. "1" с вывода 9 поступает на выводы 2 и 3 ИЕ4, переводя его в состояние сброса, чем прерывается поступление частоты сигналом CCLK на ВГ75 в ожидании синхроимпульса от внешнего источника
Когда LM1881 обнаруживает синхроимпульс и вырабатывает лог. "0" на «BURST», с вывода 6 ТМ2 на вывод 4 ЛП5 D5.2 поступает лог. "1". Также лог. "0" на «BURST» сбрасывает вторую половину ТМ2 и на выводе 9 устанавливается лог. "0", разращая работу счётчика ИЕ4 в штатном режиме
Так как ВГ75 всё это время находилась без тактирования по CCLK, теперь начинается отсчёт длительности сигнала HRTC уже с началом ССИ от внешнего источника, тем самым позволяя программисту использовать параметр «ZZZZ» как величину определения левого "бордюра"
Главное условие корректной работы: HRTC должен приходить раньше сигнала ССИ внешнего источника.
Решение: Либо чуть повысить частоту тактирования ИЕ4, либо в коде инициализации ВГ75 константу 93h заменить на 92h.
P.S.: Вариант схемы очень черновой и нигде не проверялся.
Также, в схеме нет (пока что) синхронизации по кадрам: Картинка будет прыгать.
Alikberov
05.10.2024, 02:10
В очередной раз перечитывая документацию к ИМС i8275/ВГ75, задумался над примечанием:
Note: If a Stop DMA character is not the last character in a burst or row, DMA is not stopped until after the next character is read. In this situation, a dummy character must be placed in memory after the Stop DMA character.Тем самым, если в конце строки разместить код F1 или F3 в конце кадра, любой следующий символ будет прочитан, но проигнорирован самой ВГ75.
А это - целых 256 комбинаций кода!
Осталось лишь разработать схемку...
Вентиль 5-И отлавливает ситуацию с кодами F0-FF
Триггер ТМ2 защёлкивает флаг "управляющего кода"
Регистр ИР27 запоминает следующий Dummy-байт
В общем, всё просто!
Опционально можно выбирать хоть любой из 256-ти знакогенераторов в каждой строке или устанавливать палитру.
В общем, дело вкуса и фантазии!
Тем самым, подобно как и в ПК Atari-XE, можно под каждую строку изменять и режим интерпретации символов (пропускать код через знакогенератор, непосредственно рассматривать его как три четырёхцветных CGA-пикселя или два восьмицветных пикселя и т.п.).
CodeMaster
05.10.2024, 09:33
В общем, всё просто!
Такое ощущение, что на ВГ75 скоро сделают VGA-карту с полноценной графикой ;-)
Alikberov
03.11.2024, 09:03
Вообще-то, вариантов с перегружаемым знакогенераторов достаточно.
Но, вот ещё один вариант, от меня.
Пока только эскиз, концепт.
Суть идеи в том, что ОЗУ знакогенератора РУ8/РУ10 программирует сама ВГ75.
Полное формирование адреса LC0-LC2 и CC0-CC6
Сохранение кода символа в промежуточный буфер на ИР23
Запись кода предыдущего символа в ОЗУ сигналом LA1 только по линии подчёркивания с помощью кода псевдографики C0h/C1h
Тем самым, формально, просто на панельке меняем РФ1 на РУ8/РУ10 и добавляем промежуточный буфер на ИР23 параллельно этому ОЗУ - всего две ИМС.
На деле - нужна ещё некоторая логика.
Тем более, по холодному включению ОЗУ знакогенератора будет, естественно, пусто. И на экране ничего хорошего не увидим. Придётся вслепую загружать и запускать код первоначальной заливки фонта в это ОЗУ.
Собственно, процесс прошивки фонта - не так прост и требует несколько трюков:
ВГ75 настраивается на любой подходящий режим с высотой знакоместа в восемь линий
Позиция линии подчёркивания сбрасывается в НОЛЬ
В буфере экрана заливается таблица особым образом (код графики для конкретной линии подчёркивания; код C0h/C1h; код программируемого символа)
При ширине экрана в 78 символов можно в строке запрограммировать разом до 25 символов
Дожидаемся флага конца кадра в статусе ВГ75 и смещаем позицию линии подчёркиввания на единицу вниз
Повторяем процесс на все восемь линий фонта
Тем самым, на перепрошивку фонта требуется восемь кадров.
Однако, есть вариант комбинированный - с РФ1 и ОЗУ, чтобы при первом включении всё работало как прежде.
В таком варианте ПЗУ штатного знакогенератора активируется всегда в начала каждого знакоряда - по HRTC.
Для переключения в пределах текущего знакоряда на ОЗУ знакогенератора используются коды псевдо-атрибутов E4h (младший 1 Кб РУ8/РУ10) и E5h (старший 1 Кб РУ8/РУ10).
Alikberov
03.09.2025, 22:51
Как известно, ИМС ВГ75 имеет множество тайников, которыми рано или поздно следует воспользоваться.
Предлагаемый ниже эскиз доработки схемы позволит иметь на экране до четырёх знакогенераторов.
В пределах одного знакоряда можно выбрать только один из знакогенераторов.
Никакие атрибуты при этом не используются и доработка никак не скажется на цвете.
Переключение знакогенератора происходит кодами F0h, F4h, F8h и FCh, которые указываются в любом месте знакоряда.
Соответственно, переключение знакогенератора производится постфиксно, а не префиксно, как с атрибутами цвета.
Следовательно, самый последний код в очередном пакете знакоряда ПДП будет определяющим.
Схема достаточно проста и содержит всего три ИМС:
ЛЕ7: Левый в схеме вентиль отлавливает момент ответа ПДП, правый - отлавливает самую верхнюю скэн-линию знакоряда
ЛИ3 отлавливают диапазон кодов F0h-FFh в пакете ПДП
ТМ5.1 защёлкивает биты D2 и D3 пакета ПДП, а ТМ5.2 защёлкивает код страницы знакогенератора для нового знакоряда
Сигнал «Запрет» - опционален и может запрещать переключение знакогенератора. Может поступать откуда угодно - от тумблера или от ВВ55.
Недостаток схемы представляемой версии в том, что при первом включении триггеры-защёлки ТМ5 могут находиться в любом состоянии.
Соответственно, на экране будет активна неопределённая страница знакогенератора.
Что решается довольно просто. Например, записью кода F3h по адресу 7FF3h директивой M Монитора.
P.S.: Как и схема RAM-Фонта, данная схема пока нигде не проверялась и рассматривается лишь как концепт.
P.P.S.: Отдельная благодарность Дмитрию Иванову (https://zx-pk.ru/members/9631-hammer.html) за внимание к моим фантазиям и их практической успешной реализации (https://zx-pk.ru/threads/36206-ramfont-ruslana-alikberova-(skhema-kod).html) в рабочих прототипах.
P.P.P.S.: В комбинации со схемой выше (https://zx-pk.ru/threads/26455-chto-maksimum-mozhno-vyzhat-iz-kr580vg75-intel-8275-obsuzhdenie.html?p=1186570&viewfull=1#post1186570) можно получить до 12 знакогенераторов на экране - дюжину.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot