summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/compucranes.cpp
blob: a240b6ae9c25dbaf6e9d7b0ec5a7780faf83f8f5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
// license:BSD-3-Clause
// copyright-holders:
/***************************************************************************

 Skeleton driver for MCS51-based crane coinops from Compumatic.

 Display is just a four digits 7-segments (on a small PCB called "Plumadig").

 Different hardware revisions from Compumatic, called "GANCHONEW" PCB.
 From V2 to V8 hardware with the following layout (minor changes, like the power
 supply connector, moving from PC AT to PC ATX):

 COMPUMATIC "GANCHONEW V8" CPU
                               COUNTERS
  ______________________________________
 |     ______  ______  ______  ········ |
 |     ST8251  ST8251  ST8251           |
 | __________    ____                   |
 | ULN2803APG    LM358N                 |
 |                                      |
 | __________    __________     __ __  _|_
 | SN74HC2       SN74HC244N    | || | |   |
 |                             | || | | C |
 | __________    __________    |FUSES | O |
 | SN74HC737N    SN74HC244N    | || | | N |
 |                             |_||_| | N |
 | __________    __________           |___|
 | SN74HC737N    |_GAL16V8_|            |
 |                                    oo|
 | ________________    ____     ____  oo|
 || EPROM         | TL7705ACP         oo|
 ||_______________|    ____           oo|<- ATX Power
 |                    24C64           oo|   Supply conn
 | ___________________   Xtal         oo|
 || 80C32            |   12MHz  TEST  oo|
 ||__________________|           SW   oo|
 | ....  ...... ..  ..... .......       |
 |______________________________________|
  DISPLAY SENSOR SPK SELECT JOYSTICK
          +V RET

 The MCU on the older PCBs can differ between 80C32 compatible models
 (found with a Winbond W78C32C-40 and with a TS80C32X2-MCA).

 "GANCHONEW" V1 PCB has a different layout.

***************************************************************************/

#include "emu.h"
#include "cpu/mcs51/mcs51.h"
#include "speaker.h"

namespace
{

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

	void ganchonew(machine_config &config);

protected:
	required_device<mcs51_cpu_device> m_maincpu;
};

INPUT_PORTS_START(ganchonew)
INPUT_PORTS_END

void compucranes_state::ganchonew(machine_config &config)
{
	I80C32(config, m_maincpu, 6_MHz_XTAL);

	SPEAKER(config, "mono").front_center();
}

// "GANCHONEW V8" PCB with ATX PSU connector
ROM_START(mastcrane)
	ROM_REGION(0x80000, "maincpu", 0)
	ROM_LOAD("v8.ic3",      0x00000, 0x20000, CRC(c47d11ad) SHA1(b0e784b7f68492f2872c06674f92d582def9cd26)) // Found the same ROM on V7 and V8 PCBs

	ROM_REGION(0x00117, "pld", 0)
	ROM_LOAD("gal16v8.ic4", 0x00000, 0x00117, CRC(4d665a06) SHA1(504f0107482f636cd216579e982c6162c0b120a7)) // Verified to be the same on all known PCB revisions
ROM_END

// "GANCHONEW V2" PCB with AT PSU connector
ROM_START(mastcranea)
	ROM_REGION(0x80000, "maincpu", 0)
	ROM_LOAD("505.ic3",     0x00000, 0x20000, CRC(3dbb83f1) SHA1(3536762937332add0ca942283cc22ff301884a4a))

	ROM_REGION(0x00117, "pld", 0)
	ROM_LOAD("gal16v8.ic4", 0x00000, 0x00117, CRC(4d665a06) SHA1(504f0107482f636cd216579e982c6162c0b120a7)) // Verified to be the same on all known PCB revisions
ROM_END

} // anonymous namespace

//    YEAR  NAME        PARENT     MACHINE    INPUT      CLASS              INIT        ROT   COMPANY       FULLNAME                FLAGS
GAME( 199?, mastcrane,  0,         ganchonew, ganchonew, compucranes_state, empty_init, ROT0, "Compumatic", "Master Crane (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
GAME( 199?, mastcranea, mastcrane, ganchonew, ganchonew, compucranes_state, empty_init, ROT0, "Compumatic", "Master Crane (set 2)", MACHINE_IS_SKELETON_MECHANICAL )