Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet

ЭВМ и ПЭВМ, производившиеся в СССР и странах СЭВ
8bit_oldfag
Newbie
Сообщения: 42
Зарегистрирован: 25.05.2021,10:12
Откуда: Russia, region 51

Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet

Сообщение 8bit_oldfag » 29.08.2021,17:20

А глюки (артефакты) при переходе в расширенные цветовые режимы так и останутся? Или они только на видеозаписи видны?

SuperMax
Advanced Member
Сообщения: 1001
Зарегистрирован: 27.08.2012,11:38
Откуда: Красноярск
Контактная информация:

Конкурсы

Вклад в сообщество

Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet

Сообщение SuperMax » 30.08.2021,06:44

8bit_oldfag писал(а):
29.08.2021,17:20
А глюки (артефакты) при переходе в расширенные цветовые режимы так и останутся? Или они только на видеозаписи видны?
пардон, никаких глюков нет, это просто в коде переключение режима идет после заполнения экрана
если сделать его раньше то этого не будет. эти микродемки писались как быстрее, а не как правильно ;-)

SuperMax
Advanced Member
Сообщения: 1001
Зарегистрирован: 27.08.2012,11:38
Откуда: Красноярск
Контактная информация:

Конкурсы

Вклад в сообщество

Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet

Сообщение SuperMax » 05.09.2021,16:22

Прошивка 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й версии, те надо обновить только прошивку ПЛИС

Контроллер AZ BK: Прошивка 00006

SuperMax
Advanced Member
Сообщения: 1001
Зарегистрирован: 27.08.2012,11:38
Откуда: Красноярск
Контактная информация:

Конкурсы

Вклад в сообщество

Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet

Сообщение SuperMax » 26.09.2021,16:12

Проектирую DMA-контроллер для звука

https://forum.maxiol.com/index.php?s...ndpost&p=55703
2. DMA контроллер звука
177160 - регистр управления
регистр скорости чтения , режима интерпретации данных (8/16 моно стерео), повтора

// 00 - старт =1 старт
// 01 - =1 однократный запуск =0 циклический
// 02 - =1 принудительная остановка до завершения цикла
// 03-04-05 - скорость выдачи наружу
11025
22050
44100
// 06-07-08 - режим интерпретации
PCM 16 mono
PCM 8 mono
PCM 16 stereo
PCM 8 stereo
ADPCM 16mono
ADPCM 8stereo
AY??
OPL2?

177162 - регистр адреса страницы с которой будем читать с дискретностью 10000 (4кБ)
177164 - старшая часть длины - 8бит
177166 - младшая часть длины - 16бит
177170 - номер текущей страницы воспроизведения


принимаются идеи и предложения
а также корректировки - к примеру "PCM 8 mono - нафиг не надо" или "11025 тоже не имеет смысла"

--------------

итак, у меня было время поразбираться
1. написал свой декодер IMA ADPCM причем синхронный вариант в отличии от выложенных которым нужны флаги и прочие приседания
2. декодер работает
пока это моно, и я сейчас займусь уже полировкой кода + сделаю стерео режим
3. сделал encoder в IMA ADPCM (чистый RAW тк в WAV поток разбит на чанки).

после полировки, напишу плеер который будет проигрывать музыку в 44100 стерео
плеер будет под RT11 ибо никакая другая ОС нормально большие файлы, увы не поддерживает


ps: канал про контроллеры AZ - https://t.me/pdp11_az

SuperMax
Advanced Member
Сообщения: 1001
Зарегистрирован: 27.08.2012,11:38
Откуда: Красноярск
Контактная информация:

Конкурсы

Вклад в сообщество

Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet

Сообщение SuperMax » 03.10.2021,21:23

Итак - плееры написаны:

Работа с IMA ADPCM на AZ БК
- кодировщик в IMA ADPCM
- два плеера
всё с исходниками

SuperMax
Advanced Member
Сообщения: 1001
Зарегистрирован: 27.08.2012,11:38
Откуда: Красноярск
Контактная информация:

Конкурсы

Вклад в сообщество

Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet

Сообщение SuperMax » 05.10.2021,18:12

Демонстрация плеера в работе


SuperMax
Advanced Member
Сообщения: 1001
Зарегистрирован: 27.08.2012,11:38
Откуда: Красноярск
Контактная информация:

Конкурсы

Вклад в сообщество

Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet

Сообщение SuperMax » 05.10.2021,18:38

AZ БК: Прошивка 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й версии, те надо обновить только прошивку ПЛИС

Контроллер AZ BK: Прошивка 00007

SuperMax
Advanced Member
Сообщения: 1001
Зарегистрирован: 27.08.2012,11:38
Откуда: Красноярск
Контактная информация:

Конкурсы

Вклад в сообщество

Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet

Сообщение SuperMax » 15.11.2021,17:45

Фото AZБК в сборе

корпус белый шелк
ИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображение

Аватара пользователя
nimdasys_inbox_ru
Advanced Member
Сообщения: 3329
Зарегистрирован: 05.06.2019,18:58
Откуда: Черкесск

Вклад в сообщество

Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet

Сообщение nimdasys_inbox_ru » 27.11.2021,17:52

SuperMax, скажите пожалуйста, имеет ли смысл прорезать отверстия под два нижних разъёма ?! :rolleyes:

SuperMax
Advanced Member
Сообщения: 1001
Зарегистрирован: 27.08.2012,11:38
Откуда: Красноярск
Контактная информация:

Конкурсы

Вклад в сообщество

Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet

Сообщение SuperMax » 27.11.2021,18:05

nimdasys_inbox_ru писал(а):
27.11.2021,17:52
SuperMax, скажите пожалуйста, имеет ли смысл прорезать отверстия под два нижних разъёма ?! :rolleyes:
это зависит от того будете ли прошивать AZ в корпусе или без
для эстетики можно не прорезать

SuperMax
Advanced Member
Сообщения: 1001
Зарегистрирован: 27.08.2012,11:38
Откуда: Красноярск
Контактная информация:

Конкурсы

Вклад в сообщество

Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet

Сообщение SuperMax » 09.12.2021,21:28

Прошивка 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-файле

Контроллер AZ BK: Прошивка 00008

Ответить