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" + "‡­ ©¤Ґ­® пЄ ¬i­i¬г¬ ®¤Ё­ ¦®абвЄЁ© ¤ЁбЄ, й® ¬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" + "ЌҐ ў¤ «®бм i­iж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 - +