Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/conditional words tass64 #260

Merged
merged 12 commits into from
Jan 8, 2021

Conversation

SamCoVT
Copy link
Contributor

@SamCoVT SamCoVT commented Dec 5, 2020

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.

@scotws
Copy link
Owner

scotws commented Dec 20, 2020

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.

@scotws scotws self-assigned this Dec 20, 2020
@scotws scotws merged commit cdb2577 into scotws:master-64tass Jan 8, 2021
@SamCoVT SamCoVT deleted the feature/conditional-words-tass64 branch November 16, 2022 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants