first rename lilprof to lilprof78

added Little Professor (1976 ver)
This commit is contained in:
hap 2015-03-25 00:09:57 +01:00
parent a22a633e23
commit 159a234e0e
2 changed files with 110 additions and 25 deletions

View file

@ -8,8 +8,8 @@
TODO:
- MCU clocks are unknown
- lilprof equals-sign is always on
- MCU clocks are unknown where noted
- lilprof78 equals-sign is always on
***************************************************************************/
@ -70,7 +70,7 @@ public:
void display_matrix_seg(int maxx, int maxy, UINT32 setx, UINT32 sety, UINT16 segmask);
// calculator-specific handlers
void tisr16_display_update();
void tisr16_display();
DECLARE_WRITE16_MEMBER(tisr16_write_o);
DECLARE_WRITE16_MEMBER(tisr16_write_r);
DECLARE_READ8_MEMBER(tisr16_read_k);
@ -84,9 +84,12 @@ public:
DECLARE_READ8_MEMBER(wizatron_read_k);
DECLARE_WRITE16_MEMBER(lilprof_write_o);
DECLARE_WRITE16_MEMBER(lilprof_write_r);
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);
@ -256,7 +259,7 @@ INPUT_CHANGED_MEMBER(ticalc1x_state::power_button)
***************************************************************************/
void ticalc1x_state::tisr16_display_update()
void ticalc1x_state::tisr16_display()
{
// update leds state
for (int y = 0; y < 11; y++)
@ -275,14 +278,14 @@ WRITE16_MEMBER(ticalc1x_state::tisr16_write_r)
// R0-R10: input mux
// R0-R10: select digit (right-to-left)
m_r = m_inp_mux = data;
tisr16_display_update();
tisr16_display();
}
WRITE16_MEMBER(ticalc1x_state::tisr16_write_o)
{
// O0-O7: digit segments
m_o = data;
tisr16_display_update();
tisr16_display();
}
READ8_MEMBER(ticalc1x_state::tisr16_read_k)
@ -475,12 +478,17 @@ MACHINE_CONFIG_END
WRITE16_MEMBER(ticalc1x_state::wizatron_write_r)
{
// note: 6th digit is custom(not 7seg), for math symbols, and 3rd digit
// only has A and G for =, though some newer revisions use a custom digit too.
// 6th digit is custom(not 7seg), for math symbols, like this:
// \./ GAB
// --- F
// /.\ EDC
// 3rd digit only has A and G for =, though some newer hardware revisions
// (goes for both wizatron and lilprof) use a custom equals-sign digit here
m_display_segmask[3] = 0x41;
// R0-R8: select digit (right-to-left)
display_matrix_seg(8, 9, m_o, data, 0x7f);
display_matrix_seg(7, 9, m_o, data, 0x7f);
}
WRITE16_MEMBER(ticalc1x_state::wizatron_write_o)
@ -500,7 +508,7 @@ READ8_MEMBER(ticalc1x_state::wizatron_read_k)
static INPUT_PORTS_START( wizatron )
PORT_START("IN.0") // O1
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_DEL_PAD) PORT_NAME("CLEAR")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_DEL) PORT_NAME("Clear")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("0")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("=")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("+")
@ -547,12 +555,72 @@ MACHINE_CONFIG_END
/***************************************************************************
TI Little Professor '78
TI Little Professor (1976 version)
* TMS0970 MCU labeled TMS0975NL ZA0356, GP0975CS. die labeled 0970D-75C
The hardware is nearly identical to Wiz-A-Tron (or vice versa, since this
one is older).
***************************************************************************/
WRITE16_MEMBER(ticalc1x_state::lilprof_write_o)
{
// O1-O4,O7: input mux
// O0-O6: digit segments A-G
m_inp_mux = (data >> 1 & 0xf) | (data >> 3 & 0x10);
m_o = data;
}
READ8_MEMBER(ticalc1x_state::lilprof_read_k)
{
return read_inputs(5);
}
static INPUT_PORTS_START( lilprof )
PORT_INCLUDE( wizatron )
PORT_MODIFY("IN.0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CODE(KEYCODE_DEL) PORT_NAME("Set")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Go")
PORT_START("IN.4") // O7
PORT_CONFNAME( 0x0f, 0x01, "Level")
PORT_CONFSETTING( 0x01, "1" )
PORT_CONFSETTING( 0x02, "2" )
PORT_CONFSETTING( 0x04, "3" )
PORT_CONFSETTING( 0x08, "4" )
INPUT_PORTS_END
static MACHINE_CONFIG_START( lilprof, ticalc1x_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_TIMER_DRIVER_ADD_PERIODIC("display_decay", ticalc1x_state, display_decay_tick, attotime::from_msec(1))
MCFG_DEFAULT_LAYOUT(layout_wizatron)
/* no video! */
/* no sound! */
MACHINE_CONFIG_END
/***************************************************************************
TI Little Professor (1978 version, same as 1980 version)
* TMS1990 MCU labeled TMC1993NL. die labeled 1990C-c3C
***************************************************************************/
WRITE16_MEMBER(ticalc1x_state::lilprof_write_r)
WRITE16_MEMBER(ticalc1x_state::lilprof78_write_r)
{
// update leds state
UINT8 o = BITSWAP8(m_o,7,4,3,2,1,0,6,5) & 0x7f;
@ -564,15 +632,15 @@ WRITE16_MEMBER(ticalc1x_state::lilprof_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
// 6th digit is a custom 7seg for math symbols (see wizatron_write_r)
m_display_state[6] = BITSWAP8(m_display_state[6],7,6,1,4,2,3,5,0);
m_display_maxx = 8;
m_display_maxx = 7;
m_display_maxy = 9;
display_update();
}
WRITE16_MEMBER(ticalc1x_state::lilprof_write_o)
WRITE16_MEMBER(ticalc1x_state::lilprof78_write_o)
{
// O0-O3,O5: input mux
// O0-O6: digit segments A-G
@ -581,13 +649,13 @@ WRITE16_MEMBER(ticalc1x_state::lilprof_write_o)
m_o = data;
}
READ8_MEMBER(ticalc1x_state::lilprof_read_k)
READ8_MEMBER(ticalc1x_state::lilprof78_read_k)
{
return read_inputs(5);
}
static INPUT_PORTS_START( lilprof )
static INPUT_PORTS_START( lilprof78 )
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")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2")
@ -621,13 +689,13 @@ static INPUT_PORTS_START( lilprof )
INPUT_PORTS_END
static MACHINE_CONFIG_START( lilprof, ticalc1x_state )
static MACHINE_CONFIG_START( lilprof78, ticalc1x_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", TMS1990, 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, lilprof_write_r))
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_TIMER_DRIVER_ADD_PERIODIC("display_decay", ticalc1x_state, display_decay_tick, attotime::from_msec(1))
MCFG_DEFAULT_LAYOUT(layout_wizatron)
@ -895,7 +963,7 @@ ROM_END
ROM_START( ti1270 )
ROM_REGION( 0x0400, "maincpu", 0 )
ROM_LOAD( "tms0974nl", 0x0000, 0x0400, CRC(48e09b4b) SHA1(17f27167164df223f9f06082ece4c3fc3900eda3) )
ROM_LOAD( "za0355", 0x0000, 0x0400, CRC(48e09b4b) SHA1(17f27167164df223f9f06082ece4c3fc3900eda3) )
ROM_REGION( 782, "maincpu:ipla", 0 )
ROM_LOAD( "tms0970_ti1270_ipla.pla", 0, 782, CRC(05306ef8) SHA1(60a0a3c49ce330bce0c27f15f81d61461d0432ce) )
@ -910,7 +978,7 @@ ROM_END
ROM_START( wizatron )
ROM_REGION( 0x0400, "maincpu", 0 )
ROM_LOAD( "dp0907bs", 0x0000, 0x0400, CRC(5a6af094) SHA1(b1f27e1f13f4db3b052dd50fb08dbf9c4d8db26e) )
ROM_LOAD( "za0379", 0x0000, 0x0400, CRC(5a6af094) SHA1(b1f27e1f13f4db3b052dd50fb08dbf9c4d8db26e) )
ROM_REGION( 782, "maincpu:ipla", 0 )
ROM_LOAD( "tms0970_wizatron_ipla.pla", 0, 782, CRC(05306ef8) SHA1(60a0a3c49ce330bce0c27f15f81d61461d0432ce) )
@ -924,6 +992,21 @@ ROM_END
ROM_START( lilprof )
ROM_REGION( 0x0400, "maincpu", 0 )
ROM_LOAD( "za0356", 0x0000, 0x0400, CRC(fef9dd39) SHA1(5c9614c9c5092d55dabeee2d6e0387d50d6ad4d5) )
ROM_REGION( 782, "maincpu:ipla", 0 )
ROM_LOAD( "tms0970_lilprof_ipla.pla", 0, 782, BAD_DUMP CRC(05306ef8) SHA1(60a0a3c49ce330bce0c27f15f81d61461d0432ce) ) // not verified
ROM_REGION( 860, "maincpu:mpla", 0 )
ROM_LOAD( "tms0970_lilprof_mpla.pla", 0, 860, BAD_DUMP CRC(6ff5d51d) SHA1(59d3e5de290ba57694068ddba78d21a0c1edf427) ) // not verified
ROM_REGION( 352, "maincpu:opla", 0 )
ROM_LOAD( "tms0970_lilprof_opla.pla", 0, 352, BAD_DUMP CRC(c74daf97) SHA1(c4948000196171b34d4fe9cdd2962a945da9883d) ) // not verified
ROM_REGION( 157, "maincpu:spla", 0 )
ROM_LOAD( "tms0970_lilprof_spla.pla", 0, 157, CRC(56c37a4f) SHA1(18ecc20d2666e89673739056483aed5a261ae927) )
ROM_END
ROM_START( lilprof78 )
ROM_REGION( 0x0400, "maincpu", 0 )
ROM_LOAD( "tmc1993nl", 0x0000, 0x0400, CRC(e941316b) SHA1(7e1542045d1e731cea81a639c9ac9e91bb233b15) )
@ -989,7 +1072,8 @@ COMP( 1974, tisr16, 0, 0, tisr16, tisr16, driver_device, 0, "Tex
COMP( 1976, ti1270, 0, 0, ti1270, ti1270, driver_device, 0, "Texas Instruments", "TI-1270", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
COMP( 1977, wizatron, 0, 0, wizatron, wizatron, driver_device, 0, "Texas Instruments", "Wiz-A-Tron", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
COMP( 1978, lilprof, 0, 0, lilprof, lilprof, driver_device, 0, "Texas Instruments", "Little Professor (1978 version)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW ) // original is from 1976
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 )

View file

@ -1086,6 +1086,7 @@ tiprog
tibusan1
wizatron
lilprof
lilprof78
ti73 // 1990 TI-73
ti74 // 1985 TI-74
ti95 // 1986 TI-95