Irmen de Jong
|
2a53dbc1f3
|
tweaks
|
2026-02-27 01:56:55 +01:00 |
|
Irmen de Jong
|
63cba4825a
|
doc tweaks
|
2026-02-26 01:44:36 +01:00 |
|
Irmen de Jong
|
08e3652924
|
sgn() can look directly at msb if arg is a variable
|
2026-02-24 22:11:50 +01:00 |
|
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
|
1b5dd980df
|
optimize result register cases for mklong() and mkword()
|
2026-02-23 02:07:43 +01:00 |
|
Irmen de Jong
|
f6b59c6832
|
optimize some result register cases for peekw()
|
2026-02-23 00:54:12 +01:00 |
|
Irmen de Jong
|
fe8d904792
|
fixing result register assignment from builtin functions
|
2026-02-22 19:54:21 +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
|
b9a6deea25
|
implement ror / rol on ptr expressions
|
2026-02-08 21:20:13 +01:00 |
|
Irmen de Jong
|
ed02b84f7d
|
micro optimization for containment checks in compiler
|
2026-02-06 02:43:12 +01:00 |
|
Irmen de Jong
|
ee492a1e9a
|
some more optimized swap() code paths
|
2026-01-28 00:07:10 +01:00 |
|
Irmen de Jong
|
b2983e912d
|
swap longs now uses R14+R15 as temporary storage instead of R0+R1
|
2026-01-25 17:02:47 +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
|
4661d3bada
|
implement simple array element swap()
|
2026-01-24 18:41:25 +01:00 |
|
Irmen de Jong
|
b99b054a09
|
cx16: add missing extapi16 call numbers
tweak swap(long,long) and swap(ptr^^, ptr^^)
|
2026-01-24 11:51:42 +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
|
4971ebd41f
|
pet32: added floats support!
|
2026-01-18 23:32:19 +01:00 |
|
Irmen de Jong
|
a385412e70
|
smaller floats.internal_long_to_float()
|
2026-01-17 20:38:30 +01:00 |
|
Irmen de Jong
|
d477e9b2bd
|
pet32: added VIA registers (in 'pet' namespace) and petsnd module to play sound.
|
2026-01-16 00:15:04 +01:00 |
|
Irmen de Jong
|
620793011e
|
way faster long to float conversion routine, fixes #202
|
2026-01-13 22:55:37 +01:00 |
|
Irmen de Jong
|
8c4944d703
|
optimized long and float copying through pointers
|
2026-01-12 00:19:21 +01:00 |
|
Irmen de Jong
|
f5fbb5f930
|
implement some missing float copy
|
2026-01-11 22:06:21 +01:00 |
|
Irmen de Jong
|
b51e116b63
|
optimize expression: uwordvar + 256 and variants to only manipulate msb
|
2026-01-10 22:50:33 +01:00 |
|
Irmen de Jong
|
34b228cfca
|
fix peek/poke error with const offset
|
2026-01-10 20:58:16 +01:00 |
|
Irmen de Jong
|
db38c27224
|
optimized peeks with a ubyte variable offset
|
2026-01-10 00:22:39 +01:00 |
|
Irmen de Jong
|
560013e58b
|
optimized pokes with a ubyte variable offset
|
2026-01-09 22:36:04 +01:00 |
|
Irmen de Jong
|
cdb41f4352
|
better errors when multiplying string or array with bogus value
|
2026-01-09 18:43:41 +01:00 |
|
Irmen de Jong
|
f69b293b7f
|
optimized some more cases of poke and peek
|
2026-01-09 02:57:12 +01:00 |
|
Irmen de Jong
|
d4bf0bf5b7
|
optimized simple cases of pokel()
|
2026-01-09 01:21:11 +01:00 |
|
Irmen de Jong
|
8c6a95f5e2
|
optimized simple cases of v = peekl()
|
2026-01-08 23:37:06 +01:00 |
|
Irmen de Jong
|
6301a8b040
|
optimize msb(long<<8/16/24) into single byte accesses (skip the whole shift)
|
2026-01-08 22:38:07 +01:00 |
|
Irmen de Jong
|
9d7049a659
|
optimized long>>8, long>>16, long>>24
|
2026-01-08 00:31:39 +01:00 |
|
Irmen de Jong
|
bbfb2eb367
|
optimized longvar = lptr^^
|
2026-01-07 23:30:35 +01:00 |
|
Irmen de Jong
|
447271f3f2
|
implemented missing byte ptr assignment
|
2026-01-07 22:42:53 +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
|
652b585ea4
|
code style
|
2026-01-07 00:48:45 +01:00 |
|
Irmen de Jong
|
2913fa47b2
|
fix pointer assignment TODO
|
2026-01-07 00:31:06 +01:00 |
|
Irmen de Jong
|
d6e4175e21
|
fix msb(a+b), lsb(a+b)
|
2026-01-07 00:20:49 +01:00 |
|
Irmen de Jong
|
3a0add60fd
|
optimize msb(lsw(longvar)) into @(&longvar+1)
|
2026-01-06 22:58:45 +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
|
75156f7dbd
|
fix optimized long comparison against 0
|
2026-01-05 19:08:56 +01:00 |
|
Irmen de Jong
|
c1c88e0327
|
improved 6502 codegen for memory byte access into structs
|
2026-01-02 21:03:13 +01:00 |
|