Context sensitivity in beastie.4th?

Malcolm Kay malcolm.kay at internode.on.net
Thu May 26 21:57:17 PDT 2005


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?

------------ diff beastie.4th phoenix.4th ---------------------------------
t52c52
< \ The BSD Daemon.  He is 19 rows high and 34 columns wide
---
> \ The BSD Daemon.
54,72c54,65
< 2dup at-xy ."               {esc}[1;31m,        ," 1+
< 2dup at-xy ."              /(        )`" 1+
< 2dup at-xy ."              \ \___   / |" 1+
< 2dup at-xy ."              /- {esc}[37m_{esc}[31m  `-/  '" 1+
< 2dup at-xy ."             ({esc}[37m/\/ \{esc}[31m \   /\" 1+
< 2dup at-xy ."             {esc}[37m/ /   |{esc}[31m `    \" 1+
< 2dup at-xy ."             {esc}[34mO O   {esc}[37m) {esc}[31m/    |" 1+
< 2dup at-xy ."             {esc}[37m`-^--'{esc}[31m`<     '" 1+
< 2dup at-xy ."            (_.)  _  )   /" 1+
< 2dup at-xy ."             `.___/`    /       " 1+
< 2dup at-xy ."               `-----' /" 1+
< 2dup at-xy ."  {esc}[33m<----.{esc}[31m     __ / __   \" 1+
< 2dup at-xy ."  {esc}[33m<----|===={esc}[31mO))){esc}[33m=={esc}[31m) \) /{esc}[33m====|" 1+
< 2dup at-xy ."  {esc}[33m<----'{esc}[31m    `--' `.__,' \" 1+
< 2dup at-xy ."               |        |" 1+
< 2dup at-xy ."                \       /       /\" 1+
< 2dup at-xy ."           {esc}[36m______{esc}[31m( (_  / \______/" 1+
< 2dup at-xy ."         {esc}[36m,'  ,-----'   |" 1+
< at-xy ."         `--{__________) {esc}[0m"
---
> 2dup at-xy ."     {esc}[1;31m.              ." 1+
> 2dup at-xy ."   .\\            //." 1+
> 2dup at-xy ."   .\  \          /  /." 1+
> 2dup at-xy ."   .\  '\   {esc}[0m  /` {esc}[1;31m/'  /." 1+
> 2dup at-xy ."    -.  '\  {esc}[35m/{esc}[33m`{esc}[35m/ {esc}[31m/'  .-" 1+
> 2dup at-xy ."    `-    `-{esc}[35m'  \{esc}[31m   /." 1+
> 2dup at-xy ."      '.   {esc}[35m/   /{esc}[31m .-" 1+
> 2dup at-xy ."         -{esc}[35m,   ,{esc}[31m-" 1+
> 2dup at-xy ."          {esc}[0m////" 1+
> 2dup at-xy ."         ,/,/" 1+
> ( 2dup at-xy ."         {esc}[1m^ ^" 1+ )
>      at-xy ."  {esc}[34m I E S   P h o e n i x {esc}[0m "
76,94c69,80
< 	2dup at-xy ."              ,        ," 1+
< 	2dup at-xy ."             /(        )`" 1+
< 	2dup at-xy ."             \ \___   / |" 1+
< 	2dup at-xy ."             /- _  `-/  '" 1+
< 	2dup at-xy ."            (/\/ \ \   /\" 1+
< 	2dup at-xy ."            / /   | `    \" 1+
< 	2dup at-xy ."            O O   ) /    |" 1+
< 	2dup at-xy ."            `-^--'`<     '" 1+
< 	2dup at-xy ."           (_.)  _  )   /" 1+
< 	2dup at-xy ."            `.___/`    /" 1+
< 	2dup at-xy ."              `-----' /" 1+
< 	2dup at-xy ." <----.     __ / __   \" 1+
< 	2dup at-xy ." <----|====O)))==) \) /====" 1+
< 	2dup at-xy ." <----'    `--' `.__,' \" 1+
< 	2dup at-xy ."              |        |" 1+
< 	2dup at-xy ."               \       /       /\" 1+
< 	2dup at-xy ."          ______( (_  / \______/" 1+
< 	2dup at-xy ."        ,'  ,-----'   |" 1+
< 	     at-xy ."        `--{__________)"
---
> 2dup at-xy ."    .              . " 1+
> 2dup at-xy ."   .\\            //. " 1+
> 2dup at-xy ."  .\  \          /  /. " 1+
> 2dup at-xy ."  .\  '\     /` /'  /. " 1+
> 2dup at-xy ."   -.  '\  /`/ /'  .- " 1+
> 2dup at-xy ."   `-    `-'  \   /. " 1+
> 2dup at-xy ."     '.   /   / .- " 1+
> 2dup at-xy ."        -,   ,- " 1+
> 2dup at-xy ."         //// " 1+
> 2dup at-xy ."        ,/,/ " 1+
> 2dup at-xy ."        ^ ^ " 1+
>      at-xy ." I E S   P h o e n i x "
-------------------------------------------------------------------


Any ideas gratefully accepted,

Malcolm Kay



More information about the freebsd-stable mailing list