IPB

Здравствуйте, гость ( Вход | Регистрация )

> Контроллер AZ BK: Документирование процесса разработки, на основании этой темы будет сформирована техническое описание
SuperMax
сообщение 20.1.2021, 20:37
Сообщение #1


Администратор
*****

Группа: Root Admin
Сообщений: 6 286
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



Палитры V2
управление палитрами осуществляется через 2 регистра палитры первый (177234) - адрес ячейки палитры
второй(177236) - значение палитры 15bit

адреса ячеек палитры будут начинаться с большей
Код

нумерация кодов цветов
палитра коды цветов (адреса ячеек палитры)
256     0-255
4х16    256-319
16      320-335
2       336-337


так получается полностью независимые палитры без пересечений
+ явный дубль стандартного функционала палитр, те можно переключать палитры как и ранее, но теперь доступна опция настройки каждой штатной палитры!

и как следствие палитры не надо будет перегружать при переключении видеорежима

для удобства формирования палитр сделал эксельку
v2.6 от 2023.11.07
Прикрепленный файл  palette_calc26.xlsm ( 102.97 килобайт ) Кол-во скачиваний: 75


начиная с v15 базовая палитра изменена
v2.8 от 2024.02.07
Прикрепленный файл  palette_calc28.xlsm ( 107.53 килобайт ) Кол-во скачиваний: 33

изменения косметические, касаются только палитры 256 цветов - ее начало изменено на 32 градации серого тк в стандартной WEB-safe которая взята за базу, такого набора градаций серого почему-то нет
эта палитра загружена в ПЛИС, а также перегружается при запске явно.
именно эта палитра используется при конвертации графики этим конверетером
https://master.pdp-11.ru/picword3/picword.php



основная задача этой эксельки - сформировать файл mif для загрузки дефолтной палитры при старте ПЛИС

также она пригодится разработчикам для пересчета цветов в 15bit

пояснения к блоку 4x16 256-319
это 16 наборов палитры, изначально туда грузятся штатные значения, но их можно менять на любые!
нумерация прямая - те нулевая палитра это 256-257-258-259 ячейки
следующие 4 ячейки это 1ая палитра и так далее

управление палитрами осуществляется через 2 регистра
177234 - адрес ячейки палитры [9бит]
177236 - значение палитры [15бит]

Код




                 РЕГИСТРЫ УПРАВЛЕНИЯ ПАЛИТРАМИ

         АДРЕС = 177234
         ФОРМАТ РЕГИСТРА                                
       ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐
       │15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│
       └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘
                             │                        │
                             └────АДРЕС ПАЛИТРЫ───────┘
    
       Доступен по чтению и записи



         АДРЕС = 177236
         ФОРМАТ РЕГИСТРА
       ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐
       │15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│
       └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘
           │                                          │
           └──────────ЗНАЧЕНИЕ ПАЛИТРЫ────────────────┘

       Доступен по чтению и записи    



        Палитра 15bit
        
       ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐
       │14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│
       └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘
        └─────RED────┘ └───GREEN───┘  └────BLUE────┘






формулу формирования цвета
цвет на выходе = VideoModeOffset + PaletteOffset + ColorIndex ;

VideoModeOffset - смещение видеорежима
cмещение - кол-во цветов (значения десятичные)
0 - 256
256- 4 х16
320- 16
336- 2

PaletteOffset существует только для штаного видеорежима 4 цвета
во всех остальных случаях =0
номер палитры - смещение
0 - 0
1 - 4
2 - 8
итд

ColorIndex - непосредственно номер цвета в видеорежиме, начиная с 0

Примеры работы с палитрой
надо загрузить новые значения для 16ти цветной палитры
для этого мы последовательно пишем
320.-> 177234 те устанавливаем адрес палитры
теперь мы можем записать значение
<новое значение> -> 177236
(также после установки адреса палитры мы можем ее и считать)


