dos_compilers/Zortech C++ v30r1/INCLUDE/CONIO.H
2024-07-02 08:01:21 -07:00

282 lines
8.6 KiB
C

/*_ CONIO.H Modified by Joe Huffman October 19, 1990 */
/* Copyright (C) 1988-1989 by Walter Bright */
/* All Rights Reserved */
/* Written by Walter Bright */
#ifndef __CONIO_H
#define __CONIO_H 1
#if __cplusplus
extern "C" {
#endif
int _cdecl getche(void);
int _cdecl getch(void);
int _cdecl kbhit(void);
/****************************************************************************
The return value from getch() and getche() for the second byte if the first
byte is 0.
****************************************************************************/
#define _KB_F1 59 /* Function key F1. */
#define _KB_F2 60
#define _KB_F3 61
#define _KB_F4 62
#define _KB_F5 63
#define _KB_F6 64
#define _KB_F7 65
#define _KB_F8 66
#define _KB_F9 67
#define _KB_F10 68
#define _KB_HOME 71
#define _KB_UP 72
#define _KB_PGUP 73
#define _KB_LEFT 75
#define _KB_RIGHT 77
#define _KB_END 79
#define _KB_DOWN 80
#define _KB_PGDN 81
#define _KB_INS 82
#define _KB_BACK_TAB 15
#define _KB_SF1 84 /* Shift F1. */
#define _KB_SF2 85
#define _KB_SF3 86
#define _KB_SF4 87
#define _KB_SF5 88
#define _KB_SF6 89
#define _KB_SF7 90
#define _KB_SF8 91
#define _KB_SF9 92
#define _KB_SF10 93
#define _KB_CF1 94 /* Control F1. */
#define _KB_CF2 95
#define _KB_CF3 96
#define _KB_CF4 97
#define _KB_CF5 98
#define _KB_CF6 99
#define _KB_CF7 100
#define _KB_CF8 101
#define _KB_CF9 102
#define _KB_CF10 103
#define _KB_AF1 104 /* Alt F1. */
#define _KB_AF2 105
#define _KB_AF3 106
#define _KB_AF4 107
#define _KB_AF5 108
#define _KB_AF6 109
#define _KB_AF7 110
#define _KB_AF8 111
#define _KB_AF9 112
#define _KB_AF10 113
#define _KB_DEL 83
#define _KB_CPGUP 132 /* Control PgUp */
#define _KB_CLEFT 115 /* Control left cursor key. */
#define _KB_CRIGHT 116 /* Control right cursor key. */
#define _KB_CEND 117 /* Control End */
#define _KB_CPGDN 118 /* Control PgDn */
#define _KB_CHOME 119 /* Control Home */
#define _KB_A1 120 /* Alt 1 */
#define _KB_A2 121
#define _KB_A3 122
#define _KB_A4 123
#define _KB_A5 124
#define _KB_A6 125
#define _KB_A7 126
#define _KB_A8 127
#define _KB_A9 128
#define _KB_A0 129 /* Alt 0 */
#define _KB_AMINUS 130 /* Alt keypad '-'. */
#define _KB_APLUS 131 /* Alt keypad '+'. */
#if M_UNIX || M_XENIX
extern char *ttyname(int file_handle);
/* Array of '\0' terminated strings for mapping function keys to strings. */
/* See KEYBOARD(HW) in UNIX manual. */
typedef char _strmap_t[512];
extern int _cdecl _kb_getmapstr(_strmap_t dest_map);
extern int _cdecl _kb_setmapstr(_strmap_t new_map);
#define MIOC ('k'<<8)
#define KBIO_SETMODE (13|MIOC) /* Put AT keyboard into XT | AT mode */
#define KBIO_GETMODE (14|MIOC) /* Get the AT/XT keyboard mode */
/* keyboard mode -- set by KBIO_{S | G}ETMODE */
#define KBM_XT 0 /* XT keyboard mode */
#define KBM_AT 1 /* AT keyboard mode */
#define KIOC ('K' << 8)
#define KDDISPTYPE (KIOC | 1) /* return display type to user */
#define KDMAPDISP (KIOC | 2) /* map display into user space */
#define KDUNMAPDISP (KIOC | 3) /* unmap display from user space*/
#define KDGKBMODE (KIOC | 6) /* get keyboard translation mode*/
#define KDSKBMODE (KIOC | 7) /* set keyboard translation mode*/
/* Used with KD{G | S}ETMODE */
#define K_RAW 0 /* send raw scan codes */
#define K_XLATE 1 /* translates scan codes to ascii*/
#define KDADDIO (KIOC | 11) /* add I/O address to list */
#define KDDELIO (KIOC | 12) /* delete I/O address from list */
#define KDDISPINFO (KIOC | 18) /* Get display start and size. */
#define KIOCSOUND (KIOC | 63) /* start sound generation */
#define KDGKBTYPE (KIOC | 64) /* get keyboard type */
#define KDGETLED (KIOC | 65) /* get current led states */
#define KDSETLED (KIOC | 66) /* set current led states */
/* Use with ioctl(0,KDDISPINFO,&buf) */
struct kd_dispinfo
{ char *vaddr;
unsigned long physaddr;
unsigned long size;
};
/* Use with ioctl(0,KDDISPTYPE,&buf) */
struct kd_disparam
{ long type;
#define KD_MONO 1 /* Possible values for type. */
#define KD_HERCULES 2
#define KD_CGA 3
#define KD_EGA 4
#define KD_VGA 5
char *addr;
};
/* EGA control */
#define EGAIOC ('E' << 8)
#define EGAMODE (EGAIOC | 1)
#define EGAIO (EGAIOC | 2)
#define EGA_GET (EGAIOC | 3)
#define EGA_IOPRIVL (EGAIOC | 4)
/* VGA control */
#define VGAIOC ('E' << 8)
#define VGAMODE (VGAIOC | 65)
#define VGAIO (VGAIOC | 66)
#define VGA_GET (VGAIOC | 67)
#define VGA_IOPRIVL (VGAIOC | 68)
/****************************************************************************
These strings are returned by default from the function keys under SCO UNIX
with fgetc(stdin). If you use getch(), getche(), or kbhit() the keyboard
is put into raw mode and fgetc(stdin) should not be used.
getch() and getche() return DOS compatible sequences. I.e. if a function
key the first byte will be 0 and the next will be a number corresponding
to actual key pressed.
****************************************************************************/
#define _KB_F1_STR "\033[M" /* Key F1 */
#define _KB_F2_STR "\033[N"
#define _KB_F3_STR "\033[O"
#define _KB_F4_STR "\033[P"
#define _KB_F5_STR "\033[Q"
#define _KB_F6_STR "\033[R"
#define _KB_F7_STR "\033[S"
#define _KB_F8_STR "\033[T"
#define _KB_F9_STR "\033[U"
#define _KB_F10_STR "\033[V"
#define _KB_F11_STR "\033[W"
#define _KB_F12_STR "\033[X"
#define _KB_SF1_STR "\033[Y" /* Shifted Key F1 */
#define _KB_SF2_STR "\033[Z"
#define _KB_SF3_STR "\033[a"
#define _KB_SF4_STR "\033[b"
#define _KB_SF5_STR "\033[c"
#define _KB_SF6_STR "\033[d"
#define _KB_SF7_STR "\033[e"
#define _KB_SF8_STR "\033[f"
#define _KB_SF9_STR "\033[g"
#define _KB_SF10_STR "\033[h"
#define _KB_SF11_STR "\033[i"
#define _KB_SF12_STR "\033[j"
#define _KB_CF1_STR "\033[k" /* Control key F1 */
#define _KB_CF2_STR "\033[l"
#define _KB_CF3_STR "\033[m"
#define _KB_CF4_STR "\033[n"
#define _KB_CF5_STR "\033[o"
#define _KB_CF6_STR "\033[p"
#define _KB_CF7_STR "\033[q"
#define _KB_CF8_STR "\033[r"
#define _KB_CF9_STR "\033[s"
#define _KB_CF10_STR "\033[t"
#define _KB_CF11_STR "\033[u"
#define _KB_CF12_STR "\033[v"
#define _KB_CSF1_STR "\033[w" /* Control and shifted key F1 */
#define _KB_CSF2_STR "\033[x"
#define _KB_CSF3_STR "\033[y"
#define _KB_CSF4_STR "\033[z"
#define _KB_CSF5_STR "\033[@"
#define _KB_CSF6_STR "\033[["
#define _KB_CSF7_STR "\033[\\"
#define _KB_CSF8_STR "\033[]"
#define _KB_CSF9_STR "\033[^"
#define _KB_CSF10_STR "\033[_"
#define _KB_CSF11_STR "\033[`"
#define _KB_CSF12_STR "\033[{"
#define _KB_HOME_STR "\033[H"
#define _KB_UP_STR "\033[A" /* Cursor key up arrow */
#define _KB_PGUP_STR "\033[I" /* PgUp. */
#define _KB_MINUS_STR "-" /* Keypad '-' key. */
#define _KB_LEFT_STR "\033[D" /* Cursor key left arrow */
#define _KB_5_STR "\033[E" /* Keypad '5' key. */
#define _KB_RIGHT_STR "\033[C" /* Cursor key right arrow */
#define _KB_PLUS_STR "+" /* Keypad '+' key. */
#define _KB_END_STR "\033[F"
#define _KB_DOWN_STR "\033[B" /* Cursor key down arrow */
#define _KB_PGDN_STR "\033[G" /* PgDn. */
#define _KB_INS_STR "\033[L"
#define _KB_5 76 /* Keypad 5. */
#define _KB_PLUS 78 /* Keypad '+'. */
#define _KB_MINUS 74 /* Keypad '-'. */
#define _KB_CSF1 104 /* Control Shift F1. */
#define _KB_CSF2 105
#define _KB_CSF3 106
#define _KB_CSF4 107
#define _KB_CSF5 108
#define _KB_CSF6 109
#define _KB_CSF7 110
#define _KB_CSF8 111
#define _KB_CSF9 112
#define _KB_CSF10 113
#define _KB_F11 133 /* F11 for Extended keyboards (101-104 keys). */
#define _KB_F12 134
#define _KB_SF11 135 /* Shift F11 for Extended keyboards. */
#define _KB_SF12 136
#define _KB_CF11 137 /* Control F11 for Extended keyboards. */
#define _KB_CF12 138
#define _KB_CSF11 139 /* Control Shift F11 for Extended keyboards. */
#define _KB_CSF12 140
#else /* M_UNIX || M_XENIX */
/* DOS only */
unsigned char _cdecl inp(unsigned);
unsigned char _cdecl outp(unsigned,char);
int _cdecl inpw(unsigned);
int _cdecl outpw(unsigned,unsigned);
#endif /* M_UNIX || M_XENIX */
#if __cplusplus
}
#endif
#endif /* __CONIO_H */