trunk/src/mame/drivers/fidel6502.cpp
| r253039 | r253040 | |
| 45 | 45 | optional_device<generic_slot_device> m_cart; |
| 46 | 46 | optional_device<speaker_sound_device> m_speaker; |
| 47 | 47 | optional_device<timer_device> m_irq_off; |
| 48 | | |
| 48 | |
| 49 | 49 | // model CSC |
| 50 | void csc_update_7442(); |
| 50 | 51 | void csc_prepare_display(); |
| 51 | 52 | DECLARE_READ8_MEMBER(csc_speech_r); |
| 52 | 53 | DECLARE_WRITE8_MEMBER(csc_pia0_pa_w); |
| r253039 | r253040 | |
| 80 | 81 | |
| 81 | 82 | // misc handlers |
| 82 | 83 | |
| 84 | void fidel6502_state::csc_update_7442() |
| 85 | { |
| 86 | // 7442 0-8: led select, input mux |
| 87 | m_inp_mux = 1 << m_led_select & 0x3ff; |
| 88 | |
| 89 | // 7442 9: buzzer speaker out |
| 90 | m_speaker->level_w(m_inp_mux >> 9 & 1); |
| 91 | } |
| 92 | |
| 83 | 93 | void fidel6502_state::csc_prepare_display() |
| 84 | 94 | { |
| 85 | | // 7442 output, also update input mux (9 is unused) |
| 86 | | m_inp_mux = (1 << m_led_select) & 0x1ff; |
| 95 | csc_update_7442(); |
| 87 | 96 | |
| 88 | 97 | // 4 7seg leds + H |
| 89 | 98 | for (int i = 0; i < 4; i++) |
| r253039 | r253040 | |
| 126 | 135 | |
| 127 | 136 | // d1: TSI START line |
| 128 | 137 | m_speech->start_w(data >> 1 & 1); |
| 129 | | |
| 130 | | // d4: tone line |
| 131 | | m_speaker->level_w(data >> 4 & 1); |
| 138 | |
| 139 | // d4: lower TSI volume |
| 140 | m_speech->set_output_gain(0, (data & 0x10) ? 0.5 : 1.0); |
| 132 | 141 | } |
| 133 | 142 | |
| 134 | 143 | READ8_MEMBER(fidel6502_state::csc_pia0_pb_r) |
trunk/src/mame/drivers/fidelz80.cpp
| r253039 | r253040 | |
| 366 | 366 | PA7 - 7seg segments A |
| 367 | 367 | |
| 368 | 368 | PB0 - A12 on speech ROM (if used... not used on this model, ROM is 4K) |
| 369 | | PB1 - START line on S14001A |
| 369 | PB1 - START line on TSI |
| 370 | 370 | PB2 - white wire |
| 371 | | PB3 - BUSY line from S14001A |
| 372 | | PB4 - Tone line (toggle to make a tone in the speaker) |
| 371 | PB3 - BUSY line from TSI |
| 372 | PB4 - hi/lo TSI speaker volume |
| 373 | 373 | PB5 - button row 9 |
| 374 | 374 | PB6 - selection jumper (resistor to 5V) |
| 375 | 375 | PB7 - selection jumper (resistor to ground) |
| r253039 | r253040 | |
| 422 | 422 | 6 - LED column G, button column G |
| 423 | 423 | 7 - LED column H, button column H |
| 424 | 424 | 8 - button column I |
| 425 | | 9 - |
| 425 | 9 - Tone line (toggle to make a tone in the buzzer) |
| 426 | 426 | |
| 427 | 427 | The rows/columns are indicated on the game board: |
| 428 | 428 | |
| r253039 | r253040 | |
| 593 | 593 | |
| 594 | 594 | PB.0 - button column I |
| 595 | 595 | PB.1 - button column J |
| 596 | | PB.2 - Tone line (toggle to make tone in the speaker) |
| 596 | PB.2 - hi/lo TSI speaker volume |
| 597 | 597 | PB.3 - violet wire |
| 598 | 598 | PB.4 - white wire (and TSI BUSY line) |
| 599 | 599 | PB.5 - selection jumper input (see below) |
| r253039 | r253040 | |
| 703 | 703 | #include "machine/i8255.h" |
| 704 | 704 | #include "machine/i8243.h" |
| 705 | 705 | #include "machine/z80pio.h" |
| 706 | | #include "sound/speaker.h" |
| 707 | 706 | #include "sound/beep.h" |
| 708 | 707 | |
| 709 | 708 | #include "includes/fidelz80.h" |
| r253039 | r253040 | |
| 724 | 723 | m_z80pio(*this, "z80pio"), |
| 725 | 724 | m_ppi8255(*this, "ppi8255"), |
| 726 | 725 | m_i8243(*this, "i8243"), |
| 727 | | m_speaker(*this, "speaker"), |
| 728 | 726 | m_beeper_off(*this, "beeper_off"), |
| 729 | 727 | m_beeper(*this, "beeper") |
| 730 | 728 | { } |
| r253039 | r253040 | |
| 734 | 732 | optional_device<z80pio_device> m_z80pio; |
| 735 | 733 | optional_device<i8255_device> m_ppi8255; |
| 736 | 734 | optional_device<i8243_device> m_i8243; |
| 737 | | optional_device<speaker_sound_device> m_speaker; |
| 738 | 735 | optional_device<timer_device> m_beeper_off; |
| 739 | 736 | optional_device<beep_device> m_beeper; |
| 740 | 737 | |
| r253039 | r253040 | |
| 1102 | 1099 | // d0,d1: input mux highest bits |
| 1103 | 1100 | m_inp_mux = (m_inp_mux & 0xff) | (data << 8 & 0x300); |
| 1104 | 1101 | |
| 1105 | | // d2: tone line |
| 1106 | | m_speaker->level_w(data >> 2 & 1); |
| 1107 | | |
| 1108 | 1102 | // d6: TSI START line |
| 1109 | 1103 | m_speech->start_w(data >> 6 & 1); |
| 1104 | |
| 1105 | // d2: lower TSI volume |
| 1106 | m_speech->set_output_gain(0, (data & 4) ? 0.5 : 1.0); |
| 1110 | 1107 | } |
| 1111 | 1108 | |
| 1112 | 1109 | |
| r253039 | r253040 | |
| 1274 | 1271 | PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E5") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_E) |
| 1275 | 1272 | |
| 1276 | 1273 | PORT_START("IN.1") |
| 1277 | | PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CB") PORT_CODE(KEYCODE_Z) |
| 1274 | PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Speak") PORT_CODE(KEYCODE_SPACE) |
| 1278 | 1275 | PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("DM") PORT_CODE(KEYCODE_M) |
| 1279 | 1276 | PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B2") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_B) |
| 1280 | 1277 | PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_F) |
| r253039 | r253040 | |
| 1541 | 1538 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 1542 | 1539 | MCFG_SOUND_ADD("speech", S14001A, 25000) // R/C circuit, around 25khz |
| 1543 | 1540 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) |
| 1544 | | |
| 1545 | | MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0) |
| 1546 | | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 1547 | 1541 | MACHINE_CONFIG_END |
| 1548 | 1542 | |
| 1549 | 1543 | static MACHINE_CONFIG_START( vbrc, fidelz80_state ) |