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