Changes in v3.0+ (01/05/2015) (hbelusca)

- Remove support for special value "LiveCD" of SystemPath option
  for loading ReactOS since now we treat non-ARC SystemPath as
  a path relative to the boot path.

Changes in v3.0.0 (11/12/2007) (fball)

- Support for building an ARC Tree.
- Removal of registry write code.
- Removal of HARDWARE registry building code.
- Working WinLDR branch for booting NT4.

Changes in v2.5.0 (??/??/2007) (ion)

- Memory layout fixes to support NT boot
- Refactor PTE/PDE setup code
- Identity mapping support
- Set 0x80000000 as kernel base address, and all physical addresses with the high bit off (KSEG0_BASE) so that physical->virtual translation can be done with an OR.

Changes in v2.1.0 (??/??/2006) (ion)

- PE loading fixups and full NT-style driver loading

Changes in v2.0.0 (02/07/2005) (ion)

- Remove Multi-boot booting of ReactOS

Changes in v1.8.26 (10/30/2004) (chorns)

- Print stack frames on crashes.
- Users should report errors to ros-dev@reactos.com.

Changes in v1.8.25 (10/30/2004) (chorns)

- Support FULL_MAP command line option.
- Allow DEBUG to be set on command line.

Changes in v1.8.24 (09/20/2004) (hbirr)

- Implemented the driver loading by the sequence of tag entries
  in the GroupOrderList key.

Changes in v1.8.23 (30/08/2004) (ekohl)

- Fixed some compiler warnings.
- Detect and report PCI-BIOS.

Changes in v1.8.22 (21/05/2004) (navaraf)

- Fixed lots of bugs in NTFS code and added correct update sequence
  fixups handling and untested NTFS 3+ sparse file support.

Changes in v1.8.21 (21/05/2004) (navaraf)

- Experimental NTFS reading support with no boot code yet.
- Adjusted detection timeouts for PS/2 and RS232 to the minimum
  allowed by the specifications.
- Enabled the 'Press any key to boot from CD' message in the ISO
  boot code and show it only when some hard disk is present.

Changes in v1.8.20 (21/05/2004) (navaraf)

- Added support for special value "LiveCD" of SystemPath option
  for loading ReactOS. It uses the known boot drive information
  as the boot path.

Changes in v1.8.19 (12/20/2003) (ekohl)

- Detect PS/2 Port and Pointer Device (Mouse).
- Calculate CPU speed.
- Fixed delay counter overrun.

Changes in v1.8.18 (12/14/2003) (ekohl)

- Detect serial ports and serial pointer devices (Mice/Trackballs)

Changes in v1.8.17 (10/19/2003) (ekohl)

- Ignore case of registry key and value names

Changes in v1.8.16 (10/12/2003) (ekohl)

- Renamed a lot of variables and functions in the registry
- Fixed buggy cell size calculation

Changes in v1.8.15 (8/29/2003) (chorns)

- Add top-level makefile
- Add fdebug/.cvsignore
- Don't use rdel to remove files in tools/Makefile
- Remove warning in freeldr/mm/meminit.c

Changes in v1.8.14 (8/10/2003) (chorns)

- Clear screen to black when booting ReactOS

Changes in v1.8.13 (6/05/2003) (brianp)

- Added support for booting Linux 2.4.x kernels
- i386 exception handler now reports FreeLoader version number

Changes in v1.8.12 (5/25/2003) (ekohl)

- Added .inf-file parser
- SetupLdr loads and uses txtsetup.sif
- Removed .hiv (text-hive) parser

Changes in v1.8.11 (4/30/2003) (ekohl)

- Added DiskGetExtendedDriveParameters()
- Moved hardware detection into the arch directory
- Rewrote/completed harddisk detection
- Removed PCI and IDE detection
- Added basic CPU detection

Changes in v1.8.10 (4/27/2003) (chorns)

- Query BIOS for supported disk drives

Changes in v1.8.9 (4/25/2003) (chorns)

- Detect PCI busses
- Detect IDE controllers and devices
- Improved RegEnumValue()

Changes in v1.8.8 (4/25/2003) (ekohl)

- Added memmove().
- Added hardware hive export.

Changes in v1.8.7 (4/22/2003) (brianp)

- Added a file system recognizer to get around problems where
  the partition id did not match the file system type.

Changes in v1.8.6 (4/14/2003) (brianp)

