Irmen de Jong
bdbdf6e5cd
add lmh(longvalue) builtin function that returns the low, mid, hi (=bank) bytes of a long
...
symboldumps now also contain the builtin functions
2026-02-23 21:30:39 +01:00
Irmen de Jong
9736ac19d1
implementing multiple return values for builtin functions
2026-02-22 19:54:21 +01:00
Irmen de Jong
093be9f2dd
sys.push(), sys.pop() etc etc are now builtin functions again push() pop() to avoid storing value in temporary variables
...
this means that all of the syslib.p8 library files no longer contain all those stack related asmsubs
2026-02-21 02:11:34 +01:00
Irmen de Jong
2613d45cd5
swap() is now a statement instead of a builtin function call
2026-02-17 20:56:21 +01:00
Irmen de Jong
74ca190ce0
long args call convention is to pass via parameter variable not R14R15
2026-02-15 17:36:09 +01:00
Irmen de Jong
6a0b22bb64
implement sqrt(long)
2026-02-15 17:11:31 +01:00
Irmen de Jong
07be7f0154
fix long argument @R0R1 register usage in regular subroutines
2026-02-15 14:54:47 +01:00
Irmen de Jong
f95f568319
fix mflpt5 overflow error message
2026-02-12 02:29:10 +01:00
Andy De George
099514a2c0
Fix error output file path: Encode to URI ( #214 )
2026-02-06 22:09:58 +01:00
Irmen de Jong
ed02b84f7d
micro optimization for containment checks in compiler
2026-02-06 02:43:12 +01:00
Irmen de Jong
10ae42ed59
suggest import for undefined block symbols, update github links
2026-01-25 05:45:33 +01:00
Irmen de Jong
9a5edeebbc
upgrade to kotlin 2.3.0
2026-01-24 00:29:45 +01:00
Irmen de Jong
2e0db6f211
add swap() builtin for optimized value swaps without the need for a temporary variable
2026-01-23 23:17:10 +01:00
Irmen de Jong
51ac096a31
add a -warnimplicitcasts compiler option
2026-01-23 03:06:53 +01:00
Irmen de Jong
aac7d68455
fix watch mode to clear file cache every cycle
2026-01-14 20:16:33 +01:00
Irmen de Jong
8c4944d703
optimized long and float copying through pointers
2026-01-12 00:19:21 +01:00
Irmen de Jong
bbfb2eb367
optimized longvar = lptr^^
2026-01-07 23:30:35 +01:00
Irmen de Jong
78d6d2d59a
breaking change: renamed R0R1_32 etc combined register parameters to just R0R1, R2R3, etc etc (_32 suffix is removed to make it more consistent with the other existing register names)
2026-01-07 21:56:16 +01:00
Irmen de Jong
bc4470aeda
remove bsb() again - too confusing?
2026-01-06 22:39:04 +01:00
Irmen de Jong
97dade3655
fix setmsb() on long types
2026-01-06 22:11:58 +01:00
Irmen de Jong
54f23387d0
added bsb(long) builtin function that returns the bank byte of the long value (bits 16-23)
2026-01-06 20:56:03 +01:00
Irmen de Jong
77161e0f39
avoid separate definitions for list of simple builtin functions
2026-01-06 18:19:15 +01:00
Irmen de Jong
aa3bbbb867
tweaks to wav streaming examples
2025-12-23 05:32:28 +01:00
Irmen de Jong
1682400988
fix missing cx16 virtual register symbols in asm file (bool and long variants)
...
fix actually relocating all of them in the cx16 module
pet32 and c128 targets now also relocate them to ZP if there is space
2025-12-22 17:56:25 +01:00
Irmen de Jong
e57d9f59a2
fix long 0 argument to asmsub with 32-bits combined virtual register to pass it in
2025-12-21 22:23:17 +01:00
Irmen de Jong
b1ef863c7f
make $8000000 a valid long integer (-2147483648)
2025-11-26 23:10:59 +01:00
Irmen de Jong
bc8ba252a5
made Position line, col, endcol all 1-based
...
added a precise (but slow) back face culling routine to the cobra-mk3 example
2025-11-05 00:25:43 +01:00
Irmen de Jong
6a70fb0480
deal with invalid sqrt results (negative argument), allow sqrt of longs (like floats)
2025-10-21 21:01:03 +02:00
Irmen de Jong
68066acdec
changed (and fixed) msb(long) and lsb(long)
2025-10-13 21:34:03 +02:00
Irmen de Jong
307796f115
fixed some bugs in optimizing long values
2025-10-12 23:15:42 +02:00
Irmen de Jong
dfc720557c
fix some more long hex value comparisons
2025-10-12 04:40:50 +02:00
Irmen de Jong
598e70c49a
allow negative values on poke and pokew without an explicit cast
2025-10-11 16:39:36 +02:00
Irmen de Jong
53ce688cc5
fix pointer type check for R0-R15 subroutine arg
2025-10-10 00:54:52 +02:00
Irmen de Jong
4ed92d71a7
remove "@split" tag
...
The default is to split word arrays. If you need your word array to not be split, use @nosplit on the array.
2025-10-05 17:06:21 +02:00
Irmen de Jong
3e1386a987
remove the -dontsplitarrays compiler option
...
it was still there for backward compatibility reasons with really old prog8 code. If you need a word array to be not split, just use @nosplit on the array.
2025-10-05 14:44:29 +02:00
Irmen de Jong
8abdb837b2
fix long equality comparisons
2025-10-04 17:21:39 +02:00
Irmen de Jong
f9b0bfe31b
implement rol() and ror() on longs (also rol2 and ror2 and abs)
2025-10-03 01:22:24 +02:00
Irmen de Jong
e0107bacbd
implement long << >> expressions
2025-10-03 01:22:24 +02:00
Irmen de Jong
b3bd2a6a09
fixed a bunch of long type handling
2025-10-03 01:22:24 +02:00
Irmen de Jong
b058f1c7c2
implement mklong(a,b,c,d) and mklong2(w1,w2)
2025-10-03 01:22:24 +02:00
Irmen de Jong
3e07b6ca70
adding long arrays
2025-10-03 01:22:24 +02:00
Irmen de Jong
d66dc664de
work on longs
2025-10-03 01:22:24 +02:00
Irmen de Jong
a611406020
IR: add compilerversion attribute to p8ir file
2025-09-30 22:07:04 +02:00
Irmen de Jong
f6c8e693a5
add offsetof()
2025-09-17 23:30:15 +02:00
Irmen de Jong
8b48a295b6
allow struct initializers to occur in array literals
2025-09-14 18:16:46 +02:00
Irmen de Jong
28df08eea8
introduce P8ZP_SCRATCH_PTR temporary zp pointer to avoid clobbering W1,W2
2025-09-01 23:56:31 +02:00
Irmen de Jong
8e53c83844
optimize certain ptr+value expression on 6502
2025-08-24 05:46:49 +02:00
Irmen de Jong
4a8d5def84
code cleanups, pointer TODOs, docs dark mode
2025-08-16 11:25:18 +02:00
Irmen de Jong
44285b9b5d
more basic pointer inplace operations
2025-08-06 00:32:15 +02:00
Irmen de Jong
a68f477d61
Merge branch 'master' into structs6502
...
# Conflicts:
# docs/source/todo.rst
# examples/test.p8
2025-08-05 23:29:58 +02:00