diff options
Diffstat (limited to 'src/mame/drivers/prophet600.cpp')
-rw-r--r-- | src/mame/drivers/prophet600.cpp | 66 |
1 files changed, 33 insertions, 33 deletions
diff --git a/src/mame/drivers/prophet600.cpp b/src/mame/drivers/prophet600.cpp index c191d31d846..b422edc2dd0 100644 --- a/src/mame/drivers/prophet600.cpp +++ b/src/mame/drivers/prophet600.cpp @@ -3,9 +3,9 @@ /*************************************************************************** prophet600.cpp - Sequential Circuits Prophet-600, designed by Dave Smith - - This was the first commercial synthesizer with built-in MIDI. - + + This was the first commercial synthesizer with built-in MIDI. + Skeleton driver by R. Belmont Hardware: @@ -18,34 +18,34 @@ 0x4000-0x4001: DAC for CV/gate drive 0x6000-0x6001: 6850 writes 0xe000-0xe001: 6850 reads - + I/O map: - 00-07: 8253 PIT + 00-07: 8253 PIT 08: set row to scan for keyboard/panel input and LED / lamp output 09: read: analog comparitor, some value vs. the DAC. write: output for LEDs/lamps - comparitor bits: - bit 1: FFFStatus - bit 2: output of 8253 channel 2 - bit 3: ADCCompare: returns sign of if current value is > or < the DAC value - - 0a: read: keyboard/panel input scan bits, write: select a pot on the panel for the comparitor + comparitor bits: + bit 1: FFFStatus + bit 2: output of 8253 channel 2 + bit 3: ADCCompare: returns sign of if current value is > or < the DAC value + + 0a: read: keyboard/panel input scan bits, write: select a pot on the panel for the comparitor 0b: write: update all gate signals 0c: ??? 0d: write: select which CV signal will be updated with the current DAC value 0e: write: mask, masks - bit 0: FFFP -FF P - bit 1: mask gate from 8253 - bit 3: FFFD FF D - bit 4: FFFCL -FF CL - - + bit 0: FFFP -FF P + bit 1: mask gate from 8253 + bit 3: FFFD FF D + bit 4: FFFCL -FF CL + + Info: - Prophet 600 Technical Manual - + - https://github.com/gligli/p600fw - GPLv3 licensed complete replacement firmware for the Prophet 600, but written in C and runs on an AVR that replaces the original Z80. - + ***************************************************************************/ #include "emu.h" @@ -57,16 +57,16 @@ #include "prophet600.lh" -#define MAINCPU_TAG "z80" -#define PIT_TAG "pit" -#define UART_TAG "uart" +#define MAINCPU_TAG "z80" +#define PIT_TAG "pit" +#define UART_TAG "uart" enum { - CV_CV_Osc1A = 0, CV_Osc2A, CV_Osc3A, CV_Osc4A, CV_Osc5A, CV_Osc6A, - CV_Osc1B, CV_Osc2B, CV_Osc3B, CV_Osc4B, CV_Osc5B, CV_Osc6B, - CV_Flt1, CV_Flt2, CV_Flt3, CV_Flt4, CV_Flt5, CV_Flt6, - CV_Amp1, CV_Amp2, CV_Amp3, CV_Amp4, CV_Amp5, CV_Amp6, + CV_CV_Osc1A = 0, CV_Osc2A, CV_Osc3A, CV_Osc4A, CV_Osc5A, CV_Osc6A, + CV_Osc1B, CV_Osc2B, CV_Osc3B, CV_Osc4B, CV_Osc5B, CV_Osc6B, + CV_Flt1, CV_Flt2, CV_Flt3, CV_Flt4, CV_Flt5, CV_Flt6, + CV_Amp1, CV_Amp2, CV_Amp3, CV_Amp4, CV_Amp5, CV_Amp6, CV_PModOscB, CV_VolA, CV_VolB, CV_MasterVol, CV_APW, CV_ExtFilter, CV_Resonance, CV_BPW, CV_MAX @@ -188,7 +188,7 @@ READ8_MEMBER(prophet600_state::scan_r) WRITE8_MEMBER(prophet600_state::mask_w) { m_nmi_gate = (data & 0x02) ? true : false; - if (m_nmi_gate) // gate is set, comparitor line is pulled up to Vcc + if (m_nmi_gate) // gate is set, comparitor line is pulled up to Vcc { m_comparitor |= 0x04; } @@ -197,7 +197,7 @@ WRITE8_MEMBER(prophet600_state::mask_w) m_comparitor &= ~0x04; } -// printf("8253 gate = %x\n", data & 0x02); +// printf("8253 gate = %x\n", data & 0x02); } WRITE8_MEMBER(prophet600_state::cv_w) @@ -222,8 +222,8 @@ WRITE8_MEMBER(prophet600_state::gate_w) } /* Pots: Mixer=0,Cutoff=1,Resonance=2,FilEnvAmt=3,FilRel=4,FilSus=5, - FilDec=6,FilAtt=7,AmpRel=8,AmpSus=9,AmpDec=10,AmpAtt=11, - Glide=12,BPW=13,MVol=14,MTune=15,PitchWheel=16,ModWheel=22, + FilDec=6,FilAtt=7,AmpRel=8,AmpSus=9,AmpDec=10,AmpAtt=11, + Glide=12,BPW=13,MVol=14,MTune=15,PitchWheel=16,ModWheel=22, Speed,APW,PModFilEnv,LFOFreq,PModOscB,LFOAmt,FreqB,FreqA,FreqBFine */ WRITE8_MEMBER(prophet600_state::potmux_w) @@ -232,7 +232,7 @@ WRITE8_MEMBER(prophet600_state::potmux_w) READ8_MEMBER(prophet600_state::comparitor_r) { -// m_comparitor ^= 0x04; +// m_comparitor ^= 0x04; return m_comparitor; } @@ -274,7 +274,7 @@ static MACHINE_CONFIG_START( prophet600, prophet600_state ) MCFG_PIT8253_CLK1(XTAL_8MHz/4) MCFG_PIT8253_CLK2(XTAL_8MHz/4) MCFG_PIT8253_OUT0_HANDLER(WRITELINE(prophet600_state, pit_ch0_tick_w)) - MCFG_PIT8253_OUT2_HANDLER(WRITELINE(prophet600_state, pit_ch2_tick_w)) + MCFG_PIT8253_OUT2_HANDLER(WRITELINE(prophet600_state, pit_ch2_tick_w)) MCFG_DEVICE_ADD(UART_TAG, ACIA6850, 0) MCFG_ACIA6850_TXD_HANDLER(DEVWRITELINE("mdout", midi_port_device, write_txd)) @@ -285,7 +285,7 @@ static MACHINE_CONFIG_START( prophet600, prophet600_state ) MCFG_MIDI_PORT_ADD("mdout", midiout_slot, "midiout") - MCFG_DEVICE_ADD("acia_clock", CLOCK, XTAL_8MHz/16) // 500kHz = 16 times the MIDI rate + MCFG_DEVICE_ADD("acia_clock", CLOCK, XTAL_8MHz/16) // 500kHz = 16 times the MIDI rate MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(prophet600_state, acia_clock_w)) MACHINE_CONFIG_END |