А если вместо ВВ55 (8255) поставить современный 5-мегагерцовый 82C55A то он тоже будет рандомно FF/FE возвращать?Alikberov wrote:ВВ55 игнорирует чтение режима и возвращает FF/FE по 8003 - можно это использовать...
Радио-86РК на SRAM 128K Alpha (2014) & Beta (2024)
Moderator: Shaos
-
Shaos
- Admin
- Posts: 24425
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Alpha
You do not have the required permissions to view the files attached to this post.
-
Alikberov
- Doomed
- Posts: 376
- Joined: 14 Oct 2019 18:10
- Location: Tashkent
Re: Радио-86РК на SRAM 128K Alpha
Судя по таблице, у него всё как надо - возвращает управляющее режимом слово.Shaos wrote:А если вместо ВВ55 (8255) поставить современный 5-мегагерцовый 82C55A то он тоже будет рандомно FF/FE возвращать?
-
Shaos
- Admin
- Posts: 24425
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
-
Alikberov
- Doomed
- Posts: 376
- Joined: 14 Oct 2019 18:10
- Location: Tashkent
Re: Радио-86РК на SRAM 128K Alpha
У меня это выглядит так:Shaos wrote:т.е. FF/FE не будет?
-
Shaos
- Admin
- Posts: 24425
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Alpha
Понятно
Возвращаясь к цветам:
(выходы R,IR,G,IG,B,IB предполагаются быть подключенными к цветному TFT-контроллеру от alexcp)
А вот без полутонов - просто 2 палитры с 4 цветами каждая (палитры переключаются битом выбор шрифта Font), как я и предполагал изначально (и когда данные 111111 это всегда чернота без полутонов не смотря на значения D6 и D7):
Как можно видеть это 13 гейтов против 23-х в случае с полутонами (экономия порядка 2.5 корпусов мелкой логики) - как говорится "выбирай, но осторожно, но выбирай"
Приаттачиваю архив с логисимовскими схемами если вдруг кто хочет потестить:
Возвращаясь к цветам:
С полутонами логика выглядит несколько тяжеловато (вход Shifted это выход сдвигового регистра, в котором защёлкиваются D0-D5):Shaos wrote:Если добавить полутона, то мои цвета в двух палитрах будут выглядеть вот так:
- (11)010101 - @@@@@@ - @@@@@@
- (10)101010 - @@@@@@ - @@@@@@
- (01)010101 - @@@@@@ - @@@@@@
- (00)101010 - @@@@@@ - @@@@@@
- (11)111111 - @@@@@@ - @@@@@@
- (10)111111 - @@@@@@ - @@@@@@
- (01)111111 - @@@@@@ - @@@@@@
- (00)111111 - @@@@@@ - @@@@@@
(выходы R,IR,G,IG,B,IB предполагаются быть подключенными к цветному TFT-контроллеру от alexcp)
А вот без полутонов - просто 2 палитры с 4 цветами каждая (палитры переключаются битом выбор шрифта Font), как я и предполагал изначально (и когда данные 111111 это всегда чернота без полутонов не смотря на значения D6 и D7):
Как можно видеть это 13 гейтов против 23-х в случае с полутонами (экономия порядка 2.5 корпусов мелкой логики) - как говорится "выбирай, но осторожно, но выбирай"
Приаттачиваю архив с логисимовскими схемами если вдруг кто хочет потестить:
You do not have the required permissions to view the files attached to this post.
-
Shaos
- Admin
- Posts: 24425
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Alpha
По идее всю эту полутоновую логику можно затолкать в одну галку 16v8, но люди не поймут и не простятShaos wrote:Как можно видеть это 13 гейтов против 23-х в случае с полутонами (экономия порядка 2.5 корпусов мелкой логики) - как говорится "выбирай, но осторожно, но выбирай"![]()
Либо пока сейчас строить "навесиком" без полутонов (и по адресу C000 вместо E800), чтобы отладиться, и уже потом делать боевую схему с галками и полутонами...
-
Shaos
- Admin
- Posts: 24425
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Alpha
Попробовал задействовать для полутонового варианта более сложную логику AND-OR-INVERT (AOI): Но из-за того, что выходы пришлось инвертировать и ещё нам оказались нужны сигналы "изнутри" AOI, пришлось вставлять дополнительные гейты снаружи - в итоге те же 7 корпусов получились (причём остались 1 XOR-гейт, 1 OR-гейт и 1 NOT-гейт).Shaos wrote:По идее всю эту полутоновую логику можно затолкать в одну галку 16v8, но люди не поймут и не простятShaos wrote:Как можно видеть это 13 гейтов против 23-х в случае с полутонами (экономия порядка 2.5 корпусов мелкой логики) - как говорится "выбирай, но осторожно, но выбирай"![]()
А в первоначальном варианте с "полутонами" получается такая раскладка:
Code: Select all
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
Тут кстати нижний OR-гейт можно заменить на XOR-гейт т.к. вариант 11 обрабатывается другой веткой, однако копусов это не убавит, а просто задействует все XOR-гейты и оставит 2 OR-гейта свободными вместо одного.
В варианте без полутонов получается 4 корпуса, однако если подключить свободный XOR-гейт вместо первого инвертора, а второй инвертор выкинуть (т.к. инвертированный видеосигнал Shifted можно взять из схемы РК, отрезав его от смесителя), то у нас останется всего лишь 3 корпуса - 7486 (4 x XOR), 7408 (4 x AND), 7432 (4 x OR) и ни одного свободного гейта:
You do not have the required permissions to view the files attached to this post.
-
Shaos
- Admin
- Posts: 24425
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Alpha
А теперь несколько филосовский момент - для того, чтобы заливать шрифт в ОЗУ шрифтов при старте компьютера, потребуется изменить монитор, что в купе с расширенной памятью, новым железом переподключающим ОЗУ шрифта туда-сюда и новой многоцветностью уводит этот концепт в сторону от РК-86, т.е. это будет уже НЕ Радио-86РК, а нечто более другое. В результате по-видимому придётся сменить название например на SUPER-86RK/128K:
(причём теоретически возможны варианты с 256KB, 512KB и даже 1МБ ОЗУ)
P.S. Если уж мы меняем монитор, то можно поправить инициализацию ВГ75 (по адресу #FADC заменить #93 на #D3), чтобы спец-коды не сбивали синхронизацию (без плясок с бубнами вокруг ПДП) - в результате возникнет возможность реализовать и более стандартные системы цветности - Толкалина, Фролкина и Самоцвет Акименко, а может быть даже ещё и апогеевский до кучи (и переключать их вручную тумблером).
P.P.S. Вот ещё чего у себя откопал - непомню откуда взял:
P.P.P.S. По названию файла через яндекс нашёл первоисточник - это Rokl опубликовал (автор РК-шки на 8085) в 2011 году:
https://zx-pk.ru/threads/13148-radio-rk-86-kompyuter-s-protsessorom-1821vm85.html?p=375381&viewfull=1#post375381
P.P.P.P.S. На zx-pk.ru мне пояснили, что тут цвет фона ещё заводится, который сохраняется в триггерах и задаётся он с помощью битов LA0, LA1 и LTEN, которые изначально были предназначены для отображения псевдографики - вот что про это написано в книжке "Домашний компьютер":
и как можно видеть управлять этими битами из программы не так уж и просто, например есть псевдографика, где 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, а скажем задержанное в регистре значение из предыдущего символа...
(причём теоретически возможны варианты с 256KB, 512KB и даже 1МБ ОЗУ)
P.S. Если уж мы меняем монитор, то можно поправить инициализацию ВГ75 (по адресу #FADC заменить #93 на #D3), чтобы спец-коды не сбивали синхронизацию (без плясок с бубнами вокруг ПДП) - в результате возникнет возможность реализовать и более стандартные системы цветности - Толкалина, Фролкина и Самоцвет Акименко, а может быть даже ещё и апогеевский до кучи (и переключать их вручную тумблером).
P.P.S. Вот ещё чего у себя откопал - непомню откуда взял:
P.P.P.S. По названию файла через яндекс нашёл первоисточник - это Rokl опубликовал (автор РК-шки на 8085) в 2011 году:
https://zx-pk.ru/threads/13148-radio-rk-86-kompyuter-s-protsessorom-1821vm85.html?p=375381&viewfull=1#post375381
P.P.P.P.S. На zx-pk.ru мне пояснили, что тут цвет фона ещё заводится, который сохраняется в триггерах и задаётся он с помощью битов LA0, LA1 и LTEN, которые изначально были предназначены для отображения псевдографики - вот что про это написано в книжке "Домашний компьютер":
и как можно видеть управлять этими битами из программы не так уж и просто, например есть псевдографика, где 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, а скажем задержанное в регистре значение из предыдущего символа...
You do not have the required permissions to view the files attached to this post.
-
Shaos
- Admin
- Posts: 24425
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Alpha
По идее можно и значение по адресу #FADC тумблером менятьShaos wrote:Если уж мы меняем монитор, то можно поправить инициализацию ВГ75 (по адресу #FADC заменить #93 на #D3), чтобы спец-коды не сбивали синхронизацию (без плясок с бубнами вокруг ПДП) - в результате возникнет возможность реализовать и более стандартные системы цветности - Толкалина, Фролкина и Самоцвет Акименко, а может быть даже ещё и апогеевский до кучи (и переключать их вручную тумблером).
Чтобы оригинальные РК-шные проги с цветом тоже работали (там где танцы с бубнами вокруг ПДП)
Типа ПЗУ будет содержать изменённое значение #D3, а тумблером можно включить оригинальное значение #93 - для этого надо ловить чтение с адреса #FADC (1111 1010 1101 1100) и опционально сбрасывать битик В6 в ноль:
Code: Select all
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, то цвет фона сбрасывается в чёрный...
-
Shaos
- Admin
- Posts: 24425
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Alpha
Я смотрю люди в играх настраивают ВГ75 так, чтобы символы без чёрных полос между ними были:
Правда при этом какие-то нереальные видеорежимы получаются типа 53.83 Гц, но зато 35 строк вместо 30...
P.S. А вот как этот участок выглядит на реальном РК со схемой Толкалина (без регистра + замена 000 на белый):
Правда при этом какие-то нереальные видеорежимы получаются типа 53.83 Гц, но зато 35 строк вместо 30...
P.S. А вот как этот участок выглядит на реальном РК со схемой Толкалина (без регистра + замена 000 на белый):
You do not have the required permissions to view the files attached to this post.
-
Alikberov
- Doomed
- Posts: 376
- Joined: 14 Oct 2019 18:10
- Location: Tashkent
Re: Радио-86РК на SRAM 128K Alpha
Теоретически, можно LA0 использовать для переключения знакогенератора кодами E4/E5. Тогда получаем три знакогенератора в одной строке - выбор из 384 символов.Shaos wrote:P.P.P.P.S. На zx-pk.ru мне пояснили, что тут цвет фона ещё заводится, который сохраняется в триггерах и задаётся он с помощью битов LA0, LA1 и LTEN, которые изначально были предназначены для отображения псевдографики
Типа, вот такой схемой (или как могла бы выглядить вся схема с такой доработкой):
You do not have the required permissions to view the files attached to this post.
-
Shaos
- Admin
- Posts: 24425
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Alpha
Я у себя знакогенератор переключаю свободным битом C1 клавиатурной ВВ55, а при наличии ОЗУ в качестве знакогенератора больше двух шрифтов наверное и ненужно (их тоже можно в пределах кадра переключать, если очень надо - привязавшись к состоянию кадрового синхроимпульса). По LA0 да - я вижу, можно задействовать подо что-то управляясь им через E4/E5.Alikberov wrote:Теоретически, можно LA0 использовать для переключения знакогенератора кодами E4/E5. Тогда получаем три знакогенератора в одной строке - выбор из 384 символов.Shaos wrote:P.P.P.P.S. На zx-pk.ru мне пояснили, что тут цвет фона ещё заводится, который сохраняется в триггерах и задаётся он с помощью битов LA0, LA1 и LTEN, которые изначально были предназначены для отображения псевдографики
А вообще я после того, как вчитался в это дело чего-то теперь думаю, что надо таки сделать псевдографику как "отцы" завещали
You do not have the required permissions to view the files attached to this post.
-
Shaos
- Admin
- Posts: 24425
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Alpha
-
Alikberov
- Doomed
- Posts: 376
- Joined: 14 Oct 2019 18:10
- Location: Tashkent
Re: Радио-86РК на SRAM 128K Alpha
Вы немного не поняли...Shaos wrote:Я у себя знакогенератор переключаю свободным битом C1 клавиатурной ВВ55, а при наличии ОЗУ в качестве знакогенератора больше двух шрифтов наверное и ненужно (их тоже можно в пределах кадра переключать, если очень надо - привязавшись к состоянию кадрового синхроимпульса). По LA0 да - я вижу, можно задействовать подо что-то управляясь им через E4/E5.
А вообще я после того, как вчитался в это дело чего-то теперь думаю, что надо таки сделать псевдографику как "отцы" завещали
Добавлением ТМ2 с помощью кодов E4 и E5 можно переключать знакогенератор в пределах одной строки хоть все 78 раз (атрибуты такое не позволяют). Сами коды E4/E5 при этом сами вырабатывают VSP и подавляют знакогенератор, отображаясь пробелом.
Это позволяет в одной строке иметь три набора по 128 символов:
- Родной знакогенератор РК в каждой строке после HRTC
- 128 символов ASCII OEM с заглавными и строчными
- 128 символов КОИ8 с кириллицей и псевдографикой
-
Shaos
- Admin
- Posts: 24425
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Alpha
В пределах одной строки? Ну обычный текст где всё в кучу так без обработки не покажешь - надо либо специально текст готовить для такого вывода, расставляя E4/E5, либо на лету обрабатывать на предмет где надо контекст переключить будут вставляться пробелы с переключениями шрифтов типа на входе "Радио-86RK", а отобразится "Радио-86 RK" и т.д. Вобщем полезность сомнительная по-моему...
