Changeset 450 in xtideuniversalbios


Ignore:
Timestamp:
Sep 7, 2012, 5:59:03 PM (10 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Updated build instructions for v2.0.0 beta 2.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wiki/BuildInstructions.wiki

    r436 r450  
    11#summary How to build XTIDE Universal BIOS.
    22*Table of Contents*
    3 <wiki:toc max_depth="3" />
     3<wiki:toc max_depth="4" />
    44----
    55= Introduction =
    66
    7 This is a small tutorial on how to build XTIDE Universal BIOS on Windows.
     7This 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 2.
    88
    99
     
    7474== Including and excluding optional modules ==
    7575
    76 There are few 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.
     76There 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.
    7777
    7878It 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_.
    7979
    80 Open makefile with Windows Notepad (or [http://notepad-plus-plus.org/ Notepad++]). You will now see all the modules and short description about them. When writing this, the makefile looks like below:
     80Open 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 2:
    8181{{{
    82 ##################################################################################################
    83 # Makefile to build XTIDE Universal BIOS.                                                        #
    84 #                                                                                                #
    85 # Valid makefile targets are:                                                                    #
    86 # all       Removes existing files and builds binary files in \Build                             #
    87 # small     Builds 8 kiB binaries only (without checksum)                                        #
    88 # large     Builds 15 kiB binaries only (without checksum)                                       #
    89 # clean     Removes all files from \Build                                                        #
    90 # checksum* Builds all and then generates checksum byte to all binary files                      #
    91 # strings*  Compress src\Strings.asm to src\StringsCompressed.asm                                #
    92 #                                                                                                #
    93 # * at the end of target name means that Perl is required for the job.                           #
    94 # Build directory must be created manually if it does not exist.                                 #
    95 #                                                                                                #
    96 #                                                                                                #
    97 # Following modules can be included or excluded:                                                 #
    98 # MODULE_ADVANCED_ATA       Native support for some VLB IDE controllers                          #
    99 # MODULE_BOOT_MENU          Boot Menu for selection of drive to boot from                        #
    100 # MODULE_EBIOS              Enhanced functions for accessing drives over 8.4 GB                  #
    101 # MODULE_JRIDE              Support for JR-IDE/ISA                                               #
    102 # MODULE_SERIAL             Virtual hard disks using serial port                                 #
    103 # MODULE_SERIAL_FLOPPY      Virtual floppy drives using serial port (requires MODULE_SERIAL)     #
    104 # MODULE_STRINGS_COMPRESSED Use compressed strings to save space                                 #
    105 #                                                                                                #
    106 # Not modules but these affect the assembly:                                                     #
    107 # ELIMINATE_CGA_SNOW        Prevents CGA snowing at the cost of a few bytes                      #
    108 # USE_186                   Use instructions supported by 80188/80186 and V20/V30 and later      #
    109 # USE_286                   Use instructions supported by 286 and later                          #
    110 # USE_386                   Use instructions supported by 386 and later                          #
    111 # USE_AT                    Use features supported on AT and later systems (not available on XT) #
    112 #                                                                                                #
    113 ##################################################################################################
     82####################################################################################################
     83# Makefile to build XTIDE Universal BIOS.                                                          #
     84#                                                                                                  #
     85# Valid makefile targets are:                                                                      #
     86# all       Removes existing files and builds binary files in \Build                               #
     87# small     Builds 8 kiB binaries only (without checksum)                                          #
     88# large     Builds 15 kiB binaries only (without checksum)                                         #
     89# clean     Removes all files from \Build                                                          #
     90# checksum* Builds all and then generates checksum byte to all binary files                        #
     91# strings*  Compress src\Strings.asm to src\StringsCompressed.asm                                  #
     92#                                                                                                  #
     93# * at the end of target name means that Perl is required for the job.                             #
     94# Build directory must be created manually if it does not exist.                                   #
     95#                                                                                                  #
     96#                                                                                                  #
     97# Following modules can be included or excluded:                                                   #
     98# MODULE_8BIT_IDE             Support for 8-BIT IDE cards like XTIDE                               #
     99# MODULE_JRIDE                Support for JR-IDE/ISA                                               #
     100# MODULE_ADVANCED_ATA         Native support for some VLB IDE controllers                          #
     101# MODULE_BOOT_MENU            Boot Menu for selection of drive to boot from                        #
     102# MODULE_EBIOS                Enhanced functions for accessing drives over 8.4 GB                  #
     103# MODULE_HOTKEYS              Hotkey Bar to boot from any drive                                    #
     104# MODULE_IRQ                  IDE IRQ support                                                      #
     105# MODULE_SERIAL               Virtual hard disks using serial port                                 #
     106# MODULE_SERIAL_FLOPPY        Virtual floppy drives using serial port (requires MODULE_SERIAL)     #
     107# MODULE_STRINGS_COMPRESSED   Use compressed strings to save space                                 #
     108# MODULE_FEATURE_SETS         Power Management support                                             #
     109#                                                                                                  #
     110# Not modules but these affect the assembly:                                                       #
     111# ELIMINATE_CGA_SNOW          Prevents CGA snowing at the cost of a few bytes                      #
     112# RELOCATE_INT13H_STACK       Relocates INT 13h stack to top of stolen conventional memory         #
     113# RESERVE_DIAGNOSTIC_CYLINDER Reserve one L-CHS cylinder for compatibility with old BIOSes         #
     114# USE_186                     Use instructions supported by 80188/80186 and V20/V30 and later      #
     115# USE_286                     Use instructions supported by 286 and later                          #
     116# USE_386                     Use instructions supported by 386 and later                          #
     117# USE_AT                      Use features supported on AT and later systems (not available on XT) #
     118#                                                                                                  #
     119####################################################################################################
    114120}}}
    115121
     
    121127# Assembler preprocessor defines.                               #
    122128#################################################################
    123 DEFINES_COMMON = MODULE_BOOT_MENU MODULE_EBIOS MODULE_STRINGS_COMPRESSED
    124 
    125 DEFINES_XT = ELIMINATE_CGA_SNOW MODULE_SERIAL MODULE_SERIAL_FLOPPY
    126 DEFINES_XTPLUS = ELIMINATE_CGA_SNOW USE_186 MODULE_SERIAL MODULE_SERIAL_FLOPPY
    127 DEFINES_AT = USE_286 USE_AT MODULE_SERIAL MODULE_SERIAL_FLOPPY
    128 
    129 DEFINES_XT_LARGE = $(DEFINES_XT) MODULE_JRIDE MODULE_ADVANCED_ATA
    130 DEFINES_XTPLUS_LARGE = $(DEFINES_XTPLUS) MODULE_JRIDE MODULE_ADVANCED_ATA
    131 DEFINES_AT_LARGE = $(DEFINES_AT) MODULE_JRIDE MODULE_ADVANCED_ATA
    132 
    133 DEFINES_JRIDE_8K = ELIMINATE_CGA_SNOW MODULE_JRIDE
    134 DEFINES_386_8K = USE_386 USE_AT MODULE_ADVANCED_ATA
     129DEFINES_COMMON = MODULE_STRINGS_COMPRESSED MODULE_HOTKEYS MODULE_EBIOS MODULE_FEATURE_SETS RESERVE_DIAGNOSTIC_CYLINDER
     130DEFINES_COMMON_LARGE = MODULE_BOOT_MENU
     131
     132DEFINES_XT = $(DEFINES_COMMON) ELIMINATE_CGA_SNOW MODULE_8BIT_IDE MODULE_JRIDE MODULE_SERIAL MODULE_SERIAL_FLOPPY
     133DEFINES_XTPLUS = $(DEFINES_COMMON) $(DEFINES_XT) USE_186
     134DEFINES_AT = $(DEFINES_COMMON) USE_AT USE_286 RELOCATE_INT13H_STACK MODULE_IRQ MODULE_SERIAL MODULE_SERIAL_FLOPPY MODULE_ADVANCED_ATA
     135
     136DEFINES_XT_LARGE = $(DEFINES_XT) $(DEFINES_COMMON_LARGE)
     137DEFINES_XTPLUS_LARGE = $(DEFINES_XTPLUS) $(DEFINES_COMMON_LARGE)
     138DEFINES_AT_LARGE = $(DEFINES_AT) $(DEFINES_COMMON_LARGE)
     139
     140DEFINES_XT_TINY = MODULE_STRINGS_COMPRESSED MODULE_8BIT_IDE
     141DEFINES_386_8K = $(DEFINES_AT) USE_386
    135142
    136143
     
    146153These are the only parts in the makefile that you need to edit. The defines tell what modules are included in what builds.
    147154
    148 DEFINES_COMMON define the modules that are included in all builds.
    149 
    150 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.
     155DEFINES_COMMON define the modules that are included in all builds and DEFINES_COMMON_LARGE define additional modules for all large (15k) builds.
     156
     157DEFINES_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.
    151158
    152159DEFINES_XT_LARGE, DEFINES_XTPLUS_LARGE and DEFINES_AT_LARGE are for large builds (15k by default).
    153160
    154 Finally there are DEFINES_JRIDE_8K (8k JR-IDE/ISA build) and DEFINES_386_8K (AT build for 386+ with VLB controller support).
    155 
    156 If you want to make your own 8k AT build, modify DEFINES_COMMON and DEFINES_AT to include the modules you want. Then rebuild with _mingw32-make all_ or _mingw32-make checksum_.
     161Finally there are DEFINES_XT_TINY (XT build with minimal features) and DEFINES_386_8K (AT build for 386+).
     162
     163If 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_.
    157164
    158165One more thing you might want to change is the size of large build. It is 15k by default (15360 bytes). If you want 16k binary, set ROMSIZE_LARGE to 16384. For 32k build set it to 32768.
    159166
    160167
     168=== Module information ===
     169
     170====*MODULE_8BIT_IDE*====
     171This module contains support for XTIDE rev 1 and 2 and Lo-tech XT-CF.
     172
     173====*MODULE_JRIDE* _(requires and automatically includes MODULE_8BIT_IDE)_====
     174This module contains support for JR-IDE/ISA.
     175
     176====*MODULE_ADVANCED_ATA*====
     177Adds native support for VLB (and eventually PCI) IDE Controllers. At the moment there is support for QDI Vision QD6500 and QD6580 VLB IDE controllers.
     178
     179====*MODULE_BOOT_MENU* _(requires and automatically includes MODULE_HOTKEYS)_====
     180Adds boot menu to be selected from Hotkeybar. Boot menu displays drive details and allows selecting drive more easily but essentially it has all the same features as MODULE_HOTKEYS.
     181
     182====*MODULE_IRQ*====
     183Adds 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.
     184
     185====*MODULE_SERIAL*====
     186Virtual hard disks using serial port. [http://code.google.com/p/xtideuniversalbios/wiki/SerialDrives Instructions for emulating Serial Drives with the XTIDE Universal BIOS]
     187
     188====*MODULE_SERIAL_FLOPPY* _(requires and automatically includes MODULE_SERIAL)_====
     189Virtual floppy drives using serial port.
     190
     191====*MODULE_STRINGS_COMPRESSED*====
     192Use compressed strings to save space. This module should be always included.
     193
     194====*MODULE_FEATURE_SETS*====
     195Power Management support (you also need to enable it with XTIDECFG.COM).
     196
     197
     198=== Other features that affect assembly ===
     199
     200====*ELIMINATE_CGA_SNOW*====
     201Prevents CGA snowing at the cost of a few bytes.
     202
     203====*RELOCATE_INT13H_STACK*====
     204Relocates 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.
     205
     206====*RESERVE_DIAGNOSTIC_CYLINDER*====
     207Old 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.
     208
     209====*USE_186, USE_286 and USE_386*====
     210Determines 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.
     211
     212====*USE_AT*====
     213Assembles 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.
     214
    161215----
    162216= Building Configurator (XTIDECFG.COM) =
Note: See TracChangeset for help on using the changeset viewer.