diff options
Diffstat (limited to 'src/emu/sound/cdp1869.h')
-rw-r--r-- | src/emu/sound/cdp1869.h | 182 |
1 files changed, 91 insertions, 91 deletions
diff --git a/src/emu/sound/cdp1869.h b/src/emu/sound/cdp1869.h index ed696be2376..843eee30b31 100644 --- a/src/emu/sound/cdp1869.h +++ b/src/emu/sound/cdp1869.h @@ -87,49 +87,49 @@ // MACROS / CONSTANTS //************************************************************************** -#define CDP1869_DOT_CLK_PAL (float)XTAL_5_626MHz -#define CDP1869_DOT_CLK_NTSC (float)XTAL_5_67MHz -#define CDP1869_COLOR_CLK_PAL (float)XTAL_8_867236MHz -#define CDP1869_COLOR_CLK_NTSC (float)XTAL_7_15909MHz - -#define CDP1869_CPU_CLK_PAL (CDP1869_DOT_CLK_PAL / 2) -#define CDP1869_CPU_CLK_NTSC (CDP1869_DOT_CLK_NTSC / 2) - -#define CDP1869_CHAR_WIDTH 6 - -#define CDP1869_HSYNC_START (56 * CDP1869_CHAR_WIDTH) -#define CDP1869_HSYNC_END (60 * CDP1869_CHAR_WIDTH) -#define CDP1869_HBLANK_START (54 * CDP1869_CHAR_WIDTH) -#define CDP1869_HBLANK_END ( 5 * CDP1869_CHAR_WIDTH) -#define CDP1869_SCREEN_START_PAL ( 9 * CDP1869_CHAR_WIDTH) -#define CDP1869_SCREEN_START_NTSC (10 * CDP1869_CHAR_WIDTH) -#define CDP1869_SCREEN_START (10 * CDP1869_CHAR_WIDTH) -#define CDP1869_SCREEN_END (50 * CDP1869_CHAR_WIDTH) -#define CDP1869_SCREEN_WIDTH (60 * CDP1869_CHAR_WIDTH) - -#define CDP1869_TOTAL_SCANLINES_PAL 312 -#define CDP1869_SCANLINE_VBLANK_START_PAL 304 -#define CDP1869_SCANLINE_VBLANK_END_PAL 10 -#define CDP1869_SCANLINE_VSYNC_START_PAL 308 -#define CDP1869_SCANLINE_VSYNC_END_PAL 312 -#define CDP1869_SCANLINE_DISPLAY_START_PAL 44 -#define CDP1869_SCANLINE_DISPLAY_END_PAL 260 -#define CDP1869_SCANLINE_PREDISPLAY_START_PAL 43 -#define CDP1869_SCANLINE_PREDISPLAY_END_PAL 260 -#define CDP1869_VISIBLE_SCANLINES_PAL (CDP1869_SCANLINE_DISPLAY_END_PAL - CDP1869_SCANLINE_DISPLAY_START_PAL) - -#define CDP1869_TOTAL_SCANLINES_NTSC 262 -#define CDP1869_SCANLINE_VBLANK_START_NTSC 252 -#define CDP1869_SCANLINE_VBLANK_END_NTSC 10 -#define CDP1869_SCANLINE_VSYNC_START_NTSC 258 -#define CDP1869_SCANLINE_VSYNC_END_NTSC 262 -#define CDP1869_SCANLINE_DISPLAY_START_NTSC 36 -#define CDP1869_SCANLINE_DISPLAY_END_NTSC 228 -#define CDP1869_SCANLINE_PREDISPLAY_START_NTSC 35 -#define CDP1869_SCANLINE_PREDISPLAY_END_NTSC 228 -#define CDP1869_VISIBLE_SCANLINES_NTSC (CDP1869_SCANLINE_DISPLAY_END_NTSC - CDP1869_SCANLINE_DISPLAY_START_NTSC) - -#define CDP1869_PALETTE_LENGTH 8+64 +#define CDP1869_DOT_CLK_PAL (float)XTAL_5_626MHz +#define CDP1869_DOT_CLK_NTSC (float)XTAL_5_67MHz +#define CDP1869_COLOR_CLK_PAL (float)XTAL_8_867236MHz +#define CDP1869_COLOR_CLK_NTSC (float)XTAL_7_15909MHz + +#define CDP1869_CPU_CLK_PAL (CDP1869_DOT_CLK_PAL / 2) +#define CDP1869_CPU_CLK_NTSC (CDP1869_DOT_CLK_NTSC / 2) + +#define CDP1869_CHAR_WIDTH 6 + +#define CDP1869_HSYNC_START (56 * CDP1869_CHAR_WIDTH) +#define CDP1869_HSYNC_END (60 * CDP1869_CHAR_WIDTH) +#define CDP1869_HBLANK_START (54 * CDP1869_CHAR_WIDTH) +#define CDP1869_HBLANK_END ( 5 * CDP1869_CHAR_WIDTH) +#define CDP1869_SCREEN_START_PAL ( 9 * CDP1869_CHAR_WIDTH) +#define CDP1869_SCREEN_START_NTSC (10 * CDP1869_CHAR_WIDTH) +#define CDP1869_SCREEN_START (10 * CDP1869_CHAR_WIDTH) +#define CDP1869_SCREEN_END (50 * CDP1869_CHAR_WIDTH) +#define CDP1869_SCREEN_WIDTH (60 * CDP1869_CHAR_WIDTH) + +#define CDP1869_TOTAL_SCANLINES_PAL 312 +#define CDP1869_SCANLINE_VBLANK_START_PAL 304 +#define CDP1869_SCANLINE_VBLANK_END_PAL 10 +#define CDP1869_SCANLINE_VSYNC_START_PAL 308 +#define CDP1869_SCANLINE_VSYNC_END_PAL 312 +#define CDP1869_SCANLINE_DISPLAY_START_PAL 44 +#define CDP1869_SCANLINE_DISPLAY_END_PAL 260 +#define CDP1869_SCANLINE_PREDISPLAY_START_PAL 43 +#define CDP1869_SCANLINE_PREDISPLAY_END_PAL 260 +#define CDP1869_VISIBLE_SCANLINES_PAL (CDP1869_SCANLINE_DISPLAY_END_PAL - CDP1869_SCANLINE_DISPLAY_START_PAL) + +#define CDP1869_TOTAL_SCANLINES_NTSC 262 +#define CDP1869_SCANLINE_VBLANK_START_NTSC 252 +#define CDP1869_SCANLINE_VBLANK_END_NTSC 10 +#define CDP1869_SCANLINE_VSYNC_START_NTSC 258 +#define CDP1869_SCANLINE_VSYNC_END_NTSC 262 +#define CDP1869_SCANLINE_DISPLAY_START_NTSC 36 +#define CDP1869_SCANLINE_DISPLAY_END_NTSC 228 +#define CDP1869_SCANLINE_PREDISPLAY_START_NTSC 35 +#define CDP1869_SCANLINE_PREDISPLAY_END_NTSC 228 +#define CDP1869_VISIBLE_SCANLINES_NTSC (CDP1869_SCANLINE_DISPLAY_END_NTSC - CDP1869_SCANLINE_DISPLAY_START_NTSC) + +#define CDP1869_PALETTE_LENGTH 8+64 @@ -180,51 +180,51 @@ typedef int (*cdp1869_pcb_read_func)(device_t *device, UINT16 pma, UINT8 cma, UI struct cdp1869_interface { - const char *screen_tag; // screen we are acting on + const char *screen_tag; // screen we are acting on // pixel clock of the chip is the device clock - int color_clock; // the chroma clock of the chip + int color_clock; // the chroma clock of the chip // screen format - devcb_read_line in_pal_ntsc_cb; + devcb_read_line in_pal_ntsc_cb; // page memory color bit read function - cdp1869_pcb_read_func in_pcb_cb; + cdp1869_pcb_read_func in_pcb_cb; // character memory read function - cdp1869_char_ram_read_func in_char_ram_cb; + cdp1869_char_ram_read_func in_char_ram_cb; // character memory write function - cdp1869_char_ram_write_func out_char_ram_cb; + cdp1869_char_ram_write_func out_char_ram_cb; // if specified, this gets called for every change of the predisplay pin (CDP1870/76 pin 1) - devcb_write_line out_prd_cb; + devcb_write_line out_prd_cb; }; // ======================> cdp1869_device -class cdp1869_device : public device_t, +class cdp1869_device : public device_t, public device_sound_interface, public device_memory_interface, - public cdp1869_interface + public cdp1869_interface { public: - // construction/destruction - cdp1869_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + // construction/destruction + cdp1869_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); DECLARE_WRITE8_MEMBER( out3_w ); - DECLARE_WRITE8_MEMBER( out4_w ); - DECLARE_WRITE8_MEMBER( out5_w ); - DECLARE_WRITE8_MEMBER( out6_w ); - DECLARE_WRITE8_MEMBER( out7_w ); + DECLARE_WRITE8_MEMBER( out4_w ); + DECLARE_WRITE8_MEMBER( out5_w ); + DECLARE_WRITE8_MEMBER( out6_w ); + DECLARE_WRITE8_MEMBER( out7_w ); DECLARE_READ8_MEMBER( char_ram_r ); - DECLARE_WRITE8_MEMBER( char_ram_w ); + DECLARE_WRITE8_MEMBER( char_ram_w ); DECLARE_READ8_MEMBER( page_ram_r ); - DECLARE_WRITE8_MEMBER( page_ram_w ); + DECLARE_WRITE8_MEMBER( page_ram_w ); DECLARE_READ_LINE_MEMBER( predisplay_r ); DECLARE_READ_LINE_MEMBER( pal_ntsc_r ); @@ -232,9 +232,9 @@ public: UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); protected: - // device-level overrides + // device-level overrides virtual void device_config_complete(); - virtual void device_start(); + virtual void device_start(); virtual void device_post_load(); virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); @@ -262,11 +262,11 @@ protected: void draw_char(bitmap_rgb32 &bitmap, const rectangle &rect, int x, int y, UINT16 pma); private: - devcb_resolved_read_line m_in_pal_ntsc_func; - devcb_resolved_write_line m_out_prd_func; - cdp1869_pcb_read_func m_in_pcb_func; - cdp1869_char_ram_read_func m_in_char_ram_func; - cdp1869_char_ram_write_func m_out_char_ram_func; + devcb_resolved_read_line m_in_pal_ntsc_func; + devcb_resolved_write_line m_out_prd_func; + cdp1869_pcb_read_func m_in_pcb_func; + cdp1869_char_ram_read_func m_in_char_ram_func; + cdp1869_char_ram_write_func m_out_char_ram_func; screen_device *m_screen; address_space *m_page_ram; @@ -275,32 +275,32 @@ private: // video state rgb_t m_palette[8+64]; - int m_prd; // predisplay - int m_dispoff; // display off - int m_fresvert; // full resolution vertical - int m_freshorz; // full resolution horizontal - int m_cmem; // character memory access mode - int m_dblpage; // double page mode - int m_line16; // 16-line hi-res mode - int m_line9; // 9 line mode - int m_cfc; // color format control - UINT8 m_col; // character color control - UINT8 m_bkg; // background color - UINT16 m_pma; // page memory address - UINT16 m_hma; // home memory address + int m_prd; // predisplay + int m_dispoff; // display off + int m_fresvert; // full resolution vertical + int m_freshorz; // full resolution horizontal + int m_cmem; // character memory access mode + int m_dblpage; // double page mode + int m_line16; // 16-line hi-res mode + int m_line9; // 9 line mode + int m_cfc; // color format control + UINT8 m_col; // character color control + UINT8 m_bkg; // background color + UINT16 m_pma; // page memory address + UINT16 m_hma; // home memory address // sound state - INT16 m_signal; // current signal - int m_incr; // initial wave state - int m_toneoff; // tone off - int m_wnoff; // white noise off - UINT8 m_tonediv; // tone divisor - UINT8 m_tonefreq; // tone range select - UINT8 m_toneamp; // tone output amplitude - UINT8 m_wnfreq; // white noise range select - UINT8 m_wnamp; // white noise output amplitude - - const address_space_config m_space_config; + INT16 m_signal; // current signal + int m_incr; // initial wave state + int m_toneoff; // tone off + int m_wnoff; // white noise off + UINT8 m_tonediv; // tone divisor + UINT8 m_tonefreq; // tone range select + UINT8 m_toneamp; // tone output amplitude + UINT8 m_wnfreq; // white noise range select + UINT8 m_wnamp; // white noise output amplitude + + const address_space_config m_space_config; }; |