Irmen de Jong
afb458a7da
fix crash in long address-of
2025-11-08 22:24:37 +01:00
Irmen de Jong
b7ba7c50b1
handle &ptr[offset] for non-uword ptr
2025-11-08 20:31:28 +01:00
Irmen de Jong
833e463525
String indexing bound check now includes the terminating 0 character. Also fix negative indexes on strings.
...
fixes #190
2025-11-07 23:20:44 +01:00
Irmen de Jong
6611e4e092
improve error message
2025-11-07 01:22:41 +01:00
Irmen de Jong
1f31cb18e4
IR: fix missing source lines in p8ir file
2025-11-06 00:39:31 +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
c353dd40bf
put on..call jumplist in correct scope, fixes #197
2025-11-03 23:46:49 +01:00
Irmen de Jong
928ef6bbaa
fix on..call parse problem, also struct name cannot be a keyword
2025-11-03 21:21:07 +01:00
Irmen de Jong
4d3f0ec223
sizeof(string) is now defined
2025-11-01 21:19:30 +01:00
Irmen de Jong
b73c958c4a
ir immediate syntax fixes
2025-11-01 16:55:00 +01:00
Irmen de Jong
0cd8c4f87e
add strings.ncopy and nappend (length limited)
2025-10-31 21:22:15 +01:00
Irmen de Jong
b02a8ed954
strings can no longer be assigned by-value. Use strings.copy() instead. Fixes #189
2025-10-31 19:22:40 +01:00
Irmen de Jong
b1e07f3fdb
better error when trying to use a const pointer (which is not supported yet)
2025-10-30 20:58:21 +01:00
Irmen de Jong
a5e827e40f
implement some more long array operations
2025-10-30 01:20:59 +01:00
Irmen de Jong
9c2bcab4a5
fix more ptr/long issues
2025-10-28 23:08:12 +01:00
Irmen de Jong
2f07f41664
detect self-referencing aliases
2025-10-23 21:24:14 +02:00
Irmen de Jong
7027304597
put some upper bounds on more internal compiler loops
2025-10-23 20:37:44 +02: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
ebc738b132
'hack' to allow unsigned long constants such as $ffffffff to be assigned to longs without casts
2025-10-20 00:33:40 +02:00
Irmen de Jong
0c0affd1bf
cx16 diskio.load_size() now returns full long size. Fixes #184
2025-10-19 21:18:46 +02:00
Irmen de Jong
c0286e3349
added txt.size() to return text screen width and height in 1 call. Also fixed txt.width/height on the C128 (where SCREEN reports 1 less for them...)
2025-10-16 00:33:14 +02:00
Irmen de Jong
be74290ddc
many more TODO messages now log proper source positions
2025-10-15 17:58:40 +02:00
Irmen de Jong
f5ce744748
undo the math crc param optimization that now causes the footgun warning when you import math. + doc fix about arithmetic expressions
2025-10-14 00:31:29 +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
e962431139
added bcd.addtol()/subfroml() for in-place long calculations
...
fix long overflow messages, IR register type error
2025-10-12 22:08:10 +02:00
Irmen de Jong
d2719d23f5
C128: adjust MEMTOP value to $C000 during runtime (41 Kb of available space because Basic ROM is banked out)
2025-10-12 15:02:36 +02:00
Irmen de Jong
d69eead6d8
fix abs(long), mklong(), mklong2(), peekl(), pokel()
2025-10-12 14:17:27 +02:00
Irmen de Jong
6db3611d93
fix typecast error when assigning pointer to long
2025-10-12 12:44:28 +02:00
Irmen de Jong
a84320c7e2
add sgn(long) support, fix sgn() result type in IR
2025-10-12 12:22:32 +02:00
Irmen de Jong
fc38be6376
fix a const long value hex asm mistake, fix conv.str_l(0) empty output
2025-10-12 01:52:35 +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
796d3242e1
optimize word pointer indexing and fix long pointer indexing assignment (pokel)
2025-10-11 15:59:27 +02:00
Irmen de Jong
07bb5c36bd
avoid fallback JSR peek for common case pointer+offset
2025-10-11 04:45:03 +02:00
Irmen de Jong
0c59ad70d4
fix aliased pointer deref problem
2025-10-10 22:13:24 +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
f85ccd837d
tweak conv.str_l() so that it properly reuses the conv.string_out buffer
2025-10-08 22:33:03 +02:00
Irmen de Jong
0f564b301d
implement peekl() and pokel()
2025-10-07 00:53:00 +02:00
Irmen de Jong
f4f34fc2ed
added symboltable into CompilationResult because it might be useful to inspect in tests
2025-10-07 00:26:43 +02:00
Irmen de Jong
5eb7074172
fix gfx_lores and gfx_hires disc() inaccurracy
2025-10-05 23:21:19 +02:00
Irmen de Jong
9aff280d10
fix monogfx.disc() inaccurracy
2025-10-05 23:03:53 +02:00
Irmen de Jong
44741a8e32
fix c64 graphics.disc() inaccurracy
2025-10-05 22:57:39 +02:00
Irmen de Jong
37535f2913
optimize charfade example, added textspotlight example
2025-10-05 21:18:47 +02:00
Irmen de Jong
ec9475c308
use pointer arithmetic instead of raw peeks and pokes
2025-10-05 18:38:01 +02:00
Irmen de Jong
b961ce97d6
add -libdump and -libsearch compiler options
2025-10-05 17:07:55 +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
4195e3968a
remove needless library module imports in unit tests
2025-10-05 13:10:02 +02:00
Irmen de Jong
e63921009c
added math.mul32(), verafx.muls now returns long
2025-10-04 21:54:53 +02:00
Irmen de Jong
db1aa3f257
math.crc32() now returns the crc value as a long
2025-10-04 17:40:49 +02:00