Subject: Re: storing nvaliases in NVRAM ('NVRAMRC not valid')
To: Michael <macallan18@earthlink.net>
From: Dan LaBell <dan4l-nospam@verizon.net>
List: port-macppc
Date: 04/20/2005 04:36:03
On Apr 19, 2005, at 9:14 PM, Michael wrote:
> Hello,
>
>>> command-ctrl-powerbutton causes a hard reset but that's probably not
>>> what you wanted. On Sun OpenBOOT ( the ancestor of OF, current
>>> versions are more or less OF-compliant ) there's STOP-A which gets
>>> you
>>> out of pretty much anything ( even the operating system ) but I don't
>>> know if there's an equivalent in Apple's OF.
>>
>> I was going to respond: if you find it, let me know. ;-]
> Yeah, it's incredibly useful, isn't it? :)
>
>> Michael, do you know if break on a serial line works here? On suns
>> it
>> was as good as STOP-A? if I remember.
> I don't think so. If at all then probably only if the serial line is
> OF's input-device...
I tried telnet w/ kermit, and send break could not break out of 0 0 do
loop
used kermit, because of its /nowait option.
nvramrc type is no good, if multiline, doesn't like linefeeds. dump is
better
for a 1 liner.
Had some trouble empirically confirming where nvramrc is done in OF3
--at first.
Sun's OpenBoot docs, say: POST, some init, nvramrc, probe-all,
installconsole, banner,
secondary diags, then boot if autoboot?
I'm actually booting a forth menu, that then boots netbsd, or mac...
while working on that I found I needed:
s" screen" output
s" keyboard" input
true to use-console?
in any forth script, to get any forth i/o to work, key,key?,emit, ." "
, .( ) etc.
So, a lockup, or endless loop in nvramc could leave you with noscreen...
And looping on key or key? could do it. For example "key drop" for a
pause, won't work,
instead just returns 0 imediately. Since I couldn't print out I used
nvedit and
entered: h# deadbeef
then a cr then ctr-c, then nvstore, reset-all, modded my forth boot
script do a .s and deadbeef is on the stack... so nvramrc is before
boot, and before install-console can be inferred from lack of working
i/o; it seems to match OpenBoot, at least in OF3. Also discovered ,
whatever reset "bye" does, it does not eval nvramrc... ( nothing on the
stack ).
Oh yeah, came up with this to use in place of type, a colon def:
: puts
over + swap
?do
i c@
case
carret of cr end of
linefeed of cr end of
( default ) dup emit
endcase
loop
cr
;
use where type or dump can be used. Kind of long though isnt it?