Irmen de Jong
|
f2d27403c5
|
add string.endswith() to efficiently test for a suffix without copying
add string.startswith() to efficiently test for string prefix without copying
|
2022-07-21 00:38:30 +02:00 |
|
Irmen de Jong
|
473efbe67a
|
tweaks
|
2022-07-17 22:09:56 +02:00 |
|
Irmen de Jong
|
80ab552ad8
|
fix wrong code for signed word >= 0
|
2022-07-17 19:02:56 +02:00 |
|
Irmen de Jong
|
7d4695c5b2
|
cx16: graphics module y resolution corrected from 200 to 240. added 'cx16/circles' example.
|
2022-07-17 18:59:52 +02:00 |
|
Irmen de Jong
|
a07c52e112
|
conv.any2uword / conf.hex2uword can now deal with iso lower and upper case letters as well.
|
2022-07-17 02:39:40 +02:00 |
|
Irmen de Jong
|
7cb9a6ba60
|
diskio.status() more robust (stops at newline char instead of overwriting buffer), diskio.f_open better detects error status
|
2022-07-15 22:21:34 +02:00 |
|
Irmen de Jong
|
350dc731f1
|
cx16: sys.reset_system() now resets vera fully as well (such as PSG sound), kernal didn't seem to do that
|
2022-07-14 23:44:53 +02:00 |
|
Irmen de Jong
|
4bc65e9ef7
|
fix stack crash in cx16.push_vera_context()
|
2022-07-14 16:33:09 +02:00 |
|
Irmen de Jong
|
35af53828a
|
fix endless loop in optimizer, fix cx16 register clobbering in psg interrupt handler, fix crash on certain arrays, fix undefined symbol when it's in another imported module
|
2022-07-13 18:42:06 +02:00 |
|
Irmen de Jong
|
feb5c8be95
|
vm: some more peephole optimizations
|
2022-07-12 19:04:19 +02:00 |
|
Irmen de Jong
|
6181b12ab8
|
added -esa option to override the evalstack location, and shift cx16.r0-r15 accordingly
|
2022-07-11 19:29:04 +02:00 |
|
Irmen de Jong
|
8acb37b6c2
|
use bool type in examples and libraries
|
2022-07-08 21:50:32 +02:00 |
|
Irmen de Jong
|
c51c1da618
|
psg micro optimizations
|
2022-07-03 11:55:13 +02:00 |
|
Irmen de Jong
|
ea2812f50f
|
add max volume to psg envelope
|
2022-07-03 11:26:56 +02:00 |
|
Irmen de Jong
|
3ec05709d5
|
convert the sounds in cx16 tehtriz to use the psg module instead
|
2022-07-03 01:40:29 +02:00 |
|
Irmen de Jong
|
4bdac7404a
|
added sustain to psg envelope
|
2022-07-03 00:55:25 +02:00 |
|
Irmen de Jong
|
cc41218d37
|
added nicer vm example
|
2022-07-03 00:41:04 +02:00 |
|
Irmen de Jong
|
064d412ec8
|
added cx16.push_vera_context() and cx16.pop_vera_context() for use in irq handlers
|
2022-07-02 23:13:00 +02:00 |
|
Irmen de Jong
|
7fff4f249d
|
optimize msb(cx16.r0) -> cx16.r0H, lsb(cx16.r0) -> cx16.r0L
|
2022-07-02 21:38:22 +02:00 |
|
Irmen de Jong
|
7a3745f642
|
psg tweaks
|
2022-07-02 20:33:40 +02:00 |
|
Irmen de Jong
|
f8658f6afa
|
precalc vera freq to not use floating point math anymore
|
2022-07-02 19:40:18 +02:00 |
|
Irmen de Jong
|
223b725a10
|
psg abstraction and attack/release envelope
|
2022-07-02 18:47:12 +02:00 |
|
Irmen de Jong
|
965340ff90
|
logical and/or/xor/not all replaced by bitwise &,|,^,~ (ast, codegens)
this also fixed some invalid outcomes of logical expressions!
|
2022-07-02 00:38:17 +02:00 |
|
Irmen de Jong
|
fb989ae62f
|
cx16: reset rom/ram/monitor banks at program exit to sane values.
|
2022-07-01 00:14:38 +02:00 |
|
Irmen de Jong
|
4ca0805de1
|
bump version
|
2022-06-29 01:35:14 +02:00 |
|
Irmen de Jong
|
4b358abbb7
|
"not" operator removed from ast and codegen (it's been replaced with x==0 as equivalent)
|
2022-06-29 01:13:08 +02:00 |
|
Irmen de Jong
|
0fcd57192b
|
cx16diskio.f_read() now correctly deals with banked ram boundary
|
2022-06-26 21:42:56 +02:00 |
|
Irmen de Jong
|
5656ec11d3
|
fix missing abs(byte) routine
|
2022-06-24 01:51:54 +02:00 |
|
Irmen de Jong
|
df36983049
|
version 8.2
|
2022-06-15 22:31:29 +02:00 |
|
Irmen de Jong
|
8f9a0a244a
|
trying to add zsound pcm player example as well
|
2022-06-10 23:35:37 +02:00 |
|
Irmen de Jong
|
3054a1d32d
|
api change: removed swap() builtin function (too complex in codegen for little used function)
|
2022-06-06 16:01:11 +02:00 |
|
Irmen de Jong
|
0349d1d57c
|
diskio: moved cx16 optimized f_read() to cx16diskio instead
so unfortunately you have to select the faster version yourself when on cx16
|
2022-06-04 00:33:27 +02:00 |
|
Irmen de Jong
|
c7eafd7c79
|
cx16: fix macptr() signature and use it in diskio.f_read() for big increase in load speed
|
2022-06-02 00:37:18 +02:00 |
|
Irmen de Jong
|
10b5fb5d72
|
fix for total size returnvalue of diskio.f_read_all()
|
2022-06-01 01:13:19 +02:00 |
|
Irmen de Jong
|
a735939d1e
|
removed confusing GPL software license reference and copyright header from library files. (because of exclusion in output files)
Reworded software license and exclusion clause somewhat again in attempt to make it even clearer.
|
2022-05-30 20:12:20 +02:00 |
|
Irmen de Jong
|
6ed5f04970
|
version 8.1
|
2022-05-25 20:00:26 +02:00 |
|
Irmen de Jong
|
e69aeb8b98
|
added warning about shadowing variables
|
2022-05-22 17:34:08 +02:00 |
|
Irmen de Jong
|
4e1184a400
|
vm: added some of the sin cos tables in math.p8
|
2022-05-17 22:56:00 +02:00 |
|
Irmen de Jong
|
0bf00d1ca4
|
c64/c128 targets: perform cleanup at program exit such as re-enabling run-stop key and character set switching.
|
2022-05-15 16:44:26 +02:00 |
|
Irmen de Jong
|
4dc9b45297
|
vm: fixed string comparisons, added missing vm string module
|
2022-05-13 23:10:13 +02:00 |
|
Irmen de Jong
|
4be7bc8323
|
vm: limit float instructions to just 2 register args
|
2022-05-11 22:09:46 +02:00 |
|
Irmen de Jong
|
942c5cc04b
|
fix crash when optimizing pipe expression too aggressively
|
2022-05-07 17:29:36 +02:00 |
|
Irmen de Jong
|
b1a49e5f29
|
vm: implement rest of float instructions
|
2022-05-04 22:31:45 +02:00 |
|
Irmen de Jong
|
da01a5b4dc
|
vm: implement float to integer cast, any, all, reverse
|
2022-05-04 22:08:21 +02:00 |
|
Irmen de Jong
|
0f9e87d7bb
|
fixed compiler crash when casting float to integer, fixed float to int cast value error on cx16
|
2022-05-03 23:43:38 +02:00 |
|
Irmen de Jong
|
30c2e3e8ff
|
vm: fix comparisons codegen
|
2022-05-02 21:32:45 +02:00 |
|
Irmen de Jong
|
86cc2f1075
|
vm: implementing more fp instructions
|
2022-05-02 21:06:14 +02:00 |
|
Irmen de Jong
|
b32641db87
|
remove syscall() builtin functions
vm code can do this via inline assembly
|
2022-05-01 00:41:30 +02:00 |
|
Irmen de Jong
|
0ee790969d
|
vm: allow inline "assembly"
|
2022-04-30 23:24:25 +02:00 |
|
Irmen de Jong
|
7844ace934
|
vm: implementing floating-point
|
2022-04-29 22:27:02 +02:00 |
|
Irmen de Jong
|
cf50e4f6ec
|
vm: printing of numbers now via conv module.
assigning strings now converted to strcopy function call in the compiler ast.
|
2022-04-23 02:15:51 +02:00 |
|
Irmen de Jong
|
7eea97d741
|
- floats: remove all floating point builtin functions and move them to the floats module instead
|
2022-04-22 00:45:54 +02:00 |
|
Irmen de Jong
|
88b55ab93e
|
vm: add abs() and fix 6502 abs() code.
|
2022-04-18 21:20:17 +02:00 |
|
Irmen de Jong
|
ee36d47c27
|
vm: added cmp() and most of the status-branch instructions
|
2022-04-18 19:59:48 +02:00 |
|
Irmen de Jong
|
7dbff5b9e6
|
abs: remove support for floats. Use floats.fabs() instead.
this solves: can't use abs() etc in pipe expression because return type depends on argument type
|
2022-04-14 00:38:31 +02:00 |
|
Irmen de Jong
|
220246278a
|
removed sum(), max(), min(). abs() now always returns uword type.
This greatly simplifies internal handling of builtin functions by always having one fixed return type.
|
2022-04-14 00:21:16 +02:00 |
|
Irmen de Jong
|
ab1766a559
|
moved all *integer* builtin trig functions (sin8u, cos8u etc) as regular asmsubs in math module
|
2022-04-13 00:27:35 +02:00 |
|
Irmen de Jong
|
a2c7273801
|
vm: use memory load instruction better
|
2022-04-11 20:55:06 +02:00 |
|
Irmen de Jong
|
a0face4a28
|
vm: implementing rol/ror
|
2022-04-09 11:13:49 +02:00 |
|
Irmen de Jong
|
a8cf9f5cc4
|
vm: syscalls can now return value
|
2022-04-05 20:46:34 +02:00 |
|
Irmen de Jong
|
1d342cc6af
|
optimize cx16 textio.setcc()/setcc2()
|
2022-04-04 22:23:06 +02:00 |
|
Irmen de Jong
|
62b32b2211
|
todos
|
2022-04-03 22:56:13 +02:00 |
|
Irmen de Jong
|
9874fe2c23
|
fix superfluous printing of WARN/ERROR words
|
2022-04-02 22:16:47 +02:00 |
|
Irmen de Jong
|
520a142992
|
version 8.0
|
2022-04-02 19:10:18 +02:00 |
|
Irmen de Jong
|
3e62ffed0a
|
x16 r39: optimize diskio.load_raw() to use kernal's headerless load support
|
2022-04-02 03:26:48 +02:00 |
|
Irmen de Jong
|
037b89f018
|
x16 r39: tweak kbdbuf_peek() result value
|
2022-04-01 23:47:09 +02:00 |
|
Irmen de Jong
|
156cf7315c
|
x16 r39: add new keyboard apis and more vector location definitions
|
2022-04-01 21:41:38 +02:00 |
|
Irmen de Jong
|
fb6e9fa58f
|
x16 r39: fix textio routines for new vera memory layout
|
2022-03-31 23:47:11 +02:00 |
|
Irmen de Jong
|
b2ce1e8029
|
x16 r39: fix gfx2.text() charset rendering due to new Vera mem layout
|
2022-03-31 18:51:54 +02:00 |
|
Irmen de Jong
|
d90c51220f
|
x16 r39: additional FP routine changes
|
2022-03-31 18:43:32 +02:00 |
|
Irmen de Jong
|
d911728611
|
x16 r39: cx16.mouse_config() API changed, added mouse_config2() convenience wrapper
|
2022-03-31 18:24:23 +02:00 |
|
Irmen de Jong
|
86a7200012
|
x16 r39: cx16.screen_set_mode() -> cx16.screen_mode()
|
2022-03-31 18:17:28 +02:00 |
|
Irmen de Jong
|
582c498fe3
|
major version bump because upcoming breaking changes in cx16 r39 release target (kernal routines)
|
2022-03-31 00:12:26 +02:00 |
|
Irmen de Jong
|
3e1a7c6102
|
fix vm signed comparisons
|
2022-03-29 00:57:33 +02:00 |
|
Irmen de Jong
|
6d79903eb3
|
workin on vm issues
|
2022-03-28 01:49:43 +02:00 |
|
Irmen de Jong
|
30cbb6c9a8
|
implementing more of the vm
|
2022-03-27 21:59:46 +02:00 |
|
Irmen de Jong
|
4e33ab1e89
|
cx16 target: update float routine addresses to new r39 kernal FP package
|
2022-03-27 19:34:49 +02:00 |
|
Irmen de Jong
|
5494f309c0
|
working on vm
|
2022-03-27 17:46:15 +02:00 |
|
Irmen de Jong
|
3b6e7eccdd
|
simplified containment check, only possible on string and arrays (as per the docs)
|
2022-03-27 16:59:55 +02:00 |
|
Irmen de Jong
|
ed30108961
|
removed '**' power-operator. Use floats.pow() instead.
|
2022-03-27 13:16:34 +02:00 |
|
Irmen de Jong
|
12712ef812
|
working on vm
|
2022-03-27 11:48:44 +02:00 |
|
Irmen de Jong
|
7424f1f768
|
remove kernal bug workaround for joystick_get() routine. Fixes #39
|
2022-03-25 18:03:33 +01:00 |
|
Irmen de Jong
|
b5331d821c
|
fix string encoding for escaped characters
|
2022-03-25 00:17:41 +01:00 |
|
Irmen de Jong
|
27f6d47efa
|
working on vm codegen
|
2022-03-24 23:26:57 +01:00 |
|
Irmen de Jong
|
fd581ffc37
|
moved pattern_match() from prog8_lib to string module
|
2022-03-21 21:32:10 +01:00 |
|
Irmen de Jong
|
9b16d7c786
|
working on vm
|
2022-03-20 15:06:29 +01:00 |
|
Irmen de Jong
|
7d2bf892b1
|
added start of virtual machine compilation target
|
2022-03-19 00:57:35 +01:00 |
|
Irmen de Jong
|
a03c4c3659
|
working on symbol table
|
2022-03-04 22:26:46 +01:00 |
|
Irmen de Jong
|
2812736ae5
|
preparing version 7.9
|
2022-03-03 00:42:53 +01:00 |
|
Irmen de Jong
|
c5504c6657
|
added ATASCII encoding table for atari
|
2022-02-25 23:48:39 +01:00 |
|
Freddy
|
ad9933f0f6
|
fixed chrout for atari and added two examples
|
2022-02-23 16:42:22 +01:00 |
|
Irmen de Jong
|
406658a10f
|
reimplemented sys.memcopy and sys.memset on cx16 to work without kernal too
|
2022-02-22 21:07:19 +01:00 |
|
Irmen de Jong
|
6a0551cea1
|
added 'atari' compiler target beginnings (Atari 800 XL)
also default char and string encoding now taken from compiler target
|
2022-02-22 00:52:35 +01:00 |
|
Irmen de Jong
|
af0e7f7187
|
searching names in inlined assembly now ignores source comments
|
2022-02-13 13:41:12 +01:00 |
|
Irmen de Jong
|
a3a6812608
|
version 7.8
|
2022-02-12 17:40:32 +01:00 |
|
Irmen de Jong
|
343f01d5e1
|
re-enabled unused variable removal from library modules (+fixed some @shared vars in libraries)
|
2022-02-10 03:10:47 +01:00 |
|
Irmen de Jong
|
08bacdd090
|
temp vars are now dynamically added to AST as needed
|
2022-02-10 02:52:47 +01:00 |
|
Irmen de Jong
|
8c2e6971fc
|
start using vars instead of callgraph (2)
|
2022-02-08 21:09:00 +01:00 |
|
Irmen de Jong
|
1903990f30
|
start using vars instead of callgraph
|
2022-02-08 20:40:10 +01:00 |
|
Irmen de Jong
|
7d67005709
|
more rewrite variable allocation
|
2022-02-08 20:40:10 +01:00 |
|