IPB

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

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


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

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



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

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

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


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

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

для удобства формирования палитр сделал эксельку
Прикрепленный файл  palette_calc21.xlsm ( 77.85 килобайт ) Кол-во скачиваний: 17


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

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

пояснения к блоку 4x16 320-335
это 16 наборов палитры, изначально туда грузятся штатные значения, но их можно менять на любые!
нумерация прямая - те нулевая палитра это 320-321-322-323 ячейки
следующие 4 ячейки это 1ая палитра и так далее

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



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


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

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



Для Legacy видеорежимов реализовано циклическое переключение по сочетанию AR2 + KT
В зависимости от запущенной программы, поведение может отличаться от стандартного, но в большинстве перехват данного сочетания работает корректно

Всего 4 видеорежима - точнее интерпретации 16кБ видеопамяти

0 - ч/б режим, по умолчанию палитра с белыми точками и темно-синим фоном
разрешение 512х256

1 - цветной режим, 4 цвета, палитра управляется как и стандартным 177716 как и через 177234/177236
разрешение 256х256

2 - цветной режим, 16 цветов, 4 бита на пиксель, соответственно
разрешение 128х256
палитра управляется только через 177234/177236

3 - цветной режим, 256 цветов, 8 бит на пиксель, соответственно
разрешение 64х256
палитра управляется только через 177234/177236



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


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

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



Модель управления памятью в AZ

Концепция:
адресное пространство разбито на 3 сегмента:

0-256кБ это write-only память для организации "теневой" памяти БК11М
первые 128кБ являются полной копией оперативки БК11М
из этой памяти идет отображение legacy видео режимов
а также получается есть техническая возможность отобразить на экран любую страницу памяти БК11М
Прикрепленное изображение
обращаю внимание на то, что физический адрес - словный

256-512кБ это read-only память, она не доступна на запись со стороны БКшки
эта память для эмуляции различных ПЗУ, содержимое которых может быть загружено только средствами AZ

512-1024кБ для эмуляции SMK-512

Начиная с 1МБ вся оперативная память - полноценная память без ограничений, а именно ее подключение всегда дает RPLY на чтение и запись

маппер памяти AZ
технически адрес в системе 24bit-а (адрес слова 16bit)
для маппера памяти используется старшая часть адреса, и получается дискретность привязки памяти к окну - 4кБ

есть 16 регистров (177300-177336) куда пишется 13bit адрес начала (10 бит добавляется от адреса с шины)
старшие 3 бита в резеве и маппер предусматривает расширение до 256МБ.

для управления маппером предусмотрен регистр маски окон - 177340
младший бит соответствует младшему окну (те с 0 до 7777) но тк первые 32кБ в БК приколочены жестко то пока это задел на вырост и младший байт использовать нельзя (он работает но очевидно будет конфликт на шине при его активации)

пример: для подключения оперативки в окно 160000-167777 надо сделать следующее:
177334 <- 400 (это указатель на первый мегабайт)
177340 <- 40000 (это разрешение этого окна)

разбивка на окна соответствует размеру в SMK - те 4кБ начиная со 100000(8)
обращаю внимание на адресацию, те свойства r/o w/o привязаны к 24bit адресу слова (!)
также есть регистр управления который осуществляет включение/выключение окон по маске + для общего управления и совместимостью с SMK

При этом любая память, может быть использована для отображения изображения на экране
Расширенный режим видеоконтроллера представляет набор строк от 0 до 767
и привязанный к ним
- адрес 24bit начала строки, длина строки от 32 до 256 слов (16bit), важно, это адрес слова 16bit а не байта как это будет на МПИ
- видеорежим строки: те количество цветов 2bit (2/4/16/256), масштабирование 2bita (1/2/4/8)
те растягивание данных на заданное число пикселей
Прикрепленное изображение


технически 768 строк, которые мы можем дублировать как нам удобно просто указывая одинаковый адрес начала строки


Соответственно технически получается можно создавать любые видеорежимы в пределах 1024х768
комбинируя допустимые варианты




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


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

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



Генератор псевдослучайных чисел

технически это LFSR длиной 128bit, младшие 16bit доступны по адресу 177550
данный регистр отвечает и на чтение и на запись. запись игнорируется.





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


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

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



Консоль контроллера
основное назначение - отладка + информационные сообщения для расширенной диагностики

Настройка консоли
baud rate: 115200
data:8 bit
parity: none
stop: 1bit


К примеру в случае отсутствия карточки в консоли будет:

Код
AZBK build May  5 2021 23:12:19
Start lan init
ERROR: Card NOT installed
Lan init ok
IO11 init begin
ERROR open AZ.INI  errorcode=12
IO11 Error: 4
System Halted



Нормальный старт выводит в консоль следующий лог
Код

AZBK build May  5 2021 23:12:19
Start lan init
Card installed OK
Card mounted OK
Lan init ok
IO11 init begin
LOAD ROM: file 0:/ROM/BK326.ROM at 1000000
LOAD ROM: file 0:/ROM/AZ326.ROM at 1010000
LOAD ROM: file 0:/ROM/HDD326.ROM at 1020000
LOAD ROM: file 0:/ROM/HDAZ326.ROM at 1030000
LOAD ROM: file 0:/ROM/11M_324.ROM at 1040000
LOAD ROM: file 0:/ROM/11M_325.ROM at 1060000
LOAD ROM: file 0:/ROM/11M_327.ROM at 1100000
LOAD ROM: file 0:/ROM/11M_328.ROM at 1120000
LOAD ROM: file 0:/ROM/11M_329.ROM at 1140000
MOUNT image 0:/DISKS/AG.IMG
MOUNT image 0:/DISKS/ANSYS.IMG
MOUNT image 0:/DISKS/CSI_321B.IMG
MOUNT image 0:/DISKS/CSI_321R.IMG
MOUNT image 0:/DISKS/FORTRA.DSK
MOUNT image 0:/DISKS/51SYS_DS.DSK
MOUNT image 0:/DISKS/51DS_BK.DSK
MOUNT image 0:/DISKS/BK326.IPL
Card installed OK
Card mounted OK

-----------------------------
Network setting:
DHCPNAME=AZNET-BK.home.maxiol.com
MAC=00.0e.35.22.0b.01
DHCP=ON
IP=0.0.0.0
MASK=0.0.0.0
GW=0.0.0.0
NTP=0.0.0.0
DNS1=0.0.0.0
DNS2=0.0.0.0
NTP_BROADCAST=OFF
SNMP_COMMUNITY=public
SNMP_TRAP=0.0.0.0
SNMP_TRAP_CHECK_PERIOD=0
SNMP_OK1=0.0.0.0
SNMP_OK2=0.0.0.0
SNMP_OK3=0.0.0.0
SNMP_OK4=0.0.0.0
SNMP_OK5=0.0.0.0
TIMEZONE=0
IO11 init ok
Begin main work



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


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

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



Загрузка ПЗУ

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

[ROM]
R00=0:/rom/BK326.ROM
R01=0:/rom/AZ326.ROM
R02=0:/rom/HDD326.ROM
R03=0:/rom/HDAZ326.ROM
R04=0:/rom/11m_324.rom
R06=0:/rom/11m_325.rom
R08=0:/rom/11m_327.rom
R10=0:/rom/11m_328.rom
R12=0:/rom/11m_329.rom
[disks]
D0=0:/disks/CSI_321B.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/BK326.ROM


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

Код
0:/rom/BK326.ROM

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

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



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

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

 



Текстовая версия Сейчас: 15.5.2021, 17:56