Commit Graph

1366 Commits

Author SHA1 Message Date
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
Irmen de Jong
45bfecee73 fix problems with color cycling in iff viewer 2020-12-24 05:46:57 +01:00
Irmen de Jong
8f224afed9 added color cycling support to iff viewer 2020-12-23 23:23:16 +01:00
Irmen de Jong
48a4c46a6c optimized iff planar to chunky 2020-12-23 19:48:44 +01:00
Irmen de Jong
7d08380c7f added cx16.vaddr() 2020-12-23 05:04:19 +01:00
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