Commit graph

43 commits

Author SHA1 Message Date
9f24408a0b Added pragma to control number of steps in scripts and macros. Now that we support file loading some scripts might need more steps to process images or whatnot. 2026-06-12 15:12:34 +02:00
205ae92d0e Optimized and, or and xor commands 2026-06-04 02:15:35 +02:00
037d232c55 First naive version of optimizer 2026-06-03 21:51:29 +02:00
b6fce2a7f9 Fix pragma auto-removal for multi-FUNC groups sharing one FEND 2026-05-17 16:23:14 +02:00
5f25d66aeb bit shift operators prefer shifting in ACC if possible 2026-04-15 07:11:56 +02:00
822326f993 Optimizations of shift operators 2026-04-15 03:03:35 +02:00
0357df9873 Added right and left shift operators 2026-04-15 01:29:38 +02:00
652e147298 Added functionality to cull unused functions (by pragma _P_REMOVE_UNUSED) 2026-04-13 19:57:16 +02:00
51b9476a85 Fixed disabling some pragmas and test to go with them 2026-04-13 16:02:16 +02:00
2d2d665ebd Added pragma _P_IGNORE_UNUSED to suppress warnings for unused variables. 2026-04-13 15:13:21 +02:00
b400728893 Added so line numbers and source files are indicated on types declared but never used 2026-04-13 13:16:32 +02:00
b25c11ae64 First commit refactoring and centralizing constant handling all over 2026-04-13 12:21:11 +02: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
83a0a20393 Added SCRIPT MACRO blocks 2026-02-11 13:56:21 +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
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
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
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
c543dde600 Changed binary prefix from ! to % (as acme) 2025-11-09 12:15:50 +01:00
2dc591f40d Optimized equality and non equality tests with zero in comparison.go 2025-11-06 07:09:19 +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
8c0056365e Added WORD command 2025-11-01 19:42:32 +01:00
89d8493192 Added compiler, command and the BYTE command for a first iteration. 2025-11-01 18:50:01 +01:00