Вот примерно так можно осуществить такую подмену "на лету":Shaos wrote: 15 Nov 2025 04:08 Я пока только придумал как SIMM30 на 256 кило подцепить к Балтику с полным доступом ко всем страницам - доступ от Z80 будет управляться 4 битами в порту #7FFD (биты 7,2,1,0), а доступ видеоконтроллера - флагом теневой страницы (бит 3 порта #7FFD):...Code: Select all
AD1 AD0 | MA0 MA1 MA2 MA3 MA4 MA5 MA6 MA7 MA8 ---------|------------------------------------------------------ 0 0 | A0 A1 A2 A3 A4 A5 A6 A7 A17* 0 1 | A8 A9 A19 A11 A12 A13 A14* A15* A16* 1 0 | C1 C2 C3 C4 C5 C10 C11 C12 C6 (15625 Hz) 1 1 | SYS11 SYS12 SYS14 SYS15 SYS16 SYS17 SYS18 SYS19* #7FFD.3 NOTE: when page is set through #7FFD it has to be remapped: 111 -> 101 101 -> 001 001 -> 111
Аппаратная перенумерация страниц при доступе со стороны Z80 нужна потому, что видеоконтроллер вместо страницы 5 будет брать 1 (абсолютный адрес #04000), а вместо 7 - 5 (абсолютный адрес #14000) - соответственно если мы устанавливаем страницу 5, то в окошко на самом деле надо подсунуть 1 и т.д. Интересной особенностью такой реализации будет то, что для некоторых балтиковских видеорежимов теневая видеопамять переедет в неожиданные места:Code: Select all
Standard Baltic ======================== 000 - 4000h-5AFFh ZX-screen 6912 in normal location (2nd quarter of memory) page 5 & page 7 001 - 4000h-6FFFh Hardware Multicolor 4000h page 5 & page 7 010 - 0000h-2FFFh Hardware Multicolor 0000h page 0 & page 4 011 - 2000h-3AFFh ZX-screen 6912 at the end of first quarter of memory (for Disk-Monitor) page 0 & page 4 Extended Baltic ======================== 100 - 6000h-7AFFh ZX-screen 6912 at the end of 2nd quarter of memory (Timex mode 1) <<<<< NEW-2 page 5 & page 7 101 - E000h-FAFFh ZX-screen 6912 for CP/M <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< NEW page 3 & page 1 <<< !!! 110 - 8000h-AFFFh Hardware Multicolor 8000h <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< OLD page 2 & page 6 111 - 4000h-57FFh,6000h-77FFh Hardware Multicolor 4000h+6000h (Timex mode 2) <<<<<<<<<<<< NEW-2 page 5 & page 7
Code: Select all
111 -> 101
101 -> 001
001 -> 111
