More stuff that doesn't need to be in SCREEN.

This commit is contained in:
William McBrine
2006-08-12 02:44:08 +00:00
parent 491cb52dcc
commit 533e8712db
6 changed files with 71 additions and 63 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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)))

View File

@@ -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, &regs, &regs, &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);
}

View File

@@ -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)

View File

@@ -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: