/* bios.h 1990 Dave Newman  IBM Bios package */
#ifndef bios_h
#define bios_h

/* see note at bottom for need of use */
void bios_open(void);

/* currently just returns (does nothing) */
void bios_close(void);

/* get video mode (value same as cur_mode) 
   if bios_open() was called */
int bios_mode(void);

/* scroll active page down */
void bios_scroll_dn(int,int,int,int,int);

/* scroll active page up */
void bios_scroll_up(int,int,int,int,int);

/* set cursor type */
void bios_cursor(int);

/* move cursor to row/col */
void bios_move(int,int);

/* return current cursor location */
void bios_rc(void);

/* put char at cursor */
void bios_putchar(char);

/* put char with attribute */
void bios_pchatt(char);

/* put string at cursor */
void bios_puts(char *);

/* read char at cursor */
char  bios_rdchar(void);

/* read char and attribute at cursor */
int  bios_rdchatt(void);

/* adapter types */
extern char
    cga,        /* color graphics adapter */
   ega,         /* Enhanced graphics adapter */
   vga,         /* video graphics array */
   mcga,        /* PS/2 mcga display */
   mono,        /* just black and white */
   herc,        /* hercules graphics adapter */
   none;        /* no monitor at all (or unknown) */

extern char     /* these are set even if none == 1 */
   color,       /* is is using a color monitor */
   b_w;         /* or black+white? */

/* these vars hold information about the system.
   They are valid after the call to bios_open().
   If the information in them is not relevant,
   the call to bios_open() is not necessary. */
extern int cur_mode;
extern int cur_page;
extern int num_cols;

/* these vars hold info about the cursor position
   and the current color/attribute being used.
   (no bios_open call necessary) */

/* display attribute */
extern unsigned char cur_attr;

/* current row of cursor */
extern int cur_row;

/* current column of cursor */
extern int cur_col;

/* clear text mode 80x25 screen */
#define cls() 
  bios_scroll_dn(25,0,0,24,79);bios_move(0,0)

#endif
/* end bios.h */



