Commit Graph

136 Commits

Author SHA1 Message Date
Irmen de Jong
6da83e2bd7 first steps to add C128 compiler target 2021-12-21 19:08:33 +01:00
Irmen de Jong
d901a1531f added missing vectors to syslib 2021-12-09 21:38:00 +01:00
Irmen de Jong
7748c261da rsave/rrestore moved from sys to builtin function to solve the stack related problem when calling it as a regular subroutine 2021-11-29 23:13:04 +01:00
Irmen de Jong
e8f4686430 undid failed attempt of using sys.push/sys.pop for stack args - now using new push(), pushw(), pop(), popw() builtin functions 2021-11-28 01:22:40 +01:00
Irmen de Jong
02348924d0 failed attempt of using sys.push/pop for stack args 2021-11-27 23:52:47 +01:00
Irmen de Jong
8b4ac7801f fix sys.push() signature for c64 2021-11-27 20:18:41 +01:00
Irmen de Jong
e8e25c6fd6 added sys.push() and sys.pop() to put values on cpu stack. Added missing builtin functions to syntax-files. 2021-11-27 18:09:15 +01:00
Irmen de Jong
0c2f30fd45 links to 6502 bresenham line algorithms 2021-11-23 21:51:18 +01:00
Irmen de Jong
00c6f74481 tweak temp float 2021-11-13 12:56:59 +01:00
Irmen de Jong
2177ba0ed2 added signed versions of the cx16 virtual registers 2021-11-13 02:42:21 +01:00
Irmen de Jong
1605791f1b float swap() no longer uses evaluation stack but a single temp var instead + FAC1 2021-11-06 03:36:14 +01:00
Irmen de Jong
b3107cfad0 Merge branch 'master' into v7.1 2021-10-04 22:38:53 +02:00
Irmen de Jong
06b3bf27b5 slightly improve sys.waitvsync() on c64 2021-10-03 21:35:12 +02:00
Irmen de Jong
fd1f30f92b removed %target directive (didn't add much, too confusing, only supported single target) 2021-09-04 15:01:16 +02:00
Irmen de Jong
0416aacbbd fix %asminclude by removing scopelabel argument and improving docs to remove false promise about labels 2021-05-16 00:14:57 +02:00
Irmen de Jong
3d956ef554 fix wrong values for register used in array indexing expressions
added the L/H byte parts of the cx16 virtual registers
2021-04-18 13:53:02 +02:00
Irmen de Jong
123473dfc8 cleanup 2021-04-06 00:16:29 +02:00
Irmen de Jong
3f30d3aa89 added sys.waitrastborder() for c64 2021-04-01 18:53:16 +02:00
Irmen de Jong
129e17b33a added sys.waitvsync() + missing documentation 2021-04-01 18:31:33 +02:00
Irmen de Jong
ca868ae19e added cx16.vload() (like the VLOAD basic instruction) 2021-03-20 02:39:53 +01:00
Irmen de Jong
b30b8b7368 fix bug in float < and > comparisons 2021-03-18 01:41:54 +01:00
Irmen de Jong
eb3594b18c revert to just using comparison expressions in graphics code (we're optimizing these now!) 2021-03-16 00:11:55 +01:00
Irmen de Jong
496a3b0d2c todo 2021-03-15 18:56:25 +01:00
Irmen de Jong
1c1da8e38e additional optimization to the bresenham line routines 2021-03-10 18:49:40 +01:00
Irmen de Jong
6c60ea9cac allocate even more c64 zeropage locations for floats 2021-03-09 21:47:36 +01:00
Irmen de Jong
6bd205c02a fix c64 bresenham line inaccuracy 2021-03-09 21:07:55 +01:00
Irmen de Jong
96ba9f5902 spelling correction 2021-03-04 01:31:29 +01:00
Irmen de Jong
334f86480a added irq routines for cx16 2021-02-22 00:48:41 +01:00
Irmen de Jong
edf9a500d3 kernel -> kernal 2021-02-21 22:48:06 +01:00
Irmen de Jong
a95677564e changed system irq/rasterirq setting routines 2021-02-21 22:23:50 +01:00
Irmen de Jong
ab544ee965 improved string constant interning; no longer output duplicate strings in the Ast 2021-02-16 23:43:38 +01:00
Irmen de Jong
1bbd77fddb added txt.column() 2021-02-10 22:47:49 +01:00
Irmen de Jong
40e4cfb686 amiga 2021-02-04 17:47:52 +01:00
Irmen de Jong
f34f9329f1 fixed bug in memcopy 2021-01-23 19:49:53 +01:00
Irmen de Jong
7277c08fa6 added textio.spc(). assem tweaks. 2021-01-14 22:51:09 +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
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
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
b4931c9a1f optimize horzontal_line drawing 2020-12-30 18:58:47 +01:00
Irmen de Jong
ddfcf45d40 added some missing clobbers() specs 2020-12-30 16:59:31 +01:00
Irmen de Jong
ee12236d53 added rect functions 2020-12-30 00:53:13 +01:00
Irmen de Jong
df6698c98f fixed circle and disc geometry 2020-12-30 00:11:42 +01:00
Irmen de Jong
dd82e550d5 adding rect and fillrect to gfx2 2020-12-27 17:34: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
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
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
787f52d1f8 doc 2020-12-21 18:28:10 +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
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
a74403c347 float typecasts optimization 2020-11-26 01:52:48 +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
ee724eb4f1 float variable casts without translateExpression() 2020-11-19 22:58:38 +01:00
Irmen de Jong
8bd4914e2f fix stack error for float casts 2020-11-15 17:34:27 +01:00
Irmen de Jong
225295a7d8 fix float casts 2020-11-09 01:18:22 +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
e0c5ccc16b begun with converting builtin functions to new call convention 2020-11-02 23:00:20 +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
1a36302cf1 rest of optimizations following simplification of array indexer 2020-10-19 23:57:00 +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
095c8b2309 corrected name and added cx16logo library module for fun 2020-10-15 00:58:41 +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
3994de77d0 fix expression splitter handling related to code ballooning 2020-10-02 01:49:55 +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
448c934cba optimized neg(x) and abs(x) 2020-09-29 03:58:17 +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
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
4daf75a8cc better checks for invalid %output and %launcher values. Added diskdir examples. 2020-09-23 00:22:36 +02:00
Irmen de Jong
af6731c9c8 preparing version 4.3 2020-09-22 21:50:56 +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
cf49cbd1f8 more consistent about the system reset routine 2020-09-21 22:35:07 +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
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