Like every Java application the Route 64 implementation is distributed across
a number of different Java packages. The main package that holds the core
implementation is
de.michab.simulator.*
and the packages below. The
classes in these packages contain the core Route 64 implemention without
dependencies on other classes.
Each of the packages under de.michab.simulator.*
has a well
defined meaning. The package de.michab.simulator
contains all classes that should be reusable for other types
of emulations. If one plans to implement an entirely new emulation
e.g. a Sinclair Spectrum then the interfaces and classes in
this packages should be usable for defining and implementing the new
system structure.
The package de.michab.simulator.mos6502
holds chip emulations from
the MOS 6502 hardware family. The chip emulations placed here do not
contain any
system specific functionality to keep these parts reusable when
emulating different systems based on the 6502 family of chips. When
implementing a Commodore VC20 emulator this package would house the
resulting classes and possibly some of the existing classes
like the 6502 cpu chip emulation should be reusable
unmodified. Note that the package also holds additional classes that are used
to implement certain chips. An example is the Commodore 64's video
interface chip: The complexity of this chip's inner workings was
distributed across a handful of classes that all reside in the
mos6502
package with package local scope visible and usable
for the class implementations in that package, but not for classes
in other packages.
Finally the package de.michab.simulator.mos6502.c64
is
the area where classes are placed that are responsible for
implementing a concrete computer system the Commodore 64. On an
abstract level the classes contained in this package are the
integrating glue for the classes contained in the mos6502 package.
Also missing pieces like keyboard or joystick emulations are placed
here. Last but not least the classes in this package implement the
integration of the raw (and boring) emulation with the bells and
whizzles of an user interface in the form of a JavaBean.
The class that represents the Route 64 bean is
de.michab.simulator.mos6502.c64.C64Core
.
When integrating Route 64 into a different application this bean implementation
is the point to start, since the bean offers the emulator functionality without
a concrete user interface and in a very modular manner since the bean only
depends on classes in its own package hierarchy.
The package de.michab.apps.route64
holds different concrete
Route 64 client implementations based on the bean. One is the Java application
that can be downloaded from Sourceforge, the other is Route 64 in the form of
an applet that is used on the Games Gallery. Note that all other packages do
only exist as implementation support for these clients and have no further
coupling to the emulator core. As a side-note: The Route 64 Eclipse plug-in
also uses the Route 64 bean class. TODO link.
Last modified: 2005/07/21 | Comments | Copyright © 2006 Michael G. Binz |