trunk/src/mame/drivers/looping.c
r17650 | r17651 | |
546 | 546 | AM_RANGE(0x3c00, 0x3c00) AM_MIRROR(0x00f4) AM_DEVREADWRITE_LEGACY("aysnd", ay8910_r, ay8910_address_w) |
547 | 547 | AM_RANGE(0x3c02, 0x3c02) AM_MIRROR(0x00f4) AM_READNOP AM_DEVWRITE_LEGACY("aysnd", ay8910_data_w) |
548 | 548 | AM_RANGE(0x3c03, 0x3c03) AM_MIRROR(0x00f6) AM_NOP |
549 | | AM_RANGE(0x3e00, 0x3e00) AM_MIRROR(0x00f4) AM_READNOP AM_DEVWRITE_LEGACY("tms", tms5220_data_w) |
550 | | AM_RANGE(0x3e02, 0x3e02) AM_MIRROR(0x00f4) AM_DEVREAD_LEGACY("tms", tms5220_status_r) AM_WRITENOP |
| 549 | AM_RANGE(0x3e00, 0x3e00) AM_MIRROR(0x00f4) AM_READNOP AM_DEVWRITE("tms", tms5220n_device, write) |
| 550 | AM_RANGE(0x3e02, 0x3e02) AM_MIRROR(0x00f4) AM_DEVREAD("tms", tms5220n_device, read) AM_WRITENOP |
551 | 551 | AM_RANGE(0x3e03, 0x3e03) AM_MIRROR(0x00f6) AM_NOP |
552 | 552 | ADDRESS_MAP_END |
553 | 553 | |
r17650 | r17651 | |
606 | 606 | * |
607 | 607 | *************************************/ |
608 | 608 | |
609 | | static const tms5220_interface tms5220_config = |
| 609 | static const tms52xx_config tms5220interface = |
610 | 610 | { |
611 | 611 | DEVCB_DRIVER_LINE_MEMBER(looping_state,looping_spcint), // IRQ |
612 | 612 | DEVCB_NULL // READYQ |
r17650 | r17651 | |
673 | 673 | MCFG_SOUND_CONFIG(ay8910_config) |
674 | 674 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) |
675 | 675 | |
676 | | MCFG_SOUND_ADD("tms", TMS5220, TMS_CLOCK) |
677 | | MCFG_SOUND_CONFIG(tms5220_config) |
| 676 | MCFG_SOUND_ADD("tms", TMS5220N, TMS_CLOCK) |
| 677 | MCFG_SOUND_CONFIG(tms5220interface) |
678 | 678 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
679 | 679 | |
680 | 680 | MCFG_DAC_ADD("dac") |
trunk/src/mess/machine/bbc.c
r17650 | r17651 | |
918 | 918 | if (state->m_b0_sound == 0) |
919 | 919 | { |
920 | 920 | //logerror("Doing an unsafe write to the sound chip %d \n",data); |
921 | | sn76496_w(device->machine().device("sn76489"), 0,state->m_via_system_porta); |
| 921 | state->m_sn->write(*device->machine().device<legacy_cpu_device>("maincpu")->space(), 0,state->m_via_system_porta); |
922 | 922 | } |
923 | 923 | if (state->m_b3_keyboard == 0) |
924 | 924 | { |
r17650 | r17651 | |
1030 | 1030 | if (state->m_b0_sound == 1) |
1031 | 1031 | { |
1032 | 1032 | state->m_b0_sound = 0; |
1033 | | sn76496_w(space->machine().device("sn76489"), 0, state->m_via_system_porta); |
| 1033 | state->m_sn->write(*device->machine().device<legacy_cpu_device>("maincpu")->space(), 0, state->m_via_system_porta); |
1034 | 1034 | } |
1035 | 1035 | break; |
1036 | 1036 | case 1: |
trunk/src/mess/machine/a2alfam2.c
r17650 | r17651 | |
24 | 24 | #define SN2_TAG "sn76489_2" // center |
25 | 25 | #define SN3_TAG "sn76489_3" // right |
26 | 26 | |
| 27 | //------------------------------------------------- |
| 28 | // sn76496_config psg_intf |
| 29 | //------------------------------------------------- |
| 30 | |
| 31 | static const sn76496_config psg_intf = |
| 32 | { |
| 33 | DEVCB_NULL |
| 34 | }; |
| 35 | |
27 | 36 | MACHINE_CONFIG_FRAGMENT( a2alfam2 ) |
28 | 37 | MCFG_SPEAKER_STANDARD_STEREO("alf_l", "alf_r") |
29 | | MCFG_SOUND_ADD(SN1_TAG, SN76489, XTAL_3_579545MHz) |
| 38 | MCFG_SOUND_ADD(SN1_TAG, SN76489_NEW, XTAL_3_579545MHz) |
| 39 | MCFG_SOUND_CONFIG(psg_intf) |
30 | 40 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "alf_l", 0.50) |
31 | | MCFG_SOUND_ADD(SN2_TAG, SN76489, XTAL_3_579545MHz) |
| 41 | MCFG_SOUND_ADD(SN2_TAG, SN76489_NEW, XTAL_3_579545MHz) |
| 42 | MCFG_SOUND_CONFIG(psg_intf) |
32 | 43 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "alf_l", 0.50) |
33 | 44 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "alf_r", 0.50) |
34 | | MCFG_SOUND_ADD(SN3_TAG, SN76489, XTAL_3_579545MHz) |
| 45 | MCFG_SOUND_ADD(SN3_TAG, SN76489_NEW, XTAL_3_579545MHz) |
| 46 | MCFG_SOUND_CONFIG(psg_intf) |
35 | 47 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "alf_r", 0.50) |
36 | 48 | MACHINE_CONFIG_END |
37 | 49 | |
r17650 | r17651 | |
92 | 104 | switch (offset) |
93 | 105 | { |
94 | 106 | case 0: |
95 | | sn76496_w(m_sn1, 0, data); |
| 107 | m_sn1->write(space, 0, data); |
96 | 108 | break; |
97 | 109 | |
98 | 110 | case 1: |
99 | | sn76496_w(m_sn2, 0, data); |
| 111 | m_sn2->write(space, 0, data); |
100 | 112 | break; |
101 | 113 | |
102 | 114 | case 2: |
103 | | sn76496_w(m_sn3, 0, data); |
| 115 | m_sn3->write(space, 0, data); |
104 | 116 | break; |
105 | 117 | } |
106 | 118 | } |
trunk/src/mess/machine/a2alfam2.h
r17650 | r17651 | |
11 | 11 | |
12 | 12 | #include "emu.h" |
13 | 13 | #include "machine/a2bus.h" |
| 14 | #include "sound/sn76496.h" |
14 | 15 | |
15 | 16 | //************************************************************************** |
16 | 17 | // TYPE DEFINITIONS |
r17650 | r17651 | |
28 | 29 | // optional information overrides |
29 | 30 | virtual machine_config_constructor device_mconfig_additions() const; |
30 | 31 | |
31 | | required_device<device_t> m_sn1; |
32 | | required_device<device_t> m_sn2; |
33 | | required_device<device_t> m_sn3; |
| 32 | required_device<sn76489_new_device> m_sn1; |
| 33 | required_device<sn76489_new_device> m_sn2; |
| 34 | required_device<sn76489_new_device> m_sn3; |
34 | 35 | |
35 | 36 | protected: |
36 | 37 | virtual void device_start(); |
trunk/src/mess/includes/bbc.h
r17650 | r17651 | |
17 | 17 | #include "machine/wd17xx.h" |
18 | 18 | #include "machine/upd7002.h" |
19 | 19 | #include "video/mc6845.h" |
| 20 | #include "sound/sn76496.h" |
20 | 21 | |
21 | 22 | class bbc_state : public driver_device |
22 | 23 | { |
r17650 | r17651 | |
24 | 25 | bbc_state(const machine_config &mconfig, device_type type, const char *tag) |
25 | 26 | : driver_device(mconfig, type, tag), |
26 | 27 | m_maincpu(*this, "maincpu"), |
| 28 | m_sn(*this, "sn76489"), |
27 | 29 | m_ACCCON_IRR(CLEAR_LINE), |
28 | 30 | m_via_system_irq(CLEAR_LINE), |
29 | 31 | m_via_user_irq(CLEAR_LINE), |
r17650 | r17651 | |
31 | 33 | { } |
32 | 34 | |
33 | 35 | required_device<cpu_device> m_maincpu; |
| 36 | optional_device<sn76489_new_device> m_sn; |
34 | 37 | |
35 | 38 | void check_interrupts(); |
36 | 39 | |
trunk/src/mess/drivers/mycom.c
r17650 | r17651 | |
87 | 87 | required_device<device_t> m_wave; |
88 | 88 | required_device<mc6845_device> m_crtc; |
89 | 89 | required_device<device_t> m_fdc; |
90 | | required_device<device_t> m_audio; |
| 90 | required_device<sn76489_new_device> m_audio; |
91 | 91 | required_device<msm5832_device> m_rtc; |
92 | 92 | DECLARE_READ8_MEMBER( mycom_upper_r ); |
93 | 93 | DECLARE_WRITE8_MEMBER( mycom_upper_w ); |
r17650 | r17651 | |
418 | 418 | |
419 | 419 | // if WE & CE are low, pass sound command to audio chip |
420 | 420 | if ((data & 0x30)==0) |
421 | | sn76496_w(m_audio, 0, m_sn_we); |
| 421 | m_audio->write(space, 0, m_sn_we); |
422 | 422 | } |
423 | 423 | |
424 | 424 | static WRITE8_DEVICE_HANDLER( mycom_rtc_w ) |
r17650 | r17651 | |
549 | 549 | }; |
550 | 550 | |
551 | 551 | |
| 552 | /************************************* |
| 553 | * |
| 554 | * Sound interface |
| 555 | * |
| 556 | *************************************/ |
| 557 | |
| 558 | |
| 559 | //------------------------------------------------- |
| 560 | // sn76496_config psg_intf |
| 561 | //------------------------------------------------- |
| 562 | |
| 563 | static const sn76496_config psg_intf = |
| 564 | { |
| 565 | DEVCB_NULL |
| 566 | }; |
| 567 | |
| 568 | |
552 | 569 | MACHINE_START_MEMBER(mycom_state) |
553 | 570 | { |
554 | 571 | m_p_ram = memregion("maincpu")->base(); |
r17650 | r17651 | |
595 | 612 | MCFG_SPEAKER_STANDARD_MONO("mono") |
596 | 613 | MCFG_SOUND_WAVE_ADD(WAVE_TAG, CASSETTE_TAG) |
597 | 614 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
598 | | MCFG_SOUND_ADD("sn1", SN76489, XTAL_10MHz / 4) |
| 615 | MCFG_SOUND_ADD("sn1", SN76489_NEW, XTAL_10MHz / 4) |
599 | 616 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.50) |
| 617 | MCFG_SOUND_CONFIG(psg_intf) |
600 | 618 | |
601 | 619 | /* Devices */ |
602 | 620 | MCFG_MSM5832_ADD(MSM5832RS_TAG, XTAL_32_768kHz) |
trunk/src/mess/drivers/smc777.c
r17650 | r17651 | |
32 | 32 | { |
33 | 33 | public: |
34 | 34 | smc777_state(const machine_config &mconfig, device_type type, const char *tag) |
35 | | : driver_device(mconfig, type, tag) { } |
36 | | |
| 35 | : driver_device(mconfig, type, tag), |
| 36 | m_sn(*this, "sn1") |
| 37 | { } |
| 38 | |
| 39 | optional_device<sn76489a_new_device> m_sn; |
37 | 40 | UINT16 m_cursor_addr; |
38 | 41 | UINT16 m_cursor_raster; |
39 | 42 | UINT8 m_keyb_press; |
r17650 | r17651 | |
686 | 689 | else if(low_offs >= 0x48 && low_offs <= 0x4f) { logerror("HDD (Winchester) write %02x %02x\n",low_offs & 1,data); } //might be 0x48 - 0x50 |
687 | 690 | else if(low_offs == 0x51) { smc777_color_mode_w(space,0,data); } |
688 | 691 | else if(low_offs == 0x52) { smc777_ramdac_w(space,offset & 0xff00,data); } |
689 | | else if(low_offs == 0x53) { sn76496_w(machine().device("sn1"),0,data); } |
| 692 | else if(low_offs == 0x53) { m_sn->write(space,0,data); } |
690 | 693 | else if(low_offs >= 0x54 && low_offs <= 0x59) { logerror("VTR Controller write [%02x] %02x\n",low_offs & 7,data); } |
691 | 694 | else if(low_offs == 0x5a || low_offs == 0x5b) { logerror("RAM Banking write [%02x] %02x\n",low_offs & 1,data); } |
692 | 695 | else if(low_offs == 0x70) { logerror("Auto-start ROM write %02x\n",data); } |
r17650 | r17651 | |
1049 | 1052 | device_set_input_line(device,0,HOLD_LINE); |
1050 | 1053 | } |
1051 | 1054 | |
| 1055 | |
| 1056 | /************************************* |
| 1057 | * |
| 1058 | * Sound interface |
| 1059 | * |
| 1060 | *************************************/ |
| 1061 | |
| 1062 | |
| 1063 | //------------------------------------------------- |
| 1064 | // sn76496_config psg_intf |
| 1065 | //------------------------------------------------- |
| 1066 | |
| 1067 | static const sn76496_config psg_intf = |
| 1068 | { |
| 1069 | DEVCB_NULL |
| 1070 | }; |
| 1071 | |
| 1072 | |
1052 | 1073 | #define MASTER_CLOCK XTAL_4_028MHz |
1053 | 1074 | |
1054 | 1075 | static MACHINE_CONFIG_START( smc777, smc777_state ) |
r17650 | r17651 | |
1083 | 1104 | |
1084 | 1105 | MCFG_SPEAKER_STANDARD_MONO("mono") |
1085 | 1106 | |
1086 | | MCFG_SOUND_ADD("sn1", SN76489A, MASTER_CLOCK) // unknown clock / divider |
| 1107 | MCFG_SOUND_ADD("sn1", SN76489A_NEW, MASTER_CLOCK) // unknown clock / divider |
1087 | 1108 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
| 1109 | MCFG_SOUND_CONFIG(psg_intf) |
1088 | 1110 | |
1089 | 1111 | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
1090 | 1112 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50) |
trunk/src/mess/drivers/pasopia7.c
r17650 | r17651 | |
49 | 49 | required_device<z80pio_device> m_pio; |
50 | 50 | required_device<mc6845_device> m_crtc; |
51 | 51 | required_device<device_t> m_fdc; |
52 | | required_device<device_t> m_sn1; |
53 | | required_device<device_t> m_sn2; |
| 52 | required_device<sn76489a_new_device> m_sn1; |
| 53 | required_device<sn76489a_new_device> m_sn2; |
54 | 54 | DECLARE_READ8_MEMBER(vram_r); |
55 | 55 | DECLARE_WRITE8_MEMBER(vram_w); |
56 | 56 | DECLARE_WRITE8_MEMBER(pasopia7_memory_ctrl_w); |
r17650 | r17651 | |
736 | 736 | m_pio->write_alt(space, io_port & 3, data); |
737 | 737 | else |
738 | 738 | if(io_port == 0x3a) |
739 | | sn76496_w(m_sn1, 0, data); |
| 739 | m_sn1->write(space, 0, data); |
740 | 740 | else |
741 | 741 | if(io_port == 0x3b) |
742 | | sn76496_w(m_sn2, 0, data); |
| 742 | m_sn2->write(space, 0, data); |
743 | 743 | else |
744 | 744 | if(io_port == 0x3c) |
745 | 745 | pasopia7_memory_ctrl_w(space,0, data); |
r17650 | r17651 | |
1043 | 1043 | NULL |
1044 | 1044 | }; |
1045 | 1045 | |
| 1046 | |
| 1047 | /************************************* |
| 1048 | * |
| 1049 | * Sound interface |
| 1050 | * |
| 1051 | *************************************/ |
| 1052 | |
| 1053 | |
| 1054 | //------------------------------------------------- |
| 1055 | // sn76496_config psg_intf |
| 1056 | //------------------------------------------------- |
| 1057 | |
| 1058 | static const sn76496_config psg_intf = |
| 1059 | { |
| 1060 | DEVCB_NULL |
| 1061 | }; |
| 1062 | |
| 1063 | |
1046 | 1064 | static MACHINE_CONFIG_START( p7_base, pasopia7_state ) |
1047 | 1065 | /* basic machine hardware */ |
1048 | 1066 | MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) |
r17650 | r17651 | |
1054 | 1072 | |
1055 | 1073 | /* Audio */ |
1056 | 1074 | MCFG_SPEAKER_STANDARD_MONO("mono") |
1057 | | MCFG_SOUND_ADD("sn1", SN76489A, 1996800) // unknown clock / divider |
| 1075 | MCFG_SOUND_ADD("sn1", SN76489A_NEW, 1996800) // unknown clock / divider |
1058 | 1076 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
1059 | | MCFG_SOUND_ADD("sn2", SN76489A, 1996800) // unknown clock / divider |
| 1077 | MCFG_SOUND_CONFIG(psg_intf) |
| 1078 | MCFG_SOUND_ADD("sn2", SN76489A_NEW, 1996800) // unknown clock / divider |
1060 | 1079 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
| 1080 | MCFG_SOUND_CONFIG(psg_intf) |
1061 | 1081 | |
1062 | 1082 | /* Devices */ |
1063 | 1083 | MCFG_Z80CTC_ADD( "z80ctc", XTAL_4MHz, z80ctc_intf ) |
trunk/src/mess/drivers/bbc.c
r17650 | r17651 | |
787 | 787 | DEVCB_NULL |
788 | 788 | }; |
789 | 789 | |
| 790 | //------------------------------------------------- |
| 791 | // sn76496_config psg_intf |
| 792 | //------------------------------------------------- |
| 793 | |
| 794 | static const sn76496_config psg_intf = |
| 795 | { |
| 796 | DEVCB_NULL |
| 797 | }; |
| 798 | |
790 | 799 | static WRITE_LINE_DEVICE_HANDLER( econet_clk_w ) |
791 | 800 | { |
792 | 801 | mc6854_rxc_w(device, state); |
r17650 | r17651 | |
853 | 862 | |
854 | 863 | /* sound hardware */ |
855 | 864 | MCFG_SPEAKER_STANDARD_MONO("mono") |
856 | | MCFG_SOUND_ADD("sn76489", SN76489, 4000000) /* 4 MHz */ |
| 865 | MCFG_SOUND_ADD("sn76489", SN76489_NEW, 4000000) /* 4 MHz */ |
| 866 | MCFG_SOUND_CONFIG(psg_intf) |
857 | 867 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) |
858 | 868 | // MCFG_SOUND_ADD("tms5220", TMS5220, tms5220_interface) |
859 | 869 | |
r17650 | r17651 | |
946 | 956 | |
947 | 957 | /* sound hardware */ |
948 | 958 | MCFG_SPEAKER_STANDARD_MONO("mono") |
949 | | MCFG_SOUND_ADD("sn76489", SN76489, 4000000) /* 4 MHz */ |
| 959 | MCFG_SOUND_ADD("sn76489", SN76489_NEW, 4000000) /* 4 MHz */ |
| 960 | MCFG_SOUND_CONFIG(psg_intf) |
950 | 961 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) |
951 | 962 | |
952 | 963 | MCFG_MC146818_ADD( "rtc", MC146818_STANDARD ) |