Irmen de Jong
|
ff69da3fa2
|
error when 'else' choice in when statemetn isn't the last one, also generate slightly better code for when statements
|
2021-12-05 21:54:46 +01:00 |
|
Irmen de Jong
|
edffe92a24
|
astchecker is smarter in detecting rts in inline assembly
|
2021-12-05 21:28:31 +01:00 |
|
Irmen de Jong
|
b6fe40ada4
|
fix: cx16.r0 now properly treated as zeropage var on cx16 so @(cx16.r0) won't copy it to temp var anymore
|
2021-12-05 21:21:41 +01:00 |
|
Irmen de Jong
|
837804b231
|
test for string x and u escape sequences
|
2021-12-05 18:39:34 +01:00 |
|
Irmen de Jong
|
81deed143b
|
fix grammar problem: \x and \u escape sequences didn't work in character literals.
|
2021-12-05 18:11:40 +01:00 |
|
Irmen de Jong
|
20401b99d8
|
added cx16.getrambank() / getrombank() to retrieve the current ram and rom bank numbers.
|
2021-12-04 15:27:54 +01:00 |
|
Irmen de Jong
|
e545ea9504
|
fix and optimize storing A into pointervar
|
2021-12-04 04:43:58 +01:00 |
|
Irmen de Jong
|
9a68864b67
|
version 7.5-dev
|
2021-12-04 00:18:44 +01:00 |
|
Irmen de Jong
|
72d7178762
|
added diskio.load_raw() to load headerless files
|
2021-12-04 00:07:21 +01:00 |
|
Irmen de Jong
|
fbcd9a0c1d
|
reduce number of similar errors for type problem in assignment
|
2021-12-02 17:44:52 +01:00 |
|
Irmen de Jong
|
5b56e0462d
|
also deal with zero args
|
2021-12-01 22:26:36 +01:00 |
|
Irmen de Jong
|
b7fffbb6df
|
release 7.4.1 - oops, funcion call arg count validation was broken
|
2021-12-01 21:44:03 +01:00 |
|
Irmen de Jong
|
a67a82c921
|
tweak
|
2021-11-30 03:05:25 +01:00 |
|
Irmen de Jong
|
ea0fe8d3d2
|
PrefixExpression doesn't cause clobber risk
|
2021-11-30 02:32:37 +01:00 |
|
Irmen de Jong
|
9ecf95b075
|
fix syntaxerror in const processing of ranges if it contained variables
|
2021-11-29 23:36:41 +01:00 |
|
Irmen de Jong
|
7748c261da
|
rsave/rrestore moved from sys to builtin function to solve the stack related problem when calling it as a regular subroutine
|
2021-11-29 23:13:04 +01:00 |
|
Irmen de Jong
|
a2db44f80c
|
also consider Y register for clobber check for functioncall arguments
|
2021-11-29 22:09:05 +01:00 |
|
Irmen de Jong
|
b438d8aec0
|
fix invalid range size check when stepval is not a positive integer
|
2021-11-29 02:01:19 +01:00 |
|
Irmen de Jong
|
4ac169b210
|
formatting
|
2021-11-29 01:25:21 +01:00 |
|
Irmen de Jong
|
cafab98d10
|
correction
|
2021-11-28 18:59:36 +01:00 |
|
Irmen de Jong
|
32068a832a
|
split some additional binary expressions to avoid stack-based evaluation
|
2021-11-28 18:27:28 +01:00 |
|
Irmen de Jong
|
47c2c0376a
|
added some cpu stack related assembly-level optimizations
|
2021-11-28 17:27:01 +01:00 |
|
Irmen de Jong
|
f0dadc4a43
|
optimize 1-arg functioncalls
|
2021-11-28 16:55:10 +01:00 |
|
Irmen de Jong
|
960b60cd2d
|
tweak
|
2021-11-28 14:06:12 +01:00 |
|
Irmen de Jong
|
d6abd72e55
|
fix push() of signed values
|
2021-11-28 13:01:46 +01:00 |
|
Irmen de Jong
|
0a568f2530
|
fix the check of double-defined subroutine variables
|
2021-11-28 12:52:32 +01:00 |
|
Irmen de Jong
|
3d23b39f4c
|
moved A to the end of the param list to avoid having to store its value
|
2021-11-28 04:03:18 +01:00 |
|
Irmen de Jong
|
f3a4048ebf
|
improved setting Carry bit as asmsub parameter
|
2021-11-28 03:31:32 +01:00 |
|
Irmen de Jong
|
1b07637cc4
|
better error checking for wrong pop()
|
2021-11-28 02:49:18 +01:00 |
|
Irmen de Jong
|
68b75fd558
|
fix: also allow pass-by-reference arguments to builtin functions that accept UWORD (adds implicit type cast)
|
2021-11-28 02:34:53 +01:00 |
|
Irmen de Jong
|
7c5ec1853d
|
nice error message if pop() argument is wrong
|
2021-11-28 02:20:35 +01:00 |
|
Irmen de Jong
|
e8f4686430
|
undid failed attempt of using sys.push/sys.pop for stack args - now using new push(), pushw(), pop(), popw() builtin functions
|
2021-11-28 01:22:40 +01:00 |
|
Irmen de Jong
|
02348924d0
|
failed attempt of using sys.push/pop for stack args
|
2021-11-27 23:52:47 +01:00 |
|
Irmen de Jong
|
69dcb4dbda
|
fix reporting of (not) unused code after GoSub jump
|
2021-11-27 21:22:34 +01:00 |
|
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 |
|
Irmen de Jong
|
4fff150c7b
|
fixed mkword() bug
|
2021-02-13 22:00:13 +01:00 |
|
Irmen de Jong
|
f6136891cc
|
optimized for loop over const bytes, fixed downto 1
|
2021-02-13 13:46:02 +01:00 |
|
Irmen de Jong
|
1e22170302
|
added graphical starmaps to textelite
|
2021-02-11 00:23:36 +01:00 |
|
Irmen de Jong
|
bdda6f502a
|
textelite output cleanups and alignments
|
2021-02-10 23:19:07 +01:00 |
|
Irmen de Jong
|
1bbd77fddb
|
added txt.column()
|
2021-02-10 22:47:49 +01:00 |
|
Irmen de Jong
|
9867dfcdeb
|
ported tehtriz to Cx16
|
2021-02-10 21:44:35 +01:00 |
|
Irmen de Jong
|
34aa6cc8a2
|
compiler checks for conflicting register usage in sub arguments vs target parameter registers
|
2021-02-07 05:25:50 +01:00 |
|
Irmen de Jong
|
eb2d5bb1f8
|
fix bank arg error in gfx2.position
|
2021-02-06 16:58:17 +01:00 |
|
Irmen de Jong
|
cefef3d1be
|
todo
|
2021-02-06 15:22:31 +01:00 |
|
Irmen de Jong
|
cc96ab7a9b
|
assignment source now also treats cx16.r[0-15] as registers
no longer create useless assignment code for r0=r0
|
2021-02-06 13:01:45 +01:00 |
|
Irmen de Jong
|
49ea31c0a4
|
fix shift signed word right
|
2021-02-06 01:23:31 +01:00 |
|
Irmen de Jong
|
40e4cfb686
|
amiga
|
2021-02-04 17:47:52 +01:00 |
|
Irmen de Jong
|
76f459ee95
|
amiga
|
2021-02-02 23:09:03 +01:00 |
|
Irmen de Jong
|
c478718019
|
fixed and optimized horiz_line for highres 4c
|
2021-02-01 22:03:10 +01:00 |
|
Irmen de Jong
|
c27248a58b
|
amiga
|
2021-01-29 23:52:29 +01:00 |
|
Irmen de Jong
|
2395863e7e
|
asmsubs: fix clobbering and optimize register usage for loading the arguments
|
2021-01-29 01:52:49 +01:00 |
|
Irmen de Jong
|
69c459c8ac
|
gfx2 highres 4colors
|
2021-01-28 22:28:14 +01:00 |
|
Irmen de Jong
|
a910c0fddb
|
gfx2 highres 4colors
|
2021-01-27 02:31:20 +01:00 |
|
Irmen de Jong
|
52f6be2bb0
|
gfx2: changed screen mode numbering to a more intuitive sequence
|
2021-01-26 18:17:20 +01:00 |
|
Irmen de Jong
|
857f930dc2
|
amiga
|
2021-01-26 00:09:42 +01:00 |
|
Irmen de Jong
|
dd2c436dc6
|
tweaked repeat
|
2021-01-25 23:39:54 +01:00 |
|
Irmen de Jong
|
9f047ba752
|
palette.set_monochrome() now has 2 arguments: screen and draw color RGB values
|
2021-01-24 04:15:15 +01:00 |
|
Irmen de Jong
|
cdc6d9aa65
|
moved cx16 imageviewer into its own git repo. Version 6.0.
|
2021-01-23 23:49:17 +01:00 |
|
Irmen de Jong
|
997bc21feb
|
added offsetof() to get the byte offset of struct members.
|
2021-01-23 23:11:57 +01:00 |
|
Irmen de Jong
|
975af4764d
|
remove no longer needed strlen() calls from diskio routines
|
2021-01-23 22:46:46 +01:00 |
|
Irmen de Jong
|
bf69219f98
|
allow uwordpointer[index] syntax as equivalent to @(uwordpointer+index) index can be >255 here!
|
2021-01-23 22:39:30 +01:00 |
|
Irmen de Jong
|
f34f9329f1
|
fixed bug in memcopy
|
2021-01-23 19:49:53 +01:00 |
|
Irmen de Jong
|
90271d0dcd
|
textelite was okay
|
2021-01-23 19:01:02 +01:00 |
|
Irmen de Jong
|
4a81406262
|
fix diskio rename() and delete()
|
2021-01-23 17:57:30 +01:00 |
|
Irmen de Jong
|
f9fd426843
|
Merge branch 'pointer-index-optimize'
# Conflicts:
# docs/source/todo.rst
|
2021-01-23 15:57:23 +01:00 |
|
Irmen de Jong
|
e612056ecd
|
more optimal screen pointer access in plasma.p8 example
|
2021-01-23 15:54:18 +01:00 |
|
Irmen de Jong
|
afb60db382
|
todo
|
2021-01-20 18:43:08 +01:00 |
|
Irmen de Jong
|
5731b876ff
|
textelite save bug found
|
2021-01-20 01:36:46 +01:00 |
|
Irmen de Jong
|
055f917a2e
|
fixed missing code for certain memread expressions when casted to uword
|
2021-01-20 01:30:11 +01:00 |
|
Irmen de Jong
|
4ed7fb771c
|
started pointer access optimization
|
2021-01-20 00:17:33 +01:00 |
|
Irmen de Jong
|
c328e9018c
|
cx16 assembler was moved into its own github repo
|
2021-01-18 01:38:33 +01:00 |
|
Irmen de Jong
|
b270f6f713
|
added cx16.rombank() and rambank(). Select kernal rom in i/o heavy programs for faster disk i/o
|
2021-01-17 19:16:21 +01:00 |
|
Irmen de Jong
|
40cc216557
|
optimize pointer var access if var is already on zeropage
|
2021-01-16 18:31:37 +01:00 |
|
Irmen de Jong
|
1481f92cb0
|
optimize memory read expression of ptr + constant index
|
2021-01-16 17:41:15 +01:00 |
|
Irmen de Jong
|
9f72779cdc
|
optimize assignment from memory pointer with fixed byte offset
|
2021-01-15 20:09:13 +01:00 |
|
Irmen de Jong
|
3dcef89a74
|
optimize (zp),y instructions for 65c02 to use (zp)
|
2021-01-15 19:14:35 +01:00 |
|
Irmen de Jong
|
46373717b6
|
get rid of unused ci image format reader
|
2021-01-15 18:29:25 +01:00 |
|
Irmen de Jong
|
7277c08fa6
|
added textio.spc(). assem tweaks.
|
2021-01-14 22:51:09 +01:00 |
|
Irmen de Jong
|
04e75455c4
|
assem tweaks
|
2021-01-14 21:07:06 +01:00 |
|
Irmen de Jong
|
8ac17ae14e
|
fix assem parsing of 4 letter instructions
|
2021-01-14 18:41:29 +01:00 |
|
Irmen de Jong
|
b128b79132
|
clearer description of memory()
|
2021-01-13 22:32:17 +01:00 |
|
Irmen de Jong
|
79e6d4b8dd
|
better check for EOF status
|
2021-01-13 22:11:51 +01:00 |
|
Irmen de Jong
|
b9ddde0f12
|
assem
|
2021-01-12 03:45:18 +01:00 |
|
Irmen de Jong
|
506ac8014c
|
fix diskio.f_readline() that skipped first char. It also doesn't leave the end of line char in the string now.
|
2021-01-10 16:21:25 +01:00 |
|
Irmen de Jong
|
72b4198301
|
added string.lower() / string.upper()
|
2021-01-10 15:29:43 +01:00 |
|
Irmen de Jong
|
24eee0cb34
|
lower
|
2021-01-10 15:15:00 +01:00 |
|
Irmen de Jong
|
9fc0c3f849
|
removed diskio.f_read_exact() - wasn't worth it over f_read()
|
2021-01-10 14:29:51 +01:00 |
|
Irmen de Jong
|
db314ed903
|
added diskio.f_readline()
|
2021-01-10 05:04:56 +01:00 |
|
Irmen de Jong
|
1ef9b8be61
|
assem
|
2021-01-10 03:44:10 +01:00 |
|
Irmen de Jong
|
79782ad547
|
conv.any2uword() changed return value
|
2021-01-08 22:43:01 +01:00 |
|
Irmen de Jong
|
b4d1d545a8
|
introduced txt.nl()
|
2021-01-08 16:56:17 +01:00 |
|
Irmen de Jong
|
f61682cdc7
|
moved various miscellaneous builtin functions such as exit() and progend() to sys.*
|
2021-01-08 16:44:34 +01:00 |
|
Irmen de Jong
|
3d09d605e1
|
moved memcopy, memset, memsetw builtin functions to sys.*
|
2021-01-08 01:09:37 +01:00 |
|
Irmen de Jong
|
025dde264a
|
move target() builtin to sys.target constant
|
2021-01-07 23:36:28 +01:00 |
|
Irmen de Jong
|
87cee7a0fd
|
check for name conflict with existing block (/module)
|
2021-01-07 23:28:15 +01:00 |
|
Irmen de Jong
|
61784a03bb
|
removed all string related builtin functions and moved them to separate routines in new 'string' library module
|
2021-01-07 23:10:29 +01:00 |
|
Irmen de Jong
|
9d9ca0f08d
|
fix bit shifting words by 8. fix type error for signed return types.
|
2021-01-07 22:50:40 +01:00 |
|
Irmen de Jong
|
58f37513e7
|
removed all string related builtin functions and moved them to separate routines in new 'string' library module
|
2021-01-07 20:01:11 +01:00 |
|
Irmen de Jong
|
ee7f9d457d
|
text editor configs
|
2021-01-07 01:56:31 +01:00 |
|
Irmen de Jong
|
bec2224c3d
|
clearer naming
|
2021-01-07 01:25:50 +01:00 |
|
Irmen de Jong
|
4305984168
|
assem
|
2021-01-06 01:03:08 +01:00 |
|
Irmen de Jong
|
07dd64958f
|
conv.bin2uword, conv.hex2uword, conv.str2uword, conv.str2word more robust and return parsed length in cx16.r15
|
2021-01-06 00:11:15 +01:00 |
|
Irmen de Jong
|
76101d7f8d
|
assem
|
2021-01-05 22:56:52 +01:00 |
|
Irmen de Jong
|
4309a0dc68
|
assem
|
2021-01-05 04:46:25 +01:00 |
|
Irmen de Jong
|
41658c97a3
|
assem
|
2021-01-05 02:49:29 +01:00 |
|
Irmen de Jong
|
45c9cc97d9
|
fix invalid handling of X register functioncall result value
|
2021-01-05 02:44:55 +01:00 |
|
Irmen de Jong
|
6fa7debee5
|
todo
|
2021-01-05 02:17:51 +01:00 |
|
Irmen de Jong
|
ee9f662016
|
added MEMTOP2 pseudo kernal routine on cx16 to get the number of RAM banks
|
2021-01-05 01:48:23 +01:00 |
|
Irmen de Jong
|
3550e1214c
|
fix invalid handling of X register functioncall result value
|
2021-01-05 01:42:51 +01:00 |
|
Irmen de Jong
|
8dcb43ad1c
|
assem
|
2021-01-04 20:15:07 +01:00 |
|
Irmen de Jong
|
e6a1442296
|
sys.wait() no longer resets the jiffyclock to zero
|
2021-01-03 02:45:25 +01:00 |
|
Irmen de Jong
|
cb65480c6c
|
moved wait() and reset_system() to sys block so they are now unified across c64 and cx16
|
2021-01-03 02:36:45 +01:00 |
|
Irmen de Jong
|
3e7c7ab497
|
assem optimize 4 letter mnems for size
|
2021-01-03 02:17:35 +01:00 |
|
Irmen de Jong
|
f0930d8a18
|
added c64.RDTIM16() utility routine to just get the lower 16 bits of the jiffy clock
|
2021-01-02 20:59:48 +01:00 |
|
Irmen de Jong
|
baf9dfb46c
|
assem
|
2021-01-02 20:33:07 +01:00 |
|
Irmen de Jong
|
583428b19c
|
assem
|
2021-01-02 15:40:36 +01:00 |
|
Irmen de Jong
|
b3b2541c1e
|
assem
|
2021-01-01 19:25:40 +01:00 |
|
Irmen de Jong
|
8e927e0b73
|
nontrivial return value evaluation now via intermediary variable to try to avoid slow stack based evaluation
|
2020-12-31 22:13:24 +01:00 |
|
Irmen de Jong
|
8e3e996f4a
|
diskio.f_open() now also checks if file exists
|
2020-12-31 19:27:34 +01:00 |
|
Irmen de Jong
|
b6fa361bcc
|
exit() now also resets the io channels. Optimized diskio data read subroutines. added diskio.f_read_all()
|
2020-12-31 19:09:29 +01:00 |
|
Irmen de Jong
|
ca83092aed
|
added large example program to check / profile compiler performance
|
2020-12-31 01:10:48 +01:00 |
|
Irmen de Jong
|
3cda92331e
|
updated dirlist
|
2020-12-31 01:07:37 +01:00 |
|
Irmen de Jong
|
c989abe265
|
optimize ubyte -> uword type casts more
|
2020-12-31 01:02:36 +01:00 |
|
Irmen de Jong
|
89230ade7a
|
change in pattern arguments of diskio.list_files() and lf_start_list(): you can now use a simple pattern with ? and * wildcards
|
2020-12-30 23:34:00 +01:00 |
|
Irmen de Jong
|
e09b65ea94
|
fix gfx2 vertical_line
|
2020-12-29 23:07:26 +01:00 |
|
Irmen de Jong
|
c81952c356
|
gfx2 optimizations for vertical lines
|
2020-12-29 02:13:38 +01:00 |
|
Irmen de Jong
|
f80e462d25
|
gfx2 optimizations for vertical lines
|
2020-12-29 01:36:34 +01:00 |
|
Irmen de Jong
|
51f32677b7
|
gfx2 optimizations for horizontal lines, fix bug in disc drawing
|
2020-12-29 01:23:14 +01:00 |
|
Irmen de Jong
|
4b366358c4
|
fix gfx2 color of horiz/vert lines
|
2020-12-28 01:33:51 +01:00 |
|
Irmen de Jong
|
6777d952c1
|
fixed crash when loopvar in for loop wasn't defined
|
2020-12-28 00:30:08 +01:00 |
|
Irmen de Jong
|
6c8b18ddbd
|
fixed crash on cx16 in word to float conversion
|
2020-12-28 00:19:58 +01:00 |
|
Irmen de Jong
|
69780ecde9
|
fixed % operator bug
|
2020-12-28 00:08:22 +01:00 |
|
Irmen de Jong
|
9e2c52e1ec
|
added Cx16 highresbitmap example. added stippled drawing to gfx2 monochrome mode
|
2020-12-27 23:57:13 +01:00 |
|
Irmen de Jong
|
6cb0e6a936
|
fixed lsb(value) not working when used in a comparison expression (needed to flip loading of A and Y register with the value)
|
2020-12-27 18:12:12 +01:00 |
|
Irmen de Jong
|
dd82e550d5
|
adding rect and fillrect to gfx2
|
2020-12-27 17:34:25 +01:00 |
|
Irmen de Jong
|
cdcda27d07
|
adding circle and disc to gfx2
|
2020-12-27 16:17:06 +01:00 |
|
Irmen de Jong
|
efa42d5d96
|
compiler watch mode is a bit more robust now against crashes during compilation
|
2020-12-27 03:58:41 +01:00 |
|
Irmen de Jong
|
e17c18b653
|
fix issues with memory() function, rewrite examples to use it
|
2020-12-27 03:35:56 +01:00 |
|
Irmen de Jong
|
b40e1eabb9
|
added memory() function for memory slab allocations
|
2020-12-27 02:28:30 +01:00 |
|
Irmen de Jong
|
3b8e18004c
|
fixed callgraph issue that allocated ALL variables in a (library) module even though some clearly weren't used at all. Variables declared in block level scope in a library are still all allocated / defined due to the nature of a library module with lists of definitions
|
2020-12-27 01:02:36 +01:00 |
|
Irmen de Jong
|
4c03950c28
|
changed 'c64colors' module to 'palette' and added more general Cx16 palette manipulation routines in there.
|
2020-12-27 00:35:25 +01:00 |
|
Irmen de Jong
|
170a0183f8
|
added 'inline' keyword to force inlining of trivial subroutines
|
2020-12-26 05:34:14 +01:00 |
|
Irmen de Jong
|
c62ff16f8b
|
added gfx2.text_charset()
|
2020-12-26 03:15:24 +01:00 |
|
Irmen de Jong
|
ab495fe6e1
|
added gfx2.text()
|
2020-12-26 02:25:53 +01:00 |
|
Irmen de Jong
|
c2a8dc23d0
|
R0-R15 register parameter optimization if loaded with byte instead of word
|
2020-12-25 22:30:40 +01:00 |
|
Irmen de Jong
|
6734ae3c88
|
imageviewer now uses gfx2 for full-screen graphics. gfx2 promoted to built-in library on the cx16 target.
|
2020-12-25 17:57:46 +01:00 |
|
Irmen de Jong
|
4c1c595f14
|
removed requirement of virtual regs R0-R15 to be at start of subroutine params
|
2020-12-25 15:43:48 +01:00 |
|
Irmen de Jong
|
b91aabd3c0
|
max 16 subroutine params
|
2020-12-25 03:02:34 +01:00 |
|
Irmen de Jong
|
3307f673f6
|
optimized cx16.vpoke etc. to be asmsubroutines instead
|
2020-12-24 07:12:59 +01:00 |
|
Irmen de Jong
|
07b00bec61
|
fix problems with color cycling in iff viewer
|
2020-12-24 06:48:15 +01:00 |
|
Irmen de Jong
|
e0d2b60d8b
|
added diskio.f_read_exact()
|
2020-12-24 06:24:52 +01:00 |
|