Commit Graph

65 Commits

Author SHA1 Message Date
30ba626cf9 fix knock ons 2018-04-24 20:16:50 +03:00
6fc84d2f98 bit of renaming and a string test 2018-04-24 20:12:49 +03:00
ee28d12429 bit more comparison testing 2018-04-24 19:57:14 +03:00
2bd39bd3dd renaming 2018-04-24 19:46:22 +03:00
7a2160e9b4 fix comparison operator
< implemented <=
2018-04-23 19:39:16 +03:00
1907574c60 bit of organising 2018-04-23 13:16:46 +03:00
020bce740a more complex while test
that works, but does leave one wondering what is tested apart from the
result (1)
2018-04-20 19:38:33 +03:00
6a8bb90704 test multiple assigns 2018-04-20 13:13:09 +03:00
04359546b7 implement greater than 2018-04-19 22:57:31 +03:00
9e21719aeb generalise the operator handling
ie passing them through
implementing more
2018-04-19 22:13:52 +03:00
1741ad540e move test helper code to support
to be reused
2018-04-19 19:33:40 +03:00
13d8a65e07 add while interpreter test 2018-04-19 19:23:12 +03:00
1849522a54 fix TruthCheck
mixing up the false and true, such a basic human mistake
2018-04-19 10:34:15 +03:00
3a50b7dd0e fix mod4 name
really did div4
2018-04-19 10:00:55 +03:00
d19bd5f98d fix dynamic jump
which gets dynamic resolve and call to work.
FIRST DYNAMIC CALL working
2018-04-09 15:06:46 +03:00
59e6298879 first resolved call running though
and returning an int, as it should
just the value .  .  .
2018-04-08 23:45:23 +03:00
580c53cdae fix the resolve
without return and not being a function
2018-04-08 22:30:18 +03:00
33ffcf1d88 move resolve_method code from word to mom
rather make resolve an instruction.
Since it was coded in risc anyway, we not only save the setup and call
But also makes the mom instruction flow clearer
The method really came from not wanting to code it in risc, but with
the Builder, that is now surprisingly painless
2018-04-08 18:55:17 +03:00
26cf911a5c change build names a little and document 2018-04-07 22:35:40 +03:00
6d1beec407 fixing the interpreter tests 2018-04-07 18:58:44 +03:00
3c90eb31c6 fixes all but interpreter tests 2018-04-06 23:37:41 +03:00
ee0a1ca823 renaming methods args and frame
to arguments_type and frame_type, because that is what they are
In honour of setup bug, where the types of those types were loaded,
instead of just them types
2018-04-05 12:22:14 +03:00
c51fc67ba5 make interpreter tests less brittle
by factoring __init code away
just counting main
2018-04-04 20:05:09 +03:00
4a2a1da3ff little spring clean 2018-04-03 15:23:19 +03:00
17b52d4e80 fix dynamic resolution
was loading self, when it needs to load receiver
some more test (up to the resolve) start working
2018-04-03 12:55:28 +03:00
c304ad67c6 load space twice in init , messagesetup overwrites first
lots of interpreter test changes, brittle, must factor __initi out
2018-04-02 23:25:52 +03:00
576ae9261d recode resolve method as assembler
definitely needs some refactoring
in fact i was hoping to code this in ruby (with compiler tweeks)
but there it is: goes through the linked list of methods of the type
and compares their name with self (method on word)
if not found ends in sys exit for now
2018-04-02 19:32:59 +03:00
fb29fb6431 linked list of methods instead of list of methods
api changes slightly, especially for each, but mostly sama sama
2018-04-02 16:36:43 +03:00
ad497b34f1 test interpreters event firing 2018-04-01 22:50:15 +03:00
599679d6e8 simplest if
without true/false or logic
2018-04-01 22:42:27 +03:00
48e4e3de9a add returns to tests so program ends in syscall exit 2018-04-01 22:19:21 +03:00
9efeb58061 fix ret_to_byte
by the now familiar unwrapping of args and wrapping of return
2018-04-01 22:16:17 +03:00
1a19683e7d fix RegToByte
seems to work, but does not end in syscall
2018-04-01 21:59:06 +03:00
3a9539a071 adds multiplication
without overflow testing, like the others
2018-04-01 21:18:08 +03:00
1d57c59dab fix putstring
mainly returning an integer object rather than fixnum
2018-04-01 18:57:43 +03:00
b1376e83bd add integer minus
rework plus to make that easy
2018-04-01 15:26:53 +03:00
972cf47c8b adding returns to all builtins 2018-04-01 15:17:16 +03:00
def67205f0 fix mod4
which is just shift right by 2 after all
2018-04-01 15:13:12 +03:00
10fa61aa9f fix integer plus
mostly forgot the return sequence
2018-04-01 14:56:01 +03:00
8acfda457f fix div10
by reducing the incoming integer to fixnum
and then pushing the fixnum result into a new integer
2018-04-01 14:50:13 +03:00
168c2e862f move wip tests 2018-04-01 14:01:17 +03:00
727069a306 perfectly adding two numbers
with only 7k lines of code :-)
2018-04-01 12:00:59 +03:00
4725b81270 get those integers crated and used 2018-03-31 20:21:27 +03:00
5b92b6b785 get plus (+) working
alas, new integer is not created yet
2018-03-31 19:37:24 +03:00
a5189570c6 fix remaining constant issues
all but integer creation
and integer builtins off course
2018-03-31 13:58:08 +03:00
6e941ebcb7 introduce load_data instruction
which just loads data to a register (used internally)
as opposed to integers, which are objects
2018-03-31 12:38:30 +03:00
e68b28d66d fix helper
and start on arg test
2018-03-30 18:05:38 +03:00
1956f18faa add an integer plus
not correctly handling integer objects yet
2018-03-30 17:09:02 +03:00
3bd23cee28 also separate risc and cpu inits for the machine
interpreter works on risc, but assembler off cpu
2018-03-25 19:36:00 +03:00
a407601f5c fix tests from NotSame removal 2018-03-24 18:33:19 +02:00