1 #include "../../Gayle.h"
2 #include "../../config_file/config_file.h"
4 #define GAYLEBASE 0xD80000 // D7FFFF
5 #define GAYLESIZE 0x6FFFF
7 #define CLOCKBASE 0xDC0000
8 #define CLOCKSIZE 0x010000
10 uint8_t rtc_emulation_enabled = 1;
12 void configure_rtc_emulation_amiga(uint8_t enabled) {
13 if (enabled == rtc_emulation_enabled)
16 rtc_emulation_enabled = enabled;
17 printf("Amiga RTC emulation is now %s.\n", (enabled) ? "enabled" : "disabled");
20 int handle_register_read_amiga(unsigned int addr, unsigned char type, unsigned int *val) {
21 if (!rtc_emulation_enabled && addr >= CLOCKBASE && addr < CLOCKBASE + CLOCKSIZE)
23 if (addr >= GAYLEBASE && addr < GAYLEBASE + GAYLESIZE) {
26 *val = readGayleB(addr);
30 *val = readGayle(addr);
33 case OP_TYPE_LONGWORD:
34 *val = readGayleL(addr);
45 int handle_register_write_amiga(unsigned int addr, unsigned int value, unsigned char type) {
46 if (!rtc_emulation_enabled && addr >= CLOCKBASE && addr < CLOCKBASE + CLOCKSIZE)
48 if (addr >= GAYLEBASE && addr < GAYLEBASE + GAYLESIZE) {
51 writeGayleB(addr, value);
55 writeGayle(addr, value);
58 case OP_TYPE_LONGWORD:
59 writeGayleL(addr, value);