OSDN Git Service

Merge branch 'master' of github.com:Artanejp/common_source_project-fm7
[csp-qt/common_source_project-fm7.git] / source / src / vm / hd46505.h
index e3ec8e9..7e045c2 100644 (file)
 #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;
@@ -29,11 +30,11 @@ private:
        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;
@@ -46,6 +47,15 @@ private:
        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);
@@ -59,6 +69,14 @@ public:
                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() {}
@@ -73,6 +91,7 @@ public:
        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);
        
@@ -93,17 +112,17 @@ public:
        {
                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;