[OpenBIOS] SOLVED: the mystery of Solaris on SPARC32 and the missing Forth arguments
atar4qemu at gmail.com
Mon Oct 18 17:54:42 CEST 2010
> 1) Change the signature of obp_fortheval_v2() from:
> static void obp_fortheval_v2(char *str)
> static void obp_fortheval_v2(char *str, int arg0, int arg1, int arg2, int
> arg3, int arg4)
> 2) Add code to obp_fortheval_v2 that starting from arg4 and working down to
> arg0, finds the first non-zero value and then pushes all remaining values
> argN down to arg0 onto the Forth stack before executing the Forth string.
> Does this sound reasonable? I'm surprised that one else has realised that
> the obp_fortheval_v2 function signature was wrong, but I guess it probably
> hardly gets used for anything these days.
Ops. Forgot to submit this patch back then. :(. Sorry.
The reason was not getting too far with the patch, because of the
broken memory management.
> As a separate hack, the equivalent of the OpenBOOT current-device word in
> OpenBIOS is active-package. So we should probably create an OpenBIOS
> variable called current-device too, and set its value to -1 when the
> function is entered. Then after all Forth has been evaluated, if it's value
> has changed from before the Forth call was made then set active-package to
> the new value before exit.
> Mark Cave-Ayland - Senior Technical Architect
> PostgreSQL - PostGIS
> Sirius Corporation plc - control through freedom
> t: +44 870 608 0063
> Sirius Labs: http://www.siriusit.co.uk/labs
solaris/sparc under qemu blog: http://tyom.blogspot.com/
More information about the OpenBIOS