]> Shamusworld >> Repos - virtualjaguar/blob - src/anajoy.cpp
Adding 1.0.1/2 uncompressed tarballs to tags for historical purposes.
[virtualjaguar] / src / anajoy.cpp
1 #include "jaguar.h"\r
2 \r
3 static uint8 anajoy_ram[2];\r
4 static uint8 analog_x, analog_y;\r
5 \r
6 //////////////////////////////////////////////////////////////////////////////\r
7 //\r
8 //////////////////////////////////////////////////////////////////////////////\r
9 //\r
10 //\r
11 //\r
12 //////////////////////////////////////////////////////////////////////////////\r
13 void anajoy_init(void)\r
14 {\r
15         anajoy_reset();\r
16 }\r
17 //////////////////////////////////////////////////////////////////////////////\r
18 //\r
19 //////////////////////////////////////////////////////////////////////////////\r
20 //\r
21 //\r
22 //\r
23 //////////////////////////////////////////////////////////////////////////////\r
24 void anajoy_reset(void)\r
25 {\r
26         memset(anajoy_ram,0x00,2);\r
27         analog_x=128;\r
28         analog_y=128;\r
29 }\r
30 //////////////////////////////////////////////////////////////////////////////\r
31 //\r
32 //////////////////////////////////////////////////////////////////////////////\r
33 //\r
34 //\r
35 //\r
36 //////////////////////////////////////////////////////////////////////////////\r
37 void anajoy_done(void)\r
38 {\r
39 }\r
40 //////////////////////////////////////////////////////////////////////////////\r
41 //\r
42 //////////////////////////////////////////////////////////////////////////////\r
43 //\r
44 //\r
45 //\r
46 //////////////////////////////////////////////////////////////////////////////\r
47 void anajoy_byte_write(uint32 offset, uint8 data)\r
48 {\r
49         anajoy_ram[offset&0x01]=data;\r
50 }\r
51 //////////////////////////////////////////////////////////////////////////////\r
52 //\r
53 //////////////////////////////////////////////////////////////////////////////\r
54 //\r
55 //\r
56 //\r
57 //////////////////////////////////////////////////////////////////////////////\r
58 void anajoy_word_write(uint32 offset, uint16 data)\r
59 {\r
60         offset&=0x01;\r
61         anajoy_ram[offset+0]=(data>>8)&0xff;\r
62         anajoy_ram[offset+1]=data&0xff;\r
63 }\r
64 //////////////////////////////////////////////////////////////////////////////\r
65 //\r
66 //////////////////////////////////////////////////////////////////////////////\r
67 //\r
68 //\r
69 //\r
70 //////////////////////////////////////////////////////////////////////////////\r
71 uint8 anajoy_byte_read(uint32 offset)\r
72 {\r
73         if (anajoy_ram[1]&0x01)\r
74                 return(analog_y);\r
75         else\r
76                 return(analog_x);\r
77 }\r
78 //////////////////////////////////////////////////////////////////////////////\r
79 //\r
80 //////////////////////////////////////////////////////////////////////////////\r
81 //\r
82 //\r
83 //\r
84 //////////////////////////////////////////////////////////////////////////////\r
85 uint16 anajoy_word_read(uint32 offset)\r
86 {\r
87         uint16 data=anajoy_byte_read((offset+0)&0x01);\r
88         data<<=8;\r
89         data|=anajoy_byte_read((offset+1)&0x01);\r
90         return(data);\r
91 }\r