Login
Timeline
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

19 check-ins

2025-03-09
23:46
i wrote this back in august, now 7 months past. idr what i was doing at all. from the looks of it, i had renamed some variables and turned some inscrutable operations into named procedures or macros, added a bunch of logic into the push operation, and -- for the life of me, i don't know why -- regressed the version number. Leaf check-in: 06c0198814 user: brain tags: trunk
2024-07-31
16:51
version bump check-in: 74f23d2925 user: brain tags: trunk
16:50
...and that's all of the easy ones. left is LIT -- which i may remove from the instruction set for being redundant with PUS -- MOV, DEI, and DEO. MOV is intended to move data around registers/and/or/the stack. i think i will have a few registers specifying relative stack offsets, and maybe a few static registers as well? idk, and i'm not sure how to specify them yet in the instructions themselves, which bits to take... DEI and DEO are implementation-defined. i think i will take inspiration from other vm architectures to see how they implemented i/o in theirs. check-in: 59d4fa172c user: brain tags: trunk
08:35
that's sto and lod. i'm really punishing myself, here. i'm making great progress, but i'm exhausted. shutting down... check-in: 86dc7901d6 user: brain tags: trunk
08:06
that's the binary functions. nice-to-have would be a way to pass an immediate value for these math and test functions, so as not to need the explicit 'push' to test against, or math against. (this is the way that 'push' is already implemented) a destination deeper on the stack would be nice, too. i think that was in my original plans as well. check-in: 9fc5c166b2 user: brain tags: trunk
07:45
conventional mathematics tests complete. this is going so fast, i think i must be doing something wrong. check-in: 850ba66e50 user: brain tags: trunk
07:25
implemented rest of math functions; all that's left is to test. moved test functions into test.h. it is marginally ergonomically better. check-in: 554c8bb1f9 user: brain tags: trunk
04:38
vm.h is now auto-generated, to save on bothersome boilerplate. test.c has had the awful, ugly, cranky, bad and irredeemable macros replaced with ugly but serviceable functions. also, the DEREF() macro has been renamed to NADDR (Native ADDRess), as the implicit dereference was flying too low under the radar. NADDR more clearly describes the actual operation (it translates a vm address (unsigned long offset from stack 0) to a native (unsigned long *) address). it also sounds way cooler. _NADDR_ (⌐■ ω ■) instruction codes & extra options have been simplified to make "building up" easier (or really, to make "breaking down" easier). check-in: 359b77aab9 user: brain tags: trunk
2024-07-29
18:57
redesign for 64-bit isa. instructions are the same, but as so little was ever implemented, it's not important. what is versioning, anyway? rudimentary tests are not very helpful now, but can be made better when i implement DEI/O. check-in: 98412e7b67 user: brain tags: trunk
2024-07-23
05:30
new architecture -- microcode table, dynamic binding of opcodes, list of opcodes is barely anything check-in: 8fa6eafcde user: brain tags: trunk
2024-07-20
01:07
added JumpConditionalImmediate, LoaDZeropage, SToreZeropage, and TestEQual. VERSION++. also removed test for 0 arity, as all mode cases set DECO on exit anywah. check-in: 753163c460 user: brain tags: trunk
2024-07-19
10:53
added binary complement instruction and Jump Relative Immediate check-in: 066800ece1 user: brain tags: trunk
2024-07-18
11:28
prettied up test code; added more arithmetic ops check-in: 6dbbc4c651 user: brain tags: trunk
10:53
it may be pedantic to version so early, so i'd better get it right! check-in: 8beb64445b user: brain tags: trunk
10:43
removed "fet(ch)" function & put its functionality in new "eval" function, renamed from d(ecode_and_e)x(execute) check-in: 727c9c7f2a user: brain tags: trunk
10:38
changed ins_t type to uchar -- posix compatible, and easier to type anyway check-in: 9b559c609c user: brain tags: trunk
10:35
versioning: why not? 0.1d.0 (d for delta) check-in: 792de1afc1 user: brain tags: trunk
10:31
a (very) stupid simple mvp: the vm can copy bytes from the instruction stream to registers, and add registers. check-in: 9ab12a5ab3 user: brain tags: trunk
10:19
initial empty check-in check-in: 424e9f22eb user: brain tags: trunk