mirror of
https://github.com/VARCem/PDCurses.git
synced 2026-09-25 08:15:27 +00:00
More stuff that doesn't need to be in SCREEN.
This commit is contained in:
10
curses.h
10
curses.h
@@ -15,7 +15,7 @@
|
||||
* See the file maintain.er for details of the current maintainer. *
|
||||
************************************************************************/
|
||||
|
||||
/* $Id: curses.h,v 1.213 2006/08/11 22:19:45 wmcbrine Exp $ */
|
||||
/* $Id: curses.h,v 1.214 2006/08/12 02:44:08 wmcbrine Exp $ */
|
||||
|
||||
/*----------------------------------------------------------------------*
|
||||
* PDCurses *
|
||||
@@ -564,7 +564,6 @@ typedef struct
|
||||
int curscol; /* position of physical cursor */
|
||||
int visibility; /* Visibility of cursor */
|
||||
int orig_cursor; /* Original cursor size */
|
||||
int font; /* default font size */
|
||||
int lines; /* New value for LINES */
|
||||
int cols; /* New value for COLS */
|
||||
unsigned long _trap_mbe; /* trap these mouse button events */
|
||||
@@ -587,15 +586,12 @@ typedef struct
|
||||
|
||||
#if defined(OS2) && !defined(EMXVIDEO)
|
||||
VIOMODEINFO scrnmode; /* default screen mode */
|
||||
int font; /* default font size */
|
||||
#endif
|
||||
|
||||
#ifdef DOS
|
||||
int adapter; /* Screen type */
|
||||
int scrnmode; /* default screen mode */
|
||||
bool direct_video; /* Allow Direct Screen Memory writes */
|
||||
unsigned video_seg; /* video base segment */
|
||||
unsigned video_ofs; /* video base offset */
|
||||
bool bogus_adapter; /* TRUE if adapter has insane values */
|
||||
int font; /* default font size */
|
||||
#endif
|
||||
|
||||
#ifdef XCURSES
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
#include <string.h>
|
||||
|
||||
RCSID("$Id: pdcdisp.c,v 1.49 2006/08/11 19:50:51 wmcbrine Exp $");
|
||||
RCSID("$Id: pdcdisp.c,v 1.50 2006/08/12 02:44:08 wmcbrine Exp $");
|
||||
|
||||
#ifdef __PACIFIC__
|
||||
void movedata(unsigned sseg, unsigned soff, unsigned dseg,
|
||||
@@ -147,7 +147,7 @@ void PDC_transform_line(int lineno, int x, int len, const chtype *srcp)
|
||||
|
||||
PDC_LOG(("PDC_transform_line() - called: line %d\n", lineno));
|
||||
|
||||
if (SP->direct_video)
|
||||
if (pdc_direct_video)
|
||||
{
|
||||
/* this should be enough for the maximum width of a
|
||||
screen */
|
||||
@@ -163,8 +163,8 @@ void PDC_transform_line(int lineno, int x, int len, const chtype *srcp)
|
||||
|
||||
#ifdef __DJGPP__
|
||||
dosmemput(temp_line, len * 2,
|
||||
(unsigned long)_FAR_POINTER(SP->video_seg,
|
||||
SP->video_ofs + (lineno * curscr->_maxx + x) * 2));
|
||||
(unsigned long)_FAR_POINTER(pdc_video_seg,
|
||||
pdc_video_ofs + (lineno * curscr->_maxx + x) * 2));
|
||||
#else
|
||||
# if SMALL || MEDIUM
|
||||
# ifdef __PACIFIC__
|
||||
@@ -173,12 +173,12 @@ void PDC_transform_line(int lineno, int x, int len, const chtype *srcp)
|
||||
segread(&segregs);
|
||||
ds = segregs.ds;
|
||||
# endif
|
||||
movedata(ds, (int)temp_line, SP->video_seg,
|
||||
SP->video_ofs + (lineno * curscr->_maxx + x) * 2,
|
||||
movedata(ds, (int)temp_line, pdc_video_seg,
|
||||
pdc_video_ofs + (lineno * curscr->_maxx + x) * 2,
|
||||
len * 2);
|
||||
# else
|
||||
memcpy((void *)_FAR_POINTER(SP->video_seg,
|
||||
SP->video_ofs + (lineno * curscr->_maxx + x) * 2),
|
||||
memcpy((void *)_FAR_POINTER(pdc_video_seg,
|
||||
pdc_video_ofs + (lineno * curscr->_maxx + x) * 2),
|
||||
temp_line, len * 2);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* See the file maintain.er for details of the current maintainer. *
|
||||
************************************************************************/
|
||||
|
||||
/* $Id: pdcdos.h,v 1.9 2006/08/11 22:19:45 wmcbrine Exp $ */
|
||||
/* $Id: pdcdos.h,v 1.10 2006/08/12 02:44:08 wmcbrine Exp $ */
|
||||
|
||||
#define CURSES_LIBRARY 1
|
||||
#include <curses.h>
|
||||
@@ -55,6 +55,12 @@
|
||||
|
||||
extern union REGS regs;
|
||||
|
||||
extern int pdc_adapter;
|
||||
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)))
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
RCSID("$Id: pdcgetsc.c,v 1.29 2006/08/10 07:17:15 wmcbrine Exp $");
|
||||
RCSID("$Id: pdcgetsc.c,v 1.30 2006/08/12 02:44:08 wmcbrine Exp $");
|
||||
|
||||
/*man-start**************************************************************
|
||||
|
||||
@@ -144,10 +144,10 @@ int PDC_get_font(void)
|
||||
|
||||
/* Assume the MDS Genius is in 66 line mode. */
|
||||
|
||||
if ((retval == 0) && (SP->adapter == _MDS_GENIUS))
|
||||
if ((retval == 0) && (pdc_adapter == _MDS_GENIUS))
|
||||
retval = _FONT15;
|
||||
|
||||
switch (SP->adapter)
|
||||
switch (pdc_adapter)
|
||||
{
|
||||
case _MDA:
|
||||
retval = 10; /* POINTS is not certain on MDA/Hercules */
|
||||
@@ -206,18 +206,18 @@ int PDC_get_rows(void)
|
||||
if (env_rows != (char *)NULL)
|
||||
rows = min(atoi(env_rows), rows);
|
||||
|
||||
if ((rows == 1) && (SP->adapter == _MDS_GENIUS))
|
||||
if ((rows == 1) && (pdc_adapter == _MDS_GENIUS))
|
||||
rows = 66;
|
||||
if ((rows == 1) && (SP->adapter == _MDA))
|
||||
if ((rows == 1) && (pdc_adapter == _MDA))
|
||||
rows = 25;
|
||||
|
||||
if (rows == 1)
|
||||
{
|
||||
rows = 25;
|
||||
SP->direct_video = FALSE;
|
||||
pdc_direct_video = FALSE;
|
||||
}
|
||||
|
||||
switch (SP->adapter)
|
||||
switch (pdc_adapter)
|
||||
{
|
||||
case _EGACOLOR:
|
||||
case _EGAMONO:
|
||||
@@ -305,7 +305,7 @@ static int PDC_sanity_check(int adapter)
|
||||
case 43:
|
||||
break;
|
||||
default:
|
||||
SP->bogus_adapter = TRUE;
|
||||
pdc_bogus_adapter = TRUE;
|
||||
}
|
||||
|
||||
switch (fontsize)
|
||||
@@ -314,7 +314,7 @@ static int PDC_sanity_check(int adapter)
|
||||
case _FONT14:
|
||||
break;
|
||||
default:
|
||||
SP->bogus_adapter = TRUE;
|
||||
pdc_bogus_adapter = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -331,18 +331,18 @@ static int PDC_sanity_check(int adapter)
|
||||
case 25:
|
||||
break;
|
||||
default:
|
||||
SP->bogus_adapter = TRUE;
|
||||
pdc_bogus_adapter = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
SP->bogus_adapter = TRUE;
|
||||
pdc_bogus_adapter = TRUE;
|
||||
}
|
||||
|
||||
if (SP->bogus_adapter)
|
||||
if (pdc_bogus_adapter)
|
||||
{
|
||||
SP->sizeable = FALSE;
|
||||
SP->direct_video = FALSE;
|
||||
pdc_direct_video = FALSE;
|
||||
}
|
||||
|
||||
return adapter;
|
||||
@@ -487,7 +487,7 @@ int PDC_query_adapter_type(void)
|
||||
|
||||
if (video_base == 0x3d4)
|
||||
{
|
||||
SP->video_seg = 0xb800;
|
||||
pdc_video_seg = 0xb800;
|
||||
switch (retval)
|
||||
{
|
||||
case _EGAMONO:
|
||||
@@ -500,7 +500,7 @@ int PDC_query_adapter_type(void)
|
||||
|
||||
if (video_base == 0x3b4)
|
||||
{
|
||||
SP->video_seg = 0xb000;
|
||||
pdc_video_seg = 0xb000;
|
||||
switch (retval)
|
||||
{
|
||||
case _EGACOLOR:
|
||||
@@ -516,9 +516,9 @@ int PDC_query_adapter_type(void)
|
||||
|| (retval == _CGA)
|
||||
#endif
|
||||
)
|
||||
SP->direct_video = FALSE;
|
||||
pdc_direct_video = FALSE;
|
||||
|
||||
if ((unsigned int) SP->video_seg == 0xb000)
|
||||
if ((unsigned int) pdc_video_seg == 0xb000)
|
||||
SP->mono = TRUE;
|
||||
else
|
||||
SP->mono = FALSE;
|
||||
@@ -529,24 +529,24 @@ int PDC_query_adapter_type(void)
|
||||
#if defined(__DJGPP__) && defined(NOW_WORKS)
|
||||
dpmi_regs.h.ah = 0xfe;
|
||||
dpmi_regs.h.al = 0;
|
||||
dpmi_regs.x.di = SP->video_ofs;
|
||||
dpmi_regs.x.es = SP->video_seg;
|
||||
dpmi_regs.x.di = pdc_video_ofs;
|
||||
dpmi_regs.x.es = pdc_video_seg;
|
||||
_go32_dpmi_simulate_int(0x10, &dpmi_regs);
|
||||
SP->video_ofs = dpmi_regs.x.di;
|
||||
SP->video_seg = dpmi_regs.x.es;
|
||||
pdc_video_ofs = dpmi_regs.x.di;
|
||||
pdc_video_seg = dpmi_regs.x.es;
|
||||
#endif
|
||||
|
||||
#if !defined(__DJGPP__) && !defined(__WATCOMC__)
|
||||
regs.h.ah = 0xfe;
|
||||
regs.h.al = 0;
|
||||
regs.x.di = SP->video_ofs;
|
||||
segs.es = SP->video_seg;
|
||||
regs.x.di = pdc_video_ofs;
|
||||
segs.es = pdc_video_seg;
|
||||
int86x(0x10, ®s, ®s, &segs);
|
||||
SP->video_ofs = regs.x.di;
|
||||
SP->video_seg = segs.es;
|
||||
pdc_video_ofs = regs.x.di;
|
||||
pdc_video_seg = segs.es;
|
||||
#endif
|
||||
if (!SP->adapter)
|
||||
SP->adapter = retval;
|
||||
if (!pdc_adapter)
|
||||
pdc_adapter = retval;
|
||||
|
||||
return PDC_sanity_check(retval);
|
||||
}
|
||||
|
||||
@@ -24,9 +24,15 @@
|
||||
# include <sys/movedata.h>
|
||||
#endif
|
||||
|
||||
RCSID("$Id: pdcscrn.c,v 1.44 2006/08/11 22:19:45 wmcbrine Exp $");
|
||||
RCSID("$Id: pdcscrn.c,v 1.45 2006/08/12 02:44:08 wmcbrine Exp $");
|
||||
|
||||
union REGS regs; /* used in various other modules */
|
||||
union REGS regs; /* used in various other modules */
|
||||
|
||||
int pdc_adapter; /* screen type */
|
||||
bool pdc_direct_video; /* allow direct screen memory writes */
|
||||
bool pdc_bogus_adapter; /* TRUE if adapter has insane values */
|
||||
unsigned pdc_video_seg; /* video base segment */
|
||||
unsigned pdc_video_ofs; /* video base offset */
|
||||
|
||||
static unsigned short *saved_screen = NULL;
|
||||
static int saved_lines = 0;
|
||||
@@ -63,8 +69,8 @@ void PDC_scr_close(void)
|
||||
{
|
||||
#ifdef __DJGPP__
|
||||
dosmemput(saved_screen, saved_lines * saved_cols * 2,
|
||||
(unsigned long)_FAR_POINTER(SP->video_seg,
|
||||
SP->video_ofs));
|
||||
(unsigned long)_FAR_POINTER(pdc_video_seg,
|
||||
pdc_video_ofs));
|
||||
#else
|
||||
# if (SMALL || MEDIUM)
|
||||
# ifdef __PACIFIC__
|
||||
@@ -73,10 +79,10 @@ void PDC_scr_close(void)
|
||||
segread(&segregs);
|
||||
ds = segregs.ds;
|
||||
# endif
|
||||
movedata(ds, (int)saved_screen, SP->video_seg, SP->video_ofs,
|
||||
movedata(ds, (int)saved_screen, pdc_video_seg, pdc_video_ofs,
|
||||
(saved_lines * saved_cols * 2));
|
||||
# else
|
||||
memcpy((void *)_FAR_POINTER(SP->video_seg, SP->video_ofs),
|
||||
memcpy((void *)_FAR_POINTER(pdc_video_seg, pdc_video_ofs),
|
||||
(void *)saved_screen, (saved_lines * saved_cols * 2));
|
||||
# endif
|
||||
#endif
|
||||
@@ -138,11 +144,11 @@ int PDC_scr_open(int argc, char **argv)
|
||||
|
||||
PDC_get_cursor_pos(&SP->cursrow, &SP->curscol);
|
||||
|
||||
SP->direct_video = TRUE; /* Assume that we can */
|
||||
SP->video_seg = 0xb000; /* Base screen segment addr */
|
||||
SP->video_ofs = 0x0; /* Base screen segment ofs */
|
||||
pdc_direct_video = TRUE; /* Assume that we can */
|
||||
pdc_video_seg = 0xb000; /* Base screen segment addr */
|
||||
pdc_video_ofs = 0x0; /* Base screen segment ofs */
|
||||
|
||||
SP->adapter = PDC_query_adapter_type();
|
||||
pdc_adapter = PDC_query_adapter_type();
|
||||
SP->scrnmode = PDC_get_scrn_mode();
|
||||
|
||||
SP->font = PDC_get_font();
|
||||
@@ -157,7 +163,7 @@ int PDC_scr_open(int argc, char **argv)
|
||||
access. */
|
||||
|
||||
if (getenv("PDCURSES_BIOS") != NULL)
|
||||
SP->direct_video = FALSE;
|
||||
pdc_direct_video = FALSE;
|
||||
|
||||
/* This code for preserving the current screen. */
|
||||
|
||||
@@ -173,8 +179,8 @@ int PDC_scr_open(int argc, char **argv)
|
||||
return OK;
|
||||
}
|
||||
#ifdef __DJGPP__
|
||||
dosmemget ((unsigned long)_FAR_POINTER(SP->video_seg,
|
||||
SP->video_ofs), saved_lines * saved_cols * 2,
|
||||
dosmemget ((unsigned long)_FAR_POINTER(pdc_video_seg,
|
||||
pdc_video_ofs), saved_lines * saved_cols * 2,
|
||||
saved_screen);
|
||||
#else
|
||||
# if SMALL || MEDIUM
|
||||
@@ -184,11 +190,11 @@ int PDC_scr_open(int argc, char **argv)
|
||||
segread(&segregs);
|
||||
ds = segregs.ds;
|
||||
# endif
|
||||
movedata(SP->video_seg, SP->video_ofs, ds, (int)saved_screen,
|
||||
movedata(pdc_video_seg, pdc_video_ofs, ds, (int)saved_screen,
|
||||
(saved_lines * saved_cols * 2));
|
||||
# else
|
||||
memcpy((void *)saved_screen,
|
||||
(void *)_FAR_POINTER(SP->video_seg, SP->video_ofs),
|
||||
(void *)_FAR_POINTER(pdc_video_seg, pdc_video_ofs),
|
||||
(saved_lines * saved_cols * 2));
|
||||
# endif
|
||||
#endif
|
||||
@@ -230,7 +236,7 @@ int PDC_resize_screen(int nlines, int ncols)
|
||||
|
||||
SP->orig_cursor = 0x0607;
|
||||
|
||||
switch (SP->adapter)
|
||||
switch (pdc_adapter)
|
||||
{
|
||||
case _EGACOLOR:
|
||||
if (nlines >= 43)
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
#include "pdcdos.h"
|
||||
|
||||
RCSID("$Id: pdcsetsc.c,v 1.22 2006/07/23 23:42:23 wmcbrine Exp $");
|
||||
RCSID("$Id: pdcsetsc.c,v 1.23 2006/08/12 02:44:08 wmcbrine Exp $");
|
||||
|
||||
/*man-start**************************************************************
|
||||
|
||||
@@ -40,7 +40,7 @@ int PDC_set_80x25(void)
|
||||
{
|
||||
PDC_LOG(("PDC_set_80x25() - called\n"));
|
||||
|
||||
switch (SP->adapter)
|
||||
switch (pdc_adapter)
|
||||
{
|
||||
case _CGA:
|
||||
case _EGACOLOR:
|
||||
@@ -90,10 +90,10 @@ int PDC_set_font(int size)
|
||||
{
|
||||
PDC_LOG(("PDC_set_font() - called\n"));
|
||||
|
||||
if (SP->bogus_adapter)
|
||||
if (pdc_bogus_adapter)
|
||||
return ERR;
|
||||
|
||||
switch (SP->adapter)
|
||||
switch (pdc_adapter)
|
||||
{
|
||||
case _CGA:
|
||||
case _MDA:
|
||||
|
||||
Reference in New Issue
Block a user