Closed SamCoVT closed 3 years ago
Hi Sam - Thanks for the work and sorry for the delay, as you can see the year as been insane enough that I haven't had pretty much any time to code. For at large-picture solution I sent you a PM at 6502.org -- for the moment, I just realized that I need to reinstall my toolchain after reinstalling my main computer. Hope to get this done over the holidays.
I'm assuming your master-64tass is the correct branch to be working from (you had mentioned keeping the Ophis version as master for bugfixes only). After we take care of some of the open issues, we could look at how we want to manage the repository when we do a v1.1 kind of release. I think eventually master should become the tass64 version, but I understand that it could be a large disruption for folks already using Tali2 and it would probably be best to wait until releasing a new version to do that.
tass64 has a bunch of good features and I think it's a good fit for conditional compilation. I created a
TALI_OPTIONAL_WORDS
variable that has a list of the words you can remove. See the py65mon platform file for details. If you omit this variable (eg. all of the other current platform files) then it just compiles everything.So far, the following words and sets of words can be optionally selected or deselected: "ed", "editor", "ramdrive", "block", "environment?", "assembler", "wordlist" If you deselect everything, Tali2 shrinks from 22K to just under 15K. Now that I have the hang of it, we could make other sets of words optional as well, but I think this is a good start. There's enough room to have a basic kernel for I/O and still fit in a 16K ROM.
I did have to turn several of the word lists around in headers.asm, as the method I used to make words optional works best with each word linking to the one after it. The assembler already looked to be in that order, and I just made the entire thing optional.
I also updated generate_wordlist.py to gracefully handle missing words (it just marks them "missing" when reporting their size).
This is leaning pretty heavily on the tass64 feature set and won't be super easy to port to another assembler - I think I'm OK with that because tass64 is super-easy to compile from source and has almost no dependancies, so it will actually be easier to get running than Ophis in that regard.