]> git.sesse.net Git - pistorm/blob - registers/registers_amiga.c
62e4255244614fe62d1fe98b8e9116b577973fac
[pistorm] / registers / registers_amiga.c
1 #include "../Gayle.h"
2 #include "../config_file/config_file.h"
3
4 #define GAYLEBASE 0xD80000  // D7FFFF
5 #define GAYLESIZE 0x6FFFF
6
7 int handle_register_read(unsigned int addr, unsigned char type, unsigned int *val) {
8     if (addr > GAYLEBASE && addr < GAYLEBASE + GAYLESIZE) {
9         switch(type) {
10         case OP_TYPE_BYTE:
11             *val = readGayleB(addr);
12             return 1;
13             break;
14         case OP_TYPE_WORD:
15             *val = readGayle(addr);
16             return 1;
17             break;
18         case OP_TYPE_LONGWORD:
19             *val = readGayleL(addr);
20             return 1;
21             break;
22         case OP_TYPE_MEM:
23             return -1;
24             break;
25         }
26     }
27     return -1;
28 }
29
30 int handle_register_write(unsigned int addr, unsigned int value, unsigned char type) {
31     if (addr > GAYLEBASE && addr < GAYLEBASE + GAYLESIZE) {
32         switch(type) {
33         case OP_TYPE_BYTE:
34             writeGayleB(addr, value);
35             return 1;
36             break;
37         case OP_TYPE_WORD:
38             writeGayle(addr, value);
39             return 1;
40             break;
41         case OP_TYPE_LONGWORD:
42             writeGayleL(addr, value);
43             return 1;
44             break;
45         case OP_TYPE_MEM:
46             return -1;
47             break;
48         }
49     }
50     return -1;
51 }