Irmen de Jong
b3b3cf3807
todo
2020-12-23 02:53:30 +01:00
Irmen de Jong
f0f6150e18
fix problem with reuse of auto-indexer-variables that could result in wrong code for routines using multiple array indexings
2020-12-23 02:30:46 +01:00
Irmen de Jong
ae648b8a0a
subroutines can now be defined even within regular code and will not disrupt the generated code anymore (they are moved to the end of their scope by the compiler)
2020-12-23 01:55:47 +01:00
Irmen de Jong
583af3bd4f
additional vpoke operations to do or,and,xor in one go without the need for a separate vpeek
2020-12-23 01:02:43 +01:00
Irmen de Jong
d65cfbf093
fixed math.mul_word_40 that was actually doing *80...
2020-12-23 00:54:11 +01:00
Irmen de Jong
44b8291540
update docs
2020-12-22 13:29:16 +01:00
Irmen de Jong
5a2f8fdfe1
asm-subroutines that ONLY return a value in the Carry or Overflow status register can now be used in an assignment to store that value.
2020-12-22 12:44:03 +01:00
Irmen de Jong
bba4f84503
added target() function
2020-12-22 06:13:14 +01:00
Irmen de Jong
684e081399
optimized register save/restore on Cx16 cpu target
2020-12-22 05:59:01 +01:00
Irmen de Jong
96c700ee46
only save A's value if needed for a return value
2020-12-22 05:43:02 +01:00
Irmen de Jong
5f15794c3b
new compiled dirlist example
2020-12-22 04:58:33 +01:00
Irmen de Jong
a40b3134f4
fix clobbering of A when restoring X or Y from stack
2020-12-22 04:52:46 +01:00
Irmen de Jong
c70b4daf87
cleanup obsolete routine
2020-12-22 03:40:44 +01:00
Irmen de Jong
928611eb20
Got rid of problematic attempts to save status register after function calls. If you really need it (for instance for if_XX instructions) it's probably better to use a short asmsub wrapper.
...
For function calls, register saves go via stack (to allow nested saves) for simpler cases, registers are saved in a local variable.
Fixed too agressive removal of sta-lda sequence if the lda is followed by a branching instruction.
Insert missing cmp #0 after functioncall if the value of the A register is needed in a comparison expression (could otherwise test wrong status flag)
2020-12-22 03:35:00 +01:00
Irmen de Jong
f1d55c688a
cx16 registers should come first in subroutine arg list
2020-12-22 00:59:07 +01:00
Irmen de Jong
d22df22f7d
fix examples for cx16 register syntax
2020-12-21 23:45:26 +01:00
Irmen de Jong
061e1be0a4
removed ROM-float optimizations, too troublesome. Fixed LOG2 not being defined on Cx16 as well.
2020-12-21 23:22:02 +01:00
Irmen de Jong
950bc4b937
cx16 virtual registers R0-R15 also available on C64 target (although in a different location in memory)
2020-12-21 21:04:29 +01:00
Irmen de Jong
dcb81e6bea
adding CommanderX16 virtual registers language support, rewrite cx16 examples
2020-12-21 20:38:00 +01:00
Irmen de Jong
daaa83ee7d
improved parsing of cpu registers (no more crash when invalid register) also adding CommanderX16 virtual registers language support
2020-12-21 19:19:53 +01:00
Irmen de Jong
50213f146a
undefined symbol errors are no longer reported one at a time but all at once
2020-12-21 13:03:56 +01:00
Irmen de Jong
e0315bffdc
decided not to change mkword() again, added note to docs about argument order
2020-12-15 22:25:06 +01:00
Irmen de Jong
cd28d0c0e0
tweak
2020-12-14 21:57:16 +01:00
Irmen de Jong
0baa2c8b23
fix oversight in binexpr operand swap that could result in suboptimal code
2020-12-14 21:37:40 +01:00
Irmen de Jong
4977d1fbd5
bit shift expressions are "expanded" to the target value's datatype, now also for subroutine arguments.
...
implemented word bit shifts by variable number of bits.
2020-12-14 20:44:48 +01:00
Irmen de Jong
3b7a92f1b4
adding strcopy()
2020-12-14 17:26:17 +01:00
Irmen de Jong
f6920172dd
image viewer tweaks
2020-12-14 15:36:15 +01:00
Irmen de Jong
93bfc8f5f4
rename
2020-12-14 14:30:55 +01:00
Irmen de Jong
39b7655264
imageviewer is now a single program
2020-12-14 14:30:18 +01:00
Irmen de Jong
5134ea76bf
added bmp viewer
2020-12-14 02:12:26 +01:00
Irmen de Jong
3ba37df29d
added iff viewer
2020-12-13 19:42:30 +01:00
Irmen de Jong
e221d674d9
pcxviewer done
2020-12-13 01:32:03 +01:00
Irmen de Jong
41e1e1cbb0
adding pcxviewer
2020-12-12 02:40:54 +01:00
Irmen de Jong
da1bc351d2
koalaviewer auto disk detect
2020-12-11 23:32:47 +01:00
Irmen de Jong
add5bfa2ec
koalaviewer scans directory for *.koa
2020-12-11 23:00:58 +01:00
Irmen de Jong
34babfb5de
added diskio.list_files(). ci-viewer now loads all *.ci files it finds.
2020-12-11 22:36:14 +01:00
Irmen de Jong
4f6c45c86c
incremental file loading
2020-12-11 21:05:03 +01:00
Irmen de Jong
e6220a464c
using progend() to maximize amount of mem available to load image
2020-12-10 23:52:30 +01:00
Irmen de Jong
8dcd49934a
added progend() builtin function
2020-12-10 23:33:45 +01:00
Irmen de Jong
83ceb0fde9
optimize various simple cases for '**' (pow) like 2**x => bitshift
2020-12-10 22:37:12 +01:00
Irmen de Jong
0d735c2ccc
workaround for FB_set_pixels bug
2020-12-10 21:51:32 +01:00
Irmen de Jong
4094f89d4a
not a bug
2020-12-10 03:22:43 +01:00
Irmen de Jong
cf1e8b194a
fix compiler crash for expressions of the form x = x and y (the logical booleans, not the bitwise)
2020-12-10 03:12:32 +01:00
Irmen de Jong
74e5644f55
working on CI viewer
2020-12-10 03:00:37 +01:00
Irmen de Jong
7a7270d769
adding CI (CommanderX16 Image) file viewer
2020-12-10 00:03:47 +01:00
Irmen de Jong
0d7a291b81
regenerated example disk , version 5.3
2020-12-08 23:15:31 +01:00
Irmen de Jong
2265ae9600
optimized setting word values into array if index is fixed number
2020-12-08 22:54:20 +01:00
Irmen de Jong
cba502e87a
fixed crash when trying to assign a string literal to an array element in a string-array
2020-12-08 22:27:42 +01:00
Irmen de Jong
ddf1be2a13
status condition couldn't properly be tested because restoring the X register clobbers the status flag
2020-12-08 22:15:07 +01:00
Irmen de Jong
b7694686c2
optimized code for branches containing just a goto or break statement
2020-12-08 22:00:52 +01:00
Irmen de Jong
63332c0530
fix wrong branch instructions for some if_xxx
2020-12-08 21:29:40 +01:00
Irmen de Jong
8a504f8eee
fixed compiler crash: when passing the name of a subroutine instead of an array or string to an UWORD parameter
...
now allows taking the address of a subroutine &routine
2020-12-08 21:17:31 +01:00
Irmen de Jong
7accb73993
iterative file listing instead
2020-12-08 03:34:45 +01:00
Irmen de Jong
e9aa6a0956
TODOs
2020-12-08 02:20:24 +01:00
Irmen de Jong
df20467e03
completed diskio file lister
2020-12-08 02:16:41 +01:00
Irmen de Jong
ecbd9d739e
completed diskio file lister
2020-12-08 01:34:08 +01:00
Irmen de Jong
8af17c295a
fixed diskio directory block sizes
2020-12-08 01:02:38 +01:00
Irmen de Jong
329b28cad1
making diskio.listfiles
2020-12-07 23:49:34 +01:00
Irmen de Jong
452c29574d
added optimized mul 320 routine
2020-12-07 22:55:16 +01:00
Irmen de Jong
5bedc1b333
remove test file
2020-12-06 18:40:47 +01:00
Irmen de Jong
0bf6d2f72c
tweak
2020-12-06 18:38:27 +01:00
Irmen de Jong
c09b8af491
optimized koalaviewer to plot 8 pixels at once in the loop
2020-12-06 18:25:01 +01:00
Irmen de Jong
260bcd3a55
added syntax error for non-constant array size declaration
2020-12-06 17:02:56 +01:00
Irmen de Jong
6b5211ad12
tweak word shift unroll
2020-12-06 08:36:19 +01:00
Irmen de Jong
a92ec14989
use 'stz' more often on 65c02 cpu (cx16)
2020-12-06 08:30:13 +01:00
Irmen de Jong
bec5a261e5
optimizing koalaviewer
2020-12-06 07:47:54 +01:00
Irmen de Jong
4b53641e1d
optimized text screen clear/fill and scrolling on c64
2020-12-06 01:16:31 +01:00
Irmen de Jong
6902834568
remove dummy argument for txt.scroll_XXXX() functions on cx16
2020-12-06 00:19:47 +01:00
Irmen de Jong
44019d1a61
strings and arrays are no longer directly assignable to an UWORD, you need an explicit & (address-of) now
2020-12-03 18:39:32 +01:00
Irmen de Jong
6f74fb49bd
added c64colors module. added vpeek/vpoke to cx16 syslib. koalaviewer example now uses better c64 color palette.
2020-12-03 18:14:49 +01:00
Irmen de Jong
a303b39cf0
added C64 'koala' image viewer example for Cx16
2020-12-03 16:02:51 +01:00
Irmen de Jong
261c0fc9b6
started adding syntax highlighting files
2020-12-02 20:48:50 +01:00
Irmen de Jong
b985604e22
slight tweak to word bitshift for large shift values
2020-12-01 22:48:02 +01:00
Irmen de Jong
f7953e4ef3
fix float comparison error that creeped in with no longer using the stack for that
2020-12-01 22:19:03 +01:00
Irmen de Jong
63483d1f0e
warnings, errors and todos
2020-12-01 03:24:06 +01:00
Irmen de Jong
8b981f03bf
optimized reg_lesseq_w (word <= word) to avoid using extra zp word, by swapping operands
2020-12-01 02:09:48 +01:00
Irmen de Jong
d0d0910bf2
corrected greatereq_w (word >= word)
2020-12-01 01:57:12 +01:00
Irmen de Jong
b8bda867b6
optimized reg_lesseq_w (word <= word)
2020-11-30 02:26:00 +01:00
Irmen de Jong
05d3a2450c
optimized reg_less_w (word < word)
2020-11-30 01:53:44 +01:00
Irmen de Jong
d40788adfa
optimized in-place array element modification to use simpler assignment asm code
2020-11-28 00:44:38 +01:00
Irmen de Jong
83fbf86b1c
no longer generate double assignment to the indexer var for in-place modifying array variable
2020-11-27 23:46:01 +01:00
Irmen de Jong
e876008427
tiny tweak of typecasting str to uword
2020-11-26 19:21:07 +01:00
Irmen de Jong
238d8197f5
byte/word typecasts optimized even further to just use cpu registers (and fixed sign extending AY)
2020-11-26 01:33:45 +01:00
Irmen de Jong
53a600d87b
fix typecasting of signed byte to signed word in a variable
2020-11-25 22:33:41 +01:00
Irmen de Jong
936b046ed9
optimize word [operator] byte, without translateExpression()
2020-11-24 23:41:10 +01:00
Irmen de Jong
378dcfe351
fix computation error of word - byte
2020-11-24 22:23:16 +01:00
Irmen de Jong
0a330b9288
warmings
2020-11-24 22:21:54 +01:00
Irmen de Jong
09f25ffbd9
optimized in-place memory var modification, not using translateExpression()
2020-11-24 21:41:44 +01:00
Irmen de Jong
ab1232d742
optimized in-place float var modification, not using translateExpression()
2020-11-24 01:09:24 +01:00
Irmen de Jong
a7f56fe0fc
remaining float comparisons with expression now without translateExpression()
2020-11-24 00:35:30 +01:00
Irmen de Jong
58a9452c36
fixed the YSCROLL graphics mode on the C64 (mistake in 5.1)
2020-11-23 23:05:51 +01:00
Irmen de Jong
88b80fed90
returning float values now via fac1 instead of stack
2020-11-23 22:14:45 +01:00
Irmen de Jong
d9a8cfed8c
updated the compiled examples disk
2020-11-22 18:45:40 +01:00
Irmen de Jong
510ca042c9
stack tested for most example programs
2020-11-22 18:35:43 +01:00
Irmen de Jong
125f6205f2
optimizing assigning an array value to a var
2020-11-22 17:44:55 +01:00
Irmen de Jong
8136f3df5c
float-const comparison optimizations
2020-11-22 16:54:02 +01:00
Irmen de Jong
49db10539a
optimized float var equality comparison without translateExpression()
2020-11-22 14:33:03 +01:00
Irmen de Jong
08aa13c90c
rnd() functions marked as having (internal) side effect
2020-11-22 02:09:32 +01:00
Irmen de Jong
5980e58ac6
word comparison jumps now without translateExpression()
2020-11-22 01:15:05 +01:00
Irmen de Jong
e1dc283d4b
byte comparison jumps now without translateExpression()
2020-11-21 23:31:26 +01:00
Irmen de Jong
8be234973c
rollback failed optimization of memory expressions (code size got too large)
2020-11-21 19:09:02 +01:00
Irmen de Jong
7def8ff2cd
beginning to optimize comparisons more
2020-11-21 18:44:17 +01:00
Irmen de Jong
340b1c2e42
added balls demo/benchmark
2020-11-21 18:03:57 +01:00
Irmen de Jong
7e0f7ba438
todos
2020-11-20 23:46:14 +01:00
Irmen de Jong
fefd9b52a8
fix for loop with signed byte loopvar over non-const
2020-11-20 22:54:24 +01:00
Irmen de Jong
afd155ac4f
optimize for loops over non const range, without translateExpression()
2020-11-20 22:44:16 +01:00
Irmen de Jong
ee724eb4f1
float variable casts without translateExpression()
2020-11-19 22:58:38 +01:00
Irmen de Jong
2f1f20ea11
rename
2020-11-19 00:28:49 +01:00
Irmen de Jong
063bcf17d8
various inplace modification for word vars now without translateExpression()
2020-11-19 00:08:10 +01:00
Irmen de Jong
2da28864e9
inplace not and invert for memory now without translateExpression()
2020-11-18 23:13:07 +01:00
Irmen de Jong
59ae3c3fcd
<< and >> for byte values slightly optimized, no longer use translateExpression(). preparing for more operator optimizations.
2020-11-18 01:27:02 +01:00
Irmen de Jong
7fa21fbdff
@(...) in an expression is now more efficient, without translateExpression()
2020-11-18 00:58:04 +01:00
Irmen de Jong
e95af7498e
comparing function call result to 0 now more efficient, without translateExpression()
2020-11-18 00:05:48 +01:00
Irmen de Jong
79c75adac1
repeat and when without translateExpression()
2020-11-17 23:52:13 +01:00
Irmen de Jong
d212f69d89
++/-- and @Pc without translateExpression()
2020-11-17 23:40:42 +01:00
Irmen de Jong
edf5e69d39
optimized swap()
2020-11-15 18:04:54 +01:00
Irmen de Jong
574eb0d174
refactoring asmassignment code blocks into utility functions
2020-11-15 17:44:47 +01:00
Irmen de Jong
5ebaaff64b
refactoring asmassignment code blocks into utility functions
2020-11-15 15:07:55 +01:00
Irmen de Jong
5c9e0c9f51
emit extra nop for breakpoints so vice label list works again (requires 64tass 1.55.2257 or newer!)
2020-11-15 14:31:06 +01:00
Irmen de Jong
8132edbb08
updated some compiled example
2020-11-10 22:51:01 +01:00
Irmen de Jong
d29ce78c86
todos and version
2020-11-10 22:44:48 +01:00
Irmen de Jong
94bc9d7a69
string compare in expression no longer via stack args
2020-11-10 21:48:28 +01:00
Irmen de Jong
e8faec0932
re-introduced more aggressive binexpr splitting optimization
2020-11-10 21:17:33 +01:00
Irmen de Jong
69ca4fe304
cleanup
2020-11-10 21:02:12 +01:00
Irmen de Jong
cd99fe46fd
finished call convention change for builtin functions now no longer via stack
2020-11-10 00:43:45 +01:00
Irmen de Jong
4825b4dc68
fix passing address of pass-by-reference assignment to a UWORD
2020-11-10 00:35:24 +01:00
Irmen de Jong
8d0607ef58
fix missing float casts
2020-11-09 23:57:50 +01:00
Irmen de Jong
225295a7d8
fix float casts
2020-11-09 01:18:22 +01:00
Irmen de Jong
4cd74daf53
float eval result var added, but some examples are broken
2020-11-08 18:54:02 +01:00
Irmen de Jong
6eb9118197
example
2020-11-07 01:08:56 +01:00
Irmen de Jong
d0bd2f522c
rol and ror
2020-11-07 00:56:54 +01:00
Irmen de Jong
661c757236
fix string compare in expressions
2020-11-06 22:59:56 +01:00
Irmen de Jong
aaa20093ef
cleaning up and correcting cc for builtin functions
2020-11-06 00:56:26 +01:00
Irmen de Jong
800b5b2a43
cleaning up and correcting cc for builtin functions
2020-11-05 02:29:33 +01:00
Irmen de Jong
9d17421c66
implemented the arithmetic functions with new cc. fixed sgn().
2020-11-04 02:27:29 +01:00
Irmen de Jong
0edd50e956
implemented cc for abs()
2020-11-03 23:01:23 +01:00
Irmen de Jong
288d4f08b3
implemented cc for integer sin and cos variants
2020-11-03 22:42:59 +01:00
Irmen de Jong
526e4b8bdc
fix faulty binexpr splitting
2020-11-03 21:31:08 +01:00
Irmen de Jong
e0c5ccc16b
begun with converting builtin functions to new call convention
2020-11-02 23:00:20 +01:00
Irmen de Jong
29f5a85158
callconv
2020-11-01 19:25:23 +01:00
Irmen de Jong
431f2a2088
optimized memset and memcopy on CX16, memcopy can deal with any size now
2020-11-01 08:00:32 +01:00
Irmen de Jong
e05ea887f6
implement proper returning of float values via FAC1
2020-11-01 06:27:17 +01:00
Irmen de Jong
95c0425151
improved sqrt16
2020-11-01 05:45:49 +01:00
Irmen de Jong
47cbc7b1f9
added a custom-charset example for the c64
2020-10-31 02:26:59 +01:00
Irmen de Jong
e7b75d591c
assigning float results from functions (from FAC1)
2020-10-31 01:22:19 +01:00
Irmen de Jong
99f7d469f4
assigning string result from subroutine
2020-10-30 22:22:06 +01:00
Irmen de Jong
8a6ef17fbf
option
2020-10-30 21:51:15 +01:00
Irmen de Jong
87862f772a
better handling of inferred type errors
2020-10-30 21:24:49 +01:00
Irmen de Jong
3efa8da8e0
made versions of various builtin funcs returning value in registers
2020-10-30 14:35:20 +01:00
Irmen de Jong
3e28ed4fe4
mader versions of abs() and sgn() returning value in register
2020-10-28 22:56:13 +01:00
Irmen de Jong
44949460ed
change for subroutine return values via registers instead of stack
2020-10-28 00:29:34 +01:00
Irmen de Jong
83cc19ad6f
preparing for subroutine return values via registers instead of stack
2020-10-23 20:56:10 +02:00
Irmen de Jong
ff3f985658
refactoring
2020-10-22 23:41:16 +02:00
Irmen de Jong
2ba6c9ccbe
textelite 1.1 finalize load/save, add it to examplesd disk
2020-10-20 21:49:06 +02:00
Irmen de Jong
30da26b9a9
tackling problem of invalid reuse of auto indexer var
2020-10-20 21:23:43 +02:00
Irmen de Jong
1a36302cf1
rest of optimizations following simplification of array indexer
2020-10-19 23:57:00 +02:00
Irmen de Jong
c1ce0be451
slightly optimize expression code for most common cases +/- 1 , */div 2
2020-10-19 22:50:38 +02:00
Irmen de Jong
c0a5f8fef0
removed double mul code
2020-10-19 21:32:44 +02:00
Irmen de Jong
702cf304d0
implemented missing swap() operations
2020-10-19 21:26:11 +02:00
Irmen de Jong
4dee8b6048
remove superfluous value eval
2020-10-19 02:38:26 +02:00
Irmen de Jong
ec665e0cc1
fixed incorrect removal of certain assignments that are NOT double
2020-10-19 02:16:23 +02:00
Irmen de Jong
aec3b82476
fixed bitshifting by more than the number of bits in the value
2020-10-19 02:05:01 +02:00
Irmen de Jong
e83796b5b9
fixed bit shifting by 0. optimized bitshifting code.
2020-10-18 17:12:52 +02:00
Irmen de Jong
8eb69d6eda
vardecl with initializer expression are now optimized again (unless floats)
2020-10-18 16:15:05 +02:00
Irmen de Jong
74b5124a42
removed restriction on array indexer expression again from docs and code... :)
2020-10-18 14:05:26 +02:00
Irmen de Jong
8aeb8a9bb7
reintroduce expressions for array indexing
2020-10-18 13:33:11 +02:00
Irmen de Jong
8f2e166a22
annotated some high prio todos
2020-10-17 22:57:54 +02:00
Irmen de Jong
fdd91170dc
allow simple binary expressions as array indexing too, but not more
2020-10-17 22:43:35 +02:00
Irmen de Jong
c40ddb061b
example adjustments
2020-10-17 21:00:59 +02:00
Irmen de Jong
f37564c49c
fixed
2020-10-17 19:59:48 +02:00
Irmen de Jong
157484d94b
adapted p8 code to restricted array indexing
2020-10-17 19:57:55 +02:00
Irmen de Jong
7cb4100419
string can be compared directly (uses strcmp() automatically in asm)
2020-10-17 02:01:00 +02:00
Irmen de Jong
2d3b7eb878
started making string compares use strcmp() automatically
2020-10-17 01:11:01 +02:00
Irmen de Jong
4d01a78731
introduced strcmp() builtin function
2020-10-16 19:00:06 +02:00
Irmen de Jong
a03e36828a
fixed lines in assembly source optimizer
2020-10-16 01:48:03 +02:00
Irmen de Jong
260fb65b06
making strcmp
2020-10-16 00:11:46 +02:00
Irmen de Jong
9fb8526136
added conv.bin and hex string to number
2020-10-15 23:47:10 +02:00
Irmen de Jong
26fc5ff5e2
preparing conv.bin and hex string to number
2020-10-15 23:10:28 +02:00
Irmen de Jong
5060f0bb19
fixed assigning a memory byte from an array
2020-10-15 22:15:00 +02:00
Irmen de Jong
4d68b508a2
proper error if variable name is the same as its subroutine or block (that would create naming problems in the assembly code)
2020-10-15 20:48:18 +02:00
Irmen de Jong
cd825e386d
fix invalid address-of error when taking address of struct variable
2020-10-15 20:14:17 +02:00
Irmen de Jong
095c8b2309
corrected name and added cx16logo library module for fun
2020-10-15 00:58:41 +02:00
Irmen de Jong
8b6eb74c58
refactor
2020-10-14 23:43:38 +02:00
Irmen de Jong
aba437e5a2
diskio load and save use kernel routines for load and save, and don't bother with SEQ files
2020-10-14 22:33:49 +02:00
Irmen de Jong
efe3ed499b
starting with load/save in textelite
2020-10-14 02:51:00 +02:00
Irmen de Jong
439761cb67
fixed C64 ZP addresses to allow disk I/O, introduced diskio library module
2020-10-14 01:17:18 +02:00
Irmen de Jong
bee6c65293
fixed several bugs in the repeat assembly for loop sizes like 0 and 256
2020-10-13 21:48:15 +02:00
Irmen de Jong
10145b946b
invalid repeat loop code is generated...
2020-10-13 16:27:40 +02:00
Irmen de Jong
ebf4b50059
reused existing CallGraph to check for recursion, which is now fixed. It's a warning too now.
2020-10-12 23:04:00 +02:00
Irmen de Jong
07cce3b3fc
version 4.5
2020-10-11 21:59:38 +02:00
Irmen de Jong
f2c19afd95
version 4.5
2020-10-11 21:47:41 +02:00
Irmen de Jong
d159e70e1c
textelite travel commands
2020-10-11 21:38:25 +02:00
Irmen de Jong
ac693a2541
textelite buy and sell commands
2020-10-11 19:29:18 +02:00
Irmen de Jong
ec9e722927
added conv.str2byte and conv.str2ubyte
2020-10-11 18:36:20 +02:00
Irmen de Jong
4cd5e8c378
textelite
2020-10-11 18:19:09 +02:00
Irmen de Jong
b759d5e06a
fixed X register corruption on Cx16 verions of float.GIVUAYFAY and GIVAYFAY
2020-10-11 17:46:19 +02:00
Irmen de Jong
1469033c1e
todo
2020-10-11 16:53:00 +02:00
Irmen de Jong
c15fd75df7
asmassignment can now use arbitrary source symbols; optimized byte-word sign extesion with this to not use stack anymore
2020-10-11 15:44:08 +02:00
Irmen de Jong
73524e01a6
really fix byte-word sign extension for function args as expression
2020-10-11 03:07:45 +02:00
Irmen de Jong
9e54e11113
fixed string + string/ string * number
2020-10-11 02:34:04 +02:00
Irmen de Jong
01ac5f29db
fix byte-word sign extension for function args as expression
2020-10-11 01:38:34 +02:00
Irmen de Jong
67a2241e32
textelite market start
2020-10-11 00:38:38 +02:00
Irmen de Jong
6f5b645995
textelite market start
2020-10-10 23:24:15 +02:00
Irmen de Jong
458ad1de57
fix strlen on uword (pointer) instead of str
2020-10-10 23:24:05 +02:00
Irmen de Jong
216f48b7c1
txtelite
2020-10-10 22:45:03 +02:00
Irmen de Jong
b2d1757e5a
asmgen: byte to word sign extensions
2020-10-10 15:39:48 +02:00
Irmen de Jong
e5ee5be9c5
textelite
2020-10-10 04:42:17 +02:00
Irmen de Jong
bd237b2b95
it's now possible in more places to assign arrays and put array literals without the need to define explicit variable.
2020-10-10 04:30:28 +02:00
Irmen de Jong
d31cf766eb
added missing doc picture
2020-10-10 02:51:02 +02:00
Irmen de Jong
56d530ff04
txtelite with input loop
2020-10-10 01:46:19 +02:00
Irmen de Jong
0bbb2240f2
txtelite with input loop
2020-10-10 01:35:46 +02:00
Irmen de Jong
4a9956c4a4
txtelite species and planet naming fix
2020-10-10 01:15:26 +02:00
Irmen de Jong
59c0e6ae32
added some more missing assignment codegens (word * byte etc)
2020-10-09 23:48:33 +02:00
Irmen de Jong
94c30fc21e
textelite
2020-10-09 22:47:42 +02:00
Irmen de Jong
85e3c2c5a2
textelite
2020-10-09 22:25:12 +02:00
Irmen de Jong
6ff5470cf1
txtelite
2020-10-09 21:01:06 +02:00
Irmen de Jong
151dcfdef9
code style
2020-10-08 21:47:07 +02:00
Irmen de Jong
c426f4626c
added some more missing aug assign operator code
2020-10-07 22:53:18 +02:00
Irmen de Jong
0e3c92626e
fixed handling of main module when importing another. fixed diskdir closedown.
2020-10-07 21:55:00 +02:00
Irmen de Jong
5099525e24
added missing register pair assignments. fixed compiler crashes
2020-10-07 03:43:02 +02:00
Irmen de Jong
e22b4cbb67
fixed invalid errormessage about memory mapped strings
2020-10-07 01:35:39 +02:00
Irmen de Jong
2b48828179
examples issues
2020-10-07 01:21:41 +02:00
Irmen de Jong
3e181362dd
optimized code for processing return values from asmsubs without intermediate estack.
2020-10-07 00:51:57 +02:00
Irmen de Jong
71fd98e39e
allow asmsub routines with multiple return values to be called (special case for return values in status register)
2020-10-07 00:33:42 +02:00
Irmen de Jong
ad75fcbf7e
txtelite
2020-10-05 19:49:13 +02:00
Irmen de Jong
f8b04a6357
added status return flags to some kernel i/o operations
2020-10-05 19:48:21 +02:00
Irmen de Jong
d8fcbb78d3
txtelite goatsoup
2020-10-04 21:53:16 +02:00
Irmen de Jong
3e1185658e
txtelite goatsoup
2020-10-04 21:35:37 +02:00
Irmen de Jong
eb86b1270d
txtelite
2020-10-04 19:23:36 +02:00
Irmen de Jong
a1f0cc878b
correct error message for faulty string variable declarations
2020-10-04 19:13:19 +02:00
Irmen de Jong
f2e2720b15
compiler crash fixed when dealing with functioncall returning a str
2020-10-04 18:47:47 +02:00
Irmen de Jong
ec8cfe1591
make string-assignment actually work (using strcpy)
2020-10-04 18:18:58 +02:00
Irmen de Jong
22eac159e5
txtelite
2020-10-04 17:47:57 +02:00
Irmen de Jong
a6427e0949
added \$HH escape character to strings
2020-10-03 15:11:09 +02:00
Irmen de Jong
22031f39b0
update compiled examples
2020-10-02 23:39:20 +02:00
Irmen de Jong
46fbe01df9
added codengeration for assigment of array of values to a struct variable (all members at once)
2020-10-02 22:37:52 +02:00
Irmen de Jong
8647a8290e
fix code generation for using struct vars in arrays and such
2020-10-02 22:21:18 +02:00
Irmen de Jong
bac51f4b31
fix subtraction error for bytes
2020-10-02 21:30:32 +02:00
Irmen de Jong
582aab180a
oops
2020-10-02 02:39:19 +02:00
Irmen de Jong
3994de77d0
fix expression splitter handling related to code ballooning
2020-10-02 01:49:55 +02:00
Irmen de Jong
24c8d1f1f4
expression splitter for vardecls with binexpr init expression
2020-10-02 00:34:12 +02:00
Irmen de Jong
110f877dcc
binexpr expression splitter for assignments
2020-10-02 00:04:21 +02:00
Irmen de Jong
95e9e1b550
avoid adding unneeded variable initalization assignments. Improved removal of useless double assignments.
2020-10-01 00:39:49 +02:00
Irmen de Jong
bda1c1c1eb
reduce slow estack usage by splitting up simple binary expressions
2020-09-30 19:57:16 +02:00
Irmen de Jong
d020a7974a
reduce slow estack usage by splitting up simple binary expressions
2020-09-30 17:51:35 +02:00
Irmen de Jong
3cd32778bb
don't split expressions referencing the target variable wrongly
2020-09-30 01:11:33 +02:00
Irmen de Jong
8d67056f84
fixed estack corruption caused by c64 print_f
2020-09-29 21:12:16 +02:00
Irmen de Jong
e986973b5e
wrong floats
2020-09-29 04:05:45 +02:00
Irmen de Jong
448c934cba
optimized neg(x) and abs(x)
2020-09-29 03:58:17 +02:00
Irmen de Jong
96ef7ba55d
fixed ast to source for structs
2020-09-29 00:28:11 +02:00
Irmen de Jong
4372de1e7e
allow creating arrays of pointers to other arrays. Usefullness is very limited though...
2020-09-29 00:03:47 +02:00
Irmen de Jong
af0fb88adf
allow creating string arrays. Fixed array index scaling for word arrays.
2020-09-28 02:23:36 +02:00
Irmen de Jong
066233eee8
todos
2020-09-27 22:05:44 +02:00
Irmen de Jong
6f75413c09
some more optimizations in expressions with memreads
2020-09-27 21:43:40 +02:00
Irmen de Jong
e828c013e6
fix word+/-byte errors if byte was unsigned
2020-09-27 20:23:42 +02:00
Irmen de Jong
988459f744
don't generate a byte storage for every single time a register needs saving
2020-09-27 16:26:02 +02:00
Irmen de Jong
7c701bdf3f
corrections
2020-09-27 14:14:45 +02:00
Irmen de Jong
446fc35d5c
avoid excessive comparisons for certain comparison expressions against zero
2020-09-27 03:55:59 +02:00
Irmen de Jong
84c0685a60
fix faulty comparison optimization
2020-09-27 01:40:12 +02:00
Irmen de Jong
629222f103
larger
2020-09-26 19:59:57 +02:00
Irmen de Jong
680b2df08a
just call the asmsub
2020-09-26 19:14:06 +02:00
Irmen de Jong
09bd47f98b
>
2020-09-26 19:02:29 +02:00
Irmen de Jong
7f69f9ce4f
<=
2020-09-26 18:04:43 +02:00
Irmen de Jong
4179b4e543
all unsigned comparisons
2020-09-26 17:45:35 +02:00
Irmen de Jong
66364554c4
new comparisons testprog
2020-09-26 16:11:47 +02:00
Irmen de Jong
43f2448789
added (u)byte and (u)word '>'
2020-09-26 13:15:03 +02:00
Irmen de Jong
130cee1e70
tweak '<' code
2020-09-26 12:47:40 +02:00
Irmen de Jong
b976360248
fix fallthrough problem with 'when'. Fix too greedy asm optimization that caused conditional jumps to fail sometimes because the condition value wasn't loaded.
2020-09-26 00:22:55 +02:00
Irmen de Jong
225bfc4164
fix 16+8 bit add and sub sign extensions
2020-09-25 22:51:59 +02:00
Irmen de Jong
d7ceda4d82
removed the automatic system reset at program exit, this did't work with the new init code
2020-09-25 22:12:14 +02:00
Irmen de Jong
14d091e60a
crashes :(
2020-09-24 23:50:20 +02:00
Irmen de Jong
2809668ef4
new asm code for (u)word and (u)byte <
2020-09-24 23:08:36 +02:00
Irmen de Jong
bafb86e00b
new asm code for (n)equals
2020-09-24 22:28:24 +02:00
Irmen de Jong
f5db31b8ff
do..until condition can now refer to variables defined in the loop's inner scope.
2020-09-24 19:26:07 +02:00
Irmen de Jong
e1d0dbed0c
do..until condition can now refer to variables defined in the loop's inner scope.
2020-09-23 23:24:32 +02:00
Irmen de Jong
1d1fe364d0
added %option no_sysinit to avoid having the system re-initialization code executed at the start of the program
2020-09-23 23:01:47 +02:00
Irmen de Jong
2b9316c4ff
reworked program init logic so that it is included as the first thing inside main.start itself, to allow better stand alone asm
2020-09-23 22:29:21 +02:00
Irmen de Jong
c50cbbb526
typo
2020-09-23 18:50:32 +02:00
Irmen de Jong
b93d9ecd7e
memtop cx16
2020-09-23 02:34:49 +02:00
Irmen de Jong
96243db88b
refresh compiled examples
2020-09-23 00:29:40 +02:00
Irmen de Jong
4daf75a8cc
better checks for invalid %output and %launcher values. Added diskdir examples.
2020-09-23 00:22:36 +02:00
Irmen de Jong
8c63d7cf5b
diskdir
2020-09-22 23:22:20 +02:00
Irmen de Jong
6f78a32e64
diskdir
2020-09-22 23:12:43 +02:00
Irmen de Jong
af6731c9c8
preparing version 4.3
2020-09-22 21:50:56 +02:00
Irmen de Jong
9389791d91
created own circle and disc subroutines for cx16 because its rom routine is not yet implemented and just does a BRK
2020-09-22 02:52:09 +02:00
Irmen de Jong
0d5c78e875
introduced graphics module wrapper for cx16 to make even more programs compatible
2020-09-22 02:12:01 +02:00
Irmen de Jong
d1d224b7fc
fixed print_f on cx16. Some more examples are now multi-platform.
2020-09-22 01:34:05 +02:00
Irmen de Jong
df995f7bc9
fixed float zp problem on C64, added more zp locations to block list
2020-09-22 01:05:07 +02:00
Irmen de Jong
ffa38955d6
improved scroll_down and scroll_up to use VERA dual data ports instead of a copybuffer
2020-09-22 00:34:43 +02:00
Irmen de Jong
8d82fb6d8f
added cx16 txt.scroll_right
2020-09-22 00:00:22 +02:00
Irmen de Jong
306770331a
added cx16 txt.scroll_left
2020-09-21 23:39:25 +02:00
Irmen de Jong
d3f433c8cf
specify VERA data port to use
2020-09-21 23:04:01 +02:00
Irmen de Jong
cf49cbd1f8
more consistent about the system reset routine
2020-09-21 22:35:07 +02:00
Irmen de Jong
8a99e75299
added cx16 txt.scroll_down
2020-09-21 22:06:48 +02:00
Irmen de Jong
2dbf849c82
added cx16 txt.scroll_up
2020-09-21 21:39:36 +02:00
Irmen de Jong
ba3dce0b4c
optimized cx16 txt screen functions to use VERA autoincrement
2020-09-21 19:30:21 +02:00
Irmen de Jong
ca9588380a
added cx16 txt.clear_screencolors
2020-09-21 18:42:28 +02:00
Irmen de Jong
de06353194
auto select correct library to import based on target, instead of having c64- and cx16- prefix variants
...
some programs are now 100% source compatible between C64 and Cx16 targets!
import libraries have been rena;med
2020-09-21 00:50:09 +02:00
Irmen de Jong
4b747859b3
types of constant values now actually follow their declared const var type
2020-09-20 01:14:53 +02:00
Irmen de Jong
2201765366
mult fixes
2020-09-20 00:17:33 +02:00
Irmen de Jong
dfa1d5e398
removed the ".w" word suffix (it confused the parser).
2020-09-19 23:27:40 +02:00
Irmen de Jong
ce9a90f626
updates to make c16txtio more complete
2020-09-19 23:00:47 +02:00
Irmen de Jong
2deb18beb2
tweaks to c64 txtio. Fixed expression evaluation of bitwise invert.
2020-09-19 22:37:24 +02:00
Irmen de Jong
0f7454059c
tweaks to c64 txtio
2020-09-19 22:10:33 +02:00
Irmen de Jong
4e74873eae
better swap() code
2020-09-19 17:32:29 +02:00
Irmen de Jong
f0cd03d14f
removed invalid duplicate name check about subroutine parameters
2020-09-19 16:04:04 +02:00
Irmen de Jong
bc89306dc1
better detection of duplicate variable definitions
2020-09-19 15:46:51 +02:00
Irmen de Jong
d819aa270f
test
2020-09-18 23:38:50 +02:00
Irmen de Jong
c376e42092
implemented hidden line removal
2020-09-18 23:15:08 +02:00
Irmen de Jong
63a653cdf0
preparing for hidden line removal
2020-09-18 22:51:44 +02:00
Irmen de Jong
5d900800f2
vardecl value inits must not be shuffled around but stay at their original line at all times
2020-09-18 22:24:26 +02:00
Irmen de Jong
f1ee3b4e60
version 4.2
2020-09-16 23:04:18 +02:00
Irmen de Jong
6395e39d63
avoid generating superfluous '0' variable initializations, and fix erroneous vardecl order shifting
2020-09-16 22:15:06 +02:00
Irmen de Jong
2a6d9d7e31
more optimal codegen for some typecasts
2020-09-15 03:26:57 +02:00
Irmen de Jong
32a7cd31da
more optimal codegen for if statements
2020-09-15 00:31:44 +02:00
Irmen de Jong
d110d1cb5f
c64 system reset now banks kernel rom back in
2020-09-15 00:10:20 +02:00
Irmen de Jong
48858019b7
added the last of the optimized mul_word asm routines
2020-09-14 23:54:01 +02:00
Irmen de Jong
aff6b1fca5
added some more optimized mul_word asm routines
2020-09-14 23:03:18 +02:00
Irmen de Jong
d260182ef3
added some more optimized mul_byte asm routines
2020-09-14 22:06:40 +02:00
Irmen de Jong
e39a38b0d9
things
2020-09-13 21:04:51 +02:00
Irmen de Jong
1f69deaccd
reg_x removal: c64floats
2020-09-13 20:44:55 +02:00
Irmen de Jong
ea8b7ab193
reg_x removal: math.asm and some others
2020-09-13 20:38:50 +02:00
Irmen de Jong
d5e5485d2e
fixed estack X corruption in float augmented assignments
2020-09-13 19:44:03 +02:00
Irmen de Jong
97b9c8f320
don't clobber A when trying to save X at functioncall
2020-09-12 19:04:44 +02:00
Irmen de Jong
35aebbc209
optimize unneeded type casts for register args
2020-09-12 02:48:16 +02:00
Irmen de Jong
81f7419f70
fix X register clobbering in asmfunc call, fixed graphics.plot()
2020-09-12 01:23:56 +02:00
Irmen de Jong
2f951bd54d
tweaking cobra mk3
2020-09-11 19:46:11 +02:00
Irmen de Jong
18f5963b09
cobra mk3
2020-09-10 01:31:21 +02:00
Irmen de Jong
49a0584c54
added a %target directive
2020-09-09 22:53:34 +02:00
Irmen de Jong
e21aa2c8f0
better naming of the optimized math mult routines
2020-09-09 22:16:37 +02:00
Irmen de Jong
40071b1431
fix compiler crash with adding too many typecasts to args. useless lsb() and msb() are optimized away.
2020-09-09 21:37:56 +02:00
Irmen de Jong
02e29e6990
added some preliminary clobber specs to some cx16 graphics calls, This fixes the 3d cube gfx
2020-09-07 04:06:46 +02:00
Irmen de Jong
1377bed988
fix assembly for cx16 when zp is not basicsafe
2020-09-06 17:58:05 +02:00
Irmen de Jong
8f9f947c42
fix some issues with float const 0.0 and 1.0
2020-09-05 02:07:41 +02:00
Irmen de Jong
13d7f239ab
floating point 1.0 no longer referenced from ROM because cx16 doesn't have it. Added some more cx16 examples.
2020-09-05 00:17:58 +02:00
Irmen de Jong
fe4e0e9835
cleanups
2020-08-31 23:00:53 +02:00
Irmen de Jong
809917f13b
version 4.1
2020-08-31 21:44:38 +02:00
Irmen de Jong
2b35498370
added CX16 txt.setcc and swirl examples that use it
2020-08-31 21:01:18 +02:00
Irmen de Jong
5eae7a2b93
tweak mandelbrots and c64 graphics plot() doesnt work with XY parameter
2020-08-31 00:36:40 +02:00
Irmen de Jong
364ef3e55c
tweak cx16 mandelbrots
2020-08-31 00:03:05 +02:00
Irmen de Jong
e61818f194
tweak cx16 mandelbrots
2020-08-30 19:31:20 +02:00
Irmen de Jong
5d90871789
got floating points working in commanderx16, added txt.color() to set text color
2020-08-30 00:15:18 +02:00
Irmen de Jong
88a9e09918
got floating points working in commanderx16
2020-08-29 23:55:26 +02:00
Irmen de Jong
c50ecf6055
fix for loop asm creation with word loopvar
2020-08-29 02:05:24 +02:00
Irmen de Jong
a18de75da9
fix compiler loop and missing type checks on for loop range values
2020-08-29 01:48:41 +02:00
Irmen de Jong
e112dfd910
implemented signed byte and word division
2020-08-29 00:00:53 +02:00
Irmen de Jong
0b55372b3b
cleanup cx16 things and added call signatures. c64graphics moved into built-in libraries.
2020-08-28 21:42:53 +02:00
Irmen de Jong
d97da3bb7b
implemented almost all math operations
2020-08-27 20:47:22 +02:00
Irmen de Jong
a77d3c92ad
implemented remaining float operations
2020-08-27 19:47:50 +02:00
Irmen de Jong
6d17e5307c
fixed typecasting of const arguments once again
2020-08-27 19:06:27 +02:00