I don't know if you're still working on this, many months later, but this thread certainly was an interesting read! I've got a couple of minor comments:
fschuhi wrote:
I've managed to understand some important subroutines completely, on my own, for the first time ever....
Code:
$51e8 readNextChar INC $22 ; next char in stash (after JSR)
$51ea BNE L51ee
$51ec INC $23 ; stash can be > 255 bytes
$51ee L51ee LDY #$00
$51f0 LDA ($22),Y ; load char from stash
$51f2 RTS
That increment of the high byte is vital, and nothing to do with the length of the stash. If the stash crosses a page boundry, even if it's only two bytes long, the low byte will wrap around to 0 and, if the high byte is not incremented when that happens, you'll end up reading from an address 256 bytes less than the one you should be reading from. (And what you see above is of course the common idiom for 16-bit increments.)
Quote:
I've not yet been able to upload anything to GitHub or the like, the workbench and it's various tools is much too disjointed to be of any use to anyone. I'll have to do a refactoring anyways as soon as I come back to the project (hopefully in September), so I might package it a bit better and upload it then.
I wouldn't worry too much about the disjointedness or quality of the code; just get it in the repo, make sure there's a couple of lines of README that say what the repo is and link back to this thread, and worry about cleaning it up later. Having anything at all available for others to see is still much better than having nothing. And of course it serves as a backup as well in case your disk gets trashed or whatever.
Also, what can help with this is always to start out with an empty repo when you start on a project like this and commit at regular checkpoints when you've got something working. This not only lets you easily go back if you mess something up, and review your changes, both of which are useful even if nobody else ever sees the repo, but tends to make one (or me, at least) slightly more organized about what I'm doing. (In particular, this can make a project a
lot easier to come back to after a couple of weeks or more off.)