[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: why is it called /boot/beastie.4th ?

Dag-Erling Smørgrav wrote:
 > Oliver Fromme writes:
 > > Dag-Erling Smørgrav <des_(_at_)_des_(_dot_)_no> writes:
 > > > Oliver Fromme <olli_(_at_)_lurza_(_dot_)_secnetix_(_dot_)_de> writes:
 > > > > http://www.secnetix.de/olli/tmp/vloader.png
 > > > This is brilliant!  Send patches!  :)
 > > Does that mean you're volunteering to be my mentor?  :)
 > It means, at the very least, that I have worked on similar code in the
 > kernel (not loader) before, and that I therefore feel competent to at
 > least look over your code.

Great!  I'll need to clean up the code a bit and do some
style(9) conversions first, then I'll put it in P4.

 > Considering your track record, I'm surprised you haven't found someone
 > to mentor you already.

Well, I didn't look for one so far.  :-)

 > > BTW, my patches add a few FICL words (forth commands) to the loader
 > > (i386 and amd64 only).  They implement simple graphics commands (dots,
 > > lines, triangles, circles), text output using proportional fonts
 > > loaded from the boot device, and display of PCX images.  [...]
 > The kernel splash code supports both BMP (courtesy of Mike Smith, IIRC)
 > and PCX (courtesy of yours truly).  I haven't looked at it in years, but
 > I've used it on and off to add splash screens to various FreeBSD-based
 > turn-key solutions I've been involved in.
 > Hey, how about PNG support?  Know someone we could ask?  ;)

heh :-)  I wish there was a way to update my email address
in RFC2083 ...  that one doesn't work anymore.

Speaking about image file formats:  My intention was to get
the code working as quickly as possible, and PCX was pretty
easiest format to implement that supported 4 bit depth.
The whole decode + display loop is 20 lines of C.

It's true, the RLE compression of PCX is pathetic.  But
that really doesn't matter much.  The background image of
that screen shot is an 80 KB PCX file, which really isn't
all that much (and it doesn't take up any RAM after it has
been decoded and written to the VGA frame buffer).

Adding PNG support would be significantly more complicated
and increase the size of the loader binary.  I don't think
it's worth it.

 > It would be very nice if you could generalize this to allow displaying
 > kernel boot messages over a graphical background; I'm not sure that's
 > possible with our current graphical console code.

I don't think it can be done currently, but it would be
possible to implement.  I haven't looked at the syscons
code in a long time, though.  Right now my focus is on
the loader.

 > I've written a number of PCX decoders over the years, BTW, and I
 > remember that I once wrote a codec for a stripped-down version which
 > supported only single-plane 8-bit color.  It turns out that for that
 > specific case, which was the most common at the time, you could achieve
 > considerably better compression by dropping the padding at the end of
 > each scan line, and allowing runs to cross from the end of one scan line
 > to the beginning of the next (with due consideration given to not
 > exceeding the width of the run length counter).

In fact my PCX decoder supports that; runs crossing planes
(standard) as well as runs crossing scan line boundaries
(non-standard).  In fact I have to admit that it currently
doesn't support padding at all.  Well, ppmtopcx never
generates any padding, so I didn't care.  I'll try to fix
that, though.

Best regards

Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart

FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd

"C++ is the only current language making COBOL look good."
        -- Bertrand Meyer
freebsd-chat_(_at_)_freebsd_(_dot_)_org mailing list
To unsubscribe, send any mail to "freebsd-chat-unsubscribe_(_at_)_freebsd_(_dot_)_org"