zx-mmu
ZXNet echo conference «hardware.zx»
From Kirill Frolov → To All 10 April 2000
Press RESET immediately, All!
The proposed modification can be easily carried out on
computers KAY, PENTAGON, SCORPION and others not assembled on PLM.
It allows you to use the spectrum memory much more efficiently,
than just through one 16kb page in the address space of the processor.
The number of pages has been increased to four and they cover all 64kb of memory
addressed to Z80. Any memory bank within the first 256kb can
be included in any processor memory window. The rest of the memory is addressed
as before. Within the first 256kb programs can be located
operating with large volumes of data and frequently used data.
in memory more than 256kb can accommodate programs content
a 16kb code and data segment (for example, device drivers) or disk cache,
Ramdisk...
All of these computers with RAM capacity of 128kb and above have
port 7FFD controls switching memory pages in the window with address C000.
The circuit design of the memory manager in different computers is small
What is the difference: there is a port decoder, a 555TM9 register and a multiplexer
555KP11. The presence of the 555KP11 microcircuit makes it easy to implement
finalized, often only 1 microcircuit may be required.
You will need to disconnect pin 15 of the 555KP11 microcircuit from the board, it will
used to switch modes. You also need a control portconfiguration (for example, in Scorpio or Kai you can use 1FFD,
only 1 bit will be needed, set to 0 when reset and never
not installed in 1 TR-DOS programs. You will also need one inverter.
SCHEME:
D47 is a 555KP11 computer memory manager chip
SCORPION, "yellow board". For other computers you need according to the scheme
clarify the correspondence between the contacts of the 555KP11 microcircuit and the signals
D0, D1, D2, D4 data buses. D48 pin 9 -- write signal to port
7FFD on the “yellow scorpion”, available on all computers on pin 9
microcircuits 555TM9...
SPECTRUM BUS
┌──┬──────┐ connects to D47
D4 >──────15──┤D0│ RG │ output:
D2 >───────1──┤D1│ Q0├─10───> 12
D0 >───────2──┤D2│ Q1├─9────> 9
D1 >───────3──┤D3│ Q2├─7────> 7
├──┤ Q3├─6────> 4
A10 >──────14──┤W0│ │
A11 >──────13──┤W1│ │
wr7FFD >──────12──┤WR│ │
(D48/9) ├──┤ │
A15 >───────5──┤R0│ │
A14 >───────4──┤R1│ │
┌──11──┤OE│ │
│ └──┴──────┘
│ 555ИР26
│└──────────────────┐
│
switching on ┌──┐ │
ext. >──────┬───────┤1 o────┘
addressing │ └──┘
according to log. 1 │ ЛH1
└────────────────> D47 pin 15 (CS)
PROGRAMMING VIA PORTS
┌──────────┬────────────┬────── ─────┬───────────┬────────────┐
│ PORT │ 73FD │ 7BFD │ 77FD │ 7FFD │
├──────────┼────────────┼────── ─────┼───────────┼────────────┤
│ BITS │ │ │ │ │
│ 0 │ R0-0000 │ R0-4000 │ R0-8000 │ R0-C000 │
│ │ │ │ │ │
│ 1 │ R1-0000 │ R1-4000 │ R1-8000 │ R1-C000 │
│ │ │ │ │ │
│ 2 │ R2-0000 │ R2-4000 │ R2-8000 │ R2-C000 │
│ │ │ │ │ │
│ 3 │ screen 5/7 │ screen 5/7 │ screen 5/7 │ screen 5/7 │
│ │ │ │ │ │
│ 4 │ R3-0000 │ R3-4000 │ R3-8000 │ R3-C000 │
│ │ │ │ │ │
│ 5 │ LOCK │ LOCK │ LOCK │ LOCK │
│ │ │ │ │ │
│ * 6 │ R3-C000 │ R3-C000 │ R3-C000 │ R3-C000 ││ │ │ │ │ │
│ ** 7 │ R4-C000 │ R4-C000 │ R4-C000 │ R4-C000 │
│ │ │ │ │ │
└──────────┴────────────┴────── ─────┴───────────┴────────────┘
* Bit 6 is only used in PENTAGON computers with the capacity
RAM more than 128kb
** Bit 7 is used only in KAY or PENTAGON computers
with more than 256kb of RAM.
The number of the addressed memory bank is calculated using the formula:
n
___
\n
/__ (Rx)*(2^x) ; n=2..8 (depending on the type of computer).
x=0 ( 128..8192kb )
Setting the LOCK bit to 1 locks the 7xFD ports for writing.
Ports 73FD, 7BFD, 77FD, 7FFD are used to install recorded
they contain a memory bank at addresses 0000, 4000, 8000, C000, respectively.
The selected ports are decrypted identically in all common
Soviet clones of ZX-SPECTRUM as a port of 7FFD. All possible conflicts
are associated only with switching to the extended mode, which on different
on computers can be implemented in different ways.
In most cases, modification is useless for TR-DOS programs.
The benefits will be enormous when used in the operating system
which can distribute memory between different programs or
parts of the program, it also becomes possible to implementreal multitasking with programs of real (>64kb) size,
but again you need an appropriate operating system, but not
tape recorder emulator.
P.S.: It's already done and everything works. 555IR26 is not a problem to buy on the market in St. Petersburg.