Necro-update.
I lost a good chunk of work back in 2012/2013 and that really helped to kill the project. A little over two years ago, a programmer named Hans Burch emailed me some dissected (and slightly modified) source that I'm assuming they got via disassembly and comparing to old source code.
While the project is pretty much still dead, I made some modifications in 2016, and again over the past couple of days. It's not compatible with Grammer Assembly programs as the jump table is removed to make room, so it is not backwards compatible.
2016
▫ I added an experimental command called
module (the
►DMS token). It allows you to access a custom function from the Grampkg appvar, and would be useful if I want to expand the functionality of Grammer. Realistically, I'd want to put functions that are not speed-critical there. Don't count on this being a permanent feature, just for experimentation.
▫ I removed the jump table to make more room
▫ I got rid of the custom VAT searching routine and now use the OS routines. No need to re-invent the wheel.
▫ I got rid of the 32-bit multiplication routine that wasn't even being used, not even via the jump table for Grammer Assembly programs.
5~8 Nov. 2018
▫ I did a lot of cleaning up of the source code.
▫ Without the jump table, I decided to remove some code that was only accessible that way (mostly math routines intended to make the lives of assembly programmers easier).
▫ Re-invented the wheel by making custom VAT traversal code in place of _FindAlphaUp and _FindAlphaDn. I wanted to make the start menu more responsive and at ~100 programs on my calc, the OS routines are far too slow. This is in part because I want to make a better start menu. for the App
▫ Added in code to throw an error if a Grammer Assembly program is run. Without the jump table, they'd likely crash.
▫ Version number is going to be sensible now, starting at 2.50.0.0
▫ Various minor optimizations. I'm a bit more mature in my programming now.
▫ I cleaned up the filtering code for the main menu. It was pretty ugly, and now it's pretty straight-forward. In general, I like how the main menu works a lot more, but it needs more work (in my opinion).
▫ I added key debouncing to the main menu that allows you to press and hold a key instead of having to press multiple times to get to traverse the program list.
▫ I completely rewrote the psuedo-random number generator and fire code. Haven't even tested it.
▫ I probably did some other major modifications that will crash your calc.
What I want to do:
▫ Re-re-invent the wheel. With the VAT being sorted, as long as I keep it sorted as variables are created, then I can optimize the VAT search routine that mimics _ChkFindSym. It might not be worth it, actually.
▫ I want a scrollable menu. I've wanted it for years. It's closer to happening with the improvements under the hood, but will require a lot of extra work.
I have 486 bytes of space, so I could add in the jump table and the associated routines that I removed, but the room is nice.
Download 2.50.0.0 (no readme or anything)