I had a thread on 8chan's /tech/ for this program of mine and, now that I've found this place, I may as well make one here.
Featured in the image is my Meta-Machine Code targeted at CHIP-8; on display in that is a Rule 30 program I've written in CHIP-8. This is what I consider an ideal machine code development tool that I envisioned years back and have by now breathed life into.
An assembler is a lesser tool, I believe, lacking an intimate knowledge of what it targets and being a batch tool; my MMC is interactive and asks the programmer to recall little about the machine code being used, as it will explain in suitable detail all instructions it knows of; further, as programming is accomplished through instructions bound to keys, rather than to mnemonics, it's easy to simply press keys and answer questions until one learns what the keys are bound to. Invalid instructions won't be generated; an assembler will simply fail with an error. I've more recently come to believe the tool could have pedagogical worth, as one can simply learn the tool as it's used, which isn't reasonable with an assembler and its assembler language.
Here's some articles I've written concerning this tool of mine, which will give you details and demonstrations:
http://verisimilitudes.net/2017-07-07
http://verisimilitudes.net/2018-01-01
http://verisimilitudes.net/2018-08-08
The version currently available is old and out-of-date compared to what I'm using. The program is in a state where only I can really use it, for a variety of reasons. I've been wanting to write an Ada reimplementation, but I've found that the idea isn't nearly structured enough to the degree Ada requires and the Common Lisp implementation I've is a mess I've been reluctant to work on.
Simply put, Common Lisp is that language I'm most skilled with and the flexibility it provided allowed me to hang myself with tangential considerations. Wanting for a proper customization mechanism that wasn't Lisp, I thought a machine code was an appropriate mechanism to customize a machine code tool and the least arbitrary choice; as CHIP-8 lacks the power to do such a thing, however, I designed a Meta-CHIP-8 and the current implementation of the tool is a shell around this environment, with the
personality of the tool being written in Meta-CHIP-8. This is, of course, a mess.
My current plan is to rewrite the Common Lisp once more in a more structured fashion and lacking Meta-CHIP-8 and I expect after that I'll have the structure necessary to translate the Common Lisp to Ada. I can still work on the primitives the Ada version needs and will use, but the overall organization of the packages and whatnot lacked the structure I thought it should have. I've also written my own terminal library in Common Lisp and this is something I've not yet published in Ada, which is another requirement down the way.
In any case, feel free to ask me any questions concerning this or other works of mine and I'll do my best to provide an answer. Now, the argument could be made this doesn't deserve a thread, but I thought this place could benefit from the activity and I'm suitably interested in it.
8 posts and 2 images omitted.