Commit graph

168 commits

Author SHA1 Message Date
3f3d94367f Add PRINT-OBJECT method to TOKEN-NUMBER 2025-05-22 13:14:55 +02:00
12d1a905fe Add stub ASM-FUNCTION class 2025-05-22 13:14:55 +02:00
38406c80ee Add various transformation rules 2025-05-22 13:14:55 +02:00
ebe27cf026 Make methods for nodes to list their potential next nodes 2025-05-22 13:14:55 +02:00
4bf1316536 Half-baked and half-hearted attempt to let nodes hold comments 2025-05-22 13:14:55 +02:00
57c2978b71 Adjust reference PRINT-OBJECTs to not error on unbound slots 2025-05-22 13:14:55 +02:00
3c8835eb7b Make references able to hold a name 2025-05-22 13:14:55 +02:00
7639263bed Make TRANSFORM return OBJ if it's already TO-TYPE 2025-05-22 13:14:55 +02:00
1307e31268 Better handling of operators, source, and comments in tokenizer
...among other minor changes to accomodate the parser.
2025-05-22 13:14:55 +02:00
8acbf2caec Define more atomic tokens, and add shortcut macro for doing it 2025-05-22 13:14:55 +02:00
ae39a48890 Add PRINT-OBJECT method for TOKEN-NAME 2025-05-22 13:14:55 +02:00
25fd7675d0 Rename TOKEN-NAME's TEXT slot to NAME to match TOKEN-KEYWORD 2025-05-22 13:14:55 +02:00
45a66ce323 Give tokens an INITFORM for SOURCE (to NIL) 2025-05-22 13:14:55 +02:00
5a18cc9864 Make NODE-DOTIMES hold a counter variable 2025-05-22 13:14:55 +02:00
6b74c0247e Move and rename syntax-example.txt 2025-05-22 13:14:55 +02:00
hugova
89dcec60ff implement general divition 2025-05-17 16:12:13 +02:00
hugova
3283f9a68a fix compiler arguments 2025-05-17 16:12:13 +02:00
hugova
42d6b35713 remove none relevant stuff from build.sh 2025-05-17 16:12:13 +02:00
e6e2e94404 Add symbol table 2025-05-16 21:00:57 +02:00
0867e99cc1 Various messes 2025-05-16 21:00:14 +02:00
5d0f4b4767 Move definition of REFERENCE classes to its own file
Dereferencing is still defined in high-level.lisp, this might change
in the future since I'm sort of restructuring a little bit.
2025-05-16 21:00:14 +02:00
449e36e183 Add reference equality test (only implemented for constants so far) 2025-05-16 21:00:14 +02:00
e88e966521 Add mechanism for transforming objects to different types 2025-05-16 21:00:14 +02:00
hugova
69232b6d53 optimize general multiplication, less cpu cykels in most cases 2025-05-16 18:37:21 +02:00
3211f6d441 Add primitive tokenizer for USC 2025-05-16 12:31:18 +02:00
b9bda5ad68 Add missing RELATIVE-MIXIN 2025-05-16 12:31:18 +02:00
53002f2b8a Slight syntax adjustment
I just couldn't stand "dotimes x 200", and "for x do 200 times" just
feels so much nicer. I also added a space after an opening parenthesis
to ensure that my tokenizer gets to eat this particular type of
unnecessary but permitted whitespace.
2025-05-16 12:31:18 +02:00
hugova
9a06f770c2 add general multiplication implementation 2025-05-16 11:11:21 +02:00
bc3e07356e Add a USC test program 2025-05-16 10:39:03 +02:00
3878b57848 Add syntax example 2025-05-16 10:39:03 +02:00
hugova
c6392088f8 optimize away JMP instruction in mem logic 2025-05-15 17:43:23 +02:00
hugova
f17b332005 optimize code, no need to set Y after overflow 2025-05-15 17:39:43 +02:00
hugova
350e014e3f fix the banner of char_draw to the compiler 2025-05-15 17:36:34 +02:00
hugova
465996a2e6 used unsafe add to improve char_draw performance 2025-05-15 17:32:42 +02:00
hugova
c1a79b32b7 unroll loop for faster char-draw:s 2025-05-15 17:24:40 +02:00
hugova
98ef4eaef0 remove unused instruction 2025-05-15 17:14:24 +02:00
hugova
87fd6a1b9d make memset work more like c:s implementation. 2025-05-15 17:05:28 +02:00
hugova
cc46c68290 optimize new memcpy 2025-05-15 16:18:50 +02:00
hugova
f8dbfd86f9 rewrite memcpy to work more like c:s implementation 2025-05-15 16:11:51 +02:00
hugova
3295b71f6b make char_draw faster using lookup-table 2025-05-12 12:21:18 +02:00
hugova
55e63ff627 optimise away constant by adding it to lookup-table 2025-05-12 02:24:55 +02:00
hugova
d34d25ce9f reduce 2 into 1 instruction in pixel_draw.s 2025-05-12 02:06:26 +02:00
hugova
65905fa7e7 optimise pixel draw using lookup table 2025-05-12 01:44:00 +02:00
hugova
2bab2a6c8a change naming convention for one variable 2025-05-11 22:32:36 +02:00
hugova
c2e89a5487 make char.s use ARGVEC 2025-05-11 22:23:08 +02:00
hugova
c2a4ff416d fix comment and fix syntax 2025-05-11 20:45:11 +02:00
hugova
017a337180 make pixel drawing faster using lookup table 2025-05-11 20:00:48 +02:00
hugova
e89d566fbb make .build executable 2025-05-11 19:59:47 +02:00
hugova
df5130df2e comment out buggy code in source.s 2025-05-08 23:06:32 +02:00
hugova
83793035ad add use of ARGVEC see public.inc 2025-05-08 23:05:38 +02:00