From b02d5aea562265a9a40fac9bcdaaf47906491db2 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Thu, 9 Jun 2011 22:04:45 +0000 Subject: [PATCH] [FAT32] - Fix a bug in the new fat32 bootsector code. The old code was using a 32bit push, the new code uses 2 16 bit pushes - enable new fat32 and isobtrt bootsectors svn path=/trunk/; revision=52165 --- reactos/boot/freeldr/bootsect/CMakeLists.txt | 6 ++---- reactos/boot/freeldr/bootsect/fat32.S | 3 ++- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/reactos/boot/freeldr/bootsect/CMakeLists.txt b/reactos/boot/freeldr/bootsect/CMakeLists.txt index d128414b0e6..5b126a55469 100644 --- a/reactos/boot/freeldr/bootsect/CMakeLists.txt +++ b/reactos/boot/freeldr/bootsect/CMakeLists.txt @@ -3,17 +3,15 @@ if(ARCH MATCHES i386 OR ARCH MATCHES amd64) #CreateBootSectorTarget2(dosmbr ${CMAKE_CURRENT_SOURCE_DIR}/dosmbr.S ${CMAKE_CURRENT_BINARY_DIR}/dosmbr.bin 0) #CreateBootSectorTarget2(ext2 ${CMAKE_CURRENT_SOURCE_DIR}/ext2.S ${CMAKE_CURRENT_BINARY_DIR}/ext2.bin 0) -#CreateBootSectorTarget2(fat32 ${CMAKE_CURRENT_SOURCE_DIR}/fat32.S ${CMAKE_CURRENT_BINARY_DIR}/fat32.bin 7c00) +CreateBootSectorTarget2(fat32 ${CMAKE_CURRENT_SOURCE_DIR}/fat32.S ${CMAKE_CURRENT_BINARY_DIR}/fat32.bin 7c00) #CreateBootSectorTarget2(fat ${CMAKE_CURRENT_SOURCE_DIR}/fat.S ${CMAKE_CURRENT_BINARY_DIR}/fat.bin 0) CreateBootSectorTarget2(isoboot ${CMAKE_CURRENT_SOURCE_DIR}/isoboot.S ${CMAKE_CURRENT_BINARY_DIR}/isoboot.bin 7000) -#CreateBootSectorTarget2(isobtrt ${CMAKE_CURRENT_SOURCE_DIR}/isobtrt.S ${CMAKE_CURRENT_BINARY_DIR}/isobtrt.bin 0) +CreateBootSectorTarget2(isobtrt ${CMAKE_CURRENT_SOURCE_DIR}/isobtrt.S ${CMAKE_CURRENT_BINARY_DIR}/isobtrt.bin 0) if(NOT MSVC) CreateBootSectorTarget(dosmbr ${CMAKE_CURRENT_SOURCE_DIR}/dosmbr.asm ${CMAKE_CURRENT_BINARY_DIR}/dosmbr.bin 0) CreateBootSectorTarget(ext2 ${CMAKE_CURRENT_SOURCE_DIR}/ext2.asm ${CMAKE_CURRENT_BINARY_DIR}/ext2.bin 0) -CreateBootSectorTarget(fat32 ${CMAKE_CURRENT_SOURCE_DIR}/fat32.asm ${CMAKE_CURRENT_BINARY_DIR}/fat32.bin 7c00) CreateBootSectorTarget(fat ${CMAKE_CURRENT_SOURCE_DIR}/fat.asm ${CMAKE_CURRENT_BINARY_DIR}/fat.bin 0) -CreateBootSectorTarget(isobtrt ${CMAKE_CURRENT_SOURCE_DIR}/isobtrt.asm ${CMAKE_CURRENT_BINARY_DIR}/isobtrt.bin 0) endif() add_cd_file(TARGET dosmbr DESTINATION loader NO_CAB FILE ${CMAKE_CURRENT_BINARY_DIR}/dosmbr.bin FOR all) diff --git a/reactos/boot/freeldr/bootsect/fat32.S b/reactos/boot/freeldr/bootsect/fat32.S index 482451259d4..b8a1a59de57 100644 --- a/reactos/boot/freeldr/bootsect/fat32.S +++ b/reactos/boot/freeldr/bootsect/fat32.S @@ -181,7 +181,8 @@ ReadSectorsLBA: ReadSectorsSetupDiskAddressPacket: mov word ptr ds:[LBASectorsRead],cx - push 0 // push large 0 ? + push 0 + push 0 push eax // Put 64-bit logical block address on stack push es // Put transfer segment on stack push bx // Put transfer offset on stack