diff options
Diffstat (limited to 'src/mame/video/avgdvg.h')
-rw-r--r-- | src/mame/video/avgdvg.h | 127 |
1 files changed, 63 insertions, 64 deletions
diff --git a/src/mame/video/avgdvg.h b/src/mame/video/avgdvg.h index 25e11a2dec9..85270edd618 100644 --- a/src/mame/video/avgdvg.h +++ b/src/mame/video/avgdvg.h @@ -17,15 +17,15 @@ public: template <typename T> void set_vector_tag(T &&tag) { m_vector.set_tag(std::forward<T>(tag)); } DECLARE_CUSTOM_INPUT_MEMBER(done_r); - DECLARE_WRITE8_MEMBER(go_w); - DECLARE_WRITE8_MEMBER(reset_w); + void go_w(u8 data = 0); + void reset_w(u8 data = 0); - DECLARE_WRITE16_MEMBER(go_word_w); - DECLARE_WRITE16_MEMBER(reset_word_w); + void go_word_w(u16 data = 0); + void reset_word_w(u16 data = 0); /* Tempest and Quantum use this capability */ - void set_flip_x(int flip) { flip_x = flip; } - void set_flip_y(int flip) { flip_y = flip; } + void set_flip_x(bool flip) { m_flip_x = flip; } + void set_flip_y(bool flip) { m_flip_y = flip; } TIMER_CALLBACK_MEMBER(vg_set_halt_callback); TIMER_CALLBACK_MEMBER(run_state_machine); @@ -49,64 +49,60 @@ protected: void vg_flush(); void vg_add_point_buf(int x, int y, rgb_t color, int intensity); - void vg_add_clip (int xmin, int ymin, int xmax, int ymax); + void vg_add_clip(int xmin, int ymin, int xmax, int ymax); void register_state(); - uint8_t *avgdvg_vectorram; - size_t avgdvg_vectorram_size; - - uint8_t *avgdvg_colorram; - - - int xmin, xmax, ymin, ymax; - int xcenter, ycenter; - emu_timer *vg_run_timer, *vg_halt_timer; - - int flip_x, flip_y; - - int nvect; - vgvector vectbuf[MAXVECT]; - - - uint16_t m_pc; - uint8_t m_sp; - uint16_t m_dvx; - uint16_t m_dvy; - uint8_t m_dvy12; - uint16_t m_timer; - uint16_t m_stack[4]; - uint16_t m_data; - - uint8_t m_state_latch; - uint8_t m_int_latch; - uint8_t m_scale; - uint8_t m_bin_scale; - uint8_t m_intensity; - uint8_t m_color; - uint8_t m_enspkl; - uint8_t m_spkl_shift; - uint8_t m_map; - - uint16_t m_hst; - uint16_t m_lst; - uint16_t m_izblank; - - uint8_t m_op; - uint8_t m_halt; - uint8_t m_sync_halt; - - uint16_t m_xdac_xor; - uint16_t m_ydac_xor; - - int32_t m_xpos; - int32_t m_ypos; - - int32_t m_clipx_min; - int32_t m_clipy_min; - int32_t m_clipx_max; - int32_t m_clipy_max; - + required_shared_ptr<u8> m_vectorram; + optional_shared_ptr<u8> m_colorram; + required_region_ptr<u8> m_prom; + + int m_xmin, m_xmax, m_ymin, m_ymax; + int m_xcenter, m_ycenter; + emu_timer *m_vg_run_timer, *m_vg_halt_timer; + + bool m_flip_x, m_flip_y; + + int m_nvect; + vgvector m_vectbuf[MAXVECT]; + + u16 m_pc; + u8 m_sp; + u16 m_dvx; + u16 m_dvy; + u8 m_dvy12; + u16 m_timer; + u16 m_stack[4]; + u16 m_data; + + u8 m_state_latch; + u8 m_int_latch; + u8 m_scale; + u8 m_bin_scale; + u8 m_intensity; + u8 m_color; + u8 m_enspkl; + u8 m_spkl_shift; + u8 m_map; + + u16 m_hst; + u16 m_lst; + u16 m_izblank; + + u8 m_op; + u8 m_halt; + u8 m_sync_halt; + + u16 m_xdac_xor; + u16 m_ydac_xor; + + s32 m_xpos; + s32 m_ypos; + + s32 m_clipx_min; + s32 m_clipy_min; + s32 m_clipx_max; + s32 m_clipy_max; virtual int handler_0() = 0; virtual int handler_1() = 0; @@ -116,7 +112,7 @@ protected: virtual int handler_5() = 0; virtual int handler_6() = 0; virtual int handler_7() = 0; - virtual uint8_t state_addr() = 0; + virtual u8 state_addr() = 0; virtual void update_databus() = 0; virtual void vggo() = 0; virtual void vgrst() = 0; @@ -141,7 +137,7 @@ protected: virtual int handler_5() override; virtual int handler_6() override; virtual int handler_7() override; - virtual uint8_t state_addr() override; + virtual u8 state_addr() override; virtual void update_databus() override; virtual void vggo() override; virtual void vgrst() override; @@ -173,7 +169,7 @@ protected: virtual int handler_5() override; virtual int handler_6() override; virtual int handler_7() override; - virtual uint8_t state_addr() override; + virtual u8 state_addr() override; virtual void update_databus() override; virtual void vggo() override; virtual void vgrst() override; @@ -211,6 +207,9 @@ protected: virtual int handler_7() override; virtual void update_databus() override; virtual void vgrst() override; + +private: + required_region_ptr<u8> m_bank_region; }; // device type definition |