Merge trunk head (r45466)

svn path=/branches/ros-amd64-bringup/; revision=45467
This commit is contained in:
Timo Kreuzer
2010-02-06 20:36:45 +00:00
267 changed files with 14493 additions and 10273 deletions
+103 -42
View File
@@ -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
+1 -11
View File
@@ -111,17 +111,7 @@
<xi:include href="ntoskrnl/ntoskrnl.rbuild" />
</directory>
<directory name="hal">
<directory name="halarm">
<directory name="generic">
<xi:include href="hal/halarm/generic/generic.rbuild" />
</directory>
<directory name="up">
<xi:include href="hal/halarm/up/halup.rbuild" />
</directory>
</directory>
<directory name="hal">
<xi:include href="hal/hal/hal.rbuild" />
</directory>
<xi:include href="hal/hal.rbuild" />
</directory>
<directory name="boot">
<xi:include href="boot/boot.rbuild" />
@@ -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
@@ -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
+1
View File
@@ -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"
@@ -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
@@ -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 */
@@ -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
@@ -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"
@@ -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
@@ -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
@@ -14,7 +14,7 @@ BEGIN
BEGIN
MENUITEM "&Åêñïîðò...", ID_EXPORT
MENUITEM SEPARATOR
MENUITEM "Â&èõ³ä", ID_EXIT
MENUITEM "&Âèõ³ä", ID_EXIT
END
POPUP "ijÿ"
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 "<No Dependencies>"
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
+23 -23
View File
@@ -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
@@ -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
@@ -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!"
+28 -28
View File
@@ -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
+12 -12
View File
@@ -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
@@ -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
@@ -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"
@@ -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
@@ -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 |
+18 -2
View File
@@ -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;
}
+5 -5
View File
@@ -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
File diff suppressed because it is too large Load Diff
+41 -41
View File
@@ -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
+166 -31
View File
@@ -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 <stdlib.h>
#define WIN32_LEAN_AND_MEAN
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <lzexpand.h>
#include <tchar.h>
#include <setupapi.h>
#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;
}
+1 -1
View File
@@ -3,8 +3,8 @@
<module name="expand" type="win32cui" installbase="system32" installname="expand.exe" >
<include base="ReactOS">include/reactos/wine</include>
<include base="expand">.</include>
<define name="ANONYMOUSUNIONS" />
<library>lz32</library>
<library>setupapi</library>
<library>user32</library>
<file>expand.c</file>
<file>expand.rc</file>
-2
View File
@@ -3,5 +3,3 @@
#define REACTOS_STR_INTERNAL_NAME "expand\0"
#define REACTOS_STR_ORIGINAL_FILENAME "expand.exe\0"
#include <reactos/version.rc>
#include "rsrc.rc"
-16
View File
@@ -1,16 +0,0 @@
#include "resource.h"
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005 [email protected]
*/
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
-21
View File
@@ -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 [email protected]
*/
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
-16
View File
@@ -1,16 +0,0 @@
#include "resource.h"
/*
* Translated into German.
* By Rouven Wessling 2005 [email protected]
*/
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
-18
View File
@@ -1,18 +0,0 @@
#include "resource.h"
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005 [email protected]
* 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
-16
View File
@@ -1,16 +0,0 @@
#include "resource.h"
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005 [email protected]
*/
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
-16
View File
@@ -1,16 +0,0 @@
#include "resource.h"
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005 [email protected]
*/
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
-16
View File
@@ -1,16 +0,0 @@
#include "resource.h"
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005 [email protected]
*/
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
-17
View File
@@ -1,17 +0,0 @@
#include "resource.h"
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005 [email protected]
* Hungarian version is Copyright 2005 - Peter Nagy <[email protected]>
*/
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
-18
View File
@@ -1,18 +0,0 @@
/*
* Translated into Indonesian.
* By Zaenal Mutaqin 2007 [email protected]
*/
#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
-13
View File
@@ -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
-16
View File
@@ -1,16 +0,0 @@
#include "resource.h"
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005 [email protected]
*/
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "ReactOS File Expansion Utility Version 1.0\n\
Copyright Victor Schneider 1997\n\n\
使用法: %s 展開元ファイル [展開先ファイル]\n"
IDS_FAILS "LZCopy に失敗しました: 返り値は %ld です。\n"
END
-14
View File
@@ -1,14 +0,0 @@
/* Translation by Vytis 'CMan' Girdþijauskas [email protected] */
#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
-16
View File
@@ -1,16 +0,0 @@
#include "resource.h"
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005 [email protected]
*/
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
-17
View File
@@ -1,17 +0,0 @@
#include "resource.h"
/*
* translated by xrogers (http://rogers.cyberdusk.pl/)
* [email protected]
* 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
-16
View File
@@ -1,16 +0,0 @@
#include "resource.h"
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005 [email protected]
*/
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
-12
View File
@@ -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
-15
View File
@@ -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
-33
View File
@@ -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
-19
View File
@@ -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
-10
View File
@@ -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 */
-24
View File
@@ -1,24 +0,0 @@
#include <windows.h>
#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"
+25 -26
View File
@@ -37,43 +37,42 @@
#include <debug.h>
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 */
+19
View File
@@ -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
+1
View File
@@ -3,4 +3,5 @@
#include "lang/ja-JP.rc"
#include "lang/ru-RU.rc"
#include "lang/sk-SK.rc"
#include "lang/uk-UA.rc"
+137 -2
View File
@@ -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;
}
+65
View File
@@ -0,0 +1,65 @@
<?xml version="1.0"?>
<!DOCTYPE group SYSTEM "../../../tools/rbuild/project.dtd">
<group>
<module name="armllb" type="bootloader" installbase=".." installname="armllb.bin">
<bootstrap installbase="loader" />
<library>libcntpr</library>
<library>rtl</library>
<include base="armllb">./inc</include>
<if property="SARCH" value="omap3">
<define name="_OMAP3_" />
<group linkerset="ld">
<linkerflag>-Wl,--image-base=0x401FEFF8</linkerflag>
</group>
</if>
<if property="SARCH" value="versatile">
<define name="_VERSATILE_" />
<group linkerset="ld">
<linkerflag>-Wl,--image-base=0xF000</linkerflag>
</group>
</if>
<file first="true">boot.s</file>
<file>main.c</file>
<file>crtsupp.c</file>
<file>envir.c</file>
<file>fw.c</file>
<directory name="hw">
<file>keyboard.c</file>
<file>serial.c</file>
<file>time.c</file>
<file>video.c</file>
<if property="SARCH" value="omap3">
<directory name="omap3">
<file>hwdata.c</file>
<file>hwdss.c</file>
<file>hwuart.c</file>
<file>hwinfo.c</file>
<file<hwinit.c</file>
</directory>
</if>
<if property="SARCH" value="versatile">
<directory name="versatile">
<file>hwclcd.c</file>
<file>hwkmi.c</file>
<file>hwuart.c</file>
<file>hwinfo.c</file>
<file>hwinit.c</file>
</directory>
</if>
</directory>
<directory name="os">
<file>loader.c</file>
</directory>
<group compilerset="gcc">
<compilerflag>-fms-extensions</compilerflag>
<compilerflag>-ffreestanding</compilerflag>
<compilerflag>-fno-builtin</compilerflag>
<compilerflag>-fno-inline</compilerflag>
<compilerflag>-fno-zero-initialized-in-bss</compilerflag>
<compilerflag>-Os</compilerflag>
</group>
<group linkerset="ld">
<linkerflag>-lgcc</linkerflag>
</group>
</module>
</group>
+39
View File
@@ -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 */
+57
View File
@@ -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 */
+149
View File
@@ -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 */
+181
View File
@@ -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 */
+242
View File
@@ -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 */
+78
View File
@@ -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 */
+18
View File
@@ -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 */
+25
View File
@@ -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 */
+91
View File
@@ -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 */
+77
View File
@@ -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 */
+109
View File
@@ -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 */
+54
View File
@@ -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 */
+133
View File
@@ -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 */
+115
View File
@@ -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 */
+380
View File
@@ -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 */
+88
View File
@@ -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 */
+112
View File
@@ -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 */
+132
View File
@@ -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 */
+15
View File
@@ -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 */
+27
View File
@@ -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 */
+113
View File
@@ -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 */
+27
View File
@@ -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 */
+15
View File
@@ -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 */
+27
View File
@@ -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 */
+30
View File
@@ -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 */
+36
View File
@@ -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 */
+150
View File
@@ -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 */
+5
View File
@@ -4,6 +4,11 @@
<directory name="freeldr">
<xi:include href="freeldr/freeldr.rbuild" />
</directory>
<if property="ARCH" value="arm">
<directory name="armllb">
<xi:include href="armllb/armllb.rbuild" />
</directory>
</if>
<directory name="bootdata">
<xi:include href="bootdata/bootdata.rbuild" />
</directory>
+4 -4
View File
@@ -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
+3 -3
View File
@@ -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 ([email protected])",
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
+1 -3
View File
@@ -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*
+14 -122
View File
@@ -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:
@@ -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 <freeldr.h>
/* 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);
}
+81 -29
View File
@@ -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)
//
//
+58 -54
View File
@@ -9,6 +9,7 @@
/* INCLUDES *******************************************************************/
#include <freeldr.h>
#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);
}
@@ -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 <freeldr.h>
/* 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);
}
@@ -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 <freeldr.h>
/* 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);
}
@@ -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;
@@ -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:
+16 -1
View File
@@ -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
@@ -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)
+7 -1
View File
@@ -32,8 +32,14 @@
<library>rtl</library>
<library>libcntpr</library>
<group linkerset="ld">
<linkerflag>-static</linkerflag>
<linkerflag>-lgcc</linkerflag>
<linkerflag>-Wl,--image-base=0x80FFF000</linkerflag>
<if property="SARCH" value="omap3">
<linkerflag>-Wl,--image-base=0x80FFF000</linkerflag>
</if>
<if property="SARCH" value="versatile">
<linkerflag>-Wl,--image-base=0x0001F000</linkerflag>
</if>
</group>
</module>
</if>
@@ -73,11 +73,8 @@
<directory name="arm">
<if property="ARCH" value="arm">
<file first="true">boot.s</file>
<file>ferouart.c</file>
<file>loader.c</file>
<file>macharm.c</file>
<file>omapuart.c</file>
<file>versuart.c</file>
</if>
</directory>
+5 -1
View File
@@ -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 */
@@ -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
@@ -18,6 +18,12 @@ RamDiskLoadVirtualFile(
IN PCHAR FileName
);
VOID
NTAPI
RamDiskInitialize(
VOID
);
extern PVOID gRamDiskBase;
extern ULONG gRamDiskSize;

Some files were not shown because too many files have changed in this diff Show More