Сообщение от
ivagor
Тут как 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.