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
Irmen de Jong
9e85571a7b
fix pointer variable usage detection in other block
2025-08-05 17:39:22 +02:00
Irmen de Jong
6bd7752bac
working on 6502 pointer dereferencing
2025-08-04 20:22:13 +02:00
Irmen de Jong
4a1d05dd46
first 6502 codegen results
2025-08-03 16:10:00 +02:00
Irmen de Jong
c39d570b72
make more use of ISubType interface itself rather than casting it to StructDecl all the time
2025-07-29 22:59:31 +02:00
Irmen de Jong
1c9c5aeef7
todos
2025-07-28 23:29:18 +02:00
Irmen de Jong
82267b3f56
Merge branch 'master' into structs
...
# Conflicts:
# compiler/test/codegeneration/TestVariables.kt
# docs/source/_static/symboldumps/skeletons-c128.txt
# docs/source/_static/symboldumps/skeletons-c64.txt
# docs/source/_static/symboldumps/skeletons-cx16.txt
# docs/source/_static/symboldumps/skeletons-pet32.txt
# docs/source/_static/symboldumps/skeletons-virtual.txt
# docs/source/todo.rst
# examples/test.p8
2025-07-26 12:43:13 +02:00
Irmen de Jong
11186f1dbe
make sure that the virtual target -emu (vm) only runs the actual .p8ir file ( fixes #172 )
...
added emudbg.console_nl()
2025-07-26 11:19:01 +02:00
Irmen de Jong
8ede098154
fix pointer array initialization
2025-07-06 19:42:54 +02:00
Irmen de Jong
e14c3f8b59
code cleanups
2025-07-06 00:52:37 +02:00
Irmen de Jong
54d41b7f6f
fixed a[i]^^
2025-07-05 23:54:08 +02:00
Irmen de Jong
2119817e4a
Merge branch 'master' into structs
2025-06-24 21:14:53 +02:00
Irmen de Jong
be31e190d2
shuffle arguments of 64tass command so the additional assembler options from custom targets actually work
2025-06-19 22:33:50 +02:00
Irmen de Jong
49a4d9ba37
allow str as struct field type (^^ubyte) and strings in struct initializers
2025-06-15 00:29:59 +02:00
Irmen de Jong
37ecdc47b3
allow ptr1^^ = ptr^^ (replaces it with memcopy)
2025-05-29 16:34:47 +02:00
Irmen de Jong
112ca3cc53
allow sizeof(&thing), add sys.SIZEOF_POINTER
2025-05-29 15:58:29 +02:00
Irmen de Jong
8a0c02e264
Merge branch 'refs/heads/master' into structs
...
# Conflicts:
# codeCore/src/prog8/code/target/NormalMemSizer.kt
# codeCore/src/prog8/code/target/VMTarget.kt
# compiler/src/prog8/compiler/BuiltinFunctions.kt
# compilerAst/src/prog8/ast/antlr/Antlr2Kotlin.kt
# examples/test.p8
2025-05-29 13:42:16 +02:00
Irmen de Jong
3b1b0985c1
make sizeof(float) work, so you don't have to use sys.SIZEOF_FLOAT anymore etc.
...
define sys.SIZEOF_FLOAT in terms of sizeof(float)
2025-05-29 12:38:03 +02:00
Irmen de Jong
23a853db1e
Merge branch 'master' into structs
...
# Conflicts:
# compiler/src/prog8/compiler/astprocessing/AstChecker.kt
# examples/test.p8
2025-05-23 19:00:59 +02:00
Irmen de Jong
9da430ffeb
vm: more complete V-flag handling. somd doc and todo updates.
2025-05-23 18:58:14 +02:00
Irmen de Jong
f70341df1b
fix ptr errors
2025-05-19 20:06:31 +02:00
Irmen de Jong
adf5600a9b
simplify
2025-05-18 18:37:19 +02:00
Irmen de Jong
65e34d4989
stricter types for & operator (address-of), and fix invalid recursive subroutine flagging related to struct definition
2025-05-17 11:32:54 +02:00
Irmen de Jong
1a69a2f1bc
fix some ptr vs uword type checks
2025-05-16 20:31:15 +02:00
Irmen de Jong
435faafaad
fix split-word storage (lsb/msb) of arrays of pointers
2025-05-16 17:53:15 +02:00
Irmen de Jong
0e64a22910
tweak address-of types
2025-05-16 17:53:15 +02:00
Irmen de Jong
913ab03963
get rid of invalid ARRAY_STRUCT data type (arrays of struct instance are not yet supported)
2025-05-14 20:43:00 +02:00
Irmen de Jong
924e28e9b3
Merge branch 'master' into structs
...
# Conflicts:
# codeGenCpu6502/src/prog8/codegen/cpu6502/AsmGen.kt
# compiler/src/prog8/compiler/astprocessing/CodeDesugarer.kt
# compiler/src/prog8/compiler/astprocessing/SimplifiedAstMaker.kt
# compilerAst/src/prog8/ast/AstToSourceTextConverter.kt
# compilerAst/src/prog8/ast/antlr/Antlr2Kotlin.kt
# compilerAst/src/prog8/ast/walk/AstWalker.kt
# compilerAst/src/prog8/ast/walk/IAstVisitor.kt
# docs/source/todo.rst
# examples/test.p8
# parser/src/main/antlr/Prog8ANTLR.g4
2025-05-11 23:23:06 +02:00
Irmen de Jong
37d4055036
translate newline '\n' to char code 13 in various encodings such as ISO (used to be 10)
...
This means that when printed, such newlines will now properly go to the next line in these encodings too (ISO variants, KATAKANA).
2025-05-11 19:45:24 +02:00