*** /dev/null
--- memory.c	Mon Aug 23 20:04:10 2010
***************
*** 531,536 ****
           break;
        }
  */
        case 0x4:
        case 0x6:
           // Data Array
--- 531,539 ----
           break;
        }
  */
+ #ifdef GEKKO
+       case 0x2:
+ #endif
        case 0x4:
        case 0x6:
           // Data Array
***************
*** 582,587 ****
           break;
        }
  */
        case 0x4:
        case 0x6:
           // Data Array
--- 585,593 ----
           break;
        }
  */
+ #ifdef GEKKO
+       case 0x2:
+ #endif
        case 0x4:
        case 0x6:
           // Data Array
***************
*** 638,643 ****
           // Address Array
           return AddressArrayReadLong(addr);
        }
        case 0x4:
        case 0x6:
           // Data Array
--- 644,652 ----
           // Address Array
           return AddressArrayReadLong(addr);
        }
+ #ifdef GEKKO
+       case 0x2:
+ #endif
        case 0x4:
        case 0x6:
           // Data Array
***************
*** 689,694 ****
           return;
        }
  */
        case 0x4:
        case 0x6:
           // Data Array
--- 698,706 ----
           return;
        }
  */
+ #ifdef GEKKO
+       case 0x2:
+ #endif
        case 0x4:
        case 0x6:
           // Data Array
***************
*** 742,747 ****
           return;
        }
  */
        case 0x4:
        case 0x6:
           // Data Array
--- 754,762 ----
           return;
        }
  */
+ #ifdef GEKKO
+       case 0x2:
+ #endif
        case 0x4:
        case 0x6:
           // Data Array
***************
*** 788,804 ****
           WriteLongList[(addr >> 16) & 0xFFF](addr, val);
           return;
        }
        case 0x2:
        {
           // Purge Area
           return;
        }
        case 0x3:
        {
           // Address Array
           AddressArrayWriteLong(addr, val);
           return;
        }
        case 0x4:
        case 0x6:
           // Data Array
--- 803,824 ----
           WriteLongList[(addr >> 16) & 0xFFF](addr, val);
           return;
        }
+ #ifndef GEKKO
        case 0x2:
        {
           // Purge Area
           return;
        }
+ #endif
        case 0x3:
        {
           // Address Array
           AddressArrayWriteLong(addr, val);
           return;
        }
+ #ifdef GEKKO
+       case 0x2:
+ #endif
        case 0x4:
        case 0x6:
           // Data Array
***************
*** 909,915 ****
     {
        p = strdup(p);
        for (i = 0; i < strlen(p); i++)
!          p[i] = toupper(p[i]);
        if (strcmp(p, ".COF") == 0 || strcmp(p, ".COFF") == 0)
        {
           MappedMemoryLoadCoff(filename);
--- 929,935 ----
     {
        p = strdup(p);
        for (i = 0; i < strlen(p); i++)
!          p[i] = (char)toupper((int)p[i]);
        if (strcmp(p, ".COF") == 0 || strcmp(p, ".COFF") == 0)
        {
           MappedMemoryLoadCoff(filename);
