summaryrefslogblamecommitdiffstatshomepage
path: root/src/mame/drivers/microdar.cpp
blob: 0ecd89441181d7d1b48f67d41e7cdfa2f397205b (plain) (tree)
1
2
3
4
5
6





                                                                          

















                                                                          
                                

















                                          
                                                          



                                     
                                                 








                         

                                                                          
                                   













                                                                                                                                             
 
  
















                                                                                        
                                             
                                              























                                                            
                                               



                                                                                       
                                    
 
                                                        

 




                                                    
 





                                                     




















































































                                                                                    

                                 

                                        

                       






                                                                                                                      
                   
                                            
                       






                                                                                                                       










                                                                                                       
                                                                                                       








































                                                                                                                
                                                                                                                          




                                                                                                            





































                                                                                                                                                                                      
// license:BSD-3-Clause
// copyright-holders:AJR
/*************************************************************************

    Skeleton driver for Compumatic dart board with LED display.

**************************************************************************
_______________________________
|__  ________________________  |
||C| |_CN____________________| |
||N|    __   __   __   __   __ |
|| |    |IC  |IC  |IC  |IC  |CN|
||_|    |19  |20  |18  |21  |_||
| __    |_|  |_|  |_|  |_|  __ |
| |CN   __   ______________ |_| CN
| |_|   |IC  |IC17 REF0032 || ||
| :..   |25  |___9817K0552_||_||
| __    |_| ______ ________ |_||
| |CN   __  |IC23_||IC15   || ||
| | |   |IC ______ |_______||_||
| | |   |24 |IC22_|         |_||
| | |   |_| ______   BATT   __ |
| | |   __  |IC12_|         | | CN
| | |   IC8 ______________  | ||
| |_|   __  |IC1  REF34VA | | ||
| __    IC7 |______9818h-_|XT1||
| |CN   ______  __________  | ||
| | |   |IC5__||IC4_______| | ||
| | |   ______ ___________  |_||
| | |   |IC6__||IC3       | __ |
| | |          |__________| |CN|
| | |          _______         |
| | |          |IC2___|        |
| |_|          _______         |
| __           |IC10__|        |
| |CN          _______         |
| | |          |IC9___|        |
| | |      __  _______       : |
| |_|     IC14 |IC13__|        |
|______________________________|

IC19, IC20, IC18, IC21 = Toshiba TD62703AP
IC25, IC24 = ST ULN2803A
IC17 = REF0032 9817K0552 (40-pin DIP: display controller?)
IC23, IC22, IC12 = Hitachi HD74HC273P
IC15 = Natsemi CD4514BCN
IC8 = Microchip 24LC16B
IC7 = TI TL7705ACP
IC1 = Philips REF34VA 9818h- (40-pin DIP: 80C51?)
XT1 = 20.000 MHz
IC5 = Hitachi HD74HC08P
IC6 = Hitachi HD74HC138P
IC4 = LGS GM76C88ALK-15
IC3 = Winbond W29EE011-15
IC2 = Hitachi HD74HC373P
IC2 = Hitachi HD74HC373P
IC10 = Hitachi HD74HC244P

**************************************************************************

Known machines using this hardware:
____________________________________________________________________________________________________________________________________________
|Dumped | Name        | Manufacturer     | Notes                                                               | Machine type               |
|-------|-------------|------------------|---------------------------------------------------------------------|----------------------------|
|  NO   | Sagitario   | CIC Play         | CPU silkscreened "REF 0034 9115S", without manufacturer logos       | Darts                      |
|  YES  | Diana Bifuca| Compumatic/Bifuca| Standard Microdar SPD with Philips REF34VA. "Bifuca" string on ROM  | Darts                      |
|  NO   | Party Darts | Compumatic       | More info: http://www.recreativas.org/party-darts-4906-compumatic   | Darts                      |
|  NO   | Diamant     | Unknown          | Newer PCB with Philips REF34VA and additional Compumatic custom ICs | Darts                      |
|  NO   | Tiger Dart  | Unknown          | Standard Microdar SPD with Philips REF34VA                          | Darts                      |
|  YES  | Far West    | Compumatic       | Standard Microdar SPD with Philips REF34VA                          | Electromechanical shooting |
|  YES  | Unknown     | Compumatic       | Compumatic ProSPDP-V3 PCB (Philips REF34VA + REF0096 + REF8032)     | Darts                      |
|  YES  | Diana Olakoa| Compumatic/Olaoka| Compumatic Microdard-V5 PCB (REF0034 + REF0032 + REF0096)           | Darts                      |
|_______|_____________|__________________|_____________________________________________________________________|____________________________|

There's a later revision of the Compumatic Microdar, smaller, with a standard Atmel AT89S51 instead of the REF34 CPU.

*/

#include "emu.h"
#include "cpu/mcs51/mcs51.h"
#include "machine/i2cmem.h"
#include "machine/nvram.h"

class microdar_state : public driver_device
{
public:
	microdar_state(const machine_config &mconfig, device_type type, const char *tag)
		: driver_device(mconfig, type, tag)
		, m_maincpu(*this, "maincpu")
		, m_eeprom(*this, "eeprom")
	{
	}

	void microdar(machine_config &config);
	void prospdp(machine_config &config);
	void microdv5(machine_config &config);

private:
	void prog_map(address_map &map);
	void ext_map(address_map &map);

	required_device<mcs51_cpu_device> m_maincpu;
	required_device<i2cmem_device> m_eeprom;
};

void microdar_state::prog_map(address_map &map)
{
	map(0x1000, 0xffff).rom().region("program", 0x1000);
}

void microdar_state::ext_map(address_map &map)
{
	map(0x0000, 0x1fff).ram().share("nvram");
}

static INPUT_PORTS_START(microdar)
INPUT_PORTS_END

void microdar_state::microdar(machine_config &config)
{
	I80C51(config, m_maincpu, 20_MHz_XTAL);
	m_maincpu->set_addrmap(AS_PROGRAM, &microdar_state::prog_map);
	m_maincpu->set_addrmap(AS_IO, &microdar_state::ext_map);

	NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // GM76C88ALK-15 + battery
	I2C_24C16(config, m_eeprom);

	// Code also references some sort of serial RTC?
}

void microdar_state::prospdp(machine_config &config)
{
	microdar(config);
	m_maincpu->set_clock(24_MHz_XTAL);
}

void microdar_state::microdv5(machine_config &config)
{
	microdar(config);
	m_maincpu->set_clock(16_MHz_XTAL);
}

