mirror of
https://github.com/reactos/reactos.git
synced 2024-07-29 23:58:44 +00:00
- Protected the access to the crtc registers (cursor position) with cli/sti.
svn path=/trunk/; revision=4279
This commit is contained in:
parent
b7c7511503
commit
b98522fd18
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: blue.c,v 1.35 2002/09/08 10:22:04 chorns Exp $
|
/* $Id: blue.c,v 1.36 2003/03/09 21:43:37 hbirr Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -175,10 +175,12 @@ ScrWrite(PDEVICE_OBJECT DeviceObject,
|
||||||
rows = DeviceExtension->Rows;
|
rows = DeviceExtension->Rows;
|
||||||
columns = DeviceExtension->Columns;
|
columns = DeviceExtension->Columns;
|
||||||
|
|
||||||
|
__asm__ ("cli\n\t");
|
||||||
WRITE_PORT_UCHAR (CRTC_COMMAND, CRTC_CURSORPOSHI);
|
WRITE_PORT_UCHAR (CRTC_COMMAND, CRTC_CURSORPOSHI);
|
||||||
offset = READ_PORT_UCHAR (CRTC_DATA)<<8;
|
offset = READ_PORT_UCHAR (CRTC_DATA)<<8;
|
||||||
WRITE_PORT_UCHAR (CRTC_COMMAND, CRTC_CURSORPOSLO);
|
WRITE_PORT_UCHAR (CRTC_COMMAND, CRTC_CURSORPOSLO);
|
||||||
offset += READ_PORT_UCHAR (CRTC_DATA);
|
offset += READ_PORT_UCHAR (CRTC_DATA);
|
||||||
|
__asm__ ("sti\n\t");
|
||||||
|
|
||||||
cursory = offset / columns;
|
cursory = offset / columns;
|
||||||
cursorx = offset % columns;
|
cursorx = offset % columns;
|
||||||
|
@ -268,11 +270,13 @@ ScrWrite(PDEVICE_OBJECT DeviceObject,
|
||||||
/* Set the cursor position */
|
/* Set the cursor position */
|
||||||
offset = (cursory * columns) + cursorx;
|
offset = (cursory * columns) + cursorx;
|
||||||
}
|
}
|
||||||
|
__asm__ ("cli\n\t");
|
||||||
WRITE_PORT_UCHAR (CRTC_COMMAND, CRTC_CURSORPOSLO);
|
WRITE_PORT_UCHAR (CRTC_COMMAND, CRTC_CURSORPOSLO);
|
||||||
WRITE_PORT_UCHAR (CRTC_DATA, offset);
|
WRITE_PORT_UCHAR (CRTC_DATA, offset);
|
||||||
WRITE_PORT_UCHAR (CRTC_COMMAND, CRTC_CURSORPOSHI);
|
WRITE_PORT_UCHAR (CRTC_COMMAND, CRTC_CURSORPOSHI);
|
||||||
offset >>= 8;
|
offset >>= 8;
|
||||||
WRITE_PORT_UCHAR (CRTC_DATA, offset);
|
WRITE_PORT_UCHAR (CRTC_DATA, offset);
|
||||||
|
__asm__ ("sti\n\t");
|
||||||
|
|
||||||
Status = STATUS_SUCCESS;
|
Status = STATUS_SUCCESS;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue