Наверно ты говоришь про среднюю производительность программы. Я же говорю про ускорение команд вывода графики. Важны только они, так как там много данных пересылаются.
Вид для печати
С этими инструкциями IN0 OUT0 …. все четко, а с IN A,(n) OUT (n),A и IN A,(C) OUT (C),A не все так однозначно. Опять же если не ошибаюсь. A7-A0 тут все четко, если не нужна 16-бит адресация.
А A15-A8 будет выхватывать Acc или B регистр. Мы не используем в программе 16-битную адресацию, и в B регистре может быть что угодно (Acc понятно, как пример A <- F8. На шине адреса F8F8).
да ты че, "крутой модульный-игровой"? а буду push'ить и pop'ить, так быстрей, на 14MГ и z80, ты "заманаешься", "чето" оптимизировать и копаться в коде, я уже молчу про то, как у тебя АY одиночный будет работать на z180 3,5 MГц без правки плеера. гыгы .
- - - Добавлено - - -
при обращении к внутреннему, 8 бит порту , старшие адреса принудительно лягут в 0, если используются IN0 и им подобным, запись в любом случае произойдет в оба порта, если адреса портов идентичны внутренним z180. так правильней.
- - - Добавлено - - -
хорошо, теперь скажи какой кварц или генератор? ты собрался ставить, дабы питать сей чудный агрегат, от досточтимой и уважаемой копании 'Zilog', "животворящим клоком"?
Ладно, бог с этими портами. Хотя если делать ZX ориентированный компьютер, тут без вариантов I/O – 16 бит. По поводу CPU без вариантов Z80. Z180 как дополнительный CPU. Хотя зная ZX-программистов, которые любили злоупотреблять фичами Z80, не многое ПО запустится на Z180.
Я к чему Z180 предложил. Мне он интересен как камень. И где-то там в голове планирую его использовать на платформе MSX-EXT. Основное ПО для MSX писали японцы. Юзали японцы официальную документацию на Z80 и всякими фичами не злоупотребляли. Поэтому основная масса ПО замечательно работает на R800 (разновидность Z180). И то там два процессора Z80 и R800, которые могут переключаться на лету.
Ну, в общем как то так:)
ну наконец, хоть у одного, началось прояснение :v2_wink::v2_wink2::v2_dizzy_biggrin2:
R800 в живую не видел, что то читал, общем нет опыта обращения совсем :) чтоб было еще понятней- если имею и располагаю "избытками железа", всегда помогу, если проект интересен,конечно. Старые форумчане -"до войн по замеру писюнов и платформ", соврать не дадут, а срачи-это не интресно. :)
Коммутатор памяти в модульном компьютере "CHELYABINSK"
Адресное пространство Z80 делится на 4 окна по 16 Кбайт.
Номера и адреса окон:
Окно номер 0 (00) - адреса 0000-3FFF
Окно номер 1 (01) - адреса 4000-7FFF
Окно номер 2 (10) - адреса 8000-BFFF
Окно номер 3 (11) - адреса C000-FFFF
Через каждое окно можно подключить одно из 16 устройств с памятью.
Номера устройств записываются в порты:
F4 - номер устройства с памятью в окне 0
F5 - номер устройства с памятью в окне 1
F6 - номер устройства с памятью в окне 2
F7 - номер устройства/тип памяти в окне 3
Устройство с памятью может содержать 256 страниц по 16 Кбайт памяти.
Номера страниц записываются в порты:
F0 - номер страницы памяти в окне 0
F1 - номер страницы памяти в окне 1
F2 - номер страницы памяти в окне 2
F3 - номер страницы памяти в окне 3
Одно устройство с памятью можно подключить в разные окна или в разных окнах подключить разные устройства с памятью.
Может, стоит обратить внимание на ранние разработки спектрумов с возможностью запуска кп/м? Например, на Кворум.
https://geektimes.ru/post/122762/
http://atmturbo.nedopc.com/others/kvorum/kv_ports.htm
Мне понравилась эта архитектура тем что есть возможность записи в нулевую страницу озу с блокировкой записи в последующем. Это намного лучше, так как даёт возможность запуска различных ос.
Добавлена блокировка записи в RAM:
F0 - RAM MODE 0 (чтение и запись)
F1 - RAM MODE 1 (только чтение)
mmu нужен умный, к примеру следящий за z80 arm 180мгц, у которого есть карта, где и когда переключать банки, блокировать память итд
будет самый быстрый mmu