Hi,
> > void sercon_putchar(char *ptr)
> > {
> > char c = GET_GLOBAL(ptr[0]);
> > [ ... ]
> >
> > ... work?
>
> Yes. See output.c:puts_cs() as an example. It only works if it's a
> constant string (as opposed to a string built on the stack).
After cleaning up the code only three
Hi,
> I found what I was looking for though - it was in the sgabios
> design.txt file instead of the revision history:
> So, if I read the above correctly, it was lilo that inspired the
> "feature". Anyway, something to keep in mind.
Oh. lilo. Interesting.
I didn't expect
Hi,
> > Unfortunately, the screen can be larger than 80x25.
>
> It can with SVGA BIOS, but Gerd here only supports mode 3, doesn't he?
Current code yes, but that doesn't imply it'll stay that way forever.
Supporting other sizes is just a matter of making sercon_1000()
recognizing the mode
On Mon, Jul 04, 2016 at 06:03:30PM +0200, Paolo Bonzini wrote:
> On 04/07/2016 18:00, Kevin O'Connor wrote:
> > Does anyone know where one can find the original svn commit history
> > for sgabios? Seems the original google code repo is no longer
> > present.
>
> There was no history as far as I
On 04/07/2016 18:00, Kevin O'Connor wrote:
> So, if I read the sgabios code correctly, it allocates a buffer of:
>
> struct { u8 x, y; char c; } logbuf[256];
> int logbuf_offset;
>
> Every character sent on the serial port is appended to "logbuf" in
> order, wrapping if necessary:
On Mon, Jul 04, 2016 at 11:26:48AM -0400, Kevin O'Connor wrote:
> At one point I looked through the sgabios code and was able to
> understand how it did caching. I'll take another look and see if I
> can describe it.
So, if I read the sgabios code correctly, it allocates a buffer of:
struct {
On 04/07/2016 17:26, Kevin O'Connor wrote:
> > 4k, we need both character and attribute. But, yes, if we can allocate
> > that somewhere in real mode address space without running into memory
> > pressure this might be the best option.
>
> Unfortunately, the screen can be larger than 80x25.
On Mon, Jul 04, 2016 at 02:46:24PM +0200, Gerd Hoffmann wrote:
> On Mo, 2016-07-04 at 11:11 +0200, Paolo Bonzini wrote:
> > On 04/07/2016 10:16, Gerd Hoffmann wrote:
> > > +static void sercon_set_color(u8 fg, u8 bg, u8 bold)
> > > +{
> > > +sercon_putchar('\x1b');
> > > +
On Mo, 2016-07-04 at 11:11 +0200, Paolo Bonzini wrote:
>
> 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');
> > +
On 04/07/2016 14:46, Gerd Hoffmann wrote:
> We run in real mode, so passing around pointers isn't that easy.
> Given this would make sense for constant strings only (like the 4-byte
> clear-screen sequence) and not so much for variable stuff we might put
> all strings in the global segment.
Hmm
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
Signed-off-by: Gerd Hoffmann
---
src/misc.c | 2 +
src/optionroms.c | 4 +-
src/serial.c | 340 +++
src/util.h | 2 +
4 files changed, 347 insertions(+), 1 deletion(-)
diff --git a/src/misc.c
12 matches
Mail list logo