Great!
> This leads to new and modified questions (i.e. you may ignore my previous
> note):
>
> 1. Isn't it possible to get more detailed possible causes for the return
code
> GLE_LIBRARY_PROTOCOL_ERROR for the case where an indirectly
> required library is the source of the problem ?
See below for explanation.
> - what is the exact condition being violated ?
The library you require is newer than the one on the system. In other
words, you're asking for a library with a higher protocol number than the one
on the system. GEOS does this checking because newer drivers/libraries might
have functions that your geode requires. If you can't get the version of the
driver/library you need then it's possible your geode would crash trying to
use an older version.
> - which two protocol numbers are compared (if at all) ?
> (PCMCIA library with device driver, or with the system, or with
the
> application)
The protocol number of the library you want (specified in the file header
of the .geo file) and the protocol number of the library on the system
(stored in it's file header).
> 2. Is it possible for me to change the protocol number of the PCMCIA
> library ? I experimented already, and found out that I'm able to
generate
> a .REV file for the PCMCIA library, but I rather ask you before I
> may damage something.
This requires modifying the .geo file of the library on the target system.
This is not a solution to the problem. It sounds like you need to get a more
recent version of the library and put it in the emulator system. Which
library are you using? What is the time/date stamp of the .geo on your target
system? Is there a more recent version on the SDK CD-ROM that you could use
instead?
> 3. Do you have any idea what a reasonable protocol number would be ?
> (assuming that the protocol number is the source of the problem)
See previous answer as to why this isn't the solution you want.
> 4. Is it (a) necessary and (b) possible for me to reset the protocol
number
> of my device driver after having it increased to 12 ?
Yes, delete the .rev file and all non-source files (e.g. .ec, .nc, .ebj,
.obj, .rsc, .geo, .sym). Then run grev again to get the protocol number you
want, then recompile your geode.
> 5. What can I expect when I move to the real Omnigo ? (So far I'm still
> with the emulator).
> Are the protocol numbers of the Omnigo Simulator and that of the real
> Omnigo identical ?
I believe the file set is identical. If you need to replace any of the
system geodes on the emulator, you will also need to replace them on the
OmniGo itself. This is simple to do: When packaging your geode using Shipper,
simply include the up-to-date library your geode requires in the package,
making sure to specify the correct target directory (e.g.
\GEOWORKS\SYSTEM\PCMCIA). When the end-user runs Installer to install your
package onto their OmniGo, the new library will be written to RAM. If you
reboot GEOS on the OmniGo, it should seek out the new version of the library
and use that, rather than the one stored in ROM. Rebooting may not be
necessary, but it will make GEOS use the new version of the library for
certain.
Nathan