#define PHILIPS_REF34VA \
	ROM_REGION(0x1000, "maincpu", ROMREGION_ERASE00) \
	ROM_LOAD("ref34va.ic1", 0x0000, 0x1000, NO_DUMP) \
	ROM_FILL(0x0000, 1, 0x02) /* temporary LJMP to external init code */ \
	ROM_FILL(0x0001, 1, 0x10) \
	ROM_FILL(0x0002, 1, 0x1b) \
	ROM_FILL(0x000b, 1, 0x02) /* temporary LJMP to interrupt handler */ \
	ROM_FILL(0x000c, 1, 0x10) \
	ROM_FILL(0x000d, 1, 0x15) \
	ROM_FILL(0x001b, 1, 0x02) /* temporary LJMP to interrupt handler */ \
	ROM_FILL(0x001c, 1, 0x10) \
	ROM_FILL(0x001d, 1, 0x18) \
	ROM_FILL(0x0058, 1, 0x32) /* RETI stubs */ \
	ROM_FILL(0x00af, 1, 0x32) \
	ROM_FILL(0x00c9, 1, 0x02) /* temporary LJMP to end of interrupt handler */ \
	ROM_FILL(0x00ca, 1, 0x12) \
	ROM_FILL(0x00cb, 1, 0xd1) \
	ROM_FILL(0x0135, 1, 0x22) /* RET stubs */ \
	ROM_FILL(0x0163, 1, 0x22) \
	ROM_FILL(0x0185, 1, 0x22) \
	ROM_FILL(0x01cf, 1, 0x22) \
	ROM_FILL(0x02de, 1, 0x22) \
	ROM_FILL(0x02fa, 1, 0x22) \
	ROM_FILL(0x0308, 1, 0x22) \
	ROM_FILL(0x0313, 1, 0x22) \
	ROM_FILL(0x037d, 1, 0x22) \
	ROM_FILL(0x03be, 1, 0x22) \
	ROM_FILL(0x0496, 1, 0x22) \
	ROM_FILL(0x04ce, 1, 0x22) \
	ROM_FILL(0x0514, 1, 0x22) \
	ROM_FILL(0x0520, 1, 0x22) \
	ROM_FILL(0x0550, 1, 0x22) \
	ROM_FILL(0x0574, 1, 0x22) \
	ROM_FILL(0x05b4, 1, 0x22) \
	ROM_FILL(0x05bb, 1, 0x22) \
	ROM_FILL(0x05ca, 1, 0x22) \
	ROM_FILL(0x05d8, 1, 0x22) \
	ROM_FILL(0x0605, 1, 0x22) \
	ROM_FILL(0x0638, 1, 0x22) \
	ROM_FILL(0x068a, 1, 0x22) \
	ROM_FILL(0x06a2, 1, 0x22) \
	ROM_FILL(0x06bd, 1, 0x22) \
	ROM_FILL(0x06db, 1, 0x22) \
	ROM_FILL(0x0708, 1, 0x22) \
	ROM_FILL(0x0715, 1, 0x22) \
	ROM_FILL(0x072d, 1, 0x22) \
	ROM_FILL(0x0744, 1, 0x22) \
	ROM_FILL(0x0751, 1, 0x22) \
	ROM_FILL(0x0767, 1, 0x22) \
	ROM_FILL(0x0772, 1, 0x22) \
	ROM_FILL(0x077d, 1, 0x22) \
	ROM_FILL(0x07a4, 1, 0x22) \
	ROM_FILL(0x07c2, 1, 0x22) \
	ROM_FILL(0x0802, 1, 0x22) \
	ROM_FILL(0x0836, 1, 0x22) \
	ROM_FILL(0x087d, 1, 0x22) \
	ROM_FILL(0x0893, 1, 0x22) \
	ROM_FILL(0x0930, 1, 0x22) \
	ROM_FILL(0x094a, 1, 0x22) \
	ROM_FILL(0x095a, 1, 0x22) \
	ROM_FILL(0x096a, 1, 0x22) \
	ROM_FILL(0x097b, 1, 0x22) \
	ROM_FILL(0x098f, 1, 0x22) \
	ROM_FILL(0x09a3, 1, 0x22) \
	ROM_FILL(0x09c0, 1, 0x22) \
	ROM_FILL(0x0a21, 1, 0x22) \
	ROM_FILL(0x0a54, 1, 0x22) \
	ROM_FILL(0x0a63, 1, 0x22) \
	ROM_FILL(0x0a73, 1, 0x22) \
	ROM_FILL(0x0a90, 1, 0x22) \
	ROM_FILL(0x0ae8, 1, 0x22) \
	ROM_FILL(0x0abf, 1, 0x22) \
	ROM_FILL(0x0ac7, 1, 0x22) \
	ROM_FILL(0x0b11, 1, 0x22) \
	ROM_FILL(0x0b7f, 1, 0x22) \
	ROM_FILL(0x0bf1, 1, 0x22) \
	ROM_FILL(0x0bf6, 1, 0x22) \
	ROM_FILL(0x0c4a, 1, 0x22) \
	ROM_FILL(0x0c59, 1, 0x22) \
	ROM_FILL(0x0c64, 1, 0x22) \
	ROM_FILL(0x0c99, 1, 0x22) \
	ROM_FILL(0x0ca8, 1, 0x22) \
	ROM_FILL(0x0cbd, 1, 0x22) \
	ROM_FILL(0x0dac, 1, 0x22) \
	ROM_FILL(0x0dca, 1, 0x22) \
	ROM_FILL(0x0e6a, 1, 0x22)

