[OpenBIOS] [PATCH 00/16] Switch to standards-compliant Forth console from C console

Blue Swirl blauwirbel at gmail.com
Sun Mar 10 19:16:01 CET 2013


On Sun, Mar 10, 2013 at 4:50 PM, Mark Cave-Ayland
<mark.cave-ayland at ilande.co.uk> wrote:
> As mentioned in my previous email on-list, OpenBIOS currently contains two
> consoles - a C based console and a Forth based console. The Forth based console
> is currently broken, but is more feature complete than the C console, whilst also
> being more portable across different architectures.
>
> This patchset performs the following functions:
>
> - Fix various bugs in the Forth console
> - Optimise performance using low-level C graphics routines
> - Add simple IEEE1275-like initialisers for TCX and VGA graphics
> - Switch TCX and VGA drivers over to use the new console using the standard
>   is-install word
>
> Once this patchset is committed, a further patchset will follow to remove all of
> the duplicate C console code, remove packages/video.c and unify the console
> input/routines into libopenbios.

I'm getting these warnings during build, perhaps something is not correct:
  LINK  openbios-builtin.elf
libopenbios.a(console_common.o): warning: multiple common of `video'
libsparc32.a(openbios.o): warning: previous common is here
libopenbios.a(video_common.o): warning: multiple common of `video'
libsparc32.a(openbios.o): warning: previous common is here
libpackages.a(video.o): warning: multiple common of `video'
libsparc32.a(openbios.o): warning: previous common is here
  GEN   openbios-builtin.elf.syms

Based on a quick Debian 3.1 CDROM boot test, it looks like scrolling
and clear screen does not work at all. Text is also offset by one line
down and one column right.

Some usual messages (CPUs, UUID) are not going to screen but that's probably OK.

>
>
> Mark Cave-Ayland (16):
>   display.fs: Fix up default-font word.
>   display.fs: Fix fb8-delete-lines within the inbuilt Forth terminal
>     emulator.
>   terminal.fs: Fix linefeeds on the bottom line of the Forth console.
>   terminal.fs: Fix backspace sequence in Forth terminal.
>   video: Create new video_common.c file for shared video primitive
>     routines.
>   video_common.c: Move primitive graphic operations into
>     libopenbios/video_common.c.
>   pci: Modify PCI display devices so that open and close words are not
>     created     automatically during initialisation.
>   video: Create tcx.fs and vga.fs to simulate Fcode video
>     initialisation code.
>   display.fs: pass the colour depth in bytes to the Forth terminal
>     routines.
>   video_common.c: create low-level video_mask_blit() function.
>   video_common.c: create low-level video_invert_rect() function.
>   display.fs: Fix fb8 routines to work with bit depths > 8.
>   video_common.c: create low-level video_fill_rect() function.
>   display.fs: optimise scrolling by copying/deleting multiple scanlines
>     at once.
>   display.fs: Add vertical font-spacing as per the existing C console
>     implementation.
>   video: switch VGA and TCX drivers over to Forth console using
>     is-install.
>
>  openbios-devel/arch/sparc32/console.c       |   12 -
>  openbios-devel/arch/sparc32/openbios.c      |    2 +-
>  openbios-devel/drivers/build.xml            |    2 +
>  openbios-devel/drivers/pci.c                |   14 +-
>  openbios-devel/drivers/pci.h                |    1 +
>  openbios-devel/drivers/sbus.c               |    2 +
>  openbios-devel/drivers/tcx.fs               |   13 +
>  openbios-devel/drivers/vga.fs               |   13 +
>  openbios-devel/drivers/vga_vbe.c            |    2 +-
>  openbios-devel/forth/device/display.fs      |  172 +++++------
>  openbios-devel/forth/device/font.fs         |    4 +
>  openbios-devel/forth/device/terminal.fs     |   10 +-
>  openbios-devel/include/libopenbios/video.h  |   24 ++
>  openbios-devel/include/packages/video.h     |    6 +-
>  openbios-devel/libopenbios/build.xml        |    1 +
>  openbios-devel/libopenbios/console_common.c |    1 +
>  openbios-devel/libopenbios/video_common.c   |  444 +++++++++++++++++++++++++++
>  openbios-devel/packages/video.c             |  279 +----------------
>  18 files changed, 607 insertions(+), 395 deletions(-)
>  create mode 100644 openbios-devel/drivers/tcx.fs
>  create mode 100644 openbios-devel/drivers/vga.fs
>  create mode 100644 openbios-devel/include/libopenbios/video.h
>  create mode 100644 openbios-devel/libopenbios/video_common.c
>
> --
> 1.7.10.4
>
>
> --
> OpenBIOS                 http://openbios.org/
> Mailinglist:  http://lists.openbios.org/mailman/listinfo
> Free your System - May the Forth be with you



More information about the OpenBIOS mailing list