mirror of
https://github.com/catseye/SixtyPical.git
synced 2025-02-19 20:30:45 +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.
|
This should be tracked in the abstract interpretation.
|
||||||
(If only because abstract interpretation is the major point of this project!)
|
(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`
|
* `copy x, [ptr] + y`
|
||||||
* Maybe even `copy [ptra] + y, [ptrb] + y`, which can be compiled to indirect LDA then indirect STA!
|
* 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.
|
* 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
|
* `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
|
* 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.
|
* `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
|
* 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.
|
* add absolute addressing in shl/shr, absolute-indexed for add, sub, etc.
|
||||||
* check and disallow recursion.
|
* check and disallow recursion.
|
||||||
* automatic tail-call optimization (could be tricky, w/constraints?)
|
* automatic tail-call optimization (could be tricky, w/constraints?)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user