/* -*- linux-c -*- ------------------------------------------------------- * * * Copyright (C) 1991, 1992 Linus Torvalds * Copyright 2007 rPath, Inc. - All Rights Reserved * Copyright 2009 Intel Corporation; author H. Peter Anvin * * This file is part of the Linux kernel, and is made available under * the terms of the GNU General Public License version 2. * * ----------------------------------------------------------------------- */ /** * @file * @brief Very simple screen I/O for the initialization stage * * @todo Probably should add very simple serial I/O? * @attention This is real mode code! */ #include #include "boot.h" /* be aware of: */ THIS_IS_REALMODE_CODE static void __bootcode putchar(int ch) { struct biosregs ireg; if (ch == '\n') putchar('\r'); /* \n -> \r\n */ initregs(&ireg); ireg.bx = 0x0007; ireg.cx = 0x0001; ireg.ah = 0x0e; ireg.al = ch; intcall(0x10, &ireg, NULL); } void __bootcode boot_puts(char *str) { while (*str) putchar(*str++); }