Project Title: An Animated Java Assembler for the Motorola 68k Processor
The original concept for this project was to create a graphical, animated simulation of the internal operations of a specific microprocessor. The user would enter code to be 'executed', showing the fetch/execute cycle, and therefore most of the bus interactions with the fundamental blocks inside the computer. A further feature of the specification was that the programming language 'Java' should be used, partly for its graphical effects, but also for its cross-platform nature.
Following discussion with my supervisors and some preliminary research the following issues must be addressed: -
Who will use the Package?
Target groups will include educational applications; first/second year
electronics students meeting microprocessor technology for the first time,
fourth year students (such as myself) wishing to brush up, or refresh their
knowledge of microprocessors, and generally anyone who requires a crash
course in microprocessors. It could be used by anyone who is writing code
for the hardware in order to see their code executing, and possibly fault
find.
Which microprocessor?
Options :
Interpret or assemble instructions?
While it may be conceptually easy to interpret instructions in practice
it will be necessary to assemble the user input into a form of machine
code which can be interpreted by the program, rather than the actual processor.
Other Aspects
Number Of Functions
Given the foreseeable complexities of the program it may be necessary
to limit the useable instruction set to a sub set of those actually available.
If the program allows the use of several of the main data movement, data
manipulation and branch instructions this should enable the user to understand
the basic operations available.
Visual Effect
Just how much detail of the processors cycle does the user need to
see? Is it sufficient to show the final outcome of an executed instruction,
or show the other extreme where the user can see the individual timing
diagrams showing lines changing logic levels. Research in the form of a
non-functional user demonstration and a specially prepared user questionnaire
will determine the optimum level of visual effect to use.
Modularity/Expandability
As the size and scope of the possibilities for this project are extensive
it is easy to see that the allotted time will not allow all the features
which could be integrated into the program to be completed. Therefore is
it important that when this year's development is completed that the program
has been written using techniques which allow another programmer to easily
add further functionality. It is also important that related documentation
is clear and concise allowing an external party to quickly understand all
the development work which has been undertaken.
Plan of Action
At this early stage it is difficult to estimate target timescales to aim for, especially as the specific goal has not yet been decided on. Outlined below is a chart showing a projection of timescales for completion of certain blocks of the project this semester.
An outline of proposed actions is as shown below:
| Item | Completion Date |
|
Already completed (Week 3)
|
|
Week 5
|
|
Week 7
|
|
Week 9
|
|
Week 12 |