Примеры работы с экселькой
к примеру делаем новые значения для 16ти-цветой палитры
Прикрепленное изображение
слева вводим стандартные RGB значения в hex
справа получаем как этот цвет выглядит (надо включить макросы) и восьмеричные значения цвета
номер палитры - в столбце номер цвета


Как включить макросы в эксельке
идем в настройки
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение


--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
SuperMax
сообщение 8.5.2021, 14:13
Сообщение #2


Администратор
*****

Группа: Root Admin
Сообщений: 6 286
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



Загрузка ПЗУ

Пример az.ini
Код

[ROM]
R00=0:/rom/AZBOOT.ROM
R08=0:/rom/bz326.rom
R11=0:/rom/HDD326.ROM
R16=0:/rom/11m_324.rom
R18=0:/rom/11m_325.rom
R20=0:/rom/11m_327.rom
R22=0:/rom/11m_328.rom
R24=0:/rom/11m_329.rom
[disks]
D0=0:/disks/AG.IMG
D1=0:/disks/ANSYS.IMG
D2=0:/disks/CSI_321B.IMG
D3=0:/disks/CSI_321R.IMG
D4=0:/disks/fortra.dsk
D5=0:/disks/51SYS_DS.DSK
D6=0:/disks/51DS_BK.DSK
D7=0:/disks/BK326.IPL
[boot]
D7


Секция ROM обязательна и всегда должна быть первой
привязка основных ROMов будет статична тк является ключевой для эмуляции стандартного набора ПЗУ разных БК

разберем строчку:
Код
R00=0:/rom/AZBOOT.ROM


R00 - номер слота куда будет загружено ПЗУ
нумерация от R00 до R63
(весь сегмент ПЗУ - 256кБ - соответственно всего 64слота)
соответственно если ПЗУ 8кБ то она займет 2 слота

Код
0:/rom/AZBOOT.ROM

тут очевидно путь к файлу

Распределение адресного пространства ПЗУ
Прикрепленное изображение
обращаю внимание на то, что физический адрес - словный

столбец окно маппера как раз показывает номер для мапирования
те для подключения ПЗУ AZ326.ROM которое загружено с адреса 440'000(8)
мы должны занести в регистр слота - в нашем случае 177334 (тк мы подключаем в окно 160'000(8)), значение 110(8)

Если мы хотим подключить длинное ПЗУ которое занимает два слота маппера то надо указать оба
Код

            mov        #120,@#177330         ; окно 140000-147777
            mov        #121,@#177332         ; окно 150000-157777
            bis        #30000,@#177340       ; включаем страницы




--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
SuperMax   Контроллер AZ BK: Документирование процесса разработки   20.1.2021, 20:37
SuperMax   Для Legacy видеорежимов реализовано циклическое п...   15.4.2021, 1:24
SuperMax   [b]Модель управления памятью в AZ V2 с поддержкой ...   16.4.2021, 11:52
SuperMax   Генератор псевдослучайных чисел технически это LF...   4.5.2021, 14:16
SuperMax   Консоль контроллера основное назначение - отладка...   8.5.2021, 14:10
SuperMax   Загрузка ПЗУ Пример az.ini [ROM] R00=0...   8.5.2021, 14:13
SuperMax   Стартовая последовательность 1. После нажатия RES...   14.6.2021, 0:12
SuperMax   Индикация режимов работы AZБК снабжен RGB сетодио...   19.6.2021, 15:36
SuperMax   Кнопка перезапуска (RESET) на AZ изначально, подра...   19.6.2021, 16:10
SuperMax   Проект звуковой части 1. COVOX - уже реализован н...   17.7.2021, 22:45
SuperMax   По заявкам телезрителей родилась еще более новая в...   21.12.2021, 2:48
SuperMax   UART (RS-232 EIA-232 COM ком-порт) адреса стандар...   16.1.2022, 23:56
SuperMax   К расширенным видеорежимам добавились слои (редак...   17.6.2022, 20:18
SuperMax   Блиттер (начиная с v15b7) cм [url=https://forum....   24.9.2023, 12:33


Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 24.4.2024, 8:23