Irmen de Jong
bcc4bf5c2b
almost forgot
2023-12-28 20:39:27 +01:00
Irmen de Jong
a0594cbce3
const optimizer now knows about a bunch of library functions, such as math.*
2023-12-28 20:14:13 +01:00
Irmen de Jong
078bfefe41
clarify scoped names a bit more
2023-12-28 16:36:29 +01:00
Irmen de Jong
9c1b11d605
some WARN messages are now INFO
2023-12-28 14:20:47 +01:00
Irmen de Jong
44d82f9190
add unit tests
2023-12-28 13:30:07 +01:00
Irmen de Jong
37fcde30d6
constants have p8c_ prefix instead of p8v_ in the asm
2023-12-28 05:28:32 +01:00
Irmen de Jong
09c6cb4d6b
replace unwritten vars by consts. Improved const eval.
...
Fixed some slight bugs in library code
2023-12-28 05:17:15 +01:00
Irmen de Jong
b428343c2a
tweak chained comparisons
2023-12-28 02:31:39 +01:00
Irmen de Jong
dfce292294
allow chained comparisons i<x<j (desugared into: i<x and x<j)
2023-12-28 01:18:59 +01:00
Irmen de Jong
2b8f613a00
added %option ignore_unused to suppress warnings about unused vars and subs in that module/block.
...
Also improved error for invalid directive.
2023-12-26 23:37:59 +01:00
Irmen de Jong
2eb137618e
refactor block options
2023-12-26 22:13:08 +01:00
Irmen de Jong
4bb2b8ca9b
make isArray a computed property by simply checking the datatype
2023-12-26 19:58:08 +01:00
Irmen de Jong
5179562fb2
can be val
2023-12-26 19:39:02 +01:00
Irmen de Jong
0a4de45453
get rid of vardecl.declareddatatype
2023-12-26 19:33:58 +01:00
Irmen de Jong
ffdc658dc8
type error tweaks
2023-12-26 18:49:01 +01:00
Irmen de Jong
7530f4407b
ir tag change INLINEASM->ASM
2023-12-26 16:15:19 +01:00
Irmen de Jong
73864c8101
added -check command line option
2023-12-26 15:45:55 +01:00
Irmen de Jong
f948917124
added floats.push() and floats.pop()
...
fixed vm pop.f
2023-12-26 15:19:49 +01:00
Irmen de Jong
0d44492086
push,pushw,pop and popw are no longer built-in functions but regular routines in sys
2023-12-26 14:47:31 +01:00
Irmen de Jong
38a22fbc99
allow %option no_symbol_prefixing also on module scope
2023-12-26 12:31:18 +01:00
Irmen de Jong
8ae435549d
added -slabshigh N and -slabsgolden for memory() slabs
2023-12-23 20:45:30 +01:00
Irmen de Jong
9b113c0cbb
added -varsgolden to put BSS into Golden Ram at $0400
2023-12-23 20:11:50 +01:00
Irmen de Jong
0e0fac8c4b
BSSHIGHRAM_END more clearly defined (to be inclusive)
2023-12-23 19:05:06 +01:00
Irmen de Jong
4cd9bb8f99
allow Python-style negative array indexing to count from the end
2023-12-23 16:37:28 +01:00
Irmen de Jong
ad9eaeafeb
call
now returns a word value
2023-12-22 22:24:11 +01:00
Irmen de Jong
6cd392909c
added verafx.copy() routine for fast vram-to-vram copying ('blitting')
2023-12-22 17:52:43 +01:00
Irmen de Jong
49ec430592
cx16: added several word Vera-registers as memory-mapped vars as well
2023-12-21 00:28:09 +01:00
OODLER
09f3fbeb38
doc tweak, adding qualified name example for goto ( #116 )
2023-12-20 23:51:46 +01:00
OODLER
e7698686fa
fixed a glitch in the prog8/vtui example ( #117 )
...
When the program starts, before the screen is modified, save_rec
is called to capture the cx16 logo.
The fix was to not do the second call to save_rec until after
vtui is used to draw the boxes on the screen.
Before the this fix, the initial replacement issue was of the
logo and not the portion of the screen originally modified by
vtui.
2023-12-20 23:49:47 +01:00
Irmen de Jong
66d939df0d
docs about new asm symbol prefixes
2023-12-20 22:37:46 +01:00
Irmen de Jong
6bc079c7b7
more asm symbol prefixing: variables with p8v_, subroutines with p8s_ etc
...
labels with p8l_ . All this to avoid symbol clashes in the generated assembly code.
Everything got its own distinguishing prefix so we're done with it once and for all and have only 1 breaking change moment.
2023-12-20 22:20:59 +01:00
Irmen de Jong
299419917e
added symbol ambiguity error (variable vs block name for scoped symbols)
...
fixes #114
2023-12-20 00:28:15 +01:00
Irmen de Jong
69f6afe420
block names in asm now prefixed with p8b_ (instead of p8_)
...
as part of fixing var versus block symbol conflict handling
2023-12-19 23:00:20 +01:00
Irmen de Jong
b7279a3d9e
fix 'not in' parsing error
...
fixes #115
2023-12-19 19:49:25 +01:00
Irmen de Jong
e14b854d7b
cx16: added audio kernal routines example
2023-12-19 01:47:05 +01:00
Irmen de Jong
8bd7c601c0
cx16: added all remaining audio kernal routines. added the three x16edit kernal entry points.
2023-12-18 22:16:44 +01:00
Irmen de Jong
997288fa03
added cbm.CLEARST() to reset ST to 0
2023-12-18 01:20:24 +01:00
Irmen de Jong
0f26b39997
improve diskio error handling and device not found errors
...
for instance if you set drivenumber to 9 without having a second drive connected, it used to hang in various routines
2023-12-17 22:39:08 +01:00
Irmen de Jong
ae66fcac1e
added call
builtin function for indirect JSR
2023-12-17 15:45:28 +01:00
Irmen de Jong
43944a94eb
doc tweaks
2023-12-17 14:47:20 +01:00
Irmen de Jong
eba0bde6f3
Merge branch 'optimize-st'
...
# Conflicts:
# examples/test.p8
2023-12-17 02:11:01 +01:00
Irmen de Jong
4544af441b
doc tweaks, explain str a bit more
2023-12-17 02:02:59 +01:00
Irmen de Jong
a8be94de6b
better error message when attempting to cast a float to integer
2023-12-15 22:28:06 +01:00
Irmen de Jong
b24df31c2b
IR: fix codegen for routines returning in CPU Status register flag
2023-12-14 21:16:14 +01:00
Irmen de Jong
332ba8ed7e
don't give error when returning uword value in subroutine that returns STR
2023-12-14 02:48:21 +01:00
Irmen de Jong
58400f53bc
optimize: flip if true/else blocks if the else block only contains a jump (inverting the condition)
2023-12-13 22:06:53 +01:00
Irmen de Jong
01c2112881
remove PtJump label, just use identifier with dummy
2023-12-13 04:16:49 +01:00
Irmen de Jong
a546c2247d
optimize if-else handling of asmsub boolean result in status flags
2023-12-13 04:03:21 +01:00
Irmen de Jong
0da9142009
asm: also work for asmsub that return N or Z flag (Carry already worked)
2023-12-13 02:11:15 +01:00
Irmen de Jong
796add0ee2
add string.isspace and string.isprint
2023-12-13 00:28:34 +01:00