On Dec 18, 2017, at 2:44 AM, Segher Boessenkool segher@kernel.crashing.org wrote:
On Mon, Dec 18, 2017 at 01:13:49AM -0500, Jd Lyons wrote:
On Dec 18, 2017, at 12:48 AM, Segher Boessenkool segher@kernel.crashing.org wrote: On Mon, Dec 18, 2017 at 12:05:17AM -0500, Jd Lyons wrote:
Still bombing out at the same place:
401002a : [ 0xe34 ]
byte-load: exception caught!
: xe33 $find invert IF ABORT THEN ; : xe34 " us" xe33 TO x9a7 " case-closed?" $find invert IF 2drop ['] 0 THEN TO x9a8 ;
So the thing that throws is fcode e33, when trying to find the word "us".
(Btw, "invert" is weird here; I suppose it was coded as its synonym "not". In some other Forth systems "not" is a synonym for "0=", which makes more sense here. Either works as long as $find returns a canonical true/false, as it supposed to).
So, implement "us", and you'll get further :-) It's just like "ms", but microseconds, instead; so you could do
: us ( n -- ) d# 1000 / 1+ ms ;
(which waits way too long for short timeouts, of course).
Ok, thanks, that makes since. I did see the “case-closed?” When I searched for 0xe34 in the detoked rom, but I wan’t sure what to make of it.
So, the “us” word is unimplemented in Openbios, and we need to add it to get past this part?
Exactly. And I gave a (not super great) implementation above, enough to see if you get further :-)
Ok, I see, the code you gave was a command for Openbios, I kept trying to find where to add it to the source, thinking it was C code;-)
Only got one byte further:
(offset) 5 401000d : (compile) [ 0xe05 ] 401000e : (compile) b(endcase) [ 0xc5 ] 401000f : (compile) over [ 0x48 ] 4010010 : (compile) b(to) [ 0xc3 ] 4010014 : (compile) [ 0xe36 ] 4010016 : (compile) encode+ [ 0x112 ] 4010017 : (compile) 2dup [ 0x53 ] 4010018 : (compile) b(to) [ 0xc3 ] 401001b : (compile) b(to) [ 0xc3 ] 401001f : (compile) [ 0xc7b ] 4010021 : (compile) property [ 0x110 ] 4010022 : (compile) b(;) [ 0xc2 ] 4010023 : b(') [ 0x11 ] 4010026 : b(to) [ 0xc3 ] 401002a : [ 0xe34 ] 401002c : [ 0xdff ]
byte-load: exception caught! ok 1 >
Segher