Jeremy Penner
12481e9257
non-working attempt to lazily expand macros using lua proxy objects
...
Unfortunately there is no way to override # in luajit, so I can't make
a truly transparent proxy. Unclear if I could get away with a weird
half-object, but it doesn't seem to be working.
2021-10-22 20:44:24 -04:00
Jeremy Penner
fe00a91064
hot code reload works on hardware!!
2021-10-10 22:15:11 -04:00
Jeremy Penner
06ccd4a2b3
preserve globals across hot reloads why doncha
2021-10-04 22:00:14 -04:00
Jeremy Penner
e11241eb10
Hotswap works in MAME (once)!
2021-10-04 21:22:48 -04:00
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
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
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