#ifndef _HD46505_H_
#define _HD46505_H_
-#include "vm.h"
-#include "../emu.h"
+//#include "vm.h"
+//#include "../emu.h"
#include "device.h"
class HD46505 : public DEVICE
{
+
private:
// output signals
outputs_t outputs_disp;
bool timing_changed;
int cpu_clocks;
-#if defined(HD46505_CHAR_CLOCK)
+//#if defined(HD46505_CHAR_CLOCK)
double char_clock, next_char_clock;
-#elif defined(HD46505_HORIZ_FREQ)
+//#elif defined(HD46505_HORIZ_FREQ)
double horiz_freq, next_horiz_freq;
-#endif
+//#endif
double frames_per_sec;
int hz_total, hz_disp;
int hs_start_clock, hs_end_clock;
bool display, vblank, vsync, hsync;
+
+ int _SCREEN_WIDTH;
+ int _SCREEN_HEIGHT;
+ int _CHARS_PER_LINE;
+ int _LINES_PER_FRAME;
+ bool _E_HD46505_CHAR_CLOCK;
+ bool _E_HD46505_HORIZ_FREQ;
+ double _HD46505_CHAR_CLOCK;
+ double _HD46505_HORIZ_FREQ;
void set_display(bool val);
void set_vblank(bool val);
initialize_output_signals(&outputs_vblank);
initialize_output_signals(&outputs_vsync);
initialize_output_signals(&outputs_hsync);
+ _SCREEN_WIDTH = 640;
+ _SCREEN_HEIGHT = 200;
+ _CHARS_PER_LINE = 80;
+ _LINES_PER_FRAME = 200;
+ _HD46505_CHAR_CLOCK = 0.0;
+ _HD46505_HORIZ_FREQ = 0.0;
+ _E_HD46505_CHAR_CLOCK = false;
+ _E_HD46505_HORIZ_FREQ = false;
set_device_name(_T("HD46505 CRTC"));
}
~HD46505() {}
void event_vline(int v, int clock);
void event_callback(int event_id, int err);
void update_timing(int new_clocks, double new_frames_per_sec, int new_lines_per_frame);
+ void decl_state();
void save_state(FILEIO* state_fio);
bool load_state(FILEIO* state_fio);
{
register_output_signal(&outputs_hsync, device, id, mask);
}
-#if defined(HD46505_CHAR_CLOCK)
+//#if defined(HD46505_CHAR_CLOCK)
void set_char_clock(double clock)
{
next_char_clock = clock;
}
-#elif defined(HD46505_HORIZ_FREQ)
+//#elif defined(HD46505_HORIZ_FREQ)
void set_horiz_freq(double freq)
{
next_horiz_freq = freq;
}
-#endif
+//#endif
uint8_t* get_regs()
{
return regs;