Commit graph

182 commits

Author SHA1 Message Date
Jeremy Penner 4d0beb0dbe * Capture callsite details
* refactor "jump" command into "eval"
* Add debug server task to program
* Allow compiling overlay programs that assume the existing program is already in memory
* Add "forever" form to generate optimized infinite loops
* Handle client changing its udp port
2021-10-03 11:45:25 -04:00
Jeremy Penner 2df2abe543 udp message queue to make write wait for confirmation 2021-09-30 22:25:04 -04:00
Jeremy Penner 9ec998e128 IT WORKS 2021-09-28 20:19:13 -04:00
Jeremy Penner 3f295581f5 whoops, missed some stuff 2021-09-26 23:21:57 -04:00
Jeremy Penner 2f59db6766 Implement string constants, buffers, macro barriers
macro barriers are a hack to say "this form does its own macroexpansion
internally" so that we can have state-smart macros that expand to
different values depending on if they are being used in code or in a
function definition. This seems like a real bad design choice but I
can't think of a better one right now!

(not quite true: the better design choice is to allow forms to return
opgens, and then define a :bytes form that returns the address of the
generated thing. :bytes could be understood by :buffer directly.
But that's... complicated.)
2021-09-26 23:07:36 -04:00
Jeremy Penner 6a92211024 Implement macros, symbol expansion (replaces constants, getters) 2021-09-26 20:32:17 -04:00
Jeremy Penner 5e46b908bd refactor set!, byte-at, word-at, long-at 2021-09-26 00:34:48 -04:00
Jeremy Penner 683296b4e8 iigs: tested, unworking uthernet-ii debug stub 2021-09-25 14:53:18 -04:00
Jeremy Penner ccfb52aeaa iigs: untested uthernet-ii debug stub
65816: support 8-bit immediate mode
repl: add re-run and clear buttons
ssc: fix returning false from an else clause
     add byteswap, byte reads / writes
     start stdlib with memcpy
2021-09-23 22:28:48 -04:00
Jeremy Penner c0160c7018 isometric experiments 2021-09-13 23:16:03 -04:00
Jeremy Penner 432a4fa26a Sprite compiler!!! had to redraw my tiles 2021-09-12 00:18:21 -04:00
Jeremy Penner d2ff69258f implement draw-object & pei slamming
asm: allow computed addresses, not just immediate mode values
map llissp source to assembly
2021-09-10 22:55:47 -04:00
Jeremy Penner ba03b74278 full-screen draw speed test 2021-09-06 23:23:45 -04:00
Jeremy Penner a03c8b2865 Tiledraw rewrite for speed and size, locals bugfix 2021-09-06 00:19:22 -04:00
Jeremy Penner 7a3436dc7e I'm drawing lots of tiles!! also support locals in inline asm 2021-09-05 23:29:16 -04:00
Jeremy Penner f833e62d91 I'm drawing a tile!! 2021-09-01 22:59:55 -04:00
Jeremy Penner dc61bb08e0 iigs tile editing basically works 2021-08-28 22:04:54 -04:00
Jeremy Penner f54ebea6bc platform-specific tile editor 2021-08-24 21:24:06 -04:00
Jeremy Penner b2d374622a preserve 0x1xx stack for main task, and restore on quit 2021-08-20 22:29:21 -04:00
Jeremy Penner c428ef3d9c Multitasking 2021-08-19 23:51:12 -04:00
Jeremy Penner 64281801b2 Show LINE NUMBERS in compiler errors!! 2021-08-18 22:19:57 -04:00
Jeremy Penner bee38a4168 whoooooops, broke that 2021-08-16 22:14:48 -04:00
Jeremy Penner 7caf47ae37 improve gen-condition comparisons codegen for simple 32-bit cases 2021-08-16 22:12:26 -04:00
Jeremy Penner 6eec75d5f2 allow using opgen for reading longs from places besides the DP long "register" 2021-08-16 19:05:53 -04:00
Jeremy Penner 315fd794de Working boot stub to initialize the Memory Manager toolset without an OS
Listen to keyboard events
2021-08-15 22:40:47 -04:00
Jeremy Penner e84fbd2c95 constants, getters, setters, true, false. I should start making stuff!! 2021-08-14 20:52:43 -04:00
Jeremy Penner 48f181bd32 some more toolbox routines, small fixes 2021-08-12 22:06:31 -04:00
Jeremy Penner 3c3d2ffd6b oh yeah xor 2021-08-11 23:59:04 -04:00
Jeremy Penner 81ea4a4410 bitwise ops, unary negation 2021-08-11 23:54:37 -04:00
Jeremy Penner 65101ad21d Implement while loop 2021-08-11 23:06:31 -04:00
Jeremy Penner 8eef9e49b8 Fix conditionals! And optimize the hell out of them! 2021-08-11 22:34:07 -04:00
Jeremy Penner 1eea56bb5b Add globals, test various pointer setting 2021-08-10 13:23:09 -04:00
Jeremy Penner 8a211365e4 Better pointer handling, implement set! 2021-08-10 00:33:54 -04:00
Jeremy Penner 29de142c4a Fix toolbox, start to handle pointers 2021-08-09 14:43:24 -04:00
Jeremy Penner b63573cc89 32-bit support!! toolbox is currently broken but the main compiler seems to have stabilized 2021-08-08 21:58:49 -04:00
Jeremy Penner cd4bf59b41 Toolbox support - we can print numbers!! 2021-08-05 21:30:08 -04:00
Jeremy Penner 16d88efbf1 We can add numbers!! (confirmed in MAME debugger) 2021-08-02 19:40:31 -04:00
Jeremy Penner e37a7a2153 Implement the Sufficiently Simple Syntax macro, some cleanup 2021-08-02 14:49:29 -04:00
Jeremy Penner 5bf35209be Upgrade to Fennel 0.9.2 2021-08-02 14:48:01 -04:00
Jeremy Penner ad219ba221 Conditionals, functions 2021-08-01 23:26:51 -04:00
Jeremy Penner 4cd52d202e Clean up expression logic, implement local variables 2021-08-01 18:45:54 -04:00
Jeremy Penner 58a80f982f Beginnings of the Sufficiently Simple Compiler - it can add numbers! 2021-07-31 19:50:47 -04:00
Jeremy Penner b6db098a70 Factor out 6502 into its own module, generalize asm, complete 65816?? 2021-07-30 21:57:38 -04:00
Jeremy Penner 6738dd8ec4 First tentative steps into 65816 support 2021-07-30 19:03:15 -04:00
Jeremy Penner 62ea08aa24 Arrow key support in Neut Tower 2021-07-24 21:39:59 -04:00
Jeremy Penner 897f0bbe55 Show my contact info on the "Questions" slide 2021-07-23 22:20:03 -04:00
Jeremy Penner 176ac8f0b1 Fix slide overflow, tweak some timings 2021-07-19 22:33:21 -04:00
Jeremy Penner 978880b6c8 I could give this presentation 2021-07-13 22:35:46 -04:00
Jeremy Penner 3af48a84d6 Add custom status bar, timer, section headings 2021-07-11 17:57:33 -04:00
Jeremy Penner b8a9a1810c keep cuttin' 2021-07-09 00:16:45 -04:00