Route 64 Developer's Guide
<< || toc || >>

Package Overview

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/21CommentsCopyright © 2006 Michael G. Logo