![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
SuperMax |
![]()
Сообщение
#21
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 295 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 ![]() |
Обновление ПЗУ
исправлен первый (холодный) старт ![]() -------------------- Живы будем - Не помрем !
|
SuperMax |
![]() ![]()
Сообщение
#22
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 295 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 ![]() |
Прошивка 00014beta
продолжение глобальных изменений: это промежуточная прошивка, с большей частью функционала который планировалось реализовать жирным новое (или измененное) в прошивке функционал: 1. палитры, сделано расширение функционала механизма палитр подробнее https://forum.maxiol.com/index.php?showtopic=5556 2. реализовано ручное переключение видеорежима (циклическое 1-2) по сочетанию AR2+KT те можно спокойно переключать его в зависимости от программы не напрягаясь! 3. Реализовано отображение информации в консоли контроллера дисковой подсистемы и сети - переключается по АР2+РУС соответственно выделена страница памяти под консоль 4. изменено - см п 16 5. полный вывод VGA уже из SDRAM, переключение страниц 6. перехват переключения палитр БК11М - доступ к памяти палитр с шины, чтение+запись исправлены ошибки перехвата при обращении к нечетным адресам 7. Генератор псевдослучайных чисел - технически это LFSR длиной 128бит, младшие 16 в регистре доступном программно. сдвиг идет с частотой 65MHz как следствие полностью новое слово доступно будет каждый процессорный такт 8. загрузка ПЗУ в память полностью реализована 9. Реализовано распознавание новодела БК11М и подключение ПЗУ 10. COVOX набор регистров доступных и по чтению и по записи 177200 - 16bit левый канал 177202 - 16bit правый канал 177204 - 16bit моно, иначе говоря запись в этот регистр приводит к фактической одновременной записи в регистры 177200 и 177202 177206 - 8bit стерео/mono, иначе говоря запись в этот регистр приводит к фактической одновременной записи в регистры 177200 и 177202 - в старший байт режимы stereo/momo определяются по байтовой записи те если писать слово в 177206 то это будет стерео а если писать младший байт в 177206 то данные будут трактоваться как моно запись в 177714 мультирежимная ибо у нас есть 2 варианта ковокса 1. моно 8bit - запись в младший байт 2. стерео 8bit - МЛБ - левый СТБ-правый переключать режимы через регистр 177212 соответственно запись в 177714 тоже приводит к фактической одновременной записи в 177200 и 177202 обеспечивая полную совместимость со старым софтом Регистр управления звуком - 177212 биты: 00 - легаси перехват ковокса в 177714: 0=моно 1=стерео 01 - =0 разрешен легаси перехват 177714 =1 запрещен 02 - =0 разрешен перехват 177716 =1 запрещен перехват спикера сделан 3х битный 03 - =0 YM2149 =1 AY8910 тип эмуляции PSG 11. DMA контроллер звука 177160 - регистр управления регистр скорости чтения , режима интерпретации данных (8/16 моно стерео), повтора 00 - старт =1 старт 01 - =1 однократный запуск =0 циклический , при этом надо записать =0 в 3й бит при циклическом запуске, запись 1цы даст останов после завершения цикла, с установкой в =1 бита3 02 - =1 принудительная остановка до завершения цикла 03 - на чтение =1 однократный запуск завершился, в начале сбрасывается на ноль, запись =1 не влияет на процесс 04 - =1 потоковое воспроизведение с подкачкой данных, актуально для IMA_ADPCM в этом режиме на стадии начала цикла не происходит сброса начальных кодов декодирования ADPCM 06-07-08 - скорость выдачи наружу поддерживаемые скорости 0 - 44100 09-10-11 - режим интерпретации 09 - =0 моно =1 стерео 11 - =0 PCM =1 IMA_ADPCM поддерживаемые режимы: 000-0 PCM 16 mono 100-4 IMA ADPCM DECODER mono 101-5 IMA ADPCM DECODER stereo 177162 - регистр адреса страницы с которой будем читать с дискретностью 10000 (4кБ) 177164 - старшая часть длины - 8бит 177166 - младшая часть длины - 16бит 177170 - номер текущей страницы воспроизведения данные с DMA пойдут напрямую на микшер отдельным каналом 12. Legacy AY через 177714 работает автоопределение источника звука - или ковокс или AY 13. Сделан UART - изменена базовая частота - теперь это не 130MHz а 65MHz адреса стандартные 177560 - регистр статуса приемника 177562 - регистр управления + регистр принятых данных 177564 - регистр статуса передатчика 177566 - регистр данных на передачу 177560 - регистр статуса приемника бит 7 - флаг наличия данных: единица означает наличие принятых данных в регистре 177562 после чтения 177562 - флаг будет сброшен регистр доступен на чтение запись игнорируется, ошибки не взывает 177562 - по чтению - младший байт содержит принятые данные - по записи - слово определяющее скорость, подробности ниже дефолтное значение 32346(8) что соответствует стандартной скорости в 9600бод 177564 - регистр статуса передачика бит 7 - флаг успешной передачи данных: единица означает что байт из регистра 177566 успешно передан в линию после записи в 177566 - флаг будет сброшен тк начнется передача регистр доступен на чтение запись игнорируется, ошибки не взывает 177566 - регистр данных на передачу, используется младший байт, доступен на чтение и запись после записи начинается передача в линию Слово определяющее скорость - доступно только по записи детальное описание UART в AZБК 14. Сделан конструктор видеорежимов 177230 - регистр управления 177232 - регистр номера страницы начала отображения 177240 - регистр номера страницы начала отображения - средняя страница под спрайты 177242 - регистр номера страницы начала отображения - нижняя страница - под фон 177230, далее пойдут биты с описанием 2;0 - режим цветовой интерпретации 4;3 - длина строки в словах 7;6 - растяжение по горизонтали - те количество повторов у точки 10;9 - количество повторов строк 15;12 - длина рулона в словах теперь подробно режим цветовой интерпретации, значение от 0 до 7 0 - 1 бит на цвет - 2 цвета 1 - 2 бита на цвет - 4 цвета 2 - 4 бита на цвет - 16 цветов 3 - 8 бит на цвет - 256 цветов 4 - 1 бит на цвет - 8 цветов - сборный "слоеный" режим 5 - 2 бита на цвет - 4 цвета - включены слои 6 - 4 бита на цвет - 16 цветов - включены слои 7 - 8 бит на цвет - 256 цветов - включены слои подробное описание работы со слоями тут длина строки в словах 0 - 32 слова 1 - 64 2 - 128 3 - 256 это значение должно соответствовать вашему режиму - иначе будут повторы или пропуски данных расчет прост - к примеру мы выбрали 512х384х16 цветов считаем 512точек х 4 бита = 2048бит /16 = 128 слов растяжение по горизонтали - те количество повторов у точки 0 - х1 - те 1024 точки в строке 1 - х2 - 512 2 - х3 - 256 3 - х4 - 128 количество повторов строк 0 - х1 - 768 строк 1 - х2 - 384 2 - х3 - 256 3 - х4 - 192 длина рулона в словах 0 6144 1 8192 2 12288 3 16384 4 24576 5 32768 6 49152 7 65536 8 98304 9 131072 10 196608 11 262144 длина дает информацию контроллеру для корректной работы вертикального скролинга и важный момент - длина рулона может быть БОЛЬШЕ чем экран иначе говоря можно объявить экран в 32кБ (к примеру 256х256х16цветов ) а рулон выбрать в 64кБ, что позволит осуществлять формирование того что выйдет на экран ЗА его пределами ДО его вывода рулоном типовые видеорежимы (значение восьмеричные) 012201 - 256х256х4цвета (экран 16кБ) 012100 - 512х256х2цвета (экран 16кБ) 032212 - 256х256х16цветов (экран 32кБ) регистр 177232 - адрес страницы начала отображения те можно начинать отображение с любой страницы в памяти Важно! видеорежимы в состоянии "beta" те я не провел полного тестирования 15. Добавлена эмуляция 2xAY сложение каналов по форумуле R=A1+A2+B1+B2 L=C1+C2+B1+B2 Прямая доступность регистров на шине, а именно доступны байтовые регистры 177172 - адрес AY1 177173 - данные AY1 177174 - адрес AY2 177175 - данные AY2 16. Доработки маппера памяти AZ Правки от 2022-12-19 Концепция: маппер V2 - это чисто маппер AZ без костылей и _все_ запросы к мапперам 177716(БК11М) или 177130(СМК) транслируются в маппер AZ который является единым устройством управления памятью это сделано для кардинального расширения возможностей БКшек, а именно для отключения 037й и как следствие - возможности работы полного маппера AZ. Это означает что на любой адрес в адресном пространстве БК10/БК11М можно подставить любую страницу памяти! адресное пространство расширенной памяти разбито на 4 сегмента: Код АДРЕСНОЕ ПРОСТРАНСТВО ПАМЯТИ В AZ ╔═══════════════════════════════════════════════════ ..... ════════╗ ║ АДРЕСНОЕ ПРОСТРАНСТВО ПАМЯТИ В AZ ║ ╚═══════════════════════════════════════════════════ ..... ════════╝ 0 128kB 256kB 512kB 1024kB 32MB │ │ │ │ │ └───────┤ ├───────┴────────┘ RAM │ │ ROMs SMK Shadow │ │ │ │ └─SYSTEM─┘ 0-128кБ это память для организации "теневой" или эмулируемой памяти БК11М первые 128кБ являются полной копией оперативки БК11М - или эмулируемой в БК10 из этой памяти идет отображение legacy видео режимов а также получается есть техническая возможность отобразить на экран любую страницу памяти БК11М обращаю внимание на то, что физический адрес - словный режим работы этой памяти устанавливается в регистре 177346 128-256кБ это полноценная R/W память с которой всегда идет RPLY но эта память служебная и используется для работы AZ контроллера 256-512кБ это read-only память, она не доступна на запись со стороны БКшки эта память для эмуляции различных ПЗУ, содержимое которых может быть загружено только средствами AZ 512-1024кБ для эмуляции SMK-512 Начиная с 1МБ вся оперативная память - полноценная R/W память без ограничений, а именно ее подключение всегда дает RPLY на чтение и на запись если не установлен режим r/o на данной странице в регистре 177342 маппер памяти AZ технически адрес в системе 24bit-а (адрес слова 16bit) для маппера памяти используется старшая часть адреса, и получается дискретность привязки памяти к окну - 4кБ есть 16 регистров (177300-177336 R/W) куда пишется 13bit адрес начала (11 бит добавляется от адреса с шины и получается 24bit адрес слова) старшие 3 бита в резеве и маппер предусматривает расширение до 256МБ. Код ПРИНЦИП ФОРМИРОВАНИЯ ПОЛНОГО 24bit АДРЕСА 16bit слова ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ │23│22│21│20│19│18│17│16│15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│ └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘ │ │ │ │ └────────────────────────────────────┘ └──────────────────────────────┘ АДРЕС В РЕГИСТРЕ ОКНА 13bit АДРЕС С ШИНЫ МЛАДШИЕ 11bit Адресное пространство разбито на 16 окон для облегчения восприятия я пронумерую их с 0 до 15 ┌────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬─ │0..7777 │10000..17777│20000..27777│30000..37777│40000..47777│50000..57777│60000..67777│70000..77777│ └────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴─ 0 окно 1 окно 2 окно 3 окно 4 окно 5 окно 6 окно 7 окно 177300 177302 177304 177306 177310 177312 177314 177316 ──┬─────────────┬──────────────┬──────────────┬──────────────┬──────────────┬──────────────┬──────────────┬──────────────┐ │100000-107777│110000..117777│120000..127777│130000..137777│140000..147777│150000..157777│160000..167777│170000..177000│ ──┴─────────────┴──────────────┴──────────────┴──────────────┴──────────────┴──────────────┴──────────────┴──────────────┘ 8 окно 9 окно 10 окно 11 окно 12 окно 13 окно 14 окно 15 окно 177320 177322 177324 177326 177330 177332 177334 177336 Регистр управления активацией окно - маски окон АДРЕС = 177340 R/W ФОРМАТ РЕГИСТРА ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ │15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│ └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘ пример: для подключения оперативки в окно №14 - 160000-167777 надо сделать следующее: 177334 <- 400 (это указатель на первый мегабайт) 177340 <- 40000 (это разрешение этого окна - 14 бит) 177342 <- сброс бита 14 тк мы хотим оперативку а не ПЗУ Регистр управления r/o на окно АДРЕС = 177342 R/W ФОРМАТ РЕГИСТРА ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ │15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│ └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘ пример: для подключения оперативки в режиме ПЗУ в окно №14 - 160000-167777 надо сделать следующее: 177334 <- 400 (это указатель на первый мегабайт) 177340 <- 40000 (это разрешение этого окна - 14 бит) 177342 <- 40000 (это установка r/o тк мы хотим ПЗУ) Регистр управления shadow окон - маски окон АДРЕС = 177344 R/W ФОРМАТ РЕГИСТРА ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ │15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│ └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘ shadow это режим копирования всех операций записи в зеркальную память - см АДРЕСНОЕ ПРОСТРАНСТВО ПАМЯТИ В AZ ╔═══════════════════════════════════════════════════ ..... ════════╗ ║ АДРЕСНОЕ ПРОСТРАНСТВО ПАМЯТИ В AZ ║ ╚═══════════════════════════════════════════════════ ..... ════════╝ 0 128kB 256kB 512kB 1024kB 32MB │ │ └───────┘ SHADOW RAM Это нужно для работы на БК11М и формирования изображения на VGA экране shadow страницы устанавливаются автоматически при работе с маппером БК11М для управления маппером предусмотрен регистр маски окон - 177340 R/W младший бит соответствует младшему окну (те с 0 до 7777) пример: для подключения оперативки в окно 160000-167777 надо сделать следующее: 177334 <- 400 (это указатель на первый мегабайт) 177340 <- 40000 (это разрешение этого окна) для управления r/o на выбранном окне предусмотрен регистр-маска 177342 соответственно для установки режима только чтения надо установить соответствующий бит на окне к примеру 177334 <- 400 (это указатель на первый мегабайт) 177340 <- 40000 (это разрешение этого окна) 177342 <- 40000 это запрет записи в это (160000-167777) окно разбивка на окна соответствует размеру в SMK - те 4кБ начиная со 100000(8) обращаю внимание на адресацию, те свойства r/o w/o привязаны к 24bit адресу слова (!) также есть регистр управления который осуществляет включение/выключение окон по маске (177342) + для общего управления и совместимостью с SMK регистр управления shadow режимом 177344 R/W это тоже битовая маска окон, и младший бит соответствует младшему окну назначение регистра - управление работой shadow-режима для БК11М как уже было сказано - маппер V2 это полный маппер и соответственно в режиме БК11М - первые 128кБ это тень памяти БК11М для этого в регистры 177330 и далее прописываются соответствия страниц памяти в которые будет "откидываться" вся запись в память БК11М и будет обеспечиваться ее копия в памяти AZ. к примеру 177300 <=13'o030; // 000000-007777 177302 <=13'o031; // 010000-017777 177304 <=13'o032; // 020000-027777 177306 <=13'o033; // 030000-037777 те это нулевая страница в понятии БК11М и соответственно в 177344 устанавливаются биты shadow-режима управление shadow осуществляется автоматически в ПЛИС трансляцией запросов из 177716 и согласно режиму работы маппера в 177346 регистр управления маппером 177346 R/W Код Регистр управления маппером АДРЕС = 177346 ФОРМАТ РЕГИСТРА ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ │15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│ └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘ │ ║ │ │ │ ║ ║ │ │ │ │ │ │ │ │ ┌─────────────────────────┐ │ ║ │ │ │ ║ ║ └─────┤ │ │ │ │ └───┴──────┤ версия аппаратной части │ │ ║ │ │ │ ║ ║ │ │ │ │ │ └─────────────────────────┘ │ ║ │ │ │ ║ ║ │ │ │ │ │ ┌─────────────────────────────────┐ │ ║ │ │ │ ║ ║ │ │ │ │ └─────────────┤ =1 50Hz =0 60Hz кадровый таймер │ │ ║ │ │ │ ║ ║ │ │ │ │ └─────────────────────────────────┘ │ ║ │ │ │ ║ ║ │ │ │ │ ┌─────────────────────────────────┐ │ ║ │ │ │ ║ ║ │ │ │ └────────────────┤ =1 включить таймер 100й вектор │ │ ║ │ │ │ ║ ║ │ │ │ └─────────────────────────────────┘ │ ║ │ │ │ ║ ║ │ │ │ ┌────────┐ │ ║ │ │ │ ║ ║ │ │ └───────────────────┤ резерв │ │ ║ │ │ │ ║ ║ │ │ └────────┘ │ ║ │ │ │ ║ ║ │ │ ┌─────────────────────────────────────────────┐ │ ║ │ │ │ ║ ║ │ └───────┤ управление эмуляцией ПЗУ в БК11М =1 включить│ │ ║ │ │ │ ║ ║ │ └─────────────────────────────────────────────┘ │ ║ │ │ │ ║ ║ │ ┌──────────────────────────────────────────────────────────────┐ │ ║ │ │ │ ║ ║ └──┤частота процессора явно те =3 =4 =5 =6 MHz =0 то неопределено │ │ ║ │ │ │ ║ ║ │ заполняется программно, стартовым ПЗУ │ │ ║ │ │ │ ║ ║ └──────────────────────────────────────────────────────────────┘ │ ║ │ │ │ ║ ║ ╔═════════════════════════════════════════════════════════════════════════════════╗ │ ║ │ │ │ ║ ╚══╣ R/W - RAM окно памяти с 0 до 77777 (технически это и окно 100000 до 137777) ║ │ ║ │ │ │ ║ ║ в отключенном режиме (=1) на 037ую не проходят запросы с адресов с 0 до 77777 ║ │ ║ │ │ │ ║ ║ соответственно и 037ая никак не отвечает и не принимает данные на запись ║ │ ║ │ │ │ ║ ║ соответственно эта опция включает RPLY на маппере БК11М, а также возможность ║ │ ║ │ │ │ ║ ║ читать из маппера !!! при 14 бите =0 опция не работает ║ │ ║ │ │ │ ║ ╚═════════════════════════════════════════════════════════════════════════════════╝ │ ║ │ │ │ ║ ╔═════════════════════════════════════════════════════╗ │ ║ │ │ │ ╚═════╣ R/W - ответ на 177660-663 строб 014й =1 отключение ║ │ ║ │ │ │ ║ а именно эмуляцию 014й ║ │ ║ │ │ │ ║ те уже пойдет RPLY от AZ на адресах 177660-663 ║ │ ║ │ │ │ ║ при 14 бите =0 опция не работает ║ │ ║ │ │ │ ╚═════════════════════════════════════════════════════╝ │ ║ │ │ │ ┌──────────────────────────────────────────────────────────────────┐ │ ║ │ │ └──┤ R/W - включение эмуляции БК11М =1 включено │ │ ║ │ │ │эта опция может быть активирована только при наличии =1 в бите 12 │ │ ║ │ │ │(при =0 в бите 12 - игнорируется) │ │ ║ │ │ └──────────────────────────────────────────────────────────────────┘ │ ║ │ │ ┌────────────────────────────────────────────────────────────────┐ │ ║ │ └─────┤ R/W - тип БКшки =0 это 11М, дефолтное состояние =1 это 10ка │ │ ║ │ │ проверяется и устанавливается программно стартовым ПЗУ │ │ ║ │ └────────────────────────────────────────────────────────────────┘ │ ║ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │ ║ └─┤ 13 - R/W - наличие работоспособной доработки окна1 │ │ ║ │ =1 - работает отключение окна 1 традиционным методом через оттягивание выхода TM9 на землю │ │ ║ │ =0 - доработки нет │ │ ║ │ проверяется и устанавливается программно │ │ ║ │ но сбрасывается в 0 при установке бита 14 - см ниже │ │ ║ └─────────────────────────────────────────────────────────────────────────────────────────────┘ │ ║ ╔═════════════════════════════════════════════════════════╗ │ ╚═╣R/O - тип доработки, результат автоопределения в ПЛИС ║ │ ║=0 доработка окна 1 или нет доработки ║ │ ║=1 доработка с управлением 037й ║ │ ╚═════════════════════════════════════════════════════════╝ │ ┌────────────────────────────────────────────────────────────────────────────────────────────────────┐ └────┤ 15 - R/W - =1 отключение окна 1 в БК11М, транслируется из эмуляции SMK │ │ и в зависимости от типа доработки будет подаваться как сигнал на А22 или как переключение окон 11М │ └────────────────────────────────────────────────────────────────────────────────────────────────────┘ биты 00 - R/O - версия аппаратной части платы ПЛИС - сейчас там 0 01 - R/O - версия аппаратной части платы ПЛИС - сейчас там 0 02 - =1 50Hz =0 60Hz кадровый таймер переключение источников таймера, в случае 60Гц - оно идет с VGA модуля, 48Гц генерится из 65MHz 03 - =1 включить таймер 100й вектор включает таймер по 100му вектору безусловно, h 04 - резерв =0 05 - управление эмуляцией ПЗУ в БК11М; по-умолчанию расширенные ПЗУ бейсика подключаемые через 177716 в окно 1 (100000-137777) ПЗУ 8 [0] - подключает ПЗУ 325, 327 к магистрали ПЗУ 9 [1] - подключает ПЗУ 328, 329 к магистрали установка этого бита включает полную эмуляцию подключения этих ПЗУ средствами AZБК бит независимый от эмуляции БК11М тк может быть случай с БК11М без ПЗУ совсем частота процессора явно те =3 =4 =5 =6 MHz =0 то неопределено заполняется программно, стартовым ПЗУ 06 - R/W 07 - R/W 08 - R/W управление опциями отключения 037й в ПЛИС, доступно программно по-умолчанию =0, те опция выключена тк все изначально =0, и устанавливаются по HALT-у эти опция отключает прохождение SYNC-а на 037 и включает дополнительный функционал 09 - R/W - RAM окно памяти с 0 до 77777 (технически это и окно 100000 до 137777) в отключенном режиме (=1) на 037ую не проходят запросы с адресов с 0 до 77777 соответственно и 037ая никак не отвечает и не принимает данные на запись соответственно эта опция включает RPLY на маппере БК11М, а также возможность читать из маппера при 14 бите =0 опция не работает эти опция отключает прохождение SYNC-а на 037 и включает дополнительный функционал 10 - R/W - ответ на 177660-663 строб 014й =1 отключение а именно эмуляцию 014й те уже пойдет RPLY от AZ на адресах 177660-663 при 14 бите =0 опция не работает 11 - R/W - включение эмуляции БК11М =0 выключено =1 включено эта опция может быть активирована только при наличии =1 в бите 12 (при =0 в бите 12 - игнорируется) функционал эмуляции БК11М на БК10 включает: - разрешение записи (RPLY) в 177662 соответственно работают: палитры + кадровый таймер, частота задается в бите 2 12 - R/W - тип БКшки =0 это 11М, дефолтное состояние =1 это 10ка проверяется и устанавливается программно стартовым ПЗУ опция нужна для дальнейшей работы механизмов эмуляции БК11М на БК10 наличие в ней =1 обязательно для включения эмуляции БК11М на БК10 13 - R/W - наличие работоспособной доработки окна1 =1 - работает отключение окна 1 традиционным методом через оттягивание выхода TM9 на землю =0 - доработки нет проверяется и устанавливается программно но сбрасывается в 0 при установке бита 14 - см ниже 14 - R/O - тип доработки, результат автоопределения в ПЛИС =0 доработка окна 1 или нет доработки =1 доработка с управлением 037й 15 - R/W - =1 отключение окна 1 в БК11М, транслируется из эмуляции SMK и в зависимости от типа доработки будет подаваться как сигнал на А22 или как переключение окон 11М Регистры-копии данных, доступны только по чтению 177350 R/O - регистр копия по записи 177130 в режиме записи управления памятью в SMK 177352 R/O - регистр копия по записи 177716 в режиме записи управления памятью в БК11М Основное назначение регистров - возможность в любой процедуре поменять настройки памяти, что-то сделать и вернуть их обратно (тк штатными средствами узнать что записано в эти регистры невозможно) 17. RTC часы и энергонезависимая память для работы с ними используется новый блок команд AZ см https://forum.maxiol.com/index.php?s=&showt...indpost&p=57017 должны отвечать регистры SOUND 177160-177174 177200-177212 AZ 177220-177226 дебаг 177100-177106 регистры палитр - уже можно экспериментировать 177230 - видеорежимы 177232 - номер легаси страницы 177234 - адрес ячейки палитры [9бит] 177236 - значение палитры [15бит] 177240 - регистр номера страницы начала отображения - средняя страница под спрайты 177242 - регистр номера страницы начала отображения - нижняя страница - под фон маппер памяти 177300-352 177550 - генератор псевдослучайных чисел 177560-177566 - UART После reset машина стартует автоматически и загружается со первого образа в ini-файле В архиве обновленное - надо прошивать ВСЕ azboot.ROM AZLIB00.ROM AZLIB01.ROM AZLIB02.ROM AZBK_00014b.hex - новая AZBK_00014b.pof - новая ![]() Обращаю внимание на необходимость подключить новые ПЗУ в секции ROM пример правильной для данной версии прошивки секции ROM Код [ROM] R00=0:/rom/AZBOOT.ROM R01=0:/rom/AZLIB00.ROM R02=0:/rom/AZLIB01.ROM R03=0:/rom/AZLIB02.ROM R08=0:/rom/AZ337.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 R26=0:/rom/11m_330.rom R28=0:/rom/10_017.rom R30=0:/rom/10_018.rom R32=0:/rom/10_019.rom R34=0:/rom/10_106.rom R36=0:/rom/10_107.rom R38=0:/rom/10_108.rom Также обращаю внимание на необходимость установки часового пояса в секции NETWORK пример Код [network] MAC=002335220510 DHCPNAME=AZNET-BK10.home.maxiol.com DHCP=ON TIMEZONE=420 таймзона - в минутах Рабочий комплект ANDOS + ПРИНЦ на БК10 запускать start2.exe (тк у БК не хватает быстродействия отобразить заставку пришлось внести коррективы) ![]() Основная особенность этого комплекта это включение эмуляции БК11М на БК10, для запуска на обычной БК10 не пригодна. На БК-11М работает штатно Про доработку БК-0010(01) читать тут -------------------- Живы будем - Не помрем !
|
SuperMax |
![]()
Сообщение
#23
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 295 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 ![]() |
Прошивка 14beta2
В архиве обновленное - надо прошивать ПЛИС + заменить ПЗУ azboot.ROM AZLIB00.ROM AZLIB01.ROM AZLIB02.ROM AZBK_00014b2.hex AZBK_00014b2.pof ![]() -------------------- Живы будем - Не помрем !
|
SuperMax |
![]()
Сообщение
#24
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 295 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 ![]() |
Прошивка 00014
фиксация глобальных изменений! жирным новое (или измененное) в прошивке относительно 13й версии прошивки функционал: 1. палитры, сделано расширение функционала механизма палитр подробнее https://forum.maxiol.com/index.php?showtopic=5556 2. реализовано ручное переключение видеорежима (циклическое 1-2) по сочетанию AR2+KT те можно спокойно переключать его в зависимости от программы не напрягаясь! 3. Реализовано отображение информации в консоли контроллера дисковой подсистемы и сети - переключается по АР2+РУС соответственно выделена страница памяти под консоль 4. изменено - см п 16 5. полный вывод VGA уже из SDRAM, переключение страниц 6. перехват переключения палитр БК11М - доступ к памяти палитр с шины, чтение+запись исправлены ошибки перехвата при обращении к нечетным адресам 7. Генератор псевдослучайных чисел - технически это LFSR длиной 128бит, младшие 16 в регистре доступном программно. сдвиг идет с частотой 65MHz как следствие полностью новое слово доступно будет каждый процессорный такт 8. загрузка ПЗУ в память полностью реализована 9. Реализовано распознавание новодела БК11М и подключение ПЗУ 10. COVOX набор регистров доступных и по чтению и по записи 177200 - 16bit левый канал 177202 - 16bit правый канал 177204 - 16bit моно, иначе говоря запись в этот регистр приводит к фактической одновременной записи в регистры 177200 и 177202 177206 - 8bit стерео/mono, иначе говоря запись в этот регистр приводит к фактической одновременной записи в регистры 177200 и 177202 - в старший байт режимы stereo/momo определяются по байтовой записи те если писать слово в 177206 то это будет стерео а если писать младший байт в 177206 то данные будут трактоваться как моно запись в 177714 мультирежимная ибо у нас есть 2 варианта ковокса 1. моно 8bit - запись в младший байт 2. стерео 8bit - МЛБ - левый СТБ-правый переключать режимы через регистр 177212 соответственно запись в 177714 тоже приводит к фактической одновременной записи в 177200 и 177202 обеспечивая полную совместимость со старым софтом Регистр управления звуком - 177212 биты: 00 - легаси перехват ковокса в 177714: 0=моно 1=стерео 01 - =0 разрешен легаси перехват 177714 =1 запрещен 02 - =0 разрешен перехват 177716 =1 запрещен перехват спикера сделан 3х битный 03 - =0 YM2149 =1 AY8910 тип эмуляции PSG 11. DMA контроллер звука 177160 - регистр управления регистр скорости чтения , режима интерпретации данных (8/16 моно стерео), повтора 00 - старт =1 старт 01 - =1 однократный запуск =0 циклический , при этом надо записать =0 в 3й бит при циклическом запуске, запись 1цы даст останов после завершения цикла, с установкой в =1 бита3 02 - =1 принудительная остановка до завершения цикла 03 - на чтение =1 однократный запуск завершился, в начале сбрасывается на ноль, запись =1 не влияет на процесс 04 - =1 потоковое воспроизведение с подкачкой данных, актуально для IMA_ADPCM в этом режиме на стадии начала цикла не происходит сброса начальных кодов декодирования ADPCM 06-07-08 - скорость выдачи наружу поддерживаемые скорости 0 - 44100 09-10-11 - режим интерпретации 09 - =0 моно =1 стерео 11 - =0 PCM =1 IMA_ADPCM поддерживаемые режимы: 000-0 PCM 16 mono 100-4 IMA ADPCM DECODER mono 101-5 IMA ADPCM DECODER stereo 177162 - регистр адреса страницы с которой будем читать с дискретностью 10000 (4кБ) 177164 - старшая часть длины - 8бит 177166 - младшая часть длины - 16бит 177170 - номер текущей страницы воспроизведения данные с DMA пойдут напрямую на микшер отдельным каналом 12. Legacy AY через 177714 работает автоопределение источника звука - или ковокс или AY 13. Сделан UART - изменена базовая частота - теперь это не 130MHz а 65MHz адреса стандартные 177560 - регистр статуса приемника 177562 - регистр управления + регистр принятых данных 177564 - регистр статуса передатчика 177566 - регистр данных на передачу 177560 - регистр статуса приемника бит 7 - флаг наличия данных: единица означает наличие принятых данных в регистре 177562 после чтения 177562 - флаг будет сброшен регистр доступен на чтение запись игнорируется, ошибки не взывает 177562 - по чтению - младший байт содержит принятые данные - по записи - слово определяющее скорость, подробности ниже дефолтное значение 32346(8) что соответствует стандартной скорости в 9600бод 177564 - регистр статуса передачика бит 7 - флаг успешной передачи данных: единица означает что байт из регистра 177566 успешно передан в линию после записи в 177566 - флаг будет сброшен тк начнется передача регистр доступен на чтение запись игнорируется, ошибки не взывает 177566 - регистр данных на передачу, используется младший байт, доступен на чтение и запись после записи начинается передача в линию Слово определяющее скорость - доступно только по записи детальное описание UART в AZБК 14. Сделан конструктор видеорежимов 177230 - регистр управления 177232 - регистр номера страницы начала отображения 177240 - регистр номера страницы начала отображения - средняя страница под спрайты 177242 - регистр номера страницы начала отображения - нижняя страница - под фон 177230, далее пойдут биты с описанием 2;0 - режим цветовой интерпретации 4;3 - длина строки в словах 7;6 - растяжение по горизонтали - те количество повторов у точки 10;9 - количество повторов строк 15;12 - длина рулона в словах теперь подробно режим цветовой интерпретации, значение от 0 до 7 0 - 1 бит на цвет - 2 цвета 1 - 2 бита на цвет - 4 цвета 2 - 4 бита на цвет - 16 цветов 3 - 8 бит на цвет - 256 цветов 4 - 1 бит на цвет - 8 цветов - сборный "слоеный" режим 5 - 2 бита на цвет - 4 цвета - включены слои 6 - 4 бита на цвет - 16 цветов - включены слои 7 - 8 бит на цвет - 256 цветов - включены слои подробное описание работы со слоями тут длина строки в словах 0 - 32 слова 1 - 64 2 - 128 3 - 256 это значение должно соответствовать вашему режиму - иначе будут повторы или пропуски данных расчет прост - к примеру мы выбрали 512х384х16 цветов считаем 512точек х 4 бита = 2048бит /16 = 128 слов растяжение по горизонтали - те количество повторов у точки 0 - х1 - те 1024 точки в строке 1 - х2 - 512 2 - х3 - 256 3 - х4 - 128 количество повторов строк 0 - х1 - 768 строк 1 - х2 - 384 2 - х3 - 256 3 - х4 - 192 длина рулона в словах 0 6144 1 8192 2 12288 3 16384 4 24576 5 32768 6 49152 7 65536 8 98304 9 131072 10 196608 11 262144 длина дает информацию контроллеру для корректной работы вертикального скролинга и важный момент - длина рулона может быть БОЛЬШЕ чем экран иначе говоря можно объявить экран в 32кБ (к примеру 256х256х16цветов ) а рулон выбрать в 64кБ, что позволит осуществлять формирование того что выйдет на экран ЗА его пределами ДО его вывода рулоном типовые видеорежимы (значение восьмеричные) 012201 - 256х256х4цвета (экран 16кБ) 012100 - 512х256х2цвета (экран 16кБ) 032212 - 256х256х16цветов (экран 32кБ) регистр 177232 - адрес страницы начала отображения те можно начинать отображение с любой страницы в памяти Важно! видеорежимы в состоянии "beta" те я не провел полного тестирования 15. Добавлена эмуляция 2xAY сложение каналов по форумуле R=A1+A2+B1+B2 L=C1+C2+B1+B2 Прямая доступность регистров на шине, а именно доступны байтовые регистры 177172 - адрес AY1 177173 - данные AY1 177174 - адрес AY2 177175 - данные AY2 16. Доработки маппера памяти AZ Правки от 2023-03-20 Концепция: маппер V2 - это чисто маппер AZ без костылей и _все_ запросы к мапперам 177716(БК11М) или 177130(СМК) транслируются в маппер AZ который является единым устройством управления памятью это сделано для кардинального расширения возможностей БКшек, а именно для отключения 037й и как следствие - возможности работы полного маппера AZ. Это означает что на любой адрес в адресном пространстве БК10/БК11М можно подставить любую страницу памяти! адресное пространство расширенной памяти разбито на 4 сегмента: Код АДРЕСНОЕ ПРОСТРАНСТВО ПАМЯТИ В AZ ╔═══════════════════════════════════════════════════ ..... ════════╗ ║ АДРЕСНОЕ ПРОСТРАНСТВО ПАМЯТИ В AZ ║ ╚═══════════════════════════════════════════════════ ..... ════════╝ 0 128kB 256kB 512kB 1024kB 32MB │ │ │ │ │ └───────┤ ├───────┴────────┘ RAM │ │ ROMs SMK Shadow │ │ │ │ └─SYSTEM─┘ 0-128кБ это память для организации "теневой" или эмулируемой памяти БК11М первые 128кБ являются полной копией оперативки БК11М - или эмулируемой в БК10 из этой памяти идет отображение legacy видео режимов а также получается есть техническая возможность отобразить на экран любую страницу памяти БК11М обращаю внимание на то, что физический адрес - словный режим работы этой памяти устанавливается в регистре 177346 128-256кБ это полноценная R/W память с которой всегда идет RPLY но эта память служебная и используется для работы AZ контроллера 256-512кБ это read-only память, она не доступна на запись со стороны БКшки эта память для эмуляции различных ПЗУ, содержимое которых может быть загружено только средствами AZ 512-1024кБ для эмуляции SMK-512 Начиная с 1МБ вся оперативная память - полноценная R/W память без ограничений, а именно ее подключение всегда дает RPLY на чтение и на запись если не установлен режим r/o на данной странице в регистре 177342 маппер памяти AZ технически адрес в системе 24bit-а (адрес слова 16bit) для маппера памяти используется старшая часть адреса, и получается дискретность привязки памяти к окну - 4кБ есть 16 регистров (177300-177336 R/W) куда пишется 13bit адрес начала (11 бит добавляется от адреса с шины и получается 24bit адрес слова) старшие 3 бита в резеве и маппер предусматривает расширение до 256МБ. Код ПРИНЦИП ФОРМИРОВАНИЯ ПОЛНОГО 24bit АДРЕСА 16bit слова ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ │23│22│21│20│19│18│17│16│15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│ └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘ │ │ │ │ └────────────────────────────────────┘ └──────────────────────────────┘ АДРЕС В РЕГИСТРЕ ОКНА 13bit АДРЕС С ШИНЫ МЛАДШИЕ 11bit Адресное пространство разбито на 16 окон для облегчения восприятия я пронумерую их с 0 до 15 ┌────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬─ │0..7777 │10000..17777│20000..27777│30000..37777│40000..47777│50000..57777│60000..67777│70000..77777│ └────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴─ 0 окно 1 окно 2 окно 3 окно 4 окно 5 окно 6 окно 7 окно 177300 177302 177304 177306 177310 177312 177314 177316 ──┬─────────────┬──────────────┬──────────────┬──────────────┬──────────────┬──────────────┬──────────────┬──────────────┐ │100000-107777│110000..117777│120000..127777│130000..137777│140000..147777│150000..157777│160000..167777│170000..177000│ ──┴─────────────┴──────────────┴──────────────┴──────────────┴──────────────┴──────────────┴──────────────┴──────────────┘ 8 окно 9 окно 10 окно 11 окно 12 окно 13 окно 14 окно 15 окно 177320 177322 177324 177326 177330 177332 177334 177336 Регистр управления активацией окно - маски окон АДРЕС = 177340 R/W ФОРМАТ РЕГИСТРА ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ │15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│ └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘ пример: для подключения оперативки в окно №14 - 160000-167777 надо сделать следующее: 177334 <- 400 (это указатель на первый мегабайт) 177340 <- 40000 (это разрешение этого окна - 14 бит) 177342 <- сброс бита 14 тк мы хотим оперативку а не ПЗУ Регистр управления r/o на окно АДРЕС = 177342 R/W ФОРМАТ РЕГИСТРА ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ │15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│ └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘ пример: для подключения оперативки в режиме ПЗУ в окно №14 - 160000-167777 надо сделать следующее: 177334 <- 400 (это указатель на первый мегабайт) 177340 <- 40000 (это разрешение этого окна - 14 бит) 177342 <- 40000 (это установка r/o тк мы хотим ПЗУ) Регистр управления shadow окон - маски окон АДРЕС = 177344 R/W ФОРМАТ РЕГИСТРА ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ │15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│ └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘ shadow это режим копирования всех операций записи в зеркальную память - см АДРЕСНОЕ ПРОСТРАНСТВО ПАМЯТИ В AZ ╔═══════════════════════════════════════════════════ ..... ════════╗ ║ АДРЕСНОЕ ПРОСТРАНСТВО ПАМЯТИ В AZ ║ ╚═══════════════════════════════════════════════════ ..... ════════╝ 0 128kB 256kB 512kB 1024kB 32MB │ │ └───────┘ SHADOW RAM Это нужно для работы на БК11М и формирования изображения на VGA экране shadow страницы устанавливаются автоматически при работе с маппером БК11М для управления маппером предусмотрен регистр маски окон - 177340 R/W младший бит соответствует младшему окну (те с 0 до 7777) пример: для подключения оперативки в окно 160000-167777 надо сделать следующее: 177334 <- 400 (это указатель на первый мегабайт) 177340 <- 40000 (это разрешение этого окна) для управления r/o на выбранном окне предусмотрен регистр-маска 177342 соответственно для установки режима только чтения надо установить соответствующий бит на окне к примеру 177334 <- 400 (это указатель на первый мегабайт) 177340 <- 40000 (это разрешение этого окна) 177342 <- 40000 это запрет записи в это (160000-167777) окно разбивка на окна соответствует размеру в SMK - те 4кБ начиная со 100000(8) обращаю внимание на адресацию, те свойства r/o w/o привязаны к 24bit адресу слова (!) также есть регистр управления который осуществляет включение/выключение окон по маске (177342) + для общего управления и совместимостью с SMK регистр управления shadow режимом 177344 R/W это тоже битовая маска окон, и младший бит соответствует младшему окну назначение регистра - управление работой shadow-режима для БК11М как уже было сказано - маппер V2 это полный маппер и соответственно в режиме БК11М - первые 128кБ это тень памяти БК11М для этого в регистры 177330 и далее прописываются соответствия страниц памяти в которые будет "откидываться" вся запись в память БК11М и будет обеспечиваться ее копия в памяти AZ. к примеру 177300 <=13'o030; // 000000-007777 177302 <=13'o031; // 010000-017777 177304 <=13'o032; // 020000-027777 177306 <=13'o033; // 030000-037777 те это нулевая страница в понятии БК11М и соответственно в 177344 устанавливаются биты shadow-режима управление shadow осуществляется автоматически в ПЛИС трансляцией запросов из 177716 и согласно режиму работы маппера в 177346 регистр управления маппером 177346 R/W Код Регистр управления маппером АДРЕС = 177346 ФОРМАТ РЕГИСТРА ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ │15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│ └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘ │ ║ │ │ │ ║ ║ │ │ │ │ │ │ │ │ ┌─────────────────────────┐ │ ║ │ │ │ ║ ║ └─────┤ │ │ │ │ └───┴──────┤ версия аппаратной части │ │ ║ │ │ │ ║ ║ │ │ │ │ │ └─────────────────────────┘ │ ║ │ │ │ ║ ║ │ │ │ │ │ ┌─────────────────────────────────┐ │ ║ │ │ │ ║ ║ │ │ │ │ └─────────────┤ =1 50Hz =0 60Hz кадровый таймер │ │ ║ │ │ │ ║ ║ │ │ │ │ └─────────────────────────────────┘ │ ║ │ │ │ ║ ║ │ │ │ │ ┌─────────────────────────────────┐ │ ║ │ │ │ ║ ║ │ │ │ └────────────────┤ =1 включить таймер 100й вектор │ │ ║ │ │ │ ║ ║ │ │ │ └─────────────────────────────────┘ │ ║ │ │ │ ║ ║ │ │ │ ┌────────┐ │ ║ │ │ │ ║ ║ │ │ └───────────────────┤ резерв │ │ ║ │ │ │ ║ ║ │ │ └────────┘ │ ║ │ │ │ ║ ║ │ │ ┌─────────────────────────────────────────────┐ │ ║ │ │ │ ║ ║ │ └───────┤ управление эмуляцией ПЗУ в БК11М =1 включить│ │ ║ │ │ │ ║ ║ │ └─────────────────────────────────────────────┘ │ ║ │ │ │ ║ ║ │ ┌──────────────────────────────────────────────────────────────┐ │ ║ │ │ │ ║ ║ └──┤частота процессора явно те =3 =4 =5 =6 MHz =0 то неопределено │ │ ║ │ │ │ ║ ║ │ заполняется программно, стартовым ПЗУ │ │ ║ │ │ │ ║ ║ └──────────────────────────────────────────────────────────────┘ │ ║ │ │ │ ║ ║ ╔═════════════════════════════════════════════════════════════════════════════════╗ │ ║ │ │ │ ║ ╚══╣ R/W - RAM окно памяти с 0 до 77777 (технически это и окно 100000 до 137777) ║ │ ║ │ │ │ ║ ║ в отключенном режиме (=1) на 037ую не проходят запросы с адресов с 0 до 77777 ║ │ ║ │ │ │ ║ ║ соответственно и 037ая никак не отвечает и не принимает данные на запись ║ │ ║ │ │ │ ║ ║ соответственно эта опция включает RPLY на маппере БК11М, а также возможность ║ │ ║ │ │ │ ║ ║ читать из маппера !!! при 14 бите =0 опция не работает ║ │ ║ │ │ │ ║ ╚═════════════════════════════════════════════════════════════════════════════════╝ │ ║ │ │ │ ║ ╔═════════════════════════════════════════════════════╗ │ ║ │ │ │ ╚═════╣ R/W - ответ на 177660-663 строб 014й =1 отключение ║ │ ║ │ │ │ ║ а именно эмуляцию 014й ║ │ ║ │ │ │ ║ те уже пойдет RPLY от AZ на адресах 177660-663 ║ │ ║ │ │ │ ║ при 14 бите =0 опция не работает ║ │ ║ │ │ │ ╚═════════════════════════════════════════════════════╝ │ ║ │ │ │ ┌──────────────────────────────────────────────────────────────────┐ │ ║ │ │ └──┤ R/W - включение эмуляции БК11М =1 включено │ │ ║ │ │ │эта опция может быть активирована только при наличии =1 в бите 12 │ │ ║ │ │ │(при =0 в бите 12 - игнорируется) │ │ ║ │ │ └──────────────────────────────────────────────────────────────────┘ │ ║ │ │ ┌────────────────────────────────────────────────────────────────┐ │ ║ │ └─────┤ R/W - тип БКшки =0 это 11М, дефолтное состояние =1 это 10ка │ │ ║ │ │ проверяется и устанавливается программно стартовым ПЗУ │ │ ║ │ └────────────────────────────────────────────────────────────────┘ │ ║ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │ ║ └─┤ 13 - R/W - наличие работоспособной доработки окна1 │ │ ║ │ =1 - работает отключение окна 1 традиционным методом через оттягивание выхода TM9 на землю │ │ ║ │ =0 - доработки нет │ │ ║ │ проверяется и устанавливается программно │ │ ║ │ но сбрасывается в 0 при установке бита 14 - см ниже │ │ ║ └─────────────────────────────────────────────────────────────────────────────────────────────┘ │ ║ ╔═════════════════════════════════════════════════════════╗ │ ╚═╣R/O - тип доработки, результат автоопределения в ПЛИС ║ │ ║=0 доработка окна 1 или нет доработки ║ │ ║=1 доработка с управлением 037й ║ │ ╚═════════════════════════════════════════════════════════╝ │ ┌────────────────────────────────────────────────────────────────────────────────────────────────────┐ └────┤ 15 - R/W - =1 отключение окна 1 в БК11М, транслируется из эмуляции SMK │ │ и в зависимости от типа доработки будет подаваться как сигнал на А22 или как переключение окон 11М │ └────────────────────────────────────────────────────────────────────────────────────────────────────┘ биты 00 - R/O - версия аппаратной части платы ПЛИС - сейчас там 0 01 - R/O - версия аппаратной части платы ПЛИС - сейчас там 0 02 - =1 50Hz =0 60Hz кадровый таймер переключение источников таймера, в случае 60Гц - оно идет с VGA модуля, 48Гц генерится из 65MHz 03 - =1 включить таймер 100й вектор включает таймер по 100му вектору безусловно, h 04 - резерв =0 05 - управление эмуляцией ПЗУ в БК11М; по-умолчанию расширенные ПЗУ бейсика подключаемые через 177716 в окно 1 (100000-137777) ПЗУ 8 [0] - подключает ПЗУ 325, 327 к магистрали ПЗУ 9 [1] - подключает ПЗУ 328, 329 к магистрали установка этого бита включает полную эмуляцию подключения этих ПЗУ средствами AZБК бит независимый от эмуляции БК11М тк может быть случай с БК11М без ПЗУ совсем частота процессора явно те =3 =4 =5 =6 MHz =0 то неопределено заполняется программно, стартовым ПЗУ 06 - R/W 07 - R/W 08 - R/W управление опциями отключения 037й в ПЛИС, доступно программно по-умолчанию =0, те опция выключена тк все изначально =0, и устанавливаются по HALT-у эти опция отключает прохождение SYNC-а на 037 и включает дополнительный функционал 09 - R/W - RAM окно памяти с 0 до 77777 (технически это и окно 100000 до 137777) в отключенном режиме (=1) на 037ую не проходят запросы с адресов с 0 до 77777 соответственно и 037ая никак не отвечает и не принимает данные на запись соответственно эта опция включает RPLY на маппере БК11М, а также возможность читать из маппера при 14 бите =0 опция не работает эти опция отключает прохождение SYNC-а на 037 и включает дополнительный функционал 10 - R/W - ответ на 177660-663 строб 014й =1 отключение а именно эмуляцию 014й те уже пойдет RPLY от AZ на адресах 177660-663 при 14 бите =0 опция не работает 11 - R/W - включение эмуляции БК11М =0 выключено =1 включено эта опция может быть активирована только при наличии =1 в бите 12 (при =0 в бите 12 - игнорируется) функционал эмуляции БК11М на БК10 включает: - разрешение записи (RPLY) в 177662 соответственно работают: палитры + кадровый таймер, частота задается в бите 2 12 - R/W - тип БКшки =0 это 11М, дефолтное состояние =1 это 10ка проверяется и устанавливается программно стартовым ПЗУ опция нужна для дальнейшей работы механизмов эмуляции БК11М на БК10 наличие в ней =1 обязательно для включения эмуляции БК11М на БК10 13 - R/W - наличие работоспособной доработки окна1 =1 - работает отключение окна 1 традиционным методом через оттягивание выхода TM9 на землю =0 - доработки нет проверяется и устанавливается программно но сбрасывается в 0 при установке бита 14 - см ниже 14 - R/O - тип доработки, результат автоопределения в ПЛИС =0 доработка окна 1 или нет доработки =1 доработка с управлением 037й 15 - R/W - =1 отключение окна 1 в БК11М, транслируется из эмуляции SMK и в зависимости от типа доработки будет подаваться как сигнал на А22 или как переключение окон 11М Регистры-копии данных, доступны только по чтению 177350 R/O - регистр копия по записи 177130 в режиме записи управления памятью в SMK 177352 R/O - регистр копия по записи 177716 в режиме записи управления памятью в БК11М Основное назначение регистров - возможность в любой процедуре поменять настройки памяти, что-то сделать и вернуть их обратно (тк штатными средствами узнать что записано в эти регистры невозможно) 17. RTC часы и энергонезависимая память для работы с ними используется новый блок команд AZ см https://forum.maxiol.com/index.php?s=&showt...indpost&p=57017 должны отвечать регистры SOUND 177160-177174 177200-177212 AZ 177220-177226 дебаг 177100-177106 регистры палитр - уже можно экспериментировать 177230 - видеорежимы 177232 - номер легаси страницы 177234 - адрес ячейки палитры [9бит] 177236 - значение палитры [15бит] 177240 - регистр номера страницы начала отображения - средняя страница под спрайты 177242 - регистр номера страницы начала отображения - нижняя страница - под фон маппер памяти 177300-352 177550 - генератор псевдослучайных чисел 177560-177566 - UART После reset машина стартует автоматически и загружается со первого образа в ini-файле В архиве обновленное - надо прошивать ВСЕ azboot.ROM AZLIB00.ROM AZLIB01.ROM AZLIB02.ROM AZLIB03.ROM SETUP.ROM AZBK_00014.hex - новая AZBK_00014.pof - новая ![]() Обращаю внимание на необходимость подключить новые ПЗУ в секции ROM пример правильной для данной версии прошивки секции ROM Код [ROM] R00=0:/rom/AZBOOT.ROM R01=0:/rom/AZLIB00.ROM R02=0:/rom/AZLIB01.ROM R03=0:/rom/AZLIB02.ROM R04=0:/rom/AZLIB03.ROM R08=0:/rom/AZ337.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 R26=0:/rom/11m_330.rom R28=0:/rom/10_017.rom R30=0:/rom/10_018.rom R32=0:/rom/10_019.rom R34=0:/rom/10_106.rom R36=0:/rom/10_107.rom R38=0:/rom/10_108.rom R56=0:/rom/SETUP.rom Установку и настройку сети теперь можно сделать как и в AZ.INI так и в SETUP-е пример Код [network] MAC=002335220510 DHCPNAME=AZNET-BK10.home.maxiol.com DHCP=ON TIMEZONE=420 таймзона - в минутах Setup сделан в интуитивно понятном стиле Добавлю пояснения по расширенным опциям: Для БК11М 1. для работы дискового бейсика 11М - включаем опцию "ROM 11emulation" также эта опция позволит работать на БК11М вообще без каких-либо ПЗУ 2. V-sync таймер это расширенный таймер через 177346 (см выше) Для БК10 в зависимости от доработок будут доступны опции - FastRAM - это режим 10ки но с быстрой нижней памятю - BK11 emulation - режим эмуляции БК11М - внешняя PS/2 клавиатура Горячие кнопки: после появления надписи "Press KT to run Setup" доступны следующие горячие кнопки 1. КТ - запуск SETUP-а, это не мгновенно, не беспокойтесь! 2. Пробел - выход в монитор (БК10 или БК11М - в зависимости от БК и ее режима) 3. Цифры от 0 до 9 - загрузка с выбранного диска /также напоминаю, что выбор дефолтного бутового диска в SETUP-е/ Рабочие комплекты ANDOS + ПРИНЦ на БК10 с 3MHz запускать start2.exe (тк у БК не хватает быстродействия отобразить заставку пришлось внести коррективы) ![]() Про доработку БК-0010(01) читать тут -------------------- Живы будем - Не помрем !
|
SuperMax |
![]()
Сообщение
#25
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 295 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 ![]() |
Прошивка 00015 beta 5
фиксация глобальных изменений! жирным новое (или измененное) в прошивке относительно 14й версии прошивки функционал: 1. палитры, сделано расширение функционала механизма палитр подробнее https://forum.maxiol.com/index.php?showtopic=5556 изменена база палитр 256 цветов ( ее начало изменено на 32 градации серого тк в стандартной WEB-safe которая взята за базу, такого набора градаций серого почему-то нет) 2. реализовано ручное переключение видеорежима (циклическое 1-2) по сочетанию AR2+ЛАТ те можно спокойно переключать его в зависимости от программы не напрягаясь! 3. Сочетание АР2+РУС используется для нормализации палитры 4. изменено - см п 16 5. полный вывод VGA уже из SDRAM, переключение страниц 6. перехват переключения палитр БК11М - доступ к памяти палитр с шины, чтение+запись исправлены ошибки перехвата при обращении к нечетным адресам 7. Генератор псевдослучайных чисел - технически это LFSR длиной 128бит, младшие 16 в регистре доступном программно. сдвиг идет с частотой 65MHz как следствие полностью новое слово доступно будет каждый процессорный такт 8. загрузка ПЗУ в память полностью реализована 9. Реализовано распознавание новодела БК11М и подключение ПЗУ 10. COVOX набор регистров доступных и по чтению и по записи (по чтению регистры не отдают последнее значение но кому надо читать из регистра ковокса ?) 177200 - 16bit левый канал 177202 - 16bit правый канал 177204 - 16bit моно, иначе говоря запись в этот регистр приводит к фактической одновременной записи в регистры 177200 и 177202 177206 - 8bit стерео/mono, иначе говоря запись в этот регистр приводит к фактической одновременной записи в регистры 177200 и 177202 - в старший байт режимы stereo/momo определяются по байтовой записи те если писать слово в 177206 то это будет стерео а если писать младший байт в 177206 то данные будут трактоваться как моно запись в 177714 мультирежимная ибо у нас есть 2 варианта ковокса 1. моно 8bit - запись в младший байт 2. стерео 8bit - МЛБ - левый СТБ-правый переключать режимы через регистр 177212 соответственно запись в 177714 тоже приводит к фактической одновременной записи в 177200 и 177202 обеспечивая полную совместимость со старым софтом Регистр управления звуком - 177212 биты: 00 - легаси перехват ковокса в 177714: 0=моно 1=стерео 01 - =0 разрешен легаси перехват 177714 =1 запрещен 02 - =0 разрешен перехват 177716 =1 запрещен перехват спикера сделан 3х битный 03 - =0 YM2149 =1 AY8910 тип эмуляции PSG 11. DMA контроллер звука 177160 - регистр управления регистр скорости чтения , режима интерпретации данных (8/16 моно стерео), повтора 00 - старт =1 старт 01 - =1 однократный запуск =0 циклический , при этом надо записать =0 в 3й бит при циклическом запуске, запись 1цы даст останов после завершения цикла, с установкой в =1 бита3 02 - =1 принудительная остановка до завершения цикла 03 - на чтение =1 однократный запуск завершился, в начале сбрасывается на ноль, запись =1 не влияет на процесс 04 - =1 потоковое воспроизведение с подкачкой данных, актуально для IMA_ADPCM в этом режиме на стадии начала цикла не происходит сброса начальных кодов декодирования ADPCM 06-07-08 - скорость выдачи наружу поддерживаемые скорости 0 - 44100 09-10-11 - режим интерпретации 09 - =0 моно =1 стерео 11 - =0 PCM =1 IMA_ADPCM поддерживаемые режимы: 000-0 PCM 16 mono 100-4 IMA ADPCM DECODER mono 101-5 IMA ADPCM DECODER stereo 177162 - регистр адреса страницы с которой будем читать с дискретностью 10000 (4кБ) 177164 - старшая часть длины - 8бит 177166 - младшая часть длины - 16бит 177170 - номер текущей страницы воспроизведения данные с DMA пойдут напрямую на микшер отдельным каналом OPL2 - экспериментальная опция в V15b4 и далее 177176 (младший байт) адрес 177177 ( старший данные) также поддержана словная запись -те можно писать напрямую словами 12. Legacy AY через 177714 работает автоопределение источника звука - или ковокс или AY 13. Сделан UART - изменена базовая частота - теперь это не 130MHz а 65MHz адреса стандартные 177560 - регистр статуса приемника 177562 - регистр управления + регистр принятых данных 177564 - регистр статуса передатчика 177566 - регистр данных на передачу 177560 - регистр статуса приемника бит 7 - флаг наличия данных: единица означает наличие принятых данных в регистре 177562 после чтения 177562 - флаг будет сброшен регистр доступен на чтение запись игнорируется, ошибки не взывает 177562 - по чтению - младший байт содержит принятые данные - по записи - слово определяющее скорость, подробности ниже дефолтное значение 32346(8) что соответствует стандартной скорости в 9600бод 177564 - регистр статуса передачика бит 7 - флаг успешной передачи данных: единица означает что байт из регистра 177566 успешно передан в линию после записи в 177566 - флаг будет сброшен тк начнется передача регистр доступен на чтение запись игнорируется, ошибки не взывает 177566 - регистр данных на передачу, используется младший байт, доступен на чтение и запись после записи начинается передача в линию Слово определяющее скорость - доступно только по записи детальное описание UART в AZБК 14. Сделан конструктор видеорежимов (редакция от 2024-01-09) теперь вот так: 177230 - регистр управления 177232 - регистр номера страницы начала отображения - верхняя страница (слой 0) 177240 - регистр номера страницы начала отображения - средняя страница (слой 1) "под спрайты" 177242 - регистр номера страницы начала отображения - нижняя страница (слой 2) "под фон" 177244 - регистр вертикального скролинга слой 2 177246 - регистр вертикального скролинга слой 1 177250 - регистр вертикального скролинга слой 0 177252 - регистр гозизонтального скролинга слой 0 177254 - регистр гозизонтального скролинга слой 1 177256 - регистр гозизонтального скролинга слой 2 177230, далее пойдут биты с описанием 2;0 - режим цветовой интерпретации 4;3 - длина строки в словах 7;6 - растяжение по горизонтали - те количество повторов у точки 10;9 - количество повторов строк 15;12 - длина рулона в словах теперь подробно режим цветовой интерпретации, значение от 0 до 7 0 - 1 бит на цвет - 2 цвета 1 - 2 бита на цвет - 4 цвета 2 - 4 бита на цвет - 16 цветов 3 - 8 бит на цвет - 256 цветов 4 - 1 бит на цвет - 8 цветов - сборный "слоеный" режим 5 - 2 бита на цвет - 4 цвета - включены слои 6 - 4 бита на цвет - 16 цветов - включены слои 7 - 8 бит на цвет - 256 цветов - включены слои подробное описание работы со слоями тут длина строки в словах 0 - 32 слова 1 - 64 2 - 128 3 - 256 это значение должно соответствовать вашему режиму - иначе будут повторы или пропуски данных расчет прост - к примеру мы выбрали 512х384х16 цветов считаем 512точек х 4 бита = 2048бит /16 = 128 слов растяжение по горизонтали - те количество повторов у точки 0 - х1 - те 1024 точки в строке 1 - х2 - 512 2 - х3 - 256 3 - х4 - 128 количество повторов строк 0 - х1 - 768 строк 1 - х2 - 384 2 - х3 - 256 3 - х4 - 192 длина рулона в словах 0 6144 1 8192 2 12288 3 16384 4 24576 5 32768 6 49152 7 65536 8 98304 9 131072 10 196608 11 262144 длина дает информацию контроллеру для корректной работы вертикального скролинга и важный момент - длина рулона может быть БОЛЬШЕ чем экран иначе говоря можно объявить экран в 32кБ (к примеру 256х256х16цветов ) а рулон выбрать в 64кБ, что позволит осуществлять формирование того что выйдет на экран ЗА его пределами ДО его вывода рулоном типовые видеорежимы (значение восьмеричные) 012201 - 256х256х4цвета (экран 16кБ) 012100 - 512х256х2цвета (экран 16кБ) 032212 - 256х256х16цветов (экран 32кБ) регистр 177232 - адрес страницы начала отображения те можно начинать отображение с любой страницы в памяти 15. Добавлена эмуляция 2xAY сложение каналов по форумуле R=A1+A2+B1+B2 L=C1+C2+B1+B2 Прямая доступность регистров на шине, а именно доступны байтовые регистры 177172 - адрес AY1 177173 - данные AY1 177174 - адрес AY2 177175 - данные AY2 16. Доработки маппера памяти AZ Правки от 2023-03-20 Концепция: маппер V2 - это чисто маппер AZ без костылей и _все_ запросы к мапперам 177716(БК11М) или 177130(СМК) транслируются в маппер AZ который является единым устройством управления памятью это сделано для кардинального расширения возможностей БКшек, а именно для отключения 037й и как следствие - возможности работы полного маппера AZ. Это означает что на любой адрес в адресном пространстве БК10/БК11М можно подставить любую страницу памяти! адресное пространство расширенной памяти разбито на 4 сегмента: Код АДРЕСНОЕ ПРОСТРАНСТВО ПАМЯТИ В AZ ╔═══════════════════════════════════════════════════ ..... ════════╗ ║ АДРЕСНОЕ ПРОСТРАНСТВО ПАМЯТИ В AZ ║ ╚═══════════════════════════════════════════════════ ..... ════════╝ 0 128kB 256kB 512kB 1024kB 32MB │ │ │ │ │ └───────┤ ├───────┴────────┘ RAM │ │ ROMs SMK Shadow │ │ │ │ └─SYSTEM─┘ 0-128кБ это память для организации "теневой" или эмулируемой памяти БК11М первые 128кБ являются полной копией оперативки БК11М - или эмулируемой в БК10 из этой памяти идет отображение legacy видео режимов а также получается есть техническая возможность отобразить на экран любую страницу памяти БК11М обращаю внимание на то, что физический адрес - словный режим работы этой памяти устанавливается в регистре 177346 128-256кБ это полноценная R/W память с которой всегда идет RPLY но эта память служебная и используется для работы AZ контроллера 256-512кБ это read-only память, она не доступна на запись со стороны БКшки эта память для эмуляции различных ПЗУ, содержимое которых может быть загружено только средствами AZ 512-1024кБ для эмуляции SMK-512 Начиная с 1МБ вся оперативная память - полноценная R/W память без ограничений, а именно ее подключение всегда дает RPLY на чтение и на запись если не установлен режим r/o на данной странице в регистре 177342 маппер памяти AZ технически адрес в системе 24bit-а (адрес слова 16bit) для маппера памяти используется старшая часть адреса, и получается дискретность привязки памяти к окну - 4кБ есть 16 регистров (177300-177336 R/W) куда пишется 13bit адрес начала (11 бит добавляется от адреса с шины и получается 24bit адрес слова) старшие 3 бита в резеве и маппер предусматривает расширение до 256МБ. Код ПРИНЦИП ФОРМИРОВАНИЯ ПОЛНОГО 24bit АДРЕСА 16bit слова ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ │23│22│21│20│19│18│17│16│15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│ └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘ │ │ │ │ └────────────────────────────────────┘ └──────────────────────────────┘ АДРЕС В РЕГИСТРЕ ОКНА 13bit АДРЕС С ШИНЫ МЛАДШИЕ 11bit Адресное пространство разбито на 16 окон для облегчения восприятия я пронумерую их с 0 до 15 ┌────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬─ │0..7777 │10000..17777│20000..27777│30000..37777│40000..47777│50000..57777│60000..67777│70000..77777│ └────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴─ 0 окно 1 окно 2 окно 3 окно 4 окно 5 окно 6 окно 7 окно 177300 177302 177304 177306 177310 177312 177314 177316 ──┬─────────────┬──────────────┬──────────────┬──────────────┬──────────────┬──────────────┬──────────────┬──────────────┐ │100000-107777│110000..117777│120000..127777│130000..137777│140000..147777│150000..157777│160000..167777│170000..177000│ ──┴─────────────┴──────────────┴──────────────┴──────────────┴──────────────┴──────────────┴──────────────┴──────────────┘ 8 окно 9 окно 10 окно 11 окно 12 окно 13 окно 14 окно 15 окно 177320 177322 177324 177326 177330 177332 177334 177336 Регистр управления активацией окно - маски окон АДРЕС = 177340 R/W ФОРМАТ РЕГИСТРА ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ │15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│ └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘ пример: для подключения оперативки в окно №14 - 160000-167777 надо сделать следующее: 177334 <- 400 (это указатель на первый мегабайт) 177340 <- 40000 (это разрешение этого окна - 14 бит) 177342 <- сброс бита 14 тк мы хотим оперативку а не ПЗУ Регистр управления r/o на окно АДРЕС = 177342 R/W ФОРМАТ РЕГИСТРА ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ │15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│ └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘ пример: для подключения оперативки в режиме ПЗУ в окно №14 - 160000-167777 надо сделать следующее: 177334 <- 400 (это указатель на первый мегабайт) 177340 <- 40000 (это разрешение этого окна - 14 бит) 177342 <- 40000 (это установка r/o тк мы хотим ПЗУ) Регистр управления shadow окон - маски окон АДРЕС = 177344 R/W ФОРМАТ РЕГИСТРА ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ │15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│ └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘ shadow это режим копирования всех операций записи в зеркальную память - см АДРЕСНОЕ ПРОСТРАНСТВО ПАМЯТИ В AZ ╔═══════════════════════════════════════════════════ ..... ════════╗ ║ АДРЕСНОЕ ПРОСТРАНСТВО ПАМЯТИ В AZ ║ ╚═══════════════════════════════════════════════════ ..... ════════╝ 0 128kB 256kB 512kB 1024kB 32MB │ │ └───────┘ SHADOW RAM Это нужно для работы на БК11М и формирования изображения на VGA экране shadow страницы устанавливаются автоматически при работе с маппером БК11М для управления маппером предусмотрен регистр маски окон - 177340 R/W младший бит соответствует младшему окну (те с 0 до 7777) пример: для подключения оперативки в окно 160000-167777 надо сделать следующее: 177334 <- 400 (это указатель на первый мегабайт) 177340 <- 40000 (это разрешение этого окна) для управления r/o на выбранном окне предусмотрен регистр-маска 177342 соответственно для установки режима только чтения надо установить соответствующий бит на окне к примеру 177334 <- 400 (это указатель на первый мегабайт) 177340 <- 40000 (это разрешение этого окна) 177342 <- 40000 это запрет записи в это (160000-167777) окно разбивка на окна соответствует размеру в SMK - те 4кБ начиная со 100000(8) обращаю внимание на адресацию, те свойства r/o w/o привязаны к 24bit адресу слова (!) также есть регистр управления который осуществляет включение/выключение окон по маске (177342) + для общего управления и совместимостью с SMK регистр управления shadow режимом 177344 R/W это тоже битовая маска окон, и младший бит соответствует младшему окну назначение регистра - управление работой shadow-режима для БК11М как уже было сказано - маппер V2 это полный маппер и соответственно в режиме БК11М - первые 128кБ это тень памяти БК11М для этого в регистры 177330 и далее прописываются соответствия страниц памяти в которые будет "откидываться" вся запись в память БК11М и будет обеспечиваться ее копия в памяти AZ. к примеру 177300 <=13'o030; // 000000-007777 177302 <=13'o031; // 010000-017777 177304 <=13'o032; // 020000-027777 177306 <=13'o033; // 030000-037777 те это нулевая страница в понятии БК11М и соответственно в 177344 устанавливаются биты shadow-режима управление shadow осуществляется автоматически в ПЛИС трансляцией запросов из 177716 и согласно режиму работы маппера в 177346 регистр управления маппером 177346 R/W Код Регистр управления маппером АДРЕС = 177346 ФОРМАТ РЕГИСТРА ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ │15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│ └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘ │ ║ │ │ │ ║ ║ │ │ │ │ │ │ │ │ ┌─────────────────────────┐ │ ║ │ │ │ ║ ║ └─────┤ │ │ │ │ └───┴──────┤ версия аппаратной части │ │ ║ │ │ │ ║ ║ │ │ │ │ │ └─────────────────────────┘ │ ║ │ │ │ ║ ║ │ │ │ │ │ ┌─────────────────────────────────┐ │ ║ │ │ │ ║ ║ │ │ │ │ └─────────────┤ =1 50Hz =0 60Hz кадровый таймер │ │ ║ │ │ │ ║ ║ │ │ │ │ └─────────────────────────────────┘ │ ║ │ │ │ ║ ║ │ │ │ │ ┌─────────────────────────────────┐ │ ║ │ │ │ ║ ║ │ │ │ └────────────────┤ =1 включить таймер 100й вектор │ │ ║ │ │ │ ║ ║ │ │ │ └─────────────────────────────────┘ │ ║ │ │ │ ║ ║ │ │ │ ┌────────┐ │ ║ │ │ │ ║ ║ │ │ └───────────────────┤ резерв │ │ ║ │ │ │ ║ ║ │ │ └────────┘ │ ║ │ │ │ ║ ║ │ │ ┌─────────────────────────────────────────────┐ │ ║ │ │ │ ║ ║ │ └───────┤ управление эмуляцией ПЗУ в БК11М =1 включить│ │ ║ │ │ │ ║ ║ │ └─────────────────────────────────────────────┘ │ ║ │ │ │ ║ ║ │ ┌──────────────────────────────────────────────────────────────┐ │ ║ │ │ │ ║ ║ └──┤частота процессора явно те =3 =4 =5 =6 MHz =0 то неопределено │ │ ║ │ │ │ ║ ║ │ заполняется программно, стартовым ПЗУ │ │ ║ │ │ │ ║ ║ └──────────────────────────────────────────────────────────────┘ │ ║ │ │ │ ║ ║ ╔═════════════════════════════════════════════════════════════════════════════════╗ │ ║ │ │ │ ║ ╚══╣ R/W - RAM окно памяти с 0 до 77777 (технически это и окно 100000 до 137777) ║ │ ║ │ │ │ ║ ║ в отключенном режиме (=1) на 037ую не проходят запросы с адресов с 0 до 77777 ║ │ ║ │ │ │ ║ ║ соответственно и 037ая никак не отвечает и не принимает данные на запись ║ │ ║ │ │ │ ║ ║ соответственно эта опция включает RPLY на маппере БК11М, а также возможность ║ │ ║ │ │ │ ║ ║ читать из маппера !!! при 14 бите =0 опция не работает ║ │ ║ │ │ │ ║ ╚═════════════════════════════════════════════════════════════════════════════════╝ │ ║ │ │ │ ║ ╔═════════════════════════════════════════════════════╗ │ ║ │ │ │ ╚═════╣ R/W - ответ на 177660-663 строб 014й =1 отключение ║ │ ║ │ │ │ ║ а именно эмуляцию 014й ║ │ ║ │ │ │ ║ те уже пойдет RPLY от AZ на адресах 177660-663 ║ │ ║ │ │ │ ║ при 14 бите =0 опция не работает ║ │ ║ │ │ │ ╚═════════════════════════════════════════════════════╝ │ ║ │ │ │ ┌──────────────────────────────────────────────────────────────────┐ │ ║ │ │ └──┤ R/W - включение эмуляции БК11М =1 включено │ │ ║ │ │ │эта опция может быть активирована только при наличии =1 в бите 12 │ │ ║ │ │ │(при =0 в бите 12 - игнорируется) │ │ ║ │ │ └──────────────────────────────────────────────────────────────────┘ │ ║ │ │ ┌────────────────────────────────────────────────────────────────┐ │ ║ │ └─────┤ R/W - тип БКшки =0 это 11М, дефолтное состояние =1 это 10ка │ │ ║ │ │ проверяется и устанавливается программно стартовым ПЗУ │ │ ║ │ └────────────────────────────────────────────────────────────────┘ │ ║ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │ ║ └─┤ 13 - R/W - наличие работоспособной доработки окна1 │ │ ║ │ =1 - работает отключение окна 1 традиционным методом через оттягивание выхода TM9 на землю │ │ ║ │ =0 - доработки нет │ │ ║ │ проверяется и устанавливается программно │ │ ║ │ но сбрасывается в 0 при установке бита 14 - см ниже │ │ ║ └─────────────────────────────────────────────────────────────────────────────────────────────┘ │ ║ ╔═════════════════════════════════════════════════════════╗ │ ╚═╣R/O - тип доработки, результат автоопределения в ПЛИС ║ │ ║=0 доработка окна 1 или нет доработки ║ │ ║=1 доработка с управлением 037й ║ │ ╚═════════════════════════════════════════════════════════╝ │ ┌────────────────────────────────────────────────────────────────────────────────────────────────────┐ └────┤ 15 - R/W - =1 отключение окна 1 в БК11М, транслируется из эмуляции SMK │ │ и в зависимости от типа доработки будет подаваться как сигнал на А22 или как переключение окон 11М │ └────────────────────────────────────────────────────────────────────────────────────────────────────┘ биты 00 - R/O - версия аппаратной части платы ПЛИС - сейчас там 0 01 - R/O - версия аппаратной части платы ПЛИС - сейчас там 0 02 - =1 50Hz =0 60Hz кадровый таймер переключение источников таймера, в случае 60Гц - оно идет с VGA модуля, 48Гц генерится из 65MHz 03 - =1 включить таймер 100й вектор включает таймер по 100му вектору безусловно, h 04 - резерв =0 05 - управление эмуляцией ПЗУ в БК11М; по-умолчанию расширенные ПЗУ бейсика подключаемые через 177716 в окно 1 (100000-137777) ПЗУ 8 [0] - подключает ПЗУ 325, 327 к магистрали ПЗУ 9 [1] - подключает ПЗУ 328, 329 к магистрали установка этого бита включает полную эмуляцию подключения этих ПЗУ средствами AZБК бит независимый от эмуляции БК11М тк может быть случай с БК11М без ПЗУ совсем частота процессора явно те =3 =4 =5 =6 MHz =0 то неопределено заполняется программно, стартовым ПЗУ 06 - R/W 07 - R/W 08 - R/W управление опциями отключения 037й в ПЛИС, доступно программно по-умолчанию =0, те опция выключена тк все изначально =0, и устанавливаются по HALT-у эти опция отключает прохождение SYNC-а на 037 и включает дополнительный функционал 09 - R/W - RAM окно памяти с 0 до 77777 (технически это и окно 100000 до 137777) в отключенном режиме (=1) на 037ую не проходят запросы с адресов с 0 до 77777 соответственно и 037ая никак не отвечает и не принимает данные на запись соответственно эта опция включает RPLY на маппере БК11М, а также возможность читать из маппера при 14 бите =0 опция не работает эти опция отключает прохождение SYNC-а на 037 и включает дополнительный функционал 10 - R/W - ответ на 177660-663 строб 014й =1 отключение а именно эмуляцию 014й те уже пойдет RPLY от AZ на адресах 177660-663 при 14 бите =0 опция не работает 11 - R/W - включение эмуляции БК11М =0 выключено =1 включено эта опция может быть активирована только при наличии =1 в бите 12 (при =0 в бите 12 - игнорируется) функционал эмуляции БК11М на БК10 включает: - разрешение записи (RPLY) в 177662 соответственно работают: палитры + кадровый таймер, частота задается в бите 2 12 - R/W - тип БКшки =0 это 11М, дефолтное состояние =1 это 10ка проверяется и устанавливается программно стартовым ПЗУ опция нужна для дальнейшей работы механизмов эмуляции БК11М на БК10 наличие в ней =1 обязательно для включения эмуляции БК11М на БК10 13 - R/W - наличие работоспособной доработки окна1 =1 - работает отключение окна 1 традиционным методом через оттягивание выхода TM9 на землю =0 - доработки нет проверяется и устанавливается программно но сбрасывается в 0 при установке бита 14 - см ниже 14 - R/O - тип доработки, результат автоопределения в ПЛИС =0 доработка окна 1 или нет доработки =1 доработка с управлением 037й 15 - R/W - =1 отключение окна 1 в БК11М, транслируется из эмуляции SMK и в зависимости от типа доработки будет подаваться как сигнал на А22 или как переключение окон 11М Регистры-копии данных, доступны только по чтению 177350 R/O - регистр копия по записи 177130 в режиме записи управления памятью в SMK 177352 R/O - регистр копия по записи 177716 в режиме записи управления памятью в БК11М Основное назначение регистров - возможность в любой процедуре поменять настройки памяти, что-то сделать и вернуть их обратно (тк штатными средствами узнать что записано в эти регистры невозможно) 17. RTC часы и энергонезависимая память для работы с ними используется новый блок команд AZ см https://forum.maxiol.com/index.php?s=&showt...indpost&p=57017 должны отвечать регистры SOUND 177160-177176 177200-177212 AZ 177220-177226 видеоконтроллер 177230 - регистр управления 177232 - регистр номера страницы начала отображения - верхняя страница (слой 0) 177240 - регистр номера страницы начала отображения - средняя страница (слой 1) "под спрайты" 177242 - регистр номера страницы начала отображения - нижняя страница (слой 2) "под фон" 177244 - регистр вертикального скролинга слой 2 177246 - регистр вертикального скролинга слой 1 177250 - регистр вертикального скролинга слой 0 177252 - регистр гозизонтального скролинга слой 0 177254 - регистр гозизонтального скролинга слой 1 177256 - регистр гозизонтального скролинга слой 2 маппер памяти 177300-352 177550 - генератор псевдослучайных чисел 177560-177566 - UART После reset машина стартует автоматически и загружается со первого образа в ini-файле 18. При остановленном процессоре БКшки (КР1801ВМ) контроллер отображает логотип, а также при невозможности старта - ошибку с подсказками как ее можно устранить 19. Сделан блиттер детальное описание тут Блиттер (начиная с v15) редакция от 2024-01-11 Блиттер в мой реализации есть робот читающий набор команд и выполняющих их по окончанию отображения кадра в отличии от классического блиттера в амиге, где команды подаются в режиме реального времени Примеры применения блиттера с исходниками вот ТУТ изначальные ограничения: 1. блиттер оперирует только словами, иначе говоря минимальная дискретность по горизонтали - 2пикселя (в видеорежиме 256цветов) *все расчеты в блиттере ведутся словами.* 2.команда блиттера - 8 слов 3. чтение блока команд происходит по концу отрображения 767й строки (считая с 1й); запуск блиттера происходит по началу 769й строки - те после отображения кадра и одновременно с иницированием кадрового прерывания. иначе говоря в кадровом прерывании можно смело менять команды, страницу команд, количество команд (кроме обнуления количества команд - оно приведет к асинхронному останову блиттера) 4. блиттер работает в плоском адресном пространстве со словами 16бит и адресом 24 бита иначе говоря он видит всю память [расширенную - те 32МБ] сразу. 5. макс количество команд - 128 6. макс количество слов в команде - те обрабатываемое в пакете - 256*256=65536 cлов 7. хранение исходных (SRC) спрайтов строго линейное и кратное 32м словам те спрайт должен начинаться с адреса кратному 100(8) 8. распроложение целевых данных (DST) прямоугольное - те строка + пропуск 9. максимальная шрина спрайта - 256 слов 10. максимальная строчная инкрементация - 256 слов 11. максимальное количество строк - 256 12. операции: - заполнение константой - копирование из SRC в DST (дискретность - слово) - наложение SRC на DST и помещение результата в DST при SRC!=константа прозрачного цвета (дискретность - байт) - наложение SRC на DST и помещение результата в DST при SRC!=константа прозрачного цвета и DST==константа прозрачного цвета (дискретность - байт) - копиирование из прямоугольного DST в линейный SRC (сохранение фона) (дискретность - слово) что означает дискретность: слово - те операция всегда пишет слово (2 байта) байт - означает, что тут проверяется каждый байт на соответствие правил и пишутся только те байты которые выполнили условия иначе говоря наложение спрайта на фон будет без дефектов - те оно попиксельное! 13. под блок команд блиттера выделяется страница (технически любая cвободная, просто команды читаются с начала указанной в регистре страницы) иначе говоря набор команд можно быстро менять просто меняя номер страницы 14.После чтения строки команд в буфер ПЛИС, регистр номера страницы можно менять как угодно это сделано для того чтобы пока одна пачка команд выполняется - можно было в обработчике кадрового прерывания ее поменять на другую пачку ( по времени это разнесено - и кадровое прерывание возникает гарантированно позднее чтения ) 15. чтение пачки команд производится в память ПЛИС при выполнении 3х условий - команда читать от VGA - количество команд не равно =0 - блиттер готов к выполнению (те он в статусе ожидания) иначе говоря если мы зафигачим 100 команд которые будут выполняться 5 кадров (к примеру) то чтение новой пачки не начнется пока вся пачка команд не выполнится Управление блиттером осуществляется через два регистра 177270 - количество команд в блиттере, регистр сбрасывается в 0 по низкому B_HALT_L (системный сброс в БК) 177272 - номер страницы содержащей команды запись 0 в 177270 вызывает полный асинхронный сброс/останов всех процессов блиттера Код РЕГИСТР УПРАВЛЕНИЯ БЛИТТЕРОМ (КОЛИЧЕСТВА КОМАНД) АДРЕС = 177270 ФОРМАТ РЕГИСТРА доступен по чтению и записи ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ │15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│ └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘ │ │ ╔╧═════════════════════╧╗ ║ Количество команд ║ ║ =0 выключен ║ ╚═══════════════════════╝ РЕГИСТР СТРАНИЦЫ КОМАНД БЛИТТЕРА АДРЕС = 177272 ФОРМАТ РЕГИСТРА доступен по чтению и записи ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ │15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│ └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘ │ │ ╔╧════════════════════════════════════╧╗ ║ Номер страницы с командами блиттера ║ ╚══════════════════════════════════════╝ далее в описании рассматриваем видеорежим разрешение 512х384 256цветов, 196кБ экран, квадратный пиксель как основное команда блиттера cодержит 8 слов 1 слово старший байт - старшая часть адреса SRC младший байт - старшая часть адреса DST 2 слово - младшая часть адреса SRC 3 слово - младшая часть адреса DST 4 слово - команда биты 0 = 1 для команды нужно чтение SRC 1 = 1 для команды нужно чтение DST 2 = не используется, резерв 3-4-5 номер команды =0 заполнение константой CONST =1 копирование SRC=>DST =2 наложение SRC на DST =>DST при (при SRC!=прозрачный цвет SRC) =3 наложение SRC на DST =>DST при (при SRC!=прозрачный цвет SRC) и (при DST=прозрачный цвет DST) =4 копирование DST => SRC (сохранение фона) в итоге получаются команды (в 8 системе) = 0 заполнение константой = 11 копирование SRC=>DST = 21 наложение SRC на DST =>DST (при SRC!=прозрачный цвет SRC) = 33 наложение SRC на DST =>DST (при SRC!=прозрачный цвет SRC) и (при DST=прозрачный цвет DST) = 42 копирование DST=>SRC Пояснения - на примере команды заполнения константой: для нее не требуется установка битов чтения данных SRC или DST, тк запись данных (в данном случае константы идет безусловно). если мы поставим эти биты - ничего не произойдет для пользователя - лишь скорость выполнения команды уменьшится тк блиттер потратит время на чтение. = 11 копирование SRC=>DST тут чтобы положить данные в DST мы должны из считать из SRC - cоответственно проставляем бит чтения SRC, читать DST нам тут не надо тк нам пофиг - запись безусловная = 21 наложение SRC на DST =>DST (при SRC!=прозрачный цвет SRC) тут аналогично - нужен только SRC для проверки условия = 33 наложение SRC на DST =>DST (при SRC!=прозрачный цвет SRC) и (при DST=прозрачный цвет DST) - тут две проверки - и нам нужно считать и SRC и DST - соответственно установлены оба бита чтения зачем чтение вынесено в отдельные биты ? тупо оптимизация аппаратной части блиттера - экономия LC (бит проще проверять чем несколько битов) далее в примере будем рассматривать спрайт шириной 8 пикселей и высотой тоже 8 пикселей количество слов получается (8/2)*8 = 32. 5 слово (используется младший байт) длина спрайта в словах по горизонтали иначе говоря в копировании 1в1 значение должно быть 1 (речь о копировании сплошного блока целиком) а если спрайт по горизонтали 8. пикселей то указываем 3. тк копирование идет словами по 2 пикселя 6 слово - (используется младший байт) инкрементация адреса назначения после копирования строки спрайта иначе говоря в копировании 1в1 значение должно быть 1 а если мы хотим вывести спрайт шриной 8. пикселей в строку длиной 256. слов то мы должны указать инкрементацию - 256.-3.=253. 7 слово - (используется младший байт) количество строк 8 слово -младший байт константа заполнения или константа прозрачного цвета SRC старший байт - константа прозрачного цвета DST Для формирования команды можно использовать калькулятор команд блиттера В архиве обновленное - надо прошивать ВСЕ ![]() azboot.ROM - положить в ROM AZLIB00.ROM - положить в ROM AZLIB01.ROM - положить в ROM AZLIB02.ROM - положить в ROM AZLIB03.ROM - положить в ROM SETUP.ROM - положить в ROM AZBK_00015b5.hex AZBK_00015b5.pof AZLOGO.RAW - положить в ROM Добавлена новая секция ini файла [LOGO] L=0:/rom/AZLOGO.RAW Установку и настройку сети теперь можно сделать как и в AZ.INI так и в SETUP-е пример Код [network] MAC=002335220510 DHCPNAME=AZNET-BK10.home.maxiol.com DHCP=ON TIMEZONE=420 таймзона - в минутах Setup сделан в интуитивно понятном стиле Добавлю пояснения по расширенным опциям: Для БК11М 1. для работы дискового бейсика 11М - включаем опцию "ROM 11emulation" также эта опция позволит работать на БК11М вообще без каких-либо ПЗУ 2. V-sync таймер это расширенный таймер через 177346 (см выше) Для БК10 в зависимости от доработок будут доступны опции - FastRAM - это режим 10ки но с быстрой нижней памятю - BK11 emulation - режим эмуляции БК11М - внешняя PS/2 клавиатура Горячие кнопки: после появления надписи "Press KT to run Setup" доступны следующие горячие кнопки 1. КТ - запуск SETUP-а, это не мгновенно, не беспокойтесь! 2. Пробел - выход в монитор (БК10 или БК11М - в зависимости от БК и ее режима) 3. Цифры от 0 до 9 - загрузка с выбранного диска /также напоминаю, что выбор дефолтного бутового диска в SETUP-е/ Рабочие комплекты ANDOS + ПРИНЦ + демки блиттера ![]() на БК10 с 3MHz запускать start2.exe (тк у БК не хватает быстродействия отобразить заставку пришлось внести коррективы) Про доработку БК-0010(01) читать тут -------------------- Живы будем - Не помрем !
|
SuperMax |
![]()
Сообщение
#26
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 295 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 ![]() |
Прошивка 00015 beta 6
данная прошивка является баг-фиксом и в ней исправлена ошибка работы с 256словной видеострокой Прошивка ![]() Образ для проверки ![]() -------------------- Живы будем - Не помрем !
|
SuperMax |
![]()
Сообщение
#27
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 295 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 ![]() |
Прошивка 00015 beta 7
прошивка добавляет ручной режим в блиттер а также содержит масштабный багфикс к видеоконтроллеру - теперь все его состояние запоминается ДО отрисовки кадра и не требует явной кадровой синхронизации для переключения видеостраниц документация на блиттер примеры работы с блиттером ![]() образ с обновленными тестами блиттера ![]() -------------------- Живы будем - Не помрем !
|
SuperMax |
![]()
Сообщение
#28
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 295 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 ![]() |
Прошивка 00015 beta 8
в прошивке переработано A. блиттер: изменена логика работы бит 15 бит занятости блиттера - он установлен в =1 всегда когда блиттер занят чем-либо: читает команды в буфер или уже выполняет команды добавлен бит 9 бит фиксации пачки команд, =1 означает, что блиттер читает пачку команд в буфер и сейчас ничего с командами делать ничего нельзя. данный бит предназначен для организации конвейерной обработки пакетов команд; изменены слова в команде - теперь 5 слово младший байт длина спрайта в словах по горизонтали иначе говоря в копировании 1в1 значение должно быть 1 (речь о копировании сплошного блока целиком) а если спрайт по горизонтали 8. пикселей то указываем 3. тк копирование идет словами по 2 пикселя старший байт количество строк (было в 7м слове) 7 слово целиком отдано как координата Y Y координата для видеорежима 256 слов в строке иначе говоря это часть базового адреса для удобства addr_mem_dst<=addr_dst+{spr_Yadd,8'd0}; добавлен бит NOP для команды 4 слово - команда биты 2 = 1 флаг NOP - те наличие этого флага вызывает переход к следующей команде те просто установить его на команде и она будет пропущена B. видеоконтроллер - добавлено управление синхронизацией которая появилась в 15b7 регистр 177230 бит 11 - синхрониация отображаемых страниц, =1 включена данный бит включает синхронизацию отображаемых страниц с отображением кадра суть в том, что если мы к примеру поменяем значение в регистре 177232 - те установим новую отображаемую страницу, то при отключенной синхронизации, изменения будут приняты немедленно - вне зависимости от того что сейчас отображается на экране, а именно если сейчас идет отображение кадра то начиная со следующей строки будет отображаться новая страница. если же явно включить синхронизацию =1 то страница поменяется только когда будет отображаться новый кадр. по-умолчанию синхронизация выключена. C. ROM старта fix ошибочного определения опций (доработок) ![]() -------------------- Живы будем - Не помрем !
|
SuperMax |
![]()
Сообщение
#29
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 295 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 ![]() |
Прошивка 00015 beta 9
в прошивке переработано A. блиттер: добавлена команда 51 предназначена для заливки константой по контуру спрайта, данный способ отметить пересечение или попадание было характерным для игр 80х годов к примеру тут https://www.youtube.com/watch?v=LtetK6-x6bs&t=146s герой засвечивается белым во время столкновения с шерифом 51 наложение SRC на DST =>DST (при SRC!=прозрачный цвет SRC) тут аналогично - нужен только SRC для проверки условия важно - константа заполнения в младшем байте, а константа прозрачного цвета SRC в старшем (не как в 21й команде где константа прозрачного цвета SRC в младшем байте) Прошивка ![]() Образ с обновленными тестами блиттера ![]() -------------------- Живы будем - Не помрем !
|
SuperMax |
![]()
Сообщение
#30
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 295 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 ![]() |
баг-фикс для 15beta9
по результатам разбора ошибки с запуском SETUP в эмуляторе GID-а нашлась ошибка не только в эмуляторе (тк на железе все работало) но и некорректность в коде инициализации векторов прерываний соответственно сделал FIX который корректно их устанавливает и теперь этот набор ROMов работает корректно и на текущей (08.08) версии эмулятора и на предыдущей (от 03.06) исправленные ROMы ![]() -------------------- Живы будем - Не помрем !
|
![]() ![]() |
Текстовая версия | Сейчас: 1.9.2024, 7:08 |