#include "main.h"
#include "platforms/platforms.h"
#include "input/input.h"
-#include "gpio/gpio.h"
#include "platforms/amiga/Gayle.h"
#include "platforms/amiga/gayle-ide/ide.h"
#include "platforms/amiga/amiga-registers.h"
+#include "platforms/amiga/rtg/rtg.h"
+#include "gpio/gpio.h"
int kb_hook_enabled = 0;
int mouse_hook_enabled = 0;
char mouse_dx = 0, mouse_dy = 0;
char mouse_buttons = 0;
+extern volatile unsigned int *gpio;
+extern volatile uint16_t srdata;
+
#define KICKBASE 0xF80000
#define KICKSIZE 0x7FFFF
printf("Failed to open keyboard event source.\n");
}
- sched_setscheduler(0, SCHED_FIFO, &priority);
- mlockall(MCL_CURRENT); // lock in memory to keep us from paging out
-
InitGayle();
signal(SIGINT, sigint_handler);
m68k_set_reg(M68K_REG_PC, 0x0);
}
-/*
- pthread_t id;
- int err;
- err = pthread_create(&id, NULL, &iplThread, NULL);
- if (err != 0)
- printf("\ncan't create IPL thread :[%s]", strerror(err));
- else
- printf("\n IPL Thread created successfully\n");
-*/
char c = 0;
m68k_pulse_reset();
}
}
}*/
-/*
- if (toggle == 1){
- srdata = read_reg();
- m68k_set_irq((srdata >> 13) & 0xff);
- } else {
- m68k_set_irq(0);
- };
- usleep(1);
-*/
-
- gpio_handle_irq();
+
+ //gpio_handle_irq();
+ GPIO_HANDLE_IRQ;
}
stop_cpu_emulation:;
unsigned int target = 0; \
switch(cfg->platform->id) { \
case PLATFORM_AMIGA: { \
+ if (address >= PIGFX_RTG_BASE && address < PIGFX_RTG_BASE + PIGFX_RTG_SIZE) { \
+ return rtg_read((address & 0x0FFFFFFF), a); \
+ } \
if (custom_read_amiga(cfg, address, &target, a) != -1) { \
return target; \
} \
if (address >= cfg->custom_low && address < cfg->custom_high) { \
switch(cfg->platform->id) { \
case PLATFORM_AMIGA: { \
+ if (address >= PIGFX_RTG_BASE && address < PIGFX_RTG_BASE + PIGFX_RTG_SIZE) { \
+ rtg_write((address & 0x0FFFFFFF), value, a); \
+ return; \
+ } \
if (custom_write_amiga(cfg, address, value, a) != -1) { \
return; \
} \