Commit graph

12 commits

Author SHA1 Message Date
Bill Currie
faa98d8198 [gamecode] Use a struct for offset/count pairs
This cleans up dprograms_t, making it easier to read and see what chunks
are in it (I was surprised to see only 6, the explicit pairs made it
seem to have more).
2022-01-26 19:30:25 +09:00
Bill Currie
e9e54d08c0 [gamecode] Rename func_t to pr_func_t
Even more consistency.
2022-01-18 15:36:58 +09:00
Bill Currie
2df64384c1 [gamecode] Clean up string_t and pointer_t
They are both gone, and pr_pointer_t is now pr_ptr_t (pointer may be a
little clearer than ptr, but ptr is consistent with things like intptr,
and keeps the type name short).
2022-01-18 12:11:14 +09:00
Bill Currie
b3909dbe4c [gamecode] Add a test for call and return
It currently fails for two reasons:
 - call's mode selection is incorrect (never updated from when there was
   only the one call instruction and the mode was encoded in operand c)
 - return should automatically restore the stack pointer to the value it
   had on entry to the function, thus allowing local values stored on
   the stack to be safely returned.
2022-01-17 14:26:12 +09:00
Bill Currie
1397c94ef5 [gamecode] Add tests for the state instructions 2022-01-16 22:17:17 +09:00
Bill Currie
c8362c28fe [gamecode] Add tests for string ops
Does not include string concatenation because I don't feel like messing
with zone init, but all the other operators are tested (currently
failing due to bool convention)
2022-01-14 22:42:56 +09:00
Bill Currie
d9d37fda47 [gamecode] Implement ruamoko opcode lookup
And get the debugger working with the new instruction set.
2022-01-06 11:47:05 +09:00
Bill Currie
9d74fcc181 [gamecode] Add tests for the basic math ops
* / % %% + -

As a bonus, includes partial tests for a few extra operators. Several
things are broken at this stage, but uncommitted code is already
working.
2022-01-04 17:50:49 +09:00
Bill Currie
b8d04874c3 [gamecode] Add some math tests
Hit a show stopper when it came to swizzle (not implemented yet). I
guess I know what I need to do next :P.
2022-01-03 23:27:01 +09:00
Bill Currie
ffbb6122b9 [gamecode] Add tests for push and pop 2022-01-03 23:27:01 +09:00
Bill Currie
c86f1f671b [gamecode] Add tests for load instructions
This needed the test struct declaration to be moved out to a head file
so it can be shared with other tests.
2022-01-03 23:27:01 +09:00
Bill Currie
bf604b99b3 [gamecode] Add automated tests for store ops
They even found a bug in the addressing mode functions :) (I'd forgotten
that I wanted signed offsets from the pointer and thus forgot to cast
st->b to short in order to get the sign extension)
2022-01-03 23:27:01 +09:00