diff --git a/reactos/Doxyfile b/reactos/Doxyfile
index 13c48a2faca..47962cf501e 100644
--- a/reactos/Doxyfile
+++ b/reactos/Doxyfile
@@ -1,4 +1,4 @@
-# Doxyfile 1.5.8
+# Doxyfile 1.6.2
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project
@@ -54,11 +54,11 @@ CREATE_SUBDIRS = YES
# information to generate all constant output in the proper language.
# The default language is English, other supported languages are:
# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek,
-# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages),
-# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish,
-# Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, Slovene,
-# Spanish, Swedish, and Ukrainian.
+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak,
+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
OUTPUT_LANGUAGE = English
@@ -124,7 +124,7 @@ FULL_PATH_NAMES = YES
# If left blank the directory from which doxygen is run is used as the
# path to strip.
-STRIP_FROM_PATH = .
+STRIP_FROM_PATH =
# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
# the path mentioned in the documentation of a class, which tells
@@ -169,13 +169,13 @@ MULTILINE_CPP_IS_BRIEF = NO
# member inherits the documentation from any documented member that it
# re-implements.
-INHERIT_DOCS = NO
+INHERIT_DOCS = YES
# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
# a new page for each member. If set to NO, the documentation of a member will
# be part of the file/class/namespace that contains it.
-SEPARATE_MEMBER_PAGES = NO
+SEPARATE_MEMBER_PAGES = YES
# The TAB_SIZE tag can be used to set the number of spaces in a tab.
# Doxygen uses this value to replace tabs by spaces in code fragments.
@@ -224,7 +224,8 @@ OPTIMIZE_OUTPUT_VHDL = NO
# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat
# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran),
-# use: inc=Fortran f=C
+# use: inc=Fortran f=C. Note that for custom extensions you also need to set
+# FILE_PATTERNS otherwise the files are not read by doxygen.
EXTENSION_MAPPING =
@@ -396,6 +397,12 @@ HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
+# will list include files with double quotes in the documentation
+# rather than with sharp brackets.
+
+FORCE_LOCAL_INCLUDES = NO
+
# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
# is inserted in the documentation for inline members.
@@ -415,6 +422,16 @@ SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
+# will sort the (brief and detailed) documentation of class members so that
+# constructors and destructors are listed first. If set to NO (the default)
+# the constructors will appear in the respective orders defined by
+# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
+# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
+# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
# hierarchy of group names into alphabetical order. If set to NO (the default)
# the group names will appear in their defined order.
@@ -573,7 +590,7 @@ WARN_LOGFILE =
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
-INPUT =
+INPUT = .
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
@@ -591,11 +608,13 @@ INPUT_ENCODING = UTF-8
# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
FILE_PATTERNS = *.c \
+ *.cc \
*.cxx \
*.cpp \
*.c++ \
*.h \
*.hh \
+ *.hxx \
*.hpp \
*.idl
@@ -644,7 +663,7 @@ EXAMPLE_PATH =
# and *.h) to filter out the source-files in the directories. If left
# blank all files are included.
-EXAMPLE_PATTERNS =
+EXAMPLE_PATTERNS = *
# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
# searched for input files to be used with the \include or \dontinclude
@@ -704,13 +723,13 @@ INLINE_SOURCES = YES
# doxygen to hide any special comment blocks from generated source code
# fragments. Normal C and C++ comments will always remain visible.
-STRIP_CODE_COMMENTS = YES
+STRIP_CODE_COMMENTS = NO
# If the REFERENCED_BY_RELATION tag is set to YES
# then for each documented function all documented
# functions referencing it will be listed.
-REFERENCED_BY_RELATION = NO
+REFERENCED_BY_RELATION = YES
# If the REFERENCES_RELATION tag is set to YES
# then for each documented function all documented entities
@@ -737,7 +756,7 @@ USE_HTAGS = NO
# will generate a verbatim copy of the header file for each class for
# which an include is specified. Set to NO to disable this.
-VERBATIM_HEADERS = YES
+VERBATIM_HEADERS = NO
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
@@ -787,13 +806,13 @@ HTML_FILE_EXTENSION = .html
# each generated HTML page. If it is left blank doxygen will generate a
# standard header.
-HTML_HEADER = Doxygen/header.html
+HTML_HEADER =
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
# each generated HTML page. If it is left blank doxygen will generate a
# standard footer.
-HTML_FOOTER = Doxygen/footer.html
+HTML_FOOTER =
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
# style sheet that is used by each HTML page. It can be used to
@@ -804,6 +823,12 @@ HTML_FOOTER = Doxygen/footer.html
HTML_STYLESHEET =
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting
+# this to NO can help when comparing the output of multiple runs.
+
+HTML_TIMESTAMP = NO
+
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
# files or namespaces will be aligned in HTML using tables. If set to
# NO a bullet list will be used.
@@ -937,6 +962,23 @@ QHP_SECT_FILTER_ATTRS =
QHG_LOCATION =
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
+# will be generated, which together with the HTML files, form an Eclipse help
+# plugin. To install this plugin and make it available under the help contents
+# menu in Eclipse, the contents of the directory containing the HTML and XML
+# files needs to be copied into the plugins directory of eclipse. The name of
+# the directory within the plugins directory should be the same as
+# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
+# the help appears.
+
+GENERATE_ECLIPSEHELP = NO
+
+# A unique identifier for the eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have
+# this name.
+
+ECLIPSE_DOC_ID = org.doxygen.Project
+
# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
# top of each HTML page. The value NO (the default) enables the index and
# the value YES disables it.
@@ -950,20 +992,18 @@ ENUM_VALUES_PER_LINE = 4
# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
# structure should be generated to display hierarchical information.
-# If the tag value is set to FRAME, a side panel will be generated
+# If the tag value is set to YES, a side panel will be generated
# containing a tree-like index structure (just like the one that
# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
-# probably better off using the HTML help feature. Other possible values
-# for this tag are: HIERARCHIES, which will generate the Groups, Directories,
-# and Class Hierarchy pages using a tree view instead of an ordered list;
-# ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which
-# disables this behavior completely. For backwards compatibility with previous
-# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE
-# respectively.
+# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
+# Windows users are probably better off using the HTML help feature.
-GENERATE_TREEVIEW = NONE
+GENERATE_TREEVIEW = NO
+
+# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
+# and Class Hierarchy pages using a tree view instead of an ordered list.
+
+USE_INLINE_TREES = NO
# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
# used to set the initial width (in pixels) of the frame in which the tree
@@ -979,6 +1019,26 @@ TREEVIEW_WIDTH = 250
FORMULA_FONTSIZE = 10
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box
+# for the HTML output. The underlying search engine uses javascript
+# and DHTML and should work on any modern browser. Note that when using
+# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
+# (GENERATE_DOCSET) there is already a search function so this one should
+# typically be disabled. For large projects the javascript based search engine
+# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
+
+SEARCHENGINE = YES
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a PHP enabled web server instead of at the web client
+# using Javascript. Doxygen will generate the search PHP script and index
+# file to put on the web server. The advantage of the server
+# based approach is that it scales better to large projects and allows
+# full text search. The disadvances is that it is more difficult to setup
+# and does not have live searching capabilities.
+
+SERVER_BASED_SEARCH = YES
+
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
@@ -995,7 +1055,10 @@ GENERATE_LATEX = NO
LATEX_OUTPUT = latex
# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
+# invoked. If left blank `latex' will be used as the default command name.
+# Note that when enabling USE_PDFLATEX this option is only used for
+# generating bitmaps for formulas in the HTML output, but not in the
+# Makefile that is written to the output directory.
LATEX_CMD_NAME = latex
@@ -1055,6 +1118,13 @@ LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
+# If LATEX_SOURCE_CODE is set to YES then doxygen will include
+# source code with syntax highlighting in the LaTeX output.
+# Note that which sources are shown also depends on other settings
+# such as SOURCE_BROWSER.
+
+LATEX_SOURCE_CODE = NO
+
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
@@ -1206,14 +1276,14 @@ PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
+# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
# evaluate all C-preprocessor directives found in the sources and include
# files.
-ENABLE_PREPROCESSING = NO
+ENABLE_PREPROCESSING = YES
# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
# names in the source code. If set to NO (the default) only conditional
@@ -1272,7 +1342,7 @@ EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
-# Configuration::additions related to external references
+# Configuration::additions related to external references
#---------------------------------------------------------------------------
# The TAGFILES option can be used to specify one or more tagfiles.
@@ -1315,7 +1385,7 @@ EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
+# Configuration options related to the dot tool
#---------------------------------------------------------------------------
# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
@@ -1507,12 +1577,3 @@ GENERATE_LEGEND = YES
# the various graphs.
DOT_CLEANUP = YES
-
-#---------------------------------------------------------------------------
-# Options related to the search engine
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE = YES
diff --git a/reactos/ReactOS-arm.rbuild b/reactos/ReactOS-arm.rbuild
index e1e8f70de04..f6b36ebc64a 100644
--- a/reactos/ReactOS-arm.rbuild
+++ b/reactos/ReactOS-arm.rbuild
@@ -111,17 +111,7 @@
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/reactos/base/applications/charmap/lang/uk-UA.rc b/reactos/base/applications/charmap/lang/uk-UA.rc
index 53627b66a6e..3c82d762f3f 100644
--- a/reactos/base/applications/charmap/lang/uk-UA.rc
+++ b/reactos/base/applications/charmap/lang/uk-UA.rc
@@ -21,12 +21,12 @@ BEGIN
EDITTEXT IDC_TEXTBOX, 74, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
DEFPUSHBUTTON "Вибрати", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "Копіювати", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
- //AUTOCHECKBOX "Advanced view", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ //AUTOCHECKBOX "Розширений вигляд", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
//EDITTEXT IDC_DISPLAY, 8, 217, 278, 13, WS_VISIBLE | WS_TABSTOP | ES_READONLY
END
IDD_ABOUTBOX DIALOGEX 22,16,210,182
-CAPTION "Про Таблицю символів"
+CAPTION "Про програму..."
FONT 8,"MS Shell Dlg",0,0
STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
BEGIN
@@ -38,6 +38,6 @@ END
STRINGTABLE DISCARDABLE
BEGIN
- IDS_LICENSE "Таблиця символів - вільне програмне забезпечення; Ви можете розповсюджувати її та (або) змінювати, дотримуючись умови Відкритої ліцензійної угоди GNU, опублікованої Фондом вільного програмного забезпечення; або редакції 2 Угоди, або будь-якої редакції, випущеної пізніше.\r\n\r\nЦя програма розповсюджується в надії на те, що вона виявиться корисною, але БЕЗ БУДЬ-ЯКИХ ГАРАНТІЙ, включаючи УЯВНОЮ ГАРАНТІЄЮ ЯКОСТІ або ПРИДАТНОСТІ для певних цілей. Подробиці містяться у Відкритій ліцензійній угоді GNU.\r\n\r\nРазом з цією програмою повинен поширюватися примірник Відкритої ліцензійної угоди GNU. Якщо він відсутній, повідомте про це в Фонд вільного програмного забезпечення (Free Software Foundation, Inc.), 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
- IDS_ABOUT "&Про Таблицю символів..."
+ IDS_LICENSE "Таблиця символів - вільне програмне забезпечення; Ви можете розповсюджувати її та змінювати, дотримуючись умови Відкритої ліцензійної угоди GNU, опублікованої Фондом вільного програмного забезпечення; або редакції 2 Угоди, або будь-якої редакції, випущеної пізніше.\r\n\r\nЦя програма розповсюджується в надії на те, що вона виявиться корисною, але БЕЗ БУДЬ-ЯКИХ ГАРАНТІЙ, включаючи УЯВНОЮ ГАРАНТІЄЮ ЯКОСТІ або ПРИДАТНОСТІ для певних цілей. Подробиці містяться у Відкритій ліцензійній угоді GNU.\r\n\r\nРазом з цією програмою повинен поширюватися примірник Відкритої ліцензійної угоди GNU. Якщо він відсутній, повідомте про це в Фонд вільного програмного забезпечення (Free Software Foundation, Inc.), 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
+ IDS_ABOUT "&Про програму..."
END
diff --git a/reactos/base/applications/dxdiag/lang/ua-UA.rc b/reactos/base/applications/dxdiag/lang/ua-UA.rc
new file mode 100644
index 00000000000..4acffc0173d
--- /dev/null
+++ b/reactos/base/applications/dxdiag/lang/ua-UA.rc
@@ -0,0 +1,232 @@
+/*
+ * PROJECT: ReactOS dxdiag
+ * LICENSE: GPL - See COPYING in the top level directory
+ * FILE: base/applications/dxdiag/lang/uk-UA.rc
+ * PURPOSE: Ukraianian Language File for ReactOS dxdiag
+ * TRANSLATOR: Sakara Yevhen
+ */
+
+LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
+
+IDD_MAIN_DIALOG DIALOGEX DISCARDABLE 0, 0, 478, 280
+STYLE DS_SHELLFONT | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP |
+ WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
+ WS_THICKFRAME
+CAPTION "Засіб діагностики ReactX"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ CONTROL "Tab1",IDC_TAB_CONTROL,"SysTabControl32",WS_TABSTOP,2,2,474,250
+ PUSHBUTTON "&Довідка", IDC_BUTTON_HELP, 2, 260, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ DEFPUSHBUTTON "&Наступна сторінка", IDC_BUTTON_NEXT, 203, 260, 94, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ PUSHBUTTON "&Зберегти всю інформацію...", IDC_BUTTON_SAVE_INFO, 301, 260, 120, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ PUSHBUTTON "&Вихід", IDC_BUTTON_EXIT, 425, 260, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+END
+
+IDD_SYSTEM_DIALOG DIALOGEX DISCARDABLE 0, 0, 462, 190
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+ LTEXT "Ця програма дозволяє отримати докладні відомості про встановлені компоненти і драйвери ReactX.", -1, 10, 10, 443, 17
+ LTEXT "Якщо ви знаєте можливу причину неполадки, можна відразу вибрати відповідну вкладку. В іншому випадку використовуйте кнопку ""Наступна сторінка"" для послідовного перегляду сторінок.", -1, 10, 30, 443, 25
+ GROUPBOX "Відомості про систему", -1, 10, 58, 443, 130, SS_RIGHT
+ LTEXT "Поточні час і дата:", -1, 70, 70, 80, 10, SS_RIGHT
+ LTEXT "Ім'я комп'ютера:", -1, 70, 80, 80, 10, SS_RIGHT
+ LTEXT "Операційна система:", -1, 50, 90, 100, 10, SS_RIGHT
+ LTEXT "Мова:", -1, 70, 100, 80, 10, SS_RIGHT
+ LTEXT "Виробник комп'ютера:", -1, 50, 110, 100, 10, SS_RIGHT
+ LTEXT "Модель комп'ютера:", -1, 70, 120, 80, 10, SS_RIGHT
+ LTEXT "BIOS:", -1, 70, 130, 80, 10, SS_RIGHT
+ LTEXT "Процесор:", -1, 70, 140, 80, 10, SS_RIGHT
+ LTEXT "Пам'ять:", -1, 70, 150, 80, 10, SS_RIGHT
+ LTEXT "Файл підкачки:", -1, 70, 160, 80, 10, SS_RIGHT
+ LTEXT "Версія ReactX:", -1, 70, 170, 80, 10, SS_RIGHT
+ LTEXT "", IDC_STATIC_TIME, 155, 70, 195, 10, SS_LEFT
+ LTEXT "", IDC_STATIC_COMPUTER, 155, 80, 195, 10, SS_LEFT
+ LTEXT "", IDC_STATIC_OS, 155, 90, 195, 10, SS_LEFT
+ LTEXT "", IDC_STATIC_LANG, 155, 100, 195, 10, SS_LEFT
+ LTEXT "", IDC_STATIC_MANU, 155, 110, 195, 10, SS_LEFT
+ LTEXT "", IDC_STATIC_MODEL, 155, 120, 195, 10, SS_LEFT
+ LTEXT "", IDC_STATIC_BIOS, 155, 130, 195, 10, SS_LEFT
+ LTEXT "", IDC_STATIC_PROC, 155, 140, 195, 10, SS_LEFT
+ LTEXT "", IDC_STATIC_MEM, 155, 150, 195, 10, SS_LEFT
+ LTEXT "", IDC_STATIC_SWAP, 155, 160, 195, 10, SS_LEFT
+ LTEXT "", IDC_STATIC_VERSION, 155, 170, 195, 10, SS_LEFT
+END
+
+IDD_DISPLAY_DIALOG DIALOGEX DISCARDABLE 0, 0, 462, 220
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+ GROUPBOX "Пристрій", -1, 10, 10, 220, 100
+ RTEXT "Назва:", -1, 20, 25, 70, 10
+ RTEXT "Виробник:", -1, 20, 35, 70, 10
+ RTEXT "Тип мікросхем:", -1, 20, 45, 70, 10
+ RTEXT "Тип конвертера DAC:", -1, 15, 55, 75, 10
+ RTEXT "Всього пам'яті:", -1, 20, 65, 70, 10
+ RTEXT "Режим екрану:", -1, 20, 75, 70, 10
+ RTEXT "Монітор:", -1, 20, 85, 70, 10
+ LTEXT "", IDC_STATIC_ADAPTER_ID, 95, 25, 130, 10
+ LTEXT "", IDC_STATIC_ADAPTER_VENDOR, 95, 35, 130, 10
+ LTEXT "", IDC_STATIC_ADAPTER_CHIP, 95, 45, 130, 10
+ LTEXT "", IDC_STATIC_ADAPTER_DAC, 95, 55, 130, 10
+ LTEXT "", IDC_STATIC_ADAPTER_MEM, 95, 65, 130, 10
+ LTEXT "", IDC_STATIC_ADAPTER_MODE, 95, 75, 130, 10
+ LTEXT "", IDC_STATIC_ADAPTER_MONITOR, 95, 85, 130, 10
+
+ GROUPBOX "Драйвери", -1, 240, 10, 220, 100
+ RTEXT "Головний:", -1, 245, 30, 55, 10
+ RTEXT "Версія:", -1, 245, 40, 55, 10
+ RTEXT "Дата:", -1, 245, 50, 55, 10
+ RTEXT "Підпис:", -1, 245, 60, 55, 10
+ RTEXT "Міні-VDD:", -1, 245, 70, 55, 10
+ RTEXT "VDD:", -1, 245, 80, 55, 10
+ RTEXT "Версія DDI:", -1, 245, 90, 55, 10
+ LTEXT "", IDC_STATIC_ADAPTER_DRIVER, 305, 30, 130, 10
+ LTEXT "", IDC_STATIC_ADAPTER_VERSION, 305, 40, 130, 10
+ LTEXT "", IDC_STATIC_ADAPTER_DATE, 305, 50, 130, 10
+ LTEXT "", IDC_STATIC_ADAPTER_LOGO, 305, 60, 130, 10
+ LTEXT "", IDC_STATIC_ADAPTER_MINIVDD, 305, 70, 130, 10
+ LTEXT "", IDC_STATIC_ADAPTER_VDD, 305, 80, 130, 10
+ LTEXT "", IDC_STATIC_ADAPTER_DDI, 305, 90, 130, 10
+
+ GROUPBOX "Можливості ReactX", -1, 10, 115, 450, 65
+ RTEXT "Прискорення DirectDraw:", -1, 15, 130, 110, 12
+ RTEXT "Прискорення Direct3D:", -1, 15, 145, 110, 12
+ RTEXT "Прискорення текстур AGP:", -1, 15, 160, 110, 12
+ LTEXT "", IDC_STATIC_DDSTATE, 130, 130, 40, 10
+ LTEXT "", IDC_STATIC_D3DSTATE, 130, 145, 40, 10
+ LTEXT "", IDC_STATIC_AGPSTATE, 130, 160, 40, 10
+ PUSHBUTTON "Увімкнути", IDC_BUTTON_DDRAW, 170, 126, 60, 14, WS_DISABLED
+ PUSHBUTTON "Увімкнути", IDC_BUTTON_D3D, 170, 142, 60, 14, WS_DISABLED
+ PUSHBUTTON "Увімкнути", IDC_BUTTON_AGP, 170, 158, 60, 14, WS_DISABLED
+ PUSHBUTTON "Перевірка DirectDraw", IDC_BUTTON_TESTDD, 250, 126, 80, 14
+ PUSHBUTTON "Перевірка Direct3D", IDC_BUTTON_TEST3D, 250, 142, 80, 14, WS_DISABLED
+
+ GROUPBOX "Примітки", -1, 10, 185, 450, 34
+ EDITTEXT IDC_TEXT_INFO, 20, 195, 432, 18, WS_DISABLED | WS_TABSTOP
+END
+
+
+IDD_SOUND_DIALOG DIALOGEX DISCARDABLE 0, 0, 462, 220
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+ GROUPBOX "Пристрій", -1, 10, 10, 250, 100
+ RTEXT "Назва:", -1, 20, 25, 70, 10
+ RTEXT "Код пристрою:", -1, 20, 35, 70, 10
+ RTEXT "Код виробника:", -1, 20, 45, 70, 10
+ RTEXT "Код продукту:", -1, 20, 55, 70, 10
+ RTEXT "Тип:", -1, 20, 65, 70, 10
+ RTEXT "За замовчуванням:", -1, 20, 75, 70, 10
+ LTEXT "", IDC_STATIC_DSOUND_NAME, 95, 25, 150, 10
+ LTEXT "", IDC_STATIC_DSOUND_DEVICEID, 95, 35, 150, 10
+ LTEXT "", IDC_STATIC_DSOUND_VENDORID, 95, 45, 150, 10
+ LTEXT "", IDC_STATIC_DSOUND_PRODUCTID, 95, 55, 150, 10
+ LTEXT "", IDC_STATIC_DSOUND_TYPE, 95, 65, 150, 10
+ LTEXT "", IDC_STATIC_DSOUND_STANDARD, 95, 75, 150, 10
+ GROUPBOX "Драйвери", -1, 270, 10, 190, 100
+ RTEXT "Назва:", -1, 275, 25, 55, 10
+ RTEXT "Версія:", -1, 275, 35, 55, 10
+ RTEXT "Дата:", -1, 275, 45, 55, 10
+ RTEXT "Підпис:", -1, 275, 55, 55, 10
+ RTEXT "Інші файли:", -1, 275, 65, 55, 10
+ RTEXT "Постачальник:", -1, 275, 75, 55, 10
+ LTEXT "", IDC_STATIC_DSOUND_DRIVER, 335, 25, 100, 10
+ LTEXT "", IDC_STATIC_DSOUND_VERSION, 335, 35, 100, 10
+ LTEXT "", IDC_STATIC_DSOUND_DATE, 335, 45, 100, 10
+ LTEXT "", IDC_STATIC_DSOUND_LOGO, 335, 55, 100, 10
+ LTEXT "", IDC_STATIC_DSOUND_FILES, 335, 65, 100, 10
+ LTEXT "", IDC_STATIC_ADAPTER_PROVIDER, 335, 75, 100, 10
+ GROUPBOX "Можливості ReactX", -1, 10, 115, 450, 60
+ CONTROL "", IDC_SLIDER_DSOUND, "msctls_trackbar32", TBS_BOTTOM | TBS_AUTOTICKS | WS_TABSTOP, 120, 135, 80, 17
+ RTEXT "Рівень апаратного\nприскорення:", -1, 20, 135, 90, 20
+ PUSHBUTTON "Перевірка DirectSound", IDC_BUTTON_TESTDSOUND, 270, 130, 80, 14
+ GROUPBOX "Примітки", -1, 10, 180, 450, 40
+ EDITTEXT IDC_TEXT_DSOUNDINFO, 20, 190, 432, 20, WS_DISABLED | WS_TABSTOP
+END
+
+IDD_MUSIC_DIALOG DIALOGEX DISCARDABLE 0, 0, 462, 220
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+END
+
+
+IDD_INPUT_DIALOG DIALOGEX DISCARDABLE 0, 0, 462, 220
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+ GROUPBOX "Пристрої DirectInput", -1, 10, 10, 452, 80
+ CONTROL "", IDC_LIST_DEVICE, "SysListView32", LVS_REPORT | WS_CHILD | WS_BORDER | WS_TABSTOP, 20, 20, 432, 60
+ GROUPBOX "Пристрої введення", -1, 10, 100, 452, 60
+ CONTROL "", IDC_TREE_PORT, "SysTreeView32", TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 20, 110, 432, 40, 0x00000200
+ GROUPBOX "Інформація", -1, 10, 170, 452, 50
+ EDITTEXT IDC_RICH_INFO, 20, 180, 432, 30, WS_DISABLED | WS_TABSTOP
+END
+
+IDD_NETWORK_DIALOG DIALOGEX DISCARDABLE 0, 0, 462, 220
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+ GROUPBOX "Зареєстровані постачальники DirectPlay", -1, 10, 10, 452, 80
+ CONTROL "", IDC_LIST_PROVIDER, "SysListView32", LVS_REPORT | WS_CHILD | WS_BORDER | WS_TABSTOP, 20, 22, 432, 60
+END
+
+IDD_HELP_DIALOG DIALOGEX DISCARDABLE 0, 0, 462, 220
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg"
+BEGIN
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_MAIN_DIALOG "Засіб діагностики ReactX"
+ IDS_SYSTEM_DIALOG "Система"
+ IDS_DISPLAY_DIALOG "Екран"
+ IDS_SOUND_DIALOG "Звук"
+ IDS_MUSIC_DIALOG "Музика"
+ IDS_INPUT_DIALOG "Введення"
+ IDS_NETWORK_DIALOG "Мережа"
+ IDS_HELP_DIALOG "Довідка"
+ IDS_FORMAT_MB "%I64uМБ ОЗУ"
+ IDS_FORMAT_SWAP "%I64u МБ використано, %I64u МБ в наявності"
+ IDS_FORMAT_UNIPROC "%s (%u ЦП)"
+ IDS_FORMAT_MPPROC "%s (%u ЦП)"
+ IDS_VERSION_UNKNOWN "Невідома версія"
+ IDS_DEVICE_STATUS_ATTACHED "Під'єднано"
+ IDS_DEVICE_STATUS_MISSING "Від'єднано"
+ IDS_DEVICE_STATUS_UNKNOWN "Невідомо"
+ IDS_DEVICE_NAME "Назва пристрою"
+ IDS_DEVICE_STATUS "Стан"
+ IDS_DEVICE_CONTROLLER "ID контролера"
+ IDS_DEVICE_MANUFACTURER "ID виробника"
+ IDS_DEVICE_PRODUCT "ID продукту"
+ IDS_DEVICE_FORCEFEEDBACK "Драйвер Force Feedback"
+ IDS_NOT_APPLICABLE "Н/Д"
+ IDS_OPTION_YES "Так"
+ IDS_DIRECTPLAY_COL_NAME1 "Назва"
+ IDS_DIRECTPLAY_COL_NAME2 "Реєстр"
+ IDS_DIRECTPLAY_COL_NAME3 "Файл"
+ IDS_DIRECTPLAY_COL_NAME4 "Версія"
+ IDS_DIRECTPLAY8_MODEMSP "Постачальник служби модему DirectPlay8"
+ IDS_DIRECTPLAY8_SERIALSP "Постачальник служби остан. порту DirectPlay8"
+ IDS_DIRECTPLAY8_IPXSP "Постачальник служби IPX DirectPlay8"
+ IDS_DIRECTPLAY8_TCPSP "Постачальник служби TCP/IP DirectPlay8"
+ IDS_DIRECTPLAY_TCPCONN "Інтернет-підключення TCP/IP для DirectPlay"
+ IDS_DIRECTPLAY_IPXCONN "IPX підключення для DirectPlay"
+ IDS_DIRECTPLAY_MODEMCONN "Підключення через модем для DirectPlay"
+ IDS_DIRECTPLAY_SERIALCONN "Послідовне підключення для DirectPlay"
+ IDS_REG_SUCCESS "Так"
+ IDS_REG_FAIL "Помилка"
+ IDS_DDTEST_ERROR "Збій у перевірці!"
+ IDS_DDTEST_DESCRIPTION "Буде виконана перевірка DirecDraw на цей пристрій. Продовжити?"
+ IDS_DDPRIMARY_DESCRIPTION "Цей тест буде використовувати DirectDraw для малювання на первинній поверхні. Будуть виводитись чорні та білі прямокутники. Продовжити?"
+ IDS_DDPRIMARY_RESULT "Ви бачили чорні та білі прямокутники?"
+ IDS_DDOFFSCREEN_DESCRIPTION "Цей тест буде використовувати DirectDraw для малювання в закадровий буфер. Повинен рухатись білий прямокутник. Продовжити?"
+ IDS_DDOFFSCREEN_RESULT "Ви бачили, як рухався білий прямокутник?"
+ IDS_DDFULLSCREEN_DESCRIPTION "Цей тест буде використовувати DirectDraw для малювання в повноекранному режимі. Повинен рухатись білий прямокутник. Продовжити?"
+ IDS_DDFULLSCREEN_RESULT "Ви бачили, як рухався білий прямокутник в повноекранному режимі?"
+ IDS_FORMAT_ADAPTER_MEM "%u Мб"
+ IDS_FORMAT_ADAPTER_MODE "%04u x %04u (%u біт)(%uГц)"
+ IDS_OPTION_NO "Ні"
+END
diff --git a/reactos/base/applications/dxdiag/rsrc.rc b/reactos/base/applications/dxdiag/rsrc.rc
index e95bc4fc9e0..eef95d5cc9b 100644
--- a/reactos/base/applications/dxdiag/rsrc.rc
+++ b/reactos/base/applications/dxdiag/rsrc.rc
@@ -17,5 +17,6 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#include "lang/pl-PL.rc"
#include "lang/ru-RU.rc"
#include "lang/sk-SK.rc"
+#include "lang/ua-UA.rc"
#include "lang/zh-CN.rc"
//#include "lang/zh-TW.rc"
diff --git a/reactos/base/applications/games/solitaire/lang/uk-UA.rc b/reactos/base/applications/games/solitaire/lang/uk-UA.rc
index 21e379a6e88..8b2ecbaf1f1 100644
--- a/reactos/base/applications/games/solitaire/lang/uk-UA.rc
+++ b/reactos/base/applications/games/solitaire/lang/uk-UA.rc
@@ -18,8 +18,8 @@ CAPTION "
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Карти", -1, 7, 7, 65, 40
- AUTORADIOBUTTON "&По одній", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP
- AUTORADIOBUTTON "П&о три", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
+ AUTORADIOBUTTON "По &одній", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP
+ AUTORADIOBUTTON "По &три", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
AUTOCHECKBOX "&Гра за часом", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
AUTOCHECKBOX "&Рядок стану", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
@@ -58,7 +58,7 @@ BEGIN
IDS_SOL_ABOUT "Косинка від J Brown\n\nCardLib версії 1.0."
IDS_SOL_QUIT "Вийти з поточної гри?"
IDS_SOL_WIN "Вітання, Ви виграли!!"
- IDS_SOL_DEAL "Deal again?"
+ IDS_SOL_DEAL "Роздати знову?"
END
@@ -71,14 +71,14 @@ BEGIN
MENUITEM "&Роздати карти\tF2", IDM_GAME_NEW
MENUITEM SEPARATOR
MENUITEM "&Колода...", IDM_GAME_DECK
- MENUITEM "&Параметри...", IDM_GAME_OPTIONS
+ MENUITEM "Па&раметри...", IDM_GAME_OPTIONS
MENUITEM SEPARATOR
MENUITEM "В&ихід", IDM_GAME_EXIT
END
POPUP "&Довідка"
BEGIN
MENUITEM "&Зміст\tF1", IDM_HELP_CONTENTS
- MENUITEM "&Про", IDM_HELP_ABOUT
+ MENUITEM "&Про програму...", IDM_HELP_ABOUT
END
END
diff --git a/reactos/base/applications/games/spider/lang/ru-RU.rc b/reactos/base/applications/games/spider/lang/ru-RU.rc
index 9b8a7186e6c..8701fef3c11 100644
--- a/reactos/base/applications/games/spider/lang/ru-RU.rc
+++ b/reactos/base/applications/games/spider/lang/ru-RU.rc
@@ -34,17 +34,17 @@ BEGIN
PUSHBUTTON "Отмена", IDCANCEL, 126, 84, 54, 13
END
-IDD_DIFFICULTY DIALOGEX DISCARDABLE 100, 100, 106, 80
+IDD_DIFFICULTY DIALOGEX DISCARDABLE 100, 100, 112, 80
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_SHELLFONT
CAPTION "Уровень"
FONT 8, "MS Shell Dlg"
BEGIN
- AUTORADIOBUTTON "Простой: &один цвет", IDC_DIF_ONECOLOR, 8, 10, 80, 10, WS_GROUP | WS_TABSTOP
- AUTORADIOBUTTON "Средний: &два цвета", IDC_DIF_TWOCOLORS, 8, 23, 80, 10
- AUTORADIOBUTTON "Сложный: &четыре цвета", IDC_DIF_FOURCOLORS, 8, 36, 80, 10
+ AUTORADIOBUTTON "Простой: &один цвет", IDC_DIF_ONECOLOR, 8, 10, 102, 10, WS_GROUP | WS_TABSTOP
+ AUTORADIOBUTTON "Средний: &два цвета", IDC_DIF_TWOCOLORS, 8, 23, 102, 10
+ AUTORADIOBUTTON "Сложный: &четыре цвета", IDC_DIF_FOURCOLORS, 8, 36, 102, 10
DEFPUSHBUTTON "OK", IDOK, 8, 58, 40, 14
- PUSHBUTTON "Отмена", IDCANCEL, 58, 58, 40, 14
+ PUSHBUTTON "Отмена", IDCANCEL, 63, 58, 40, 14
END
/* Strings */
diff --git a/reactos/base/applications/games/spider/lang/uk-UA.rc b/reactos/base/applications/games/spider/lang/uk-UA.rc
new file mode 100644
index 00000000000..cee31995e31
--- /dev/null
+++ b/reactos/base/applications/games/spider/lang/uk-UA.rc
@@ -0,0 +1,91 @@
+/*
+ * PROJECT: ReactOS Spider
+ * LICENSE: GPL - See COPYING in the top level directory
+ * FILE: base/applications/games/spider/lang/uk-UA.rc
+ * PURPOSE: Ukraianian Language File for ReactOS Spider
+ * TRANSLATOR: Sakara Yevhen
+ */
+
+
+#include "resource.h"
+
+LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
+
+
+
+/* Dialogs */
+
+IDD_CARDBACK DIALOGEX 6, 6, 186, 104
+CAPTION "Вибір оформлення"
+FONT 8, "MS Shell Dlg"
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_SHELLFONT
+BEGIN
+ CONTROL "", IDC_CARDBACK1, "Static", SS_NOTIFY, 4, 7, 26, 32
+ CONTROL "", IDC_CARDBACK2, "Static", SS_NOTIFY, 34, 7, 26, 32
+ CONTROL "", IDC_CARDBACK3, "Static", SS_NOTIFY, 64, 7, 26, 32
+ CONTROL "", IDC_CARDBACK4, "Static", SS_NOTIFY, 94, 7, 26, 32
+ CONTROL "", IDC_CARDBACK5, "Static", SS_NOTIFY, 124, 7, 26, 32
+ CONTROL "", IDC_CARDBACK6, "Static", SS_NOTIFY, 154, 7, 26, 32
+ CONTROL "", IDC_CARDBACK7, "Static", SS_NOTIFY, 4, 46, 26, 32
+ CONTROL "", IDC_CARDBACK8, "Static", SS_NOTIFY, 34, 46, 26, 32
+ CONTROL "", IDC_CARDBACK9, "Static", SS_NOTIFY, 64, 46, 26, 32
+ CONTROL "", IDC_CARDBACK10, "Static", SS_NOTIFY, 94, 46, 26, 32
+ CONTROL "", IDC_CARDBACK11, "Static", SS_NOTIFY, 124, 46, 26, 32
+ CONTROL "", IDC_CARDBACK12, "Static", SS_NOTIFY, 154, 46, 26, 32
+ DEFPUSHBUTTON "OK", IDOK, 66, 84, 54, 13
+ PUSHBUTTON "Скасувати", IDCANCEL, 126, 84, 54, 13
+END
+
+IDD_DIFFICULTY DIALOGEX DISCARDABLE 100, 100, 106, 80
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_SHELLFONT
+CAPTION "Рівень"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ AUTORADIOBUTTON "Простий: &Один колір", IDC_DIF_ONECOLOR, 8, 10, 80, 10, WS_GROUP | WS_TABSTOP
+ AUTORADIOBUTTON "Середній: &Два кольори", IDC_DIF_TWOCOLORS, 8, 23, 80, 10
+ AUTORADIOBUTTON "Складний: &Чотири кольори", IDC_DIF_FOURCOLORS, 8, 36, 80, 10
+
+ DEFPUSHBUTTON "OK", IDOK, 8, 58, 40, 14
+ PUSHBUTTON "Скасувати", IDCANCEL, 58, 58, 40, 14
+END
+
+/* Strings */
+
+STRINGTABLE
+BEGIN
+ IDS_SPI_NAME "Пас’янс Паук"
+ IDS_SPI_ABOUT "Пас’янс Паук, Gregor Schneider\n\nCardLib версії 1.0"
+ IDS_SPI_QUIT "Вийти з поточної гри?"
+ IDS_SPI_WIN "Вітаємо, ви виграти!"
+ IDS_SPI_DEAL "Спробувати знову?"
+END
+
+
+/* Menus */
+
+IDR_MENU1 MENU DISCARDABLE
+BEGIN
+ POPUP "&Гра"
+ BEGIN
+ MENUITEM "&Нова гра\tF2", IDM_GAME_NEW
+ MENUITEM SEPARATOR
+ MENUITEM "&Оформлення...", IDM_GAME_DECK
+ MENUITEM SEPARATOR
+ MENUITEM "&Вихід", IDM_GAME_EXIT
+ END
+ POPUP "&Довідка"
+ BEGIN
+ MENUITEM "Пе&регляд довідки\tF1", IDM_HELP_CONTENTS
+ MENUITEM "&Про програму...", IDM_HELP_ABOUT
+ END
+END
+
+
+
+/* Accelerator */
+
+IDR_ACCELERATOR1 ACCELERATORS DISCARDABLE
+BEGIN
+ VK_F1, IDM_HELP_CONTENTS, VIRTKEY, NOINVERT
+ VK_F2, IDM_GAME_NEW, VIRTKEY, NOINVERT
+END
diff --git a/reactos/base/applications/games/spider/rsrc.rc b/reactos/base/applications/games/spider/rsrc.rc
index 3c09ac19ae7..27fe5ae2061 100644
--- a/reactos/base/applications/games/spider/rsrc.rc
+++ b/reactos/base/applications/games/spider/rsrc.rc
@@ -16,4 +16,5 @@ IDI_SPIDER ICON DISCARDABLE "spider.ico"
#include "lang/pl-PL.rc"
#include "lang/ru-RU.rc"
#include "lang/sk-SK.rc"
+#include "lang/uk-UA.rc"
diff --git a/reactos/base/applications/games/winemine/lang/uk-UA.rc b/reactos/base/applications/games/winemine/lang/uk-UA.rc
index 2a88d60a367..d5b0262d718 100644
--- a/reactos/base/applications/games/winemine/lang/uk-UA.rc
+++ b/reactos/base/applications/games/winemine/lang/uk-UA.rc
@@ -19,15 +19,15 @@ END
IDM_WINEMINE MENU DISCARDABLE
BEGIN
- POPUP "&Game"
+ POPUP "&Гра"
BEGIN
MENUITEM "&Нова\tF2", IDM_NEW
MENUITEM SEPARATOR
MENUITEM "&Мітки (?)", IDM_MARKQ
MENUITEM SEPARATOR
- MENUITEM "&Новачок", IDM_BEGINNER
+ MENUITEM "Нова&чок", IDM_BEGINNER
MENUITEM "&Аматор", IDM_ADVANCED
- MENUITEM "&Професіонал", IDM_EXPERT
+ MENUITEM "Про&фесіонал", IDM_EXPERT
MENUITEM "&Особливі...", IDM_CUSTOM
MENUITEM SEPARATOR
MENUITEM "&Чемпіони...", IDM_TIMES
@@ -55,7 +55,7 @@ BEGIN
LTEXT "", IDC_NAME1, 132, 20, 55, 8
LTEXT "", IDC_NAME2, 132, 30, 55, 8
LTEXT "", IDC_NAME3, 132, 40, 55, 8
- DEFPUSHBUTTON "OK", IDOK, 127, 57, 50, 15
+ DEFPUSHBUTTON "OK", IDOK, 127, 57, 50, 15
PUSHBUTTON "&Скидання результатів", IDRESET, 18, 57, 67, 15
END
@@ -66,7 +66,7 @@ FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Введіть Ваше ім'я", IDIGNORE, 25, 10, 150, 10
EDITTEXT IDC_EDITNAME, 25, 20, 110, 12
- DEFPUSHBUTTON "OK", IDOK, 60, 40, 40, 15
+ DEFPUSHBUTTON "OK", IDOK, 60, 40, 40, 15
END
IDD_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80
diff --git a/reactos/base/applications/mscutils/devmgmt/lang/uk-UA.rc b/reactos/base/applications/mscutils/devmgmt/lang/uk-UA.rc
index 7d43cda1a64..c45a6f1e58a 100644
--- a/reactos/base/applications/mscutils/devmgmt/lang/uk-UA.rc
+++ b/reactos/base/applications/mscutils/devmgmt/lang/uk-UA.rc
@@ -59,7 +59,7 @@ END
STRINGTABLE DISCARDABLE
BEGIN
- IDS_LICENSE "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 the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
+ IDS_LICENSE "Це вільне програмне забезпечення; Ви можете розповсюджувати її та змінювати, дотримуючись умови Відкритої ліцензійної угоди GNU, опублікованої Фондом вільного програмного забезпечення; або редакції 2 Угоди, або будь-якої редакції, випущеної пізніше.\r\n\r\nЦя програма розповсюджується в надії на те, що вона виявиться корисною, але БЕЗ БУДЬ-ЯКИХ ГАРАНТІЙ, включаючи УЯВНОЮ ГАРАНТІЄЮ ЯКОСТІ або ПРИДАТНОСТІ для певних цілей. Подробиці містяться у Відкритій ліцензійній угоді GNU.\r\n\r\nРазом з цією програмою повинен поширюватися примірник Відкритої ліцензійної угоди GNU. Якщо він відсутній, повідомте про це в Фонд вільного програмного забезпечення (Free Software Foundation, Inc.), 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
END
STRINGTABLE DISCARDABLE
diff --git a/reactos/base/applications/mscutils/servman/lang/uk-UA.rc b/reactos/base/applications/mscutils/servman/lang/uk-UA.rc
index cd98bb4b37f..d80653f5165 100644
--- a/reactos/base/applications/mscutils/servman/lang/uk-UA.rc
+++ b/reactos/base/applications/mscutils/servman/lang/uk-UA.rc
@@ -14,7 +14,7 @@ BEGIN
BEGIN
MENUITEM "&Експорт...", ID_EXPORT
MENUITEM SEPARATOR
- MENUITEM "В&ихід", ID_EXIT
+ MENUITEM "&Вихід", ID_EXIT
END
POPUP "Дія"
BEGIN
@@ -110,7 +110,7 @@ BEGIN
END
IDD_DLG_DEPEND DIALOGEX 6,6,253,225
-CAPTION "Dependencies"
+CAPTION "Залежності"
FONT 8, "MS Shell Dlg",0,0
STYLE DS_SHELLFONT | WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP
BEGIN
@@ -151,8 +151,8 @@ BEGIN
LTEXT "Ім'я служби:",IDC_STATIC, 6, 40, 80, 9
LTEXT "", IDC_DEL_NAME, 15, 53, 160, 15
EDITTEXT IDC_DEL_DESC, 6, 73, 174, 48, WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_EX_STATICEDGE | ES_MULTILINE | ES_READONLY
- PUSHBUTTON "Так", IDOK, 26, 129, 54, 13
- DEFPUSHBUTTON "Ні", IDCANCEL, 102, 129, 54, 13
+ PUSHBUTTON "OK", IDOK, 26, 129, 54, 13
+ DEFPUSHBUTTON "Скасувати", IDCANCEL, 102, 129, 54, 13
END
IDD_DLG_HELP_OPTIONS DIALOGEX 6,6,200,150
@@ -161,7 +161,7 @@ FONT 8, "MS Shell Dlg",0,0
STYLE 0x10CF0000
BEGIN
LTEXT "", IDC_CREATE_HELP, 6, 5, 200, 150
- PUSHBUTTON "Ok", IDOK, 75, 130, 44, 13
+ PUSHBUTTON "OK", IDOK, 75, 130, 44, 13
END
IDD_DLG_PROGRESS DIALOGEX 6,6,255,89
@@ -199,9 +199,9 @@ END
STRINGTABLE DISCARDABLE
BEGIN
IDS_NUM_SERVICES "Номер служби: %d"
- IDS_STOP_DEPENDS "When %s stops, these other services will also stop"
+ IDS_STOP_DEPENDS "Коли %s зупинеться, інші служби також буде зупинено"
IDS_NO_DEPENDS ""
- IDS_LICENSE "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 the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
+ IDS_LICENSE "Це вільне програмне забезпечення; Ви можете розповсюджувати її та змінювати, дотримуючись умови Відкритої ліцензійної угоди GNU, опублікованої Фондом вільного програмного забезпечення; або редакції 2 Угоди, або будь-якої редакції, випущеної пізніше.\r\n\r\nЦя програма розповсюджується в надії на те, що вона виявиться корисною, але БЕЗ БУДЬ-ЯКИХ ГАРАНТІЙ, включаючи УЯВНОЮ ГАРАНТІЄЮ ЯКОСТІ або ПРИДАТНОСТІ для певних цілей. Подробиці містяться у Відкритій ліцензійній угоді GNU.\r\n\r\nРазом з цією програмою повинен поширюватися примірник Відкритої ліцензійної угоди GNU. Якщо він відсутній, повідомте про це в Фонд вільного програмного забезпечення (Free Software Foundation, Inc.), 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
END
STRINGTABLE DISCARDABLE
diff --git a/reactos/base/applications/notepad/lang/uk-UA.rc b/reactos/base/applications/notepad/lang/uk-UA.rc
index 20a56ccae03..cd38ff5e3f1 100644
--- a/reactos/base/applications/notepad/lang/uk-UA.rc
+++ b/reactos/base/applications/notepad/lang/uk-UA.rc
@@ -44,7 +44,7 @@ BEGIN
BEGIN
MENUITEM "&Створити\tCtrl+N", CMD_NEW
MENUITEM "&Відкрити...\tCtrl+O", CMD_OPEN
- MENUITEM "&З&берегти\tCtrl+S", CMD_SAVE
+ MENUITEM "&Зберегти\tCtrl+S", CMD_SAVE
MENUITEM "Зберегти &як...", CMD_SAVE_AS
MENUITEM SEPARATOR
MENUITEM "Пара&метри сторінки...", CMD_PAGE_SETUP
@@ -53,40 +53,40 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "В&ихід", CMD_EXIT
END
- POPUP "&Правка"
+ POPUP "Пр&авка"
BEGIN
- MENUITEM "&Скасувати\tCtrl+Z", CMD_UNDO
+ MENUITEM "С&касувати\tCtrl+Z", CMD_UNDO
MENUITEM SEPARATOR
- MENUITEM "&Вирізати\tCtrl+X", CMD_CUT
- MENUITEM "&Копіювати\tCtrl+C", CMD_COPY
- MENUITEM "Вст&авити\tCtrl+V", CMD_PASTE
- MENUITEM "В&идалити\tDel", CMD_DELETE
+ MENUITEM "Вир&ізати\tCtrl+X", CMD_CUT
+ MENUITEM "Копі&ювати\tCtrl+C", CMD_COPY
+ MENUITEM "Вс&тавити\tCtrl+V", CMD_PASTE
+ MENUITEM "Ви&далити\tDel", CMD_DELETE
MENUITEM SEPARATOR
MENUITEM "З&найти...\tCtrl+F", CMD_SEARCH
MENUITEM "Зна&йти далі\tF3", CMD_SEARCH_NEXT
- MENUITEM "&Замінити\tCtrl+H", CMD_REPLACE
- MENUITEM "Перей&ти...\tCtrl+G", CMD_GOTO
+ MENUITEM "Зам&інити\tCtrl+H", CMD_REPLACE
+ MENUITEM "П&ерейти...\tCtrl+G", CMD_GOTO
MENUITEM SEPARATOR
MENUITEM "Виді&лити все\tCtrl+A", CMD_SELECT_ALL
- MENUITEM "&Дата й час\tF5", CMD_TIME_DATE
+ MENUITEM "Дата й &час\tF5", CMD_TIME_DATE
END
- POPUP "Фор&мат"
+ POPUP "Ф&ормат"
BEGIN
- MENUITEM "&Перенос по словах", CMD_WRAP
+ MENUITEM "Перенос по слова&х", CMD_WRAP
MENUITEM "&Шрифт...", CMD_FONT
END
- POPUP "&Вигляд"
+ POPUP "Ви&гляд"
BEGIN
- MENUITEM "&Рядок стану", CMD_STATUSBAR
+ MENUITEM "Ряд&ок стан&у", CMD_STATUSBAR
END
- POPUP "&Довідка"
+ POPUP "Дов&ідка"
BEGIN
- MENUITEM "&Зміст", CMD_HELP_CONTENTS
- MENUITEM "&Пошук...", CMD_HELP_SEARCH
- MENUITEM "&Help on help", CMD_HELP_ON_HELP
+ MENUITEM "Змі&ст", CMD_HELP_CONTENTS
+ MENUITEM "Пош&ук...", CMD_HELP_SEARCH
+ MENUITEM "Використ&ання довідки", CMD_HELP_ON_HELP
MENUITEM SEPARATOR
MENUITEM "&Про" CMD_ABOUT
- MENUITEM "&Про програму", CMD_ABOUT_WINE
+ MENUITEM "Про програм&у", CMD_ABOUT_WINE
END
END
@@ -112,8 +112,8 @@ EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD
LTEXT "&Нижнє:", 0x14E,100, 73, 30, 10, WS_CHILD
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
-DEFPUSHBUTTON "OK", IDOK, 180, 3, 40, 15, WS_TABSTOP
-PUSHBUTTON "Скасувати", IDCANCEL, 180, 21, 40, 15, WS_TABSTOP
+DEFPUSHBUTTON "Так", IDOK, 180, 3, 40, 15, WS_TABSTOP
+PUSHBUTTON "Ні", IDCANCEL, 180, 21, 40, 15, WS_TABSTOP
PUSHBUTTON "&Довідка", IDHELP, 180, 39, 40, 15, WS_TABSTOP
END
@@ -159,7 +159,7 @@ END
STRINGTABLE DISCARDABLE
BEGIN
- STRING_LICENSE, "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 the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
+ STRING_LICENSE, "Це вільне програмне забезпечення; Ви можете розповсюджувати її та змінювати, дотримуючись умови Відкритої ліцензійної угоди GNU, опублікованої Фондом вільного програмного забезпечення; або редакції 2 Угоди, або будь-якої редакції, випущеної пізніше.\r\n\r\nЦя програма розповсюджується в надії на те, що вона виявиться корисною, але БЕЗ БУДЬ-ЯКИХ ГАРАНТІЙ, включаючи УЯВНОЮ ГАРАНТІЄЮ ЯКОСТІ або ПРИДАТНОСТІ для певних цілей. Подробиці містяться у Відкритій ліцензійній угоді GNU.\r\n\r\nРазом з цією програмою повинен поширюватися примірник Відкритої ліцензійної угоди GNU. Якщо він відсутній, повідомте про це в Фонд вільного програмного забезпечення (Free Software Foundation, Inc.), 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
END
STRINGTABLE DISCARDABLE
@@ -200,5 +200,5 @@ STRING_UTF8, "UTF-8"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
-STRING_LINE_COLUMN, "Line %d, column %d"
+STRING_LINE_COLUMN, "Рядок %d, стовпчик %d"
END
diff --git a/reactos/base/applications/paint/lang/uk-UA.rc b/reactos/base/applications/paint/lang/uk-UA.rc
index f50096b90bc..088da2949c9 100644
--- a/reactos/base/applications/paint/lang/uk-UA.rc
+++ b/reactos/base/applications/paint/lang/uk-UA.rc
@@ -200,6 +200,6 @@ BEGIN
IDS_TOOLTIP16, "Прямокутник з округленими кутами"
IDS_OPENFILTER, "Точкові рисунки (*.bmp;*.dib)\1*.bmp;*.dib\1Усі файли (*.*)\1*.*\1"
IDS_SAVEFILTER, "24-розрядний рисунок (*.bmp;*.dib)\1*.bmp;*.dib\1"
- IDS_FILESIZE, "%d bytes"
- IDS_PRINTRES, "%d x %d pixels per meter"
+ IDS_FILESIZE, "%d байт"
+ IDS_PRINTRES, "%d x %d пікселів на метр"
END
diff --git a/reactos/base/applications/rapps/lang/en-US.rc b/reactos/base/applications/rapps/lang/en-US.rc
index 39ca7b47a26..f8d018923dc 100644
--- a/reactos/base/applications/rapps/lang/en-US.rc
+++ b/reactos/base/applications/rapps/lang/en-US.rc
@@ -59,10 +59,10 @@ BEGIN
AUTOCHECKBOX "&Log of installation and removal of programs", IDC_LOG_ENABLED, 15, 46, 219, 12
GROUPBOX "Downloading", -1, 4, 65, 240, 51
- LTEXT "Folder for downloadings:", -1, 16, 75, 100, 9
+ LTEXT "Downloads folder:", -1, 16, 75, 100, 9
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP
PUSHBUTTON "&Choose", IDC_CHOOSE, 187, 85, 50, 14
- AUTOCHECKBOX "&Delete installers of programs after installation", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12
+ AUTOCHECKBOX "&Delete program installer after installation", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12
PUSHBUTTON "Default", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14
PUSHBUTTON "OK", IDOK, 116, 124, 60, 14
@@ -184,9 +184,9 @@ BEGIN
IDS_AVAILABLEFORINST "Available for installation"
IDS_UPDATES "Updates"
IDS_APPLICATIONS "Applications"
- IDS_CHOOSE_FOLDER_TEXT "Choose a folder which will be used for downloading of programs:"
- IDS_CHOOSE_FOLDER_ERROR "You have specified a nonexistent folder!"
- IDS_USER_NOT_ADMIN "You should be administrator for start ""ReactOS Applications Manager""!"
+ IDS_CHOOSE_FOLDER_TEXT "Choose a folder which will store Downloads:"
+ IDS_CHOOSE_FOLDER_ERROR "The folder you have specified does not exist."
+ IDS_USER_NOT_ADMIN "You must be an administrator to start ""ReactOS Applications Manager""!"
IDS_APP_REG_REMOVE "Are you sure you want to delete the data on the installed program from the registry?"
IDS_INFORMATION "Information"
IDS_UNABLE_TO_REMOVE "Unable to remove data on the program from the registry!"
diff --git a/reactos/base/applications/rapps/lang/uk-UA.rc b/reactos/base/applications/rapps/lang/uk-UA.rc
index 27c47a786a4..95e4056dba5 100644
--- a/reactos/base/applications/rapps/lang/uk-UA.rc
+++ b/reactos/base/applications/rapps/lang/uk-UA.rc
@@ -19,17 +19,17 @@ BEGIN
POPUP "&Програми"
BEGIN
MENUITEM "&Встановити", ID_INSTALL
- MENUITEM "&Видалити",ID_UNINSTALL
+ MENUITEM "Вид&алити",ID_UNINSTALL
MENUITEM "&Змінити", ID_MODIFY
MENUITEM SEPARATOR
- MENUITEM "&Remove from Registry", ID_REGREMOVE
+ MENUITEM "Вида&лити з реєстру", ID_REGREMOVE
MENUITEM SEPARATOR
MENUITEM "&Оновити", ID_REFRESH
END
- POPUP "Довідка"
+ POPUP "&Довідка"
BEGIN
- MENUITEM "Довідка", ID_HELP, GRAYED
- MENUITEM "Про програму...", ID_ABOUT
+ MENUITEM "Дов&ідка", ID_HELP, GRAYED
+ MENUITEM "Про про&граму...", ID_ABOUT
END
END
@@ -47,10 +47,10 @@ BEGIN
POPUP "popup"
BEGIN
MENUITEM "&Встановити", ID_INSTALL
- MENUITEM "&Видалити", ID_UNINSTALL
+ MENUITEM "В&идалити", ID_UNINSTALL
MENUITEM "&Змінити", ID_MODIFY
MENUITEM SEPARATOR
- MENUITEM "&Remove from Registry", ID_REGREMOVE
+ MENUITEM "Вид&алити з реєстру", ID_REGREMOVE
MENUITEM SEPARATOR
MENUITEM "&Оновити", ID_REFRESH
END
@@ -58,37 +58,37 @@ END
IDD_SETTINGS_DIALOG DIALOGEX DISCARDABLE 0, 0, 250, 144
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Settings"
+CAPTION "Налаштування"
FONT 8, "MS Shell Dlg"
BEGIN
- GROUPBOX "General", -1, 4, 2, 240, 61
- AUTOCHECKBOX "&Save window position", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
- AUTOCHECKBOX "&Update the list of accessible programs at start", IDC_UPDATE_AVLIST, 15, 29, 219, 12
- AUTOCHECKBOX "&Log of installation and removal of programs", IDC_LOG_ENABLED, 15, 46, 219, 12
+ GROUPBOX "Загальні", -1, 4, 2, 240, 61
+ AUTOCHECKBOX "&Зберігати положення вікна", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
+ AUTOCHECKBOX "&Оновлювати список наявних програм при запуску", IDC_UPDATE_AVLIST, 15, 29, 219, 12
+ AUTOCHECKBOX "&Вести лог встановлення/видалення програм", IDC_LOG_ENABLED, 15, 46, 219, 12
- GROUPBOX "Downloading", -1, 4, 65, 240, 51
- LTEXT "Folder for downloadings:", -1, 16, 75, 100, 9
+ GROUPBOX "Завантаження", -1, 4, 65, 240, 51
+ LTEXT "Тека для завантажень:", -1, 16, 75, 100, 9
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP
- PUSHBUTTON "&Choose", IDC_CHOOSE, 187, 85, 50, 14
- AUTOCHECKBOX "&Delete installers of programs after installation", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12
+ PUSHBUTTON "&Обрати", IDC_CHOOSE, 187, 85, 50, 14
+ AUTOCHECKBOX "&Видаляти інсталятори програм після встановлення", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12
- PUSHBUTTON "Default", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14
+ PUSHBUTTON "За замовчуванням", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14
PUSHBUTTON "OK", IDOK, 116, 124, 60, 14
- PUSHBUTTON "Cancel", IDCANCEL, 181, 124, 60, 14
+ PUSHBUTTON "Скасувати", IDCANCEL, 181, 124, 60, 14
END
IDD_INSTALL_DIALOG DIALOGEX DISCARDABLE 0, 0, 216, 97
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Program installation"
+CAPTION "Встановлення програми"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35
- AUTORADIOBUTTON "&Install from a disk (CD or DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
- AUTORADIOBUTTON "&Download and install", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
+ AUTORADIOBUTTON "&Встановити з диску", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP
+ AUTORADIOBUTTON "&Завантажити та встановити", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP
PUSHBUTTON "OK", IDOK, 86, 78, 60, 14
- PUSHBUTTON "Cancel", IDCANCEL, 150, 78, 60, 14
+ PUSHBUTTON "Скасувати", IDCANCEL, 150, 78, 60, 14
END
IDD_DOWNLOAD_DIALOG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
@@ -192,10 +192,10 @@ BEGIN
IDS_AVAILABLEFORINST "Доступні для встановлення"
IDS_UPDATES "Оновлення"
IDS_APPLICATIONS "Додатки"
- IDS_CHOOSE_FOLDER_TEXT "Choose a folder which will be used for downloading of programs:"
- IDS_CHOOSE_FOLDER_ERROR "You have specified a nonexistent folder!"
- IDS_USER_NOT_ADMIN "You should be administrator for start ""ReactOS Applications Manager""!"
- IDS_APP_REG_REMOVE "Are you sure you want to delete the data on the installed program from the registry?"
- IDS_INFORMATION "Information"
- IDS_UNABLE_TO_REMOVE "Unable to remove data on the program from the registry!"
+ IDS_CHOOSE_FOLDER_TEXT "Оберіть теку, яка буде використовуватися для завантаження програм:"
+ IDS_CHOOSE_FOLDER_ERROR "Ви вказали неіснуючу теку!"
+ IDS_USER_NOT_ADMIN "Ви повинні бути адміністратором для запуску ""Менеджера програм ReactOS""!"
+ IDS_APP_REG_REMOVE "Ви дійсно хочете видалити дані про встановлену програму з реєстру?"
+ IDS_INFORMATION "Інформація"
+ IDS_UNABLE_TO_REMOVE "Не вдалося видалити дані про програму з реєстру!"
END
diff --git a/reactos/base/applications/regedit/lang/uk-UA.rc b/reactos/base/applications/regedit/lang/uk-UA.rc
index 5fd845524b0..ff7d13965e4 100644
--- a/reactos/base/applications/regedit/lang/uk-UA.rc
+++ b/reactos/base/applications/regedit/lang/uk-UA.rc
@@ -41,13 +41,13 @@ BEGIN
END
POPUP "&Довідка"
BEGIN
- MENUITEM "&Про програму", ID_HELP_ABOUT
+ MENUITEM "Пр&о програму", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU DISCARDABLE
BEGIN
- POPUP "&Файл"
+ POPUP "Фа&йл"
BEGIN
MENUITEM "&Імпорт...", ID_REGISTRY_IMPORTREGISTRYFILE
@@ -68,7 +68,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "В&ихід", ID_REGISTRY_EXIT
END
- POPUP "&Правка"
+ POPUP "Пра&вка"
BEGIN
MENUITEM "&Змінити", ID_EDIT_MODIFY
MENUITEM SEPARATOR
@@ -83,7 +83,7 @@ BEGIN
MENUITEM "Роз&ширюване строкове значення", ID_EDIT_NEW_EXPANDABLESTRINGVALUE
END
MENUITEM SEPARATOR
- MENUITEM "&Дозволи...", ID_EDIT_PERMISSIONS
+ MENUITEM "Дозв&оли...", ID_EDIT_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "В&идалити\tDel", ID_EDIT_DELETE
MENUITEM "Перей&менувати", ID_EDIT_RENAME
@@ -101,7 +101,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Оновити\tF5", ID_VIEW_REFRESH
END
- POPUP "&Обране"
+ POPUP "Обр&ане"
BEGIN
MENUITEM "&Додати в обране", ID_FAVOURITES_ADDTOFAVOURITES
, GRAYED
@@ -135,8 +135,8 @@ BEGIN
MENUITEM "&Рядкове значення", ID_EDIT_NEW_STRINGVALUE
MENUITEM "&Двійкове значення", ID_EDIT_NEW_BINARYVALUE
MENUITEM "&DWORD значення", ID_EDIT_NEW_DWORDVALUE
- MENUITEM "&Multi-String Value", ID_EDIT_NEW_MULTISTRINGVALUE
- MENUITEM "&Expandable String Value", ID_EDIT_NEW_EXPANDABLESTRINGVALUE
+ MENUITEM "&Багаторядкове значення", ID_EDIT_NEW_MULTISTRINGVALUE
+ MENUITEM "&Розширене рядкове значення", ID_EDIT_NEW_EXPANDABLESTRINGVALUE
END
END
POPUP ""
@@ -149,8 +149,8 @@ BEGIN
MENUITEM "&Рядкове значення", ID_EDIT_NEW_STRINGVALUE
MENUITEM "&Двійкове значення", ID_EDIT_NEW_BINARYVALUE
MENUITEM "&DWORD значення", ID_EDIT_NEW_DWORDVALUE
- MENUITEM "&Multi-String Value", ID_EDIT_NEW_MULTISTRINGVALUE
- MENUITEM "&Expandable String Value", ID_EDIT_NEW_EXPANDABLESTRINGVALUE
+ MENUITEM "&Багаторядкове значення", ID_EDIT_NEW_MULTISTRINGVALUE
+ MENUITEM "&Розширене рядкове значення", ID_EDIT_NEW_EXPANDABLESTRINGVALUE
END
MENUITEM "З&найти", ID_EDIT_FIND
MENUITEM SEPARATOR
@@ -328,7 +328,7 @@ END
STRINGTABLE DISCARDABLE
BEGIN
- IDS_FLT_REGFILE "Registration File"
+ IDS_FLT_REGFILE "Файл реєстру"
IDS_FLT_REGFILES "Файли реєстру"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_REGEDIT4 "Файли реєстру Win9x/NT4 (REGEDIT4)"
@@ -339,7 +339,7 @@ END
STRINGTABLE DISCARDABLE
BEGIN
- IDS_ACCESS_FULLCONTROL "Full Control"
+ IDS_ACCESS_FULLCONTROL "Повний контроль"
IDS_ACCESS_READ "Читання"
IDS_ACCESS_QUERYVALUE "Запит значення"
IDS_ACCESS_SETVALUE "Установлення значення"
@@ -350,7 +350,7 @@ BEGIN
IDS_ACCESS_DELETE "Видалення"
IDS_ACCESS_WRITEDAC "Запис DAC"
IDS_ACCESS_WRITEOWNER "Запис власника"
- IDS_ACCESS_READCONTROL "Read Control"
+ IDS_ACCESS_READCONTROL "Читання дозволу"
END
STRINGTABLE DISCARDABLE
diff --git a/reactos/base/applications/sndrec32/lang/uk-UA.rc b/reactos/base/applications/sndrec32/lang/uk-UA.rc
new file mode 100644
index 00000000000..ee659ee0d9c
--- /dev/null
+++ b/reactos/base/applications/sndrec32/lang/uk-UA.rc
@@ -0,0 +1,62 @@
+/*
+ * PROJECT: ReactOS Sound Volume Control
+ * LICENSE: GPL - See COPYING in the top level directory
+ * FILE: base/applications/sndrec32/lang/uk-UA.rc
+ * PURPOSE: Ukraianian Language File for Volume Control
+ * TRANSLATOR: Sakara Yevhen
+ */
+
+ LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
+
+IDC_REACTOS_SNDREC32 ACCELERATORS
+BEGIN
+ "?", IDM_ABOUT, ASCII, ALT
+ "/", IDM_ABOUT, ASCII, ALT
+END
+
+IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Інформація про reactOS_sndrec32"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+ ICON 128,IDC_REACTOS_SNDREC32,19,14,21,20
+ LTEXT "reactOS_sndrec32, версії 1.0",IDC_STATIC,56,16,114,8,SS_NOPREFIX
+ LTEXT "Copyright (C) 2009",IDC_STATIC,55,25,114,8
+ DEFPUSHBUTTON "OK",IDOK,139,54,50,14,WS_GROUP
+END
+
+IDR_MENU1 MENU
+BEGIN
+ POPUP "Файл"
+ BEGIN
+ MENUITEM "Новий", ID_NEW
+ MENUITEM "Відкрити...", ID_FILE_OPEN
+ MENUITEM "Зберегти", ID_FILE_SAVE, GRAYED
+ MENUITEM "Зберегти як...", ID_FILE_SAVEAS, GRAYED
+ MENUITEM SEPARATOR
+ MENUITEM "Вихід", ID_EXIT
+ END
+ MENUITEM "todo1", 0
+ MENUITEM "todo2", 0
+ POPUP "?"
+ BEGIN
+ MENUITEM "Про програму...", ID__ABOUT
+ END
+END
+
+STRINGTABLE
+BEGIN
+ IDS_APP_TITLE "Звукозапис"
+ IDC_REACTOS_SNDREC32 "REACTOS_SNDREC32"
+END
+
+STRINGTABLE
+BEGIN
+ IDS_STRPOS "Позиція: %.2f s"
+ IDS_STRDUR "Довжина: %.2f s"
+ IDS_STRBUF "Буфер: %.2f kb"
+ IDS_STRFMT "%.1f kHz %u bits"
+ IDS_STRMONO "моно"
+ IDS_STRSTEREO "стерео"
+ IDS_STRCHAN "%s"
+END
diff --git a/reactos/base/applications/sndrec32/rsrc.rc b/reactos/base/applications/sndrec32/rsrc.rc
index 82b24ccdcf1..a07dd405852 100644
--- a/reactos/base/applications/sndrec32/rsrc.rc
+++ b/reactos/base/applications/sndrec32/rsrc.rc
@@ -22,4 +22,5 @@ IDB_BITMAP2_STOP_DIS BITMAP "resources/but_stop_dis.bmp"
#include "lang/it-IT.rc"
#include "lang/ja-JP.rc"
#include "lang/sk-SK.rc"
+#include "lang/uk-UA.rc"
diff --git a/reactos/base/applications/sndvol32/lang/uk-UA.rc b/reactos/base/applications/sndvol32/lang/uk-UA.rc
index bdbd9b7af05..92ea581bf7d 100644
--- a/reactos/base/applications/sndvol32/lang/uk-UA.rc
+++ b/reactos/base/applications/sndvol32/lang/uk-UA.rc
@@ -1,7 +1,7 @@
/*
* PROJECT: ReactOS Sound Volume Control
* LICENSE: GPL - See COPYING in the top level directory
- * FILE: base/applications/sndvol32/Uk.rc
+ * FILE: base/applications/sndvol32/lang/uk-UA.rc
* PURPOSE: Ukraianian Language File for Volume Control
* TRANSLATOR: Artem Reznikov
*/
@@ -17,7 +17,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "В&ихід", IDC_EXIT
END
- POPUP "&Довідка"
+ POPUP "До&відка"
BEGIN
MENUITEM "&Зміст", IDC_HELP_TOPICS
MENUITEM SEPARATOR
diff --git a/reactos/base/applications/taskmgr/lang/uk-UA.rc b/reactos/base/applications/taskmgr/lang/uk-UA.rc
index f983976ef14..2b8fb82b7cc 100644
--- a/reactos/base/applications/taskmgr/lang/uk-UA.rc
+++ b/reactos/base/applications/taskmgr/lang/uk-UA.rc
@@ -151,7 +151,7 @@ BEGIN
END
MENUITEM "У&становити відповідність...", ID_PROCESS_PAGE_SETAFFINITY
- MENUITEM "Edit Debug &Channels...", ID_PROCESS_PAGE_DEBUGCHANNELS
+ MENUITEM "Редагувати налагодження &потоків...", ID_PROCESS_PAGE_DEBUGCHANNELS
END
END
@@ -192,7 +192,7 @@ BEGIN
WS_BORDER | WS_TABSTOP,7,7,233,177
PUSHBUTTON "Зн&яти завдання",IDC_ENDPROCESS,171,189,69,14
CONTROL "&Відображати процеси всіх користувачів",IDC_SHOWALLPROCESSES,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,191,111,10
+ "Кнопка",BS_AUTOCHECKBOX | WS_TABSTOP,7,191,111,10
END
//IDD_PERFORMANCE_PAGE DIALOGEX 0, 0, 247, 210
@@ -270,8 +270,8 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Відповідність процесорів"
FONT 8, "MS Shell Dlg"
BEGIN
- DEFPUSHBUTTON "OK",IDOK,120,133,50,14
- PUSHBUTTON "Скасувати",IDCANCEL,174,133,50,14
+ DEFPUSHBUTTON "Так",IDOK,120,133,50,14
+ PUSHBUTTON "Ні",IDCANCEL,174,133,50,14
LTEXT "Параметр відповідності процесорів визначає, на якому ЦП буде дозволено виконувати процес.",
IDC_STATIC,5,5,220,16
CONTROL "ЦП 0",IDC_CPU0,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,
@@ -345,8 +345,8 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Вибір стовпців"
FONT 8, "MS Shell Dlg"
BEGIN
- DEFPUSHBUTTON "OK",IDOK,84,178,50,14
- PUSHBUTTON "Скасувати",IDCANCEL,138,178,50,14
+ DEFPUSHBUTTON "Так",IDOK,84,178,50,14
+ PUSHBUTTON "Ні",IDCANCEL,138,178,50,14
LTEXT "Виберіть стовпці, які слід відображати на вкладці Процес диспетчера завдань.",
IDC_STATIC,7,7,181,17
CONTROL "&Ім'я образу",IDC_IMAGENAME,"Button",BS_AUTOCHECKBOX |
diff --git a/reactos/base/services/umpnpmgr/umpnpmgr.c b/reactos/base/services/umpnpmgr/umpnpmgr.c
index 7488400a065..8dc8a16e031 100644
--- a/reactos/base/services/umpnpmgr/umpnpmgr.c
+++ b/reactos/base/services/umpnpmgr/umpnpmgr.c
@@ -831,8 +831,24 @@ DWORD PNP_CreateKey(
DWORD samDesired,
DWORD ulFlags)
{
- UNIMPLEMENTED;
- return CR_CALL_NOT_IMPLEMENTED;
+ HKEY hKey = 0;
+
+ if (RegCreateKeyExW(HKEY_LOCAL_MACHINE,
+ pszSubKey,
+ 0,
+ NULL,
+ 0,
+ KEY_ALL_ACCESS,
+ NULL,
+ &hKey,
+ NULL))
+ return CR_REGISTRY_ERROR;
+
+ /* FIXME: Set security key */
+
+ RegCloseKey(hKey);
+
+ return CR_SUCCESS;
}
diff --git a/reactos/base/setup/reactos/lang/uk-UA.rc b/reactos/base/setup/reactos/lang/uk-UA.rc
index 7472244c6f5..0a5c407f4d1 100644
--- a/reactos/base/setup/reactos/lang/uk-UA.rc
+++ b/reactos/base/setup/reactos/lang/uk-UA.rc
@@ -3,7 +3,7 @@
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base\setup\reactos\lang\uk-UA.rc
* PURPOSE: Ukraianian Language File for ReactOS Setup
- * TRANSLATOR: Sakara Yevhen
+ * TRANSLATOR: Artem Reznikov, Sakara Yevhen
*/
LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
@@ -83,8 +83,8 @@ BEGIN
LTEXT "Гб",IDC_UNIT, 117,24,14,9
LTEXT "Файлова система:",IDC_STATIC,13,46,35,9
CONTROL "",IDC_FSTYPE,"ComboBox",WS_VISIBLE|WS_TABSTOP|CBS_DROPDOWNLIST,52,42,79,50
- PUSHBUTTON "&Так",IDOK,35,68,47,15, WS_VISIBLE|WS_TABSTOP
- PUSHBUTTON "&Ні",IDCANCEL,87,68,47,15, WS_VISIBLE|WS_TABSTOP
+ PUSHBUTTON "&OK",IDOK,35,68,47,15, WS_VISIBLE|WS_TABSTOP
+ PUSHBUTTON "&Скасувати",IDCANCEL,87,68,47,15, WS_VISIBLE|WS_TABSTOP
END
IDD_BOOTOPTIONS DIALOGEX DISCARDABLE 0, 0, 305, 105
@@ -99,8 +99,8 @@ BEGIN
CONTROL "Встановити завантажувач на диск (MBR)", IDC_INSTFREELDR, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 10,46,278,11
CONTROL "Не встановлювати завантажувач", IDC_NOINSTFREELDR, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED , 10,57,278,11
- PUSHBUTTON "&Так", IDOK, 180,83,50,15, WS_TABSTOP | WS_VISIBLE
- PUSHBUTTON "&Ні", IDCANCEL, 240,83,50,15, WS_TABSTOP | WS_VISIBLE
+ PUSHBUTTON "&OK", IDOK, 180,83,50,15, WS_TABSTOP | WS_VISIBLE
+ PUSHBUTTON "&Скасувати", IDCANCEL, 240,83,50,15, WS_TABSTOP | WS_VISIBLE
END
IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193
diff --git a/reactos/base/setup/usetup/lang/uk-UA.h b/reactos/base/setup/usetup/lang/uk-UA.h
index c4540b409ff..e331c0c1a2e 100644
--- a/reactos/base/setup/usetup/lang/uk-UA.h
+++ b/reactos/base/setup/usetup/lang/uk-UA.h
@@ -1,3 +1,8 @@
+/*
+ * translated by Artem Reznikov, Igor Paliychuk, 2010
+ * http://www.reactos.org/uk/
+ */
+
#ifndef LANG_UK_UA_H__
#define LANG_UK_UA_H__
@@ -13,7 +18,7 @@ static MUI_ENTRY ukUALanguagePageEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
@@ -25,26 +30,26 @@ static MUI_ENTRY ukUALanguagePageEntries[] =
{
8,
10,
- "\x07 Please choose the language used for the installation process.",
+ "\x07 Ѓг¤м-« бЄ , ўЁЎҐаiвм ¬®ўг, пЄ Ўг¤Ґ ўЁЄ®аЁбв Їi¤ з б ўбв ®ў«Ґп.",
TEXT_STYLE_NORMAL
},
{
8,
11,
- " Then press ENTER.",
+ " i вЁбiвм ENTER.",
TEXT_STYLE_NORMAL
},
{
8,
13,
- "\x07 This Language will be the default language for the final system.",
+ "\x07 –п ¬®ў Ўг¤Ґ ўЁЄ®аЁбв®ўгў вЁбм Ї® § ¬®ўзгў о г ўбв ®ў«Ґi© бЁб⥬i.",
TEXT_STYLE_NORMAL
},
{
0,
0,
- " ENTER=Џа®¤®ў¦ЁвЁ F3=‚Ёеi¤",
- TEXT_TYPE_STATUS
+ "ENTER = Џа®¤®ў¦ЁвЁ F3 = ‚Ё©вЁ",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
0,
@@ -59,55 +64,55 @@ static MUI_ENTRY ukUAWelcomePageEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
6,
8,
- "‹ бЄ ў® Їа®бЁ¬® ¤® Їа®Ја ¬Ё гбв ®ўЄЁ ReactOS",
+ "‹ бЄ ў® Їа®бЁ¬® ¤® Їа®Ја ¬Ё ўбв ®ў«Ґп ReactOS",
TEXT_STYLE_HIGHLIGHT
},
{
6,
11,
- "–п з бвЁ гбв ®ўЄЁ Є®Їiоу ®ЇҐа жi©г бЁб⥬г ReactOS г ‚ и",
+ "Ќ ж쮬㠥⠯i ўбв ®ў«Ґп ўi¤Ўг¤Ґвмбп Є®Їiоў п ReactOS ‚ и",
TEXT_STYLE_NORMAL
},
{
6,
12,
- "Є®¬Ї'овҐа i Ј®вгу ¤агЈг з бвЁг гбв ®ўЄЁ.",
+ "Є®¬Ї'овҐа i Їi¤Ј®в®ўЄ ¤® ¤агЈ®Ј® Ґв Їг ўбв ®ў«Ґп.",
TEXT_STYLE_NORMAL
},
{
8,
15,
- "\x07 Ќ вЁбiвм й®Ў гбв ЁвЁ ReactOS.",
+ "\x07 Ќ вЁбiвм ENTER й®Ў ўбв ®ўЁвЁ ReactOS.",
TEXT_STYLE_NORMAL
},
{
8,
17,
- "\x07 Ќ вЁбiвм й®Ў ўi¤®ўЁвЁ ReactOS.",
+ "\x07 Ќ вЁбiвм R ¤«п ®®ў«Ґп ReactOS.",
TEXT_STYLE_NORMAL
},
{
8,
19,
- "\x07 Ќ вЁбiвм й®Ў ЇҐаҐЈ«пгвЁ «i楧i©i 㬮ўЁ ReactOS",
+ "\x07 Ќ вЁбiвм L ¤«п ЇҐаҐЈ«п¤г «i楧i©Ёе 㬮ў ReactOS",
TEXT_STYLE_NORMAL
},
{
8,
21,
- "\x07 Ќ вЁбiвм й®Ў ўЁ©вЁ, Ґ ўбв ®ў«оозЁ ReactOS.",
+ "\x07 Ќ вЁбiвм F3 й®Ў ўЁ©вЁ. Ґ ўбв ®ў«оозЁ ReactOS.",
TEXT_STYLE_NORMAL
},
{
6,
23,
- "„«п Ўi«ми Є®ЄаҐв®х iд®а¬ жiх Їа® ReactOS, Ўг¤м « бЄ ўi¤ўi¤ ©вҐ:",
+ "„«п ®ваЁ¬ п ¤Ґв «мiи®х iд®а¬ жiх Їа® ReactOS, Ўг¤м-« бЄ ўi¤ўi¤ ©вҐ:",
TEXT_STYLE_NORMAL
},
{
@@ -119,8 +124,8 @@ static MUI_ENTRY ukUAWelcomePageEntries[] =
{
0,
0,
- " ENTER=Џа®¤®ў¦ЁвЁ R=‚i¤®ўЁвЁ F3=‚Ёеi¤",
- TEXT_TYPE_STATUS
+ "ENTER = Џа®¤®ў¦ЁвЁ R = ‚i¤®ўЁвЁ L = ‹i楧iп F3 = ‚Ё©вЁ",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
0,
@@ -135,49 +140,49 @@ static MUI_ENTRY ukUAIntroPageEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
6,
8,
- "ReactOS § 室Ёвмбп ў а i© бв ¤iх а®§а®ЎЄЁ i Ґ Їi¤ваЁ¬гу ўбi",
+ "‚бв ®ў«оў з ReactOS § 室Ёвмбп ў а i© бв ¤iх а®§а®ЎЄЁ i йҐ Ґ",
TEXT_STYLE_NORMAL
},
{
6,
9,
- "Їi¤ваЁ¬г©вҐ ўбi дгЄжiх Ї®ў®жi®Ј® ¤®¤ вЄг гбв ®ўЄЁ.",
+ "Їi¤ваЁ¬гу ўбi дгЄжiх Ї®ў®жi®х Їа®Ја ¬Ё ўбв ®ў«Ґп.",
TEXT_STYLE_NORMAL
},
{
6,
12,
- "т бвгЇi ®Ў¬Ґ¦Ґп:",
+ "ЏаЁбгвi бвгЇi ®Ў¬Ґ¦Ґп:",
TEXT_STYLE_NORMAL
},
{
8,
13,
- "- “бв ®ўЄ ¬®¦«Ёў вi«мЄЁ ЇҐаўЁЁ© а®§¤i« ¤ЁбЄ .",
+ "- ‚бв ®ў«оў з Ґ Їi¤ваЁ¬гу Ўi«миҐ i¦ ®¤Ё ЇҐаўЁЁ© а®§¤i« ¤ЁбЄ.",
TEXT_STYLE_NORMAL
},
{
8,
14,
- "- ЏаЁ гбв ®ўжi Ґ ¬®¦ ўЁ¤ «ЁвЁ ЇҐаўЁЁ© а®§¤i« ¤ЁбЄ ",
+ "- ‚бв ®ў«оў з Ґ ¬®¦Ґ ўЁ¤ «ЁвЁ ЇҐаўЁЁ© а®§¤i« § ¤ЁбЄг",
TEXT_STYLE_NORMAL
},
{
8,
15,
- " Ї®ЄЁ ¤ЁбЄг у а®§иЁаҐЁ© а®§¤i«.",
+ " Ї®ЄЁ ¤ЁбЄг пўЁ© а®§иЁаҐЁ© а®§¤i«.",
TEXT_STYLE_NORMAL
},
{
8,
16,
- "- ЏаЁ гбв ®ўжi Ґ ¬®¦ ўЁ¤ «ЁвЁ ЇҐаиЁ© а®§иЁаҐЁ© а®§¤i« § ¤ЁбЄ ",
+ "- ‚бв ®ў«оў з Ґ ¬®¦Ґ ўЁ¤ «ЁвЁ ЇҐаиЁ© а®§иЁаҐЁ© а®§¤i« § ¤ЁбЄг",
TEXT_STYLE_NORMAL
},
{
@@ -189,32 +194,32 @@ static MUI_ENTRY ukUAIntroPageEntries[] =
{
8,
18,
- "- ЏаЁ гбв ®ўжi Їi¤ваЁ¬гувмбп вi«мЄЁ д ©«®ў бЁб⥬ FAT.",
+ "- ‚бв ®ў«оў з Їi¤ваЁ¬гу «ЁиҐ д ©«®ўг бЁб⥬г FAT.",
TEXT_STYLE_NORMAL
},
{
8,
19,
- "- ЏҐаҐўiаЄ д ©«®ў®х бЁб⥬Ё Ґ §¤i©боувмбп.",
+ "- ЏҐаҐўiаЄ д ©«®ў®х бЁб⥬Ё йҐ Ґ ўЇа®ў ¤¦Ґ .",
TEXT_STYLE_NORMAL
},
{
8,
23,
- "\x07 Ќ вЁбiвм ¤«п гбв ®ўЄЁ ReactOS.",
+ "\x07 Ќ вЁбiвм ENTER й®Ў ўбв ®ўЁвЁ ReactOS.",
TEXT_STYLE_NORMAL
},
{
8,
25,
- "\x07 Ќ вЁбiвм ¤«п ўЁе®¤г § гбв ®ўЄЁ ReactOS.",
+ "\x07 Ќ вЁбiвм F3 й®Ў ўЁ©вЁ, Ґ ўбв ®ў«оозЁ ReactOS.",
TEXT_STYLE_NORMAL
},
{
0,
0,
- " ENTER=Џа®¤®ў¦ЁвЁ F3=‚Ёеi¤",
- TEXT_TYPE_STATUS
+ "ENTER = Џа®¤®ў¦ЁвЁ F3 = ‚Ё©вЁ",
+ TEXT_TYPE_STATUS| TEXT_PADDING_BIG
},
{
0,
@@ -229,7 +234,7 @@ static MUI_ENTRY ukUALicensePageEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
@@ -241,19 +246,19 @@ static MUI_ENTRY ukUALicensePageEntries[] =
{
8,
8,
- "ReactOS «i楧®ў ўi¤Ї®ўi¤® ¤® ‚i¤ЄаЁв®х «i楧i©®х",
+ "ReactOS «i楧®ў ® ўi¤Ї®ўi¤® ¤® 㬮ў",
TEXT_STYLE_NORMAL
},
{
8,
9,
- "гЈ®¤Ё GNU GPL i ¬iбвЁвм Є®¬Ї®ҐвЁ, пЄi Ї®иЁаоовмбп",
+ "GNU GPL. ’ Є®¦ ReactOS ¬iбвЁвм Є®¬Ї®ҐвЁ, пЄi «i楧®ў ®",
TEXT_STYLE_NORMAL
},
{
8,
10,
- "§ бг¬iбЁ¬Ё «i楧iп¬Ё: X11, BSD i GNU LGPL.",
+ "§ бг¬iбЁ¬Ё «i楧iп¬Ё: X11, BSD, GNU LGPL.",
TEXT_STYLE_NORMAL
},
{
@@ -271,19 +276,19 @@ static MUI_ENTRY ukUALicensePageEntries[] =
{
8,
13,
- "ЇҐаўЁi© «i楧iх.",
+ "ЇҐаўЁЁе «i楧iх.",
TEXT_STYLE_NORMAL
},
{
8,
15,
- "„ Ґ Їа®Ја ¬Ґ § ЎҐ§ЇҐзҐп Ї®бв ў«пувмбп Ѓ…‡ ѓЂђЂЌ’iф i ЎҐ§ ®Ў¬Ґ¦Ґм",
+ "„ Ґ Їа®Ја ¬Ґ § ЎҐ§ЇҐзҐп Ї®бв ў«пувмбп Ѓ…‡ ѓЂђЂЌ’Iф i ЎҐ§ ®Ў¬Ґ¦Ґм",
TEXT_STYLE_NORMAL
},
{
8,
16,
- "г ўЁЄ®аЁбв i, пЄ ў ¬iб楢®¬г, в Є i ¬i¦ த®¬г Їа ўi",
+ "г ўЁЄ®аЁбв i, пЄ § ¬iб楢Ё¬, в Є i ¬i¦ தЁ¬ Їа ў®¬",
TEXT_STYLE_NORMAL
},
{
@@ -319,26 +324,26 @@ static MUI_ENTRY ukUALicensePageEntries[] =
{
8,
24,
- "–Ґ ўi«мҐ Їа®Ја ¬Ґ § ЎҐ§ЇҐзҐп; ¤Ёў. ¤¦ҐаҐ«® ¤«п ЇҐаҐЈ«п¤г Їа ў.",
+ "–Ґ у ўi«мҐ Їа®Ја ¬Ґ § ЎҐ§ЇҐзҐп; ¤Ёў. ¤¦ҐаҐ«® ¤«п ЇҐаҐЈ«п¤г Їа ў.",
TEXT_STYLE_NORMAL
},
{
8,
25,
- "Ќ…ЊЂт ЌiџЉ€• ѓЂђЂЌ’i‰; Ґ¬ у Ј а вiх ’Ћ‚ЂђЌЋѓЋ ‘’ЂЌ“ Ў®",
+ "ЌҐ ¤ овмбп ЌIџЉI Ј а вiх; i Ј а вiх ’Ћ‚ЂђЌЋѓЋ ‘’ЂЌ“, i ",
TEXT_STYLE_NORMAL
},
{
8,
26,
- "Џђ€„Ђ’ЌЋ‘’i „‹џ ЉЋЌЉђ…’Ќ€• –i‹…‰",
+ "Џђ€„Ђ’ЌЋ‘’I „‹џ ЉЋЌЉђ…’Ќ€• –I‹…‰",
TEXT_STYLE_NORMAL
},
{
0,
0,
- " ENTER=Џ®ўҐагвЁбп",
- TEXT_TYPE_STATUS
+ "ENTER = Џ®ўҐагвЁбм",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
0,
@@ -353,44 +358,44 @@ static MUI_ENTRY ukUADevicePageEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
6,
8,
- "“ бЇЁбЄг Ё¦зҐ ЇаЁўҐ¤Ґi ЇаЁбва®х i хе Ї а ¬ҐваЁ.",
+ "“ бЇЁбЄг Ё¦зҐ ЇаЁўҐ¤Ґi Ї®в®зi Ї а ¬ҐваЁ ЇаЁбва®хў.",
TEXT_STYLE_NORMAL
},
{
- 8,
+ 24,
11,
- " Љ®¬Ї'овҐа:",
- TEXT_STYLE_NORMAL
+ "Љ®¬Ї'овҐа:",
+ TEXT_STYLE_NORMAL | TEXT_ALIGN_RIGHT
},
{
- 8,
+ 24,
12,
- " …Єа :",
- TEXT_STYLE_NORMAL,
+ "…Єа :",
+ TEXT_STYLE_NORMAL | TEXT_ALIGN_RIGHT
},
{
- 8,
+ 24,
13,
- " Љ« ўi вга :",
- TEXT_STYLE_NORMAL
+ "Љ« ўi вга :",
+ TEXT_STYLE_NORMAL | TEXT_ALIGN_RIGHT
},
{
- 8,
+ 24,
14,
"Љ« ў. а®§Є« ¤Є :",
- TEXT_STYLE_NORMAL
+ TEXT_STYLE_NORMAL | TEXT_ALIGN_RIGHT
},
{
- 8,
+ 24,
16,
- " ‡ бв®бгў вЁ:",
- TEXT_STYLE_NORMAL
+ "ЏаЁ©пвЁ:",
+ TEXT_STYLE_NORMAL | TEXT_ALIGN_RIGHT
},
{
25,
@@ -400,13 +405,13 @@ static MUI_ENTRY ukUADevicePageEntries[] =
{
6,
19,
- "‚Ё ¬®¦ҐвҐ §¬iЁвЁ Ї а ¬ҐваЁ ЇаЁбва®хў вЁбЄ озЁ Є« ўiиi <‚ѓЋђ“> i <‚Ќ€‡>",
+ "‚Ё ¬®¦ҐвҐ §¬iЁвЁ Ї а ¬ҐваЁ ЇаЁбва®хў вЁбЄ озЁ Є« ўiиi ‚ѓЋђ“ i ‚Ќ€‡",
TEXT_STYLE_NORMAL
},
{
6,
20,
- "¤«п ўЁ¤i«Ґп Ґ«Ґ¬Ґвг i Є« ўiиг ¤«п ўЁЎ®аг iиЁе ў аi вiў",
+ "¤«п ўЁ¤i«Ґп Ґ«Ґ¬Ґвг i Є« ўiиг ENTER ¤«п ўЁЎ®аг iиЁе ў аi вiў",
TEXT_STYLE_NORMAL
},
{
@@ -418,20 +423,20 @@ static MUI_ENTRY ukUADevicePageEntries[] =
{
6,
23,
- "Љ®«Ё ўбi Ї а ¬ҐваЁ ўЁ§ зҐi, ўЁЎҐаiвм \"‡ бв®бгў вЁ ¤ i Ї а ¬ҐваЁ ЇаЁбва®хў\"",
+ "Љ®«Ё ўбi Ї а ¬ҐваЁ Ўг¤гвм ўЁ§ зҐi, ўЁЎҐаiвм \"‡ бв®бгў вЁ ¤ i Ї а ¬ҐваЁ ЇаЁбва®хў\"",
TEXT_STYLE_NORMAL
},
{
6,
24,
- "i вЁбiвм .",
+ "i вЁбiвм ENTER.",
TEXT_STYLE_NORMAL
},
{
0,
0,
- " ENTER=Џа®¤®ў¦ЁвЁ F3=‚Ёеi¤",
- TEXT_TYPE_STATUS
+ "ENTER = Џа®¤®ў¦ЁвЁ F3 = ‚Ё©вЁ",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
0,
@@ -446,56 +451,56 @@ static MUI_ENTRY ukUARepairPageEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
6,
8,
- "ReactOS Setup is in an early development phase. It does not yet",
+ "‚бв ®ў«оў з ReactOS § 室Ёвмбп ў а i© бв ¤iх а®§а®ЎЄЁ i йҐ Ґ",
TEXT_STYLE_NORMAL
},
{
6,
9,
- "support all the functions of a fully usable setup application.",
+ "Їi¤ваЁ¬гу ўбi дгЄжiх Ї®ў®жi®х Їа®Ја ¬Ё ўбв ®ў«Ґп.",
TEXT_STYLE_NORMAL
},
{
6,
12,
- "The repair functions are not implemented yet.",
+ "”гЄжiх ўi¤®ў«Ґп йҐ Ґ ўЇа®ў ¤¦Ґi.",
TEXT_STYLE_NORMAL
},
{
8,
15,
- "\x07 Press U for Updating OS.",
+ "\x07 Ќ вЁбiвм U й®Ў ®®ўЁвЁ OS.",
TEXT_STYLE_NORMAL
},
{
8,
17,
- "\x07 Press R for the Recovery Console.",
+ "\x07 Ќ вЁбiвм R ¤«п § ЇгбЄг Љ®б®«i ‚i¤®ў«Ґп.",
TEXT_STYLE_NORMAL
},
{
8,
19,
- "\x07 Press ESC to return to the main page.",
+ "\x07 Ќ вЁбiвм ESC ¤«п Ї®ўҐаҐп ¤® Ј®«®ў®х бв®аiЄЁ.",
TEXT_STYLE_NORMAL
},
{
8,
21,
- "\x07 Press ENTER to reboot your computer.",
+ "\x07 Ќ вЁбiвм ENTER й®Ў ЇҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа.",
TEXT_STYLE_NORMAL
},
{
0,
0,
- " ESC = Main page ENTER = Reboot",
- TEXT_TYPE_STATUS
+ "ESC = ѓ®«®ў ‘в®аiЄ U = Ћ®ўЁвЁ R = ‚i¤®ўЁвЁ ENTER = ЏҐаҐ§ ў в ¦ЁвЁ",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
0,
@@ -509,44 +514,44 @@ static MUI_ENTRY ukUAComputerPageEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
6,
8,
- "You want to change the type of computer to be installed.",
+ "’гв ‚Ё ¬®¦ҐвҐ §¬iЁвЁ вЁЇ ‚ и®Ј® Є®¬Ї'овҐа .",
TEXT_STYLE_NORMAL
},
{
8,
10,
- "\x07 Press the UP or DOWN key to select the desired computer type.",
+ "\x07 Ќ вЁбЄ ©вҐ Є« ўiиi ‚‚…ђ• в ‚Ќ€‡ ¤«п ўЁЎ®аг вЁЇг ‚ и®Ј® Є®¬Ї'овҐа .",
TEXT_STYLE_NORMAL
},
{
8,
11,
- " Then press ENTER.",
+ " i вЁбiвм ENTER.",
TEXT_STYLE_NORMAL
},
{
8,
13,
- "\x07 Press the ESC key to return to the previous page without changing",
+ "\x07 Ќ вЁбiвм ESC ¤«п Ї®ўҐаҐп ¤® Ї®ЇҐаҐ¤м®х бв®аiЄЁ ЎҐ§ §¬iЁ",
TEXT_STYLE_NORMAL
},
{
8,
14,
- " the computer type.",
+ " вЁЇг Є®¬Ї'овҐа .",
TEXT_STYLE_NORMAL
},
{
0,
0,
- " ENTER = Continue ESC = Cancel F3 = Quit",
- TEXT_TYPE_STATUS
+ "ENTER = Џа®¤®ў¦ЁвЁ ESC = ‘Є бгў вЁ F3 = ‚Ё©вЁ",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
0,
@@ -561,32 +566,32 @@ static MUI_ENTRY ukUAFlushPageEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
10,
6,
- "The system is now making sure all data is stored on your disk",
+ "‘Ёб⥬ ЇҐаҐўiапу зЁ ўбi ¤ i §ЎҐаҐ¦Ґ® ¤ЁбЄ",
TEXT_STYLE_NORMAL
},
{
10,
8,
- "This may take a minute",
+ "–Ґ ¬®¦Ґ § ©пвЁ ¤ҐЄi«мЄ еўЁ«Ё",
TEXT_STYLE_NORMAL
},
{
10,
9,
- "When finished, your computer will reboot automatically",
+ "Џiб«п § ўҐаиҐп Є®¬Ї'овҐа Ўг¤Ґ ўв®¬ вЁз® ЇҐаҐ§ ў в ¦Ґ®",
TEXT_STYLE_NORMAL
},
{
0,
0,
- " Flushing cache",
- TEXT_TYPE_STATUS
+ "ЋзЁйго ЄҐи",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
0,
@@ -601,38 +606,38 @@ static MUI_ENTRY ukUAQuitPageEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
10,
6,
- "ReactOS is not completely installed",
+ "ReactOS Ґ ўбв ®ў«Ґ® Ї®ўiбво",
TEXT_STYLE_NORMAL
},
{
10,
8,
- "Remove floppy disk from Drive A: and",
+ "‚ЁвпЈiвм ¤ЁбЄгвг § ¤ЁбЄ®ў®¤г A: в ",
TEXT_STYLE_NORMAL
},
{
10,
9,
- "all CD-ROMs from CD-Drives.",
+ "ўбi CD-ROM § CD-ЇаЁў®¤iў.",
TEXT_STYLE_NORMAL
},
{
10,
11,
- "Press ENTER to reboot your computer.",
+ "Ќ вЁбiвм ENTER й®Ў ЇҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа.",
TEXT_STYLE_NORMAL
},
{
0,
0,
- " Please wait ...",
- TEXT_TYPE_STATUS,
+ "Ѓг¤м-« бЄ § 祪 ©вҐ ...",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
},
{
0,
@@ -647,43 +652,43 @@ static MUI_ENTRY ukUADisplayPageEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
6,
8,
- "You want to change the type of display to be installed.",
+ "’гв ўЁ ¬®¦ҐвҐ §¬iЁвЁ вЁЇ ҐЄа г.",
TEXT_STYLE_NORMAL
},
{ 8,
10,
- "\x07 Press the UP or DOWN key to select the desired display type.",
+ "\x07 Ќ вЁбЄ ©вҐ Є« ўiиi ‚‚…ђ• в ‚Ќ€‡ ¤«п ўЁЎ®аг Ї®ваiЎ®Ј® вЁЇг ¬®iв®аг.",
TEXT_STYLE_NORMAL
},
{
8,
11,
- " Then press ENTER.",
+ " i вЁбiвм ENTER.",
TEXT_STYLE_NORMAL
},
{
8,
13,
- "\x07 Press the ESC key to return to the previous page without changing",
+ "\x07 Ќ вЁбiвм ESC ¤«п Ї®ўҐаҐп ¤® Ї®ЇҐаҐ¤м®х бв®аiЄЁ ЎҐ§ §¬iЁ",
TEXT_STYLE_NORMAL
},
{
8,
14,
- " the display type.",
+ " вЁЇг ¬®iв®а .",
TEXT_STYLE_NORMAL
},
{
0,
0,
- " ENTER = Continue ESC = Cancel F3 = Quit",
- TEXT_TYPE_STATUS
+ "ENTER = Џа®¤®ў¦ЁвЁ ESC = ‘Є бгў вЁ F3 = ‚Ё©вЁ",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
0,
@@ -698,38 +703,38 @@ static MUI_ENTRY ukUASuccessPageEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
10,
6,
- "The basic components of ReactOS have been installed successfully.",
+ "Ћб®ўi Є®¬Ї®ҐвЁ ReactOS Ўг«Ё гбЇiи® ўбв ®ў«Ґi.",
TEXT_STYLE_NORMAL
},
{
10,
8,
- "Remove floppy disk from Drive A: and",
+ "‚ЁвпЈiвм ¤ЁбЄҐвг § ¤ЁбЄ®ў®¤г A: в ",
TEXT_STYLE_NORMAL
},
{
10,
9,
- "all CD-ROMs from CD-Drive.",
+ "ўбiе CD-ROM § CD-ЇаЁў®¤iў.",
TEXT_STYLE_NORMAL
},
{
10,
11,
- "Press ENTER to reboot your computer.",
+ "Ќ вЁбiвм ENTER й®Ў ЇҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа.",
TEXT_STYLE_NORMAL
},
{
0,
0,
- " ENTER = Reboot computer",
- TEXT_TYPE_STATUS
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
0,
@@ -744,38 +749,38 @@ static MUI_ENTRY ukUABootPageEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
6,
8,
- "Setup cannot install the bootloader on your computers",
+ "‚бв ®ў«оў з Ґ ¬®¦Ґ ўбв ®ўЁвЁ bootloader ¦®абвЄЁ© ¤ЁбЄ",
TEXT_STYLE_NORMAL
},
{
6,
9,
- "hardisk",
+ "‚ и®Ј® Є®¬Ї'овҐа ",
TEXT_STYLE_NORMAL
},
{
6,
13,
- "Please insert a formatted floppy disk in drive A: and",
+ "Ѓг¤м-« бЄ ўб⠢⥠ўi¤д®а¬ в®ў г ¤ЁбЄҐвг ў ¤ЁўЄ®ў®¤ A: в ",
TEXT_STYLE_NORMAL
},
{
6,
14,
- "press ENTER.",
+ " вЁбiвм ENTER.",
TEXT_STYLE_NORMAL,
},
{
0,
0,
- " ENTER=Џа®¤®ў¦ЁвЁ F3=‚Ёеi¤",
- TEXT_TYPE_STATUS
+ "ENTER = Џа®¤®ў¦ЁвЁ F3 = ‚Ё©вЁ",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
0,
@@ -791,50 +796,50 @@ static MUI_ENTRY ukUASelectPartitionEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
6,
8,
- "The list below shows existing partitions and unused disk",
+ "ЌЁ¦зҐ ЇаЁўҐ¤ҐЁ© бЇЁб®Є iбгозЁе а®§¤i«iў в Ґ§ ©пв®Ј® ¬iбжп, ¤Ґ ¬®¦ ",
TEXT_STYLE_NORMAL
},
{
6,
9,
- "space for new partitions.",
+ "бвў®аЁвЁ ®ўi а®§¤i«Ё.",
TEXT_STYLE_NORMAL
},
{
8,
11,
- "\x07 Press UP or DOWN to select a list entry.",
+ "\x07 Ќ вЁбЄ ©вҐ Є« ўiиi ‚‚…ђ• в ‚Ќ€‡ ¤«п ўЁЎ®аг ЇгЄвг.",
TEXT_STYLE_NORMAL
},
{
8,
13,
- "\x07 Press ENTER to install ReactOS onto the selected partition.",
+ "\x07 Ќ вЁбiвм ENTER й®Ў ўбв ®ўЁвЁ ReactOS ўЁЎа Ё© а®§¤i«.",
TEXT_STYLE_NORMAL
},
{
8,
15,
- "\x07 Press C to create a new partition.",
+ "\x07 Ќ вЁбiвм C й®Ў бвў®аЁвЁ ®ўЁ© а®§¤i«.",
TEXT_STYLE_NORMAL
},
{
8,
17,
- "\x07 Press D to delete an existing partition.",
+ "\x07 Ќ вЁбiвм D й®Ў ўЁ¤ «ЁвЁ iбгозЁ© а®§¤i«.",
TEXT_STYLE_NORMAL
},
{
0,
0,
- " Please wait...",
- TEXT_TYPE_STATUS
+ "Ѓг¤м-« бЄ § 祪 ©вҐ...",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
0,
@@ -849,26 +854,26 @@ static MUI_ENTRY ukUAFormatPartitionEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
6,
8,
- "Format partition",
+ "”®а¬ вгў п а®§¤i«г",
TEXT_STYLE_NORMAL
},
{
6,
10,
- "Setup will now format the partition. Press ENTER to continue.",
+ "‡ а § ўбв ®ў«оў з ўi¤д®а¬ вгу а®§¤i«. Ќ вЁбiвм ENTER ¤«п Їа®¤®ў¦Ґп.",
TEXT_STYLE_NORMAL
},
{
0,
0,
- " ENTER=Џа®¤®ў¦ЁвЁ F3=‚Ёеi¤",
- TEXT_TYPE_STATUS
+ "ENTER = Џа®¤®ў¦ЁвЁ F3 = ‚Ё©вЁ",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
0,
@@ -883,44 +888,44 @@ static MUI_ENTRY ukUAInstallDirectoryEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
6,
8,
- "Setup installs ReactOS files onto the selected partition. Choose a",
+ "‚бв ®ў«оў з ўбв ®ўЁвм д ©«Ё ReactOS ўЁЎа Ё© а®§¤i«. ‚ЁЎҐаiвм",
TEXT_STYLE_NORMAL
},
{
6,
9,
- "directory where you want ReactOS to be installed:",
+ "¤ЁаҐЄв®аiо, ў пЄг ‚Ё е®зҐвҐ ўбв ®ўЁвЁ ReactOS:",
TEXT_STYLE_NORMAL
},
{
6,
14,
- "To change the suggested directory, press BACKSPACE to delete",
+ "™®Ў §¬iЁвЁ ¤ЁаҐЄв®аiо вЁбiвм BACKSPACE ¤«п ўЁ¤ «Ґп",
TEXT_STYLE_NORMAL
},
{
6,
15,
- "characters and then type the directory where you want ReactOS to",
+ "бЁ¬ў®«iў Їiб«п з®Ј® ўўҐ¤iвм §ўг ¤ЁаҐЄв®аiх ¤«п",
TEXT_STYLE_NORMAL
},
{
6,
16,
- "be installed.",
+ "ўбв ®ў«Ґп ReactOS.",
TEXT_STYLE_NORMAL
},
{
0,
0,
- " ENTER=Џа®¤®ў¦ЁвЁ F3=‚Ёеi¤",
- TEXT_TYPE_STATUS
+ "ENTER = Џа®¤®ў¦ЁвЁ F3 = ‚Ё©вЁ",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
0,
@@ -935,31 +940,31 @@ static MUI_ENTRY ukUAFileCopyEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
- 11,
+ 0,
12,
- "Please wait while ReactOS Setup copies files to your ReactOS",
- TEXT_STYLE_NORMAL
+ "Ѓг¤м-« бЄ , § 祪 ©вҐ Ї®ЄЁ ўбв ®ў«оў з ReactOS Є®Їiоу д ©«Ё ¤®",
+ TEXT_STYLE_NORMAL | TEXT_ALIGN_CENTER
},
{
- 30,
+ 0,
13,
- "installation folder.",
- TEXT_STYLE_NORMAL
+ "Ї ЇЄЁ ЇаЁ§ зҐп.",
+ TEXT_STYLE_NORMAL | TEXT_ALIGN_CENTER
},
{
- 20,
+ 0,
14,
- "This may take several minutes to complete.",
- TEXT_STYLE_NORMAL
+ "–Ґ ¬®¦Ґ § ©пвЁ ¤ҐЄi«мЄ еўЁ«Ё.",
+ TEXT_STYLE_NORMAL | TEXT_ALIGN_CENTER
},
{
+ 50,
0,
- 0,
- " \xB3 Please wait... ",
+ "\xB3 Ѓг¤м-« бЄ § 祪 ©вҐ... ",
TEXT_TYPE_STATUS
},
{
@@ -975,38 +980,38 @@ static MUI_ENTRY ukUABootLoaderEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
6,
8,
- "Setup is installing the boot loader",
+ "‚бв ®ў«оў з ўбв ®ў«оу boot loader",
TEXT_STYLE_NORMAL
},
{
8,
12,
- "Install bootloader on the harddisk (MBR).",
+ "‚бв ®ўЁвЁ bootloader ¦®абвЄЁ© ¤ЁбЄ (bootsector).",
TEXT_STYLE_NORMAL
},
{
8,
13,
- "Install bootloader on a floppy disk.",
+ "‚бв ®ўЁвЁ bootloader ¤ЁбЄҐвг.",
TEXT_STYLE_NORMAL
},
{
8,
14,
- "Skip install bootloader.",
+ "ЌҐ ўбв ®ў«оў вЁ bootloader.",
TEXT_STYLE_NORMAL
},
{
0,
0,
- " ENTER=Џа®¤®ў¦ЁвЁ F3=‚Ёеi¤",
- TEXT_TYPE_STATUS
+ "ENTER = Џа®¤®ў¦ЁвЁ F3 = ‚Ё©вЁ",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
0,
@@ -1021,44 +1026,44 @@ static MUI_ENTRY ukUAKeyboardSettingsEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
6,
8,
- "You want to change the type of keyboard to be installed.",
+ "’гв ‚Ё ¬®¦ҐвҐ §¬iЁвЁ вЁЇ Є« ўi вгаЁ.",
TEXT_STYLE_NORMAL
},
{
8,
10,
- "\x07 Press the UP or DOWN key to select the desired keyboard type.",
+ "\x07 Ќ вЁбЄ ©вҐ Є« ўiиi ‚‚…ђ• в ‚Ќ€‡ ¤«п ўЁЎ®аг Ї®ваiЎ®Ј® вЁЇг Є« ўi вгаЁ.",
TEXT_STYLE_NORMAL
},
{
8,
11,
- " Then press ENTER.",
+ " i вЁбiвм ENTER.",
TEXT_STYLE_NORMAL
},
{
8,
13,
- "\x07 Press the ESC key to return to the previous page without changing",
+ "\x07 Ќ вЁбiвм ESC ¤«п Ї®ўҐаҐп Ї®ЇҐаҐ¤о бв®аiЄг ЎҐ§ §¬iЁ",
TEXT_STYLE_NORMAL
},
{
8,
14,
- " the keyboard type.",
+ " вЁЇг Є« ўi вгаЁ.",
TEXT_STYLE_NORMAL
},
{
0,
0,
- " ENTER = Continue ESC = Cancel F3 = Quit",
- TEXT_TYPE_STATUS
+ "ENTER = Џа®¤®ў¦ЁвЁ ESC = ‘Є бгў вЁ F3 = ‚Ё©вЁ",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
0,
@@ -1073,44 +1078,44 @@ static MUI_ENTRY ukUALayoutSettingsEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
6,
8,
- "You want to change the keyboard layout to be installed.",
+ "‚ЁЎҐаiвм а®§Є« ¤Єг, пЄ Ўг¤Ґ ўбв ®ў«Ґ пЄ бв ¤ ав .",
TEXT_STYLE_NORMAL
},
{
8,
10,
- "\x07 Press the UP or DOWN key to select the desired keyboard",
+ "\x07 Ќ вЁбЄ ©вҐ Є« ўiиi ‚‚…ђ• в ‚Ќ€‡ ¤«п ўЁЎ®аг Ї®ваiЎ®х а®§Є« ¤ЄЁ",
TEXT_STYLE_NORMAL
},
{
8,
11,
- " layout. Then press ENTER.",
+ " Є« ўi вгаЁ i вЁбiвм ENTER.",
TEXT_STYLE_NORMAL
},
{
8,
13,
- "\x07 Press the ESC key to return to the previous page without changing",
+ "\x07 Ќ вЁбiвм ESC ¤«п Ї®ўҐаҐп Ї®ЇҐаҐ¤о бв®аiЄг ЎҐ§ §¬iЁ",
TEXT_STYLE_NORMAL
},
{
8,
14,
- " the keyboard layout.",
+ " а®§Є« ¤ЄЁ Є« ўi вгаЁ.",
TEXT_STYLE_NORMAL
},
{
0,
0,
- " ENTER = Continue ESC = Cancel F3 = Quit",
- TEXT_TYPE_STATUS
+ "ENTER = Џа®¤®ў¦ЁвЁ ESC = ‘Є бгў вЁ F3 = ‚Ё©вЁ",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
0,
@@ -1126,20 +1131,20 @@ static MUI_ENTRY ukUAPrepareCopyEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
6,
8,
- "Setup prepares your computer for copying the ReactOS files. ",
+ "‚бв ®ў«оў з Ј®вгу ‚ и Є®¬Ї'овҐа ¤«п Є®Їiоў п д ©«iў ReactOS. ",
TEXT_STYLE_NORMAL
},
{
0,
0,
- " Building the file copy list...",
- TEXT_TYPE_STATUS
+ "ѓҐҐаго бЇЁб®Є д ©«iў...",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
0,
@@ -1155,38 +1160,38 @@ static MUI_ENTRY ukUASelectFSEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
6,
17,
- "Select a file system from the list below.",
+ "‚ЁЎҐаiвм д ©«®ўг бЁб⥬㠧i бЇЁбЄг Ё¦зҐ.",
0
},
{
8,
19,
- "\x07 Press UP or DOWN to select a file system.",
+ "\x07 Ќ вЁбЄ ©вҐ Є« ўiиi ‚‚…ђ• в ‚Ќ€‡ ¤«п ўЁЎ®аг д ©«®ў®х бЁб⥬Ё.",
0
},
{
8,
21,
- "\x07 Press ENTER to format the partition.",
+ "\x07 Ќ вЁбiвм ENTER й®Ў ўi¤д®а¬ вгў вЁ а®§¤i«.",
0
},
{
8,
23,
- "\x07 Press ESC to select another partition.",
+ "\x07 Ќ вЁбiвм ESC ¤«п ўЁЎ®аг iи®Ј® а®§¤i«г.",
0
},
{
0,
0,
- " ENTER = Continue ESC = Cancel F3 = Quit",
- TEXT_TYPE_STATUS
+ "ENTER = Џа®¤®ў¦ЁвЁ ESC = ‘Є бгў вЁ F3 = ‚Ё©вЁ",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
@@ -1202,38 +1207,38 @@ static MUI_ENTRY ukUADeletePartitionEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
6,
8,
- "You have chosen to delete the partition",
+ "‚Ё ўЁЎа «Ё ўЁ¤ «Ґп а®§¤i«г",
TEXT_STYLE_NORMAL
},
{
8,
18,
- "\x07 Press D to delete the partition.",
+ "\x07 Ќ вЁбiвм D ¤«п ўЁ¤ «Ґп а®§¤i«г.",
TEXT_STYLE_NORMAL
},
{
11,
19,
- "WARNING: All data on this partition will be lost!",
+ "“‚ЂѓЂ: ‚бi ¤ i ж쮬г а®§¤i«i Ўг¤гвм ўва зҐi!",
TEXT_STYLE_NORMAL
},
{
8,
21,
- "\x07 Press ESC to cancel.",
+ "\x07 Ќ вЁбiвм ESC ¤«п бЄ бгў п.",
TEXT_STYLE_NORMAL
},
{
0,
0,
- " D = Delete Partition ESC = Cancel F3 = Quit",
- TEXT_TYPE_STATUS
+ "D = ‚Ё¤ «ЁвЁ ђ®§¤i« ESC = ‘Є бгў вЁ F3 = ‚Ё©вЁ",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
0,
@@ -1248,20 +1253,20 @@ static MUI_ENTRY ukUARegistryEntries[] =
{
4,
3,
- " “бв ®ўЄ ReactOS " KERNEL_VERSION_STR " ",
+ " ‚бв ®ў«Ґп ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE
},
{
6,
8,
- "Setup is updating the system configuration. ",
+ "‚бв ®ў«оў з ®®ў«оу Є®дiЈга жiо бЁб⥬Ё. ",
TEXT_STYLE_NORMAL
},
{
0,
0,
- " Creating registry hives...",
- TEXT_TYPE_STATUS
+ "‘вў®аоо бвагЄвгаг аҐубваг...",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
0,
@@ -1276,207 +1281,208 @@ MUI_ERROR ukUAErrorEntries[] =
{
{
//ERROR_NOT_INSTALLED
- "ReactOS is not completely installed on your\n"
- "computer. If you quit Setup now, you will need to\n"
- "run Setup again to install ReactOS.\n"
+ "ReactOS Ґ Ўгў Ї®ўiбво ўбв ®ў«ҐЁ© ‚ и\n"
+ "Є®¬Ї'овҐа. џЄй® ўЁ ўЁ©¤ҐвҐ § ўбв ®ў«оў з § а §,\n"
+ "в® ‚ ¬ Ўг¤Ґ Ґ®Ўеi¤® § ЇгбвЁвЁ Їа®Ја ¬г ўбв ®ў«Ґп\n"
+ "§®ўг, пЄй® ‚Ё е®зҐвҐ ўбв ®ўЁвЁ ReactOS,\n"
"\n"
- " \x07 Press ENTER to continue Setup.\n"
- " \x07 Press F3 to quit Setup.",
- "F3 = Quit ENTER = Continue"
+ " \x07 Ќ вЁбiвм ENTER й®Ў Їа®¤®ў¦ЁвЁ ўбв ®ў«Ґп.\n"
+ " \x07 Ќ вЁбiвм F3 ¤«п ўЁе®¤г § ўбв ®ў«оў з .",
+ "F3 = ‚Ё©вЁ ENTER = Џа®¤®ў¦ЁвЁ"
},
{
//ERROR_NO_HDD
- "Setup could not find a harddisk.\n",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм § ©вЁ ¦®абвЄЁ© ¤ЁбЄ.\n",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_NO_SOURCE_DRIVE
- "Setup could not find its source drive.\n",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм § ©вЁ гбв ®ў®зЁ© ¤ЁбЄ.\n",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_LOAD_TXTSETUPSIF
- "Setup failed to load the file TXTSETUP.SIF.\n",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм § ў в ¦ЁвЁ д ©« TXTSETUP.SIF.\n",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_CORRUPT_TXTSETUPSIF
- "Setup found a corrupt TXTSETUP.SIF.\n",
- "ENTER = Reboot computer"
+ "” ©« TXTSETUP.SIF Ї®иЄ®¤¦ҐЁ©.\n",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_SIGNATURE_TXTSETUPSIF,
- "Setup found an invalid signature in TXTSETUP.SIF.\n",
- "ENTER = Reboot computer"
+ "‚Ёпў«Ґ® ҐЄ®аҐЄвЁ© Їi¤ЇЁб ў TXTSETUP.SIF.\n",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_DRIVE_INFORMATION
- "Setup could not retrieve system drive information.\n",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм ®ваЁ¬ вЁ ¤ i Їа® бЁб⥬Ё© ¤ЁбЄ.\n",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_WRITE_BOOT,
- "Setup failed to install FAT bootcode on the system partition.",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм ўбв ®ўЁвЁ § ў в ¦гў «мЁ© Є®¤ FAT бЁвҐ¬Ё© а®§¤i«.",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_LOAD_COMPUTER,
- "Setup failed to load the computer type list.\n",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм § ў в ¦ЁвЁ бЇЁб®Є вЁЇiў Є®¬Ї'овҐа .\n",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_LOAD_DISPLAY,
- "Setup failed to load the display settings list.\n",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм § ў в ¦ЁвЁ бЇЁб®Є ०Ё¬iў ҐЄа г.\n",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_LOAD_KEYBOARD,
- "Setup failed to load the keyboard type list.\n",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм § ў в ¦ЁвЁ бЇЁб®Є вЁЇiў Є« ўi вгаЁ.\n",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_LOAD_KBLAYOUT,
- "Setup failed to load the keyboard layout list.\n",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм § ў в ¦ЁвЁ бЇЁб®Є а®§Є« ¤®Є Є« ўi вгаЁ.\n",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_WARN_PARTITION,
- "Setup found that at least one harddisk contains an incompatible\n"
- "partition table that can not be handled properly!\n"
+ "‡ ©¤Ґ® пЄ ¬ii¬г¬ ®¤Ё ¦®абвЄЁ© ¤ЁбЄ, й® ¬iбвЁвм а®§¤i«,\n"
+ "пЄЁ© Ґ Їi¤ваЁ¬гувмбп ReactOS!\n"
"\n"
- "Creating or deleting partitions can destroy the partition table.\n"
+ "‘вў®аҐп зЁ ўЁ¤ «Ґп а®§¤i«iў ¬®¦Ґ §аг©гў вЁ в Ў«Ёжо а®§¤i«iў.\n"
"\n"
- " \x07 Press F3 to quit Setup."
- " \x07 Press ENTER to continue.",
- "F3= Quit ENTER = Continue"
+ " \x07 Ќ вЁбiвм F3 ¤«п ўЁе®¤г § ўбв ®ў«оў з .\n"
+ " \x07 Ќ вЁбiвм ENTER й®Ў Їа®¤®ў¦ЁвЁ.",
+ "F3= ‚Ё©вЁ ENTER = Џа®¤®ў¦ЁвЁ"
},
{
//ERROR_NEW_PARTITION,
- "You can not create a new Partition inside\n"
- "of an already existing Partition!\n"
+ "‚Ё Ґ ¬®¦ҐвҐ бвў®аЁвЁ ®ўЁ© а®§¤i« \n"
+ "ў¦Ґ iбго箬г а®§¤i«i!\n"
"\n"
- " * Press any key to continue.",
+ " * Ќ вЁбiвм Ўг¤м-пЄг Є« ўiиг й®Ў Їа®¤®ў¦ЁвЁ.",
NULL
},
{
//ERROR_DELETE_SPACE,
- "You can not delete unpartitioned disk space!\n"
+ "ЌҐ ¬®¦ ўЁ¤ «ЁвЁ Ґа®§¬iзҐг ®Ў« бвм ¤ЁбЄг!\n"
"\n"
- " * Press any key to continue.",
+ " * Ќ вЁбiвм Ўг¤м-пЄг Є« ўiиг й®Ў Їа®¤®ў¦ЁвЁ.",
NULL
},
{
//ERROR_INSTALL_BOOTCODE,
- "Setup failed to install the FAT bootcode on the system partition.",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм ўбв ®ўЁвЁ § ў в ¦гў «мЁ© Є®¤ FAT бЁвҐ¬Ё© а®§¤i«.",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_NO_FLOPPY,
- "No disk in drive A:.",
- "ENTER = Continue"
+ "‚i¤бгвп ¤ЁбЄҐв ў ¤ЁбЄ®ў®¤i A:.",
+ "ENTER = Џа®¤®ў¦ЁвЁ"
},
{
//ERROR_UPDATE_KBSETTINGS,
- "Setup failed to update keyboard layout settings.",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм ®®ўЁвЁ Ї а ¬ҐваЁ а®§Є« ¤ЄЁ Є« ўi вгаЁ.",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_UPDATE_DISPLAY_SETTINGS,
- "Setup failed to update display registry settings.",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм ®®ўЁвЁ Ї а ¬ҐваЁ ҐЄа г ў аҐубваi.",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_IMPORT_HIVE,
- "Setup failed to import a hive file.",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм i¬Ї®авгў вЁ д ©« Єгйiў аҐубваг.",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_FIND_REGISTRY
- "Setup failed to find the registry data files.",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм § ©вЁ д ©«Ё ¤ Ёе аҐубваг.",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_CREATE_HIVE,
- "Setup failed to create the registry hives.",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм бвў®аЁвЁ Єгйi аҐубваг.",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_INITIALIZE_REGISTRY,
- "Setup failed to set the initialize the registry.",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм iiжi «i§гў вЁ аҐубва.",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_INVALID_CABINET_INF,
- "Cabinet has no valid inf file.\n",
- "ENTER = Reboot computer"
+ "Cabinet ¬ у ҐЄ®аҐЄвЁ© inf-д ©«.\n",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_CABINET_MISSING,
- "Cabinet not found.\n",
- "ENTER = Reboot computer"
+ "Cabinet Ґ § ©¤Ґ®.\n",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_CABINET_SCRIPT,
- "Cabinet has no setup script.\n",
- "ENTER = Reboot computer"
+ "Cabinet Ґ ¬ у гбв ®ў®з®Ј® бжҐ аiо.\n",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_COPY_QUEUE,
- "Setup failed to open the copy file queue.\n",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм ўi¤ЄаЁвЁ зҐаЈг Є®Їiоў п д ©«iў.\n",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_CREATE_DIR,
- "Setup could not create install directories.",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм бвў®аЁвЁ ¤ЁаҐЄв®аiх ¤«п ўбв ®ў«Ґп.",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_TXTSETUP_SECTION,
- "Setup failed to find the 'Directories' section\n"
- "in TXTSETUP.SIF.\n",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм § ©вЁ ᥪжiо 'Directories'\n"
+ "ў д ©«i TXTSETUP.SIF.\n",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_CABINET_SECTION,
- "Setup failed to find the 'Directories' section\n"
- "in the cabinet.\n",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм § ©вЁ ᥪжiо 'Directories'\n"
+ "ў cabinet.\n",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_CREATE_INSTALL_DIR
- "Setup could not create the install directory.",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм бвў®аЁвЁ ¤ЁаҐЄв®аiо ¤«п ўбв ®ў«п.",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_FIND_SETUPDATA,
- "Setup failed to find the 'SetupData' section\n"
- "in TXTSETUP.SIF.\n",
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм § ©вЁ ᥪжiо 'SetupData'\n"
+ "ў д ©«i TXTSETUP.SIF.\n",
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_WRITE_PTABLE,
- "Setup failed to write partition tables.\n"
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм § ЇЁб вЁ в Ў«Ёжi а®§¤i«iў.\n"
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_ADDING_CODEPAGE,
- "Setup failed to add codepage to registry.\n"
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм ¤®¤ вЁ Ї а ¬ҐваЁ Є®¤гў п ў аҐубва.\n"
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_UPDATE_LOCALESETTINGS,
- "Setup could not set the system locale.\n"
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм ўбв ®ўЁвЁ «®Є «м бЁб⥬Ё.\n"
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_ADDING_KBLAYOUTS,
- "Setup failed to add keyboard layouts to registry.\n"
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм ¤®¤ вЁ а®§Є« ¤ЄЁ Є« ўi вгаЁ ¤® аҐубваг.\n"
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
//ERROR_UPDATE_GEOID,
- "Setup could not set the geo id.\n"
- "ENTER = Reboot computer"
+ "ЌҐ ў¤ «®бм ўбв ®ўЁвЁ geo id.\n"
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"
},
{
NULL,
@@ -1484,7 +1490,6 @@ MUI_ERROR ukUAErrorEntries[] =
}
};
-
MUI_PAGE ukUAPages[] =
{
{
@@ -1588,103 +1593,103 @@ MUI_PAGE ukUAPages[] =
MUI_STRING ukUAStrings[] =
{
{STRING_PLEASEWAIT,
- " Please wait..."},
+ " Ѓг¤м-« бЄ , § 祪 ©вҐ..."},
{STRING_INSTALLCREATEPARTITION,
- " ENTER = Install C = Create Partition F3 = Quit"},
+ " ENTER = ‚бв ®ўЁвЁ C = ‘вў®аЁвЁ ђ®§¤i« F3 = ‚Ё©вЁ"},
{STRING_INSTALLDELETEPARTITION,
- " ENTER = Install D = Delete Partition F3 = Quit"},
+ " ENTER = ‚бв ®ўЁвЁ D = ‚Ё¤ «ЁвЁ ђ®§¤i« F3 = ‚Ё©вЁ"},
{STRING_PARTITIONSIZE,
- "Size of new partition:"},
+ "ђ®§¬iа ®ў®Ј® а®§¤i«г:"},
{STRING_CHOOSENEWPARTITION,
- "You have chosen to create a new partition on"},
+ "‚Ё е®зҐвҐ бвў®аЁвЁ ®ўЁ© а®§¤i« "},
{STRING_HDDSIZE,
- "Please enter the size of the new partition in megabytes."},
+ "Ѓг¤м-« бЄ , ўўҐ¤iвм а®§¬iа ®ў®Ј® а®§¤i«г ў ¬ҐЈ Ў ©в е."},
{STRING_CREATEPARTITION,
- " ENTER = Create Partition ESC = Cancel F3 = Quit"},
+ " ENTER = ‘вў®аЁвЁ ђ®§¤i« ESC = ‘Є бгў вЁ F3 = ‚Ё©вЁ"},
{STRING_PARTFORMAT,
- "This Partition will be formatted next."},
+ "–Ґ© а®§¤i« Ўг¤Ґ ўi¤д®а¬ в®ў ®."},
{STRING_NONFORMATTEDPART,
- "You chose to install ReactOS on a new or unformatted Partition."},
+ "‚Ё ўЁЎа «Ё ўбв ®ў«Ґп ReactOS ®ўЁ© Ў® Ґд®а¬ в®ў Ё© а®§¤i«."},
{STRING_INSTALLONPART,
- "Setup install ReactOS onto Partition"},
+ "ReactOS ўбв ®ў«оувмбп а®§¤i«"},
{STRING_CHECKINGPART,
- "Setup is now checking the selected partition."},
+ "‚бв ®ў«оў з ЇҐаҐўiапу ўЁЎа Ё© а®§¤i«."},
{STRING_QUITCONTINUE,
- "F3= Quit ENTER = Continue"},
+ "F3= ‚Ё©вЁ ENTER = Џа®¤®ў¦ЁвЁ"},
{STRING_REBOOTCOMPUTER,
- "ENTER = Reboot computer"},
+ "ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"},
{STRING_TXTSETUPFAILED,
- "Setup failed to find the '%S' section\nin TXTSETUP.SIF.\n"},
+ "‚бв ®ў«оў з Ґ §¬iЈ § ©вЁ ᥪжiо '%S' \nў д ©«i TXTSETUP.SIF.\n"},
{STRING_COPYING,
- "\xB3 Copying file: %S"},
+ "\xB3 Љ®Їiоў п: %S"},
{STRING_SETUPCOPYINGFILES,
- "Setup is copying files..."},
+ "‚бв ®ў«оў з Є®Їiоу д ©«Ё..."},
{STRING_REGHIVEUPDATE,
- " Updating registry hives..."},
+ " Ћ®ў«Ґп Єгйiў аҐубваг..."},
{STRING_IMPORTFILE,
- " Importing %S..."},
+ " I¬Ї®авгў п %S..."},
{STRING_DISPLAYETTINGSUPDATE,
- " Updating display registry settings..."},
+ " Ћ®ў«Ґп Ї а ¬Ґваiў ҐЄа г ў аҐубваi..."},
{STRING_LOCALESETTINGSUPDATE,
- " Updating locale settings..."},
+ " Ћ®ў«Ґп Ї а ¬Ґваiў «®Є «i..."},
{STRING_KEYBOARDSETTINGSUPDATE,
- " Updating keyboard layout settings..."},
+ " Ћ®ў«Ґп Ї а ¬Ґваiў а®§Є« ¤ЄЁ Є« ўi вгаЁ..."},
{STRING_CODEPAGEINFOUPDATE,
- " Adding codepage information to registry..."},
+ " „®¤ ў п ¤ Ёе Їа® Є®¤®ўг бв®аiЄг ў аҐубва..."},
{STRING_DONE,
- " Done..."},
+ " ѓ®в®ў®..."},
{STRING_REBOOTCOMPUTER2,
- " ENTER = Reboot computer"},
+ " ENTER = ЏҐаҐ§ ў в ¦ЁвЁ Є®¬Ї'овҐа"},
{STRING_CONSOLEFAIL1,
- "Unable to open the console\n\n"},
+ "ЌҐ ў¤ «®бм ўi¤ЄаЁвЁ Є®б®«м\n\n"},
{STRING_CONSOLEFAIL2,
- "The most common cause of this is using an USB keyboard\n"},
+ "Ќ ©Ўi«ми ©¬®ўiа ЇаЁзЁ жм®Ј® - ўЁЄ®аЁбв п USB Є« ўi вгаЁ\n"},
{STRING_CONSOLEFAIL3,
- "USB keyboards are not fully supported yet\n"},
+ "USB Є« ўi вгаЁ йҐ Ґ Їi¤ваЁ¬говмбп Ї®ўiбво\n"},
{STRING_FORMATTINGDISK,
- "Setup is formatting your disk"},
+ "‚бв ®ў«оў з д®а¬ вгу ў и ¤ЁбЄ"},
{STRING_CHECKINGDISK,
- "Setup is checking your disk"},
+ "‚бв ®ў«оў з ЇҐаҐўiапу ў и ¤ЁбЄ"},
{STRING_FORMATDISK1,
- " Format partition as %S file system (quick format) "},
+ " ”®а¬ вгў вЁ а®§¤i« ў д ©«®ўi© бЁб⥬i %S (иўЁ¤ЄҐ д®а¬ вгў п) "},
{STRING_FORMATDISK2,
- " Format partition as %S file system "},
+ " ”®а¬ вгў вЁ а®§¤i« ў д ©«®ўi© бЁб⥬i %S "},
{STRING_KEEPFORMAT,
- " Keep current file system (no changes) "},
+ " ‡ «ЁиЁвЁ iбгозг д ©«®ўг бЁб⥬г (ЎҐ§ §¬i) "},
{STRING_HDINFOPARTCREATE,
- "%I64u %s Harddisk %lu (Port=%hu, Bus=%hu, Id=%hu) on %wZ."},
+ "%I64u %s †®абвЄЁ© ¤ЁбЄ %lu (Џ®ав=%hu, Ё =%hu, Id=%hu) on %wZ."},
{STRING_HDDINFOUNK1,
- "%I64u %s Harddisk %lu (Port=%hu, Bus=%hu, Id=%hu)."},
+ "%I64u %s †®абвЄЁ© ¤ЁбЄ %lu (Џ®ав=%hu, Ё =%hu, Id=%hu)."},
{STRING_HDDINFOUNK2,
" %c%c Type %lu %I64u %s"},
{STRING_HDINFOPARTDELETE,
- "on %I64u %s Harddisk %lu (Port=%hu, Bus=%hu, Id=%hu) on %wZ."},
+ " %I64u %s †®абвЄЁ© ¤ЁбЄ %lu (Џ®ав=%hu, Ё =%hu, Id=%hu) on %wZ."},
{STRING_HDDINFOUNK3,
- "on %I64u %s Harddisk %lu (Port=%hu, Bus=%hu, Id=%hu)."},
+ " %I64u %s †®абвЄЁ© ¤ЁбЄ %lu (Џ®ав=%hu, Ё =%hu, Id=%hu)."},
{STRING_HDINFOPARTZEROED,
- "Harddisk %lu (%I64u %s), Port=%hu, Bus=%hu, Id=%hu (%wZ)."},
+ "†®абвЄЁ© ¤ЁбЄ %lu (%I64u %s), Џ®ав=%hu, Ё =%hu, Id=%hu (%wZ)."},
{STRING_HDDINFOUNK4,
"%c%c Type %lu %I64u %s"},
{STRING_HDINFOPARTEXISTS,
- "on Harddisk %lu (%I64u %s), Port=%hu, Bus=%hu, Id=%hu (%wZ)."},
+ " †®абвЄ®¬г ¤ЁбЄг %lu (%I64u %s), Џ®ав=%hu, Ё =%hu, Id=%hu (%wZ)."},
{STRING_HDDINFOUNK5,
"%c%c Type %-3u %6lu %s"},
{STRING_HDINFOPARTSELECT,
- "%6lu %s Harddisk %lu (Port=%hu, Bus=%hu, Id=%hu) on %S"},
+ "%6lu %s †®абвЄЁ© ¤ЁбЄ %lu (Џ®ав=%hu, Ё =%hu, Id=%hu) on %S"},
{STRING_HDDINFOUNK6,
- "%6lu %s Harddisk %lu (Port=%hu, Bus=%hu, Id=%hu)"},
+ "%6lu %s †®абвЄЁ© ¤ЁбЄ %lu (Џ®ав=%hu, Ё =%hu, Id=%hu)"},
{STRING_NEWPARTITION,
- "Setup created a new partition on"},
+ "‚бв ®ў«оў з бвў®аЁў ®ўЁ© а®§¤i« "},
{STRING_UNPSPACE,
- " Unpartitioned space %6lu %s"},
+ " ЌҐа®§¬iзҐ ®Ў« бвм %6lu %s"},
{STRING_MAXSIZE,
- "MB (max. %lu MB)"},
+ "MB (¬ Єб. %lu MB)"},
{STRING_UNFORMATTED,
- "New (Unformatted)"},
+ "Ќ®ўЁ© (ЌҐд®а¬ в®ў Ё©)"},
{STRING_FORMATUNUSED,
- "Unused"},
+ "ЌҐ ўЁЄ®аЁбв ®"},
{STRING_FORMATUNKNOWN,
- "Unknown"},
+ "ЌҐўi¤®¬®"},
{STRING_KB,
"KB"},
{STRING_MB,
@@ -1692,8 +1697,8 @@ MUI_STRING ukUAStrings[] =
{STRING_GB,
"GB"},
{STRING_ADDKBLAYOUTS,
- "Adding keyboard layouts"},
+ "„®¤ ў п а®§Є« ¤®Є Є« ўi вгаЁ"},
{0, 0}
};
-#endif
+#endif
diff --git a/reactos/base/shell/explorer-new/lang/uk-UA.rc b/reactos/base/shell/explorer-new/lang/uk-UA.rc
index 90d58532e03..d02ee30f9e2 100644
--- a/reactos/base/shell/explorer-new/lang/uk-UA.rc
+++ b/reactos/base/shell/explorer-new/lang/uk-UA.rc
@@ -1,9 +1,9 @@
/*
- * PROJECT: ReactOS Explorer
+ * PROJECT: ReactOS Explorer-New
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/shell/explorer-new/lang/uk-UA.rc
- * PURPOSE: Ukraianian Language File for ReactOS Explorer
- * TRANSLATOR: Artem Reznikov
+ * PURPOSE: Ukraianian Language File for ReactOS Explorer-New
+ * TRANSLATOR: Artem Reznikov & Sakara Yevhen
*/
LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
@@ -13,7 +13,7 @@ BEGIN
POPUP ""
BEGIN
MENUITEM SEPARATOR
- MENUITEM "Task Manager", ID_SHELL_CMD_OPEN_TASKMGR
+ MENUITEM "Панель завдань", ID_SHELL_CMD_OPEN_TASKMGR
MENUITEM SEPARATOR
MENUITEM "&Закріпити панель завдань", ID_LOCKTASKBAR
MENUITEM "В&ластивості", ID_SHELL_CMD_PROPERTIES
@@ -37,7 +37,7 @@ BEGIN
BEGIN
MENUITEM "(пусто)", -1, MFT_STRING, MFS_GRAYED
END
- POPUP "Н&астройка", IDM_SETTINGS
+ POPUP "Н&алаштування", IDM_SETTINGS
BEGIN
MENUITEM "П&анель керування", IDM_CONTROLPANEL, MFT_STRING, MFS_GRAYED
MENUITEM "", -1, MFT_SEPARATOR
@@ -53,10 +53,10 @@ BEGIN
MENUITEM "&Довідка та підтримка", IDM_HELPANDSUPPORT, MFT_STRING, MFS_ENABLED
MENUITEM "Запуск про&грами...", IDM_RUN, MFT_STRING, MFS_ENABLED
MENUITEM "", 450, MFT_SEPARATOR, MFS_ENABLED
- MENUITEM "Син&хронізувати", IDM_SYNCHRONIZE, MFT_STRING, MFS_ENABLED
+ MENUITEM "Син&хронізація", IDM_SYNCHRONIZE, MFT_STRING, MFS_ENABLED
MENUITEM "Завер&шення сеансу %s...", IDM_LOGOFF, MFT_STRING, MFS_ENABLED
- MENUITEM "В&ідключити...", IDM_DISCONNECT, MFT_STRING, MFS_ENABLED
- MENUITEM "Відстикувати комп'&ютер", IDM_UNDOCKCOMPUTER, MFT_STRING, MFS_ENABLED
+ MENUITEM "В&имкнення...", IDM_DISCONNECT, MFT_STRING, MFS_ENABLED
+ MENUITEM "Заблокування комп'&ютера", IDM_UNDOCKCOMPUTER, MFT_STRING, MFS_ENABLED
MENUITEM "&Завершення роботи...", IDM_SHUTDOWN, MFT_STRING, MFS_ENABLED
END
END
@@ -64,60 +64,60 @@ END
IDD_TASKBARPROP_TASKBAR DIALOGEX 0, 0, 252, 218
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Taskbar"
+CAPTION "Панель задач"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
- GROUPBOX "Taskbar appearance", IDC_STATIC, 6,6,240,121
+ GROUPBOX "Властивості панелі задач", IDC_STATIC, 6,6,240,121
CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21
- AUTOCHECKBOX "&Lock the taskbar", IDC_TASKBARPROP_LOCK, 13,45,200,10
- AUTOCHECKBOX "A&uto-hide the taskbar", IDC_TASKBARPROP_HIDE, 13,58,200,10
- AUTOCHECKBOX "Keep the &taskbar on top of other windows", IDC_TASKBARPROP_ONTOP, 13,71,200,10
- AUTOCHECKBOX "&Group similar taskbar buttons", IDC_TASKBARPROP_GROUP, 13,84,200,10
- AUTOCHECKBOX "Show &Quick Launch", IDC_TASKBARPROP_SHOWQL, 13,97,200,10
- AUTOCHECKBOX "&Show window previews (thumbnails)", IDC_TASKBARPROP_WNDPREV, 13,110,200,10
+ AUTOCHECKBOX "&Заборонити панель задач", IDC_TASKBARPROP_LOCK, 13,45,200,10
+ AUTOCHECKBOX "&Автоматично приховувати панель задач", IDC_TASKBARPROP_HIDE, 13,58,200,10
+ AUTOCHECKBOX "&Поверх інших вікон", IDC_TASKBARPROP_ONTOP, 13,71,200,10
+ AUTOCHECKBOX "&Групувати схожі кнопки", IDC_TASKBARPROP_GROUP, 13,84,200,10
+ AUTOCHECKBOX "Відображати панель &швидкого запуску", IDC_TASKBARPROP_SHOWQL, 13,97,200,10
+ AUTOCHECKBOX "&Відображати зразки вікон (ескізи)", IDC_TASKBARPROP_WNDPREV, 13,110,200,10
END
IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Start Menu"
+CAPTION "Меню ""Пуск"""
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
- AUTORADIOBUTTON "&Start menu", IDC_TASKBARPROP_STARTMENU, 7,7,105,10
- LTEXT "This menu style gives you easy access to your folders, favorite programs, and search.", IDC_STATIC, 20,17,150,24, WS_DISABLED
- PUSHBUTTON "&Customize...", IDC_TASKBARPROP_STARTMENUCUST, 192,4,53,14, WS_DISABLED
- AUTORADIOBUTTON "Classic Start &menu", IDC_TASKBARPROP_STARTMENUCLASSIC, 7,47,105,10, WS_DISABLED
- LTEXT "This menu style gives you the classic look and functionality",-1,20,57,150,24, WS_DISABLED
- PUSHBUTTON "&Customize...", IDC_TASKBARPROP_STARTMENUCLASSICCUST, 192,44,53,14, WS_DISABLED
- GROUPBOX "Privacy",IDC_STATIC, 7,100,238,42
- AUTOCHECKBOX "Store and display a list of recently opened &files", IDC_TASKBARPROP_RECENTFILES, 14,114,224,10, WS_DISABLED
- AUTOCHECKBOX "Store and display a list of recently opened &programs",IDC_TASKBARPROP_RECENTFOLDERS, 14,128,224,10, WS_DISABLED
+ AUTORADIOBUTTON "&Меню ""Пуск""", IDC_TASKBARPROP_STARTMENU, 7,7,105,10
+ LTEXT "Цей стиль меню забезпечує зручний доступ до папок, часто використовуваних програм та пошуку.", IDC_STATIC, 20,17,150,24, WS_DISABLED
+ PUSHBUTTON "&Налаштувати...", IDC_TASKBARPROP_STARTMENUCUST, 192,4,53,14, WS_DISABLED
+ AUTORADIOBUTTON "Класичне меню ""Пуск""", IDC_TASKBARPROP_STARTMENUCLASSIC, 7,47,105,10, WS_DISABLED
+ LTEXT "Цей стиль меню має класичний вигляд і функціональність",-1,20,57,150,24, WS_DISABLED
+ PUSHBUTTON "&Налаштувати...", IDC_TASKBARPROP_STARTMENUCLASSICCUST, 192,44,53,14, WS_DISABLED
+ GROUPBOX "Конфіденційність",IDC_STATIC, 7,100,238,42
+ AUTOCHECKBOX "Зберігати та відображати список недавно відкритих &файлів", IDC_TASKBARPROP_RECENTFILES, 14,114,224,10, WS_DISABLED
+ AUTOCHECKBOX "Зберігати та відображати список недавно відкритих &програм",IDC_TASKBARPROP_RECENTFOLDERS, 14,128,224,10, WS_DISABLED
END
IDD_TASKBARPROP_NOTIFICATION DIALOGEX 0, 0, 252, 218
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Notification Area"
+CAPTION "Область сповіщень"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
CONTROL "", IDC_TASKBARPROP_NOTIFICATIONBITMAP, "Static", SS_BITMAP | SS_SUNKEN,7,6,238,21, WS_DISABLED
- GROUPBOX "Icons", IDC_STATIC, 6,33,240,58, WS_DISABLED
- LTEXT "You can keep the notification area uncluttered by hiding icons that you have not clicked recently.", IDC_STATIC, 13,48,223,16, WS_DISABLED
- AUTOCHECKBOX "&Hide inactive icons", IDC_TASKBARPROP_HIDEICONS, 13,70,125,10, WS_DISABLED
- PUSHBUTTON "&Customize...", IDC_TASKBARPROP_ICONCUST, 188,70,50,14, WS_DISABLED
- GROUPBOX "System icons", IDC_STATIC, 6,97,240,84, WS_DISABLED
- LTEXT "Select which system icons to always show.", IDC_STATIC, 13,112,223,16, WS_DISABLED
- AUTOCHECKBOX "Cloc&k", IDC_TASKBARPROP_CLOCK, 13,126,200,10, WS_DISABLED
- AUTOCHECKBOX "&Volume", IDC_TASKBARPROP_VOLUME, 13,139,200,10, WS_DISABLED
- AUTOCHECKBOX "&Network", IDC_TASKBARPROP_NETWORK, 13,152,200,10, WS_DISABLED
- AUTOCHECKBOX "&Power", IDC_TASKBARPROP_POWER, 13,164,200,10, WS_DISABLED
+ GROUPBOX "Значки", IDC_STATIC, 6,33,240,58, WS_DISABLED
+ LTEXT "Можна уникнути захаращення області повідомлень, приховуючи значки, які давно не використовувалися.", IDC_STATIC, 13,48,223,16, WS_DISABLED
+ AUTOCHECKBOX "&Приховувати невживані значки", IDC_TASKBARPROP_HIDEICONS, 13,70,125,10, WS_DISABLED
+ PUSHBUTTON "&Налаштувати...", IDC_TASKBARPROP_ICONCUST, 188,70,50,14, WS_DISABLED
+ GROUPBOX "Системні значки", IDC_STATIC, 6,97,240,84, WS_DISABLED
+ LTEXT "Оберіть системні значки для постійного відображення.", IDC_STATIC, 13,112,223,16, WS_DISABLED
+ AUTOCHECKBOX "&Годинник", IDC_TASKBARPROP_CLOCK, 13,126,200,10, WS_DISABLED
+ AUTOCHECKBOX "&Гучність", IDC_TASKBARPROP_VOLUME, 13,139,200,10, WS_DISABLED
+ AUTOCHECKBOX "&Мережа", IDC_TASKBARPROP_NETWORK, 13,152,200,10, WS_DISABLED
+ AUTOCHECKBOX "&Живлення", IDC_TASKBARPROP_POWER, 13,164,200,10, WS_DISABLED
END
IDD_TASKBARPROP_TOOLBARS DIALOGEX 0, 0, 252, 218
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Toolbars"
+CAPTION "Панелі інструментів"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
- LTEXT "Select which toolbars to add to the taskbar.", IDC_STATIC, 7,7,223,12, WS_DISABLED
+ LTEXT "Оберіть панелі інструментів, які будуть відображатись на панелі завдань.", IDC_STATIC, 7,7,223,12, WS_DISABLED
CONTROL "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
END
@@ -127,10 +127,10 @@ BEGIN
IDS_START "Пуск"
IDS_PROPERTIES "В&ластивості"
IDS_OPEN_ALL_USERS "&Всі користувачі"
- IDS_EXPLORE_ALL_USERS "&Огляд Всіх користувачів"
+ IDS_EXPLORE_ALL_USERS "&Огляд всіх користувачів"
END
STRINGTABLE DISCARDABLE
BEGIN
- IDS_TASKBAR_STARTMENU_PROP_CAPTION "Taskbar and Start Menu Properties"
+ IDS_TASKBAR_STARTMENU_PROP_CAPTION "Властивості меню Пуск та Панелі завдань"
END
diff --git a/reactos/base/system/expand/expand.c b/reactos/base/system/expand/expand.c
index cfd45b15eb5..deb558bfb7f 100644
--- a/reactos/base/system/expand/expand.c
+++ b/reactos/base/system/expand/expand.c
@@ -1,6 +1,7 @@
/*
* Copyright 1997 Victor Schneider
* Copyright 2002 Alexandre Julliard
+ * Copyright 2007 Hans Leidekker
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -14,44 +15,178 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#include
+#define WIN32_LEAN_AND_MEAN
+
#include
#include
#include
#include
-#include
+#include
-#include "resource.h"
-
-int _tmain(int argc, TCHAR *argv[])
+static UINT CALLBACK set_outfile( PVOID context, UINT notification, UINT_PTR param1, UINT_PTR param2 )
{
- OFSTRUCT SourceOpenStruct1, SourceOpenStruct2;
- LONG ret;
- HFILE hSourceFile, hDestFile;
- TCHAR szMsg[RC_STRING_MAX_SIZE];
+ FILE_IN_CABINET_INFO_A *info = (FILE_IN_CABINET_INFO_A *)param1;
+ char buffer[MAX_PATH];
+ char* basename;
- if (argc < 2)
- {
- LoadString( GetModuleHandle(NULL), IDS_Copy, (LPTSTR) szMsg,RC_STRING_MAX_SIZE);
- _ftprintf( stderr, szMsg, argv[0] );
- return 1;
- }
- hSourceFile = LZOpenFile(argv[1], &SourceOpenStruct1, OF_READ);
- if (argv[2])
- hDestFile = LZOpenFile(argv[2], &SourceOpenStruct2, OF_CREATE | OF_WRITE);
- else
- {
- TCHAR OriginalName[MAX_PATH];
- GetExpandedName(argv[1], OriginalName);
- hDestFile = LZOpenFile(OriginalName, &SourceOpenStruct2, OF_CREATE | OF_WRITE);
- }
- ret = LZCopy(hSourceFile, hDestFile);
- LZClose(hSourceFile);
- LZClose(hDestFile);
- LoadString( GetModuleHandle(NULL), IDS_FAILS, (LPTSTR) szMsg,RC_STRING_MAX_SIZE);
- if (ret <= 0) _ftprintf(stderr,szMsg,ret);
- return (ret <= 0);
+ switch (notification)
+ {
+ case SPFILENOTIFY_FILEINCABINET:
+ {
+ LPSTR outfile = context;
+ if (outfile[0] != 0)
+ {
+ SetLastError( ERROR_NOT_SUPPORTED );
+ return FILEOP_ABORT;
+ }
+ GetFullPathNameA( info->NameInCabinet, sizeof(buffer), buffer, &basename );
+ strcpy( outfile, basename );
+ return FILEOP_SKIP;
+ }
+ default: return NO_ERROR;
+ }
+}
+
+static UINT CALLBACK extract_callback( PVOID context, UINT notification, UINT_PTR param1, UINT_PTR param2 )
+{
+ FILE_IN_CABINET_INFO_A *info = (FILE_IN_CABINET_INFO_A *)param1;
+
+ switch (notification)
+ {
+ case SPFILENOTIFY_FILEINCABINET:
+ {
+ LPCSTR targetname = context;
+
+ strcpy( info->FullTargetName, targetname );
+ return FILEOP_DOIT;
+ }
+ default: return NO_ERROR;
+ }
+}
+
+static BOOL option_equal(LPCSTR str1, LPCSTR str2)
+{
+ if (str1[0] != '/' && str1[0] != '-')
+ return FALSE;
+ return !lstrcmpA( str1 + 1, str2 );
+}
+
+int main(int argc, char *argv[])
+{
+ int ret = 0;
+ char infile[MAX_PATH], outfile[MAX_PATH], actual_name[MAX_PATH];
+ char outfile_basename[MAX_PATH], *basename_index;
+ UINT comp;
+
+ if (argc < 3)
+ {
+ fprintf( stderr, "Usage:\n" );
+ fprintf( stderr, "\t%s infile outfile\n", argv[0] );
+ fprintf( stderr, "\t%s /r infile\n", argv[0] );
+ return 1;
+ }
+
+ if (argc == 3 && (option_equal(argv[1], "R") || option_equal(argv[1], "r")))
+ GetFullPathNameA( argv[2], sizeof(infile), infile, NULL );
+ else
+ GetFullPathNameA( argv[1], sizeof(infile), infile, NULL );
+
+ if (!SetupGetFileCompressionInfoExA( infile, actual_name, sizeof(actual_name), NULL, NULL, NULL, &comp ))
+ {
+ fprintf( stderr, "%s: can't open input file %s\n", argv[0], infile );
+ return 1;
+ }
+
+ if (argc == 3 && (option_equal(argv[1], "R") || option_equal(argv[1], "r")))
+ {
+ switch (comp)
+ {
+ case FILE_COMPRESSION_MSZIP:
+ {
+ outfile_basename[0] = 0;
+ if (!SetupIterateCabinetA( infile, 0, set_outfile, outfile_basename ))
+ {
+ fprintf( stderr, "%s: can't determine original name\n", argv[0] );
+ return 1;
+ }
+ GetFullPathNameA( infile, sizeof(outfile), outfile, &basename_index );
+ *basename_index = 0;
+ strcat( outfile, outfile_basename );
+ break;
+ }
+ case FILE_COMPRESSION_WINLZA:
+ {
+ GetExpandedNameA( infile, outfile_basename );
+ break;
+ }
+ default:
+ {
+ fprintf( stderr, "%s: can't determine original\n", argv[0] );
+ return 1;
+ }
+ }
+ }
+ else
+ GetFullPathNameA( argv[2], sizeof(outfile), outfile, NULL );
+
+ if (!lstrcmpiA( infile, outfile ))
+ {
+ fprintf( stderr, "%s: can't expand file to itself\n", argv[0] );
+ return 1;
+ }
+
+ switch (comp)
+ {
+ case FILE_COMPRESSION_MSZIP:
+ {
+ if (!SetupIterateCabinetA( infile, 0, extract_callback, outfile ))
+ {
+ fprintf( stderr, "%s: cabinet extraction failed\n", argv[0] );
+ return 1;
+ }
+ break;
+ }
+ case FILE_COMPRESSION_WINLZA:
+ {
+ INT hin, hout;
+ OFSTRUCT ofin, ofout;
+ LONG error;
+
+ if ((hin = LZOpenFileA( infile, &ofin, OF_READ )) < 0)
+ {
+ fprintf( stderr, "%s: can't open input file %s\n", argv[0], infile );
+ return 1;
+ }
+ if ((hout = LZOpenFileA( outfile, &ofout, OF_CREATE | OF_WRITE )) < 0)
+ {
+ LZClose( hin );
+ fprintf( stderr, "%s: can't open output file %s\n", argv[0], outfile );
+ return 1;
+ }
+ error = LZCopy( hin, hout );
+
+ LZClose( hin );
+ LZClose( hout );
+
+ if (error < 0)
+ {
+ fprintf( stderr, "%s: LZCopy failed, error is %ld\n", argv[0], error );
+ return 1;
+ }
+ break;
+ }
+ default:
+ {
+ if (!CopyFileA( infile, outfile, FALSE ))
+ {
+ fprintf( stderr, "%s: CopyFileA failed\n", argv[0] );
+ return 1;
+ }
+ break;
+ }
+ }
+ return ret;
}
diff --git a/reactos/base/system/expand/expand.rbuild b/reactos/base/system/expand/expand.rbuild
index 971fd67def9..6e67355660f 100644
--- a/reactos/base/system/expand/expand.rbuild
+++ b/reactos/base/system/expand/expand.rbuild
@@ -3,8 +3,8 @@
include/reactos/wine
.
-
lz32
+ setupapi
user32
expand.c
expand.rc
diff --git a/reactos/base/system/expand/expand.rc b/reactos/base/system/expand/expand.rc
index e480376b49e..3c4581ceacb 100644
--- a/reactos/base/system/expand/expand.rc
+++ b/reactos/base/system/expand/expand.rc
@@ -3,5 +3,3 @@
#define REACTOS_STR_INTERNAL_NAME "expand\0"
#define REACTOS_STR_ORIGINAL_FILENAME "expand.exe\0"
#include
-
-#include "rsrc.rc"
diff --git a/reactos/base/system/expand/lang/bg-BG.rc b/reactos/base/system/expand/lang/bg-BG.rc
deleted file mode 100644
index 13f751ccf85..00000000000
--- a/reactos/base/system/expand/lang/bg-BG.rc
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "resource.h"
-/*
- * Moved all hardcoded strings to En.rc.
- * By Magnus Olsen 2005 magnus@itkonsult-olsen.com
- */
-
-LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
-STRINGTABLE DISCARDABLE
-BEGIN
-
-IDS_Copy, "Принадлежност на РеактОС за разгъване (разкомпресиране) на файлове, в. 1.0\n\
-Възпроизводствено право на Victor Schneider 1997\n\n\
-Употреба: %s входящфайл [изходящфайл]\n"
-
-IDS_FAILS "LZCopy неуспешно: върнато е %ld\n"
-END
diff --git a/reactos/base/system/expand/lang/cs-CZ.rc b/reactos/base/system/expand/lang/cs-CZ.rc
deleted file mode 100644
index d562e17f000..00000000000
--- a/reactos/base/system/expand/lang/cs-CZ.rc
+++ /dev/null
@@ -1,21 +0,0 @@
-/* FILE: system/expand/lang/cs-CZ.rc
- * TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com)
- * UPDATED: 2008-04-21
- */
-
-#include "resource.h"
-/*
- * Moved all hardcoded strings to En.rc.
- * By Magnus Olsen 2005 magnus@itkonsult-olsen.com
- */
-
-LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
-STRINGTABLE DISCARDABLE
-BEGIN
-
-IDS_Copy, "ReactOS rozbalovaи souborщ - verze 1.0\n\
-Copyright Victor Schneider 1997\n\n\
-Pouћitн: %s vstupnн soubor [vэstupnн soubor]\n"
-
-IDS_FAILS "LZCopy selhalo: nбvratovэ kуd je %ld\n"
-END
diff --git a/reactos/base/system/expand/lang/de-DE.rc b/reactos/base/system/expand/lang/de-DE.rc
deleted file mode 100644
index 6738bd161d9..00000000000
--- a/reactos/base/system/expand/lang/de-DE.rc
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "resource.h"
-/*
- * Translated into German.
- * By Rouven Wessling 2005 pentiumforever@gmail.com
- */
-
-LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
-STRINGTABLE DISCARDABLE
-BEGIN
-
-IDS_Copy, "ReactOS Dateiexpansionsprogramm Version 1.0\n\
-Copyright Victor Schneider 1997\n\n\
-Verwendung: %s Eingabedatei [Ausgabedatei]\n"
-
-IDS_FAILS "LZCopy fehlgeschlagen: Rьckgabe ist %ld\n"
-END
diff --git a/reactos/base/system/expand/lang/el-GR.rc b/reactos/base/system/expand/lang/el-GR.rc
deleted file mode 100644
index 866523ebfc2..00000000000
--- a/reactos/base/system/expand/lang/el-GR.rc
+++ /dev/null
@@ -1,18 +0,0 @@
-#include "resource.h"
-/*
- * Moved all hardcoded strings to En.rc.
- * By Magnus Olsen 2005 magnus@itkonsult-olsen.com
- * GR.rc by Dj Apal®
- *
- */
-
-LANGUAGE LANG_GREEK, SUBLANG_DEFAULT
-STRINGTABLE DISCARDABLE
-BEGIN
-
-IDS_Copy, "ReactOS Expansion Utility Version 1.0\n\
-Copyright Victor Schneider 1997\n\n\
-ЧсЮуз: %s infile [outfile]\n"
-
-IDS_FAILS "LZБнфйгсбцЮ брЭфхче: ерйуфсЬцзке %ld\n"
-END
diff --git a/reactos/base/system/expand/lang/en-US.rc b/reactos/base/system/expand/lang/en-US.rc
deleted file mode 100644
index 9cd8de1715f..00000000000
--- a/reactos/base/system/expand/lang/en-US.rc
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "resource.h"
-/*
- * Moved all hardcoded strings to En.rc.
- * By Magnus Olsen 2005 magnus@itkonsult-olsen.com
- */
-
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-STRINGTABLE DISCARDABLE
-BEGIN
-
-IDS_Copy, "ReactOS File Expansion Utility Version 1.0\n\
-Copyright Victor Schneider 1997\n\n\
-Usage: %s infile [outfile]\n"
-
-IDS_FAILS "LZCopy failed: return is %ld\n"
-END
diff --git a/reactos/base/system/expand/lang/es-ES.rc b/reactos/base/system/expand/lang/es-ES.rc
deleted file mode 100644
index 5f4fcd8ec86..00000000000
--- a/reactos/base/system/expand/lang/es-ES.rc
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "resource.h"
-/*
- * Moved all hardcoded strings to En.rc.
- * By Magnus Olsen 2005 magnus@itkonsult-olsen.com
- */
-
-LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
-STRINGTABLE DISCARDABLE
-BEGIN
-
-IDS_Copy, "ReactOS Utilidad de Descompresiуn de Archivos Versiуn 1.0\n\
-Copyright Victor Schneider 1997\n\n\
-Utilizaciуn: %s archivo entrada [archivo salida]\n"
-
-IDS_FAILS "LZCopy fallу: el resultado es %ld\n"
-END
diff --git a/reactos/base/system/expand/lang/fr-FR.rc b/reactos/base/system/expand/lang/fr-FR.rc
deleted file mode 100644
index bca0a879a51..00000000000
--- a/reactos/base/system/expand/lang/fr-FR.rc
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "resource.h"
-/*
- * Moved all hardcoded strings to En.rc.
- * By Magnus Olsen 2005 magnus@itkonsult-olsen.com
- */
-
-LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
-STRINGTABLE DISCARDABLE
-BEGIN
-
-IDS_Copy, "ReactOS Utilitaire de dйcompression de fichiers Version 1.0\n\
-Copyright Victor Schneider 1997\n\n\
-Utilisation : %s FichierEntrйe [fichierdesortie]\n"
-
-IDS_FAILS "LZCopy a echouй : code d'erreur retournй : %ld\n"
-END
diff --git a/reactos/base/system/expand/lang/hu-HU.rc b/reactos/base/system/expand/lang/hu-HU.rc
deleted file mode 100644
index bc5d389ecca..00000000000
--- a/reactos/base/system/expand/lang/hu-HU.rc
+++ /dev/null
@@ -1,17 +0,0 @@
-#include "resource.h"
-/*
- * Moved all hardcoded strings to En.rc.
- * By Magnus Olsen 2005 magnus@itkonsult-olsen.com
- * Hungarian version is Copyright 2005 - Peter Nagy
- */
-
-LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
-STRINGTABLE DISCARDABLE
-BEGIN
-
-IDS_Copy, "ReactOS Fбjlkicsomagolу segйdprogram 1.0 verziу\n\
-Szerzхi jog: Victor Schneider 1997\n\n\
-Hasznбlat: %s forrбs [cйl]\n"
-
-IDS_FAILS "LZCopy sikertelen, visszatйrйse: %ld\n"
-END
diff --git a/reactos/base/system/expand/lang/id-ID.rc b/reactos/base/system/expand/lang/id-ID.rc
deleted file mode 100644
index ff81a2036bf..00000000000
--- a/reactos/base/system/expand/lang/id-ID.rc
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Translated into Indonesian.
- * By Zaenal Mutaqin 2007 ade999@gmail.com
- */
-
-#include "resource.h"
-
-LANGUAGE LANG_INDONESIAN, SUBLANG_DEFAULT
-
-STRINGTABLE DISCARDABLE
-BEGIN
-
-IDS_Copy, "Utilitas Ekspansi File ReactOS Versi 1.0\n\
-Hak Cipta Victor Schneider 1997\n\n\
-Pemakaian: %s infile [outfile]\n"
-
-IDS_FAILS "LZCopy gagal: hasilnya adalah %ld\n"
-END
diff --git a/reactos/base/system/expand/lang/it-IT.rc b/reactos/base/system/expand/lang/it-IT.rc
deleted file mode 100644
index 1439a0ff7bb..00000000000
--- a/reactos/base/system/expand/lang/it-IT.rc
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "resource.h"
-
-LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
-
-STRINGTABLE DISCARDABLE
-BEGIN
-
-IDS_Copy, "Programma per la espansione dei file di ReactOS Versione 1.0\n\
-Copyright Victor Schneider 1997\n\n\
-Usage: %s infile [outfile]\n"
-
-IDS_FAILS "LZCopy fallito: return и %ld\n"
-END
diff --git a/reactos/base/system/expand/lang/ja-JP.rc b/reactos/base/system/expand/lang/ja-JP.rc
deleted file mode 100644
index e5c72e33ea5..00000000000
--- a/reactos/base/system/expand/lang/ja-JP.rc
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "resource.h"
-/*
- * Moved all hardcoded strings to En.rc.
- * By Magnus Olsen 2005 magnus@itkonsult-olsen.com
- */
-
-LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
-STRINGTABLE DISCARDABLE
-BEGIN
-
-IDS_Copy, "ReactOS File Expansion Utility Version 1.0\n\
-Copyright Victor Schneider 1997\n\n\
-Ћg—p–@: %s “WЉJЊіѓtѓ@ѓCѓ‹ [“WЉJђжѓtѓ@ѓCѓ‹]\n"
-
-IDS_FAILS "LZCopy ‚ЙЋё”s‚µ‚Ь‚µ‚Ѕ: •Ф‚и’l‚Н %ld ‚Е‚·ЃB\n"
-END
diff --git a/reactos/base/system/expand/lang/lt-LT.rc b/reactos/base/system/expand/lang/lt-LT.rc
deleted file mode 100644
index 21e97f2cd88..00000000000
--- a/reactos/base/system/expand/lang/lt-LT.rc
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Translation by Vytis 'CMan' Girdюijauskas cman@cman.us */
-
-#include "resource.h"
-
-LANGUAGE LANG_LITHUANIAN, SUBLANG_DEFAULT
-STRINGTABLE DISCARDABLE
-BEGIN
-
-IDS_Copy, "ReactOS bylш iрplлtimo pagalbinл programa. Versija 1.0\n\
-(C) Victor Schneider 1997\n\n\
-Naudojimas: %s рaltinio_byla [iрvesties_byla]\n"
-
-IDS_FAILS "LZCopy nepavyko: graюino %ld\n"
-END
diff --git a/reactos/base/system/expand/lang/no-NO.rc b/reactos/base/system/expand/lang/no-NO.rc
deleted file mode 100644
index e3ab04650d8..00000000000
--- a/reactos/base/system/expand/lang/no-NO.rc
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "resource.h"
-/*
- * Moved all hardcoded strings to En.rc.
- * By Magnus Olsen 2005 magnus@itkonsult-olsen.com
- */
-
-LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
-STRINGTABLE DISCARDABLE
-BEGIN
-
-IDS_Copy, "ReactOS Fil ekstrakterings Verktшy Versjon 1.0\n\
-Copyright Victor Schneider 1997\n\n\
-Bruk: %s innfil [utfil]\n"
-
-IDS_FAILS "LZCopy mislykket: retur ble %ld\n"
-END
diff --git a/reactos/base/system/expand/lang/pl-PL.rc b/reactos/base/system/expand/lang/pl-PL.rc
deleted file mode 100644
index 79185ef9711..00000000000
--- a/reactos/base/system/expand/lang/pl-PL.rc
+++ /dev/null
@@ -1,17 +0,0 @@
-#include "resource.h"
-/*
-* translated by xrogers (http://rogers.cyberdusk.pl/)
-* xxrogers@users.sourceforge.net
-* https://sourceforge.net/projects/reactospl
-*/
-
-LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
-STRINGTABLE DISCARDABLE
-BEGIN
-
-IDS_Copy, "Narzкdzie rozwijania plikуw ReactOS wersja 1.0\n\
-Copyright Victor Schneider 1997\n\n\
-Sposуb uїycia: %s plik_wejњciowy [plik_wyjњciowy]\n"
-
-IDS_FAILS "Nieudane LZCopy: zwrуcony wynik %ld\n"
-END
diff --git a/reactos/base/system/expand/lang/pt-BR.rc b/reactos/base/system/expand/lang/pt-BR.rc
deleted file mode 100644
index d7cf730161a..00000000000
--- a/reactos/base/system/expand/lang/pt-BR.rc
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "resource.h"
-/*
- * Moved all hardcoded strings to En.rc.
- * By Magnus Olsen 2005 magnus@itkonsult-olsen.com
- */
-
-LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
-STRINGTABLE DISCARDABLE
-BEGIN
-
-IDS_Copy, "ReactOS Utilitбrio para Expandir Arquivos - Versгo 1.0\n\
-Copyright Victor Schneider 1997\n\n\
-Uso: %s origem [destino]\n"
-
-IDS_FAILS "LZCopy falhou: resultado й %ld\n"
-END
diff --git a/reactos/base/system/expand/lang/ru-RU.rc b/reactos/base/system/expand/lang/ru-RU.rc
deleted file mode 100644
index 723d14a8ea1..00000000000
--- a/reactos/base/system/expand/lang/ru-RU.rc
+++ /dev/null
@@ -1,12 +0,0 @@
-#include "resource.h"
-
-LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
-STRINGTABLE DISCARDABLE
-BEGIN
-
-IDS_Copy, "Утилита распаковки файлов ReactOS, версия 1.0\n\
-Авторские права (с) Виктор Шнейдер 1997\n\n\
-Использование: %s исходный_файл [выходной_файл]\n"
-
-IDS_FAILS "Не удалось выполнить LZCopy, возвращено: %ld\n"
-END
diff --git a/reactos/base/system/expand/lang/sv-SE.rc b/reactos/base/system/expand/lang/sv-SE.rc
deleted file mode 100644
index 25b37de2e27..00000000000
--- a/reactos/base/system/expand/lang/sv-SE.rc
+++ /dev/null
@@ -1,15 +0,0 @@
-#include "resource.h"
-/*
- * Copyright 2005 David Nordenberg
- */
-
-LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
-STRINGTABLE DISCARDABLE
-BEGIN
-
-IDS_Copy, "ReactOS verktyg fцr filextrahering version 1.0\n\
-Copyright Victor Schneider 1997\n\n\
-Anvдndning: %s kдllfil [mеlfil]\n"
-
-IDS_FAILS "LZCopy misslyckades, felkod: %ld\n"
-END
diff --git a/reactos/base/system/expand/lang/th-TH.rc b/reactos/base/system/expand/lang/th-TH.rc
deleted file mode 100644
index 86456783bfa..00000000000
--- a/reactos/base/system/expand/lang/th-TH.rc
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * ReactOS File Expansion Utility
- *
- * Copyright 2006 Sumath Aowsakulsutthi (Thai translation)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "resource.h"
-
-LANGUAGE LANG_THAI, SUBLANG_DEFAULT
-
-STRINGTABLE DISCARDABLE
-BEGIN
-
-IDS_Copy, "в»ГбЎГБНГГ¶»ГРвВЄ№маѕЧиН»ГСєбµи§бїйБўН§ ReactOS ГШи№·Хи 1.0\n\
-К§З№ЕФўКФ·ёФм Victor Schneider 1997\n\n\
-КАТЗРгЄй§Т№: %s бїйБАТВг№ [бїйБАТВ№НЎ]\n"
-
-IDS_FAILS "ЎТäѴЕНЎЕйБаЛЕЗ: ВйН№ЎЕСєа»з№ %ld\n"
-END
diff --git a/reactos/base/system/expand/lang/uk-UA.rc b/reactos/base/system/expand/lang/uk-UA.rc
deleted file mode 100644
index 27fbed4d6fa..00000000000
--- a/reactos/base/system/expand/lang/uk-UA.rc
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * PROJECT: ReactOS File Expansion Utility
- * LICENSE: GPL - See COPYING in the top level directory
- * FILE: base/system/expand/lang/uk-UA.rc
- * PURPOSE: Ukraianian Language File for Expand
- * TRANSLATOR: Artem Reznikov
- */
-#include "resource.h"
-
-LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
-STRINGTABLE DISCARDABLE
-BEGIN
-
-IDS_Copy, "Програма розпаковки файлів ReactOS версія 1.0\n\
-Copyright Victor Schneider 1997\n\n\
-Usage: %s infile [outfile]\n"
-
-IDS_FAILS "Не вдалося виконати: return is %ld\n"
-END
diff --git a/reactos/base/system/expand/resource.h b/reactos/base/system/expand/resource.h
deleted file mode 100644
index 20560c1a96d..00000000000
--- a/reactos/base/system/expand/resource.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef RESOURCE_H__
-#define RESOURCE_H__
-
-#define RC_STRING_MAX_SIZE 4096
-#define IDS_Copy 100
-#define IDS_FAILS 101
-
-#endif
-
-/* EOF */
diff --git a/reactos/base/system/expand/rsrc.rc b/reactos/base/system/expand/rsrc.rc
deleted file mode 100644
index 45e22c26596..00000000000
--- a/reactos/base/system/expand/rsrc.rc
+++ /dev/null
@@ -1,24 +0,0 @@
-#include
-#include "resource.h"
-
-LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
-
-#include "lang/bg-BG.rc"
-#include "lang/cs-CZ.rc"
-#include "lang/de-DE.rc"
-#include "lang/el-GR.rc"
-#include "lang/en-US.rc"
-#include "lang/es-ES.rc"
-#include "lang/fr-FR.rc"
-#include "lang/hu-HU.rc"
-#include "lang/id-ID.rc"
-#include "lang/it-IT.rc"
-#include "lang/ja-JP.rc"
-#include "lang/lt-LT.rc"
-#include "lang/no-NO.rc"
-#include "lang/pl-PL.rc"
-#include "lang/pt-BR.rc"
-#include "lang/ru-RU.rc"
-#include "lang/sv-SE.rc"
-#include "lang/th-TH.rc"
-#include "lang/uk-UA.rc"
diff --git a/reactos/base/system/lsass/lsass.c b/reactos/base/system/lsass/lsass.c
index a444cd9eb0c..30fa05de17d 100644
--- a/reactos/base/system/lsass/lsass.c
+++ b/reactos/base/system/lsass/lsass.c
@@ -37,43 +37,42 @@
#include
INT WINAPI
-wWinMain(
- IN HINSTANCE hInstance,
- IN HINSTANCE hPrevInstance,
- IN LPWSTR lpCmdLine,
- IN INT nShowCmd)
+wWinMain(IN HINSTANCE hInstance,
+ IN HINSTANCE hPrevInstance,
+ IN LPWSTR lpCmdLine,
+ IN INT nShowCmd)
{
- NTSTATUS Status = STATUS_SUCCESS;
+ NTSTATUS Status = STATUS_SUCCESS;
- DPRINT("Local Security Authority Subsystem\n");
- DPRINT(" Initializing...\n");
+ DPRINT("Local Security Authority Subsystem\n");
+ DPRINT(" Initializing...\n");
- /* Initialize the LSA server DLL. */
- Status = LsapInitLsa();
- if (!NT_SUCCESS(Status))
- {
- DPRINT1("LsapInitLsa() failed (Status 0x%08lX)\n", Status);
- goto ByeBye;
- }
+ /* Initialize the LSA server DLL. */
+ Status = LsapInitLsa();
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT1("LsapInitLsa() failed (Status 0x%08lX)\n", Status);
+ goto ByeBye;
+ }
#if 0
- /* Initialize the SAM server DLL. */
- Status = SamIInitialize();
- if (!NT_SUCCESS(Status))
- {
- DPRINT1("SamIInitialize() failed (Status 0x%08lX)\n", Status);
- goto ByeBye;
- }
+ /* Initialize the SAM server DLL. */
+ Status = SamIInitialize();
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT1("SamIInitialize() failed (Status 0x%08lX)\n", Status);
+ goto ByeBye;
+ }
#endif
- /* FIXME: More initialization */
+ /* FIXME: More initialization */
- DPRINT(" Done...\n");
+ DPRINT(" Done...\n");
ByeBye:
- NtTerminateThread(NtCurrentThread(), Status);
+ NtTerminateThread(NtCurrentThread(), Status);
- return 0;
+ return 0;
}
/* EOF */
diff --git a/reactos/base/system/runonce/lang/uk-UA.rc b/reactos/base/system/runonce/lang/uk-UA.rc
new file mode 100644
index 00000000000..6c68828757a
--- /dev/null
+++ b/reactos/base/system/runonce/lang/uk-UA.rc
@@ -0,0 +1,19 @@
+/*
+ * PROJECT: ReactOS runonce.exe
+ * LICENSE: GPL - See COPYING in the top level directory
+ * FILE: base/system/runonce/lang/uk-UA.rc
+ * PURPOSE: Ukraianian Language File for runonce
+ * TRANSLATOR: Sakara Yevhen
+ */
+
+LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
+
+IDD_RUNONCE_DLG DIALOG DISCARDABLE 0, 0, 239, 170
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Встановлення ReactOS"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ LTEXT "ReactOS налаштовує наступні компоненти:", -1, 38, 8, 196, 18
+ LISTBOX IDC_COMP_LIST, 36, 32, 197, 131, LBS_OWNERDRAWVARIABLE | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
+ ICON IDI_ICON, -1, 5, 6, 21, 20
+END
diff --git a/reactos/base/system/runonce/rsrc.rc b/reactos/base/system/runonce/rsrc.rc
index ddeb502794b..540fe8abd20 100644
--- a/reactos/base/system/runonce/rsrc.rc
+++ b/reactos/base/system/runonce/rsrc.rc
@@ -3,4 +3,5 @@
#include "lang/ja-JP.rc"
#include "lang/ru-RU.rc"
#include "lang/sk-SK.rc"
+#include "lang/uk-UA.rc"
diff --git a/reactos/base/system/services/rpcserver.c b/reactos/base/system/services/rpcserver.c
index d9dcfa3a50f..193cb9b946e 100644
--- a/reactos/base/system/services/rpcserver.c
+++ b/reactos/base/system/services/rpcserver.c
@@ -644,6 +644,14 @@ DWORD RControlService(
if ((dwError == ERROR_SUCCESS) && (pcbBytesNeeded))
dwError = ERROR_DEPENDENT_SERVICES_RUNNING;
+ if (dwError == ERROR_SUCCESS &&
+ dwControl == SERVICE_CONTROL_STOP &&
+ lpServiceStatus->dwCurrentState == SERVICE_STOPPED)
+ {
+ lpService->ProcessId = 0; /* FIXME */
+ lpService->ThreadId = 0;
+ }
+
/* Return service status information */
RtlCopyMemory(lpServiceStatus,
&lpService->Status,
@@ -3241,8 +3249,135 @@ DWORD RCreateServiceA(
DWORD dwPwSize,
LPSC_RPC_HANDLE lpServiceHandle)
{
- UNIMPLEMENTED;
- return ERROR_CALL_NOT_IMPLEMENTED;
+ DWORD dwError = ERROR_SUCCESS;
+ LPWSTR lpServiceNameW = NULL;
+ LPWSTR lpDisplayNameW = NULL;
+ LPWSTR lpBinaryPathNameW = NULL;
+ LPWSTR lpLoadOrderGroupW = NULL;
+ LPWSTR lpDependenciesW = NULL;
+ LPWSTR lpServiceStartNameW = NULL;
+ DWORD dwDependenciesLength = 0;
+ DWORD dwLength;
+ int len;
+ LPSTR lpStr;
+
+ if (lpServiceName)
+ {
+ len = MultiByteToWideChar(CP_ACP, 0, lpServiceName, -1, NULL, 0);
+ lpServiceNameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+ if (!lpServiceNameW)
+ {
+ SetLastError(ERROR_NOT_ENOUGH_MEMORY);
+ goto cleanup;
+ }
+ MultiByteToWideChar(CP_ACP, 0, lpServiceName, -1, lpServiceNameW, len);
+ }
+
+ if (lpDisplayName)
+ {
+ len = MultiByteToWideChar(CP_ACP, 0, lpDisplayName, -1, NULL, 0);
+ lpDisplayNameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+ if (!lpDisplayNameW)
+ {
+ SetLastError(ERROR_NOT_ENOUGH_MEMORY);
+ goto cleanup;
+ }
+ MultiByteToWideChar(CP_ACP, 0, lpDisplayName, -1, lpDisplayNameW, len);
+ }
+
+ if (lpBinaryPathName)
+ {
+ len = MultiByteToWideChar(CP_ACP, 0, lpBinaryPathName, -1, NULL, 0);
+ lpBinaryPathNameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+ if (!lpBinaryPathNameW)
+ {
+ SetLastError(ERROR_NOT_ENOUGH_MEMORY);
+ goto cleanup;
+ }
+ MultiByteToWideChar(CP_ACP, 0, lpBinaryPathName, -1, lpBinaryPathNameW, len);
+ }
+
+ if (lpLoadOrderGroup)
+ {
+ len = MultiByteToWideChar(CP_ACP, 0, lpLoadOrderGroup, -1, NULL, 0);
+ lpLoadOrderGroupW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+ if (!lpLoadOrderGroupW)
+ {
+ SetLastError(ERROR_NOT_ENOUGH_MEMORY);
+ goto cleanup;
+ }
+ MultiByteToWideChar(CP_ACP, 0, lpLoadOrderGroup, -1, lpLoadOrderGroupW, len);
+ }
+
+ if (lpDependencies)
+ {
+ lpStr = (LPSTR)lpDependencies;
+ while (*lpStr)
+ {
+ dwLength = strlen(lpStr) + 1;
+ dwDependenciesLength += dwLength;
+ lpStr = lpStr + dwLength;
+ }
+ dwDependenciesLength++;
+
+ lpDependenciesW = HeapAlloc(GetProcessHeap(), 0, dwDependenciesLength * sizeof(WCHAR));
+ if (!lpDependenciesW)
+ {
+ SetLastError(ERROR_NOT_ENOUGH_MEMORY);
+ goto cleanup;
+ }
+ MultiByteToWideChar(CP_ACP, 0, (LPSTR)lpDependencies, dwDependenciesLength, lpDependenciesW, dwDependenciesLength);
+ }
+
+ if (lpServiceStartName)
+ {
+ len = MultiByteToWideChar(CP_ACP, 0, lpServiceStartName, -1, NULL, 0);
+ lpServiceStartNameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+ if (!lpServiceStartNameW)
+ {
+ SetLastError(ERROR_NOT_ENOUGH_MEMORY);
+ goto cleanup;
+ }
+ MultiByteToWideChar(CP_ACP, 0, lpServiceStartName, -1, lpServiceStartNameW, len);
+ }
+
+ dwError = RCreateServiceW(hSCManager,
+ lpServiceNameW,
+ lpDisplayNameW,
+ dwDesiredAccess,
+ dwServiceType,
+ dwStartType,
+ dwErrorControl,
+ lpBinaryPathNameW,
+ lpLoadOrderGroupW,
+ lpdwTagId,
+ (LPBYTE)lpDependenciesW,
+ dwDependenciesLength,
+ lpServiceStartNameW,
+ lpPassword,
+ dwPwSize,
+ lpServiceHandle);
+
+cleanup:
+ if (lpServiceNameW !=NULL)
+ HeapFree(GetProcessHeap(), 0, lpServiceNameW);
+
+ if (lpDisplayNameW != NULL)
+ HeapFree(GetProcessHeap(), 0, lpDisplayNameW);
+
+ if (lpBinaryPathNameW != NULL)
+ HeapFree(GetProcessHeap(), 0, lpBinaryPathNameW);
+
+ if (lpLoadOrderGroupW != NULL)
+ HeapFree(GetProcessHeap(), 0, lpLoadOrderGroupW);
+
+ if (lpDependenciesW != NULL)
+ HeapFree(GetProcessHeap(), 0, lpDependenciesW);
+
+ if (lpServiceStartNameW != NULL)
+ HeapFree(GetProcessHeap(), 0, lpServiceStartNameW);
+
+ return dwError;
}
diff --git a/reactos/boot/armllb/armllb.rbuild b/reactos/boot/armllb/armllb.rbuild
new file mode 100644
index 00000000000..5e254c43071
--- /dev/null
+++ b/reactos/boot/armllb/armllb.rbuild
@@ -0,0 +1,65 @@
+
+
+
+
+
+ libcntpr
+ rtl
+ ./inc
+
+
+
+ -Wl,--image-base=0x401FEFF8
+
+
+
+
+
+ -Wl,--image-base=0xF000
+
+
+ boot.s
+ main.c
+ crtsupp.c
+ envir.c
+ fw.c
+
+ keyboard.c
+ serial.c
+ time.c
+ video.c
+
+
+ hwdata.c
+ hwdss.c
+ hwuart.c
+ hwinfo.c
+
+
+
+
+
+ hwclcd.c
+ hwkmi.c
+ hwuart.c
+ hwinfo.c
+ hwinit.c
+
+
+
+
+ loader.c
+
+
+ -fms-extensions
+ -ffreestanding
+ -fno-builtin
+ -fno-inline
+ -fno-zero-initialized-in-bss
+ -Os
+
+
+ -lgcc
+
+
+
diff --git a/reactos/boot/armllb/boot.s b/reactos/boot/armllb/boot.s
new file mode 100644
index 00000000000..505ae843cac
--- /dev/null
+++ b/reactos/boot/armllb/boot.s
@@ -0,0 +1,39 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/boot.s
+ * PURPOSE: Implements the entry point for ARM machines
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+ .title "ARM LLB Entry Point"
+ .include "ntoskrnl/include/internal/arm/kxarm.h"
+ .include "ntoskrnl/include/internal/arm/ksarm.h"
+
+ NESTED_ENTRY _start
+ PROLOG_END _start
+
+#ifdef _OMAP3_
+ /*
+ * On OMAP3, the boot is directly from TI BootROM that reads NAND flash.
+ * First word is size of program to load.
+ * Second word is load address of program. Since DDR is not initialized,
+ * we load to SDRAM at 40200000h. Max 64K.
+ */
+ .word 0x8000
+ .word 0x40200000
+#endif
+
+ /* Load C entrypoint and setup LLB stack */
+ ldr lr, L_LlbStartup
+ ldr sp, L_BootStackEnd
+ bx lr
+ ENTRY_END _start
+
+L_BootStackEnd:
+ .long 0x00010000
+
+L_LlbStartup:
+ .long LlbStartup
+
+/* EOF */
diff --git a/reactos/boot/armllb/crtsupp.c b/reactos/boot/armllb/crtsupp.c
new file mode 100644
index 00000000000..ba2dde3937c
--- /dev/null
+++ b/reactos/boot/armllb/crtsupp.c
@@ -0,0 +1,57 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/crtsupp.c
+ * PURPOSE: CRT Support Code
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+#include "precomp.h"
+
+int
+putchar(int c)
+{
+ /* Write to the screen */
+ LlbVideoPutChar(c);
+
+ /* For DEBUGGING ONLY */
+ LlbSerialPutChar(c);
+ return 0;
+}
+
+int
+puts(const char* string)
+{
+ while (*string) putchar(*string++);
+ return 0;
+}
+
+int printf(const char *fmt, ...)
+{
+ va_list args;
+ unsigned int i;
+ char printbuffer[1024];
+
+ va_start(args, fmt);
+ i = vsprintf(printbuffer, fmt, args);
+ va_end(args);
+
+ /* Print the string */
+ return puts(printbuffer);
+}
+
+VOID
+DbgPrint(const char *fmt, ...)
+{
+ va_list args;
+ unsigned int i, j;
+ char Buffer[1024];
+
+ va_start(args, fmt);
+ i = vsprintf(Buffer, fmt, args);
+ va_end(args);
+
+ for (j = 0; j < i; j++) LlbSerialPutChar(Buffer[j]);
+}
+
+/* EOF */
diff --git a/reactos/boot/armllb/envir.c b/reactos/boot/armllb/envir.c
new file mode 100644
index 00000000000..31ec2a56f82
--- /dev/null
+++ b/reactos/boot/armllb/envir.c
@@ -0,0 +1,149 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/envir.c
+ * PURPOSE: LLB Environment Variable Routines
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+#include "precomp.h"
+
+ULONG LlbEnvHwPageSize;
+ULONG LlbEnvHwMemStart;
+ULONG LlbEnvHwMemSize;
+ULONG LlbEnvRamDiskStart;
+ULONG LlbEnvRamDiskSize;
+CHAR LlbEnvCmdLine[256];
+CHAR LlbValueData[32];
+
+VOID
+NTAPI
+LlbEnvParseArguments(IN PATAG Arguments)
+{
+ PATAG Atag;
+
+ /* Parse the ATAGs */
+ Atag = Arguments;
+ while (Atag->Hdr.Size)
+ {
+ /* Check tag type */
+ switch (Atag->Hdr.Tag)
+ {
+ case ATAG_CORE:
+
+ /* Save page size */
+ LlbEnvHwPageSize = Atag->u.Core.PageSize;
+ break;
+
+ case ATAG_MEM:
+
+ /* Save RAM start and size */
+ LlbEnvHwMemStart = Atag->u.Mem.Start;
+ LlbEnvHwMemSize = Atag->u.Mem.Size;
+ break;
+
+ case ATAG_INITRD2:
+
+ /* Save RAMDISK start and size */
+ LlbEnvRamDiskStart = Atag->u.InitRd2.Start;
+ LlbEnvRamDiskSize = Atag->u.InitRd2.Size;
+
+ /* Make sure it's 16MB-aligned */
+ LlbEnvRamDiskSize = (LlbEnvRamDiskSize + (16 * 1024 * 1024) - 1)
+ &~ ((16 * 1024 * 1024) - 1);
+
+ /* The RAMDISK actually starts 16MB later */
+ LlbEnvRamDiskStart += 16 * 1024 * 1024;
+ LlbEnvRamDiskSize -= 16 * 1024 * 1024;
+ break;
+
+ case ATAG_CMDLINE:
+
+ /* Save command line */
+ strncpy(LlbEnvCmdLine,
+ Atag->u.CmdLine.CmdLine,
+ Atag->Hdr.Size * sizeof(ULONG));
+ break;
+
+ /* Nothing left to handle */
+ case ATAG_NONE:
+ default:
+ return;
+ }
+
+ /* Next tag */
+ Atag = (PATAG)((PULONG)Atag + Atag->Hdr.Size);
+ }
+
+ /* For debugging */
+ DbgPrint("[BOOTROM] PageSize: %dKB RAM: %dMB CMDLINE: %s\n",
+ LlbEnvHwPageSize / 1024, LlbEnvHwMemSize / 1024 / 1024, LlbEnvCmdLine);
+}
+
+VOID
+NTAPI
+LlbEnvGetMemoryInformation(IN PULONG Base,
+ IN PULONG Size)
+{
+ /* Return RAM information */
+ *Base = LlbEnvHwMemStart;
+ *Size = LlbEnvHwMemSize;
+}
+
+BOOLEAN
+NTAPI
+LlbEnvGetRamDiskInformation(IN PULONG Base,
+ IN PULONG Size)
+{
+ /* Do we have a ramdisk? */
+ if (LlbEnvRamDiskSize == 0)
+ {
+ /* No */
+ *Base = 0;
+ *Size = 0;
+ return FALSE;
+ }
+
+ /* Return ramdisk information */
+ *Base = LlbEnvRamDiskStart;
+ *Size = LlbEnvRamDiskSize;
+ return TRUE;
+}
+
+PCHAR
+NTAPI
+LlbEnvRead(IN PCHAR ValueName)
+{
+ PCHAR ValuePointer;
+ ULONG Length = 0;
+
+ /* Search for the value name */
+ ValuePointer = strstr(LlbEnvCmdLine, ValueName);
+ if (ValuePointer)
+ {
+ /* Get the value data and its length */
+ ValuePointer += strlen(ValueName) + 1;
+ if (strchr(ValuePointer, ','))
+ {
+ /* Stop before next parameter */
+ Length = strchr(ValuePointer, ',') - ValuePointer;
+ }
+ else
+ {
+ /* Stop before the string ends */
+ Length = strlen(ValuePointer);
+ }
+
+ /* Copy it */
+ strncpy(LlbValueData, ValuePointer, Length);
+ }
+
+ /* Terminate the data */
+ LlbValueData[Length] = ANSI_NULL;
+
+ /* Return the data */
+ return LlbValueData;
+}
+
+/* EOF */
+
diff --git a/reactos/boot/armllb/fw.c b/reactos/boot/armllb/fw.c
new file mode 100644
index 00000000000..82dcd7a4c22
--- /dev/null
+++ b/reactos/boot/armllb/fw.c
@@ -0,0 +1,181 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/fw.c
+ * PURPOSE: LLB Firmware Routines (accessible by OS Loader)
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+#include "precomp.h"
+
+VOID
+LlbFwPutChar(INT Ch)
+{
+ /* Just call directly the video function */
+ LlbVideoPutChar(Ch);
+
+ /* DEBUG ONLY */
+ LlbSerialPutChar(Ch);
+}
+
+BOOLEAN
+LlbFwKbHit(VOID)
+{
+ /* Check RX buffer */
+ return LlbHwKbdReady();
+}
+
+INT
+LlbFwGetCh(VOID)
+{
+ /* Return the key pressed */
+ return LlbKeyboardGetChar();
+}
+
+ULONG
+LlbFwVideoSetDisplayMode(IN PCHAR DisplayModeName,
+ IN BOOLEAN Init)
+{
+ /* Return text mode */
+ return 0;
+}
+
+VOID
+LlbFwVideoGetDisplaySize(OUT PULONG Width,
+ OUT PULONG Height,
+ OUT PULONG Depth)
+{
+ /* Query static settings */
+ *Width = LlbHwGetScreenWidth() / 8;
+ *Height = LlbHwGetScreenHeight() / 16;
+
+ /* Depth is always 16 bpp */
+ *Depth = 16;
+}
+
+ULONG
+LlbFwVideoGetBufferSize(VOID)
+{
+ /* X * Y * BPP */
+ return LlbHwGetScreenWidth() * LlbHwGetScreenHeight() * 2;
+}
+
+VOID
+LlbFwVideoSetTextCursorPosition(IN ULONG X,
+ IN ULONG Y)
+{
+ printf("%s is UNIMPLEMENTED", __FUNCTION__);
+ while (TRUE);
+}
+
+VOID
+LlbFwVideoHideShowTextCursor(IN BOOLEAN Show)
+{
+ /* Nothing to do */
+ return;
+}
+
+USHORT ColorPalette[16][3] =
+{
+ {0x00, 0x00, 0x00},
+ {0x00, 0x00, 0xAA},
+ {0x00, 0xAA, 0x00},
+ {0x00, 0xAA, 0xAA},
+ {0xAA, 0x00, 0x00},
+ {0xAA, 0x00, 0xAA},
+ {0xAA, 0x55, 0x00},
+ {0xAA, 0xAA, 0xAA},
+ {0x55, 0x55, 0x55},
+ {0x55, 0x55, 0xFF},
+ {0x55, 0xFF, 0x55},
+ {0x55, 0xFF, 0xFF},
+ {0xFF, 0x55, 0x55},
+ {0xFF, 0x55, 0xFF},
+ {0xFF, 0xFF, 0x55},
+ {0xFF, 0xFF, 0xFF},
+};
+
+VOID
+LlbFwVideoCopyOffScreenBufferToVRAM(IN PVOID Buffer)
+{
+ /* No double-buffer is used on ARM */
+ return;
+}
+
+VOID
+LlbFwVideoClearScreen(IN UCHAR Attr)
+{
+ /* Clear the screen */
+ LlbVideoClearScreen(TRUE);
+}
+
+VOID
+LlbFwVideoPutChar(IN INT c,
+ IN UCHAR Attr,
+ IN ULONG X,
+ IN ULONG Y)
+{
+ ULONG Color, BackColor;
+ PUSHORT Buffer;
+
+ /* Convert EGA index to color used by hardware */
+ Color = LlbHwVideoCreateColor(ColorPalette[Attr & 0xF][0],
+ ColorPalette[Attr & 0xF][1],
+ ColorPalette[Attr & 0xF][2]);
+ BackColor = LlbHwVideoCreateColor(ColorPalette[Attr >> 4][0],
+ ColorPalette[Attr >> 4][1],
+ ColorPalette[Attr >> 4][2]);
+
+ /* Compute buffer address */
+ Buffer = (PUSHORT)LlbHwGetFrameBuffer() + (LlbHwGetScreenWidth() * (Y * 16)) + (X * 8);
+
+ /* Draw it */
+ LlbVideoDrawChar(c, Buffer, Color, BackColor);
+}
+
+BOOLEAN
+LlbFwVideoIsPaletteFixed(VOID)
+{
+ printf("%s is UNIMPLEMENTED", __FUNCTION__);
+ while (TRUE);
+ return TRUE;
+}
+
+VOID
+LlbFwVideoSetPaletteColor(IN UCHAR Color,
+ IN UCHAR Red,
+ IN UCHAR Green,
+ IN UCHAR Blue)
+{
+ printf("%s is UNIMPLEMENTED", __FUNCTION__);
+ while (TRUE);
+ return;
+}
+
+VOID
+LlbFwVideoGetPaletteColor(IN UCHAR Color,
+ OUT PUCHAR Red,
+ OUT PUCHAR Green,
+ OUT PUCHAR Blue)
+{
+ printf("%s is UNIMPLEMENTED", __FUNCTION__);
+ while (TRUE);
+ return;
+}
+
+VOID
+LlbFwVideoSync(VOID)
+{
+ printf("%s is UNIMPLEMENTED", __FUNCTION__);
+ while (TRUE);
+ return;
+}
+
+TIMEINFO*
+LlbFwGetTime(VOID)
+{
+ /* Call existing function */
+ return LlbGetTime();
+}
+
+/* EOF */
diff --git a/reactos/boot/armllb/hw/keyboard.c b/reactos/boot/armllb/hw/keyboard.c
new file mode 100755
index 00000000000..06d2c6706dd
--- /dev/null
+++ b/reactos/boot/armllb/hw/keyboard.c
@@ -0,0 +1,242 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/hw/keyboard.c
+ * PURPOSE: LLB Keyboard Routines
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+#include "precomp.h"
+
+#define E0_KPENTER 96
+#define E0_RCTRL 97
+#define E0_KPSLASH 98
+#define E0_PRSCR 99
+#define E0_RALT 100
+#define E0_BREAK 101
+#define E0_HOME 102
+#define E0_UP 103
+#define E0_PGUP 104
+#define E0_LEFT 105
+#define E0_RIGHT 106
+#define E0_END 107
+#define E0_DOWN 108
+#define E0_PGDN 109
+#define E0_INS 110
+#define E0_DEL 111
+#define E1_PAUSE 119
+#define E0_MACRO 112
+#define E0_F13 113
+#define E0_F14 114
+#define E0_HELP 115
+#define E0_DO 116
+#define E0_F17 117
+#define E0_KPMINPLUS 118
+#define E0_OK 124
+#define E0_MSLW 125
+#define E0_MSRW 126
+#define E0_MSTM 127
+
+/* US 101 KEYBOARD LAYOUT *****************************************************/
+
+CHAR LlbHwScanCodeToAsciiTable[58][2] =
+{
+ { 0,0 } ,
+ { 27, 27 } ,
+ { '1','!' } ,
+ { '2','@' } ,
+ { '3','#' } ,
+ { '4','$' } ,
+ { '5','%' } ,
+ { '6','^' } ,
+ { '7','&' } ,
+ { '8','*' } ,
+ { '9','(' } ,
+ { '0',')' } ,
+ { '-','_' } ,
+ { '=','+' } ,
+ { 8,8 } ,
+ { 9,9 } ,
+ { 'q','Q' } ,
+ { 'w','W' } ,
+ { 'e','E' } ,
+ { 'r','R' } ,
+ { 't','T' } ,
+ { 'y','Y' } ,
+ { 'u','U' } ,
+ { 'i','I' } ,
+ { 'o','O' } ,
+ { 'p','P' } ,
+ { '[','{' } ,
+ { ']','}' } ,
+ { 13,13 } ,
+ { 0,0 } ,
+ { 'a','A' } ,
+ { 's','S' } ,
+ { 'd','D' } ,
+ { 'f','F' } ,
+ { 'g','G' } ,
+ { 'h','H' } ,
+ { 'j','J' } ,
+ { 'k','K' } ,
+ { 'l','L' } ,
+ { ';',':' } ,
+ { 39,34 } ,
+ { '`','~' } ,
+ { 0,0 } ,
+ { '\\','|'} ,
+ { 'z','Z' } ,
+ { 'x','X' } ,
+ { 'c','C' } ,
+ { 'v','V' } ,
+ { 'b','B' } ,
+ { 'n','N' } ,
+ { 'm','M' } ,
+ { ',','<' } ,
+ { '.','>' } ,
+ { '/','?' } ,
+ { 0,0 } ,
+ { 0,0 } ,
+ { 0,0 } ,
+ { ' ',' ' } ,
+};
+
+/* EXTENDED KEY TABLE *********************************************************/
+
+UCHAR LlbHwExtendedScanCodeTable[128] =
+{
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ E0_KPENTER, E0_RCTRL, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, E0_KPSLASH, 0, E0_PRSCR,
+ E0_RALT, 0, 0, 0,
+ 0, E0_F13, E0_F14, E0_HELP,
+ E0_DO, E0_F17, 0, 0,
+ 0, 0, E0_BREAK, E0_HOME,
+ E0_UP, E0_PGUP, 0, E0_LEFT,
+ E0_OK, E0_RIGHT, E0_KPMINPLUS, E0_END,
+ E0_DOWN, E0_PGDN, E0_INS, E0_DEL,
+ 0, 0, 0, 0,
+ 0, 0, 0, E0_MSLW,
+ E0_MSRW, E0_MSTM, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, E0_MACRO,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0
+ };
+
+
+/* FUNCTIONS ******************************************************************/
+
+USHORT LlbKbdLastScanCode;
+
+UCHAR
+NTAPI
+LlbKbdTranslateScanCode(IN USHORT ScanCode,
+ IN PUCHAR KeyCode)
+{
+ ULONG LastScanCode;
+
+ /* Check for extended scan codes */
+ if ((ScanCode == 0xE0) || (ScanCode == 0xE1))
+ {
+ /* We'll get these on the next scan */
+ LlbKbdLastScanCode = ScanCode;
+ return 0;
+ }
+
+ /* Check for bogus scan codes */
+ if ((ScanCode == 0x00) || (ScanCode == 0xFF))
+ {
+ /* Reset */
+ LlbKbdLastScanCode = 0;
+ return 0;
+ }
+
+ /* Only act on the break, not the make */
+ if (ScanCode > 0x80) return 0;
+
+ /* Keep only simple scan codes */
+ ScanCode &= 0x7F;
+
+ /* Check if this was part of an extended sequence */
+ if (LlbKbdLastScanCode)
+ {
+ /* Save the last scan code and clear it, since we've consumed it now */
+ LastScanCode = LlbKbdLastScanCode;
+ LlbKbdLastScanCode = 0;
+ switch (LastScanCode)
+ {
+ /* E0 extended codes */
+ case 0xE0:
+
+ /* Skip bogus codes */
+ if ((ScanCode == 0x2A) || (ScanCode == 0x36)) return 0;
+
+ /* Lookup the code for it */
+ if (!LlbHwExtendedScanCodeTable[ScanCode]) return 0;
+ *KeyCode = LlbHwExtendedScanCodeTable[ScanCode];
+ break;
+
+ /* E1 extended codes */
+ case 0xE1:
+
+ /* Only recognize one (the SYSREQ/PAUSE sequence) */
+ if (ScanCode != 0x1D) return 0;
+ LlbKbdLastScanCode = 0x100;
+ break;
+
+ /* PAUSE sequence */
+ case 0x100:
+
+ /* Make sure it's the one */
+ if (ScanCode != 0x45) return 0;
+ *KeyCode = E1_PAUSE;
+ break;
+ }
+ }
+ else
+ {
+ /* Otherwise, the scancode is the key code */
+ LlbKbdLastScanCode = 0;
+ *KeyCode = ScanCode;
+ }
+
+ /* Translation success */
+ return 1;
+ }
+
+CHAR
+NTAPI
+LlbKeyboardGetChar(VOID)
+{
+ UCHAR ScanCode, KeyCode;
+
+ do
+ {
+ /* Read the scan code and convert it to a virtual key code */
+ ScanCode = LlbHwKbdRead();
+ } while (!LlbKbdTranslateScanCode(ScanCode, &KeyCode));
+
+ /* Is this ASCII? */
+ if (KeyCode > 96) return ScanCode;
+
+ /* Return the ASCII character */
+ return LlbHwScanCodeToAsciiTable[KeyCode][0];
+}
+
+/* EOF */
diff --git a/reactos/boot/armllb/hw/omap3/hwinfo.c b/reactos/boot/armllb/hw/omap3/hwinfo.c
new file mode 100755
index 00000000000..a1bd1cdbbae
--- /dev/null
+++ b/reactos/boot/armllb/hw/omap3/hwinfo.c
@@ -0,0 +1,78 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/hw/omap3/hwinfo.c
+ * PURPOSE: LLB Hardware Info Routines for OMAP3
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+#include "precomp.h"
+
+ULONG
+NTAPI
+LlbHwGetScreenWidth(VOID)
+{
+ return 1280;
+}
+
+ULONG
+NTAPI
+LlbHwGetScreenHeight(VOID)
+{
+ return 720;
+}
+
+PVOID
+NTAPI
+LlbHwGetFrameBuffer(VOID)
+{
+ return (PVOID)0x80500000;
+}
+
+ULONG
+NTAPI
+LlbHwGetBoardType(VOID)
+{
+ return MACH_TYPE_OMAP3_BEAGLE;
+}
+
+ULONG
+NTAPI
+LlbHwGetPClk(VOID)
+{
+ return 48000000;
+}
+
+ULONG
+NTAPI
+LlbHwGetTmr0Base(VOID)
+{
+ return 0x48318000;
+}
+
+ULONG
+NTAPI
+LlbHwGetUartBase(IN ULONG Port)
+{
+ if (Port == 1)
+ {
+ return 0x4806A000;
+ }
+ else if (Port == 2)
+ {
+ return 0x4806C000;
+ }
+ else if (Port == 3)
+ {
+ return 0x49020000;
+ }
+}
+
+ULONG
+NTAPI
+LlbHwGetSerialUart(VOID)
+{
+ return 3;
+}
+
+/* EOF */
diff --git a/reactos/boot/armllb/hw/omap3/hwinit.c b/reactos/boot/armllb/hw/omap3/hwinit.c
new file mode 100755
index 00000000000..85ee0556096
--- /dev/null
+++ b/reactos/boot/armllb/hw/omap3/hwinit.c
@@ -0,0 +1,18 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/hw/omap3/hwinit.c
+ * PURPOSE: LLB Hardware Initialization Routines for OMAP3
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+#include "precomp.h"
+
+VOID
+NTAPI
+LlbHwInitialize(VOID)
+{
+
+}
+
+/* EOF */
diff --git a/reactos/boot/armllb/hw/serial.c b/reactos/boot/armllb/hw/serial.c
new file mode 100755
index 00000000000..7bb09cf744d
--- /dev/null
+++ b/reactos/boot/armllb/hw/serial.c
@@ -0,0 +1,25 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/hw/serial.c
+ * PURPOSE: LLB Serial Port Routines
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+#include "precomp.h"
+
+VOID
+NTAPI
+LlbSerialPutChar(IN CHAR c)
+{
+ /* Properly support new-lines */
+ if (c == '\n') LlbSerialPutChar('\r');
+
+ /* Wait for ready */
+ while (!LlbHwUartTxReady());
+
+ /* Send character */
+ LlbHwUartSendChar(c);
+}
+
+/* EOF */
diff --git a/reactos/boot/armllb/hw/time.c b/reactos/boot/armllb/hw/time.c
new file mode 100755
index 00000000000..f37be249682
--- /dev/null
+++ b/reactos/boot/armllb/hw/time.c
@@ -0,0 +1,91 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/hw/time.c
+ * PURPOSE: LLB Time Routines
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+#include "precomp.h"
+
+#define LEAPS_THRU_END_OF(y) ((y)/4 - (y)/100 + (y)/400)
+
+UCHAR LlbDaysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
+TIMEINFO LlbTime;
+
+BOOLEAN
+NTAPI
+LlbIsLeapYear(IN ULONG Year)
+{
+ /* Every 4, 100, or 400 years */
+ return (!(Year % 4) && (Year % 100)) || !(Year % 400);
+}
+
+ULONG
+NTAPI
+LlbDayOfMonth(IN ULONG Month,
+ IN ULONG Year)
+{
+ /* Check how many days a month has, accounting for leap yearS */
+ return LlbDaysInMonth[Month] + (LlbIsLeapYear(Year) && Month == 1);
+}
+
+VOID
+NTAPI
+LlbConvertRtcTime(IN ULONG RtcTime,
+ OUT TIMEINFO* TimeInfo)
+{
+ ULONG Month, Year, Days, DaysLeft;
+
+ /* Count the days, keep the minutes */
+ Days = RtcTime / 86400;
+ RtcTime -= Days * 86400;
+
+ /* Get the year, based on days since 1970 */
+ Year = 1970 + Days / 365;
+
+ /* Account for leap years which changed the number of days/year */
+ Days -= (Year - 1970) * 365 + LEAPS_THRU_END_OF(Year - 1) - LEAPS_THRU_END_OF(1970 - 1);
+ if (Days < 0)
+ {
+ /* We hit a leap year, so fixup the math */
+ Year--;
+ Days += 365 + LlbIsLeapYear(Year);
+ }
+
+ /* Count months */
+ for (Month = 0; Month < 11; Month++)
+ {
+ /* How many days in this month? */
+ DaysLeft = Days - LlbDayOfMonth(Month, Year);
+ if (DaysLeft < 0) break;
+
+ /* How many days left total? */
+ Days = DaysLeft;
+ }
+
+ /* Write the structure */
+ TimeInfo->Year = Year;
+ TimeInfo->Day = Days + 1;
+ TimeInfo->Month = Month + 1;
+ TimeInfo->Hour = RtcTime / 3600;
+ RtcTime -= TimeInfo->Hour * 3600;
+ TimeInfo->Minute = RtcTime / 60;
+ TimeInfo->Second = RtcTime - TimeInfo->Minute * 60;
+}
+
+TIMEINFO*
+NTAPI
+LlbGetTime(VOID)
+{
+ ULONG RtcTime;
+
+ /* Read RTC time */
+ RtcTime = LlbHwRtcRead();
+
+ /* Convert it */
+ LlbConvertRtcTime(RtcTime, &LlbTime);
+ return &LlbTime;
+}
+
+/* EOF */
diff --git a/reactos/boot/armllb/hw/versatile/hwclcd.c b/reactos/boot/armllb/hw/versatile/hwclcd.c
new file mode 100755
index 00000000000..438804d2b24
--- /dev/null
+++ b/reactos/boot/armllb/hw/versatile/hwclcd.c
@@ -0,0 +1,77 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/hw/versatile/hwclcd.c
+ * PURPOSE: LLB CLCD Routines for Versatile
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+#include "precomp.h"
+
+#define LCDTIMING0_PPL(x) ((((x) / 16 - 1) & 0x3f) << 2)
+#define LCDTIMING1_LPP(x) (((x) & 0x3ff) - 1)
+#define LCDCONTROL_LCDPWR (1 << 11)
+#define LCDCONTROL_LCDEN (1)
+#define LCDCONTROL_LCDBPP(x) (((x) & 7) << 1)
+#define LCDCONTROL_LCDTFT (1 << 5)
+
+#define PL110_LCDTIMING0 (PVOID)0x10120000
+#define PL110_LCDTIMING1 (PVOID)0x10120004
+#define PL110_LCDTIMING2 (PVOID)0x10120008
+#define PL110_LCDUPBASE (PVOID)0x10120010
+#define PL110_LCDLPBASE (PVOID)0x10120014
+#define PL110_LCDCONTROL (PVOID)0x10120018
+
+PUSHORT LlbHwVideoBuffer;
+
+VOID
+NTAPI
+LlbHwVersaClcdInitialize(VOID)
+{
+ /* Set framebuffer address */
+ WRITE_REGISTER_ULONG(PL110_LCDUPBASE, (ULONG)LlbHwGetFrameBuffer());
+ WRITE_REGISTER_ULONG(PL110_LCDLPBASE, (ULONG)LlbHwGetFrameBuffer());
+
+ /* Initialize timings to 1024x720 */
+ WRITE_REGISTER_ULONG(PL110_LCDTIMING0, LCDTIMING0_PPL(LlbHwGetScreenWidth()));
+ WRITE_REGISTER_ULONG(PL110_LCDTIMING1, LCDTIMING1_LPP(LlbHwGetScreenHeight()));
+
+ /* Enable the TFT/LCD Display */
+ WRITE_REGISTER_ULONG(PL110_LCDCONTROL,
+ LCDCONTROL_LCDEN |
+ LCDCONTROL_LCDTFT |
+ LCDCONTROL_LCDPWR |
+ LCDCONTROL_LCDBPP(4));
+}
+
+ULONG
+NTAPI
+LlbHwGetScreenWidth(VOID)
+{
+ return 720;
+}
+
+ULONG
+NTAPI
+LlbHwGetScreenHeight(VOID)
+{
+ return 400;
+}
+
+PVOID
+NTAPI
+LlbHwGetFrameBuffer(VOID)
+{
+ return (PVOID)0x000A0000;
+}
+
+ULONG
+NTAPI
+LlbHwVideoCreateColor(IN ULONG Red,
+ IN ULONG Green,
+ IN ULONG Blue)
+{
+ return (((Blue >> 3) << 11)| ((Green >> 2) << 5)| ((Red >> 3) << 0));
+}
+
+/* EOF */
diff --git a/reactos/boot/armllb/hw/versatile/hwinfo.c b/reactos/boot/armllb/hw/versatile/hwinfo.c
new file mode 100755
index 00000000000..c312e125552
--- /dev/null
+++ b/reactos/boot/armllb/hw/versatile/hwinfo.c
@@ -0,0 +1,109 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/hw/versatile/hwinfo.c
+ * PURPOSE: LLB Hardware Info Routines
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+#include "precomp.h"
+
+#define PL031_RTC_DR (LlbHwVersaRtcBase + 0x00)
+static const ULONG LlbHwVersaRtcBase = 0x101E8000;
+
+ULONG
+NTAPI
+LlbHwGetBoardType(VOID)
+{
+ return MACH_TYPE_VERSATILE_PB;
+}
+
+ULONG
+NTAPI
+LlbHwGetPClk(VOID)
+{
+ return 24000000;
+}
+
+ULONG
+NTAPI
+LlbHwGetTmr0Base(VOID)
+{
+ return 0x101E2000;
+}
+
+ULONG
+NTAPI
+LlbHwGetSerialUart(VOID)
+{
+ return 0;
+}
+
+//
+// Versatile Memory Map
+//
+// 0x00000000 - 0x000000FF ARM Vectors [ 1 KB]
+// 0x00000100 - 0x000001FF ATAG Structures [ 1 KB]
+// 0x00000200 - 0x0000FFFF ARM STACK [ 62 KB]
+// 0x00010000 - 0x0001FFFF ARM LLB [ 64 KB]
+// 0x00020000 - 0x0009FFFF ARM OS LOADER [512 KB]
+// 0x000A0000 - 0x000FFFFF ARM FRAMEBUFFER [384 KB]
+// 0x00100000 - 0x007FFFFF OS LOADER FREE/UNUSED [ 7 MB]
+// 0x00800000 - 0x017FFFFF KERNEL, HAL, INITIAL DRIVER LOAD ADDR [ 16 MB]
+// 0x01800000 - 0x037FFFFF RAM DISK [ 32 MB]
+// 0x03800000 - 0x07FFFFFF FREE RAM [ 72 MB]
+// 0x08000000 - 0x0FFFFFFF FREE RAM IF 256MB DEVICE [128 MB]
+// 0x10000000 - 0x1FFFFFFF MMIO DEVICES [256 MB]
+BIOS_MEMORY_MAP LlbHwVersaMemoryMap[] =
+{
+ {0x00000000, 0x00000100, BiosMemoryReserved, 0},
+ {0x00000100, 0x00000100, BiosMemoryBootStrap, 0},
+ {0x00000200, 0x0000FE00, BiosMemoryBootStrap, 0},
+ {0x00010000, 0x00010000, BiosMemoryBootStrap, 0},
+ {0x00020000, 0x00080000, BiosMemoryBootLoader, 0},
+ {0x000A0000, 0x00060000, BiosMemoryBootLoader, 0},
+ {0x00100000, 0x01700000, BiosMemoryUsable, 0},
+ {0x01800000, 0x02000000, BiosMemoryReserved, 0},
+ {0x10000000, 0x10000000, BiosMemoryReserved, 0},
+ {0, 0, 0, 0}
+};
+
+VOID
+NTAPI
+LlbHwBuildMemoryMap(IN PBIOS_MEMORY_MAP MemoryMap)
+{
+ PBIOS_MEMORY_MAP MapEntry;
+ ULONG Base, Size, FsBase, FsSize;
+
+ /* Parse hardware memory map */
+ MapEntry = LlbHwVersaMemoryMap;
+ while (MapEntry->Length)
+ {
+ /* Add this entry */
+ LlbAllocateMemoryEntry(MapEntry->Type, MapEntry->BaseAddress, MapEntry->Length);
+
+ /* Move to the next one */
+ MapEntry++;
+ }
+
+ /* Query memory and RAMDISK information */
+ LlbEnvGetMemoryInformation(&Base, &Size);
+ LlbEnvGetRamDiskInformation(&FsBase, &FsSize);
+
+ /* Add-in the size of the ramdisk */
+ Base = FsBase + FsSize;
+
+ /* Subtract size of ramdisk and anything else before it */
+ Size -= Base;
+
+ /* Allocate an entry for it */
+ LlbAllocateMemoryEntry(BiosMemoryUsable, Base, Size);
+}
+
+ULONG
+LlbHwRtcRead(VOID)
+{
+ /* Read RTC value */
+ return READ_REGISTER_ULONG(PL031_RTC_DR);
+}
+/* EOF */
diff --git a/reactos/boot/armllb/hw/versatile/hwinit.c b/reactos/boot/armllb/hw/versatile/hwinit.c
new file mode 100755
index 00000000000..20e38512dce
--- /dev/null
+++ b/reactos/boot/armllb/hw/versatile/hwinit.c
@@ -0,0 +1,54 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/hw/versatile/hwinit.c
+ * PURPOSE: LLB Hardware Initialization Routines for Versatile
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+#include "precomp.h"
+
+VOID
+NTAPI
+LlbHwInitialize(VOID)
+{
+ /* Setup the CLCD (PL110) */
+ LlbHwVersaClcdInitialize();
+
+ /* Setup the UART (PL011) */
+ LlbHwVersaUartInitialize();
+
+ /* Setup the KMI (PL050) */
+ LlbHwVersaKmiInitialize();
+}
+
+//
+// Should go to hwdev.c
+//
+POSLOADER_INIT
+NTAPI
+LlbHwLoadOsLoaderFromRam(VOID)
+{
+ ULONG Base, RootFs, Size;
+ PCHAR Offset;
+ CHAR CommandLine[64];
+
+ /* On versatile we load the RAMDISK with initrd */
+ LlbEnvGetRamDiskInformation(&RootFs, &Size);
+
+ /* The OS Loader is at 0x20000, always */
+ Base = 0x20000;
+
+ /* Read image offset */
+ Offset = LlbEnvRead("rdoffset");
+
+ /* Set parameters for the OS loader */
+ sprintf(CommandLine, "rdbase=0x%x rdsize=0x%x rdoffset=%s", RootFs, Size, Offset);
+ LlbSetCommandLine(CommandLine);
+
+ /* Return the OS loader base address */
+ return (POSLOADER_INIT)Base;
+}
+
+
+/* EOF */
diff --git a/reactos/boot/armllb/hw/versatile/hwkmi.c b/reactos/boot/armllb/hw/versatile/hwkmi.c
new file mode 100755
index 00000000000..8e08023f551
--- /dev/null
+++ b/reactos/boot/armllb/hw/versatile/hwkmi.c
@@ -0,0 +1,133 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/hw/versatile/hwkmi.c
+ * PURPOSE: LLB KMI Support for Versatile
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+#include "precomp.h"
+
+//
+// Control Register Bits
+//
+#define KMICR_TYPE (1 << 5)
+#define KMICR_RXINTREN (1 << 4)
+#define KMICR_TXINTREN (1 << 3)
+#define KMICR_EN (1 << 2)
+#define KMICR_FD (1 << 1)
+#define KMICR_FC (1 << 0)
+
+//
+// Status Register Bits
+//
+#define KMISTAT_TXEMPTY (1 << 6)
+#define KMISTAT_TXBUSY (1 << 5)
+#define KMISTAT_RXFULL (1 << 4)
+#define KMISTAT_RXBUSY (1 << 3)
+#define KMISTAT_RXPARITY (1 << 2)
+#define KMISTAT_IC (1 << 1)
+#define KMISTAT_ID (1 << 0)
+
+//
+// KMI Registers
+//
+#define PL050_KMICR (LlbHwVersaKmiBase + 0x00)
+#define PL050_KMISTAT (LlbHwVersaKmiBase + 0x04)
+#define PL050_KMIDATA (LlbHwVersaKmiBase + 0x08)
+#define PL050_KMICLKDIV (LlbHwVersaKmiBase + 0x0c)
+static const ULONG LlbHwVersaKmiBase = 0x10006000;
+
+//
+// PS/2 Commands/Requests
+//
+#define PS2_O_RESET 0xff
+#define PS2_O_RESEND 0xfe
+#define PS2_O_DISABLE 0xf5
+#define PS2_O_ENABLE 0xf4
+#define PS2_O_ECHO 0xee
+#define PS2_O_SET_DEFAULT 0xf6
+#define PS2_O_SET_RATE_DELAY 0xf3
+#define PS2_O_SET_SCANSET 0xf0
+#define PS2_O_INDICATORS 0xed
+#define PS2_I_RESEND 0xfe
+#define PS2_I_DIAGFAIL 0xfd
+#define PS2_I_ACK 0xfa
+#define PS2_I_BREAK 0xf0
+#define PS2_I_ECHO 0xee
+#define PS2_I_BAT_OK 0xaa
+
+/* FUNCTIONS ******************************************************************/
+
+VOID
+NTAPI
+LlbHwVersaKmiSendAndWait(IN ULONG Value)
+{
+ volatile int i = 1000;
+
+ /* Send the value */
+ LlbHwKbdSend(Value);
+
+ /* Wait a bit */
+ while (--i);
+
+ /* Now make sure we received an ACK */
+ if (LlbHwKbdRead() != PS2_I_ACK) DbgPrint("PS/2 FAILURE!\n");
+}
+
+VOID
+NTAPI
+LlbHwVersaKmiInitialize(VOID)
+{
+ UCHAR Divisor;
+
+ /* Setup divisor and enable KMI */
+ Divisor = (LlbHwGetPClk() / 8000000) - 1;
+ WRITE_REGISTER_UCHAR(PL050_KMICLKDIV, Divisor);
+ WRITE_REGISTER_UCHAR(PL050_KMICR, KMICR_EN);
+
+ /* Reset PS/2 controller */
+ LlbHwVersaKmiSendAndWait(PS2_O_RESET);
+ if (LlbHwKbdRead() != PS2_I_BAT_OK) DbgPrint("PS/2 RESET FAILURE!\n");
+
+ /* Send PS/2 Initialization Stream */
+ LlbHwVersaKmiSendAndWait(PS2_O_DISABLE);
+ LlbHwVersaKmiSendAndWait(PS2_O_SET_DEFAULT);
+ LlbHwVersaKmiSendAndWait(PS2_O_SET_SCANSET);
+ LlbHwVersaKmiSendAndWait(1);
+ LlbHwVersaKmiSendAndWait(PS2_O_ENABLE);
+}
+
+VOID
+NTAPI
+LlbHwKbdSend(IN ULONG Value)
+{
+ ULONG Status;
+
+ /* Wait for ready signal */
+ do
+ {
+ /* Read TX buffer state */
+ Status = READ_REGISTER_UCHAR(PL050_KMISTAT);
+ } while (!(Status & KMISTAT_TXEMPTY));
+
+ /* Send value */
+ WRITE_REGISTER_UCHAR(PL050_KMIDATA, Value);
+}
+
+BOOLEAN
+NTAPI
+LlbHwKbdReady(VOID)
+{
+ return READ_REGISTER_UCHAR(PL050_KMISTAT) & KMISTAT_RXFULL;
+}
+
+INT
+NTAPI
+LlbHwKbdRead(VOID)
+{
+ /* Read current data on keyboard */
+ return READ_REGISTER_UCHAR(PL050_KMIDATA);
+}
+
+/* EOF */
diff --git a/reactos/boot/armllb/hw/versatile/hwuart.c b/reactos/boot/armllb/hw/versatile/hwuart.c
new file mode 100755
index 00000000000..a3ae386957c
--- /dev/null
+++ b/reactos/boot/armllb/hw/versatile/hwuart.c
@@ -0,0 +1,115 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/hw/versatile/hwuart.c
+ * PURPOSE: LLB UART Initialization Routines for Versatile
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+#include "precomp.h"
+
+//
+// UART Registers
+//
+#define UART_PL01x_DR (LlbHwVersaUartBase + 0x00)
+#define UART_PL01x_RSR (LlbHwVersaUartBase + 0x04)
+#define UART_PL01x_ECR (LlbHwVersaUartBase + 0x04)
+#define UART_PL01x_FR (LlbHwVersaUartBase + 0x18)
+#define UART_PL011_IBRD (LlbHwVersaUartBase + 0x24)
+#define UART_PL011_FBRD (LlbHwVersaUartBase + 0x28)
+#define UART_PL011_LCRH (LlbHwVersaUartBase + 0x2C)
+#define UART_PL011_CR (LlbHwVersaUartBase + 0x30)
+#define UART_PL011_IMSC (LlbHwVersaUartBase + 0x38)
+
+//
+// LCR Values
+//
+#define UART_PL011_LCRH_WLEN_8 0x60
+#define UART_PL011_LCRH_FEN 0x10
+
+//
+// FCR Values
+//
+#define UART_PL011_CR_UARTEN 0x01
+#define UART_PL011_CR_TXE 0x100
+#define UART_PL011_CR_RXE 0x200
+
+//
+// LSR Values
+//
+#define UART_PL01x_FR_RXFE 0x10
+#define UART_PL01x_FR_TXFF 0x20
+
+static const ULONG LlbHwVersaUartBase = 0x101F1000;
+
+/* FUNCTIONS ******************************************************************/
+
+VOID
+NTAPI
+LlbHwVersaUartInitialize(VOID)
+{
+ ULONG Divider, Remainder, Fraction, ClockRate, Baudrate;
+
+ /* Query peripheral rate, hardcore baudrate */
+ ClockRate = LlbHwGetPClk();
+ Baudrate = 115200;
+
+ /* Calculate baudrate clock divider and remainder */
+ Divider = ClockRate / (16 * Baudrate);
+ Remainder = ClockRate % (16 * Baudrate);
+
+ /* Calculate the fractional part */
+ Fraction = (8 * Remainder / Baudrate) >> 1;
+ Fraction += (8 * Remainder / Baudrate) & 1;
+
+ /* Disable interrupts */
+ WRITE_REGISTER_ULONG(UART_PL011_CR, 0);
+
+ /* Set the baud rate to 115200 bps */
+ WRITE_REGISTER_ULONG(UART_PL011_IBRD, Divider);
+ WRITE_REGISTER_ULONG(UART_PL011_FBRD, Fraction);
+
+ /* Set 8 bits for data, 1 stop bit, no parity, FIFO enabled */
+ WRITE_REGISTER_ULONG(UART_PL011_LCRH,
+ UART_PL011_LCRH_WLEN_8 | UART_PL011_LCRH_FEN);
+
+ /* Clear and enable FIFO */
+ WRITE_REGISTER_ULONG(UART_PL011_CR,
+ UART_PL011_CR_UARTEN |
+ UART_PL011_CR_TXE |
+ UART_PL011_CR_RXE);
+}
+
+VOID
+NTAPI
+LlbHwUartSendChar(IN CHAR Char)
+{
+ /* Send the character */
+ WRITE_REGISTER_ULONG(UART_PL01x_DR, Char);
+}
+
+BOOLEAN
+NTAPI
+LlbHwUartTxReady(VOID)
+{
+ /* TX output buffer is ready? */
+ return ((READ_REGISTER_ULONG(UART_PL01x_FR) & UART_PL01x_FR_TXFF) == 0);
+}
+
+ULONG
+NTAPI
+LlbHwGetUartBase(IN ULONG Port)
+{
+ if (Port == 0)
+ {
+ return 0x101F1000;
+ }
+ else if (Port == 1)
+ {
+ return 0x101F2000;
+ }
+
+ return 0;
+}
+
+/* EOF */
diff --git a/reactos/boot/armllb/hw/video.c b/reactos/boot/armllb/hw/video.c
new file mode 100644
index 00000000000..cfe1f60eebc
--- /dev/null
+++ b/reactos/boot/armllb/hw/video.c
@@ -0,0 +1,380 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/hw/video.c
+ * PURPOSE: LLB Video Output Routines
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+#include "precomp.h"
+
+#define FONT_HEIGHT 16
+
+CHAR LlbHwBootFont[] =
+{
+ 0x00,0x00,0x00,0x7c,0xc6,0xc6,0xde,0xde,0xde,0xdc,0xc0,0x7c,0x00,0x00,0x00,0x00, /* 0x00 */
+ 0x00,0x00,0x7e,0x81,0xa5,0x81,0x81,0xa5,0x99,0x81,0x81,0x7e,0x00,0x00,0x00,0x00, /* 0x01 */
+ 0x00,0x00,0x7e,0xff,0xdb,0xff,0xff,0xdb,0xe7,0xff,0xff,0x7e,0x00,0x00,0x00,0x00, /* 0x02 */
+ 0x00,0x00,0x00,0x00,0x6c,0xfe,0xfe,0xfe,0xfe,0x7c,0x38,0x10,0x00,0x00,0x00,0x00, /* 0x03 */
+ 0x00,0x00,0x00,0x00,0x10,0x38,0x7c,0xfe,0x7c,0x38,0x10,0x00,0x00,0x00,0x00,0x00, /* 0x04 */
+ 0x00,0x00,0x00,0x18,0x3c,0x3c,0xe7,0xe7,0xe7,0x18,0x18,0x3c,0x00,0x00,0x00,0x00, /* 0x05 */
+ 0x00,0x00,0x00,0x18,0x3c,0x7e,0xff,0xff,0x7e,0x18,0x18,0x3c,0x00,0x00,0x00,0x00, /* 0x06 */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x3c,0x3c,0x18,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x07 */
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xc3,0xc3,0xe7,0xff,0xff,0xff,0xff,0xff,0xff, /* 0x08 */
+ 0x00,0x00,0x00,0x00,0x00,0x3c,0x66,0x42,0x42,0x66,0x3c,0x00,0x00,0x00,0x00,0x00, /* 0x09 */
+ 0xff,0xff,0xff,0xff,0xff,0xc3,0x99,0xbd,0xbd,0x99,0xc3,0xff,0xff,0xff,0xff,0xff, /* 0x0a */
+ 0x00,0x00,0x1e,0x06,0x0e,0x1a,0x78,0xcc,0xcc,0xcc,0xcc,0x78,0x00,0x00,0x00,0x00, /* 0x0b */
+ 0x00,0x00,0x3c,0x66,0x66,0x66,0x66,0x3c,0x18,0x7e,0x18,0x18,0x00,0x00,0x00,0x00, /* 0x0c */
+ 0x00,0x00,0x3f,0x33,0x3f,0x30,0x30,0x30,0x30,0x70,0xf0,0xe0,0x00,0x00,0x00,0x00, /* 0x0d */
+ 0x00,0x00,0x7f,0x63,0x7f,0x63,0x63,0x63,0x63,0x67,0xe7,0xe6,0xc0,0x00,0x00,0x00, /* 0x0e */
+ 0x00,0x00,0x00,0x18,0x18,0xdb,0x3c,0xe7,0x3c,0xdb,0x18,0x18,0x00,0x00,0x00,0x00, /* 0x0f */
+ 0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfe,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x00,0x00, /* 0x10 */
+ 0x00,0x02,0x06,0x0e,0x1e,0x3e,0xfe,0x3e,0x1e,0x0e,0x06,0x02,0x00,0x00,0x00,0x00, /* 0x11 */
+ 0x00,0x00,0x18,0x3c,0x7e,0x18,0x18,0x18,0x7e,0x3c,0x18,0x00,0x00,0x00,0x00,0x00, /* 0x12 */
+ 0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x66,0x66,0x00,0x00,0x00,0x00, /* 0x13 */
+ 0x00,0x00,0x7f,0xdb,0xdb,0xdb,0x7b,0x1b,0x1b,0x1b,0x1b,0x1b,0x00,0x00,0x00,0x00, /* 0x14 */
+ 0x00,0x7c,0xc6,0x60,0x38,0x6c,0xc6,0xc6,0x6c,0x38,0x0c,0xc6,0x7c,0x00,0x00,0x00, /* 0x15 */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xfe,0xfe,0xfe,0x00,0x00,0x00,0x00, /* 0x16 */
+ 0x00,0x00,0x18,0x3c,0x7e,0x18,0x18,0x18,0x7e,0x3c,0x18,0x7e,0x00,0x00,0x00,0x00, /* 0x17 */
+ 0x00,0x00,0x18,0x3c,0x7e,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00, /* 0x18 */
+ 0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x7e,0x3c,0x18,0x00,0x00,0x00,0x00, /* 0x19 */
+ 0x00,0x00,0x00,0x00,0x00,0x18,0x0c,0xfe,0x0c,0x18,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x1a */
+ 0x00,0x00,0x00,0x00,0x00,0x30,0x60,0xfe,0x60,0x30,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x1b */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xc0,0xc0,0xfe,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x1c */
+ 0x00,0x00,0x00,0x00,0x00,0x28,0x6c,0xfe,0x6c,0x28,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x1d */
+ 0x00,0x00,0x00,0x00,0x10,0x38,0x38,0x7c,0x7c,0xfe,0xfe,0x00,0x00,0x00,0x00,0x00, /* 0x1e */
+ 0x00,0x00,0x00,0x00,0xfe,0xfe,0x7c,0x7c,0x38,0x38,0x10,0x00,0x00,0x00,0x00,0x00, /* 0x1f */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* */
+ 0x00,0x00,0x18,0x3c,0x3c,0x3c,0x18,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00, /* ! */
+ 0x00,0x66,0x66,0x66,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* " */
+ 0x00,0x00,0x00,0x6c,0x6c,0xfe,0x6c,0x6c,0x6c,0xfe,0x6c,0x6c,0x00,0x00,0x00,0x00, /* # */
+ 0x18,0x18,0x7c,0xc6,0xc2,0xc0,0x7c,0x06,0x06,0x86,0xc6,0x7c,0x18,0x18,0x00,0x00, /* $ */
+ 0x00,0x00,0x00,0x00,0xc2,0xc6,0x0c,0x18,0x30,0x60,0xc6,0x86,0x00,0x00,0x00,0x00, /* % */
+ 0x00,0x00,0x38,0x6c,0x6c,0x38,0x76,0xdc,0xcc,0xcc,0xcc,0x76,0x00,0x00,0x00,0x00, /* & */
+ 0x00,0x30,0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* ' */
+ 0x00,0x00,0x0c,0x18,0x30,0x30,0x30,0x30,0x30,0x30,0x18,0x0c,0x00,0x00,0x00,0x00, /* ( */
+ 0x00,0x00,0x30,0x18,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x18,0x30,0x00,0x00,0x00,0x00, /* ) */
+ 0x00,0x00,0x00,0x00,0x00,0x66,0x3c,0xff,0x3c,0x66,0x00,0x00,0x00,0x00,0x00,0x00, /* * */
+ 0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x7e,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00, /* + */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x30,0x00,0x00,0x00, /* , */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* - */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00, /* . */
+ 0x00,0x00,0x00,0x00,0x02,0x06,0x0c,0x18,0x30,0x60,0xc0,0x80,0x00,0x00,0x00,0x00, /* / */
+ 0x00,0x00,0x38,0x6c,0xc6,0xc6,0xd6,0xd6,0xc6,0xc6,0x6c,0x38,0x00,0x00,0x00,0x00, /* 0 */
+ 0x00,0x00,0x18,0x38,0x78,0x18,0x18,0x18,0x18,0x18,0x18,0x7e,0x00,0x00,0x00,0x00, /* 1 */
+ 0x00,0x00,0x7c,0xc6,0x06,0x0c,0x18,0x30,0x60,0xc0,0xc6,0xfe,0x00,0x00,0x00,0x00, /* 2 */
+ 0x00,0x00,0x7c,0xc6,0x06,0x06,0x3c,0x06,0x06,0x06,0xc6,0x7c,0x00,0x00,0x00,0x00, /* 3 */
+ 0x00,0x00,0x0c,0x1c,0x3c,0x6c,0xcc,0xfe,0x0c,0x0c,0x0c,0x1e,0x00,0x00,0x00,0x00, /* 4 */
+ 0x00,0x00,0xfe,0xc0,0xc0,0xc0,0xfc,0x06,0x06,0x06,0xc6,0x7c,0x00,0x00,0x00,0x00, /* 5 */
+ 0x00,0x00,0x38,0x60,0xc0,0xc0,0xfc,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00, /* 6 */
+ 0x00,0x00,0xfe,0xc6,0x06,0x06,0x0c,0x18,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00, /* 7 */
+ 0x00,0x00,0x7c,0xc6,0xc6,0xc6,0x7c,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00, /* 8 */
+ 0x00,0x00,0x7c,0xc6,0xc6,0xc6,0x7e,0x06,0x06,0x06,0x0c,0x78,0x00,0x00,0x00,0x00, /* 9 */
+ 0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00, /* : */
+ 0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x30,0x00,0x00,0x00,0x00, /* ; */
+ 0x00,0x00,0x00,0x06,0x0c,0x18,0x30,0x60,0x30,0x18,0x0c,0x06,0x00,0x00,0x00,0x00, /* < */
+ 0x00,0x00,0x00,0x00,0x00,0x7e,0x00,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* = */
+ 0x00,0x00,0x00,0x60,0x30,0x18,0x0c,0x06,0x0c,0x18,0x30,0x60,0x00,0x00,0x00,0x00, /* > */
+ 0x00,0x00,0x7c,0xc6,0xc6,0x0c,0x18,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00, /* ? */
+ 0x00,0x00,0x00,0x7c,0xc6,0xc6,0xde,0xde,0xde,0xdc,0xc0,0x7c,0x00,0x00,0x00,0x00, /* @ */
+ 0x00,0x00,0x10,0x38,0x6c,0xc6,0xc6,0xfe,0xc6,0xc6,0xc6,0xc6,0x00,0x00,0x00,0x00, /* A */
+ 0x00,0x00,0xfc,0x66,0x66,0x66,0x7c,0x66,0x66,0x66,0x66,0xfc,0x00,0x00,0x00,0x00, /* B */
+ 0x00,0x00,0x3c,0x66,0xc2,0xc0,0xc0,0xc0,0xc0,0xc2,0x66,0x3c,0x00,0x00,0x00,0x00, /* C */
+ 0x00,0x00,0xf8,0x6c,0x66,0x66,0x66,0x66,0x66,0x66,0x6c,0xf8,0x00,0x00,0x00,0x00, /* D */
+ 0x00,0x00,0xfe,0x66,0x62,0x68,0x78,0x68,0x60,0x62,0x66,0xfe,0x00,0x00,0x00,0x00, /* E */
+ 0x00,0x00,0xfe,0x66,0x62,0x68,0x78,0x68,0x60,0x60,0x60,0xf0,0x00,0x00,0x00,0x00, /* F */
+ 0x00,0x00,0x3c,0x66,0xc2,0xc0,0xc0,0xde,0xc6,0xc6,0x66,0x3a,0x00,0x00,0x00,0x00, /* G */
+ 0x00,0x00,0xc6,0xc6,0xc6,0xc6,0xfe,0xc6,0xc6,0xc6,0xc6,0xc6,0x00,0x00,0x00,0x00, /* H */
+ 0x00,0x00,0x3c,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00, /* I */
+ 0x00,0x00,0x1e,0x0c,0x0c,0x0c,0x0c,0x0c,0xcc,0xcc,0xcc,0x78,0x00,0x00,0x00,0x00, /* J */
+ 0x00,0x00,0xe6,0x66,0x66,0x6c,0x78,0x78,0x6c,0x66,0x66,0xe6,0x00,0x00,0x00,0x00, /* K */
+ 0x00,0x00,0xf0,0x60,0x60,0x60,0x60,0x60,0x60,0x62,0x66,0xfe,0x00,0x00,0x00,0x00, /* L */
+ 0x00,0x00,0xc6,0xee,0xfe,0xfe,0xd6,0xc6,0xc6,0xc6,0xc6,0xc6,0x00,0x00,0x00,0x00, /* M */
+ 0x00,0x00,0xc6,0xe6,0xf6,0xfe,0xde,0xce,0xc6,0xc6,0xc6,0xc6,0x00,0x00,0x00,0x00, /* N */
+ 0x00,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00, /* O */
+ 0x00,0x00,0xfc,0x66,0x66,0x66,0x7c,0x60,0x60,0x60,0x60,0xf0,0x00,0x00,0x00,0x00, /* P */
+ 0x00,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xd6,0xde,0x7c,0x0c,0x0e,0x00,0x00, /* Q */
+ 0x00,0x00,0xfc,0x66,0x66,0x66,0x7c,0x6c,0x66,0x66,0x66,0xe6,0x00,0x00,0x00,0x00, /* R */
+ 0x00,0x00,0x7c,0xc6,0xc6,0x60,0x38,0x0c,0x06,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00, /* S */
+ 0x00,0x00,0x7e,0x7e,0x5a,0x18,0x18,0x18,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00, /* T */
+ 0x00,0x00,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00, /* U */
+ 0x00,0x00,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x6c,0x38,0x10,0x00,0x00,0x00,0x00, /* V */
+ 0x00,0x00,0xc6,0xc6,0xc6,0xc6,0xd6,0xd6,0xd6,0xfe,0xee,0x6c,0x00,0x00,0x00,0x00, /* W */
+ 0x00,0x00,0xc6,0xc6,0x6c,0x7c,0x38,0x38,0x7c,0x6c,0xc6,0xc6,0x00,0x00,0x00,0x00, /* X */
+ 0x00,0x00,0x66,0x66,0x66,0x66,0x3c,0x18,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00, /* Y */
+ 0x00,0x00,0xfe,0xc6,0x86,0x0c,0x18,0x30,0x60,0xc2,0xc6,0xfe,0x00,0x00,0x00,0x00, /* Z */
+ 0x00,0x00,0x3c,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3c,0x00,0x00,0x00,0x00, /* [ */
+ 0x00,0x00,0x00,0x80,0xc0,0xe0,0x70,0x38,0x1c,0x0e,0x06,0x02,0x00,0x00,0x00,0x00, /* \ */
+ 0x00,0x00,0x3c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x3c,0x00,0x00,0x00,0x00, /* ] */
+ 0x10,0x38,0x6c,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* ^ */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00, /* _ */
+ 0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* ` */
+ 0x00,0x00,0x00,0x00,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0xcc,0x76,0x00,0x00,0x00,0x00, /* a */
+ 0x00,0x00,0xe0,0x60,0x60,0x78,0x6c,0x66,0x66,0x66,0x66,0x7c,0x00,0x00,0x00,0x00, /* b */
+ 0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc0,0xc0,0xc0,0xc6,0x7c,0x00,0x00,0x00,0x00, /* c */
+ 0x00,0x00,0x1c,0x0c,0x0c,0x3c,0x6c,0xcc,0xcc,0xcc,0xcc,0x76,0x00,0x00,0x00,0x00, /* d */
+ 0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xfe,0xc0,0xc0,0xc6,0x7c,0x00,0x00,0x00,0x00, /* e */
+ 0x00,0x00,0x38,0x6c,0x64,0x60,0xf0,0x60,0x60,0x60,0x60,0xf0,0x00,0x00,0x00,0x00, /* f */
+ 0x00,0x00,0x00,0x00,0x00,0x76,0xcc,0xcc,0xcc,0xcc,0xcc,0x7c,0x0c,0xcc,0x78,0x00, /* g */
+ 0x00,0x00,0xe0,0x60,0x60,0x6c,0x76,0x66,0x66,0x66,0x66,0xe6,0x00,0x00,0x00,0x00, /* h */
+ 0x00,0x00,0x18,0x18,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00, /* i */
+ 0x00,0x00,0x06,0x06,0x00,0x0e,0x06,0x06,0x06,0x06,0x06,0x06,0x66,0x66,0x3c,0x00, /* j */
+ 0x00,0x00,0xe0,0x60,0x60,0x66,0x6c,0x78,0x78,0x6c,0x66,0xe6,0x00,0x00,0x00,0x00, /* k */
+ 0x00,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00, /* l */
+ 0x00,0x00,0x00,0x00,0x00,0xec,0xfe,0xd6,0xd6,0xd6,0xd6,0xc6,0x00,0x00,0x00,0x00, /* m */
+ 0x00,0x00,0x00,0x00,0x00,0xdc,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00, /* n */
+ 0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00, /* o */
+ 0x00,0x00,0x00,0x00,0x00,0xdc,0x66,0x66,0x66,0x66,0x66,0x7c,0x60,0x60,0xf0,0x00, /* p */
+ 0x00,0x00,0x00,0x00,0x00,0x76,0xcc,0xcc,0xcc,0xcc,0xcc,0x7c,0x0c,0x0c,0x1e,0x00, /* q */
+ 0x00,0x00,0x00,0x00,0x00,0xdc,0x76,0x66,0x60,0x60,0x60,0xf0,0x00,0x00,0x00,0x00, /* r */
+ 0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0x60,0x38,0x0c,0xc6,0x7c,0x00,0x00,0x00,0x00, /* s */
+ 0x00,0x00,0x10,0x30,0x30,0xfc,0x30,0x30,0x30,0x30,0x36,0x1c,0x00,0x00,0x00,0x00, /* t */
+ 0x00,0x00,0x00,0x00,0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x76,0x00,0x00,0x00,0x00, /* u */
+ 0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x3c,0x18,0x00,0x00,0x00,0x00, /* v */
+ 0x00,0x00,0x00,0x00,0x00,0xc6,0xc6,0xd6,0xd6,0xd6,0xfe,0x6c,0x00,0x00,0x00,0x00, /* w */
+ 0x00,0x00,0x00,0x00,0x00,0xc6,0x6c,0x38,0x38,0x38,0x6c,0xc6,0x00,0x00,0x00,0x00, /* x */
+ 0x00,0x00,0x00,0x00,0x00,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x7e,0x06,0x0c,0xf8,0x00, /* y */
+ 0x00,0x00,0x00,0x00,0x00,0xfe,0xcc,0x18,0x30,0x60,0xc6,0xfe,0x00,0x00,0x00,0x00, /* z */
+ 0x00,0x00,0x0e,0x18,0x18,0x18,0x70,0x18,0x18,0x18,0x18,0x0e,0x00,0x00,0x00,0x00, /* { */
+ 0x00,0x00,0x18,0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00, /* | */
+ 0x00,0x00,0x70,0x18,0x18,0x18,0x0e,0x18,0x18,0x18,0x18,0x70,0x00,0x00,0x00,0x00, /* } */
+ 0x00,0x00,0x76,0xdc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* ~ */
+ 0x00,0x00,0x00,0x00,0x10,0x38,0x6c,0xc6,0xc6,0xc6,0xfe,0x00,0x00,0x00,0x00,0x00, /* 0x7f */
+ 0x00,0x00,0x3c,0x66,0xc2,0xc0,0xc0,0xc0,0xc2,0x66,0x3c,0x0c,0x06,0x7c,0x00,0x00, /* 0x80 */
+ 0x00,0x00,0xcc,0x00,0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x76,0x00,0x00,0x00,0x00, /* 0x81 */
+ 0x00,0x0c,0x18,0x30,0x00,0x7c,0xc6,0xfe,0xc0,0xc0,0xc6,0x7c,0x00,0x00,0x00,0x00, /* 0x82 */
+ 0x00,0x10,0x38,0x6c,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0xcc,0x76,0x00,0x00,0x00,0x00, /* 0x83 */
+ 0x00,0x00,0xcc,0x00,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0xcc,0x76,0x00,0x00,0x00,0x00, /* 0x84 */
+ 0x00,0x60,0x30,0x18,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0xcc,0x76,0x00,0x00,0x00,0x00, /* 0x85 */
+ 0x00,0x38,0x6c,0x38,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0xcc,0x76,0x00,0x00,0x00,0x00, /* 0x86 */
+ 0x00,0x00,0x00,0x00,0x3c,0x66,0x60,0x60,0x66,0x3c,0x0c,0x06,0x3c,0x00,0x00,0x00, /* 0x87 */
+ 0x00,0x10,0x38,0x6c,0x00,0x7c,0xc6,0xfe,0xc0,0xc0,0xc6,0x7c,0x00,0x00,0x00,0x00, /* 0x88 */
+ 0x00,0x00,0xc6,0x00,0x00,0x7c,0xc6,0xfe,0xc0,0xc0,0xc6,0x7c,0x00,0x00,0x00,0x00, /* 0x89 */
+ 0x00,0x60,0x30,0x18,0x00,0x7c,0xc6,0xfe,0xc0,0xc0,0xc6,0x7c,0x00,0x00,0x00,0x00, /* 0x8a */
+ 0x00,0x00,0x66,0x00,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00, /* 0x8b */
+ 0x00,0x18,0x3c,0x66,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00, /* 0x8c */
+ 0x00,0x60,0x30,0x18,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00, /* 0x8d */
+ 0x00,0xc6,0x00,0x10,0x38,0x6c,0xc6,0xc6,0xfe,0xc6,0xc6,0xc6,0x00,0x00,0x00,0x00, /* 0x8e */
+ 0x38,0x6c,0x38,0x00,0x38,0x6c,0xc6,0xc6,0xfe,0xc6,0xc6,0xc6,0x00,0x00,0x00,0x00, /* 0x8f */
+ 0x18,0x30,0x60,0x00,0xfe,0x66,0x60,0x7c,0x60,0x60,0x66,0xfe,0x00,0x00,0x00,0x00, /* 0x90 */
+ 0x00,0x00,0x00,0x00,0x00,0xcc,0x76,0x36,0x7e,0xd8,0xd8,0x6e,0x00,0x00,0x00,0x00, /* 0x91 */
+ 0x00,0x00,0x3e,0x6c,0xcc,0xcc,0xfe,0xcc,0xcc,0xcc,0xcc,0xce,0x00,0x00,0x00,0x00, /* 0x92 */
+ 0x00,0x10,0x38,0x6c,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00, /* 0x93 */
+ 0x00,0x00,0xc6,0x00,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00, /* 0x94 */
+ 0x00,0x60,0x30,0x18,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00, /* 0x95 */
+ 0x00,0x30,0x78,0xcc,0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x76,0x00,0x00,0x00,0x00, /* 0x96 */
+ 0x00,0x60,0x30,0x18,0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x76,0x00,0x00,0x00,0x00, /* 0x97 */
+ 0x00,0x00,0xc6,0x00,0x00,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x7e,0x06,0x0c,0x78,0x00, /* 0x98 */
+ 0x00,0xc6,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00, /* 0x99 */
+ 0x00,0xc6,0x00,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00, /* 0x9a */
+ 0x00,0x18,0x18,0x3c,0x66,0x60,0x60,0x60,0x66,0x3c,0x18,0x18,0x00,0x00,0x00,0x00, /* 0x9b */
+ 0x00,0x38,0x6c,0x64,0x60,0xf0,0x60,0x60,0x60,0x60,0xe6,0xfc,0x00,0x00,0x00,0x00, /* 0x9c */
+ 0x00,0x00,0x66,0x66,0x3c,0x18,0x7e,0x18,0x7e,0x18,0x18,0x18,0x00,0x00,0x00,0x00, /* 0x9d */
+ 0x00,0xf8,0xcc,0xcc,0xf8,0xc4,0xcc,0xde,0xcc,0xcc,0xcc,0xc6,0x00,0x00,0x00,0x00, /* 0x9e */
+ 0x00,0x0e,0x1b,0x18,0x18,0x18,0x7e,0x18,0x18,0x18,0x18,0x18,0xd8,0x70,0x00,0x00, /* 0x9f */
+ 0x00,0x18,0x30,0x60,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0xcc,0x76,0x00,0x00,0x00,0x00, /* 0xa0 */
+ 0x00,0x0c,0x18,0x30,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00, /* 0xa1 */
+ 0x00,0x18,0x30,0x60,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00, /* 0xa2 */
+ 0x00,0x18,0x30,0x60,0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x76,0x00,0x00,0x00,0x00, /* 0xa3 */
+ 0x00,0x00,0x76,0xdc,0x00,0xdc,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00, /* 0xa4 */
+ 0x76,0xdc,0x00,0xc6,0xe6,0xf6,0xfe,0xde,0xce,0xc6,0xc6,0xc6,0x00,0x00,0x00,0x00, /* 0xa5 */
+ 0x00,0x3c,0x6c,0x6c,0x3e,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xa6 */
+ 0x00,0x38,0x6c,0x6c,0x38,0x00,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xa7 */
+ 0x00,0x00,0x30,0x30,0x00,0x30,0x30,0x60,0xc0,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00, /* 0xa8 */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xc0,0xc0,0xc0,0xc0,0x00,0x00,0x00,0x00,0x00, /* 0xa9 */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00, /* 0xaa */
+ 0x00,0xc0,0xc0,0xc2,0xc6,0xcc,0x18,0x30,0x60,0xdc,0x86,0x0c,0x18,0x3e,0x00,0x00, /* 0xab */
+ 0x00,0xc0,0xc0,0xc2,0xc6,0xcc,0x18,0x30,0x66,0xce,0x9e,0x3e,0x06,0x06,0x00,0x00, /* 0xac */
+ 0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x18,0x3c,0x3c,0x3c,0x18,0x00,0x00,0x00,0x00, /* 0xad */
+ 0x00,0x00,0x00,0x00,0x00,0x36,0x6c,0xd8,0x6c,0x36,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xae */
+ 0x00,0x00,0x00,0x00,0x00,0xd8,0x6c,0x36,0x6c,0xd8,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xaf */
+ 0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44, /* 0xb0 */
+ 0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa, /* 0xb1 */
+ 0xdd,0x77,0xdd,0x77,0xdd,0x77,0xdd,0x77,0xdd,0x77,0xdd,0x77,0xdd,0x77,0xdd,0x77, /* 0xb2 */
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, /* 0xb3 */
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xf8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, /* 0xb4 */
+ 0x18,0x18,0x18,0x18,0x18,0xf8,0x18,0xf8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, /* 0xb5 */
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xf6,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, /* 0xb6 */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, /* 0xb7 */
+ 0x00,0x00,0x00,0x00,0x00,0xf8,0x18,0xf8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, /* 0xb8 */
+ 0x36,0x36,0x36,0x36,0x36,0xf6,0x06,0xf6,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, /* 0xb9 */
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, /* 0xba */
+ 0x00,0x00,0x00,0x00,0x00,0xfe,0x06,0xf6,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, /* 0xbb */
+ 0x36,0x36,0x36,0x36,0x36,0xf6,0x06,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xbc */
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xbd */
+ 0x18,0x18,0x18,0x18,0x18,0xf8,0x18,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xbe */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, /* 0xbf */
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xc0 */
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xc1 */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, /* 0xc2 */
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1f,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, /* 0xc3 */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xc4 */
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xff,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, /* 0xc5 */
+ 0x18,0x18,0x18,0x18,0x18,0x1f,0x18,0x1f,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, /* 0xc6 */
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, /* 0xc7 */
+ 0x36,0x36,0x36,0x36,0x36,0x37,0x30,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xc8 */
+ 0x00,0x00,0x00,0x00,0x00,0x3f,0x30,0x37,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, /* 0xc9 */
+ 0x36,0x36,0x36,0x36,0x36,0xf7,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xca */
+ 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xf7,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, /* 0xcb */
+ 0x36,0x36,0x36,0x36,0x36,0x37,0x30,0x37,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, /* 0xcc */
+ 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xcd */
+ 0x36,0x36,0x36,0x36,0x36,0xf7,0x00,0xf7,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, /* 0xce */
+ 0x18,0x18,0x18,0x18,0x18,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xcf */
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xd0 */
+ 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xff,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, /* 0xd1 */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, /* 0xd2 */
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xd3 */
+ 0x18,0x18,0x18,0x18,0x18,0x1f,0x18,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xd4 */
+ 0x00,0x00,0x00,0x00,0x00,0x1f,0x18,0x1f,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, /* 0xd5 */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, /* 0xd6 */
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xff,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, /* 0xd7 */
+ 0x18,0x18,0x18,0x18,0x18,0xff,0x18,0xff,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, /* 0xd8 */
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xd9 */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, /* 0xda */
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, /* 0xdb */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, /* 0xdc */
+ 0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0, /* 0xdd */
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, /* 0xde */
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xdf */
+ 0x00,0x00,0x00,0x00,0x00,0x76,0xdc,0xd8,0xd8,0xd8,0xdc,0x76,0x00,0x00,0x00,0x00, /* 0xe0 */
+ 0x00,0x00,0x78,0xcc,0xcc,0xcc,0xd8,0xcc,0xc6,0xc6,0xc6,0xcc,0x00,0x00,0x00,0x00, /* 0xe1 */
+ 0x00,0x00,0xfe,0xc6,0xc6,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x00,0x00,0x00,0x00, /* 0xe2 */
+ 0x00,0x00,0x00,0x00,0xfe,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x00,0x00,0x00,0x00, /* 0xe3 */
+ 0x00,0x00,0x00,0xfe,0xc6,0x60,0x30,0x18,0x30,0x60,0xc6,0xfe,0x00,0x00,0x00,0x00, /* 0xe4 */
+ 0x00,0x00,0x00,0x00,0x00,0x7e,0xd8,0xd8,0xd8,0xd8,0xd8,0x70,0x00,0x00,0x00,0x00, /* 0xe5 */
+ 0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x7c,0x60,0x60,0xc0,0x00,0x00,0x00, /* 0xe6 */
+ 0x00,0x00,0x00,0x00,0x76,0xdc,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00, /* 0xe7 */
+ 0x00,0x00,0x00,0x7e,0x18,0x3c,0x66,0x66,0x66,0x3c,0x18,0x7e,0x00,0x00,0x00,0x00, /* 0xe8 */
+ 0x00,0x00,0x00,0x38,0x6c,0xc6,0xc6,0xfe,0xc6,0xc6,0x6c,0x38,0x00,0x00,0x00,0x00, /* 0xe9 */
+ 0x00,0x00,0x38,0x6c,0xc6,0xc6,0xc6,0x6c,0x6c,0x6c,0x6c,0xee,0x00,0x00,0x00,0x00, /* 0xea */
+ 0x00,0x00,0x1e,0x30,0x18,0x0c,0x3e,0x66,0x66,0x66,0x66,0x3c,0x00,0x00,0x00,0x00, /* 0xeb */
+ 0x00,0x00,0x00,0x00,0x00,0x7e,0xdb,0xdb,0xdb,0x7e,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xec */
+ 0x00,0x00,0x00,0x03,0x06,0x7e,0xdb,0xdb,0xf3,0x7e,0x60,0xc0,0x00,0x00,0x00,0x00, /* 0xed */
+ 0x00,0x00,0x1c,0x30,0x60,0x60,0x7c,0x60,0x60,0x60,0x30,0x1c,0x00,0x00,0x00,0x00, /* 0xee */
+ 0x00,0x00,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x00,0x00,0x00,0x00, /* 0xef */
+ 0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0xfe,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x00, /* 0xf0 */
+ 0x00,0x00,0x00,0x00,0x18,0x18,0x7e,0x18,0x18,0x00,0x00,0xff,0x00,0x00,0x00,0x00, /* 0xf1 */
+ 0x00,0x00,0x00,0x30,0x18,0x0c,0x06,0x0c,0x18,0x30,0x00,0x7e,0x00,0x00,0x00,0x00, /* 0xf2 */
+ 0x00,0x00,0x00,0x0c,0x18,0x30,0x60,0x30,0x18,0x0c,0x00,0x7e,0x00,0x00,0x00,0x00, /* 0xf3 */
+ 0x00,0x00,0x0e,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, /* 0xf4 */
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xd8,0xd8,0xd8,0x70,0x00,0x00,0x00,0x00, /* 0xf5 */
+ 0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x7e,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00, /* 0xf6 */
+ 0x00,0x00,0x00,0x00,0x00,0x76,0xdc,0x00,0x76,0xdc,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xf7 */
+ 0x00,0x38,0x6c,0x6c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xf8 */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xf9 */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xfa */
+ 0x00,0x0f,0x0c,0x0c,0x0c,0x0c,0x0c,0xec,0x6c,0x6c,0x3c,0x1c,0x00,0x00,0x00,0x00, /* 0xfb */
+ 0x00,0xd8,0x6c,0x6c,0x6c,0x6c,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xfc */
+ 0x00,0x70,0xd8,0x30,0x60,0xc8,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0xfd */
+ 0x00,0x00,0x00,0x00,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x00,0x00,0x00,0x00,0x00, /* 0xfe */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /* 0xff */
+};
+
+ULONG ScreenCursor;
+
+VOID
+NTAPI
+LlbVideoDrawChar(IN CHAR c,
+ IN PUSHORT Buffer,
+ IN USHORT Color,
+ IN USHORT BackColor)
+{
+ PCHAR Pixels;
+ CHAR Line;
+ ULONG y, ScreenWidth;
+ LONG x;
+
+ /* Get screen width */
+ ScreenWidth = LlbHwGetScreenWidth();
+ Pixels = LlbHwBootFont + c * FONT_HEIGHT;
+
+ /* Loop y pixels */
+ for (y = 0; y < FONT_HEIGHT; y++)
+ {
+ /* Loop x pixels */
+ Line = *Pixels++;
+ for (x = 7; x >= 0; x--)
+ {
+ /* Draw either a character or background pixel */
+ Buffer[x] = (Line & 1) ? Color : BackColor;
+ Line >>= 1;
+ }
+
+ /* Next line */
+ Buffer += ScreenWidth;
+ }
+}
+
+VOID
+NTAPI
+LlbVideoClearScreen(IN BOOLEAN OsLoader)
+{
+ ULONG ScreenSize, p;
+ ULONG BackColor;
+ PUSHORT VideoBuffer;
+
+ /* Get frame buffer and reset cursor position */
+ VideoBuffer = LlbHwGetFrameBuffer();
+ ScreenCursor = 0;
+
+ /* Backcolor on this machine */
+ if (OsLoader)
+ {
+ /* Black */
+ BackColor = 0;
+ }
+ else
+ {
+ /* Deep blue */
+ BackColor = LlbHwVideoCreateColor(14, 0, 82);
+ BackColor = (BackColor << 16) | BackColor;
+ }
+
+ /* Screen size on this machine */
+ ScreenSize = LlbHwGetScreenWidth() * LlbHwGetScreenHeight();
+
+ /* Clear the screen with the given color */
+ for (p = 0; p < ScreenSize * 2; p += 4)
+ {
+ *(PULONG)((PCHAR)VideoBuffer + p) = BackColor;
+ }
+}
+
+VOID
+NTAPI
+LlbVideoPutChar(IN CHAR c)
+{
+ ULONG cx, cy, CharsPerLine, BackColor, ScreenWidth;
+
+ /* Forecolor on this machine */
+ BackColor = LlbHwVideoCreateColor(14, 0, 82);
+
+ /* Amount of characters in a line */
+ ScreenWidth = LlbHwGetScreenWidth();
+ CharsPerLine = ScreenWidth / 8;
+
+ /* Handle new line and scrolling */
+ if (c == '\n')
+ {
+ /* Move a line down */
+ ScreenCursor += CharsPerLine - (ScreenCursor % CharsPerLine);
+
+ /* FIXME: Scrolling */
+ }
+ else
+ {
+ /* Calculate character position from pixel position */
+ cy = (ScreenCursor / CharsPerLine) * FONT_HEIGHT;
+ cx = (ScreenCursor % CharsPerLine) * 8;
+
+ /* Draw the character and increment the cursor */
+ LlbVideoDrawChar(c,
+ (PUSHORT)LlbHwGetFrameBuffer() + ScreenWidth * cy + cx,
+ 0xFFFF,
+ BackColor);
+ ScreenCursor++;
+ }
+}
+
+/* EOF */
+
diff --git a/reactos/boot/armllb/inc/envir.h b/reactos/boot/armllb/inc/envir.h
new file mode 100755
index 00000000000..590f32fd091
--- /dev/null
+++ b/reactos/boot/armllb/inc/envir.h
@@ -0,0 +1,88 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/inc/envir.h
+ * PURPOSE: LLB Environment Functions
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+typedef struct _ATAG_HEADER
+{
+ ULONG Size;
+ ULONG Tag;
+} ATAG_HEADER, *PATAG_HEADER;
+
+typedef struct _ATAG_CORE
+{
+ ULONG Flags;
+ ULONG PageSize;
+ ULONG RootDev;
+} ATAG_CORE, *PATAG_CORE;
+
+typedef struct _ATAG_MEM
+{
+ ULONG Size;
+ ULONG Start;
+} ATAG_MEM, *PATAG_MEM;
+
+typedef struct _ATAG_INITRD2
+{
+ ULONG Start;
+ ULONG Size;
+} ATAG_INITRD2, *PATAG_INITRD2;
+
+typedef struct _ATAG_CMDLINE
+{
+ CHAR CmdLine[ANYSIZE_ARRAY];
+} ATAG_CMDLINE, *PATAG_CMDLINE;
+
+typedef struct _ATAG
+{
+ ATAG_HEADER Hdr;
+ union
+ {
+ ATAG_CORE Core;
+ ATAG_MEM Mem;
+ ATAG_INITRD2 InitRd2;
+ ATAG_CMDLINE CmdLine;
+ } u;
+} ATAG, *PATAG;
+
+#define ATAG_NONE 0x00000000
+#define ATAG_CORE 0x54410001
+#define ATAG_MEM 0x54410002
+#define ATAG_VIDEOTEXT 0x54410003
+#define ATAG_RAMDISK 0x54410004
+#define ATAG_INITRD2 0x54420005
+#define ATAG_SERIAL 0x54410006
+#define ATAG_REVISION 0x54410007
+#define ATAG_VIDEOLFB 0x54410008
+#define ATAG_CMDLINE 0x54410009
+
+PCHAR
+NTAPI
+LlbEnvRead(
+ IN PCHAR Option
+);
+
+BOOLEAN
+NTAPI
+LlbEnvGetRamDiskInformation(
+ IN PULONG Base,
+ IN PULONG Size
+);
+
+VOID
+NTAPI
+LlbEnvGetMemoryInformation(
+ IN PULONG Base,
+ IN PULONG Size
+);
+
+VOID
+NTAPI
+LlbEnvParseArguments(
+ IN PATAG Arguments
+);
+
+/* EOF */
diff --git a/reactos/boot/armllb/inc/fw.h b/reactos/boot/armllb/inc/fw.h
new file mode 100755
index 00000000000..7bc86dd9b71
--- /dev/null
+++ b/reactos/boot/armllb/inc/fw.h
@@ -0,0 +1,112 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/inc/fw.h
+ * PURPOSE: LLB Firmware Functions
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+typedef struct _TIMEINFO
+{
+ USHORT Year;
+ USHORT Month;
+ USHORT Day;
+ USHORT Hour;
+ USHORT Minute;
+ USHORT Second;
+} TIMEINFO;
+
+VOID
+LlbFwPutChar(
+ INT Ch
+);
+
+BOOLEAN
+LlbFwKbHit(
+ VOID
+);
+
+INT
+LlbFwGetCh(
+ VOID
+);
+
+ULONG
+LlbFwVideoSetDisplayMode(
+ IN PCHAR DisplayModeName,
+ IN BOOLEAN Init
+);
+
+VOID
+LlbFwVideoGetDisplaySize(
+ OUT PULONG Width,
+ OUT PULONG Height,
+ OUT PULONG Depth
+);
+
+ULONG
+LlbFwVideoGetBufferSize(
+ VOID
+);
+
+VOID
+LlbFwVideoSetTextCursorPosition(
+ IN ULONG X,
+ IN ULONG Y
+);
+
+VOID
+LlbFwVideoHideShowTextCursor(
+ IN BOOLEAN Show
+);
+
+VOID
+LlbFwVideoCopyOffScreenBufferToVRAM(
+ IN PVOID Buffer
+);
+
+VOID
+LlbFwVideoClearScreen(
+ IN UCHAR Attr
+);
+
+VOID
+LlbFwVideoPutChar(
+ IN INT c,
+ IN UCHAR Attr,
+ IN ULONG X,
+ IN ULONG Y
+);
+
+BOOLEAN
+LlbFwVideoIsPaletteFixed(
+ VOID
+);
+
+VOID
+LlbFwVideoSetPaletteColor(
+ IN UCHAR Color,
+ IN UCHAR Red,
+ IN UCHAR Green,
+ IN UCHAR Blue
+);
+
+VOID
+LlbFwVideoGetPaletteColor(
+ IN UCHAR Color,
+ OUT PUCHAR Red,
+ OUT PUCHAR Green,
+ OUT PUCHAR Blue
+);
+
+VOID
+LlbFwVideoSync(
+ VOID
+);
+
+TIMEINFO*
+LlbFwGetTime(
+ VOID
+);
+
+/* EOF */
diff --git a/reactos/boot/armllb/inc/hw.h b/reactos/boot/armllb/inc/hw.h
new file mode 100755
index 00000000000..53eb6da1709
--- /dev/null
+++ b/reactos/boot/armllb/inc/hw.h
@@ -0,0 +1,132 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/inc/hw.h
+ * PURPOSE: LLB Hardware Functions
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+VOID
+NTAPI
+LlbHwInitialize(
+ VOID
+);
+
+ULONG
+NTAPI
+LlbHwGetScreenWidth(
+ VOID
+);
+
+ULONG
+NTAPI
+LlbHwGetScreenHeight(
+ VOID
+);
+
+ULONG
+NTAPI
+LlbHwVideoCreateColor(
+ IN ULONG Red,
+ IN ULONG Green,
+ IN ULONG Blue
+);
+
+PVOID
+NTAPI
+LlbHwGetFrameBuffer(
+ VOID
+);
+
+ULONG
+NTAPI
+LlbHwGetBoardType(
+ VOID
+);
+
+ULONG
+NTAPI
+LlbHwGetPClk(
+ VOID
+);
+
+ULONG
+NTAPI
+LlbHwGetTmr0Base(
+ VOID
+);
+
+ULONG
+NTAPI
+LlbHwGetUartBase(
+ IN ULONG Port
+);
+
+ULONG
+NTAPI
+LlbHwGetSerialUart(
+ VOID
+);
+
+VOID
+NTAPI
+LlbHwUartSendChar(
+ IN CHAR Char
+);
+
+BOOLEAN
+NTAPI
+LlbHwUartTxReady(
+ VOID
+);
+
+VOID
+NTAPI
+LlbHwBuildMemoryMap(
+ IN PBIOS_MEMORY_MAP MemoryMap
+);
+
+VOID
+NTAPI
+LlbHwKbdSend(
+ IN ULONG Value
+);
+
+BOOLEAN
+NTAPI
+LlbHwKbdReady(
+ VOID
+);
+
+INT
+NTAPI
+LlbHwKbdRead(
+ VOID
+);
+
+POSLOADER_INIT
+NTAPI
+LlbHwLoadOsLoaderFromRam(
+ VOID
+);
+
+ULONG
+NTAPI
+LlbHwRtcRead(
+ VOID
+);
+
+//fix
+TIMEINFO*
+NTAPI
+LlbGetTime(
+ VOID
+);
+
+#ifdef _VERSATILE_
+#include "versa.h"
+#elif _OMAP3_
+#include "omap3.h"
+#endif
+
+/* EOF */
diff --git a/reactos/boot/armllb/inc/keyboard.h b/reactos/boot/armllb/inc/keyboard.h
new file mode 100755
index 00000000000..034f76d2bc2
--- /dev/null
+++ b/reactos/boot/armllb/inc/keyboard.h
@@ -0,0 +1,15 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/inc/keyboard.h
+ * PURPOSE: LLB Keyboard Functions
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+CHAR
+NTAPI
+LlbKeyboardGetChar(
+ VOID
+);
+
+/* EOF */
diff --git a/reactos/boot/armllb/inc/machtype.h b/reactos/boot/armllb/inc/machtype.h
new file mode 100644
index 00000000000..10ecfafeffb
--- /dev/null
+++ b/reactos/boot/armllb/inc/machtype.h
@@ -0,0 +1,27 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/inc/machtype.h
+ * PURPOSE: Standard machine type definitions defined by Linux/U-boot
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+//
+// Marvell Feroceon-based SoC:
+// Buffalo Linkstation, KuroBox Pro, D-Link DS323 and others
+//
+#define MACH_TYPE_FEROCEON 526
+
+//
+// ARM Versatile PB:
+// qemu-system-arm -M versatilepb, RealView Development Boards and others
+//
+#define MACH_TYPE_VERSATILE_PB 387
+
+//
+// TI Beagle Board, OMAP3530 SoC
+// qemu-system-arm -M beagle, Beagle Board
+//
+#define MACH_TYPE_OMAP3_BEAGLE 1546
+
+/* EOF */
\ No newline at end of file
diff --git a/reactos/boot/armllb/inc/osloader.h b/reactos/boot/armllb/inc/osloader.h
new file mode 100644
index 00000000000..6251bb1fa56
--- /dev/null
+++ b/reactos/boot/armllb/inc/osloader.h
@@ -0,0 +1,113 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/inc/osloader.h
+ * PURPOSE: Shared header between LLB and OS Loader
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+//
+// OS Loader Main Routine
+//
+typedef
+VOID (*POSLOADER_INIT)(
+ IN PVOID BoardInit
+);
+
+#ifndef __REGISTRY_H
+//
+// Type of memory detected by LLB
+//
+typedef enum
+{
+ BiosMemoryUsable = 1,
+ BiosMemoryBootLoader,
+ BiosMemoryBootStrap,
+ BiosMemoryReserved
+} BIOS_MEMORY_TYPE;
+
+//
+// Firmware Memory Map
+//
+typedef struct
+{
+ LONGLONG BaseAddress;
+ LONGLONG Length;
+ ULONG Type;
+ ULONG Reserved;
+} BIOS_MEMORY_MAP, *PBIOS_MEMORY_MAP;
+#endif
+
+//
+// Information sent from LLB to OS Loader
+//
+#define ARM_BOARD_CONFIGURATION_MAJOR_VERSION 1
+#define ARM_BOARD_CONFIGURATION_MINOR_VERSION 4
+typedef struct _ARM_BOARD_CONFIGURATION_BLOCK
+{
+ ULONG MajorVersion;
+ ULONG MinorVersion;
+ ULONG BoardType;
+ ULONG ClockRate;
+ ULONG TimerRegisterBase;
+ ULONG UartRegisterBase;
+ ULONG MemoryMapEntryCount;
+ PBIOS_MEMORY_MAP MemoryMap;
+ CHAR CommandLine[256];
+ PVOID ConsPutChar;
+ PVOID ConsKbHit;
+ PVOID ConsGetCh;
+ PVOID VideoClearScreen;
+ PVOID VideoSetDisplayMode;
+ PVOID VideoGetDisplaySize;
+ PVOID VideoGetBufferSize;
+ PVOID VideoSetTextCursorPosition;
+ PVOID VideoHideShowTextCursor;
+ PVOID VideoPutChar;
+ PVOID VideoCopyOffScreenBufferToVRAM;
+ PVOID VideoIsPaletteFixed;
+ PVOID VideoSetPaletteColor;
+ PVOID VideoGetPaletteColor;
+ PVOID VideoSync;
+ PVOID GetTime;
+} ARM_BOARD_CONFIGURATION_BLOCK, *PARM_BOARD_CONFIGURATION_BLOCK;
+
+VOID
+NTAPI
+LlbAllocateMemoryEntry(
+ IN BIOS_MEMORY_TYPE Type,
+ IN ULONG BaseAddress,
+ IN ULONG Length
+);
+
+VOID
+NTAPI
+LlbSetCommandLine(
+ IN PCHAR CommandLine
+);
+
+VOID
+NTAPI
+LlbBuildArmBlock(
+ VOID
+);
+
+VOID
+NTAPI
+LlbBuildMemoryMap(
+ VOID
+);
+
+VOID
+NTAPI
+LlbLoadOsLoader(
+ VOID
+);
+
+VOID
+NTAPI
+LlbBoot(
+ VOID
+);
+
+/* EOF */
diff --git a/reactos/boot/armllb/inc/precomp.h b/reactos/boot/armllb/inc/precomp.h
new file mode 100755
index 00000000000..8bd44b7801d
--- /dev/null
+++ b/reactos/boot/armllb/inc/precomp.h
@@ -0,0 +1,27 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/inc/precomp.h
+ * PURPOSE: Precompiled header for LLB
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+#include "ntdef.h"
+#include "stdio.h"
+#include "ioaccess.h"
+#include "machtype.h"
+#include "osloader.h"
+#include "fw.h"
+#include "hw.h"
+#include "serial.h"
+#include "video.h"
+#include "keyboard.h"
+#include "envir.h"
+
+VOID
+DbgPrint(
+ const char *fmt,
+ ...
+);
+
+/* EOF */
diff --git a/reactos/boot/armllb/inc/serial.h b/reactos/boot/armllb/inc/serial.h
new file mode 100755
index 00000000000..317cfe32a45
--- /dev/null
+++ b/reactos/boot/armllb/inc/serial.h
@@ -0,0 +1,15 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/inc/serial.h
+ * PURPOSE: LLB Serial Port Functions
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+VOID
+NTAPI
+LlbSerialPutChar(
+ IN CHAR c
+);
+
+/* EOF */
diff --git a/reactos/boot/armllb/inc/versa.h b/reactos/boot/armllb/inc/versa.h
new file mode 100755
index 00000000000..fae0835a82f
--- /dev/null
+++ b/reactos/boot/armllb/inc/versa.h
@@ -0,0 +1,27 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/inc/versa.h
+ * PURPOSE: LLB Board-Specific Hardware Functions for Versatile
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+VOID
+NTAPI
+LlbHwVersaUartInitialize(
+ VOID
+);
+
+VOID
+NTAPI
+LlbHwVersaClcdInitialize(
+ VOID
+);
+
+VOID
+NTAPI
+LlbHwVersaKmiInitialize(
+ VOID
+);
+
+/* EOF */
diff --git a/reactos/boot/armllb/inc/video.h b/reactos/boot/armllb/inc/video.h
new file mode 100755
index 00000000000..0e67123c934
--- /dev/null
+++ b/reactos/boot/armllb/inc/video.h
@@ -0,0 +1,30 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/inc/video.h
+ * PURPOSE: LLB Videl Output Functions
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+VOID
+NTAPI
+LlbVideoClearScreen(
+ IN BOOLEAN OsLoader
+);
+
+VOID
+NTAPI
+LlbVideoPutChar(
+ IN CHAR c
+);
+
+VOID
+NTAPI
+LlbVideoDrawChar(
+ IN CHAR c,
+ IN PUSHORT Buffer,
+ IN USHORT Color,
+ IN USHORT BackColor
+);
+
+/* EOF */
diff --git a/reactos/boot/armllb/main.c b/reactos/boot/armllb/main.c
new file mode 100755
index 00000000000..e18ae4cd2b7
--- /dev/null
+++ b/reactos/boot/armllb/main.c
@@ -0,0 +1,36 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/main.c
+ * PURPOSE: Main LLB Code
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+#include "precomp.h"
+
+VOID
+LlbStartup(IN ULONG Reserved,
+ IN ULONG BoardInfo,
+ IN PATAG Arguments)
+{
+ /* Make sure we are booting on the correct kind of machine */
+ if (BoardInfo != LlbHwGetBoardType()) while (TRUE);
+
+ /* Either QEMU or U-Boot itself should send this information */
+ LlbEnvParseArguments(Arguments);
+
+ /* Initialize hardware components */
+ LlbHwInitialize();
+
+ /* Clean up the screen */
+ LlbVideoClearScreen(FALSE);
+
+ /* Print header */
+ printf("ReactOS ARM Low-Level Boot Loader [" __DATE__ " "__TIME__ "]\n");
+
+ /* Boot the OS Loader */
+ LlbBoot();
+ while (TRUE);
+}
+
+/* EOF */
diff --git a/reactos/boot/armllb/os/loader.c b/reactos/boot/armllb/os/loader.c
new file mode 100755
index 00000000000..7d0e9fcf995
--- /dev/null
+++ b/reactos/boot/armllb/os/loader.c
@@ -0,0 +1,150 @@
+/*
+ * PROJECT: ReactOS Boot Loader
+ * LICENSE: BSD - See COPYING.ARM in the top level directory
+ * FILE: boot/armllb/os/loader.c
+ * PURPOSE: OS Loader Code for LLB
+ * PROGRAMMERS: ReactOS Portable Systems Group
+ */
+
+#include "precomp.h"
+
+BIOS_MEMORY_MAP MemoryMap[32];
+ARM_BOARD_CONFIGURATION_BLOCK ArmBlock;
+POSLOADER_INIT LoaderInit;
+
+VOID
+NTAPI
+LlbAllocateMemoryEntry(IN BIOS_MEMORY_TYPE Type,
+ IN ULONG BaseAddress,
+ IN ULONG Length)
+{
+ PBIOS_MEMORY_MAP Entry;
+
+ /* Get the next memory entry */
+ Entry = MemoryMap;
+ while (Entry->Length) Entry++;
+
+ /* Fill it out */
+ Entry->Length = Length;
+ Entry->BaseAddress = BaseAddress;
+ Entry->Type = Type;
+
+ /* Block count */
+ ArmBlock.MemoryMapEntryCount++;
+}
+
+VOID
+NTAPI
+LlbSetCommandLine(IN PCHAR CommandLine)
+{
+ /* Copy the command line in the ARM block */
+ strcpy(ArmBlock.CommandLine, CommandLine);
+}
+
+VOID
+NTAPI
+LlbBuildArmBlock(VOID)
+{
+ /* Write version number */
+ ArmBlock.MajorVersion = ARM_BOARD_CONFIGURATION_MAJOR_VERSION;
+ ArmBlock.MinorVersion = ARM_BOARD_CONFIGURATION_MINOR_VERSION;
+
+ /* Get arch type */
+ ArmBlock.BoardType = LlbHwGetBoardType();
+
+ /* Get peripheral clock rate */
+ ArmBlock.ClockRate = LlbHwGetPClk();
+
+ /* Get timer and serial port base addresses */
+ ArmBlock.TimerRegisterBase = LlbHwGetTmr0Base();
+ ArmBlock.UartRegisterBase = LlbHwGetUartBase(LlbHwGetSerialUart());
+
+ /* Debug */
+ DbgPrint("Machine Identifier: %lx\nPCLK: %d\nTIMER 0: %p\nSERIAL UART: %p\n",
+ ArmBlock.BoardType,
+ ArmBlock.ClockRate,
+ ArmBlock.TimerRegisterBase,
+ ArmBlock.UartRegisterBase);
+
+ /* Now load the memory map */
+ ArmBlock.MemoryMap = MemoryMap;
+
+ /* Write firmware callbacks */
+ ArmBlock.ConsPutChar = LlbFwPutChar;
+ ArmBlock.ConsKbHit = LlbFwKbHit;
+ ArmBlock.ConsGetCh = LlbFwGetCh;
+ ArmBlock.VideoClearScreen = LlbFwVideoClearScreen;
+ ArmBlock.VideoSetDisplayMode = LlbFwVideoSetDisplayMode;
+ ArmBlock.VideoGetDisplaySize = LlbFwVideoGetDisplaySize;
+ ArmBlock.VideoGetBufferSize = LlbFwVideoGetBufferSize;
+ ArmBlock.VideoSetTextCursorPosition = LlbFwVideoSetTextCursorPosition;
+ ArmBlock.VideoSetTextCursorPosition = LlbFwVideoSetTextCursorPosition;
+ ArmBlock.VideoHideShowTextCursor = LlbFwVideoHideShowTextCursor;
+ ArmBlock.VideoPutChar = LlbFwVideoPutChar;
+ ArmBlock.VideoCopyOffScreenBufferToVRAM = LlbFwVideoCopyOffScreenBufferToVRAM;
+ ArmBlock.VideoIsPaletteFixed = LlbFwVideoIsPaletteFixed;
+ ArmBlock.VideoSetPaletteColor = LlbFwVideoSetPaletteColor;
+ ArmBlock.VideoGetPaletteColor = LlbFwVideoGetPaletteColor;
+ ArmBlock.VideoSync = LlbFwVideoSync;
+ ArmBlock.GetTime = LlbFwGetTime;
+}
+
+VOID
+NTAPI
+LlbBuildMemoryMap(VOID)
+{
+ /* Zero out the memory map */
+ memset(MemoryMap, 0, sizeof(MemoryMap));
+
+ /* Call the hardware-specific function for hardware-defined regions */
+ LlbHwBuildMemoryMap(MemoryMap);
+}
+
+VOID
+NTAPI
+LlbLoadOsLoader(VOID)
+{
+ PCHAR BootDevice;
+
+ /* Read the current boot device */
+ BootDevice = LlbEnvRead("boot-device");
+ printf("Loading OS Loader from: %s...\n", BootDevice);
+ if (!strcmp(BootDevice, "NAND"))
+ {
+ // todo
+ }
+ else if (!strcmp(BootDevice, "RAMDISK"))
+ {
+ /* Call the hardware-specific function */
+ LoaderInit = LlbHwLoadOsLoaderFromRam();
+ }
+ else if (!strcmp(BootDevice, "MMC") ||
+ !strcmp(BootDevice, "SD"))
+ {
+ //todo
+ }
+ else if (!strcmp(BootDevice, "HDD"))
+ {
+ //todo
+ }
+ printf("OS Loader loaded at 0x%p...JUMP!\n\n\n\n\n", LoaderInit);
+}
+
+VOID
+NTAPI
+LlbBoot(VOID)
+{
+ /* Setup the ARM block */
+ LlbBuildArmBlock();
+
+ /* Build the memory map */
+ LlbBuildMemoryMap();
+
+ /* Load the OS loader */
+ LlbLoadOsLoader();
+
+ /* Jump to the OS Loader (FreeLDR in this case) */
+ LoaderInit(&ArmBlock);
+}
+
+/* EOF */
diff --git a/reactos/boot/boot.rbuild b/reactos/boot/boot.rbuild
index 2b1f0422aac..ff2421c0b8a 100644
--- a/reactos/boot/boot.rbuild
+++ b/reactos/boot/boot.rbuild
@@ -4,6 +4,11 @@
+
+
+
+
+
diff --git a/reactos/boot/bootdata/hivedef_i386.inf b/reactos/boot/bootdata/hivedef_i386.inf
index 404953a6257..9650563ee47 100644
--- a/reactos/boot/bootdata/hivedef_i386.inf
+++ b/reactos/boot/bootdata/hivedef_i386.inf
@@ -1790,14 +1790,14 @@ HKCU,"AppEvents\Schemes\Apps\.Default\SystemQuestion",,0x00000012
HKCU,"AppEvents\Schemes\Apps\.Default\SystemQuestion\.Current","",0x00020000,""
HKCU,"AppEvents\Schemes\Apps\.Default\SystemQuestion\.Default","",0x00020000,""
HKCU,"AppEvents\Schemes\Apps\.Default\SystemStart",,0x00000012
-HKCU,"AppEvents\Schemes\Apps\.Default\SystemStart\.Current","",0x00020000,"%SystemRoot%\media\ReactOS_LogOn.wav"
-HKCU,"AppEvents\Schemes\Apps\.Default\SystemStart\.Default","",0x00020000,"%SystemRoot%\media\ReactOS_LogOn.wav"
+HKCU,"AppEvents\Schemes\Apps\.Default\SystemStart\.Current","",0x00020000,""
+HKCU,"AppEvents\Schemes\Apps\.Default\SystemStart\.Default","",0x00020000,""
HKCU,"AppEvents\Schemes\Apps\.Default\WindowsLogoff",,0x00000012
HKCU,"AppEvents\Schemes\Apps\.Default\WindowsLogoff\.Current","",0x00020000,""
HKCU,"AppEvents\Schemes\Apps\.Default\WindowsLogoff\.Default","",0x00020000,""
HKCU,"AppEvents\Schemes\Apps\.Default\WindowsLogon",,0x00000012
-HKCU,"AppEvents\Schemes\Apps\.Default\WindowsLogon\.Current","",0x00020000,""
-HKCU,"AppEvents\Schemes\Apps\.Default\WindowsLogon\.Default","",0x00020000,""
+HKCU,"AppEvents\Schemes\Apps\.Default\WindowsLogon\.Current","",0x00020000,"%SystemRoot%\media\ReactOS_LogOn.wav"
+HKCU,"AppEvents\Schemes\Apps\.Default\WindowsLogon\.Default","",0x00020000,"%SystemRoot%\media\ReactOS_LogOn.wav"
HKCU,"AppEvents\Schemes\Apps\Explorer","",0x00000002,"ReactOS Explorer"
HKCU,"AppEvents\Schemes\Apps\Explorer","DispFileName",0x00000000,"@mmsys.cpl,-5854"
HKCU,"AppEvents\Schemes\Apps\Explorer\EmptyRecycleBin",,0x00000012
diff --git a/reactos/boot/freeldr/fdebug/lang/uk-UA.rc b/reactos/boot/freeldr/fdebug/lang/uk-UA.rc
index 8c267dd88f0..69ca13f7702 100644
--- a/reactos/boot/freeldr/fdebug/lang/uk-UA.rc
+++ b/reactos/boot/freeldr/fdebug/lang/uk-UA.rc
@@ -30,7 +30,7 @@ BEGIN
END
POPUP "&Довідка"
BEGIN
- MENUITEM "&Про програму ...", IDM_ABOUT
+ MENUITEM "Пр&о програму ...", IDM_ABOUT
END
END
@@ -124,7 +124,7 @@ BEGIN
CONTROL "Налагоджувач FreeLoader v1.0\nCopyright (C) 2003\nby Brian Palmer (brianp@reactos.org)",
IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,53,28,
122,26
- DEFPUSHBUTTON "OK",IDOK,183,189,44,14,WS_GROUP
+ DEFPUSHBUTTON "Так",IDOK,183,189,44,14,WS_GROUP
ICON IDI_FDEBUG,IDC_STATIC,19,30,20,20
EDITTEXT IDC_LICENSE_EDIT,53,63,174,107,ES_MULTILINE |
ES_READONLY | WS_VSCROLL
@@ -171,7 +171,7 @@ END
STRINGTABLE DISCARDABLE
BEGIN
- IDS_LICENSE "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 the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
+ IDS_LICENSE "Це вільне програмне забезпечення; Ви можете розповсюджувати її та змінювати, дотримуючись умови Відкритої ліцензійної угоди GNU, опублікованої Фондом вільного програмного забезпечення; або редакції 2 Угоди, або будь-якої редакції, випущеної пізніше.\r\n\r\nЦя програма розповсюджується в надії на те, що вона виявиться корисною, але БЕЗ БУДЬ-ЯКИХ ГАРАНТІЙ, включаючи УЯВНОЮ ГАРАНТІЄЮ ЯКОСТІ або ПРИДАТНОСТІ для певних цілей. Подробиці містяться у Відкритій ліцензійній угоді GNU.\r\n\r\nРазом з цією програмою повинен поширюватися примірник Відкритої ліцензійної угоди GNU. Якщо він відсутній, повідомте про це в Фонд вільного програмного забезпечення (Free Software Foundation, Inc.), 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
END
#endif // Ukrainian resources
diff --git a/reactos/boot/freeldr/freeldr/arcemul/mm.c b/reactos/boot/freeldr/freeldr/arcemul/mm.c
index 03ddbaf71e2..57a654e0b20 100644
--- a/reactos/boot/freeldr/freeldr/arcemul/mm.c
+++ b/reactos/boot/freeldr/freeldr/arcemul/mm.c
@@ -32,9 +32,7 @@ static const MEMORY_DESCRIPTOR_INT MemoryDescriptors[] =
{ { MemoryFirmwarePermanent, 0xA0, 0x60 }, 6, }, // ROM / Video
{ { MemorySpecialMemory, 0xFFF, 1 }, 7, }, // unusable memory
#elif __arm__ // This needs to be done per-platform specific way
- { { MemoryLoadedProgram, 0x80000, 32 }, 0, }, // X-Loader + OmapLdr
- { { MemoryLoadedProgram, 0x81000, 128 }, 1, }, // FreeLDR
- { { MemoryFirmwareTemporary, 0x80500, 4096 }, 2, }, // Video Buffer
+
#endif
};
MEMORY_DESCRIPTOR*
diff --git a/reactos/boot/freeldr/freeldr/arch/arm/boot.s b/reactos/boot/freeldr/freeldr/arch/arm/boot.s
index ab14f70a6b3..64cf06a7035 100644
--- a/reactos/boot/freeldr/freeldr/arch/arm/boot.s
+++ b/reactos/boot/freeldr/freeldr/arch/arm/boot.s
@@ -13,133 +13,25 @@
NESTED_ENTRY _start
PROLOG_END _start
- //
- // C entrypoint
- //
- ldr lr, L_ArmInit
-
- //
- // Turn off FIQs and IRQs
- // FreeLDR runs without interrupts, and without paging, just like on x86
- //
- mrs r1, cpsr
- orr r1, r1, #CPSR_IRQ_DISABLE | CPSR_FIQ_DISABLE
- msr cpsr, r1
+ b ArmInit
- //
- // Turn off caches and the MMU
- //
- mrc p15, 0, r1, c1, c0, 0
- bic r1, r1, #C1_DCACHE_CONTROL
- bic r1, r1, #C1_ICACHE_CONTROL
- bic r1, r1, #C1_MMU_CONTROL
- mcr p15, 0, r1, c1, c0, 0
-
- //
- // Flush everything away
- //
- mov r1, #0
- mcr p15, 0, r1, c7, c7, 0
-
- //
- // Okay, now give us a stack
- //
- //ldr sp, L_BootStackEnd
-
- //
- // Go ahead and call the C initialization code
- // r0 contains the ARM_BOARD_CONFIGURATION_DATA structure
- //
- bx lr
ENTRY_END _start
-L_BootStackEnd:
- .long BootStackEnd
-
L_ArmInit:
.long ArmInit
-.section pagedata
-.global TranslationTableStart
-TranslationTableStart:
+.global PageDirectoryStart, PageDirectoryEnd
+.global startup_pagedirectory
+.global kernel_pagetable
-.global ArmTranslationTable
-ArmTranslationTable:
- .space 0x4000 // 0x00000000->0xFFFFFFFF
+.bss
+PageDirectoryStart:
+kernel_pagetable:
+ .fill 2*4096, 1, 0
+ .space 4096
+startup_pagedirectory:
+ .fill 4*4096, 1, 0
+
-.global BootTranslationTable
-BootTranslationTable:
- .space 0x0400 // 0x00000000->0x800FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0x00100000->0x801FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0x00200000->0x802FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0x00300000->0x803FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0x00400000->0x804FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0x00500000->0x805FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0x00600000->0x806FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0x00700000->0x807FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
-
-.global KernelTranslationTable
-KernelTranslationTable:
- .space 0x0400 // 0x00800000->0x808FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0x00900000->0x809FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0x00A00000->0x80AFFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0x00B00000->0x80BFFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0x00C00000->0x80CFFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0x00D00000->0x80DFFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
-
-.global FlatMapTranslationTable
-FlatMapTranslationTable:
- .space 0x0400 // 0xYYYYYYYY->0xC00FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0xYYYYYYYY->0xC01FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0xYYYYYYYY->0xC02FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0xYYYYYYYY->0xC03FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0xYYYYYYYY->0xC04FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0xYYYYYYYY->0xC05FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0xYYYYYYYY->0xC06FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0xYYYYYYYY->0xC07FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0xYYYYYYYY->0xC08FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0xYYYYYYYY->0xC09FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0xYYYYYYYY->0xC0AFFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0xYYYYYYYY->0xC0BFFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0xYYYYYYYY->0xC0CFFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0xYYYYYYYY->0xC0DFFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0xYYYYYYYY->0xC0EFFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
- .space 0x0400 // 0xYYYYYYYY->0xC0FFFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
-
-.global MasterTranslationTable
-MasterTranslationTable:
- .space 0x0400 // 0xYYYYYYYY->0xC10FFFFF
- .space 0x0C00 // PADDING FOR 4KB GRANULARITY
-
-.global TranslationTableEnd
-TranslationTableEnd:
+.global PageDirectoryEnd
+PageDirectoryEnd:
diff --git a/reactos/boot/freeldr/freeldr/arch/arm/ferouart.c b/reactos/boot/freeldr/freeldr/arch/arm/ferouart.c
deleted file mode 100644
index 0c8f9b0f234..00000000000
--- a/reactos/boot/freeldr/freeldr/arch/arm/ferouart.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * PROJECT: ReactOS Boot Loader
- * LICENSE: BSD - See COPYING.ARM in the top level directory
- * FILE: boot/freeldr/arch/arm/ferouart.c
- * PURPOSE: Implements code for Feroceon boards using the 16550 UART
- * PROGRAMMERS: ReactOS Portable Systems Group
- */
-
-/* INCLUDES *******************************************************************/
-
-#include
-
-/* GLOBALS ********************************************************************/
-
-//
-// UART Registers
-//
-#define UART0_RBR (ArmBoardBlock->UartRegisterBase + 0x00)
-#define UART0_THR UART0_RBR
-#define UART0_IER (ArmBoardBlock->UartRegisterBase + 0x04)
-#define UART0_FCR (ArmBoardBlock->UartRegisterBase + 0x08)
-#define UART0_LCR (ArmBoardBlock->UartRegisterBase + 0x0C)
-#define UART0_MCR (ArmBoardBlock->UartRegisterBase + 0x10)
-#define UART0_LSR (ArmBoardBlock->UartRegisterBase + 0x14)
-#define UART0_MSR (ArmBoardBlock->UartRegisterBase + 0x18)
-#define UART0_SCR (ArmBoardBlock->UartRegisterBase + 0x1C)
-
-//
-// When we enable the divisor latch
-//
-#define UART0_DLL UART0_RBR
-#define UART0_DLM UART0_IER
-
-//
-// FCR Values
-//
-#define FCR_FIFO_EN 0x01
-#define FCR_RXSR 0x02
-#define FCR_TXSR 0x04
-
-//
-// LCR Values
-//
-#define LCR_WLS_8 0x03
-#define LCR_1_STB 0x00
-#define LCR_DIVL_EN 0x80
-#define LCR_NO_PAR 0x00
-
-//
-// LSR Values
-//
-#define LSR_DR 0x01
-#define LSR_THRE 0x20
-
-/* FUNCTIONS ******************************************************************/
-
-VOID
-ArmFeroSerialInit(IN ULONG Baudrate)
-{
- ULONG BaudClock;
-
- //
- // Calculate baudrate clock divider to set the baud rate
- //
- BaudClock = (ArmBoardBlock->ClockRate / 16) / Baudrate;
-
- //
- // Disable interrupts
- //
- WRITE_REGISTER_UCHAR(UART0_IER, 0);
-
- //
- // Set the baud rate to 115200 bps
- //
- WRITE_REGISTER_UCHAR(UART0_LCR, LCR_DIVL_EN);
- WRITE_REGISTER_UCHAR(UART0_DLL, BaudClock);
- WRITE_REGISTER_UCHAR(UART0_DLM, (BaudClock >> 8) & 0xFF);
-
- //
- // Set 8 bits for data, 1 stop bit, no parity
- //
- WRITE_REGISTER_UCHAR(UART0_LCR, LCR_WLS_8 | LCR_1_STB | LCR_NO_PAR);
-
- //
- // Clear and enable FIFO
- //
- WRITE_REGISTER_UCHAR(UART0_FCR, FCR_FIFO_EN | FCR_RXSR | FCR_TXSR);
-}
-
-VOID
-ArmFeroPutChar(IN INT Char)
-{
- //
- // Properly support new-lines
- //
- if (Char == '\n') ArmFeroPutChar('\r');
-
- //
- // Wait for ready
- //
- while ((READ_REGISTER_UCHAR(UART0_LSR) & LSR_THRE) == 0);
-
- //
- // Send the character
- //
- WRITE_REGISTER_UCHAR(UART0_THR, Char);
-}
-
-INT
-ArmFeroGetCh(VOID)
-{
- //
- // Wait for ready
- //
- while ((READ_REGISTER_UCHAR(UART0_LSR) & LSR_DR) == 0);
-
- //
- // Read the character
- //
- return READ_REGISTER_UCHAR(UART0_RBR);
-}
-
-BOOLEAN
-ArmFeroKbHit(VOID)
-{
- //
- // Return if something is ready
- //
- return ((READ_REGISTER_UCHAR(UART0_LSR) & LSR_DR) != 0);
-}
diff --git a/reactos/boot/freeldr/freeldr/arch/arm/loader.c b/reactos/boot/freeldr/freeldr/arch/arm/loader.c
index d1548d9eeaa..80bb14f809e 100644
--- a/reactos/boot/freeldr/freeldr/arch/arm/loader.c
+++ b/reactos/boot/freeldr/freeldr/arch/arm/loader.c
@@ -39,17 +39,17 @@ MEMORY_DESCRIPTOR MDArray[16] = {{0}};
ULONG ArmSharedHeapSize;
PCHAR ArmSharedHeap;
-extern ADDRESS_RANGE ArmBoardMemoryMap[16];
-extern ULONG ArmBoardMemoryMapRangeCount;
-extern ARM_TRANSLATION_TABLE ArmTranslationTable;
-extern ARM_COARSE_PAGE_TABLE BootTranslationTable, KernelTranslationTable, FlatMapTranslationTable, MasterTranslationTable;
+extern PAGE_DIRECTORY_ARM startup_pagedirectory;
extern ROS_KERNEL_ENTRY_POINT KernelEntryPoint;
extern ULONG_PTR KernelBase;
+
+extern ADDRESS_RANGE ArmBoardMemoryMap[16];
+extern ULONG ArmBoardMemoryMapRangeCount;
extern ULONG_PTR AnsiData, OemData, UnicodeData, RegistryData, KernelData, HalData, DriverData[16];
extern ULONG RegistrySize, AnsiSize, OemSize, UnicodeSize, KernelSize, HalSize, DriverSize[16];
extern PCHAR DriverName[16];
extern ULONG Drivers;
-extern ULONG BootStack, TranslationTableStart, TranslationTableEnd;
+extern ULONG BootStack;
ULONG SizeBits[] =
{
@@ -675,11 +675,52 @@ ArmBuildLoaderMemoryList(VOID)
return STATUS_SUCCESS;
}
+#define PFN_SHIFT 12
+#define LARGE_PFN_SHIFT 20
+
+#define STARTUP_BASE 0xC0000000
+#define HAL_BASE 0xFFC00000
+#define MMIO_BASE 0x10000000
+
+#define LowMemPageTableIndex 0
+#define StartupPageTableIndex (STARTUP_BASE >> PDE_SHIFT)
+#define MmioPageTableIndex (MMIO_BASE >> PDE_SHIFT)
+#define HalPageTableIndex (HAL_BASE >> PDE_SHIFT)
+
+/* Converts a Physical Address into a Page Frame Number */
+#define PaToPfn(p) ((p) >> PFN_SHIFT)
+#define PaToLargePfn(p) ((p) >> LARGE_PFN_SHIFT)
+
VOID
ArmSetupPageDirectory(VOID)
-{
- ARM_TTB_REGISTER TtbRegister;
- ARM_DOMAIN_REGISTER DomainRegister;
+{
+ PPAGE_DIRECTORY_ARM PageDir;
+ ULONG KernelPageTableIndex;
+ //ULONG i;
+
+ /* Get the Kernel Table Index */
+ KernelPageTableIndex = KernelBase >> PDE_SHIFT;
+ printf("Kernel Base: 0x%p (PDE Index: %lx)\n", KernelBase, KernelPageTableIndex);
+
+ /* Get the Startup Page Directory */
+ PageDir = (PPAGE_DIRECTORY_ARM)&startup_pagedirectory;
+ printf("Initial Page Directory: 0x%p\n", PageDir);
+
+ /* Setup the Low Memory PDE as an identity-mapped Large Page (1MB) */
+ ((PHARDWARE_LARGE_PTE_ARMV6)PageDir->Pde)[LowMemPageTableIndex].LargePage = 1;
+ ((PHARDWARE_LARGE_PTE_ARMV6)PageDir->Pde)[LowMemPageTableIndex].Accessed = 1;
+ ((PHARDWARE_LARGE_PTE_ARMV6)PageDir->Pde)[LowMemPageTableIndex].PageFrameNumber = 0;
+
+ /* Setup the MMIO PDE as two identity mapped large pages -- the kernel will blow these away later */
+ ((PHARDWARE_LARGE_PTE_ARMV6)PageDir->Pde)[MmioPageTableIndex].LargePage = 1;
+ ((PHARDWARE_LARGE_PTE_ARMV6)PageDir->Pde)[MmioPageTableIndex].Accessed = 1;
+ ((PHARDWARE_LARGE_PTE_ARMV6)PageDir->Pde)[MmioPageTableIndex].PageFrameNumber = PaToLargePfn(0x10000000);
+ ((PHARDWARE_LARGE_PTE_ARMV6)PageDir->Pde)[MmioPageTableIndex+1].LargePage = 1;
+ ((PHARDWARE_LARGE_PTE_ARMV6)PageDir->Pde)[MmioPageTableIndex+1].Accessed = 1;
+ ((PHARDWARE_LARGE_PTE_ARMV6)PageDir->Pde)[MmioPageTableIndex+1].PageFrameNumber = PaToLargePfn(0x10100000);
+ printf("Paging init done\n");
+
+ #if 0
ARM_PTE Pte;
ULONG i, j;
PARM_TRANSLATION_TABLE ArmTable;
@@ -989,34 +1030,40 @@ ArmSetupPageDirectory(VOID)
MasterTable->Pte[i] = Pte;
Pte.L2.Small.BaseAddress++;
}
+#endif
}
VOID
ArmSetupPagingAndJump(IN ULONG Magic)
{
+ ULONG_PTR PageDirectoryBaseAddress = (ULONG_PTR)&startup_pagedirectory;
ARM_CONTROL_REGISTER ControlRegister;
+ ARM_TTB_REGISTER TtbRegister;
+ ARM_DOMAIN_REGISTER DomainRegister;
- //
- // Enable MMU, DCache and ICache
- //
+ /* Set the TTBR */
+ TtbRegister.AsUlong = PageDirectoryBaseAddress;
+ ASSERT(TtbRegister.Reserved == 0);
+ KeArmTranslationTableRegisterSet(TtbRegister);
+
+ /* Disable domains and simply use access bits on PTEs */
+ DomainRegister.AsUlong = 0;
+ DomainRegister.Domain0 = ClientDomain;
+ KeArmDomainRegisterSet(DomainRegister);
+
+ /* Enable ARMv6+ paging (MMU), caches and the access bit */
ControlRegister = KeArmControlRegisterGet();
ControlRegister.MmuEnabled = TRUE;
ControlRegister.ICacheEnabled = TRUE;
ControlRegister.DCacheEnabled = TRUE;
+ ControlRegister.ForceAp = TRUE;
+ ControlRegister.ExtendedPageTables = TRUE;
KeArmControlRegisterSet(ControlRegister);
-
- //
- // Reconfigure UART0
- //
- ArmBoardBlock->UartRegisterBase = UART_VIRTUAL |
- (ArmBoardBlock->UartRegisterBase &
- ((1 << PDE_SHIFT) - 1));
- TuiPrintf("Mapped serial port to 0x%x\n", ArmBoardBlock->UartRegisterBase);
- //
- // Jump to Kernel
- //
- (*KernelEntryPoint)(Magic, (PVOID)((ULONG_PTR)ArmLoaderBlock | KSEG0_BASE));
+ /* Jump to Kernel */
+ TuiPrintf("Hello from MMU Enabled!\n");
+ while (TRUE);
+ (*KernelEntryPoint)((PVOID)((ULONG_PTR)ArmLoaderBlock | KSEG0_BASE));
}
VOID
@@ -1031,9 +1078,12 @@ ArmPrepareForReactOS(IN BOOLEAN Setup)
PLIST_ENTRY NextEntry, OldEntry;
PARC_DISK_INFORMATION ArcDiskInformation;
PARC_DISK_SIGNATURE ArcDiskSignature;
- ULONG ArcDiskCount = 0, Checksum = 0;
+ ULONG ArcDiskCount = 0;
+#if 0
+ ULONG Checksum = 0;
PMASTER_BOOT_RECORD Mbr;
PULONG Buffer;
+#endif
PWCHAR ArmModuleName;
//
@@ -1104,7 +1154,7 @@ ArmPrepareForReactOS(IN BOOLEAN Setup)
0,
&Dummy);
if (Status != STATUS_SUCCESS) return;
-
+#if 0
//
// Setup descriptor for the boot page tables
//
@@ -1115,7 +1165,7 @@ ArmPrepareForReactOS(IN BOOLEAN Setup)
0,
&Dummy);
if (Status != STATUS_SUCCESS) return;
-
+#endif
//
// Setup descriptor for the kernel
//
@@ -1530,6 +1580,7 @@ ArmPrepareForReactOS(IN BOOLEAN Setup)
InitializeListHead(&ArcDiskInformation->DiskSignatureListHead);
ArmLoaderBlock->ArcDiskInformation = (PVOID)((ULONG_PTR)ArcDiskInformation | KSEG0_BASE);
+#if 0
//
// Read the MBR
//
@@ -1543,12 +1594,13 @@ ArmPrepareForReactOS(IN BOOLEAN Setup)
for (i = 0; i < 128; i++) Checksum += Buffer[i];
Checksum = ~Checksum + 1;
+#endif
//
// Allocate a disk signature and fill it out
//
ArcDiskSignature = ArmAllocateFromSharedHeap(sizeof(ARC_DISK_SIGNATURE));
- ArcDiskSignature->Signature = Mbr->Signature;
- ArcDiskSignature->CheckSum = Checksum;
+ ArcDiskSignature->Signature = 0xBADAB00B;// Mbr->Signature;
+ ArcDiskSignature->CheckSum = 0xFAB4BEEF; //Checksum;
//
// Allocare a string for the name and fill it out
@@ -1597,7 +1649,7 @@ VOID
FrLdrStartup(IN ULONG Magic)
{
//
- // Disable interrupts (aleady done)
+ // Disable interrupts (already done)
//
//
diff --git a/reactos/boot/freeldr/freeldr/arch/arm/macharm.c b/reactos/boot/freeldr/freeldr/arch/arm/macharm.c
index c636a0a9fe0..f8979bba771 100644
--- a/reactos/boot/freeldr/freeldr/arch/arm/macharm.c
+++ b/reactos/boot/freeldr/freeldr/arch/arm/macharm.c
@@ -9,6 +9,7 @@
/* INCLUDES *******************************************************************/
#include
+#define RGB565(r, g, b) (((r >> 3) << 11)| ((g >> 2) << 5)| ((b >> 3) << 0))
/* GLOBALS ********************************************************************/
@@ -19,6 +20,7 @@ ULONG BootDrive, BootPartition;
VOID ArmPrepareForReactOS(IN BOOLEAN Setup);
ADDRESS_RANGE ArmBoardMemoryMap[16];
ULONG ArmBoardMemoryMapRangeCount;
+ULONG gDiskReadBuffer, gFileSysBuffer;
/* FUNCTIONS ******************************************************************/
@@ -33,7 +35,7 @@ ArmInit(IN PARM_BOARD_CONFIGURATION_BLOCK BootContext)
ArmBoardBlock = BootContext;
//
- // Let's make sure we understand the boot-loader
+ // Let's make sure we understand the LLB
//
ASSERT(ArmBoardBlock->MajorVersion == ARM_BOARD_CONFIGURATION_MAJOR_VERSION);
ASSERT(ArmBoardBlock->MinorVersion == ARM_BOARD_CONFIGURATION_MINOR_VERSION);
@@ -68,25 +70,26 @@ ArmInit(IN PARM_BOARD_CONFIGURATION_BLOCK BootContext)
}
BOOLEAN
-ArmDiskGetDriveGeometry(IN ULONG DriveNumber,
- OUT PGEOMETRY Geometry)
+ArmDiskNormalizeSystemPath(IN OUT PCHAR SystemPath,
+ IN unsigned Size)
{
- return FALSE;
+ /* Only RAMDISK supported for now */
+ if (!strstr(SystemPath, "ramdisk(0)")) return FALSE;
+ return TRUE;
}
BOOLEAN
-ArmDiskReadLogicalSectors(IN ULONG DriveNumber,
- IN ULONGLONG SectorNumber,
- IN ULONG SectorCount,
- IN PVOID Buffer)
+ArmDiskGetBootPath(OUT PCHAR BootPath,
+ IN unsigned Size)
{
- return FALSE;
-}
-
-ULONG
-ArmDiskGetCacheableBlockCount(IN ULONG DriveNumber)
-{
- return 0;
+ PCCH Path = "ramdisk(0)";
+
+ /* Make sure enough space exists */
+ if (Size < sizeof(Path)) return FALSE;
+
+ /* On ARM platforms, the loader is always in RAM */
+ strcpy(BootPath, Path);
+ return TRUE;
}
PCONFIGURATION_COMPONENT_DATA
@@ -106,6 +109,11 @@ ArmHwDetect(VOID)
// or OpenFirmware device trees, and we will convert it to ARC.
//
+ //
+ // Register RAMDISK Device
+ //
+ RamDiskInitialize();
+
//
// Return the root node
//
@@ -133,32 +141,41 @@ MachInit(IN PCCH CommandLine)
//
switch (ArmBoardBlock->BoardType)
{
- //
- // Check for Feroceon-base boards
- //
+ //
+ // Check for Feroceon-base boards
+ //
case MACH_TYPE_FEROCEON:
-
- //
- // These boards use a UART16550. Set us up for 115200 bps
- //
- ArmFeroSerialInit(115200);
- MachVtbl.ConsPutChar = ArmFeroPutChar;
- MachVtbl.ConsKbHit = ArmFeroKbHit;
- MachVtbl.ConsGetCh = ArmFeroGetCh;
+ TuiPrintf("Not implemented\n");
+ while (TRUE);
break;
- //
- // Check for ARM Versatile PB boards
- //
+ //
+ // Check for ARM Versatile PB boards
+ //
case MACH_TYPE_VERSATILE_PB:
- //
- // These boards use a PrimeCell UART (PL011)
- //
- ArmVersaSerialInit(115200);
- MachVtbl.ConsPutChar = ArmVersaPutChar;
- MachVtbl.ConsKbHit = ArmVersaKbHit;
- MachVtbl.ConsGetCh = ArmVersaGetCh;
+ /* Copy Machine Routines from Firmware Table */
+ MachVtbl.ConsPutChar = ArmBoardBlock->ConsPutChar;
+ MachVtbl.ConsKbHit = ArmBoardBlock->ConsKbHit;
+ MachVtbl.ConsGetCh = ArmBoardBlock->ConsGetCh;
+ MachVtbl.VideoClearScreen = ArmBoardBlock->VideoClearScreen;
+ MachVtbl.VideoSetDisplayMode = ArmBoardBlock->VideoSetDisplayMode;
+ MachVtbl.VideoGetDisplaySize = ArmBoardBlock->VideoGetDisplaySize;
+ MachVtbl.VideoGetBufferSize = ArmBoardBlock->VideoGetBufferSize;
+ MachVtbl.VideoSetTextCursorPosition = ArmBoardBlock->VideoSetTextCursorPosition;
+ MachVtbl.VideoSetTextCursorPosition = ArmBoardBlock->VideoSetTextCursorPosition;
+ MachVtbl.VideoHideShowTextCursor = ArmBoardBlock->VideoHideShowTextCursor;
+ MachVtbl.VideoPutChar = ArmBoardBlock->VideoPutChar;
+ MachVtbl.VideoCopyOffScreenBufferToVRAM = ArmBoardBlock->VideoCopyOffScreenBufferToVRAM;
+ MachVtbl.VideoIsPaletteFixed = ArmBoardBlock->VideoIsPaletteFixed;
+ MachVtbl.VideoSetPaletteColor = ArmBoardBlock->VideoSetPaletteColor;
+ MachVtbl.VideoGetPaletteColor = ArmBoardBlock->VideoGetPaletteColor;
+ MachVtbl.VideoSync = ArmBoardBlock->VideoSync;
+ MachVtbl.GetTime = ArmBoardBlock->GetTime;
+
+ /* Setup the disk and file system buffers */
+ gDiskReadBuffer = 0x00090000;
+ gFileSysBuffer = 0x00090000;
break;
//
@@ -166,14 +183,8 @@ MachInit(IN PCCH CommandLine)
// For now that means only Beagle, but ZOOM and others should be ok too
//
case MACH_TYPE_OMAP3_BEAGLE:
-
- //
- // These boards use a UART16550
- //
- ArmOmap3SerialInit(115200);
- MachVtbl.ConsPutChar = ArmOmap3PutChar;
- MachVtbl.ConsKbHit = ArmOmap3KbHit;
- MachVtbl.ConsGetCh = ArmOmap3GetCh;
+ TuiPrintf("Not implemented\n");
+ while (TRUE);
break;
default:
@@ -190,19 +201,12 @@ MachInit(IN PCCH CommandLine)
//
// Setup disk I/O routines
//
- MachVtbl.DiskReadLogicalSectors = ArmDiskReadLogicalSectors;
- MachVtbl.DiskGetDriveGeometry = ArmDiskGetDriveGeometry;
- MachVtbl.DiskGetCacheableBlockCount = ArmDiskGetCacheableBlockCount;
-
- //
- // Now set default disk handling routines -- we don't need to override
- //
- MachVtbl.DiskGetBootPath = DiskGetBootPath;
- MachVtbl.DiskNormalizeSystemPath = DiskNormalizeSystemPath;
+ MachVtbl.DiskGetBootPath = ArmDiskGetBootPath;
+ MachVtbl.DiskNormalizeSystemPath = ArmDiskNormalizeSystemPath;
//
// We can now print to the console
//
TuiPrintf("%s for ARM\n", GetFreeLoaderVersionString());
- TuiPrintf("Bootargs: %s\n", CommandLine);
+ TuiPrintf("Bootargs: %s\n\n", CommandLine);
}
diff --git a/reactos/boot/freeldr/freeldr/arch/arm/omapuart.c b/reactos/boot/freeldr/freeldr/arch/arm/omapuart.c
deleted file mode 100644
index f8b89f88445..00000000000
--- a/reactos/boot/freeldr/freeldr/arch/arm/omapuart.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * PROJECT: ReactOS Boot Loader
- * LICENSE: BSD - See COPYING.ARM in the top level directory
- * FILE: boot/freeldr/arch/arm/omapuart.c
- * PURPOSE: Implements code for TI OMAP3 boards using the 16550 UART
- * PROGRAMMERS: ReactOS Portable Systems Group
- */
-
-/* INCLUDES *******************************************************************/
-
-#include
-
-/* GLOBALS ********************************************************************/
-
-//
-// UART Registers
-//
-#define UART0_RHR (ArmBoardBlock->UartRegisterBase + 0x00)
-#define UART0_THR UART0_RHR
-#define UART0_IER (ArmBoardBlock->UartRegisterBase + 0x04)
-#define UART0_FCR (ArmBoardBlock->UartRegisterBase + 0x08)
-#define UART0_LCR (ArmBoardBlock->UartRegisterBase + 0x0C)
-#define UART0_MCR (ArmBoardBlock->UartRegisterBase + 0x10)
-#define UART0_LSR (ArmBoardBlock->UartRegisterBase + 0x14)
-#define UART0_MDR1 (ArmBoardBlock->UartRegisterBase + 0x20)
-
-//
-// When we enable the divisor latch
-//
-#define UART0_DLL UART0_RHR
-#define UART0_DLH UART0_IER
-
-//
-// FCR Values
-//
-#define FCR_FIFO_EN 0x01
-#define FCR_RXSR 0x02
-#define FCR_TXSR 0x04
-
-//
-// LCR Values
-//
-#define LCR_WLS_8 0x03
-#define LCR_1_STB 0x00
-#define LCR_DIVL_EN 0x80
-#define LCR_NO_PAR 0x00
-
-//
-// LSR Values
-//
-#define LSR_DR 0x01
-#define LSR_THRE 0x20
-
-//
-// MCR Values
-//
-#define MCR_DTR 0x01
-#define MCR_RTS 0x02
-
-//
-// MDR1 Modes
-//
-#define MDR1_UART16X 1
-#define MDR1_SIR 2
-#define MDR1_UART16X_AUTO_BAUD 3
-#define MDR1_UART13X 4
-#define MDR1_MIR 5
-#define MDR1_FIR 6
-#define MDR1_CIR 7
-#define MDR1_DISABLE 8
-
-/* FUNCTIONS ******************************************************************/
-
-VOID
-ArmOmap3SerialInit(IN ULONG Baudrate)
-{
- ULONG BaudClock;
-
- //
- // Calculate baudrate clock divider to set the baud rate
- //
- BaudClock = (ArmBoardBlock->ClockRate / 16) / Baudrate;
-
- //
- // Disable serial port
- //
- WRITE_REGISTER_UCHAR(UART0_MDR1, MDR1_DISABLE);
-
- //
- // Disable interrupts
- //
- WRITE_REGISTER_UCHAR(UART0_IER, 0);
-
- //
- // Set the baud rate to 115200 bps
- //
- WRITE_REGISTER_UCHAR(UART0_LCR, LCR_DIVL_EN);
- WRITE_REGISTER_UCHAR(UART0_DLL, BaudClock);
- WRITE_REGISTER_UCHAR(UART0_DLH, (BaudClock >> 8) & 0xFF);
-
- //
- // Setup loopback
- //
- WRITE_REGISTER_UCHAR(UART0_MCR, MCR_DTR | MCR_RTS);
-
- //
- // Set 8 bits for data, 1 stop bit, no parity
- //
- WRITE_REGISTER_UCHAR(UART0_LCR, LCR_WLS_8 | LCR_1_STB | LCR_NO_PAR);
-
- //
- // Clear and enable FIFO
- //
- WRITE_REGISTER_UCHAR(UART0_FCR, FCR_FIFO_EN | FCR_RXSR | FCR_TXSR);
-
- //
- // Enable serial port
- //
- WRITE_REGISTER_UCHAR(UART0_MDR1, MDR1_UART16X);
-}
-
-VOID
-ArmOmap3PutChar(IN INT Char)
-{
- //
- // Properly support new-lines
- //
- if (Char == '\n') ArmOmap3PutChar('\r');
-
- //
- // Wait for ready
- //
- while ((READ_REGISTER_UCHAR(UART0_LSR) & LSR_THRE) == 0);
-
- //
- // Send the character
- //
- WRITE_REGISTER_UCHAR(UART0_THR, Char);
-}
-
-INT
-ArmOmap3GetCh(VOID)
-{
- //
- // Wait for ready
- //
- while ((READ_REGISTER_UCHAR(UART0_LSR) & LSR_DR) == 0);
-
- //
- // Read the character
- //
- return READ_REGISTER_UCHAR(UART0_RHR);
-}
-
-BOOLEAN
-ArmOmap3KbHit(VOID)
-{
- //
- // Return if something is ready
- //
- return ((READ_REGISTER_UCHAR(UART0_LSR) & LSR_DR) != 0);
-}
diff --git a/reactos/boot/freeldr/freeldr/arch/arm/versuart.c b/reactos/boot/freeldr/freeldr/arch/arm/versuart.c
deleted file mode 100644
index 36d483088c0..00000000000
--- a/reactos/boot/freeldr/freeldr/arch/arm/versuart.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * PROJECT: ReactOS Boot Loader
- * LICENSE: BSD - See COPYING.ARM in the top level directory
- * FILE: boot/freeldr/arch/arm/versuart.c
- * PURPOSE: Implements code for Versatile boards using the PL011 UART
- * PROGRAMMERS: ReactOS Portable Systems Group
- */
-
-/* INCLUDES *******************************************************************/
-
-#include
-
-/* GLOBALS ********************************************************************/
-
-//
-// UART Registers
-//
-#define UART_PL01x_DR (ArmBoardBlock->UartRegisterBase + 0x00)
-#define UART_PL01x_RSR (ArmBoardBlock->UartRegisterBase + 0x04)
-#define UART_PL01x_ECR (ArmBoardBlock->UartRegisterBase + 0x04)
-#define UART_PL01x_FR (ArmBoardBlock->UartRegisterBase + 0x18)
-#define UART_PL011_IBRD (ArmBoardBlock->UartRegisterBase + 0x24)
-#define UART_PL011_FBRD (ArmBoardBlock->UartRegisterBase + 0x28)
-#define UART_PL011_LCRH (ArmBoardBlock->UartRegisterBase + 0x2C)
-#define UART_PL011_CR (ArmBoardBlock->UartRegisterBase + 0x30)
-#define UART_PL011_IMSC (ArmBoardBlock->UartRegisterBase + 0x38)
-
-//
-// LCR Values
-//
-#define UART_PL011_LCRH_WLEN_8 0x60
-#define UART_PL011_LCRH_FEN 0x10
-
-//
-// FCR Values
-//
-#define UART_PL011_CR_UARTEN 0x01
-#define UART_PL011_CR_TXE 0x100
-#define UART_PL011_CR_RXE 0x200
-
-//
-// LSR Values
-//
-#define UART_PL01x_FR_RXFE 0x10
-#define UART_PL01x_FR_TXFF 0x20
-
-/* FUNCTIONS ******************************************************************/
-
-VOID
-ArmVersaSerialInit(IN ULONG Baudrate)
-{
- ULONG Divider, Remainder, Fraction;
-
- //
- // Calculate baudrate clock divider and remainder
- //
- Divider = ArmBoardBlock->ClockRate / (16 * Baudrate);
- Remainder = ArmBoardBlock->ClockRate % (16 * Baudrate);
-
- //
- // Calculate the fractional part
- //
- Fraction = (8 * Remainder / Baudrate) >> 1;
- Fraction += (8 * Remainder / Baudrate) & 1;
-
- //
- // Disable interrupts
- //
- WRITE_REGISTER_ULONG(UART_PL011_CR, 0);
-
- //
- // Set the baud rate to 115200 bps
- //
- WRITE_REGISTER_ULONG(UART_PL011_IBRD, Divider);
- WRITE_REGISTER_ULONG(UART_PL011_FBRD, Fraction);
-
- //
- // Set 8 bits for data, 1 stop bit, no parity, FIFO enabled
- //
- WRITE_REGISTER_ULONG(UART_PL011_LCRH,
- UART_PL011_LCRH_WLEN_8 | UART_PL011_LCRH_FEN);
-
- //
- // Clear and enable FIFO
- //
- WRITE_REGISTER_ULONG(UART_PL011_CR,
- UART_PL011_CR_UARTEN |
- UART_PL011_CR_TXE |
- UART_PL011_CR_RXE);
-}
-
-VOID
-ArmVersaPutChar(IN INT Char)
-{
- //
- // Properly support new-lines
- //
- if (Char == '\n') ArmVersaPutChar('\r');
-
- //
- // Wait for ready
- //
- while ((READ_REGISTER_ULONG(UART_PL01x_FR) & UART_PL01x_FR_TXFF) != 0);
-
- //
- // Send the character
- //
- WRITE_REGISTER_ULONG(UART_PL01x_DR, Char);
-}
-
-INT
-ArmVersaGetCh(VOID)
-{
- //
- // Wait for ready
- //
- while ((READ_REGISTER_ULONG(UART_PL01x_FR) & UART_PL01x_FR_RXFE) != 0);
-
- //
- // Read the character
- //
- return READ_REGISTER_ULONG(UART_PL01x_DR);
-}
-
-BOOLEAN
-ArmVersaKbHit(VOID)
-{
- //
- // Return if something is ready
- //
- return ((READ_REGISTER_ULONG(UART_PL01x_FR) & UART_PL01x_FR_RXFE) == 0);
-}
diff --git a/reactos/boot/freeldr/freeldr/arch/i386/loader.c b/reactos/boot/freeldr/freeldr/arch/i386/loader.c
index 5217c780d4c..70ad27f2be0 100644
--- a/reactos/boot/freeldr/freeldr/arch/i386/loader.c
+++ b/reactos/boot/freeldr/freeldr/arch/i386/loader.c
@@ -28,8 +28,6 @@ extern PAGE_DIRECTORY_X86 startup_pagedirectory;
extern PAGE_DIRECTORY_X86 lowmem_pagetable;
extern PAGE_DIRECTORY_X86 kernel_pagetable;
extern PAGE_DIRECTORY_X86 apic_pagetable;
-extern PAGE_DIRECTORY_X86 kpcr_pagetable;
-extern PAGE_DIRECTORY_X86 kuser_pagetable;
extern ULONG_PTR KernelBase;
extern ROS_KERNEL_ENTRY_POINT KernelEntryPoint;
diff --git a/reactos/boot/freeldr/freeldr/arch/i386/mb.S b/reactos/boot/freeldr/freeldr/arch/i386/mb.S
index fd18efc4be0..3b36d179053 100644
--- a/reactos/boot/freeldr/freeldr/arch/i386/mb.S
+++ b/reactos/boot/freeldr/freeldr/arch/i386/mb.S
@@ -35,8 +35,6 @@
.globl _lowmem_pagetable
.globl _kernel_pagetable
.globl _apic_pagetable
- .globl _kpcr_pagetable
- .globl _kuser_pagetable
.globl _PageDirectoryEnd
@@ -66,10 +64,4 @@ _kernel_pagetable:
_apic_pagetable:
.fill 4096, 1, 0
-_kpcr_pagetable:
- .fill 4096, 1, 0
-
-_kuser_pagetable:
- .fill 4096, 1, 0
-
_PageDirectoryEnd:
diff --git a/reactos/boot/freeldr/freeldr/cmdline.c b/reactos/boot/freeldr/freeldr/cmdline.c
index a1ce65c5f2d..7032457da29 100644
--- a/reactos/boot/freeldr/freeldr/cmdline.c
+++ b/reactos/boot/freeldr/freeldr/cmdline.c
@@ -21,7 +21,7 @@ VOID
CmdLineParse(IN PCHAR CmdLine)
{
PCHAR End, Setting;
- ULONG Length;
+ ULONG Length, Offset = 0;
//
// Set defaults
@@ -76,6 +76,21 @@ CmdLineParse(IN PCHAR CmdLine)
sizeof(ANSI_NULL),
NULL,
0);
+
+ //
+ // Get ramdisk offset
+ //
+ Setting = strstr(CmdLine, "rdoffset=");
+ if (Setting) Offset = strtoul(Setting +
+ sizeof("rdoffset=") -
+ sizeof(ANSI_NULL),
+ NULL,
+ 0);
+
+ //
+ // Fix it up
+ //
+ gRamDiskBase = (PVOID)((ULONG_PTR)gRamDiskBase + Offset);
}
PCCH
diff --git a/reactos/boot/freeldr/freeldr/disk/ramdisk.c b/reactos/boot/freeldr/freeldr/disk/ramdisk.c
index 18397d6e962..fadf34182c3 100644
--- a/reactos/boot/freeldr/freeldr/disk/ramdisk.c
+++ b/reactos/boot/freeldr/freeldr/disk/ramdisk.c
@@ -108,6 +108,14 @@ static const DEVVTBL RamDiskVtbl = {
RamDiskSeek,
};
+VOID
+NTAPI
+RamDiskInitialize(VOID)
+{
+ /* Setup the RAMDISK device */
+ FsRegisterDevice("ramdisk(0)", &RamDiskVtbl);
+}
+
VOID
NTAPI
RamDiskLoadVirtualFile(IN PCHAR FileName)
diff --git a/reactos/boot/freeldr/freeldr/freeldr.rbuild b/reactos/boot/freeldr/freeldr/freeldr.rbuild
index 959951862ae..dc83aaa9878 100644
--- a/reactos/boot/freeldr/freeldr/freeldr.rbuild
+++ b/reactos/boot/freeldr/freeldr/freeldr.rbuild
@@ -32,8 +32,14 @@
rtl
libcntpr
+ -static
-lgcc
- -Wl,--image-base=0x80FFF000
+
+ -Wl,--image-base=0x80FFF000
+
+
+ -Wl,--image-base=0x0001F000
+
diff --git a/reactos/boot/freeldr/freeldr/freeldr_arch.rbuild b/reactos/boot/freeldr/freeldr/freeldr_arch.rbuild
index b08d2585e9e..8d8287bba5d 100644
--- a/reactos/boot/freeldr/freeldr/freeldr_arch.rbuild
+++ b/reactos/boot/freeldr/freeldr/freeldr_arch.rbuild
@@ -73,11 +73,8 @@
boot.s
- ferouart.c
loader.c
macharm.c
- omapuart.c
- versuart.c
diff --git a/reactos/boot/freeldr/freeldr/include/arch.h b/reactos/boot/freeldr/freeldr/include/arch.h
index 7e924becfe7..c3e3c45c307 100644
--- a/reactos/boot/freeldr/freeldr/include/arch.h
+++ b/reactos/boot/freeldr/freeldr/include/arch.h
@@ -47,9 +47,13 @@
#define FILESYSBUFFER 0x80000 /* Buffer to store file system data (e.g. cluster buffer for FAT) */
#define DISKREADBUFFER 0x90000 /* Buffer to store data read in from the disk via the BIOS */
#define DISKREADBUFFER_SIZE 512
-#elif defined(_M_PPC) || defined(_M_MIPS) || defined(_M_ARM)
+#elif defined(_M_PPC) || defined(_M_MIPS)
#define DISKREADBUFFER 0x80000000
#define FILESYSBUFFER 0x80000000
+#elif defined(_M_ARM)
+extern ULONG gDiskReadBuffer, gFileSysBuffer;
+#define DISKREADBUFFER gDiskReadBuffer
+#define FILESYSBUFFER gFileSysBuffer
#endif
/* Makes "x" a global variable or label */
diff --git a/reactos/boot/freeldr/freeldr/include/arch/arm/hardware.h b/reactos/boot/freeldr/freeldr/include/arch/arm/hardware.h
index 7d6fae69945..c09d5bfed4a 100644
--- a/reactos/boot/freeldr/freeldr/include/arch/arm/hardware.h
+++ b/reactos/boot/freeldr/freeldr/include/arch/arm/hardware.h
@@ -13,41 +13,8 @@
#include "../../reactos/registry.h"
#endif
-//
-// Marvell Feroceon-based SoC:
-// Buffalo Linkstation, KuroBox Pro, D-Link DS323 and others
-//
-#define MACH_TYPE_FEROCEON 526
-
-//
-// ARM Versatile PB:
-// qemu-system-arm -M versatilepb, RealView Development Boards and others
-//
-#define MACH_TYPE_VERSATILE_PB 387
-
-//
-// TI Beagle Board, OMAP3530 SoC
-// qemu-system-arm -M beagle, Beagle Board
-//
-#define MACH_TYPE_OMAP3_BEAGLE 1546
-
-//
-// Compatible boot-loaders should return us this information
-//
-#define ARM_BOARD_CONFIGURATION_MAJOR_VERSION 1
-#define ARM_BOARD_CONFIGURATION_MINOR_VERSION 1
-typedef struct _ARM_BOARD_CONFIGURATION_BLOCK
-{
- ULONG MajorVersion;
- ULONG MinorVersion;
- ULONG BoardType;
- ULONG ClockRate;
- ULONG TimerRegisterBase;
- ULONG UartRegisterBase;
- ULONG MemoryMapEntryCount;
- PBIOS_MEMORY_MAP MemoryMap;
- CHAR CommandLine[256];
-} ARM_BOARD_CONFIGURATION_BLOCK, *PARM_BOARD_CONFIGURATION_BLOCK;
+#include "../../../../../armllb/inc/osloader.h"
+#include "../../../../../armllb/inc/machtype.h"
//
// Static heap for ARC Hardware Component Tree
@@ -79,42 +46,6 @@ FldrCreateComponentKey(
OUT PCONFIGURATION_COMPONENT_DATA *ComponentKey
);
-VOID
-ArmFeroSerialInit(IN ULONG Baudrate);
-
-VOID
-ArmFeroPutChar(IN INT Char);
-
-INT
-ArmFeroGetCh(VOID);
-
-BOOLEAN
-ArmFeroKbHit(VOID);
-
-VOID
-ArmOmap3SerialInit(IN ULONG Baudrate);
-
-VOID
-ArmOmap3PutChar(IN INT Char);
-
-INT
-ArmOmap3GetCh(VOID);
-
-BOOLEAN
-ArmOmap3KbHit(VOID);
-
-VOID
-ArmVersaSerialInit(IN ULONG Baudrate);
-
-VOID
-ArmVersaPutChar(IN INT Char);
-
-INT
-ArmVersaGetCh(VOID);
-
-BOOLEAN
-ArmVersaKbHit(VOID);
-
extern PARM_BOARD_CONFIGURATION_BLOCK ArmBoardBlock;
#endif
diff --git a/reactos/boot/freeldr/freeldr/include/ramdisk.h b/reactos/boot/freeldr/freeldr/include/ramdisk.h
index f8338eea396..c77c09e6876 100644
--- a/reactos/boot/freeldr/freeldr/include/ramdisk.h
+++ b/reactos/boot/freeldr/freeldr/include/ramdisk.h
@@ -18,6 +18,12 @@ RamDiskLoadVirtualFile(
IN PCHAR FileName
);
+VOID
+NTAPI
+RamDiskInitialize(
+ VOID
+);
+
extern PVOID gRamDiskBase;
extern ULONG gRamDiskSize;
diff --git a/reactos/boot/freeldr/freeldr/ui/tui.c b/reactos/boot/freeldr/freeldr/ui/tui.c
index 726eb80489a..d0016f463a8 100644
--- a/reactos/boot/freeldr/freeldr/ui/tui.c
+++ b/reactos/boot/freeldr/freeldr/ui/tui.c
@@ -325,8 +325,13 @@ VOID TuiDrawText(ULONG X, ULONG Y, PCSTR Text, UCHAR Attr)
// Draw the text
for (i=X, j=0; Text[j] && i
-
+