nedoPC.org

Community of electronics hobbyists established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 22 Oct 2021 09:31



Reply to topic  [ 127 posts ]  Go to page Previous  1 ... 5, 6, 7, 8, 9
Радио-86РК на SRAM 128K Alpha 
Author Message
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 19933
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 - хотя это наверное уже перебор для РК...

_________________
:eugeek: https://twitter.com/Shaos1973


13 Sep 2021 01:26
Profile WWW
Fanat
User avatar

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


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

Joined: 09 Jan 2003 00:22
Posts: 19933
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, чтобы не использовались индексные регистры...

_________________
:eugeek: https://twitter.com/Shaos1973


13 Sep 2021 12:25
Profile WWW
Fanat
User avatar

Joined: 11 Jun 2012 08:30
Posts: 82
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 362 times ]


13 Sep 2021 12:59
Profile WWW
Admin
User avatar

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

_________________
:eugeek: https://twitter.com/Shaos1973


13 Sep 2021 20:08
Profile WWW
Fanat
User avatar

Joined: 11 Jun 2012 08:30
Posts: 82
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 20:53
Profile WWW
Admin
User avatar

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

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

_________________
:eugeek: https://twitter.com/Shaos1973


13 Sep 2021 21:39
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 127 posts ]  Go to page Previous  1 ... 5, 6, 7, 8, 9

Who is online

Users browsing this forum: No registered users and 2 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.