Commit graph

155 commits

Author SHA1 Message Date
Hartmut Birr
a39bff34c3 Set the hidden sector value from boot sector with the correct partition offset.
svn path=/trunk/; revision=3924
2003-01-02 21:43:52 +00:00
Hartmut Birr
8c7e8c4bbc Recalculate the partition value for freeldr. Freeldr uses a different partition numbering like linux.
svn path=/trunk/; revision=3923
2003-01-02 21:42:56 +00:00
Eric Kohl
afe60dcdbf Add bootsectors and FREELDR.SYS to bootcd.
svn path=/trunk/; revision=3884
2002-12-21 14:54:47 +00:00
Brian Palmer
0853d8cf3d 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.

svn path=/trunk/; revision=3824
2002-12-06 04:43:02 +00:00
Brian Palmer
f54c214e8e 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.

svn path=/trunk/; revision=3823
2002-12-06 04:00:41 +00:00
Hartmut Birr
6dc09f22d2 Initialize the registers for the next call to Int386 in GetBiosMemoryMap.
svn path=/trunk/; revision=3797
2002-11-27 20:31:17 +00:00
Hartmut Birr
dd6e3b8b31 Intialize the size for the bios memory map.
svn path=/trunk/; revision=3796
2002-11-27 20:29:43 +00:00
Brian Palmer
425bbb1543 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'

svn path=/trunk/; revision=3782
2002-11-24 19:10:06 +00:00
Brian Palmer
39204fdedc Fix for MS's idiocy on a Win98 boot disk I have.
Apparently they use ESP without initializing anything more than SP.

svn path=/trunk/; revision=3677
2002-10-30 23:05:17 +00:00
Hartmut Birr
50d4270639 Fixed the initializing of the memory map for reactos.
svn path=/trunk/; revision=3634
2002-10-16 16:39:15 +00:00
Brian Palmer
784dc1a198 Changes in v1.7.9 (9/30/2002) (brianp)
- Fix for bug in BiosInt13ReadExtended() (biosdisk.S)
  by Christophe Bothamy & Mike Lerwill

svn path=/trunk/; revision=3589
2002-09-30 23:30:32 +00:00
Brian Palmer
c3457c3890 Added more compiler flags
svn path=/trunk/; revision=3564
2002-09-25 04:22:37 +00:00
Eric Kohl
fb29fa8a10 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.

svn path=/trunk/; revision=3465
2002-09-06 22:38:10 +00:00
Eric Kohl
28da6203e2 Got iso-fs working again.
Implemented very simple setup loader.

svn path=/trunk/; revision=3460
2002-09-05 15:31:45 +00:00
Eric Kohl
fd7d5a399f Build FREELDR.SYS and SETUPLDR.SYS in a single make run.
Fixed build process for SETUPLDR.SYS.

svn path=/trunk/; revision=3445
2002-08-31 18:09:31 +00:00
Eric Kohl
bd3e14d1f7 Added a workaround for broken BIOSes.
Load SETUPLDR.SYS instead of FREELDR.SYS.
Disabled waiting for key.

svn path=/trunk/; revision=3444
2002-08-31 18:00:25 +00:00
Brian Palmer
0f2ad47bfb Fix for disk error while Loading FreeLoader... discovered by Dave Albert
In ReadSectorsCHS it was pop'ing values off the stack that hadn't been push'ed

svn path=/trunk/; revision=3417
2002-08-28 04:46:17 +00:00
Brian Palmer
d3991649c5 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.

svn path=/trunk/; revision=3374
2002-08-22 05:33:59 +00:00
Brian Palmer
f64597ef92 Initial commit for utility to install FreeLoader under Linux
svn path=/trunk/; revision=3373
2002-08-21 03:34:01 +00:00
Brian Palmer
367cfa7085 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).

svn path=/trunk/; revision=3372
2002-08-21 03:32:49 +00:00
Brian Palmer
10e943e65d Preliminary EXT2 boot sector code
Fixed bug in FAT32 boot sector where it wasn't properly updating the sector load address

