view src/vdp.h @ 43:6e7bfe83d2b0

Changed the design to vastly simplify the video hardware and support a 23-bit address space on the CPU
author Michael Pavone <pavone@retrodev.com>
date Sat, 27 Aug 2016 22:38:31 -0700
parents 083347ccd508
children
line wrap: on
line source

#ifndef VDP_H_
#define VDP_H_

typedef struct {
	uint16_t *framebuffer;
	uint32_t cycles;
	uint32_t clock_inc;
	int      pitch;
	
	uint16_t status;
	
	uint16_t vcounter;
	uint16_t hcounter;
	
	
	uint8_t  vram[128*1024];
	uint16_t cram[256];
	
	uint16_t start_offset;
	
	uint8_t  top_skip;
	uint8_t  bottom_skip;
	uint8_t  pal_select;
	
	uint8_t  pal_write_index;
	uint8_t  pal_write_count;
} vdp;


void vdp_init(vdp *context, uint32_t clock_div);
void vdp_run(vdp *context, uint32_t target);
void vdp_write_mode(vdp *context, uint16_t value);
void vdp_write_cram(vdp *context, uint16_t value);
uint32_t vdp_next_interrupt(vdp *context);
void vdp_ack_interrupt(vdp *context);
uint8_t vdp_interrupt_pending(vdp *context);
uint8_t *vdp_get_back_buffer(vdp *context);

#endif //VDP_H_