2018-08-06 01:35:43 +00:00
====
TODO
====
2020-10-27 23:29:34 +00:00
- get rid of all the .typeOrElse(STRUCT) 'shortcuts' and replace them with proper error handling
2020-10-22 21:41:16 +00:00
- make memset(w) and memcopy able to work with >256 bytes
- make memset and memcopy use the ROM routines on the CX16
- calling convention for builtin functions no longer via stack but via statically allocated vars inside the subroutine proc (just as normal subroutines)
- get rid of @stack in asmsub altogether (because all subroutines are no longer using this calling convention anymore)
2020-08-22 15:13:23 +00:00
- make it possible to use cpu opcodes such as 'nop' as variable names by prefixing all asm vars with something such as '_'
2020-08-18 12:47:52 +00:00
- option to load the built-in library files from a directory instead of the embedded ones (for easier library development/debugging)
2020-06-15 23:43:44 +00:00
- see if we can group some errors together for instance the (now single) errors about unidentified symbols
2020-09-22 20:58:57 +00:00
- use VIC banking to move up the graphics bitmap memory location. Don't move it under the ROM though as that would require IRQ disabling and memory bank swapping for every bitmap manipulation
2020-09-27 20:05:44 +00:00
- add some primitives/subroutines/examples for using custom char sets, copying the default charset.
2020-10-22 21:41:16 +00:00
- some better handling of recursive subroutines? via %option recursive?: allocate all params and local vars on estack, don't allow nested subroutines, can begin by first not allowing any local variables just fixing the parameters
- get rid of all other TODO's in the code ;-)
2020-03-21 23:43:46 +00:00
2019-01-24 01:43:25 +00:00
More optimizations
^^^^^^^^^^^^^^^^^^
Add more compiler optimizations to the existing ones.
2020-10-02 20:37:52 +00:00
- further optimize assignment codegeneration, such as the following:
- binexpr splitting (beware self-referencing expressions and asm code ballooning though)
2020-10-10 02:37:12 +00:00
- subroutine calling convention? like: 1 byte arg -> pass in A, 2 bytes -> pass in A+Y, return value likewise. Especially for built-in functions!
2020-09-22 19:50:56 +00:00
- can such parameter passing to subroutines be optimized to avoid copying?
2020-03-24 21:37:42 +00:00
- more optimizations on the language AST level
- more optimizations on the final assembly source level
2020-09-22 19:50:56 +00:00
- note: subroutine inlining is abandoned because of problems referencing non-local stuff. Can't move everything around.
2019-01-24 01:43:25 +00:00
2019-01-26 16:32:26 +00:00
2019-01-29 22:32:43 +00:00
Eval stack redesign? (lot of work)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The eval stack is now a split lsb/msb stack using X as the stackpointer.
Is it easier/faster to just use a single page unsplit stack?
2020-05-14 21:59:02 +00:00
It could then even be moved into the zeropage to reduce code size and slowness.
2019-01-29 22:32:43 +00:00
Or just move the LSB portion into a slab of the zeropage.
2020-03-24 21:37:42 +00:00
Allocate a fixed word in ZP that is the Top Of Stack value so we can always operate on TOS directly
without having to index with X into the eval stack all the time?
2020-05-14 21:59:02 +00:00
This could GREATLY improve code size and speed for operations that work on just a single value.
2019-01-29 22:48:26 +00:00
2020-03-24 21:37:42 +00:00
Bug Fixing
^^^^^^^^^^
Ofcourse there are always bugs to fix ;)
2019-08-24 22:46:46 +00:00
2019-01-27 18:14:58 +00:00
Misc
^^^^
2019-08-11 16:21:15 +00:00
Several ideas were discussed on my reddit post
https://www.reddit.com/r/programming/comments/alhj59/creating_a_programming_language_and_cross/