Irmen de Jong
|
ed09dd4e9e
|
improve automatic type conversions for return values, fixes #155
|
2024-10-09 20:04:05 +02:00 |
|
Irmen de Jong
|
5731b79554
|
don't allow problematic string and array assignments anymore, improve error messages.
In certain cases you will need to use string.copy() explicitly to overwrite strings with new strings.
|
2024-10-09 00:51:05 +02:00 |
|
Irmen de Jong
|
eaa22a9d13
|
added callfar2() builtin function that allows to set A,X,Y and Carry arguments.
|
2024-10-08 21:36:04 +02:00 |
|
Irmen de Jong
|
b2bdfe8482
|
fix ir rndseed()
|
2024-10-08 20:40:00 +02:00 |
|
Irmen de Jong
|
ae669af904
|
add sys.sizeof_byte, _word, _float constants
because Antlr doesn't allow the grammar to contain a sizeof(typename) rule to override the sizeof(identifier) rule
|
2024-10-07 19:17:37 +02:00 |
|
Irmen de Jong
|
51279a98b3
|
attempt to fix forloop range datatype issues
|
2024-10-03 21:12:31 +02:00 |
|
Irmen de Jong
|
bf33a4f82d
|
small refactor to prepare for better range dt adjustment
|
2024-10-02 23:28:33 +02:00 |
|
Irmen de Jong
|
fff0d741c3
|
improved parsing of "not in" operator, and [] array signature (allow space)
|
2024-10-02 19:06:20 +02:00 |
|
Irmen de Jong
|
e83d0ee820
|
fix crash in msb() when assigning to word again. Fix wrong register in lsb() and msb() in certain situations.
|
2024-10-02 02:40:16 +02:00 |
|
Irmen de Jong
|
09f3eecf56
|
changed cx16/rotating-stars example to starszoom instead.
|
2024-10-02 01:36:54 +02:00 |
|
Irmen de Jong
|
2bd4326ff6
|
added cx16/rotating-stars example
|
2024-10-01 23:43:50 +02:00 |
|
Irmen de Jong
|
c13168b60c
|
various improvements:
fix verafx.available().
added gfx_lores.plot().
faster gfx_lores.clear_screen().
added a new Sublime Text 4 syntax highlighting file.
|
2024-10-01 22:18:03 +02:00 |
|
Irmen de Jong
|
ea3871d0c4
|
comment about builtin function call ast node type
|
2024-10-01 02:14:31 +02:00 |
|
Irmen de Jong
|
413b86cc4a
|
more helpful error messages
|
2024-09-30 00:27:29 +02:00 |
|
Irmen de Jong
|
a6107fcfdf
|
taking the address of a romsub is now the constant value of said romsub's declared address
|
2024-09-29 23:53:39 +02:00 |
|
Irmen de Jong
|
a064ade1e0
|
better codegen for call() function
|
2024-09-29 23:18:51 +02:00 |
|
Irmen de Jong
|
df35aa7942
|
added (experimental) compression library
|
2024-09-29 18:59:53 +02:00 |
|
Irmen de Jong
|
cd49c5f88d
|
cx16: set rom bank to 0 at startup (for faster kernal API calls)
cx16: callfar() with constant address generates shorter asm
|
2024-09-28 20:58:29 +02:00 |
|
Irmen de Jong
|
1541ad2160
|
fix variable init order mistake in program startup
reset multiply bit at end of verafx.muls
|
2024-09-28 19:17:45 +02:00 |
|
Irmen de Jong
|
9c7a645e18
|
remove non-functional verafx.mult(). note: muls() is still there and just fine!
added documentation/source code comments to the cpu word*word multiplication routine not producing the correct upper 16 bits.
|
2024-09-28 00:43:05 +02:00 |
|
Irmen de Jong
|
4cd7271e30
|
added prog8 vs other languages chapter to the manual
|
2024-09-27 20:19:28 +02:00 |
|
Irmen de Jong
|
3f630ab1b0
|
RAW output now also properly initializes variables
|
2024-09-27 18:46:03 +02:00 |
|
Irmen de Jong
|
04cb684fd4
|
tweak program start initialization and fix cleanup at exit for atari and pet compiler targets
|
2024-09-27 02:14:54 +02:00 |
|
Irmen de Jong
|
4c843571ea
|
fix syntax error check for missing return statement
|
2024-09-26 01:52:33 +02:00 |
|
Irmen de Jong
|
4bcb2bdede
|
added benchmark program
|
2024-09-25 23:32:45 +02:00 |
|
Irmen de Jong
|
1d1d6b3d98
|
tweak c64 balloonflight example etc.
|
2024-09-22 13:20:12 +02:00 |
|
Irmen de Jong
|
ea2a90c3c5
|
nah
|
2024-09-19 23:09:59 +02:00 |
|
Irmen de Jong
|
4c50980d81
|
new skeletons dump
|
2024-09-18 18:45:43 +02:00 |
|
Irmen de Jong
|
2954f5f04d
|
Add clear_screen and set_screen_mode to gfx_lores. Fix boolean draw vs color param in some monogfx routines. Elaborate some docs.
|
2024-09-17 22:19:47 +02:00 |
|
Irmen de Jong
|
cac4c1eb1e
|
improve callgraph unused subroutine check for routines called from inline asm
|
2024-09-16 21:49:30 +02:00 |
|
Irmen de Jong
|
c7b1e8d772
|
fixed a variable scopedname issue where it took the fully scoped name instead of just the local name
this made 64tass not strip out that code if it was unused
|
2024-09-14 23:17:26 +02:00 |
|
Irmen de Jong
|
a4f7512d44
|
oops, was fixed
|
2024-09-14 22:33:20 +02:00 |
|
Irmen de Jong
|
0d3ad80659
|
retain type of consts better to avoid precision loss
this also fixed a difference in const calculation where the result could differ if you were using optimzations or not.
|
2024-09-14 21:06:21 +02:00 |
|
Irmen de Jong
|
aba1a73e28
|
actually use any @zp etc tags on subroutine parameters
|
2024-09-14 17:42:13 +02:00 |
|
Irmen de Jong
|
dca31b2ca3
|
added gfx_lores module for cx16 for optimized graphics routines for lores 256c screen mode
currently contains a new line() routine
|
2024-09-14 15:30:39 +02:00 |
|
Irmen de Jong
|
ac0c8a68f6
|
IR: Improve codegen for for loops downto 0/1
|
2024-09-12 23:00:32 +02:00 |
|
Irmen de Jong
|
5986dcdd2f
|
add new containment check codegen for IR
|
2024-09-12 22:04:20 +02:00 |
|
Irmen de Jong
|
6be6eb2227
|
tweak diskio to not always include unused subroutine internal_f_tell() in resulting program
|
2024-09-11 19:51:53 +02:00 |
|
Irmen de Jong
|
d34015eec5
|
fix gfx2.fill() vera CTRL corruption
|
2024-09-11 19:10:45 +02:00 |
|
Irmen de Jong
|
255c5bfaca
|
improve containment check for few values
|
2024-09-11 03:24:30 +02:00 |
|
Irmen de Jong
|
01c6754928
|
get rid of problematic common-subexpression optimization
|
2024-09-11 01:10:42 +02:00 |
|
Irmen de Jong
|
8eaf884f69
|
improve codegen for for loops downto 0,1 when start value is not const
|
2024-09-10 23:54:44 +02:00 |
|
Irmen de Jong
|
699a2bb7ab
|
improved codegen for for loops downto 0
|
2024-09-10 21:33:57 +02:00 |
|
Irmen de Jong
|
7aec627f6b
|
add optimization if x==0 or x==1 -> if x<2
|
2024-09-08 22:39:48 +02:00 |
|
Irmen de Jong
|
59a2fec176
|
fix IR containment check
|
2024-09-08 21:49:13 +02:00 |
|
Irmen de Jong
|
edc5a5a94f
|
improve data driven unit tests to use kotest withData()
|
2024-09-08 16:55:08 +02:00 |
|
Irmen de Jong
|
c5b7edad82
|
added memsizer unit tests
|
2024-09-08 15:24:47 +02:00 |
|
Irmen de Jong
|
28b43b3e1d
|
added cx16.EXTAPI_kbd_leds definition (new in kernal R48)
|
2024-09-06 20:47:49 +02:00 |
|
Irmen de Jong
|
f7feaf158d
|
added cx16.mouse_present() routine to check for presence of mouse
|
2024-09-06 18:21:13 +02:00 |
|
Irmen de Jong
|
2396f707c6
|
fix bug in codegen for certain array lookups using word typed index value (i.e. via a pointer variable)
|
2024-09-06 18:11:41 +02:00 |
|
Irmen de Jong
|
d4d8e1b1ba
|
comment about implementation in life example
|
2024-09-06 16:39:44 +02:00 |
|
Irmen de Jong
|
0eac04c220
|
added cx16/life.p8 example (Conway's game of life)
|
2024-09-06 15:21:29 +02:00 |
|
Irmen de Jong
|
29dd758302
|
Fix compiler crash in for loops with just 1 iteration
|
2024-09-05 21:26:46 +02:00 |
|
Irmen de Jong
|
5c45adc7f0
|
graphics module on x16 now uses kernal (R48 or newer) support for drawing circles and ovals
|
2024-09-05 20:27:12 +02:00 |
|
Irmen de Jong
|
ad22cf08cd
|
todo
|
2024-09-03 17:46:32 +02:00 |
|
Irmen de Jong
|
2da35fec17
|
remove requirement to end subroutine with an EOL, so oneliners are now possible
main { sub start() { cx16.r0++ cx16.r1++ } }
|
2024-09-01 20:55:43 +02:00 |
|
Irmen de Jong
|
6516d7cb15
|
regenerate skeletons and set version 10.4
|
2024-08-25 16:56:33 +02:00 |
|
Irmen de Jong
|
c4c4dcf2b3
|
optimizing gfx2.fill() 4 color mode
|
2024-08-25 15:05:24 +02:00 |
|
Irmen de Jong
|
e2fcac322f
|
optimizing gfx2.fill()
|
2024-08-25 13:51:01 +02:00 |
|
Irmen de Jong
|
e439720c9d
|
optimized string compares
|
2024-08-24 14:53:18 +02:00 |
|
Irmen de Jong
|
b4facaeb3c
|
add "kata" string encoding (Katakana)
|
2024-08-20 21:40:43 +02:00 |
|
Irmen de Jong
|
d113827753
|
todo
|
2024-07-24 19:50:30 +02:00 |
|
Irmen de Jong
|
c67f877857
|
Codegen: use BIT instruction for memory location bit 7 and 6 tests (use N and V flags)
|
2024-07-24 19:26:54 +02:00 |
|
Irmen de Jong
|
0ec719e429
|
cx16: added a polling pcm streaming example
|
2024-07-23 21:37:11 +02:00 |
|
Irmen de Jong
|
4c98070b3c
|
optimize shifts by 1 by inlining it better
|
2024-07-21 22:08:41 +02:00 |
|
Irmen de Jong
|
3681d6ee1c
|
optimize division by powers of 2 better (into bit shifts)
|
2024-07-21 21:34:38 +02:00 |
|
Irmen de Jong
|
0af17cdc33
|
todo's for division optimizations
|
2024-07-21 20:32:03 +02:00 |
|
Irmen de Jong
|
2aae1f5e30
|
stricter checks for negative array indexing
|
2024-07-20 22:37:03 +02:00 |
|
Irmen de Jong
|
d18f2a7bfd
|
improved codegen for some pointer+index expressions
|
2024-07-18 23:41:34 +02:00 |
|
Irmen de Jong
|
9046fe8d3a
|
ringbuffer and pointer optimization todo
|
2024-07-16 22:59:31 +02:00 |
|
Irmen de Jong
|
78c7ee247a
|
generate 65c02 TSB/TRB instructions in certain cases
|
2024-07-16 00:36:00 +02:00 |
|
Irmen de Jong
|
d5adb85e5b
|
IR: add SEC,CLC,SEI,CLI instructions for the sys function calls.
|
2024-07-14 21:01:19 +02:00 |
|
Irmen de Jong
|
69f953fd9b
|
diskio.f_readline() now also returns I/O status as secondary return value in A
|
2024-07-06 22:25:01 +02:00 |
|
Irmen de Jong
|
484677b4b1
|
Get rid of any() and all() builtin functions.
Replaced by regular subroutines in the anyall module.
|
2024-07-06 18:49:03 +02:00 |
|
Irmen de Jong
|
25f25a8767
|
Get rid of sort() and reverse() builtin functions.
Sort() had too many gotchas and reverse() is kinda redundant you can loop in decreasing order through an array too.
|
2024-07-06 17:07:58 +02:00 |
|
Irmen de Jong
|
0c053e4a2c
|
IR: don't confuse symbol names starting with 'r', with register names
Added start of buffer.p8 (experimental)
|
2024-07-04 01:39:25 +02:00 |
|
Irmen de Jong
|
3f6521cc9b
|
todo
|
2024-07-03 20:33:59 +02:00 |
|
Irmen de Jong
|
a074491d5b
|
fix doc build
|
2024-07-03 00:08:49 +02:00 |
|
Irmen de Jong
|
43c55b58d2
|
fix register overwriting for certain subroutine call parameter combinations. Fixes #136
|
2024-07-02 23:26:34 +02:00 |
|
Irmen de Jong
|
e7298f8162
|
fix invalid code gen for if v1==0 or v2==0
|
2024-07-01 23:38:25 +02:00 |
|
Irmen de Jong
|
ddf990296b
|
fix subroutine inlining symbol scope error
|
2024-06-29 18:53:54 +02:00 |
|
Irmen de Jong
|
ead8aa7800
|
asm optimization: bxx+jmp -> opposite bxx
|
2024-06-29 17:22:57 +02:00 |
|
Irmen de Jong
|
7a9dd1ac9b
|
optimize trivial 65c02 stack instructions
|
2024-06-29 15:42:40 +02:00 |
|
Irmen de Jong
|
1c97c22eff
|
optimize simple word and byte addition/subtraction better
|
2024-06-29 14:33:42 +02:00 |
|
Irmen de Jong
|
bbf621a8c4
|
doc
|
2024-06-29 13:39:08 +02:00 |
|
Irmen de Jong
|
8efa89165c
|
sprites.get_data_ptr() signature changed: now properly returns the 2 values
|
2024-06-27 22:22:26 +02:00 |
|
Irmen de Jong
|
4f8aaf9244
|
some tweaks and todos
|
2024-06-26 21:22:40 +02:00 |
|
Irmen de Jong
|
54bffc91ae
|
properly generate PUSH and POP instructions for push() and pop() calls in IR.
Also switch to a fork of shadowJar to avoid Gradle deprecation errors.
|
2024-06-25 22:39:20 +02:00 |
|
Irmen de Jong
|
034f27a8dd
|
added queens example, update kotest lib
|
2024-06-19 23:57:43 +02:00 |
|
Irmen de Jong
|
c2f6311367
|
todo
|
2024-06-17 22:41:52 +02:00 |
|
Irmen de Jong
|
c9a4235669
|
update to kotlin 2.0, fix several code style issues
|
2024-06-04 01:00:46 +02:00 |
|
Irmen de Jong
|
3d799ae7fe
|
todo
|
2024-06-01 15:03:01 +02:00 |
|
Irmen de Jong
|
d2e010c439
|
added cx16.scnsiz (extapi call), describe profiler.py script
|
2024-05-31 21:48:29 +02:00 |
|
Irmen de Jong
|
d3dcd24b4d
|
add profiler script
|
2024-05-29 00:56:31 +02:00 |
|
Irmen de Jong
|
9120e16683
|
todo
|
2024-05-02 21:02:50 +02:00 |
|
Irmen de Jong
|
4d37581694
|
fix the symbol lookup error lsb(a) when a is in a multi vardecl.
|
2024-04-11 00:51:08 +02:00 |
|
Irmen de Jong
|
5d7ddebcad
|
fix bool to uword cast in 6502 codegen
|
2024-04-11 00:34:53 +02:00 |
|
Irmen de Jong
|
19ebc6d6b3
|
better error message for ambiguous multi-var initialization in vardecl
|
2024-04-08 22:36:00 +02:00 |
|
Irmen de Jong
|
6ed9899dc7
|
smarter desugaring of ubyte x,y
|
2024-04-07 23:36:46 +02:00 |
|
Irmen de Jong
|
9de7698a5c
|
verafx.mult() and muls() now return both words of the 32 bits result.
|
2024-04-07 22:41:21 +02:00 |
|