Tarl Neustaedter wrote:
I believe either the console or serial driver will do that, and possibly the secondary bootstrapper to cycle the -/| twirly baton.
Yeah. Checking against the online OpenSolaris source, it looks as if it's trying to do the twirly baton. Although interestingly the use of alarm seems to have been removed from the latest code browsable online.
Does SPARC64 have a way of counting elapsed time (some kind of clock tick register) so that it would be possible to measure this in the main loop?
Yup. It's usually available through "stick@" - I believe it counts nanoseconds.
Okay. I've had a quick grep through the Qemu sources and I can see that there is some mention of a tick command - I'm not quite sure what guarantees there are on timing/resolution in the Qemu implementation though. Blue, can you offer any advice here?
Sorry I wasn't able to review your stuff, which looked reasonably correct, but I'm on vacation at the moment.
I was fairly sure it was okay (as forthstrap is used to build itself) but wasn't too sure at the time that I had missed anything. However, I've performed tests using all of the control flow words with the debugger and everything seems to act as I would expect. Plus the Fcode evaluator now seems to resolve backwards branches correctly.
TBH I'm really grateful for the advice; it's nice to have someone around who knows what the behaviour *should* be as I only have physical access to 1 Solaris box, and it's being used to host various services and so I can't keep rebooting it all the time!
ATB,
Mark.