Index: unk/license.txt
===================================================================
--- /trunk/license.txt	(revision 625)
+++ 	(revision )
@@ -1,339 +1,0 @@
-                    GNU GENERAL PUBLIC LICENSE
-                       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                            Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-                    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-                            NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-                     END OF TERMS AND CONDITIONS
-
-            How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    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.
-
-    This 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.
-
-    You 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.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
Index: ki/Benchmark.wiki
===================================================================
--- /wiki/Benchmark.wiki	(revision 625)
+++ 	(revision )
@@ -1,13 +1,0 @@
-#summary XTIDE Universal BIOS results with DOS Disk Tester.
-#labels Featured
-
-= Introduction =
-
-XTIDE Universal BIOS results with [http://vintage-blog.peacon.co.uk/wiki/DOS_Disk_Tester DOS Disk Tester] (disktest.exe).
-
-
-||Drive Name||Capacity||Drive Type||PC||Controller||XTIDE Universal BIOS||OS||Buffers||Partition||[http://www.lo-tech.co.uk/wiki/DOS_Disk_Tester DiskTest]||Write Speed (KB/s)||Read Speed (KB/s)||8k random, 70% read (IOPS)||Sector random read (IOPS)||Access Time (ms)||Comments||
-||Hitachi HMS360606D5CF00||6 GB||Microdrive||IBM 5150 (8088 @ 4.77 MHz)||XTIDE rev1||v2.0.0β1||MS-DOS 6.22||Default||2 GB FAT-16||1.7||77.52||134.12||10.6||26.8||37||||
-||Hitachi HMS360606D5CF00||6 GB||Microdrive||IBM 5150 (8088 @ 4.77 MHz)||XTIDE rev1 with Chuck Mod||v2.0.0β1||MS-DOS 6.22||Default||2 GB FAT-16||1.7||127.48||241.37||13.5||26.9||37||||
-||Magicstor GS10040A-11 47||4 GB||Microdrive||IBM 5150 (8088 @ 4.77 MHz)||XTIDE rev1 with Chuck Mod||v2.0.0β1||-||Default||-||-||-||-||-||-||-||Incompatible with IBM 5150/5160 and XTIDE (rev 1 and 2)||
-||SAMSUNG SP1634N||160 GB||Hard Drive||486DX4 100 MHz||QDI Vision QD6580 (VLB)||SVN r417||FreeDOS Ripcord Boot Disk (Jan 2012)||Default||16 GB FAT-32||2.3||1222.69||8192.00||72.9||272.3||4||||
Index: ki/BuildInstructions.wiki
===================================================================
--- /wiki/BuildInstructions.wiki	(revision 625)
+++ 	(revision )
@@ -1,237 +1,0 @@
-#summary How to build XTIDE Universal BIOS.
-*Table of Contents*
-<wiki:toc max_depth="4" />
-----
-= Introduction =
-
-This is a small tutorial on how to build XTIDE Universal BIOS on Windows. This tutorial is updated for XTIDE Universal BIOS v2.0.0 beta 3.
-
-
-= Programs needed =
-
-  * [http://tortoisesvn.tigris.org/ TortoiseSVN] (or any SVN client)
-  * [http://tdm-gcc.tdragon.net/ MinGW] (only mingw32-make.exe is needed)
-  * [http://www.nasm.us/ NASM]
-  * [http://upx.sourceforge.net/ UPX] (optional)
-  * [http://strawberryperl.com/ Strawperry Perl] (optional)
-
-
-----
-= Install Tortoise SVN =
-
-TortoiseSVN is a subversion client that is very easy to use since it integrates nicely to Windows. It is used to download XTIDE Universal BIOS sources. Anyone can download sources from coogle.code repository but you must be a project member to commit changes back to the repository.
-
-First [http://tortoisesvn.net/downloads.html download and install TortoiseSVN]. You can use the default settings that the installer suggests. Next you need to create folder where you want to download the sources. We name the folder _XTIDE Universal BIOS sources_ in this example.
-
-== Downloading sources ==
-
-Once the directory is created, open it and click right mouse button. You will find _SVN Checkout..._ from the menu.
-https://xtideuniversalbios.googlecode.com/svn/wiki/pictures/TortoiseMenu.png
-
-URL for the repository is http://xtideuniversalbios.googlecode.com/svn/trunk/. There is no need to alter other settings so just click OK. You have now downloaded all sources from XTIDE Universal BIOS project.
-https://xtideuniversalbios.googlecode.com/svn/wiki/pictures/SvnCheckout.png
-
-
-== Updating sources ==
-
-If you have already done all above and want to get latest sources, go to the source folder you have created. Click right mouse button and select _SVN Update_. Using TortoiseSVN is really this easy!
-
-
-
-= Install MinGW =
-
-MinGW is a free C/C++ compiler suite for Windows. We only need make utility from it but installing the whole MinGW is easier since it will add path to the environment variables automatically. Download the bundle installer ([http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.6.1.exe/download tdm-gcc-4.6.1.exe] when writing this) and install it with default settings. It will install the MinGW to C:\MinGW32. Keep this in mind since you'll want to install NASM to C:\MinGW32\bin so there will be no need to change environment path.
-
-
-
-= Install NASM =
-
-NASM is the assembler that is used to compile the sources. NASM v2.10 stable is what we are using when writing this. Download the [http://www.nasm.us/pub/nasm/releasebuilds/2.10/win32/nasm-2.10-win32.zip nasm-2.10-win32.zip] and extract nasm.exe to C:\MinGW32\bin (if you installed MinGW to C:\MinGW32\).
-
-
-
-= Install UPX (optional) =
-
-UPX is used to compress XTIDE Universal BIOS configurator. It is needed only for release build. The only advantage is that it makes the executable size smaller.
-
-
-
-= Install Strawberry Perl (optional) =
-
-Strawberry Perl is required to execute optional scripts when building XTIDE Universal BIOS. Scripts include string compression (not needed unless you modify the sources) and checksum calculation. Just run the Strawberry Perl installer with default settings.
-
-
-----
-= Building XTIDE Universal BIOS =
-
-Open command line window and go to the folder where you downloaded the sources with TortoiseSVN. Then go to the _XTIDE_Universal_BIOS_ folder. Write _mingw32-make all_ and everything should be build.
-
-You might want to write _mingw32-make checksum_ if you installed Stawberry Perl. It will calculate checksum bytes to the binaries (You can use XTIDECFG.COM for that if you don't want to install Stawberry Perl).
-
-You will find the binaries in _build\_ folder.
-
-
-== Including and excluding optional modules ==
-
-There are many optional modules (most of them are included in official release builds). Reason for modules is simple: it is not possible to get all features to fit in 8k ROM. Official builds are designed so that they include the features most users prefer.
-
-It is easy to include and exclude modules but it must be done by editing makefile. Makefile specifies how the binaries are build when you execute _mingw32-make_.
-
-Open makefile with Windows Notepad (or [http://notepad-plus-plus.org/ Notepad++]). You will now see all the modules and short description about them. The makefile looks like below for XTIDE Universal BIOS v2.0.0 beta 3:
-{{{
-####################################################################################################
-# Makefile to build XTIDE Universal BIOS.                                                          #
-#                                                                                                  #
-# Valid makefile targets are:                                                                      #
-# all       Removes existing files and builds binary files in \Build                               #
-# small     Builds 8 kiB binaries only (without checksum)                                          #
-# large     Builds 12 kiB binaries only (without checksum)                                         #
-# clean     Removes all files from \Build                                                          #
-# checksum* Builds all and then generates checksum byte to all binary files                        #
-# strings*  Compress src\Strings.asm to src\StringsCompressed.asm                                  #
-# unused*   Checks if there are any unused functions that can be removed to save space             #
-#                                                                                                  #
-# * at the end of target name means that Perl is required for the job.                             #
-# Build directory must be created manually if it does not exist.                                   #
-#                                                                                                  #
-#                                                                                                  #
-# Following modules can be included or excluded:                                                   #
-# MODULE_8BIT_IDE             Support for 8-BIT IDE cards like XTIDE                               #
-# MODULE_8BIT_IDE_ADVANCED    Support for memory mapped and DMA based cards like JRIDE and XTCF    #
-# MODULE_ADVANCED_ATA         Native support for some VLB IDE controllers                          #
-# MODULE_BOOT_MENU            Boot Menu for selection of drive to boot from                        #
-# MODULE_EBIOS                Enhanced functions for accessing drives over 8.4 GB                  #
-# MODULE_HOTKEYS              Hotkey Bar to boot from any drive                                    #
-# MODULE_IRQ                  IDE IRQ support                                                      #
-# MODULE_SERIAL               Virtual hard disks using serial port                                 #
-# MODULE_SERIAL_FLOPPY        Virtual floppy drives using serial port (requires MODULE_SERIAL)     #
-# MODULE_STRINGS_COMPRESSED   Use compressed strings to save space                                 #
-# MODULE_FEATURE_SETS         Power Management support                                             #
-#                                                                                                  #
-# Not modules but these affect the assembly:                                                       #
-# ELIMINATE_CGA_SNOW          Prevents CGA snowing at the cost of a few bytes                      #
-# RELOCATE_INT13H_STACK       Relocates INT 13h stack to top of stolen conventional memory         #
-# RESERVE_DIAGNOSTIC_CYLINDER Reserve one L-CHS cylinder for compatibility with old BIOSes         #
-# USE_186                     Use instructions supported by 80188/80186 and V20/V30 and later      #
-# USE_286                     Use instructions supported by 286 and later (defines USE_UNDOC_INTEL)#
-# USE_386                     Use instructions supported by 386 and later (defines USE_286)        #
-# USE_AT                      Use features supported on AT and later systems (not available on XT) #
-# USE_UNDOC_INTEL             Optimizations for Intel CPU:s - do NOT use on NEC V20/V30/Sony CPU:s #
-#                                                                                                  #
-####################################################################################################
-}}}
-
-I'm sure there will be more modules in the future so always read up to date makefile for all available modules.
-
-Scroll down the makefile to find Assembler preprocessor defines and other variables:
-{{{
-#################################################################
-# Assembler preprocessor defines.                               #
-#################################################################
-DEFINES_COMMON = MODULE_STRINGS_COMPRESSED MODULE_HOTKEYS MODULE_8BIT_IDE MODULE_SERIAL MODULE_SERIAL_FLOPPY MODULE_EBIOS MODULE_FEATURE_SETS RESERVE_DIAGNOSTIC_CYLINDER
-DEFINES_COMMON_LARGE = MODULE_BOOT_MENU MODULE_8BIT_IDE_ADVANCED
-
-DEFINES_XT = $(DEFINES_COMMON) ELIMINATE_CGA_SNOW MODULE_8BIT_IDE_ADVANCED
-DEFINES_XTPLUS = $(DEFINES_COMMON) $(DEFINES_XT) USE_186
-DEFINES_AT = $(DEFINES_COMMON) USE_AT USE_286 RELOCATE_INT13H_STACK MODULE_IRQ MODULE_ADVANCED_ATA
-
-DEFINES_XT_LARGE = $(DEFINES_XT) $(DEFINES_COMMON_LARGE)
-DEFINES_XTPLUS_LARGE = $(DEFINES_XTPLUS) $(DEFINES_COMMON_LARGE)
-DEFINES_AT_LARGE = $(DEFINES_AT) $(DEFINES_COMMON_LARGE)
-
-DEFINES_XT_TINY = MODULE_STRINGS_COMPRESSED MODULE_8BIT_IDE
-DEFINES_386_8K = $(DEFINES_AT) USE_386
-
-DEFINES_ALL_FEATURES = MODULE_8BIT_IDE MODULE_8BIT_IDE_ADVANCED MODULE_ADVANCED_ATA MODULE_EBIOS MODULE_BOOT_MENU MODULE_HOTKEYS MODULE_IRQ MODULE_SERIAL MODULE_SERIAL_FLOPPY MODULE_STRINGS_COMPRESSED MODULE_FEATURE_SETS
-
-
-###################
-# Other variables #
-###################
-
-# Target size of the ROM, used in main.asm for number of 512B blocks and by checksum Perl script below
-BIOS_SIZE = 8192		# For BIOS header (use even multiplier!)
-ROMSIZE = $(BIOS_SIZE)	# Size of binary to build when building with make checksum
-BIOS_SIZE_LARGE = 12288
-ROMSIZE_LARGE = $(BIOS_SIZE_LARGE)
-}}}
-
-These are the only parts in the makefile that you need to edit. The defines tell what modules are included in what builds.
-
-DEFINES_COMMON define the modules that are included in all builds and DEFINES_COMMON_LARGE define additional modules for all large builds.
-
-DEFINES_XT, DEFINES_XTPLUS and DEFINES_AT define what modules are included in the 8k XT, XT+ and AT builds in addition to the ones in DEFINES_COMMON.
-
-DEFINES_XT_LARGE, DEFINES_XTPLUS_LARGE and DEFINES_AT_LARGE are for large builds (12k by default).
-
-Finally there are DEFINES_XT_TINY (XT build with minimal features) and DEFINES_386_8K (AT build for 386+).
-
-If you want to make your own 8k AT build, for example, modify DEFINES_COMMON and DEFINES_AT to include the modules you want. Then rebuild with _mingw32-make all_ or _mingw32-make checksum_.
-
-One more thing you might want to change is the size of large build. It is 12k by default (12288 bytes). If you want 16k binary, set ROMSIZE_LARGE to 16384. For 32k build set it to 32768.
-
-
-=== Module information ===
-
-====*MODULE_8BIT_IDE*====
-This module contains support for XTIDE rev 1 and 2 and Lo-tech XT-CF v2/v3/Lite PIO mode.
-
-====*MODULE_8BIT_IDE_ADVANCED* _(requires and automatically includes MODULE_8BIT_IDE)_====
-This module contains support for JR-IDE/ISA and more advanced modes for XT-CF v2.
-
-====*MODULE_ADVANCED_ATA*====
-Adds native support for VLB (and eventually PCI) IDE Controllers. At the moment there is support for QDI Vision QD6500 and QD6580 VLB IDE controllers.
-
-====*MODULE_EBIOS*====
-Support for Phoenix Enhanced Disk Drive Specification. Allows to access more than 8 GB but requires support from operating system (Windows 9x and later).
-
-====*MODULE_BOOT_MENU*====
-Boot menu displays drive details and allows selecting drive more easily but essentially it has all the same features as MODULE_HOTKEYS.  It can also be included without MODULE_HOTKEYS, in which case the menu is always entered during the boot process.
-
-====*MODULE_HOTKEYS*====
-Displays hotkeys during drive detections. Hotkeys allows boot drive selection, ROM Boot, Serial Drive Scanning and Boot Menu.
-
-====*MODULE_IRQ*====
-Adds IRQ support (you also need to enable IRQ with XTIDECFG.COM). IRQs have no real benefit for DOS (but can actually slow transfer rates a bit). You might want to use IRQs with more capable operating systems.
-
-====*MODULE_SERIAL*====
-Virtual hard disks using serial port. [http://code.google.com/p/xtideuniversalbios/wiki/SerialDrives Instructions for emulating Serial Drives with the XTIDE Universal BIOS]
-
-====*MODULE_SERIAL_FLOPPY* _(requires and automatically includes MODULE_SERIAL)_====
-Virtual floppy drives using serial port.
-
-====*MODULE_STRINGS_COMPRESSED*====
-Use compressed strings to save space. This module should be always included.
-
-====*MODULE_FEATURE_SETS*====
-Power Management support (you also need to enable it with XTIDECFG.COM).
-
-
-=== Other features that affect assembly ===
-
-====*ELIMINATE_CGA_SNOW*====
-Prevents CGA snowing at the cost of a few bytes.
-
-====*RELOCATE_INT13H_STACK*====
-Relocates INT 13h stack to top of stolen conventional memory. Has no noticeable performance penalty for AT systems but might slow down XT systems. If you include this to XT builds, make sure that Full Operating Mode is enabled with XTIDECFG.COM. Otherwise stack won't be relocated.
-
-====*RESERVE_DIAGNOSTIC_CYLINDER*====
-Old BIOSes reserve one diagnostic cylinder that is not used for anything. Do not include this if you have use for one extra cylinder. Note that this can cause compatibility problems if you move drives between different systems.
-
-====*USE_186, USE_286 and USE_386*====
-Determines what CPU instructions are allowed. USE_186 limits instructions to those supported by 80188/80186 and NEC V20/V30. USE_286 limits instructions for 286 compatible code and USE_386 limits instructions for 386 compatible code. XTIDE Universal BIOS uses macros that emulate the missing instructions when necessary. Do not use any of the mentioned preprocessor directives if you want to generate 8088/8086 compatible code.
-
-====*USE_UNDOC_INTEL*====
-Allows to use undocumented Intel opcodes that are not supported by NEC V20/V30. This is defined automatically when USE_286 or USE_386 is defined.
-
-====*USE_AT*====
-Assembles code targeted for AT systems. For example AT builds always operate in full operating mode. Another difference is that AT builds use some BIOS functions that are not available on XT systems.
-
-----
-= Building Configurator (XTIDECFG.COM) =
-
-You should always use up to date configurator but note that configurator usually lags behind XTIDE Universal BIOS when new features are concerned.
-
-Go to _XTIDE_Universal_BIOS_Configurator_v2_ folder and write _mingw32-make all_ to build the XTIDECFG.COM. You should write _mingw32-make release_ if you installed UPX.
-
-Again you will find the binaries in _build\_ folder.
Index: ki/DriveCompatibility.wiki
===================================================================
--- /wiki/DriveCompatibility.wiki	(revision 625)
+++ 	(revision )
@@ -1,52 +1,0 @@
-#summary XTIDE Universal BIOS compatibility with hard disks, microdrives and CF cards
-<wiki:toc max_depth="1" />
-
-Note that compatibility problems are usually drive limitations and not XTIDE Universal BIOS issues.
-
-= Compactflash cards =
-|| *CF card* || *Capacity* || *Speed rating* || *Works as slave* || *MBR must be rewritten* || *Comments* ||
-|| _Apacer Photo Steno_ || 64 MB || none || yes || yes || ||
-|| _Apacer Photo Steno_ || 256 MB || none || yes || yes || ||
-|| Apacer Photo Steno II Pro || 256 MB || 100x || yes || no || ||
-|| _Apacer Photo Steno III_ || 512 MB || 88x || no || no || ||
-
-----
-
-= Microdrives =
-|| *Microdrive* || *Model* || *Capacity* || *Works as slave* || *MBR must be rewritten* || *Comments* ||
-|| Hitachi || HMS360606D5CF00 || 6 GB || yes || no || ||
-|| _Magicstor_ || GS10040A-11 || 4 GB || no || yes || Slow seek times ||
-|| _Seagate ST1.2 Drive_ || ST64022CF || 4 GB || no || no|| ||
-
-----
-
-= Hard disks =
-|| *Hard disk* || *Model* || *Capacity* || *Comments* ||
-|| _Quantum ProDrive LPS_ || 340AT || 340 MB || Does not properly support block mode transfers when interrupts are disabled. ||
-
-----
-
-= CF-to-IDE adapter compatibility in 8-bit mode on 16-bit controllers =
-Not all CF adapters can be used in 8-bit mode. Tests have been done with 40- and 80-pin cables with same results. All the tested adapters work when used in standard 16-bit mode.
-
-== CF-IDE40 HX-08.03.06 (A in the picture) ==
-|| *System* || *Controller* || *Drive* || *Result* ||
-|| 8 MHz Turbo Board (XT clone) || MG-863-J1 Super IDE I/O Card (1 in the picture) || Hitachi 6 GB Microdrive (HMS360606D5CF00) || No problems ||
-|| 8 MHz Turbo Board (XT clone) || IDE-PLUS-V4L (2 in the picture) || Hitachi 6 GB Microdrive (HMS360606D5CF00) || No problems ||
-|| 8 MHz Turbo Board (XT clone) || JGBPRIME2C Super I/O (3 in the picture) || Hitachi 6 GB Microdrive (HMS360606D5CF00) || No problems ||
-|| 8 MHz Turbo Board (XT clone) || Sound Blaster 16 (CT2290) || Hitachi 6 GB Microdrive (HMS360606D5CF00) || No problems (tested only with 40-pin cable) ||
-
-== CF-IDE40 V.E0 (B in the picture) ==
-|| *System* || *Controller* || *Drive* || *Result* ||
-|| 8 MHz Turbo Board (XT clone) || MG-863-J1 Super IDE I/O Card (1 in the picture) || Hitachi 6 GB Microdrive (HMS360606D5CF00) || Does not POST ||
-|| 8 MHz Turbo Board (XT clone) || IDE-PLUS-V4L (2 in the picture) || Hitachi 6 GB Microdrive (HMS360606D5CF00) || Does not POST ||
-|| 8 MHz Turbo Board (XT clone) || JGBPRIME2C Super I/O (3 in the picture) || Hitachi 6 GB Microdrive (HMS360606D5CF00) || Does not POST ||
-
-== CF-IDE40 Adapter V.A1 (C in the picture) ==
-|| *System* || *Controller* || *Drive* || *Result* ||
-|| 8 MHz Turbo Board (XT clone) || MG-863-J1 Super IDE I/O Card (1 in the picture) || Hitachi 6 GB Microdrive (HMS360606D5CF00) || Does not POST ||
-|| 8 MHz Turbo Board (XT clone) || IDE-PLUS-V4L (2 in the picture) || Hitachi 6 GB Microdrive (HMS360606D5CF00) || No problems ||
-|| 8 MHz Turbo Board (XT clone) || JGBPRIME2C Super I/O (3 in the picture) || Hitachi 6 GB Microdrive (HMS360606D5CF00) || Does not POST ||
-
-https://xtideuniversalbios.googlecode.com/svn/wiki/pictures/CfAdapters.jpg
-https://xtideuniversalbios.googlecode.com/svn/wiki/pictures/MultiIoCards.jpg
Index: ki/License.wiki
===================================================================
--- /wiki/License.wiki	(revision 625)
+++ 	(revision )
@@ -1,345 +1,0 @@
-#summary GNU General Public License, Version 2
-----
-= GNU GENERAL PUBLIC LICENSE =
-== Version 2, June 1991 ==
-
-Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-
-== Preamble ==
-
-The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.)  You can apply it to
-your programs, too.
-
-When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-The precise terms and conditions for copying, distribution and
-modification follow.
-
-== GNU GENERAL PUBLIC LICENSE ==
-== TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION ==
-
-0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-== NO WARRANTY ==
-
-11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-== END OF TERMS AND CONDITIONS ==
-
-== How to Apply These Terms to Your New Programs ==
-
-If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-<pre>
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    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.
-
-    This 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.
-
-    You 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.
-</pre>
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-<pre>
-    Gnomovision version 69, Copyright (C) year name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type 'show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type 'show c' for details.
-</pre>
-
-The hypothetical commands 'show w' and 'show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than 'show w' and 'show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-<pre>
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  'Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-</pre>
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
Index: ki/Manual.wiki
===================================================================
--- /wiki/Manual.wiki	(revision 625)
+++ 	(revision )
@@ -1,263 +1,0 @@
-#summary Instructions for XTIDE Universal BIOS v1.1.0
-#labels Phase-Deploy
-*Table of Contents*
-<wiki:toc max_depth="3" />
-----
-= Introduction =
-
-XTIDE Universal BIOS is mainly used with [http://wiki.vintage-computer.com/index.php/XTIDE_project XTIDE controller] to use modern IDE drives on PC/XT systems. XTIDE Universal BIOS supports 16- and 32-bit IDE controllers found in later ISA, VLB and PCI systems. Thus XTIDE Universal BIOS can be used to overcome 504 MiB hard disk size limit that many old BIOSes have.
-
-
-== Features ==
-
-Some of the features included in XTIDE Universal BIOS are...
-  * Supports up to 5 IDE controllers (10 drives)
-  * Accesses up to 8.4 GB hard disk space (BIOS CHS limit)
-  * Block mode transfers
-  * Hard disk autodetection
-  * Autodetected CHS parameteres can be overridden to make drive appear smaller than it is
-  * Boot menu for selecting any floppy drive or hard disk to boot from, including hard disks that are not handled by XTIDE Universal BIOS
-  * Compact Flash and Microdrive support
-  * Support for most 8-, 16-, and 32-bit IDE controllers
-  * IRQ and polling operation modes
-...and many more.
-
-
-== Different builds ==
-
-At the moment there are three different builds included in the XTIDE Universal BIOS zip file:
-  * IDE_XT.BIN (XT build)
-   XT build uses only instructions supported by 8086/8088 making it the only build that can be used on any PC, including the original IBM PC model 5150.
-  * IDE_XTP.BIN (XT+ build)
-   XT+ build has the same features as the XT build but XT+ build uses instructions introduced in 80186/80188. Those instructions are supported by all later x86 CPUs, including NEC V20/V30. 8-bit transfers rates will be better thanks to INS and OUTS instructions.
-  * IDE_AT.BIN (AT build)
-   AT build is meant for all AT class machines (16-bit or 32-bit bus). AT build supports OS hooks to allow operating system to do some processing while drive seeks the requested data. By default, the AT build is configured to full mode to take advantage of all the features the XTIDE Universal BIOS offers.
-
-----
-
-= Installing XTIDE Universal BIOS =
-
-== Hardware supporting XTIDE Universal BIOS ROM ==
-
-The most convenient way to use XTIDE Universal BIOS is to use [http://wiki.vintage-computer.com/index.php/XTIDE_project XTIDE card]. It can be used on any PC with free 8-bit ISA slot. You might not want to connect any drives to it in 16- or 32-bit systems since 8-bit transfer will be very slow. Using XTIDE card allows EEPROM flashing so it is really easy to update XTIDE Universal BIOS.
-
-Another option is to use any card with free ROM socket for 8 kiB or larger ROMs. Official XTIDE builds are meant for 8 kiB ROMs but you can burn it on larger ROM if you append enough zeroes to the end (only append zeroes so checksum does not change). Many network cards have unused ROM sockets but there are also few multi I/O cards and IDE controllers with ROM sockets.
-
-You don't need EPROM/EEPROM programmer if you already have XTIDE card. XTIDE card can be used to flash additional EEPROMs (2864) that can be moved to EPROM (2764) sockets.
-
-
-== Configuring and flashing BIOS ==
-
-XTIDE Universal BIOS comes with DOS utility called idecfg.com. It configures XTIDE Universal BIOS and also works as a generic EEPROM flasher supporting EEPROM sizes up to 16 kiB. Idecfg.com allows saving changes to BIOS images so that they can be programmed with other programming software or device.
-
-
-== Other things to know ==
-
-CTRL can be held down to skip XTIDE Universal BIOS initialization. Only drive detection will be skipped when late initialization is used.
-
-----
-
-= Using IDECFG.COM (XTIDE Universal BIOS configuration and flashing program) =
-
-Idecfg.com is intended to be user friendly. At the bottom of the screen appears quick information for each menu item. It can be hidden with F2 to make menu navigation faster on XT systems. Pressing F1 displays more detailed help for menu item. Sometimes the help is the same as the quick information but not always. Up, Down, PgUp, PgDn, Home and End keys are used for menu navigation. Enter selects menuitem and Esc resumes to previous menu.
-
-Some menu items appear only when needed to make configuring easier.
-
-
-== Menuitems on main menu ==
-  * Exit to DOS
-   This menu item exits to DOS but allows user to save any unsaved changes.
-  * Load BIOS from file
-   Loads any file with .BIN extension to be flashed.
-  * Load BIOS from EEPROM
-   This menu item appears only when supported version of XTIDE Universal BIOS is detected. It loads the BIOS from EEPROM to be reconfigured.
-  * Load old settings from EEPROM
-   This menu item appears only when supported version of XTIDE Universal BIOS is detected and same or another supported version is loaded to be configured. It loads the old settings so that the new version does not need to be reconfigured when updating XTIDE Universal BIOS to new version.
-  * Configure XTIDE Universal BIOS
-   All XTIDE Universal BIOS settings can be found and configured from this sub menu.
-  * Flash EEPROM
-   Settings for EEPROM flashing.
-
-
-== Menuitems on Configure XTIDE Universal BIOS submenu ==
-  * Back to previous menu
-   Resumes back to main menu.
-  * Primary IDE Controller
-  * Secondary IDE Controller
-  * Tertiary IDE Controller
-  * Quaternary IDE Controller
-  * Quinary IDE Controller
-   IDE Controller menu items appear based on selected number of IDE controllers.
-  * Boot menu settings
-   Opens sub menu for configuring boot menu. This menu item appears only when Boot loader type is set to Menu.
-  * Late initialization
-   Normally expansion card BIOSes are initialized before POST completes. Some (older) systems initialize expansion card BIOSes before they have initialized themselves. This might cause problems since XTIDE Universal BIOS requires some main BIOS functions for drive detection. This problem can be fixed by using late initialization to detect drives on boot loader. Late initialization requires that XTIDE Universal BIOS is the last BIOS that installs INT 19h handler. Make sure that XTIDE ROM is configured to highest address if you have other storage device controllers present.
-  * Maximize disk size
-   Old BIOSes reserve diagnostic cylinder (landing zone cylinder for MFM drives) that is not used. Later BIOSes do not reserve it to allow more data to be stored. Do not maximize disk size if you need to move the drive between XTIDE Universal BIOS controlled systems and systems with cylinder reserving BIOSes.
-  * Full operating mode
-   Full mode supports up to 5 IDE controllers (10 drives). Full mode reserves a bit of RAM from top of base memory. This makes possible to use ROM Basic and software that requires top of interrupt vectors where XTIDE Universal BIOS parameters would be stored in lite mode. Lite mode supports only one IDE controller (2 drives) and stores parameters to top of interrupt vectors (30:0h) so no base RAM needs to be reserved. Lite mode cannot be used if some software requires top of interrupt vectors. Usually this is not a problem since only IBM ROM Basic uses them. Tandy 1000 models with 640 kiB or less memory need to use lite mode since top of base RAM gets dynamically reserved by video hardware. This happens only with Tandy integrated video controller, not with expansion graphics cards. It is possible to use full mode if reserving RAM for video memory + what is required for XTIDE Universal BIOS. This would mean 129 kiB but most software should work with 65 kiB reserved.
-  * kiB to steal from RAM
-   Parameters for detected hard disks must be stored somewhere. In full mode they are stored to top of base RAM. At the moment 1 kiB is always enough but you might want to steal more if you want to use full mode with Tandy 1000. This menu item appears only when full operating mode is enabled.
-  * Number of IDE controllers
-   Number of IDE controllers handled by XTIDE Universal BIOS. This menu item appears only when full operating mode is enabled.
-
-
-== Menuitems on IDE Controller submenus ==
-  * Back to previous menu
-   Resumes back to Configure XTIDE Universal BIOS submenu.
-  * Master drive
-  * Slave drive
-   Drive specific settings for master and slave drives.
-  * Bus type
-    * 8-bit dual port (XTIDE)
-     8-bit ISA controllers with two data ports. This is what the XTIDE card uses.
-    * 8-bit single port
-     8-bit ISA controllers with one data port.
-    * 16-bit
-     ISA (16-bit) but it also works on VLB and PCI controllers.
-    * 32-bit generic
-     Generic 32-bit I/O for VLB and PCI controllers.
-  * Base (cmd block) address
-   IDE controller command block address is the usual address mentioned for IDE controllers. By default the primary IDE controller uses port 1F0h and secondary controller uses port 170h. XTIDE card uses port 300h by default.
-  * Control block address
-   IDE controller control block address is normally command block address + 200h. For XTIDE card the control block registers are mapped right after command block registers so use command block address + 8h for XTIDE card.
-  * Enable interrupt
-   IDE controller can use interrupts to signal when it is ready to transfer data. This makes possible to do other tasks while waiting drive to be ready. That is not useful in MS-DOS but using interrupts frees the bus for any DMA transfers. Polling mode is used when interrupts are disabled. Polling usually gives a little better access times since interrupt handling requires extra processing. There can be some compatibility issues with some old drives when polling is used with block mode transfers.
-  * IRQ
-   IRQ channel to use. All controllers managed by XTIDE Universal BIOS can use the same IRQ when MS-DOS is used. Other operating systems are likely to require different interrupts for each controller. This menu item appears only when interrupts are enabled.
-
-
-== Menuitems on Master and Slave drive submenus ==
-  * Block mode transfers
-   Block mode will speed up transfers since multiple sectors can be transferred before waiting next data request. Normally block mode should always be kept enabled but there is at least one drive with buggy block mode implementation.
-  * User specified CHS
-   Specify (P-)CHS parameters manually instead of autodetecting them. This can be used to limit drive size for old operating systems that do not support large hard disks. Limiting cylinders will work for all drives but drives may not accept all values for heads and sectors per track.
-  * Cylinders
-  * Heads
-  * Sectors per track
-   Number of user specified P-CHS cylinders, heads and sectors per track. These menu items appear only when user specified CHS is enabled.
-
-
-== Menuitems on Boot menu settings submenu ==
-  * Back to previous menu
-   Resumes back to XTIDE Universal BIOS configuration menu.
-  * Default boot drive
-   Drive to be set selected by default when Boot Menu is displayed.
-  * Display drive info  
-   Boot Menu can display some details about the drives in system. Reading this data might be slow on XTs so you might want to hide drive information.
-  * Display ROM boot
-   Some old systems have Basic or DOS in ROM. Since most systems don't have either, ROM Boot setting is disabled by default. Enable it if you have use for it.
-  * Maximum height
-   Boot Menu maximum height in characters.
-  * Min floppy drive count
-   Detecting correct number of floppy drives might fail when using floppy controller with it's own BIOS. Minimum number of floppy drives can be specified to force non-detected drives to appear on boot menu.
-  * Selection timeout
-   Boot Menu selection timeout in seconds. When time goes to zero, currently selected drive will be booted automatically. Timeout can be disabled by setting this to 0.
-  * Swap boot drive numbers
-   Some old operating systems (DOS) can only boot from Floppy Drive A (00h) or first Hard Disk (80h, usually drive C). Drive Translation can be used to modify drive numbers so that selected drive will be mapped to 00h or 80h so that it can be booted.
-  * Boot loader type
-   * Boot menu
-    Boot menu where user can select drive to boot from.
-   * Simple boot loader
-    Typical A, C, INT 18h boot order.
-   * System boot loader
-    Uses main BIOS boot loader or boot loader provided by some other BIOS. System boot loader works only when late initialization is disabled since late initialization is done on a boot loader.
-
-
-== Settings for Flash EEPROM submenu ==
-  * Back to previous menu
-   Resumes to main menu.
-  * Start flashing
-   Writes (configured) BIOS to EEPROM.
-  * SDP command
-   * None
-    Do not use Software Data Protection. Meant for EEPROMs that do not support SDP.
-   * Enable
-    Write protects the EEPROM after flashing. Software Data Protection should always be enabled if EEPROM supports it.
-   * Disable
-    Disables Software Data Protection after flashing.
-  * EEPROM address
-   Address (segment) where EEPROM is located.
-  * Page size
-   Larger page size will improve write performance but not all EEPROMs support large pages or page writing at all. Byte writing mode will be used when page size is set to 1. Byte writing mode is supported by every EEPROM. Large pages cannot be flashed with slow CPUs.
-  * Generate checksum byte
-   PC BIOSes require checksum byte to the end of expansion card BIOS ROMs. Checksum generation can be disabled so any type of binaries can be flashed.
-
-----
-
-= Boot menu =
-
-Using boot menu is optional. Boot menu allows to boot from any floppy or hard disk drive. Drive can be selected with Up and Down arrows. Home, End, PgUp and PgDn keys can speed up selection if there are many drives in the boot menu. Press Enter to boot from selected drive.
-
-
-== Drive swapping ==
-
-DOS requires that it is loaded from first floppy drive (00h) or first hard disk (80h) in the system. XTIDE Universal BIOS can translate drive numbers to make booting possible from any floppy drive or hard disk. Drive number translation is implemented with simple swapping method: selected drive will be swapped with first drive and vice versa. For example drive 82h on boot menu would be translated to 80h and 80h would be translated to 82h. Drive swapping for floppy drives and hard disks are handled separately so it is possible to install DOS from any floppy drive to any hard disk. Drive number translation can be disabled with idecfg.com.
-
-
-== Boot menu hotkeys ==
-
-Keys A to Z work as a hotkeys for boot menu drives. Hotkeys have another benefit: they allow to install DOS from any floppy drive to any hard disk. Select hard disk from menu but do not press Enter. Press any floppy drive hotkey instead to boot from floppy while maintaining selected hard disk translation.
-
-
-== Boot menu drive information ==
-
-Boot menu can display a little bit information about the drive. Drive information can be disabled with idecfg.com.
-
-  * Drive capacity
-   Boot menu displays drive type for floppy drives. The type is read from BIOS and it is the same you usually set in CMOS setup. XT systems do not support the BIOS function to return drive type so 5.25" or 3.5" DD is displayed. For foreign hard disks (hard disks not handled by XTIDE Universal BIOS) the boot menu displays capacity calculated from CHS-parameters returned by BIOS function INT 13h, AH=8h. It is the same capacity that MS-DOS 6.xx and older versions see. Same CHS-capacity is displayed for hard disks handled by XTIDE Universal BIOS. In addition to the CHS capacity, the boot menu will display another size that is the full size of the hard disk.
-  * Drive configuration information is displayed for XTIDE Universal BIOS controlled drives. Information includes:
-   * Addressing (Addr.)
-    This can be L-CHS, P-CHS, LBA28 or LBA48. CHS addressing is the old type of addressing method where cylinder, head and sector numbers will be handled separately. Original PC BIOS functions are designed for CHS addressing with maximum  hard disk size being 7.8 GiB (8.4 GB). LBA addressing is modern addressing method where every sector has its own address. There are no cylinders or heads anymore. Enhanced BIOS functions were introduced for LBA drives but they are not supported before Windows 95 (DOS 7). These EBIOS function are not yet supported by XTIDE Universal BIOS. CHS address must be translated to LBA address when using old CHS BIOS functions with LBA addressing.
-    * L-CHS (known as NORMAL on many old BIOSes) is used for drives <= 504 MiB that can accept the CHS parameters without translation. That makes L-CHS the fastest addressing method.
-    * P-CHS (known as LARGE on many old BIOSes) is used for drives from 504 MiB up to 7.8 GiB. This is a bit slower than L-CHS since simple translation is required to make BIOS L-CHS parameters compatible with IDE P-CHS parameters.
-    * LBA28 (28-bit address) allows drive sizes up to 128 GiB (137 GB) but maximum accessible size is 7.8 GiB when old BIOS functions are used. L-CHS to LBA translation is more complex and slower than L-CHS to P-CHS conversion.
-    * LBA48 (48-bit address) work just like LBA28 but with 20 more address bits. This makes possible to use drives with over 128 GiB capacity.
-   * Block mode (Block)
-    Block size in sectors for block mode transfers. XTIDE Universal BIOS always uses largest supported block size. Block mode is disabled or not supported if this is 1.
-   * Bus type (Bus)
-    Displays the bus type that has been selected with idecfg.com.
-   * IRQ
-    Displays IRQ channel if IRQ has been enabled.
-   * Reset
-    Displays status information from drive reset and initialization. This should always be 00h. Anything else would indicate some sort of error. Let me know if you see something other than 00h.
-
-----
-
-= IDE controllers on VLB and PCI bus =
-
-16-bit ISA IDE controllers are basically very simple ISA to PATA adapters so they all perform alike. ISA is not fast enough for anything above PIO-0 transfer method (with theoretical maximum of 3.3 MB/s).
-
-VLB and PCI IDE controllers are much more complex since they have an actual controller between bus and IDE drive. This controller can buffer words so CPU can read 32-bits at a time. Later VLB and (all?) PCI controller also offer flow control so they can support PIO modes 3 and 4. Early VLB controller are limited to PIO-2. Later VLB multi I/O cards have two IDE connectors so you should use one of those even if you don't need the other IDE connector.
-
-Unfortunately many of the controllers work only at PIO-0 by default. Some VLB multi I/O cards have jumpers to set transfer rates but most require controller specific programming to enable higher PIO modes. It is possible that your VLB multi I/O card don't offer any advantages over ISA multi I/O cards if your BIOS does not support the IDE controller on the VLB card. There are DOS drivers for many VLB IDE controllers so BIOS support isn't necessity.
-
-XTIDE Universal BIOS does not support any specific VLB controllers at the moment. I'm planning to add support for Vision QD6580 controller soon.
-
-----
-
-= Known problems =
-
-== Known bugs in XTIDE Universal BIOS ==
-  * There are some compatibility problems with SCSI BIOSes.
-
-
-== Problems with Compact Flash cards and microdrives ==
-
-CF cards and microdrives are IDE devices and should work as any hard disk. Unfortunately there are many CF cards and microdrives with limitations. Some of them only work as a master drive and not as a slave drive. Some of them requires MBR to be re-created before they can be booted. Avoid CF cards without speed ratings. They are too slow to be used as a hard disks.
-
-MBR can be re-created with FDISK /MBR switch. You can also use any low-level data wipe utility to clear non-bootable MBR. MBR will then be created automatically when partitioning the drive.
-
-[http://code.google.com/p/xtideuniversalbios/wiki/DriveCompatibility Drive compatibility list can be found here].
-
-
-= Contact information =
-
-[http://www.vintage-computer.com/vcforum/showthread.php?17986-XTIDE-Universal-BIOS XTIDE Universal BIOS thread can be found at Vintage Computer Forums]. I recommend to post there but you can also send email to aitotat (at) gmail.com.
-
-When reporting bugs or other problems, please post the following information:
-  * Computer specs (at least CPU and RAM but details about expansion cards and how they are configured might be useful)
-  * Operating system and version (for example MS-DOS 6.22)
-  * Hard disk(s) you are using with XTIDE Universal BIOS
-  * Hard disk(s) not handled by XTIDE Universal BIOS (if any)
-  * Reset status that boot menu shows if problem is related to specific drive
Index: ki/Manual_v2_0_0.wiki
===================================================================
--- /wiki/Manual_v2_0_0.wiki	(revision 625)
+++ 	(revision )
@@ -1,347 +1,0 @@
-#summary Instructions for XTIDE Universal BIOS v2.0.0 beta 3
-#labels Featured,Phase-Deploy
-*Table of Contents*
-<wiki:toc max_depth="3" />
-----
-
-= Introduction =
-
-XTIDE Universal BIOS makes it possible to use modern large ATA hard disks or Compact Flash cards on old PC's. You can then enjoy quiet or noiseless drives with more capacity than you'll ever need for old computers.
-
-XTIDE Universal BIOS can be used on any IBM PC, XT, AT or 100% compatible system. On AT systems you can use any 16-bit ISA or VLB IDE or Multi I/O controller. For XT systems you can use XTIDE rev1 (not available anymore), [http://www.vintage-computer.com/vcforum/showthread.php?29202-XTIDE-Rev2] or [https://www.retrotronics.org/home-page/jride/].
-
-== License ==
-
-XTIDE Universal BIOS and associated tools are Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
-
-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.
-
-This 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
-[License GNU General Public License] for more details.
-
-
-== Features ==
-
-Some of the features included in XTIDE Universal BIOS are...
-  * Supports up to 4 IDE controllers
-  * Support for virtual drives via serial port, [SerialDrives more information]
-  * Supports drives with any capacity (MS-DOS 7.x (Windows 9x) or FreeDOS is required to access more than 8.4 GB)
-  * PIO transfers with block mode support
-  * Hard disk autodetection
-  * Autodetected capacity, both CHS and LBA, can be overridden to make drive appear smaller than it actually is
-  * Hotkeys and optional Boot menu (included in official 12k builds) for selecting any floppy drive or hard disk to boot from, including hard disks that are not handled by XTIDE Universal BIOS
-  * Compact Flash and Microdrive support
-  * Support for most 8-, 16-, and 32-bit IDE controllers
-  * Native support for QDI Vision QD6500 and QD6580 VLB IDE controllers
-...and many more.
-
-
-== Different builds ==
-
-XTIDE Universal BIOS includes many modules and features that are optional. It is not possible to include them all into 8k builds. Officially released builds include modules that benefits most people. You can quite easily make your own build to include the features that you need if you are not satisfied on the official builds.
-
-=== Modules included in officially released builds ===
-
-[http://code.google.com/p/xtideuniversalbios/wiki/BuildInstructions See build instructions for module descriptions].
-
-||File||Description||MODULE_8BIT_IDE_ADVANCED||MODULE_ADVANCED_ATA||MODULE_BOOT_MENU||MODULE_IRQ||ELIMINATE_CGA_SNOW||RELOCATE_INT13H_STACK||USE_186||USE_286||USE_AT||
-||ide_xt.bin||8088/8086 compatible 8 kiB XT build||√||-||-||-||√||-||-||-||-||
-||ide_xtp.bin||8 kiB XT+ build requiring 80188/80186 or better||√||-||-||-||√||-||√||-||-||
-||ide_at.bin||8 kiB AT build requiring 286 or better||-||√||-||√||-||√||√||√||√||
-||ide_xtl.bin||8088/8086 compatible 12 kiB XT build||√||-||√||-||√||-||-||-||-||
-||ide_xtpl.bin||12 kiB XT+ build requiring 80188/80186 or better||√||-||√||-||√||-||√||-||-||
-||ide_atl.bin||12 kiB AT build requiring 286 or better||√||√||√||√||-||√||√||√||√||
-
-All official builds include the following modules and features:
-MODULE_STRINGS_COMPRESSED, MODULE_HOTKEYS, MODULE_EBIOS, MODULE_SERIAL, MODULE_SERIAL_FLOPPY, MODULE_FEATURE_SETS and RESERVE_DIAGNOSTIC_CYLINDER
-
-----
-= Installing XTIDE Universal BIOS =
-
-== Important if you are upgrading from any previous XTIDE Universal BIOS version ==
-
-The v2.0.0 beta 2 and later versions, like most other BIOSes, adheres to the Phoenix Enhanced Disk Drive Specification. The older v1.x.x versions and v2.0.0 beta 1 do NOT - they may generate different L-CHS parameters for many drives. If you move a drive handled by a v1.x.x or v2.0.0 beta 1 BIOS to another system or upgrade to v2.x.x you risk data corruption if different L-CHS parameters are used.
-
-IMPORTANT! This means that, after upgrading to XTIDE Universal BIOS v2.0.0 beta 2 or later, you need to re-create and format any partitions on drives handled by this BIOS.
-
-
-== Hardware supporting XTIDE Universal BIOS ROM ==
-
-The most convenient way to use XTIDE Universal BIOS is to use an [http://www.vintage-computer.com/vcforum/showwiki.php?title=XTIDE+Rev2 XTIDE card] or [http://www.lo-tech.co.uk/ Lo-tech XT-CF]. They can be used on any PC with a free 8-bit ISA slot. You might not want to connect any drives to them in 16- or 32-bit systems since 8-bit transfers will be very slow. Using the XTIDE card allows EEPROM flashing so it is really easy to update XTIDE Universal BIOS.
-
-Another option is to use any card with a free ROM socket for 8 kiB or larger ROMs. Official XTIDE builds are meant for 8 kiB and 16 kiB ROMs but you can burn it on a larger ROM if you append enough zeroes to the end (only append zeroes so checksum does not change). Many network cards have unused ROM sockets and there are also a few multi I/O cards and IDE controllers with ROM sockets. These cards remains fully usable even if you place a ROM with XTIDE Universal BIOS on them.
-
-You don't need an EPROM/EEPROM programmer if you already have an XTIDE card. The XTIDE card can be used to flash additional EEPROMs (8 kiB 2864) that can then be moved to EPROM (8 kiB 2764) sockets.
-
-
-== Configuring and flashing ==
-
-The XTIDE Universal BIOS comes with a DOS utility called XTIDECFG.COM. It's primary purpose is to configure and flash the XTIDE Universal BIOS but it can also be used as a generic EEPROM flasher supporting EEPROM sizes up to 32 kiB. XTIDECFG.COM also allows saving changes to XTIDE Universal BIOS images for later programming with other devices or programming software.
-
-
-== Other things to know ==
-
-CTRL can be held down to skip XTIDE Universal BIOS initialization. Press CTRL when the POST OK beep is heard or just before the memory test has completed.
-
-----
-= Using XTIDECFG.COM (XTIDE Universal BIOS configuration and flashing program) =
-
-XTIDECFG.COM is intended to be user friendly. At the bottom of the screen appears quick information for each menu item. Pressing F1 displays more detailed help for menu items (some menu items do not have detailed help available). Up, Down, PgUp, PgDn, Home and End keys are used for menu navigation. Enter selects the highlighted menu item and Esc returns to the previous menu.
-
-Some menu items appear only when needed to make configuring easier.
-
-
-== Menu items on "Main Menu" ==
-  * Copyright and License Information
-    Displays just that.
-  * Load BIOS from file
-   Loads any (not just XTIDE Universal BIOS) file to be flashed.
-  * Load BIOS from EEPROM
-   Loads XTIDE Universal BIOS from EEPROM to be reconfigured if a supported version of the BIOS is found in the system.
-  * Load old settings from EEPROM
-   Loads current settings from EEPROM if a supported version of the XTIDE Universal BIOS is found in the system.
-  * Configure XTIDE Universal BIOS
-   This is for configuring the XTIDE Universal BIOS. This menu item appears only when a supported version of the BIOS is loaded.
-  * Flash EEPROM
-   This menu item appears when a file has been loaded.
-  * Save BIOS back to original file
-  * Exit to DOS
-   Exits to DOS. If you have made configuration changes, then a dialog will be displayed asking if you want to save them. You can also exit to DOS by pressing Esc at the main menu.
-  * Web Links
-
-== Menu items on "Flash EEPROM" submenu ==
-  * Start flashing
-  * EEPROM type [default=2864]
-   Selects EEPROM type. XTIDE rev1 uses 2864 (8 kiB) EEPROM. Select 2864mod if you have done the A0-A3 address line swap mod (aka the Chuck(G) mod) to your XTIDE card.
-  * SDP command [default=Enable]
-   Selects Software Data Protect command to be written before every page. You should set it to Enable if the EEPROM supports SDP.
-  * Page size [default=1]
-   Larger page sizes makes flashing faster. You'll probably want to select the largest that your EEPROM supports. Slow XT systems might not be fast enough for large page sizes.
-  * EEPROM address [default=D000h]
-   Segment address where the EEPROM is located. Supported versions of XTIDE Universal BIOS will be detected automatically.
-  * Generate checksum byte [default=Yes]
-   This option will generate a checksum byte at the end of the EEPROM. You'll want to enable this if you have done any changes to the XTIDE Universal BIOS settings.
-
-== Menu items on "Configure XTIDE Universal BIOS" submenu ==
-  * Back to Main Menu
-  * Primary IDE Controller
-  * Secondary IDE Controller
-  * Tertiary IDE Controller
-  * Quaternary IDE Controller
-   Each "xxx IDE Controller" submenu displays IDE controller specific settings. "IDE controllers" menu item specifies the visible "xxx IDE Controller" submenus.
-  * Boot settings
-   Opens submenu for boot related settings such as should boot menu be enabled etc.
-  * `*`Auto Configure
-   Tries to automatically detect controllers and sets settings accordingly.
-  * Full operating mode [default=No for XT builds, not available for AT builds]
-   "Full operating mode" reserves a bit of Conventional memory for XTIDE Universal BIOS variables. Disabling this will reduce the maximum number of supported IDE controllers to 2 and place the variables in a memory area reserved for IBM ROM Basic (30:0h). You should always enable this option unless:
-    # You don't need to use IBM ROM Basic or any BIOS or software that requires that memory area.
-    # You have a Tandy 1000 with 640k or less RAM (see "kiB to steal from RAM" for a way around this problem).
-    # You really need the 1k of Conventional memory that "Full operating mode" requires.
-  * kiB to steal from RAM [default=1]
-   This menu item will appear only when "Full operating mode" is enabled. Leave it at the default unless you need to enable "Full operating mode" on Tandy 1000 models with 640k or less RAM. Setting this to 33 (almost always enough) or 65 (always enough) will reserve the top of RAM to Tandy video circuitry in addition to the XTIDE Universal BIOS variables thus avoiding a conflict between the two.
-  * IDE controllers [default=1 for XT builds, 2 for AT builds]
-   Number of IDE controllers to be searched by XTIDE Universal BIOS. The maximum is 4 if "Full operating mode" is enabled. Otherwise the maximum is 2.
-  * Power Management [default=Disabled]
-   This menu item opens up a submenu where you can select the amount of time before idling harddrives should enter standby mode (i.e. stop spinning). This setting applies only to drives controlled by XTIDE Universal BIOS and requires that the drive(s) supports the Power Management feature set. Harddrives that do not support Power Management (only very old drives) will just keep spinning. Note that this option is not available if the BIOS has been built without MODULE_FEATURE_SETS.
-
-=== Menu items on "Boot settings" submenu ===
-  * Display Mode [default=Default]
-   This setting allows you to force a display mode change before the boot menu is displayed. This setting will work even if the boot menu has been disabled and will leave the specified display mode set when booting to the OS. Forcing the display mode can be handy if you have a composite monitor (use 40 column modes for better readability) or a black&white VGA monitor (use 80 column black&white mode for better readability).
-  * Number of Floppy Drives [default=Auto]
-   In some systems the number of floppy drives cannot be reliably autodetected. This setting allows you to specify it manually so all drives can be displayed on the boot menu.
-  * Scan for Serial Devices [default=No]
-   When enabled, the BIOS will scan COM1-7 for a Serial Drive server at the end of standard drive detection. Even without this option enabled, holding down the ALT key at the end of drive detection will accomplish the same thing (useful for bootstrapping scenarios). The BIOS will display "Serial Master on COM Detect:" while it is scanning. See the [SerialDrives Serial Drive] documentation for more information.
-  * Default boot drive [default=80h]
-   Specifies what drive is booted by default unless user selects other drive using hotkeys or boot menu. The default of 80h means the first hard drive in the system. 00h means first floppy drive in the system if you want floppy drive A to be first.
-  * Selection timeout [default=540]
-   Appears only if boot menu is included in the build.
-   Specifies the duration in timer ticks before the default boot drive is automatically selected. 1 tick = 54.9 ms so the default of 540 is about 30 seconds.
-
-
-=== Menu items on "xxx IDE Controller" submenus ===
-  * Back to Configuration Menu
-   Moves back to "Configure XTIDE Universal BIOS" submenu.
-  * Master Drive
-  * Slave Drive
-   Opens submenu for Master/Slave Drive specific settings for this IDE Controller.
-  * Device Type [default=XTIDE for XT builds, 16-bit for AT builds]
-    Following devices are supported:
-    * 16-bit ISA/VLB/PCI IDE [default for AT builds]
-      32-bit mode will be automatically enabled when supported VLB/PCI controller is detected.
-    * 32-bit VLB/PCI IDE
-      For those 32-bit controllers that do not require software support (PIO mode is set with jumpers). Can be used with all 32-bit controllers but PIO mode is 0 just like on 16-bit controllers.
-    * 16-bit ISA IDE in 8-bit mode
-      Allows to use 16-bit IDE controllers on XT systems. This will require drive that supports 8-bit transfers (CF card and Microdrives all support 8-bit mode).
-    * XTIDE rev 1 [default for XT builds]
-    * XTIDE rev 2 or modded rev 1
-      XTIDE with A0 and A3 address lines swapped.
-    * XT-CF v2/v3/Lite in PIO mode
-    * XT-CF v2 in DMA mode
-    * XT-CF v2 in memory mode
-    * JR-IDE/ISA
-    * Serial port virtual device
-      Note that a serial port controller must be the last configured IDE controller. XTIDECFG will automatically move any serial ports to the end of the list if needed. This is done so that serial floppy disks, if any are present, will be last on the list of drives detected.
-  * Base (cmd block) address [default=300h for XT builds, 1F0h (Primary IDE) and 170h (Secondary IDE) for AT builds]
-   Command block (base port) address where the IDE Controller is located. JR-IDE/ISA does not use this setting.
-  * Control block address [default=308h for XT builds, 3F0h/370h for AT builds]
-   Set to base port + 8h for XTIDE rev1, rev2 and Lo-tech XT-CF. Set to base port + 200h for standard IDE controllers. JR-IDE/ISA does not use this setting.
-  * Enable interrupt [default=no]
-   Enables interrupt but it does not offer any benefit for MS-DOS. Do not enable unless you know you need it.
-  * IRQ [default=14 for Primary IDE, 15 for Secondary IDE]
-   Appears only when MODULE_IRQ is available.
-   IRQ channel to use for IDE controllers.
-  * COM Port [default=COM1]
-    Appears only when serial port virtual device is selected.
-  * Baud Rate [default=38.4K]
-    Appears only when serial port virtual device is selected.
-
-=== Menu items for "Master/Slave Drive" submenus ===
-  * Back to IDE Controller Menu
-  * Block Mode Transfers [default=Yes]
-   Block Mode Transfers will speed up the transfer rates. This should be left enabled but there is at least one old hard drive with buggy block mode support when interrupts are enabled (Quantum, maybe 100MB).
-  * CHS Translation Method [default=Auto]
-    The NORMAL/LARGE/LBA selection seen on many BIOSes. Leave this to Auto unless you want this to be the same you are using on some other BIOS.
-  * Internal Write Cache [default=Disabled]
-   This should be left disabled unless you know what you are doing! Improper use of write cache can cause data corruption.
-  * User specified CHS [default=no]
-   Specify CHS parameters manually. This will force the drive to CHS addressing and EBIOS functions will be disabled. Specifying CHS manually makes the drive incompatible with other BIOSes unless they are specified to use the same CHS parameters.
-  * User specified LBA [default=no]
-   Specify drive capacity manually (starting from 8.4 GB). All versions of MS-DOS 7.x (Windows 9x) seem to have compatibility problems with very large drives so you might need to reduce drive capacity. Use FreeDOS if you want to use full capacity of the drive.
-  * Cylinders, Heads and Sectors per track
-   These will appear when "User specified CHS" is enabled. Maximum values of 16383 Cylinders, 16 Heads and 63 Sectors per track will provide a capacity of 7.8 GiB/8.4 GB, the maximum that MS-DOS 3.31 to 6.22 supports. Note that this will force CHS addressing so once formatted, there will be data corruption if you try to access the drive with systems using LBA addressing.
-  * Millions of sectors
-   This will appear when "User specified LBA" is enabled. You can specify the drive capacity in millions of sectors. Note that MS-DOS 7.x (Windows 9x) or FreeDOS is required to access more than 7.8 GiB/8.4 GB.
-
-----
-= Hotkeys =
-
-You will see Hotkeybar at the top of screen during drive detection. Hotkeys are available during that time and selected hotkeys will be displayed on the Hotkeybar.
-
-Keys A to Z work as hotkeys for drives to select as boot device. Hotkeys have another benefit: they allow the installation of DOS from any floppy drive to any hard disk. For example if you want to install DOS from floppy drive B to Hard Drive D then first press D and then B. The last drive selected is always the drive to boot from.
-
-F2 displays boot menu (available only if MODULE_BOOT_MENU is available).
-
-F6 will search for virtual serial drives on COM ports 1-7 at the end of standard drive detection (available only if MODULE_SERIAL is available). 
-
-F8 calls software interrupt 18h. This starts IBM ROM Basic, ROM DOS or displays an error message from the motherboard BIOS when there is no ROM to boot from.
-
-
-== Drive swapping ==
-
-DOS requires that it is loaded from the first floppy drive (00h) or the first hard disk (80h) in the system. XTIDE Universal BIOS translates drive numbers to make booting possible from any floppy drive or hard disk. Drive number translation is implemented with a simple swapping method: selected drive will be swapped with first drive and vice versa. For example drive 81h (Second hard drive) would be translated to 80h (First hard drive) and 80h would be translated to 81h. Drive swapping for floppy drives and hard disks are handled separately to make possible to install DOS from any floppy drive to any hard disk.
-
-----
-= Boot menu =
-
-Using the boot menu is optional and it is not included in official 8 kiB builds. Boot menu does not offer any more functionality than hotkeys except to display drive information. Drive can be selected with Up and Down arrows. Home, End, PgUp and PgDn keys can speed up selection if there are many drives in the boot menu. Press Enter to boot from selected drive.
-
-== Boot menu drive information ==
-
-The boot menu can display a little bit of information about the drive:
-
-  * Capacity
-   This shows the drive capacity. This is the same as reported by the drive unless you have specified CHS or LBA manually. Capacity is read from INT 13h AH=08h for drives not handled by XTIDE Universal BIOS.
-  * Addr.
-   This shows the current addressing mode:
-    * NORMAL is used for drives with 1024 or less cylinders (504 MiB / 528 MB and smaller drives). NORMAL is the fastest mode since no address translations are required.
-    * LARGE is used for drives with 1025...8192 cylinders. LARGE addressing mode L-CHS parameters are generated with Revised Enhanced CHS calculation algorithm. LARGE addressing mode can use LBA if drive supports it.
-    * LBA is used for drives with 8193 or more cylinders and LBA support. L-CHS parameters are generated with Assisted LBA algorithm.
-  * Block
-   Shows the maximum number of sectors supported in a single multi-sector transfer. The larger the better. 1 means that block mode is disabled or not supported. CF cards usually supports block mode commands but do not allow blocks larger than 1 sector.
-  * Bus
-   Shows the bus/device type configured in "Device Type" menu item on "xxx IDE Controller" submenu.
-  * IRQ
-   Shows the IRQ channel if enabled.
-  * Reset
-   Shows the status from drive initialization. This should always be zero. If it is something else, then something has gone wrong.
-
-----
-= Performance problems =
-
-== MS-DOS DIR command takes a very long time ==
-This is completely normal on systems with slow CPUs and large partitions. Calculating free space is simply a very slow process in such cases.
-
-It was very rare to have partitions larger than 32 MiB on XT systems so there weren't long delays then. Now XTIDE and JR-IDE/ISA makes it possible to use very large modern drives on such slow systems. MS-DOS 3.31 allows partitions up to 512 MiB and MS-DOS 4.00 to 6.22 allows partitions up to 2 GiB. Those are enormous sizes for XT systems and the slow 8088 or even the V20 take some time to calculate the free space on FAT file systems.
-
-It might be a good idea to use a small partition for OS and frequently used utilities and large partition(s) for games and less needed data. You should experiment with what size feels the best for the small partition. Please do let me know the results if you do some testing.
-
-It is very likely that this same problem will occur if you decide to use MS-DOS 7.x (Windows 9x) or FreeDOS and a large FAT32 partition on a slow 386 or even 486.
-
-
-== Smartdrive can slow down transfer rates ==
-When smartdrive or other cache program is used, data is read from drive to RAM area used by the cache program. Then it is copied to the program RAM area. If same data is required again it is found from the cache. Reading from cache is a lot faster than reading from drive, especially when the drive is old.
-
-Modern drives are a lot faster and they have very large internal caches and data prefetch abilities. Modern drives are so fast on old computers that the extra CPU usage required by caching programs slow down more than reading directly from drive, at least with slow CPUs and small caches.
-
-Don't assume that disk caching makes things faster. Always test it first.
-
-
-== Importance of Shadow RAM ==
-Always enable Shadow RAM and ROM area caching if your systems supports them! They might speed up much more than you think. This is especially true on Pentium systems.
-
-Pentium will fetch at least 8 bytes (since it has a 64-bit wide bus) before it can start to execute the instructions. Even if you have placed the ROM on a 16-bit ISA or 32-bit VLB or PCI card the ROM itself is only 8-bits wide. So the ROM must be read 8 times before the CPU can start executing instructions. And if those 8 times are read from 8 MHz ISA with wait states... Believe it or not, this can slow the transfer rates on a mighty Pentium to the level of fast XT systems.
-
-So always enable Shadow RAM to copy the ROM to RAM to get full bus width and you might also want to enable cache for ROM areas to compensate for RAM latencies and slower clock rate. The Shadow RAM is the more important of the two.
-
-You should be aware that you most likely need to disable Shadow RAM when you flash the EEPROM. Another thing to note is that JR-IDE/ISA does not work if Shadow RAM or ROM area caching is enabled. You wouldn't want to connect drives to an 8-bit bus on a 32-bit system anyway. You can use the JR-IDE/ISA if you just need the 512 kiB FLASH.
-
-Here are some transfer rate comparisons using v2.0.0β1. Results are from [http://www.brutman.com/iotest.zip IOTEST by Michael B. Brutman].
-
-The test system is a 486DX4 100 MHz with a VLB Multi I/O card and a 6 GB Hitachi Microdrive. XTIDE Universal BIOS is configured for 16-bit transfers without support for that specific VLB IDE controller.
-||Internal Cache||Shadow RAM||KB/s||
-||Enabled||Disabled||1185.50||
-||Enabled||Enabled||1911.37||
-||Disabled||Disabled||1145.48||
-||Disabled||Enabled||1851.30||
-
-----
-= IDE controllers on VLB and PCI bus =
-
-16-bit ISA IDE controllers or more properly interface cards are basically very simple ISA to Parallel ATA adapters so they all perform alike. ISA is not fast enough for anything above PIO-0 transfer method (with a theoretical maximum of 3.3 MB/s).
-
-VLB and PCI IDE controllers are more complex since they have an actual controller between bus and IDE drive. This controller can buffer the data so the CPU can read 32-bits at a time. Early VLB controllers are limited to PIO-2 but later VLB controllers and (all?) PCI controllers also support PIO modes 3 and 4. These later VLB multi I/O cards have two IDE connectors so you should use one of those even if you don't need the other IDE connector.
-
-Unfortunately many of the controllers work only at PIO-0 by default. Some VLB multi I/O cards have jumpers to set transfer rates but most require controller specific programming to enable higher PIO modes. It is possible that your VLB multi I/O card don't offer any advantages over ISA multi I/O cards if your BIOS does not support the IDE controller on the VLB card. There are DOS drivers for many VLB IDE controllers so BIOS support isn't a necessity.
-
-At the moment XTIDE Universal BIOS has native support for QDI Vision QD6500 and QD6580 VLB IDE controllers. The support is included in MODULE_ADVANCED_ATA that is included in official AT builds by default.
-
-----
-= Known problems with fixes (v2.0.0 beta 2)=
-
-===Flashing sometimes fails on a Pentium system===
-Set page size to maximum supported and try to reflash few times. Eventually it should work. It is currently unknown why flash fails.
-
-===FreeDOS Format.exe freezes===
-Known to happen with 0.90 dated 4-30-02 when using user defined LBA. Change FORMAT.EXE to newer. 0.91v dated 1-14-06 is known to work.
-
-
-= Other known problems =
-  * Flash utility hung the PC when saving settings on one occasion (maybe because the FDD entry point was via the BIOS just over-written?)
-  * Detecting non-available drives takes a lot longer on XT systems than on AT systems. Both have same timeout values so it is unclear what causes it.
-
-
-== Problems with Compact Flash cards and microdrives ==
-
-CF cards and microdrives are IDE devices and should work as any hard disk. Unfortunately there are many CF cards and microdrives with limitations. Some of them only work as a master drive but not as a slave drive. Some of them requires MBR to be re-created before they can be used for booting.
-
-The MBR can be re-created with FDISK using the /MBR switch. You can also use any low-level data wipe utility to clear a non-bootable MBR. The MBR will then be created automatically when partitioning the drive.
-
-Some CF cards and microdrives do not work properly with IBM 5150/5160 when using XTIDE rev 1 or rev 2. Some of the symptoms are improperly displayed drive name on boot menu or the drive appears to work on some occasions and sometimes not. This is a hardware related problem and cannot be fixed by software. Wait for Lo-tech XT-CF to be available or use known working drive such as Hitachi 6 GB microdrive.
-
-----
-= Contact information =
-
-[http://www.vintage-computer.com/vcforum/showthread.php?17986-XTIDE-Universal-BIOS XTIDE Universal BIOS thread can be found at Vintage Computer Forums]. I recommend to post there but you can also send email to aitotat (at) gmail.com. Another thread to take a look at is [http://www.vintage-computer.com/vcforum/showthread.php?29749-XTIDE-Universal-BIOS-v2-0-0-beta-testing-thread XTIDE Universal BIOS v2.0.0 beta testing thread.]
-
-When reporting bugs or other problems, please post the following information:
-  * Computer specs (at least CPU and RAM but details about expansion cards and how they are configured might be useful)
-  * Operating system and version (for example MS-DOS 6.22)
-  * Hard disk(s) you are using with XTIDE Universal BIOS
-  * Hard disk(s) not handled by XTIDE Universal BIOS (if any)
-  * Reset status that boot menu shows if problem is related to specific drive
Index: ki/SerialDrives.wiki
===================================================================
--- /wiki/SerialDrives.wiki	(revision 625)
+++ 	(revision )
@@ -1,180 +1,0 @@
-#summary Instructions for emulating Serial Drives with the XTIDE Universal BIOS
-#labels Featured,Phase-Deploy
-*Table of Contents*
-<wiki:toc max_depth="3" />
-----
-= Introduction =
-
-Starting with version 2, the XTIDE Universal BIOS can emulate floppy and hard disks over a serial connection.  By doing so, aging hardware can be bootstrapped from a floppy image, or even run without a physical hard disk.  No special hardware is required, the BIOS can work with any standard COM port that is installed on the machine.  And with high speed COM ports, performance can approach the performance of vintage hard disks.
-
-== System Requirements ==
-
-To use this feature, you will need:
-	
-  * Client PC
-    * Standard or High Speed COM Port
-    * XTIDE Universal BIOS option ROM installed
-
-  * Server PC
-    * Standard or High Speed COM Port (USB add-ons serial ports work great)
-    * Windows XP or later (In the future, support for additional platforms may be added)
-    * Flat Disk Images of floppy disks or hard disks
-    * Command line utility, SerDrive, included with the XTIDE Universal BIOS distribution
-
-  * [http://en.wikipedia.org/wiki/Null_modem Null Modem cable] between the two machines
-
-== Getting Started ==
-
-=== 1. Connect ===
-
-Connect the two machines via the serial cable.
-
-=== 2. Start the Server ===
-
-Open a command prompt, and run the SerDrive utility on the server.  Switches are described below.  In its simplest form:
-	{{{ C:\> SerDrive ImageFile.img }}}
-If you do not already have an image, you can obtain boot floppies of FreeDOS at [http://www.fdos.org/bootdisks/ www.fdos.org] and possibly at the FreeDOS home page at [http://www.freedos.org www.freedos.org] (although they tend to distribute FreeDOS as a CD-ROM image).  Be sure to use a newer version of FreeDOS Format, we have seen issues with version 0.90, that 0.91v corrected, and newer versions also have a debug switch for diagnosing problems.
-SerDrive will use the first available COM port by default, at a speed of 9600 baud (which is reliable, but relatively slow, you will likely want to increase this for continued use).
-
-=== 3. Boot the Client ===
-
-Boot the client computer.  * During drive detection, hold down the Alt key, and at the end of drive detection, the BIOS will display "Master at COM Detect". *  The BIOS will now scan the available COM ports on the client (COM 1-7), looking for a server.  If Hotkeys are enabled (MODULE_HOTKEYS), pressing F6 will do the same thing.  And you can also configure the BIOS with XTIDECFG to always boot from the serial port (see below).
-
-If a server is found, the floppy and/or hard disk emulated will appear in the boot menu for the BIOS.  You can now proceed as normal.
-
-If you have problems, start by adding the {{{-v}}} switch to SerDrive and it will report on each connection request and sector transferred.  If that still doesn't work, you may want to try a basic serial communications program to see if you can send and receive characters across the serial port.  Depending on your version of Windows, it may include a serial communications program, or you could try a program such as [http://www.kermitproject.org/ Kermit].
-
-= Performance =
-
-Really, emulating a disk drive over a serial link?  That has to be pretty slow, right?
-
-It depends.  Using high speed UARTs at a speed of 460K, performance is on par with floppy disk drives of the vintage era, without any of the seek time or interleave factors to slow it down (we're assuming the server PC is very fast and is caching heavily used sectors in memory).  With this level of throughput, serial drives are slower than a vintage hard disk, but not by much, and the system is completely usable.
-
-And then there is the bootstrap scenario.  Imagine you find yourself with a PC without a working floppy disk drive, or the system floppy disk you want to boot is unreadable.  With only a standard COM port, common back in the day, you can still boot this machine and FDISK and/or FORMAT an attached hard disk.  It will take some time, no question about it, the top speed of many of these vintage COM ports was 38.4K.  But it will eventually boot.
-
-Here's how various drives compare on performance, including the serial drives:
-
-|| || *5.25" DSDD Floppy* || *3.5" HD Floppy* || *Original IBM PC XT Hard Disk* || *38.4K Baud Serial Drive* || *460K Baud Serial Drive* ||
-|| Theoretical Max Speed, Bytes per Second      || 31K  || 62K  || 87K || 3.8K || 46K ||
-|| Observed Speed, Bytes per Second             ||      || 42K  ||     || 3.7K || 42K Read, 37K Write ||
-|| Time to Boot MS-DOS 3.3, Seconds             ||      || 14.5 ||     || 30.5 || 3.6 ||
-|| Time to Burst Read 274,688 bytes, Seconds    ||      || 6.6  ||     || 72.1 || 6.9 ||
-
-So, how can boot time be so much faster with the serial connection than a floppy disk, yet burst read speed be worse?  There is a lot of overhead with seeking between tracks, waiting for the motor to spin the desired sector under the read head, etc. that goes away with the serial connection.  Even at a baud rate of 38.4K, 30 seconds is of course slow to boot, but completely reasonable for a boostrapping scenario.
-
-Note that at high speed, write performance for serial drives is slightly worse than read performance - the BIOS code is optimized for read performance.
-
-To help measure performance, SerDrive's {{{-v}}} switch with a value of 1 or higher will also display performance measurements for transfers of more than 100 sectors at a time.
-
-Performance number Notes:
-  * Serial drive theoretical max taken by dividing bit rate by 10, allowing for start and stop bits.  Wikibooks has a discussion of [http://en.wikibooks.org/wiki/Serial_Programming:RS-232_Connections#Data_Transmission_Rates Data Transmission Rates] based on RS-232 serial communications overhead, in the Wikibook _[http://en.wikibooks.org/wiki/Serial_Programming:RS-232_Connection Serial Programming/RS-232 Connections]_.
-  * Floppy disk characteristics from Scott Mueller's _[http://books.google.com/books?id=E1p2FDL7P5QC&pg=PA649 Upgrading and Repairing PCs]_, 15th Anniversary Edition (2004), Page 649.
-  * IBM PC XT Hard Disk performance as calculated based on maximum throughput and sector interleave by Steve Gibson in [http://books.google.com/books?id=CD8EAAAAMBAJ&pg=PA36 "The Ways and Means of Faster Data Throughput"], _InfoWorld_, March 7, 1988, Page 36.
-  * Observed speeds and timings done on an original 4.77 MHz 8088 based IBM PC 5150.
-
-= Configuring with XTIDECFG =
-
-Holding down the Alt key is a bootstrapping feature, which is always available.  In addition, xtidecfg can be used to configure the BIOS to always look on a particular COM port for a server, or to automatically scan on each boot (as if the Alt key had been pressed).  See the [Manual_V2_0_0 XTIDE V2.0.0 documentation for more details].
-
-Note that a serial port controller must be the last configured IDE controller.  Xtidecfg will move any serial ports to the end of the list if this is not already done.  This is done so that serial floppy disks, if any are present, will be last on the list of drives detected.
-
-= SerDrive Command Line Arguments =
-
-* {{{ Usage: SerDrive [options] imagefile [[slave-options] slave-imagefile] }}} *
-
-You can stop SerDrive by pressing Ctrl-C.  SerDrive is stateless, and flushes writes to the image files immediately.  You can start and stop the server at will, although this is not recommended.   If the server is stopped and a disk access is attempted by the client, that request will result in an error on the client.  Also, changing the image file without also rebooting the client may result in unexpected behavior and possible data loss.
-
-* _Specify Disk Geometry:_ {{{-g}}} [cyl:head:sect] *
-
-Geometry in cylinders, sectors per cylinder, and heads.  {{{-g}}} also implies CHS addressing mode (default is LBA28).
-
-* _Create New Disk Image:_ {{{-n}}} [megabytes] *
-
-Create new disk with given size or use -g geometry.  Maximum size is 137438 MB (the LBA28 size limit).  Floppy images can also be created, such as "360K".  Default disk size is 32 MB disk, with a CHS geometry 65:16:63.
-
-* _Emulator Pipe Mode:_ {{{-p}}} [pipename] *
-
-Named Pipe mode for emulators.  Pipe name must begin with "\\", default is "\\.\pipe\xtide".
-
-* _Specify COM Port:_ {{{-c}}} COMPortNumber *
-
-COM Port to use (default is first found).  The usage message will also list the available COM ports on this system.
-
-* _Specify Baud Rate:_ {{{-b}}} BaudRate *
-
-Baud rate to use on the COM port.  If the client machine has a hardware rate multiplier (for high speed operation), then that will impact this setting:
-
-|| *Rate Multiplier* || *Available Baud Rates for SerDrive* ||
-|| None ||  2400,  4800,  9600,  28.8K,  57.6K, 115.2K ||
-|| 2x || 4800,  9600, 19200,  57.6K, 115.2K, 230.4K ||
-|| 4x || 9600, 19200, 38400, 115.2K, 230.4K, 460.8K ||
-|| 8x || 19200, 38400, 115.2K, 230.4K, 460.8K, 921.6K ||
-
-And for completeness, 76.8K and 153.6K can also be set.  The default baud rate is 9600 (115.2K when used in named pipe mode).
-
-Note that in Windows' Device Manager, a high speed COM port may still show that it's maximum speed is 128K baud.  Do not be alarmed, this setting has no impact on what SerDrive does with the Windows API, where the higher speeds are available.  No manual setup of the serial port is required before SerDrive runs.
-
-Theoretically, and this is why the server supports it, 921.6K should be possible with a fast enough card and an 8x multiplier, hosted in a computer that can operate at least twice as fast as a 4.77Mhz 8088 machine.  I have only tested up to 460.8K with actual hardware.  
-
-* _Disable Operation Timeout:_ {{{-t}}} * 
-
-Disable timeout, useful for long delays when debugging.
-
-* _Read Only Disk:_ {{{-r}}} *
-
-Treat the disk as a Read Only disk, SerDrive will not allow writes.
-
-* _Verbose:_ {{{-v}}} [level] *
-
-Reporting level 1-6, with increasing information as the number increases.  This switch can be very useful for seeing the sector-by-sector traffic between the PC and the hard disk.
-
-The {{{-v}}} switch with a value of 1 or higher will also display performance measurements for block transfers of more than 100 sectors.
-
-* _ImageFiles:_ ImageFileName *
-
-Finally, the image file name appears. Up to two image files can be used, each with their own settings for many of the switches above.
-
-Floppy images may also be used.  Image size must be exactly the same size
-as a 2.88MB, 1.44MB, 1.2MB, 720KB, 360KB, 320KB, 180KB, or 160KB disk.
-Floppy images must be the last disks discovered by the BIOS, and only
-two floppy drives are supported by the BIOS at a time.
-
-= High Speed Operation =
-
-Normal COM ports top out their speed somewhere between the reliable 9600 baud and the unreliable theoretical maximum of 115.2K baud.  This includes COM ports that are included on the motherboard of even modern PCs.  COM ports with FIFOs can usually achieve the 115.2K speed.  In addition, High Speed COM ports were introduced with a clock multiplier, resulting in top speeds of 230.4K and 460.8K.  Many USB COM ports on the market can achieve 500K or higher speeds.
-
-The BIOS supports speeds up to 460.8K baud.  To achieve this speed, you will need:
-
-  * COM port on the client machine capable of high speed operation.  Believe it or not, one can still buy new ISA High Speed COM ports that accomplish this, that can even be used in old 8-bit machines.  You are looking for serial cards with an "16550" (or better) UART chip, which includes a FIFO, and the ability to set a hardware rate multiplier, typically this is jumpers for 1x, 2x, and 4x.  Serial cards that have been tested:
-     * [http://www.vintage-computer.com/vcforum/showwiki.php?title=XTIDE+Rev2 XTIDE rev2] has a high speed COM port installed for this purpose.
-     * [http://www.startech.com/Cards-Adapters/Serial-Cards-Adapters/2-Port-16550-Serial-ISA-Card~ISA2S550 StarTech ISA2S550]
-     * [http://www.siig.com/i-o-expander-4s.html Siig JJ-A40012]
-  The speed of the client PC should not be an issue. High speed operation has been succesfully used even on an original equipment IBM PC 5150.
-
-  * COM port on the server machine capable of high speed operation.  Most motherboard based COM ports can NOT attain high speed.  However, most USB COM ports can attain high speed, check the product documentation if it states "Data Transfer Rate: 500kbps" or similar.  USB serial ports that have been tested with the BIOS:
-     * [http://www.trendnet.com/products/proddetail.asp?prod=265_TU-S9&cat=32 TRENDNet TU-S9]
-     * [http://www.iogear.com/product/GUC232A/ IOGear GUC232A], although beware that the specs only list up to 230Kbps, in limited practice it has worked up to 460K.
-
-Care must be taken when configuring the serial connection - the clock multiplier is not detectable by the client PC.  With a 4x clock multiplier, the client PC should be set to 115.2K baud, while the matching server needs to be set to 460.8K baud.
-
-Note that in Windows' Device Manager, a high speed COM port may still show that it's maximum speed is 128K baud.  Do not be alarmed, this setting has no impact on what SerDrive does with the Windows API, where the higher speeds are available.  No manual setup of the serial port is required before SerDrive runs.
-
-Theoretically, 921.6K should be possible with a fast enough card and an 8x multiplier, hosted in a computer that can operate at least twice as fast as a 4.77Mhz 8088 machine.  I have only tested up to 460.8K with actual hardware, and ISA hardware with an 8x multiplier is hard to find.  
-
-= Disk Image Format =
-
-Disk image files, at this time, are flat hard disk images.  Sectors are laid out on disk, starting with sector 0, and proceeding in LBA order (literally 512-byte sector 0, then 1, then 2, etc.).  No meta-data about the size of the disk or disk geometry is stored in the file. Also no compression of unused sectors is done.  SerDrive's "-n" switch can be used to create images of the proper size, with all sectors initialized to zeros.
-
-In the future, support for additional disk image formats may be added.
-
-== Disk Image Utilities ==
-
-[http://www.winimage.com/winimage.htm WinImage] is a good tool that can manipulate image files - it can view, inject, and extract files from a file system stored on the image.   
-
-Other possible tools include [http://hp.vector.co.jp/authors/VA013937/editdisk/index_e.html DiskExplorer] and GNU has a set of tools called [http://www.gnu.org/software/mtools Mtools], although I have not seen a good port of those to Win32. 
-
-== Emulators ==
-
-Floppy and hard disk image files can be shared between the XTIDE Universal BIOS and other emulators, such as [http://bochs.sourceforge.net Bochs].  One nice feature of this is that bootable images can be created and tested in an emulated environment, complete with multiple floppy and CD-ROM drives, and then the resulting image can be used with physical hardware through the BIOS.
-
-Bochs was used in the development of the serial code, as its debugger offers control over the emulated system that is hard to accomplish on actual hardware.  You can run the XTIDE Universal BIOS in Bochs as an installed option ROM, and interface with Bochs' emulate IDE hard disks and serial ports.  To support serial ports, SerDrive's {{{-p}}} switch can be used to run over a Win32 named pipe instead of a physical COM port, and Bochs can be set to emulate a COM port over a named pipe.  In addition, it can be set to emulate a specific baud rate from the client (Bochs), using the standard {{{-b}}} switch.  The {{{-t}}} switch is useful to prevent the server from timing out on operations, if a breakpoint is hit in the BIOS code.
