mirror of
https://github.com/bobbimanners/EightBall.git
synced 2024-11-29 11:49: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 ...
|
This is where I keep track of what to do next ...
|
||||||
|
|
||||||
## Near-Term
|
## 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.)
|
- 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
|
- A way to pass string literals as subroutine arguments
|
||||||
- Try to squeeze the interpreter / compiler code down a bit to save memory.
|
- 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
|
- Need to think about how a module system should work
|
||||||
- Which is more useful: dynamic loading of modules at runtime, or static linking?
|
- Which is more useful: dynamic loading of modules at runtime, or static linking?
|
||||||
- Optimize virtual machine bytecodes, based on study of real code
|
- 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.
|
- Compiler often writes variable, and immediately needs it again.
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
## Long-Term
|
## Long-Term
|
||||||
- High performance VM
|
- High performance VM
|
||||||
- Hand-coded in 6502 assembly
|
- Hand-coded in 6502 assembly
|
||||||
|
Loading…
Reference in New Issue
Block a user