- Fixed a bug in fathelp.asm where is wasn't adding the hidden sector
  count before performing a subtraction.

Changes in v1.8.5 (4/10/2003) (ekohl)

- Added support for binary system hive.

Changes in v1.8.4 (4/5/2003) (chorns)

- Added DOS compatible Master Boot Record (MBR)

Changes in v1.8.3 (3/18/2003) (brianp)

- Added _alloca() function because Mingw32 generates code that needs it
- Defined _mainCRTStartup in fathelp.asm because Mingw32 looks for that symbol

Changes in v1.8.2 (1/24/2003) (ekohl)

- Relaxed check for Int13-Extension support.
  Some BIOSes have a strange opinion about what is supported. :-/

Changes in v1.8.1 (1/20/2003) (ekohl)

- Fixed the ISO filesystem detection code.
- Removed IsSetupLdr.

Changes in v1.8 (1/18/2003) (brianp)

- Added F8 options menu
- Added custom Boot functionality
- Moved all OS= settings from [FreeLoader] section to [Operating Systems] section.
- Removed MessageLine= setting. MessageBox= now accepts "\n" as an escape character for newlines.
- Added descriptions for disk error codes returned by the BIOS.
- Device names like "fd0" and "hd0" and "hd1" as well as BIOS drive numbers can now be used as BootDrive= settings.

Changes in v1.7.12 (12/05/2002) (brianp)

- Minor tweak to UI code to allow description
  text to be displayed along with the progress
  bar.

Changes in v1.7.11 (12/05/2002) (brianp)

- Added memory map count to GetBiosMemoryMap() so that
  it doesn't just assume the size of the array.
- Fix so that we use the continuation value that
  the BIOS returns.

Changes in v1.7.10 (11/24/2002) (brianp)

- Added assembler versions of memcmp() memcpy() memset()
- Implemented Int386() so that real-mode interrupts can be called from C-code
- Removed unnecessary call in DbgPrint() macro (freeldr.sys is ~16k smaller now)
- 64-bit lba sector addressing for disk calls
- Re-coded biosdisk.S as i386disk.c
- Re-coded mem.S as i386mem.c
- Re-coded rtlcode.S as i386rtl.c
- Cleaned up i386trap.S so that it only saves the registers once.
- Re-coded biosvid.S as i386vid.c
- Video fade in/out
- VESA text modes supported now
- Offscreen buffering to remove flicker
- Standardized format of boot sector so that BootPartition is stored right before 0xaa55
- Prefixed all file system functions with 'Fs'

Changes in v1.7.9 (9/30/2002) (brianp)

- Fix for bug in BiosInt13ReadExtended() (biosdisk.S)
  by Christophe Bothamy & Mike Lerwill

Changes in v1.7.8 (9/7/2002) (ekohl)

- Added new 'bootcd' target.
- Removed/disabled debugging code.
- SetupLdr must not call BiosInt13ExtensionsSupported to check
  extended int13 capabilities because they are already used to
  boot a CD and some BIOSes return incorrect results when a CD-ROM
  drive is checked.

Changes in v1.7.7 (9/5/2002) (ekohl)

- fs/iso.c: Got iso-fs working again.
- reactos/setupldr.c: Implemented very simple setup loader.

Changes in v1.7.6 (8/31/2002) (ekohl)

- bootsect/isoboot.asm: Reduced read transfer size to ensure that
  the read buffer for an int13/ah=42h (extended read) does not
  cross a segment boundary.
- freeldr.c, bootmgr.c, setupldr.c, makefile: Renamed
  LoadBootManager() and ReactOSRunSetupLoader() to RunLoader().
  Either bootmgr.o or setupldr.o is used to build freeldr.sys or
  setupldr.sys

Changes in v1.7.5 (8/21/2002) (brianp)

- biosvid.S (BiosVideoDisableBlinkBit): Added code to
  disable the blink bit in the text mode character
  attribute byte so that the full range of
  background colors can be used.

Changes in v1.7.4 (8/20/2002) (brianp)

- Boot sector code now reports to freeldr.sys the partition
  that it was installed on. This is specified by a byte
  value in the boot sector code. By default the boot partition
  is set to zero which indicates the active (bootable)
  partition, unless the installer sets the value to non-zero.
  If FreeLoader is installed on a partition other than
  the active (bootable) partition then the installer must
  set this byte to that partition number. Otherwise
  FreeLoader will not be able to find freeldr.ini.
