trunk/src/mame/drivers/fidelz80.cpp
| r253060 | r253061 | |
| 598 | 598 | PB.4 - white wire (and TSI BUSY line) |
| 599 | 599 | PB.5 - selection jumper input (see below) |
| 600 | 600 | PB.6 - TSI start line |
| 601 | | PB.7 - TSI ROM D0 line |
| 601 | PB.7 - TSI ROM A12 line |
| 602 | 602 | |
| 603 | 603 | |
| 604 | 604 | selection jumpers: |
| r253060 | r253061 | |
| 1070 | 1070 | { |
| 1071 | 1071 | // d0-d3: select digits |
| 1072 | 1072 | // d0-d7: select leds, input mux low bits |
| 1073 | | m_inp_mux = (m_inp_mux & 0x300) | data; |
| 1073 | m_inp_mux = (m_inp_mux & ~0xff) | data; |
| 1074 | 1074 | m_led_select = data; |
| 1075 | 1075 | vsc_prepare_display(); |
| 1076 | 1076 | } |
| r253060 | r253061 | |
| 1081 | 1081 | READ8_MEMBER(fidelz80_state::vsc_pio_porta_r) |
| 1082 | 1082 | { |
| 1083 | 1083 | // d0-d7: multiplexed inputs |
| 1084 | | return read_inputs(10); |
| 1084 | return read_inputs(11); |
| 1085 | |
| 1085 | 1086 | } |
| 1086 | 1087 | |
| 1087 | 1088 | READ8_MEMBER(fidelz80_state::vsc_pio_portb_r) |
| r253060 | r253061 | |
| 1090 | 1091 | |
| 1091 | 1092 | // d4: TSI BUSY line |
| 1092 | 1093 | ret |= (m_speech->busy_r()) ? 0 : 0x10; |
| 1093 | | |
| 1094 | |
| 1094 | 1095 | return ret; |
| 1095 | 1096 | } |
| 1096 | 1097 | |
| 1097 | 1098 | WRITE8_MEMBER(fidelz80_state::vsc_pio_portb_w) |
| 1098 | 1099 | { |
| 1099 | 1100 | // d0,d1: input mux highest bits |
| 1100 | | m_inp_mux = (m_inp_mux & 0xff) | (data << 8 & 0x300); |
| 1101 | | |
| 1101 | // d5: enable language switch |
| 1102 | m_inp_mux = (m_inp_mux & ~0x700) | (data << 8 & 0x300) | (data << 5 & 0x400); |
| 1103 | |
| 1104 | //if (m_inp_mux & 0x400) debugger_break(machine()); |
| 1105 | |
| 1106 | // d7: TSI ROM A12 |
| 1107 | |
| 1108 | m_speech->force_update(); // update stream to now |
| 1109 | m_speech_bank = data >> 7 & 1; |
| 1110 | |
| 1102 | 1111 | // d6: TSI START line |
| 1103 | 1112 | m_speech->start_w(data >> 6 & 1); |
| 1104 | | |
| 1113 | |
| 1105 | 1114 | // d2: lower TSI volume |
| 1106 | 1115 | m_speech->set_output_gain(0, (data & 4) ? 0.5 : 1.0); |
| 1107 | 1116 | } |
| r253060 | r253061 | |
| 1298 | 1307 | PORT_START("IN.4") |
| 1299 | 1308 | PORT_BIT(0x0f, IP_ACTIVE_HIGH, IPT_UNUSED) |
| 1300 | 1309 | |
| 1301 | | PORT_START("LEVEL") // factory setting |
| 1302 | | PORT_CONFNAME( 0x80, 0x00, "PPI.B.7: Maximum Levels" ) |
| 1303 | | PORT_CONFSETTING( 0x00, "10" ) |
| 1310 | PORT_START("LEVEL") // hardwired (VCC/GND?) |
| 1311 | PORT_CONFNAME( 0x80, 0x00, "Maximum Levels" ) |
| 1312 | PORT_CONFSETTING( 0x00, "10" ) // factory setting |
| 1304 | 1313 | PORT_CONFSETTING( 0x80, "3" ) |
| 1305 | 1314 | INPUT_PORTS_END |
| 1306 | 1315 | |
| 1307 | 1316 | static INPUT_PORTS_START( vcc ) |
| 1308 | 1317 | PORT_INCLUDE( vcc_base ) |
| 1309 | 1318 | |
| 1310 | | PORT_START("IN.4") // not consumer accessible |
| 1311 | | PORT_CONFNAME( 0x01, 0x00, "PCB Jumper: French" ) |
| 1319 | PORT_START("IN.4") // PCB jumpers, not consumer accessible |
| 1320 | PORT_CONFNAME( 0x01, 0x00, "Language: French" ) |
| 1312 | 1321 | PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) |
| 1313 | 1322 | PORT_CONFSETTING( 0x01, DEF_STR( On ) ) |
| 1314 | | PORT_CONFNAME( 0x02, 0x00, "PCB Jumper: Spanish" ) |
| 1323 | PORT_CONFNAME( 0x02, 0x00, "Language: Spanish" ) |
| 1315 | 1324 | PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) |
| 1316 | 1325 | PORT_CONFSETTING( 0x02, DEF_STR( On ) ) |
| 1317 | | PORT_CONFNAME( 0x04, 0x00, "PCB Jumper: German" ) |
| 1326 | PORT_CONFNAME( 0x04, 0x00, "Language: German" ) |
| 1318 | 1327 | PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) |
| 1319 | 1328 | PORT_CONFSETTING( 0x04, DEF_STR( On ) ) |
| 1320 | | PORT_CONFNAME( 0x08, 0x00, "PCB Jumper: Special" ) |
| 1329 | PORT_CONFNAME( 0x08, 0x00, "Language: Special" ) |
| 1321 | 1330 | PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) |
| 1322 | 1331 | PORT_CONFSETTING( 0x08, DEF_STR( On ) ) |
| 1323 | 1332 | INPUT_PORTS_END |
| r253060 | r253061 | |
| 1326 | 1335 | PORT_INCLUDE( vcc ) |
| 1327 | 1336 | |
| 1328 | 1337 | PORT_MODIFY("IN.4") |
| 1329 | | PORT_CONFNAME( 0x01, 0x01, "PCB Jumper: French" ) |
| 1338 | PORT_CONFNAME( 0x01, 0x01, "Language: French" ) |
| 1330 | 1339 | PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) |
| 1331 | 1340 | PORT_CONFSETTING( 0x01, DEF_STR( On ) ) |
| 1332 | 1341 | INPUT_PORTS_END |
| r253060 | r253061 | |
| 1335 | 1344 | PORT_INCLUDE( vcc ) |
| 1336 | 1345 | |
| 1337 | 1346 | PORT_MODIFY("IN.4") |
| 1338 | | PORT_CONFNAME( 0x02, 0x02, "PCB Jumper: Spanish" ) |
| 1347 | PORT_CONFNAME( 0x02, 0x02, "Language: Spanish" ) |
| 1339 | 1348 | PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) |
| 1340 | 1349 | PORT_CONFSETTING( 0x02, DEF_STR( On ) ) |
| 1341 | 1350 | INPUT_PORTS_END |
| r253060 | r253061 | |
| 1344 | 1353 | PORT_INCLUDE( vcc ) |
| 1345 | 1354 | |
| 1346 | 1355 | PORT_MODIFY("IN.4") |
| 1347 | | PORT_CONFNAME( 0x04, 0x04, "PCB Jumper: German" ) |
| 1356 | PORT_CONFNAME( 0x04, 0x04, "Language: German" ) |
| 1348 | 1357 | PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) |
| 1349 | 1358 | PORT_CONFSETTING( 0x04, DEF_STR( On ) ) |
| 1350 | 1359 | INPUT_PORTS_END |
| r253060 | r253061 | |
| 1449 | 1458 | PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("DM") PORT_CODE(KEYCODE_M) |
| 1450 | 1459 | PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ST") PORT_CODE(KEYCODE_S) |
| 1451 | 1460 | PORT_BIT(0xc0, IP_ACTIVE_HIGH, IPT_UNUSED) |
| 1461 | |
| 1462 | PORT_START("IN.10") // hardwired (2 diodes) |
| 1463 | PORT_CONFNAME( 0x03, 0x00, "Language" ) |
| 1464 | PORT_CONFSETTING( 0x00, "English" ) |
| 1465 | PORT_CONFSETTING( 0x01, "1" ) // todo: game dasm says it checks against 0/not0, 2, 3.. which language is which? |
| 1466 | PORT_CONFSETTING( 0x02, "2" ) |
| 1467 | PORT_CONFSETTING( 0x03, "3" ) |
| 1452 | 1468 | INPUT_PORTS_END |
| 1453 | 1469 | |
| 1454 | 1470 | static INPUT_PORTS_START( vbrc ) |
| r253060 | r253061 | |
| 1582 | 1598 | /* sound hardware */ |
| 1583 | 1599 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 1584 | 1600 | MCFG_SOUND_ADD("speech", S14001A, 25000) // R/C circuit, around 25khz |
| 1601 | MCFG_S14001A_EXT_READ_HANDLER(READ8(fidelz80_state, vcc_speech_r)) |
| 1585 | 1602 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) |
| 1586 | 1603 | MACHINE_CONFIG_END |
| 1587 | 1604 | |
| r253060 | r253061 | |
| 1705 | 1722 | ROM_LOAD("101-64109.bin", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) ) |
| 1706 | 1723 | ROM_LOAD("101-32024.bin", 0x4000, 0x1000, CRC(2a078676) SHA1(db2f0aba7e8ac0f84a17bae7155210cdf0813afb) ) |
| 1707 | 1724 | |
| 1708 | | ROM_REGION( 0x1000, "speech", 0 ) |
| 1725 | ROM_REGION( 0x2000, "speech", 0 ) |
| 1709 | 1726 | ROM_LOAD("101-32107.bin", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) |
| 1727 | ROM_RELOAD( 0x1000, 0x1000) |
| 1710 | 1728 | ROM_END |
| 1711 | 1729 | |
| 1730 | ROM_START( vscsp ) |
| 1731 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1732 | ROM_LOAD("101-64108.bin", 0x0000, 0x2000, CRC(c9c98490) SHA1(e6db883df088d60463e75db51433a4b01a3e7626) ) |
| 1733 | ROM_LOAD("101-64109.bin", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) ) |
| 1734 | ROM_LOAD("101-32024.bin", 0x4000, 0x1000, CRC(2a078676) SHA1(db2f0aba7e8ac0f84a17bae7155210cdf0813afb) ) |
| 1712 | 1735 | |
| 1736 | ROM_REGION( 0x2000, "speech", 0 ) |
| 1737 | ROM_LOAD("vcc-spanish.bin", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct |
| 1738 | ROM_END |
| 1739 | |
| 1740 | ROM_START( vscg ) |
| 1741 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1742 | ROM_LOAD("101-64108.bin", 0x0000, 0x2000, CRC(c9c98490) SHA1(e6db883df088d60463e75db51433a4b01a3e7626) ) |
| 1743 | ROM_LOAD("101-64109.bin", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) ) |
| 1744 | ROM_LOAD("101-32024.bin", 0x4000, 0x1000, CRC(2a078676) SHA1(db2f0aba7e8ac0f84a17bae7155210cdf0813afb) ) |
| 1745 | |
| 1746 | ROM_REGION( 0x2000, "speech", 0 ) |
| 1747 | ROM_LOAD("vcc-german.bin", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct |
| 1748 | ROM_END |
| 1749 | |
| 1750 | ROM_START( vscfr ) |
| 1751 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1752 | ROM_LOAD("101-64108.bin", 0x0000, 0x2000, CRC(c9c98490) SHA1(e6db883df088d60463e75db51433a4b01a3e7626) ) |
| 1753 | ROM_LOAD("101-64109.bin", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) ) |
| 1754 | ROM_LOAD("101-32024.bin", 0x4000, 0x1000, CRC(2a078676) SHA1(db2f0aba7e8ac0f84a17bae7155210cdf0813afb) ) |
| 1755 | |
| 1756 | ROM_REGION( 0x2000, "speech", 0 ) |
| 1757 | ROM_LOAD("vcc-french.bin", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct |
| 1758 | ROM_END |
| 1759 | |
| 1760 | |
| 1713 | 1761 | ROM_START( vbrc ) // AKA model 7002 |
| 1714 | 1762 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1715 | 1763 | // nec 2364 mask roms; pin 27 (PGM, probably NC here due to mask roms) goes to the pcb |
| r253060 | r253061 | |
| 1757 | 1805 | COMP( 1980, uvcg, vcc, 0, vcc, vccg, driver_device, 0, "Fidelity Electronics", "Advanced Voice Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) |
| 1758 | 1806 | COMP( 1980, uvcfr, vcc, 0, vcc, vccfr, driver_device, 0, "Fidelity Electronics", "Advanced Voice Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) |
| 1759 | 1807 | |
| 1760 | | COMP( 1980, vsc, 0, 0, vsc, vsc, driver_device, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK ) |
| 1808 | COMP( 1980, vsc, 0, 0, vsc, vsc, driver_device, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK ) |
| 1809 | COMP( 1980, vscsp, vsc, 0, vsc, vsc, driver_device, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK ) |
| 1810 | COMP( 1980, vscg, vsc, 0, vsc, vsc, driver_device, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK ) |
| 1811 | COMP( 1980, vscfr, vsc, 0, vsc, vsc, driver_device, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK ) |
| 1761 | 1812 | |
| 1762 | 1813 | COMP( 1979, vbrc, 0, 0, vbrc, vbrc, driver_device, 0, "Fidelity Electronics", "Voice Bridge Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) |
| 1763 | 1814 | COMP( 1980, bridgec3, vbrc, 0, vbrc, vbrc, driver_device, 0, "Fidelity Electronics", "Voice Bridge Challenger III", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) |