Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
db31151b
Commit
db31151b
authored
Jul 01, 2002
by
Andreas Mohr
Committed by
Alexandre Julliard
Jul 01, 2002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implemented set cursor shape functionality.
parent
e921e466
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
22 additions
and
5 deletions
+22
-5
int10.c
dlls/winedos/int10.c
+5
-4
vga.c
dlls/winedos/vga.c
+15
-0
vga.h
dlls/winedos/vga.h
+1
-0
miscemu.h
include/miscemu.h
+1
-1
No files found.
dlls/winedos/int10.c
View file @
db31151b
...
@@ -36,11 +36,10 @@ static void scroll_window(int direction, char lines, char row1,
...
@@ -36,11 +36,10 @@ static void scroll_window(int direction, char lines, char row1,
#define SCROLL_UP 1
#define SCROLL_UP 1
#define SCROLL_DOWN 2
#define SCROLL_DOWN 2
/* FIXME: is row or column first? */
static
void
BIOS_GetCursorPos
(
BIOSDATA
*
data
,
unsigned
page
,
unsigned
*
X
,
unsigned
*
Y
)
static
void
BIOS_GetCursorPos
(
BIOSDATA
*
data
,
unsigned
page
,
unsigned
*
X
,
unsigned
*
Y
)
{
{
*
X
=
data
->
VideoCursorPos
[
page
*
2
];
*
X
=
data
->
VideoCursorPos
[
page
*
2
];
/* column */
*
Y
=
data
->
VideoCursorPos
[
page
*
2
+
1
];
*
Y
=
data
->
VideoCursorPos
[
page
*
2
+
1
];
/* row */
}
}
static
void
BIOS_SetCursorPos
(
BIOSDATA
*
data
,
unsigned
page
,
unsigned
X
,
unsigned
Y
)
static
void
BIOS_SetCursorPos
(
BIOSDATA
*
data
,
unsigned
page
,
unsigned
X
,
unsigned
Y
)
...
@@ -365,7 +364,9 @@ void WINAPI DOSVM_Int10Handler( CONTEXT86 *context )
...
@@ -365,7 +364,9 @@ void WINAPI DOSVM_Int10Handler( CONTEXT86 *context )
break
;
break
;
case
0x01
:
/* SET CURSOR SHAPE */
case
0x01
:
/* SET CURSOR SHAPE */
FIXME
(
"Set Cursor Shape - Not Supported
\n
"
);
TRACE
(
"Set Cursor Shape start %d end %d options %d
\n
"
,
CH_reg
(
context
)
&
0x1f
,
CL_reg
(
context
)
&
0x1f
,
CH_reg
(
context
)
&
0xe0
);
data
->
VideoCursorType
=
CX_reg
(
context
);
/* direct copy */
VGA_SetCursorShape
(
CH_reg
(
context
),
CL_reg
(
context
));
break
;
break
;
case
0x02
:
/* SET CURSOR POSITION */
case
0x02
:
/* SET CURSOR POSITION */
...
...
dlls/winedos/vga.c
View file @
db31151b
...
@@ -473,6 +473,21 @@ void VGA_GetAlphaMode(unsigned*Xres,unsigned*Yres)
...
@@ -473,6 +473,21 @@ void VGA_GetAlphaMode(unsigned*Xres,unsigned*Yres)
if
(
Yres
)
*
Yres
=
info
.
dwSize
.
Y
;
if
(
Yres
)
*
Yres
=
info
.
dwSize
.
Y
;
}
}
void
VGA_SetCursorShape
(
unsigned
char
start_options
,
unsigned
char
end
)
{
CONSOLE_CURSOR_INFO
cci
;
/* standard cursor settings:
* 0x0607 == CGA, 0x0b0c == monochrome, 0x0d0e == EGA/VGA */
/* calculate percentage from bottom - assuming VGA (bottom 0x0e) */
cci
.
dwSize
=
((
end
&
0x1f
)
-
(
start_options
&
0x1f
))
/
0x0e
*
100
;
if
(
!
cci
.
dwSize
)
cci
.
dwSize
++
;
/* NULL cursor would make SCCI() fail ! */
cci
.
bVisible
=
((
start_options
&
0x60
)
!=
0x20
);
/* invisible ? */
SetConsoleCursorInfo
(
VGA_AlphaConsole
(),
&
cci
);
}
void
VGA_SetCursorPos
(
unsigned
X
,
unsigned
Y
)
void
VGA_SetCursorPos
(
unsigned
X
,
unsigned
Y
)
{
{
COORD
pos
;
COORD
pos
;
...
...
dlls/winedos/vga.h
View file @
db31151b
...
@@ -40,6 +40,7 @@ void VGA_Unlock(void);
...
@@ -40,6 +40,7 @@ void VGA_Unlock(void);
/* text mode */
/* text mode */
int
VGA_SetAlphaMode
(
unsigned
Xres
,
unsigned
Yres
);
int
VGA_SetAlphaMode
(
unsigned
Xres
,
unsigned
Yres
);
void
VGA_GetAlphaMode
(
unsigned
*
Xres
,
unsigned
*
Yres
);
void
VGA_GetAlphaMode
(
unsigned
*
Xres
,
unsigned
*
Yres
);
void
VGA_SetCursorShape
(
unsigned
char
start_options
,
unsigned
char
end
);
void
VGA_SetCursorPos
(
unsigned
X
,
unsigned
Y
);
void
VGA_SetCursorPos
(
unsigned
X
,
unsigned
Y
);
void
VGA_GetCursorPos
(
unsigned
*
X
,
unsigned
*
Y
);
void
VGA_GetCursorPos
(
unsigned
*
X
,
unsigned
*
Y
);
void
VGA_WriteChars
(
unsigned
X
,
unsigned
Y
,
unsigned
ch
,
int
attr
,
int
count
);
void
VGA_WriteChars
(
unsigned
X
,
unsigned
Y
,
unsigned
ch
,
int
attr
,
int
count
);
...
...
include/miscemu.h
View file @
db31151b
...
@@ -60,7 +60,7 @@ typedef struct
...
@@ -60,7 +60,7 @@ typedef struct
WORD
VideoColumns
;
/* 4a: Number of columns */
WORD
VideoColumns
;
/* 4a: Number of columns */
WORD
VideoPageSize
;
/* 4c: Video page size in bytes */
WORD
VideoPageSize
;
/* 4c: Video page size in bytes */
WORD
VideoPageStartAddr
;
/* 4e: Video page start address */
WORD
VideoPageStartAddr
;
/* 4e: Video page start address */
BYTE
VideoCursorPos
[
16
];
/* 50: Cursor position for 8 pages */
BYTE
VideoCursorPos
[
16
];
/* 50: Cursor position for 8 pages
, column/row order
*/
WORD
VideoCursorType
;
/* 60: Video cursor type */
WORD
VideoCursorType
;
/* 60: Video cursor type */
BYTE
VideoCurPage
;
/* 62: Video current page */
BYTE
VideoCurPage
;
/* 62: Video current page */
WORD
VideoCtrlAddr
WINE_PACKED
;
/* 63: Video controller address */
WORD
VideoCtrlAddr
WINE_PACKED
;
/* 63: Video controller address */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment