This commit is contained in:
RobertoFresca 2015-05-01 21:26:06 -03:00
commit 667e05796c
13 changed files with 397 additions and 84 deletions

View File

@ -185,6 +185,7 @@ NETLIB_START(POT2)
register_param("R", m_R, 1.0 / netlist().gmin());
register_param("DIAL", m_Dial, 0.5);
register_param("REVERSE", m_Reverse, 0);
register_param("DIALLOG", m_DialIsLog, 0);
}
@ -202,8 +203,11 @@ NETLIB_UPDATE(POT2)
NETLIB_UPDATE_PARAM(POT2)
{
nl_double v = m_Dial.Value();
if (m_DialIsLog.Value())
v = (exp(v) - 1.0) / (exp(1.0) - 1.0);
if (m_Reverse.Value())
v = 1.0 - v;
// FIXME: Only attached nets should be brought up to current time
//netlist().solver()->update_to_current_time(); // bring up current time

View File

@ -172,6 +172,7 @@ NETLIB_DEVICE_WITH_PARAMS(POT2,
netlist_param_double_t m_R;
netlist_param_double_t m_Dial;
netlist_param_logic_t m_DialIsLog;
netlist_param_logic_t m_Reverse;
);

View File

@ -132,6 +132,7 @@ void nl_initialize_factory(netlist_factory_t &factory)
ENTRY(NE555, NE555, "-")
ENTRY(r2r_dac, R2R_DAC, "+VIN,R,N")
ENTRY(4020_dip, CD_4020_DIP, "-")
ENTRY(4016_dip, CD_4016_DIP, "-")
ENTRY(4066_dip, CD_4066_DIP, "-")
ENTRY(7400_dip, TTL_7400_DIP, "-")
ENTRY(7402_dip, TTL_7402_DIP, "-")

View File

@ -10,6 +10,7 @@ NETLIB_START(4066)
{
register_input("CTL", m_control);
register_sub(m_R, "R");
m_base_r = 270.0;
}
NETLIB_RESET(4066)
@ -23,17 +24,31 @@ NETLIB_UPDATE(4066)
nl_double low = 0.45 * sup;
nl_double high = 0.55 * sup;
nl_double in = INPANALOG(m_control) - m_supply.get()->vss();
nl_double rON = 270.0 * 5.0 / sup;
nl_double rON = m_base_r * 5.0 / sup;
nl_double R = -1.0;
if (in < low)
{
m_R.set_R(1.0 / netlist().gmin());
m_R.update_dev();
R = 1.0 / netlist().gmin();
}
else if (in > high)
{
m_R.set_R(rON);
m_R.update_dev();
R = rON;
}
if (R > 0.0)
{
// We only need to update the net first if this is a time stepping net
if (1) // m_R.m_P.net().as_analog().solver()->is_timestep())
{
m_R.update_dev();
m_R.set_R(R);
m_R.m_P.schedule_after(NLTIME_FROM_NS(1));
}
else
{
m_R.set_R(R);
m_R.update_dev();
}
}
}
@ -47,6 +62,8 @@ NETLIB_START(4066_dip)
register_sub(m_C, "C");
register_sub(m_D, "D");
m_A.m_base_r = m_B.m_base_r = m_C.m_base_r = m_D.m_base_r = 270;
register_subalias("1", m_A.m_R.m_P);
register_subalias("2", m_A.m_R.m_N);
register_subalias("3", m_B.m_R.m_P);
@ -81,3 +98,21 @@ NETLIB_UPDATE(4066_dip)
m_C.update_dev();
m_D.update_dev();
}
NETLIB_START(4016_dip)
{
NETLIB_NAME(4066_dip)::start();
m_A.m_base_r = m_B.m_base_r = m_C.m_base_r = m_D.m_base_r = 1000.0;
}
NETLIB_RESET(4016_dip)
{
NETLIB_NAME(4066_dip)::reset();
}
NETLIB_UPDATE(4016_dip)
{
/* only called during startup */
NETLIB_NAME(4066_dip)::update();
}

View File

@ -30,6 +30,9 @@
#define CD_4066_DIP(_name) \
NET_REGISTER_DEV(4066_dip, _name)
#define CD_4016_DIP(_name) \
NET_REGISTER_DEV(4016_dip, _name)
NETLIB_SUBDEVICE(4066,
NETLIB_LOGIC_FAMILY(CD4000)
public:
@ -38,6 +41,7 @@ public:
NETLIB_NAME(R) m_R;
netlist_state_t<NETLIB_NAME(vdd_vss) *>m_supply;
netlist_state_t<nl_double> m_base_r;
);
NETLIB_DEVICE(4066_dip,
@ -50,4 +54,7 @@ NETLIB_DEVICE(4066_dip,
NETLIB_NAME(vdd_vss) m_supply;
);
NETLIB_DEVICE_DERIVED(4016_dip, 4066_dip,
);
#endif /* NLD_4066_H_ */

View File

@ -85,8 +85,8 @@ NETLIB_RESET(7474sub)
m_nextD = 0;
/* FIXME: required by pong doubles - need a mechanism to set this from netlist */
m_Q.initial(1);
m_QQ.initial(1);
//m_Q.initial(1);
//m_QQ.initial(1);
}
NETLIB_START(7474_dip)

View File

@ -36,6 +36,7 @@
*
*/
// FIXME: breakout doesn't like this
#define USE_DEACTIVE_DEVICE (0)
#define USE_TRUTHTABLE (0)

View File

@ -169,6 +169,14 @@ CIRCUIT_LAYOUT( breakout )
SWITCH(S1_3)
SWITCH(S1_4)
SWITCH2(COIN1) // Coin 1
SWITCH2(COIN2) // Coin 2
SWITCH(START1) // Start 1
SWITCH(START2) // Start 2
SWITCH(SERVE) // Start 2
SWITCH(S2) // Cocktail
SWITCH(S3) // 2 Plays / 25c
SWITCH2(S4) // Three Balls / 5 Balls
@ -313,17 +321,17 @@ CIRCUIT_LAYOUT( breakout )
CHIP_LATCH(LATCH)
//CHIP("COIN1", COIN_INPUT)
CHIP_INPUT_ACTIVE_LOW(COIN1)
//CHIP_INPUT_ACTIVE_LOW(COIN1)
//CHIP("COIN2", COIN_INPUT)
CHIP_INPUT_ACTIVE_LOW(COIN2)
//CHIP_INPUT_ACTIVE_LOW(COIN2)
//CHIP("START", START_INPUT)
CHIP_INPUT_ACTIVE_LOW(START1)
CHIP_INPUT_ACTIVE_HIGH(START2)
//CHIP_INPUT_ACTIVE_LOW(START1)
//CHIP_INPUT_ACTIVE_HIGH(START2)
//CHIP("SERVE", BUTTONS1_INPUT)
CHIP_INPUT_ACTIVE_LOW(SERVE) // Active low?
//CHIP_INPUT_ACTIVE_LOW(SERVE) // Active low?
//TODO: start 2
@ -1186,10 +1194,15 @@ CIRCUIT_LAYOUT( breakout )
//Cabinet type
// Coin Circuit
CONNECTION("COIN1", 1, "F9", 13)
CONNECTION("COIN1", 2, "F9", 13)
CONNECTION("COIN1", 1, "F9", 11)
NET_C(COIN1.Q, GND)
//CONNECTION(CSW1, "F9", 11)
CONNECTION(CSW1, "COIN1", 1)
CONNECTION(CSW1, "F9", 11)
//CONNECTION("F9", 10, "F9", 13) //TODO: causes lots of bouncing, commented out since this trace is not implemented in gotcha
CONNECTION("F9", 10, "COIN1", 2) //TODO: causes lots of bouncing, commented out since this trace is not implemented in gotcha
CONNECTION(V64, "H7", 12)
CONNECTION(V64, "H7", 13)
@ -1228,12 +1241,17 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION("J9", 6, "L9", 4)
//COIN2 circuit
CONNECTION("COIN2", 1, "F9", 1)
//CONNECTION("COIN2", 1, "F9", 1)
//CONNECTION(GNDD, "F9", 1) //TODO: coin2 not implemented
CONNECTION(CSW2, "F9", 3)
CONNECTION("COIN2", 2, "F9", 1)
CONNECTION("COIN2", 1, "F9", 3)
NET_C(COIN2.Q, GND)
CONNECTION(CSW2, "COIN2", 1)
CONNECTION(CSW2, "H9", 10)
CONNECTION("F9", 4, "H9", 12)
CONNECTION("F9", 4, "COIN2", 2)
CONNECTION(V64_n, "H9", 11)
CONNECTION(V64_n, "H9", 3)
CONNECTION(P, "H9", 13)
@ -1256,8 +1274,13 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION("E9", 8, "H1", 2)
//Start2 Input
//Start1 Input
RES(R58, RES_K(1))
//CONNECTION("START", 2, "E9", 11)
CONNECTION("START2", 1, "E9", 11)
NET_C(START2.2, GND)
NET_C(R58.1, V5)
NET_C(START2.1, R58.2, E9.11)
CONNECTION("E9", 10, "E8", 12)
CONNECTION(P, "E8", 10)
CONNECTION(V64I, "E8", 11)
@ -1270,8 +1293,11 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION("E7", 13, "E8", 13)
//Start1 Input
RES(R57, RES_K(1))
//CONNECTION("START", 1, "E9", 3)
CONNECTION("START1", 1, "E9", 3)
NET_C(START1.2, GND)
NET_C(R57.1, V5)
NET_C(START1.1, R57.2, E9.3)
CONNECTION("E9", 4, "E8", 2)
CONNECTION(P, "E8", 4)
CONNECTION(V64_d, "E8", 3)
@ -1308,6 +1334,12 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION(EGL_n, "D6", 2)
//Serve
RES(R30, RES_K(1))
NET_C(SERVE.2, GND)
NET_C(SERVE.1, R30.2)
NET_C(R30.1, V5)
CONNECTION(H64, "J3", 6)
CONNECTION(H32, "J3", 5)
CONNECTION("J3", 4, "L4", 13)
@ -1682,15 +1714,31 @@ CIRCUIT_LAYOUT( breakout )
#endif
// POTS
POT2(POTP1, RES_K(6)) // 5k
PARAM(POTP1, 0) // Log Dial ...
POT2(POTP1, RES_K(5)) // 5k
PARAM(POTP1.DIALLOG, 1) // Log Dial ...
PARAM(POTP1.REVERSE, 1) // Log Dial ...
NET_C(POTP1.1, V5)
POT2(POTP2, RES_K(5)) // 5k
PARAM(POTP2.DIALLOG, 1) // Log Dial ...
PARAM(POTP2.REVERSE, 1) // Log Dial ...
NET_C(POTP2.1, V5)
RES(R33, 47)
NET_C(POTP1.1, V5)
//NET_C(POTP1.3, GND)
NET_C(POTP1.2, R33.1)
CD_4016_DIP(D9)
NET_C(D9.7, GND)
NET_C(D9.14, V5)
CONNECTION(P2_CONDITIONAL_dash, "D9", 6)
NET_C(D9.12, E9.8)
NET_C(D9.8, POTP2.2) // Connect P2 dial here
NET_C(D9.11, POTP1.2)
NET_C(D9.9, D9.10, R33.1)
NET_C(R33.2, C9.6)
NET_C(GND, D9.1, D9.2, D9.13, D9.3, D9.4, D9.5)
CIRCUIT_LAYOUT_END
#endif

