Commit Graph

171 Commits

Author SHA1 Message Date
Bobbi Webber-Manners 13df8be29f
Minor fix to score printout 2018-05-19 18:56:40 -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 3e68d8e58b
Added DISC VM instruction to table 2018-05-18 20:52:00 -04:00
Bobbi Webber-Manners 0ca0350333
Added link to Wiki 2018-05-18 20:48:30 -04:00
Bobbi Webber-Manners 7acdb899cd
Added reference to the Wiki 2018-05-18 20:47:39 -04:00
Bobbi Webber-Manners 34e0893e52
Apple ][ Tetris screenshot 2018-05-18 20:36:48 -04:00
Bobbi Webber-Manners 76ef797854
Tetris for Apple ][ lo-res mode is now complete 2018-05-18 20:14:41 -04:00
Bobbi Webber-Manners 5dc202ec2a
Added docs on pr.ch (was missing) 2018-05-13 15:40:07 -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 43d45a06dd
Fixed sieve example code - was out of date 2018-05-11 21:05:28 -04:00
Bobbi Webber-Manners 964032ae28
Updated sieve example to use const 2018-05-11 21:03:58 -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 115c9e0f72
Added note about char literals being ASCII 2018-05-11 01:10:31 -04:00
Bobbi Webber-Manners 953a3a3ac3
Committed in error 2018-05-11 01:06:53 -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 19e341675e
Added documentation on const 2018-05-11 00:58:43 -04:00
Bobbi Webber-Manners cb11857832
Added missing parenthesis 2018-05-08 19:52:43 -04:00
Bobbi Webber-Manners ad137a39eb
Formatting fixup 2018-05-08 18:53:39 -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 ebdc59b8b5
Minor fixes to array initializer section 2018-05-05 01:07:01 -04:00
Bobbi Webber-Manners 5d66a25b01
Formatting fix 2018-05-05 01:05:16 -04:00
Bobbi Webber-Manners ea754724b7
v0.64 - this file got forgotten 2018-05-05 00:58:24 -04:00
Bobbi Webber-Manners aed94857bd
v0.64: Fix compiler bug in array initializer code
- Found bug in array initializer code in v0.63.  This version hopefully fixes it.
- Also shaved another 50 bytes off the code size.
2018-05-05 00:57:09 -04:00
Bobbi Webber-Manners 55b0e30abd
String handling example 2018-05-05 00:07:57 -04:00
Bobbi Webber-Manners 4e4501e0b4
A few more notes about array initializers 2018-05-05 00:02:29 -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 2dc7af0076
Documented new array initializers 2018-05-04 22:28:34 -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 7cdaccab52
Updated sieve example source 2018-05-03 21:15:14 -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 2d90634e2a
'Naked' array name evaluates to address 2018-05-03 20:02:20 -04:00
Bobbi Webber-Manners da72878d33
Array pass-by-reference now works in compiler 2018-05-03 19:56:08 -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 456c7259d7
Added documentation for character constants. 2018-05-03 10:22:45 -04:00
Bobbi Webber-Manners dc5ebf741c
v0.59: Added support for char literals 2018-05-03 10:18:17 -04:00
Bobbi Webber-Manners d4810980a8
Updated - constant exprs are now OK for array dims 2018-05-03 01:17:43 -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 5a4fa67d1b
Added ATOR VM instruction. 2018-05-02 22:25:44 -04:00
Bobbi Webber-Manners f22f303c80
Added documentation on `mode` statement 2018-05-02 20:30:07 -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 17e49979c7
Fixed formatting typo 2018-05-02 18:55:59 -04:00
Bobbi Webber-Manners ac0279cf91
Updated information on internals (memory mgmt) 2018-05-02 18:55:14 -04:00
Bobbi Webber-Manners 8417bfe448
Forgot this one too (v0.56) 2018-05-02 17:47:55 -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 c026602f62
v0.56: Various minor improvements
- Improved Makefile to make it easier to configure paths to tools
- Made number of signicant characters for subroutine and variable names a `#define` constant and tested it works with different values
- Modified memory allocation in `HEAP2` - the source code is now allocated at the bottom, growing up.  The compiler's linkage table is allocated at the top growing down.  This makes it easy to dispose of the linkage table after compilation is done.
- This revealed that my memory limits were wrong so code was crashing on C64, Apple II.  I bumped up the bottom of `HEAP2` by 0x500 or so.  Not sure why this is needed.
- Added a signon banner to the virtual machine so it is clear it is loading bytecode.  Screen is cleared after loading is complete, so user knows when execution begins.
2018-05-02 17:41:42 -04:00
Bobbi Webber-Manners 2dc9bfc4f9
Fixed link to wiki? 2018-05-02 15:03:05 -04:00
Bobbi Webber-Manners 94367b05db
Added link to wiki 2018-05-02 15:02:25 -04:00
Bobbi Webber-Manners 0d7d73d74e
Added roadmap section. 2018-05-02 15:00:36 -04:00
Bobbi Webber-Manners 5e19f57bac
Added section on Data Types 2018-05-01 21:08:00 -04:00
Bobbi Webber-Manners 82aec409d5
Removed references to the wiki. 2018-05-01 20:49:47 -04:00