blob: 290db5a3c71ee4347e87cf7d3bc125ef8175bdd9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
/* Public Domain Curses */
#include "pdcdos.h"
RCSID("$Id: pdcgetsc.c,v 1.42 2008/07/13 16:08:17 wmcbrine Exp $")
#include <stdlib.h>
/* return width of screen/viewport */
int PDC_get_columns(void)
{
PDCREGS regs;
int cols;
const char *env_cols;
PDC_LOG(("PDC_get_columns() - called\n"));
/* use the value from COLS environment variable, if set. MH 10-Jun-92 */
/* and use the minimum of COLS and return from int10h MH 18-Jun-92 */
regs.h.ah = 0x0f;
PDCINT(0x10, regs);
cols = (int)regs.h.ah;
env_cols = getenv("COLS");
if (env_cols)
cols = min(atoi(env_cols), cols);
PDC_LOG(("PDC_get_columns() - returned: cols %d\n", cols));
return cols;
}
/* get the cursor size/shape */
int PDC_get_cursor_mode(void)
{
PDC_LOG(("PDC_get_cursor_mode() - called\n"));
return getdosmemword(0x460);
}
/* return number of screen rows */
int PDC_get_rows(void)
{
const char *env_rows;
int rows;
PDC_LOG(("PDC_get_rows() - called\n"));
/* use the value from LINES environment variable, if set. MH 10-Jun-92 */
/* and use the minimum of LINES and *ROWS. MH 18-Jun-92 */
rows = getdosmembyte(0x484) + 1;
env_rows = getenv("LINES");
if (env_rows)
rows = min(atoi(env_rows), rows);
if (rows == 1 && pdc_adapter == _MDS_GENIUS)
rows = 66;
if (rows == 1 && pdc_adapter == _MDA)
rows = 25;
if (rows == 1)
{
rows = 25;
pdc_direct_video = FALSE;
}
switch (pdc_adapter)
{
case _EGACOLOR:
case _EGAMONO:
switch (rows)
{
case 25:
case 43:
break;
default:
rows = 25;
}
break;
case _VGACOLOR:
case _VGAMONO:
break;
default:
rows = 25;
break;
}
PDC_LOG(("PDC_get_rows() - returned: rows %d\n", rows));
return rows;
}
|