41CL Calculator Manual
© 2019 Systemyde International Corporation
61
Memory Management
The original 41C system used dedicated ROM and RAM chips to implement the memory
for the calculator, and the memory organization was mostly hidden from the user. The
41CL calculator replaces these custom memory chips with a pair of industry-standard
memory devices, and besides the normal 41C view of memory, provides built-in
functions that allow the user direct access to the physical memory.
The original ROM memories (including the plug-in ROMs in application pacs) are
replaced with a single Flash (non-volatile, but re-programmable) memory, while the
RAM chips are replaced with a single low-power RAM device. Given the advance of
technology since the design of the original 41C system, these new memory devices
provide significantly more storage than the original 41C system could even use. To take
advantage of this increased storage capacity, the 41CL design includes a Memory
Management Unit (MMU). Plug-in application pacs and peripherals are still supported,
but separate application pacs are really no longer necessary.
The MMU takes the memory address, in either the program (ROM) address space or the
data (RAM) address space, and translates this address into an address in either the Flash
memory or the static RAM. This translation is completely automatic and transparent to
the user.
Most users will never need to concern themselves with the operation of the MMU, as the
new
41CL Extra Functions
or
41CL Extreme Functions
take care of programming the
MMU in most cases. However, advanced users may need to understand how the MMU
works and is programmed to take full advantage of some features of the 41CL calculator.
The MMU and program addresses
The 41C system uses a 16-bit (64K) program address, which is divided into sixteen pages
of 4K each.
For
ma
ny
of
t
he
s
e
pa
ge
s
,
t
he
r
e
c
a
n
be
up
t
o
f
our
“
ba
nks
”
,
whi
c
h
a
r
e
s
e
l
e
c
t
e
d
under software control during program operation. This natural division of 4K pages is
used by the MMU in the 41CL, so that each bank in each page can be mapped by the
MMU to a specific absolute address in the Flash memory or RAM on the 41CL circuit
board.
To accomplish this mapping, the MMU takes the upper four bits of the program address
(which selects the page), plus the two bits which select the bank, and forms a special