Commit Graph

459 Commits

Author SHA1 Message Date
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
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
f45eabdd9e added CX16 VERA registers, made txt.fill_screen work on CX16 2020-08-31 18:23:52 +02:00
Irmen de Jong
438f3ee8d2 make GIVUAYFAY work (unsigned word to float) 2020-08-31 17:16:51 +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
e112dfd910 implemented signed byte and word division 2020-08-29 00:00:53 +02:00
Irmen de Jong
9154d8bd37 optimizing X register saving for 65c02 using phx/plx instead of zp location 2020-08-28 22:11:33 +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
f08fc18ab5 renamed c64scr. to txt. 2020-08-27 18:10:22 +02:00
Irmen de Jong
9cec554f7c moved the type conversion routines to their own library file to avoid duplication 2020-08-26 20:52:38 +02:00
Irmen de Jong
08b25e610d commander x16 improvements 2020-08-26 19:34:12 +02:00
Irmen de Jong
b939562062 added preliminary CommanderX16 machine target support. Fixed nullpointer when importing a missing file. 2020-08-26 01:56:26 +02:00
Irmen de Jong
3ce692bb10 even better machinetarget independence 2020-08-25 19:56:53 +02:00
Irmen de Jong
78bdbde3ae refer to ZP scratch constants from asm code via the global P8ZP constants as well 2020-08-25 19:44:08 +02:00
Irmen de Jong
8d8c066447 made the ZP and compilation target more generic 2020-08-25 19:32:31 +02:00
Irmen de Jong
d19b17cbfe optimize strlen() 2020-08-25 17:31:47 +02:00
Irmen de Jong
b9ca1c2e2c more uniform code for array indexing (all using scaled offset now) 2020-08-23 20:25:00 +02:00
Irmen de Jong
b27cbfac5e removed lsl() and lsr() functions just use <<=1 and >>=1 2020-08-22 16:44:48 +02:00
Irmen de Jong
bfc8a26381 implemented bit shifting for non-const amounts 2020-08-22 16:13:52 +02:00
Irmen de Jong
ef7744dbda asm fix 2020-08-21 04:02:10 +02:00
Irmen de Jong
c83a61c460 some float asm code added for in-place 2020-08-21 03:06:37 +02:00
Irmen de Jong
8d6220ce51 added most essential of the new in-place assignment code 2020-08-21 02:17:40 +02:00
Irmen de Jong
e1812ce16c fix typecast removal error. 2020-08-20 18:07:48 +02:00
Irmen de Jong
402827497e fix float array assignment 2020-07-26 23:32:20 +02:00
Irmen de Jong
cb9825484d some more optimized in-array assignments codegeneration 2020-06-17 21:41:38 +02:00
Irmen de Jong
ceb2c9e4f8 added string value assignment, leftstr, rightstr, substr functions 2020-06-06 00:05:39 +02:00
Irmen de Jong
a6bee6a860 some slight tweaks to asm for setting float value in array 2020-04-03 22:44:10 +02:00
Irmen de Jong
d22780ee44 implemented asm for lsl array values 2020-04-03 21:45:52 +02:00
Irmen de Jong
f8b0b9575d implemented asm for rol array values 2020-04-03 21:31:39 +02:00
Irmen de Jong
4274fd168e implemented asm for rol2 array values 2020-04-03 21:24:55 +02:00
Irmen de Jong
be7f5957f3 implemented asm for ror2 array values 2020-04-03 21:04:42 +02:00
Irmen de Jong
f2e5d987a9 implemented asm for ror array values 2020-04-03 00:03:42 +02:00
Irmen de Jong
15e8e0bf6d implemented asm for lsr array values 2020-04-02 23:38:45 +02:00
Irmen de Jong
b73da4ed02 some more obvious optimizations for X+X and X-X 2020-03-31 23:54:01 +02:00
Irmen de Jong
152888ee93 fix direcetmemoryread invalid asm 2020-03-26 22:46:05 +01:00
Irmen de Jong
131fe670a4 optimized scroll routines by removing needless twin loops 2020-03-24 17:33:47 +01:00
Irmen de Jong
11e9539416 smooth scroll 2020-03-24 02:42:32 +01:00
Irmen de Jong
50a85ee6b0 attempt to optimize asm for bitshifts more. 2020-03-23 22:59:29 +01:00
Irmen de Jong
f0d4c3aba9 moved initialvalues to asmgen, fixed sgn bug and internal float 0.0 variable disappearing bug 2020-03-22 18:17:12 +01:00
Irmen de Jong
4fbdd6d570 fix ubyte number print bug for 100-109 and 200-209 missing the tens digit 2020-03-22 01:49:05 +01:00
Irmen de Jong
4929c198ba tweak error reporting, expanded lines and circles example 2020-03-22 00:43:46 +01:00
Irmen de Jong
85c7f8314b added exit(rc) builtin function to immediately exit the program with a return code in A register 2020-03-13 02:08:18 +01:00
Irmen de Jong
7fbe486dff fix eval stack register X error in print_uw 2020-03-13 00:50:30 +01:00
Irmen de Jong
aa36acd65a implemented reverse(floatarray) builtin function 2020-03-11 23:18:03 +01:00
Irmen de Jong
98a638a2f3 split asmsub and romsub declarations 2020-03-10 23:09:31 +01:00
Irmen de Jong
96d8a7f0d7 float assembly code moved to separate library file 2020-03-10 22:03:24 +01:00
Irmen de Jong
52769decd4 fix assembler float truncation warning 2019-11-27 22:36:59 +01:00
Irmen de Jong
b5d1e8653d tiny cleanups 2019-10-20 23:52:26 +02:00
Irmen de Jong
f6d4c90dea improved number-to-decimal routines 2019-09-23 20:44:41 +02:00
Irmen de Jong
adfddddac6 attempt to fix bcd 2019-09-05 21:38:40 +02:00
Irmen de Jong
9edc92ec29 more bitshift asm stubs (actual functions still to be done) 2019-08-23 23:06:36 +02:00
Irmen de Jong
1d178080a3 more bitshift asm 2019-08-23 21:33:43 +02:00
Irmen de Jong
1cc1f2d91d reverse() added (byte+word) 2019-08-18 02:05:51 +02:00
Irmen de Jong
d837cc11f9 sort() added (bytes+words) 2019-08-18 00:04:03 +02:00
Irmen de Jong
27f987f0ae fixed bit shifts, added sgn() function 2019-08-17 16:44:28 +02:00
Irmen de Jong
b44e76db57 fix any/all assembly routine, added asm for min/max/sum/ etc aggregates
removed avg function because of hidden internal overflow issues
2019-08-11 16:13:09 +02:00
Irmen de Jong
f29ec3b4e1 relaxed symbol shadowing 2019-08-04 18:52:03 +02:00
Irmen de Jong
fba149ee28 removed the ~ before block names 2019-07-29 23:11:13 +02:00
Irmen de Jong
8e8c112ff0 improved subroutine param ast checks, added asm for Carry parameter 2019-07-29 00:33:19 +02:00
Irmen de Jong
b0dda08e74 assembler reserved symbols checked 2019-07-28 23:37:33 +02:00
Irmen de Jong
776c844d02 more ast-codegen v2 2019-07-23 01:36:49 +02:00
Irmen de Jong
3cf87536ff fix asmsub syntax 2019-07-09 07:24:21 +02:00
Irmen de Jong
d6b6254b72 simplified the asmsub syntax 2019-07-08 23:00:18 +02:00
Irmen de Jong
a9bbe0bc40 removed the memory keyword instead use & now (reuse the address-of operator to reduce the number of different concepts in the grammar) 2019-04-12 22:00:32 +02:00
Irmen de Jong
fb2796ac06 truly fix min(f)/max(f) also fix ceil(f) 2019-04-10 23:14:28 +02:00
Irmen de Jong
742b15357b fix all(f) 2019-04-10 22:42:48 +02:00
Irmen de Jong
ac6ed27052 restore tweaks in c64flt.p8 2019-04-10 22:18:45 +02:00
Irmen de Jong
fc47d3feb8 repaired min(f) max(f) fixes #13 2019-04-07 23:19:31 +02:00
Irmen de Jong
905d8a0c06 actually, get rid of integer pow() because a naive multiplication loop approach is way too slow 2019-03-31 18:04:19 +02:00
Irmen de Jong
03d0411679 pow_f implemented 2019-03-31 14:28:38 +02:00
Irmen de Jong
7114d3193c some cleanups in library asm code 2019-03-21 22:36:46 +01:00
Irmen de Jong
f3fc2fe523 irq handler saves zeropage scratch registers, fixes #8 2019-03-19 01:22:26 +01:00
Irmen de Jong
0820716e7b added sqrt16() integer square root 2019-03-16 19:25:47 +01:00
Irmen de Jong
191707cd37 added new c64utils.str2(u)word that doesn't use kernel float routines
fixed processing of register pair return value of asmsub
2019-03-16 17:50:59 +01:00
Irmen de Jong
d9d83248fe implemented strlen() function 2019-03-15 23:10:26 +01:00
Irmen de Jong
f5ba072294 removed str_p and str_ps pascal string types, fixes #10 2019-03-10 18:11:26 +01:00
Irmen de Jong
f2b03342ac tehtriz joystick input 2019-03-07 23:29:23 +01:00
Irmen de Jong
77dc35dc6a added read_flags() function, uword2bcd routine no longer enables irq again if it wasn't enabled before calling it. 2019-03-05 23:10:00 +01:00
Irmen de Jong
b0ad66bd04 added missing bitwise and/or/xor asm code 2019-02-23 23:06:46 +01:00
Irmen de Jong
c1d2b4601b fixed/added logical and/or/xor 2019-02-23 22:13:42 +01:00
Irmen de Jong
52352d9d04 added c64scr.getchr/getclr 2019-02-21 01:31:33 +01:00
Irmen de Jong
d05d8de447 optimize math from Soci's suggestions 2019-02-12 23:16:13 +01:00
Irmen de Jong
32a9ab30fb fixed stack bug in print_ub, applied Soci's optimizations to prog8lib.asm 2019-01-30 23:43:21 +01:00
Irmen de Jong
798c4d7902 fix some optimizations of loops, added some conditional branch optimizations 2019-01-27 19:14:58 +01:00
Irmen de Jong
6e3820c6b8 Fixed namespace lookup errors related to variable initialization. Removed many X register clobbers. 2019-01-24 23:29:09 +01:00
Irmen de Jong
d37c9d1680 argument type casts for builtin functions, added memset, tweaked memcopy/memset assembly a bit 2019-01-23 00:19:29 +01:00
Irmen de Jong
5471c5211c make %asminclude work, restructure prog8lib into separate asm file 2019-01-21 00:49:48 +01:00
Irmen de Jong
2911e357bd restructured program init code and library imports a bit 2019-01-20 17:45:57 +01:00
Irmen de Jong
fc67ef8f21 added SID registers and sound example program 2019-01-20 16:54:24 +01:00
Irmen de Jong
aa8f8978f0 remove long-branch warning for now 2019-01-16 23:12:30 +01:00
Irmen de Jong
5f2bf2b375 various regression fixes 2019-01-16 00:36:30 +01:00
Irmen de Jong
ee906ba82c fix ubyte2float conversion 2019-01-15 22:16:03 +01:00
Irmen de Jong
de4353a93e fix too greedy removal of loop statement bodies sometimes 2019-01-15 21:46:27 +01:00
Irmen de Jong
98e95b5707 replaced str2ubyte 2019-01-13 14:20:51 +01:00
Irmen de Jong
23afb1ccc2 optimization and fixes 2019-01-12 16:13:40 +01:00
Irmen de Jong
f3c9be4e06 float ++/-- and missing asm code handlers added 2019-01-12 14:55:57 +01:00
Irmen de Jong
0b86af0c4e fixes 2019-01-12 14:05:55 +01:00
Irmen de Jong
cad42ddc05 word multiplications done 2019-01-12 00:31:56 +01:00
Irmen de Jong
6fe0959fdc multiplications 2019-01-11 09:26:59 +01:00
Irmen de Jong
2a08c22b0f optimized byte multiplications 2019-01-11 03:08:27 +01:00
Irmen de Jong
aa00db4d80 prog8 lib modules are now embedded resource files 2019-01-10 19:30:26 +01:00
Irmen de Jong
e3eace9e28 project folder restructure 2019-01-09 23:57:27 +01:00