Files Corrupted on Save: How to Troubleshoot Source of Problem

ID: Q142116


The information in this article applies to:


SYMPTOMS

Files that you save to a floppy disk or to a network disk drive may intermittently become corrupted or damaged when you use any of the programs listed at the beginning of this article.


CAUSE

This problem may occur for either of the following reasons:

Testing for a conflict with Windows

To test for a conflict with Windows, use the following appropriate method.

Method 1: Microsoft Windows 95 Only

If you are using Microsoft Windows 95, do either of the following:

Method 2: Microsoft Windows 3.x or Windows for Workgroups Only

If you are using Windows 3.x or Windows for Workgroups, follow these steps:

  1. Start Windows with the following diagnostic switches:

    WIN /D:FSVX

    NOTE: The /D switch is used for troubleshooting problems when Windows does not start or run correctly. The following table lists each of the WIN.COM switches and its function.

    
                                           Which is equivalent to
                                           using this in the
          This                             [386enh] section of
          switch   Does this               System.ini file
          -------------------------------------------------------
    
          :F       Turns off 32-bit disk  32BitDiskAccess=FALSE
                   access.
    
          :S       Specifies that Win-   SystemROMBreakPoint=FALSE
                   dows should not use
                   ROM address space
                   between F000:0000 and
                   1 megabyte (MB) for a
                   break point.
    
          :V       Specifies that the ROM   VirtualHDIRQ=FALSE
                   routine handles
                   interrupts from the hard
                   drive controller.
    
          :X       Excludes all of the      EMMExclude=A000-FFFF
                  adapter area from the
                  range of memory that
                  Windows scans to find
                  unused space. 


  2. After you determine which switch or combination of switches, allows you to save Microsoft Excel files to be to an external drive without corruption, use a text editor such as Windows Notepad to add the corresponding line, or lines, to the [386enh] section of the System.ini file.



MORE INFORMATION

The following is a detailed description of the System.ini settings that can be changed in the [386enh] section.

32-bit Disk Access (FastDisk)

32-bit disk access technology was developed for Windows 3.1 and works with any drive controller that is WD1003 compatible. It allows Windows to bypass the BIOS and access the drive controller directly which allows for better performance in Windows and MS-DOS programs running under Windows. In Windows for Workgroups 3.11, 32-bit disk access allows 32- bit file access to be a client to it instead of using the Real Mode Mapper (RMM.D32). This allows 32-bit file access to run even faster. If your drive controller is not WD1003 compatible, contact your hardware vendor to see if a 32-bit disk access driver is available for your drive controller. The System.ini setting for this setting is as follows:
32BitDiskAccess=<Boolean>
The default setting is Off if your hard disk is capable of supporting 32- bit disk access. Otherwise, this setting is not present in the System.ini file. The purpose of this entry is to turn 32-bit disk access on or off. To change this setting, choose the 386 Enhanced icon in the Control Panel window. If this setting is not present in the System.ini file, the 32-bit Disk Access check box will not appear in the Virtual Memory dialog box of Control Panel.

SystemROMBreakPoint Statement

The SystemROMBreakPoint statement specifies whether Windows should use ROM address space between F000:0000 and 1 MB for a break point. Windows in 386 enhanced mode normally searches this space to find a special instruction that is used as a system break point. If this address space contains something other than permanently available ROM, you should disable this setting. The System.ini setting for this is as follows:
SystemROMBreakPoint=<Boolean>
The default setting is True if Windows is started in real mode of the 80386/486 CPU; it is False if Windows is started in virtual mode of the 80386/486 CPU. Most 386 memory managers, such as QEMM and 386MAX, require this value to be set to False if the memory manager running Windows is started in virtual mode. Otherwise, Windows is started in real mode. To change this setting, use a text editor such as Windows Notepad to edit the System.ini file.

NOTE: It is very important that you type this line in the System.ini file EXACTLY as it appears above. Any errors--including a difference in case--can cause Windows to ignore the setting in the System.ini file.

VirtualHDIrq Statement

The VirtualHDIrq statement if enabled in Windows 386 enhanced mode can terminate interrupts from the hard disk controller, bypassing the ROM routine that handles these interrupts. Some hard disk drives might require this setting to be disabled in order for interrupts to be processed correctly. If this setting is disabled, the ROM routine handles the interrupts, which slows down system performance.

The System.ini setting for this is as follows:
VirtualHDIrq=<Boolean>
The default setting is On for AT-compatible computers; the setting is Off for all other computers. To change this setting, use a text editor such as Windows Notepad to edit the System.ini file.

NOTE: It is very important that you type this line in the System.ini file EXACTLY as it appears above. Any errors--including using a different case--can cause Windows to ignore the setting in the System.ini file.

EMMExclude Statement

The EMMExclude statement in the System.ini file specifies a range of memory that Windows will not scan to find unused address space. This statement has the side effect of turning off the RAM and ROM search code for the range. The range (two paragraph values separated by a hyphen) must be between A000 and EFFF. This scanning can interfere with some adapters that use the same memory area. The starting value is rounded down and the ending value is rounded up to a multiple of 16K. For example, you could set EMMExclude=C800- CFFF to prevent Windows from scanning the addresses C800:0000 through CFFF:000F. You can specify more than one range by including more than one EMMExclude line.

NOTE: If any upper memory block (UMB) provider is installed in the Config.sys file, this switch has no effect in the region the UMB provider is using. The UMB provider has priority in the UMB area. For this reason, you should disable the UMB provider (such as EMM386.EXE), restart the system, and then try the WIN /D:X switch.

The System.ini setting for this is as follows:
EMMExclude=<paragraph-range>
There is no default setting. To change this setting, use a text editor such as Windows Notepad to edit the System.ini file.

NOTE: It is very important that you type this line in the System.ini file exactly as it appears above. Any errors--including a difference in case--can cause Windows to ignore the setting in the System.ini file.

Additional query words: 5.00c 8.00 97 damage damaged tshoot


Keywords          : xlloadsave xlwin 
Version           : WINDOWS:5.0,5.0c,7.0,97
Platform          : WINDOWS 
Issue type        : 

Last Reviewed: April 14, 1999