Commit Graph
100 Commits
Author SHA1 Message Date
randrews a6b3519f48 Asm statements implemented 2023-08-15 01:30:35 -05:00
randrews 9936e44544 Removed struct stuff 2023-08-15 01:01:06 -05:00
randrews 587d96be25 A couple tests 2023-08-14 00:36:26 -05:00
randrews 64f09619a2 Strings are just another kind of expr 2023-08-14 00:26:02 -05:00
randrews c6aea2f78f Refactored lvalues into just another expr 2023-08-13 23:55:49 -05:00
randrews 1de091f269 Prefix dereferences as lvalues 2023-08-13 19:29:50 -05:00
randrews 190ceb5f13 Added prefix dereference 2023-08-13 18:58:47 -05:00
randrews e3b20aae41 More refactoring 2023-08-05 11:07:09 -05:00
randrews 63d63a1f68 More refactoring and addresses working 2023-08-04 21:38:09 -05:00
randrews 3b612114f5 More new grammar stuff 2023-08-04 17:27:28 -05:00
randrews 65858b18d9 Much better working grammar, more fixed tests 2023-08-03 00:53:43 -05:00
randrews e8940feea7 New grammar, sort of working 2023-08-02 21:56:26 -05:00
randrews ba4f98e2a5 New grammar 2023-07-17 23:00:01 -05:00
randrews 1b126eb559 Some todos and splitting apart direct and indirect labels 2023-07-17 22:57:58 -05:00
randrews 5d8d8a13a6 String support, more refactoring 2023-07-14 01:53:10 -05:00
randrews 3016d99ff0 Refactoring, variable initial values 2023-07-14 00:51:52 -05:00
randrews 4178874b50 Compiling basic functions 2023-07-13 02:33:57 -05:00
randrews dc2e1a89a5 Beginning the compiler, const declarations and globals 2023-07-12 00:53:52 -05:00
randrews 09c41be189 Allowing expressions in a couple places that used to be literal numbers 2023-07-09 00:24:04 -05:00
randrews c373198084 Prefix operators 2023-07-08 23:33:30 -05:00
randrews ca72b480c5 Bunch of infix ops 2023-07-08 23:08:22 -05:00
randrews f682a234c7 Refactoring exprs 2023-07-08 22:32:24 -05:00
randrews bc3a1ad88f Completed the parser 2023-07-08 20:54:23 -05:00
randrews 927600c7bc More statement types 2023-07-08 19:09:32 -05:00
randrews 10e6aa7f11 Parsing arrayrefs and addresses 2023-07-05 23:45:04 -05:00
randrews 576759cb27 Quality-of-life refactoring 2023-07-05 23:19:54 -05:00
randrews 2aac110900 Start of expression parsing 2023-07-04 02:49:29 -05:00
randrews 2a9bfb342b More refactoring 2023-07-03 23:11:44 -05:00
randrews b05edb6ed4 Parsing fn headers 2023-07-03 17:19:19 -05:00
randrews 429d57c632 Refactoring the parser some 2023-07-03 01:35:37 -05:00
randrews 41bf0a2184 Starting to build a Forge parser 2023-07-02 02:10:06 -05:00
randrews 51c690e263 Tweaked snippet layout 2023-02-06 12:21:11 -06:00
randrews 0c3a290ce8 Basics page 2023-02-06 12:20:03 -06:00
randrews f07d0e315b Animating the display (fuzz demo) 2023-02-02 23:55:42 -06:00
randrews 26cccd77b1 Added a Display struct and animation frames 2023-02-02 23:18:04 -06:00
randrews 5259d6ee8c Uninitialized canvas display 2023-02-01 20:31:06 -06:00
randrews 910e4b856b Added gfx crate 2023-02-01 20:13:15 -06:00
randrews 78d8457f75 Specify width and syntax highlighting and indentation 2023-01-29 23:26:48 -06:00
randrews 7e969f1469 Multiple copies of the emulator on a page 2023-01-28 22:29:37 -06:00
randrews c825e6d727 Finished snippet emulator (for now) 2023-01-28 00:31:14 -06:00
randrews 3d7a19d1bd Highlighting lines and stepping through code 2023-01-27 01:25:01 -06:00
randrews b602ae703f Refactor to use a child text node instead of a prop 2023-01-26 22:50:24 -06:00
randrews de3bac0084 A quick page to host a snippet emulator for development 2023-01-26 15:16:49 -06:00
randrews 7b67ff73ea Interfaces for errors, calling vasm, and generating source maps 2023-01-26 15:16:08 -06:00
randrews 598e57d758 Making the repl work 2023-01-26 15:15:37 -06:00
randrews 87daef0fdc Part of a snippet emulator 2023-01-26 15:14:37 -06:00
randrews b3c533b0c6 Include serde to return a source map 2023-01-26 14:42:44 -06:00
randrews 741becb563 Display assemble errors in vweb 2023-01-26 14:41:45 -06:00
randrews dddff7b54a A fn to return a map of line addresses to enable step debugging 2023-01-26 14:41:02 -06:00
randrews 11f0760b01 Vasm cli wrapper will now export a symbol table 2023-01-07 02:10:18 -06:00
randrews 3e6a33899a Basic vasm cli wrapper 2023-01-07 00:53:55 -06:00
randrews 41810941aa Updated copy of 4th 2023-01-05 19:16:57 -06:00
randrews 4de3bd5c0c Fixed a couple prelude bugs 2023-01-02 14:27:00 -06:00
randrews 2dea244673 Web-based NovaForth repl 2023-01-01 17:57:23 -06:00
randrews 63d58b63e3 Splitting vasm and vasm_core 2023-01-01 17:25:00 -06:00
randrews 25afdb8890 Added copy opcode 2022-08-06 01:19:56 -05:00
randrews fa5dc84ad2 Errors now use Location instead of line numbers 2022-06-07 21:00:27 -05:00
randrews 4049ca072e Now using Line instead of VASMLine everywhere 2022-06-07 00:16:27 -05:00
randrews f9902e39cf Renamed vasm to vasm_core 2022-06-06 23:08:55 -05:00
randrews 80daca0584 Changes for first REPL 2022-06-01 23:30:21 -05:00
randrews 84230676cb vasm now supports files 2022-06-01 16:11:34 -05:00
randrews 3ca3a2eeac Lua wrapper for CPU 2022-05-16 12:57:38 -05:00
randrews 4edad9c0cc Blank lines and line addressing 2022-05-13 23:57:06 -05:00
randrews 135dd6ad8d Comment 2022-05-03 20:32:50 -05:00
randrews cfb67c04bc Linux keyboard fix kind of. 2022-05-03 20:32:16 -05:00
randrews 87fe1ec4c0 WIP 2022-05-03 18:33:51 -05:00
randrews ba55405b69 Stacker crate didn't do anything after all; fixed a couple bugs Will found, implemented shift / enter / backspace 2022-05-01 22:06:50 -05:00
randrews 2f457ea197 Including stacker crate 2022-05-01 19:10:12 -05:00
randrews c3bd98b8c9 This works in release but not regular builds 2022-05-01 18:12:01 -05:00
randrews f63344089a Keyboard handling, "Type something:" 2022-05-01 14:24:09 -05:00
randrews 02c75c3cae Invalid opcode error handle 2022-04-28 18:20:44 -05:00
randrews fc289a670b Error handling 2022-04-25 23:29:54 -05:00
randrews 46f11eee57 Setint opcode 2022-04-23 13:35:54 -05:00
randrews 05c1be2e94 Couple bugfixes, integration tests ported 2022-04-17 23:35:48 -05:00
randrews df111ce55b Preprocessor refactoring 2022-04-15 01:33:36 -05:00
randrews 3cee78ae93 Feature complete 2022-04-14 22:37:52 -05:00
randrews ac01eb527e More macro WIP 2022-04-07 17:45:34 -05:00
randrews dec2d22b80 WIP, implementing macros 2022-04-05 18:06:15 -05:00
randrews 2a9a92a0c8 Some refactoring 2022-04-02 00:15:33 -05:00
randrews 4ef4efcc11 Finally generating code 2022-04-01 22:00:18 -05:00
randrews 150dda5c8e calculate_args pass 2022-04-01 18:38:46 -05:00
randrews 0dcb5dd3a5 Assembler passes up to label placement 2022-03-27 23:10:08 -05:00
randrews 987df5fb45 Cleaned up .db string handling 2022-03-19 13:07:27 -05:00
randrews 36dc5d5ed4 Some refactoring 2022-03-16 23:47:20 -05:00
randrews ab2b0d3f86 Evaluating expressions 2022-03-16 23:13:02 -05:00
randrews 683ff3095e Big refactoring, invalid assembly is now unrepresentable assembly 2022-03-15 22:50:19 -05:00
randrews abf184f6fc Reformatting and cleanup 2022-03-14 19:13:14 -05:00
randrews d1e2c8ab6a Moving things around 2022-03-14 01:04:08 -05:00
randrews 0695850f3b Some basic tree-shaking 2022-03-13 17:51:22 -05:00
randrews 870b886f7d Fully parsing the grammar 2022-03-13 17:01:43 -05:00
randrews 643e8d5749 More parser implementation 2022-03-13 15:44:48 -05:00
randrews 19eb4d57f3 Refactoring 2022-03-12 15:39:29 -06:00
randrews 90f2177e5b Rearranged into a cargo workspace 2022-03-06 17:57:20 -06:00
randrews 81b805f338 Basic hello world, running the CPU 2022-02-26 01:42:32 -06:00
randrews 9ea478d6f4 Fix color bug 2022-02-22 21:46:26 -06:00
randrews ef6d87f617 Low res graphics, paletted and direct 2022-02-20 22:06:38 -06:00
randrews 412bec82d1 Low res text, paletted and direct 2022-02-20 21:35:57 -06:00
randrews e13fbac96b High res text, paletted and direct 2022-02-20 21:28:18 -06:00
randrews 17d62c5fd6 High res gfx, paletted and direct 2022-02-20 19:15:54 -06:00
randrews 48659cd7fe Basic high res gfx 2022-02-20 14:25:43 -06:00