Re: Context sensitivity in beastie.4th?

2005-06-03 Thread Scott Long

Malcolm Kay wrote:


On Fri, 27 May 2005 03:13 pm, Scott Long wrote:


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.




I found I also needed to do something about
 getsenv
 setenv
and
 unsetenv
The following at the start of init.4th worked:
--
: getenv
  2dup s" loader_color" compare 0= if
2drop
s" NO"
exit
  then
  2dup s" beastie_disable" compare 0= if
2drop
-1
exit
  then
  2drop
  -1
  exit
;

: setenv drop drop ;
: unsetenv drop ;

Where the fourth line might also be 
   s" YES"


Symptoms suggested to me that I had a memory problem but 
memtest86 ran without difficulty.


I also found much works differently at boot. Closer examination
shows that a number of things take different paths oftem using 
BIOS or simplified code when called at boot  --  I wonder whether
there is some anomaly in memory allocation when run from boot 
that raises its ugly head on my machine.


I have achieved what I want by using a empirically derived 
context but the underlying problem persists.


Anyway thanks for your input.

Malcolm





Look at rev 1.11 of /sys/boot/ficl/loader.c.  I guess I never merged it
back to RELENG_5.  Yes, not having a working getenv word makes some
things act different, but emulating the real functionality would require
simulating a lot more of the underlying loader environment, and that's
more work than I'm able to do right now.

Scott
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Context sensitivity in beastie.4th?

2005-06-03 Thread Malcolm Kay
On Fri, 27 May 2005 03:13 pm, Scott Long wrote:
> 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.
>

I found I also needed to do something about
 getsenv
 setenv
and
 unsetenv
The following at the start of init.4th worked:
--
: getenv
  2dup s" loader_color" compare 0= if
2drop
s" NO"
exit
  then
  2dup s" beastie_disable" compare 0= if
2drop
-1
exit
  then
  2drop
  -1
  exit
;

: setenv drop drop ;
: unsetenv drop ;

Where the fourth line might also be 
   s" YES"

Symptoms suggested to me that I had a memory problem but 
memtest86 ran without difficulty.

I also found much works differently at boot. Closer examination
shows that a number of things take different paths oftem using 
BIOS or simplified code when called at boot  --  I wonder whether
there is some anomaly in memory allocation when run from boot 
that raises its ugly head on my machine.

I have achieved what I want by using a empirically derived 
context but the underlying problem persists.

Anyway thanks for your input.

Malcolm



___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Context sensitivity in beastie.4th?

2005-05-27 Thread Scott Long

Peter Jeremy wrote:

On Thu, 2005-May-26 23:41:26 -0600, Scott Long wrote:

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.



[Instructions deleted]

I believe your instructions are worth preserving.  Any chance of you
adding that to (eg) /usr/src/sys/boot/README or into the ficl or forth
directories?



Yeah, it would be a good thing to do.  We should actually go a step 
further and write a ficl manpage that talks about the whole environment

and how to develop in it.

Scott
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Context sensitivity in beastie.4th?

2005-05-27 Thread Peter Jeremy
On Thu, 2005-May-26 23:41:26 -0600, Scott Long wrote:
>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.

[Instructions deleted]

I believe your instructions are worth preserving.  Any chance of you
adding that to (eg) /usr/src/sys/boot/README or into the ficl or forth
directories?

-- 
Peter Jeremy
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Context sensitivity in beastie.4th?

2005-05-26 Thread Malcolm Kay
On Fri, 27 May 2005 03:11 pm, 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

Looks as though I may have some strange hardware problem (Groan) but
I'll push on a bit further.

> doubt have noticed that it's somewhat inconvenient to do 4th programming
> by modifying the boot scripts and then praying that the reboot works.

Yes Yes Yes ! ! !

> 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.
>

Thanks for the suggestion -- I'll give it a go.

> Scott

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Context sensitivity in beastie.4th?

2005-05-26 Thread Scott Long

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
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Context sensitivity in beastie.4th?

2005-05-26 Thread Scott Long

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.

Scott
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"