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
Irmen de Jong
112d2d6058
cx16 sprites module: the palette_offset parameter now takes values 0-15 (instead of 0-255) to be more consistent with docs and vera behavior
2024-04-07 21:49:03 +02:00
Irmen de Jong
ddb8346711
added txt.cls() as a shorter alternative to clear_screen().
...
cx16: added new character encodings, and routines in textio to enable the character sets for them.
cx16: added txt.chrout_lit() and txt.print_lit() to always print the literal characters and never as control codes
2024-04-07 19:32:44 +02:00
Irmen de Jong
8dd3faf395
clarification
2024-04-06 14:31:39 +02:00
Irmen de Jong
35f3e8708b
doc and tweak subexpression extraction a tiny bit
2024-04-06 14:01:06 +02:00
Irmen de Jong
cfe3fcc9e7
fix symbol table issue
2024-04-06 12:53:33 +02:00
Irmen de Jong
66a6659a6e
cbm.STOP2() and cbm.GETIN2() convenience routines
2024-04-06 02:16:21 +02:00
Irmen de Jong
731132d4b3
check number of result values in return statements
2024-04-05 02:13:31 +02:00
Irmen de Jong
98acff802f
better checking for number of return values
...
assignment optimization if return register already is the same as the assignment target
2024-04-04 23:47:33 +02:00
Irmen de Jong
5f11f485a2
fix compiler error
2024-04-04 02:00:55 +02:00
Irmen de Jong
34f3169dda
tweak library routines for multiple return values.
...
cbm:
MEMTOP changed (now also returns nr of banks in A)
STOP2 removed (just use STOP)
RDTIM_safe() added TEST IRQ ENABLE
RDTIM16 changed (internally) TEST IRQ ENABLE
cx16:
screen_mode changed (now also returns width and height in X,Y)
kbdbuf_peek2 removed (just use kbdbuf_peek)
joystick_get changed (presence now returned as bool in Y)
joystick_get2 removed (just use joystick_get)
mouse_pos changed (now properly returns x and y position in R0 and R1)
set_led_brightness changed into set_led_state, with only a boolean on/off argument. There is no variable brightness.
sys.set_leds_brightness() removed. Use cx16.set_led_brightness().
2024-04-04 01:39:19 +02:00
Irmen de Jong
a3ef8f814b
Merge branch 'master' into multi-assign
...
# Conflicts:
# examples/test.p8
2024-04-03 01:13:27 +02:00
Irmen de Jong
385dd6fc23
todos
2024-04-03 01:12:45 +02:00
Irmen de Jong
641f6c05d8
allow 'void' as dummy assign target in multi-assignment statements
2024-03-31 23:43:26 +02:00
Irmen de Jong
788f6b44a6
antlr grammar now understands underscores in identifier names
2024-03-31 00:31:10 +01:00
Irmen de Jong
63a4525f06
remove hacks from floats.parse now that kernal R47 is out
2024-03-30 22:29:13 +01:00
Irmen de Jong
3e34a3ef72
allow multi-assign to skip any status register result
2024-03-29 23:10:08 +01:00
Irmen de Jong
56f41d5e34
docs about multi-assign
2024-03-28 23:24:14 +01:00
Irmen de Jong
bd5abfb969
add IR peephole optimization to remove redundant store
2024-03-28 01:06:05 +01:00
Irmen de Jong
dd0f0fe415
conv.str_ub and partners are now much shorter routines than before
2024-03-27 22:34:44 +01:00
Irmen de Jong
56c1035581
Merge branch 'master' into multi-assign
...
# Conflicts:
# docs/source/todo.rst
# examples/test.p8
2024-03-26 22:09:16 +01:00
Irmen de Jong
2a3a27c56d
bmx library: set bpp header field correctly on save
2024-03-26 22:01:10 +01:00
Irmen de Jong
993be6394e
unit tests multi-assigns
2024-03-25 23:20:03 +01:00
Irmen de Jong
9a27505315
6502 codegen for multi-assigns
2024-03-25 22:17:31 +01:00
Irmen de Jong
2e37f5dee3
IR: support for multi-returnvalue function calls (asmsubs)
...
note: the VM can't execute these though as it has no CPU hardware registers
2024-03-23 00:30:17 +01:00
Irmen de Jong
edc83305a4
allow multiple targets in AssignTarget
2024-03-22 21:51:08 +01:00
Irmen de Jong
e6014ea4dd
version 10.3.1
2024-03-21 19:32:16 +01:00
Irmen de Jong
c38765301e
gfx2 screenmode tweak
2024-03-19 01:21:56 +01:00
Irmen de Jong
fe2b67998c
vm: fix load_raw, fix rng bug in textelite (carry flag shifting...)
2024-03-17 16:46:26 +01:00
Irmen de Jong
de3d0b40dc
fixed vm problem with branching instructions in global init chunk
2024-03-17 13:22:17 +01:00
Irmen de Jong
4db4a5f1b2
vm: txt.width() and height() now return the actual console terminal width and height if possible.
2024-03-16 22:40:08 +01:00
Irmen de Jong
5a0524ff4d
various fixes
2024-03-16 18:48:06 +01:00
Irmen de Jong
5b7801eea1
added crc verifications to diskspeed
2024-03-16 16:26:39 +01:00
Irmen de Jong
6a9269111e
some changes in SMC routines for the cx16:
...
sys.poweroff_system() moved to cx16
sys.set_leds_brightness() moved to cx16 and changed to set_led_brightness, you can only change the activity led brightness.
2024-03-15 23:00:14 +01:00
Irmen de Jong
a94cfd34f5
don't apply absorption law on functioncall operands
2024-03-15 01:04:27 +01:00
Irmen de Jong
28eae5a0fd
updated diskspeed example to deal with increased I/O speeds
2024-03-15 00:37:13 +01:00
Irmen de Jong
1fc79ff6dd
implement the missing in-place array operators for split word arrays and numeric operand
2024-03-13 21:16:49 +01:00
Irmen de Jong
3535c1acda
fix broken boolean != comparison optimization
2024-03-13 20:23:42 +01:00
Irmen de Jong
33c8caac8f
get rid of containment expression restriction
2024-03-12 23:39:54 +01:00
Irmen de Jong
51d708bbdd
fix monogfx issue
2024-03-12 23:27:15 +01:00
Irmen de Jong
820541e427
fixed and optimized pointervar indexed in-place operations
2024-03-11 23:27:48 +01:00
Irmen de Jong
c11a9b8709
fix callgraph issue when module gets removed by optimizations
2024-03-11 20:34:22 +01:00
Irmen de Jong
80f39e8097
Merge branch 'booleans'
...
# Conflicts:
# compiler/res/prog8lib/cx16/monogfx.p8
# compiler/res/prog8lib/virtual/monogfx.p8
# compiler/src/prog8/compiler/astprocessing/BoolRemover.kt
# compiler/test/TestTypecasts.kt
# docs/source/todo.rst
# examples/cx16/highresbitmap.p8
# examples/test.p8
# httpCompilerService/src/prog8/http/TestHttp.kt
2024-03-11 01:00:48 +01:00
Irmen de Jong
3a9919a377
implemented a couple more diskio routines for the VM target
2024-03-09 17:36:39 +01:00
Irmen de Jong
f739e679e4
added sys.exit2 and sys.exit3 to set more result registers at program exit
...
todo
2024-03-09 03:30:05 +01:00