View File

@ -244,16 +244,12 @@ static INPUT_PORTS_START( pongd )
INPUT_PORTS_END
static INPUT_PORTS_START( breakout )
#if 0
PORT_START( "PADDLE0" ) /* fake input port for player 1 paddle */
PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_SENSITIVITY(2) PORT_KEYDELTA(100) PORT_CENTERDELTA(0) NETLIST_ANALOG_PORT_CHANGED("maincpu", "pot0")
PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_SENSITIVITY(1) PORT_KEYDELTA(200) PORT_CENTERDELTA(0) NETLIST_ANALOG_PORT_CHANGED("maincpu", "pot1")
PORT_START( "PADDLE1" ) /* fake input port for player 2 paddle */
PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_SENSITIVITY(2) PORT_KEYDELTA(100) PORT_CENTERDELTA(0) PORT_PLAYER(2) NETLIST_ANALOG_PORT_CHANGED("maincpu", "pot1")
#endif
PORT_START( "PADDLE0" ) /* fake input port for player 1 paddle */
PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_SENSITIVITY(2) PORT_KEYDELTA(100) PORT_CENTERDELTA(0) NETLIST_ANALOG_PORT_CHANGED("maincpu", "pot0")
PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_SENSITIVITY(1) PORT_KEYDELTA(200) PORT_CENTERDELTA(0) PORT_PLAYER(2) NETLIST_ANALOG_PORT_CHANGED("maincpu", "pot2")
PORT_START("IN0") /* fake as well */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) NETLIST_LOGIC_PORT_CHANGED("maincpu", "coinsw1")
@ -262,11 +258,18 @@ static INPUT_PORTS_START( breakout )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) NETLIST_LOGIC_PORT_CHANGED("maincpu", "startsw2")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) NETLIST_LOGIC_PORT_CHANGED("maincpu", "servesw")
#if 0
PORT_DIPNAME( 0x06, 0x00, "Game Won" ) PORT_DIPLOCATION("SW1A:1,SW1B:1") PORT_CHANGED_MEMBER(DEVICE_SELF, pong_state, input_changed, IC_SWITCH)
PORT_DIPSETTING( 0x00, "11" )
PORT_DIPSETTING( 0x06, "15" )
PORT_START("DIPS")
PORT_DIPNAME( 0x01, 0x00, "Balls" ) PORT_DIPLOCATION("SW4:1") NETLIST_LOGIC_PORT_CHANGED("maincpu", "sw4")
PORT_DIPSETTING( 0x00, "3" )
PORT_DIPSETTING( 0x01, "5" )
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW3:1") NETLIST_LOGIC_PORT_CHANGED("maincpu", "sw3")
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:1") NETLIST_LOGIC_PORT_CHANGED("maincpu", "sw2")
PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
#if 0
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Antenna") NETLIST_LOGIC_PORT_CHANGED("maincpu", "antenna")
PORT_START("VR1")
@ -326,12 +329,16 @@ static MACHINE_CONFIG_START( breakout, breakout_state )
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw1a", "sw1a.POS", 0, 0x01)
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw1b", "sw1b.POS", 0, 0x01)
#endif
MCFG_NETLIST_ANALOG_INPUT("maincpu", "pot0", "POTP1.DIAL")
MCFG_NETLIST_LOGIC_INPUT("maincpu", "coinsw1", "COIN1_SW.POS", 0, 0x01)
MCFG_NETLIST_LOGIC_INPUT("maincpu", "coinsw2", "COIN2_SW.POS", 0, 0x01)
MCFG_NETLIST_LOGIC_INPUT("maincpu", "startsw1", "START1_SW.POS", 0, 0x01)
MCFG_NETLIST_LOGIC_INPUT("maincpu", "startsw2", "START2_SW.POS", 0, 0x01)
MCFG_NETLIST_LOGIC_INPUT("maincpu", "servesw", "SERVE_SW.POS", 0, 0x01)
MCFG_NETLIST_ANALOG_INPUT("maincpu", "pot1", "POTP1.DIAL")
MCFG_NETLIST_ANALOG_INPUT("maincpu", "pot2", "POTP2.DIAL")
MCFG_NETLIST_LOGIC_INPUT("maincpu", "coinsw1", "COIN1.POS", 0, 0x01)
MCFG_NETLIST_LOGIC_INPUT("maincpu", "coinsw2", "COIN2.POS", 0, 0x01)
MCFG_NETLIST_LOGIC_INPUT("maincpu", "startsw1", "START1.POS", 0, 0x01)
MCFG_NETLIST_LOGIC_INPUT("maincpu", "startsw2", "START2.POS", 0, 0x01)
MCFG_NETLIST_LOGIC_INPUT("maincpu", "servesw", "SERVE.POS", 0, 0x01)
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw4", "S4.POS", 0, 0x01)
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw3", "S3.POS", 0, 0x01)
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw2", "S2.POS", 0, 0x01)
#if 0
MCFG_NETLIST_LOGIC_INPUT("maincpu", "antenna", "antenna.IN", 0, 0x01)
#endif

