This commit is contained in:
SergeySlice 2021-09-27 22:41:04 +03:00
commit 38f629e980
11 changed files with 179 additions and 127 deletions

View File

@ -121,10 +121,10 @@ static int MapKeyData2AppleKey(EFI_KEY_DATA* KeyData, APPLE_KEY_CODE* pKey, UINT
*pKey = 0x7051;
return 1;
case 0x03: // left arrow
*pKey = 0x7050;
*pKey = 0x704F;
return 1;
case 0x04: // right arrow
*pKey = 0x704F;
*pKey = 0x7050;
return 1;
}
return 0;

View File

@ -1,2 +1,4 @@
/Gcc92-Debug/
/Clang-Debug/
/Clang-Debug/
/build/
/DerivedData/

View File

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1120"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9AB309452694BEE700428609"
BuildableName = "libCloverX64 SecureBoot.a"
BlueprintName = "CloverX64 SecureBoot"
ReferencedContainer = "container:CloverX64.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9AB309452694BEE700428609"
BuildableName = "libCloverX64 SecureBoot.a"
BlueprintName = "CloverX64 SecureBoot"
ReferencedContainer = "container:CloverX64.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -1985,7 +1985,7 @@ EFI_STATUS PatchACPI(IN REFIT_VOLUME *Volume, const MacOsVersion& OSVersion)
//Slice: the idea was from past
// first priority DSDT.aml from the root of booted volume. It allows to keep different DSDT for different systems
// second priority is DSDT from OEM folder
// third priority is /EFI/CLOVER/ACPI/patched/DSDT*.aml choosen from GUI.
// third priority is {Clover folder}/ACPI/patched/DSDT*.aml choosen from GUI.
XStringW PathDsdt = SWPrintf("\\%ls", gSettings.ACPI.DSDT.DsdtName.wc_str());
if (EFI_ERROR(Status) && FileExists(Volume->RootDir, PathDsdt)) {

View File

@ -89,10 +89,8 @@ EFI_EDID_DISCOVERED_PROTOCOL *EdidDiscovered;
XStringWArray ThemeNameArray;
UINTN ConfigsNum;
CHAR16 *ConfigsList[20];
UINTN DsdtsNum = 0;
CHAR16 *DsdtsList[20];
XStringWArray ConfigsList;
XStringWArray DsdtsList;
XObjArray<HDA_OUTPUTS> AudioList;
// firmware

View File

@ -2748,10 +2748,8 @@ public:
extern XObjArray<HDA_OUTPUTS> AudioList;
extern XStringWArray ThemeNameArray;
extern CHAR16* ConfigsList[20];
extern CHAR16* DsdtsList[20];
extern UINTN DsdtsNum;
extern UINTN ConfigsNum;
extern XStringWArray ConfigsList;
extern XStringWArray DsdtsList;
//extern INTN ScrollButtonsHeight;
//extern INTN ScrollBarDecorationsHeight;
//extern INTN ScrollScrollDecorationsHeight;

View File

@ -155,6 +155,8 @@ EFI_STATUS Self::_initialize()
if ( m_SelfSimpleVolume == NULL ) log_technical_bug("Cannot get m_SelfSimpleVolume");
if ( m_SelfVolumeRootDir == NULL ) log_technical_bug("Cannot get m_SelfVolumeRootDir");
if ( m_CloverDirFullPath.isEmpty() ) log_technical_bug("Cannot get m_CloverDirFullPath");
m_CloverDirFullPath4Display = m_CloverDirFullPath;
m_CloverDirFullPath4Display.replaceAll('\\', '/');
if ( m_efiFileName.isEmpty() ) log_technical_bug("Cannot get m_efiFileName");
if ( m_CloverDir == NULL ) panic("Cannot open getSelfRootDir()"); // We have to panic, nothing would work without m_CloverDir

View File

@ -37,6 +37,7 @@ protected:
EFI_DEVICE_PATH* m_CloverDirFullDevicePath {}; // full path, including device, of the folder containing this efi.
EFI_FILE* m_CloverDir {}; // opened folder containing this efi
XStringW m_CloverDirFullPath {}; // full path of folder containing this efi.
XStringW m_CloverDirFullPath4Display {}; // prettier for diplay
bool m_ThemesDirExists {};
EFI_FILE *m_ThemesDir {};
@ -77,6 +78,7 @@ public:
const EFI_DEVICE_PATH& getCloverDirFullDevicePath() { checkInitialized(); return *m_CloverDirFullDevicePath; }
const EFI_FILE& getCloverDir() { checkInitialized(); return *m_CloverDir; }
const XStringW& getCloverDirFullPath() { checkInitialized(); return m_CloverDirFullPath; }
const XStringW& getCloverDirFullPath4Display() { checkInitialized(); return m_CloverDirFullPath4Display; }
bool themesDirExists() { checkInitialized(); return m_ThemesDirExists; }
const EFI_FILE& getThemesDir() { checkInitialized(); return *m_ThemesDir; }

View File

@ -212,7 +212,11 @@ public:
template<typename XStringClass1, enable_if(is___String(XStringClass1))>
void insertAtPos(const XStringClass1 &aString, size_t pos) { array.InsertRef(new remove_const(XStringClass1)(aString), pos, true); }
template<typename CharType, enable_if(is_char(CharType))>
void AddReference(CharType* newElement, bool FreeIt) { array.AddReference(new XStringClass_(newElement), FreeIt); }
void AddReference(XStringClass* newElement, bool FreeIt) { array.AddReference(newElement, FreeIt); }
void insertReferenceAtPos(XStringClass* newElement, size_t pos, bool FreeIt) { array.InsertRef(newElement, pos, FreeIt); }
template<typename IntegralType, enable_if(is_integral(IntegralType))>

View File

@ -134,10 +134,6 @@ extern void HelpRefit(void);
extern void AboutRefit(void);
//extern BOOLEAN BooterPatch(IN UINT8 *BooterData, IN UINT64 BooterSize, LOADER_ENTRY *Entry);
extern UINTN ConfigsNum;
extern CHAR16 *ConfigsList[];
extern UINTN DsdtsNum;
extern CHAR16 *DsdtsList[];
extern EFI_AUDIO_IO_PROTOCOL *AudioIo;
extern EFI_DXE_SERVICES *gDS;
@ -792,18 +788,8 @@ void LOADER_ENTRY::StartLoader()
}
//Free memory
for (size_t i = 0; i < ConfigsNum; i++) {
if (ConfigsList[i]) {
FreePool(ConfigsList[i]);
ConfigsList[i] = NULL;
}
}
for (size_t i = 0; i < DsdtsNum; i++) {
if (DsdtsList[i]) {
FreePool(DsdtsList[i]);
DsdtsList[i] = NULL;
}
}
ConfigsList.setEmpty();
DsdtsList.setEmpty();
OptionMenu.FreeMenu();
//there is a place to free memory
// GuiAnime
@ -2464,9 +2450,8 @@ GetListOfConfigs()
{
REFIT_DIR_ITER DirIter;
EFI_FILE_INFO *DirEntry;
INTN NameLen;
ConfigsNum = 0;
ConfigsList.setEmpty();
OldChosenConfig = 0;
DirIterOpen(&selfOem.getConfigDir(), NULL, &DirIter);
@ -2476,12 +2461,15 @@ GetListOfConfigs()
continue;
}
if (StriCmp(DirEntry->FileName, L"config.plist") == 0) {
OldChosenConfig = ConfigsNum;
OldChosenConfig = ConfigsList.size(); // DirEntry->FileName is not yet inserted into ConfigsList. So its index will be ConfigsList.size()
}
size_t NameLen = wcslen(DirEntry->FileName) - 6; //without ".plist"
if ( NameLen <= MAX_INTN ) {
ConfigsList.AddReference(SWPrintf("%.*ls", (int)NameLen, DirEntry->FileName).forgetDataWithoutFreeing(), true); // this avoid to reallocate and copy memory
DBG("- %ls\n", DirEntry->FileName);
}else{
DBG("- bug!, NameLen > MAX_INTN");
}
NameLen = StrLen(DirEntry->FileName) - 6; //without ".plist"
ConfigsList[ConfigsNum] = (CHAR16*)AllocateCopyPool(NameLen * sizeof(CHAR16) + 2, DirEntry->FileName);
ConfigsList[ConfigsNum++][NameLen] = L'\0';
DBG("- %ls\n", DirEntry->FileName);
}
DirIterClose(&DirIter);
}
@ -2491,16 +2479,8 @@ GetListOfDsdts()
{
REFIT_DIR_ITER DirIter;
EFI_FILE_INFO *DirEntry;
INTN NameLen;
if (DsdtsNum > 0) {
for (UINTN i = 0; i < DsdtsNum; i++) {
if (DsdtsList[DsdtsNum] != NULL) {
FreePool(DsdtsList[DsdtsNum]);
}
}
}
DsdtsNum = 0;
DsdtsList.setEmpty();
OldChosenDsdt = 0xFFFF;
DirIterOpen(&selfOem.getConfigDir(), L"ACPI\\patched", &DirIter);
@ -2510,11 +2490,10 @@ GetListOfDsdts()
continue;
}
if ( gSettings.ACPI.DSDT.DsdtName.isEqualIC(DirEntry->FileName) ) {
OldChosenDsdt = DsdtsNum;
OldChosenDsdt = DsdtsList.size(); // DirEntry->FileName is not yet inserted into DsdtsList. So its index will be DsdtsList.size()
}
NameLen = StrLen(DirEntry->FileName); //with ".aml"
DsdtsList[DsdtsNum] = (CHAR16*)AllocateCopyPool(NameLen * sizeof(CHAR16) + 2, DirEntry->FileName); // if changing, notice freepool above
DsdtsList[DsdtsNum++][NameLen] = L'\0';
size_t NameLen = wcslen(DirEntry->FileName); //with ".aml"
DsdtsList.AddReference(SWPrintf("%.*ls", (int)NameLen, DirEntry->FileName).forgetDataWithoutFreeing(), true); // this avoid to reallocate and copy memory
DBG("- %ls\n", DirEntry->FileName);
}
DirIterClose(&DirIter);

