mirror of
https://github.com/captain-amygdala/pistorm.git
synced 2026-01-11 23:43:13 +00:00
52 lines
1.3 KiB
C
52 lines
1.3 KiB
C
#include "../Gayle.h"
|
|
#include "../config_file/config_file.h"
|
|
|
|
#define GAYLEBASE 0xD80000 // D7FFFF
|
|
#define GAYLESIZE 0x6FFFF
|
|
|
|
int handle_register_read(unsigned int addr, unsigned char type, unsigned int *val) {
|
|
if (addr > GAYLEBASE && addr < GAYLEBASE + GAYLESIZE) {
|
|
switch(type) {
|
|
case OP_TYPE_BYTE:
|
|
*val = readGayleB(addr);
|
|
return 1;
|
|
break;
|
|
case OP_TYPE_WORD:
|
|
*val = readGayle(addr);
|
|
return 1;
|
|
break;
|
|
case OP_TYPE_LONGWORD:
|
|
*val = readGayleL(addr);
|
|
return 1;
|
|
break;
|
|
case OP_TYPE_MEM:
|
|
return -1;
|
|
break;
|
|
}
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
int handle_register_write(unsigned int addr, unsigned int value, unsigned char type) {
|
|
if (addr > GAYLEBASE && addr < GAYLEBASE + GAYLESIZE) {
|
|
switch(type) {
|
|
case OP_TYPE_BYTE:
|
|
writeGayleB(addr, value);
|
|
return 1;
|
|
break;
|
|
case OP_TYPE_WORD:
|
|
writeGayle(addr, value);
|
|
return 1;
|
|
break;
|
|
case OP_TYPE_LONGWORD:
|
|
writeGayleL(addr, value);
|
|
return 1;
|
|
break;
|
|
case OP_TYPE_MEM:
|
|
return -1;
|
|
break;
|
|
}
|
|
}
|
|
return -1;
|
|
}
|