Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 May 2005 23:43:57 -0600
From:      Scott Long <scottl@samsco.org>
To:        Malcolm Kay <malcolm.kay@internode.on.net>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: Context sensitivity in beastie.4th?
Message-ID:  <4296B39D.9030107@samsco.org>
In-Reply-To: <4296B306.9080300@samsco.org>
References:  <200505271427.13508.malcolm.kay@internode.on.net> <4296B306.9080300@samsco.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Scott Long wrote:
> Malcolm Kay wrote:
> 
>> I have installed FreeBSD 5.4 RELEASE on a new machine,
>> Celeron + SATA drive, without and problems, include a kernel rebuild to
>> support a PCI serial card.
>>
>> But now I wish to change the graphic, beastie, that appears in the 
>> boot menu. I am certainly no expert or even acolyte in forth 
>> programming but the job appears to be simple enough -- just change the 
>> characters in the
>> 'beastie' constructions and if we don't exceed the available screen space
>> all should be well!
>>
>> Well what I got was a cycling reboot going back ech time to the BIOS 
>> splash screen and advancing an apparently negligable distance into the 
>> FBSD
>> boot sequence.
>>
>> I had actually copied /boot/beastie.4th to /boot/phoenix.4th, edited
>> the copy and pointed /boot/loader.rc at phoenix.4th instead of 
>> beastie.4th.
>> Recovery by booting from the distribution CD and entering "Fixit" to 
>> change
>> the pointer back to beastie.4th.
>>
>> Most variants on my original attempt ended up the same way, but some 
>> crashed with a "directory full" message which seems quite strange as 
>> my images have always been smaller than the original 'beastie'.
>>
>> Replacing the colourised version of my 'phoenix' with a copy of the 
>> monochrome version worked.
>>
>> At present I have a phoenix.4th file which works but does not exhibit 
>> the full image. The differences to the original beastie.4th file are 
>> shown here
>> with escape characters replaced by '{esc}' to limit mail confusion.
>>
>> With the line:
>> ( 2dup at-xy ."         {esc}[1m^ ^" 1+ )
>> uncommented the system goes back to an infinite boot loop.
>>
>> This all seems very strange and unbelievable -- I must surely be doing 
>> something very stupid. Does anyone have any idea what that might be?
> 
> 
> Seems to work for me with the commented lines fixed.  Btw, you by no 
> doubt have noticed that it's somewhat inconvenient to do 4th programming
> by modifying the boot scripts and then praying that the reboot works.
> It's possible to do 90% of the testing in userland, like I did when I
> wrote beastie.4th.
> 
> Go to /sys/boot/ficl.  Do 'make clean && make testmain'.  This will 
> create a binary called 'testmain' either in the '.' directory or in
> /usr/obj/usr/src/sys/boot/ficl.  Copy this binary to your home
> directory.  Then copy screen.4th, frames.4th, and beastie.4th from
> /boot to your home directory.  Next create a file called init.4th
> containing the following:
> 
> : boot drop exit ;
> : reboot drop exit ;
> 
> load screen.4th
> load frames.4th
> load beastie.4th
> beastie-start
> 
> Then run it via './testmain init.4th'.  The countdown timer won't
> work and most of the keys naturally won't do what they are supposed to
> do, but everything else in the menu should work just as it would at
> boot.  I tested your colorized phoenix this way just now and it worked.
> 

Oh, one thing I forgot to mention is that you'll need to comment out the
'include' lines in beastie.4th since the testmain environment doesn't
implement those words.

Scott



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4296B39D.9030107>