Syncrotech sent me the demo version of Elan Memory Card Explorer version
3.21 which is matched for use with the Elan P423 PCMCIA Card Reader/Writer
and in the Windows XP environment.

The demo version has 30 days use to try it in set-up mode, but only 5
"lives" in full function mode.  To make it work again I may have to use a
backed up version of my Registry, or re-install WinXP, mb drivers, etc.

Previously with Ricoh's XP v1.01 incarnate memory block setting of (E8)
E800-EBFF, the program would start-up and see the Linear Flash Card.

Now with Elan's version 3.21 not only does that memory block not work but
none of the other choices listed in Ricoh's manual which states:

By default, MCE requires the exclusive use of a block of real mode memory at
linear address d0000H to d3fffH. If MCERICOH - XP does not detect the flash
memory card with the default memory block settings, this indicates that the
default memory block is already in use. Try one of the following settings: 

(D0) D000-D3FF (default)        (E0) E000-E3FF 
(D4) D400-D7FF          (E4) E400-E7FF 
(D8) D800-DBFF          (E8) E800-EBFF
(DC) DC00-DFFF          (EC) EC00-EFFF

In the Elan MCE op guide which is from 1999 and doesn't completely cover up
to v3.21 from 2005 it states:

"wXX"

XX=base memory address for card operations e.g. "wD8" will use D8000h as a
base address. XX can be C0 to EF for most PCs. Default is D0. The 4K region
from address chosen must be "free".

Lastly in the txt file with the MCE v3.21 installation files it is stated:

VERSION 3-13
                

* This function now works in the same way for all versions of Windows

* This function should be called before any other (Except
MCE_Customisations). It not only checks memory for use it registers the
memory for exclusive use by our program. It also allows the library function
to initialize ready for card memory accesses. 
         
* Failure to initialize successfully using this function will result in NT4
access violation messages during library function calls.                 
         
* The MCE_CheckWindow function does 2 tasks
        
 -It registers the memory window with Windows. A handle to this memory
window is saved in MCELIB for MCELIB use.
 -It tests the memory window allocated to check that it is unused.
         
* Function MCE_ReleaseWindow() can be used to de-allocate the handle.
  (when multiple MCE_CheckWindow()s calls are made use MCE_ReleaseWindow()
before the next MCE_CheckWindow())
         
* Function MCE_Restore() also deallocates this handle as part of the MCELIB
closedown operations.

Inputs:         DWORD
                        -----
Used to pass in the memory window address for the PCIC card controller to
use. The value passed in will be used as the memory address in subsequent
card operations.  Pass in 00000000H for an automatically allocated memory
window.  The window it attempts to use is directly above the PC's system
SDRAM.
         
To maintain compatibility with earlier MCELIB versions the application
software should pass in D0000H instead of 0H to this function call. 
         
Note that only 4000H increments should be used. 
         
Possible range from C0000H to EC000H or any free address above 100000H.  
A memory block of size 4000H is reserved  with Windows and tested by the
MCELIBfunction for suitability.

Showing my absolute ignorance here, without a chart showing the blocks of
memory I can try I'm lost.  

I have scoured Synchrotech's website, no answers there.  I found the old
Elan FAQ pages saved at the Wayback Machine but no answers there.  

Searching the "web" for memory address block settings in XP didn't seem to
turn up what I was looking for either.

Thanks for indulging me once again.

Don Resor



Reply via email to