ROM_START(dibifuca)
	// Philips REF34VA K7V5534 9818h
	PHILIPS_REF34VA

	ROM_REGION(0x20000, "program", 0)
	ROM_LOAD("compumatic_727.ic3", 0x00000, 0x20000, CRC(ccf973b6) SHA1(ab67e466849b3bbd8f24be041c979c3f833a32a8))

	ROM_REGION(0x800, "eeprom", 0)
	ROM_LOAD("24lc16b.ic8", 0x000, 0x800, CRC(1cae70db) SHA1(575d4c787fd65950417e85fdb34d2961fc327c74))
ROM_END

ROM_START(cfarwest)
	// Philips REF34VA K8V2873 Phr9920 0
	PHILIPS_REF34VA

	ROM_REGION(0x20000, "program", 0)
	ROM_LOAD("farwest_pistola.ic3", 0x00000, 0x20000, CRC(ad68a0e8) SHA1(157a6a84f31e05d289e2fc67099fcff2887a84b9))

	// No EEPROM on this PCB
ROM_END

/* Compumatic ProSPDP-V3 PCB
  ____________________________________________________________________________________________________
__|_  ________ ___ ___ ___ __________ ____________ ________ __________ ____ ________ __________       |
|   ||_CN105_| 110 123 119 |__CN125_| |__CN124___| |_CN121| |__CN112_|CN127 |_CN128| |__CN103_|   ___ |
| C |                                               _______ __________                          : |C ||
| N |                                               |CN116| |__CN115_|  BATTERY 3.6V              |N ||
| 1 |   ______               ______   ______       ______                                         |1 ||
| 1 | CD4514BCWM             MM74HC   MM74HC     CD4514BCWM           ______       ___________    |0 ||
| 3 |  ___________  _____   _____       _____________        ______   MM74HC       |COMPUMATIC|   |6 ||
|   |  |UDN2981A_| 74HC00D 74HC00D   :  GM76C88ALK-15        MM74HC   ______       | REF0096  |Xtal__||
|   |  ___________        ______      _______________  ___   ______   |HC367       |__________|   |C ||
|   |: |TD62683AP|        MM74HC      |  28SF040A   | 25C16N TLC77051P               Xtal 16.000  |N ||
|   |: ___________                    |_____________|           __________  ____                  |1 ||
|   |: |TD62683AP|    _____           _________________      ATF16V8B-15PC LM358                  |0 ||
|   |: ___________    |REF |          |PHILIPS REF34VA| Xtal     _________                TEST    |9 ||
|   |  |TD62683AP|    |8032|   ____   |_______________| 24.000   |ULN2803A|              SWITCH   |__||
|___|                 |____|   CN122                                                             CN102|
  | ________       _________   ____  _______________  ___________________ _____ _________  ________   |
  | |_CN101_|      |__CN111_|  CN126 |___CN108______| |_____CN107________|CN114 |_CN118_| |_CN120_|   |
  |___________________________________________________________________________________________________|

CN101 = DISPLAY INFO
CN102 = SPEAKER
CN103 = CARD/NOTE
CN105 = 6 pin: GND, RX, TX, TEL, CTL, 12V
CN106 = EXPANSION
CN107 = POWER SUPPLY
CN108 = BUTTON PRO
CN109 = PAN-LED
CN110 = 2 pin: GND / KEY
CN111 = ACCEPTOR
CN112 = TARGET A
CN113 = DISPLAY
CN114 = 2 pin: GND, DISP
CN116 = 3 pin: BI, SS, SM
CN118 = GUN A
CN120 = GUN B
CN122 = ICC (3 pin: T, GND, X)
CN123 = CNT, +12
CN124 = INTA PRO
CN125 = LED-RING
CN126 = COIN
CN127 = FDD (4 pin: +5, FDD, GND, +12)
CN128 = TROB (5 pin: BUL, OUL, REL, THL, +12)
*/
ROM_START(prospdp)
	// REF34VA K0V951 Phr0038 F
	PHILIPS_REF34VA

	ROM_REGION(0x80000, "program", 0)
	ROM_LOAD("28sf040a.ic3", 0x00000, 0x80000, CRC(f5727a08) SHA1(f4185afc62c1d1f6cb6c772ea40062ced9b2130a))

	ROM_REGION(0x800, "eeprom", 0)
	ROM_LOAD("25c16n.ic8", 0x000, 0x800, CRC(a89a5016) SHA1(84cb29477b1917225e972c2a25e396567c145719)) // Atmel 25C16N

	ROM_REGION(0x117, "plds", 0)
	ROM_LOAD("atf16v8b.ic7", 0x000, 0x117, CRC(85e98105) SHA1(9b3389eedd62b3e599559a03e9664ed1e374d60b))
