As the following figure shows the Eurocom II/V5 has 48 KByte RAM, organized as
3 x 16 KByte RAM + 4 KByte EPROM. The EPROM contains the monitor program:
Eurocom II/V5 on-board memory
The following figure shows the Eurocom II/V7 has 64 KByte RAM, organized as
1 x 64 KByte RAM. 4 KByte out of it are mapped to an EPROM. The EPROM contains
the monitor program:
Eurocom II/V7 on-board memory
Eurocom II/V7 RAM Extension
The Eurocom II/V7 has two extension slots which can be used for extending the
RAM size. There are two types of RAM extensions available:
RAM Extension [KByte]
Organized
96
6 x 16 KByte
384 (288 *)
6 x 64 KByte
A RAM extension can be used to extend the main RAM, as video RAM, or as RAM disk. The MC6809 only supports an address range of 64 KByte, so a Memory Management
unit (MMU) is used to map parts of the RAM extension into the available address
range.
The MMU of the 384 KByte RAM extension is not very flexible as will be described
later in the chapter describing the
MMU which means that the upper 16 KByte of each RAM bank
is only accessible under some restrictions. This is the reason why ELTEC
promoted it only as a 288 KByte RAM extension. This limitations have been
overcome with a hardware modification as will be described in the chapter for
flexible MMU.
2 x 96 KByte RAM Extension
The following figure shows how this RAM extension is organized. There are six RAM
banks with 16 KByte each. They can be identified as:
RAM bank
Bank identifier
6 x 16 KByte
$0C, $0D, $0E, $04, $05, $06
6 x 16 KByte
$08, $09, $0A, $00, $01, $02
2 x 96 KByte RAM Extension
2 x 384 KByte RAM Extension
Also referenced as 2 x 288 KByte RAM extension because not all applications are
capable of using the whole 384 KByte of RAM. The following figure shows how
this RAM extension is organized. There are two times six RAM
banks with 64 KByte each. They can be identified as:
RAM bank
Bank identifier
6 x 64 KByte
$0C, $0D, $0E, $04, $05, $06
6 x 64 KByte
$08, $09, $0A, $00, $01, $02
2 x 384 KByte RAM Extension
Memory Management Unit (MMU)
Due to a limited address range of the MC6809 a memory management unit is
necessary to map parts of the RAM extension into the available address
range. The MMU consists of 16 Byte registers located at $FFE0 - $FFEF. They
are write-only registers. When reading they always return $FF. Each register
can map a 4 KByte memory segment.
MMU register
Target address range
$FFEF
$F000 - $FFFF
$FFEE
$E000 - $EFFF
$FFED
$D000 - $DFFF
$FFEC
$C000 - $CFFF
$FFEB
$B000 - $BFFF
$FFEA
$A000 - $AFFF
$FFE9
$9000 - $9FFF
$FFE8
$8000 - $8FFF
$FFE7
$7000 - $7FFF
$FFE6
$6000 - $6FFF
$FFE5
$5000 - $5FFF
$FFE4
$4000 - $4FFF
$FFE3
$3000 - $3FFF
$FFE2
$2000 - $2FFF
$FFE1
$1000 - $1FFF
$FFE0
$0000 - $0FFF
The RAM bank and source address range which is mapped is specified by the
RAM bank identifier.
Example: When writing $0C into MMU register $FFE4 4 KByte
RAM of RAM bank $0C is mapped into the target address range
$4000 - $4FFF.
Which source address range is used depends on the RAM extension type:
A 96 KByte RAM bank only has 16 KByte (address range $0000 - $3FFF).
So in this example the address range of $0000 - $0FFF is mapped. For 384 KByte
RAM bank the source address range is always the same as the target address
range. The blue arrows in the figures show by example which (blue marked) source
address ranges can be mapped to which (also blue) target address ranges.
When writing $03, $07, $0B or $0F into any MMU register it's previous mapping
is removed. Also the monitor program uses the MMU. To know the current state of
all MMU registers the monitor program saves a copy of them into the address
location $EFE0 - $EFEF. When writing to a MMU register the upper four bits
should always be 0.
Flexible Memory Management Unit
With a hardware modification also for the 384 KByte RAM extension it is possible
to select the target address range (one out of four possibilities) where to
map the 4 KByte RAM segment.
2 x 384 KByte RAM Extension with flexible MMU
By using bit 4 and 5 of the MMU register the target address range can be
selected:
MMU register value
Target address range
$0X
$0000 - $3FFF
$1X
$4000 - $7FFF
$2X
$8000 - $BFFF
$3X
$C000 - $FFFF
Example: When writing $2C into MMU register $FFE4 4 KByte
RAM of RAM bank $0C is mapped into the target address range
$8000 - $8FFF.
When writing to a flexible MMU register the upper two bits should always be
0.
Realtime clock
As an optional hardware extension a realtime clock MC146818 is available. When
it is enabled when booting FLEX the realtime clock is initialized in binary
mode in 24 hour mode. The FLEX date is automatically set from the realtime
clock. If the realtime clock is not present FLEX asks for the current date.
It is accessible through memory mapped I/O in the address range $FD00 - $FD2F:
The Eurocom II has a video resolution of 512 horizontal and 256 vertical pixel.
Assuming the video RAM starts at address $0000 the video RAM is organized as in
the following figure:
Eurocom II video RAM
Hence the video RAM has a minimum size of 16 KByte when displaying 2 colors,
3 x 16 KByte when displaying 8 colors or 6 x 16 KByte when displaying 64 colors.
Video contol Register 2 (VICO2 at $FCF7) can be used for hardware scrolling.
Its value defines the raster line displayed top-most on the screen.
Video RAM without RAM Extension
When using the Eurocom II without a RAM extension a 16 KByte memory segment of
the on-board RAM is used for video display. The display supports two colors.
Which RAM segment is used depends on the
Video Control Register 1 (VICO1 at $FCF6).
VICO1 register value
Video address range
$00
$0000 - $3FFF
$01
$4000 - $7FFF
$02
$8000 - $BFFF
$03
No video RAM
VICO1 is a write-only register. When reading it always returns $FF. Only bit 0
and 1 select the video RAM segment. Bit 7 up to bit 2 should always be written
as 0.
Video RAM with RAM Extension
When using the Eurocom II/V7 with a RAM extension one, three or six 16 KByte
RAM bank(s) of the RAM Extension are used for video display. That means for
displaying more than two colors a RAM extension is needed. Which RAM bank is
used depends on the Video Control Register 1 (VICO1 at $FCF6):
VICO1 register value
Video address range
$00
$0C, $0D, $0E, $04, $05, $06
$01
$08, $09, $0A, $00, $01, $02
Only bit 0 select the video RAM segment. Bit 7 up to bit 1 should always
be written as 0.
When choosing 2, 8 or 64 colors the RAM banks are used as color planes: