nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 01:49



Reply to topic  [ 255 posts ]  Go to page Previous  1 ... 5, 6, 7, 8, 9, 10, 11 ... 17  Next
Радио-86РК на SRAM 128K Alpha (2014) & Beta (2024) 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Вот чегой-то родилась у меня идея - взять исправленную версию 2016 года от alexcp и заменить ПЗУ знакогенератора на ОЗУ с возможностью программной замены шрифтов :o
По ходу можно попробовать добавить цвет с помощью 2х свободных битиков знакогенератора (в стандартном знакогенераторе РК там записаны единички) - получится один из 4 цветов на каждую горизонтальную плашку:
00 - красным по чёрному;
01 - зелёным по чёрному;
10 - синим по чёрному;
11 - белым по чёрному (значение по умолчанию).
Таким образом мы как бы получим цветные тайлы, которых будет 2 набора, переключаемых программно, т.е. всего 256 (т.к. знакогенератор 2кб). При этом придётся расширить монитор, чтобы при рестарте он заполнял бы это ОЗУ стандартным шрифтом, который теперь будет храниться в ПЗУ монитора (которое напомню у нас 8кб где пока используется только 2кб).

Если всё также уталкиваться в размеры 15x10 см (ну или в предел моей стандартной лицензии игла 16x10), то возможно следует всю новую мелкую логику (включая регистр управления страницами памяти) затолкать в одну палку/галку. Туда же можно добавить поддержку нескольких предопределённых палитр (как минимум двух - RGB как описано выше и аля CGA с Magenta и Cyan).

P.S. Подключение ОЗУ шрифтов к шине данных можно сделать по адресам C000...C800, когда в регистре управления установлена несуществующая страница 7 (например) - в этом случае ВГ75 уходит в тень (собственно также как и сейчас если установлена ненулевая страница - 1,2 или 3), а _CS_C000 выходящий на внешний разъём не активируется. Ну и ещё один бит в регистре управления может быть отведён под переключение палитр (0-RGBW, 1-YCMW).

P.P.S. Вообще можно и универсальную RGB палитру попробовать сделать, которая задавалась бы 12 битами (3 бита RGB на каждый цвет из 4), но тогда одной галки не хватит - придётся ставить что-то побольше типа XC9536. Регистр управления при этом превратится в 5 трёхбитных регистров доступных только на запись:
#F000 - RAM page (0,1,2,3 and 7 for font update) // в будущем память можно увеличить - тогда наверное для доступа к шрифтам надо просто в этот регистр писать #FF
#F0С0 - RGB for color 0
#F0С1 - RGB for color 1
#F0С2 - RGB for color 2
#F0С3 - RGB for color 3
(отличать регистры палитры от регистра страниц можно одним битом адреса A7 ну или двумя, если хватит ног у CPLD)

_________________
:dj: https://mastodon.social/@Shaos


30 Aug 2021 18:33
Profile WWW
Senior
User avatar

Joined: 11 Jun 2012 07:30
Posts: 128
Reply with quote
Рискну предположить, что в четырёх слоях можно развести и с логикой в SOIC, а вот с палкой можно попробовать в двух слоях. Правда, палку эту ещё чем-то программировать нужно, не у всех/не всегда есть чем. Собирал тут на досуге платку на 8085, столкнулся с этим.


30 Aug 2021 18:57
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Дешёвый TL866 умеет прошивать практически всё ;)


_________________
:dj: https://mastodon.social/@Shaos


30 Aug 2021 19:25
Profile WWW
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Shaos wrote:
Дешёвый TL866 умеет прошивать практически всё ;)

Подтверждаю, только у меня данный программатор с индексом II Plus.


02 Sep 2021 01:22
Profile
Senior
User avatar

Joined: 17 Jun 2014 04:29
Posts: 126
Location: 93.80.157.217
Reply with quote
1. много уже программ написано для этого клона?
2. зачем такие извращения с цветом? для совместимости надо использовать уже готовое решение и лучшее -- это то, как реализовано в Апогее.

_________________
https://radio-86rk.ru
кто я такой, чтобы спорить с самим собой


03 Sep 2021 15:07
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
1. пока ноль :)
2. ну например вот поэтому:
alemorf wrote:
Микросхема КР580ВГ75, на которой построен видеоадаптер Радио 86РК, подерживала вывод цветного изображения, но ради простоты схемы Радио 86РК, в нём вывод цвета не сделали. Вывод цвета сделали в Апогее. Управление цветом в КР580ВГ75 для программиста было реализовано крайне неудобно. Программист записывал в видеопамять специальное значение с кодами 80h — 9Fh, которое изменяло цвет всех следующих за ним символов. Эти символы могли отображаться в виде пробелов, но тогда на экране были неиспользуемые позиции. Либо видеоконтроллер мог работать без пробелов, но это приводило к смещению всей видеопамяти на один символ. Адрес символа в видеопамяти с определенными координатами зависел от предыдущих символов и в общем мог быть любым. Ну и допускалось не более 16 изменений цвета на строку. А так же могла произойти рассинхронизация ПДП контроллера и видеоадаптера, что приводило к дерганию и смещению экрана.
https://web.archive.org/web/20180813031847/http://alemorf.ru/comps/apogee_bk_01c/index.html

