Iron ... ...
(2:5062 / 17.85) ZX.SPECTRUM
From: Kirill Frolov 2:5030 / 827.2
Subject: Memory Spectrum.
It has long been thought that more needed to Spectrum
powerful management tool for addressing memory above 64 Kbytes.
Try to explain why.
Z80 processor without additional logic
can not address more than 64K, the point
that the Z80 when addressing memory using 16-bit registers, PC,
HL, BC, DE, SP, IR (IV), IX, IY. And the problem
it in registers, rather than bus width
address this fact is worth noting. Bit registers, pointers can
not address the longer 64-kb continuous data.
In the original Spectrum-128 to increase the available
processor memory was made access to multiple
memory banks through a window in the top address
CPU C000 .. FFFF. Processor could
obraschatsya while only one of
Banks destupnyh only through this window,
This limited the amount of time
addressable continuous data located in banked memory in the
16K. Throughout the rest of the memory was available 48Kb
contiguous memory, but it's only ~ 30% of the
all memory. In the process of further development ZX-SPECTRUM
in the vast amount of ex-USSR RAM ZX-SPECTRUM constantly
growing at the moment has reached the average 512kb. The
maximum amount of RAM mass-produced
computers up to 4MB. Moreover, almost
All computers have retained a way of addressing
Large memory of 64 KB a-like and
used in spectrum-128. Memory is only connected through one
window in the address C000 .. FFFF banks of 16K. But if
spectrum-128 volume of banked memory
more than 3 times higher than the rest of the amount of
contiguous memory, the existing now, spectrum-compatible
computers amount of contiguous memory is sometimes
less than 5% ot memory accessible only through
window. With a total memory 1Mb
efficient work is possible only with the 16K
continuous data. And because of that there is only one window
to access additional memory substantially hindered transfer of
data between different memory banks.
Memory usage in modern
spectrum-compatible computers was
Inefficient!
Initially the question, what
Spectrum needed for more effective
memory has been difficult. Were different
options, but everything comes down or the relative complexity
of the scheme or its inefficiency, due to its simplicity.
Option proposed by Ivan Mack also did not liked, too, because
of the complexity of the circuit and a large number of chips
used. Yes, and more exotic 1533IR26 that
easy to get to Peter, but nearly impossible in the outback. The
idea has prompted just got into the hands of Chip
61256 ...
Here is a scheme in the version on which I have so far
stopped. Signals A12 .. A15 and the D0 .. D7 taken directly
from the processor. Are not used all of the addresses of 32
kilobytes of memory 61256, possibly adding new features and
ways of working memory. For example you can add a junior
address and alleviate some of the processor work with the
Spectrum screen.
Scheme in the gland has not been tested yet
is a matter of choosing the control port available for reads
and writes and conflicts with other devices
computer. There are some doubts about
connecting signals OE, WE, CS chip
61256.
RA12 \
RA13 |
RA14 | address bus
RA15 \ Memory Upgrade
RA16 / multiplexers
RA17 |
RA18 |
RA19 /
/ EA14 SRAM RA12
EXPANSION | EA15 61256 RA13
Address Bus / EA16 D RA14
7FFD, 1FFD \ EA17 A A RA15
to the MUX. | EA18 DT RA16
\ EA19 D A RA17
R RA18
A12 E RA19
A13 S
A14 S
A15
MREQ oOE
oWR
oCS
D0>> RA12
D1 AP6 RA13
D2 I O RA14
D3 N U RA15
D4 P T RA16
D5 U P RA17
D6 T U RA18
D7 T RA19
WR.CFG a oDIR
RD.CFG oCS
LE1
WR.CFG RD.CFG signals and read / write
configuration port. Port address is chosen as APPP, where A -
the address in RAM configuration, PPP - port address
It was originally planned two modes
D: Standard for the ZX-SPECTRUM, when
banks by 16K in the addresses C000 .. FFFF
switch ports xxFD, and expanded when in any place of address
Space processor in increments of 4kb can connect any memory
bank the size of 4kb, and ports are used for quick xxFD
change the configuration memory (preset). The maximum amount of
addressable memory one megabyte, which is sufficient for
Z80 with a capacity of not more than a few MIPS. Memory over a
megabyte can used as a frame-ROM or memory
slow access through a window C000 .. FFFF.
There are other ways of addressing memory.
Chip SRAM 61256 taken of 386
or 486 mateinskoy board IBM-PCs. Typical
its speed of 15 ns, which should suffice for normal chip DRAM,
but in some well-turbo scorpion or kayah can get the problem :-(
Before you start your computer after power necessarily need
a Initialization! Need to reflash the ROM, as well provide an
opportunity to turn it off for more complete use of address
space processor.
The practical value of the second mode
Addressing large, yet will not go into
details. I will write only that approximately
such a memory configuration work some uzix-machine. The choice
of bank size in 4kb also not accidental: in the operating system
to ensure the system interrupt
and system calls necessary to leave
one permanent bank, as ROM for example.
If the amount the bank is big, then the maximum
volume continuously addressable memory is reduced, and this is
because of what all was started. If the volume small, the costs
vozvrastayut time to switch the cans and the maximum amount of
banked memory (Now 1Mb). If anyone thinks that this is 4kb
small, then I can calm him down - as I wrote
above as being able to change the configuration
ports xxFD.
About uzix I mentioned is no accident, if
Who else remembers at the MSX is a system UZIX
based on the UZI - UNIX Z80
IMPLEMENTATION. A prerequisite for
installation is the possibility
swapping process. The system described
allows you to make swapping a conclusion in
port. Of course you want to be able to
The write-protect individual memory banks,
but nothing does not occur. If
you have an idea - write.
Kirill
------- - -
- - -
- -
- - -
- - -
- - -
------ - -