mirror of
https://github.com/catseye/SixtyPical.git
synced 2025-02-16 15:30:26 +00:00
Some TODO notes.
This commit is contained in:
parent
b477c5e786
commit
c84473224b
18
README.md
18
README.md
@ -65,18 +65,28 @@ But if you add a value ≥ N to it, it becomes invalid.
|
||||
This should be tracked in the abstract interpretation.
|
||||
(If only because abstract interpretation is the major point of this project!)
|
||||
|
||||
### And at some point...
|
||||
### Routine-local static memory locations
|
||||
|
||||
* Compare word (constant or memory location) with memory location or pointer. (Maybe?)
|
||||
These would not need to appear in the inputs/outputs/trashes sets of the routines
|
||||
that call this routine.
|
||||
|
||||
These might be forced to specify an initial value so that they can always be
|
||||
assumed to be meaningful.
|
||||
|
||||
### More modes for `copy`
|
||||
|
||||
* don't allow `copy foo, a` probably. insist on `ld a, foo` for this.
|
||||
* have `copy` instruction able to copy a byte to a user-def mem loc, etc.
|
||||
* `copy x, [ptr] + y`
|
||||
* Maybe even `copy [ptra] + y, [ptrb] + y`, which can be compiled to indirect LDA then indirect STA!
|
||||
|
||||
### And at some point...
|
||||
|
||||
* Check that the buffer being read or written to through pointer, appears in approporiate inputs or outputs set.
|
||||
* `byte table` and `word table` of sizes other than 256
|
||||
* initialized `byte table` memory locations
|
||||
* always analyze before executing or compiling, unless told not to
|
||||
* `interrupt` routines -- to indicate that "the supervisor" has stored values on the stack, so we can trash them.
|
||||
* error messages that include the line number of the source code
|
||||
* have `copy` instruction able to copy a byte to a user-def mem loc, etc.
|
||||
* add absolute addressing in shl/shr, absolute-indexed for add, sub, etc.
|
||||
* check and disallow recursion.
|
||||
* automatic tail-call optimization (could be tricky, w/constraints?)
|
||||
|
Loading…
x
Reference in New Issue
Block a user