2 Skelton for retropc emulator
4 Author : Takeda.Toshiya
17 class HD46505 : public DEVICE
21 outputs_t outputs_disp;
22 outputs_t outputs_vblank;
23 outputs_t outputs_vsync;
24 outputs_t outputs_hsync;
31 #ifdef HD46505_HORIZ_FREQ
32 int horiz_freq, next_horiz_freq;
34 double frames_per_sec;
36 int hz_total, hz_disp;
39 int vt_total, vt_disp;
43 int hs_start_clock, hs_end_clock;
45 bool display, vblank, vsync, hsync;
47 void set_display(bool val);
48 void set_vblank(bool val);
49 void set_vsync(bool val);
50 void set_hsync(bool val);
53 HD46505(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
55 init_output_signals(&outputs_disp);
56 init_output_signals(&outputs_vblank);
57 init_output_signals(&outputs_vsync);
58 init_output_signals(&outputs_hsync);
65 void write_io8(uint32 addr, uint32 data);
66 uint32 read_io8(uint32 addr);
67 void event_pre_frame();
69 void event_vline(int v, int clock);
70 void event_callback(int event_id, int err);
71 void update_timing(int new_clocks, double new_frames_per_sec, int new_lines_per_frame);
72 void save_state(FILEIO* state_fio);
73 bool load_state(FILEIO* state_fio);
76 void set_context_disp(DEVICE* device, int id, uint32 mask)
78 register_output_signal(&outputs_disp, device, id, mask);
80 void set_context_vblank(DEVICE* device, int id, uint32 mask)
82 register_output_signal(&outputs_vblank, device, id, mask);
84 void set_context_vsync(DEVICE* device, int id, uint32 mask)
86 register_output_signal(&outputs_vsync, device, id, mask);
88 void set_context_hsync(DEVICE* device, int id, uint32 mask)
90 register_output_signal(&outputs_hsync, device, id, mask);
92 #ifdef HD46505_HORIZ_FREQ
93 void set_horiz_freq(int freq)
95 next_horiz_freq = freq;