Irmen de Jong
e6be428589
compiler warning for unreachable code following a call to exit()
2020-03-13 02:21:37 +01:00
Irmen de Jong
85c7f8314b
added exit(rc) builtin function to immediately exit the program with a return code in A register
2020-03-13 02:08:18 +01:00
Irmen de Jong
796d07a7f8
fix crash in asm code generated for bitshift operation with memory address operand
2020-03-13 01:26:53 +01:00
Irmen de Jong
2af86a10b2
remove stack error comments
2020-03-13 00:52:52 +01:00
Irmen de Jong
7fbe486dff
fix eval stack register X error in print_uw
2020-03-13 00:50:30 +01:00
Irmen de Jong
fbecedaf41
added error for unsupported sort(floatarray)
2020-03-11 23:33:06 +01:00
Irmen de Jong
8d1a4588d3
added 'downto' range expression
2020-03-11 20:59:14 +01:00
Irmen de Jong
66d2af4453
added '@' alternative string/char encoding
2020-03-11 00:41:58 +01:00
Irmen de Jong
ef6c731bb3
added '@' alternative string/char encoding
2020-03-11 00:32:50 +01:00
Irmen de Jong
98a638a2f3
split asmsub and romsub declarations
2020-03-10 23:09:31 +01:00
Irmen de Jong
e2cb031386
added 'void' keyword to explicitly ignore subroutine return values (and no longer get a warning)
2020-02-09 01:29:09 +01:00
Irmen de Jong
a0bc97b90c
fix byte array iteration for bb in [1,2,3]
...
improved array literal datatype detection
2020-02-09 00:45:53 +01:00
Irmen de Jong
885b22df40
fixed while and repeat warning messages line number
...
fixed invalid while and repeat asm label names
fixed boolean checking of numbers
2020-02-08 19:45:30 +01:00
Irmen de Jong
b8816a0e2f
got rid of separate str_s datatype
2020-02-07 20:47:38 +01:00
Irmen de Jong
772e48105e
fixed some type cast compiler errors in for loops
2019-08-26 23:38:59 +02:00
Irmen de Jong
89d469e77e
examples
2019-08-25 00:46:46 +02:00
Irmen de Jong
aa94300bdd
added output directory command line option
...
improved cli parser by using kotlinx.cli
2019-08-23 00:11:08 +02:00
Irmen de Jong
b79af624ae
added more asmgen for bitshift operations
2019-08-22 00:34:17 +02:00
Irmen de Jong
0f1485f30b
added sorted, sgn, reverse to the AstVm
2019-08-18 16:39:08 +02:00
Irmen de Jong
eb94c678bd
doc
2019-08-18 14:18:46 +02:00
Irmen de Jong
50d792a121
fix doc about for loops
2019-08-18 14:14:14 +02:00
Irmen de Jong
bb7b063757
revert inline var declaration in for loops
2019-08-18 03:16:23 +02:00
Irmen de Jong
1cc1f2d91d
reverse() added (byte+word)
2019-08-18 02:05:51 +02:00
Irmen de Jong
27f987f0ae
fixed bit shifts, added sgn() function
2019-08-17 16:44:28 +02:00
Irmen de Jong
3ae2597261
irq driven music player example
2019-08-17 13:13:15 +02:00
Irmen de Jong
68df1730f5
cleaned up some stuff, improved checking of asmsub statement body
2019-08-14 23:17:50 +02:00
Irmen de Jong
d62ab93b24
word >> 8 optimized to msb(word)
2019-08-14 22:28:44 +02:00
Irmen de Jong
b5c5560af8
info
2019-08-11 18:21:15 +02:00
Irmen de Jong
b44e76db57
fix any/all assembly routine, added asm for min/max/sum/ etc aggregates
...
removed avg function because of hidden internal overflow issues
2019-08-11 16:13:09 +02:00
Irmen de Jong
fe5b225732
asmsub stack arg
2019-08-11 12:29:18 +02:00
Irmen de Jong
d499e40a4b
doc tweaks
2019-08-11 10:56:36 +02:00
Irmen de Jong
7ddc01f883
added continuous compilation mode (file watching)
2019-08-05 23:36:24 +02:00
Irmen de Jong
2c3b8a9819
more ++ and -- code, 'dontuse' zeropage option
2019-08-04 22:35:27 +02:00
Irmen de Jong
a1cd202cd2
some more array asm
2019-08-04 15:33:00 +02:00
Irmen de Jong
b842493cf0
trying to fix arithmetic and funcion calls and var scoping issues
2019-08-03 13:21:38 +02:00
Irmen de Jong
4718f09cb7
trying to fix arithmetic and funcion calls
2019-08-03 01:51:12 +02:00
Irmen de Jong
fba149ee28
removed the ~ before block names
2019-07-29 23:11:13 +02:00
Irmen de Jong
411bedcc46
fixed assignment type error with structs
...
added structs example
2019-07-16 23:56:00 +02:00
Irmen de Jong
07d8caf884
string literal concatenation and repeating added again
2019-07-16 23:34:43 +02:00
Irmen de Jong
17be722e2b
arrays without init value are once again cleared with zeros
2019-07-15 23:05:04 +02:00
Irmen de Jong
78d7849197
fixes
2019-07-15 03:08:26 +02:00
Irmen de Jong
1f5420010d
prevent struct member vars from shuffling around, can take address of struct now
2019-07-13 01:16:34 +02:00
Irmen de Jong
a089c48378
finalize v 1.11
2019-07-12 20:31:18 +02:00
Irmen de Jong
3e5deda46c
struct finished
2019-07-12 20:07:41 +02:00
Irmen de Jong
7500c6efd0
struct fixes
2019-07-12 17:57:56 +02:00
Irmen de Jong
7c9b8f7d43
cleaned up some buildprocess scripts
2019-07-11 17:27:57 +02:00
Irmen de Jong
44fe2369d6
multitarget assignments removed
2019-07-10 10:11:37 +02:00
Irmen de Jong
a85743f241
docs about 'when' statement
2019-07-10 00:45:53 +02:00
Irmen de Jong
14cabde5cf
when statement extended with multiple choice values
2019-07-10 00:25:21 +02:00
Irmen de Jong
e8caf6d319
1.9
2019-07-09 08:42:38 +02:00
Irmen de Jong
5b9cc9592f
removed kotlin.reflection dependency
...
optimized gradle build now using shadowjar
2019-07-09 08:27:47 +02:00
Irmen de Jong
f4f113da7b
parser for 'when' statement
2019-07-09 00:02:38 +02:00
Irmen de Jong
dbe048158c
cleaned up the ast processing:
...
- visitor pattern names are now used for the interfaces and the methods
- separated a modifying and a read-only ast visitor
There is now also an AstPrinter that produces original source code back from an AST
2019-07-08 21:51:16 +02:00
Irmen de Jong
fd0abf61df
fix build script docs
2019-07-02 04:56:31 +02:00
Irmen de Jong
343978d164
for loop and cleaner iteration over values
2019-06-25 21:49:02 +02:00
Irmen de Jong
c559682c0b
refresh IDE project files
2019-05-30 16:03:53 +02:00
Irmen de Jong
ef6e364339
intellij idea config
2019-04-20 01:18:47 +02:00
Irmen de Jong
3b37e0f99d
new build scripts
2019-04-20 00:50:15 +02:00
Irmen de Jong
78fbbf7119
%asmbinary implemented
2019-04-17 01:33:07 +02:00
Irmen de Jong
0ee43294c4
check for file with %asmbinary, %asminclude
2019-04-17 00:55:42 +02:00
Irmen de Jong
390043e9e8
some fixes in syntaxchecking array initializer values
2019-04-16 01:50:12 +02:00
Irmen de Jong
e384822b2c
array size in vardecl is optional when initializer array value is given
2019-04-16 01:19:51 +02:00
Irmen de Jong
f219ae43f7
more inspiring code example
2019-04-12 22:34:43 +02:00
Irmen de Jong
a9bbe0bc40
removed the memory keyword instead use & now (reuse the address-of operator to reduce the number of different concepts in the grammar)
2019-04-12 22:00:32 +02:00
Irmen de Jong
35aa954be8
doc
2019-04-12 01:06:46 +02:00
Irmen de Jong
9f302cc640
docs about '&' operator
2019-04-11 21:41:46 +02:00
Irmen de Jong
905d8a0c06
actually, get rid of integer pow() because a naive multiplication loop approach is way too slow
2019-03-31 18:04:19 +02:00
Irmen de Jong
83ace753b2
got rid of problematic signed POW operator, added compiler checks for this
2019-03-31 13:56:03 +02:00
Irmen de Jong
ec2e7db23e
doc fix
2019-03-30 00:40:09 +01:00
Irmen de Jong
f6bc69139d
added some example images to the index page of the docs
2019-03-19 21:39:01 +01:00
Irmen de Jong
747c9604dd
improve ast check for multiple returnvalues assignment
2019-03-18 04:01:25 +01:00
Irmen de Jong
0820716e7b
added sqrt16() integer square root
2019-03-16 19:25:47 +01:00
Irmen de Jong
d9d83248fe
implemented strlen() function
2019-03-15 23:10:26 +01:00
Irmen de Jong
747ee32e81
updated tehtriz screenshot
2019-03-10 20:22:33 +01:00
Irmen de Jong
f5ba072294
removed str_p and str_ps pascal string types, fixes #10
2019-03-10 18:11:26 +01:00
Irmen de Jong
87d6312a37
tetriz screen
2019-03-10 05:38:14 +01:00
Irmen de Jong
aa98104d54
doc
2019-03-07 02:46:24 +01:00
Irmen de Jong
06f0984fa1
docs about irq handlers
2019-03-07 01:02:11 +01:00
Irmen de Jong
77dc35dc6a
added read_flags() function, uword2bcd routine no longer enables irq again if it wasn't enabled before calling it.
2019-03-05 23:10:00 +01:00
Irmen de Jong
5ea2f2d4db
docs about @zp tag
2019-02-28 00:13:59 +01:00
Irmen de Jong
2f1249489b
datatype cleanups
2019-02-25 01:22:56 +01:00
Irmen de Jong
3b32fb74f7
suggest non-Oracle jdk
2019-02-03 22:23:17 +01:00
Irmen de Jong
7ff1af3934
avoid zp corruption issues and added zp mode for floating point (todo: allocate)
2019-02-03 00:26:07 +01:00
Irmen de Jong
ae21e03e1d
attempt at optimization to register parameter passing
2019-02-01 22:51:30 +01:00
Irmen de Jong
f83b9732ee
User defined blocks are sorted first, before library blocks. This prioritizes zero page allocation to user code (and makes reading the program easier)
2019-02-01 01:22:27 +01:00
Irmen de Jong
73b0cc4056
docs
2019-01-31 23:46:58 +01:00
Irmen de Jong
53045b9e36
idea
2019-01-29 23:48:26 +01:00
Irmen de Jong
d35d28ac5a
docs about gradle and building the compiler, fix shell build script
2019-01-29 23:32:43 +01:00
Irmen de Jong
7459896155
finalized zeropage variable allocation
2019-01-27 22:59:40 +01:00
Irmen de Jong
798c4d7902
fix some optimizations of loops, added some conditional branch optimizations
2019-01-27 19:14:58 +01:00
Irmen de Jong
204cc03fc8
doc
2019-01-26 23:28:28 +01:00
Irmen de Jong
6f583e7092
readme
2019-01-26 19:13:42 +01:00
Irmen de Jong
c1f196f2aa
readme
2019-01-26 18:56:53 +01:00
Irmen de Jong
2663781fde
readme
2019-01-26 18:44:30 +01:00
Irmen de Jong
fa8a3c997a
Expressions can now be split over multiple lines. Fixed datatype of len().
2019-01-26 17:32:26 +01:00
Irmen de Jong
1ff68b06da
fix compiler crash, rasterbars alignment, docs.
2019-01-25 01:35:46 +01:00
Irmen de Jong
163c6bc628
improved docs on how to run the compiler
2019-01-24 23:31:16 +01:00
Irmen de Jong
f1a7fa1870
doc
2019-01-24 02:43:25 +01:00
Irmen de Jong
39a5e341af
sort assignments to enable same-value optimization
2019-01-23 21:50:43 +01:00
Irmen de Jong
d37c9d1680
argument type casts for builtin functions, added memset, tweaked memcopy/memset assembly a bit
2019-01-23 00:19:29 +01:00