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.

Reply via email to