OSDN Git Service

append for reader driver 'dozeu'
[unagi/old-svn-converted.git] / client / trunk / reader_master.h
1 #ifndef _READER_MASTER_H_
2 #define _READER_MASTER_H_
3 #include "type.h"
4 #include <windows.h>
5 //C++ ¤Î Class ¤â¤É¤­¤ò C ¤Ç¼ÂÁõ¤·¤Æ¤¤¤ë´¶¤¬Áý¤·¤Æ¤­¤¿...
6 struct reader_driver{
7         int (*open_or_close)(int oc);
8         void (*init)(void);
9         void (*cpu_read)(long address, long length, u8 *data);
10         void (*ppu_read)(long address, long length, u8 *data);
11         void (*cpu_6502_write)(long address, long data, long wait_msec);
12         void (*cpu_flash_write)(long address, long data);
13         void (*ppu_write)(long address, long data);
14         const char *name;
15 };
16 int paralellport_open_or_close(int oc);
17 const struct reader_driver *reader_driver_get(const char *name);
18 enum{
19         READER_OPEN, READER_CLOSE
20 };
21 enum{
22         ADDRESS_MASK_A0toA12 = 0x1fff,
23         ADDRESS_MASK_A0toA14 = 0x7fff,
24         ADDRESS_MASK_A15 = 0x8000
25 };
26 enum{ 
27         M2_CONTROL_TRUE, M2_CONTROL_FALSE
28 };
29 /*
30 static inline ¤Ï¶¦Í­¥Þ¥¯¥í°·¤¤
31 */
32 static inline int bit_set(int data, const int bit)
33 {
34         data |= 1 << bit;
35         return data;
36 }
37
38 static inline int bit_clear(int data, const int bit)
39 {
40         data &= ~(1 << bit);
41         return data;
42 }
43
44 static inline void wait(long msec)
45 {
46         if(msec == 0){
47                 return;
48         }
49         //const long waittime = 100000;
50         Sleep(msec);
51 }
52 #endif