mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 18:15:11 +00:00
Added emergency console dummy page.
Removed unused code. svn path=/trunk/; revision=4649
This commit is contained in:
parent
4d7b93456f
commit
d13fee86d3
1 changed files with 162 additions and 123 deletions
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* ReactOS kernel
|
* ReactOS kernel
|
||||||
* Copyright (C) 2002 ReactOS Team
|
* Copyright (C) 2002, 2003 ReactOS Team
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -64,6 +64,8 @@ typedef enum _PAGE_NUMBER
|
||||||
|
|
||||||
REPAIR_INTRO_PAGE,
|
REPAIR_INTRO_PAGE,
|
||||||
|
|
||||||
|
EMERGENCY_INTRO_PAGE,
|
||||||
|
|
||||||
SUCCESS_PAGE,
|
SUCCESS_PAGE,
|
||||||
QUIT_PAGE,
|
QUIT_PAGE,
|
||||||
REBOOT_PAGE, /* virtual page */
|
REBOOT_PAGE, /* virtual page */
|
||||||
|
@ -391,12 +393,10 @@ StartPage(PINPUT_RECORD Ir)
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
WCHAR FileNameBuffer[MAX_PATH];
|
WCHAR FileNameBuffer[MAX_PATH];
|
||||||
UNICODE_STRING FileName;
|
UNICODE_STRING FileName;
|
||||||
|
|
||||||
INFCONTEXT Context;
|
INFCONTEXT Context;
|
||||||
PWCHAR Value;
|
PWCHAR Value;
|
||||||
ULONG ErrorLine;
|
ULONG ErrorLine;
|
||||||
|
|
||||||
|
|
||||||
SetStatusText(" Please wait...");
|
SetStatusText(" Please wait...");
|
||||||
|
|
||||||
Status = GetSourcePaths(&SourcePath,
|
Status = GetSourcePaths(&SourcePath,
|
||||||
|
@ -404,13 +404,25 @@ StartPage(PINPUT_RECORD Ir)
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
PrintTextXY(6, 15, "GetSourcePath() failed (Status 0x%08lx)", Status);
|
PrintTextXY(6, 15, "GetSourcePath() failed (Status 0x%08lx)", Status);
|
||||||
|
PopupError("Setup could not find its source drive.\n",
|
||||||
|
"ENTER = Reboot computer");
|
||||||
|
while(TRUE)
|
||||||
|
{
|
||||||
|
ConInKey(Ir);
|
||||||
|
|
||||||
|
if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D) /* ENTER */
|
||||||
|
{
|
||||||
|
return(QUIT_PAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
#if 0
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
PrintTextXY(6, 15, "SourcePath: '%wZ'", &SourcePath);
|
PrintTextXY(6, 15, "SourcePath: '%wZ'", &SourcePath);
|
||||||
PrintTextXY(6, 16, "SourceRootPath: '%wZ'", &SourceRootPath);
|
PrintTextXY(6, 16, "SourceRootPath: '%wZ'", &SourceRootPath);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Load txtsetup.sif from install media. */
|
/* Load txtsetup.sif from install media. */
|
||||||
wcscpy(FileNameBuffer, SourceRootPath.Buffer);
|
wcscpy(FileNameBuffer, SourceRootPath.Buffer);
|
||||||
|
@ -493,6 +505,91 @@ StartPage(PINPUT_RECORD Ir)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* First setup page
|
||||||
|
* RETURNS
|
||||||
|
* Next page number.
|
||||||
|
*/
|
||||||
|
static PAGE_NUMBER
|
||||||
|
IntroPage(PINPUT_RECORD Ir)
|
||||||
|
{
|
||||||
|
SetHighlightedTextXY(6, 8, "Welcome to ReactOS Setup");
|
||||||
|
|
||||||
|
SetTextXY(6, 11, "This part of the setup copies the ReactOS Operating System to your");
|
||||||
|
SetTextXY(6, 12, "computer and prepares the second part of the setup.");
|
||||||
|
|
||||||
|
SetTextXY(8, 15, "\xfa Press ENTER to install ReactOS.");
|
||||||
|
|
||||||
|
SetTextXY(8, 17, "\xfa Press E to start the emergency console.");
|
||||||
|
|
||||||
|
SetTextXY(8, 19, "\xfa Press R to repair ReactOS.");
|
||||||
|
|
||||||
|
SetTextXY(8, 21, "\xfa Press F3 to quit without installing ReactOS.");
|
||||||
|
|
||||||
|
|
||||||
|
SetStatusText(" ENTER = Continue F3 = Quit");
|
||||||
|
|
||||||
|
while(TRUE)
|
||||||
|
{
|
||||||
|
ConInKey(Ir);
|
||||||
|
|
||||||
|
if ((Ir->Event.KeyEvent.uChar.AsciiChar == 0x00) &&
|
||||||
|
(Ir->Event.KeyEvent.wVirtualKeyCode == VK_F3)) /* F3 */
|
||||||
|
{
|
||||||
|
if (ConfirmQuit(Ir) == TRUE)
|
||||||
|
return(QUIT_PAGE);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D) /* ENTER */
|
||||||
|
{
|
||||||
|
return(INSTALL_INTRO_PAGE);
|
||||||
|
}
|
||||||
|
else if (toupper(Ir->Event.KeyEvent.uChar.AsciiChar) == 'E') /* E */
|
||||||
|
{
|
||||||
|
return(EMERGENCY_INTRO_PAGE);
|
||||||
|
}
|
||||||
|
else if (toupper(Ir->Event.KeyEvent.uChar.AsciiChar) == 'R') /* R */
|
||||||
|
{
|
||||||
|
return(REPAIR_INTRO_PAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return(INTRO_PAGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static PAGE_NUMBER
|
||||||
|
EmergencyIntroPage(PINPUT_RECORD Ir)
|
||||||
|
{
|
||||||
|
SetTextXY(6, 8, "ReactOS Setup is in an early development phase. It does not yet");
|
||||||
|
SetTextXY(6, 9, "support all the functions of a fully usable setup application.");
|
||||||
|
|
||||||
|
SetTextXY(6, 12, "The emergency console is not implemented yet.");
|
||||||
|
|
||||||
|
SetTextXY(8, 15, "\xfa Press ESC to return to the main page.");
|
||||||
|
|
||||||
|
SetTextXY(8, 17, "\xfa Press ENTER to reboot your computer.");
|
||||||
|
|
||||||
|
SetStatusText(" ESC = Main page ENTER = Reboot");
|
||||||
|
|
||||||
|
while(TRUE)
|
||||||
|
{
|
||||||
|
ConInKey(Ir);
|
||||||
|
|
||||||
|
if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D) /* ENTER */
|
||||||
|
{
|
||||||
|
return(REBOOT_PAGE);
|
||||||
|
}
|
||||||
|
else if ((Ir->Event.KeyEvent.uChar.AsciiChar == 0x00) &&
|
||||||
|
(Ir->Event.KeyEvent.wVirtualKeyCode == VK_ESCAPE)) /* ESC */
|
||||||
|
{
|
||||||
|
return(INTRO_PAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return(REPAIR_INTRO_PAGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static PAGE_NUMBER
|
static PAGE_NUMBER
|
||||||
RepairIntroPage(PINPUT_RECORD Ir)
|
RepairIntroPage(PINPUT_RECORD Ir)
|
||||||
|
@ -527,62 +624,6 @@ RepairIntroPage(PINPUT_RECORD Ir)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* First setup page
|
|
||||||
* RETURNS
|
|
||||||
* TRUE: setup/repair completed successfully
|
|
||||||
* FALSE: setup/repair terminated by user
|
|
||||||
*/
|
|
||||||
static PAGE_NUMBER
|
|
||||||
IntroPage(PINPUT_RECORD Ir)
|
|
||||||
{
|
|
||||||
SetHighlightedTextXY(6, 8, "Welcome to ReactOS Setup");
|
|
||||||
|
|
||||||
SetTextXY(6, 11, "This part of the setup copies the ReactOS Operating System to your");
|
|
||||||
SetTextXY(6, 12, "computer and prepares the second part of the setup.");
|
|
||||||
|
|
||||||
SetTextXY(8, 15, "\xfa Press ENTER to install ReactOS.");
|
|
||||||
|
|
||||||
SetTextXY(8, 17, "\xfa Press E to start the emergency repair console.");
|
|
||||||
|
|
||||||
SetTextXY(8, 19, "\xfa Press R to repair ReactOS.");
|
|
||||||
|
|
||||||
SetTextXY(8, 21, "\xfa Press F3 to quit without installing ReactOS.");
|
|
||||||
|
|
||||||
|
|
||||||
SetStatusText(" ENTER = Continue F3 = Quit");
|
|
||||||
|
|
||||||
while(TRUE)
|
|
||||||
{
|
|
||||||
ConInKey(Ir);
|
|
||||||
|
|
||||||
if ((Ir->Event.KeyEvent.uChar.AsciiChar == 0x00) &&
|
|
||||||
(Ir->Event.KeyEvent.wVirtualKeyCode == VK_F3)) /* F3 */
|
|
||||||
{
|
|
||||||
if (ConfirmQuit(Ir) == TRUE)
|
|
||||||
return(QUIT_PAGE);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D) /* ENTER */
|
|
||||||
{
|
|
||||||
return(INSTALL_INTRO_PAGE);
|
|
||||||
}
|
|
||||||
#if 0
|
|
||||||
else if (toupper(Ir->Event.KeyEvent.uChar.AsciiChar) == 'E') /* E */
|
|
||||||
{
|
|
||||||
return(RepairConsole());
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
else if (toupper(Ir->Event.KeyEvent.uChar.AsciiChar) == 'R') /* R */
|
|
||||||
{
|
|
||||||
return(REPAIR_INTRO_PAGE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return(INTRO_PAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static PAGE_NUMBER
|
static PAGE_NUMBER
|
||||||
InstallIntroPage(PINPUT_RECORD Ir)
|
InstallIntroPage(PINPUT_RECORD Ir)
|
||||||
{
|
{
|
||||||
|
@ -728,62 +769,62 @@ SelectPartitionPage(PINPUT_RECORD Ir)
|
||||||
{
|
{
|
||||||
PartDataValid = GetSelectedPartition(PartList,
|
PartDataValid = GetSelectedPartition(PartList,
|
||||||
&PartData);
|
&PartData);
|
||||||
if (PartDataValid)
|
if (PartDataValid)
|
||||||
{
|
{
|
||||||
ActivePartitionValid = GetActiveBootPartition(PartList,
|
ActivePartitionValid = GetActiveBootPartition(PartList,
|
||||||
&ActivePartition);
|
&ActivePartition);
|
||||||
|
|
||||||
RtlFreeUnicodeString(&DestinationRootPath);
|
RtlFreeUnicodeString(&DestinationRootPath);
|
||||||
swprintf(PathBuffer,
|
swprintf(PathBuffer,
|
||||||
L"\\Device\\Harddisk%lu\\Partition%lu",
|
L"\\Device\\Harddisk%lu\\Partition%lu",
|
||||||
PartData.DiskNumber,
|
PartData.DiskNumber,
|
||||||
PartData.PartNumber);
|
PartData.PartNumber);
|
||||||
RtlCreateUnicodeString(&DestinationRootPath,
|
RtlCreateUnicodeString(&DestinationRootPath,
|
||||||
PathBuffer);
|
PathBuffer);
|
||||||
|
|
||||||
RtlFreeUnicodeString(&SystemRootPath);
|
RtlFreeUnicodeString(&SystemRootPath);
|
||||||
|
|
||||||
if (ActivePartitionValid)
|
if (ActivePartitionValid)
|
||||||
{
|
{
|
||||||
swprintf(PathBuffer,
|
swprintf(PathBuffer,
|
||||||
L"\\Device\\Harddisk%lu\\Partition%lu",
|
L"\\Device\\Harddisk%lu\\Partition%lu",
|
||||||
ActivePartition.DiskNumber,
|
ActivePartition.DiskNumber,
|
||||||
ActivePartition.PartNumber);
|
ActivePartition.PartNumber);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* We mark the selected partition as bootable */
|
/* We mark the selected partition as bootable */
|
||||||
swprintf(PathBuffer,
|
swprintf(PathBuffer,
|
||||||
L"\\Device\\Harddisk%lu\\Partition%lu",
|
L"\\Device\\Harddisk%lu\\Partition%lu",
|
||||||
PartData.DiskNumber,
|
PartData.DiskNumber,
|
||||||
PartData.PartNumber);
|
PartData.PartNumber);
|
||||||
}
|
}
|
||||||
RtlCreateUnicodeString(&SystemRootPath,
|
RtlCreateUnicodeString(&SystemRootPath,
|
||||||
PathBuffer);
|
PathBuffer);
|
||||||
|
|
||||||
return(SELECT_FILE_SYSTEM_PAGE);
|
return(SELECT_FILE_SYSTEM_PAGE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* FIXME: show an error dialog */
|
/* FIXME: show an error dialog */
|
||||||
return(SELECT_PARTITION_PAGE);
|
return(SELECT_PARTITION_PAGE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (Ir->Event.KeyEvent.wVirtualKeyCode == VK_C) /* C */
|
else if (Ir->Event.KeyEvent.wVirtualKeyCode == VK_C) /* C */
|
||||||
{
|
{
|
||||||
#ifdef ENABLE_FORMAT
|
#ifdef ENABLE_FORMAT
|
||||||
/* Don't destroy the parition list here */;
|
/* Don't destroy the parition list here */;
|
||||||
return(CREATE_PARTITION_PAGE);
|
return(CREATE_PARTITION_PAGE);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else if (Ir->Event.KeyEvent.wVirtualKeyCode == VK_D) /* D */
|
else if (Ir->Event.KeyEvent.wVirtualKeyCode == VK_D) /* D */
|
||||||
{
|
{
|
||||||
#ifdef ENABLE_FORMAT
|
#ifdef ENABLE_FORMAT
|
||||||
if (ConfirmDeletePartition(Ir) == TRUE)
|
if (ConfirmDeletePartition(Ir) == TRUE)
|
||||||
{
|
{
|
||||||
(BOOLEAN) DeleteSelectedPartition(CurrentPartitionList);
|
(BOOLEAN) DeleteSelectedPartition(CurrentPartitionList);
|
||||||
}
|
}
|
||||||
return(SELECT_PARTITION_PAGE);
|
return(SELECT_PARTITION_PAGE);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1343,18 +1384,19 @@ SelectFileSystemPage(PINPUT_RECORD Ir)
|
||||||
}
|
}
|
||||||
else if (Ir->Event.KeyEvent.wVirtualKeyCode == VK_RETURN) /* ENTER */
|
else if (Ir->Event.KeyEvent.wVirtualKeyCode == VK_RETURN) /* ENTER */
|
||||||
{
|
{
|
||||||
if (FileSystemList->CurrentFileSystem == FsKeep)
|
if (FileSystemList->CurrentFileSystem == FsKeep)
|
||||||
{
|
{
|
||||||
return(CHECK_FILE_SYSTEM_PAGE);
|
return(CHECK_FILE_SYSTEM_PAGE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return(FORMAT_PARTITION_PAGE);
|
return(FORMAT_PARTITION_PAGE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static ULONG
|
static ULONG
|
||||||
FormatPartitionPage(PINPUT_RECORD Ir)
|
FormatPartitionPage(PINPUT_RECORD Ir)
|
||||||
{
|
{
|
||||||
|
@ -1605,19 +1647,10 @@ PrepareCopyPage(PINPUT_RECORD Ir)
|
||||||
SetTextXY(6, 8, "Setup prepares your computer for copying the ReactOS files. ");
|
SetTextXY(6, 8, "Setup prepares your computer for copying the ReactOS files. ");
|
||||||
|
|
||||||
|
|
||||||
// SetTextXY(8, 12, "Build file copy list");
|
|
||||||
|
|
||||||
// SetTextXY(8, 14, "Create directories");
|
|
||||||
|
|
||||||
// SetStatusText(" Please wait...");
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Build the file copy list
|
* Build the file copy list
|
||||||
*/
|
*/
|
||||||
SetStatusText(" Building the file copy list...");
|
SetStatusText(" Building the file copy list...");
|
||||||
// SetInvertedTextXY(8, 12, "Build file copy list");
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Search for the 'SourceFiles' section */
|
/* Search for the 'SourceFiles' section */
|
||||||
if (!InfFindFirstLine (SetupInf, L"SourceFiles", NULL, &FilesContext))
|
if (!InfFindFirstLine (SetupInf, L"SourceFiles", NULL, &FilesContext))
|
||||||
|
@ -2830,6 +2863,12 @@ NtProcessStartup(PPEB Peb)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
/* Emergency pages */
|
||||||
|
case EMERGENCY_INTRO_PAGE:
|
||||||
|
Page = EmergencyIntroPage(&Ir);
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
case SUCCESS_PAGE:
|
case SUCCESS_PAGE:
|
||||||
Page = SuccessPage(&Ir);
|
Page = SuccessPage(&Ir);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue