A Micro Emulator:
08/09/2001
"Software Emulation" of
a Motorola 6800 Microprocessor and the "M6800 Trainer",
that runs in an IBM Environment.
This M6800 Emulation will run in
DOS or in a DOS Window.
This very extensive Microprocessor Emulation Program was
designed and developed as a teaching aid for use in the classroom,
in conjunction with the Motorola M6800 Hardware Trainer, with
remarkable results. It actually shaved literal days of student
time, where they were learning the nuances of the inward workings
(machine code and assembly language) of the Motorola Processor.
Files may be saved or loaded as any normal disk file, but
are in binary form and therefore cannot be edited by a text editor.
Because they are in a binary form, they can be examined, modified,
or even composed with binary editors such as Debug, if the individual
understands those binary equivalences for the M6800.
This binary information can represent many things, and it
is this fact that describes the actual difference between Microprocessors,
in how they decode and interact with the binary code given.
To achieve the M6800 Emulation process, this program examines
the given binary code against the parameters expected by a M6800
Processor, and literally spells out the translation of this binary
code, based on what it represents to a M6800 Processor, and the
action that should be taken.
The M6800 is a 16-bit Address device, which therefore should
be fitted into a 64Kb environment for all of it's activity. The
M6800 CPU is a Memory-Mapped I/O Device, rather than a Port-Mapped
I/O Device, and these are simulated as well. All of the simulation
is accomplished to match that of the Motorola 6800 Microprocessor
Trainer.
All of the possible Instructions for the M6800 CPU are decoded,
as well as all of the Flags in terms of which are affected, and/or
changed. This is carried out in a 2 step process to allow the
individual to determine first what they think should occur,
and the second step is where the action is carried out. This
method is a form of step-by-step testing for the individual
involved.
By being able to see all the Register Contents at once
and relating Flags, the ensuing activity
on this step-by-step basis is highly effective in the learning
process. Registers, Flags, and affected data are indicated
by a color change. This color change resets back to the
default on step #1 of the next instruction decode.
Since Addressing Modes are a major key part in CPU
codes, those modes are identified and emphasized here
for the individual's attention, as they occur.