* Revised the RLE algorithm used for compressing the boot splash artwork to
handle uncompressed runs.
* Compress the RGB channels separately for improved efficiency.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24844 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Implemented RLE compression for the boot splash images, resulting in
smaller kernel and boot loader.
* Only the boot loader contains the RLE compressed images, the decompressed
buffer for the icons is passed to the kernel via kernel args.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24812 a95241bf-73f2-0310-859d-f6bbb57e9c96
MMU code reserves for the kernel, and we hit that limit recently with the
addition of the boot splash code.
* This fixes the boot crash as triggered by Stippi's recent changes to the
splash image.
* Cleanup (doxygen comments, line length).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24805 a95241bf-73f2-0310-859d-f6bbb57e9c96
The dividing line is back although with a little more spacing. Also the icon
spacing is a little increased and I added a subtle outline as well as a little
brighter background for the active icon look. The placement logic is now not
independant of each other anymore, otherwise I couldn't center both images
as a unit. But only the vertical placement is affected.
Comments as always on the commit mailing list... :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24796 a95241bf-73f2-0310-859d-f6bbb57e9c96
and setting the video mode. The result of this is a garbage display every other boot. By
introducing a small wait before doing the mode set, it works every time. Will see if I can
reduce the spin timer though with some more tests.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24794 a95241bf-73f2-0310-859d-f6bbb57e9c96
the icons are centered.
* The boot loader and kernel now use the placement info that
generate_boot_screen now generates.
* Made the code that draws the images handle the case where any of the images
is larger than the frame buffer.
* All drawing functions need to know the image width (analogous for bytes per
row).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24773 a95241bf-73f2-0310-859d-f6bbb57e9c96
item entry.
* The bios_ia32 video platform code now stores the available VESA modes in
the new vesa_modes kernel_args field.
* When configuring a VESA mode via settings file, it's no longer needed to
specify the exact mode - the closest available mode is now used. This should
help with bug #1962.
* frame_buffer_console_init() now also creates a boot_item for the VESA modes
in the kernel_args.
* The VESA accelerant now filters the mode list to only contain modes that
are actually supported.
* Moved non-shared vesa driver data into its own file vesa_private.h.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24675 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Refined the way how the default resolution is chosen: it now prefers the
above with hi/true color over a width of 800 in hi/true color over the
same order including palette modes.
* If no suitable mode could be found, it now chooses the first mode from the
list, if any, so that a VESA mode is always used when possible.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24648 a95241bf-73f2-0310-859d-f6bbb57e9c96
that they are ordered by size.
* This actually doesn't seem to be the case for all cards. Hence, we now
search for an appropriate mode only after we've collected all modes.
* Extended find_video_mode() to be able to ignore the height of a video mode;
that way, we can prefer a horizontal resolution of 800 without having to
care about the aspect ratio.
* This fixes bug #1975.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24619 a95241bf-73f2-0310-859d-f6bbb57e9c96
true color resolutions, the second pass that also takes those into account
will only be run if no mode could be found before.
* I hope this will improve Urias boot screen experience.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24609 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed the icons image, it was upside down.
* Support the new 24 bit boot screen images in the boot_loader and the kernel.
* Prepare the code for future indexed versions of the boot screen images.
But the generate_boot_screen tool currently does not generate those.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24449 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added the feature of an animated boot screen (icons lighting up at
different boot stages).
* Added first version of new boot splash images, generated by the new
hsbg tool. (Also finally contains the "new" Haiku logo.)
changes by myself:
* Added Artur to the contributors list in About System.
* Fixed some left overs in the patch, kept tracing turned off.
TODO:
* Remove the need for hard coding the icon positions. (Maybe generate
those from hsbg and put them into images.h? Have user provide icon
spacing/offsets at the command line for hsbg?)
* Rename the stages to something meaningful.
* Use hsbg as a build system tool and generate images.h during build
from PNGs provided in the artwork folder.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24434 a95241bf-73f2-0310-859d-f6bbb57e9c96
maybe users on older hardware prefer 16 bpp, but that should be fixed by
supporting a vesa config file instead.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24167 a95241bf-73f2-0310-859d-f6bbb57e9c96
confirmation after sending off the startup IPIs. We simply moved on and setup
the temporary stack address for the next CPU to be started. With this it was
possible that the trampoline code did not manage to load the address before
we overwrote it. So for configurations with more than two CPUs it was possible
that two CPUs were setup to the same kernel stack which could have caused all
sorts of things - most likely a tripple fault and a reboot. On real hardware
this seems very unlikely but it was easily reproducible with QEMU and -smp >2.
We now use the shared trampoline stack to implement a notification mechanism.
The trampoline code will clear the stack location variable once it has loaded
everything it needs from the trampoline stack. On the other side
smp_boot_other_cpus() will wait for this variable to be cleared after it sent
the startup IPIs so that it knows when it can safely move on and overwrite the
area to boot the next CPU.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23800 a95241bf-73f2-0310-859d-f6bbb57e9c96
* map haiku console colors to atari's palette.
* move the stack up for testing.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23769 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Put cookies and error stuff to toscalls.c.
* dump all cookies instead of fixed list.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23582 a95241bf-73f2-0310-859d-f6bbb57e9c96
Now starts doing stuff in the loader when bootstrapping the .prg from ARAnyM.
For now it just dumps the cookies.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23552 a95241bf-73f2-0310-859d-f6bbb57e9c96
* More test code
* it actually runs now, till _start.
However, calling TOS from C is broken: we use 32 bit param alignment on funcs, but TOS expects 16 bit... need to use asm macros instead of funcs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23531 a95241bf-73f2-0310-859d-f6bbb57e9c96
* also added fake FAT descriptors to avoid crashing TOS, but it doesn't boot yet as floppy.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23525 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added tool to calculate the checksum (TOS wants a real one to 1234, not aa55).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23483 a95241bf-73f2-0310-859d-f6bbb57e9c96