00:00:00 --- log: started retro/15.06.21 06:08:15 --- join: oPless_ (simon@lart.doosh.net) joined #retro 06:08:24 --- quit: oPless (*.net *.split) 06:08:27 --- nick: oPless_ -> oPless 06:21:21 --- quit: tangentstorm (Ping timeout: 265 seconds) 06:28:17 --- join: Zarutian (~Adium@168-110-22-46.fiber.hringdu.is) joined #retro 06:34:54 --- join: tangentstorm (~michal@108-218-151-22.lightspeed.rcsntx.sbcglobal.net) joined #retro 07:37:53 --- quit: Zarutian (Quit: Leaving.) 08:20:08 --- join: Zarutian (~Adium@168-110-22-46.fiber.hringdu.is) joined #retro 09:17:55 --- quit: Zarutian (Remote host closed the connection) 10:25:26 --- join: Zarutian (~Adium@168-110-22-46.fiber.hringdu.is) joined #retro 11:02:02 --- join: kc5tja_ (~sfalvo@166.78.62.138) joined #retro 11:02:34 Hello; trying to port Ngaro to my Kestrel-3 homebrew computer. Having a bear of a problem trying to diagnose a stack imbalance in the retroImage. 11:03:15 I've double- and triple-checked my VM's primitives behave the same as in retro.py (where retroImage actually works), but something's still very wrong, and I'm completely clueless as to how to debug this further. 11:03:24 Where can I see the source code for retroImage itself? 11:24:48 --- quit: kc5tja_ (Quit: leaving) 11:25:01 --- join: kc5tja (~sfalvo@166.78.62.138) joined #retro 11:26:53 kc5tja_: have you looked how much stack consumption is regarding the ports? 12:36:06 Except for printing a character, no I/O port handler even touches the stack. 14:43:10 Well, it finally boiled down to instrumenting retro.py with code to display IP, opcode, and data stack depth, and doing the same in my VM port. 14:43:22 Where they diverged, that would tell me where the bug was. 14:43:39 And I was right -- it turned out that the bug was in my assembly code, a single character error. 14:43:48 ADD SP, SP, 4 versus ADDI SP, SP, 4. 14:44:21 ADD interprets all fields as register specifiers (so ADD SP, SP, 4 means SP, SP, X4 to the hardware, which happened to hold zero). 14:44:32 ADDI is the immediate-operand variant of the instruction. :) 14:45:18 So, long and short of it, RetroForth now runs on RISC-V instruction set architecture. 14:45:36 I just need to implement multiply and divmod routines, and that should complete its ability to process numerics. 15:17:15 --- quit: Zarutian (Quit: Leaving.) 15:40:12 kc5tja: Awesome 15:40:30 I wrote an implementation of Ngaro in Rust myself 15:40:37 Although I haven't worked on it in a while 16:02:53 Trying to figure out why my multiply code isn't working right in Ngaro. It works fine in the code I lifted it from. Bleh. 23:59:59 --- log: ended retro/15.06.21