On 31/05/2020 15:58, Theo de Raadt wrote: >> AFAICT the problem here is the Forth being used at >> https://github.com/openbsd/src/blob/master/sys/arch/sparc64/dev/fb.c#L511: >> since the >> addr word isn't part of the IEEE-1275 specification, it is currently >> unimplemented in >> OpenBIOS. >> >> Why is addr needed here? Does the fb.c driver try and change these values >> rather than >> just read them? > > Why does that matter? > > sparc64 isn't a IEEE-1275 openfirmware. > > It is a Sun openfirmware, meaning it is more than the vague > specification. An emulation must be able to emulate THE REAL HARDWARE. > > This should work.
Well there are plenty of SUN-ims already included in OpenBIOS to enable Solaris to boot as far it does; I'm not against them, I was just commenting that this was the reason why it is currently unimplemented. > For another 64-bit cell_t usage see dev/prtc.c. > > For another "addr" usage, see romgetcursoraddr() A simple addr implementation for Forth values should be fairly easy to put together. Since I don't have access to any Sun hardware, can someone confirm the semantics of the addr word for me? In particular what does it return for: - Values (presumably this is a pointer to a 64-bit value?) - Defers (does it return a pointer to the deferred word?) - Words (is it the same as the ' word?) ATB, Mark.