diff vdp.h @ 317:e5e8b48ad157

Initial stab at horizontal interrupts and improving accuracy of vertical interrupts. Also added the VINT pending flag to status port.
author Mike Pavone <pavone@retrodev.com>
date Fri, 10 May 2013 22:57:56 -0700
parents d3266cee02c9
children 8e2fa485c0f2
line wrap: on
line diff
--- a/vdp.h	Thu May 09 20:59:49 2013 -0700
+++ b/vdp.h	Fri May 10 22:57:56 2013 -0700
@@ -30,14 +30,17 @@
 
 #define MCLKS_LINE 3420
 
-#define FLAG_DOT_OFLOW 0x1
-#define FLAG_CAN_MASK  0x2
-#define FLAG_MASKED    0x4
-#define FLAG_WINDOW    0x8
-#define FLAG_PENDING   0x10
-#define FLAG_UNUSED_SLOT 0x20
-#define FLAG_DMA_RUN   0x40
-#define FLAG_DMA_PROG  0x80
+#define FLAG_DOT_OFLOW     0x01
+#define FLAG_CAN_MASK      0x02
+#define FLAG_MASKED        0x04
+#define FLAG_WINDOW        0x08
+#define FLAG_PENDING       0x10
+#define FLAG_UNUSED_SLOT   0x20
+#define FLAG_DMA_RUN       0x40
+#define FLAG_DMA_PROG      0x80
+
+#define FLAG2_VINT_PENDING 0x01
+#define FLAG2_HINT_PENDING 0x02
 
 #define DISPLAY_ENABLE 0x40
 
@@ -115,6 +118,8 @@
 	uint16_t    dma_val;
 	uint8_t     v_offset;
 	uint8_t     dma_cd;
+	uint8_t     hint_counter;
+	uint8_t     flags2;
 	uint8_t     *tmp_buf_a;
 	uint8_t     *tmp_buf_b;
 } vdp_context;
@@ -133,5 +138,8 @@
 uint16_t vdp_data_port_read(vdp_context * context);
 uint16_t vdp_hv_counter_read(vdp_context * context);
 void vdp_adjust_cycles(vdp_context * context, uint32_t deduction);
+uint32_t vdp_next_hint(vdp_context * context);
+uint32_t vdp_next_vint(vdp_context * context);
+void vdp_int_ack(vdp_context * context, uint16_t int_num);
 
 #endif //VDP_H_