Commodore 128 Programmer's Reference Manual page 574

Hide thumbs Also See for 128:
Table of Contents

Advertisement

564
COMMODORE 128
CI28 ROM MEMORY ORGANIZATION
u
C128 mode is achieved at system reset and is controlled by a bit in the MMU
Configuration Register. In C128 mode, the MMU asserts itself in the C128 memory
j [
map at $FF00 and in the I/O space, starting at $D500. Use of MMU registers located at
Lj
$FF00 allows memory management without actually having the I/O block banked in at
the time and with a minimum loss of contiguous RAM. The MMU is completely
\
removed from the memory map in C64 mode. It is, however, still used by the hardware
J^
to manage memory.
Figure 16-2 presents the standard map for the C64 mode. Some of the alternate modes
{
are shown in Figure 16-3. All C64 modes are compatible with the C64 computer, as the
j
C128 basically becomes a C64 when in C64 mode. The details of MMU register
{mJ
location/operation are discussed in Chapter 13.
The ROMs in C64 mode look like Commodore 64 ROMs. The internal BASIC
1 [
and Kernal provide the C64 mode with the normal Commodore 64 operating system in
[_J
ROM. This ROM actually duplicates some of the ROM used in C128 mode, but it is
necessary, as it is not accessible from C128 mode. In C128 mode, up to 48K of the
, .
operating system is present, with the exact amount being set by software control. This
I
allows quicker access to underlying RAM by turning off unneeded sections of the
operating system.
The external ROMs represented on the memory map are those used in C64 mode.
j I
They obey the Commodore 64 rules for mapping; i.e., cartridges assert themselves in
Lj
hardware via the /EXROM and /GAME lines. External ROMs in C128 mode (i.e., C128
cartridges) are mapped as banked ROMs; when the system is initialized, all ROM slots
\ \
are polled for the existence of a ROM, and the ROM's priority, if one exists. This
jj
allows much more flexibility than the hard-wired ROM substitution method, since the
Kernal and BASIC ROMs can be swapped for an application program, or for external
program control, or can be turned off altogether. This banking manipulation is accom-
{
plished by writing to the Configuration Register at location $D500 or $FF00 in the
^
MMU.
The hardware also features the ability to store preset values for the configuration
} /
and force a load of the Configuration Register by writing to one of the LCRs (Load
(J
Configuration Registers). This allows the programmer to imply that ROM does not
appear in the bank (by default) any time an access occurs to a bank where data is stored.
u
U
II
LJ

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents