Hi, 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 that. 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. Thanks, Marcus -- `Rhubarb is no Egyptian god.' Debian http://www.debian.org [EMAIL PROTECTED] Marcus Brinkmann GNU http://www.gnu.org [EMAIL PROTECTED] [EMAIL PROTECTED] http://www.marcus-brinkmann.de _______________________________________________ Bug-hurd mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-hurd