Irmen de Jong
95e4490a8a
adding setlsb() and setmsb() builtin functions
2023-09-15 02:39:16 +02:00
Irmen de Jong
31c132c2eb
several optimizations and compiler error fix for @(&var) and @(&var+1)
2023-09-14 23:04:23 +02:00
Irmen de Jong
00b0ec58b4
update to Antlr 4.13.1
2023-09-14 21:11:55 +02:00
Irmen de Jong
03e0d4b2e8
reducing expression codegen complexity (no longer splitting conditional expressions, and using r9 as temp var)
2023-09-13 01:08:42 +02:00
Irmen de Jong
6afdd4e6fd
preparing next version
2023-09-12 21:53:49 +02:00
Irmen de Jong
b500a0d477
c64: added a couple of routines that calculate the correct memory locations for video ram and sprite pointers etc. based on current VIC-II memory setup.
...
the examples with sprites, now use it.
2023-09-08 21:27:38 +02:00
Irmen de Jong
dd2463a440
proper fix for the previous commit. + fix for i/o channel reset in diskio.f_seek()
...
it wasn't the adressing mode, it was that it assumed the pointer variable was always in zeropage (which might not be)
2023-09-07 22:17:46 +02:00
Irmen de Jong
3caf9108ad
finalizing 9.4.1 release
2023-09-06 21:18:01 +02:00
Irmen de Jong
0bbbb12ed2
fix bench8 examples
2023-09-05 23:40:54 +02:00
Irmen de Jong
31458ffd81
examples cleanup and improving c64 graphics module (shift bitmap to higher ram area)
2023-09-05 20:39:12 +02:00
Irmen de Jong
c15c10a94e
fixed 'unroll CONSTANTEXPR' compiler errors
2023-09-05 01:03:35 +02:00
Irmen de Jong
b125901717
added cx16 plasma example
2023-09-04 23:54:13 +02:00
Irmen de Jong
eb018ae660
code optimization for bytearray[x] +/- bytearray[y]
...
use adc array,y or sbc array,y instead of tempvar
2023-09-04 23:01:53 +02:00
Irmen de Jong
c3fbdf34ca
fixed c64 float problem
2023-09-03 16:40:10 +02:00
Irmen de Jong
e97303c226
fix word multiplication to not clobber r0 and r1 anymore
...
This was causing corruption in certain programs such as the cx16/amiga example.
The problem was introduced in 9.4 with the new multiply_words routine
2023-09-02 20:52:16 +02:00
Irmen de Jong
3b786c819d
avoid using temp var even more
2023-09-01 23:47:01 +02:00
Irmen de Jong
5cd4b874ea
tweak sprites module
2023-09-01 21:25:19 +02:00
Irmen de Jong
f14ea1b3de
micro optimization to save 2 cycles: change some pha+pla into tax+txa
2023-09-01 20:37:24 +02:00
Irmen de Jong
9cc0cda0fb
added sprites library module (cx16 only)
2023-09-01 17:35:07 +02:00
Irmen de Jong
cfea8b3745
save a cycle
2023-09-01 00:50:24 +02:00
Irmen de Jong
28bf0b61ce
added math.log2() and math.log2w()
2023-09-01 00:42:15 +02:00
Irmen de Jong
2dc2429735
tweaks to the cx16 sprite example
2023-08-31 23:24:46 +02:00
Irmen de Jong
2d7ebff8e9
fix shadowing warnings in asm and library code
2023-08-29 11:00:53 +02:00
Irmen de Jong
ff35ba3696
added warnshadow cli option to enable assembler warnings about symbol shadowing
2023-08-28 16:41:46 +02:00
Irmen de Jong
77f3852cdc
added floats.parse_f()
2023-08-16 14:47:20 +02:00
Irmen de Jong
be06d871b6
fix code for bitwise shifts by zero
2023-08-14 21:49:13 +02:00
Irmen de Jong
f98ee326b4
error when doing txt.print('@') where "@" was intended (byte for string parameter)
2023-08-14 19:25:31 +02:00
Irmen de Jong
bc8126eb16
2x faster word multiplication routine
2023-08-14 18:11:30 +02:00
Irmen de Jong
4c8beefdcb
slightly faster integer bytes multiplication routine
2023-08-14 17:00:16 +02:00
Irmen de Jong
bbb6c53457
slightly faster sqrt() routine for integers
2023-08-14 17:00:02 +02:00
Irmen de Jong
d8991894e3
added pet stubs for cbm.SETTIM,RDTIM,RDTIM16
2023-08-14 14:49:59 +02:00
Irmen de Jong
c7b7dcfd03
made pet textio more compatible with the other platforms by putting the (dummy) color arguments back
2023-08-14 13:51:15 +02:00
Irmen de Jong
2c9e50873c
use math.square for optimized X*X calculation (words only).
...
Added IR SQUARE instruction.
2023-08-14 01:05:17 +02:00
Irmen de Jong
923367296d
fix reset_system() on PET, added some missing kernal routines
2023-08-13 01:46:25 +02:00
Irmen de Jong
151a206617
experimental Commodore PET target
2023-08-12 23:25:07 +02:00
Irmen de Jong
e3fbe37f9f
fixed optimized code for >= and <=
2023-08-12 13:45:08 +02:00
Irmen de Jong
584be44743
fix compiler error on float comparison expressions
2023-08-12 00:09:38 +02:00
Irmen de Jong
b92e22e4a6
IR: fix for loop over range with step
2023-08-11 03:05:47 +02:00
Irmen de Jong
3e6d16a7a8
add error message for invalid step size in range expression
2023-08-11 02:35:52 +02:00
Irmen de Jong
ecbcc277b8
improve -varshigh documentation
2023-08-10 00:17:50 +02:00
Irmen de Jong
dff1d9e4dd
cleanup range expression doc
2023-08-09 22:58:04 +02:00
Irmen de Jong
7c0bde7310
parser: allow curly brace on next line for asmsub too
...
downgrade antlr4 one version again to what is used in IntelliJ's antlr plugin, to avoid potential version conflicts
2023-08-09 20:01:12 +02:00
Irmen de Jong
a82d21ac05
fixed gfx2.plot in mode 1+5 with certain combinations of color and stipple
2023-08-08 00:01:43 +02:00
Irmen de Jong
0bf8378fcb
fixed gfx2.horizontal_line problem with monochrome stippling mode (regression since version 9.0)
...
todo
2023-08-07 22:56:07 +02:00
Irmen de Jong
c36afd872e
optimization in assignment to memory
2023-08-04 23:54:11 +02:00
Irmen de Jong
19a4bf1088
clean up AugmentableAssignmentAsmGen a bit
2023-08-04 21:48:02 +02:00
Irmen de Jong
a4d093afa1
added -sourcelines cli option to include src lines in generated assembly (which is now off by default)
2023-08-02 23:05:24 +02:00
Irmen de Jong
c223702ea0
code cleanups
2023-07-30 18:42:45 +02:00
Irmen de Jong
9167ba499d
Merge branch 'remove_evalstack'
2023-07-30 17:49:35 +02:00
Irmen de Jong
2d7e95e1b6
release 9.2.1
2023-07-30 17:39:18 +02:00
Irmen de Jong
0cba736446
Merge branch 'master' into remove_evalstack
2023-07-30 14:53:40 +02:00
Irmen de Jong
0816a57032
never add rts to inline asmsubs and always inline them regardless of optimization setting
...
otherwise they can't specify a sequence of assembly instructions that should be inserted in-place, such as those that manipulate the cpu stack.
for instance cx16.irqsafe_set_irqd() / cx16.irqsafe_clear_irqd()
2023-07-30 14:52:37 +02:00
Irmen de Jong
a0ab0bd3e2
Merge branch 'master' into remove_evalstack
...
# Conflicts:
# examples/test.p8
2023-07-29 18:57:06 +02:00
Irmen de Jong
b89ad4b328
don't optimize empty where choice away! It would call the else clause incorrectly.
2023-07-29 18:25:52 +02:00
Irmen de Jong
c112b327ab
tiny optimization
2023-07-29 17:04:41 +02:00
Irmen de Jong
46c12a8899
fix byte in array assignment,
...
remove no longer needed array assignment ast transformation
2023-07-28 22:40:06 +02:00
Irmen de Jong
4a8ee6815a
merge
2023-07-28 03:34:58 +02:00
Irmen de Jong
e1b6bb154a
Merge branch 'master' into remove_evalstack
...
# Conflicts:
# compiler/res/prog8lib/cx16/gfx2.p8
# docs/source/todo.rst
# examples/test.p8
2023-07-28 02:09:45 +02:00
Irmen de Jong
e520921746
todo
2023-07-26 23:16:43 +02:00
Irmen de Jong
970642244b
optimized gfx2.text() for hires 4c mode
2023-07-26 04:17:44 +02:00
Irmen de Jong
3b90be2d9e
gfx2.text() per-pixel positioning implemented for screen modes 1 and 5
2023-07-25 00:43:45 +02:00
Irmen de Jong
65a7a8caf8
fix and optimize gfx2.position2(), added cx16.vaddr_clone()
2023-07-24 00:04:47 +02:00
Irmen de Jong
7cf6aba625
Merge branch 'master' into remove_evalstack
...
# Conflicts:
# examples/test.p8
2023-07-22 23:37:20 +02:00
Irmen de Jong
0adce9b9c6
removed complexity restriction on array indexing expressions
2023-07-22 22:11:30 +02:00
Irmen de Jong
0e781d18fa
cx16: added cx16.vaddr_autoincr() and cx16.vaddr_autodecr()
2023-07-21 23:04:21 +02:00
Irmen de Jong
4575a8fffe
cx16: added cx16.vaddr_autoincr() and cx16.vaddr_autodecr()
2023-07-21 22:40:07 +02:00
Irmen de Jong
7136b33f2e
cx16: change reset_system() to use Reset SMC sequence instead of hard reboot
2023-07-20 01:59:20 +02:00
Irmen de Jong
70a78e74f6
get rid of binexpr splitter
2023-07-20 01:36:43 +02:00
Irmen de Jong
d5707b7bf3
rebuilding floating point stack evaluation (using cpu stack)
2023-07-20 00:45:04 +02:00
Irmen de Jong
9f247901d4
Merge branch 'master' into remove_evalstack
...
# Conflicts:
# codeGenCpu6502/src/prog8/codegen/cpu6502/BuiltinFunctionsAsmGen.kt
# codeGenCpu6502/src/prog8/codegen/cpu6502/assignment/AssignmentAsmGen.kt
# compiler/src/prog8/buildversion/BuildVersion.kt
# examples/test.p8
2023-07-16 23:45:04 +02:00
Irmen de Jong
5659742d97
fixed assigning byte to word not clearing msb sometimes
2023-07-16 23:16:32 +02:00
Irmen de Jong
47485e4b49
added more missing codegen for bit shifts
2023-07-16 17:42:10 +02:00
Irmen de Jong
64254e758d
cleaned up cx16 keyboardhandler example and some compiler warnings for redundant else
2023-07-16 13:23:53 +02:00
Irmen de Jong
3841cef497
implemented missing bitshift codegen (non-stack)
2023-07-15 22:26:56 +02:00
Irmen de Jong
da57f76de3
fix augassign
2023-07-15 22:26:56 +02:00
Irmen de Jong
41af63b333
remove even more X register save/restore code
2023-07-15 22:26:54 +02:00
Irmen de Jong
6033a9e20c
remove optfloatx option
2023-07-15 22:24:22 +02:00
Irmen de Jong
9e8c8973d8
remove eval stack references from asm code
2023-07-15 22:24:22 +02:00
Irmen de Jong
3933bf5c1a
remove eval stack references from p8 code
2023-07-15 22:24:22 +02:00
Irmen de Jong
708e296774
remove eval stack assignment source and targets
2023-07-15 22:24:22 +02:00
Irmen de Jong
84925ab69c
remove eval stack options
2023-07-15 22:24:19 +02:00
Irmen de Jong
9cb61fa34d
tweaks
2023-07-15 20:46:14 +02:00
Irmen de Jong
7c219d235c
fixed possible type mismatch error in when statements
2023-07-14 23:35:58 +02:00
Irmen de Jong
b8284a147d
allow boolean when conditions, optimize into a regular if
2023-07-11 21:33:29 +02:00
Irmen de Jong
15ee90e99c
no error about missing target when -vm is used.
...
also version 9.1
2023-07-11 18:13:49 +02:00
Irmen de Jong
4e863ecdac
vm: fixed abs() and word-to-string conversion
2023-07-08 22:57:16 +02:00
Irmen de Jong
e6b158bc97
@(..) argument must be of type UWORD
2023-07-08 22:34:47 +02:00
Irmen de Jong
4cc0dfa10b
comment
2023-07-08 11:42:29 +02:00
Irmen de Jong
4ced8889d3
cx16: fix signature return values of cx16.screen_mode(), add get_screen_mode() and set_screen_mode() convenience routines
2023-07-08 11:37:29 +02:00
Irmen de Jong
d2154f5f2e
remove empty when choices, fixes ir compilation error on those
2023-07-07 20:34:24 +02:00
Irmen de Jong
71261525e8
fix containment check on memory mapped arrays
2023-07-07 17:07:34 +02:00
Irmen de Jong
ffb2027a19
repeat loop count now always rounded to integer
2023-07-06 23:58:02 +02:00
Irmen de Jong
70c9ab9074
upgrade libraries
2023-07-06 23:33:58 +02:00
Irmen de Jong
6d1fdf1ba6
upgrade to Kotlin 1.9.0
2023-07-06 23:03:47 +02:00
Irmen de Jong
1f7180d9a8
math.multiply_words returns lower 16 bits of the result also in AY (to avoid repeating some load instructions)
2023-07-06 22:54:13 +02:00
Irmen de Jong
b4e94ae4dd
optimizer: avoid symbol name clash when inlining subroutine
2023-07-05 23:15:04 +02:00
Irmen de Jong
07c606bfc9
optimizer: don't replace for loop with repeat loop (the loop variable might be used elsewhere!)
2023-07-05 21:16:17 +02:00
Irmen de Jong
be64fa674a
doc
2023-07-03 22:44:50 +02:00
Irmen de Jong
204f5591a9
todos
2023-07-03 21:57:32 +02:00
Irmen de Jong
ee3e3a3a40
optimize text rendering in gfx2
2023-07-03 21:45:09 +02:00
Irmen de Jong
f570b70827
fix type error with returning an array from a subroutine returning uword
2023-07-02 22:09:19 +02:00
Irmen de Jong
c544b7f5ba
fixing up p8_ prefixing
2023-07-02 21:15:05 +02:00
Irmen de Jong
bdf8aa9168
get rid of newexpr compiler option
2023-07-02 15:26:04 +02:00
Irmen de Jong
bb95484c8a
uniform symbol prefixing with p8_
2023-07-02 06:15:09 +02:00
Irmen de Jong
cad18b8a3a
uniform symbol prefixing with p8_
2023-07-02 06:15:02 +02:00
Irmen de Jong
aac5a4c27f
optimize word repeat loop codegen
2023-07-02 04:51:22 +02:00
Irmen de Jong
d3f6415387
vm: fix repeat 256
2023-07-02 02:38:35 +02:00
Irmen de Jong
7649be97b1
add git hash to compiler header output
2023-06-29 21:01:02 +02:00
Irmen de Jong
c0cb2438d5
1-letter symbols now also prefixed with 'p8p_'
...
to avoid assembly errors caused by confusing variable 'a' with register 'a' etc.
2023-06-28 23:17:59 +02:00
Irmen de Jong
bf703a8a66
unittest
2023-06-27 23:43:35 +02:00
Irmen de Jong
0a83b51e00
allow more curly brace styles
2023-06-27 01:59:22 +02:00
Irmen de Jong
b0794cf35e
added hiram bank number to -varshigh
2023-06-27 00:27:34 +02:00
Irmen de Jong
eae41de27d
improve errors generated for undefined symbols
2023-06-25 15:19:51 +02:00
Irmen de Jong
e9163aa3a7
added cx16.save_virtual_registers() and cx16.restore_virtual_registers()
2023-06-24 21:04:47 +02:00
Irmen de Jong
8c617515ba
don't prefix 3-letter symbols too aggressively (could cause some compilation errors)
2023-06-23 23:36:59 +02:00
Irmen de Jong
04e4e71f2e
uword == str is now possible (sugar for string.compare)
2023-06-22 00:20:30 +02:00
Irmen de Jong
a587482edf
optimize dangling else
2023-06-18 13:46:02 +02:00
Irmen de Jong
0aac9350d5
rename math.atan() to math.atan2()
2023-06-18 13:05:36 +02:00
Irmen de Jong
f56c12ee4e
cx16 spotlight example
2023-06-18 12:49:22 +02:00
Irmen de Jong
ff7f3484e4
atan
2023-06-17 23:01:47 +02:00
Irmen de Jong
5da3abe6b4
fix silent typecast on return statements that could lose data (word->byte)
2023-06-17 14:44:36 +02:00
Irmen de Jong
c0b398e0ce
add various math.atan() routines
2023-06-17 00:43:33 +02:00
Irmen de Jong
b9abf37a7e
fix invalid code when subroutines are defined in a repeat loop
2023-06-13 00:46:32 +02:00
Irmen de Jong
a521982576
fix subroutine inline problem with strings
2023-06-09 21:45:05 +02:00
Irmen de Jong
ea6926e57d
fix float expression crash: fl = abs/sqrt (fl)+0.5
2023-06-09 19:28:34 +02:00
Irmen de Jong
ba25b7fee6
fix diskio.diskname(). cx16: add diskio.curdir()
2023-06-07 22:38:51 +02:00
Irmen de Jong
7ee162d98b
preparing version 9.0
2023-06-05 19:47:00 +02:00
Irmen de Jong
1bdae53f4e
fix unit tests
2023-06-03 21:39:34 +02:00
Irmen de Jong
9314c346da
-target option is now required; c64 no longer the default
2023-06-03 19:14:45 +02:00
Irmen de Jong
bfaad1388c
IR: handle split arrays without new custom opcodes
2023-06-03 01:51:02 +02:00
Irmen de Jong
bb35a80177
%option splitarrays now also at module level
2023-05-31 21:50:41 +02:00
Irmen de Jong
24fc95ac81
fix atari target syslib
2023-05-31 20:58:00 +02:00
Irmen de Jong
8f864417c4
added %option splitarrays (block level)
2023-05-31 18:49:21 +02:00
Irmen de Jong
bb9d29b061
fix an array literal assignment type error for word arrays
2023-05-30 22:46:37 +02:00
Irmen de Jong
b9d8ec1463
add -splitarrays command line option
2023-05-30 19:08:34 +02:00
Irmen de Jong
bbc02752c9
use split word arrays in various examples, fix codegen issue, docs
2023-05-29 15:34:33 +02:00
Irmen de Jong
9896bc110e
fix some split array issues in 6502 codegen
2023-05-28 22:49:33 +02:00
Irmen de Jong
ca60f8ecdd
Merge branch 'master' into split-arrays
2023-05-28 22:35:16 +02:00
Irmen de Jong
544acd1e35
Merge branch 'v8_maintenance'
2023-05-28 22:30:52 +02:00
Irmen de Jong
6e07602d77
fix psg initial envelope maxvol setting
2023-05-28 22:30:34 +02:00
Irmen de Jong
82898f7bba
fix some split array issues in 6502 codegen
2023-05-28 22:24:56 +02:00
Irmen de Jong
39eda67867
Merge branch 'master' into split-arrays
...
# Conflicts:
# examples/test.p8
2023-05-28 13:28:43 +02:00
Irmen de Jong
a99d38fdaa
Merge branch 'v8_maintenance'
...
# Conflicts:
# examples/test.p8
2023-05-28 13:26:05 +02:00
Irmen de Jong
0eb2d437e2
fix compiler error and codegen fault on signed value bitwise operation
2023-05-28 13:13:11 +02:00
Irmen de Jong
c94e292176
more split array stuff
2023-05-27 12:47:11 +02:00
Irmen de Jong
e18119e24c
Merge branch 'master' into split-arrays
2023-05-26 19:25:57 +02:00
Irmen de Jong
52a77db60f
adding split array type
2023-05-26 19:11:07 +02:00
Irmen de Jong
cdbccad21e
optimized gfx2 plot and horizontal_line a bit more
2023-05-23 20:29:17 +02:00
Irmen de Jong
e15bc68c9b
added gfx2.fill() flood fill routine
2023-05-23 00:50:10 +02:00
Irmen de Jong
8bffd7672d
added sys.irqsafe_set_irqd()/irqsafe_clear_irqd()
2023-05-22 21:13:20 +02:00
Irmen de Jong
61df5b3060
Merge branch 'v8_maintenance'
...
# Conflicts:
# compiler/res/prog8lib/cx16/syslib.p8
2023-05-22 20:43:05 +02:00
Irmen de Jong
b5255444cd
irq-safe irqd handling for RDTIM16
2023-05-22 20:36:33 +02:00
Irmen de Jong
0c94e377fc
Merge branch 'v8_maintenance'
2023-05-21 16:09:31 +02:00
Irmen de Jong
8e5c67b4b2
ir: don't refuse complicated array lookup expressions
2023-05-21 16:07:19 +02:00
Irmen de Jong
b24f2f1756
Merge branch 'v8_maintenance'
...
# Conflicts:
# compiler/res/prog8lib/cx16/syslib.p8
# examples/test.p8
2023-05-21 15:05:17 +02:00
Irmen de Jong
c69c17de42
cx16 avoid ram bank issue with RDTIM in sys.wait() and c64.RDTIM16()
2023-05-21 15:03:33 +02:00
Irmen de Jong
06d1570142
cx16: added diskio.save_raw() headerless save routine
2023-05-20 00:00:50 +02:00
Irmen de Jong
aec9574737
Merge branch 'v8_maintenance'
...
# Conflicts:
# compiler/res/version.txt
# docs/source/todo.rst
# examples/test.p8
2023-05-18 22:47:06 +02:00
Irmen de Jong
7ceb76cff5
fix compiler crash on certain operands type mismatch
2023-05-18 22:46:00 +02:00
Irmen de Jong
300e2fe9f8
IR: wrong attempt at optimizing register usage by reusing registers inside different code chunks
2023-05-18 21:57:21 +02:00
Irmen de Jong
91e1643627
update 3rd party libraries
2023-05-18 11:47:30 +02:00
Irmen de Jong
c098ad2b3b
fix vm minf/maxf
2023-05-17 23:18:14 +02:00
Irmen de Jong
b43223cb7a
added clamp() builtin function and floats.clampf()
2023-05-17 23:12:58 +02:00
Irmen de Jong
1af38e62bc
removed floats.fabs() and floats.sqrt()/fsqrt()
2023-05-17 00:46:15 +02:00
Irmen de Jong
7e734214dc
v8_maintenance branch made
2023-05-15 23:01:43 +02:00
Irmen de Jong
0371ffa4ce
'amiga' example using iso font
2023-05-14 21:55:35 +02:00
Irmen de Jong
85cf0e311c
Merge branch 'master' into version_9
...
# Conflicts:
# codeGenIntermediate/src/prog8/codegen/intermediate/ExpressionGen.kt
# docs/source/todo.rst
# intermediate/src/prog8/intermediate/IRInstructions.kt
2023-05-14 20:47:09 +02:00
Irmen de Jong
905921a684
IR: new (sys)call instructions that encapsulate the full subroutine call
...
to fix the bugs resulting from nesting subroutine calls (as param to another call etc)
2023-05-14 15:20:25 +02:00
Irmen de Jong
1e469b3b0f
Merge branch 'master' into version_9
...
# Conflicts:
# docs/source/todo.rst
# examples/test.p8
2023-05-09 22:45:21 +02:00
Irmen de Jong
bff3c4f95c
IR now converts IRInlineAsmChunk (of type IR) into regular code chunks directly.
...
.p8ir files usually won't contain <INLINEASM> nodes any longer
2023-05-09 21:04:31 +02:00
Irmen de Jong
bd2bcb6994
Merge branch 'master' into version_9
...
# Conflicts:
# codeGenIntermediate/src/prog8/codegen/intermediate/AssignmentGen.kt
# compiler/res/prog8lib/c128/syslib.p8
# compiler/res/prog8lib/c64/syslib.p8
# compiler/res/prog8lib/cx16/syslib.p8
# docs/source/todo.rst
# examples/test.p8
# intermediate/src/prog8/intermediate/IRInstructions.kt
2023-05-08 23:17:52 +02:00
Irmen de Jong
8cbfe64f19
optimize some carry flag assembly
2023-05-07 23:27:49 +02:00
Irmen de Jong
fd1e9971e4
asmsub Pc params and returnvalue must be boolean
2023-05-07 22:59:30 +02:00
Irmen de Jong
f9926beeef
fix cx16.psg irq issue
2023-05-04 00:16:24 +02:00
Irmen de Jong
87d3109ffb
diskio f_seek_w() abandoned due to unreliability
2023-05-02 19:33:49 +02:00
Irmen de Jong
180dbbb521
cleaning up the diskio modules
...
for cx16: removed cx16diskio (merged everything into its regular diskio module)
for cx16: the load() and load_raw() routines that took an extra ram bank parameter are gone. You have to cx16.rambank() yourself before calling load().
2023-05-02 03:31:11 +02:00
Irmen de Jong
24aac7cee5
cleaning up the diskio modules
2023-05-02 02:15:22 +02:00
Irmen de Jong
53e18a5387
Api change: drivenumber parameter removed from all routines in diskio and cx16diskio modules
2023-05-02 01:48:56 +02:00
Irmen de Jong
92062d056d
divmod() now works on multiple data types including float.
...
divmodw() has been removed
2023-05-02 01:19:53 +02:00
Irmen de Jong
06368ab0a1
sqrt() now works on multiple data types including float.
...
no need to use floats.sqrtf() anymore
2023-05-02 01:19:53 +02:00
Irmen de Jong
38efe25c68
abs() now works on multiple data types including float.
...
no need to use floats.fabs() anymore
2023-05-02 01:19:53 +02:00
Irmen de Jong
319079de7a
sqrt
2023-05-02 01:19:53 +02:00
Irmen de Jong
025bf900a5
min max docs, added floats.minf() and maxf()
2023-05-02 01:19:53 +02:00
Irmen de Jong
c07eda15b1
adding min() and max()
2023-05-02 01:19:53 +02:00
Irmen de Jong
4274296cf3
api change: new 'cbm' module that now contains the common CBM kernal variables and routines.
2023-05-02 01:19:53 +02:00
Irmen de Jong
76a203d4df
api change: rename builtin func sqrt16 to sqrtw
2023-05-02 01:19:53 +02:00
Irmen de Jong
f465b2e2a0
some improvements to IR peephole optimizer
2023-05-02 00:29:04 +02:00
Irmen de Jong
ce00e49a89
version 8.12
2023-04-30 14:04:54 +02:00
Irmen de Jong
798383596d
fix %option merge possible error
2023-04-29 00:01:59 +02:00
Irmen de Jong
9ca71bc937
fix %option merge not choosing correct block to merge into
2023-04-28 23:52:02 +02:00
Irmen de Jong
5407429ec0
improve error message
2023-04-28 23:32:19 +02:00
Irmen de Jong
ee5c94f6db
c128: fix key status zp location symbols
2023-04-28 20:43:26 +02:00
Irmen de Jong
3f64782023
c128: remove floats module
2023-04-28 17:48:54 +02:00
Irmen de Jong
f8d35f9502
c128: no FP support
2023-04-28 17:43:42 +02:00
Irmen de Jong
e056a28316
c128: fix memory bank resetting
2023-04-28 04:02:07 +02:00
Irmen de Jong
e1b89494d0
tiny psg improvement to avoid clicks more on changing freq or envelope, added cx16.vpoke_mask()
2023-04-26 22:45:32 +02:00
Irmen de Jong
cd8e7f3912
psg comment
2023-04-24 01:23:03 +02:00
Irmen de Jong
50604c25c2
remove obsolete comments, updated links and docs.
2023-04-23 15:13:53 +02:00
Irmen de Jong
aa6b2357d8
fix void warnings
2023-04-18 23:47:31 +02:00
Irmen de Jong
5b2d29bef6
improved and added a few system routines for the cx16
2023-04-18 23:20:28 +02:00
Irmen de Jong
a296d26328
api change: renamed cx16.push/pop_vera_context() to save/restore_vera_context()
...
this better reflects its capability because it doesn't use a stack, only a single buffer
2023-04-17 23:37:15 +02:00
Irmen de Jong
d01a26ec61
fix occasional crash when indexing an undefined array variable
2023-04-16 05:23:06 +02:00
Irmen de Jong
efd7d6f0c0
tweak IR call args setting now via special SETPARAM instruction
2023-04-14 02:10:39 +02:00
Irmen de Jong
b55be093be
tweak IR
2023-04-11 22:48:20 +02:00
Irmen de Jong
7c1d5cadd7
fix sort and reverse on strings on 6502 codegen
2023-04-10 19:33:24 +02:00
Irmen de Jong
dd1592b03b
ir syscalls args via stack instead of fixed r65500+
2023-04-10 18:02:37 +02:00
Irmen de Jong
9b37ac483f
vm fix str to word conversion
...
ir SYSCALL puts result(s) on value stack, instead of on hardcoded r0, r1
2023-04-10 16:26:42 +02:00
Irmen de Jong
ac21e1be5c
vm syscall instruction no longer fixed to r0
2023-04-10 13:44:05 +02:00
Irmen de Jong
9b952fbc44
tweaking IR instruction set branch instructions
2023-04-09 22:17:19 +02:00
Irmen de Jong
ccdf05e922
tweaking IR instruction formats
2023-04-09 16:12:16 +02:00
Irmen de Jong
c3d74f2ae9
fix golden ram area for x16, remove romsub restriction
...
note: romsubs still won't work in the VM but at least they compile again
2023-04-08 00:40:52 +02:00
Irmen de Jong
f47498888c
optimize imports
2023-04-07 22:34:23 +02:00
Irmen de Jong
4a0f15eb88
some loose ends
2023-04-06 21:19:21 +02:00
Irmen de Jong
c4f53fe525
IR: small optimization
2023-04-05 22:55:54 +02:00
Irmen de Jong
b6a837cbea
fix boolean array with initialization value
2023-04-04 22:11:51 +02:00
Irmen de Jong
2d85fd093e
Merge branch 'new-expr-codegen'
...
# Conflicts:
# codeGenCpu6502/src/prog8/codegen/cpu6502/BuiltinFunctionsAsmGen.kt
# codeGenIntermediate/src/prog8/codegen/intermediate/BuiltinFuncGen.kt
# examples/test.p8
2023-03-29 23:56:16 +02:00
Irmen de Jong
d936568b76
added divmod()
and divmodw()
builtin functions to efficiently compute division and remainder in a single call
2023-03-29 23:46:44 +02:00
Irmen de Jong
4598a83e8e
fixing new comparisons
2023-03-29 22:06:32 +02:00
Irmen de Jong
f4bf00ad31
fix string compare and ifelse
2023-03-28 22:46:01 +02:00
Irmen de Jong
729209574e
fixing str compares codegen
2023-03-28 20:01:26 +02:00
Irmen de Jong
f28206d989
new attempt
2023-03-28 20:01:26 +02:00
Irmen de Jong
a7b9f53967
fix word comparison bug in asmgen
2023-03-26 23:44:06 +02:00
Irmen de Jong
1fa2e2e37d
3rd party library versions upgrades
2023-03-26 21:36:21 +02:00
Irmen de Jong
629ed74d09
got rid of rpn deadend code...
2023-03-25 18:45:17 +01:00
Irmen de Jong
01461a196d
implementing optimized comparisons
2023-03-25 00:08:21 +01:00
Irmen de Jong
04832f052a
working on doing comparison codegen differently
2023-03-25 00:08:21 +01:00
Irmen de Jong
9ccda0247e
Merge pull request #102 from Frosty-J/vera
...
DC_VER0 through 3
2023-03-24 02:10:23 +01:00
Irmen de Jong
d91f47c791
fix cx16 graphics.plot() colors, and FB_set_palette definition
2023-03-24 01:56:29 +01:00
Frosty-J
a9ac4e7f44
Even more VERA_DC constants!
2023-03-23 17:29:28 +00:00
Irmen de Jong
134fd62da8
RPN: better handling of bit shifts
2023-03-21 02:58:26 +01:00
Irmen de Jong
c66734bab0
fix cx16 ubyte to float cast (wrong rom routine)
2023-03-20 23:25:28 +01:00
Irmen de Jong
deea0b05cb
tweak cx16 system init and reset to not reset Vera any more
...
uses new audio routine to silence the audio
2023-03-19 21:16:23 +01:00
Irmen de Jong
df2d7d4734
fix RPN comparison exprs
2023-03-19 16:08:48 +01:00
Irmen de Jong
6e4ae034b2
more Rpn optimizations
2023-03-19 00:48:12 +01:00
Irmen de Jong
3613162d09
fix RPN string comparisons
2023-03-18 16:55:03 +01:00
Irmen de Jong
9241479da4
add "-rpn" command line switch to transform exprs to RPN in codegen
2023-03-17 22:28:22 +01:00
Irmen de Jong
8ffca93cd5
added transform routine for expr -> RPN
2023-03-17 22:28:22 +01:00
Irmen de Jong
7fea0c124a
introduce PtRpn node to replace PtBinaryExpression later
2023-03-17 22:28:22 +01:00
Irmen de Jong
20dbdb20d2
renamed the cx16 VIA register variables to more meaningful names
2023-03-17 22:28:09 +01:00
Irmen de Jong
fd25e85d59
added unroll
loop construct
2023-03-14 23:37:49 +01:00
Irmen de Jong
199adbbcf0
IR: don't allow to have 2 same registers on instructions
2023-03-14 00:45:41 +01:00
Irmen de Jong
dc316fd7b4
IR: more optimal branch instructions for comparisons against zero
2023-03-13 23:17:53 +01:00
Irmen de Jong
03c5dab79d
refactor IR returnregs 2
2023-03-13 02:50:41 +01:00
Irmen de Jong
78a097585d
new IR call and return instructions to deal with returnregisters
2023-03-12 21:54:59 +01:00
Irmen de Jong
dc32318cec
fix possible string error on inlined subroutines
2023-03-12 18:16:48 +01:00
Irmen de Jong
e5e63cc5ac
catch wrong repeat value
2023-03-11 16:13:02 +01:00
Irmen de Jong
f40e0f786d
txt.width() and txt.height() added for vm target
2023-03-11 16:05:45 +01:00
Irmen de Jong
ebd9f1471b
fix crash when using const word as pointer and implement 2 missing assign codegen paths
2023-03-11 15:39:03 +01:00
Irmen de Jong
d76547ead4
don't crash on certain undefined symbols, give proper error instead
...
Also the error handlers in unit tests now de-duplicate messages just like the compiler itself does
2023-03-11 14:58:41 +01:00
Irmen de Jong
ed597423cd
fix problem with initializing certain array decls with single value
2023-03-11 00:43:30 +01:00
Irmen de Jong
f20ca06f85
give correct error when using memory mapped var as array pointer
2023-03-11 00:26:19 +01:00
Irmen de Jong
a636d3f394
give correct error on attempt to const array
2023-03-10 23:46:13 +01:00
Irmen de Jong
043df18daa
set X to bottom part of eval stack in irq handler. fixes #94
2023-03-10 23:29:34 +01:00
Irmen de Jong
f350137a14
fix array in place assignments
...
fixes balls and snow examples amongst others
2023-03-10 04:07:50 +01:00
Irmen de Jong
e779a07bce
allow when with byte 1,2,3 for word variables without having to cast the values to word explicitly
2023-03-09 22:15:56 +01:00
Irmen de Jong
c968bacb01
fix pokew() crash with certain address expressions
2023-03-08 23:29:57 +01:00
Irmen de Jong
48fed4e6fb
slight tweak to codegenerator backend interface
2023-03-08 00:14:38 +01:00
Irmen de Jong
fc253237c9
fix issues with reporting inlined subroutines as unused
2023-03-07 23:47:14 +01:00
Irmen de Jong
fd07ae5225
fix various IR file and symboltable issues
2023-03-07 19:40:11 +01:00
Irmen de Jong
8acd94fc89
avoid work
2023-03-05 12:32:58 +01:00
Irmen de Jong
448d176c24
fix vm crash on empty string
2023-03-04 15:35:54 +01:00
Irmen de Jong
fd269453a4
todos
2023-03-04 14:14:01 +01:00
Irmen de Jong
6e9025ebf2
cx16 fix irq statusbit handling and kefrenbars example
2023-03-03 21:58:08 +01:00
Irmen de Jong
00bc99cc7b
added cx16/stream-wav example, refactor pcmaudio code
2023-03-03 14:18:13 +01:00
Irmen de Jong
540b3ae2f4
tweak BinaryExpression splitting
2023-02-28 21:45:38 +01:00
Irmen de Jong
dbfe4140e1
improved import search paths
2023-02-28 20:08:11 +01:00
Irmen de Jong
ded2483fc0
cx16 startup code now properly turns off mouse cursor
2023-02-27 23:35:42 +01:00
Irmen de Jong
ba9268a09e
added -varshigh
compiler option to move BSS section.
...
Documented BSS a bit in the manual.
2023-02-22 22:44:29 +01:00
Irmen de Jong
fd5ebef488
cx16 startup code now also selects ram bank 1
2023-02-21 21:53:32 +01:00
Irmen de Jong
435b9d8973
get rid of 'noreinit' option for now, because it resulted in unreliable code
2023-02-20 23:29:16 +01:00
Irmen de Jong
92a07b87d2
clearer
2023-02-20 02:32:36 +01:00
Irmen de Jong
c3c82282ba
reinitGlobals option is clearer than the inverse
2023-02-19 19:09:29 +01:00
Irmen de Jong
dddf9a9396
remove explicit 'bss' from St var, changed to 'uninitialized'
2023-02-19 16:50:06 +01:00
Irmen de Jong
9ca6860ffa
tweak
2023-02-19 15:08:16 +01:00
Irmen de Jong
f7dd388954
remove unsupported floats.FTOSWRDAY routine. Fixes #96
2023-02-17 18:05:46 +01:00
Irmen de Jong
c59df6ec20
optimize isZpVar
2023-02-16 00:41:20 +01:00
Irmen de Jong
5c3f41f64d
reintroduce explicit PtAugmentedAssign ast node
2023-02-15 22:54:32 +01:00
Irmen de Jong
cf3523f49f
Merge branch 'codegen-on-new-ast'
2023-02-14 22:48:11 +01:00
Irmen de Jong
db794752cb
fix ast error on inline sub
2023-02-14 22:37:33 +01:00
Irmen de Jong
bceaebe856
fix crash on sort/reverse unused arrays
...
fixes #95
2023-02-14 00:26:29 +01:00
Irmen de Jong
3916de2921
attempt to clarify docs of cx16.numbanks()
2023-02-13 23:45:53 +01:00
Irmen de Jong
0cbc56b82e
remove unused ast print func
2023-02-13 00:19:48 +01:00
Irmen de Jong
b95608f68a
new common ICodeGeneratorBackend interface for all code generator classes
2023-02-12 23:52:54 +01:00
Irmen de Jong
b6e5dbd06c
optimized away VarDecl.subroutineParameter
2023-02-12 23:19:35 +01:00
Irmen de Jong
914f19be86
version 8.9
2023-02-12 17:38:13 +01:00
Irmen de Jong
75d486b124
fix variable node casting
2023-02-12 17:04:58 +01:00
Irmen de Jong
4914609485
local varnames and fix uninitialized parents
2023-02-12 16:00:58 +01:00
Irmen de Jong
75bd66326a
fix variable zpwish
2023-02-11 15:18:57 +01:00
Irmen de Jong
86c22636eb
Merge branch 'master' into codegen-on-new-ast
2023-02-09 23:05:54 +01:00
Irmen de Jong
30d20a453b
tweak SymbolTable and fix its unittest
2023-02-09 22:58:21 +01:00
Irmen de Jong
fe29d8a23f
tweak codegen of inline sub
2023-02-09 21:59:09 +01:00
Irmen de Jong
694d088160
some cleanups about asmsub return registers and types
2023-02-09 03:19:57 +01:00
Irmen de Jong
6aabbffc62
some cleanups
2023-02-09 02:34:18 +01:00
Irmen de Jong
79d0fb0b52
cx16.numbanks() now returns a word because the result can be >255
2023-02-08 00:51:34 +01:00
Irmen de Jong
edf56d34f8
doc about no conditional compilation, fixes #93
...
also added a note to MEMTOP about 0 result
2023-02-06 23:36:19 +01:00
Irmen de Jong
9f0074eef9
Merge branch 'master' into codegen-on-new-ast
...
# Conflicts:
# codeCore/src/prog8/code/ast/AstStatements.kt
2023-02-05 16:44:30 +01:00
Irmen de Jong
6733253826
added printer for Pt Ast tree
2023-02-05 16:42:06 +01:00
Irmen de Jong
f117805129
order
2023-02-05 12:36:32 +01:00
Irmen de Jong
c75b1581d2
lookup via new ST
2023-02-05 01:15:23 +01:00
Irmen de Jong
201b77d5b6
boolean vs byte cast fixing, and pointervar error
2023-02-02 00:57:20 +01:00