svn path=/trunk/; revision=3325
2002-08-09 17:34:24 +00:00
Brian Palmer
7cbe6176ad Defined FAST_SYMLINK_MAX_NAME_SIZE
svn path=/trunk/; revision=3322
2002-08-08 04:46:46 +00:00
Brian Palmer
793d60fcff Changes in v1.7.2 (8/7/2002) (brianp)
- Fragment size must be equal to the block size

svn path=/trunk/; revision=3321
2002-08-08 04:38:43 +00:00
Brian Palmer
3cb41fbb8b Changes in v1.7.1 (8/7/2002) (brianp)
- Symbolic links on EXT2/3 are now supported

svn path=/trunk/; revision=3320
2002-08-08 04:28:08 +00:00
Brian Palmer
f5ac842ed4 Fix for compiling in non-debug (release) mode. (Reduces binary size from 128k to 82k currently)
svn path=/trunk/; revision=3319
2002-08-07 05:37:07 +00:00
Brian Palmer
70d2e3812d 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)

(isn't this an awesome commit? ;-) Just look at that list of files)

svn path=/trunk/; revision=3318
2002-08-07 05:13:18 +00:00
Brian Palmer
410b3629c3 Changes in v1.6.2 (7/28/2002) (brianp)
- Fix for GetFatEntry16 bug (fathelp.asm) by Mike Lerwill

svn path=/trunk/; revision=3306
2002-07-29 06:49:58 +00:00
Brian Palmer
ac37c58b98 Fix for disk caching while doing drive remapping
svn path=/trunk/; revision=3293
2002-07-23 06:46:55 +00:00
Brian Palmer
1aa76f94bd Added BIOS drive mapping functionality
svn path=/trunk/; revision=3284
2002-07-22 03:44:08 +00:00
Brian Palmer
17731321a4 *** empty log message ***
svn path=/trunk/; revision=3223
2002-07-14 22:33:06 +00:00
Casper Hornstrup
66b0087b28 If symbols are available then pass them to the OS as multiboot modules
svn path=/trunk/; revision=3213
2002-07-13 12:55:07 +00:00
Brian Palmer
7fc762dac1 Changes in v1.4 (6/27/2002)
- Added separate configuration for a SETUPLDR version

svn path=/trunk/; revision=3158
2002-06-28 00:50:16 +00:00
Brian Palmer
c2f51ccadd Makefile now generates a sorted symbol file - freeldr.sym
svn path=/trunk/; revision=3153
2002-06-26 22:44:07 +00:00
Brian Palmer
3d14932152 Fixed Makefile so it will work when you do a clean checkout and the tools aren't already built.
svn path=/trunk/; revision=3152
2002-06-26 22:32:43 +00:00
Eric Kohl
27a682e098 Fixed severe bugs in the default value handling of RegSetValue() and RegQueryValue().
Implemented simple registry links.
Added creation of the CurrentControlSet link.

svn path=/trunk/; revision=3132
2002-06-20 16:31:59 +00:00
Brian Palmer
3acd677b53 Fixed GetBiosMemoryMap() function.
svn path=/trunk/; revision=3117
2002-06-18 21:40:27 +00:00
Brian Palmer
63ea3fb94c Cross-platform tools added to Makefiles.
svn path=/trunk/; revision=3061
2002-06-13 00:39:49 +00:00
Casper Hornstrup
669a991546 Add multi and expand registry key type support.
svn path=/trunk/; revision=3049
2002-06-11 20:10:36 +00:00
Brian Palmer
a89e08d368 Caches the current FAT sector so it doesn't read again if it doesn't have to.
svn path=/trunk/; revision=3047
2002-06-11 16:58:31 +00:00
Casper Hornstrup
65ae3074e9 Kill warnings.\n Use DbgPrint for debugging registry.
svn path=/trunk/; revision=3046
2002-06-11 16:23:20 +00:00
Brian Palmer
8bab1a8f2d Optimized FAT32 bootsector to read more than 1 sector at a time on systems supporting LBA calls.
svn path=/trunk/; revision=3045
2002-06-11 05:41:45 +00:00
Eric Kohl
c9e12ce035 Handle multi-string group order list properly.
svn path=/trunk/; revision=3030
2002-06-09 13:28:49 +00:00
Brian Palmer
662162a601 Fixed bug that was preventing FreeLoader from booting on FAT32 systems.
svn path=/trunk/; revision=3028
2002-06-09 00:03:58 +00:00
Brian Palmer
20327bf11a 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

svn path=/trunk/; revision=3027
2002-06-08 19:20:01 +00:00
Brian Palmer
0bb513eddf Makefile fixes
svn path=/trunk/; revision=3018
2002-06-06 21:33:13 +00:00
Brian Palmer
ac99fa1fdc 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

svn path=/trunk/; revision=3010
2002-06-06 05:58:37 +00:00
Brian Palmer
e5423f156b Compared the output of fat.asm from nasm v0.98 and nasm v0.98.32.
Modified fat.asm to produce the same output under both versions.

svn path=/trunk/; revision=2973
2002-05-22 22:15:28 +00:00
Brian Palmer
86b351ce41 Changes in v1.2.2 (5/4/2002)
- Fixed memory leak in menu.c

svn path=/trunk/; revision=2906
2002-05-04 09:25:47 +00:00
Brian Palmer
5d75740eea Quick Makefile fix
svn path=/trunk/; revision=2905
2002-05-04 08:19:22 +00:00
Brian Palmer
ab6d9f2a6b 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

svn path=/trunk/; revision=2904
2002-05-03 23:56:18 +00:00
Brian Palmer
467e8c55cc 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.

svn path=/trunk/; revision=2899
2002-04-30 06:26:33 +00:00
Brian Palmer
a28d727f4e Fixed FAT short file name buffer overflow that was causing some long filenames not to work correctly.
svn path=/trunk/; revision=2892
2002-04-28 20:31:42 +00:00
Eric Kohl
8ae62fd2db Removed direct debug output.
Replaced direct calls to bios routines.

svn path=/trunk/; revision=2869
2002-04-25 22:24:24 +00:00
Eric Kohl
7111fc6bfa Added the original copyright from isolinux.
Added 'Press any key to boot from CD' feature.
Changed load path to '\REACTOS\FREELDR.SYS'.

svn path=/trunk/; revision=2868
2002-04-25 14:22:25 +00:00
Brian Palmer
a9450f5a72 FreeLoader version 1.0!
Supports booting Linux bzImage kernels
No initrd support (yet)
No zImage support (yet)
No ext2 file system support (yet)
Forward slashes '/' as well as backslashes '\' can be used for path names in FAT & ISO-9660
Fixed bug in LBA code where is was only reading one sector even if you asked for more
Fixed bug in FAT code, was also present in ISO-9660 code

svn path=/trunk/; revision=2867
2002-04-25 02:48:15 +00:00
Eric Kohl
c1e3c3d7fe Added ISO-9660 support.
svn path=/trunk/; revision=2865
2002-04-23 09:08:59 +00:00
Eric Kohl
13206a61a1 Added ISO-9660 boot sector description.
svn path=/trunk/; revision=2864
2002-04-22 12:05:07 +00:00
Eric Kohl
bba0443d8d Added .cvsignore file.
Added cdrom bootsector.

svn path=/trunk/; revision=2863
2002-04-22 10:02:35 +00:00
Brian Palmer
c44d02099d Added LBA support to FAT12/16 boot sector
Now the FAT12/16 boot sector properly works on all FAT12/16 partition types (1, 4, 6, 0xe)
Fixed a few small bugs

svn path=/trunk/; revision=2852
2002-04-16 06:11:08 +00:00
Brian Palmer
25ca1a385c Rewrote .ini file code - should be much faster (especially in bochs)
Leading whitespace in a line is now ignored
Changed .ini file comment character from '#' to ';' to be compatible with MS
There is still a mysterious memory allocation failed bug however!?

svn path=/trunk/; revision=2741
2002-03-20 00:39:32 +00:00
Brian Palmer
c08d8bcfb9 Fixed bug in LBA code.
svn path=/trunk/; revision=2705
2002-03-12 19:55:08 +00:00
Brian Palmer
1bd3b67ed2 Reworked LoadAndBootPartition() function, got rid of warnings.
svn path=/trunk/; revision=2696
2002-03-11 18:50:17 +00:00
Brian Palmer
513784c84a Fixed a bug in the LBA extensions detection code.
Fixed a bug in the root directory size calculations for FAT12 & FAT16 (I must have been smoking something when I wrote that).
Started work on new .ini file code, the old stuff is just way too slow.

svn path=/trunk/; revision=2676
2002-03-06 18:32:22 +00:00
Brian Palmer
b764471786 Improved memory management
The heap now sets it's size at run time instead of being hard coded

svn path=/trunk/; revision=2656
2002-02-27 21:33:59 +00:00
Brian Palmer
ad979612af Fix for buffer conflict between fat code and cache code - by Mike Lerwill
svn path=/trunk/; revision=2654
2002-02-26 23:17:22 +00:00
Brian Palmer
c66e8c39d3 Added full disk partition management functions
Extended partitions are supported (untested)
If you call OpenDrive() with Partition == 0 you get the active (or bootable) partition
Partitions 1 - 4 are the primary partitions
Partitions 5 - n are the extended partitions
Also added disk parameter detection code (always assumes 512 byte sector size, I don't like that but I don't see any other way)

svn path=/trunk/; revision=2651
2002-02-26 00:26:35 +00:00
Brian Palmer
67d2ffb153 Fixed bug in partition table code where it incorrectly calculated the partition start sector
svn path=/trunk/; revision=2624
2002-02-14 23:11:05 +00:00
Brian Palmer
bfa03497ad CacheInitializeDrive() no longer retains old cache data on removable drives
Fixed small bug where it could possibly try to read more sectors than the BIOS supports

svn path=/trunk/; revision=2611
2002-02-08 23:58:12 +00:00
Brian Palmer
148e40a24e Reworked the boot sector & boot drive code
You can again use FreeLoader to dual boot between two drives or a boot sector file

svn path=/trunk/; revision=2547
2002-01-24 00:59:16 +00:00
Brian Palmer
198a544138 Removed code to save screen contents before entering freeldr
Moved all architecture specific code to the arch & arch/i386 directories
Renamed asmcode.* to arch.*

svn path=/trunk/; revision=2545
2002-01-23 19:57:42 +00:00
Brian Palmer
fd75e7d985 Improved disk error reporting
svn path=/trunk/; revision=2544
2002-01-22 23:56:08 +00:00
Brian Palmer
b26dfc9d77 Fixed bug that occurred during DEBUG builds
svn path=/trunk/; revision=2530
2002-01-19 09:40:29 +00:00
Eric Kohl
a2760cfdd4 Disabled nls file loading
svn path=/trunk/; revision=2529
2002-01-19 03:30:28 +00:00
Brian Palmer
5db0abce79 Better LBA support
Correctly determines FAT type based on cluster count instead of partition id

svn path=/trunk/; revision=2528
2002-01-19 00:37:06 +00:00
Eric Kohl
c5c65dd160 Fixed obvious typos.
svn path=/trunk/; revision=2527
2002-01-18 22:43:51 +00:00
Eric Kohl
c78f940a00 Added missing prototype.
svn path=/trunk/; revision=2526
2002-01-18 22:42:25 +00:00
Brian Palmer
41e1df9977 Recommitting file as binary
svn path=/trunk/; revision=2525
2002-01-18 19:20:32 +00:00
Brian Palmer
b80569cee7 Accidentally committed this file without the -kb flag
svn path=/trunk/; revision=2524
2002-01-18 19:19:43 +00:00
Brian Palmer
ec2583c6d5 Added disk cache
Optimized disk reads so it reads a track at a time or 64k if LBA

svn path=/trunk/; revision=2523
2002-01-18 05:59:58 +00:00
Eric Kohl
5a38010118 Added NLS-file loader.
svn path=/trunk/; revision=2441
2001-12-28 21:21:27 +00:00
Eric Kohl
d6278aba2a Fixed a bug.
svn path=/trunk/; revision=2440
2001-12-28 21:17:37 +00:00
Brian Palmer
c157992a67 Fixed Makefile problem
Added tool to fix Win2k/XP NTVDM bug so DJGPP works without crashing

svn path=/trunk/; revision=2407
2001-11-29 01:56:04 +00:00
Brian Palmer
12e0be217f Re-organized things a slight bit.
Split up stdlib.c and renamed it to rtl.
Separated disk functions from file system functions.

svn path=/trunk/; revision=2403
2001-11-28 10:26:53 +00:00
Eric Kohl
16e5929c1c Added system hive support.
Started hardware detection.

svn path=/trunk/; revision=2396
2001-11-27 12:42:47 +00:00
Eric Kohl
7a1bc8eaca Added system hive support.
svn path=/trunk/; revision=2395
2001-11-26 22:33:20 +00:00
Eric Kohl
303f10c6fd Fixed a few compiler warinings.
svn path=/trunk/; revision=2379
2001-11-18 20:20:42 +00:00
Eric Kohl
5d289c12b2 Fixed GetExtendedMemorySize(). My i486-DX4/75 didn't like the old routine.
svn path=/trunk/; revision=2376
2001-11-17 00:00:33 +00:00
Eric Kohl
60a1a5d26d Updated for booting from C:
svn path=/trunk/; revision=2375
2001-11-16 20:27:59 +00:00
Eric Kohl
228ec52af6 Added loading the HAL.
svn path=/trunk/; revision=2374
2001-11-16 20:25:37 +00:00
Eric Kohl
dfd00972c9 Fixed warnings.
svn path=/trunk/; revision=2373
2001-11-16 20:24:43 +00:00
Brian Palmer
3662f1f720 BIOS Int 13h Extensions Support
New .ini file format (sort of) - changed some parameter names, etc.
More efficient .ini file parsing code
More efficient use of memory, smaller image file
Total rewrite of file system code (the old stuff sucked)
VFAT Long File Names now supported!
ReactOS is the only boot type supported currently, disabled all others (temporarily)

svn path=/trunk/; revision=2372
2001-11-15 07:48:33 +00:00
Phillip Susi
32ec8c6868 Only pass file name as module name, not full path
svn path=/trunk/; revision=2301
2001-10-17 01:34:07 +00:00
Brian Palmer
9dd23174c8 Fixed nasm calling bug.
svn path=/trunk/; revision=2166
2001-08-10 06:44:31 +00:00
Eric Kohl
cc7a62391e Fixed nasm calling bug.
svn path=/trunk/; revision=2160
2001-08-07 07:15:24 +00:00
Brian Palmer
d32f7b5e5b Added support for debug prints over a RS232 line.
svn path=/trunk/; revision=2159
2001-08-07 06:19:43 +00:00
Brian Palmer
1b761836a3 Simple Win32 boot sector installer. Will not work under Win9x.
svn path=/trunk/; revision=2158
2001-08-07 05:37:13 +00:00
Brian Palmer
17dc9b5270 Full memory management support (memory.c & memory.h & mem.S)
Preliminary debug code (debug.c & debug.h)
Reworked .ini file code (parseini.c & parseini.h)
Size optimizations (fat.asm & fat32.asm)
FAT12/16 boot sector now fully understands the FAT (fat.asm)

svn path=/trunk/; revision=2049
2001-07-06 22:05:05 +00:00
Brian Palmer
5efafbf03e Win2k FAT32 Boot Sector Disassembly
svn path=/trunk/; revision=1992
2001-06-20 20:31:35 +00:00
Brian Palmer
4750bc0160 Implemented memory detection & BIOS memory map
Added memory management prototypes

svn path=/trunk/; revision=1961
2001-06-12 16:12:50 +00:00
Eric Kohl
80f8038f24 Fixed MaxRootEntries. This caused disk corruption.
svn path=/trunk/; revision=1955
2001-06-09 15:51:23 +00:00