Commit Graph

235 Commits

Author SHA1 Message Date
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
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
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
d37c9d1680 argument type casts for builtin functions, added memset, tweaked memcopy/memset assembly a bit 2019-01-23 00:19:29 +01:00
Irmen de Jong
dd02d97db4 fixed and optimized branches and gotos in if statements 2019-01-22 22:52:43 +01:00
Irmen de Jong
5471c5211c make %asminclude work, restructure prog8lib into separate asm file 2019-01-21 00:49:48 +01:00
Irmen de Jong
75b38d7b84 added swap() slow version 2019-01-18 01:33:54 +01:00
Irmen de Jong
870c6ea747 stuff 2019-01-14 23:48:18 +01:00
Irmen de Jong
b2ecf16234 fixed some array length loop issues 2019-01-09 22:28:04 +01:00
Irmen de Jong
f1b2bd1cc4 got rid of separate '//' floordivision operator 2019-01-09 22:01:47 +01:00
Irmen de Jong
46c282d6d5 created mkword function 2019-01-09 01:03:33 +01:00
Irmen de Jong
58854ef45b doc fix 2019-01-08 02:25:22 +01:00
Irmen de Jong
0146a39ebb moved some more stuff around 2019-01-08 02:09:35 +01:00
Irmen de Jong
295f7a6c6e added unsigned versions of sin and cos (0..255, 0..65535) 2019-01-06 22:56:06 +01:00
Irmen de Jong
04bbdf5991 div and mult by a power of 2 are now optimized into shifts. Added bit shift operators << and >> 2019-01-06 08:20:22 +01:00
Irmen de Jong
d203bfaf25 normal division is always float, implemented (u)byte integer division 2019-01-06 01:43:47 +01:00
Irmen de Jong
9f4ac37a00 split off c64flt library for all floating point routines 2019-01-05 16:09:05 +01:00
Irmen de Jong
32d82e8e56 asmsubs can now specify params and return values to be on the stack.
implemented fast integer fixed-point sin and cosine functions.
2019-01-04 22:11:46 +01:00
Irmen de Jong
2f9eabeac7 c64 irq handling routines 2019-01-02 02:47:52 +01:00
Irmen de Jong
39a8b76534 force_output option added 2019-01-01 21:47:19 +01:00
Irmen de Jong
c2eb181b5a added memcopy function 2019-01-01 18:38:43 +01:00
Irmen de Jong
ac8e7f4fa9 made setting/restoring the IRQ vector explicit 2019-01-01 18:05:50 +01:00
Irmen de Jong
a319e6f9ec direct memory access and sprite fixes 2018-12-31 04:48:26 +01:00