В моём же случае мы имеем цвет на плашку (горизонтальная последовательность из 6 пикселов) и цвета задаются для знакоместа (т.е. до 8 разных цветов привязанных к знакоместу/тайлу), причём никаких ограничений на количество изменений цвета в пределах строки/экрана нет (просто в пределах экрана всегда 4 цвета поверх чёрного т.е. всего 5 цветов) и никаких пробелов между изменениями цвета или рассинхронизирующихся строк символов также нет.

P.S. С помощью редактора знакогенераторов для РК заполнил дырки в стандартном шрифте РК и добавил 3 цветных знака - такой шрифт может стать нашим шрифтом по умолчанию, загружаемым во время бута:


Attachments:
radio86rk-font-fixed-RGB.gif
radio86rk-font-fixed-RGB.gif [ 8.15 KiB | Viewed 5310 times ]

_________________
:dj: https://mastodon.social/@Shaos
03 Sep 2021 15:57
Profile WWW
Senior
User avatar

Joined: 17 Jun 2014 04:29
Posts: 126
Location: 93.80.157.217
Reply with quote
всё-таки для Апогея какой-никакой цветной софт есть.

_________________
https://radio-86rk.ru
кто я такой, чтобы спорить с самим собой


04 Sep 2021 22:31
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
vital72 wrote:
всё-таки для Апогея какой-никакой цветной софт есть.

Ну в Апогее ещё и вся периферия по другим адресам сидит и памяти больше - я когда-нибудь потом сделаю универсальный РК-совместимый компьютер, который сможет переключаться в режимы РК, Микроши и Апогея, но не прямо сейчас :)

_________________
:dj: https://mastodon.social/@Shaos


05 Sep 2021 15:28
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Shaos wrote:
Вот чегой-то родилась у меня идея - взять исправленную версию 2016 года от alexcp и заменить ПЗУ знакогенератора на ОЗУ с возможностью программной замены шрифтов :o
По ходу можно попробовать добавить цвет с помощью 2х свободных битиков знакогенератора (в стандартном знакогенераторе РК там записаны единички) - получится один из 4 цветов на каждую горизонтальную плашку:
00 - красным по чёрному;
01 - зелёным по чёрному;
10 - синим по чёрному;
11 - белым по чёрному (значение по умолчанию).
Таким образом мы как бы получим цветные тайлы, которых будет 2 набора, переключаемых программно, т.е. всего 256 (т.к. знакогенератор 2кб). При этом придётся расширить монитор, чтобы при рестарте он заполнял бы это ОЗУ стандартным шрифтом, который теперь будет храниться в ПЗУ монитора (которое напомню у нас 8кб где пока используется только 2кб).

Если всё также уталкиваться в размеры 15x10 см (ну или в предел моей стандартной лицензии игла 16x10), то возможно следует всю новую мелкую логику (включая регистр управления страницами памяти) затолкать в одну палку/галку. Туда же можно добавить поддержку нескольких предопределённых палитр (как минимум двух - RGB как описано выше и аля CGA с Magenta и Cyan).

P.S. Подключение ОЗУ шрифтов к шине данных можно сделать по адресам C000...C800, когда в регистре управления установлена несуществующая страница 7 (например) - в этом случае ВГ75 уходит в тень (собственно также как и сейчас если установлена ненулевая страница - 1,2 или 3), а _CS_C000 выходящий на внешний разъём не активируется. Ну и ещё один бит в регистре управления может быть отведён под переключение палитр (0-RGBW, 1-YCMW).

P.P.S. Вообще можно и универсальную RGB палитру попробовать сделать, которая задавалась бы 12 битами (3 бита RGB на каждый цвет из 4), но тогда одной галки не хватит - придётся ставить что-то побольше типа XC9536. Регистр управления при этом превратится в 5 трёхбитных регистров доступных только на запись:
#F000 - RAM page (0,1,2,3 and 7 for font update) // в будущем память можно увеличить - тогда наверное для доступа к шрифтам надо просто в этот регистр писать #FF
#F0С0 - RGB for color 0
#F0С1 - RGB for color 1
#F0С2 - RGB for color 2
#F0С3 - RGB for color 3
(отличать регистры палитры от регистра страниц можно одним битом адреса A7 ну или двумя, если хватит ног у CPLD)

Наверное можно попробовать обойтись рассыпухой плюс ещё один ВВ55, который будет задавать цвета 0,1 и 2 (цвет 3 всегда можно считать белым).
Взяв аналоговый селектор и подключив к выходу ВВ55 резисторы можно получить скажем цвета RGB332 - хотя это наверное уже перебор для РК...

