Irmen de Jong
|
c838821615
|
refactor fuction arguments codegen a bit
|
2021-11-27 21:14:21 +01:00 |
|
Irmen de Jong
|
e8e25c6fd6
|
added sys.push() and sys.pop() to put values on cpu stack. Added missing builtin functions to syntax-files.
|
2021-11-27 18:09:15 +01:00 |
|
Irmen de Jong
|
62485b6851
|
allow assigns to asmsub parameters (registers), but this is not very useful in practice.
|
2021-11-27 15:41:44 +01:00 |
|
Irmen de Jong
|
54025d2bf5
|
small refactor and spelling fixes
|
2021-11-27 14:49:18 +01:00 |
|
Irmen de Jong
|
f5ebf79e71
|
make sure X register is also saved if needed when GoSub is used
|
2021-11-26 22:11:52 +01:00 |
|
Irmen de Jong
|
58d9c46a9b
|
got rid of old makeScopedName routine
|
2021-11-26 20:56:30 +01:00 |
|
Irmen de Jong
|
e4648e2138
|
proper rounding of builtin functions that return int from float
|
2021-11-26 20:32:12 +01:00 |
|
Irmen de Jong
|
110e047681
|
replace subroutine calls (statement) by GoSub
|
2021-11-26 19:47:01 +01:00 |
|
Irmen de Jong
|
ff715881bc
|
allow scoped identifiers to reference a subroutine parameter directly.
also for asmsubroutines, but the asm generation for that is not yet done.
|
2021-11-21 23:21:39 +01:00 |
|
Irmen de Jong
|
8095c4c155
|
added GoSub node (internal use only later for calling subroutines)
|
2021-11-21 16:23:48 +01:00 |
|
Irmen de Jong
|
8887e6af91
|
fix substituting 0 only if its actually the same variable that's substituted
|
2021-11-21 12:34:57 +01:00 |
|
Irmen de Jong
|
3c39baf1d6
|
don't optimize seemingly redundant assembly instructions away that manipulate IO memory space
|
2021-11-21 03:24:03 +01:00 |
|
Irmen de Jong
|
c0035ba1a2
|
char encodings now use UByte type instead of short
|
2021-11-21 00:07:17 +01:00 |
|
Irmen de Jong
|
107935ed31
|
add some more const folding patterns
|
2021-11-20 22:47:49 +01:00 |
|
Irmen de Jong
|
31491c62c5
|
add some more const folding patterns
|
2021-11-20 22:40:12 +01:00 |
|
Irmen de Jong
|
eacf8b896a
|
fix augmentable check to align with what the asmgen understands
|
2021-11-20 22:06:51 +01:00 |
|
Irmen de Jong
|
74db5c6be7
|
fix referencesIdentifier() and better removal of unnecessary assignments
|
2021-11-20 17:41:41 +01:00 |
|
Irmen de Jong
|
8f379e2262
|
give an error when initializing an integer var with a float value instead of silently rounding
|
2021-11-18 01:56:11 +01:00 |
|
Irmen de Jong
|
fa11a6e18b
|
removed faulty and too aggressive assembly optimization of double-store
|
2021-11-18 01:43:22 +01:00 |
|
Irmen de Jong
|
6af3209d4d
|
add more const foldings
|
2021-11-17 00:57:00 +01:00 |
|
Irmen de Jong
|
5d362047e2
|
add some more comparison expression optimizations to compare against 0 if possible
|
2021-11-17 00:04:52 +01:00 |
|
Irmen de Jong
|
f48d6ca9f8
|
simplified NumericLiteral to always just contain a Double instead of a Number for the value
|
2021-11-16 23:52:54 +01:00 |
|
Irmen de Jong
|
c80df4140b
|
until-loop condition now also simplified to avoid stack-eval
|
2021-11-14 22:51:02 +01:00 |
|
Irmen de Jong
|
53e1729e2f
|
introduce option to use internal scratch variables via prog8_lib definitions (ony for compiler, not for user code!)
|
2021-11-14 16:01:54 +01:00 |
|
Irmen de Jong
|
ab2d1122a9
|
conditional expressions are optimized more intelligently (simple ones are not split off in separate assignments)
|
2021-11-14 12:38:56 +01:00 |
|
Irmen de Jong
|
c858ceeb58
|
compiler shouldn't use cx16.r15 as temp var
|
2021-11-14 02:38:59 +01:00 |
|
Irmen de Jong
|
00c6f74481
|
tweak temp float
|
2021-11-13 12:56:59 +01:00 |
|
Irmen de Jong
|
2177ba0ed2
|
added signed versions of the cx16 virtual registers
|
2021-11-13 02:42:21 +01:00 |
|
Irmen de Jong
|
75a06d2a40
|
preparing for more optimizations
|
2021-11-12 02:17:37 +01:00 |
|
Irmen de Jong
|
53ac11983b
|
better unused variable removal
|
2021-11-11 03:03:21 +01:00 |
|
Irmen de Jong
|
686483f51a
|
fixed division of signed byte number by 2. (!)
|
2021-11-10 00:17:56 +01:00 |
|
Irmen de Jong
|
8df3da11e3
|
add cosr8, sinr8, cosr16 and sinr16 builtin functions that take a degree 0..179 (= 0..358 in 2 degree steps)
to more easily scale halves/quarters etc of a circle than possible with the ones that take 0..255 'degrees'.
|
2021-11-09 23:39:26 +01:00 |
|
Irmen de Jong
|
b909facfe5
|
fix compiler stackoverflow crash on certain typecasted expressions containing floats.
|
2021-11-09 19:31:19 +01:00 |
|
Irmen de Jong
|
4937e004b5
|
fix compiler crash where it used wrong datatype in split assignment
fixes crash for "ubyte bb ;; uword ww ;; bb = not bb or not ww"
|
2021-11-09 01:13:23 +01:00 |
|
Irmen de Jong
|
4cb383dccb
|
discovered crash about storage size mismatch
|
2021-11-08 21:44:06 +01:00 |
|
Irmen de Jong
|
857724c7e6
|
attempt to make if-statement not use stack eval anymore
|
2021-11-08 19:07:36 +01:00 |
|
Irmen de Jong
|
b9ce94bb68
|
migrated codeGeneration module to KoTest
|
2021-11-07 15:40:05 +01:00 |
|
Irmen de Jong
|
f40620aa25
|
"not x" as a condition (if, while, until) is optimized into "x==0", this avoids calculating the value
|
2021-11-06 23:25:32 +01:00 |
|
Irmen de Jong
|
57a9fed42b
|
todo
|
2021-11-06 19:09:33 +01:00 |
|
Irmen de Jong
|
18d820da94
|
correct assignment type
|
2021-11-06 18:52:54 +01:00 |
|
Irmen de Jong
|
26e66f046f
|
implement some more missing codegen for inplace Prefix expressions
|
2021-11-06 18:48:42 +01:00 |
|
Irmen de Jong
|
62dc824bc0
|
tweaks
|
2021-11-06 17:14:07 +01:00 |
|
Irmen de Jong
|
1605791f1b
|
float swap() no longer uses evaluation stack but a single temp var instead + FAC1
|
2021-11-06 03:36:14 +01:00 |
|
Irmen de Jong
|
37a46aa2cf
|
complex memory assignment also tries to avoid estack evaluation (but not done yet)
|
2021-11-06 00:03:19 +01:00 |
|
Irmen de Jong
|
1d2d217b94
|
non-optimized typecast assignments now attempt to not use evalstack
|
2021-11-05 23:25:07 +01:00 |
|
Irmen de Jong
|
730b208617
|
relaxed some type checks on certain word register assignment
preparing to optimize asmsub arg passing for complex expressions
|
2021-11-04 23:57:25 +01:00 |
|
Irmen de Jong
|
b4fa72c058
|
fix parent node linkage for reading array parameter
|
2021-11-03 21:57:31 +01:00 |
|
Irmen de Jong
|
b0a865b0f1
|
update todo
|
2021-11-02 23:55:50 +01:00 |
|
Irmen de Jong
|
7e287a5359
|
proper parent node linkage in generated const values out of typecast expressions. Fixes crash mentioned in #72
|
2021-11-02 00:47:01 +01:00 |
|
Irmen de Jong
|
1110bd0851
|
fix vardecl initialization value to not use stack eval anymore but separate assignment
(this causes the optimized assignment code gen to be used instead)
but some programs now end up larger in output size
|
2021-11-01 00:24:15 +01:00 |
|
Irmen de Jong
|
1b576f826d
|
remove unneeded sibling methods
|
2021-10-31 16:50:15 +01:00 |
|
Irmen de Jong
|
fe17566370
|
improved reporting of slow stack based evaluation code
|
2021-10-31 14:18:49 +01:00 |
|
Irmen de Jong
|
e3c00669c1
|
fixed improved asm generation for conditions that compare signed word to zero
|
2021-10-31 02:39:45 +02:00 |
|
Irmen de Jong
|
33d17afc32
|
improved asm generation for conditions that compare byte/word to zero
|
2021-10-31 01:58:16 +02:00 |
|
Irmen de Jong
|
2388359a99
|
improved asm generation for conditions that compare ubyte/uword to zero
|
2021-10-31 01:39:37 +02:00 |
|
Irmen de Jong
|
2df0c9503c
|
improved asm generation for conditions that compare floats to zero
|
2021-10-31 01:28:08 +02:00 |
|
Irmen de Jong
|
61fa3bc77c
|
comparisonjump tweak
|
2021-10-31 00:57:22 +02:00 |
|
Irmen de Jong
|
9ccc65bf8f
|
more petscii tests
|
2021-10-30 15:15:11 +02:00 |
|
Irmen de Jong
|
495a18805c
|
move asmgen test to codeGeneration module
|
2021-10-29 16:20:53 +02:00 |
|
Irmen de Jong
|
ce75b776bb
|
refactor loadAsmIncludeFile response
|
2021-10-29 01:01:24 +02:00 |
|
Irmen de Jong
|
7d22b9b9f9
|
simplified name conflict check for sub params
|
2021-10-29 00:20:33 +02:00 |
|
Irmen de Jong
|
08d2f8568b
|
refactoring symbol lookups
|
2021-10-27 23:48:12 +02:00 |
|
Irmen de Jong
|
ac5f45d2d4
|
fix nested label lookups in anon scopes (partly)
|
2021-10-27 02:41:24 +02:00 |
|
Irmen de Jong
|
743c8b44a2
|
AnonymousScope refactor: it's no longer a INameScope
because it doesn't contain scoped variables (these are moved to the subroutine's scope)
|
2021-10-26 23:01:51 +02:00 |
|
Irmen de Jong
|
5e1459564a
|
no longer take AddressOf a str-variable that is a subroutine's parameter with str type (it's just an address/uword already)
|
2021-10-25 23:49:01 +02:00 |
|
Irmen de Jong
|
69a8813a3d
|
first steps to add support for str parameter type
|
2021-10-24 20:57:10 +02:00 |
|
Irmen de Jong
|
6b32535cb6
|
don't complain about uninitialized str var if it's not a var
|
2021-10-24 15:13:38 +02:00 |
|
Irmen de Jong
|
35e88dd529
|
(7.2) correctly parse datatype of array parameters
|
2021-10-21 22:06:21 +02:00 |
|
Irmen de Jong
|
df2d5c6585
|
tests for callgraph and unused subroutine removal in optimizer
|
2021-10-20 22:24:10 +02:00 |
|
Irmen de Jong
|
82d20dea39
|
a few comment and TODO cleanups.
remove remark about chars UBYTE type, kotlin's closest native type that can contain 0-255 is a short.
|
2021-10-19 23:20:34 +02:00 |
|
Irmen de Jong
|
761aac7a23
|
replace inferredType.istype() by infix form
|
2021-10-15 00:28:23 +02:00 |
|
Irmen de Jong
|
855e18b31c
|
fix SourceCode to properly set the sourceName of a resource or string as well
|
2021-10-13 21:46:38 +02:00 |
|
Irmen de Jong
|
6070afa6b6
|
cleanup SourceCode class
|
2021-10-13 19:16:01 +02:00 |
|
Irmen de Jong
|
6b8c3ef614
|
renamed command line option -libdirs to -srcdirs
this more clearly separates this meaning from the internal library modules
|
2021-10-13 18:16:51 +02:00 |
|
Irmen de Jong
|
557f4f689f
|
doc
|
2021-10-13 00:50:54 +02:00 |
|
Irmen de Jong
|
f891fc698c
|
switched to more featureful Result library
|
2021-10-12 21:35:27 +02:00 |
|
Irmen de Jong
|
2c2d474059
|
fix crash when attempting to import non-existing module
|
2021-10-11 20:37:55 +02:00 |
|
Irmen de Jong
|
9898791771
|
clean test.p8
|
2021-10-09 16:32:44 +02:00 |
|
Irmen de Jong
|
e8f308f654
|
a few more inlinings of trivial return values
|
2021-10-09 01:36:13 +02:00 |
|
Irmen de Jong
|
07132a2c42
|
removed unreliable inlining of non-asmsub subroutines. Fixes #60
|
2021-10-08 23:09:38 +02:00 |
|
Irmen de Jong
|
0204002d9b
|
bugfix: non-existing asm function was sometimes called to swap floats
|
2021-10-08 04:14:43 +02:00 |
|
Irmen de Jong
|
b3107cfad0
|
Merge branch 'master' into v7.1
|
2021-10-04 22:38:53 +02:00 |
|
Irmen de Jong
|
91ae68c07e
|
blinds effects done
|
2021-10-04 22:15:59 +02:00 |
|
Irmen de Jong
|
fbef63e150
|
moving to raster lines via irq
|
2021-09-30 23:45:45 +02:00 |
|
Irmen de Jong
|
bb8ee9bb3e
|
Merge branch 'master' into v7.1
|
2021-09-28 23:27:56 +02:00 |
|
Irmen de Jong
|
25677a4126
|
remove unused var
|
2021-09-28 23:27:32 +02:00 |
|
Irmen de Jong
|
3aeca0a770
|
Merge branch 'master' into v7.1
|
2021-09-28 23:15:06 +02:00 |
|
Irmen de Jong
|
9acec4d952
|
changed to fixed point math to always generate bars of 32 lines height
|
2021-09-28 23:12:16 +02:00 |
|
Irmen de Jong
|
8388adcd1d
|
changed to fixed point math to always generate bars of 32 lines height
|
2021-09-28 22:55:55 +02:00 |
|
Irmen de Jong
|
fd1f30f92b
|
removed %target directive (didn't add much, too confusing, only supported single target)
|
2021-09-04 15:01:16 +02:00 |
|
Irmen de Jong
|
9bd3a6758a
|
improve testability: use error returnvalues instead of using exitProcess()
|
2021-07-02 00:11:21 +02:00 |
|
Irmen de Jong
|
fd2bbd2b59
|
no longer allow subroutine name same as its block name due to asm symbol scoping issues
|
2021-06-12 17:31:09 +02:00 |
|
Irmen de Jong
|
127c470746
|
add some explanation about Cx16 v38 - v39 issue
|
2021-06-12 15:48:04 +02:00 |
|
Irmen de Jong
|
19e99204b9
|
fix asm symbol name scoping bug and add unit tests for this
|
2021-06-04 22:42:28 +02:00 |
|
Irmen de Jong
|
3a2498401d
|
working on unit tests for symbol scope bug
|
2021-06-03 21:21:38 +02:00 |
|
Irmen de Jong
|
e7f6f0950f
|
identified asm symbol name scoping bugs
|
2021-06-01 22:21:50 +02:00 |
|
Irmen de Jong
|
d4b69ac79c
|
improved repeat counter vars allocation (re-use var if possible)
|
2021-05-30 15:30:34 +02:00 |
|
Irmen de Jong
|
e61a2d7083
|
slightly optimized repeat loop asmgen
|
2021-05-30 13:10:05 +02:00 |
|
Irmen de Jong
|
c03f6604af
|
added free words counting method to zeropage
|
2021-05-30 00:55:11 +02:00 |
|
Irmen de Jong
|
572bb38ddb
|
update to kotlin 1.5.10
|
2021-05-29 15:25:17 +02:00 |
|
Irmen de Jong
|
42c5c0cb9f
|
start of cx16 colorbars example
|
2021-05-26 22:13:23 +02:00 |
|
Irmen de Jong
|
0e614ad6fc
|
added @shared flag to vardecl to mark variable as shared with assembly code elsewhere, to not have it optimized away
|
2021-05-19 01:19:25 +02:00 |
|
Irmen de Jong
|
ca61248861
|
printing 2-letter strings is now only optimized into direct CHROUT if it's a const string literal
|
2021-05-16 15:00:40 +02:00 |
|
Irmen de Jong
|
0416aacbbd
|
fix %asminclude by removing scopelabel argument and improving docs to remove false promise about labels
|
2021-05-16 00:14:57 +02:00 |
|
Irmen de Jong
|
25d80f4df1
|
added compiler option to choose string literal deduplication yes/no -- default changed to NO
|
2021-05-13 00:35:22 +02:00 |
|
Irmen de Jong
|
74f918d911
|
fix crashes for string encoding errors: give normal compiler error instead
|
2021-05-11 21:33:11 +02:00 |
|
Irmen de Jong
|
a20efa56eb
|
print unmappable character in escaped form in errormessage
|
2021-05-11 18:09:09 +02:00 |
|
Irmen de Jong
|
dae59238cd
|
fix array type checking crash when attempting to use str literal to initialize a byte array.
Fixes #34
|
2021-05-07 00:04:29 +02:00 |
|
Irmen de Jong
|
8736da1a21
|
strings of 1 and 2 length no longer optimized into one call to CHROUT - also upgrade to kotlin 1.5.0
|
2021-05-06 23:46:18 +02:00 |
|
Irmen de Jong
|
1a59019fc8
|
add generic error in diskio.status() if drive status can't be read
|
2021-05-01 15:39:39 +02:00 |
|
Irmen de Jong
|
19fe58dbac
|
fix regression bug that left variables uninitialized
|
2021-05-01 01:35:03 +02:00 |
|
Irmen de Jong
|
0a5b30e21c
|
added fast code for x*640
|
2021-04-30 22:30:21 +02:00 |
|
Irmen de Jong
|
664818fd29
|
try fixing a weird problem with pointervar[idx] -> memread rewriting
this was introduced in the removal of structs somehow
|
2021-04-30 01:34:03 +02:00 |
|
Irmen de Jong
|
71fec4c555
|
added a few more simple special codegen segements for the logic operators on a memmory-read
|
2021-04-29 19:38:42 +02:00 |
|
Irmen de Jong
|
4aba0c7405
|
unused variables are removed more aggressively (no longer checking asm blocks for their names)
|
2021-04-29 00:48:16 +02:00 |
|
Irmen de Jong
|
a9a7068818
|
removed support for structs. It was too much hassle and complexity and subtle bugs.
|
2021-04-29 00:01:20 +02:00 |
|
Irmen de Jong
|
81a91d62cb
|
improved horizontal_line in highres 4c
|
2021-04-28 02:55:49 +02:00 |
|
Irmen de Jong
|
2575263438
|
optimized gfx2.plot() for hires-4c
|
2021-04-28 02:49:25 +02:00 |
|
Irmen de Jong
|
7f0e25cb50
|
optimized gfx2.plot() for hires-monochrome
|
2021-04-28 02:32:11 +02:00 |
|
Irmen de Jong
|
a1e4e9c50f
|
optimized gfx2.plot() for lores-256c
|
2021-04-28 02:22:21 +02:00 |
|
Irmen de Jong
|
8b84f87217
|
removed fastrnd8() because it was hilariously bad, just use rnd()
|
2021-04-28 01:53:12 +02:00 |
|
Irmen de Jong
|
306a1b7bc2
|
optimized gfx2.vertical_line for hires monochrome mode
|
2021-04-28 01:19:10 +02:00 |
|
Irmen de Jong
|
481214c46e
|
optimized gfx2.vertical_line for lores monochrome mode
|
2021-04-28 01:02:29 +02:00 |
|
Irmen de Jong
|
a5961cbeab
|
optimized gfx2.vertical_line for highres 4c mode
|
2021-04-28 00:29:21 +02:00 |
|
Irmen de Jong
|
68f696d165
|
added 'callrom' builtin function (for cx16 target) that calls a routine in banked ROM
|
2021-04-25 18:04:56 +02:00 |
|
Irmen de Jong
|
1170aed026
|
added 'callfar' builtin function (for cx16 target) that uses jsrfar to call a routine in banked RAM
|
2021-04-25 17:47:13 +02:00 |
|
Irmen de Jong
|
bf1b2066b6
|
fix crashes in peekw() and pokew()
|
2021-04-22 18:26:46 +02:00 |
|
Irmen de Jong
|
4c080afb76
|
added compiler check against impossible for loop range (unsigned downto exactly 0 with non-const startvalue and step != -1)
|
2021-04-21 23:03:29 +02:00 |
|
Irmen de Jong
|
ee1c43ca91
|
improved scanning for return statement in routines that should return a value.
|
2021-04-21 20:31:29 +02:00 |
|
Irmen de Jong
|
1c2e6f9e4c
|
lower() and upper() now also return the lenght of the processed string.
|
2021-04-21 20:21:58 +02:00 |
|
Irmen de Jong
|
dd379430d9
|
added docs on flexible string character mapping to petscii
|
2021-04-20 01:22:49 +02:00 |
|
Irmen de Jong
|
42033ebd35
|
added petscii mappings for ^, _, \, {, } and |
|
2021-04-19 02:18:55 +02:00 |
|
Irmen de Jong
|
a086d6e009
|
allow labels also in blocks instead of only in subroutines
|
2021-04-18 23:03:18 +02:00 |
|
Irmen de Jong
|
c70bbdab26
|
fixed missing type checking in vardecl initializer values. Fixes #29
Also fix wrong assert of 0 const check in assembly gen for if-statement comparisons.
|
2021-04-18 22:46:21 +02:00 |
|
Irmen de Jong
|
3d956ef554
|
fix wrong values for register used in array indexing expressions
added the L/H byte parts of the cx16 virtual registers
|
2021-04-18 13:53:02 +02:00 |
|
Irmen de Jong
|
329f491c30
|
fix compiler crash with scoped const vardecls
|
2021-04-18 01:56:26 +02:00 |
|
Irmen de Jong
|
e93701f50e
|
fix compiler error when initializing var with memory(...) in block scope instead of subroutine
|
2021-04-17 15:49:41 +02:00 |
|
Irmen de Jong
|
e680de05ea
|
workaround for the joystick_get() irq problem
|
2021-04-15 22:56:52 +02:00 |
|
Irmen de Jong
|
56fec674c5
|
actually not simplifying if-code generation, leads to larger code at the moment
|
2021-04-13 00:03:22 +02:00 |
|
Irmen de Jong
|
54d92a027a
|
fix problems with moving vardecls from inner scope to subroutine scope
|
2021-04-12 22:53:25 +02:00 |
|
Irmen de Jong
|
0a03c46351
|
preparing optimization plan for if statements
|
2021-04-12 02:37:15 +02:00 |
|
Irmen de Jong
|
ae1b62e147
|
optimized integer comparison expressions some more
|
2021-04-12 01:23:17 +02:00 |
|
Irmen de Jong
|
8d567f6b06
|
added cx16.joystick_get2() for convenience api
|
2021-04-12 01:07:46 +02:00 |
|
Irmen de Jong
|
b1ef09675b
|
fix compiler crash for some struct/array initialization assignment literals containing not just numbers
|
2021-04-10 00:28:32 +02:00 |
|
Irmen de Jong
|
2b7b925090
|
codegen now uses correct machine target's string encoder/decoder. Encoding more robust by checking upper case mapping if lowercase mapping fails.
|
2021-04-09 23:33:32 +02:00 |
|
Irmen de Jong
|
e0454e95db
|
warn about for-loop wrapped iteration if loop range is inverted from normal
|
2021-04-08 22:54:47 +02:00 |
|
Irmen de Jong
|
91e421d961
|
optimize x % p where p=power-of-2, into just x & (p-1)
|
2021-04-08 22:21:16 +02:00 |
|
Irmen de Jong
|
c853afe769
|
fix compiler crash due to certain redundant typecast expressions
|
2021-04-08 19:45:44 +02:00 |
|
Irmen de Jong
|
1a64cb38d5
|
fix compiler crash with assigning certain array values as vardecl initializer
|
2021-04-08 19:21:17 +02:00 |
|
Irmen de Jong
|
ccebd22856
|
callgraph: mark start() also in use
|
2021-04-08 02:43:59 +02:00 |
|
Irmen de Jong
|
a1f3b82333
|
vtui update
|
2021-04-08 01:36:25 +02:00 |
|
Irmen de Jong
|
3dda29781e
|
changed MEMTOP2 into cx16.numbanks() to query the number of RAM banks installed
|
2021-04-08 01:05:38 +02:00 |
|
Irmen de Jong
|
a9d297ee31
|
fix inlining of sub with var that has default initialization
|
2021-04-08 00:35:02 +02:00 |
|
Irmen de Jong
|
e5ff61f201
|
allow inlining of subroutines with parameters, and fix inlining of subroutines with variables
|
2021-04-07 23:38:25 +02:00 |
|
Irmen de Jong
|
bc726c6334
|
optimized slow evaluation of byte-to-wordarray assignment
|
2021-04-06 22:50:16 +02:00 |
|
Irmen de Jong
|
123473dfc8
|
cleanup
|
2021-04-06 00:16:29 +02:00 |
|
Irmen de Jong
|
d9eccd4fba
|
set correct rom banks when using floats
|
2021-04-05 23:21:07 +02:00 |
|
Irmen de Jong
|
5b890847e5
|
make sure BASIC rom is banked in again when program exits
|
2021-04-05 23:12:10 +02:00 |
|
Irmen de Jong
|
64c85b9617
|
fix cx16 rom v39 float changes
|
2021-04-05 22:54:40 +02:00 |
|
Irmen de Jong
|
61d1f1ea87
|
oops
|
2021-04-05 01:18:22 +02:00 |
|
Irmen de Jong
|
238d27acdc
|
more pleasing bob image and pattern
|
2021-04-05 01:14:55 +02:00 |
|
Irmen de Jong
|
374e2b311d
|
refactoring unused code removal and noModification
|
2021-04-04 16:36:33 +02:00 |
|
Irmen de Jong
|
49036abbaf
|
docs
|
2021-04-04 12:55:29 +02:00 |
|
Irmen de Jong
|
d582d1cc42
|
fix inlining subroutines multiple times
|
2021-04-02 21:23:40 +02:00 |
|
Irmen de Jong
|
6fdc733941
|
inlining subroutines that contain variable declarations is now possible (gives a warning though)
|
2021-04-02 18:30:32 +02:00 |
|
Irmen de Jong
|
422b390c48
|
fix ast node duplication/reference bug in certain optimizers
|
2021-04-02 16:56:52 +02:00 |
|
Irmen de Jong
|
02e12d8575
|
improvements for inlined subroutines: fix identifier scoping
|
2021-04-01 23:16:04 +02:00 |
|
Irmen de Jong
|
fe2954ce08
|
todo
|
2021-04-01 22:10:04 +02:00 |
|
Irmen de Jong
|
2ff04d2abd
|
cleanup
|
2021-04-01 19:10:55 +02:00 |
|
Irmen de Jong
|
3f30d3aa89
|
added sys.waitrastborder() for c64
|
2021-04-01 18:53:16 +02:00 |
|
Irmen de Jong
|
4cae2c56ec
|
implemented last remaining codegen for word-byte division and remainders.
|
2021-03-25 22:03:36 +01:00 |
|
Irmen de Jong
|
d840975054
|
remove unreached error checks
|
2021-03-25 21:47:05 +01:00 |
|
Irmen de Jong
|
1b14da6c03
|
compiler warning instead of crash when attempting to assign invalid array value to other array
|
2021-03-24 22:01:22 +01:00 |
|
Irmen de Jong
|
292640b17a
|
asmgen: string values cannot be typecasted
|
2021-03-24 21:49:33 +01:00 |
|
Irmen de Jong
|
112a7b09f2
|
added codegen for expression that needs the status-flag register result as a value on the stack
|
2021-03-24 21:42:27 +01:00 |
|
Irmen de Jong
|
af4de6d2fc
|
replacing complex array indexer expressions moved to BeforeAsmGeneration + use cx16 virtualregister instead of adding temp variables for this
|
2021-03-23 23:44:14 +01:00 |
|
Irmen de Jong
|
3626828ceb
|
decided
|
2021-03-22 01:45:19 +01:00 |
|
Irmen de Jong
|
24b77fb5a5
|
comments.
|
2021-03-21 21:10:29 +01:00 |
|
Irmen de Jong
|
1505fe686a
|
updated vtui example
|
2021-03-21 20:40:35 +01:00 |
|
Irmen de Jong
|
ca868ae19e
|
added cx16.vload() (like the VLOAD basic instruction)
|
2021-03-20 02:39:53 +01:00 |
|
Irmen de Jong
|
3e286dd14c
|
move test
|
2021-03-18 19:34:54 +01:00 |
|
Irmen de Jong
|
11247d52b1
|
fix bugs in word <= and >= comparisons
|
2021-03-18 19:20:48 +01:00 |
|
Irmen de Jong
|
7f21d89fea
|
moved test programs to test folder in compiler module
|
2021-03-17 20:15:16 +01:00 |
|
Irmen de Jong
|
ef64881528
|
busy creating extensive comparison test suite
|
2021-03-17 19:35:22 +01:00 |
|
Irmen de Jong
|
9a6bd760bd
|
fixed issues in uword '>'
|
2021-03-16 23:40:32 +01:00 |
|
Irmen de Jong
|
00b9766aea
|
fixed issues in word '>'
|
2021-03-16 23:22:58 +01:00 |
|
Irmen de Jong
|
d2ab5f230d
|
example TODOs
|
2021-03-16 01:09:25 +01:00 |
|
Irmen de Jong
|
b5523c7077
|
don't optimize with inlining too aggressively (code bloat)
|
2021-03-16 00:33:15 +01:00 |
|
Irmen de Jong
|
bf23ad78e6
|
improve byte '<' and '>' codegen
|
2021-03-15 22:26:00 +01:00 |
|
Irmen de Jong
|
ded1d19737
|
improve '==' and '!=' codegen
|
2021-03-15 19:29:32 +01:00 |
|
Irmen de Jong
|
496a3b0d2c
|
todo
|
2021-03-15 18:56:25 +01:00 |
|
Irmen de Jong
|
6922333755
|
add a cmp(x,y) function that returns no value but only sets the status bits based off the comparison (can be used with a conditional jump afterwards)
|
2021-03-13 15:11:22 +01:00 |
|
Irmen de Jong
|
50a306f492
|
line drawing fixes
|
2021-03-09 22:11:30 +01:00 |
|
Irmen de Jong
|
6995ee2d17
|
fix cx16 bresenham line inaccuracy
|
2021-03-09 22:04:19 +01:00 |
|
Irmen de Jong
|
6c60ea9cac
|
allocate even more c64 zeropage locations for floats
|
2021-03-09 21:47:36 +01:00 |
|
Irmen de Jong
|
6bd205c02a
|
fix c64 bresenham line inaccuracy
|
2021-03-09 21:07:55 +01:00 |
|
Irmen de Jong
|
9120e1de88
|
fix ubyte/uword to float conversion crashes on Commander X16
|
2021-03-08 23:21:52 +01:00 |
|
Irmen de Jong
|
60e169bd87
|
added optimized integer square (x*x) routine
|
2021-03-08 23:08:47 +01:00 |
|
Irmen de Jong
|
a1729b65ab
|
fix min(), max(), sum(), abs()
|
2021-03-06 22:57:22 +01:00 |
|
Irmen de Jong
|
2950d26c8e
|
array and struct value assignments now via memcopy instead of assignment per element
|
2021-03-06 22:10:03 +01:00 |
|
Irmen de Jong
|
4f8d4a9585
|
use memcopy to assign arrays
|
2021-03-06 19:01:16 +01:00 |
|
Irmen de Jong
|
d787795759
|
simplified
|
2021-03-06 15:43:23 +01:00 |
|
Irmen de Jong
|
2770254fd9
|
removed inline assembly from bobs demo
|
2021-03-06 14:31:26 +01:00 |
|
Irmen de Jong
|
de04bd8cfa
|
added more convenient number-to-string functions to conv library
|
2021-03-06 13:47:27 +01:00 |
|
Irmen de Jong
|
076a547f91
|
added more convenient number-to-string functions to conv library
|
2021-03-06 13:34:57 +01:00 |
|
Irmen de Jong
|
dffd0a2706
|
added fastrnd8() with the old rnd() generator code in it, new code for rnd() uses the much better rndw() generator now.
|
2021-03-05 22:49:14 +01:00 |
|
Irmen de Jong
|
26502c949a
|
add unlimited bobs example
|
2021-03-05 19:05:13 +01:00 |
|
Irmen de Jong
|
96ba9f5902
|
spelling correction
|
2021-03-04 01:31:29 +01:00 |
|
Irmen de Jong
|
3a6ba0ab71
|
added 'kefrenbars' example
|
2021-03-03 01:09:18 +01:00 |
|
Irmen de Jong
|
32d894d6b6
|
optimized repeat loop for word counts
|
2021-02-28 21:22:46 +01:00 |
|
Irmen de Jong
|
543efa4299
|
attempt 2 at optimizing repeats
|
2021-02-28 21:02:17 +01:00 |
|
Irmen de Jong
|
eba0708099
|
Revert "optimized repeat loop for word counts"
This reverts commit 51e6bf0d
|
2021-02-28 20:29:28 +01:00 |
|
Irmen de Jong
|
51e6bf0d45
|
optimized repeat loop for word counts
|
2021-02-28 17:34:18 +01:00 |
|
Irmen de Jong
|
07b5c44a54
|
preparing to optimize 16 bit repeat loop
|
2021-02-28 17:13:15 +01:00 |
|
Irmen de Jong
|
7e3e18a5c7
|
deal with 'bra' better on 65c02
|
2021-02-28 16:20:03 +01:00 |
|
Irmen de Jong
|
8e3ebc84f0
|
readme
|
2021-02-28 15:40:04 +01:00 |
|
Irmen de Jong
|
e6079dfd71
|
don't always use pha/pla in pointer expression code
|
2021-02-27 16:21:46 +01:00 |
|
Irmen de Jong
|
2b435fe6a5
|
vtui example updated to vtui 0.6
|
2021-02-27 03:30:21 +01:00 |
|
Irmen de Jong
|
4e640b11fd
|
added kernal bank switch trick to rasterbars
|
2021-02-26 01:16:06 +01:00 |
|
Irmen de Jong
|
cd500fee8c
|
wording
|
2021-02-25 00:52:27 +01:00 |
|
Irmen de Jong
|
1bd32c0f19
|
added animal guessing game example
|
2021-02-24 22:58:16 +01:00 |
|
Irmen de Jong
|
7aefca3de0
|
target
|
2021-02-24 00:17:52 +01:00 |
|
Irmen de Jong
|
f275ed96ea
|
optimized palette.set_color()
|
2021-02-24 00:01:27 +01:00 |
|
Irmen de Jong
|
b0213b0565
|
vtui lib
|
2021-02-23 23:31:32 +01:00 |
|
Irmen de Jong
|
c677f0a875
|
fixed string interning to also consider the alt-encoding
|
2021-02-23 23:27:44 +01:00 |
|
Irmen de Jong
|
6e65cb2c0a
|
added sounds to cx16 tehtriz
|
2021-02-23 01:29:45 +01:00 |
|
Irmen de Jong
|
e65c5402d7
|
added cx16 rasterbars example
|
2021-02-22 02:11:44 +01:00 |
|
Irmen de Jong
|
334f86480a
|
added irq routines for cx16
|
2021-02-22 00:48:41 +01:00 |
|
Irmen de Jong
|
edf9a500d3
|
kernel -> kernal
|
2021-02-21 22:48:06 +01:00 |
|
Irmen de Jong
|
a95677564e
|
changed system irq/rasterirq setting routines
|
2021-02-21 22:23:50 +01:00 |
|
Irmen de Jong
|
5540482888
|
compiler error for duplicate when choice labels
|
2021-02-21 21:26:15 +01:00 |
|
Irmen de Jong
|
00d735249b
|
fix pointer write outside zeropage
|
2021-02-21 16:22:44 +01:00 |
|
Irmen de Jong
|
b5289511ba
|
don't remove empty when choice from the list of choices!
|
2021-02-21 15:11:19 +01:00 |
|
Irmen de Jong
|
b6ded8501f
|
added 'align_word' and 'align_page' block options to control block start address alignment in the assembler
|
2021-02-21 01:24:44 +01:00 |
|
Irmen de Jong
|
d23c2eed86
|
test
|
2021-02-20 16:58:24 +01:00 |
|
Irmen de Jong
|
15695a304e
|
start address of blocks without explicit memory address, is now word-aligned in memory
|
2021-02-20 03:06:00 +01:00 |
|
Irmen de Jong
|
6319269976
|
underscore '_' is now also mapped to petscii, to the graphical symbol
|
2021-02-20 02:55:06 +01:00 |
|
Irmen de Jong
|
0ed3d951a7
|
don't require carry parameter Pc to asmsubs to be last
|
2021-02-20 02:27:57 +01:00 |
|
Irmen de Jong
|
9bb5b454e4
|
reduce dependencies on global compilaiontarget
|
2021-02-18 23:44:26 +01:00 |
|
Irmen de Jong
|
2412f8c531
|
added cx16 vtui example
|
2021-02-18 23:16:38 +01:00 |
|
Irmen de Jong
|
8701d684e6
|
added cx16 vtui example
|
2021-02-18 03:45:06 +01:00 |
|
Irmen de Jong
|
2f97aedc3c
|
fixed invalid removal of string tag from memory()
|
2021-02-16 23:58:31 +01:00 |
|
Irmen de Jong
|
92ee0aefee
|
docs: replaced old invalid c64scr names with txt
|
2021-02-16 23:28:35 +01:00 |
|
Irmen de Jong
|
99759ae853
|
enhanced tehtriz blocks to have light edges
|
2021-02-15 17:48:10 +01:00 |
|
Irmen de Jong
|
81930312ff
|
added textio.setcc2() on commanderX16 to enable setting fg+bg colors.
|
2021-02-15 17:47:48 +01:00 |
|
Irmen de Jong
|
1e3930aae2
|
fix bug in evaluating logical expressions if one of the operands was not boolean 1 or 0
|
2021-02-14 18:29:05 +01:00 |
|
Irmen de Jong
|
2b870fb9f7
|
get rid of compiled examples. Just compile them yourself...
|
2021-02-14 17:13:29 +01:00 |
|
Irmen de Jong
|
78af2cd4dc
|
optimize peekw()
|
2021-02-13 23:52:08 +01:00 |
|
Irmen de Jong
|
02cb237623
|
added poke() and pokew() builtin functions
|
2021-02-13 23:16:50 +01:00 |
|
Irmen de Jong
|
cc0f19653e
|
added peek() and peekw() builtin functions
|
2021-02-13 22:38:39 +01:00 |
|