Subversion Repositories shark

Rev

Blame | Last modification | View Log | RSS feed

/* Project:     OSLib
 * Description: The OS Construction Kit
 * Date:                1.6.2000
 * Idea by:             Luca Abeni & Gerardo Lamastra
 *
 * OSLib is an SO project aimed at developing a common, easy-to-use
 * low-level infrastructure for developing OS kernels and Embedded
 * Applications; it partially derives from the HARTIK project but it
 * currently is independently developed.
 *
 * OSLib is distributed under GPL License, and some of its code has
 * been derived from the Linux kernel source; also some important
 * ideas come from studying the DJGPP go32 extender.
 *
 * We acknowledge the Linux Community, Free Software Foundation,
 * D.J. Delorie and all the other developers who believe in the
 * freedom of software and ideas.
 *
 * For legalese, check out the included GPL license.
 */


/*      Console output functions        */

#ifndef __LL_I386_CONS_H__
#define __LL_I386_CONS_H__

#include <ll/i386/defs.h>
BEGIN_DEF

/* for reference only */
extern int cons_columns; /* number of screen columns */
extern int cons_rows;    /* number of screen rows */


/* X-dependent Console Output functions                 */
/* Rememeber that console functions are NOT REENTRANT   */
/* The console must be considered a preemtable resource */
/* File : Cons.C                                        */

void set_visual_page(int page);
void set_active_page(int page);
int get_visual_page(void);
int get_active_page(void);
void place(int x,int y);
void cursor(int start,int end);
void _clear(char c,char attr,int x1,int y1,int x2,int y2);
void clear(void);
void _scroll(char attr,int x1,int y1,int x2,int y2);
void scroll(void);
void bios_save(void);
void bios_restore(void);
void cputc(char c);
void cputs(char *s);
int  cprintf(char *fmt,...) __attribute__((format(printf,1,2)));

/* These functions allow direct access to video RAM */
/* Hence you can use it without the explicit use of */
/* a resource manager                               */
/* File : Cons.C                                    */

void putc_xy(int x,int y,char attr,char c);
char getc_xy(int x,int y,char *attr,char *c);
void puts_xy(int x,int y,char attr,char *s);
int printf_xy(int x,int y,char attr, char *fmt,...) __attribute__((format(printf,4,5)));

/* These are simple useful macro! */
#define HOME()          place(0,0);
#define CRSR_BLOB()     cursor(0,15);
#define CRSR_OFF()      cursor(16,16);
#define CRSR_STD()      cursor(14,15);
#define NL()            cputc('\n');

/* Text mode color definitions */

#define BLACK           0
#define BLUE            1
#define GREEN           2
#define CYAN            3
#define RED             4
#define MAGENTA         5
#define BROWN           6
#define LIGHTGRAY       7
#define DARKGRAY        8
#define LIGHTBLUE       9
#define LIGHTGREEN      10
#define LIGHTCYAN       11
#define LIGHTRED        12
#define LIGHTMAGENTA    13
#define YELLOW          14
#define WHITE           15

END_DEF

#endif