+/*****************************************************************************
+** This is part of the CTSim program
+** Copyright (C) 1983-2000 Kevin Rosenberg
+**
+** $Id: cio.h,v 1.8 2000/06/05 01:32:45 kevin Exp $
+** $Log: cio.h,v $
+** Revision 1.8 2000/06/05 01:32:45 kevin
+** Added C++ compatibility
+**
+** Revision 1.7 2000/05/08 20:45:10 kevin
+** *** empty log message ***
+**
+** Revision 1.6 2000/05/08 20:00:47 kevin
+** ANSI C changes
+**
+** Revision 1.5 2000/05/07 12:46:19 kevin
+** made c++ compatible
+**
+** Revision 1.4 2000/04/28 18:18:59 kevin
+** removed unused files
+**
+** Revision 1.3 2000/04/28 14:14:16 kevin
+** *** empty log message ***
+**
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License (version 2) as
+** published by the Free Software Foundation.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+******************************************************************************/
#ifndef __CIO_H
#define __CIO_H
-struct crtv_st {
- int init; /* True if initialized */
- int bios_mode; /* Current BIOS crt mode */
- int text_attr; /* Current text attribute */
- int act_page; /* Active page */
- int tcols, trows; /* Maximum text coords */
- int xmax, ymax; /* Maximum x, y for both text & graphic modes */
- int cx, cy; /* Current x, y position */
-};
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
-#ifndef DEFINE_CRTV
- extern struct crtv_st crtv;
-#endif
-
-/*----------------------------------------------------------------------*/
-
-#define CRT_ROWS 25
-#define CRT_COLS 80
-
-/* crt modes */
-
-#define GM_TEXT40 1 /* color */
-#define GM_TEXT80 3 /* color */
-#define GM_320x200 4 /* color */
-#define GM_640x200 6
-#define GM_MONOTEXT 7
-#define GM_E320x200 13
-#define GM_E640x200 14
-#define GM_MONOGRF 15
-#define GM_ENHANCED 16
-
-#define GM_640x480x16 0x12
-#define GM_640x480x256 0x2E
-#define GM_1024x768x16 0x37
-#define GM_1024x768x256 0x38
-
-
-
-#define GM_TEXT -1
-#define GM_HIGHRES -2
-#define GM_MEDRES -3
-
-#define CRT_NONE -1
-#define CRT_MONO 0
-#define CRT_COLOR 1
-#define CRT_ENHANCED 2
-
-/*----------------------------------------------------------------------*/
-
-#define ATTR_NORMAL 7
-#define ATTR_REVERSE 14
-#define ATTR_HIGHLIGHT 15
#define C_BLACK 0 /* color codes */
#define C_BLUE 1
#define SC_TAB 9
#define SC_BLANK ' '
-#define SC_TOP_LEFT 218
-#define SC_TOP_RIGHT 191
-#define SC_BOTT_LEFT 192
-#define SC_BOTT_RIGHT 217
-#define SC_HORIZ 196
-#define SC_VERTICAL 179
-
-#define WAITKEY() {cio_kb_clr(); while (cio_kb_read() == 0);}
+/* audio.c */
+void cio_beep(void);
+void cio_tone(double freq, double length);
-/* biosf.c */
-void b_setcpos(int col, int row, int page);
-void crt_wrt_cca(int c, int attr, int count, int page);
-void crt_wrt_ca(int c, int attr, int page);
-void crt_wrt_stra(const char *str, int count, int attr, int row, int col, int page);
-/* c_restor.c */
-void crt_restore(const char *fname);
-/* c_save.c */
-int crt_save(const char *fname);
-/* center.c */
-int crt_center_line(const char *str);
-/* clreol.c */
-void crt_clreol(void);
-/* clrline.c */
-void crt_clrline(unsigned int line);
-/* clrscrn.c */
-void crt_clrscrn(void);
-/* cpos.c */
-void crt_tab(unsigned int n);
-void crt_save_cpos(void);
-void crt_restore_cpos(void);
-/* cprintf.c */
-void cio_printf(const char *cs, ...);
-void cio_aprintf(const int attr, const char *cs, ...);
-/* cputs.c */
-void cputs(const char *s);
-/* crt_data.c */
-/* ctype.c */
-void crt_set_ctype(int start, int end);
-void crt_cursor_off(void);
-void crt_cursor_on(void);
-/* dispcard.c */
-int crt_disp_card(void);
-/* fill_eol.c */
-void crt_fill_eol(int c, int attr);
-/* frame.c */
-int crt_frame(int ulcol, int ulrow, int lrcol, int lrrow, int attr, int nlines);
-/* get_ca.c */
-void crt_get_ca(int *c, int *attr);
-/* getmon.c */
-int crt_get_mon(void);
-void crt_set_mon(int mon);
-/* getstate.c */
-void crt_get_state(void);
-/* mode.c */
-void crt_set_mode(int mode, int cls);
-int crt_get_mode(void);
-int crt_bios_code(int mode);
-/* put_ca.c */
-void crt_set_text_clr(int fclr, int bclr);
-int crt_get_texta(void);
-void crt_set_texta(int a);
-int crt_blank_attr(void);
-void crt_put_ca(int c, int attr);
-void crt_put_c(int c);
-void crt_put_cc(int c, int count);
-void crt_put_cca(int c, int attr, int count);
-void crt_put_str(const char *str);
-void crt_put_stra(const char *str, int attr);
-void crt_inc_col(int count);
-void crt_dec_col(int count);
-void crt_dec_row(int count);
-/* scrollup.c */
-void crt_scrollup(int xmin, int ymin, int xmax, int ymax, int nline, int attr);
-/* setcpos.c */
-void crt_set_cpos(int col, int row);
-void crt_get_cpos(int *col, int *row);
-/* setpage.c */
-void crt_set_page(int page);
-/* setpal.c */
-void crt_set_palette(int id, int color);
-void crt_set_color_table(char *color_table);
-void crt_set_border(int bcolor);
-int crt_calc_color(double nr, double ng, double nb);
-int crt_icalc_color(int r, int g, int b);
+/* crtput.c */
+void cio_put_c(int c);
+void cio_put_cc(int c, int count);
+void cio_put_str(const char *str);
-/* beep.c */
-void cio_beep(void);
-/* kb_chk.c */
-int cio_kb_chk(void);
-/* kb_clr.c */
-void cio_kb_clr(void);
-/* kb_getc.c */
+/* kbget.c */
unsigned int cio_kb_getc(void);
void cio_kb_ungetc(unsigned int c);
-/* kb_gets.c */
char *cio_kb_gets(char *str, int maxlen);
-/* kb_read.c */
-unsigned int cio_kb_read(void);
-void cio_kb_unread(unsigned int c);
-/* kb_waitc.c */
-unsigned int cio_kb_waitc(const char *astr, const char *estr, int beep_on_error);
-/* speaker.c */
-void cio_spkr_freq(double freq);
-void cio_spkr_divisor(unsigned int div);
-void cio_spkr_on(void);
-void cio_spkr_off(void);
-/* tone.c */
-void cio_tone(double freq, double length);
-/* check_kb */
-int cio_check_kb_escape(void);
+unsigned int cio_kb_waitc(const char *astr, int beep);
+
+#ifdef __cplusplus
+}
+#endif /* _cplusplus */
#endif