ROM_END

/* Compumatic Microdard-V5 PCB
   _______________________________________________________________________________
  | ______    _____________________________  _________  TEST  ___  _______     __|
  ||_CN__|   |__________CN________________| |___CN___| SWITCH|CN| |__CN__|    |CN|
 _|___                        ________________________   XT1                  ___|_
|    |   ________________    |REF0034 91515S         | 16.000  BATT           |C  -
| CN |  |CD4514BE       |    |                       |   MHz                  |N  -
|    |  |_______________|    |_______________________|                        |____
|    |   ____________                           ___________________            __|
|    |  |__UDN2981A_|   _____  _____________   |27C10000C-15      |  ____     |C||
|    |   ____________  |24C16 |_TD62083AP__|   |__________________| |___|     |N||
|    |  |__UDN2981A_|   __________  __________  ____________        ________  | ||
|    |   ____________  |SN74HC00N| |PALCE16V8| |_GM76C88ALK|       |REF0096|  |_||
|    |  |__UDN2981A_|   _______________________ ____________       |COMPUMA|   __|
|    |   ____________  |REF0032 9616T         ||_HD74HC373P|       |TIC    |  |C||
|    |  |__UDN2981A_|  |______________________|   XT3 16.0MHz  XT2 |_______|  |N||
|____|     _____ __ __ __ __ __ __  __________________________   ____        ::  |
  |       |_CN_| CN CN CN CN CN CN |________CN_______________|  |_CN|            |
  |______________________________________________________________________________|
*/
ROM_START(diolakoa)
	// REF 0034 9515S (without Philips logos)
	PHILIPS_REF34VA

	ROM_REGION(0x20000, "program", 0)
	ROM_LOAD("mt_plus_8_27.ic3", 0x00000, 0x20000, CRC(ada2ce10) SHA1(30fd0bd4eae282467dcec2ee1fe2dab47f4ea4d6))

	ROM_REGION(0x800, "eeprom", 0)
	ROM_LOAD("24c16.ic6", 0x000, 0x800, NO_DUMP) // Atmel 24C16

	ROM_REGION(0x117, "plds", 0)
	ROM_LOAD("palce16v8h.ic8", 0x000, 0x117, NO_DUMP)
ROM_END

GAME(199?, dibifuca, 0, microdar, microdar, microdar_state, empty_init, ROT0, "Compumatic / Bifuca", "Diana Bifuca",                                   MACHINE_IS_SKELETON_MECHANICAL)
GAME(1997, cfarwest, 0, microdar, microdar, microdar_state, empty_init, ROT0, "Compumatic",          "Far West (Compumatic)",                          MACHINE_IS_SKELETON_MECHANICAL)
GAME(1997, prospdp,  0, prospdp,  microdar, microdar_state, empty_init, ROT0, "Compumatic",          "Unknown Compumatic ProSPDP based darts machine", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1997, diolakoa, 0, microdv5, microdar, microdar_state, empty_init, ROT0, "Compumatic / Olakoa", "Diana Olakoa",                                   MACHINE_IS_SKELETON_MECHANICAL)