_________________
:dj: https://mastodon.social/@Shaos


13 Sep 2021 00:26
Profile WWW
Senior
User avatar

Joined: 11 Jun 2012 07:30
Posts: 128
Reply with quote
Жаль, что RAMDAC-и вымерли, один какой-нибудь Bt453 заменил бы и ВВ55, и резисторы, и мультиплексор, и кучу мелочи.


Attachments:
Bt453.pdf [933.81 KiB]
Downloaded 194 times
13 Sep 2021 07:34
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Наверное всё-таки надо оставаться в "цифровых" цветах 0-7, где цветовые составляющие могут принимать только 2 значения - логический "0" и логическая "1"

Это позволит сделать это расширение пользуясь обычной CPLD класса XC9500

P.S. Кстати вот этот вот разъём расширения:
Shaos wrote:
введены дополнительные дешифраторы #C000 (разделяемый ресурс с ВГ75), #C800, #D000, #D800 - все эти CS-ы вместе с адресами A0...A10, WR/RD и буферизированной шиной данных выходят наружу через 28-дырочный разъём...
позволит подцепить к компьютеру урезанную версию SprinterNet с косвенным обращением к буферам WizNet-чипа вместо прямого доступа - правда прошивку ПЗУ сетевушки придётся переписать с z80 на 8080 и изменить API, чтобы не использовались индексные регистры...

_________________
:dj: https://mastodon.social/@Shaos


13 Sep 2021 11:25
Profile WWW
Senior
User avatar

Joined: 11 Jun 2012 07:30
Posts: 128
Reply with quote
Если довести до ума страничную организацию памяти, то можно и прямое обращение в W5100 организовать. Да и не только в W5100 - вот тут https://github.com/wwarthen/RomWBW собрали довольно интересный пример:
Attachment:
Screen Shot 2021-09-13 at 2.53.19 PM.png
Screen Shot 2021-09-13 at 2.53.19 PM.png [ 618.93 KiB | Viewed 5385 times ]


13 Sep 2021 11:59
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Странно как-то побито у них. Вообще если делать под CP/M то надо всю периферию прятать в тень и во всю ширь памяти растягивать ОЗУ - наверное рано пока в эту сторону копать...

_________________
:dj: https://mastodon.social/@Shaos


13 Sep 2021 19:08
Profile WWW
Senior
User avatar

Joined: 11 Jun 2012 07:30
Posts: 128
Reply with quote
Из картинки не видно, но верхние 32к - это ОЗУ. После включения или сброса программа из ПЗУ настраивает страницы и копирует нужный код в верхние 32к, а потом передаёт туда управление:
Quote:
At power on (or hardware reset), ROM page 0 is automatically mapped to lower memory by hardware level system initialization. Page Zero (first 256 bytes of the CPU address space) is reserved to contain dispatching instructions for interrupt instructions. Address $0000 performs a jump to the start of the phase 1 code so that this first page can be reserved.
The phase 1 code now copies the phase 2 code from lower memory to upper memory and jumps to it. The phase 2 code now initializes the HBIOS by copying the ROM resident HBIOS from ROM to RAM. It subsequently calls the HBIOS initialization routine. Finally, it starts the Boot Loader which prompts the user for the location of the target system image to execute.

Once the boot loader transfers control to the target system image, all of the Phase 1, Phase 2, and Boot Loader code is abandoned and the space it occupied is normally overwritten by the operating system.

Там же, в верхних 32к, располагаются буферы для обмена данными с драйверами. Поэтому с точки зрения прикладной программы все адресное пространство - это ОЗУ. С таким софтом стандартная конфигурация - 512к ОЗУ+512к ПЗУ, это всего два корпуса. Управление страницами - ещё три-четыре корпуса. Памяти много, можно реализовать даже довольно объемные вещи вроде чтения и записи файлов FAT32 с SD карты или BIOS с автоматическим определением оборудования - они там много схем наплодили.

В общем, любимый монитор РК86 сильно ограничивает полёт фантазии при проектировании железа.


13 Sep 2021 19:53
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
alexcp wrote:
Там же, в верхних 32к, располагаются буферы для обмена данными с драйверами. Поэтому с точки зрения прикладной программы все адресное пространство - это ОЗУ. С таким софтом стандартная конфигурация - 512к ОЗУ+512к ПЗУ, это всего два корпуса. Управление страницами - ещё три-четыре корпуса...

Ну вот в той картинке ROM как-то совсем никак не отражён

_________________
:dj: https://mastodon.social/@Shaos


13 Sep 2021 20:39
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 255 posts ]  Go to page Previous  1 ... 5, 6, 7, 8, 9, 10, 11 ... 17  Next

Who is online

Users browsing this forum: Google [Bot] and 19 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

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.