From: Yaroslav Kibysh Date: Thu, 13 Jun 2019 19:26:42 +0000 (+0300) Subject: [FREELDR] Always change video mode back to text-mode before starting up ReactOS. X-Git-Tag: 0.4.14-dev~675 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=f37fb1f7f8950cdae899d86c401f3135374cd3b1 [FREELDR] Always change video mode back to text-mode before starting up ReactOS. CORE-16116 - This allows getting the /NOGUIBOOT mode working correctly, as the latter expects text-mode. Then, usetup (via BLUE driver) will change to a different text-mode, or, GUI boot will change (via BOOTVID) to VGA 640*480 16-color. - Always hide the VGA cursor. - Remove also the deprecated boolean "Setup" in the *PrepareForReactOS() functions. Co-authored-by: Hermès Bélusca-Maïto --- diff --git a/boot/freeldr/freeldr/arch/arm/macharm.c b/boot/freeldr/freeldr/arch/arm/macharm.c index 8d4465f8d79..d9daad3bf95 100644 --- a/boot/freeldr/freeldr/arch/arm/macharm.c +++ b/boot/freeldr/freeldr/arch/arm/macharm.c @@ -90,7 +90,7 @@ ArmInit(IN PARM_BOARD_CONFIGURATION_BLOCK BootContext) } VOID -ArmPrepareForReactOS(IN BOOLEAN Setup) +ArmPrepareForReactOS(VOID) { return; } diff --git a/boot/freeldr/freeldr/arch/i386/machpc.c b/boot/freeldr/freeldr/arch/i386/machpc.c index 527b944dee3..4e21727a19b 100644 --- a/boot/freeldr/freeldr/arch/i386/machpc.c +++ b/boot/freeldr/freeldr/arch/i386/machpc.c @@ -1391,10 +1391,10 @@ PcMachInit(const char *CmdLine) } VOID -PcPrepareForReactOS(IN BOOLEAN Setup) +PcPrepareForReactOS(VOID) { /* On PC, prepare video and turn off the floppy motor */ - PcVideoPrepareForReactOS(Setup); + PcVideoPrepareForReactOS(); DiskStopFloppyMotor(); } diff --git a/boot/freeldr/freeldr/arch/i386/machxbox.c b/boot/freeldr/freeldr/arch/i386/machxbox.c index 7dffa2baab6..c7873f0c0f3 100644 --- a/boot/freeldr/freeldr/arch/i386/machxbox.c +++ b/boot/freeldr/freeldr/arch/i386/machxbox.c @@ -211,10 +211,10 @@ XboxMachInit(const char *CmdLine) } VOID -XboxPrepareForReactOS(IN BOOLEAN Setup) +XboxPrepareForReactOS(VOID) { /* On XBOX, prepare video and turn off the floppy motor */ - XboxVideoPrepareForReactOS(Setup); + XboxVideoPrepareForReactOS(); DiskStopFloppyMotor(); } diff --git a/boot/freeldr/freeldr/arch/i386/pcvideo.c b/boot/freeldr/freeldr/arch/i386/pcvideo.c index 97327122ba8..6eb070fbb6c 100644 --- a/boot/freeldr/freeldr/arch/i386/pcvideo.c +++ b/boot/freeldr/freeldr/arch/i386/pcvideo.c @@ -1109,16 +1109,10 @@ PcVideoSync(VOID) } VOID -PcVideoPrepareForReactOS(IN BOOLEAN Setup) +PcVideoPrepareForReactOS(VOID) { - if (Setup) - { - PcVideoSetMode80x50_80x43(); - } - else - { - PcVideoSetBiosMode(0x12); - } + // PcVideoSetMode80x50_80x43(); + PcVideoSetMode80x25(); PcVideoHideShowTextCursor(FALSE); } diff --git a/boot/freeldr/freeldr/arch/i386/xboxvideo.c b/boot/freeldr/freeldr/arch/i386/xboxvideo.c index cbb8b92c55a..cb54dd2bf5f 100644 --- a/boot/freeldr/freeldr/arch/i386/xboxvideo.c +++ b/boot/freeldr/freeldr/arch/i386/xboxvideo.c @@ -240,9 +240,10 @@ XboxBeep(VOID) } VOID -XboxVideoPrepareForReactOS(IN BOOLEAN Setup) +XboxVideoPrepareForReactOS(VOID) { - XboxVideoClearScreenColor(MAKE_COLOR(0, 0, 0), TRUE); + XboxVideoClearScreenColor(MAKE_COLOR(0, 0, 0), TRUE); + XboxVideoHideShowTextCursor(FALSE); } /* EOF */ diff --git a/boot/freeldr/freeldr/include/arch/i386/machxbox.h b/boot/freeldr/freeldr/include/arch/i386/machxbox.h index c2a20056976..93bcb7835f1 100644 --- a/boot/freeldr/freeldr/include/arch/i386/machxbox.h +++ b/boot/freeldr/freeldr/include/arch/i386/machxbox.h @@ -43,8 +43,8 @@ BOOLEAN XboxVideoIsPaletteFixed(VOID); VOID XboxVideoSetPaletteColor(UCHAR Color, UCHAR Red, UCHAR Green, UCHAR Blue); VOID XboxVideoGetPaletteColor(UCHAR Color, UCHAR* Red, UCHAR* Green, UCHAR* Blue); VOID XboxVideoSync(VOID); -VOID XboxVideoPrepareForReactOS(IN BOOLEAN Setup); -VOID XboxPrepareForReactOS(IN BOOLEAN Setup); +VOID XboxVideoPrepareForReactOS(VOID); +VOID XboxPrepareForReactOS(VOID); VOID XboxMemInit(VOID); PVOID XboxMemReserveMemory(ULONG MbToReserve); diff --git a/boot/freeldr/freeldr/include/arch/pc/machpc.h b/boot/freeldr/freeldr/include/arch/pc/machpc.h index e834eb383a0..444db26fa9a 100644 --- a/boot/freeldr/freeldr/include/arch/pc/machpc.h +++ b/boot/freeldr/freeldr/include/arch/pc/machpc.h @@ -44,8 +44,8 @@ BOOLEAN PcVideoIsPaletteFixed(VOID); VOID PcVideoSetPaletteColor(UCHAR Color, UCHAR Red, UCHAR Green, UCHAR Blue); VOID PcVideoGetPaletteColor(UCHAR Color, UCHAR* Red, UCHAR* Green, UCHAR* Blue); VOID PcVideoSync(VOID); -VOID PcVideoPrepareForReactOS(IN BOOLEAN Setup); -VOID PcPrepareForReactOS(IN BOOLEAN Setup); +VOID PcVideoPrepareForReactOS(VOID); +VOID PcPrepareForReactOS(VOID); PFREELDR_MEMORY_DESCRIPTOR PcMemGetMemoryMap(ULONG *MemoryMapSize); diff --git a/boot/freeldr/freeldr/include/machine.h b/boot/freeldr/freeldr/include/machine.h index c104036a489..abf6a4d343c 100644 --- a/boot/freeldr/freeldr/include/machine.h +++ b/boot/freeldr/freeldr/include/machine.h @@ -55,7 +55,7 @@ typedef struct tagMACHVTBL VOID (*VideoGetPaletteColor)(UCHAR Color, UCHAR* Red, UCHAR* Green, UCHAR* Blue); VOID (*VideoSync)(VOID); VOID (*Beep)(VOID); - VOID (*PrepareForReactOS)(IN BOOLEAN Setup); + VOID (*PrepareForReactOS)(VOID); // NOTE: Not in the machine.c ... FREELDR_MEMORY_DESCRIPTOR* (*GetMemoryDescriptor)(FREELDR_MEMORY_DESCRIPTOR* Current); @@ -113,8 +113,8 @@ VOID MachInit(const char *CmdLine); MachVtbl.VideoSync() #define MachBeep() \ MachVtbl.Beep() -#define MachPrepareForReactOS(Setup) \ - MachVtbl.PrepareForReactOS(Setup) +#define MachPrepareForReactOS() \ + MachVtbl.PrepareForReactOS() #define MachDiskGetBootPath(Path, Size) \ MachVtbl.DiskGetBootPath((Path), (Size)) #define MachDiskReadLogicalSectors(Drive, Start, Count, Buf) \ diff --git a/boot/freeldr/freeldr/ntldr/winldr.c b/boot/freeldr/freeldr/ntldr/winldr.c index e563188bc31..1127f2e88c7 100644 --- a/boot/freeldr/freeldr/ntldr/winldr.c +++ b/boot/freeldr/freeldr/ntldr/winldr.c @@ -832,7 +832,7 @@ LoadAndBootWindowsCommon( LoaderBlockVA = PaToVa(LoaderBlock); /* "Stop all motors", change videomode */ - MachPrepareForReactOS(Setup); + MachPrepareForReactOS(); /* Cleanup ini file */ IniCleanup();