Comments (2)
That sounds like a reasonable idea. Does it make sense to leave the forth/user-words.fs file (for stuff users might want on all platforms) and add a platform/myplatform-user-words.fs file for the platform specific stuff?
On the other hand, there isn't a ton of room for the extra words. The existing user-words and forth-words.fs files are stripped of all comments and line endings and stuffed into a string in the ROM with exactly 1 space between words. At startup, the string is EVALUATEd (note that the more stuff you put in the xxx-words.fs files, the slower Tali is to boot because of this). It takes up a lot of ROM space because it's stored as the original ASCII text, minus the comments and extra whitespace. Tali currently takes up around 22Kish, and we tried to leave 8K for the user's use, so there's not a ton of room left.
I ended up running out of room in my SBC's EEPROM to use just the forth-words method, so I added storage to my system (first an EEPROM over I2C and later a Compact Flash interface) and used the block words to get more extensive code loaded. I just use user-words.fs for my I2C routines to access the external EEPROM, and then I load various screens off of that to get the FAT32 support for the Compact Flash card off of that or support for other hardware I have, like an LCD screen.
If this is something you are really interested in, would you be willing to code the changes needed? I'd be happy to help you out, and you can check the Makefile to see how the platform files are currently handled using wildcards and how the xxx-words.fs files are currently handled using the python script that strips the comments/whitespace out.
from taliforth2.
From my 64tass tests with Cthulhu Scheme I think there is a lot of space we can save if we we are willing to implement a system of configuration options for conditional assembly. For instance, I really hate octal, think it is a complete waste of space. However, some people may have not yet seen the light. So as a test, I've included a OCTAL = false
flag in the Cthulhu platforms file so it won't assemble OCTAL support (which I haven't coded yet, but you get the idea).
I'm not sure how fine-grained we want to be, and we'll have to make sure that all combinations work, but this might be a way to make room for more user-specific stuff. I'm really getting to like conditional assembly :-)
from taliforth2.
Related Issues (20)
- Suggestions for making Tali easier to port to new hardware HOT 7
- Move documentation to Sphinx / Read the Docs HOT 1
- fragmented or limited zero page space HOT 2
- Add support for files as an input source HOT 3
- Makefile and Building on Windows needs some work HOT 1
- Documentation Error in THRU (looks like it's my fault)
- User's output routine must leave char in A HOT 1
- Figure out which assembler to switch to HOT 22
- Create script to autoconvert Ophis code to new assembler HOT 1
- Rewrite Tali as-is with 64tass as new assembler HOT 2
- Oopsie in documentation folder HOT 1
- Restructure repo for two asssemblers HOT 2
- Number Constants HOT 1
- Makefile needs to be updated for .PRG output (eg. 24K images) HOT 2
- The documentation needs to be updated for 64tass HOT 2
- bytes-vs-string issue in utils/console.py HOT 1
- All assembler mnemonics need to be marked NN HOT 1
- xt_words doesn't respect max line length correctly HOT 3
- Strange RTS behaviour HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from taliforth2.