Irmen de Jong
|
4e74873eae
|
better swap() code
|
2020-09-19 17:32:29 +02:00 |
|
Irmen de Jong
|
f0cd03d14f
|
removed invalid duplicate name check about subroutine parameters
|
2020-09-19 16:04:04 +02:00 |
|
Irmen de Jong
|
f2b069c562
|
correction, we don't allow address-of as a value for memory mapped vars, improved the error message instead
|
2020-09-19 15:54:42 +02:00 |
|
Irmen de Jong
|
bc89306dc1
|
better detection of duplicate variable definitions
|
2020-09-19 15:46:51 +02:00 |
|
Irmen de Jong
|
5d900800f2
|
vardecl value inits must not be shuffled around but stay at their original line at all times
|
2020-09-18 22:24:26 +02:00 |
|
Irmen de Jong
|
def06dbc0b
|
allow address-of to be used as a value for a memory pointer variable
|
2020-09-18 22:10:20 +02:00 |
|
Irmen de Jong
|
9b66a597bb
|
array literal const check added
|
2020-09-18 21:30:59 +02:00 |
|
Irmen de Jong
|
f1ee3b4e60
|
version 4.2
|
2020-09-16 23:04:18 +02:00 |
|
Irmen de Jong
|
6395e39d63
|
avoid generating superfluous '0' variable initializations, and fix erroneous vardecl order shifting
|
2020-09-16 22:15:06 +02:00 |
|
Irmen de Jong
|
2a6d9d7e31
|
more optimal codegen for some typecasts
|
2020-09-15 03:26:57 +02:00 |
|
Irmen de Jong
|
32a7cd31da
|
more optimal codegen for if statements
|
2020-09-15 00:31:44 +02:00 |
|
Irmen de Jong
|
dd4a56cb5f
|
cx16 safe clobbers for now
|
2020-09-15 00:14:36 +02:00 |
|
Irmen de Jong
|
d110d1cb5f
|
c64 system reset now banks kernel rom back in
|
2020-09-15 00:10:20 +02:00 |
|
Irmen de Jong
|
48858019b7
|
added the last of the optimized mul_word asm routines
|
2020-09-14 23:54:01 +02:00 |
|
Irmen de Jong
|
aff6b1fca5
|
added some more optimized mul_word asm routines
|
2020-09-14 23:03:18 +02:00 |
|
Irmen de Jong
|
d260182ef3
|
added some more optimized mul_byte asm routines
|
2020-09-14 22:06:40 +02:00 |
|
Irmen de Jong
|
e39a38b0d9
|
things
|
2020-09-13 21:04:51 +02:00 |
|
Irmen de Jong
|
82d7179c92
|
printf now uses proper zp addressing
|
2020-09-13 21:01:19 +02:00 |
|
Irmen de Jong
|
f42746ba06
|
reg_x removal: c64textio and c64lib. last one.
|
2020-09-13 20:52:29 +02:00 |
|
Irmen de Jong
|
1f69deaccd
|
reg_x removal: c64floats
|
2020-09-13 20:44:55 +02:00 |
|
Irmen de Jong
|
ea8b7ab193
|
reg_x removal: math.asm and some others
|
2020-09-13 20:38:50 +02:00 |
|
Irmen de Jong
|
9938959026
|
reg_x removal: prog8lib
|
2020-09-13 20:25:30 +02:00 |
|
Irmen de Jong
|
d5e5485d2e
|
fixed estack X corruption in float augmented assignments
|
2020-09-13 19:44:03 +02:00 |
|
Irmen de Jong
|
97b9c8f320
|
don't clobber A when trying to save X at functioncall
|
2020-09-12 19:04:44 +02:00 |
|
Irmen de Jong
|
35aebbc209
|
optimize unneeded type casts for register args
|
2020-09-12 02:48:16 +02:00 |
|
Irmen de Jong
|
81f7419f70
|
fix X register clobbering in asmfunc call, fixed graphics.plot()
|
2020-09-12 01:23:56 +02:00 |
|
Irmen de Jong
|
2f951bd54d
|
tweaking cobra mk3
|
2020-09-11 19:46:11 +02:00 |
|
Irmen de Jong
|
836509c1d1
|
mult todos.
|
2020-09-10 00:53:35 +02:00 |
|
Irmen de Jong
|
949d536e42
|
mult todo's. Fixed wrong compilation target when compiling multiple files at once.
|
2020-09-10 00:26:35 +02:00 |
|
Irmen de Jong
|
f69b17e165
|
mult todo's
|
2020-09-10 00:07:06 +02:00 |
|
Irmen de Jong
|
49a0584c54
|
added a %target directive
|
2020-09-09 22:53:34 +02:00 |
|
Irmen de Jong
|
e21aa2c8f0
|
better naming of the optimized math mult routines
|
2020-09-09 22:16:37 +02:00 |
|
Irmen de Jong
|
40071b1431
|
fix compiler crash with adding too many typecasts to args. useless lsb() and msb() are optimized away.
|
2020-09-09 21:37:56 +02:00 |
|
Irmen de Jong
|
02e29e6990
|
added some preliminary clobber specs to some cx16 graphics calls, This fixes the 3d cube gfx
|
2020-09-07 04:06:46 +02:00 |
|
Irmen de Jong
|
e19de0901e
|
Fix cx16 system reset. Added cx16 VIA registers. Fix cx16 VERA register widths.
|
2020-09-07 03:09:09 +02:00 |
|
Irmen de Jong
|
137d506e42
|
improve register arg passing again
|
2020-09-07 02:29:03 +02:00 |
|
Irmen de Jong
|
90c4a26d52
|
we don't implement asmsub params via @stack yet
|
2020-09-07 01:24:10 +02:00 |
|
Irmen de Jong
|
f378a8997b
|
improved ability to use register X in asm subroutine fuction arguments
|
2020-09-07 00:25:51 +02:00 |
|
Irmen de Jong
|
1377bed988
|
fix assembly for cx16 when zp is not basicsafe
|
2020-09-06 17:58:05 +02:00 |
|
Irmen de Jong
|
8f9f947c42
|
fix some issues with float const 0.0 and 1.0
|
2020-09-05 02:07:41 +02:00 |
|
Irmen de Jong
|
37f6c2858f
|
warning about attempt to put floats in zp
|
2020-09-05 01:45:58 +02:00 |
|
Irmen de Jong
|
13d7f239ab
|
floating point 1.0 no longer referenced from ROM because cx16 doesn't have it. Added some more cx16 examples.
|
2020-09-05 00:17:58 +02:00 |
|
Irmen de Jong
|
a6f3c84e28
|
fix cx16 word sign extend in bitshift
|
2020-09-04 22:38:03 +02:00 |
|
Irmen de Jong
|
809917f13b
|
version 4.1
|
2020-08-31 21:44:38 +02:00 |
|
Irmen de Jong
|
2b35498370
|
added CX16 txt.setcc and swirl examples that use it
|
2020-08-31 21:01:18 +02:00 |
|
Irmen de Jong
|
f45eabdd9e
|
added CX16 VERA registers, made txt.fill_screen work on CX16
|
2020-08-31 18:23:52 +02:00 |
|
Irmen de Jong
|
438f3ee8d2
|
make GIVUAYFAY work (unsigned word to float)
|
2020-08-31 17:16:51 +02:00 |
|
Irmen de Jong
|
4bea31f051
|
fl_zero fix
|
2020-08-31 01:04:04 +02:00 |
|
Irmen de Jong
|
5eae7a2b93
|
tweak mandelbrots and c64 graphics plot() doesnt work with XY parameter
|
2020-08-31 00:36:40 +02:00 |
|
Irmen de Jong
|
364ef3e55c
|
tweak cx16 mandelbrots
|
2020-08-31 00:03:05 +02:00 |
|
Irmen de Jong
|
e61818f194
|
tweak cx16 mandelbrots
|
2020-08-30 19:31:20 +02:00 |
|
Irmen de Jong
|
5d90871789
|
got floating points working in commanderx16, added txt.color() to set text color
|
2020-08-30 00:15:18 +02:00 |
|
Irmen de Jong
|
88a9e09918
|
got floating points working in commanderx16
|
2020-08-29 23:55:26 +02:00 |
|
Irmen de Jong
|
c50ecf6055
|
fix for loop asm creation with word loopvar
|
2020-08-29 02:05:24 +02:00 |
|
Irmen de Jong
|
a18de75da9
|
fix compiler loop and missing type checks on for loop range values
|
2020-08-29 01:48:41 +02:00 |
|
Irmen de Jong
|
e112dfd910
|
implemented signed byte and word division
|
2020-08-29 00:00:53 +02:00 |
|
Irmen de Jong
|
9154d8bd37
|
optimizing X register saving for 65c02 using phx/plx instead of zp location
|
2020-08-28 22:11:33 +02:00 |
|
Irmen de Jong
|
0b55372b3b
|
cleanup cx16 things and added call signatures. c64graphics moved into built-in libraries.
|
2020-08-28 21:42:53 +02:00 |
|
Irmen de Jong
|
3ad7fb010f
|
clearer about emulator
|
2020-08-27 21:09:59 +02:00 |
|
Irmen de Jong
|
a6f564ad88
|
version 4.0
|
2020-08-27 20:54:08 +02:00 |
|
Irmen de Jong
|
d97da3bb7b
|
implemented almost all math operations
|
2020-08-27 20:47:22 +02:00 |
|
Irmen de Jong
|
a77d3c92ad
|
implemented remaining float operations
|
2020-08-27 19:47:50 +02:00 |
|
Irmen de Jong
|
6d17e5307c
|
fixed typecasting of const arguments once again
|
2020-08-27 19:06:27 +02:00 |
|
Irmen de Jong
|
4ffb194847
|
readme and version
|
2020-08-27 18:18:29 +02:00 |
|
Irmen de Jong
|
f08fc18ab5
|
renamed c64scr. to txt.
|
2020-08-27 18:10:22 +02:00 |
|
Irmen de Jong
|
9cec554f7c
|
moved the type conversion routines to their own library file to avoid duplication
|
2020-08-26 20:52:38 +02:00 |
|
Irmen de Jong
|
08b25e610d
|
commander x16 improvements
|
2020-08-26 19:34:12 +02:00 |
|
Irmen de Jong
|
e896d5a1a6
|
ver
|
2020-08-26 02:03:18 +02:00 |
|
Irmen de Jong
|
b939562062
|
added preliminary CommanderX16 machine target support. Fixed nullpointer when importing a missing file.
|
2020-08-26 01:56:26 +02:00 |
|
Irmen de Jong
|
256781bba5
|
added missing in-place bitwise operator code
|
2020-08-25 22:26:05 +02:00 |
|
Irmen de Jong
|
19705196d6
|
separate varnames and other symbol names
|
2020-08-25 22:08:52 +02:00 |
|
Irmen de Jong
|
3ce692bb10
|
even better machinetarget independence
|
2020-08-25 19:56:53 +02:00 |
|
Irmen de Jong
|
78bdbde3ae
|
refer to ZP scratch constants from asm code via the global P8ZP constants as well
|
2020-08-25 19:44:08 +02:00 |
|
Irmen de Jong
|
8d8c066447
|
made the ZP and compilation target more generic
|
2020-08-25 19:32:31 +02:00 |
|
Irmen de Jong
|
5da9379c37
|
making zeropage more configurable for future different machine targets
|
2020-08-25 18:10:06 +02:00 |
|
Irmen de Jong
|
032d20ff37
|
added the missing stack assignments
|
2020-08-25 17:43:35 +02:00 |
|
Irmen de Jong
|
d19b17cbfe
|
optimize strlen()
|
2020-08-25 17:31:47 +02:00 |
|
Irmen de Jong
|
4a4f8ff5db
|
subroutine parameters can be allocated on the zp now as well
|
2020-08-25 16:47:21 +02:00 |
|
Irmen de Jong
|
0f9e167df3
|
proper name
|
2020-08-25 00:59:02 +02:00 |
|
Irmen de Jong
|
144199730f
|
refactored and optimized load/store byte from pointervar
|
2020-08-25 00:18:33 +02:00 |
|
Irmen de Jong
|
4bb4eab3b2
|
cleanup
|
2020-08-24 23:18:46 +02:00 |
|
Irmen de Jong
|
cf9151f669
|
use AsmAssignment preferrably over creating new ast node for codegen
|
2020-08-24 22:45:43 +02:00 |
|
Irmen de Jong
|
aef4598cec
|
comments
|
2020-08-24 02:56:22 +02:00 |
|
Irmen de Jong
|
3ada0fdf84
|
function call register args code consolidation, fix asm for loading word value from variable into register
|
2020-08-24 01:42:44 +02:00 |
|
Irmen de Jong
|
a5d97b326e
|
bugfix byte array assignment
|
2020-08-24 00:48:19 +02:00 |
|
Irmen de Jong
|
2640015fb1
|
move
|
2020-08-24 00:26:26 +02:00 |
|
Irmen de Jong
|
6cd42ddafe
|
cleanup
|
2020-08-23 23:28:25 +02:00 |
|
Irmen de Jong
|
1f17c22132
|
more array access optimizations
|
2020-08-23 22:36:49 +02:00 |
|
Irmen de Jong
|
5c62f612cc
|
cleanup
|
2020-08-23 20:34:27 +02:00 |
|
Irmen de Jong
|
b9ca1c2e2c
|
more uniform code for array indexing (all using scaled offset now)
|
2020-08-23 20:25:00 +02:00 |
|
Irmen de Jong
|
93b2ff2e52
|
fix postincrdecr on array value
|
2020-08-23 18:52:19 +02:00 |
|
Irmen de Jong
|
3991d23a69
|
refactoring
|
2020-08-23 18:20:57 +02:00 |
|
Irmen de Jong
|
1be139759c
|
better names
|
2020-08-23 16:08:31 +02:00 |
|
Irmen de Jong
|
d0674ad688
|
better names, reorder
|
2020-08-23 14:36:24 +02:00 |
|
Irmen de Jong
|
ffb47458ff
|
better names
|
2020-08-23 13:56:21 +02:00 |
|
Irmen de Jong
|
84ec1be8a4
|
assign type relax
|
2020-08-23 13:31:14 +02:00 |
|
Irmen de Jong
|
f4dafec645
|
assign type assert
|
2020-08-23 12:52:27 +02:00 |
|
Irmen de Jong
|
97ce72521d
|
for arrays, use the element's datatype more instead of the array decl type
|
2020-08-23 12:03:52 +02:00 |
|
Irmen de Jong
|
d2f0e74879
|
use sourcetype
|
2020-08-23 11:31:33 +02:00 |
|
Irmen de Jong
|
d9e3895c45
|
start with yet another codegen restructure, this time to make the assignment of values even more explicit for the codegen
|
2020-08-23 02:05:01 +02:00 |
|
Irmen de Jong
|
5075901830
|
work
|
2020-08-22 23:39:27 +02:00 |
|
Irmen de Jong
|
f1193bb5a0
|
Better error message
|
2020-08-22 23:13:53 +02:00 |
|
Irmen de Jong
|
acc942f690
|
added some more asm code optimizations by splitting certain assignments
|
2020-08-22 22:53:21 +02:00 |
|
Irmen de Jong
|
e947067dcf
|
fixed source code output issue
|
2020-08-22 22:23:00 +02:00 |
|
Irmen de Jong
|
bd9ebf4603
|
flipped the order of the parameters of mkword() so it's now mkword(msb, lsb) for easier readability
|
2020-08-22 21:13:38 +02:00 |
|
Irmen de Jong
|
ff54d6abd7
|
reorder const for all associative operators
|
2020-08-22 17:44:32 +02:00 |
|
Irmen de Jong
|
f40bcc219f
|
better errormsg
|
2020-08-22 17:29:35 +02:00 |
|
Irmen de Jong
|
c6e13ae2a3
|
better error message
|
2020-08-22 17:12:09 +02:00 |
|
Irmen de Jong
|
89f46222d9
|
fix compiler crash when calling a non-subroutine
|
2020-08-22 17:01:47 +02:00 |
|
Irmen de Jong
|
b27cbfac5e
|
removed lsl() and lsr() functions just use <<=1 and >>=1
|
2020-08-22 16:44:48 +02:00 |
|
Irmen de Jong
|
31c946aeeb
|
bugfix
|
2020-08-22 16:39:17 +02:00 |
|
Irmen de Jong
|
bfc8a26381
|
implemented bit shifting for non-const amounts
|
2020-08-22 16:13:52 +02:00 |
|
Irmen de Jong
|
9d98746501
|
version 3.2
|
2020-08-21 18:02:49 +02:00 |
|
Irmen de Jong
|
70bab76b36
|
added plasma example
|
2020-08-21 17:58:43 +02:00 |
|
Irmen de Jong
|
9ec62eb045
|
fixed lsb(), fixed const value type mismatch, fixed and() const evaluation.
|
2020-08-21 16:26:40 +02:00 |
|
Irmen de Jong
|
12f841e30d
|
just prints
|
2020-08-21 09:25:32 +02:00 |
|
Irmen de Jong
|
335599ed22
|
restored certain memoryread asm gen
|
2020-08-21 07:44:50 +02:00 |
|
Irmen de Jong
|
0b717f9e76
|
clear messages about slow expression code generation points
|
2020-08-21 05:45:39 +02:00 |
|
Irmen de Jong
|
e941f6ecca
|
fix asm bug
|
2020-08-21 04:23:08 +02:00 |
|
Irmen de Jong
|
ef7744dbda
|
asm fix
|
2020-08-21 04:02:10 +02:00 |
|
Irmen de Jong
|
c83a61c460
|
some float asm code added for in-place
|
2020-08-21 03:06:37 +02:00 |
|
Irmen de Jong
|
335684caf7
|
don't remove asmsub definitions...
|
2020-08-21 03:01:07 +02:00 |
|
Irmen de Jong
|
8d6220ce51
|
added most essential of the new in-place assignment code
|
2020-08-21 02:17:40 +02:00 |
|
Irmen de Jong
|
39ea5c5f99
|
fix parse error for <<= and >>=
|
2020-08-20 23:24:01 +02:00 |
|
Irmen de Jong
|
b03597ac13
|
fixed bug in operand equality comparison, could lead to compiler endless loop
|
2020-08-20 22:21:26 +02:00 |
|
Irmen de Jong
|
58f323c087
|
implemented missing memory postincrdecr codegen
|
2020-08-20 21:48:15 +02:00 |
|
Irmen de Jong
|
513a68584c
|
implemented more optimized prefix expression codegen
|
2020-08-20 21:42:38 +02:00 |
|
Irmen de Jong
|
88d5c68b32
|
don't inc/dec a memory mapped register
|
2020-08-20 21:16:48 +02:00 |
|
Irmen de Jong
|
14f9382cf9
|
typecheck prefix expressions better
|
2020-08-20 20:46:28 +02:00 |
|
Irmen de Jong
|
cffb582568
|
added start of optimized in-place assignment code (for prefix expressions)
|
2020-08-20 18:43:10 +02:00 |
|
Irmen de Jong
|
e1812ce16c
|
fix typecast removal error.
|
2020-08-20 18:07:48 +02:00 |
|
Irmen de Jong
|
7a3163f59a
|
bugfix in direct memory assignment
|
2020-08-20 17:02:22 +02:00 |
|
Irmen de Jong
|
6f3b2749b0
|
refactoring assignments codegen
|
2020-08-20 16:47:43 +02:00 |
|
Irmen de Jong
|
c144d4e501
|
improved warnings about unreachable code
|
2020-08-20 14:28:17 +02:00 |
|
Irmen de Jong
|
edfd9d55ba
|
added sizeof() function
|
2020-08-20 13:50:28 +02:00 |
|
Irmen de Jong
|
774897260e
|
avoid silent type casts that remove precision (such as float -> word)
|
2020-08-20 12:49:48 +02:00 |
|
Irmen de Jong
|
65ba91411d
|
improved function arg type checking and error message
|
2020-08-20 12:38:22 +02:00 |
|
Irmen de Jong
|
9cbb8e1a64
|
version 3.1
|
2020-08-18 16:26:23 +02:00 |
|
Irmen de Jong
|
53e9ad5088
|
better asm code for repeat loops
|
2020-08-18 16:02:40 +02:00 |
|
Irmen de Jong
|
cf6ea63fa6
|
forloop asm done
|
2020-08-18 15:29:39 +02:00 |
|
Irmen de Jong
|
1de0ebb7bc
|
more forloop asm
|
2020-08-18 15:16:56 +02:00 |
|
Irmen de Jong
|
77c1376d6d
|
proper error message for arrays that are declared too big
|
2020-08-18 14:47:52 +02:00 |
|
Irmen de Jong
|
353f1954a5
|
for loop codegen
|
2020-08-18 14:03:31 +02:00 |
|
Irmen de Jong
|
936bf9a05c
|
gradle version
|
2020-08-18 00:47:23 +02:00 |
|
Irmen de Jong
|
4487499663
|
more forloop codegen
|
2020-08-17 23:42:43 +02:00 |
|
Irmen de Jong
|
3976cc26a2
|
more forloop codegen
|
2020-08-17 23:19:23 +02:00 |
|
Irmen de Jong
|
e6ff87ecd0
|
upgraded to Kotlin 1.4, fixed several compilation warnings
|
2020-08-17 19:36:07 +02:00 |
|
Irmen de Jong
|
c0887b5f08
|
removed 'continue' statement to be able to generate more optimized loop assembly code. started with for loop optimizations
|
2020-08-17 19:22:29 +02:00 |
|
Irmen de Jong
|
f14dda4eca
|
fix certain corruption of A register argument on asm sub call
|
2020-08-16 19:15:44 +02:00 |
|
Irmen de Jong
|
bd7f75c130
|
loop todos
|
2020-07-30 02:54:37 +02:00 |
|