}
void *iplThread(void *args) {
- printf("thread!/n");
+ printf("IPL thread running/n");
while (42) {
+
+ if (GET_GPIO(1) == 0){
+ toggle = 1;
+ m68k_end_timeslice();
+ //printf("thread!/n");
+ } else {
+ toggle = 0;
+ };
usleep(1);
}
+
}
- int main() {
+ int main(int argc, char *argv[]) {
int g;
const struct sched_param priority = {99};
}
}
- if (address > GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
- return readGayleB(address);
+ if (gayle_emulation_enabled) {
+ if (address > GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
+ return readGayleB(address);
+ }
}
- if (address < 0xffffff) {
+ address &=0xFFFFFF;
+// if (address < 0xffffff) {
return read8((uint32_t)address);
- }
+// }
- return 1;
+// return 1;
}
unsigned int m68k_read_memory_16(unsigned int address) {
}
}
- if (address > GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
- return readGayle(address);
+ if (gayle_emulation_enabled) {
+ if (address > GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
+ return readGayle(address);
+ }
}
- if (address < 0xffffff) {
+// if (address < 0xffffff) {
+ address &=0xFFFFFF;
return (unsigned int)read16((uint32_t)address);
- }
+// }
- return 1;
+// return 1;
}
unsigned int m68k_read_memory_32(unsigned int address) {
}
}
- if (address > GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
- return readGayleL(address);
+ if (gayle_emulation_enabled) {
+ if (address > GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
+ return readGayleL(address);
+ }
}
- if (address < 0xffffff) {
+// if (address < 0xffffff) {
+ address &=0xFFFFFF;
uint16_t a = read16(address);
uint16_t b = read16(address + 2);
return (a << 16) | b;
return;
}
- if (address > GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
- writeGayleB(address, value);
- return;
+ if (gayle_emulation_enabled) {
+ if (address > GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
+ writeGayleB(address, value);
+ return;
+ }
}
-
+/*
if (address == 0xbfe001) {
ovl = (value & (1 << 0));
printf("OVL:%x\n", ovl);
return;
}
- if (address > GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
- writeGayle(address, value);
- return;
+ if (gayle_emulation_enabled) {
+ if (address > GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
+ writeGayle(address, value);
+ return;
+ }
}
- if (address < 0xffffff) {
+// if (address < 0xffffff) {
+ address &=0xFFFFFF;
write16((uint32_t)address, value);
return;
- }
- return;
+// }
+// return;
}
void m68k_write_memory_32(unsigned int address, unsigned int value) {
return;
}
- if (address > GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
- writeGayleL(address, value);
+ if (gayle_emulation_enabled) {
+ if (address > GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
+ writeGayleL(address, value);
+ }
}
- if (address < 0xffffff) {
+// if (address < 0xffffff) {
+ address &=0xFFFFFF;
write16(address, value >> 16);
write16(address + 2, value);
return;