This was the FOOBA (Feature-light Operation Of Bennett's Algorithm)
project. It was intended to be a small, efficient implimentation of
Bennett's 1989 algorithm as described in Dr. Frank's project
page that would run on a natively reversible platform (the
Pendulum architecture). It was designed to simulate the Motorola
M68HC11. Not the simplest irreversible architecture, but still very
basic and familiar to me through EE classes at UF. I had no plans to
simulate the interrupt timers or analog hardware.
Unfortunately, it never actually worked. In theory, it was going
correctly, but I attempted it as a senior project and did not have
time to complete it all. In addition, the R language compiler was
still very much in development - which did nothing to speed FOOBA
development.
This is a collection of the work I completed for the project. I am
putting it here in the hope that someone will be able to pick up where
I left off. The basic design work of the simulator was done. It just
required completion of the various opcodes needed to actually run a
working program.
Of primary interest to people continuing my research would be my
Final Report. This contains a
description of my work, as well as bibliography of sources I used. For
a fun multimedia overview, try the PowerPoint presentation. Note: I'd scan these
before opening them. I don't think they're virused, but they're Office
files so you never know.
I also have some source files available if you want a head start
on coding:
opcount - a small C++ program to count
the opcodes in a compiled HC11 program. this was used to determine
which opcodes needed to be simulated to run my example programs.
bin2ra - converts a binary image of an
HC11 ROM (the compiled program code) into an R language array
definition fragment. The simulated program needed to be directly
embedded into the simulator code since no one had yet developed
reversible hard-drives for the Pendulum platform.
FOOBA.R - the FOOBA main source code in R. I
left a few comments if you want to finish/debug it. keep
in mind that this looked like it was working, but the R
compiler was still being worked on while I was doing this, so it has
never actually been built or ran. to finish this, you would need to
finish implementing the various opcodes necessary to run a program
and implement the simulation segment layer of the program as
described in the report.
Additionally, there are some miscellaneous files lying around here. I think these are mostly leftovers lying
around from Dr. Frank helping me work on the project. It may be
interesting to look through them. It may be a waste of time. It may
make you doubt your own sanity and the mercy of God. I don't know.
CJ Vermette