During the course of creating the DIY Calculator, we've been pondering a variety of additional tools that could be interesting and fun to create and very useful. Over the course of time, we may create some of these utilities ourselves, but it would be great if you decided to leap into the fray with gusto and abandon. If you do create any of these applications, we'd be delighted to make them available to other users via this website (with full credit being given to yourself of course).
View Topics
Assemblers, Compilers, and Interpreters (Oh My!)
As you will doubtless discover, the assembler we provide with the DIY Calculator is relatively simple. For example,
it detects only one error at a time and the diagnostic messages it generates are, on occasion,
somewhat cryptic.
Thus, we've been pondering the attributes one might like to see in a "super assembler." Also, we've been musing over the
idea of creating other language-related DIY Calculator tools, such as a small C compiler, a simple BASIC interpreter,
or a simple FORTH interpreter. Select the following links to peruse more ideas relating to these topics:
Super Assembler
(See also The DAs Assembler on the Programs and Routines page)
Small C Compiler
BASIC Interpreter
FORTH Interpreter (coming soon)
A Code Coverage Utility
Once one has created a program for the DIY Calculator, it would be interesting to know which portions of that program have been executed and which have not. For example, suppose that you run the program several times and have everything appear to be "tickerty-boo," but sometime later when you demonstrate your masterpiece to a friend it crashes and burns in the most frightful way.
Upon investigation, you may discover that the problem lies in a portion of the code that you didn't actually use before (this is a very common scenario).
Thus, it would be very useful to have a code coverage utility that analyzes a program run and informs you as to which lines of code have been
exercised and which portions of the program remain in question.
More...
A Code Profiler Utility
There is a rule-of-thumb known as the "80:20 Rule" that says that a program will spend 80% of its
time executing only 20% of the code.
Thus, the idea behind a code profiling utility is that it analyzes a program run and reports where the little scamp is spending
the majority of its time. Armed with this knowledge, you can then examine these areas of the code and – by means of a
little judicious "tweaking" – significantly improve your program's efficiency and dramatically speed things up. More...
A File Transfer Utility
With regards to the possibility of creating a physical version of the DIY Calculator (as discussed on the
More Cool Stuff page), one of the elements associated with such a project would be to provide a mechanism to download new DIY Calculator machine code programs into the physical calculator.
As you might imagine, we've been pondering this topic and a have a few thoughts we would like to share with regard to creating a USB and/or serial interface file transfer utility. More...
File Formats Used by the DIY Calculator
In order to create some of the tools discussed on this page, you will need to be aware of the various file formats used by the DIY Calculator.
For example, in addition to generating a Machine Code (*.ram) file, the assembler also generates a List (*.lst) file and a Raw Assembly Dump (*.rad) file. In the case of a code coverage or profiling run, the DIY calculator can be used to read in the *.ram and *.rad files, and then output one or more Processed Assembly Dump (*.pad) files. More...