Memory Card Explorer and MCELIB Frequently Asked Questions
The current MCE version is 3.21; enhancements and changes in this version are described in the current readme file.
Most queries are answered in this FAQ list. Additionally, known problems with the current MCE version are listed in the MCE Update text file.
If you have any further questions or require assistance with an issue not described here please complete our MCE Support Request Form.
1. GENERAL QUERIES
Q1.1a I always get the message “Unrecognised card type” when I put a card in the slot. What's wrong with my installation? OR
Q1.1b I get the big blue screen program crash when I start MCE in NT4, 2000 or XP. What's wrong with my installation?
(Answer...)
Q1.2 My ATA card is not recognised by MCE. Why? (Answer...)
Q1.3 My system has locked up when I select a slot with a NETWORK card in it. What’s happening? (Answer...)
Q1.4 Why does the checksum obtained from “Compare” disagree with the one found in the standalone operation “Checksum”? (Answer...)
Q1.5 MCE seems to corrupt my card after the file I have chosen to write to it. What is happening? (Answer...)
Q1.6 I have two ATA cards that are 48M bytes in size but from different vendors. I read the image from one and try to write it back to the other. MCE reports that the file is to large why? (Answer...)
Q1.7 I am experiencing problems reading/writing large ATA cards (Answer...)
Q1.8 The Status line on MCE appears very small, I cannot read it (Answer...)
Q1.9 Winexec Fails With Return Code 87 (Answer...)
Q1.10 I cannot write to my flash card (Write and erase operations fail) (Answer...)
Q1.11 My flash card cannot be identified (Answer...)
Q1.12 My PC won't go into suspend mode (Answer...)
2. DEMO SPECIFIC QUERIES
Q2.1 My demo period of 30 days has expired and I want to extend it. How can I do this? (Answer...)
3. QUESTIONS FROM DEVELOPERS
Q3.1 Where is the mcelib.lib file? Why haven’t you provided one? (Answer...)
Q3.2 When I try to run a card operation I get status/error 20 “Incompatible version of mcelib.dll” or “Attempting to work with incompatible mcelib.dll”. (Answer...)
Q3.3 I want to program from a specific start/end address in my memory card but these are not on block boundaries. Data either side must not change. What do I have to do to get round the problem? (Answer...)
4. Windows NT4/2000/XP SPECIFIC QUERIES
Q4.1 As soon as I run function MCE_EvaluateCard() I get the Blue Screen of Death. Help! (Answer...)
Q4.2 I'm running Windows 2000 or XP when logged in as a User and MCE keeps reporting: "Please exit MCE and try another window address.......". MCE then promptly terminates. This problem occurs for whatever window address I try to use. (Answer...)
GENERAL QUERIES AND ANSWERS
Q1.1a I always get the message “Unrecognised card type” when I put a card in the slot. What's wrong with my installation?
OR
Q1.1b I get the big blue screen program crash when I start MCE in NT4, 2000 or XP. What's wrong with my installation?
The most likely problem will be that the installation process has not successfully reserved a P.C. memory window for MCE/MCEDEMO to use. The default set-up is D0000-D3FFFH. Until a memory window is correctly allocated MCE WILL NOT WORK and on NT platforms MCE will crash.
In this case you will need to manually set up the memory window; because there are a number of factors which determine how this should be done please read our comprehensive on-line guide.
Q1.2 My ATA card is not recognised by MCE. Why?
A1.2 This is probably because it has not been enabled in MCE.
MCE Versions 3-05 and later:
Please check the Other Features dialog under set-up. Set “ATA detection enable” to checked and also set the “Always use the ATA I/O address of 2E0-2EFH” selection. Quit and restart MCE for changes to take effect.
If this specific I/O address is in use on your system by other hardware then use the Command line method described below to set an alternative I/O address range. i.e. replace i2e0 with i2f0 providing IO range 2f0-2ff is available. Uncheck the “Always use the ATA I/O address of 2e0-2efH” selection.
MCE Versions before 3-05:
Add the command line option i2e0 to the command line starting up MCE. This tells MCE to use IO addresses
2e0-2ef when attempting to evaluate ATA cards. Without this information MCE will always respond with 'Unknown card type'
when you plug in an ATA card. “c:\ElanPCCard\Elan Memory Card Explorer\mce.exe” i2e0
For further information refer to the help file MCEHELP under "Installation".
Q1.3 My system has locked up when I select a slot with a NETWORK card in it. What’s happening?
A1.3 The action of MCE interrogating a network card to see if it is a linear memory card may cause
it to lock up. Other applications attempting activity with this card type at the same time as MCE/MCELIB may also prove
problematic. MCE was not intended to be used on these card types.
If you have a slot in which this card type is always placed
then you can prevent MCE from looking at it with command line option X. This allows MCE to skip specified slots.
Additionally command line option S will specify the slot for MCE to start on.
e.g. start on 2nd slot, never use slot 1 : “c:\ElanPCCard\Elan Memory Card Explorer\mce.exe” s2 x00000001
Similar problems may arise from other I/O card types, e.g. modems / comm. / system formatted ATA cards.
Windows 95/98 and Millennium:
Note that MCE/MCELIB issue 3-03 now identifies cards of this type as IO from their in built C.I.S. (Card Information Structure). It will not then go on and attempt to identify a linear memory card type. This revised process should prevent problems occurring.
Windows NT4 and 2000
Do not allow MCE to interrogate IO card type PC-Cards by setting MCE to ignore the slot positions where these card types are in use (as described above). This has to be set-up by the user!
Q1.4 Why does the checksum obtained from “Compare” disagree with the one found in the standalone operation “Checksum”?
A1.4 The standalone Checksum performs a checksum of the whole card or between the set start and end addresses. The Compare checksum is performed from the start of card or the start address for the length of the file it is being compared against.
Q1.5 MCE seems to corrupt my PC card after writing a file to part of it. What is happening?
A1.5. MCE card operations are block based. This block size will vary depending on the card type inserted at the time. If the file selected does not have a length that takes it to a block boundary the remaining byte locations will be overwritten with FF’s. This is a consequence of the block erase part of a write operation
Example 1. A 2M byte 16 bit Flash Series 2 card has a block size of 128K, the start and end addresses are set for the whole card. If the file written is 120K then there will be 120K of data and the remainder of the card will be erased (all = FFH).
Example 2. A 2M byte 16 bit Flash Series 2 card has a block size of 128K, the start and end addresses are set to 0 and 128K(=0FFFFH). If the file written is 120K then there will be 120K of data, followed by 8K of bytes = FFH and the remainder of the data will be unchanged.
Q1.6 I have two ATA cards that are 48Mbytes in size but from different vendors. I read the image from one and try to write it back to the other. MCE reports that the file is to large - why?
A1.6 MCE always refuses to write a file that is larger than the card address range set.
Suppliers of ATA cards usually approximate their size to the nearest Mbyte. So although they may be nearly the same size they are not exactly the same size. To copy one to the other you must set an end address that MCE will accept for both ATA cards. Then proceed to read the master ATA to file and then write it to the copy.
Tip : To find a card’s size go to the menu selection Setup / Addresses and remove the check on “Operations applied to whole card” and set the End address to FFFFFFFF. When you then select OK the end address will be corrected to the size of the card and displayed (in hexadecimal) in a warning dialog.
Q1.7 I am experiencing problems reading/writing large ATA cards
A1.7 This applies to operations on cards greater than 128M bytes. The problem is that MCE has a memory leak, this occurs during card operations and self fixes at the end of the process. For very large cards the system will run out of memory and either stop or crash. When this happens is dependant on the PC memory available, the applications running and their resource demand.
MCE Version 3-14 will resolve this issue.
Q1.8 The Status line on MCE appears very small, I cannot read it.
A1.8 This is specifically a Windows 2000 problem - The library used in the development application gets its sizing wrong.
The solution is to use a MCE command line option in the target line. This forces a different layout and makes the status line larger :
- Locate the MCE icon and right mouse click on it and then select properties
- Find the target line and modify it by adding the window option :
target line: "c:\ElanPCCard\Memory Card Explorer\mce.exe" - For new MCE layout add the character 'r', so the new target line becomes :
"c:\ElanPCCard\Memory Card Explorer\mce.exe" r
(Notice that the option comes after the quotes and with a space character separating it.)
Q1.9 Winexec Fails With Return Code 87
The following error message may appear when running the InstallShield setup.exe program:
"Winexec failed return=87"
Solution: This error message may appear when the InstallShield setup.exe program is executed over a network. Copy all the files on the distribution disk to a local folder and run setup.exe from this folder.
Q1.10 I cannot write to my flash card (Write and erase operations fail)
Ensure that if the card has a write protect switch that it is set to "Write protect off". If write failure is still occurring then it is possible failure can be for one of the reasons given below.
- If you were attempting to write (erase or progam) to a Flash Series 1 or some types of Flash Series 2 card then the failure may be because your Laptop cannot provide the 12V Vpp required by the card. This is particularly true for the latest Laptop/Notebook models. Please check out the specification with your Laptop Manufacturer and your cards voltage requirements from the PC-Card Supplier. Desktops with fitted PCMCIA adapters may be OK. Elans' P-Series range of products supports 12V cards. Other desktop adapters may also provide 12V but check with the manufacturer.
- It is possible that the write/erase algorithm is failing. This can be due to ageing of the flash cells when they fall outside of the algorithm performance criteria set by the manufacturer. In this circumstance a failure is posted. It is also possible to damage or part damage early flash cards (= some of the card can still be used). With this type of failure the card data does change and so there is an identifiable difference between a "failure to supply the required power" and a "card failure".
Q1.11 My flash card cannot be identified
Ensure that if your card has a write protect switch that it is set to "Write protect off". One reason for the failure can be that Flash Series 1 and some Flash Series 2 cards require 12V to be applied to the card in order for MCE to get the flash component ID's. (please see the answer for "I cannot write to my flash card")
Some ATA cards describe themselves now as simply "Flash" cards. These types of cards are typically available in sizes 16M,32,64,128,256,512,1G,2G. To identify these cards please remember to enable the ATA options in MCE found under menu "Setup / Other Features". i.e. select the following "I/O Card Options":
- Do not interrogate I/O cards for Memory Card Signatures
- ATA detection enable
- Always use the default ATA I/O address of 2e0-2efH
2 DEMO SPECIFIC QUERIES
Questions for full MCE product also apply to MCEDEMO; If using DLL library functions refer to section MCELIB Questions from Developers.
Q2.1 My demonstration period of 30 days has expired and I want to extend it. How do I do this?
A2.1 You can either Install MCEDEMO on a different PC or re-install Windows then re-install MCEDEMO. Sorry, no other choices can be offered! - it is time to purchase the software.
MCEDEMO before version 3-05:
Before MCE version 3-05 the demo version offered only limited functionality.
- Restricted read/write block of data to the card. The size of this block is entirely dependant on the card type in the currently selected socket: SRAM = 64K, FLASH = 64K / 128K / 256K / 512K (device dependant), ATA=1 TRACK.
- Start and stop addresses are not allowed in MCEDEMO before V3-05
- Why can't I ATA Initialise or Format my ATA card?
QUESTIONS FROM DEVELOPERS USING MCELIB
Q3.1 Where is the mcelib.lib file? Why haven’t you provided one?
A3.1 Note : This is required for static linking, dynamic linking does not require a .lib file.
To produce a .lib file that would work for you we would need to have your version of compiler and its support files.
Borland and Microsoft have supplied utilities that can prepare suitable .lib files from a DLL. Borlands utility
is called implib.exe and Microsofts is lib.exe. see the file Lang2Dll.txt provided in our ElanPCCard program Group .
Q3.2 When I try to run a card operation I get status/error 20 “Incompatible version of mcelib.dll” or “Attempting to work with incompatible mcelib.dll”.
A3.2 The version of MCELIB.dll supplied with MCE is protected and will only work with this designated GUI.
The library provided on the separate disk “MCE DLL ENGINE” contains the full unprotected version of this library.
The library supplied on the MCEDEMO product will work with user GUI’s but only for 30 days starting from the installation date.
Tip - if you are still having problems with this error message then locate all versions of MCE_LIB using Windows file/find.
Leave only the correct library on the drive.
Q3.3 I want to program from a specific start/end address in my memory card but these are not on block boundaries. Data either side must not change. What do I have to do to get round the problem?
A3.3 Get the block size from the function MCE_GetCardEraseDetail. (only after MCE_EvaluateCard).
Then work out valid card start and end addresses on block boundaries that encompass the region to be updated and read this card
data into a temporary file.
Overwrite the temporary file data from the calculated offset with the new data and write this combined file out to the card.
Alternatively use MCE_SetAddresses to correct the passed in addresses required to the nearest block size. Remember to re-submit corrected values again to this function to have them accepted!
Windows NT4/2000/XP SPECIFIC QUERIES
Q4.1 In NT4 As soon as I run function MCE_EvaluateCard() I get the Blue Screen of Death. Help!
A4.1 You probably haven’t told MCELIB what PC Memory Window you wish to use with the function.
Unlike Windows 95/98 versions you must call MCE_CheckWindow. The example sets up the standard window for
use: MCE_CheckWindow(0xd0000);
Q4.2 I'm running Windows 2000 or XP when logged in as a User and MCE keeps reporting: "Please exit MCE and try another window address.......". MCE then promptly terminates. This problem occurs for whatever window address I try to use.
Notes :
- When logged in as an Administrator MCE will function normally.
- It will apply to versions of MCE 3-13 and earlier.
- Only the following Windows Operating Systems are affected: W2000 & XP.
A4.2 This problem is to do with file permissions on your operating system.
When logged in as a User MCE calls upon driver pccgocls.sys for information but because it is set 'load on demand' the operating system for safety/security reasons will not load it. By pre-setting the driver to load "Automatically" the process can be repaired.
To fix, you will need: Administrator rights to change the way the Elan driver pccgocls.sys is started by the system.
You can do this either manually (below) or by running the provided file mceW2KXP_fix313.reg.
Manual Change:
- Goto
Control Panel \System \Hardware \Device Manager \Device Manager. - Set the Menu option "View" to "Show Hidden Devices".
- Find the PCCGoCls driver, select it and set the Start-up Type to "Automatic".
- Re-start the PC logging in as a User and re-test MCE.