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
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
98e95b5707
replaced str2ubyte
2019-01-13 14:20:51 +01:00
Irmen de Jong
e3eace9e28
project folder restructure
2019-01-09 23:57:27 +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
Irmen de Jong
aeb963673a
sprites example
2018-12-31 01:52:18 +01:00
Irmen de Jong
500777bf78
added direct memory access ("poke"/"peek")
2018-12-31 01:10:42 +01:00
Irmen de Jong
904e317781
cleanups, fix scope of certain generated nodes in for loops
2018-12-25 01:05:38 +01:00
Irmen de Jong
d55bbcf706
removed string conversion builtin functions, they're now subroutines in c64util
2018-12-22 01:07:43 +01:00
Irmen de Jong
ee893e5a2c
multiplications
2018-12-20 23:28:03 +01:00
Irmen de Jong
5870006b2f
introduced type cast "... as ..." instead of builtin functions
2018-12-20 03:17:41 +01:00
Irmen de Jong
c1204b83bd
changed syntax of subroutine parameters (now the same as vardecls)
2018-12-19 02:51:22 +01:00