А ведь ivagor прав, можно использовать хоть все 64Кб адресного пространства.
А ведь ivagor прав, можно использовать хоть все 64Кб адресного пространства.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Давайте рассуждать вместе. Порт 80 указывает что мы выбираем, это всем понятно, либо внутреннюю память, либо что то внешнее.
Так берем схему компьютера и смотрим. За выбор сигнало отвечают две микрухи: D34 и D35.
D35 - это дешифратор ИД7, с ним все понятно он генерит сигналы выбора.
D34 - мультиплексор КП2. И вот на входы выбора 14 и 2(A0 и A1) приходят те самые адреса A14 и A15. Это говорит что мы уже выбираем окна по 16кб.
Или я что то недопонимаю, тогда пните меня, не стесняясь
Я считаю, что в ПК8000 эта система работает очень похоже (за исключением expansion slotов, которых на ПК8000 нет, а на msx нет возможности писать в ОЗУ "под" ПЗУ), как на msx
11.10.2008 Удалил вложение
т.е. это система слотов (0-3) которые поделены на страницы (0-3).
Порт 80h в ПК8000 - это аналог порта A8h в msx.
Даже номера слотов совпадают: 00 - слот ПЗУ, 11 - слот ОЗУ.
Т.е. со слотами 01 и 10 обращение будет практически такое же, как и с внутренними слотами 00 и 11.
если задали в порт 80h 11100100b - это значит
0000-3FFFh - чтение из слота ПЗУ страница 0 (к слову, в остальных страницах ПЗУ сплошной FF) /запись в слот ОЗУ страница 0
4000-7FFFh - чтение/запись в слот X1 страница 1 (возможно параллельно будет запись в слот ОЗУ страница 1)
8000-BFFFh - чтение/запись в слот X2 страница 2 (возможно параллельно будет запись в слот ОЗУ страница 2)
C000-FFFFh - чтение/запись в слот ОЗУ страница 3
Другой пример. Пусть в порт 80h записано 01010111b
0000-3FFFh - чтение/запись в слот ОЗУ страница 0
4000-7FFFh - чтение/запись в слот X1 страница 1 (возможно параллельно будет запись в слот ОЗУ страница 1)
8000-BFFFh - чтение/запись в слот X1 страница 2 (возможно параллельно будет запись в слот ОЗУ страница 2)
C000-FFFFh - чтение/запись в слот X1 страница 3 (возможно параллельно будет запись в слот ОЗУ страница 3)
Очень надеюсь, что не все написанное в данном посте является бредом.
Последний раз редактировалось ivagor; 11.10.2008 в 07:42.
Последний раз редактировалось b2m; 07.10.2008 в 16:39. Причина: Добавлено сообщение
Т.е. если в моем предыдущем посте убрать все вот это
(возможно ...
(возможно ...
то будет похоже на правду?
К слову, в процессе работы над drillerом пытался в эмуляторе писать "под себя в ОЗУ" из внешнего ПЗУ (которое как бы было подключено к слоту X1). Не получилось . Т.е. ты уже раньше смотрел схему на эту тему?
Последний раз редактировалось ivagor; 07.10.2008 в 16:51.
Тут как min 2 варианта - один проще для реализации в железе, а другой более удобный для программера
1. Оставить все примерно как у тебя есть, но использовать A14-A15. Соответственно будет 64 банка по 64Кб (4 Мб, которые без HDD фиг когда нибудь заполнить), в каждом банке 4 страницы по 16 кб. Номер банка устанавливаем через 10h, а какие страницы из банка включены в адресное пространство рулим через 80h.
2. Установить 4 регистра (например доступные как порты 10h-13h), для выбора которых использовать многострадальные A14-A15, при этом в каждую из четырех областей (0000-3FFF,4000-7FFF,8000-BFFF,C000-FFFF) можно впечатать любую страницу (тогда max будет как в твоем варианте 1 Мб=64x16 кб).
номер страницы для 0000-3FFF - в 10h
номер страницы для 4000-7FFF - в 11h
номер страницы для 8000-BFFF - в 12h
номер страницы для C000-FFFF - в 13h
Ну и для того чтобы в соответствующей области памяти стал доступен КД надо не забыть задать 01 в соответствующем месте порта 80h.
Последний раз редактировалось ivagor; 07.10.2008 в 19:37.
Второй вариант ну очень большой.
В принципе можно нечто среднее попробовать. Уменьшаем число страниц
8х64кб =512кб, или 32х16кб=512кб. Тоесть урежем память, а в освободившейся бит 5 порта 10h устанавливаем признак мультиплексирования страниц(0-страница 16кб, 1-страница 64кб)
Итак в первом случае работает в листании 4 бит, а во втором он остается без участия. При включении любой 01 в порт 80h там будет отображаться страница в зависимости от режима. Вот нагнал
Пока правда не думал как это в железе будет
Моя не понимай
Последний раз редактировалось Mick; 07.10.2008 в 21:02.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)