On Sun, Jul 17, 2016 at 03:18:22PM +0100, Mark Cave-Ayland wrote:
hex 20 cells CREATE stash VARIABLE #stash #stash off : stash-push stash #stash cells + ! 1 stash +! ; : stash-pop -1 stash +! stash #stash cells + @ ; : >r state @ IF postpone >r EXIT THEN stash-push ; : r> state @ IF postpone r> EXIT THEN stash-pop ; : r@ state @ IF postpone r@ EXIT THEN stash-pop dup stash-push ;
This weekend I had a chunk of time to dig into this, and I think I now have something that works. Looking at the OpenBOOT source, they reference what they call a pseudo r-stack to enable r-stack words to execute in interpret mode so I've followed a simlar pattern for OpenBIOS based upon your work above.
I did type it without any testing, hope it works ;-)
Another interesting part of the patchset was that the original patch to split on 0d as well as 0a is actually correct, but the regression in yaboot is caused by a separate bug in evaluate not correctly preserving the stack across statements split by newlines.
That explains some things :-)
I'll post the patchset shortly, so tests and reviews are welcome. I know Ben H was really keen to get OS 9 booting under QEMU 2.7 out of the box if at all possible.
Excellent! Thank you for all the hard work.
Segher