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 :-)
Segher