Author: hbelusca
Date: Sun Jun 14 15:35:38 2015
New Revision: 68134
URL: http://svn.reactos.org/svn/reactos?rev=68134&view=rev
Log:
[NTVDM]
- Stubplement the font generator functions for text-mode.
- Store in plane 2+ the font ONLY in text mode (guilty r68085). Fixes spurious graphics corruption in gfx modes.
CORE-9791
CORE-9794 #resolve #comment Should be fixed in r68134.
Modified:
trunk/reactos/subsystems/mvdm/ntvdm/bios/vidbios.c
trunk/reactos/subsystems/mvdm/ntvdm/hardware/video/vga.c
trunk/reactos/subsystems/mvdm/ntvdm/hardware/video/vga.h
Modified: trunk/reactos/subsystems/mvdm/ntvdm/bios/vidbios.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/bios…
==============================================================================
--- trunk/reactos/subsystems/mvdm/ntvdm/bios/vidbios.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/mvdm/ntvdm/bios/vidbios.c [iso-8859-1] Sun Jun 14 15:35:38 2015
@@ -2491,25 +2491,30 @@
switch (Bda->CharacterHeight)
{
/*
- * Write the default font to the VGA font plane
- * and update the BIOS INT 43h vector (far pointer
- * to the character range 00h-...)
+ * Write the default font to the VGA font plane for text-modes only.
+ * Update the BIOS INT 43h vector (far pointer to the character range 00h-...).
*/
case 8:
{
- VgaWriteFont(0, Font8x8, ARRAYSIZE(Font8x8) / VGA_FONT_CHARACTERS);
+ if (ModeNumber <= 3)
+ VgaWriteTextModeFont(0, Font8x8, ARRAYSIZE(Font8x8) / VGA_FONT_CHARACTERS);
+
((PULONG)BaseAddress)[0x43] = MAKELONG(FONT_8x8_OFFSET, VIDEO_BIOS_DATA_SEG);
break;
}
case 14:
{
- VgaWriteFont(0, Font8x14, ARRAYSIZE(Font8x14) / VGA_FONT_CHARACTERS);
+ if (ModeNumber <= 3)
+ VgaWriteTextModeFont(0, Font8x14, ARRAYSIZE(Font8x14) / VGA_FONT_CHARACTERS);
+
((PULONG)BaseAddress)[0x43] = MAKELONG(FONT_8x14_OFFSET, VIDEO_BIOS_DATA_SEG);
break;
}
case 16:
{
- VgaWriteFont(0, Font8x16, ARRAYSIZE(Font8x16) / VGA_FONT_CHARACTERS);
+ if (ModeNumber <= 3)
+ VgaWriteTextModeFont(0, Font8x16, ARRAYSIZE(Font8x16) / VGA_FONT_CHARACTERS);
+
((PULONG)BaseAddress)[0x43] = MAKELONG(FONT_8x16_OFFSET, VIDEO_BIOS_DATA_SEG);
break;
}
@@ -3371,6 +3376,58 @@
{
// FIXME: At the moment we support only graphics-mode functions!
+ /* Load User-specified Patterns (Character Set) for Text Mode */
+ case 0x00:
+ case 0x10: // FIXME: 0x1x performs a full mode reset
+ {
+ // FIXME: BL == ??
+
+ /* Write the default font to the VGA font plane */
+ // VgaWriteTextModeFont(0, Font8x8, ARRAYSIZE(Font8x8) / VGA_FONT_CHARACTERS);
+
+ UNIMPLEMENTED;
+ break;
+ }
+
+ /* Load ROM Monochrome 8x14 Patterns (Character Set) for Text Mode */
+ case 0x01:
+ case 0x11: // FIXME: 0x1x performs a full mode reset
+ {
+ // FIXME: BL == ??
+
+ /* Write the default font to the VGA font plane */
+ VgaWriteTextModeFont(0, Font8x14, ARRAYSIZE(Font8x14) / VGA_FONT_CHARACTERS);
+
+ UNIMPLEMENTED;
+ break;
+ }
+
+ /* Load ROM 8x8 Double-dot Patterns (Character Set) for Text Mode */
+ case 0x02:
+ case 0x12: // FIXME: 0x1x performs a full mode reset
+ {
+ // FIXME: BL == ??
+
+ /* Write the default font to the VGA font plane */
+ VgaWriteTextModeFont(0, Font8x8, ARRAYSIZE(Font8x8) / VGA_FONT_CHARACTERS);
+
+ UNIMPLEMENTED;
+ break;
+ }
+
+ /* Load ROM 8x16 Character Set for Text Mode */
+ case 0x04:
+ case 0x14: // FIXME: 0x1x performs a full mode reset
+ {
+ // FIXME: BL == ??
+
+ /* Write the default font to the VGA font plane */
+ VgaWriteTextModeFont(0, Font8x16, ARRAYSIZE(Font8x16) / VGA_FONT_CHARACTERS);
+
+ UNIMPLEMENTED;
+ break;
+ }
+
/* Set User 8x8 Graphics Chars (Setup INT 1Fh Vector) */
case 0x20:
{
@@ -3383,10 +3440,10 @@
/* Set User Graphics Characters */
case 0x21:
{
- // /* Write the font to the VGA font plane */
- // VgaWriteFont(0, Font8x8, ARRAYSIZE(Font8x8) / VGA_FONT_CHARACTERS);
-
- /* Update the BIOS INT 43h vector */
+ /*
+ * Update the BIOS INT 43h vector (far pointer
+ * to the character range 00h-...)
+ */
((PULONG)BaseAddress)[0x43] = MAKELONG(getBP(), getES());
/* Update BDA */
@@ -3407,11 +3464,9 @@
case 0x22:
{
/*
- * Write the default font to the VGA font plane
- * and update the BIOS INT 43h vector (far pointer
+ * Update the BIOS INT 43h vector (far pointer
* to the character range 00h-...)
*/
- VgaWriteFont(0, Font8x14, ARRAYSIZE(Font8x14) / VGA_FONT_CHARACTERS);
((PULONG)BaseAddress)[0x43] = MAKELONG(FONT_8x14_OFFSET, VIDEO_BIOS_DATA_SEG);
/* Update BDA */
@@ -3432,11 +3487,9 @@
case 0x23:
{
/*
- * Write the default font to the VGA font plane
- * and update the BIOS INT 43h vector (far pointer
+ * Update the BIOS INT 43h vector (far pointer
* to the character range 00h-...)
*/
- VgaWriteFont(0, Font8x8, ARRAYSIZE(Font8x8) / VGA_FONT_CHARACTERS);
((PULONG)BaseAddress)[0x43] = MAKELONG(FONT_8x8_OFFSET, VIDEO_BIOS_DATA_SEG);
/* Update BDA */
@@ -3457,11 +3510,9 @@
case 0x24:
{
/*
- * Write the default font to the VGA font plane
- * and update the BIOS INT 43h vector (far pointer
- * to the character range 00h-...)
+ * Update the BIOS INT 43h vector (far pointer
+ * to the character range 00h-...).
*/
- VgaWriteFont(0, Font8x16, ARRAYSIZE(Font8x16) / VGA_FONT_CHARACTERS);
((PULONG)BaseAddress)[0x43] = MAKELONG(FONT_8x16_OFFSET, VIDEO_BIOS_DATA_SEG);
/* Update BDA */
@@ -3715,7 +3766,6 @@
VOID VidBiosAttachToConsole(VOID)
{
- // VgaRefreshDisplay();
if (!Attached)
{
VgaAttachToConsole();
Modified: trunk/reactos/subsystems/mvdm/ntvdm/hardware/video/vga.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/hard…
==============================================================================
--- trunk/reactos/subsystems/mvdm/ntvdm/hardware/video/vga.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/mvdm/ntvdm/hardware/video/vga.c [iso-8859-1] Sun Jun 14 15:35:38 2015
@@ -22,7 +22,7 @@
/* PRIVATE VARIABLES **********************************************************/
static CONST DWORD MemoryBase[] = { 0xA0000, 0xA0000, 0xB0000, 0xB8000 };
-static CONST DWORD MemorySize[] = { 0x20000, 0x10000, 0x8000, 0x8000 };
+static CONST DWORD MemorySize[] = { 0x20000, 0x10000, 0x08000, 0x08000 };
/*
* Activate this line if you want to use the real
@@ -2086,7 +2086,7 @@
RtlZeroMemory(VgaMemory, sizeof(VgaMemory));
}
-VOID VgaWriteFont(UINT FontNumber, CONST UCHAR* FontData, UINT Height)
+VOID VgaWriteTextModeFont(UINT FontNumber, CONST UCHAR* FontData, UINT Height)
{
UINT i, j;
PUCHAR FontMemory = (PUCHAR)&VgaMemory[VGA_BANK_SIZE * VGA_FONT_BANK + (FontNumber * VGA_FONT_SIZE)];
Modified: trunk/reactos/subsystems/mvdm/ntvdm/hardware/video/vga.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/hard…
==============================================================================
--- trunk/reactos/subsystems/mvdm/ntvdm/hardware/video/vga.h [iso-8859-1] (original)
+++ trunk/reactos/subsystems/mvdm/ntvdm/hardware/video/vga.h [iso-8859-1] Sun Jun 14 15:35:38 2015
@@ -258,7 +258,7 @@
VOID VgaRefreshDisplay(VOID);
VOID FASTCALL VgaReadMemory(ULONG Address, PVOID Buffer, ULONG Size);
BOOLEAN FASTCALL VgaWriteMemory(ULONG Address, PVOID Buffer, ULONG Size);
-VOID VgaWriteFont(UINT FontNumber, CONST UCHAR *FontData, UINT Height);
+VOID VgaWriteTextModeFont(UINT FontNumber, CONST UCHAR *FontData, UINT Height);
VOID VgaClearMemory(VOID);
BOOLEAN VgaGetDoubleVisionState(PBOOLEAN Horizontal, PBOOLEAN Vertical);
Author: tfaber
Date: Sun Jun 14 11:19:02 2015
New Revision: 68133
URL: http://svn.reactos.org/svn/reactos?rev=68133&view=rev
Log:
[MC]
- Add missing status codes STATUS_SMARTCARD_CERT_EXPIRED through STATUS_NO_S4U_PROT_SUPPORT.
CORE-8373
Modified:
trunk/reactos/include/reactos/mc/ntstatus.mc
Modified: trunk/reactos/include/reactos/mc/ntstatus.mc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/mc/ntstatu…
==============================================================================
--- trunk/reactos/include/reactos/mc/ntstatus.mc [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/mc/ntstatus.mc [iso-8859-1] Sun Jun 14 11:19:02 2015
@@ -4251,6 +4251,113 @@
contact your system administrator.
.
+MessageId=0x38d
+Severity=Error
+Facility=System
+SymbolicName=STATUS_SMARTCARD_CERT_EXPIRED
+Language=English
+The smartcard certificate used for authentication has expired. Please
+contact your system administrator.
+
+.
+MessageId=0x38e
+Severity=Error
+Facility=System
+SymbolicName=STATUS_DRIVER_FAILED_PRIOR_UNLOAD
+Language=English
+The driver could not be installed because a previous version is still loaded.
+
+.
+MessageId=0x38f
+Severity=Error
+Facility=System
+SymbolicName=STATUS_SMARTCARD_SILENT_CONTEXT
+Language=English
+The smartcard operation requires user interaction but the context was acquired as silent.
+
+.
+MessageId=0x401
+Severity=Error
+Facility=System
+SymbolicName=STATUS_PER_USER_TRUST_QUOTA_EXCEEDED
+Language=English
+The quota for delegated trust creation was exceeded for the current user.
+
+.
+MessageId=0x402
+Severity=Error
+Facility=System
+SymbolicName=STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED
+Language=English
+The overall quota for delegated trust creation was exceeded.
+
+.
+MessageId=0x403
+Severity=Error
+Facility=System
+SymbolicName=STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED
+Language=English
+The quota for delegated trust deletion was exceeded for the current user.
+
+.
+MessageId=0x404
+Severity=Error
+Facility=System
+SymbolicName=STATUS_DS_NAME_NOT_UNIQUE
+Language=English
+The specified Directory Services name already exists.
+
+.
+MessageId=0x405
+Severity=Error
+Facility=System
+SymbolicName=STATUS_DS_DUPLICATE_ID_FOUND
+Language=English
+The requested object could not be retrieved because the specified identifier is not unique.
+
+.
+MessageId=0x406
+Severity=Error
+Facility=System
+SymbolicName=STATUS_DS_GROUP_CONVERSION_ERROR
+Language=English
+The Directory Services group cannot be converted.
+
+.
+MessageId=0x407
+Severity=Error
+Facility=System
+SymbolicName=STATUS_VOLSNAP_PREPARE_HIBERNATE
+Language=English
+{Volume Shadow Copy Service}
+The volume %hs is busy because it is being prepared for hibernation.
+
+.
+MessageId=0x408
+Severity=Error
+Facility=System
+SymbolicName=STATUS_USER2USER_REQUIRED
+Language=English
+The Kerberos User to User protocol is required.
+
+.
+MessageId=0x409
+Severity=Error
+Facility=System
+SymbolicName=STATUS_STACK_BUFFER_OVERRUN
+Language=English
+An out-of-bounds access to a stack buffer was detected. This indicates an
+error in the application that could be exploited by a malicious user.
+
+.
+MessageId=0x40a
+Severity=Error
+Facility=System
+SymbolicName=STATUS_NO_S4U_PROT_SUPPORT
+Language=English
+The domain controller does not support the Kerberos Service for User protocol.
+
+.
MessageId=0x9898
Severity=Error
Facility=System
@@ -4259,7 +4366,7 @@
WOW Assertion Error.
.
-MessageId=0xA000
+MessageId=0xa000
Severity=Error
Facility=System
SymbolicName=STATUS_INVALID_SIGNATURE
@@ -4267,7 +4374,7 @@
The cryptographic signature is invalid.
.
-MessageId=0xA001
+MessageId=0xa001
Severity=Error
Facility=System
SymbolicName=STATUS_HMAC_NOT_SUPPORTED
@@ -4275,7 +4382,7 @@
Keyed-hash message authentication code (HMAC) is not supported.
.
-MessageId=0xA010
+MessageId=0xa010
Severity=Error
Facility=System
SymbolicName=STATUS_IPSEC_QUEUE_OVERFLOW
@@ -4283,7 +4390,7 @@
An overflow of the IPSec queue was encountered.
.
-MessageId=0xA011
+MessageId=0xa011
Severity=Error
Facility=System
SymbolicName=STATUS_ND_QUEUE_OVERFLOW
@@ -4291,7 +4398,7 @@
An overflow of the Neighbor Discovery (NDP) queue was encountered.
.
-MessageId=0xA012
+MessageId=0xa012
Severity=Error
Facility=System
SymbolicName=STATUS_HOPLIMIT_EXCEEDED
@@ -4299,7 +4406,7 @@
An ICMP "Time Exceeded" error message was received.
.
-MessageId=0xA013
+MessageId=0xa013
Severity=Error
Facility=System
SymbolicName=STATUS_PROTOCOL_NOT_SUPPORTED