Changeset 509 in xtideuniversalbios


Ignore:
Timestamp:
Mar 2, 2013, 4:24:04 PM (11 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Updated build instructions for v2.0.0 beta 3.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wiki/BuildInstructions.wiki

    r495 r509  
    55= Introduction =
    66
    7 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 2.
     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 3.
    88
    99
     
    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. The makefile looks like below for XTIDE Universal BIOS v2.0.0 beta 2:
     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 3:
    8181{{{
    8282####################################################################################################
     
    8686# all       Removes existing files and builds binary files in \Build                               #
    8787# small     Builds 8 kiB binaries only (without checksum)                                          #
    88 # large     Builds 15 kiB binaries only (without checksum)                                         #
     88# large     Builds 12 kiB binaries only (without checksum)                                         #
    8989# clean     Removes all files from \Build                                                          #
    9090# checksum* Builds all and then generates checksum byte to all binary files                        #
    9191# strings*  Compress src\Strings.asm to src\StringsCompressed.asm                                  #
     92# unused*   Checks if there are any unused functions that can be removed to save space             #
    9293#                                                                                                  #
    9394# * at the end of target name means that Perl is required for the job.                             #
     
    113114# RESERVE_DIAGNOSTIC_CYLINDER Reserve one L-CHS cylinder for compatibility with old BIOSes         #
    114115# 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                          #
     116# USE_286                     Use instructions supported by 286 and later (defines USE_UNDOC_INTEL)#
     117# USE_386                     Use instructions supported by 386 and later (defines USE_286)        #
    117118# USE_AT                      Use features supported on AT and later systems (not available on XT) #
    118119# USE_UNDOC_INTEL             Optimizations for Intel CPU:s - do NOT use on NEC V20/V30/Sony CPU:s #
     
    128129# Assembler preprocessor defines.                               #
    129130#################################################################
    130 DEFINES_COMMON = MODULE_STRINGS_COMPRESSED MODULE_HOTKEYS MODULE_EBIOS MODULE_FEATURE_SETS RESERVE_DIAGNOSTIC_CYLINDER
    131 DEFINES_COMMON_LARGE = MODULE_BOOT_MENU MODULE_8BIT_IDE MODULE_8BIT_IDE_ADVANCED
    132 
    133 DEFINES_XT = $(DEFINES_COMMON) ELIMINATE_CGA_SNOW MODULE_8BIT_IDE MODULE_SERIAL MODULE_SERIAL_FLOPPY
     131DEFINES_COMMON = MODULE_STRINGS_COMPRESSED MODULE_HOTKEYS MODULE_8BIT_IDE MODULE_SERIAL MODULE_SERIAL_FLOPPY MODULE_EBIOS MODULE_FEATURE_SETS RESERVE_DIAGNOSTIC_CYLINDER
     132DEFINES_COMMON_LARGE = MODULE_BOOT_MENU MODULE_8BIT_IDE_ADVANCED
     133
     134DEFINES_XT = $(DEFINES_COMMON) ELIMINATE_CGA_SNOW MODULE_8BIT_IDE_ADVANCED
    134135DEFINES_XTPLUS = $(DEFINES_COMMON) $(DEFINES_XT) USE_186
    135 DEFINES_AT = $(DEFINES_COMMON) USE_AT USE_286 USE_UNDOC_INTEL RELOCATE_INT13H_STACK MODULE_IRQ MODULE_SERIAL MODULE_SERIAL_FLOPPY MODULE_ADVANCED_ATA
     136DEFINES_AT = $(DEFINES_COMMON) USE_AT USE_286 RELOCATE_INT13H_STACK MODULE_IRQ MODULE_ADVANCED_ATA
    136137
    137138DEFINES_XT_LARGE = $(DEFINES_XT) $(DEFINES_COMMON_LARGE)
     
    142143DEFINES_386_8K = $(DEFINES_AT) USE_386
    143144
     145DEFINES_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
     146
     147
    144148###################
    145149# Other variables #
     
    147151
    148152# Target size of the ROM, used in main.asm for number of 512B blocks and by checksum Perl script below
    149 ROMSIZE = 8192
    150 ROMSIZE_LARGE = 15360
     153BIOS_SIZE = 8192        # For BIOS header (use even multiplier!)
     154ROMSIZE = $(BIOS_SIZE)  # Size of binary to build when building with make checksum
     155BIOS_SIZE_LARGE = 12288
     156ROMSIZE_LARGE = $(BIOS_SIZE_LARGE)
    151157}}}
    152158
    153159These are the only parts in the makefile that you need to edit. The defines tell what modules are included in what builds.
    154160
    155 DEFINES_COMMON define the modules that are included in all builds and DEFINES_COMMON_LARGE define additional modules for all large (15k) builds.
     161DEFINES_COMMON define the modules that are included in all builds and DEFINES_COMMON_LARGE define additional modules for all large builds.
    156162
    157163DEFINES_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.
    158164
    159 DEFINES_XT_LARGE, DEFINES_XTPLUS_LARGE and DEFINES_AT_LARGE are for large builds (15k by default).
     165DEFINES_XT_LARGE, DEFINES_XTPLUS_LARGE and DEFINES_AT_LARGE are for large builds (12k by default).
    160166
    161167Finally there are DEFINES_XT_TINY (XT build with minimal features) and DEFINES_386_8K (AT build for 386+).
     
    163169If 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_.
    164170
    165 One 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.
     171One 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.
    166172
    167173
     
    169175
    170176====*MODULE_8BIT_IDE*====
    171 This module contains support for XTIDE rev 1 and 2 and Lo-tech XT-CF.
     177This module contains support for XTIDE rev 1 and 2 and Lo-tech XT-CF v2/v3/Lite PIO mode.
    172178
    173179====*MODULE_8BIT_IDE_ADVANCED* _(requires and automatically includes MODULE_8BIT_IDE)_====
    174 This module contains support for JR-IDE/ISA and more advanced modes for XT-CF.
     180This module contains support for JR-IDE/ISA and more advanced modes for XT-CF v2.
    175181
    176182====*MODULE_ADVANCED_ATA*====
    177183Adds native support for VLB (and eventually PCI) IDE Controllers. At the moment there is support for QDI Vision QD6500 and QD6580 VLB IDE controllers.
    178184
     185====*MODULE_EBIOS*====
     186Support for Phoenix Enhanced Disk Drive Specification. Allows to access more than 8 GB but requires support from operating system (Windows 9x and later).
     187
    179188====*MODULE_BOOT_MENU*====
    180 Adds 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.  It can also be included without MODULE_HOTKEYS, in which case the menu is always entered during the boot process.
     189Boot 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.
     190
     191====*MODULE_HOTKEYS*====
     192Displays hotkeys during drive detections. Hotkeys allows boot drive selection, ROM Boot, Serial Drive Scanning and Boot Menu.
    181193
    182194====*MODULE_IRQ*====
     
    210222Determines 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.
    211223
     224====*USE_UNDOC_INTEL*====
     225Allows 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.
     226
    212227====*USE_AT*====
    213228Assembles 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.
Note: See TracChangeset for help on using the changeset viewer.