Тут мысль есть. Выглядит примерно так
Делаем табличку на 64к делегатов и при регистрации порта чтения передаем строку (например для регистрации порта FE клавиатуры строка будет выглядеть так "xxxx_xxxx_xxxx_xxx0" где в строке могут быть x бит не имеет значения для дешифрации; 0,1 конкретное значение бита при дешифрации _ для визуального удобства) по этим строкам можно заполнить табличку делегатов и не будет влиять на скорость работы зарегистрирован один порт на чтение или 200, для записи сложнее по идее несколько устройств могут одновременно откликнуться на запись в порт, тут надо подумать, думаю можно сделать 4 таблички и обрабатывать их каскадом в реальности (в железе) не могу представить себе ситуации что бы больше 2х устройств откликнулось на запись по одному адресу.
ну тут вопрос еще есть с лучом развертки, как по мне правильная отрисовка не совсем тривиальная задача, в идеале было бы нарисовать какой нить базовый класс и классы хелперы что бы как то стандартизировать и упростить их реализацию, но тут тебе виднее как оно должно быть как всегда упирается все в компромиссы между быстро и удобно.
Под менеджером памяти подразумевается - плагин который к примеру позволит использовать память по стандарту пентагона 1024 или там пентевы, опять же как я вижу есть 4 ссылки на массивы по 16кил (страницы), для каждой четверти адресного пространства, плагин регистрирует порты на запись, заказывет у эмулятора что ему надо к примеру 32 страницы по 16 кил, отдает ссылки на страницы с которых будет браться картинка (ну простейший вариант на 5 и 7 страницы) и будет по записи в порт изменять ссылки того что подключено к адресному пространству.
Под "читать блокировать набортные устройства", блокировку набортных устройств отчасти можно решить табличкой делегатов на 64к адресов с битовой строкой как описывал выше, под читать это имел ввиду что бы можно было по какому то идентификатору прочитать к примеру значение порта 7FFD или там значение флага TR-DOS (хотя чтение портов опять же можно решить с регистрацией в плагине функции реагирующую на запись к примеру по маске "xxxx_xxxx_xxxx_xx0x"), тут додумать надо, можно взяться пописать плагины и тогда уже точно сложатся функциональные требования.
Под расширением дебагера, добавить возможность выводить где нить (к примеру в области окна там где выводится текущий такт и значения флагов IFF1 IFF2 свои значения, добавлю к примеру порт 1FFD и очень неплохо видеть его значение в дебагере, или к примеру добавлю флаг SHADOW_ROM который будет показывать что нахожусь в теневом ПЗУ, в общем позволить регистрировать там подписчики на вывод значений bool, byte, short, string)
Надеюсь не много набредил
---------- Post added at 00:17 ---------- Previous post was at 00:16 ----------
Тут мысль есть. Выглядит примерно так
Делаем табличку на 64к делегатов и при регистрации порта чтения передаем строку (например для регистрации порта FE клавиатуры строка будет выглядеть так "xxxx_xxxx_xxxx_xxx0" где в строке могут быть x бит не имеет значения для дешифрации; 0,1 конкретное значение бита при дешифрации _ для визуального удобства) по этим строкам можно заполнить табличку делегатов и не будет влиять на скорость работы зарегистрирован один порт на чтение или 200, для записи сложнее по идее несколько устройств могут одновременно откликнуться на запись в порт, тут надо подумать, думаю можно сделать 4 таблички и обрабатывать их каскадом в реальности (в железе) не могу представить себе ситуации что бы больше 2х устройств откликнулось на запись по одному адресу.
ну тут вопрос еще есть с лучом развертки, как по мне правильная отрисовка не совсем тривиальная задача, в идеале было бы нарисовать какой нить базовый класс и классы хелперы что бы как то стандартизировать и упростить их реализацию, но тут тебе виднее как оно должно быть как всегда упирается все в компромиссы между быстро и удобно.
Под менеджером памяти подразумевается - плагин который к примеру позволит использовать память по стандарту пентагона 1024 или там пентевы, опять же как я вижу есть 4 ссылки на массивы по 16кил (страницы), для каждой четверти адресного пространства, плагин регистрирует порты на запись, заказывет у эмулятора что ему надо к примеру 32 страницы по 16 кил, отдает ссылки на страницы с которых будет браться картинка (ну простейший вариант на 5 и 7 страницы) и будет по записи в порт изменять ссылки того что подключено к адресному пространству.
Под "читать блокировать набортные устройства", блокировку набортных устройств отчасти можно решить табличкой делегатов на 64к адресов с битовой строкой как описывал выше, под читать это имел ввиду что бы можно было по какому то идентификатору прочитать к примеру значение порта 7FFD или там значение флага TR-DOS (хотя чтение портов опять же можно решить с регистрацией в плагине функции реагирующую на запись к примеру по маске "xxxx_xxxx_xxxx_xx0x"), тут додумать надо, можно взяться пописать плагины и тогда уже точно сложатся функциональные требования.
Под расширением дебагера, добавить возможность выводить где нить (к примеру в области окна там где выводится текущий такт и значения флагов IFF1 IFF2 свои значения, добавлю к примеру порт 1FFD и очень неплохо видеть его значение в дебагере, или к примеру добавлю флаг SHADOW_ROM который будет показывать что нахожусь в теневом ПЗУ, в общем позволить регистрировать там подписчики на вывод значений bool, byte, short, string)
Надеюсь не много набредил![]()






Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
