41CL Calculator Manual
© 2019 Systemyde International Corporation
80
Using HEPAX
The HEPAX module was one of the most complex third-party 41C modules ever created.
It had hardware and software that automatically relocated the module to the lowest
unused page of memory, and provided RAM that resided in program memory for file
storage. Not all of the features of the HEPAX module are supported by the 41CL
calculator, and this section will discuss the details of how to use the HEPAX image
included in the 41CL Flash memory.
The HEPAX module implemented write-protection for pages of HEPAX RAM, using an
opcode that was ignored by the processor in the 41C. This opcode is also ignored by the
NEWT processor in the 41CL, but the write-protect feature is not supported by the 41CL
hardware. Keep this in mind if you attempt to write-protect pages of HEPAX memory.
The
41CL Extra Functions
make it easy to create a backup copy of RAM pages, using the
YMPCY
function to copy an entire page of memory to another location in physical
memory. If you are doing work that might inadvertently corrupt HEPAX RAM, which is
what the write-protect feature was for, try creating a copy of the HEPAX RAM page first.
Si
nc
e
t
he
HEPAX c
ode
doe
s
not
“
know”
a
bout
phys
i
c
a
l
me
mor
y,
t
he
c
opy wi
l
l
effectively be write-protected.
The main issue for HEPAX users is that the 41CL hardware does not support the
automatic relocation of the HEPAX image. The MMU makes this function unnecessary,
so the HEPAX image in the 41CL has been modified to eliminate the automatic
relocation feature. Unfortunately a by-product of this modification is that the HEPAX
RAM will not be automatically initialized at start-up. Instead, you will need to initialize
any HEPAX RAM when the HEPAX image is first plugged into a port.
The 41CL provides a template for initializing HEPAX RAM pages, which simplifies the
process considerably, but you will still need to initialize one or two locations in each
RAM page if you are using multiple pages of HEPAX RAM. If you want to use just one
page of HEPAX RAM, no extra initialization is required.
The 41C code listing below shows the template for initializing HEPAX RAM. This
template, which is stored at address 0x0B9000 in the 41CL Flash, should be copied to
e
a
c
h
4K
bl
oc
k
of
RAM
t
ha
t
i
s
goi
ng
t
o
be
us
e
d
f
or
HEPAX
RAM.
The
“
f
i
xe
d
va
l
ue
”
locations are checked by the HEPAX software, and values not matching those shown in
the listing template will cause an error when the HEPAX code attempts to use the RAM.
Two locations in each HEPAX RAM page contain address pointers. These address