64 unsigned char cur_rgb[3];
72 unsigned char cur_rgb_overlay[3];
74 unsigned char rgb_palette_overlay[16 * 3];
89 if (len != 2 || relative_addr != 0) {
90 fatal(
"[ kn01: trying to read something which is not " 91 "the first half-word of the csr ]");
98 data[1] = (csr >> 8) & 0xff;
100 data[1] = csr & 0xff;
101 data[0] = (csr >> 8) & 0xff;
116 switch (relative_addr) {
122 debug(
"[ vdac: read from MAPWA ]\n");
158 debug(
"[ vdac: read from MAPRA ]\n");
167 debug(
"[ vdac: read from OVERWA ]\n");
209 debug(
"[ vdac: read from OVERRA ]\n");
215 debug(
"[ vdac: unimplemented write to address 0x%x," 216 " data=0x%02x ]\n", (
int)relative_addr,
data[0]);
219 debug(
"[ vdac: unimplemented read from address 0x%x" 220 " ]\n", (
int)relative_addr);
unsigned char cur_write_addr
void fatal(const char *fmt,...)
unsigned char cur_write_addr_overlay
unsigned char vdac_reg[DEV_VDAC_LENGTH]
unsigned char rgb_palette_overlay[16 *3]
unsigned char cur_rgb_overlay[3]
#define EMUL_LITTLE_ENDIAN
#define CHECK_ALLOCATION(ptr)
unsigned char cur_read_addr
int dev_kn01_access(struct cpu *cpu, struct memory *mem, uint64_t relative_addr, unsigned char *data, size_t len, int writeflag, void *)
void dev_vdac_init(struct memory *mem, uint64_t baseaddr, unsigned char *rgb_palette, int color_fb_flag)
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)
void dev_kn01_init(struct memory *mem, uint64_t baseaddr, int color_fb)
unsigned char * rgb_palette
unsigned char cur_read_addr_overlay
int dev_vdac_access(struct cpu *cpu, struct memory *mem, uint64_t relative_addr, unsigned char *data, size_t len, int writeflag, void *)