OSDN Git Service

[VM][General] Merge Upstream 2021-05-06. Some variants of PC-6001 are temporally...
[csp-qt/common_source_project-fm7.git] / source / src / vm / mz700 / joystick.h
1 /*
2         SHARP MZ-700 Emulator 'EmuZ-700'
3         SHARP MZ-1500 Emulator 'EmuZ-1500'
4
5         Author : Takeda.Toshiya
6         Date   : 2006.11.24 -
7
8         [ joystick ]
9 */
10
11 #ifndef _JOYSTICK_H_
12 #define _JOYSTICK_H_
13
14 #include "../vm.h"
15 #include "../../emu.h"
16 #include "../device.h"
17
18 #define DEVICE_JOYSTICK_1X03    0       // SHARP MZ-1X03
19 #define DEVICE_JOYSTICK_JOY700  1       // TSUKUMO JOY-700
20 #define DEVICE_JOYSTICK_AM7J    2       // AM7J ATARI Joystick adaptor
21
22 #define EVENT_1X03_X1           0
23 #define EVENT_1X03_Y1           1
24 #define EVENT_1X03_X2           2
25 #define EVENT_1X03_Y2           3
26
27 namespace MZ700 {
28         
29 class JOYSTICK : public DEVICE
30 {
31 protected:
32         uint32_t val_1x03;
33         const uint32_t* joy_stat;
34
35         uint64_t pulse_width_1x03(uint32_t js, uint32_t mmin, uint32_t mmax);
36         uint32_t read_AM7J(int jnum);
37
38 public:
39         JOYSTICK(VM_TEMPLATE* parent_vm, EMU_TEMPLATE* parent_emu) : DEVICE(parent_vm, parent_emu)
40         {
41                 set_device_name(_T("Joystick I/F"));
42         }
43         ~JOYSTICK() {}
44         
45         // common functions
46         virtual void initialize();
47         virtual void event_vline(int v, int clock);
48         virtual void __FASTCALL event_callback(int event_id, int err);
49         virtual uint32_t __FASTCALL read_io8(uint32_t addr);
50         virtual bool process_state(FILEIO* state_fio, bool loading);
51 };
52 }
53
54 #endif