Нет, ничего не надо. frame это окно доступа ко всему ОЗУ, таких окон может быть несколько, поэтому frame[0],frame[1],... и т.д. В конфиге описаны два окна, одно размером 32Кб, второе 64Кб. При выводе в portB биты 0-3 используются как номер страницы 32Кб-окна, а биты 1-3 как номер 64Кб-окна (этот номер в два раза меньше, но т.к. окно в два раза больше, то окно будет открыто на том-же месте). Я уже говорил, для чего нужно второе окно.
Номер карты памяти. В зависимости от того, какие из бит 4-5 порта В установлены, получим число от 0 до 3, это и будет индекс (номер) установленной карты. Например, если установлен только В4, то двоичное число 01 соответствует индексу 1. Тогда раскладка будет:
0000-7FFF mem.frame[0] окно в 32Кб ОЗУ, номер которого (mem.frame[0].page) управляется битами 0-3 порта В
8000-FFFF mem.frame[1][8000] окно в 64Кб (но со смещением 8000, т.е. только вторая половина) ОЗУ, номер которого (mem.frame[1].page) управляется битами 1-3 порта В
- - - Добавлено - - -
Конечно, надо ещё увеличить размер диска в DPB
- - - Добавлено - - -
Посмотрел БИОС CP/M, выводы неутешительные:
1. процедура рассчёта адреса сектора квазидиска расчитана только на 64Кб
2. процедуры обмена с расширенной памятью в БИОСе также рассчитаны только на 64Кб максимум (т.е. адрес расширенной памяти 16-битный и передаётся в регистровой паре, никакого номера страницы не предусмотрено).





Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
Адрес процедуры D712. Невнимательно посмотрел, там просто номер дорожки умножается на 16 и прибавляется номер сектора-1.