[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Lost] [Patch] textterm: Ausgabe auf serieller Schnittstelle
Kevin Wolf wrote:
> Toni Kaufmann schrieb:
>
>> Dieser Patch erweitert textterm so, dass es alle Ausgaben auch auf die
>> serielle Schnittstelle ausgibt.
>>
>
> Gleich komplett abzubrechen, falls er die serielle Schnittstelle nicht
> bekommt, ist vielleicht ein bißchen hart, aber für den Moment ist das so
> in Ordnung.
>
Ich habe das jetzt trotzdem mal geändert.
Index: src/modules/textterm/out.c
===================================================================
--- src/modules/textterm/out.c (Revision 631)
+++ src/modules/textterm/out.c (Arbeitskopie)
@@ -47,7 +47,11 @@
// ANSI-Buffer
char ansi_buf[32];
+// Wenn TRUE werden die Ausgaben auch auf die serielle Schnittstelle
+// geschriben
+bool serial_output = TRUE;
+
///
void con_clear_screen();
@@ -58,6 +62,15 @@
void con_init()
{
+ // Ports fuer die serielle Schnittstelle reservieren
+ if (!request_ports(0x3F8, 1)) {
+ serial_output = FALSE;
+ }
+ if (serial_output && !request_ports(0x3FD, 1)) {
+ serial_output = FALSE;
+ release_ports(0x3F8, 1);
+ }
+
video_memory = mem_allocate_physical(CONSOLE_WIDTH * CONSOLE_HEIGHT *
sizeof(video_mem_cell_t), 0xb8000, 0);
@@ -372,6 +385,14 @@
{
static char last_char = 0;
+ // Zeichen auf die serielle Schnittstelle schreiben
+ if (serial_output == TRUE) {
+ outb(0x3f8, c);
+ while ((inb(0x3fd) & 0x20) == 0) {
+ asm("nop");
+ }
+ }
+
switch (c) {
case '\n':
if (last_char != '\r') {