[Top][All Lists]

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

some console code checked in

From: Marcus Brinkmann
Subject: some console code checked in
Date: Sun, 17 Mar 2002 19:23:56 +0100
User-agent: Mutt/1.3.27i


as Roland asked me for it, I have checked in the console code as far as I
have come.  I welcome comments to the code, but please note the following:
Everything in input.h, focus.h and focus.c is completely undeveloped.  It is
only there to make the rest compile.  input.h shows some ideas for the input
device interface, but as I have not written any input device code yet, this
will certainly change.  focus.c contains some code that is #if'ed out that
was supposed to deal with argument parsing.  We have already identified that
this was a dad end, and the code will be removed when it is updated to do
argument parsing the new way.  The rest in focus.c is also subject to change
when input drivers are implemented.

What is pretty much finished is bdf.h, bdf.c, dynafont.h and dynafont.c. 
The main thing missing in dynafont.c is using the other available font slots
on the VGA card, so switching between the last 4-8 consoles is more
efficient (less flicker).  vga-hw.c, vga.h and vga.c are ok as far as they
go, but there will be a bit more added to them when I complete the VGA
display device driver.  vga-display.c is quite ok as far as it is
implemented, except for the vga_display_output_one function, which of course
lies at the core.  I am slightly undecided how much I optimize it, you can
see I have implemented all the special cases for the non-escape sequences,
but using catch-all functions like "restrict cursor" and "scroll part of screen"
and "fill part of screen" are quite convenient and make the code easier to
read.  So I will diddle the code around a bit and port the remaining "emu"
code from colortext (#if'ed out in the file) until I like it.  Scrolling the
screen can be optimized by a special write mode in VGA, and I plan to do

console.h and console.c are also quite complete, one part missing is a
select() implementation.  I also might redo some of the queue handling,
although there is not much choice how to do it anyway.

main.c is currently based on trivfs, but it seems to me that libnetfs is
necessary, which is kind of unfortunate, because trivfs is so easy to use ;)

The code compiles without warnings, but it requires sys/io.h.
tioctlServer.c does not compile, because tioctl.defs doesn't do IO_IMPORTS,
or any other imports for that matter.  This needs to be fixed.
As tioctl.defs uses io_t extensively, I think it makes sense for it
to import IO_IMPORTS.  But a seperate TIOCTL_IMPORTS is
also acceptable of course.  Let me know what you prefer.

The code can't link currently.  Too much stuff missing ;)

Things that are missing:
* Argument parsing, fsysopts handling.
* Input devices.
* Screen blanking.
* ...

Roland, I have not considered LED stae of pckbd yet.  I don't even know how
it is done in other systems (at the hardware level).  I guess we need an
OSKit device for that, which we can write a byte with a bitmask to.

I also have not considered the console bell.  This would require an audio
device of some sort (PC speaker).  I think an acceptable work around might
be some blinking, or a 'Wuff Wuff' message like screen has.


`Rhubarb is no Egyptian god.' Debian http://www.debian.org brinkmd@debian.org
Marcus Brinkmann              GNU    http://www.gnu.org    marcus@gnu.org

reply via email to

[Prev in Thread] Current Thread [Next in Thread]