1 // SPDX-License-Identifier: MIT
4 #include "config_file/config_file.h"
5 #include "amiga-registers.h"
7 uint8_t rtc_emulation_enabled = 1;
8 extern int gayle_emulation_enabled;
10 void configure_rtc_emulation_amiga(uint8_t enabled) {
11 if (enabled == rtc_emulation_enabled)
14 rtc_emulation_enabled = enabled;
15 printf("Amiga RTC emulation is now %s.\n", (enabled) ? "enabled" : "disabled");
18 int handle_register_read_amiga(unsigned int addr, unsigned char type, unsigned int *val) {
19 if (gayle_emulation_enabled) {
20 if (!rtc_emulation_enabled && addr >= CLOCKBASE && addr < CLOCKBASE + CLOCKSIZE)
22 if (addr >= GAYLEBASE && addr < GAYLEBASE + GAYLESIZE) {
25 *val = readGayleB(addr);
29 *val = readGayle(addr);
32 case OP_TYPE_LONGWORD:
33 *val = readGayleL(addr);
45 int handle_register_write_amiga(unsigned int addr, unsigned int value, unsigned char type) {
46 if (gayle_emulation_enabled) {
47 if (!rtc_emulation_enabled && addr >= CLOCKBASE && addr < CLOCKBASE + CLOCKSIZE)
49 if (addr >= GAYLEBASE && addr < GAYLEBASE + GAYLESIZE) {
52 writeGayleB(addr, value);
56 writeGayle(addr, value);
59 case OP_TYPE_LONGWORD:
60 writeGayleL(addr, value);