summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/prophet600.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/prophet600.cpp')
-rw-r--r--src/mame/drivers/prophet600.cpp66
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