Irmen de Jong
|
1a56743bb1
|
fix IR repeat loop codegen when amount is 0
|
2022-09-25 20:48:17 +02:00 |
|
Irmen de Jong
|
387a4b7c35
|
added string.lowerchar() and string.upperchar()
|
2022-09-25 20:20:38 +02:00 |
|
Irmen de Jong
|
c26e116f0e
|
vm: fix crashes when array contains pointers/strings
|
2022-09-24 14:42:07 +02:00 |
|
Irmen de Jong
|
46dac909ef
|
vm/math.p8: complete the sin and cos routines
|
2022-09-22 15:49:19 +02:00 |
|
Irmen de Jong
|
97aa91c75e
|
removed 16 bits sin/cos routines from math library (sin16, sin16r etc)
|
2022-09-22 12:55:00 +02:00 |
|
Irmen de Jong
|
627ed51a1b
|
IR: mem mapped vars and memory slabs
|
2022-09-19 15:20:40 +02:00 |
|
Irmen de Jong
|
0e831d4b92
|
fix superfluous usage of addressOf()
|
2022-09-16 00:31:04 +02:00 |
|
Irmen de Jong
|
e34bab9585
|
change syntax of address-of in p8virt code to &X, instead of {X}
|
2022-09-13 23:28:52 +02:00 |
|
Irmen de Jong
|
3ab5e5ac48
|
added cx16.kbdbuf_clear()
|
2022-09-01 18:40:17 +02:00 |
|
Irmen de Jong
|
c33dc0f3be
|
version
|
2022-08-21 14:37:10 +02:00 |
|
Irmen de Jong
|
a878c9a61d
|
add some documentation to the psg module
|
2022-08-19 22:17:23 +02:00 |
|
Irmen de Jong
|
6454bf8ec4
|
added mouse cursor to amiga example
slightly sped up text rendering in gfx2 highres mode
|
2022-08-16 04:25:59 +02:00 |
|
Irmen de Jong
|
b6eef3612f
|
added some ported bench8 test programs
|
2022-08-12 22:08:27 +02:00 |
|
Irmen de Jong
|
68abda1219
|
fix a few small compiler errors (removing functioncall, removing block, assigning virtual register return value)
|
2022-08-09 23:38:29 +02:00 |
|
Irmen de Jong
|
e560e2ab3f
|
vm instructions now contain info on input/output registers
|
2022-08-07 18:49:16 +02:00 |
|
Irmen de Jong
|
197081f10d
|
keyboardhandler
|
2022-08-04 23:04:16 +02:00 |
|
Irmen de Jong
|
00b717cde8
|
tweak
|
2022-08-04 18:35:10 +02:00 |
|
Irmen de Jong
|
a38ddcb364
|
diskio use other filename buffer to avoid always having large buffer
|
2022-08-02 00:58:32 +02:00 |
|
Irmen de Jong
|
5b9576df4e
|
added diskio.send_command()
diskio now reuses some buffer internally for file names to save some memory
|
2022-08-01 22:59:27 +02:00 |
|
Irmen de Jong
|
90ddec2ad8
|
avoid multiple change events in watch mode
added bsieve example
|
2022-07-31 11:58:27 +02:00 |
|
Irmen de Jong
|
f6b03d5a78
|
added diskio.diskname(), improved error checking in diskio.directory()
|
2022-07-30 13:35:42 +02:00 |
|
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 |
|
Irmen de Jong
|
72dfb0bda3
|
fix: undefined sys.memcopy when initializing array on cx16
|
2022-02-08 20:29:47 +01:00 |
|
Natt Akuma
|
49d37c016e
|
Optimize strcmp_mem
|
2022-02-04 22:07:03 +07:00 |
|
Natt Akuma
|
73dfb5f443
|
Optimize sign extension to AY
|
2022-02-04 00:59:44 +07:00 |
|
Irmen de Jong
|
fa48746ba9
|
increase internal buffer for diskio.list_files to be able to list larger directories
|
2022-01-26 03:17:33 +01:00 |
|
Irmen de Jong
|
46f9fab140
|
library API change: string.find now returns index of character + carry bit status (instead of substring address)
|
2022-01-24 21:37:04 +01:00 |
|
Irmen de Jong
|
b7d06f2c0a
|
API change: added alignment parameter to memory() function
|
2022-01-24 18:58:57 +01:00 |
|
Irmen de Jong
|
118196a0bf
|
library API change: moved cx16.vload() to cx16diskio module
|
2022-01-24 18:31:18 +01:00 |
|
Irmen de Jong
|
adb979df38
|
tweak comment
|
2022-01-23 22:34:05 +01:00 |
|
Irmen de Jong
|
3401cb5b4a
|
fixed compiler recursion crash when returning certain typecasted value
|
2022-01-23 19:13:20 +01:00 |
|
Irmen de Jong
|
c8bd57cd4d
|
fixed signature of mouse_get(): it returns the buttonstatus in A. Added convenience cx16.mouse_pos() routine.
|
2022-01-21 22:06:17 +01:00 |
|
Irmen de Jong
|
6b02f2eea0
|
implement iso encoding and new string encoding syntax, fixes #38
|
2022-01-19 21:21:32 +01:00 |
|
Irmen de Jong
|
5237e55326
|
added txt.iso() to enable iso-charset on cx16
|
2022-01-18 21:35:29 +01:00 |
|
Irmen de Jong
|
d916027e75
|
labels no longer start with '_' fixes #62
|
2022-01-17 22:03:53 +01:00 |
|
Irmen de Jong
|
8966d2aa06
|
comments and prepare new version 7.7
|
2022-01-16 23:03:00 +01:00 |
|
Irmen de Jong
|
50c16fe6de
|
code size optimization: don't copy floats with inlined copy code but use copy_float routine
|
2022-01-09 16:18:13 +01:00 |
|
Irmen de Jong
|
c1a39c269e
|
optimized code for stack eval comparisons with zero
|
2022-01-09 03:19:49 +01:00 |
|
Irmen de Jong
|
8f3df3039a
|
added pipe operator `|> `
|
2022-01-06 22:54:18 +01:00 |
|
Irmen de Jong
|
c57ef7725e
|
preparing v7.6
|
2022-01-04 20:40:35 +01:00 |
|
Irmen de Jong
|
96225efd96
|
library doc tweaks
|
2022-01-03 23:15:34 +01:00 |
|
Irmen de Jong
|
05a1ddad05
|
Merge branch 'master' into c128target
# Conflicts:
# examples/test.p8
|
2021-12-29 18:14:24 +01:00 |
|
Irmen de Jong
|
de6ce4a46e
|
add "X in [1,2,3]" expression (efficient containment check)
|
2021-12-29 17:26:00 +01:00 |
|
Irmen de Jong
|
d4153da8b9
|
setup float routine addresses for c128
|
2021-12-25 02:34:52 +01:00 |
|
Irmen de Jong
|
fc33ab8905
|
shuffled some system functions back to c64 block to remain compatible with existing code, added missing float and graphics library stubs
|
2021-12-24 00:08:32 +01:00 |
|
Irmen de Jong
|
8fa84de28e
|
fix c128 clearscreen and bdmusic sound issue
|
2021-12-22 22:59:36 +01:00 |
|
Irmen de Jong
|
3e3da38de1
|
correctly disable charset switching
|
2021-12-22 21:47:41 +01:00 |
|
Irmen de Jong
|
cabf1e82e8
|
some shadow registers added to make uppercase()/lowercase() work
|
2021-12-22 21:20:34 +01:00 |
|
Irmen de Jong
|
836d40072f
|
c128 evalstack corrections
|
2021-12-22 00:07:05 +01:00 |
|
Irmen de Jong
|
431401d90e
|
c128 corrections
|
2021-12-21 23:37:15 +01:00 |
|
Irmen de Jong
|
6da83e2bd7
|
first steps to add C128 compiler target
|
2021-12-21 19:08:33 +01:00 |
|