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
e17c18b653
fix issues with memory() function, rewrite examples to use it
2020-12-27 03:35:56 +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
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
e0d2b60d8b
added diskio.f_read_exact()
2020-12-24 06:24:52 +01:00
Irmen de Jong
7d08380c7f
added cx16.vaddr()
2020-12-23 05:04:19 +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
684e081399
optimized register save/restore on Cx16 cpu target
2020-12-22 05:59:01 +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
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
787f52d1f8
doc
2020-12-21 18:28:10 +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
8b75ceb412
diskio.list_files now has a bigger buffer to store more filenames (around 30-40 max)
2020-12-14 14:29:42 +01:00
Irmen de Jong
c39fc4010d
textio.clear_screen() now uses kernal routine to clear the text screen, this also resets the cursor to top left.
2020-12-14 14:28:53 +01:00
Irmen de Jong
e221d674d9
pcxviewer done
2020-12-13 01:32:03 +01:00
Irmen de Jong
251f947293
fixed parameter signature for FB_set_8_pixels_opaque() (docs are wrong)
2020-12-12 03:32:01 +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
1d299c56e0
fix float '**' (pow) on cx16
2020-12-10 22:19:07 +01:00
Irmen de Jong
0d735c2ccc
workaround for FB_set_pixels bug
2020-12-10 21:51:32 +01:00
Irmen de Jong
b5dc5fc615
added iterative file loading to diskio
2020-12-10 00:58:59 +01:00
Irmen de Jong
08f0303178
diskio status() now returns the status string instead of printing it
2020-12-10 00:02:21 +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
106fc5daa4
tweak
2020-12-08 03:39:45 +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
4b53641e1d
optimized text screen clear/fill and scrolling on c64
2020-12-06 01:16:31 +01:00
Irmen de Jong
00071d53d5
optimized disc (filled circle) drawing on c64, fixed off by 1 disc width in cx16 version
2020-12-06 00:33:32 +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
fa2d87f3dd
optimized disc (filled circle) drawing on cx16
2020-12-06 00:01:19 +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
3e63a29c59
diskio now properly closes files after a load or save
2020-12-03 16:01:58 +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
a74403c347
float typecasts optimization
2020-11-26 01:52:48 +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
936b046ed9
optimize word [operator] byte, without translateExpression()
2020-11-24 23:41:10 +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
510ca042c9
stack tested for most example programs
2020-11-22 18:35:43 +01:00
Irmen de Jong
38d06a7e94
optimized float var comparison without translateExpression()
2020-11-22 15:05:45 +01:00
Irmen de Jong
49db10539a
optimized float var equality comparison without translateExpression()
2020-11-22 14:33:03 +01:00
Irmen de Jong
5980e58ac6
word comparison jumps now without translateExpression()
2020-11-22 01:15:05 +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
7e0f7ba438
todos
2020-11-20 23:46:14 +01:00
Irmen de Jong
ee724eb4f1
float variable casts without translateExpression()
2020-11-19 22:58:38 +01:00
Irmen de Jong
72509eef44
inplace modification for memory now without translateExpression()
2020-11-18 23:23:06 +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
8bd4914e2f
fix stack error for float casts
2020-11-15 17:34:27 +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
94bc9d7a69
string compare in expression no longer via stack args
2020-11-10 21:48:28 +01:00
Irmen de Jong
225295a7d8
fix float casts
2020-11-09 01:18:22 +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
e0c5ccc16b
begun with converting builtin functions to new call convention
2020-11-02 23:00:20 +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
95c0425151
improved sqrt16
2020-11-01 05:45:49 +01:00
Irmen de Jong
e7b75d591c
assigning float results from functions (from FAC1)
2020-10-31 01:22:19 +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
ff3f985658
refactoring
2020-10-22 23:41:16 +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
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
7626c9fff7
only allow array indexing via a number, or a variable (eliminate complex expression calcs for array indexing, force explicit use of an index variable)
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
9fb8526136
added conv.bin and hex string to number
2020-10-15 23:47:10 +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
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