mirror of
https://github.com/holub/mame
synced 2025-07-06 18:39:28 +03:00
Cleanup & version bump.
This commit is contained in:
parent
12111c21d0
commit
92b3dd111f
@ -148,7 +148,7 @@ private:
|
||||
number_and_format m_stepval; // step value
|
||||
UINT64 m_value; // live value of the parameter
|
||||
astring m_curtext; // holding for a value string
|
||||
simple_list<item> m_itemlist; // list of items
|
||||
simple_list<item> m_itemlist; // list of items
|
||||
};
|
||||
|
||||
|
||||
@ -208,7 +208,7 @@ private:
|
||||
private:
|
||||
// internal state
|
||||
output_argument * m_next; // link to next argument
|
||||
parsed_expression m_expression; // expression for argument
|
||||
parsed_expression m_expression; // expression for argument
|
||||
UINT64 m_count; // number of repetitions
|
||||
};
|
||||
|
||||
@ -217,8 +217,8 @@ private:
|
||||
|
||||
// internal state
|
||||
script_entry * m_next; // link to next entry
|
||||
parsed_expression m_condition; // condition under which this is executed
|
||||
parsed_expression m_expression; // expression to execute
|
||||
parsed_expression m_condition; // condition under which this is executed
|
||||
parsed_expression m_expression; // expression to execute
|
||||
astring m_format; // string format to print
|
||||
simple_list<output_argument> m_arglist; // list of arguments
|
||||
INT8 m_line; // which line to print on
|
||||
|
@ -925,7 +925,7 @@ public:
|
||||
bool decode(const UINT16 word0, const UINT16 word1)
|
||||
{
|
||||
/* Note: This is a JJJF limited in the docs, but other opcodes sneak
|
||||
in before cmp, so the same decode function can be used. */
|
||||
in before cmp, so the same decode function can be used. */
|
||||
decode_JJJF_table(BITSn(word0,0x07), BITSn(word0,0x08),
|
||||
m_source, m_destination);
|
||||
return true;
|
||||
@ -950,7 +950,7 @@ public:
|
||||
bool decode(const UINT16 word0, const UINT16 word1)
|
||||
{
|
||||
/* Note: This is a JJJF limited in the docs, but other opcodes sneak
|
||||
in before cmp, so the same decode function can be used. */
|
||||
in before cmp, so the same decode function can be used. */
|
||||
decode_JJJF_table(BITSn(word0,0x07), BITSn(word0,0x08),
|
||||
m_source, m_destination);
|
||||
return true;
|
||||
@ -2676,7 +2676,7 @@ public:
|
||||
bool decode(const UINT16 word0, const UINT16 word1)
|
||||
{
|
||||
/* There are inconsistencies with the S1 & S2 operand ordering in the docs,
|
||||
but since it's a multiply it doesn't matter */
|
||||
but since it's a multiply it doesn't matter */
|
||||
decode_QQQF_table(BITSn(word0,0x07), BITSn(word0,0x08),
|
||||
m_source, m_source2, m_destination);
|
||||
|
||||
@ -2772,7 +2772,7 @@ public:
|
||||
bool decode(const UINT16 word0, const UINT16 word1)
|
||||
{
|
||||
/* There are inconsistencies with the S1 & S2 operand ordering in the docs,
|
||||
but since it's a multiply it doesn't matter */
|
||||
but since it's a multiply it doesn't matter */
|
||||
decode_QQQF_table(BITSn(word0,0x07), BITSn(word0,0x08),
|
||||
m_source, m_source2, m_destination);
|
||||
|
||||
|
@ -97,7 +97,7 @@ public:
|
||||
int m_index; // user reported index
|
||||
UINT8 m_enabled; // enabled?
|
||||
offs_t m_address; // execution address
|
||||
parsed_expression m_condition; // condition
|
||||
parsed_expression m_condition; // condition
|
||||
astring m_action; // action
|
||||
};
|
||||
|
||||
|
@ -37,24 +37,24 @@
|
||||
|
||||
****************************************************************************
|
||||
|
||||
Operator precedence
|
||||
===================
|
||||
0x0000 ( )
|
||||
0x0001 ++ (postfix), -- (postfix)
|
||||
0x0002 ++ (prefix), -- (prefix), ~, !, - (unary), + (unary), b@, w@, d@, q@
|
||||
0x0003 *, /, %
|
||||
0x0004 + -
|
||||
0x0005 << >>
|
||||
0x0006 < <= > >=
|
||||
0x0007 == !=
|
||||
0x0008 &
|
||||
0x0009 ^
|
||||
0x000a |
|
||||
0x000b &&
|
||||
0x000c ||
|
||||
0x000d = *= /= %= += -= <<= >>= &= |= ^=
|
||||
0x000e ,
|
||||
0x000f func()
|
||||
Operator precedence
|
||||
===================
|
||||
0x0000 ( )
|
||||
0x0001 ++ (postfix), -- (postfix)
|
||||
0x0002 ++ (prefix), -- (prefix), ~, !, - (unary), + (unary), b@, w@, d@, q@
|
||||
0x0003 *, /, %
|
||||
0x0004 + -
|
||||
0x0005 << >>
|
||||
0x0006 < <= > >=
|
||||
0x0007 == !=
|
||||
0x0008 &
|
||||
0x0009 ^
|
||||
0x000a |
|
||||
0x000b &&
|
||||
0x000c ||
|
||||
0x000d = *= /= %= += -= <<= >>= &= |= ^=
|
||||
0x000e ,
|
||||
0x000f func()
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
@ -156,8 +156,8 @@ private:
|
||||
static void internal_setter(symbol_table &table, void *symref, UINT64 value);
|
||||
|
||||
// internal state
|
||||
symbol_table::getter_func m_getter;
|
||||
symbol_table::setter_func m_setter;
|
||||
symbol_table::getter_func m_getter;
|
||||
symbol_table::setter_func m_setter;
|
||||
UINT64 m_value;
|
||||
};
|
||||
|
||||
|
@ -309,7 +309,7 @@ void asc_device::stream_generate(stream_sample_t **inputs, stream_sample_t **out
|
||||
break;
|
||||
}
|
||||
|
||||
// printf("rdA %04x rdB %04x wrA %04x wrB %04x (capA %04x B %04x)\n", m_fifo_a_rdptr, m_fifo_b_rdptr, m_fifo_a_wrptr, m_fifo_b_wrptr, m_fifo_cap_a, m_fifo_cap_b);
|
||||
// printf("rdA %04x rdB %04x wrA %04x wrB %04x (capA %04x B %04x)\n", m_fifo_a_rdptr, m_fifo_b_rdptr, m_fifo_a_wrptr, m_fifo_b_wrptr, m_fifo_cap_a, m_fifo_cap_b);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
@ -320,7 +320,7 @@ READ8_MEMBER( asc_device::read )
|
||||
{
|
||||
UINT8 rv;
|
||||
|
||||
// printf("ASC: read at %x\n", offset);
|
||||
// printf("ASC: read at %x\n", offset);
|
||||
|
||||
// not sure what actually happens when the CPU reads the FIFO...
|
||||
if (offset < 0x400)
|
||||
@ -394,7 +394,7 @@ READ8_MEMBER( asc_device::read )
|
||||
rv = m_regs[R_FIFOSTAT-0x800];
|
||||
}
|
||||
|
||||
// printf("Read FIFO stat = %02x\n", rv);
|
||||
// printf("Read FIFO stat = %02x\n", rv);
|
||||
|
||||
// reading this register clears all bits
|
||||
m_regs[R_FIFOSTAT-0x800] = 0;
|
||||
@ -454,7 +454,7 @@ READ8_MEMBER( asc_device::read )
|
||||
|
||||
WRITE8_MEMBER( asc_device::write )
|
||||
{
|
||||
// printf("ASC: write %02x to %x\n", data, offset);
|
||||
// printf("ASC: write %02x to %x\n", data, offset);
|
||||
|
||||
if (offset < 0x400)
|
||||
{
|
||||
@ -496,7 +496,7 @@ WRITE8_MEMBER( asc_device::write )
|
||||
}
|
||||
else
|
||||
{
|
||||
// printf("ASC: %02x to %x (was %x)\n", data, offset, m_regs[offset-0x800]);
|
||||
// printf("ASC: %02x to %x (was %x)\n", data, offset, m_regs[offset-0x800]);
|
||||
|
||||
stream_update(m_stream);
|
||||
switch (offset)
|
||||
@ -531,7 +531,7 @@ WRITE8_MEMBER( asc_device::write )
|
||||
break;
|
||||
|
||||
case R_WTCONTROL:
|
||||
// printf("One-shot wavetable %02x\n", data);
|
||||
// printf("One-shot wavetable %02x\n", data);
|
||||
break;
|
||||
|
||||
case 0x811:
|
||||
|
@ -547,7 +547,7 @@ DISCRETE_STEP(dsd_555_mstbl)
|
||||
if (UNEXPECTED(DSD_555_MSTBL__C == 0))
|
||||
{
|
||||
/* The trigger voltage goes high because the cap circuit is open.
|
||||
* and the cap discharges */
|
||||
* and the cap discharges */
|
||||
v_cap = info->v_pos; /* needed for cap output type */
|
||||
context->cap_voltage = 0;
|
||||
|
||||
|
@ -2300,7 +2300,7 @@ DISCRETE_STEP(dst_xtime_and)
|
||||
//case XTIME__IN0_0__IN1_0__IN0_X__IN1_NOX:
|
||||
//case XTIME__IN0_0__IN1_1__IN0_NOX__IN1_X:
|
||||
//case XTIME__IN0_1__IN1_0__IN0_X__IN1_NOX:
|
||||
// break;
|
||||
// break;
|
||||
|
||||
case XTIME__IN0_1__IN1_1__IN0_NOX__IN1_NOX:
|
||||
out = 1;
|
||||
@ -2308,52 +2308,52 @@ DISCRETE_STEP(dst_xtime_and)
|
||||
|
||||
case XTIME__IN0_0__IN1_1__IN0_X__IN1_NOX:
|
||||
/*
|
||||
* in0 1 ------
|
||||
* 0 -------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 -------------
|
||||
* 0
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
* in0 1 ------
|
||||
* 0 -------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 -------------
|
||||
* 0
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
x_time = x_time0;
|
||||
break;
|
||||
|
||||
case XTIME__IN0_1__IN1_0__IN0_NOX__IN1_X:
|
||||
/*
|
||||
* in0 1 -------------
|
||||
* 0
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------
|
||||
* 0 -------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
* in0 1 -------------
|
||||
* 0
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------
|
||||
* 0 -------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
x_time = x_time1;
|
||||
break;
|
||||
|
||||
case XTIME__IN0_0__IN1_0__IN0_X__IN1_X:
|
||||
/*
|
||||
* in0 1 ----- -------
|
||||
* 0 -------- ------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 ------- -----
|
||||
* 0 ------ --------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 ----- -----
|
||||
* 0 ------- -------
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
* in0 1 ----- -------
|
||||
* 0 -------- ------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 ------- -----
|
||||
* 0 ------ --------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 ----- -----
|
||||
* 0 ------- -------
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
// use x_time of input that went to 0 first/longer
|
||||
if (x_time0 >= x_time1)
|
||||
x_time = x_time0;
|
||||
@ -2363,92 +2363,92 @@ DISCRETE_STEP(dst_xtime_and)
|
||||
|
||||
case XTIME__IN0_0__IN1_1__IN0_X__IN1_X:
|
||||
/*
|
||||
* in0 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 --
|
||||
* 0 ----- ----- ------------
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
* in0 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 --
|
||||
* 0 ----- ----- ------------
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
// may have went high for a bit in this cycle
|
||||
//if (x_time0 < x_time1)
|
||||
// x_time = time1 - x_time0;
|
||||
// x_time = time1 - x_time0;
|
||||
break;
|
||||
|
||||
case XTIME__IN0_1__IN1_0__IN0_X__IN1_X:
|
||||
/*
|
||||
* in0 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 --
|
||||
* 0 ----- ----- ------------
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
* in0 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 --
|
||||
* 0 ----- ----- ------------
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
// may have went high for a bit in this cycle
|
||||
//if (x_time0 > x_time1)
|
||||
// x_time = x_time0 - x_time1;
|
||||
// x_time = x_time0 - x_time1;
|
||||
break;
|
||||
|
||||
case XTIME__IN0_1__IN1_1__IN0_NOX__IN1_X:
|
||||
/*
|
||||
* in0 1 ------------
|
||||
* 0
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
* in0 1 ------------
|
||||
* 0
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
out = 1;
|
||||
x_time = x_time1;
|
||||
break;
|
||||
|
||||
case XTIME__IN0_1__IN1_1__IN0_X__IN1_NOX:
|
||||
/*
|
||||
* in1 0 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------------
|
||||
* 0
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
* in1 0 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------------
|
||||
* 0
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
out = 1;
|
||||
x_time = x_time0;
|
||||
break;
|
||||
|
||||
case XTIME__IN0_1__IN1_1__IN0_X__IN1_X:
|
||||
/*
|
||||
* in0 1 ------ --------
|
||||
* 0 ------ ----
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 -------- ------
|
||||
* 0 ---- ------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 ------ ------
|
||||
* 0 ------ ------
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
* in0 1 ------ --------
|
||||
* 0 ------ ----
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 -------- ------
|
||||
* 0 ---- ------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 ------ ------
|
||||
* 0 ------ ------
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
out = 1;
|
||||
if (x_time0 < x_time1)
|
||||
x_time = x_time0;
|
||||
@ -2520,7 +2520,7 @@ DISCRETE_STEP(dst_xtime_or)
|
||||
//case XTIME__IN0_0__IN1_1__IN0_X__IN1_NOX:
|
||||
//case XTIME__IN0_1__IN1_1__IN0_NOX__IN1_X:
|
||||
//case XTIME__IN0_1__IN1_1__IN0_X__IN1_NOX:
|
||||
// break;
|
||||
// break;
|
||||
|
||||
case XTIME__IN0_0__IN1_0__IN0_NOX__IN1_NOX:
|
||||
out = 0;
|
||||
@ -2528,54 +2528,54 @@ DISCRETE_STEP(dst_xtime_or)
|
||||
|
||||
case XTIME__IN0_0__IN1_0__IN0_NOX__IN1_X:
|
||||
/*
|
||||
* in0 1
|
||||
* 0 -------------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------
|
||||
* 0 -------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
* in0 1
|
||||
* 0 -------------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------
|
||||
* 0 -------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
out = 0;
|
||||
x_time = x_time1;
|
||||
break;
|
||||
|
||||
case XTIME__IN0_0__IN1_0__IN0_X__IN1_NOX:
|
||||
/*
|
||||
* in0 1 ------
|
||||
* 0 -------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1
|
||||
* 0 -------------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
* in0 1 ------
|
||||
* 0 -------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1
|
||||
* 0 -------------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
out = 0;
|
||||
x_time = x_time0;
|
||||
break;
|
||||
|
||||
case XTIME__IN0_0__IN1_0__IN0_X__IN1_X:
|
||||
/*
|
||||
* in0 1 ----- -------
|
||||
* 0 -------- ------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 ------- -----
|
||||
* 0 ------ --------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 ------- -------
|
||||
* 0 ----- -----
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
* in0 1 ----- -------
|
||||
* 0 -------- ------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 ------- -----
|
||||
* 0 ------ --------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 ------- -------
|
||||
* 0 ----- -----
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
out = 0;
|
||||
// use x_time of input that was 1 last/longer
|
||||
// this means at 0 for less x_time
|
||||
@ -2587,94 +2587,94 @@ DISCRETE_STEP(dst_xtime_or)
|
||||
|
||||
case XTIME__IN0_0__IN1_1__IN0_NOX__IN1_X:
|
||||
/*
|
||||
* in0 1
|
||||
* 0 ------------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
* in0 1
|
||||
* 0 ------------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
x_time = x_time1;
|
||||
break;
|
||||
|
||||
case XTIME__IN0_1__IN1_0__IN0_X__IN1_NOX:
|
||||
/*
|
||||
* in0 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1
|
||||
* 0 ------------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
* in0 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1
|
||||
* 0 ------------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
x_time = x_time0;
|
||||
break;
|
||||
|
||||
case XTIME__IN0_0__IN1_1__IN0_X__IN1_X:
|
||||
/*
|
||||
* in0 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 ------------ ----- -----
|
||||
* 0 --
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
* in0 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 ------------ ----- -----
|
||||
* 0 --
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
// if (x_time0 > x_time1)
|
||||
/* Not sure if it is better to use 1
|
||||
* or the total energy which would smear the switch points together.
|
||||
* Let's try just using 1 */
|
||||
* or the total energy which would smear the switch points together.
|
||||
* Let's try just using 1 */
|
||||
//x_time = xtime_0 - xtime_1;
|
||||
break;
|
||||
|
||||
case XTIME__IN0_1__IN1_0__IN0_X__IN1_X:
|
||||
/*
|
||||
* in0 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 ------------ ----- -----
|
||||
* 0 --
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
* in0 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 ------------ ----- -----
|
||||
* 0 --
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
//if (x_time0 < x_time1)
|
||||
/* Not sure if it is better to use 1
|
||||
* or the total energy which would smear the switch points together.
|
||||
* Let's try just using 1 */
|
||||
* or the total energy which would smear the switch points together.
|
||||
* Let's try just using 1 */
|
||||
//x_time = xtime_1 - xtime_0;
|
||||
break;
|
||||
|
||||
case XTIME__IN0_1__IN1_1__IN0_X__IN1_X:
|
||||
/*
|
||||
* in0 1 ------ --------
|
||||
* 0 ------ ----
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 -------- ------
|
||||
* 0 ---- ------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 -------- --------
|
||||
* 0 ---- ----
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
* in0 1 ------ --------
|
||||
* 0 ------ ----
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 -------- ------
|
||||
* 0 ---- ------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 -------- --------
|
||||
* 0 ---- ----
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
if (x_time0 > x_time1)
|
||||
x_time = x_time0;
|
||||
else
|
||||
@ -2740,7 +2740,7 @@ DISCRETE_STEP(dst_xtime_xor)
|
||||
// these are all 1
|
||||
//case XTIME__IN0_0__IN1_1__IN0_NOX__IN1_NOX:
|
||||
//case XTIME__IN0_1__IN1_0__IN0_NOX__IN1_NOX:
|
||||
// break;
|
||||
// break;
|
||||
|
||||
case XTIME__IN0_1__IN1_1__IN0_NOX__IN1_NOX:
|
||||
case XTIME__IN0_0__IN1_0__IN0_NOX__IN1_NOX:
|
||||
@ -2749,196 +2749,196 @@ DISCRETE_STEP(dst_xtime_xor)
|
||||
|
||||
case XTIME__IN0_1__IN1_0__IN0_X__IN1_NOX:
|
||||
/*
|
||||
* in0 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1
|
||||
* 0 ------------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
* in0 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1
|
||||
* 0 ------------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
case XTIME__IN0_0__IN1_1__IN0_X__IN1_NOX:
|
||||
/*
|
||||
* in0 1 ------
|
||||
* 0 -------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 -------------
|
||||
* 0
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
* in0 1 ------
|
||||
* 0 -------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 -------------
|
||||
* 0
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
x_time = x_time0;
|
||||
break;
|
||||
|
||||
case XTIME__IN0_0__IN1_1__IN0_NOX__IN1_X:
|
||||
/*
|
||||
* in0 1
|
||||
* 0 ------------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
* in0 1
|
||||
* 0 ------------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
case XTIME__IN0_1__IN1_0__IN0_NOX__IN1_X:
|
||||
/*
|
||||
* in0 1 -------------
|
||||
* 0
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------
|
||||
* 0 -------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
* in0 1 -------------
|
||||
* 0
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------
|
||||
* 0 -------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
x_time = x_time1;
|
||||
break;
|
||||
|
||||
case XTIME__IN0_0__IN1_0__IN0_X__IN1_NOX:
|
||||
/*
|
||||
* in0 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1
|
||||
* 0 ------------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
* in0 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1
|
||||
* 0 ------------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
case XTIME__IN0_1__IN1_1__IN0_X__IN1_NOX:
|
||||
/*
|
||||
* in1 0 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------------
|
||||
* 0
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
* in1 0 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------------
|
||||
* 0
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
out = 0;
|
||||
x_time = x_time0;
|
||||
break;
|
||||
|
||||
case XTIME__IN0_0__IN1_0__IN0_NOX__IN1_X:
|
||||
/*
|
||||
* in0 1
|
||||
* 0 ------------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
* in0 1
|
||||
* 0 ------------
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
case XTIME__IN0_1__IN1_1__IN0_NOX__IN1_X:
|
||||
/*
|
||||
* in0 1 ------------
|
||||
* 0
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
* in0 1 ------------
|
||||
* 0
|
||||
* ...^....^...
|
||||
*
|
||||
* in1 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*
|
||||
* out 1 ------
|
||||
* 0 ------
|
||||
* ...^....^...
|
||||
*/
|
||||
out = 0;
|
||||
x_time = x_time1;
|
||||
break;
|
||||
|
||||
case XTIME__IN0_0__IN1_0__IN0_X__IN1_X:
|
||||
/*
|
||||
* in0 1 ----- -------
|
||||
* 0 ------- -----
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 -- --
|
||||
* 0 ----- ----- ----- -----
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
* in0 1 ----- -------
|
||||
* 0 ------- -----
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 -- --
|
||||
* 0 ----- ----- ----- -----
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
case XTIME__IN0_1__IN1_1__IN0_X__IN1_X:
|
||||
/*
|
||||
* in0 1 ------ --------
|
||||
* 0 ------ ----
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 -------- ------
|
||||
* 0 ---- ------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 -- --
|
||||
* 0 ---- ------ ---- ------
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
* in0 1 ------ --------
|
||||
* 0 ------ ----
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 -------- ------
|
||||
* 0 ---- ------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 -- --
|
||||
* 0 ---- ------ ---- ------
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
out = 0;
|
||||
/* Not sure if it is better to use 0
|
||||
* or the total energy which would smear the switch points together.
|
||||
* Let's try just using 0 */
|
||||
* or the total energy which would smear the switch points together.
|
||||
* Let's try just using 0 */
|
||||
// x_time = abs(x_time0 - x_time1);
|
||||
break;
|
||||
|
||||
case XTIME__IN0_0__IN1_1__IN0_X__IN1_X:
|
||||
/*
|
||||
* in0 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 ----- ----- ----- -----
|
||||
* 0 -- --
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
* in0 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 ----- ----- ----- -----
|
||||
* 0 -- --
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
case XTIME__IN0_1__IN1_0__IN0_X__IN1_X:
|
||||
/*
|
||||
* in0 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 ----- ----- ----- -----
|
||||
* 0 -- --
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
* in0 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* in1 1 ------- -----
|
||||
* 0 ----- -------
|
||||
* ...^....^... ...^....^...
|
||||
*
|
||||
* out 1 ----- ----- ----- -----
|
||||
* 0 -- --
|
||||
* ...^....^... ...^....^...
|
||||
*/
|
||||
/* Not sure if it is better to use 1
|
||||
* or the total energy which would smear the switch points together.
|
||||
* Let's try just using 1 */
|
||||
* or the total energy which would smear the switch points together.
|
||||
* Let's try just using 1 */
|
||||
// x_time = 1.0 - abs(x_time0 - x_time1);
|
||||
break;
|
||||
}
|
||||
|
@ -68,16 +68,16 @@
|
||||
#define UTF8_MULTIPLY "\xc3\x97" /* multiplication symbol */
|
||||
#define UTF8_DEGREES "\xc2\xb0" /* degrees symbol */
|
||||
|
||||
#define a_RING "\xc3\xa5" /* small a with a ring */
|
||||
#define a_UMLAUT "\xc3\xa4" /* small a with an umlaut */
|
||||
#define o_UMLAUT "\xc3\xb6" /* small o with an umlaut */
|
||||
#define u_UMLAUT "\xc3\xbc" /* small u with an umlaut */
|
||||
#define a_RING "\xc3\xa5" /* small a with a ring */
|
||||
#define a_UMLAUT "\xc3\xa4" /* small a with an umlaut */
|
||||
#define o_UMLAUT "\xc3\xb6" /* small o with an umlaut */
|
||||
#define u_UMLAUT "\xc3\xbc" /* small u with an umlaut */
|
||||
#define e_ACUTE "\xc3\xa9" /* small e with an acute */
|
||||
|
||||
#define A_RING "\xc3\x85" /* capital A with a ring */
|
||||
#define A_UMLAUT "\xc3\x84" /* capital A with an umlaut */
|
||||
#define O_UMLAUT "\xc3\x96" /* capital O with an umlaut */
|
||||
#define U_UMLAUT "\xc3\x9c" /* capital U with an umlaut */
|
||||
#define A_RING "\xc3\x85" /* capital A with a ring */
|
||||
#define A_UMLAUT "\xc3\x84" /* capital A with an umlaut */
|
||||
#define O_UMLAUT "\xc3\x96" /* capital O with an umlaut */
|
||||
#define U_UMLAUT "\xc3\x9c" /* capital U with an umlaut */
|
||||
#define E_ACUTE "\xc3\x89" /* capital E with an acute */
|
||||
|
||||
#define UTF8_LEFT "\xe2\x86\x90" /* cursor left */
|
||||
|
@ -184,7 +184,7 @@ static const discrete_555_cc_desc copsnrob_motor01_555cc =
|
||||
DISC_555_OUT_COUNT_R | DISCRETE_555_CC_TO_DISCHARGE_PIN,
|
||||
5, /* v_pos */
|
||||
DEFAULT_555_CC_SOURCE,
|
||||
1, /* v_out_high - ignored */
|
||||
1, /* v_out_high - ignored */
|
||||
0.6 /* v_cc_junction */
|
||||
};
|
||||
|
||||
@ -202,7 +202,7 @@ static const discrete_555_cc_desc copsnrob_motor01_555cc =
|
||||
#define COPSNROB_MOTOR01(_output, _input, _num) \
|
||||
/* simulate the RC connected to the transistor with a DAC */ \
|
||||
DISCRETE_DAC_R1(COPSNROB_MOTOR01_NODE(_num, 0), \
|
||||
_input, 4.2, &copsnrob_motor01_cc_dac) /* DATA; VDATA - TTL with light load */ \
|
||||
_input, 4.2, &copsnrob_motor01_cc_dac) /* DATA; VDATA - TTL with light load */ \
|
||||
DISCRETE_555_CC(COPSNROB_MOTOR01_NODE(_num, 1), /* IC F2, pin 10 from IC F3, pin 9 */ \
|
||||
1, /* RESET - IC F3, pin 10 */ \
|
||||
COPSNROB_MOTOR01_NODE(_num, 0), /* VIN */ \
|
||||
@ -222,7 +222,7 @@ static const discrete_555_cc_desc copsnrob_motor01_555cc =
|
||||
COPSNROB_MOTOR01_NODE(_num, 3), 2, /* INP1, INP2 */ \
|
||||
"02&2/12*+") /* get bits ready for DAC */\
|
||||
DISCRETE_DAC_R1(_output, \
|
||||
COPSNROB_MOTOR01_NODE(_num, 4), 4.2, &copsnrob_motor01_out_dac) /* DATA; VDATA - TTL with light load */
|
||||
COPSNROB_MOTOR01_NODE(_num, 4), 4.2, &copsnrob_motor01_out_dac) /* DATA; VDATA - TTL with light load */
|
||||
|
||||
/************************************************
|
||||
* MOTOR0/1 Definition Start
|
||||
@ -235,7 +235,7 @@ static const discrete_555_cc_desc copsnrob_motor01_555cc =
|
||||
#define COPSNROB_MOTOR23(_output, _input, _num) \
|
||||
/* simulate the RC connected to the 555 CV pin with a DAC */ \
|
||||
DISCRETE_DAC_R1(COPSNROB_MOTOR23_NODE(_num, 0), \
|
||||
_input, 4.2, &copsnrob_motor23_cv_dac) /* DATA; VDATA - TTL with light load */ \
|
||||
_input, 4.2, &copsnrob_motor23_cv_dac) /* DATA; VDATA - TTL with light load */ \
|
||||
DISCRETE_555_ASTABLE_CV(COPSNROB_MOTOR23_NODE(_num, 1), /* IC J2, pin 5 */ \
|
||||
1, /* RESET */ \
|
||||
COPSNROB_R64, COPSNROB_R42, COPSNROB_C24, \
|
||||
@ -294,8 +294,8 @@ DISCRETE_STEP(copsnrob_custom_noise)
|
||||
t_used += node->info->sample_time;
|
||||
|
||||
/* This clock will never run faster then the sample rate,
|
||||
* so we do not bother to check.
|
||||
*/
|
||||
* so we do not bother to check.
|
||||
*/
|
||||
if (t_used > t1)
|
||||
{
|
||||
/* calculate the overshoot time */
|
||||
@ -403,10 +403,10 @@ DISCRETE_STEP(copsnrob_zings_555_monostable)
|
||||
|
||||
/* From testing a real IC */
|
||||
/* Trigger going low overides everything. It forces the FF/Output high.
|
||||
* If Threshold is high, the output will still go high as long as trigger is low.
|
||||
* The output will then go low when trigger rises above it's 1/3VCC value.
|
||||
* If threshold is below it's 2/3VCC value, the output will remain high.
|
||||
*/
|
||||
* If Threshold is high, the output will still go high as long as trigger is low.
|
||||
* The output will then go low when trigger rises above it's 1/3VCC value.
|
||||
* If threshold is below it's 2/3VCC value, the output will remain high.
|
||||
*/
|
||||
if (ff_set)
|
||||
{
|
||||
flip_flop = 1;
|
||||
@ -550,9 +550,9 @@ DISCRETE_STEP(copsnrob_zings_555_astable)
|
||||
v_trigger = v_cap1 / 3;
|
||||
|
||||
/* This oscillator will never create a frequency greater then 1/2 the sample rate,
|
||||
* so we won't worry about missing samples */
|
||||
* so we won't worry about missing samples */
|
||||
/* No need to optimize the charge circuit. It always charges/discharges to a voltage
|
||||
* greater then it will ever reach. */
|
||||
* greater then it will ever reach. */
|
||||
if (flip_flop)
|
||||
{
|
||||
/* charge */
|
||||
@ -619,15 +619,15 @@ static const discrete_custom_info copsnrob_zings_555_astable =
|
||||
DISCRETE_SOUND_START(copsnrob)
|
||||
|
||||
/************************************************
|
||||
* Input register mapping
|
||||
************************************************/
|
||||
* Input register mapping
|
||||
************************************************/
|
||||
DISCRETE_INPUT_LOGIC(COPSNROB_MOTOR0_INV)
|
||||
DISCRETE_INPUT_LOGIC(COPSNROB_MOTOR1_INV)
|
||||
DISCRETE_INPUT_LOGIC(COPSNROB_MOTOR2_INV)
|
||||
DISCRETE_INPUT_LOGIC(COPSNROB_MOTOR3_INV)
|
||||
/* !! DISABLED UNTIL ADDRESS IS FOUND !! */
|
||||
// DISCRETE_INPUTX_LOGIC(COPSNROB_ZINGS_INV, 4, 0, 0)
|
||||
// DISCRETE_INPUT_LOGIC(COPSNROB_FIRES_INV)
|
||||
// DISCRETE_INPUTX_LOGIC(COPSNROB_ZINGS_INV, 4, 0, 0)
|
||||
// DISCRETE_INPUT_LOGIC(COPSNROB_FIRES_INV)
|
||||
DISCRETE_INPUT_NOT(COPSNROB_CRASH_INV) /* inverted for counter use */
|
||||
DISCRETE_INPUT_LOGIC(COPSNROB_SCREECH_INV)
|
||||
DISCRETE_INPUT_NOT(COPSNROB_AUDIO_ENABLE) /* IC A1, pins 2 & 12 */
|
||||
@ -639,20 +639,20 @@ DISCRETE_SOUND_START(copsnrob)
|
||||
DISCRETE_CONSTANT(COPSNROB_FIRES_INV, 4) /* data bit will be normally high */
|
||||
|
||||
/************************************************
|
||||
* MOTOR0/1
|
||||
************************************************/
|
||||
* MOTOR0/1
|
||||
************************************************/
|
||||
COPSNROB_MOTOR01(COPSNROB_MOTOR0_SND, COPSNROB_MOTOR0_INV, 0)
|
||||
COPSNROB_MOTOR01(COPSNROB_MOTOR1_SND, COPSNROB_MOTOR1_INV, 1)
|
||||
|
||||
/************************************************
|
||||
* MOTOR2/3
|
||||
************************************************/
|
||||
* MOTOR2/3
|
||||
************************************************/
|
||||
COPSNROB_MOTOR23(COPSNROB_MOTOR2_SND, COPSNROB_MOTOR2_INV, 0)
|
||||
COPSNROB_MOTOR23(COPSNROB_MOTOR3_SND, COPSNROB_MOTOR3_INV, 1)
|
||||
|
||||
/************************************************
|
||||
* CRASH
|
||||
************************************************/
|
||||
* CRASH
|
||||
************************************************/
|
||||
DISCRETE_CUSTOM1(COPSNROB_NOISE_1, /* IC J2, pin 10 */
|
||||
COPSNROB_2V, /* CLK */
|
||||
&copsnrob_custom_noise)
|
||||
@ -672,13 +672,13 @@ DISCRETE_SOUND_START(copsnrob)
|
||||
&copsnrob_crash_dac)
|
||||
|
||||
/************************************************
|
||||
* SCREECH
|
||||
************************************************/
|
||||
* SCREECH
|
||||
************************************************/
|
||||
DISCRETE_CONSTANT(COPSNROB_SCREECH_SND, 0)
|
||||
|
||||
/************************************************
|
||||
* FZ (Fires, Zings)
|
||||
************************************************/
|
||||
* FZ (Fires, Zings)
|
||||
************************************************/
|
||||
DISCRETE_CUSTOM3(NODE_60, /* IC D3, pin 5 */
|
||||
/* We can ignore R47 & R48 */
|
||||
COPSNROB_ZINGS_INV, /* IC D3, pin 6 */
|
||||
@ -699,8 +699,8 @@ DISCRETE_SOUND_START(copsnrob)
|
||||
COPSNROB_R73 / COPSNROB_R26)
|
||||
|
||||
/************************************************
|
||||
* MIXER
|
||||
************************************************/
|
||||
* MIXER
|
||||
************************************************/
|
||||
DISCRETE_MIXER5(NODE_90, /* IC B3, pin 3 */
|
||||
COPSNROB_AUDIO_ENABLE, /* ENAB */
|
||||
COPSNROB_MOTOR1_SND, COPSNROB_MOTOR0_SND, COPSNROB_FZ_SND, COPSNROB_SCREECH_SND, COPSNROB_CRASH_SND,
|
||||
|
@ -910,18 +910,18 @@ DISCRETE_TASK_START(1)
|
||||
4.14, 0.151) /* INP0; INP1 (measured) */
|
||||
|
||||
/* Breadboarded measurements IC 5K, pin 7
|
||||
D.R. Oct 2010
|
||||
V Hz
|
||||
0.151 3139
|
||||
0.25 2883
|
||||
0.5 2820
|
||||
0.75 3336
|
||||
1 3805
|
||||
2 6498
|
||||
3 9796
|
||||
4 13440
|
||||
4.14 13980
|
||||
*/
|
||||
D.R. Oct 2010
|
||||
V Hz
|
||||
0.151 3139
|
||||
0.25 2883
|
||||
0.5 2820
|
||||
0.75 3336
|
||||
1 3805
|
||||
2 6498
|
||||
3 9796
|
||||
4 13440
|
||||
4.14 13980
|
||||
*/
|
||||
|
||||
DISCRETE_74LS624(NODE_113, /* IC 5K, pin 7 */
|
||||
1, /* ENAB */
|
||||
@ -942,18 +942,18 @@ DISCRETE_TASK_START(1)
|
||||
0.135, 4.15) /* measured Low/High */
|
||||
|
||||
/* Breadboarded measurements IC 5K, pin 10
|
||||
D.R. Oct 2010
|
||||
V Hz
|
||||
0.135 14450 - measured 74LS04 low
|
||||
0.25 13320
|
||||
0.5 12980
|
||||
0.75 15150
|
||||
1 17270
|
||||
2 28230
|
||||
3 41910
|
||||
4 56950
|
||||
4.15 59400 - measured 74LS04 high
|
||||
*/
|
||||
D.R. Oct 2010
|
||||
V Hz
|
||||
0.135 14450 - measured 74LS04 low
|
||||
0.25 13320
|
||||
0.5 12980
|
||||
0.75 15150
|
||||
1 17270
|
||||
2 28230
|
||||
3 41910
|
||||
4 56950
|
||||
4.15 59400 - measured 74LS04 high
|
||||
*/
|
||||
|
||||
DISCRETE_74LS624(NODE_118, /* IC 5K, pin 10 */
|
||||
1, /* ENAB */
|
||||
@ -984,18 +984,18 @@ DISCRETE_TASK_START(2)
|
||||
DISCRETE_MIXER2(NODE_13, 1, NODE_11, NODE_12, &dkongjr_s1_mixer_desc)
|
||||
|
||||
/* Breadboarded measurements IC 8L, pin 10
|
||||
D.R. Oct 2010
|
||||
V Hz
|
||||
0.151 313
|
||||
0.25 288
|
||||
0.5 275
|
||||
0.75 324
|
||||
1 370
|
||||
2 635
|
||||
3 965
|
||||
4 1325
|
||||
4.14 1378
|
||||
*/
|
||||
D.R. Oct 2010
|
||||
V Hz
|
||||
0.151 313
|
||||
0.25 288
|
||||
0.5 275
|
||||
0.75 324
|
||||
1 370
|
||||
2 635
|
||||
3 965
|
||||
4 1325
|
||||
4.14 1378
|
||||
*/
|
||||
|
||||
DISCRETE_74LS624(NODE_14, /* IC 8L, pin 10 */
|
||||
1, /* ENAB */
|
||||
@ -1015,8 +1015,8 @@ DISCRETE_TASK_START(2)
|
||||
DISCRETE_TASK_END()
|
||||
|
||||
/************************************************
|
||||
* SOUND2 - climbing
|
||||
************************************************/
|
||||
* SOUND2 - climbing
|
||||
************************************************/
|
||||
|
||||
DISCRETE_TASK_START(1)
|
||||
/* the noise source clock is a 74LS629 IC 7P, pin 10.
|
||||
@ -1048,18 +1048,18 @@ DISCRETE_TASK_START(1)
|
||||
0.134, 4.16) /* measured Low/High */
|
||||
|
||||
/* Breadboarded measurements IC 7P, pin 7
|
||||
D.R. Oct 2010
|
||||
V Hz
|
||||
0.134 570
|
||||
0.25 538
|
||||
0.5 489
|
||||
0.75 560
|
||||
1 636
|
||||
2 1003
|
||||
3 1484
|
||||
4 2016
|
||||
4.16 2111
|
||||
*/
|
||||
D.R. Oct 2010
|
||||
V Hz
|
||||
0.134 570
|
||||
0.25 538
|
||||
0.5 489
|
||||
0.75 560
|
||||
1 636
|
||||
2 1003
|
||||
3 1484
|
||||
4 2016
|
||||
4.16 2111
|
||||
*/
|
||||
DISCRETE_74LS624(NODE_91, /* IC 7P, pin 7 */
|
||||
1, /* ENAB */
|
||||
NODE_90, DK_SUP_V, /* VMOD - IC 7P, pin 2, VRNG */
|
||||
@ -1072,8 +1072,8 @@ DISCRETE_TASK_START(1)
|
||||
DISCRETE_TASK_END()
|
||||
|
||||
/************************************************
|
||||
* DAC
|
||||
************************************************/
|
||||
* DAC
|
||||
************************************************/
|
||||
|
||||
DISCRETE_TASK_START(1)
|
||||
DISCRETE_INPUT_BUFFER(DS_DAC, 0)
|
||||
@ -1094,8 +1094,8 @@ DISCRETE_TASK_START(1)
|
||||
DISCRETE_TASK_END()
|
||||
|
||||
/************************************************
|
||||
* Amplifier
|
||||
************************************************/
|
||||
* Amplifier
|
||||
************************************************/
|
||||
|
||||
DISCRETE_TASK_START(3)
|
||||
DISCRETE_MIXER5(NODE_288, 1, DS_OUT_SOUND9, DS_OUT_SOUND0, DS_OUT_SOUND2, DS_OUT_SOUND1, DS_OUT_DAC, &dkongjr_mixer_desc)
|
||||
@ -1106,9 +1106,9 @@ DISCRETE_TASK_START(3)
|
||||
DISCRETE_CRFILTER(NODE_295, NODE_288, 1000, JR_C13)
|
||||
/* approx -1.805V to 2.0V when playing, but turn on sound peaks at 2.36V */
|
||||
/* we will set the full wav range to 1.18V which will cause clipping on the turn on
|
||||
* sound and explosions. The real game would do this when the volume is turned up too.
|
||||
* Reducing MAME's master volume to 50% will provide full unclipped volume.
|
||||
*/
|
||||
* sound and explosions. The real game would do this when the volume is turned up too.
|
||||
* Reducing MAME's master volume to 50% will provide full unclipped volume.
|
||||
*/
|
||||
DISCRETE_OUTPUT(NODE_295, 32767.0/1.18)
|
||||
DISCRETE_TASK_END()
|
||||
|
||||
|
@ -145,15 +145,15 @@
|
||||
static DISCRETE_SOUND_START(mario)
|
||||
|
||||
/************************************************
|
||||
* Input register mapping for mario
|
||||
************************************************/
|
||||
* Input register mapping for mario
|
||||
************************************************/
|
||||
|
||||
/* DISCRETE_INPUT_DATA */
|
||||
DISCRETE_INPUT_NOT(DS_SOUND7_INV) /* IC 7L, pin 8 */
|
||||
|
||||
/************************************************
|
||||
* SOUND0
|
||||
************************************************/
|
||||
* SOUND0
|
||||
************************************************/
|
||||
|
||||
DISCRETE_TASK_START(1)
|
||||
DISCRETE_INPUT_PULSE(DS_SOUND0_INV, 1) /* IC 4C, pin 15 */
|
||||
@ -164,27 +164,27 @@ static DISCRETE_SOUND_START(mario)
|
||||
/* Breadboarded measurements IC 1J, pin 10
|
||||
D.R. Oct 2010
|
||||
V Hz
|
||||
0.115 14470
|
||||
0.250 15190
|
||||
0.500 14980
|
||||
0.750 18150
|
||||
1.000 21690
|
||||
2.000 38790
|
||||
3.000 58580
|
||||
4.000 79890
|
||||
0.115 14470
|
||||
0.250 15190
|
||||
0.500 14980
|
||||
0.750 18150
|
||||
1.000 21690
|
||||
2.000 38790
|
||||
3.000 58580
|
||||
4.000 79890
|
||||
*/
|
||||
|
||||
/* Breadboarded measurements IC 2J, pin 10
|
||||
D.R. Oct 2010
|
||||
V Hz
|
||||
0.116 2458
|
||||
0.250 2593
|
||||
0.500 2540
|
||||
0.750 3081
|
||||
1.000 3676
|
||||
2.000 6590
|
||||
3.000 9974
|
||||
4.000 13620
|
||||
0.116 2458
|
||||
0.250 2593
|
||||
0.500 2540
|
||||
0.750 3081
|
||||
1.000 3676
|
||||
2.000 6590
|
||||
3.000 9974
|
||||
4.000 13620
|
||||
*/
|
||||
|
||||
/* covert logic to measured voltage */
|
||||
@ -214,8 +214,8 @@ static DISCRETE_SOUND_START(mario)
|
||||
DISCRETE_TASK_END()
|
||||
|
||||
/************************************************
|
||||
* SOUND1
|
||||
************************************************/
|
||||
* SOUND1
|
||||
************************************************/
|
||||
|
||||
DISCRETE_TASK_START(1)
|
||||
DISCRETE_INPUT_PULSE(DS_SOUND1_INV, 1) /* IC 4C, pin 14 */
|
||||
@ -226,27 +226,27 @@ static DISCRETE_SOUND_START(mario)
|
||||
/* Breadboarded measurements IC 1J, pin 7
|
||||
D.R. Oct 2010
|
||||
V Hz
|
||||
0.116 1380
|
||||
0.250 1448
|
||||
0.500 1419
|
||||
0.750 1717
|
||||
1.000 2053
|
||||
2.000 3677
|
||||
3.000 5561
|
||||
4.000 7610
|
||||
0.116 1380
|
||||
0.250 1448
|
||||
0.500 1419
|
||||
0.750 1717
|
||||
1.000 2053
|
||||
2.000 3677
|
||||
3.000 5561
|
||||
4.000 7610
|
||||
*/
|
||||
|
||||
/* Breadboarded measurements IC 2J, pin 7
|
||||
D.R. Oct 2010
|
||||
V Hz
|
||||
0.112 8030
|
||||
0.250 8490
|
||||
0.500 8326
|
||||
0.750 10030
|
||||
1.000 12000
|
||||
2.000 21460
|
||||
3.000 32540
|
||||
4.000 44300
|
||||
0.112 8030
|
||||
0.250 8490
|
||||
0.500 8326
|
||||
0.750 10030
|
||||
1.000 12000
|
||||
2.000 21460
|
||||
3.000 32540
|
||||
4.000 44300
|
||||
*/
|
||||
|
||||
/* covert logic to measured voltage */
|
||||
@ -276,8 +276,8 @@ static DISCRETE_SOUND_START(mario)
|
||||
DISCRETE_TASK_END()
|
||||
|
||||
/************************************************
|
||||
* SOUND7
|
||||
************************************************/
|
||||
* SOUND7
|
||||
************************************************/
|
||||
|
||||
DISCRETE_TASK_START(1)
|
||||
DISCRETE_COUNTER(NODE_100, /* IC 3H */
|
||||
@ -349,8 +349,8 @@ static DISCRETE_SOUND_START(mario)
|
||||
DISCRETE_TASK_END()
|
||||
|
||||
/************************************************
|
||||
* DAC
|
||||
************************************************/
|
||||
* DAC
|
||||
************************************************/
|
||||
|
||||
/* following the resistor DAC are two opamps. The first is a 1:1 amplifier, the second
|
||||
* is a filter circuit. Simulation in LTSPICE shows, that the following is equivalent:
|
||||
@ -366,14 +366,14 @@ static DISCRETE_SOUND_START(mario)
|
||||
&mario_dac_amp)
|
||||
/* This provides a close simulation of the IC 3M, pin 10 filter circuit */
|
||||
/* The Measured and SPICEd low freq gain is 1, it then has a high frequency
|
||||
* drop close to the following RC filter. */
|
||||
* drop close to the following RC filter. */
|
||||
DISCRETE_RCFILTER_VREF(DS_OUT_DAC, NODE_171, RES_K(750), CAP_P(180), 2.5)
|
||||
DISCRETE_TASK_END()
|
||||
|
||||
|
||||
/************************************************
|
||||
* MIXER
|
||||
************************************************/
|
||||
* MIXER
|
||||
************************************************/
|
||||
|
||||
DISCRETE_TASK_START(2)
|
||||
DISCRETE_MIXER4(NODE_297,
|
||||
@ -382,9 +382,9 @@ static DISCRETE_SOUND_START(mario)
|
||||
&mario_mixer)
|
||||
/* approx -0.625V to 0.980V when playing, but turn on sound peaks at 2.38V */
|
||||
/* we will set the full wav range to 1.19V which will cause clipping on the turn on
|
||||
* sound. The real game would do this when the volume is turned up too.
|
||||
* Reducing MAME's master volume to 50% will provide full unclipped volume.
|
||||
*/
|
||||
* sound. The real game would do this when the volume is turned up too.
|
||||
* Reducing MAME's master volume to 50% will provide full unclipped volume.
|
||||
*/
|
||||
DISCRETE_OUTPUT(NODE_297, 32767.0/1.19)
|
||||
DISCRETE_TASK_END()
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
* Cheese Chase
|
||||
* Ultimate Tennis
|
||||
* Stone Ball
|
||||
* Shooting Star (not emulated)
|
||||
* Shooting Star (not emulated)
|
||||
|
||||
Known bugs:
|
||||
* measured against a real PCB, the games run slightly too fast
|
||||
@ -1028,17 +1028,17 @@ ROM_END
|
||||
Shooting Star:
|
||||
|
||||
- Small pcb "gewehr controller" (gun controller) adp 1994
|
||||
romless MCU 80c31BH-3 16P philips
|
||||
27c256 eprom "2207 7b42c5"
|
||||
LC36648L-10
|
||||
8 connectors
|
||||
3X led
|
||||
osc 12.0000M
|
||||
romless MCU 80c31BH-3 16P philips
|
||||
27c256 eprom "2207 7b42c5"
|
||||
LC36648L-10
|
||||
8 connectors
|
||||
3X led
|
||||
osc 12.0000M
|
||||
|
||||
- common adp cpu board adp 1994.12
|
||||
MC68ec0000FN8
|
||||
2x 27c1001 eproms
|
||||
2x mk48t08b-15 timekeeper RAM
|
||||
MC68ec0000FN8
|
||||
2x 27c1001 eproms
|
||||
2x mk48t08b-15 timekeeper RAM
|
||||
|
||||
- common adp i/o board (see adp.c ) with MC68681 an YM2149F
|
||||
|
||||
@ -1047,34 +1047,34 @@ Shooting Star:
|
||||
- a couple of tiny boards with some logic parts
|
||||
|
||||
- Art & Magic jamma pcb, 11 connectors (jamma not connected) "am005c0494 0310"
|
||||
MC68000p12
|
||||
TMS34010fnl-40
|
||||
fpga actel a1020a pl84c 16b.u110
|
||||
cpld xilinx xc7236a 0 25 15b.u111
|
||||
MC68681p
|
||||
ramdac adv476kn80e 03-56 os
|
||||
Oki M6295
|
||||
25.000mhz
|
||||
40.000mhz
|
||||
MC68000p12
|
||||
TMS34010fnl-40
|
||||
fpga actel a1020a pl84c 16b.u110
|
||||
cpld xilinx xc7236a 0 25 15b.u111
|
||||
MC68681p
|
||||
ramdac adv476kn80e 03-56 os
|
||||
Oki M6295
|
||||
25.000mhz
|
||||
40.000mhz
|
||||
|
||||
13 pals/gals (not dumped) labelled:
|
||||
a&m005c0494 06a u126
|
||||
a&m005c0494 03a u125
|
||||
a&m005c0494 02a u307
|
||||
a&m005c0494 18a u306
|
||||
a&m005c0494 17a u305
|
||||
a&m005c0494 05a u206
|
||||
a&m005c0494 01a u205
|
||||
a&m005c0494 04a u601
|
||||
a&m005c0494 08a u916
|
||||
a&m005c0494 07a u705
|
||||
a&m005c0494 10a u917
|
||||
a&m005c0494 09a u903
|
||||
a&m005c0494 11a u112
|
||||
13 pals/gals (not dumped) labelled:
|
||||
a&m005c0494 06a u126
|
||||
a&m005c0494 03a u125
|
||||
a&m005c0494 02a u307
|
||||
a&m005c0494 18a u306
|
||||
a&m005c0494 17a u305
|
||||
a&m005c0494 05a u206
|
||||
a&m005c0494 01a u205
|
||||
a&m005c0494 04a u601
|
||||
a&m005c0494 08a u916
|
||||
a&m005c0494 07a u705
|
||||
a&m005c0494 10a u917
|
||||
a&m005c0494 09a u903
|
||||
a&m005c0494 11a u112
|
||||
|
||||
27c2001 near oki "a&m005c0494 12a"
|
||||
2x 27c010 68k labelled u101 and u102
|
||||
2x 27c040 "a&m005c0494 13a" and "a&m005c0494 14a"
|
||||
27c2001 near oki "a&m005c0494 12a"
|
||||
2x 27c010 68k labelled u101 and u102
|
||||
2x 27c040 "a&m005c0494 13a" and "a&m005c0494 14a"
|
||||
|
||||
|
||||
Shooting Star
|
||||
|
@ -3919,7 +3919,7 @@ ROM_END
|
||||
/**** Fun World Quiz ****
|
||||
|
||||
Fun World Quiz
|
||||
Öhlinger Ges.m.b.H.
|
||||
?hlinger Ges.m.b.H.
|
||||
|
||||
Horizontal Display
|
||||
Currents
|
||||
|
@ -5005,7 +5005,7 @@ static TIMER_CALLBACK( segacd_hock_callback )
|
||||
|
||||
if(hock_cmd)
|
||||
{
|
||||
// segacd_cdd.ctrl &= ~4; // clear HOCK flag
|
||||
// segacd_cdd.ctrl &= ~4; // clear HOCK flag
|
||||
|
||||
segacd_cdd_rx[0] = (segacd_cdd.buffer[0] & 0xf0) >> 4;
|
||||
segacd_cdd_rx[1] = (segacd_cdd.buffer[0] & 0x0f) >> 0;
|
||||
@ -5577,7 +5577,7 @@ static void segacd_cdd_seek(running_machine *machine)
|
||||
|
||||
track_num = cdrom_get_track(segacd.cd, frame);
|
||||
segacd.current_frame = frame;
|
||||
// printf("%02x %02x %02x %02x\n",m,s,f,track_num);
|
||||
// printf("%02x %02x %02x %02x\n",m,s,f,track_num);
|
||||
|
||||
segacd_cdd.ctrl &= 0xfeff;
|
||||
segacd_cdd.ctrl |= (( segacd.toc->tracks[track_num-1].trktype == CD_TRACK_AUDIO ) ? 0x000 : 0x100);
|
||||
|
@ -4683,7 +4683,7 @@ BOMULEUL CHAJARA SEGA ST-V 1997/04/11
|
||||
DRIVER( gundmct ) /* 2001.03 Mobile Suit Gundam: Federation vs. Zeon (cartridge) */
|
||||
/* 2001.04 Shakatto Tambourine Motto Norinori Shinkyoku Tsuika */
|
||||
DRIVER( dygolf ) /* 2001.04 Dynamic Golf */
|
||||
DRIVER( zerogu2 ) /* 2001.05 Zero Gunner 2 */
|
||||
DRIVER( zerogu2 ) /* 2001.05 Zero Gunner 2 */
|
||||
DRIVER( monkeyba ) /* 2001.05 Monkey Ball */
|
||||
DRIVER( cvsgd ) /* 2001.06 Capcom vs. SNK Pro */
|
||||
/* 2001.06 Crackin' DJ Part2 */
|
||||
|
@ -11,7 +11,7 @@
|
||||
lkage_scroll[0x05]: background layer vertical scroll
|
||||
|
||||
lkage_vreg[0]: 0x00,0x04
|
||||
0x02: tx tile bank select (bygone only?)
|
||||
0x02: tx tile bank select (bygone only?)
|
||||
0x04: fg tile bank select
|
||||
0x08: ?
|
||||
|
||||
|
@ -59,8 +59,8 @@ public:
|
||||
virtual void update(bool skip_redraw);
|
||||
|
||||
// debugger overridables
|
||||
// virtual void init_debugger();
|
||||
// virtual void wait_for_debugger(device_t &device, bool firststop);
|
||||
// virtual void init_debugger();
|
||||
// virtual void wait_for_debugger(device_t &device, bool firststop);
|
||||
|
||||
// audio overridables
|
||||
virtual void update_audio_stream(const INT16 *buffer, int samples_this_frame);
|
||||
|
@ -146,7 +146,7 @@ public:
|
||||
virtual void update(bool skip_redraw);
|
||||
|
||||
// debugger overridables
|
||||
// virtual void init_debugger();
|
||||
// virtual void init_debugger();
|
||||
virtual void wait_for_debugger(device_t &device, bool firststop);
|
||||
|
||||
// audio overridables
|
||||
|
@ -10,4 +10,4 @@
|
||||
***************************************************************************/
|
||||
|
||||
extern const char build_version[];
|
||||
const char build_version[] = "0.140 ("__DATE__")";
|
||||
const char build_version[] = "0.140u1 ("__DATE__")";
|
||||
|
Loading…
Reference in New Issue
Block a user