View File

@ -1011,7 +1011,7 @@ void ApplyInputs(void)
if (OldChosenDsdt == 0xFFFF) {
gSettings.ACPI.DSDT.DsdtName = L"BIOS.aml"_XSW;
} else {
gSettings.ACPI.DSDT.DsdtName.SWPrintf("%ls", DsdtsList[OldChosenDsdt]);
gSettings.ACPI.DSDT.DsdtName = DsdtsList[OldChosenDsdt];
}
}
i++; //117
@ -1171,13 +1171,13 @@ void HelpRefit(void)
HelpMenu.AddMenuInfo_f("F1 - Помощь по горячим клавишам");
HelpMenu.AddMenuInfo_f("F2 - Сохранить отчет в preboot.log (только если FAT32)");
HelpMenu.AddMenuInfo_f("F3 - Показать скрытые значки в меню");
HelpMenu.AddMenuInfo_f("F4 - Родной DSDT сохранить в EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F5 - Патченный DSDT сохранить в EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F6 - Сохранить ВидеоБиос в EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F4 - Родной DSDT сохранить в %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F5 - Патченный DSDT сохранить в %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F6 - Сохранить ВидеоБиос в %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F7 - Проверить звук на выбранном выходе");
HelpMenu.AddMenuInfo_f("F8 - Сделать дамп звуковых устройств в EFI/CLOVER/misc/");
HelpMenu.AddMenuInfo_f("F8 - Сделать дамп звуковых устройств в %ls/misc/", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F9 - Изменить разрешение экрана на одно из возможных");
HelpMenu.AddMenuInfo_f("F10 - Снимок экрана в папку EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F10 - Снимок экрана в папку %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F11 - Reset NVRAM");
HelpMenu.AddMenuInfo_f("F12 - Извлечь указанный DVD");
HelpMenu.AddMenuInfo_f("Пробел - Дополнительное меню запуска выбранного тома");
@ -1193,13 +1193,13 @@ void HelpRefit(void)
HelpMenu.AddMenuInfo_f("F1 - Ця довідка");
HelpMenu.AddMenuInfo_f("F2 - Зберегти preboot.log (тiльки FAT32)");
HelpMenu.AddMenuInfo_f("F3 - Відображати приховані розділи");
HelpMenu.AddMenuInfo_f("F4 - Зберегти OEM DSDT в EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F5 - Зберегти патчений DSDT в EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F4 - Зберегти OEM DSDT в %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F5 - Зберегти патчений DSDT в %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F7 - Check sound on selected output");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into EFI/CLOVER/misc/");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into %ls/misc/", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F9 - Switch screen resoluton to next possible mode");
HelpMenu.AddMenuInfo_f("F6 - Зберегти VideoBios в EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F10 - Зберегти знімок екрану в EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F6 - Зберегти VideoBios в %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F10 - Зберегти знімок екрану в %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F11 - Reset NVRAM");
HelpMenu.AddMenuInfo_f("F12 - Відкрити обраний диск (DVD)");
HelpMenu.AddMenuInfo_f("Пробіл - докладніше про обраний пункт меню");
@ -1215,13 +1215,13 @@ void HelpRefit(void)
HelpMenu.AddMenuInfo_f("F1 - Esta Ayuda");
HelpMenu.AddMenuInfo_f("F2 - Guardar preboot.log (Solo FAT32)");
HelpMenu.AddMenuInfo_f("F3 - Show hidden entries");
HelpMenu.AddMenuInfo_f("F4 - Guardar DSDT oem en EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F5 - Guardar DSDT parcheado en EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F6 - Guardar VideoBios en EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F4 - Guardar DSDT oem en %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F5 - Guardar DSDT parcheado en %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F6 - Guardar VideoBios en %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F7 - Check sound on selected output");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into EFI/CLOVER/misc/");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into %ls/misc/", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F9 - Switch screen resoluton to next possible mode");
HelpMenu.AddMenuInfo_f("F10 - Guardar Captura de pantalla en EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F10 - Guardar Captura de pantalla en %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F11 - Reset NVRAM");
HelpMenu.AddMenuInfo_f("F12 - Expulsar volumen seleccionado (DVD)");
HelpMenu.AddMenuInfo_f("Espacio - Detalles acerca selected menu entry");
@ -1238,13 +1238,13 @@ void HelpRefit(void)
HelpMenu.AddMenuInfo_f("F1 - Esta ajuda");
HelpMenu.AddMenuInfo_f("F2 - Salva preboot.log (somente FAT32)");
HelpMenu.AddMenuInfo_f("F3 - Show hidden entries");
HelpMenu.AddMenuInfo_f("F4 - Salva oem DSDT em EFI/CLOVER/ACPI/origin/ (somente FAT32)");
HelpMenu.AddMenuInfo_f("F5 - Salva DSDT corrigido em EFI/CLOVER/ACPI/origin/ (somente FAT32)");
HelpMenu.AddMenuInfo_f("F6 - Salva VideoBios em EFI/CLOVER/misc/ (somente FAT32)");
HelpMenu.AddMenuInfo_f("F4 - Salva oem DSDT em %ls/ACPI/origin/ (somente FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F5 - Salva DSDT corrigido em %ls/ACPI/origin/ (somente FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F6 - Salva VideoBios em %ls/misc/ (somente FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F7 - Check sound on selected output");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into EFI/CLOVER/misc/");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into %ls/misc/", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F9 - Switch screen resoluton to next possible mode");
HelpMenu.AddMenuInfo_f("F10 - Salva screenshot em EFI/CLOVER/misc/ (somente FAT32)");
HelpMenu.AddMenuInfo_f("F10 - Salva screenshot em %ls/misc/ (somente FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F11 - Reset NVRAM");
HelpMenu.AddMenuInfo_f("F12 - Ejeta o volume selecionado (DVD)");
HelpMenu.AddMenuInfo_f("Espaco - Detalhes sobre a opcao do menu selecionada");
@ -1260,13 +1260,13 @@ void HelpRefit(void)
HelpMenu.AddMenuInfo_f("F1 - Aiuto");
HelpMenu.AddMenuInfo_f("F2 - Salva il preboot.log (solo su FAT32)");
HelpMenu.AddMenuInfo_f("F3 - Mostra volumi nascosti");
HelpMenu.AddMenuInfo_f("F4 - Salva il DSDT oem in EFI/CLOVER/ACPI/origin/ (solo suFAT32)");
HelpMenu.AddMenuInfo_f("F5 - Salva il patched DSDT in EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F6 - Salva il VideoBios in EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F4 - Salva il DSDT oem in %ls/ACPI/origin/ (solo suFAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F5 - Salva il patched DSDT in %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F6 - Salva il VideoBios in %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F7 - Controlla il suono sull'uscita selezionata");
HelpMenu.AddMenuInfo_f("F8 - Scarica le uscite audio in EFI/CLOVER/misc/");
HelpMenu.AddMenuInfo_f("F8 - Scarica le uscite audio in %ls/misc/", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F9 - Cambia la risoluzione dello schermo alla prossima disponibile");
HelpMenu.AddMenuInfo_f("F10 - Salva screenshot in EFI/CLOVER/misc/ (solo su FAT32)");
HelpMenu.AddMenuInfo_f("F10 - Salva screenshot in %ls/misc/ (solo su FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F11 - Resetta NVRAM");
HelpMenu.AddMenuInfo_f("F12 - Espelli il volume selezionato (DVD)");
HelpMenu.AddMenuInfo_f("Spazio - Dettagli sul menu selezionato");
@ -1282,13 +1282,13 @@ void HelpRefit(void)
HelpMenu.AddMenuInfo_f("F1 - Diese Hilfe");
HelpMenu.AddMenuInfo_f("F2 - Sichere preboot.log (nur mit FAT32)");
HelpMenu.AddMenuInfo_f("F3 - Show hidden entries");
HelpMenu.AddMenuInfo_f("F4 - Sichere OEM DSDT in EFI/CLOVER/ACPI/origin/ (nur mit FAT32)");
HelpMenu.AddMenuInfo_f("F5 - Sichere gepatchtes DSDT in EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F6 - Sichere VideoBios in EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F4 - Sichere OEM DSDT in %ls/ACPI/origin/ (nur mit FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F5 - Sichere gepatchtes DSDT in %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F6 - Sichere VideoBios in %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F7 - Check sound on selected output");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into EFI/CLOVER/misc/");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into %ls/misc/", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F9 - Switch screen resoluton to next possible mode");
HelpMenu.AddMenuInfo_f("F10 - Sichere Bildschirmfoto in EFI/CLOVER/misc/ (nur mit FAT32)");
HelpMenu.AddMenuInfo_f("F10 - Sichere Bildschirmfoto in %ls/misc/ (nur mit FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F11 - Reset NVRAM");
HelpMenu.AddMenuInfo_f("F12 - Volume auswerfen (DVD)");
HelpMenu.AddMenuInfo_f("Leertaste - Details über den gewählten Menue Eintrag");
@ -1304,13 +1304,13 @@ void HelpRefit(void)
HelpMenu.AddMenuInfo_f("F1 - Onderdeel hulp");
HelpMenu.AddMenuInfo_f("F2 - preboot.log opslaan (Alleen FAT32)");
HelpMenu.AddMenuInfo_f("F3 - Verborgen opties weergeven");
HelpMenu.AddMenuInfo_f("F4 - Opslaan oem DSDT in EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F5 - Opslaan gepatchte DSDT in EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F6 - Opslaan VideoBios in EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F4 - Opslaan oem DSDT in %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F5 - Opslaan gepatchte DSDT in %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F6 - Opslaan VideoBios in %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F7 - Controleer geluid op geselecteerde uitgang");
HelpMenu.AddMenuInfo_f("F8 - Opslaan audio uitgangen in EFI/CLOVER/misc/");
HelpMenu.AddMenuInfo_f("F8 - Opslaan audio uitgangen in %ls/misc/", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F9 - Wijzig schermresolutie naar eerstvolgende mogelijke modus");
HelpMenu.AddMenuInfo_f("F10 - Opslaan schermafdruk in EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F10 - Opslaan schermafdruk in %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F11 - Reset NVRAM");
HelpMenu.AddMenuInfo_f("F12 - Uitwerpen geselecteerd volume (DVD)");
HelpMenu.AddMenuInfo_f("Spatie - Details over geselecteerd menuoptie");
@ -1326,13 +1326,13 @@ void HelpRefit(void)
HelpMenu.AddMenuInfo_f("F1 - Aide");
HelpMenu.AddMenuInfo_f("F2 - Enregistrer preboot.log (FAT32 only)");
HelpMenu.AddMenuInfo_f("F3 - Show hidden entries");
HelpMenu.AddMenuInfo_f("F4 - Enregistrer oem DSDT dans EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F5 - Enregistrer DSDT modifié dans EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F6 - Enregistrer VideoBios dans EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F4 - Enregistrer oem DSDT dans %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F5 - Enregistrer DSDT modifié dans %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F6 - Enregistrer VideoBios dans %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F7 - Check sound on selected output");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into EFI/CLOVER/misc/");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into %ls/misc/", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F9 - Switch screen resoluton to next possible mode");
HelpMenu.AddMenuInfo_f("F10 - Enregistrer la capture d'écran dans EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F10 - Enregistrer la capture d'écran dans %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F11 - Reset NVRAM");
HelpMenu.AddMenuInfo_f("F12 - Ejecter le volume (DVD)");
HelpMenu.AddMenuInfo_f("Space - Détails a propos du menu selectionné");
@ -1346,15 +1346,15 @@ void HelpRefit(void)
case indonesian:
HelpMenu.AddMenuInfo_f("ESC - Keluar submenu, Refresh main menu");
HelpMenu.AddMenuInfo_f("F1 - Help");
HelpMenu.AddMenuInfo_f("F2 - Simpan preboot.log ke EFI/CLOVER/ACPI/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F2 - Simpan preboot.log ke %ls/ACPI/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F3 - Show hidden entries");
HelpMenu.AddMenuInfo_f("F4 - Simpan oem DSDT ke EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F5 - Simpan patched DSDT ke EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F6 - Simpan VideoBios ke EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F4 - Simpan oem DSDT ke %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F5 - Simpan patched DSDT ke %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F6 - Simpan VideoBios ke %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F7 - Check sound on selected output");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into EFI/CLOVER/misc/");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into %ls/misc/", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F9 - Switch screen resoluton to next possible mode");
HelpMenu.AddMenuInfo_f("F10 - Simpan screenshot ke EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F10 - Simpan screenshot ke %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F11 - Reset NVRAM");
HelpMenu.AddMenuInfo_f("F12 - Eject volume (DVD)");
HelpMenu.AddMenuInfo_f("Spasi - Detail dari menu yang dipilih");
@ -1370,13 +1370,13 @@ void HelpRefit(void)
HelpMenu.AddMenuInfo_f("F1 - Pomoc");
HelpMenu.AddMenuInfo_f("F2 - Zapis preboot.log (tylko FAT32)");
HelpMenu.AddMenuInfo_f("F3 - Show hidden entries");
HelpMenu.AddMenuInfo_f("F4 - Zapis DSDT do EFI/CLOVER/ACPI/origin/ (tylko FAT32)");
HelpMenu.AddMenuInfo_f("F5 - Zapis poprawionego DSDT do EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F6 - Zapis BIOSu k. graficznej do EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F4 - Zapis DSDT do %ls/ACPI/origin/ (tylko FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F5 - Zapis poprawionego DSDT do %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F6 - Zapis BIOSu k. graficznej do %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F7 - Check sound on selected output");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into EFI/CLOVER/misc/");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into %ls/misc/", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F9 - Switch screen resoluton to next possible mode");
HelpMenu.AddMenuInfo_f("F10 - Zapis zrzutu ekranu do EFI/CLOVER/misc/ (tylko FAT32)");
HelpMenu.AddMenuInfo_f("F10 - Zapis zrzutu ekranu do %ls/misc/ (tylko FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F11 - Reset NVRAM");
HelpMenu.AddMenuInfo_f("F12 - Wysuniecie zaznaczonego dysku (tylko dla DVD)");
HelpMenu.AddMenuInfo_f("Spacja - Informacje nt. dostepnych opcji dla zaznaczonego dysku");
@ -1392,13 +1392,13 @@ void HelpRefit(void)
HelpMenu.AddMenuInfo_f("F1 - Ovaj izbornik");
HelpMenu.AddMenuInfo_f("F2 - Spremi preboot.log (samo na FAT32)");
HelpMenu.AddMenuInfo_f("F3 - Show hidden entries");
HelpMenu.AddMenuInfo_f("F4 - Spremi oem DSDT u EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F5 - Spremi patched DSDT into EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F6 - Spremi VideoBios into EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F4 - Spremi oem DSDT u %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F5 - Spremi patched DSDT into %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F6 - Spremi VideoBios into %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F7 - Check sound on selected output");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into EFI/CLOVER/misc/");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into %ls/misc/", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F9 - Switch screen resoluton to next possible mode");
HelpMenu.AddMenuInfo_f("F10 - Spremi screenshot into EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F10 - Spremi screenshot into %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F11 - Reset NVRAM");
HelpMenu.AddMenuInfo_f("F12 - Izbaci izabrai (DVD)");
HelpMenu.AddMenuInfo_f("Space - Detalji o odabranom sistemu");
@ -1414,13 +1414,13 @@ void HelpRefit(void)
HelpMenu.AddMenuInfo_f("F1 - Tato Nápověda");
HelpMenu.AddMenuInfo_f("F2 - Uložit preboot.log (FAT32 only)");
HelpMenu.AddMenuInfo_f("F3 - Show hidden entries");
HelpMenu.AddMenuInfo_f("F4 - Uložit oem DSDT do EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F5 - Uložit patchnuté DSDT do EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F6 - Uložit VideoBios do EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F4 - Uložit oem DSDT do %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F5 - Uložit patchnuté DSDT do %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F6 - Uložit VideoBios do %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F7 - Check sound on selected output");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into EFI/CLOVER/misc/");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into %ls/misc/", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F9 - Switch screen resoluton to next possible mode");
HelpMenu.AddMenuInfo_f("F10 - Uložit snímek obrazovky do EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F10 - Uložit snímek obrazovky do %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F11 - Reset NVRAM");
HelpMenu.AddMenuInfo_f("F12 - Vysunout vybranou mechaniku (DVD)");
HelpMenu.AddMenuInfo_f("Mezerník - Podrobnosti o vybraném disku");
@ -1436,13 +1436,13 @@ void HelpRefit(void)
HelpMenu.AddMenuInfo_f("F1 - 이 도움말");
HelpMenu.AddMenuInfo_f("F2 - preboot.log를 저장합니다. (FAT32방식에만 해당됨)");
HelpMenu.AddMenuInfo_f("F3 - Show hidden entries");
HelpMenu.AddMenuInfo_f("F4 - oem DSDT를 EFI/CLOVER/ACPI/origin/에 저장합니다. (FAT32)");
HelpMenu.AddMenuInfo_f("F5 - 패치된 DSDT를 EFI/CLOVER/ACPI/origin/에 저장합니다. (FAT32)");
HelpMenu.AddMenuInfo_f("F6 - VideoBios를 EFI/CLOVER/misc/에 저장합니다. (FAT32)");
HelpMenu.AddMenuInfo_f("F4 - oem DSDT를 %ls/ACPI/origin/에 저장합니다. (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F5 - 패치된 DSDT를 %ls/ACPI/origin/에 저장합니다. (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F6 - VideoBios를 %ls/misc/에 저장합니다. (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F7 - 선택한 출력에서 사운드 확인");
HelpMenu.AddMenuInfo_f("F8 - 오디오 코덱덤프를 EFI/CLOVER/misc/에 저장합니다.");
HelpMenu.AddMenuInfo_f("F8 - 오디오 코덱덤프를 %ls/misc/에 저장합니다.", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F9 - Switch screen resoluton to next possible mode");
HelpMenu.AddMenuInfo_f("F10 - 스크린샷을 EFI/CLOVER/misc/에 저장합니다. (FAT32)");
HelpMenu.AddMenuInfo_f("F10 - 스크린샷을 %ls/misc/에 저장합니다. (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F11 - NVRAM 초기화");
HelpMenu.AddMenuInfo_f("F12 - 선택한 볼륨을 제거합니다. (DVD)");
HelpMenu.AddMenuInfo_f("Space - 선택한 메뉴의 상세 설명");
@ -1461,7 +1461,7 @@ void HelpRefit(void)
HelpMenu.AddMenuInfo_f("F5 - Salvare DSDT modificat in EFI/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F6 - Salvare VideoBios in EFI/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F7 - Check sound on selected output");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into EFI/CLOVER/misc/");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into %ls/misc/", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F9 - Switch screen resoluton to next possible mode");
HelpMenu.AddMenuInfo_f("F10 - Salvare screenshot in EFI/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F11 - Reset NVRAM");
@ -1477,13 +1477,13 @@ void HelpRefit(void)
case chinese:
HelpMenu.AddMenuInfo_f("ESC - 离开子菜单, 刷新主菜单");
HelpMenu.AddMenuInfo_f("F1 - 帮助");
HelpMenu.AddMenuInfo_f("F2 - 保存 preboot.log 到 EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F2 - 保存 preboot.log 到 %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F3 - 显示隐藏的启动项");
HelpMenu.AddMenuInfo_f("F4 - 保存原始的 DSDT 到 EFI/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F5 - 保存修正后的 DSDT 到 EFI/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F6 - 保存 VideoBios 到 EFI/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F7 - 检查选中输出设备的声音");
HelpMenu.AddMenuInfo_f("F8 - 生成声卡输出转储到 EFI/CLOVER/misc/");
HelpMenu.AddMenuInfo_f("F8 - 生成声卡输出转储到 %ls/misc/", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F9 - 调整屏幕分辨率为下一个可用的模式");
HelpMenu.AddMenuInfo_f("F10 - 保存截图到 EFI/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F11 - 重置 NVRAM");
@ -1500,15 +1500,15 @@ void HelpRefit(void)
default:
HelpMenu.AddMenuInfo_f("ESC - Escape from submenu, Refresh main menu");
HelpMenu.AddMenuInfo_f("F1 - This help");
HelpMenu.AddMenuInfo_f("F2 - Save preboot.log into EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F2 - Save preboot.log into %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F3 - Show hidden entries");
HelpMenu.AddMenuInfo_f("F4 - Save oem DSDT into EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F5 - Save patched DSDT into EFI/CLOVER/ACPI/origin/ (FAT32)");
HelpMenu.AddMenuInfo_f("F6 - Save VideoBios into EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F4 - Save oem DSDT into %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F5 - Save patched DSDT into %ls/ACPI/origin/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F6 - Save VideoBios into %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F7 - Check sound on selected output");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into EFI/CLOVER/misc/");
HelpMenu.AddMenuInfo_f("F8 - Make audio outputs dump into %ls/misc/", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F9 - Switch screen resoluton to next possible mode");
HelpMenu.AddMenuInfo_f("F10 - Save screenshot into EFI/CLOVER/misc/ (FAT32)");
HelpMenu.AddMenuInfo_f("F10 - Save screenshot into %ls/misc/ (FAT32)", self.getCloverDirFullPath4Display().wc_str());
HelpMenu.AddMenuInfo_f("F11 - Reset NVRAM");
HelpMenu.AddMenuInfo_f("F12 - Eject selected volume (DVD)");
HelpMenu.AddMenuInfo_f("Space - Details about selected menu entry");
@ -2134,7 +2134,7 @@ REFIT_ABSTRACT_MENU_ENTRY* SubMenuDsdts()
SubScreen->AddMenuInfoLine_f("Select a DSDT file:");
SubScreen->AddMenuItemSwitch(116, "BIOS.aml", FALSE);
for (i = 0; i < DsdtsNum; i++) {
for (i = 0; i < DsdtsList.size(); i++) {
InputBootArgs = new REFIT_MENU_SWITCH;
InputBootArgs->Title.takeValueFrom(DsdtsList[i]);
// InputBootArgs->Tag = TAG_SWITCH_OLD;
@ -2543,9 +2543,9 @@ REFIT_ABSTRACT_MENU_ENTRY* SubMenuConfigs()
SubScreen->AddMenuInfoLine_f("Select a config file:");
for (i = 0; i < ConfigsNum; i++) {
for (i = 0; i < ConfigsList.size(); i++) {
InputBootArgs = new REFIT_MENU_SWITCH;
InputBootArgs->Title.takeValueFrom(ConfigsList[i]);
InputBootArgs->Title = ConfigsList[i];
// InputBootArgs->Tag = TAG_SWITCH_OLD;
InputBootArgs->Row = i;
InputBootArgs->Item = &InputItems[90];