A Forth Interpreter/Compiler for the TI-84+
Hi all,
I thought I'd share a project I've been working for the past couple of months. It's a Forth interpreter for the TI-84+ calculator. You can grab it at https://github.com/siraben/ti84-forth. The README explains it all, but here's a list of the main interesting points:
- Featuring Forth, the coolest low-level language after assembly! Mixes interpret/compile modes, the language's syntax and semantics can be changed on the fly. A concise language too, making it easier to learn and type than TI BASIC.
- More than 180 words for doing everything from low level memory management to arithmetic, to drawing pixels, to sending sound over the I/O port.
- Integration with the Variable Allocation Table to read/write programs.
- Send over convert Forth files to the calculator for it to be interpreted. Swap programs in and out!
Where help is needed
I've been working on this project completely solo for the last few months, so any help would be greatly appreciated, including to the following (but not limited to) areas:
- Improving the interpreter (perhaps using a smaller font, handling errors etc.), rework user input.
- Integrate better with the floating point ROM calls (currently no floating point reading etc.)
- Find a way around the $C000 limit. When the program counter exceeds that address, the calculator crashes. I've thought about using Indirect Threading instead of Direct Threading for that ( see README for reading list) but the slowdown is too much.
- Add words to interact with the flash memory, make use of interrupts and so on.
I look forward to seeing how the community receives this and any help :-).
Hi all,
I thought I'd share a project I've been working for the past couple of months. It's a Forth interpreter for the TI-84+ calculator. You can grab it at https://github.com/siraben/ti84-forth. The README explains it all, but here's a list of the main interesting points:
- Featuring Forth, the coolest low-level language after assembly! Mixes interpret/compile modes, the language's syntax and semantics can be changed on the fly. A concise language too, making it easier to learn and type than TI BASIC.
- More than 180 words for doing everything from low level memory management to arithmetic, to drawing pixels, to sending sound over the I/O port.
- Integration with the Variable Allocation Table to read/write programs.
- Send over convert Forth files to the calculator for it to be interpreted. Swap programs in and out!
Where help is needed
I've been working on this project completely solo for the last few months, so any help would be greatly appreciated, including to the following (but not limited to) areas:
- Improving the interpreter (perhaps using a smaller font, handling errors etc.), rework user input.
- Integrate better with the floating point ROM calls (currently no floating point reading etc.)
- Find a way around the $C000 limit. When the program counter exceeds that address, the calculator crashes. I've thought about using Indirect Threading instead of Direct Threading for that ( see README for reading list) but the slowdown is too much.
- Add words to interact with the flash memory, make use of interrupts and so on.
I look forward to seeing how the community receives this and any help :-).