Commit graph

  • 928cdfd318 Add user-side compiler's parser main John Lorentzson 2025-05-22 13:12:47 +02:00
  • f9f2694b96 Add two more code examples John Lorentzson 2025-05-22 13:12:37 +02:00
  • 08f9cc4a11 Remove premature code generation from high-level and add new nodes John Lorentzson 2025-05-22 13:08:15 +02:00
  • 3f3d94367f Add PRINT-OBJECT method to TOKEN-NUMBER John Lorentzson 2025-05-22 13:03:27 +02:00
  • 12d1a905fe Add stub ASM-FUNCTION class John Lorentzson 2025-05-22 12:51:04 +02:00
  • 38406c80ee Add various transformation rules John Lorentzson 2025-05-22 12:40:30 +02:00
  • ebe27cf026 Make methods for nodes to list their potential next nodes John Lorentzson 2025-05-22 12:23:06 +02:00
  • 4bf1316536 Half-baked and half-hearted attempt to let nodes hold comments John Lorentzson 2025-05-22 12:22:36 +02:00
  • 57c2978b71 Adjust reference PRINT-OBJECTs to not error on unbound slots John Lorentzson 2025-05-22 12:21:51 +02:00
  • 3c8835eb7b Make references able to hold a name John Lorentzson 2025-05-22 12:19:54 +02:00
  • 7639263bed Make TRANSFORM return OBJ if it's already TO-TYPE John Lorentzson 2025-05-22 12:18:56 +02:00
  • 1307e31268 Better handling of operators, source, and comments in tokenizer John Lorentzson 2025-05-22 12:17:56 +02:00
  • 8acbf2caec Define more atomic tokens, and add shortcut macro for doing it John Lorentzson 2025-05-20 12:31:15 +02:00
  • ae39a48890 Add PRINT-OBJECT method for TOKEN-NAME John Lorentzson 2025-05-20 12:30:12 +02:00
  • 25fd7675d0 Rename TOKEN-NAME's TEXT slot to NAME to match TOKEN-KEYWORD John Lorentzson 2025-05-20 12:29:24 +02:00
  • 45a66ce323 Give tokens an INITFORM for SOURCE (to NIL) John Lorentzson 2025-05-20 12:28:34 +02:00
  • 5a18cc9864 Make NODE-DOTIMES hold a counter variable John Lorentzson 2025-05-20 12:28:11 +02:00
  • 6b74c0247e Move and rename syntax-example.txt John Lorentzson 2025-05-20 12:27:57 +02:00
  • 89dcec60ff implement general divition hugova 2025-05-17 16:11:49 +02:00
  • 3283f9a68a fix compiler arguments hugova 2025-05-17 16:11:25 +02:00
  • 42d6b35713 remove none relevant stuff from build.sh hugova 2025-05-17 16:10:31 +02:00
  • e6e2e94404 Add symbol table John Lorentzson 2025-05-16 21:00:57 +02:00
  • 0867e99cc1 Various messes John Lorentzson 2025-05-16 21:00:05 +02:00
  • 5d0f4b4767 Move definition of REFERENCE classes to its own file John Lorentzson 2025-05-16 15:09:11 +02:00
  • 449e36e183 Add reference equality test (only implemented for constants so far) John Lorentzson 2025-05-16 15:04:59 +02:00
  • e88e966521 Add mechanism for transforming objects to different types John Lorentzson 2025-05-16 15:04:36 +02:00
  • 69232b6d53 optimize general multiplication, less cpu cykels in most cases hugova 2025-05-16 18:36:10 +02:00
  • 3211f6d441 Add primitive tokenizer for USC John Lorentzson 2025-05-16 12:31:03 +02:00
  • b9bda5ad68 Add missing RELATIVE-MIXIN John Lorentzson 2025-05-16 12:30:40 +02:00
  • 53002f2b8a Slight syntax adjustment John Lorentzson 2025-05-16 12:29:13 +02:00
  • 9a06f770c2 add general multiplication implementation hugova 2025-05-16 10:40:55 +02:00
  • bc3e07356e Add a USC test program John Lorentzson 2025-05-16 10:38:41 +02:00
  • 3878b57848 Add syntax example John Lorentzson 2025-05-16 10:38:29 +02:00
  • c6392088f8 optimize away JMP instruction in mem logic hugova 2025-05-15 17:43:23 +02:00
  • f17b332005 optimize code, no need to set Y after overflow hugova 2025-05-15 17:39:43 +02:00
  • 350e014e3f fix the banner of char_draw to the compiler hugova 2025-05-15 17:36:34 +02:00
  • 465996a2e6 used unsafe add to improve char_draw performance hugova 2025-05-15 17:32:42 +02:00
  • c1a79b32b7 unroll loop for faster char-draw:s hugova 2025-05-15 17:24:40 +02:00
  • 98ef4eaef0 remove unused instruction hugova 2025-05-15 17:14:24 +02:00
  • 87fd6a1b9d make memset work more like c:s implementation. hugova 2025-05-15 17:05:28 +02:00
  • cc46c68290 optimize new memcpy hugova 2025-05-15 16:18:50 +02:00
  • f8dbfd86f9 rewrite memcpy to work more like c:s implementation hugova 2025-05-15 16:11:51 +02:00
  • 3295b71f6b make char_draw faster using lookup-table hugova 2025-05-12 12:21:18 +02:00
  • 55e63ff627 optimise away constant by adding it to lookup-table hugova 2025-05-12 02:24:55 +02:00
  • d34d25ce9f reduce 2 into 1 instruction in pixel_draw.s hugova 2025-05-12 02:06:26 +02:00
  • 65905fa7e7 optimise pixel draw using lookup table hugova 2025-05-12 01:44:00 +02:00
  • 2bab2a6c8a change naming convention for one variable hugova 2025-05-11 22:32:36 +02:00
  • c2e89a5487 make char.s use ARGVEC hugova 2025-05-11 22:23:08 +02:00
  • c2a4ff416d fix comment and fix syntax hugova 2025-05-11 20:45:11 +02:00
  • 017a337180 make pixel drawing faster using lookup table hugova 2025-05-11 20:00:48 +02:00
  • e89d566fbb make .build executable hugova 2025-05-11 19:59:47 +02:00
  • df5130df2e comment out buggy code in source.s hugova 2025-05-08 23:06:32 +02:00
  • 83793035ad add use of ARGVEC see public.inc hugova 2025-05-08 23:04:50 +02:00
  • 9b5fd7d6e5 limit pixel_draw to only write pixel with 0 - 255 x_pos hugova 2025-05-08 22:35:25 +02:00
  • c336e43c19 Add bytesquashing (turning instructions etc. into dead bytes) John Lorentzson 2025-05-08 22:18:25 +02:00
  • 010cc5dd87 Make FIX-LABEL-ADDRESSES-IN-INSTRUCTION-LIST add PROGRAM_END label John Lorentzson 2025-05-08 22:17:36 +02:00
  • 9d2d0dea6b Fix instruction redefinition and add some opcodes John Lorentzson 2025-05-08 22:09:11 +02:00
  • 184d0324c0 Fix broken INSTRUCTION-LENGTH John Lorentzson 2025-05-08 22:06:21 +02:00
  • 31bb5f8509 Add offset label class John Lorentzson 2025-05-08 22:05:48 +02:00
  • 15a70836ac Add temporary ARGVEC and VARVEC definitions John Lorentzson 2025-05-08 22:04:34 +02:00
  • 4a4a7b8485 Add LABELP predicate John Lorentzson 2025-05-08 21:54:52 +02:00
  • 379d33d5a1 Move label name + prefix warning to the right place John Lorentzson 2025-05-08 21:54:36 +02:00
  • eec5edc715 Correct instruction length of immediates John Lorentzson 2025-05-08 21:20:50 +02:00
  • 032cbea0ab create build file and remove enviroment specific file hugova 2025-05-08 21:46:02 +02:00
  • 3e063e9aaf move pixel-draw code hugova 2025-05-08 21:41:46 +02:00
  • d9673915a5 Add public.inc John Lorentzson 2025-05-08 21:17:09 +02:00
  • 8a45d4fca1 Revert "populate .inc file with parameters for compiler" John Lorentzson 2025-05-08 20:24:18 +02:00
  • 8d5cf37448 populate .inc file with parameters for homade compiler, will change format hugova 2025-05-08 20:16:06 +02:00
  • c8484975a8 move emacs uggly banner to the right place hugova 2025-05-08 20:15:13 +02:00
  • a553549b18 found place were old 16-bit zeropage format was used, fix that! hugova 2025-05-08 20:11:04 +02:00
  • 75bbe83a01 fix spelling hugova 2025-05-08 19:41:17 +02:00
  • 37b2864a7d Add function to compute addresses of labels in instruction list John Lorentzson 2025-05-08 19:36:10 +02:00
  • 501da2341e Bind *LABEL-COUNTER* to 0 at the start of compiling John Lorentzson 2025-05-08 19:33:31 +02:00
  • bcc039774b Move *LABEL-COUNTER* to label.lisp John Lorentzson 2025-05-08 19:33:13 +02:00
  • 5ca740efa9 Add PRODUCE-COMMENT John Lorentzson 2025-05-08 19:32:54 +02:00
  • 8dd78265b4 Nicer instruction printing John Lorentzson 2025-05-08 19:32:43 +02:00
  • 41bd413b4c Add LABEL class and replace uses of temporary strings with it John Lorentzson 2025-05-08 19:10:38 +02:00
  • 76f1fa0658 Add relative addressing type for branches John Lorentzson 2025-05-08 19:10:15 +02:00
  • 37241a1fc3 Replace the text assembly in high-level with instruction objects John Lorentzson 2025-05-08 17:11:57 +02:00
  • 0a3675feac Turn the user-side compiler into a proper ASDF system John Lorentzson 2025-05-03 12:22:56 +02:00
  • fd5a8fac4f Add check so zero-page instructions can't use too big operands John Lorentzson 2025-05-02 22:38:35 +02:00
  • 09d7701c15 add test program for char_draw hugova 2025-05-02 22:35:12 +02:00
  • 19b9feb02d Begin serious work on User-Side Compiler (USC) John Lorentzson 2025-05-02 22:26:08 +02:00
  • ddd2057ff4 add hinting for user side compiler hugova 2025-05-02 22:02:55 +02:00
  • 4c604c8a47 fix spelling hugova 2025-05-02 21:57:59 +02:00
  • cb23f4ec58 update gitignore hugova 2025-05-02 21:52:24 +02:00
  • 830c4d135d Add small minute changes hugova 2025-05-02 21:51:49 +02:00
  • a5044d6e4c Add code for not working scanline interupt (for future dubbel buffer) hugova 2025-05-02 20:46:27 +02:00
  • 1a8d4593ed Minimise performance issues of None Maskable Interupt hugova 2025-05-02 18:55:33 +02:00
  • 3bdf52d1a8 Add more variable for triangle_drawing hugova 2025-05-01 17:25:37 +02:00
  • 737ebbbe51 Add more skeleton code for future triangle drawing hugova 2025-05-01 16:17:42 +02:00
  • c27e79efa6 Add some code structure for future triangle rendering hugova 2025-04-28 16:01:06 +02:00
  • a7031b7418 Changed test to stop writing outside of the screen hugova 2025-04-28 14:14:06 +02:00
  • c5d14ae11e remove unessesary test. The buggertest may be used because line drawing is fast enough hugova 2025-04-28 14:10:28 +02:00
  • bfefcbff8f Changed 16-bit value syntax from using > and < in addresses to using +1. This was recomended by dicander and duunqnd because A =$ABAC looks like one address and not 2 zero-page addresses. hugova 2025-04-28 13:06:48 +02:00
  • 7f56f90613 Changed 16-bit value syntax from using > and < in addresses to using +1. This was recomended by dicander and duunqnd because A =$ABAC looks like one address and not 2 zero-page addresses. hugova 2025-04-28 12:56:52 +02:00
  • 594218d485 Added Marcus first effect, with help from Duuqnd and hugova Marcus Dicander 2025-04-03 23:22:57 +02:00
  • f93557bfd9 Made math befor line-draw-loop faster. from 811183 cpu cykles to 809951 hugova 2025-04-03 16:58:55 +02:00
  • 589fd5d738 push changes from line_down to line_up_inv line_down_inv hugova 2025-04-03 16:17:30 +02:00
  • 18c08d6b2b Pushed performance improvement from line_down to line_up hugova 2025-04-03 00:41:21 +02:00