summaryrefslogtreecommitdiff
path: root/contrib/nosefart/nes6502.h
diff options
context:
space:
mode:
authorDarren Salt <linux@youmustbejoking.demon.co.uk>2011-03-20 14:25:40 +0000
committerDarren Salt <linux@youmustbejoking.demon.co.uk>2011-03-20 14:25:40 +0000
commitced4b1666765715376058ea16669d18a4f3e68e6 (patch)
treedd8ca75cfc4f841b82f00ea7b24b849ee277577a /contrib/nosefart/nes6502.h
parent77aa841ba7f4249dceaea6470cb025f976a6e57a (diff)
parent5f74ef4b65a270a8b985917373bc0e219fa06ecd (diff)
downloadxine-lib-ced4b1666765715376058ea16669d18a4f3e68e6.tar.gz
xine-lib-ced4b1666765715376058ea16669d18a4f3e68e6.tar.bz2
Merge from 1.1.
--HG-- rename : src/libxineadec/gsm610/Makefile.am => contrib/gsm610/Makefile.am rename : src/libxineadec/nosefart/diff_to_nosefart_cvs.patch => contrib/nosefart/diff_to_nosefart_cvs.patch rename : src/libxineadec/nosefart/nes6502.c => contrib/nosefart/nes6502.c rename : src/libxineadec/nosefart/nes6502.h => contrib/nosefart/nes6502.h rename : src/libxineadec/nosefart/nes_apu.c => contrib/nosefart/nes_apu.c rename : src/libxineadec/nosefart/nes_apu.h => contrib/nosefart/nes_apu.h rename : src/libxineadec/nosefart/nsf.c => contrib/nosefart/nsf.c rename : src/libxineadec/nosefart/nsf.h => contrib/nosefart/nsf.h rename : src/libxineadec/nosefart/types.h => contrib/nosefart/types.h rename : src/libxineadec/nosefart/version.h => contrib/nosefart/version.h rename : doc/faq/faq.sgml => doc/faq/faq.docbook rename : src/libsputext/demux_sputext.c => src/spu_dec/sputext_demuxer.c rename : src/libxinevdec/image.c => src/video_dec/image.c
Diffstat (limited to 'contrib/nosefart/nes6502.h')
-rw-r--r--contrib/nosefart/nes6502.h25
1 files changed, 24 insertions, 1 deletions
diff --git a/contrib/nosefart/nes6502.h b/contrib/nosefart/nes6502.h
index 9b9be5811..8713304ec 100644
--- a/contrib/nosefart/nes6502.h
+++ b/contrib/nosefart/nes6502.h
@@ -23,6 +23,9 @@
** $Id: nes6502.h,v 1.2 2003/12/05 15:55:01 f1rmb Exp $
*/
+/* straitm */
+#include "types.h"
+
/* NOTE: 16-bit addresses avoided like the plague: use 32-bit values
** wherever humanly possible
*/
@@ -47,6 +50,17 @@
#define NES6502_BANKMASK ((0x10000 / NES6502_NUMBANKS) - 1)
+/* Add memory access control flags. This is a ram shadow memory that holds
+ * for each memory bytes access flags for read, write and execute access.
+ * The nes6502_mem_access holds all new access (all mode all location). It is
+ * used to determine if the player has loop in playing time calculation.
+ */
+#ifdef NES6502_MEM_ACCESS_CTRL
+extern uint8 nes6502_mem_access;
+# define NES6502_READ_ACCESS 1
+# define NES6502_WRITE_ACCESS 2
+# define NES6502_EXE_ACCESS 4
+#endif /* #ifdef NES6502_MEM_ACCESS_CTRL */
/* P (flag) register bitmasks */
#define N_FLAG 0x80
@@ -87,7 +101,10 @@ typedef struct
typedef struct
{
- uint8 *mem_page[NES6502_NUMBANKS]; /* memory page pointers */
+ uint8 * mem_page[NES6502_NUMBANKS]; /* memory page pointers */
+#ifdef NES6502_MEM_ACCESS_CTRL
+ uint8 * acc_mem_page[NES6502_NUMBANKS]; /* memory access page pointer */
+#endif
nes6502_memread *read_handler;
nes6502_memwrite *write_handler;
int dma_cycles;
@@ -110,6 +127,12 @@ extern uint8 nes6502_getbyte(uint32 address);
extern uint32 nes6502_getcycles(boolean reset_flag);
extern void nes6502_setdma(int cycles);
+#ifdef NES6502_MEM_ACCESS_CTRL
+extern void nes6502_chk_mem_access(uint8 * access, int flags);
+#else
+#define nes6502_chk_mem_access(access,flags)
+#endif
+
/* Context get/set */
extern void nes6502_setcontext(nes6502_context *cpu);
extern void nes6502_getcontext(nes6502_context *cpu);