Irmen de Jong
e514eeba17
added c64.banks() and c64.getbanks() and c64 banking example
2024-11-04 20:14:30 +01:00
Irmen de Jong
c11a52b278
added cx16 banking example
2024-11-03 21:52:04 +01:00
Irmen de Jong
85e87dfe2e
consolidate @rombank and @rambank into just @bank
2024-11-03 21:15:11 +01:00
Irmen de Jong
cb47e2c149
documented the romsub bank additions
2024-11-03 20:39:44 +01:00
Irmen de Jong
0fc9aa6b2d
cx16: romsubs of the audio routines now have the rom bank tag.
...
cx16: removed 'audio' module again, no longer needed to have these stubs
2024-11-03 18:35:10 +01:00
Irmen de Jong
155896c4c7
added @rombank and @rambank bank number tags on romsubs
...
on cx16 and c128 targets the compiler then automatically inserts a CALLFAR instead of a regular JSR to automatically do the bank switching.
2024-11-03 18:19:31 +01:00
Irmen de Jong
9f84aa5fb2
fix double %option merge problem where it deleted all of the blocks
2024-11-03 13:36:14 +01:00
Irmen de Jong
a231872821
tip for using aliases for the virtual registers r0-r15
2024-11-02 22:09:20 +01:00
Irmen de Jong
3b798097b9
added memtop to machine definition and asm source code check
...
added %memtop directive
2024-11-02 00:59:07 +01:00
Irmen de Jong
6fb05bdefc
replaced deprecated cx16 ZSOUND example by new ZSMKIT examples
2024-11-01 23:17:23 +01:00
Irmen de Jong
89425088ce
taking address of a split word array is no longer a fatal error but a warning and the array is turned back into a normal word array.
2024-11-01 20:18:31 +01:00
Irmen de Jong
925b9d845d
fix split array possible compiler loop (due to wrong datatype replacement)
2024-11-01 19:18:03 +01:00
Irmen de Jong
ad074076c2
remove last references to gfx2 module
2024-11-01 18:41:36 +01:00
Irmen de Jong
a2194c43a6
fix benchmark
2024-11-01 03:50:13 +01:00
Irmen de Jong
4b23b1dc86
don't always import math automatically anymore
2024-11-01 03:39:52 +01:00
Irmen de Jong
9005c7994a
added Linear Interpolation (LERP) functions: math.lerp(), floats.lerp(), floats.lerp_fast()
2024-11-01 02:05:48 +01:00
Irmen de Jong
4a47e15b1c
fix IR if expression sometimes lacking a cmpi after calculation of the condition value
...
VM/IR: add a returni immediate value return instruction to replace certain returnr's
2024-11-01 01:04:16 +01:00
Irmen de Jong
09cbdf410a
added diskio.exists(), made f_close_w() idempotent like f_close() already was
2024-10-31 21:25:22 +01:00
Irmen de Jong
df6a43c7f0
gfx_lores now has drawmode_eor() (used by Paint, for example)
2024-10-31 01:28:29 +01:00
Irmen de Jong
4ce130dc8b
split up cx16.gfx2 module into gfx_lores and gfx_hires4 modules
2024-10-30 22:21:07 +01:00
Irmen de Jong
73609636c5
gfx_lores.set_screen_mode() is now gfx_lores.graphics_mode()
...
adding all missing routines from gfx2 to gfx_lores
2024-10-30 21:39:37 +01:00
Irmen de Jong
eeeb8d81f4
merge now also allows monkeypatching if signature is 100% identical
2024-10-30 01:15:56 +01:00
Irmen de Jong
518e5a30c2
slight parser rule tweak
2024-10-29 23:18:17 +01:00
Irmen de Jong
bbba4b3d60
new block merge semantics and implementation
2024-10-29 22:57:54 +01:00
Irmen de Jong
967adb9a87
Merge branch 'beanshell'
2024-10-29 20:55:09 +01:00
Irmen de Jong
483d193ced
vm: implemented reading/writing files in diskio
2024-10-29 02:34:53 +01:00
Irmen de Jong
62458216c9
first skeleton of LSP language server
2024-10-28 21:42:20 +01:00
Irmen de Jong
570b574b93
added sys.memcmp
2024-10-28 00:41:26 +01:00
Irmen de Jong
a82f211f9a
added alias statement
2024-10-28 00:36:10 +01:00
Irmen de Jong
4b4af9b527
no longer silently add RTS to asmsubs that don't have one
2024-10-27 13:49:00 +01:00
Irmen de Jong
28b383f888
docs and syntax for @alignxxx and %align
2024-10-27 00:47:52 +02:00
Irmen de Jong
40ce7725a1
cleanup c64 sprite examples
2024-10-26 21:36:11 +02:00
Irmen de Jong
1f2d46628e
remove %option align_xxx (block level alignment, as we now have better alternatives)
2024-10-26 21:18:34 +02:00
Irmen de Jong
c9535049c8
%align directive and @align64
2024-10-26 20:58:35 +02:00
Irmen de Jong
9317cf8a35
sorting aligned vars to shrink prg size
2024-10-26 18:33:51 +02:00
Irmen de Jong
1cd754f05d
adding @alignword/page on individual variables
2024-10-26 17:00:38 +02:00
Irmen de Jong
84d9040b57
make BIT test also work on signed byte variables. Fixed an address-of optimization error.
2024-10-23 22:34:18 +02:00
Irmen de Jong
fdd18c615c
more ifexpresssion codegen tweaks
2024-10-23 21:04:55 +02:00
Irmen de Jong
c14f6cfc2b
more optimal if expression code
2024-10-22 23:49:24 +02:00
Irmen de Jong
326eab3dd1
unit test for defer, describe defer and if expression in docs
2024-10-22 22:19:49 +02:00
Irmen de Jong
9927af1095
about var inits
2024-10-22 01:08:42 +02:00
Irmen de Jong
a6159702da
defers are now only registered/called when flow of control actually reached the defer statement
...
a defer statement sets its corresponding bit in a bitmask that is shifted in the defer handler routine to see what defer blocks to call.
2024-10-21 00:55:51 +02:00
Irmen de Jong
0247fb0d84
some ast2 var tweaks
2024-10-21 00:20:54 +02:00
Irmen de Jong
9851d14fb9
added if expression: ubyte a = if b>0 44 else 55
...
it doesn't generate the best code yet, like regular ifs do.
2024-10-19 15:34:04 +02:00
Irmen de Jong
a40d120f2a
more defer sanity checks
2024-10-18 22:32:49 +02:00
Irmen de Jong
2a52241f1c
defer is now done *after* calculating a return value
2024-10-18 20:56:27 +02:00
Irmen de Jong
ce7d094adb
Zig-like "defer" to clean up stuff when leaving the scope of the current routine.
2024-10-18 01:30:20 +02:00
Irmen de Jong
a0cf1889a3
omit more redundant 0-initializations ("stz's")
2024-10-17 22:51:39 +02:00
Irmen de Jong
38ef394e15
IR codegen: global vars with numeric initialization value are now also put into the VARIABLESWITHINIT section rather than requiring explicit code instructions to initialize them in INITGLOBALS.
...
Note that something similar, such as putting those variables inline in the program initialized with their value and all, cannot be done for the 6502 codegen: the program needs a mechanism to reset ALL variables when it runs a second time.
2024-10-16 22:15:51 +02:00
Irmen de Jong
abbf7c7cb0
compiler name change: prog8c (was p8compile)
...
fat jar file also changed: prog8c-X.Y-all.jar (was: prog8compiler-X.Y-all.jar)
2024-10-16 18:36:19 +02:00
Irmen de Jong
cbc4b75e50
IR now contains "bool" as a type instead of already erasing it into "ubyte". (boolean literals still are simply just 1 and 0 values)
2024-10-16 01:03:35 +02:00
Irmen de Jong
65ddcf91d0
remove unused syscalls
2024-10-15 18:24:55 +02:00
Irmen de Jong
e9edffa9f0
remove support for array-to-array assignments (other than initialization of variable declaration)
...
Just use an explicit sys.memcopy(src, dest, sizeof(dest)) or assign array members individually.
2024-10-13 20:02:43 +02:00
Irmen de Jong
aef211e5f3
stricter array literal element type handling (number,bool,address-of).
...
More consistent implicit address-of handling if array literals contain by-ref identifiers (such as subroutine names)
2024-10-13 17:46:41 +02:00
Irmen de Jong
66829203d8
New [x]*42 syntax to create array literals with repeated values (like "abc"*10 already exists for strings)
...
Should be used in place of array initializer expressions that contain only a single numeric value to initialize the whole array with. That isn't supported anymore.
2024-10-13 05:16:08 +02:00
Irmen de Jong
7a0eaf3148
Remove array initialization by single value.
...
New compiler and kotlin version.
2024-10-13 04:31:56 +02:00
Irmen de Jong
03412cacba
added examples/cx16/balloonflight.p8
2024-10-13 00:51:07 +02:00
Irmen de Jong
f43c14bd78
doc
2024-10-12 17:29:28 +02:00
Irmen de Jong
ab7dde1450
todo
2024-10-12 13:04:19 +02:00
Irmen de Jong
8d9bc2f5ff
fixing all sorts of things about assigning arrays to arrays
2024-10-12 12:33:46 +02:00
Irmen de Jong
78ec1e7512
version
2024-10-09 22:21:04 +02:00
Irmen de Jong
7e38d26c33
added several color fade functions to the palette module (cx16)
2024-10-09 21:48:04 +02:00
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
c78b7b1a24
added verafx.mult16()
2024-09-28 01:00:28 +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
4acf38031a
feedback
2024-09-27 20:59:31 +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
1326498802
update skeleton scripts
2024-09-26 00:12:29 +02:00
Irmen de Jong
b7ebd8c4a6
update cx16/audioroutines example to use the new audio module
2024-09-26 00:08:25 +02:00
Irmen de Jong
4bcb2bdede
added benchmark program
2024-09-25 23:32:45 +02:00
Irmen de Jong
d27f3eb8a4
remove wrong print_f mention
2024-09-24 23:58:39 +02:00
Irmen de Jong
d3e4481112
fix asm optimizer bug where it erroneously discarded rts
with a label
2024-09-22 21:41:41 +02:00
Irmen de Jong
1d1d6b3d98
tweak c64 balloonflight example etc.
2024-09-22 13:20:12 +02:00
Irmen de Jong
8dbfb8ab76
move community note to start page
2024-09-20 20:12:33 +02:00
Irmen de Jong
585f6ffc9b
version 10.4.1
2024-09-20 18:43:08 +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