- i386trap.S: Added debug macros BREAKPOINT(),
  INSTRUCTION_BREAKPOINTX(), MEMORY_READWRITE_BREAKPOINTX(), &
  MEMORY_WRITE_BREAKPOINTX().
- partition.c (DiskGetPartitionEntry): Add the relative offset
  of the extended partition to the partitions start sector.
- ext2.c (Ext2ReadBlockPointerList, Ext2CopyIndirectBlockPointers,
  Ext2CopyDoubleIndirectBlockPointers, Ext2CopyTripleIndirectBlockPointers):
  Rewrote the block pointer functions so they actually work.
- ini_init.c (IniFileInitialize, IniOpenIniFile): Looks for freeldr.ini
  on both the active (bootable) partition and the partition
  passed in from the boot sector code.
- meminit.c (MmInitializeMemoryManager, MmFixupSystemMemoryMap,
  MmGetEndAddressOfAnyMemory, MmGetAddressablePageCountIncludingHoles,
  MmInitPageLookupTable): Fixed bug that would cause FreeLoader to
  have an off-by-one error when accessing the last entry in the
  page lookup table on systems with 4GB of memory (or memory mapped
  at the end of the address space).

Changes in v1.7.2 (8/7/2002) (brianp)

- Fragment size must be equal to the block size

Changes in v1.7.1 (8/7/2002) (brianp)

- Symbolic links on EXT2/3 are now supported

Changes in v1.7 (8/6/2002) (brianp)

- EXT2/EXT3 file system support.
- Does not yet support symbolic links or booting from an EXT2/3 partition.
- Fixed bug in UI code.
- Added '%%' format specifier to printf()-like functions.
- Added functions __udivdi3 & __umoddi3 so that 64-bit division is now supported.
- Changed types BYTE, WORD, DWORD, LONG, ULONG to U8, U16, U32, S32, U32
  so that you know the size of the variable across different
  architectures with different sized words & dwords, etc.
- Types CHAR, UCHAR, PCHAR, PUCHAR, WCHAR, PWCHAR have not been
  changed yet (I haven't decided exactly how I'm going to handle unicode)

Changes in v1.6.2 (7/28/2002) (brianp)

- Fix for GetFatEntry16 bug (fathelp.asm) by Mike Lerwill

Changes in v1.6.1 (7/22/2002) (brianp)

- Fix for disk caching while doing drive remapping

Changes in v1.6 (7/21/2002) (brianp)

- Added BIOS drive mapping functionality

Changes in v1.5 (7/13/2002)

- If symbols are available then pass them to the OS as multiboot modules

Changes in v1.4 (6/27/2002)

- Added separate configuration for a SETUPLDR version

Changes in v1.3.1 (6/8/2002)

- Implemented MmAllocateMemoryAtAddress()
- Fixed Linux boot code to go through the memory manager to allocate memory at 1MB

Changes in v1.3 (6/5/2002)

- Added protected mode exception handling in case FreeLoader crashes
- Reworked memory manager to use all of extended memory
- Reworked UI code, now supports multiple text-mode resolutions

Changes in v1.2.2 (5/4/2002)

- Fixed memory leak in menu.c

Changes in v1.2.1 (5/3/2002)

- Makefile updates
- Optimized the Makefile
- Removed recursive make functionality (builds much faster now)
- Places all output into one single directory
- Added automagically generated dependencies

Changes in v1.2 (4/30/2002)

- All Linux kernels are supported (zImage & bzImage, loaded high & low)
- Initrd support
- FreeLoader now compiles under Mingw32 instead of just DJGPP, but
  the Mingw32 linker seems to output a corrupt binary.

Changes in v1.01 (4/28/2002)

- Fixed FAT short file name buffer overflow that was causing
  some long filenames not to work correctly.

Changes in v1.0 (4/24/2002)

- FreeLoader version 1.0!
- Supports booting ReactOS
- Supports booting Linux bzImage kernels
- No initrd support (yet)
- No zImage support (yet)
- No ext2 file system support (yet)
- Supports FAT & ISO-9660 file systems
- Forward slashes '/' as well as backslashes '\' can be used
  for path names in FAT & ISO-9600
- Fixed bug in LBA code where it was only reading one sector
  even if you asked for more
- Fixed bug in FAT code, was also present in ISO-9660 code where
  it wasn't incrementing the buffer address correctly