View File

@ -13,7 +13,7 @@
// internal artwork
#include "einvaderc.lh" // test-layout(but still playable)
#include "lightfgt.lh"
#include "lightfgt.lh" // clickable
//#include "hh_cop400_test.lh" // common test-layout - use external artwork
@ -342,9 +342,21 @@ MACHINE_CONFIG_END
/***************************************************************************
Milton Bradley Lightfight
Milton Bradley (Electronic) Lightfight
* COP421L MCU labeled /B119 COP421L-HLA/N
* LED matrix, 1bit sound
Xbox-shaped electronic game for 2 or more players, with long diagonal buttons
next to each outer LED. The main object of the game is to pinpoint a light
by pressing 2 buttons. To start, press a skill-level button(P2 button 7/8/9)
after selecting a game mode(P1 button 6-10).
The game variations are:
1: LightFight
2: NightFight
3: RiteSite
4: QuiteBrite
5: RightLight
***************************************************************************/
@ -401,11 +413,9 @@ WRITE_LINE_MEMBER(lightfgt_state::write_sk)
READ8_MEMBER(lightfgt_state::read_g)
{
return 0xf;
// G: multiplexed inputs
m_inp_mux = (m_so | m_d << 1) ^ 0x1f;
return read_inputs(5);
return read_inputs(5) ^ 0xf;
}
@ -413,16 +423,40 @@ READ8_MEMBER(lightfgt_state::read_g)
static INPUT_PORTS_START( lightfgt )
PORT_START("IN.0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON6 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // note: button 1 is on the left side from player perspective
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_COCKTAIL
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON10 ) PORT_COCKTAIL
PORT_START("IN.1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON7 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_COCKTAIL
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON9 ) PORT_COCKTAIL
PORT_START("IN.2")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON8 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_COCKTAIL
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_COCKTAIL
PORT_START("IN.3")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON9 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_COCKTAIL
PORT_START("IN.4")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON10 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON5 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_COCKTAIL
INPUT_PORTS_END
static MACHINE_CONFIG_START( lightfgt, lightfgt_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", COP421, 1000000) // approximation - RC osc. R=82K to +6V, C=56pf to GND(-6V)
MCFG_CPU_ADD("maincpu", COP421, 950000) // approximation - RC osc. R=82K to +6V, C=56pf to GND(-6V)
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, COP400_MICROBUS_DISABLED) // guessed
MCFG_COP400_WRITE_SO_CB(WRITELINE(lightfgt_state, write_so))
MCFG_COP400_WRITE_SK_CB(WRITELINE(lightfgt_state, write_sk))
@ -464,6 +498,7 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
CONS( 1981, einvaderc, einvader, 0, einvaderc, einvaderc, driver_device, 0, "Entex", "Space Invader (Entex, COP444)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
CONS( 1981, lightfgt, 0, 0, lightfgt, lightfgt, driver_device, 0, "Milton Bradley", "Lightfight", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
CONS( 1981, einvaderc, einvader, 0, einvaderc, einvaderc, driver_device, 0, "Entex", "Space Invader (Entex, COP444)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
CONS( 1981, lightfgt, 0, 0, lightfgt, lightfgt, driver_device, 0, "Milton Bradley", "Lightfight", GAME_SUPPORTS_SAVE )

View File

@ -15,6 +15,7 @@
0x0071: RAM fill to 0x00
0x1c8f: UPD7220
// vt240: x2212 nvram at E56
****************************************************************************/
#include "emu.h"
@ -267,6 +268,35 @@ ROM_START( mc7105 )
ROM_LOAD16_BYTE( "032.bin", 0x10001, 0x8000, CRC(e81d93c4) SHA1(982412a7a6e65d6f6b4f66bd093e54ee16f31384))
ROM_END
/* ROM definition */
ROM_START( vt240 )
ROM_REGION( 0x10000, "charcpu", ROMREGION_ERASEFF )
ROM_LOAD( "23-008e6-00.e100", 0x0000, 0x8000, CRC(ebc8a2fe) SHA1(70838175f8302fdc0dee79b2403fa95e6d989206))
ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF )
ROM_DEFAULT_BIOS( "vt240" )
ROM_SYSTEM_BIOS( 0, "vt240o", "VT240 older" )
ROMX_LOAD( "23-004e6-00.e22", 0x00000, 0x8000, CRC(EBA10FEF) SHA1(C0EE4D8E4EEB70066F03F3D17A7E2F2BD0B5F8AD), ROM_SKIP(1) | ROM_BIOS(1))
ROMX_LOAD( "23-005e6-00.e21", 0x00001, 0x8000, CRC(558D0285) SHA1(E96A49BF9D55D8AB879D9B39AA380368C5C9ADE0), ROM_SKIP(1) | ROM_BIOS(1))
ROMX_LOAD( "23-006e6-00.e20", 0x10000, 0x8000, CRC(79C11D82) SHA1(5A6FE5B75B6504A161F2C9B148C0FE9F19770837), ROM_SKIP(1) | ROM_BIOS(1))
ROMX_LOAD( "23-007e6-00.e19", 0x10001, 0x8000, CRC(D18A2AB8) SHA1(37F448A332FC50298007ED39C8BF1AB1EB6D4CAE), ROM_SKIP(1) | ROM_BIOS(1))
ROM_SYSTEM_BIOS( 1, "vt240", "VT240 newer" )
ROMX_LOAD( "23-056e6.e22", 0x00000, 0x8000, CRC(C46E13C3) SHA1(0F2801FA7483D1F97708143CD81AE0816BF9A435), ROM_SKIP(1) | ROM_BIOS(2))
ROMX_LOAD( "23-057e6.e21", 0x00001, 0x8000, CRC(7CE9DCE9) SHA1(5A105E5BDCA13910B3B79CC23567CE2DC36B844D), ROM_SKIP(1) | ROM_BIOS(2))
ROMX_LOAD( "23-058e6.e20", 0x10000, 0x8000, CRC(D2A56B90) SHA1(39CBB26134D7D8BA308DF3A93228918A5945B45F), ROM_SKIP(1) | ROM_BIOS(2))
ROMX_LOAD( "23-059e6.e19", 0x10001, 0x8000, CRC(F8393346) SHA1(1E28DAF1B7F2BDABC47CE2F6FA99EF038B275A29), ROM_SKIP(1) | ROM_BIOS(2))
ROM_REGION( 0x1000, "proms", ROMREGION_ERASEFF )
ROM_LOAD( "23-351a1.e149", 0x0000, 0x0020, NO_DUMP) // 82s123; DRAM RAS/CAS Timing PROM
ROM_LOAD( "23-352a1.e187", 0x0020, 0x0020, NO_DUMP) // 82s123; "CT0" Timing PROM
ROM_LOAD( "23-369a1.e53", 0x0040, 0x0020, NO_DUMP) // 82s123; ROM and RAM mapping PROM
ROM_LOAD( "23-370a1.e188", 0x0060, 0x0020, NO_DUMP) // 82s123; "CT1" Timing PROM
ROM_LOAD( "23-994a9.e74", 0x0100, 0x0200, NO_DUMP) // 82s131; T11 Interrupt Encoder PROM
ROM_REGION( 0x1000, "pals", 0 )
ROM_LOAD( "23-087j5.e182.e183.jed", 0x0000, 0x1000, NO_DUMP ) // PAL16L8ACN; "Logic Unit" Character Pattern Related
ROM_END
/* Driver */
DRIVER_INIT_MEMBER(vt240_state,vt240)
{
@ -283,7 +313,7 @@ DRIVER_INIT_MEMBER(vt240_state,vt240)
ROM[0x15e] = 0x00;
}
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
//COMP( 1983, vt240, 0, 0, vt220, vt220, driver_device, 0, "Digital Equipment Corporation", "VT240", GAME_NOT_WORKING | GAME_NO_SOUND)
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
COMP( 1983, vt240, 0, 0, mc7105, vt240, vt240_state, vt240, "Digital Equipment Corporation", "VT240", GAME_NOT_WORKING | GAME_NO_SOUND)
//COMP( 1983, vt241, 0, 0, vt220, vt220, driver_device, 0, "Digital Equipment Corporation", "VT241", GAME_NOT_WORKING | GAME_NO_SOUND)
COMP( 1983, mc7105, 0, 0, mc7105, vt240, vt240_state, vt240, "Elektronika", "MC7105", GAME_NOT_WORKING | GAME_NO_SOUND)

View File

@ -4,52 +4,196 @@
<!-- define elements -->
<element name="static_black"><rect><color red="0.0" green="0.0" blue="0.0" /></rect></element>
<element name="static_cyan"><rect><color red="0.2" green="0.65" blue="0.9" /></rect></element>
<element name="static_purple"><rect><color red="0.8" green="0.4" blue="0.9" /></rect></element>
<element name="static_yellow"><rect><color red="0.8" green="0.8" blue="0.2" /></rect></element>
<element name="text_g1">
<rect><color red="0.8" green="0.8" blue="0.2" /></rect>
<text string="LightFight"><color red="0.0" green="0.0" blue="0.0" /></text>
</element>
<element name="text_g2">
<rect><color red="0.8" green="0.8" blue="0.2" /></rect>
<text string="NightFight"><color red="0.0" green="0.0" blue="0.0" /></text>
</element>
<element name="text_g3">
<rect><color red="0.8" green="0.8" blue="0.2" /></rect>
<text string="RiteSite"><color red="0.0" green="0.0" blue="0.0" /></text>
</element>
<element name="text_g4">
<rect><color red="0.8" green="0.8" blue="0.2" /></rect>
<text string="QuiteBrite"><color red="0.0" green="0.0" blue="0.0" /></text>
</element>
<element name="text_g5">
<rect><color red="0.8" green="0.8" blue="0.2" /></rect>
<text string="RightLight"><color red="0.0" green="0.0" blue="0.0" /></text>
</element>
<element name="text_s1">
<rect><color red="0.8" green="0.8" blue="0.2" /></rect>
<text string="BEGINNER"><color red="0.0" green="0.0" blue="0.0" /></text>
</element>
<element name="text_s2">
<rect><color red="0.8" green="0.8" blue="0.2" /></rect>
<text string="ADVANCED"><color red="0.0" green="0.0" blue="0.0" /></text>
</element>
<element name="text_s3">
<rect><color red="0.8" green="0.8" blue="0.2" /></rect>
<text string="EXPERT"><color red="0.0" green="0.0" blue="0.0" /></text>
</element>
<element name="led" defstate="0">
<disk state="0"><color red="0.2" green="0.04" blue="0.05" /></disk>
<disk state="1"><color red="1.0" green="0.20" blue="0.22" /></disk>
<text string=" ">
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
<color red="0.0" green="0.0" blue="0.0" />
</text>
<disk state="0">
<bounds x="0.1" y="0.1" width="0.8" height="0.8" />
<color red="0.3" green="0.03" blue="0.06" />
</disk>
<disk state="1">
<bounds x="0.1" y="0.1" width="0.8" height="0.8" />
<color red="1.0" green="0.1" blue="0.2" />
</disk>
</element>
<element name="buttond" defstate="0">
<text string=" ">
<bounds x="0.0" y="0.0" width="2.0" height="1.0" />
<color red="0.0" green="0.0" blue="0.0" />
</text>
<rect state="0">
<bounds x="0.1" y="0.4" width="1.8" height="0.5" />
<color red="0.2" green="0.1" blue="0.14" />
</rect>
<rect state="1">
<bounds x="0.16" y="0.46" width="1.68" height="0.38" />
<color red="0.2" green="0.1" blue="0.14" />
</rect>
</element>
<element name="buttonu" defstate="0">
<text string=" ">
<bounds x="0.0" y="0.0" width="2.0" height="1.0" />
<color red="0.0" green="0.0" blue="0.0" />
</text>
<rect state="0">
<bounds x="0.1" y="0.1" width="1.8" height="0.5" />
<color red="0.2" green="0.1" blue="0.14" />
</rect>
<rect state="1">
<bounds x="0.16" y="0.16" width="1.68" height="0.38" />
<color red="0.2" green="0.1" blue="0.14" />
</rect>
</element>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="0" right="100" top="0" bottom="100" />
<bounds left="3" right="26" top="7" bottom="22" />
<bezel element="static_black">
<bounds left="0" right="100" top="0" bottom="100" />
<bounds left="3" right="26" top="7" bottom="22" />
</bezel>
<!-- led matrix -->
<bezel name="lamp44" element="led"><bounds x="0" y="10" width="1" height="1" /></bezel>
<bezel name="lamp43" element="led"><bounds x="2" y="10" width="1" height="1" /></bezel>
<bezel name="lamp42" element="led"><bounds x="4" y="10" width="1" height="1" /></bezel>
<bezel name="lamp41" element="led"><bounds x="6" y="10" width="1" height="1" /></bezel>
<bezel name="lamp40" element="led"><bounds x="8" y="10" width="1" height="1" /></bezel>
<bezel name="lamp44" element="led"><bounds x="10" y="14" width="1" height="1" /></bezel>
<bezel name="lamp43" element="led"><bounds x="11" y="15" width="1" height="1" /></bezel>
<bezel name="lamp42" element="led"><bounds x="12" y="16" width="1" height="1" /></bezel>
<bezel name="lamp41" element="led"><bounds x="13" y="17" width="1" height="1" /></bezel>
<bezel name="lamp40" element="led"><bounds x="14" y="18" width="1" height="1" /></bezel>
<bezel name="lamp34" element="led"><bounds x="0" y="12" width="1" height="1" /></bezel>
<bezel name="lamp33" element="led"><bounds x="2" y="12" width="1" height="1" /></bezel>
<bezel name="lamp32" element="led"><bounds x="4" y="12" width="1" height="1" /></bezel>
<bezel name="lamp31" element="led"><bounds x="6" y="12" width="1" height="1" /></bezel>
<bezel name="lamp30" element="led"><bounds x="8" y="12" width="1" height="1" /></bezel>
<bezel name="lamp34" element="led"><bounds x="11" y="13" width="1" height="1" /></bezel>
<bezel name="lamp33" element="led"><bounds x="12" y="14" width="1" height="1" /></bezel>
<bezel name="lamp32" element="led"><bounds x="13" y="15" width="1" height="1" /></bezel>
<bezel name="lamp31" element="led"><bounds x="14" y="16" width="1" height="1" /></bezel>
<bezel name="lamp30" element="led"><bounds x="15" y="17" width="1" height="1" /></bezel>
<bezel name="lamp24" element="led"><bounds x="0" y="14" width="1" height="1" /></bezel>
<bezel name="lamp23" element="led"><bounds x="2" y="14" width="1" height="1" /></bezel>
<bezel name="lamp22" element="led"><bounds x="4" y="14" width="1" height="1" /></bezel>
<bezel name="lamp21" element="led"><bounds x="6" y="14" width="1" height="1" /></bezel>
<bezel name="lamp20" element="led"><bounds x="8" y="14" width="1" height="1" /></bezel>
<bezel name="lamp24" element="led"><bounds x="12" y="12" width="1" height="1" /></bezel>
<bezel name="lamp23" element="led"><bounds x="13" y="13" width="1" height="1" /></bezel>
<bezel name="lamp22" element="led"><bounds x="14" y="14" width="1" height="1" /></bezel>
<bezel name="lamp21" element="led"><bounds x="15" y="15" width="1" height="1" /></bezel>
<bezel name="lamp20" element="led"><bounds x="16" y="16" width="1" height="1" /></bezel>
<bezel name="lamp14" element="led"><bounds x="0" y="16" width="1" height="1" /></bezel>
<bezel name="lamp13" element="led"><bounds x="2" y="16" width="1" height="1" /></bezel>
<bezel name="lamp12" element="led"><bounds x="4" y="16" width="1" height="1" /></bezel>
<bezel name="lamp11" element="led"><bounds x="6" y="16" width="1" height="1" /></bezel>
<bezel name="lamp10" element="led"><bounds x="8" y="16" width="1" height="1" /></bezel>
<bezel name="lamp14" element="led"><bounds x="13" y="11" width="1" height="1" /></bezel>
<bezel name="lamp13" element="led"><bounds x="14" y="12" width="1" height="1" /></bezel>
<bezel name="lamp12" element="led"><bounds x="15" y="13" width="1" height="1" /></bezel>
<bezel name="lamp11" element="led"><bounds x="16" y="14" width="1" height="1" /></bezel>
<bezel name="lamp10" element="led"><bounds x="17" y="15" width="1" height="1" /></bezel>
<bezel name="lamp4" element="led"><bounds x="0" y="18" width="1" height="1" /></bezel>
<bezel name="lamp3" element="led"><bounds x="2" y="18" width="1" height="1" /></bezel>
<bezel name="lamp2" element="led"><bounds x="4" y="18" width="1" height="1" /></bezel>
<bezel name="lamp1" element="led"><bounds x="6" y="18" width="1" height="1" /></bezel>
<bezel name="lamp0" element="led"><bounds x="8" y="18" width="1" height="1" /></bezel>
<bezel name="lamp4" element="led"><bounds x="14" y="10" width="1" height="1" /></bezel>
<bezel name="lamp3" element="led"><bounds x="15" y="11" width="1" height="1" /></bezel>
<bezel name="lamp2" element="led"><bounds x="16" y="12" width="1" height="1" /></bezel>
<bezel name="lamp1" element="led"><bounds x="17" y="13" width="1" height="1" /></bezel>
<bezel name="lamp0" element="led"><bounds x="18" y="14" width="1" height="1" /></bezel>
<!-- buttons -->
<bezel element="buttond" inputtag="IN.0" inputmask="0x02"><bounds x="3" y="20" width="2" height="1" /></bezel>
<bezel element="buttond" inputtag="IN.1" inputmask="0x02"><bounds x="5" y="20" width="2" height="1" /></bezel>
<bezel element="buttond" inputtag="IN.2" inputmask="0x02"><bounds x="7" y="20" width="2" height="1" /></bezel>
<bezel element="buttond" inputtag="IN.3" inputmask="0x02"><bounds x="9" y="20" width="2" height="1" /></bezel>
<bezel element="buttond" inputtag="IN.4" inputmask="0x02"><bounds x="11" y="20" width="2" height="1" /></bezel>
<bezel element="buttond" inputtag="IN.0" inputmask="0x01"><bounds x="16" y="20" width="2" height="1" /></bezel>
<bezel element="buttond" inputtag="IN.1" inputmask="0x01"><bounds x="18" y="20" width="2" height="1" /></bezel>
<bezel element="buttond" inputtag="IN.2" inputmask="0x01"><bounds x="20" y="20" width="2" height="1" /></bezel>
<bezel element="buttond" inputtag="IN.3" inputmask="0x01"><bounds x="22" y="20" width="2" height="1" /></bezel>
<bezel element="buttond" inputtag="IN.4" inputmask="0x01"><bounds x="24" y="20" width="2" height="1" /></bezel>
<bezel element="buttonu" inputtag="IN.0" inputmask="0x08"><bounds x="3" y="8" width="2" height="1" /></bezel>
<bezel element="buttonu" inputtag="IN.1" inputmask="0x08"><bounds x="5" y="8" width="2" height="1" /></bezel>
<bezel element="buttonu" inputtag="IN.2" inputmask="0x08"><bounds x="7" y="8" width="2" height="1" /></bezel>
<bezel element="buttonu" inputtag="IN.3" inputmask="0x08"><bounds x="9" y="8" width="2" height="1" /></bezel>
<bezel element="buttonu" inputtag="IN.4" inputmask="0x08"><bounds x="11" y="8" width="2" height="1" /></bezel>
<bezel element="buttonu" inputtag="IN.0" inputmask="0x04"><bounds x="16" y="8" width="2" height="1" /></bezel>
<bezel element="buttonu" inputtag="IN.1" inputmask="0x04"><bounds x="18" y="8" width="2" height="1" /></bezel>
<bezel element="buttonu" inputtag="IN.2" inputmask="0x04"><bounds x="20" y="8" width="2" height="1" /></bezel>
<bezel element="buttonu" inputtag="IN.3" inputmask="0x04"><bounds x="22" y="8" width="2" height="1" /></bezel>
<bezel element="buttonu" inputtag="IN.4" inputmask="0x04"><bounds x="24" y="8" width="2" height="1" /></bezel>
<!-- bezel -->
<bezel element="static_cyan"><bounds x="13.3" y="8" width="2.4" height="0.2" /></bezel>
<bezel element="static_cyan"><bounds x="14.3" y="9" width="0.4" height="0.2" /></bezel>
<bezel element="static_cyan"><bounds x="13.3" y="20.8" width="2.4" height="0.2" /></bezel>
<bezel element="static_cyan"><bounds x="14.3" y="19.8" width="0.4" height="0.2" /></bezel>
<bezel element="static_cyan"><bounds x="8" y="14" width="0.2" height="1" /></bezel>
<bezel element="static_cyan"><bounds x="7" y="13" width="0.2" height="3" /></bezel>
<bezel element="static_cyan"><bounds x="6" y="12" width="0.2" height="5" /></bezel>
<bezel element="static_cyan"><bounds x="5" y="11" width="0.2" height="7" /></bezel>
<bezel element="static_cyan"><bounds x="4" y="10" width="0.2" height="9" /></bezel>
<bezel element="static_cyan"><bounds x="3" y="9" width="0.2" height="11" /></bezel>
<bezel element="static_cyan"><bounds x="20.8" y="14" width="0.2" height="1" /></bezel>
<bezel element="static_cyan"><bounds x="21.8" y="13" width="0.2" height="3" /></bezel>
<bezel element="static_cyan"><bounds x="22.8" y="12" width="0.2" height="5" /></bezel>
<bezel element="static_cyan"><bounds x="23.8" y="11" width="0.2" height="7" /></bezel>
<bezel element="static_cyan"><bounds x="24.8" y="10" width="0.2" height="9" /></bezel>
<bezel element="static_cyan"><bounds x="25.8" y="9" width="0.2" height="11" /></bezel>
<bezel element="static_yellow"><bounds x="3" y="7" width="10" height="0.7" /></bezel>
<bezel element="static_purple"><bounds x="16" y="7" width="10" height="0.7" /></bezel>
<bezel element="static_purple"><bounds x="3" y="21.3" width="10" height="0.7" /></bezel>
<bezel element="static_yellow"><bounds x="16" y="21.3" width="10" height="0.7" /></bezel>
<bezel element="text_g1"><bounds x="16.1" y="21.43" width="2" height="0.4" /></bezel>
<bezel element="text_g2"><bounds x="18" y="21.43" width="2" height="0.4" /></bezel>
<bezel element="text_g3"><bounds x="20" y="21.43" width="2" height="0.4" /></bezel>
<bezel element="text_g4"><bounds x="22" y="21.43" width="2" height="0.4" /></bezel>
<bezel element="text_g5"><bounds x="24" y="21.43" width="2" height="0.4" /></bezel>
<bezel element="text_s3"><bounds x="5" y="7.15" width="2" height="0.4" /></bezel>
<bezel element="text_s2"><bounds x="7" y="7.15" width="2" height="0.4" /></bezel>
<bezel element="text_s1"><bounds x="9" y="7.15" width="2" height="0.4" /></bezel>
</view>

View File

@ -1662,7 +1662,7 @@ vt520 // 1994 Digital Equipment Corporation
//vt525
vk100 // 1980 Digital Equipment Corporation
dectalk // 1983 Digital Equipment Corporation
//vt240 // 1983 Digital Equipment Corporation
vt240 // 1983 Digital Equipment Corporation
//vt241
mc7105 // Elektronika MC7105
rainbow100a // 1982 DEC Rainbow 100-A