Commit graph

55 commits

Author SHA1 Message Date
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
ce45f71b99 PreProcessor rewritten, ready for script blocks, no tokenization, emits Kind of source line (if asm, script or source) 2025-10-17 16:59:41 +02:00
a962e4acb7 Added example usage code for MultiIndex. Added unit tests for MultiIndex 2025-10-14 20:57:24 +02:00
63e321fd20 Added MultiIndex (replaces TMbsl in old version). Commented in main to make it compile 2025-10-14 20:42:05 +02:00
b251a7dd79 Cleanup imports 2025-10-13 09:58:03 +02:00
b9ec630026 Preprocessor first version. Unit test covered. Nothing tested yet with real code. 2025-10-12 17:46:28 +02:00