Commit Graph

16 Commits

Author SHA1 Message Date
Bobbi Webber-Manners
6dbf45c39c
v0.70: disassembler, immediate mode VM ops
- VM now prompts for filename to load bytecode from
- Added new EightBall disassembler (`disass`), removed disassembly printout from compiler
- Fixes to interpreter / compiler error reporting.  Should no longer report completely incorrect line numbers!
- Added new immediate mode VM instructions for load (`LDAWI`, `LDABI`, `LDRWI`, `LDRBI`), store (`STAWI`, `STABI`, `STRWI`, `STRBI`), and flow control (`JSRI`, `JMPI`, `BRCI`).  Modified compiler to use these new instructions.  This significantly improves code density and VM execution speed.
2018-05-21 13:58:41 -04:00
Bobbi Webber-Manners
42bbb90acf
v0.69: Small bug-fixes and improvements
- Compiler: do not emit LDI 0, DISC sequence, which is a no-op.
- VM: add GPL info and progress when loading bytecode
- Most importantly: a version of Tetris coded in EightBall!
2018-05-18 21:11:53 -04:00
Bobbi Webber-Manners
ea3a6a83e2
v0.68: compiler bug fixes, improved efficiency
- Fixed indentation of VM code. Turned on stack checks for GCC only.
- Added new `VM_DISCARD` VM instruction (and compiler support).  This makes the VM significantly more efficient.
- Configured Linux VM to be compatible with Apple II environment.
- Added line to force to interpret mode to prevent surprises.
- Compiler: fixed bug when exiting `for` loop using `return`.  The compiler was leaking a word on the evalutation stack after jumping out of the body of the `for` loop.
2018-05-13 13:59:40 -04:00
Bobbi Webber-Manners
18942a9ba0
v0.67: Source code cleanup, optimizations
- Managed to free up several hundred bytes
2018-05-11 19:43:27 -04:00
Bobbi Webber-Manners
e02674d8da
v0.66: Refactoring, added const support
- New keyword `const`
- `const` values are supported as array dimensions and variable.array initializers
- Refactored code and saved several 100 bytes
- Compiler generates better VM code for array allocation
2018-05-11 01:05:43 -04:00
Bobbi Webber-Manners
c743831fe3
v0.65: Fixed compiler bug initializing local array
- Fixed compiler bug initializing local array
- Some refactoring to make code a few hundred bytes smaller
2018-05-06 21:11:39 -04:00
Bobbi Webber-Manners
ea754724b7
v0.64 - this file got forgotten 2018-05-05 00:58:24 -04:00
Bobbi Webber-Manners
f72fcdc253
v0.63: Added support for array initializers
- Arrays can now be initialized with a list like this: `word aa[4]={1,2,3,4}` ...
- ... or a string literal like this: `byte qw[100]="This is a test"`
- Works in interpreter or compiled.
2018-05-04 23:57:39 -04:00
Bobbi Webber-Manners
d9532c8f71
v0.62: Fixed function call bug in compiled code
- The compiler was not pushing the SENTINEL value to the operator stack and popping it afterwards, so the expression parsing was getting messed up.  Now fixed.
- Also added targets to the Makefile to allow the emulators to be run directly (make xvic, make x64, make mame).
2018-05-04 00:02:16 -04:00
Bobbi Webber-Manners
e52b236c53
v0.61: Fixed bug in & address of local arrays 2018-05-03 21:09:21 -04:00
Bobbi Webber-Manners
92164c3274
v0.60: Array pass by reference works in compiler
- Evaluating 'naked' array name `A` gives pointer to payload (same as `&A` or even `&A[0]`)
- Improved loading message in VM
- Got array pass-by-reference to work in compiler
- Fixed eval stack leak in array initialization code generated by compiler
2018-05-03 19:53:40 -04:00
Bobbi Webber-Manners
dc5ebf741c
v0.59: Added support for char literals 2018-05-03 10:18:17 -04:00
Bobbi Webber-Manners
ed032c11ea
v0.58: Allow constant exprs for array dimensions 2018-05-03 01:12:21 -04:00
Bobbi Webber-Manners
7a91e0c0fb
v0.57: Added mode statement for Apple II 2018-05-02 20:27:27 -04:00
Bobbi Webber-Manners
05a8d07665
Seems I forgot this one (v0.56 release) 2018-05-02 17:46:54 -04:00
Bobbi Webber-Manners
11f99c9840
EightBall v0.5 - With Compile and Virtual Machine 2018-04-27 23:47:22 -04:00