libpayload: Rename PDCurses-3.4 to PDCurses
Change-Id: If881ec130833c7e7e62caa3d31e350a531f5bc8e Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-on: http://review.coreboot.org/12398 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
186
payloads/libpayload/curses/PDCurses/dos/pdcdos.h
Normal file
186
payloads/libpayload/curses/PDCurses/dos/pdcdos.h
Normal file
@ -0,0 +1,186 @@
|
||||
/* Public Domain Curses */
|
||||
|
||||
/* $Id: pdcdos.h,v 1.30 2008/07/13 16:08:17 wmcbrine Exp $ */
|
||||
|
||||
#include <curspriv.h>
|
||||
#include <string.h>
|
||||
|
||||
#if defined(_MSC_VER) || defined(_QC)
|
||||
# define MSC 1
|
||||
#endif
|
||||
|
||||
#if defined(__PACIFIC__) && !defined(__SMALL__)
|
||||
# define __SMALL__
|
||||
#endif
|
||||
|
||||
#if defined(__HIGHC__) || MSC
|
||||
# include <bios.h>
|
||||
#endif
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
* MEMORY MODEL SUPPORT:
|
||||
*
|
||||
* MODELS
|
||||
* TINY cs,ds,ss all in 1 segment (not enough memory!)
|
||||
* SMALL cs:1 segment, ds:1 segment
|
||||
* MEDIUM cs:many segments, ds:1 segment
|
||||
* COMPACT cs:1 segment, ds:many segments
|
||||
* LARGE cs:many segments, ds:many segments
|
||||
* HUGE cs:many segments, ds:segments > 64K
|
||||
*/
|
||||
|
||||
#ifdef __TINY__
|
||||
# define SMALL 1
|
||||
#endif
|
||||
#ifdef __SMALL__
|
||||
# define SMALL 1
|
||||
#endif
|
||||
#ifdef __MEDIUM__
|
||||
# define MEDIUM 1
|
||||
#endif
|
||||
#ifdef __COMPACT__
|
||||
# define COMPACT 1
|
||||
#endif
|
||||
#ifdef __LARGE__
|
||||
# define LARGE 1
|
||||
#endif
|
||||
#ifdef __HUGE__
|
||||
# define HUGE 1
|
||||
#endif
|
||||
|
||||
#include <dos.h>
|
||||
|
||||
extern unsigned char *pdc_atrtab;
|
||||
extern int pdc_adapter;
|
||||
extern int pdc_scrnmode;
|
||||
extern int pdc_font;
|
||||
extern bool pdc_direct_video;
|
||||
extern bool pdc_bogus_adapter;
|
||||
extern unsigned pdc_video_seg;
|
||||
extern unsigned pdc_video_ofs;
|
||||
|
||||
#ifdef __DJGPP__ /* Note: works only in plain DOS... */
|
||||
# if DJGPP == 2
|
||||
# define _FAR_POINTER(s,o) ((((int)(s)) << 4) + ((int)(o)))
|
||||
# else
|
||||
# define _FAR_POINTER(s,o) (0xe0000000 + (((int)(s)) << 4) + ((int)(o)))
|
||||
# endif
|
||||
# define _FP_SEGMENT(p) (unsigned short)((((long)p) >> 4) & 0xffff)
|
||||
#else
|
||||
# ifdef __TURBOC__
|
||||
# define _FAR_POINTER(s,o) MK_FP(s,o)
|
||||
# else
|
||||
# if defined(__WATCOMC__) && defined(__FLAT__)
|
||||
# define _FAR_POINTER(s,o) ((((int)(s)) << 4) + ((int)(o)))
|
||||
# else
|
||||
# define _FAR_POINTER(s,o) (((long)s << 16) | (long)o)
|
||||
# endif
|
||||
# endif
|
||||
# define _FP_SEGMENT(p) (unsigned short)(((long)p) >> 4)
|
||||
#endif
|
||||
#define _FP_OFFSET(p) ((unsigned short)p & 0x000f)
|
||||
|
||||
#ifdef __DJGPP__
|
||||
# include <sys/movedata.h>
|
||||
unsigned char getdosmembyte(int offs);
|
||||
unsigned short getdosmemword(int offs);
|
||||
unsigned long getdosmemdword(int offs);
|
||||
void setdosmembyte(int offs, unsigned char b);
|
||||
void setdosmemword(int offs, unsigned short w);
|
||||
#else
|
||||
# if SMALL || MEDIUM || MSC
|
||||
# define PDC_FAR far
|
||||
# else
|
||||
# define PDC_FAR
|
||||
# endif
|
||||
# define getdosmembyte(offs) \
|
||||
(*((unsigned char PDC_FAR *) _FAR_POINTER(0,offs)))
|
||||
# define getdosmemword(offs) \
|
||||
(*((unsigned short PDC_FAR *) _FAR_POINTER(0,offs)))
|
||||
# define getdosmemdword(offs) \
|
||||
(*((unsigned long PDC_FAR *) _FAR_POINTER(0,offs)))
|
||||
# define setdosmembyte(offs,x) \
|
||||
(*((unsigned char PDC_FAR *) _FAR_POINTER(0,offs)) = (x))
|
||||
# define setdosmemword(offs,x) \
|
||||
(*((unsigned short PDC_FAR *) _FAR_POINTER(0,offs)) = (x))
|
||||
#endif
|
||||
|
||||
#if defined(__WATCOMC__) && defined(__386__)
|
||||
|
||||
typedef union
|
||||
{
|
||||
struct
|
||||
{
|
||||
unsigned long edi, esi, ebp, res, ebx, edx, ecx, eax;
|
||||
} d;
|
||||
|
||||
struct
|
||||
{
|
||||
unsigned short di, di_hi, si, si_hi, bp, bp_hi, res, res_hi,
|
||||
bx, bx_hi, dx, dx_hi, cx, cx_hi, ax, ax_hi,
|
||||
flags, es, ds, fs, gs, ip, cs, sp, ss;
|
||||
} w;
|
||||
|
||||
struct
|
||||
{
|
||||
unsigned char edi[4], esi[4], ebp[4], res[4],
|
||||
bl, bh, ebx_b2, ebx_b3, dl, dh, edx_b2, edx_b3,
|
||||
cl, ch, ecx_b2, ecx_b3, al, ah, eax_b2, eax_b3;
|
||||
} h;
|
||||
} pdc_dpmi_regs;
|
||||
|
||||
void PDC_dpmi_int(int, pdc_dpmi_regs *);
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef __DJGPP__
|
||||
# include <dpmi.h>
|
||||
# define PDCREGS __dpmi_regs
|
||||
# define PDCINT(vector, regs) __dpmi_int(vector, ®s)
|
||||
#else
|
||||
# ifdef __WATCOMC__
|
||||
# ifdef __386__
|
||||
# define PDCREGS pdc_dpmi_regs
|
||||
# define PDCINT(vector, regs) PDC_dpmi_int(vector, ®s)
|
||||
# else
|
||||
# define PDCREGS union REGPACK
|
||||
# define PDCINT(vector, regs) intr(vector, ®s)
|
||||
# endif
|
||||
# else
|
||||
# define PDCREGS union REGS
|
||||
# define PDCINT(vector, regs) int86(vector, ®s, ®s)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Wide registers in REGS: w or x? */
|
||||
|
||||
#ifdef __WATCOMC__
|
||||
# define W w
|
||||
#else
|
||||
# define W x
|
||||
#endif
|
||||
|
||||
/* Monitor (terminal) type information */
|
||||
|
||||
enum
|
||||
{
|
||||
_NONE, _MDA, _CGA,
|
||||
_EGACOLOR = 0x04, _EGAMONO,
|
||||
_VGACOLOR = 0x07, _VGAMONO,
|
||||
_MCGACOLOR = 0x0a, _MCGAMONO,
|
||||
_MDS_GENIUS = 0x30
|
||||
};
|
||||
|
||||
/* Text-mode font size information */
|
||||
|
||||
enum
|
||||
{
|
||||
_FONT8 = 8,
|
||||
_FONT14 = 14,
|
||||
_FONT15, /* GENIUS */
|
||||
_FONT16
|
||||
};
|
||||
|
||||
#ifdef __PACIFIC__
|
||||
void movedata(unsigned, unsigned, unsigned, unsigned, unsigned);
|
||||
#endif
|
Reference in New Issue
Block a user