mirror of
https://github.com/bobbimanners/EightBall.git
synced 2024-11-25 16:32:35 +00:00
Removed completed task from near-term list
parent
16ada4adf0
commit
3ffba49ea5
20
Roadmap.md
20
Roadmap.md
@ -3,9 +3,6 @@
|
||||
This is where I keep track of what to do next ...
|
||||
|
||||
## Near-Term
|
||||
- Easy speedups:
|
||||
- Immediate mode branch `BRCI`, jump `JMPI`, call `JSRI` and load/store instructions. Will cut VM cycle count by 25%-50% by eliminating `LDI`/`BRC`, `LDI`/`JMP`, `LDI/JSR` and `LDI`/`LDxx` `LDI`/`STxx` combinations.
|
||||
- Add support to VM, Disassembler and finally to the compiler.
|
||||
- Compile direct from disk. Would be nice to be able to compile Tetris on Apple II (rather than compile on Linux and run under Apple II EightBall VM.)
|
||||
- A way to pass string literals as subroutine arguments
|
||||
- Try to squeeze the interpreter / compiler code down a bit to save memory.
|
||||
@ -25,22 +22,7 @@ This is where I keep track of what to do next ...
|
||||
- Need to think about how a module system should work
|
||||
- Which is more useful: dynamic loading of modules at runtime, or static linking?
|
||||
- Optimize virtual machine bytecodes, based on study of real code
|
||||
- Compiler often writes variable, and immediately needs it again. This can be optimized easily by adding some "store and preserve" VM instructions.
|
||||
|
||||
Today:
|
||||
```
|
||||
LDI address
|
||||
STAW
|
||||
LDI address
|
||||
LDAW
|
||||
```
|
||||
Future:
|
||||
```
|
||||
LDI address
|
||||
STAWP # Store and preserve on Eval Stack
|
||||
```
|
||||
Similarly, repeated loads could be optimized into a single load and some `DUP`s.
|
||||
|
||||
- Compiler often writes variable, and immediately needs it again.
|
||||
## Long-Term
|
||||
- High performance VM
|
||||
- Hand-coded in 6502 assembly
|
||||
|
Loading…
Reference in New Issue
Block a user