qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC PATCH 1/2] serial console, output


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [RFC PATCH 1/2] serial console, output
Date: Mon, 4 Jul 2016 11:11:45 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1


On 04/07/2016 10:16, Gerd Hoffmann wrote:
> 
> +    sercon_putchar('\x1b');
> +    sercon_putchar('c');
> +    /* clear screen */
> +    sercon_putchar('\x1b');
> +    sercon_putchar('[');
> +    sercon_putchar('2');
> +    sercon_putchar('J');
> +}
> +
> +static void sercon_set_color(u8 fg, u8 bg, u8 bold)
> +{
> +    sercon_putchar('\x1b');
> +    sercon_putchar('[');
> +    sercon_putchar('0');
> +    if (fg != 7) {
> +        sercon_putchar(';');
> +        sercon_putchar('3');
> +        sercon_putchar(GET_LOW(sercon_cmap[fg & 7]));
> +    }
> +    if (bg != 0) {
> +        sercon_putchar(';');
> +        sercon_putchar('4');
> +        sercon_putchar(GET_LOW(sercon_cmap[bg & 7]));
> +    }
> +    if (bold) {
> +        sercon_putchar(';');
> +        sercon_putchar('1');
> +    }
> +    sercon_putchar('m');

Add a sercon_putstr perhaps?

>>> +/* Read character and attribute at cursor position */
>>> > > +static void sercon_1008(struct bregs *regs)
>>> > > +{
>>> > > +    regs->ah = 0x07;
>>> > > +    regs->bh = ' ';
>>> > > +}
>> > 
>> > FYI, the sgabios code seems to indicate that sercon_1008() needs to be
>> > implemented for some programs to work properly.  The sgabios code even
>> > implements a cache of recent writes to try to get it to work.  It's
>> > ugly.
> Didn't run into any issues yet, but also tested linux bootloaders only.
> 
> Maybe we can reuse the output buffer which we have anyway.  Logic needs
> reworked a bit.  We can't just clear characters after printing them out
> if we want be able to read them later, so we need a separate
> pending-updates bit.  Also should be bigger I guess, maybe 80 chars so
> it can cover a complete line.

80x25 is just 2K...  Perhaps it's simpler to just allocate the whole
video buffer from the UMB or EBDA when serial console is in use?

(GWBASIC in graphics modes, for one, uses 10/08 from the whole screen.
I don't know if it does that in text modes too).

Paolo



reply via email to

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