Microchip ZG2100 based WiFi - WiServer and WEP-64 problems - WiFiShield

I am using a Diamondback 1.0 WiFi from LinkSprite which uses the MicroChip ZG2100 WiFi module. There are several other WiFi shields using the same chip. They all seem to use the AsyncLabs code base to operate. The code can be found at:

Messages in various forums implies that WebServer should work out of the box once the correct configuration data is specified. But given the code base from github I don't see how that has worked. You will get many compilation errors. To get WedServer to compile I had to make the following changes.

clock_arch.c - Remove #include "wiring.h" - as it does not exist and with a #if 0 in the file to remove old code, what this include file was for is no longer needed.

WiServer.h - Class print has the wrong type associated with virtual void write (uint8_t); as it should be virtual size_t write (uint*_t);
Remove #include "WProgram.h" as this include file does not exist.

WiShield.cpp - Remove #include "WProgram.h"; - no such include.
Need to add: #define LOW 0x0; as LOW is not defined (it was probably defined in the old WProgram.h module.
You need to declare attachinterrupt before its use.
Add: void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode);

After making these changes, I was able to compile. Although I do get warning messages 'only initialized variables can be placed into program memory area'. This appears on each statement of the type 'const <variable_name> PROGMEM = { };. I don't know why the warning is generated when each of the statement have initialization data associated with them. I would think the warning should only be generated if one forget to specify the initialization information.

So after getting things to compile. I have not been able to connect to my network using WEP-64. I can link to my access point using ADHOC mode. The RED LED will light (of course I can't so anything since I have WEP enabled on the access point). To use WEP-64 I changed G2100.c to specify
cmd->keyLen = 5; instead of the default value of 13. I entered my 5 byte (10 hex digit) key into the wep_keys[] array as:
0x12, 0x34, 0x56, 0x78, 0x9A, and filled the rest of the arrary with 0x00 (a total of 13 x 4 bytes in the entire array).

Everything downloads fine but the board will not connect to my access point (LinkSys Wireless G WRT54G).

WiShield.cpp - Remove #include "WProgram.h"; - no such include.
Need to add: #define LOW 0x0; as LOW is not defined (it was probably defined in the old WProgram.h module.
You need to declare attachinterrupt before its use.
Add: void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode);

Wrong solution. The correct solution is to change WProgram.h to Arduino.h. I believe that this has come up on the order of 42 bazillion times this year, so far.

clock_arch.c - Remove #include "wiring.h" - as it does not exist and with a #if 0 in the file to remove old code, what this include file was for is no longer needed.

Wrong solution. The correct solution is to change wiring.h to Arduino.h.

I use a different board with the same chip but I can't connect either...
Did you find anything since your last post???