Прошивка 00001 тестовая
функционал:
- отображение в VGA экрана БКшки, цветной режим
- проверка работы STM32
должны отвечать регистры 177220-177226 (если читается только 177220 то значит Вы не вставили SD-карту с https://forum.maxiol.com/index.php?showtopic=5388)
- проверка работы ПЛИС
должны отвечать регистры 177560-177566
- проверка работы SDRAM в байтовом режиме
должна отвечать оперативная память в адресах 160000-167776, читается младший байт, его значения можно изменять - те сохраненные значения потом должны читаться
ограничения:не пойдет на новоделе БК11М тк AZ нацелен отключить все ПЗУ, а эмуляция ПЗУ в замену еще не сделана
https://forum.maxiol.com/index.php?showtopic=5550
прошивка нужна для:
- диагностики компонентов
- обучения процедуре обновления
00001.rar ( 86.66 килобайт )
Кол-во скачиваний: 4354
Прошивка 00002
функционал:
1. палитры, сделано расширение функционала механизма палитр
подробнее https://forum.maxiol.com/index.php?showtopic=5556
2. реализовано ручное переключение видеорежима (циклическое 1-2-3-4) по сочетанию AR2+KT
те можно спокойно переключать его в зависимости от программы не напрягаясь!
3. сделан маппер памяти + разделение по сегментам:
- область перехвата - те копия станиц оперативки
- область эмуляции ROM - выделил 256КБ под всякие ПЗУ которые будут подключаться как в эмуляторе из меню
- и вся остальная память
4. полный вывод VGA уже из SDRAM, переключение страниц
[пока без новых режимов, но они уже заложены в архитектуру]
5. перехват переключения палитр БК11М
- доступ к памяти палитр с шины, чтение+запись
6. Генератор псевдослучайных чисел - технически это LFSR длиной 128бит, младшие 16 в регистре доступном программно.
сдвиг идет с частотой 50MHz (или 65Mhz-посмотрим) как следствие полностью новое слово доступно будет каждый такт
7. загрузка ПЗУ в память (пока реализовано но не используется)
должны отвечать регистры
AZ
177220-177226
дебаг
177100-177106
регистры палитр - уже можно экспериментировать
177234 - адрес ячейки палитры [9бит]
177236 - значение палитры [15бит]
ограничения: пока еще не пойдет на новоделе БК11М тк AZ нацелен отключить все ПЗУ, а эмуляция ПЗУ в замену еще не включена
как запускать - cпособ временный, костыльный:
177226G
R0/0
160002G
будет загружен и запущен первый образ с диска (согласно ini-файла)
если в R0 занести не 0 а 1 то второй образ
https://forum.maxiol.com/index.php?showtopic=5550
Прошивка
00002.rar ( 100.33 килобайт )
Кол-во скачиваний: 3820
Образ дисков для тестов
2021_05_04.rar ( 18.14 мегабайт )
Кол-во скачиваний: 3764
Прошивка 00003
функционал:
1. палитры, сделано расширение функционала механизма палитр
подробнее https://forum.maxiol.com/index.php?showtopic=5556
2. реализовано ручное переключение видеорежима (циклическое 1-2-3-4) по сочетанию AR2+KT
те можно спокойно переключать его в зависимости от программы не напрягаясь!
3. сделан маппер памяти + разделение по сегментам:
- область перехвата - те копия станиц оперативки
- область эмуляции ROM - выделил 256КБ под всякие ПЗУ которые будут подключаться как в эмуляторе из меню
- и вся остальная память
перехват запросов SMK сделан, но не включен
4. полный вывод VGA уже из SDRAM, переключение страниц
[пока без новых режимов, но они уже заложены в архитектуру]
5. перехват переключения палитр БК11М
- доступ к памяти палитр с шины, чтение+запись
6. Генератор псевдослучайных чисел - технически это LFSR длиной 128бит, младшие 16 в регистре доступном программно.
сдвиг идет с частотой 130MHz как следствие полностью новое слово доступно будет каждый процессорный такт
7. загрузка ПЗУ в память полностью реализована
8. Реализовано распознавание новодела БК11М и подключение ПЗУ (надо оттестировать тк у меня нет новодела)
должны отвечать регистры
AZ
177220-177226
дебаг
177100-177106
регистры палитр - уже можно экспериментировать
177234 - адрес ячейки палитры [9бит]
177236 - значение палитры [15бит]
маппер памяти
177300-342
загрузчик
177000
После reset машина стартует автоматически и загружается со второго образа в ini-файле (cейчас там ANDOS - ANSYS.IMG)
https://forum.maxiol.com/index.php?showtopic=5550
Прошивка
00003.rar ( 110.54 килобайт )
Кол-во скачиваний: 3836
Образ
MicroSD_image_2021_06_17__1.rar ( 15.36 мегабайт )
Кол-во скачиваний: 3772
поправил образ для реплики, теперь должно нормально запускаться (те проверено на БК с отключенной 324й)
Прошивка 00004
является небольшой коррекцией предыдущей
функционал:
1. палитры, сделано расширение функционала механизма палитр
подробнее https://forum.maxiol.com/index.php?showtopic=5556
2. реализовано ручное переключение видеорежима (циклическое 1-2-3-4) по сочетанию AR2+KT
те можно спокойно переключать его в зависимости от программы не напрягаясь!
3. сделан маппер памяти + разделение по сегментам:
- область перехвата - те копия станиц оперативки
- область эмуляции ROM - выделил 256КБ под всякие ПЗУ которые будут подключаться как в эмуляторе из меню
- и вся остальная память
перехват запросов SMK сделан, но не включен
4. полный вывод VGA уже из SDRAM, переключение страниц
[пока без новых режимов, но они уже заложены в архитектуру]
5. перехват переключения палитр БК11М
- доступ к памяти палитр с шины, чтение+запись
6. Генератор псевдослучайных чисел - технически это LFSR длиной 128бит, младшие 16 в регистре доступном программно.
сдвиг идет с частотой 130MHz как следствие полностью новое слово доступно будет каждый процессорный такт
7. загрузка ПЗУ в память полностью реализована
8. Реализовано распознавание новодела БК11М и подключение ПЗУ
должны отвечать регистры
AZ
177220-177226
дебаг
177100-177106
регистры палитр - уже можно экспериментировать
177234 - адрес ячейки палитры [9бит]
177236 - значение палитры [15бит]
маппер памяти
177300-350
загрузчик
177000
После reset машина стартует автоматически и загружается со второго образа в ini-файле (cейчас там ANDOS - ANSYS.IMG)
Изменения:
- внесена коррекция в стартовую последовательность, теперь STM32 явно дожидается подъема RESET и только потом разрешает прерывания от RESET
- снижена частота обмена с сетевой картой тк новая партия сетевух отказалась работать на SPI 21Mbit, соответственно скорость обмена с сетевой картой теперь 10.5Mbit
- внесена коррекция в технологию синхронизации захвата строки при перегрузки из оперативки в буфер показа
- стартовая ПЗУ со 170000 теперь определяет конфигурацию машины, сохраняет битовую маску занятых окон, различает БК10/11M и записывает тип машины в регистр. также проверяет соответствие аппаратной прошивке и при отличии версий, включает "сирену" явно обозначая проблему.
00004.rar ( 147.23 килобайт )
Кол-во скачиваний: 3709
MicroSD_image_2021_06_26__1.rar ( 18.8 мегабайт )
Кол-во скачиваний: 3817
Интересны результаты запуска на БК-0010-01 втч и новой где отключается монитор
Образ дисков для RT11 c исправленной ПЗУ
MicroSD_image_2021_07_17__1_RT11.rar ( 9.1 мегабайт )
Кол-во скачиваний: 3782
RT11 корректно стартует и работает через штатный драйвер BY.SYS
( AZ.SYS еще надо поправить для совместимости с БК )
PS: встроенная оболочка интеркоммандер не понимает больших дисков (по 32МБ)
их надо открывать через штатный фукнционал ОS RT11 - те DIR итд
Прошивка 00005
функционал:
1. палитры, сделано расширение функционала механизма палитр
подробнее https://forum.maxiol.com/index.php?showtopic=5556
2. реализовано ручное переключение видеорежима (циклическое 1-2-3-4) по сочетанию AR2+KT
те можно спокойно переключать его в зависимости от программы не напрягаясь!
также режимы можно переключать через регистр 177230
младшие 2 бита - видеорежим (точнее интерпретация легаси-видеорежимов)
0 - монохром 512х256
1 - 4 цвета 256х256
2 - 16 цветов 128х256
3 - 256 цветов 64х256
3. Реализовано отображение информации в консоли контроллера дисковой подсистемы и сети - переключается по АР2+РУС
соответственно выделена страница памяти под консоль
4. сделан маппер памяти + разделение по сегментам:
- область перехвата - те копия станиц оперативки
- область эмуляции ROM - выделил 256КБ под всякие ПЗУ которые будут подключаться как в эмуляторе из меню
- и вся остальная память
перехват запросов SMK сделан, но не включен
4. полный вывод VGA уже из SDRAM, переключение страниц
[пока без новых режимов, но они уже заложены в архитектуру]
5. перехват переключения палитр БК11М
- доступ к памяти палитр с шины, чтение+запись
6. Генератор псевдослучайных чисел - технически это LFSR длиной 128бит, младшие 16 в регистре доступном программно.
сдвиг идет с частотой 130MHz как следствие полностью новое слово доступно будет каждый процессорный такт
7. загрузка ПЗУ в память полностью реализована
8. Реализовано распознавание новодела БК11М и подключение ПЗУ
должны отвечать регистры
AZ
177220-177226
дебаг
177100-177106
регистры палитр - уже можно экспериментировать
177230 - видеорежимы
177230 - видеорежимы
177234 - адрес ячейки палитры [9бит]
177236 - значение палитры [15бит]
маппер памяти
177300-350
загрузчик
177000
177550 - генератор псевдослучайных чисел
После reset машина стартует автоматически и загружается со первого образа в ini-файле (cейчас там ANDOS - ANSYS.IMG)
Изменения:
- консоль STM32
- управление видео режимами через 177230
- новое ПЗУ - AZBOOT.ROM
00005.rar ( 168.16 килобайт )
Кол-во скачиваний: 3702
Готовый образ c новым AZBOOT.ROM
MicroSD_image_2021_08_08_00005.rar ( 18.8 мегабайт )
Кол-во скачиваний: 3740
Если у Вас уже готовы свои образа, копируйте с этого раздел ROM в ini файле + все файлы в каталоге ROM
эти части будут постоянно обновляться тк AZ требует полного соответствия версий прошивок
Обновление ПЗУ для версии 00005
обновление
- включает сеть "на постоянку"
- убирает радугу
- исправляет ошибку автозапуска МКДОС/НОРД
содержит 2 файла ПЗУ
AZ337.ROM
AZBOOT.ROM
их необходимо скопировать в ROM на карточку
а таже исправить строчку в AZ.INI на
Набор с 8ю дисками - игрушки
MicroSD_image_2021_08_14_GAMES_8disk.rar ( 3.13 мегабайт )
Кол-во скачиваний: 3726
последний диск АОДОС или что-то подобное (тк не нашел больше гровых дисков под андос столько)
соответственно многофайловые игры надо запускать из под нее
Прошивка 00005_2 - обновление для поддержки 32х дисков
00005_2.rar ( 79.28 килобайт )
Кол-во скачиваний: 3789
Образ диска
MicroSD_image_2021_08_15__1_ANDOS_32disk.rar ( 2.76 мегабайт )
Кол-во скачиваний: 3704
содержит уже новую версию ROM-ов см выше + поддержка 32х дисков в ПЗУ AZ337
Комплект RT11 для БК
автоматическая загрузка идет с BY0:
но на системном диске есть еще стандартны драйвер AZ.SYS
через который можно корректно работать с образами большого размера - те больше чем дискета
тк драйвер BY ориентирован только на дискету и не знает других размеров
AZ.SYS поддерживает максимальные доступные для RT11 диски, а именно 32МБ
MicroSD_image_2021_08_26_RT11_for_all.rar ( 7.13 мегабайт )
Кол-во скачиваний: 3792
Прошивка 00006
жирным новое в прошивке
функционал:
1. палитры, сделано расширение функционала механизма палитр
подробнее https://forum.maxiol.com/index.php?showtopic=5556
2. реализовано ручное переключение видеорежима (циклическое 1-2-3-4) по сочетанию AR2+KT
те можно спокойно переключать его в зависимости от программы не напрягаясь!
также режимы можно переключать через регистр 177230
младшие 2 бита - видеорежим (точнее интерпретация легаси-видеорежимов)
0 - монохром 512х256
1 - 4 цвета 256х256
2 - 16 цветов 128х256
3 - 256 цветов 64х256
3. Реализовано отображение информации в консоли контроллера дисковой подсистемы и сети - переключается по АР2+РУС
соответственно выделена страница памяти под консоль
4. сделан маппер памяти + разделение по сегментам:
- область перехвата - те копия станиц оперативки
- область эмуляции ROM - выделил 256КБ под всякие ПЗУ которые будут подключаться как в эмуляторе из меню
- и вся остальная память
перехват запросов SMK сделан, но не включен
4. полный вывод VGA уже из SDRAM, переключение страниц
[пока без новых режимов, но они уже заложены в архитектуру]
5. Добавлен альтернативный легаси-режим который позволяет отображать любой участок памяти на экран
включение - 15й бит регистра 177230 в 1
регистр 177232 - номер страницы памяти, кратный 4м - те с дискретностью 16кБ
6. перехват переключения палитр БК11М
- доступ к памяти палитр с шины, чтение+запись
исправлены ошибки перехвата при обращении к нечетным адресам
7. Генератор псевдослучайных чисел - технически это LFSR длиной 128бит, младшие 16 в регистре доступном программно.
сдвиг идет с частотой 130MHz как следствие полностью новое слово доступно будет каждый процессорный такт
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х битный
должны отвечать регистры
SOUND
177200-177212
AZ
177220-177226
дебаг
177100-177106
регистры палитр - уже можно экспериментировать
177230 - видеорежимы
177232 - номер легаси страницы
177234 - адрес ячейки палитры [9бит]
177236 - значение палитры [15бит]
маппер памяти
177300-350
загрузчик
177000
177550 - генератор псевдослучайных чисел
После reset машина стартует автоматически и загружается со первого образа в ini-файле
В архиве обновленное AZBOOT.ROM - не забудьте обновить
AZBK_00006.hex без изменений относительно 5й версии, те надо обновить только прошивку ПЛИС
00006.rar ( 178.11 килобайт )
Кол-во скачиваний: 3690
Для проверки работы ковокса
MicroSD_image_2021_09_06_covox_demos.rar ( 4.08 мегабайт )
Кол-во скачиваний: 3670
Прошивка 00007
жирным новое в прошивке
функционал:
1. палитры, сделано расширение функционала механизма палитр
подробнее https://forum.maxiol.com/index.php?showtopic=5556
2. реализовано ручное переключение видеорежима (циклическое 1-2-3-4) по сочетанию AR2+KT
те можно спокойно переключать его в зависимости от программы не напрягаясь!
также режимы можно переключать через регистр 177230
младшие 2 бита - видеорежим (точнее интерпретация легаси-видеорежимов)
0 - монохром 512х256
1 - 4 цвета 256х256
2 - 16 цветов 128х256
3 - 256 цветов 64х256
3. Реализовано отображение информации в консоли контроллера дисковой подсистемы и сети - переключается по АР2+РУС
соответственно выделена страница памяти под консоль
4. сделан маппер памяти + разделение по сегментам:
- область перехвата - те копия станиц оперативки
- область эмуляции ROM - выделил 256КБ под всякие ПЗУ которые будут подключаться как в эмуляторе из меню
- и вся остальная память
перехват запросов SMK сделан, но не включен
4. полный вывод VGA уже из SDRAM, переключение страниц
[пока без новых режимов, но они уже заложены в архитектуру]
5. Добавлен альтернативный легаси-режим который позволяет отображать любой участок памяти на экран
включение - 15й бит регистра 177230 в 1
регистр 177232 - номер страницы памяти, кратный 4м - те с дискретностью 16кБ
6. перехват переключения палитр БК11М
- доступ к памяти палитр с шины, чтение+запись
исправлены ошибки перехвата при обращении к нечетным адресам
7. Генератор псевдослучайных чисел - технически это LFSR длиной 128бит, младшие 16 в регистре доступном программно.
сдвиг идет с частотой 130MHz как следствие полностью новое слово доступно будет каждый процессорный такт
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х битный
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 пойдут напрямую на микшер отдельным каналом
должны отвечать регистры
SOUND
177160-177170
177200-177212
AZ
177220-177226
дебаг
177100-177106
регистры палитр - уже можно экспериментировать
177230 - видеорежимы
177232 - номер легаси страницы
177234 - адрес ячейки палитры [9бит]
177236 - значение палитры [15бит]
маппер памяти
177300-350
загрузчик
177000
177550 - генератор псевдослучайных чисел
После reset машина стартует автоматически и загружается со первого образа в ini-файле
В архиве обновленное AZBOOT.ROM - не забудьте обновить
AZBK_00007.hex без изменений относительно 5й версии, те надо обновить только прошивку ПЛИС
00007.rar ( 207.21 килобайт )
Кол-во скачиваний: 3603
Для проверки работы DMA-контроллера - комплект дисков и плееры
MicroSD_image_2021_10_05_RT11_demos.rar ( 46.72 мегабайт )
Кол-во скачиваний: 2811
подробнее про воспроизведение https://forum.maxiol.com/index.php?s=&showtopic=5579&view=findpost&p=55976 в https://forum.maxiol.com/index.php?s=&showtopic=5579&view=findpost&p=55976
Прошивка 00008
жирным новое в прошивке
функционал:
1. палитры, сделано расширение функционала механизма палитр
подробнее https://forum.maxiol.com/index.php?showtopic=5556
2. реализовано ручное переключение видеорежима (циклическое 1-2-3-4) по сочетанию AR2+KT
те можно спокойно переключать его в зависимости от программы не напрягаясь!
также режимы можно переключать через регистр 177230
младшие 2 бита - видеорежим (точнее интерпретация легаси-видеорежимов)
0 - монохром 512х256
1 - 4 цвета 256х256
2 - 16 цветов 128х256
3 - 256 цветов 64х256
3. Реализовано отображение информации в консоли контроллера дисковой подсистемы и сети - переключается по АР2+РУС
соответственно выделена страница памяти под консоль
4. сделан маппер памяти + разделение по сегментам:
- область перехвата - те копия станиц оперативки
- область эмуляции ROM - выделил 256КБ под всякие ПЗУ которые будут подключаться как в эмуляторе из меню
- и вся остальная память
перехват запросов SMK сделан, но не включен
4. полный вывод VGA уже из SDRAM, переключение страниц
[пока без новых режимов, но они уже заложены в архитектуру]
5. Добавлен альтернативный легаси-режим который позволяет отображать любой участок памяти на экран
включение - 15й бит регистра 177230 в 1
регистр 177232 - номер страницы памяти, кратный 4м - те с дискретностью 16кБ
6. перехват переключения палитр БК11М
- доступ к памяти палитр с шины, чтение+запись
исправлены ошибки перехвата при обращении к нечетным адресам
7. Генератор псевдослучайных чисел - технически это LFSR длиной 128бит, младшие 16 в регистре доступном программно.
сдвиг идет с частотой 130MHz как следствие полностью новое слово доступно будет каждый процессорный такт
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х битный
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
должны отвечать регистры
SOUND
177160-177170
177200-177212
AZ
177220-177226
дебаг
177100-177106
регистры палитр - уже можно экспериментировать
177230 - видеорежимы
177232 - номер легаси страницы
177234 - адрес ячейки палитры [9бит]
177236 - значение палитры [15бит]
маппер памяти
177300-350
загрузчик
177000
177550 - генератор псевдослучайных чисел
После reset машина стартует автоматически и загружается со первого образа в ini-файле
В архиве обновленное AZBOOT.ROM - не забудьте обновить
AZBK_00008.hex без изменений относительно 5й версии, те надо обновить только прошивку ПЛИС
00008.rar ( 214.48 килобайт )
Кол-во скачиваний: 3667
Образ с музыкой AY
MicroSD_image_2021_12_09_AY_COVOX_DEMO.rar ( 3.51 мегабайт )
Кол-во скачиваний: 3634
Сделал поддержку БК-0010-01
проверено на БК-0010-01 с пленкой
MicroSD_image_2022_01_10_v8_add_BK10.rar ( 4.39 мегабайт )
Кол-во скачиваний: 3710
игрушки от 10ки запускаются
андос грузится
единственное, включается 15ая палитра от 11М
это пока не учтено, но записано в беклог
Прошивка 00009
жирным новое (или измененное) в прошивке
функционал:
1. палитры, сделано расширение функционала механизма палитр
подробнее https://forum.maxiol.com/index.php?showtopic=5556
2. реализовано ручное переключение видеорежима (циклическое 1-2) по сочетанию AR2+KT
те можно спокойно переключать его в зависимости от программы не напрягаясь!
3. Реализовано отображение информации в консоли контроллера дисковой подсистемы и сети - переключается по АР2+РУС
соответственно выделена страница памяти под консоль
4. сделан маппер памяти + разделение по сегментам:
- область перехвата - те копия станиц оперативки
- область эмуляции ROM - выделил 256КБ под всякие ПЗУ которые будут подключаться как в эмуляторе из меню
- и вся остальная память
перехват запросов SMK сделан, но не включен
4. полный вывод VGA уже из SDRAM, переключение страниц
[пока без новых режимов, но они уже заложены в архитектуру]
5. Переделано
6. перехват переключения палитр БК11М
- доступ к памяти палитр с шины, чтение+запись
исправлены ошибки перехвата при обращении к нечетным адресам
7. Генератор псевдослучайных чисел - технически это LFSR длиной 128бит, младшие 16 в регистре доступном программно.
сдвиг идет с частотой 130MHz как следствие полностью новое слово доступно будет каждый процессорный такт
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х битный
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
адреса стандартные
177560 - регистр статуса приемника
177562 - регистр управления + регистр принятых данных
177564 - регистр статуса передатчика
177566 - регистр данных на передачу
177560 - регистр статуса приемника
бит 7 - флаг наличия данных: единица означает наличие принятых данных в регистре 177562
после чтения 177562 - флаг будет сброшен
регистр доступен на чтение
запись игнорируется, ошибки не взывает
177562
- по чтению - младший байт содержит принятые данные
- по записи - слово определяющее скорость, подробности ниже
дефолтное значение 32346(8) что соответствует стандартной скорости в 9600бод
177564 - регистр статуса передачика
бит 7 - флаг успешной передачи данных: единица означает что байт из регистра 177566 успешно передан в линию
после записи в 177566 - флаг будет сброшен тк начнется передача
регистр доступен на чтение
запись игнорируется, ошибки не взывает
177566 - регистр данных на передачу, используется младший байт, доступен на чтение и запись
после записи начинается передача в линию
Слово определяющее скорость - доступно только по записи
https://forum.maxiol.com/index.php?s=&showtopic=5556&view=findpost&p=56214
14. Сделан конструктор видеорежимов
177230 - регистр управления
177232 - регистр номера страницы начала отображения
177230, далее пойдут биты с описанием
1;0 - режим цветовой интерпретации
4;3 - длина строки в словах
7;6 - растяжение по горизонтали - те количество повторов у точки
10;9 - количество повторов строк
15;12 - длина рулона в словах
теперь подробно
режим цветовой интерпретации, значение от 0 до 3
0 - 1 бит на цвет - 2 цвета
1 - 2 бита на цвет - 4 цвета
2 - 4 бита на цвет - 16 цветов
3 - 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" те я не провел полного тестирования
должны отвечать регистры
SOUND
177160-177170
177200-177212
AZ
177220-177226
дебаг
177100-177106
регистры палитр - уже можно экспериментировать
177230 - видеорежимы
177232 - номер легаси страницы
177234 - адрес ячейки палитры [9бит]
177236 - значение палитры [15бит]
маппер памяти
177300-350
загрузчик
177000
177550 - генератор псевдослучайных чисел
177560-177566 - UART
После reset машина стартует автоматически и загружается со первого образа в ini-файле
В архиве обновленное AZBOOT.ROM - не забудьте обновить
также утилита VGAMON.SAV для RT11 которая переключает в режим mono 512x256
AZBK_00009.hex без изменений относительно 5й версии, те надо обновить только прошивку ПЛИС
00009.rar ( 224.29 килобайт )
Кол-во скачиваний: 3641
RT11 + IMA player
MicroSD_image_2022_01_18_v9_RT11_IMA.rar ( 46.85 мегабайт )
Кол-во скачиваний: 2751
Прошивка 00010
жирным новое (или измененное) в прошивке
функционал:
1. палитры, сделано расширение функционала механизма палитр
подробнее https://forum.maxiol.com/index.php?showtopic=5556
2. реализовано ручное переключение видеорежима (циклическое 1-2) по сочетанию AR2+KT
те можно спокойно переключать его в зависимости от программы не напрягаясь!
3. Реализовано отображение информации в консоли контроллера дисковой подсистемы и сети - переключается по АР2+РУС
соответственно выделена страница памяти под консоль
4. сделан маппер памяти + разделение по сегментам:
- область перехвата - те копия станиц оперативки
- область эмуляции ROM - выделил 256КБ под всякие ПЗУ которые будут подключаться как в эмуляторе из меню
- и вся остальная память
перехват запросов SMK сделан, но не включен
4. полный вывод VGA уже из SDRAM, переключение страниц
[пока без новых режимов, но они уже заложены в архитектуру]
5. Переделано
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 - регистр данных на передачу, используется младший байт, доступен на чтение и запись
после записи начинается передача в линию
Слово определяющее скорость - доступно только по записи
https://forum.maxiol.com/index.php?s=&showtopic=5556&view=findpost&p=56214
14. Сделан конструктор видеорежимов
177230 - регистр управления
177232 - регистр номера страницы начала отображения
177230, далее пойдут биты с описанием
1;0 - режим цветовой интерпретации
4;3 - длина строки в словах
7;6 - растяжение по горизонтали - те количество повторов у точки
10;9 - количество повторов строк
15;12 - длина рулона в словах
теперь подробно
режим цветовой интерпретации, значение от 0 до 3
0 - 1 бит на цвет - 2 цвета
1 - 2 бита на цвет - 4 цвета
2 - 4 бита на цвет - 16 цветов
3 - 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
должны отвечать регистры
SOUND
177160-177174
177200-177212
AZ
177220-177226
дебаг
177100-177106
регистры палитр - уже можно экспериментировать
177230 - видеорежимы
177232 - номер легаси страницы
177234 - адрес ячейки палитры [9бит]
177236 - значение палитры [15бит]
маппер памяти
177300-350
загрузчик
177000
177550 - генератор псевдослучайных чисел
177560-177566 - UART
После reset машина стартует автоматически и загружается со первого образа в ini-файле
В архиве обновленное AZBOOT.ROM - не забудьте обновить
AZBK_00010.hex без изменений относительно 5й версии, те надо обновить только прошивку ПЛИС
Прошивка [исправлено 4.06.2022]:
00010.rar ( 248.97 килобайт )
Кол-во скачиваний: 3543
Музыка 6ти канальная (2хAY) на диске С - спасибо Kuvo !
MicroSD_image_2022_06_04_v10_AY_2AY.rar ( 605.18 килобайт )
Кол-во скачиваний: 3532
Игры:
MicroSD_image_2022_03_06_v10_GAMES.rar ( 4.39 мегабайт )
Кол-во скачиваний: 3555
IMA музыка:
MicroSD_image_2022_05_28_v10_RT11_IMA.rar ( 46.9 мегабайт )
Кол-во скачиваний: 2622
запускать
RU PLSS SWEET.IMA
PLSS - это плеер
а SWEET.IMA - трек
посмотреть все - DIR
Прошивка 00011
жирным новое (или измененное) в прошивке
функционал:
1. палитры, сделано расширение функционала механизма палитр
подробнее https://forum.maxiol.com/index.php?showtopic=5556
2. реализовано ручное переключение видеорежима (циклическое 1-2) по сочетанию AR2+KT
те можно спокойно переключать его в зависимости от программы не напрягаясь!
3. Реализовано отображение информации в консоли контроллера дисковой подсистемы и сети - переключается по АР2+РУС
соответственно выделена страница памяти под консоль
4. сделан маппер памяти + разделение по сегментам:
- область перехвата - те копия станиц оперативки
- область эмуляции ROM - выделил 256КБ под всякие ПЗУ которые будут подключаться как в эмуляторе из меню
- и вся остальная память
- перехват запросов SMK сделан и работает - все запросы к нему управлению режимами через 177130 транслируются в запросы к AZ-менеджеру памяти.
- добавлена возможность хака с отключением окна 1 со 100'000 до 137'777. https://forum.maxiol.com/index.php?s=&showtopic=5593&view=findpost&p=56528
- добавлен RPLY для служебных страниц (с 40 по 77ую включительно)
эти страницы будут иметь специальное назначение и будут использоваться для работы AZБК контроллера; использовать для иных целей кроме указанных в документации запрещено
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 - регистр данных на передачу, используется младший байт, доступен на чтение и запись
после записи начинается передача в линию
Слово определяющее скорость - доступно только по записи
https://forum.maxiol.com/index.php?s=&showtopic=5556&view=findpost&p=56214
14. Сделан конструктор видеорежимов
177230 - регистр управления
177232 - регистр номера страницы начала отображения
177230, далее пойдут биты с описанием
1;0 - режим цветовой интерпретации
4;3 - длина строки в словах
7;6 - растяжение по горизонтали - те количество повторов у точки
10;9 - количество повторов строк
15;12 - длина рулона в словах
теперь подробно
режим цветовой интерпретации, значение от 0 до 3
0 - 1 бит на цвет - 2 цвета
1 - 2 бита на цвет - 4 цвета
2 - 4 бита на цвет - 16 цветов
3 - 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
Теперь работают программы использующие менеджер памяти СМК. К примеру Принц Персии.
Косметические правки кода и звукового модуля.
должны отвечать регистры
SOUND
177160-177174
177200-177212
AZ
177220-177226
дебаг
177100-177106
регистры палитр - уже можно экспериментировать
177230 - видеорежимы
177232 - номер легаси страницы
177234 - адрес ячейки палитры [9бит]
177236 - значение палитры [15бит]
маппер памяти
177300-350
загрузчик
177000
177550 - генератор псевдослучайных чисел
177560-177566 - UART
После reset машина стартует автоматически и загружается со первого образа в ini-файле
В архиве обновленное
AZBOOT.ROM - не забудьте обновить!
AZ337.ROM - не забудьте обновить !
AZBK_00011.hex без изменений относительно 5й версии, те надо обновить только прошивку ПЛИС
Прошивка
00011.rar ( 247.4 килобайт )
Кол-во скачиваний: 3544
Прошивка 00012
жирным новое (или измененное) в прошивке
функционал:
1. палитры, сделано расширение функционала механизма палитр
подробнее https://forum.maxiol.com/index.php?showtopic=5556
2. реализовано ручное переключение видеорежима (циклическое 1-2) по сочетанию AR2+KT
те можно спокойно переключать его в зависимости от программы не напрягаясь!
3. Реализовано отображение информации в консоли контроллера дисковой подсистемы и сети - переключается по АР2+РУС
соответственно выделена страница памяти под консоль
4. сделан маппер памяти + разделение по сегментам:
- область перехвата - те копия станиц оперативки
- область эмуляции ROM - выделил 256КБ под всякие ПЗУ которые будут подключаться как в эмуляторе из меню
- и вся остальная память
- перехват запросов SMK сделан и работает - все запросы к нему управлению режимами через 177130 транслируются в запросы к AZ-менеджеру памяти.
- добавлена возможность хака с отключением окна 1 со 100'000 до 137'777. https://forum.maxiol.com/index.php?s=&showtopic=5593&view=findpost&p=56528
Теперь работают программы использующие менеджер памяти СМК. К примеру Принц Персии.
- добавлен RPLY для служебных страниц (с 40 по 77ую включительно)
эти страницы будут иметь специальное назначение и будут использоваться для работы AZБК контроллера; использовать для иных целей кроме указанных в документации запрещено
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 - регистр данных на передачу, используется младший байт, доступен на чтение и запись
после записи начинается передача в линию
Слово определяющее скорость - доступно только по записи
https://forum.maxiol.com/index.php?s=&showtopic=5556&view=findpost&p=56214
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 цветов - включены слои
https://forum.maxiol.com/index.php?s=&showtopic=5556&view=findpost&p=56550
длина строки в словах
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
Косметические правки кода и звукового модуля.
должны отвечать регистры
SOUND
177160-177174
177200-177212
AZ
177220-177226
дебаг
177100-177106
регистры палитр - уже можно экспериментировать
177230 - видеорежимы
177232 - номер легаси страницы
177234 - адрес ячейки палитры [9бит]
177236 - значение палитры [15бит]
177240 - регистр номера страницы начала отображения - средняя страница под спрайты
177242 - регистр номера страницы начала отображения - нижняя страница - под фон
маппер памяти
177300-350
177550 - генератор псевдослучайных чисел
177560-177566 - UART
После reset машина стартует автоматически и загружается со первого образа в ini-файле
В архиве обновленное
AZBOOT.ROM - не забудьте обновить!
AZ337.ROM - не забудьте обновить !
AZBK_00012.hex новая. ее надо тоже обновить
Прошивка
00012.rar ( 253.03 килобайт )
Кол-во скачиваний: 3458
Пример с 6ти канальной музыкой
MicroSD_image_2022_06_13_v12_AY_2AY.rar ( 647.66 килобайт )
Кол-во скачиваний: 3561
Прошивка 00012 bugfix
исправление ошибок в слоях и расширенных режимах 16 и 256цветов
Прошивка
00012bf.rar ( 255.74 килобайт )
Кол-во скачиваний: 3465
Прошивка 00013
начало глобальных изменений: это промежуточная прошивка, с большей частью функционала который планировалось реализовать
жирным новое (или измененное) в прошивке
функционал:
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 - регистр данных на передачу, используется младший байт, доступен на чтение и запись
после записи начинается передача в линию
Слово определяющее скорость - доступно только по записи
https://forum.maxiol.com/index.php?s=&showtopic=5556&view=findpost&p=56214
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 цветов - включены слои
https://forum.maxiol.com/index.php?s=&showtopic=5556&view=findpost&p=56550
длина строки в словах
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
Концепция:
маппер V2 - это чисто маппер AZ без костылей и _все_ запросы к мапперам 177716(БК11М) или 177130(СМК) транслируются в маппер AZ который является единым устройством управления памятью
это сделано для кардинального расширения возможностей БКшек, а именно для отключения 037й
и как следствие - возможности работы полного маппера AZ. Это означает что на любой адрес в адресном пространстве БК10/БК11М можно подставить любую страницу памяти!
адресное пространство расширенной памяти разбито на 4 сегмента:
Обновление ПЗУ
исправлен первый (холодный) старт
00013bf0.rar ( 5.12 килобайт )
Кол-во скачиваний: 4950
Прошивка 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 - регистр данных на передачу, используется младший байт, доступен на чтение и запись
после записи начинается передача в линию
Слово определяющее скорость - доступно только по записи
https://forum.maxiol.com/index.php?s=&showtopic=5556&view=findpost&p=56214
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 цветов - включены слои
https://forum.maxiol.com/index.php?s=&showtopic=5556&view=findpost&p=56550
длина строки в словах
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 сегмента:
Прошивка 14beta2
В архиве обновленное - надо прошивать ПЛИС + заменить ПЗУ
azboot.ROM
AZLIB00.ROM
AZLIB01.ROM
AZLIB02.ROM
AZBK_00014b2.hex
AZBK_00014b2.pof
00014b2.rar ( 271.44 килобайт )
Кол-во скачиваний: 5032
Прошивка 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 - регистр данных на передачу, используется младший байт, доступен на чтение и запись
после записи начинается передача в линию
Слово определяющее скорость - доступно только по записи
https://forum.maxiol.com/index.php?s=&showtopic=5556&view=findpost&p=56214
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 цветов - включены слои
https://forum.maxiol.com/index.php?s=&showtopic=5556&view=findpost&p=56550
длина строки в словах
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 сегмента:
Прошивка 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 - регистр данных на передачу, используется младший байт, доступен на чтение и запись
после записи начинается передача в линию
Слово определяющее скорость - доступно только по записи
https://forum.maxiol.com/index.php?s=&showtopic=5556&view=findpost&p=56214
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 цветов - включены слои
https://forum.maxiol.com/index.php?s=&showtopic=5556&view=findpost&p=56550
длина строки в словах
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 сегмента:
Прошивка 00015 beta 6
данная прошивка является баг-фиксом и в ней исправлена ошибка работы с 256словной видеострокой
Прошивка
00015b6.rar ( 320.9 килобайт )
Кол-во скачиваний: 4865
Образ для проверки
MicroSD_image_2024_02_06_v15b6_Prince_Blitter.rar ( 1.13 мегабайт )
Кол-во скачиваний: 4836
Прошивка 00015 beta 7
прошивка добавляет ручной режим в блиттер
а также содержит масштабный багфикс к видеоконтроллеру - теперь все его состояние запоминается ДО отрисовки кадра и не требует явной кадровой синхронизации для переключения видеостраниц
https://forum.maxiol.com/index.php?s=&showtopic=5556&view=findpost&p=58014
https://forum.maxiol.com/index.php?showtopic=5617&st=0&p=58282entry58282
00015b7.rar ( 323.82 килобайт )
Кол-во скачиваний: 4939
образ с обновленными тестами блиттера
MicroSD_image_2024_02_17_v15b7_Prince_Blitter.rar ( 1.13 мегабайт )
Кол-во скачиваний: 4857
Прошивка 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 ошибочного определения опций (доработок)
00015b8.rar ( 198.77 килобайт )
Кол-во скачиваний: 4733
Прошивка 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 в младшем байте)
Прошивка
00015b9.rar ( 313.7 килобайт )
Кол-во скачиваний: 4667
Образ с обновленными тестами блиттера
MicroSD_image_2024_06_05_v15b9.rar ( 1.69 мегабайт )
Кол-во скачиваний: 4730
баг-фикс для 15beta9
по результатам разбора ошибки с запуском SETUP в эмуляторе GID-а нашлась ошибка не только в эмуляторе (тк на железе все работало) но и некорректность в коде инициализации векторов прерываний
соответственно сделал FIX который корректно их устанавливает и теперь этот набор ROMов работает корректно и на текущей (08.08) версии эмулятора и на предыдущей (от 03.06)
исправленные ROMы
00015b9.rar ( 313.7 килобайт )
Кол-во скачиваний: 4750
Русская версия Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)