dev_pmagja.cc Source File
Back to the index.
Go to the documentation of this file.
46 #define PMAGJA_FIRSTOFFSET 0x40030
68 uint64_t idata = 0, odata = 0;
82 fatal(
"[ pmagja: write to addr 0x%08llx: 0x%08llx ]\n",
83 (
long long)relative_addr, (
long long)idata);
87 switch (relative_addr) {
91 debug(
"[ pmagja: read from pip offset: 0x%08llx ]\n",
95 debug(
"[ px: write to pip offset: 0x%08llx ]\n",
100 if (relative_addr >= 0x200000) {
102 for (i=0; i<len; i++) {
103 int ofs = relative_addr - 0x200000 + i;
105 unsigned char newdata[3];
118 y *
XSIZE) * 3, newdata, 3,
126 }
else if (relative_addr >= 0x100000 &&
127 relative_addr < 0x200000) {
133 fatal(
"[ pmagja: write to addr 0x%08llx: 0x%08llx ]\n",
134 (
long long)relative_addr, (
long long)idata);
139 ofs = (relative_addr - 0x100000) * 2;
146 for (ix=0; ix<len*2; ix++) {
147 unsigned char data[3];
151 ctype = (idata >> (ix*4)) & 0xf;
170 fatal(
"[ pmagja: read from addr 0x%x: "
171 "0x%llx ]\n", (
int)relative_addr,
174 fatal(
"[ pmagja: write to addr 0x%x: "
175 "0x%llx ]\n", (
int)relative_addr,
197 uint64_t baseaddr,
const char *irq_path)
208 fprintf(stderr,
"dev_pmagja_init(): out of memory (1)\n");
214 fprintf(stderr,
"dev_pmagja_init(): out of memory (2)\n");
#define INTERRUPT_CONNECT(name, istruct)
int dev_pmagja_access(struct cpu *cpu, struct memory *mem, uint64_t relative_addr, unsigned char *data, size_t len, int writeflag, void *)
unsigned char rgb_palette[256 *3]
void memory_device_register(struct memory *mem, const char *, uint64_t baseaddr, uint64_t len, int(*f)(struct cpu *, struct memory *, uint64_t, unsigned char *, size_t, int, void *), void *extra, int flags, unsigned char *dyntrans_data)
unsigned char pixeldata[XSIZE *YSIZE]
#define DEV_PMAGJA_LENGTH
void dev_bt459_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, uint64_t baseaddr_irq, struct vfb_data *vfb_data, int planes, const char *irq_path, int type)
void fatal(const char *fmt,...)
uint64_t memory_readmax64(struct cpu *cpu, unsigned char *buf, int len)
int dev_fb_access(struct cpu *cpu, struct memory *mem, uint64_t relative_addr, unsigned char *data, size_t len, int writeflag, void *)
struct vfb_data * vfb_data
void dev_pmagja_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, const char *irq_path)
void memory_writemax64(struct cpu *cpu, unsigned char *buf, int len, uint64_t data)
void dev_bt431_init(struct memory *mem, uint64_t baseaddr, struct vfb_data *vfb_data, int planes)
struct memory * memory_new(uint64_t physical_max, int arch)
#define PMAGJA_FIRSTOFFSET
struct vfb_data * dev_fb_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, int vfb_type, int visible_xsize, int visible_ysize, int xsize, int ysize, int bit_depth, const char *name)
#define CHECK_ALLOCATION(ptr)
Generated on Tue Mar 24 2020 14:04:48 for GXemul by
1.8.17