mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
hh class cleanup 2/2
This commit is contained in:
parent
4d2d78e908
commit
177fc92622
@ -745,7 +745,7 @@ public:
|
||||
: hh_hmcs40_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void cdkong_display();
|
||||
void prepare_display();
|
||||
DECLARE_WRITE8_MEMBER(plate_w);
|
||||
DECLARE_WRITE16_MEMBER(grid_w);
|
||||
|
||||
@ -772,7 +772,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(cdkong_state::speaker_decay_sim)
|
||||
}
|
||||
|
||||
|
||||
void cdkong_state::cdkong_display()
|
||||
void cdkong_state::prepare_display()
|
||||
{
|
||||
UINT32 plate = BITSWAP32(m_plate,31,30,29,24,0,16,8,1,23,17,9,2,18,10,25,27,26,3,15,27,11,11,14,22,6,13,21,5,19,12,20,4);
|
||||
display_matrix(29, 11, plate, m_grid);
|
||||
@ -787,7 +787,7 @@ WRITE8_MEMBER(cdkong_state::plate_w)
|
||||
// R0x-R6x: vfd matrix plate
|
||||
int shift = offset * 4;
|
||||
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
|
||||
cdkong_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(cdkong_state::grid_w)
|
||||
@ -797,7 +797,7 @@ WRITE16_MEMBER(cdkong_state::grid_w)
|
||||
|
||||
// D4-D14: vfd matrix grid
|
||||
m_grid = data >> 4 & 0x7ff;
|
||||
cdkong_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
|
||||
@ -879,7 +879,7 @@ public:
|
||||
: hh_hmcs40_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void cgalaxn_display();
|
||||
void prepare_display();
|
||||
DECLARE_WRITE16_MEMBER(plate_w);
|
||||
DECLARE_WRITE8_MEMBER(grid_w);
|
||||
DECLARE_READ8_MEMBER(input_r);
|
||||
@ -887,7 +887,7 @@ public:
|
||||
|
||||
// handlers
|
||||
|
||||
void cgalaxn_state::cgalaxn_display()
|
||||
void cgalaxn_state::prepare_display()
|
||||
{
|
||||
UINT16 grid = BITSWAP16(m_grid,15,14,13,12,1,2,0,11,10,9,8,7,6,5,4,3);
|
||||
UINT16 plate = BITSWAP16(m_plate,15,14,5,4,3,2,1,0,7,11,12,9,8,10,6,13);
|
||||
@ -903,7 +903,7 @@ WRITE8_MEMBER(cgalaxn_state::grid_w)
|
||||
|
||||
// D2-D15: vfd matrix plate
|
||||
m_plate = data >> 2 & 0x3fff;
|
||||
cgalaxn_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(cgalaxn_state::plate_w)
|
||||
@ -915,7 +915,7 @@ WRITE16_MEMBER(cgalaxn_state::plate_w)
|
||||
// R1x-R3x: vfd matrix grid
|
||||
int shift = (offset - HMCS40_PORT_R1X) * 4;
|
||||
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
|
||||
cgalaxn_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
READ8_MEMBER(cgalaxn_state::input_r)
|
||||
@ -1225,7 +1225,7 @@ public:
|
||||
: hh_hmcs40_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void egalaxn2_display();
|
||||
void prepare_display();
|
||||
DECLARE_WRITE8_MEMBER(plate_w);
|
||||
DECLARE_WRITE16_MEMBER(grid_w);
|
||||
DECLARE_READ8_MEMBER(input_r);
|
||||
@ -1233,7 +1233,7 @@ public:
|
||||
|
||||
// handlers
|
||||
|
||||
void egalaxn2_state::egalaxn2_display()
|
||||
void egalaxn2_state::prepare_display()
|
||||
{
|
||||
UINT16 grid = BITSWAP16(m_grid,15,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14);
|
||||
UINT32 plate = BITSWAP24(m_plate,23,22,21,20,15,14,13,12,7,6,5,4,3,2,1,0,19,18,17,16,11,10,9,8);
|
||||
@ -1250,7 +1250,7 @@ WRITE16_MEMBER(egalaxn2_state::grid_w)
|
||||
|
||||
// D1-D15: vfd matrix grid
|
||||
m_grid = data >> 1;
|
||||
egalaxn2_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(egalaxn2_state::plate_w)
|
||||
@ -1258,7 +1258,7 @@ WRITE8_MEMBER(egalaxn2_state::plate_w)
|
||||
// R1x-R6x: vfd matrix plate
|
||||
int shift = (offset - HMCS40_PORT_R1X) * 4;
|
||||
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
|
||||
egalaxn2_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
READ8_MEMBER(egalaxn2_state::input_r)
|
||||
@ -1345,7 +1345,6 @@ public:
|
||||
epacman2_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: egalaxn2_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
};
|
||||
|
||||
// handlers are identical to Galaxian 2, so we can use those
|
||||
@ -1515,7 +1514,7 @@ public:
|
||||
: hh_hmcs40_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void kingman_display();
|
||||
void prepare_display();
|
||||
DECLARE_WRITE8_MEMBER(plate_w);
|
||||
DECLARE_WRITE16_MEMBER(grid_w);
|
||||
|
||||
@ -1525,7 +1524,7 @@ public:
|
||||
|
||||
// handlers
|
||||
|
||||
void kingman_state::kingman_display()
|
||||
void kingman_state::prepare_display()
|
||||
{
|
||||
UINT16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,9,0,1,2,3,4,5,6,7,8);
|
||||
UINT32 plate = BITSWAP24(m_plate,23,6,7,5,4,3,2,1,0,13,12,20,19,18,17,16,10,11,9,8,14,15,13,12);
|
||||
@ -1537,7 +1536,7 @@ WRITE8_MEMBER(kingman_state::plate_w)
|
||||
// R0x-R3x: vfd matrix plate
|
||||
int shift = offset * 4;
|
||||
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
|
||||
kingman_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(kingman_state::grid_w)
|
||||
@ -1558,7 +1557,7 @@ WRITE16_MEMBER(kingman_state::grid_w)
|
||||
|
||||
// D0-D4: more plates
|
||||
m_plate = (m_plate & 0x00ffff) | (data << 16 & 0x1f0000);
|
||||
kingman_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
void kingman_state::update_int0()
|
||||
@ -1636,7 +1635,7 @@ public:
|
||||
: hh_hmcs40_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void tmtron_display();
|
||||
void prepare_display();
|
||||
DECLARE_WRITE8_MEMBER(plate_w);
|
||||
DECLARE_WRITE16_MEMBER(grid_w);
|
||||
|
||||
@ -1646,7 +1645,7 @@ public:
|
||||
|
||||
// handlers
|
||||
|
||||
void tmtron_state::tmtron_display()
|
||||
void tmtron_state::prepare_display()
|
||||
{
|
||||
UINT16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,1,2,3,4,5,6,7,8,9,0);
|
||||
UINT32 plate = BITSWAP24(m_plate,23,5,2,21,1,6,7,9,10,11,21,0,19,3,4,8,3,18,17,16,12,13,14,15);
|
||||
@ -1658,7 +1657,7 @@ WRITE8_MEMBER(tmtron_state::plate_w)
|
||||
// R0x-R3x: vfd matrix plate
|
||||
int shift = offset * 4;
|
||||
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
|
||||
tmtron_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(tmtron_state::grid_w)
|
||||
@ -1679,7 +1678,7 @@ WRITE16_MEMBER(tmtron_state::grid_w)
|
||||
|
||||
// D0-D3,D5: more plates
|
||||
m_plate = (m_plate & 0x00ffff) | (data << 16 & 0x2f0000);
|
||||
tmtron_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
void tmtron_state::update_int1()
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -254,7 +254,7 @@ public:
|
||||
: hh_ucom4_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void ssfball_display();
|
||||
void prepare_display();
|
||||
DECLARE_WRITE8_MEMBER(grid_w);
|
||||
DECLARE_WRITE8_MEMBER(plate_w);
|
||||
DECLARE_READ8_MEMBER(input_b_r);
|
||||
@ -262,7 +262,7 @@ public:
|
||||
|
||||
// handlers
|
||||
|
||||
void ssfball_state::ssfball_display()
|
||||
void ssfball_state::prepare_display()
|
||||
{
|
||||
UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,11,7,3,12,17,13,18,16,14,15,10,9,8,0,1,2,4,5,6);
|
||||
display_matrix(16, 9, plate, m_grid);
|
||||
@ -273,7 +273,7 @@ WRITE8_MEMBER(ssfball_state::grid_w)
|
||||
// C,D(,E3): vfd matrix grid 0-7(,8)
|
||||
int shift = (offset - NEC_UCOM4_PORTC) * 4;
|
||||
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
|
||||
ssfball_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(ssfball_state::plate_w)
|
||||
@ -292,7 +292,7 @@ WRITE8_MEMBER(ssfball_state::plate_w)
|
||||
if (offset == NEC_UCOM4_PORTE)
|
||||
grid_w(space, offset, data >> 3 & 1);
|
||||
else
|
||||
ssfball_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
READ8_MEMBER(ssfball_state::input_b_r)
|
||||
@ -379,7 +379,7 @@ public:
|
||||
: hh_ucom4_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void splasfgt_display();
|
||||
void prepare_display();
|
||||
DECLARE_WRITE8_MEMBER(grid_w);
|
||||
DECLARE_WRITE8_MEMBER(plate_w);
|
||||
DECLARE_READ8_MEMBER(input_b_r);
|
||||
@ -387,7 +387,7 @@ public:
|
||||
|
||||
// handlers
|
||||
|
||||
void splasfgt_state::splasfgt_display()
|
||||
void splasfgt_state::prepare_display()
|
||||
{
|
||||
UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,18,17,13,1,0,8,6,0,10,11,14,15,16,9,5,7,4,2,3);
|
||||
display_matrix(16, 9, plate, m_grid);
|
||||
@ -406,7 +406,7 @@ WRITE8_MEMBER(splasfgt_state::grid_w)
|
||||
if (offset == NEC_UCOM4_PORTI)
|
||||
plate_w(space, 4 + NEC_UCOM4_PORTC, data >> 2 & 1);
|
||||
else
|
||||
splasfgt_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(splasfgt_state::plate_w)
|
||||
@ -418,7 +418,7 @@ WRITE8_MEMBER(splasfgt_state::plate_w)
|
||||
// C,D,E,F23(,I2): vfd matrix plate
|
||||
int shift = (offset - NEC_UCOM4_PORTC) * 4;
|
||||
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
|
||||
splasfgt_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
READ8_MEMBER(splasfgt_state::input_b_r)
|
||||
@ -533,14 +533,14 @@ public:
|
||||
: hh_ucom4_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void astrocmd_display();
|
||||
void prepare_display();
|
||||
DECLARE_WRITE8_MEMBER(grid_w);
|
||||
DECLARE_WRITE8_MEMBER(plate_w);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
void astrocmd_state::astrocmd_display()
|
||||
void astrocmd_state::prepare_display()
|
||||
{
|
||||
UINT16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,9,8,4,5,6,7,0,1,2,3);
|
||||
UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,3,2,12,13,14,15,16,17,18,0,1,4,8,5,9,7,11,6,10);
|
||||
@ -552,7 +552,7 @@ WRITE8_MEMBER(astrocmd_state::grid_w)
|
||||
// C,D(,E3): vfd matrix grid
|
||||
int shift = (offset - NEC_UCOM4_PORTC) * 4;
|
||||
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
|
||||
astrocmd_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(astrocmd_state::plate_w)
|
||||
@ -570,7 +570,7 @@ WRITE8_MEMBER(astrocmd_state::plate_w)
|
||||
grid_w(space, offset, data >> 3 & 1);
|
||||
}
|
||||
else
|
||||
astrocmd_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
|
||||
@ -901,14 +901,14 @@ public:
|
||||
: hh_ucom4_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void tmpacman_display();
|
||||
void prepare_display();
|
||||
DECLARE_WRITE8_MEMBER(grid_w);
|
||||
DECLARE_WRITE8_MEMBER(plate_w);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
void tmpacman_state::tmpacman_display()
|
||||
void tmpacman_state::prepare_display()
|
||||
{
|
||||
UINT16 grid = BITSWAP8(m_grid,0,1,2,3,4,5,6,7);
|
||||
UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,16,17,18,11,10,9,8,0,2,3,1,4,5,6,7,12,13,14,15);
|
||||
@ -920,7 +920,7 @@ WRITE8_MEMBER(tmpacman_state::grid_w)
|
||||
// C,D: vfd matrix grid
|
||||
int shift = (offset - NEC_UCOM4_PORTC) * 4;
|
||||
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
|
||||
tmpacman_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(tmpacman_state::plate_w)
|
||||
@ -932,7 +932,7 @@ WRITE8_MEMBER(tmpacman_state::plate_w)
|
||||
// E023,F,G,H,I: vfd matrix plate
|
||||
int shift = (offset - NEC_UCOM4_PORTE) * 4;
|
||||
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
|
||||
tmpacman_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
* TMS1400NLL MP7332-N1.U1(Rev. B) or MP7332-N2LL(Rev. C), die labeled MP7332
|
||||
(assume same ROM contents between revisions)
|
||||
* SN75494N MOS-to-LED digit driver
|
||||
* rotating reel + lightsensor
|
||||
* rotating reel + lightsensor, 1bit-sound
|
||||
|
||||
This is a board game, it obviously requires game pieces and the board.
|
||||
The emulated part is the centerpiece, a black tower with a rotating card
|
||||
@ -32,7 +32,7 @@ public:
|
||||
: hh_tms1k_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void mbdtower_display();
|
||||
void prepare_display();
|
||||
bool sensor_led_on() { return m_display_decay[0][0] != 0; }
|
||||
|
||||
int m_motor_pos;
|
||||
@ -58,7 +58,7 @@ protected:
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void mbdtower_state::mbdtower_display()
|
||||
void mbdtower_state::prepare_display()
|
||||
{
|
||||
// declare display matrix size and the 2 7segs
|
||||
set_display_size(7, 3);
|
||||
@ -148,7 +148,7 @@ WRITE16_MEMBER(mbdtower_state::write_r)
|
||||
// R5-R7: tower lamps
|
||||
// R8: rotation sensor led
|
||||
m_r = data;
|
||||
mbdtower_display();
|
||||
prepare_display();
|
||||
|
||||
// R10: speaker out
|
||||
m_speaker->level_w(~data >> 4 & data >> 10 & 1);
|
||||
@ -159,7 +159,7 @@ WRITE16_MEMBER(mbdtower_state::write_o)
|
||||
// O0-O6: led segments A-G
|
||||
// O7: digit select
|
||||
m_o = data;
|
||||
mbdtower_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
READ8_MEMBER(mbdtower_state::read_k)
|
||||
@ -226,13 +226,14 @@ void mbdtower_state::machine_start()
|
||||
{
|
||||
hh_tms1k_state::machine_start();
|
||||
|
||||
// zerofill/register for savestates
|
||||
// zerofill
|
||||
m_motor_pos = 0;
|
||||
m_motor_pos_prev = -1;
|
||||
m_motor_decay = 0;
|
||||
m_motor_on = false;
|
||||
m_sensor_blind = false;
|
||||
|
||||
// register for savestates
|
||||
save_item(NAME(m_motor_pos));
|
||||
/* save_item(NAME(m_motor_pos_prev)); */ // don't save!
|
||||
save_item(NAME(m_motor_decay));
|
||||
|
@ -31,35 +31,6 @@ public:
|
||||
: hh_tms1k_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
// calculator-specific handlers
|
||||
void tisr16_display();
|
||||
DECLARE_WRITE16_MEMBER(tisr16_write_o);
|
||||
DECLARE_WRITE16_MEMBER(tisr16_write_r);
|
||||
DECLARE_READ8_MEMBER(tisr16_read_k);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(ti1270_write_o);
|
||||
DECLARE_WRITE16_MEMBER(ti1270_write_r);
|
||||
DECLARE_READ8_MEMBER(ti1270_read_k);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(ti1000_write_o);
|
||||
DECLARE_WRITE16_MEMBER(ti1000_write_r);
|
||||
DECLARE_READ8_MEMBER(ti1000_read_k);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(wizatron_write_o);
|
||||
DECLARE_WRITE16_MEMBER(wizatron_write_r);
|
||||
DECLARE_READ8_MEMBER(wizatron_read_k);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(lilprof_write_o);
|
||||
DECLARE_READ8_MEMBER(lilprof_read_k);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(lilprof78_write_o);
|
||||
DECLARE_WRITE16_MEMBER(lilprof78_write_r);
|
||||
DECLARE_READ8_MEMBER(lilprof78_read_k);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(ti30_write_o);
|
||||
DECLARE_WRITE16_MEMBER(ti30_write_r);
|
||||
DECLARE_READ8_MEMBER(ti30_read_k);
|
||||
|
||||
protected:
|
||||
virtual void machine_start();
|
||||
};
|
||||
@ -75,19 +46,37 @@ void ticalc1x_state::machine_start()
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Minidrivers (I/O, Inputs, Machine Config)
|
||||
Minidrivers (subclass, I/O, Inputs, Machine Config)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
TI SR-16
|
||||
* TMS1000 MCU labeled TMS1001NL. die labeled 1000, 1001A
|
||||
TI SR-16, SR-16 II
|
||||
* SR-16: TMS1000 MCU labeled TMS1001NL. die labeled 1000, 1001A
|
||||
* SR-16 II: TMS1000 MCU labeled TMS1016NL. die labeled 1000B, 1016A
|
||||
* 12-digit 7seg LED display
|
||||
|
||||
SR-16 II is a cost-reduced 'sequel', [10^x] was removed, and [pi] was added.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void ticalc1x_state::tisr16_display()
|
||||
class tisr16_state : public ticalc1x_state
|
||||
{
|
||||
public:
|
||||
tisr16_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: ticalc1x_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void prepare_display();
|
||||
DECLARE_WRITE16_MEMBER(write_o);
|
||||
DECLARE_WRITE16_MEMBER(write_r);
|
||||
DECLARE_READ8_MEMBER(read_k);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
void tisr16_state::prepare_display()
|
||||
{
|
||||
// update leds state
|
||||
for (int y = 0; y < 11; y++)
|
||||
@ -101,27 +90,29 @@ void ticalc1x_state::tisr16_display()
|
||||
display_update();
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ticalc1x_state::tisr16_write_r)
|
||||
WRITE16_MEMBER(tisr16_state::write_r)
|
||||
{
|
||||
// R0-R10: input mux
|
||||
// R0-R10: select digit (right-to-left)
|
||||
m_r = m_inp_mux = data;
|
||||
tisr16_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ticalc1x_state::tisr16_write_o)
|
||||
WRITE16_MEMBER(tisr16_state::write_o)
|
||||
{
|
||||
// O0-O7: digit segments
|
||||
m_o = data;
|
||||
tisr16_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
READ8_MEMBER(ticalc1x_state::tisr16_read_k)
|
||||
READ8_MEMBER(tisr16_state::read_k)
|
||||
{
|
||||
return read_inputs(11);
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( tisr16 )
|
||||
PORT_START("IN.0") // R0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
@ -191,38 +182,6 @@ static INPUT_PORTS_START( tisr16 )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( tisr16, ticalc1x_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", TMS1000, 300000) // RC osc. R=43K, C=68pf -> ~300kHz
|
||||
MCFG_TMS1XXX_READ_K_CB(READ8(ticalc1x_state, tisr16_read_k))
|
||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(ticalc1x_state, tisr16_write_o))
|
||||
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(ticalc1x_state, tisr16_write_r))
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_DEFAULT_LAYOUT(layout_tisr16)
|
||||
|
||||
/* no video! */
|
||||
|
||||
/* no sound! */
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
TI SR-16 II
|
||||
* TMS1000 MCU labeled TMS1016NL. die labeled 1000B, 1016A
|
||||
* 12-digit 7seg LED display
|
||||
|
||||
A cost-reduced 'sequel', [10^x] was removed, and [pi] was added.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
// hardware is nearly identical to TI SR-16 above, so we simply use those handlers
|
||||
|
||||
static INPUT_PORTS_START( tisr16ii )
|
||||
PORT_START("IN.0") // R0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
@ -292,10 +251,20 @@ static INPUT_PORTS_START( tisr16ii )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( tisr16ii, tisr16 )
|
||||
static MACHINE_CONFIG_START( tisr16, tisr16_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
// the MCU RC osc. is different: R=30K, C=100pf -> ~300kHz(same freq as tisr16, no change needed)
|
||||
MCFG_CPU_ADD("maincpu", TMS1000, 300000) // RC osc. R=43K, C=68pf -> ~300kHz (note: tisr16ii MCU RC osc. is different: R=30K, C=100pf -> also ~300kHz)
|
||||
MCFG_TMS1XXX_READ_K_CB(READ8(tisr16_state, read_k))
|
||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(tisr16_state, write_o))
|
||||
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(tisr16_state, write_r))
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_DEFAULT_LAYOUT(layout_tisr16)
|
||||
|
||||
/* no video! */
|
||||
|
||||
/* no sound! */
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
@ -310,13 +279,27 @@ MACHINE_CONFIG_END
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
WRITE16_MEMBER(ticalc1x_state::ti1270_write_r)
|
||||
class ti1270_state : public ticalc1x_state
|
||||
{
|
||||
public:
|
||||
ti1270_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: ticalc1x_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
DECLARE_WRITE16_MEMBER(write_o);
|
||||
DECLARE_WRITE16_MEMBER(write_r);
|
||||
DECLARE_READ8_MEMBER(read_k);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
WRITE16_MEMBER(ti1270_state::write_r)
|
||||
{
|
||||
// R0-R7: select digit (right-to-left)
|
||||
display_matrix_seg(8, 8, m_o, data, 0xff);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ticalc1x_state::ti1270_write_o)
|
||||
WRITE16_MEMBER(ti1270_state::write_o)
|
||||
{
|
||||
// O1-O5,O7: input mux
|
||||
// O0-O7: digit segments
|
||||
@ -324,12 +307,14 @@ WRITE16_MEMBER(ticalc1x_state::ti1270_write_o)
|
||||
m_o = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(ticalc1x_state::ti1270_read_k)
|
||||
READ8_MEMBER(ti1270_state::read_k)
|
||||
{
|
||||
return read_inputs(6);
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( ti1270 )
|
||||
PORT_START("IN.0") // O1
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_NAME("CE/C")
|
||||
@ -368,14 +353,13 @@ static INPUT_PORTS_START( ti1270 )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("+/-")
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( ti1270, ticalc1x_state )
|
||||
static MACHINE_CONFIG_START( ti1270, ti1270_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", TMS0970, 250000) // guessed
|
||||
MCFG_TMS1XXX_READ_K_CB(READ8(ticalc1x_state, ti1270_read_k))
|
||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(ticalc1x_state, ti1270_write_o))
|
||||
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(ticalc1x_state, ti1270_write_r))
|
||||
MCFG_TMS1XXX_READ_K_CB(READ8(ti1270_state, read_k))
|
||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(ti1270_state, write_o))
|
||||
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(ti1270_state, write_r))
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_DEFAULT_LAYOUT(layout_ti1270)
|
||||
@ -397,14 +381,28 @@ MACHINE_CONFIG_END
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
WRITE16_MEMBER(ticalc1x_state::ti1000_write_r)
|
||||
class ti1000_state : public ticalc1x_state
|
||||
{
|
||||
public:
|
||||
ti1000_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: ticalc1x_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
DECLARE_WRITE16_MEMBER(write_o);
|
||||
DECLARE_WRITE16_MEMBER(write_r);
|
||||
DECLARE_READ8_MEMBER(read_k);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
WRITE16_MEMBER(ti1000_state::write_r)
|
||||
{
|
||||
// R0-R7: select digit (right-to-left)
|
||||
UINT8 o = BITSWAP8(m_o,7,4,3,2,1,0,6,5);
|
||||
display_matrix_seg(8, 8, o, data, 0xff);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ticalc1x_state::ti1000_write_o)
|
||||
WRITE16_MEMBER(ti1000_state::write_o)
|
||||
{
|
||||
// O0-O3,O5(?): input mux
|
||||
// O0-O7: digit segments
|
||||
@ -412,12 +410,14 @@ WRITE16_MEMBER(ticalc1x_state::ti1000_write_o)
|
||||
m_o = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(ticalc1x_state::ti1000_read_k)
|
||||
READ8_MEMBER(ti1000_state::read_k)
|
||||
{
|
||||
return read_inputs(5);
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( ti1000 )
|
||||
PORT_START("IN.0") // O0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1")
|
||||
@ -451,14 +451,13 @@ static INPUT_PORTS_START( ti1000 )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("=")
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( ti1000, ticalc1x_state )
|
||||
static MACHINE_CONFIG_START( ti1000, ti1000_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", TMS1990, 250000) // guessed
|
||||
MCFG_TMS1XXX_READ_K_CB(READ8(ticalc1x_state, ti1000_read_k))
|
||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(ticalc1x_state, ti1000_write_o))
|
||||
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(ticalc1x_state, ti1000_write_r))
|
||||
MCFG_TMS1XXX_READ_K_CB(READ8(ti1000_state, read_k))
|
||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(ti1000_state, write_o))
|
||||
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(ti1000_state, write_r))
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_DEFAULT_LAYOUT(layout_ti1270)
|
||||
@ -480,7 +479,21 @@ MACHINE_CONFIG_END
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
WRITE16_MEMBER(ticalc1x_state::wizatron_write_r)
|
||||
class wizatron_state : public ticalc1x_state
|
||||
{
|
||||
public:
|
||||
wizatron_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: ticalc1x_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
virtual DECLARE_WRITE16_MEMBER(write_o);
|
||||
virtual DECLARE_WRITE16_MEMBER(write_r);
|
||||
virtual DECLARE_READ8_MEMBER(read_k);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
WRITE16_MEMBER(wizatron_state::write_r)
|
||||
{
|
||||
// 6th digit is custom(not 7seg), for math symbols, like this:
|
||||
// \./ GAB
|
||||
@ -495,7 +508,7 @@ WRITE16_MEMBER(ticalc1x_state::wizatron_write_r)
|
||||
display_matrix_seg(7, 9, m_o, data, 0x7f);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ticalc1x_state::wizatron_write_o)
|
||||
WRITE16_MEMBER(wizatron_state::write_o)
|
||||
{
|
||||
// O1-O4: input mux
|
||||
// O0-O6: digit segments A-G
|
||||
@ -504,12 +517,14 @@ WRITE16_MEMBER(ticalc1x_state::wizatron_write_o)
|
||||
m_o = data & 0x7f;
|
||||
}
|
||||
|
||||
READ8_MEMBER(ticalc1x_state::wizatron_read_k)
|
||||
READ8_MEMBER(wizatron_state::read_k)
|
||||
{
|
||||
return read_inputs(4);
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( wizatron )
|
||||
PORT_START("IN.0") // O1
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_DEL) PORT_NAME("Clear")
|
||||
@ -536,14 +551,13 @@ static INPUT_PORTS_START( wizatron )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME(UTF8_DIVIDE)
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( wizatron, ticalc1x_state )
|
||||
static MACHINE_CONFIG_START( wizatron, wizatron_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", TMS0970, 250000) // guessed
|
||||
MCFG_TMS1XXX_READ_K_CB(READ8(ticalc1x_state, wizatron_read_k))
|
||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(ticalc1x_state, wizatron_write_o))
|
||||
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(ticalc1x_state, wizatron_write_r))
|
||||
MCFG_TMS1XXX_READ_K_CB(READ8(wizatron_state, read_k))
|
||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(wizatron_state, write_o))
|
||||
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(wizatron_state, write_r))
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_DEFAULT_LAYOUT(layout_wizatron)
|
||||
@ -568,7 +582,20 @@ MACHINE_CONFIG_END
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
WRITE16_MEMBER(ticalc1x_state::lilprof_write_o)
|
||||
class lilprof_state : public wizatron_state
|
||||
{
|
||||
public:
|
||||
lilprof_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: wizatron_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
virtual DECLARE_WRITE16_MEMBER(write_o);
|
||||
virtual DECLARE_READ8_MEMBER(read_k);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
WRITE16_MEMBER(lilprof_state::write_o)
|
||||
{
|
||||
// O1-O4,O7: input mux
|
||||
// O0-O6: digit segments A-G
|
||||
@ -576,12 +603,14 @@ WRITE16_MEMBER(ticalc1x_state::lilprof_write_o)
|
||||
m_o = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(ticalc1x_state::lilprof_read_k)
|
||||
READ8_MEMBER(lilprof_state::read_k)
|
||||
{
|
||||
return read_inputs(5);
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( lilprof )
|
||||
PORT_INCLUDE( wizatron )
|
||||
|
||||
@ -597,14 +626,13 @@ static INPUT_PORTS_START( lilprof )
|
||||
PORT_CONFSETTING( 0x08, "4" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( lilprof, ticalc1x_state )
|
||||
static MACHINE_CONFIG_START( lilprof, lilprof_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", TMS0970, 250000) // guessed
|
||||
MCFG_TMS1XXX_READ_K_CB(READ8(ticalc1x_state, lilprof_read_k))
|
||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(ticalc1x_state, lilprof_write_o))
|
||||
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(ticalc1x_state, wizatron_write_r))
|
||||
MCFG_TMS1XXX_READ_K_CB(READ8(lilprof_state, read_k))
|
||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(lilprof_state, write_o))
|
||||
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(wizatron_state, write_r))
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_DEFAULT_LAYOUT(layout_wizatron)
|
||||
@ -629,7 +657,21 @@ MACHINE_CONFIG_END
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
WRITE16_MEMBER(ticalc1x_state::lilprof78_write_r)
|
||||
class lilprof78_state : public ticalc1x_state
|
||||
{
|
||||
public:
|
||||
lilprof78_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: ticalc1x_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
DECLARE_WRITE16_MEMBER(write_o);
|
||||
DECLARE_WRITE16_MEMBER(write_r);
|
||||
DECLARE_READ8_MEMBER(read_k);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
WRITE16_MEMBER(lilprof78_state::write_r)
|
||||
{
|
||||
// update leds state
|
||||
UINT8 o = BITSWAP8(m_o,7,4,3,2,1,0,6,5) & 0x7f;
|
||||
@ -641,14 +683,14 @@ WRITE16_MEMBER(ticalc1x_state::lilprof78_write_r)
|
||||
// 3rd digit A/G(equals sign) is from O7
|
||||
m_display_state[3] = (m_o & 0x80) ? 0x41 : 0;
|
||||
|
||||
// 6th digit is a custom 7seg for math symbols (see wizatron_write_r)
|
||||
// 6th digit is a custom 7seg for math symbols (see wizatron_state write_r)
|
||||
m_display_state[6] = BITSWAP8(m_display_state[6],7,6,1,4,2,3,5,0);
|
||||
|
||||
set_display_size(7, 9);
|
||||
display_update();
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ticalc1x_state::lilprof78_write_o)
|
||||
WRITE16_MEMBER(lilprof78_state::write_o)
|
||||
{
|
||||
// O0-O3,O5(?): input mux
|
||||
// O0-O6: digit segments A-G
|
||||
@ -657,12 +699,14 @@ WRITE16_MEMBER(ticalc1x_state::lilprof78_write_o)
|
||||
m_o = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(ticalc1x_state::lilprof78_read_k)
|
||||
READ8_MEMBER(lilprof78_state::read_k)
|
||||
{
|
||||
return read_inputs(5);
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( lilprof78 )
|
||||
PORT_START("IN.0") // O0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1")
|
||||
@ -696,14 +740,13 @@ static INPUT_PORTS_START( lilprof78 )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("+")
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( lilprof78, ticalc1x_state )
|
||||
static MACHINE_CONFIG_START( lilprof78, lilprof78_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", TMS1990, 250000) // guessed
|
||||
MCFG_TMS1XXX_READ_K_CB(READ8(ticalc1x_state, lilprof78_read_k))
|
||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(ticalc1x_state, lilprof78_write_o))
|
||||
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(ticalc1x_state, lilprof78_write_r))
|
||||
MCFG_TMS1XXX_READ_K_CB(READ8(lilprof78_state, read_k))
|
||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(lilprof78_state, write_o))
|
||||
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(lilprof78_state, write_r))
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_DEFAULT_LAYOUT(layout_wizatron)
|
||||
@ -727,7 +770,21 @@ MACHINE_CONFIG_END
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
WRITE16_MEMBER(ticalc1x_state::ti30_write_r)
|
||||
class majestic_state : public ticalc1x_state
|
||||
{
|
||||
public:
|
||||
majestic_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: ticalc1x_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
DECLARE_WRITE16_MEMBER(write_o);
|
||||
DECLARE_WRITE16_MEMBER(write_r);
|
||||
DECLARE_READ8_MEMBER(read_k);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
WRITE16_MEMBER(majestic_state::write_r)
|
||||
{
|
||||
// note: 1st digit only has segments B,F,G,DP
|
||||
m_display_segmask[0] = 0xe2;
|
||||
@ -737,7 +794,7 @@ WRITE16_MEMBER(ticalc1x_state::ti30_write_r)
|
||||
display_matrix_seg(8, 9, o, data, 0xff);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ticalc1x_state::ti30_write_o)
|
||||
WRITE16_MEMBER(majestic_state::write_o)
|
||||
{
|
||||
// O0-O2,O4-O7: input mux
|
||||
// O0-O7: digit segments
|
||||
@ -745,13 +802,15 @@ WRITE16_MEMBER(ticalc1x_state::ti30_write_o)
|
||||
m_o = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(ticalc1x_state::ti30_read_k)
|
||||
READ8_MEMBER(majestic_state::read_k)
|
||||
{
|
||||
// note: the Vss row is always on
|
||||
return m_inp_matrix[7]->read() | read_inputs(7);
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( ti30 )
|
||||
PORT_START("IN.0") // O0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_NAME("y" UTF8_POW_X)
|
||||
@ -933,14 +992,14 @@ static INPUT_PORTS_START( tibusan1 )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( ti30, ticalc1x_state )
|
||||
static MACHINE_CONFIG_START( majestic, majestic_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", TMS0980, 400000) // guessed
|
||||
MCFG_TMS1XXX_READ_K_CB(READ8(ticalc1x_state, ti30_read_k))
|
||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(ticalc1x_state, ti30_write_o))
|
||||
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(ticalc1x_state, ti30_write_r))
|
||||
MCFG_TMS1XXX_POWER_OFF_CB(WRITELINE(ticalc1x_state, auto_power_off))
|
||||
MCFG_TMS1XXX_READ_K_CB(READ8(majestic_state, read_k))
|
||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(majestic_state, write_o))
|
||||
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(majestic_state, write_r))
|
||||
MCFG_TMS1XXX_POWER_OFF_CB(WRITELINE(hh_tms1k_state, auto_power_off))
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_DEFAULT_LAYOUT(layout_ti30)
|
||||
@ -1104,7 +1163,7 @@ ROM_END
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
|
||||
COMP( 1974, tisr16, 0, 0, tisr16, tisr16, driver_device, 0, "Texas Instruments", "SR-16", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
|
||||
COMP( 1975, tisr16ii, 0, 0, tisr16ii, tisr16ii, driver_device, 0, "Texas Instruments", "SR-16 II", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
|
||||
COMP( 1975, tisr16ii, 0, 0, tisr16, tisr16ii, driver_device, 0, "Texas Instruments", "SR-16 II", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
|
||||
|
||||
COMP( 1976, ti1270, 0, 0, ti1270, ti1270, driver_device, 0, "Texas Instruments", "TI-1270", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
|
||||
COMP( 1977, ti1000, 0, 0, ti1000, ti1000, driver_device, 0, "Texas Instruments", "TI-1000", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
|
||||
@ -1112,6 +1171,6 @@ COMP( 1977, wizatron, 0, 0, wizatron, wizatron, driver_device, 0, "Tex
|
||||
COMP( 1976, lilprof, 0, 0, lilprof, lilprof, driver_device, 0, "Texas Instruments", "Little Professor (1976 version)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
|
||||
COMP( 1978, lilprof78, lilprof, 0, lilprof78, lilprof78, driver_device, 0, "Texas Instruments", "Little Professor (1978 version)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
|
||||
|
||||
COMP( 1976, ti30, 0, 0, ti30, ti30, driver_device, 0, "Texas Instruments", "TI-30", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
|
||||
COMP( 1977, tiprog, 0, 0, ti30, tiprog, driver_device, 0, "Texas Instruments", "TI Programmer", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
|
||||
COMP( 1979, tibusan1, 0, 0, ti30, tibusan1, driver_device, 0, "Texas Instruments", "TI Business Analyst-I", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
|
||||
COMP( 1976, ti30, 0, 0, majestic, ti30, driver_device, 0, "Texas Instruments", "TI-30", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
|
||||
COMP( 1977, tiprog, 0, 0, majestic, tiprog, driver_device, 0, "Texas Instruments", "TI Programmer", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
|
||||
COMP( 1979, tibusan1, 0, 0, majestic, tibusan1, driver_device, 0, "Texas Instruments", "TI Business Analyst-I", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
|
||||
|
@ -327,7 +327,7 @@ public:
|
||||
|
||||
DECLARE_INPUT_CHANGED_MEMBER(snspell_power_button);
|
||||
void snspell_power_off();
|
||||
void snspell_display();
|
||||
void prepare_display();
|
||||
|
||||
protected:
|
||||
virtual void machine_start();
|
||||
@ -400,7 +400,7 @@ DRIVER_INIT_MEMBER(tispeak_state, lantutor)
|
||||
|
||||
// common/snspell
|
||||
|
||||
void tispeak_state::snspell_display()
|
||||
void tispeak_state::prepare_display()
|
||||
{
|
||||
display_matrix_seg(16, 16, m_o, (m_r & 0x8000) ? (m_r & 0x21ff) : 0, 0x3fff);
|
||||
}
|
||||
@ -415,7 +415,7 @@ WRITE16_MEMBER(tispeak_state::snspell_write_r)
|
||||
// R15: filament on
|
||||
// other bits: MCU internal use
|
||||
m_r = m_inp_mux = data;
|
||||
snspell_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(tispeak_state::snspell_write_o)
|
||||
@ -423,7 +423,7 @@ WRITE16_MEMBER(tispeak_state::snspell_write_o)
|
||||
// reorder opla to led14seg, plus DP as d14 and AP as d15:
|
||||
// E,D,C,G,B,A,I,M,L,K,N,J,[AP],H,F,[DP] (sidenote: TI KLMN = MAME MLNK)
|
||||
m_o = BITSWAP16(data,12,15,10,7,8,9,11,6,13,3,14,0,1,2,4,5);
|
||||
snspell_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
READ8_MEMBER(tispeak_state::snspell_read_k)
|
||||
@ -450,7 +450,7 @@ WRITE16_MEMBER(tispeak_state::snmath_write_o)
|
||||
// reorder opla to led14seg, plus DP as d14 and AP as d15:
|
||||
// [DP],D,C,H,F,B,I,M,L,K,N,J,[AP],E,G,A (sidenote: TI KLMN = MAME MLNK)
|
||||
m_o = BITSWAP16(data,12,0,10,7,8,9,11,6,3,14,4,13,1,2,5,15);
|
||||
snspell_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
|
||||
@ -460,7 +460,7 @@ WRITE16_MEMBER(tispeak_state::lantutor_write_r)
|
||||
{
|
||||
// same as default, except R13 is used for an extra digit
|
||||
m_r = m_inp_mux = data;
|
||||
snspell_display();
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
|
||||
|
@ -59,94 +59,6 @@ public:
|
||||
void display_matrix(int maxx, int maxy, UINT32 setx, UINT32 sety);
|
||||
void display_matrix_seg(int maxx, int maxy, UINT32 setx, UINT32 sety, UINT16 segmask);
|
||||
|
||||
// game-specific handlers
|
||||
void mathmagi_display();
|
||||
DECLARE_WRITE16_MEMBER(mathmagi_write_r);
|
||||
DECLARE_WRITE16_MEMBER(mathmagi_write_o);
|
||||
DECLARE_READ8_MEMBER(mathmagi_read_k);
|
||||
|
||||
void amaztron_display();
|
||||
DECLARE_WRITE16_MEMBER(amaztron_write_r);
|
||||
DECLARE_WRITE16_MEMBER(amaztron_write_o);
|
||||
DECLARE_READ8_MEMBER(amaztron_read_k);
|
||||
|
||||
void tc4_display();
|
||||
DECLARE_WRITE16_MEMBER(tc4_write_r);
|
||||
DECLARE_WRITE16_MEMBER(tc4_write_o);
|
||||
DECLARE_READ8_MEMBER(tc4_read_k);
|
||||
|
||||
void ebball_display();
|
||||
DECLARE_WRITE16_MEMBER(ebball_write_r);
|
||||
DECLARE_WRITE16_MEMBER(ebball_write_o);
|
||||
DECLARE_READ8_MEMBER(ebball_read_k);
|
||||
|
||||
void ebball2_display();
|
||||
DECLARE_WRITE16_MEMBER(ebball2_write_r);
|
||||
DECLARE_WRITE16_MEMBER(ebball2_write_o);
|
||||
DECLARE_READ8_MEMBER(ebball2_read_k);
|
||||
|
||||
void ebball3_display();
|
||||
DECLARE_WRITE16_MEMBER(ebball3_write_r);
|
||||
DECLARE_WRITE16_MEMBER(ebball3_write_o);
|
||||
DECLARE_READ8_MEMBER(ebball3_read_k);
|
||||
void ebball3_set_clock();
|
||||
DECLARE_INPUT_CHANGED_MEMBER(ebball3_difficulty_switch);
|
||||
DECLARE_MACHINE_RESET(ebball3);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(elecdet_write_r);
|
||||
DECLARE_WRITE16_MEMBER(elecdet_write_o);
|
||||
DECLARE_READ8_MEMBER(elecdet_read_k);
|
||||
|
||||
void starwbc_display();
|
||||
DECLARE_WRITE16_MEMBER(starwbc_write_r);
|
||||
DECLARE_WRITE16_MEMBER(starwbc_write_o);
|
||||
DECLARE_READ8_MEMBER(starwbc_read_k);
|
||||
|
||||
void astro_display();
|
||||
DECLARE_WRITE16_MEMBER(astro_write_r);
|
||||
DECLARE_WRITE16_MEMBER(astro_write_o);
|
||||
DECLARE_READ8_MEMBER(astro_read_k);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(comp4_write_r);
|
||||
DECLARE_WRITE16_MEMBER(comp4_write_o);
|
||||
DECLARE_READ8_MEMBER(comp4_read_k);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(simon_write_r);
|
||||
DECLARE_WRITE16_MEMBER(simon_write_o);
|
||||
DECLARE_READ8_MEMBER(simon_read_k);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(ssimon_write_r);
|
||||
DECLARE_WRITE16_MEMBER(ssimon_write_o);
|
||||
DECLARE_READ8_MEMBER(ssimon_read_k);
|
||||
void ssimon_set_clock();
|
||||
DECLARE_INPUT_CHANGED_MEMBER(ssimon_speed_switch);
|
||||
DECLARE_MACHINE_RESET(ssimon);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(cnsector_write_r);
|
||||
DECLARE_WRITE16_MEMBER(cnsector_write_o);
|
||||
DECLARE_READ8_MEMBER(cnsector_read_k);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(merlin_write_r);
|
||||
DECLARE_WRITE16_MEMBER(merlin_write_o);
|
||||
DECLARE_READ8_MEMBER(merlin_read_k);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(stopthief_write_r);
|
||||
DECLARE_WRITE16_MEMBER(stopthief_write_o);
|
||||
DECLARE_READ8_MEMBER(stopthief_read_k);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(bankshot_write_r);
|
||||
DECLARE_WRITE16_MEMBER(bankshot_write_o);
|
||||
DECLARE_READ8_MEMBER(bankshot_read_k);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(splitsec_write_r);
|
||||
DECLARE_WRITE16_MEMBER(splitsec_write_o);
|
||||
DECLARE_READ8_MEMBER(splitsec_read_k);
|
||||
|
||||
void tandy12_display();
|
||||
DECLARE_WRITE16_MEMBER(tandy12_write_r);
|
||||
DECLARE_WRITE16_MEMBER(tandy12_write_o);
|
||||
DECLARE_READ8_MEMBER(tandy12_read_k);
|
||||
|
||||
protected:
|
||||
virtual void machine_start();
|
||||
virtual void machine_reset();
|
||||
|
Loading…
Reference in New Issue
Block a user