Commit graph

60 commits

Author SHA1 Message Date
4f4df41c18 Local variable expansion when calling macro 2026-03-04 22:32:53 +01:00
b614bcb043 Added the WORD <name> = @<label | variable> syntax. Initializes a WORD variable with the address of (pointer to) that symbol. 2026-02-24 23:04:58 +01:00
4acd8f2e87 Local variable expansion and macro expansion in ASM block now takes into account comments and ommits those. 2026-02-13 09:29:40 +01:00
83a0a20393 Added SCRIPT MACRO blocks 2026-02-11 13:56:21 +01:00
c6b67f8044 Added SCRIPT LIBRARY block for reusable StarLark code. 2026-02-11 13:25:07 +01:00
d717002b27 Updated FOR loop to do check at NEXT instead of at FOR handling edge cases 255 and 65536 better. Removed STEP 2026-01-11 14:45:15 +01:00
275f4782c8 Made error messages display the source and some context. 2026-01-03 12:05:02 +01:00
ebad3c2e16 Added call graph functionality and analysis/warning of absolute address variable reuse overlap 2026-01-02 15:15:57 +01:00
35e4b77ee3 optimized xor generation somewhat. 2026-01-02 14:10:53 +01:00
e33460d84d Added SWITCH/CASE/DEFAULT/ENDSWITCH 2025-12-19 22:56:16 +01:00
5f01282df5 Fixed so functions can do type conversion between in/out params and arguments. Lossy conversions give a warning now. 2025-12-12 14:11:31 +01:00
22e6759409 Minor optimization on FOR when assignment and loop var is the same 2025-11-27 16:25:33 +01:00
23a721217d Fixed up memlib.c65 and added errors to POKEW and PEEKW if using the same variable for pointer and value. 2025-11-22 11:26:19 +01:00
8f947f7149 Fixed func calls with string literal arguments and $-replacements in #DEFINE. memlib.c65 is still borked. 2025-11-21 16:27:57 +01:00
040c03467b Fixed to function without params can be called as myfunction() with empty parens 2025-11-21 10:59:51 +01:00
c6b3e619c3 Added xor (^) operator to constant expressions 2025-11-20 22:01:23 +01:00
1617297067 New syntax to PEEK and added tests 2025-11-20 20:19:45 +01:00
315be292bf Added sensible handling for byte iterators 2025-11-18 23:23:05 +01:00
4f51572477 Changed for to not implement DOWNTO. 2025-11-17 23:58:51 +01:00
ee74135839 Fixed up comparision operator for FOR 2025-11-17 22:58:58 +01:00
37296cf627 First non-working version of FOR/NEXT loops. (tests failing) 2025-11-17 22:19:20 +01:00
4b5f8b30b7 Renamed loop stacks to prepare for FOR loop 2025-11-17 21:20:29 +01:00
c8c1d7e705 Added support for absolute variable declarations in func declarations. 2025-11-17 20:40:24 +01:00
c543dde600 Changed binary prefix from ! to % (as acme) 2025-11-09 12:15:50 +01:00
d57a40a7cf Improved funchandler.go HandleFuncCall to handle consts and expressions better 2025-11-08 13:46:41 +01:00
2dc591f40d Optimized equality and non equality tests with zero in comparison.go 2025-11-06 07:09:19 +01:00
af315647bd Added Starlark scripting language for SCRIPT blocks. 2025-11-06 06:57:06 +01:00
d09a039697 Generate ASM, ENDASM and SCRIPT, ENDSCRIPT asm comments in output 2025-11-06 05:35:27 +01:00
6085bccad3 Added all peeks, pokes, pointer, gosub and subend 2025-11-05 23:23:56 +01:00
5b3e5737b8 Added label and origin commands. 2025-11-05 19:29:35 +01:00
aedc605445 Added goto 2025-11-05 19:14:26 +01:00
bacd4851ef Added incr and decr and also local variable expansion in asm blocks. 2025-11-05 18:49:54 +01:00
7ac90260af Added function handling using FuncHandler 2025-11-05 18:08:25 +01:00
afc340d52d IF and WHILE now take single operator 2025-11-04 20:47:04 +01:00
3d6f786949 Updated while_test.go to new code generation. Added new versions of IF, ELSE, ENDIF based on comparison.go 2025-11-04 20:01:52 +01:00
df7e5349ac Optimized operand byte and lo-byte comparisons. 2025-11-04 19:14:09 +01:00
5a944c65af Removed redundant cmp #0 after lda 2025-11-04 17:58:41 +01:00
cbecb769a0 Fix for longjumps. 2025-11-04 17:56:06 +01:00
bea0640f0b Added while break wend with a generic comparisonGenerator object 2025-11-04 17:45:41 +01:00
a0e8bf40ea Added basic equal / not equal versions of if/else/endif 2025-11-02 21:40:28 +01:00
88f90fe5be Added and, or, xor and subtract commands 2025-11-02 18:07:14 +01:00
ac40f67ec0 Added ADD command 2025-11-02 00:43:23 +01:00
f529835ba8 Fixed preprocessor tests 2025-11-01 19:54:01 +01:00
8c0056365e Added WORD command 2025-11-01 19:42:32 +01:00
ff64cc6b93 First main.go driver with only the BYTE command finished. 2025-11-01 18:55:48 +01:00
89d8493192 Added compiler, command and the BYTE command for a first iteration. 2025-11-01 18:50:01 +01:00
558dc8657c Added funchandler.go + tests 2025-10-27 20:56:43 +01:00
495aaeb6c0 Changed the delimiter between scope name and variable name to underscore and updated tests 2025-10-27 19:43:33 +01:00
8b4c7dc0d4 Added conststr + tests for handling constant strings. 2025-10-26 21:06:11 +01:00
134dbd1d3c Added labelstack and symboltable. 2025-10-26 17:10:18 +01:00