Chris Pressey
|
92b1cfeefb
|
Implement tail-call optimization.
|
2019-10-22 12:23:15 +01:00 |
|
Chris Pressey
|
44d97c33a2
|
Better generation of code at tail of routines.
|
2019-10-22 11:37:00 +01:00 |
|
Chris Pressey
|
2e2e80664e
|
Forbid nested with interrupts blocks, and more refactoring.
|
2019-05-14 15:01:10 +01:00 |
|
Chris Pressey
|
3f666f4385
|
Add reset instruction; much refactoring.
|
2019-05-14 08:56:35 +01:00 |
|
Chris Pressey
|
b19267d3ba
|
Checkpoint import of changes for version 0.19.
|
2019-04-08 11:50:54 +01:00 |
|
Chris Pressey
|
35a1053439
|
Support more modes on add and sub .
|
2018-12-12 10:34:25 +00:00 |
|
Chris Pressey
|
2803aa2d05
|
Add failing tests for add and sub on locations other than a .
|
2018-12-12 10:11:16 +00:00 |
|
Chris Pressey
|
d1a29709f2
|
Add example test program for cmp-against-literal-word. Fix it.
|
2018-12-12 09:09:45 +00:00 |
|
Chris Pressey
|
97e6e619ff
|
cmp can compare against a literal word.
|
2018-12-12 09:01:46 +00:00 |
|
Chris Pressey
|
94ee042a1e
|
Fix order of operands in word-sized cmp .
|
2018-11-27 13:12:55 +00:00 |
|
Chris Pressey
|
dcc944d732
|
If add and sub can work on words, then cmp can work on words too.
|
2018-11-23 23:00:41 +00:00 |
|
Chris Pressey
|
e74c7f2b31
|
Initial attempt at 16-bit compare. Not super well tested yet.
|
2018-11-23 22:09:28 +00:00 |
|
Chris Pressey
|
38119dbe29
|
Convert all tests to new syntax.
|
2018-09-07 22:55:54 +01:00 |
|
Chris Pressey
|
b63bcfcd2b
|
Begin introducing shortcut syntax for nested save s.
|
2018-09-07 09:36:51 +01:00 |
|
Chris Pressey
|
4bba75857f
|
--output cmdline argument, serialize() returns an array of bytes.
|
2018-09-06 16:18:41 +01:00 |
|
Chris Pressey
|
8091c45a9a
|
Fix test which is misleading due to the way the appliance works.
|
2018-05-08 12:14:30 +01:00 |
|
Chris Pressey
|
4986454733
|
Support save'ing user-defined locations.
|
2018-04-25 13:27:47 +01:00 |
|
Chris Pressey
|
07541d7913
|
Compile code for saving a, x, or y on the stack.
|
2018-04-25 13:15:53 +01:00 |
|
Chris Pressey
|
89fa8361a8
|
Remove --prelude, reform and document --output-formats.
|
2018-04-23 13:18:01 +01:00 |
|
Chris Pressey
|
bc91ef1602
|
Compile byte-table add, sub, cmp, and, or, xor, shl, shr, inc, dec.
|
2018-04-18 16:32:12 +01:00 |
|
Chris Pressey
|
e565234d28
|
Support for shl foo and shr foo where foo is a byte storage.
|
2018-04-18 12:01:53 +01:00 |
|
Chris Pressey
|
3c7d95a724
|
Support for copy [ptra]+y, [ptrb]+y to indirect LDA indirect STA
|
2018-04-18 10:57:57 +01:00 |
|
Chris Pressey
|
70247e0e44
|
Generate zero-page code for and, or, and xor, when possible.
|
2018-04-17 17:58:26 +01:00 |
|
Chris Pressey
|
27df0d27db
|
Optimize away RTS and JMP when possible. Fallthru stuff done.
|
2018-04-05 14:10:04 +01:00 |
|
Chris Pressey
|
fa1b0cfae1
|
Support branching and looping on the n flag.
|
2018-03-29 14:45:28 +01:00 |
|
Chris Pressey
|
b9fb26320c
|
Add some failing tests for looping on the n flag.
|
2018-03-29 13:33:06 +01:00 |
|
Chris Pressey
|
ebe53f540c
|
Fix bug when zero page address was $00.
|
2018-03-29 11:46:56 +01:00 |
|
Chris Pressey
|
eadf1eb4ae
|
A byte or word table can be initialized with a list of constants.
|
2018-03-29 11:09:02 +01:00 |
|
Chris Pressey
|
2f513f7291
|
Initial support for initializing byte tables with list of bytes.
|
2018-03-29 10:45:18 +01:00 |
|
Chris Pressey
|
9b912de17c
|
Accessing zero-page with ld and st generates zero-page opcodes.
|
2018-03-29 10:31:42 +01:00 |
|
Chris Pressey
|
1f992f8dbd
|
Support of NOP opcode.
|
2018-03-28 14:52:16 +01:00 |
|
Chris Pressey
|
adb53f7a04
|
Almost compile for loops correctly.
|
2018-03-14 15:33:11 +00:00 |
|
Chris Pressey
|
72efecbb1a
|
Support different preludes for different archs (c64 and vic20 now.)
|
2018-03-06 17:00:39 +00:00 |
|
Chris Pressey
|
f6fa1ec7d2
|
Remove need for forward keyword in forward reference in copy .
|
2018-02-12 15:59:20 +00:00 |
|
Chris Pressey
|
08ec0e46a3
|
Remove the need for parens in vector (routine ...) table type.
|
2018-02-12 14:53:49 +00:00 |
|
Chris Pressey
|
7a024f3062
|
Compile static storage location access.
|
2018-02-09 16:13:09 +00:00 |
|
Chris Pressey
|
71cded0297
|
Move compiler towards being able to compile access to statics.
|
2018-02-09 14:13:39 +00:00 |
|
Chris Pressey
|
ca1c877a60
|
Support indirect refs in st, e.g. st a, [ptr] + y .
|
2018-02-09 11:23:18 +00:00 |
|
Chris Pressey
|
34daad0e56
|
Make ld parse to a IndexedRef or IndirectRef (latter still todo.)
|
2018-02-08 11:04:11 +00:00 |
|
Chris Pressey
|
7c8f113c07
|
Properly store address (not contents) of routine into vector table.
|
2018-02-07 13:56:17 +00:00 |
|
Chris Pressey
|
6c1c1cb153
|
Include final RTS when emitting trampolines for indirect calls.
|
2018-02-07 11:11:14 +00:00 |
|
Chris Pressey
|
b4f5d60ad3
|
I think it should actually look like this!
|
2018-02-06 17:00:04 +00:00 |
|
Chris Pressey
|
ed1ed3eb5d
|
Always analyze before compiling.
|
2018-02-06 16:14:44 +00:00 |
|
Chris Pressey
|
70ecd52e8a
|
Retain some syntax compatibility: make table a postfix operator.
|
2018-02-06 11:34:21 +00:00 |
|
Chris Pressey
|
0be721667a
|
Kind-of not-pretty syntax refactor to support adding typedefs.
|
2018-02-05 17:01:25 +00:00 |
|
Chris Pressey
|
bbd3a84c00
|
Retain silly 'name inside the type' syntax (a la C) for now.
|
2018-02-05 11:18:35 +00:00 |
|
Chris Pressey
|
a082aee001
|
NOt 100% sure it's correct, but it seems close.
|
2018-02-02 17:56:50 +00:00 |
|
Chris Pressey
|
b29716fccf
|
Constraints for vector come immediately after the type expression.
|
2018-02-02 17:16:31 +00:00 |
|
Chris Pressey
|
548905dce4
|
Initialized byte tables need not have all 256 bytes initialized.
|
2018-02-02 16:31:23 +00:00 |
|
Chris Pressey
|
f9dc730f88
|
copy []+y, a to indirectly read byte into the a register.
|
2017-12-13 16:11:02 +00:00 |
|