Статус на сегодня
0. палитры, сделано расширение функционала механизма палитр
подробнее
https://forum.maxiol.com/index.php?showtopic=5556
1. куча автоматов контроллера памяти SDRAM заработала
обслуживаются 3 запроса
- простое чтение слова
- пакетное чтение
- запись слова/байта
- чтение STM32
- запись STM32
- чтение DMA
- запись DMA
2. запросы будут поступать от
- чтение МПИ [уже работает]
- запись МПИ [уже работает]
- пакетное чтение строки для VGA [уже работает]
- чтение STM32 [уже работает]
- запись STM32 [уже работает]
- чтение "DMA" для фоновых процессов - музыка итд ? [протестировано]
- запись "DMA" - те задел для реализации блиттера [протестировано]
но мне нужно ТЗ на него ибо я плохо представляю что именно надо сделать (те нужно сформулировать какой контроллер блиттера будет удобен в программировании на БК)
3. арбитраж запросов - обслуживание запросов к оперативке согласно приоритета
максимальное ожидание данных ~600нс в случае конкуренции с уже выполняющимся длинным запросом
цикл записи - полностью синхронный - те RPLY идет сразу
цикл чтения - 120нс
+ есть еще поле для оптимизации
4. реализовано ручное переключение видеорежима (циклическое 1-2-3-4) по сочетанию AR2+KT
те можно спокойно переключать его в зависимости от программы не напрягаясь!
5. сделан маппер памяти + разделение по сегментам:
- область перехвата - те копия станиц оперативки
- область эмуляции ROM - выделил 256КБ под всякие ПЗУ которые будут подключаться как в эмуляторе из меню
- и вся остальная память
6. полный вывод VGA уже из SDRAM, переключение страниц
[пока без новых режимов, но они уже заложены в архитектуру]
7. проведен рефакторинг кода VGA-модуля, унификация под 65MHz и отказ от 130MHz
8. перехват переключения палитр БК11М
- доступ к памяти палитр с шины, чтение+запись
9. Генератор псевдослучайных чисел - технически это LFSR длиной 128бит, младшие 16 в регистре доступном программно.
сдвиг идет с частотой 130Mhz-посмотрим как следствие полностью новое слово доступно будет каждый такт
10. Память запущена на 130MHz благодаря рефакторингу кода
11. Загрузка ПЗУ - через STM и операции с ней, загрузка и эмуляция ПЗУ согласно конфига
12. Стартовая последовательность, те сейчас AZ берет БК за рога и управляет ее стартом полноценно
13. сделан полный жесткий тест оперативки через интерфейс STM32, работает, но не придумал как его вызывать штатно. возможно будет отдельный конфиг ?
Явное вынесение кода старта в ПЗУ (образ ПЗУ в виде файла) позволяет подключаться другим разработчикам и развивать платформу
Сделанное - документируется
Контроллер AZ BK: Документирование процесса разработки
----------------------------------
Что осталось сделать:
FPGA:
F3. трансляция запросов к мапперу SMK512 в мой маппер
F4: эмуляция HDD
F5: эмуляция AY
F6: эмуляция FDD
F7: эмуляция Covox-а
F8: расширенные видеорежимы
F9: COM-порт
F10. DMA контроллер для звука
F11. контроллер блиттера
STM32:
S1. Поддержка большого количества образов дискет - те как в SMK - 127 образов
S2: включение сети (cеть и сейчас работает но включать-выключать руками)
177220 <-110 включить
177220 <-0 выключить
S3/F4: поддержка HDD образов и эмуляция HDD с регистрами
Принимаются пожелания по приоритетам - те что следующее взять в работу
также прошу прислать баг-репорты