145 lines
3.5 KiB
C
145 lines
3.5 KiB
C
/* Copyright (C) 1986-2001 by Digital Mars. $Revision: 1.1.1.1 $ */
|
|
#if __SC__ || __RCC__
|
|
#pragma once
|
|
#endif
|
|
|
|
|
|
#ifndef __DISP_H
|
|
#define __DISP_H 1
|
|
|
|
#if __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
extern int
|
|
__cdecl disp_numrows,
|
|
__cdecl disp_numcols,
|
|
__cdecl disp_cursorrow,
|
|
__cdecl disp_cursorcol;
|
|
extern short disp_nowrap; /* does display wrap or not */
|
|
|
|
extern int
|
|
__cdecl disp_printf(char *,...),
|
|
__cdecl disp_getmode(void),
|
|
__cdecl disp_getattr(void),
|
|
__cdecl disp_putc(int);
|
|
extern void
|
|
__cdecl disp_levelblockpoke(int,int,int,int,unsigned,unsigned *,unsigned,unsigned *,unsigned),
|
|
__cdecl disp_open(void),
|
|
__cdecl disp_puts(const char *),
|
|
__cdecl disp_box(int,int,unsigned,unsigned,unsigned,unsigned),
|
|
__cdecl disp_close(void),
|
|
#ifndef _WINDOWS
|
|
__cdecl disp_usebios(void),
|
|
#endif
|
|
__cdecl disp_move(int,int),
|
|
__cdecl disp_flush(void),
|
|
__cdecl disp_eeol(void),
|
|
__cdecl disp_eeop(void),
|
|
__cdecl disp_startstand(void),
|
|
__cdecl disp_endstand(void),
|
|
__cdecl disp_setattr(int),
|
|
__cdecl disp_setcursortype(int),
|
|
__cdecl disp_pokew(int,int,unsigned short),
|
|
__cdecl disp_scroll(int,unsigned,unsigned,unsigned,unsigned,unsigned),
|
|
__cdecl disp_setmode(unsigned char),
|
|
__cdecl disp_peekbox(unsigned short *,unsigned,unsigned,unsigned,unsigned),
|
|
__cdecl disp_pokebox(unsigned short *,unsigned,unsigned,unsigned,unsigned),
|
|
#ifndef _WINDOWS
|
|
__cdecl disp_set43(void),
|
|
__cdecl disp_reset43(void),
|
|
#endif
|
|
__cdecl disp_fillbox(unsigned,unsigned,unsigned,unsigned,unsigned),
|
|
__cdecl disp_hidecursor(void),
|
|
__cdecl disp_showcursor(void);
|
|
extern unsigned short __cdecl disp_peekw(int,int);
|
|
|
|
/* Globals for IBM PC displays (read only): */
|
|
extern unsigned char
|
|
__cdecl disp_mono,
|
|
__cdecl disp_mode,
|
|
__cdecl disp_inited,
|
|
__cdecl disp_ega;
|
|
extern unsigned __cdecl disp_base;
|
|
|
|
#if M_UNIX || M_XENIX
|
|
extern unsigned char __cdecl disp_scomode, __cdecl disp_captured;
|
|
extern int __cdecl disp_vt_number;
|
|
extern char __cdecl *disp_offset;
|
|
#else
|
|
extern unsigned char __cdecl disp_snowycga;
|
|
#endif
|
|
|
|
#define DISP_REVERSEVIDEO 0x70
|
|
#define DISP_NORMAL 0x07
|
|
#define DISP_UNDERLINE 0x01
|
|
#define DISP_NONDISPLAY 0x00
|
|
|
|
#define DISP_INTENSITY 0x08
|
|
#define DISP_BLINK 0x80
|
|
|
|
#if _WIN32
|
|
#define DISP_CURSORBLOCK 100
|
|
#define DISP_CURSORHALF 50
|
|
#define DISP_CURSORUL 20
|
|
#else
|
|
#define DISP_CURSORBLOCK (disp_mono ? 0x000C : 0x0007)
|
|
#define DISP_CURSORHALF (disp_mono ? 0x060C : 0x0307)
|
|
#define DISP_CURSORUL (disp_mono ? 0x0B0C : 0x0707)
|
|
#endif
|
|
|
|
#if !(M_UNIX || M_XENIX)
|
|
#pragma pack(1)
|
|
|
|
typedef struct disp_t
|
|
{
|
|
unsigned numrows;
|
|
unsigned numcols;
|
|
unsigned cursorrow;
|
|
unsigned cursorcol;
|
|
unsigned char mono;
|
|
unsigned char snowycga;
|
|
unsigned char mode;
|
|
unsigned char inited;
|
|
unsigned char ega;
|
|
unsigned char reserved[3];
|
|
short nowrap;
|
|
|
|
union _disp
|
|
{
|
|
unsigned short __far *base;
|
|
struct _disp1
|
|
{ unsigned offset;
|
|
unsigned short base;
|
|
} _disp1x;
|
|
} _dispx;
|
|
#if _WIN32
|
|
void *handle;
|
|
#endif
|
|
} disp_t;
|
|
|
|
#pragma pack()
|
|
|
|
extern disp_t __cdecl disp_state;
|
|
|
|
|
|
#define disp_numrows disp_state.numrows
|
|
#define disp_numcols disp_state.numcols
|
|
#define disp_cursorrow disp_state.cursorrow
|
|
#define disp_cursorcol disp_state.cursorcol
|
|
#define disp_mono disp_state.mono
|
|
#define disp_snowycga disp_state.snowycga
|
|
#define disp_mode disp_state.mode
|
|
#define disp_inited disp_state.inited
|
|
#define disp_ega disp_state.ega
|
|
#define disp_nowrap disp_state.nowrap
|
|
#define disp_base disp_state._dispx._disp1x.base
|
|
|
|
#endif
|
|
|
|
#if __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|