
M44C588
Preliminary Information
TELEFUNKEN Semiconductors
Rev. A1, 11-Nov-97
5 (44)
000h
FFFh
7FFh
Basebank
Bank 2
Bank 3
Bank 4
Bank 1
Zero page
800h
140h
180h
040h
0C0h
008h
$AUTOSLEEP
$RESET
INT0
INT1
INT2
INT3
INT4
INT5
INT6
INT7
1E0h
1C0h
100h
080h
Zero
page
1F0h
1F8h
010h
018h
000h
008h
020h
1E8h
1E0h
SCALL
addresses
000h
MARC4 self test routines
Port D: 00xxb
Port D: 01xxb
Port D: 10xxb
Port D: 11xxb
1FFh
94 8709
Figure 4. ROM map of M44C588
Test ROM
An additional 1 Kbyte of ROM exists in the 4th ROM
bank which is accessible using a ROM bank switch. Of
this program space a section is reserved for quality control
self-test software, the remainder is available for applica-
tion program.
The lowest ROM address segment is taken up by a 512
byte Zero page which contains predefined start addresses
for interrupt service routines and special subroutines ac-
cessible with single byte instructions (SCALL). The
corresponding memory map is shown in figure 4.
Look-up tables of constants can also be held in ROM and
are accessed via the MARC4’s built-in TABLE instruc-
tion.
ROM Banking
For customers programming with qFORTH the bank
switching is fully supported by the compiler. The
MARC4 switches from one ROM bank to another by writ-
ing
the
new
bank
number
to
the
ROM
Bank
Register (RBR). Conventional program space (power up
bank) resides in ROM bank 0. Each ROM bank consists
of a 4 Kbyte address space whereby the lowest 2 Kbyte is
common to all banks, so that addresses between 000h and
7FFh always accesses the same ROM data (see figure 4).
When ROM banking is used, the compiler will, if neces-
sary insert program code to save and restore the condition
of the RBR on bank switching.
1.2.2
RAM
The M4C588 contains 512 x 4-bit wide static random ac-
cess memory (RAM). This RAM area consists of two
separate blocks. The MARC4 core internal RAM is
256 x 4-bit wide and is used for the expression stack, the
return stack and data memory for variables and arrays.
The internal RAM is addressed by any of the four 8-bit
wide RAM address registers SP, RP, X and Y. The addi-
tional block of 256 x 4-bit RAM is I/O-mapped and
addressed through the peripheral bus. This PRAM should
be used for arrays which are accessed seldomly, when do-
ing heavy duty math routines.
Expression Stack
The 4-bit wide expression stack is addressed with the ex-
pression stack pointer (SP). All arithmetic, I/O and
memory reference operations take their operands from,
and return their result to the expression stack. The
MARC4 performs the operations with the top of stack
items (TOS and TOS-1). The TOS register contains the
top element of the expression stack and works like an
accumulator. This stack is also used for passing parame-
ters between subroutines, and as a scratch pad area for
temporary storage of data.
Return Stack
The 12-bit wide return stack is addressed by the return
stack pointer (RP). It is used for storing return addresses
of subroutines, interrupt routines and for keeping loop in-
dex counts. The return stack can also be used as a
temporary storage area.
The MARC4 instruction set supports the exchange of data
between the top elements of the expression stack and the
return stack. The two stacks within the RAM have a user
definable location and maximum depth.