А вот без полутонов - просто 2 палитры с 4 цветами каждая (палитры переключаются битом выбор шрифта Font), как я и предполагал изначально (и когда данные 111111 это всегда чернота без полутонов не смотря на значения D6 и D7):
Attachment:
Screenshot from 2024-01-20 01-28-30.png [ 15.67 KiB | Viewed 724 times ]
Как можно видеть это 13 гейтов против 23-х в случае с полутонами (экономия порядка 2.5 корпусов мелкой логики) - как говорится "выбирай, но осторожно, но выбирай"
Приаттачиваю архив с логисимовскими схемами если вдруг кто хочет потестить:
Как можно видеть это 13 гейтов против 23-х в случае с полутонами (экономия порядка 2.5 корпусов мелкой логики) - как говорится "выбирай, но осторожно, но выбирай"
По идее всю эту полутоновую логику можно затолкать в одну галку 16v8, но люди не поймут и не простят
Либо пока сейчас строить "навесиком" без полутонов (и по адресу C000 вместо E800), чтобы отладиться, и уже потом делать боевую схему с галками и полутонами...
Как можно видеть это 13 гейтов против 23-х в случае с полутонами (экономия порядка 2.5 корпусов мелкой логики) - как говорится "выбирай, но осторожно, но выбирай"
По идее всю эту полутоновую логику можно затолкать в одну галку 16v8, но люди не поймут и не простят
Попробовал задействовать для полутонового варианта более сложную логику AND-OR-INVERT (AOI):
Attachment:
RK-color-2aoi-small.jpg [ 91.18 KiB | Viewed 672 times ]
Но из-за того, что выходы пришлось инвертировать и ещё нам оказались нужны сигналы "изнутри" AOI, пришлось вставлять дополнительные гейты снаружи - в итоге те же 7 корпусов получились (причём остались 1 XOR-гейт, 1 OR-гейт и 1 NOT-гейт).
А в первоначальном варианте с "полутонами" получается такая раскладка:
Code:
7411 (3 x AND3) 7486 (4 x XOR) - 1 2x 7408 (4 x AND) - 2 2x 7432 (4 x OR) - 1 7404 (6 x NOT) - 3
7 корпусов задействовано и остались свободными 1 XOR-гейт, 2 AND-гейта, 1 OR-гейт и 3 NOT-гейта:
Тут кстати нижний OR-гейт можно заменить на XOR-гейт т.к. вариант 11 обрабатывается другой веткой, однако копусов это не убавит, а просто задействует все XOR-гейты и оставит 2 OR-гейта свободными вместо одного.
В варианте без полутонов получается 4 корпуса, однако если подключить свободный XOR-гейт вместо первого инвертора, а второй инвертор выкинуть (т.к. инвертированный видеосигнал Shifted можно взять из схемы РК, отрезав его от смесителя), то у нас останется всего лишь 3 корпуса - 7486 (4 x XOR), 7408 (4 x AND), 7432 (4 x OR) и ни одного свободного гейта:
Attachment:
Screenshot from 2024-01-20 15-29-48.png [ 10.3 KiB | Viewed 670 times ]
А теперь несколько филосовский момент - для того, чтобы заливать шрифт в ОЗУ шрифтов при старте компьютера, потребуется изменить монитор, что в купе с расширенной памятью, новым железом переподключающим ОЗУ шрифта туда-сюда и новой многоцветностью уводит этот концепт в сторону от РК-86, т.е. это будет уже НЕ Радио-86РК, а нечто более другое. В результате по-видимому придётся сменить название например на SUPER-86RK/128K:
Attachment:
Screenshot from 2024-01-20 18-43-47.png [ 506 Bytes | Viewed 650 times ]
(причём теоретически возможны варианты с 256KB, 512KB и даже 1МБ ОЗУ)
P.S. Если уж мы меняем монитор, то можно поправить инициализацию ВГ75 (по адресу #FADC заменить #93 на #D3), чтобы спец-коды не сбивали синхронизацию (без плясок с бубнами вокруг ПДП) - в результате возникнет возможность реализовать и более стандартные системы цветности - Толкалина, Фролкина и Самоцвет Акименко, а может быть даже ещё и апогеевский до кучи (и переключать их вручную тумблером).
P.P.S. Вот ещё чего у себя откопал - непомню откуда взял:
P.P.P.P.S. На zx-pk.ru мне пояснили, что тут цвет фона ещё заводится, который сохраняется в триггерах и задаётся он с помощью битов LA0, LA1 и LTEN, которые изначально были предназначены для отображения псевдографики - вот что про это написано в книжке "Домашний компьютер":
Attachment:
VG75-pseudogr.jpg [ 136.66 KiB | Viewed 643 times ]
и как можно видеть управлять этими битами из программы не так уж и просто, например есть псевдографика, где LA0 принимает значение 1 во всю высь знакоместа, но вот для LA1 или LTEN такого нет (LTEN вообще подсвечивается либо как курсор внизу знакоместа, либо как часть псевдографики в середине знакоместа) - значит придётся не по одному, а иногда и по 2 псевдографических символа подряд выводить, чтобы сбросить триггер во всех строках знакоместа. Оно работает примерно так: - LA1=0 LA0=1 и HLG=1 сбрасывает все три триггера в 0; - LA1=1 LA0=0 устанавливает триггер R фона в 1; - LA1=1 LA0=1 устанавливает триггер G фона в 1 (одновременно в 1 они могут быть только в средней линии символа псевдографики); - LA1=0 LA0=1 и LTEN=1 устанавливает триггер B фона в 1 (вот это по моим понятиям работать НЕ будет - см. выше почему).
P.P.P.P.P.S. Хотя возможно тут суть в том, что LA1 и LTEN могут выдавать 1 на уровне курсора (не одновременно), что будет включать раскрашивание вниз! Получается это не часть строки раскрашивает, а блок экрана во всю ширь с какой-то строки вниз пока не отключат - однако всё равно LA0=1 и LTEN=1 одновременно случиться не могут - значит для установки триггера B надо взять не LA0 из ВГ75, а скажем задержанное в регистре значение из предыдущего символа...
Если уж мы меняем монитор, то можно поправить инициализацию ВГ75 (по адресу #FADC заменить #93 на #D3), чтобы спец-коды не сбивали синхронизацию (без плясок с бубнами вокруг ПДП) - в результате возникнет возможность реализовать и более стандартные системы цветности - Толкалина, Фролкина и Самоцвет Акименко, а может быть даже ещё и апогеевский до кучи (и переключать их вручную тумблером).
По идее можно и значение по адресу #FADC тумблером менять Чтобы оригинальные РК-шные проги с цветом тоже работали (там где танцы с бубнами вокруг ПДП) Типа ПЗУ будет содержать изменённое значение #D3, а тумблером можно включить оригинальное значение #93 - для этого надо ловить чтение с адреса #FADC (1111 1010 1101 1100) и опционально сбрасывать битик В6 в ноль:
Code:
D3 = 1101 0011 93 = 1001 0011
Либо делаем на плате несколько микропереключателей для задания конфигурации бута и расширенный монитор будет читать их одним байтом и делать программную коррекцию логики бута в соответствии с состоянием отдельных битов - среди них могут быть: - бит настройки режима атрибутов ВГ75: 1 - классический с ичезновением атрибутов, 0 - отображающий атрибут как пробел; - бит выбора шрифта на старте: 0 - основной шрифт, 1 - альтернативный шрифт (английский); - бит выбора ОС: 0 - монитор Радио-86РК, 1 - ShaOS с квазидиска
По поводу наших "полутонов":
Alikberov wrote:
Shaos wrote:
Возвращаясь к картинке:
Почему где-то цвета ярче, а где-то темнее? А так по цветам как у меня на прошлой странице выбрано для палитры по умолчанию: 11 - белый, 10 - красный, 01 - зеленый и 00 - синий. По идее биты в знакоместах у РК инверсные - т.е. единички это чёрный фон, а нолики - белые (или цветные) точки. Получается единички в последних строчках должны быть чёрные? Или это особый случай для возможности рисования цветного фона? По идее мысль интересная!
Да, если пиксели не горят, но цвет задан - цвет отображается фоном в полутонах.
Вот чего подумалось - если эти "полутона" как бы цвет фона пустой плашки, то может быть имеет смысл его "запомнить" как цвет фона далее и на протяжении строчки растра держать этот цвет вместо чёрного пока не встретится конец линии (строчный синхроимпульс) либо следующий подобный "полутон"?
Тогда графика станет сильно веселее
P.S. Правда встаёт вопрос как же чистить такой фон по ходу линии - байтом (11)111111, который означает чёрный фон, вроде как нельзя т.к. он может попадаться в обычных символах ( например в верхней части . или + ) и цветной фон должен на них сохраняться. Если оставлять цветной фон всегда до правого края экрана, то это сильно урежет возможности по использованию такой раскраски. По идее можно атрибутами ВГ75 цветной фон гасить, но тогда уж и всё остальное надо поддерживать (инверсию, мерцание и т.д.) либо надо запоминать предыдущий байт и если мы получили (11)111111 и предыдущий был (xx)111111, где xx!=11, то цвет фона сбрасывается в чёрный...
P.P.P.P.S. На zx-pk.ru мне пояснили, что тут цвет фона ещё заводится, который сохраняется в триггерах и задаётся он с помощью битов LA0, LA1 и LTEN, которые изначально были предназначены для отображения псевдографики
Теоретически, можно LA0 использовать для переключения знакогенератора кодами E4/E5. Тогда получаем три знакогенератора в одной строке - выбор из 384 символов.
Типа, вот такой схемой (или как могла бы выглядить вся схема с такой доработкой):
Attachments:
File comment: Схема РАДИО-86РК на три знакогенератора и "свободными атрибутами"
photo_2023-10-12_08-06-14.jpg [ 364.79 KiB | Viewed 809 times ]
File comment: 1. Родной знакогенератор РК после каждого HRTC 2. Код E4 для выбора ASCII с заглавными и строчными буквами 3. Код E5 для выбора KOI8-R с заглавными и строчными буквами Сами кода E4/E5 отображаются пробелами и могут между словами их подменять
photo_2023-10-08_06-52-55.jpg [ 182.31 KiB | Viewed 812 times ]
21 Jan 2024 00:17
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22615 Location: Silicon Valley
P.P.P.P.S. На zx-pk.ru мне пояснили, что тут цвет фона ещё заводится, который сохраняется в триггерах и задаётся он с помощью битов LA0, LA1 и LTEN, которые изначально были предназначены для отображения псевдографики
Теоретически, можно LA0 использовать для переключения знакогенератора кодами E4/E5. Тогда получаем три знакогенератора в одной строке - выбор из 384 символов.
Я у себя знакогенератор переключаю свободным битом C1 клавиатурной ВВ55, а при наличии ОЗУ в качестве знакогенератора больше двух шрифтов наверное и ненужно (их тоже можно в пределах кадра переключать, если очень надо - привязавшись к состоянию кадрового синхроимпульса). По LA0 да - я вижу, можно задействовать подо что-то управляясь им через E4/E5.
А вообще я после того, как вчитался в это дело чего-то теперь думаю, что надо таки сделать псевдографику как "отцы" завещали
Attachments:
VG75-pseudogr-hardware.jpg [ 88.78 KiB | Viewed 808 times ]
Журнал Радио в 1986 году ни о чём таком не писал - ни в 5-м, ни в 12-м номере! Тут мало того, что ПЗУ на 8КБ (хотя в легенде всё ещё написано К573РФ1), так ещё и 4 бита под высоту символа отведено ну и плюс вкрапления логики LA0/HLGT для переключения шрифтов....
Я у себя знакогенератор переключаю свободным битом C1 клавиатурной ВВ55, а при наличии ОЗУ в качестве знакогенератора больше двух шрифтов наверное и ненужно (их тоже можно в пределах кадра переключать, если очень надо - привязавшись к состоянию кадрового синхроимпульса). По LA0 да - я вижу, можно задействовать подо что-то управляясь им через E4/E5.
А вообще я после того, как вчитался в это дело чего-то теперь думаю, что надо таки сделать псевдографику как "отцы" завещали
Вы немного не поняли... Добавлением ТМ2 с помощью кодов E4 и E5 можно переключать знакогенератор в пределах одной строки хоть все 78 раз (атрибуты такое не позволяют). Сами коды E4/E5 при этом сами вырабатывают VSP и подавляют знакогенератор, отображаясь пробелом. Это позволяет в одной строке иметь три набора по 128 символов:
Родной знакогенератор РК в каждой строке после HRTC
128 символов ASCII OEM с заглавными и строчными
128 символов КОИ8 с кириллицей и псевдографикой
Тем самым, псевдографические рамки можно рисовать кодами 20-3E.
21 Jan 2024 01:18
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22615 Location: Silicon Valley
В пределах одной строки? Ну обычный текст где всё в кучу так без обработки не покажешь - надо либо специально текст готовить для такого вывода, расставляя E4/E5, либо на лету обрабатывать на предмет где надо контекст переключить будут вставляться пробелы с переключениями шрифтов типа на входе "Радио-86RK", а отобразится "Радио-86 RK" и т.д. Вобщем полезность сомнительная по-моему...
Users browsing this forum: No registered users and 57 guests
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum