2 Skelton for retropc emulator
4 Author : Takeda.Toshiya
17 #define SIG_MSM58321_DATA 0
18 #define SIG_MSM58321_CS 1
19 #define SIG_MSM58321_READ 2
20 #define SIG_MSM58321_WRITE 3
22 #define SIG_MSM58321_ADDR_WRITE 4
24 #define SIG_MSM5832_ADDR 5
25 #define SIG_MSM5832_HOLD 6
29 class MSM58321_BASE : public DEVICE
33 outputs_t outputs_data;
35 dll_cur_time_t cur_time;
40 bool cs, rd, wr, addr_wr, busy, hold;
41 int count_1024hz, count_1s, count_1m, count_1h;
43 virtual void __FASTCALL read_from_cur_time();
44 virtual void __FASTCALL write_to_cur_time();
45 void __FASTCALL output_data();
46 virtual void __FASTCALL set_busy(bool val);
50 MSM58321_BASE(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
52 initialize_output_signals(&outputs_data);
53 set_device_name(_T("MSM5832 RTC"));
60 virtual void initialize();
61 void event_callback(int event_id, int err);
62 void __FASTCALL write_signal(int id, uint32_t data, uint32_t mask);
63 uint32_t __FASTCALL read_signal(int ch);
64 bool process_state(FILEIO* state_fio, bool loading);
67 void set_context_data(DEVICE* device, int id, uint32_t mask, int shift)
69 register_output_signal(&outputs_data, device, id, mask, shift);
73 class MSM58321: public MSM58321_BASE
76 outputs_t outputs_busy;
77 void __FASTCALL read_from_cur_time();
78 void __FASTCALL write_to_cur_time();
79 void __FASTCALL set_busy(bool val);
81 MSM58321(VM_TEMPLATE* parent_vm, EMU* parent_emu);
85 void set_context_busy(DEVICE* device, int id, uint32_t mask)
87 register_output_signal(&outputs_busy, device, id, mask);
91 class MSM5832: public MSM58321_BASE
94 void __FASTCALL read_from_cur_time();
95 void __FASTCALL write_to_cur_time();
96 void __FASTCALL set_busy(bool val);
99 MSM5832(VM_TEMPLATE* parent_vm, EMU* parent_emu);