33
44/* 
55
6- Stella 8085 based hardware 
7- Electromechanical fruit machines 
6+ Elektronische Steuereinheit 
7+ 8085 based hardware 
88Lots of lamps and 4 7-segment LEDs 
99
1010Main components: 
1111Siemens SAB 8085AH-2-P (CPU) 
1212Sharp LH5164D-10L (SRAM) 
1313Siemens SAB 8256 A 2 P (MUART) 
1414NEC D8279C-2 (keyboard & display interface) 
15- RTC 62421A 
15+ Sound S50240 
1616
17- Is there a sound board or is it discrete? 
17+ 3 Different boards: 
18+ 4040-000-101 (6 ROM slots, TC5514 RAM) Parent is excellent 
19+ 4087-000-101 (3 ROM slots, RTC HD146818) Parent is doppelpot 
20+ 4109-000-101 (2 ROM slots, RTC 62421A) Parent is kniffi 
21+ 4382-000-101 (2 ROM slots, RTC 62421A) Parent is dicemstr 
1822
19- Game reference: https://www.youtube.com/watch?v=NlB06dMxjME 
23+ Dice Master reference: https://www.youtube.com/watch?v=NlB06dMxjME 
24+ Merkur Disc reference: https://www.youtube.com/watch?v=1NjJPkzg9Mk 
25+ Nova Kniffi reference: https://www.youtube.com/watch?v=YBq2Z1irXek 
2026*/ 
2127
2228
@@ -25,8 +31,8 @@ Game reference: https://www.youtube.com/watch?v=NlB06dMxjME
2531#include  " cpu/i8085/i8085.h" 
2632// #include "machine/i8256.h"
2733#include  " machine/i8279.h" 
34+ #include  " machine/mc146818.h" 
2835#include  " machine/msm6242.h" 
29- // #include "sound/???.h"
3036
3137#include  " speaker.h" 
3238
@@ -38,13 +44,16 @@ class stella8085_state : public driver_device
3844public: 
3945	stella8085_state (const  machine_config &mconfig, device_type type, const  char  *tag) :
4046		driver_device (mconfig, type, tag),
41- 		m_maincpu (*this , " maincpu"  )
47+ 		m_maincpu (*this , " maincpu"  ),
48+ 		m_kdc (*this , " kdc"  )
4249	{ }
4350
4451	void  dicemstr (machine_config &config);
52+ 	void  doppelpot (machine_config &config);
4553
4654private: 
4755	required_device<cpu_device> m_maincpu;
56+ 	required_device<i8279_device> m_kdc;
4857
4958	void  program_map (address_map &map) ATTR_COLD;
5059	void  io_map (address_map &map) ATTR_COLD;
@@ -53,9 +62,9 @@ class stella8085_state : public driver_device
5362
5463void  stella8085_state::program_map (address_map &map)
5564{
56- 	map (0x0000 , 0x7fff ).rom ();
57- 	map (0x8000 ,  0x9fff ). ram ();
58- 	map (0xa000 ,  0xffff ). rom ();
65+ 	map (0x0000 , 0x3fff ).rom ();  //  ICE6 
66+ 	map (0x4000 ,  0x7fff ). rom ();  //  ICD6 
67+ 	map (0xc000 ,  0xc7ff ). ram ();  //  ICC6 
5968}
6069
6170void  stella8085_state::io_map (address_map &map)
@@ -64,11 +73,50 @@ void stella8085_state::io_map(address_map &map)
6473
6574
6675static  INPUT_PORTS_START ( dicemstr )
76+ 	PORT_START(" DSW"  )
77+ 	PORT_DIPNAME(0x01 , 0x01 , " Restart Interrupt 7"  )
78+ 	PORT_DIPSETTING(0x01 , DEF_STR(Off))
79+ 	PORT_DIPSETTING(0x00 , DEF_STR(On))
80+ 	PORT_DIPNAME(0x02 , 0x02 , " Hold"  )
81+ 	PORT_DIPSETTING(0x02 , DEF_STR(Off))
82+ 	PORT_DIPSETTING(0x00 , DEF_STR(On))
83+ 	PORT_DIPNAME(0x04 , 0x04 , " Restart Interrupt 5"  )
84+ 	PORT_DIPSETTING(0x04 , DEF_STR(Off))
85+ 	PORT_DIPSETTING(0x00 , DEF_STR(On))
86+ 	PORT_DIPNAME(0x08 , 0x08 , " Reset"  )
87+ 	PORT_DIPSETTING(0x08 , DEF_STR(Off))
88+ 	PORT_DIPSETTING(0x00 , DEF_STR(On))
89+ 
90+ 	PORT_START(" SERVICE1"  ) //  Row 6
91+ 	PORT_BIT( 0x80 , IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(" Reset"  ) //  Col 7
92+ 	PORT_BIT( 0x40 , IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(" Dauerlauf"  )
93+ 	PORT_BIT( 0x20 , IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(" Spielzähler"  )
94+ 	PORT_BIT( 0x10 , IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(" Münzspeicher"  )
95+ 	PORT_BIT( 0x08 , IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(" Hardware-Test"  )
96+ 	PORT_BIT( 0x04 , IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(" Auszahlquote"  )
97+ 	PORT_BIT( 0x02 , IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(" Foul"  )
98+ 	PORT_BIT( 0x01 , IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(" Gewinn"  ) //  Col 0
99+ 
100+ 	PORT_START(" SERVICE2"  ) //  Row 7
101+ 	PORT_BIT( 0x80 , IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(" Hoch 1,-"  )
102+ 	PORT_BIT( 0x40 , IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(" Runter 1,-"  )
103+ 	PORT_BIT( 0x20 , IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(" Hoch Serie"  )
104+ 	PORT_BIT( 0x10 , IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(" Runter Serie"  )
105+ 	PORT_BIT( 0x08 , IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(" Hoch 0,10"  )
106+ 	PORT_BIT( 0x04 , IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(" Runter 0,10"  )
107+ 	PORT_BIT( 0x02 , IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(" Münzung"  )
108+ 	PORT_BIT( 0x01 , IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME(" Initialisieren"  )
109+ 
110+ 	PORT_START(" COINS"  )
111+ 	PORT_BIT( 0x01 , IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3 ) PORT_NAME(" DM 5.00"  )
112+ 	PORT_BIT( 0x02 , IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3 ) PORT_NAME(" DM 2.00"  )
113+ 	PORT_BIT( 0x04 , IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3 ) PORT_NAME(" DM 1.00"  )
114+ 	PORT_BIT( 0x08 , IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3 ) PORT_NAME(" DM 0.10"  )
115+ 
67116	PORT_START(" INPUTS"  )
68117	PORT_BIT( 0xff , IP_ACTIVE_LOW, IPT_UNKNOWN )
69118INPUT_PORTS_END
70119
71- 
72120void stella8085_state::dicemstr(machine_config &config)
73121{
74122	I8085A (config, m_maincpu, 10 .240_MHz_XTAL / 2 ); //  divider not verified
@@ -77,22 +125,117 @@ void stella8085_state::dicemstr(machine_config &config)
77125
78126	// I8256(config, "muart1", 10.240_MHz_XTAL / 2); // divider not verified
79127
80- 	I8279 (config, " kdc "  , 10 .240_MHz_XTAL / 2 ); //  divider not verified
128+ 	I8279 (config, m_kdc , 10 .240_MHz_XTAL / 2 ); //  divider not verified
81129
82130	RTC62421 (config, " rtc"  , 32 .768_kHz_XTAL);
83131
84132	SPEAKER (config, " mono"  ).front_center ();
85133}
86134
135+ void  stella8085_state::doppelpot (machine_config &config)
136+ {
137+ 	I8085A (config, m_maincpu, 6 .144_MHz_XTAL);
138+ 	m_maincpu->set_addrmap (AS_PROGRAM, &stella8085_state::program_map);
139+ 	m_maincpu->set_addrmap (AS_IO, &stella8085_state::io_map);
140+ 
141+ 	// I8256(config, "muart1", 6.144_MHz_XTAL);
142+ 
143+ 	I8279 (config, m_kdc, 6 .144_MHz_XTAL);
144+ 
145+ 	MC146818 (config, " rtc"  , 32 .768_kHz_XTAL);
146+ 
147+ 	SPEAKER (config, " mono"  ).front_center ();
148+ }
87149
88150ROM_START ( dicemstr ) //  curiously hand-written stickers say F3 but strings in ROM are F2
89151	ROM_REGION ( 0x10000 , " maincpu"  , 0  )
90152	ROM_LOAD ( " stella_dice_master_f3_i.ice6"  ,  0x0000 , 0x8000 , CRC(9897fb87) SHA1(bfb18c1370d9bd12ec61622c0ebbad5c0138e1d8) )
91153	ROM_LOAD ( " stella_dice_master_f3_ii.icd6"  , 0x8000 , 0x8000 , CRC(9484cf3b) SHA1(e1104882eaba860ab984c1a37e2f97d4bed08829) ) //  0x0000 - 0x1fff is 0xff filled
92154ROM_END
155+  
156+ ROM_START ( doppelpot )
157+ 	ROM_REGION ( 0x9000 , " maincpu"  , 0  )
158+ 	ROM_LOAD ( " doppelpot.ice6"  ,  0x0000 , 0x4000 , CRC(b01d3307) SHA1(8364506e8169432ddec275ef5b53660c01dc209e) )
159+ 	ROM_LOAD ( " doppelpot.icd6"  , 0x4000 , 0x4000 , CRC(153708cb) SHA1(3d15b115ec39c1df42d4437226e83413f495c4d9) )
160+ 	ROM_LOAD ( " doppelpot.icc5"  , 0x8000 , 0x1000 , CRC(135dac6b) SHA1(10873ee64579245eac7069bf84d61550684e67de) )
161+ ROM_END
162+  
163+ ROM_START ( disc2000 )
164+ 	ROM_REGION ( 0x8000 , " maincpu"  , 0  )
165+ 	ROM_LOAD ( " disc2000.ice6"  ,  0x0000 , 0x4000 , CRC(53a66005) SHA1(a5bb63abe8eb631a0fb09496ef6e0ee6c713985c) )
166+ 	ROM_LOAD ( " disc2000.icd6"  , 0x4000 , 0x4000 , CRC(787b6708) SHA1(be990f95b6d04cbe0b9832603204f2a81b0ace3f) )
167+ ROM_END
168+  
169+ ROM_START ( disc2001 )
170+ 	ROM_REGION ( 0x8000 , " maincpu"  , 0  )
171+ 	ROM_LOAD ( " disc2001.ice6"  ,  0x0000 , 0x4000 , CRC(4d128fe1) SHA1(2b9b0a1296ff77b281173fb0fcf667ed3e3ece2b) )
172+ 	ROM_LOAD ( " disc2001.icd6"  , 0x4000 , 0x4000 , CRC(72f6560a) SHA1(3fdc3aaafcc2c185a19a27ccd511d8522fbe0c2e) )
173+ ROM_END
174+  
175+ ROM_START ( disc3000 )
176+ 	ROM_REGION ( 0x8000 , " maincpu"  , 0  )
177+ 	ROM_LOAD ( " disc3000.ice6"  ,  0x0000 , 0x4000 , CRC(6e024e72) SHA1(7198c0cd844d4bc080b2d8654d32d53a04ce8bb4) )
178+ 	ROM_LOAD ( " disc3000.icd6"  , 0x4000 , 0x4000 , CRC(ad88715a) SHA1(660f4044e8f24ad59767ce025966475f9fd56885) )
179+ ROM_END
180+  
181+ ROM_START ( elitedisc )
182+ 	ROM_REGION ( 0x8000 , " maincpu"  , 0  )
183+ 	ROM_LOAD ( " elitedisc.ice6"  ,  0x0000 , 0x4000 , CRC(7f7a2f30) SHA1(01e3ce5fce2c9d51d3f4b8aab7dd67ed4b26d8f4) )
184+ 	ROM_LOAD ( " elitedisc.icd6"  , 0x4000 , 0x4000 , CRC(e56f2360) SHA1(691a6762578daca6ce4581418761dcc07c291fab) )
185+ ROM_END
186+  
187+ ROM_START ( excellent )
188+ 	ROM_REGION ( 0x8000 , " maincpu"  , 0  )
189+ 	ROM_LOAD ( " excellent.ice5"  ,  0x0000 , 0x0800 , CRC(b4c573b5) SHA1(5b01b68b8abd48bd293bc9aa507c3285a6e7550f) )
190+ 	ROM_LOAD ( " excellent.ice6"  , 0x0800 , 0x0800 , CRC(f1d53581) SHA1(7aef66149f3427b287d3e9d86cc198dc1ed40d7c) )
191+ 	ROM_LOAD ( " excellent.icd5"  ,  0x1000 , 0x0800 , CRC(912a5f59) SHA1(3df3ca7eaef8de8e13e93f6a1e6975f8da7ed7a1) )
192+ 	ROM_LOAD ( " excellent.icd6"  , 0x1800 , 0x0800 , CRC(5a2b95b4) SHA1(b0d17b327664e8680b163c872109769c4ae42039) )
193+ 	ROM_LOAD ( " excellent.icc5"  ,  0x2000 , 0x0800 , CRC(ae424805) SHA1(14e12ceebd9fbf6eba96c168e8e7b797b34f7ca5) )
194+ ROM_END
195+  
196+ ROM_START ( extrablatt )
197+ 	ROM_REGION ( 0x8000 , " maincpu"  , 0  )
198+ 	ROM_LOAD ( " extrablatt.ice6"  ,  0x0000 , 0x4000 , CRC(6885cf89) SHA1(30acd5511fb73cb22ae4230fedcf40f385c0d261) )
199+ 	ROM_LOAD ( " extrablatt.icd6"  , 0x4000 , 0x4000 , CRC(5c0cb9bd) SHA1(673d5f8dec7ccce1c4f39dce6be1e9d1ed699047) )
200+ ROM_END
201+  
202+ ROM_START ( glucksstern )
203+ 	ROM_REGION ( 0x8000 , " maincpu"  , 0  )
204+ 	ROM_LOAD ( " glucksstern.ice6"  ,  0x0000 , 0x4000 , CRC(8e969bae) SHA1(bf66d491932b77dab4c6b15ec7fbf470223636ac) )
205+ 	ROM_LOAD ( " glucksstern.icd6"  , 0x4000 , 0x4000 , CRC(f31b860a) SHA1(7b016bb7d0699cfe7165c0abb2c1bbcb944cdc86) )
206+ ROM_END
207+  
208+ ROM_START ( juwel )
209+ 	ROM_REGION ( 0x8000 , " maincpu"  , 0  )
210+ 	ROM_LOAD ( " juwel.ice6"  ,  0x0000 , 0x4000 , CRC(6fd9fd6a) SHA1(2ff982750d87be1bc7757bde706d9e329ac29785) )
211+ 	ROM_LOAD ( " juwel.icd6"  , 0x4000 , 0x4000 , CRC(a9ec9e36) SHA1(f7a2b5866988116e0bbeb8a120cae9083d651c5b) )
212+ ROM_END
213+  
214+ ROM_START ( karoas )
215+ 	ROM_REGION ( 0x8000 , " maincpu"  , 0  )
216+ 	ROM_LOAD ( " karoas.ice6"  ,  0x0000 , 0x4000 , CRC(71c4c39d) SHA1(b188896838a788d5bfc7b18f1bb423a06fe5fcc6) )
217+ 	ROM_LOAD ( " karoas.icd6"  , 0x4000 , 0x4000 , CRC(e1b131bd) SHA1(dc2fbfaf86fa5b161d17a563eae2bc8fc4d19395) )
218+ ROM_END
219+  
220+ ROM_START ( kniffi )
221+ 	ROM_REGION ( 0x8000 , " maincpu"  , 0  )
222+ 	ROM_LOAD ( " kniffi.ice6"  ,  0x0000 , 0x4000 , CRC(57df5d69) SHA1(78bc9cabf0b4bec5f8c2578d55011f0adc034798) )
223+ 	ROM_LOAD ( " kniffi.icd6"  , 0x4000 , 0x4000 , CRC(1c129cec) SHA1(bad22f18b94c16dba36995ff8daf4d48f4d082a2) )
224+ ROM_END
93225
94226} //  anonymous namespace
95227
96228
97229//  'STELLA DICE MASTER F2' and 'COPYRIGHT BY ADP LUEBBECKE GERMANY 1993' in ROM
98230GAME ( 1993 , dicemstr, 0 , dicemstr, dicemstr, stella8085_state, empty_init, ROT0, " Stella"  , " Dice Master"  , MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK )
231+ GAME( 1987 , disc2000, doppelpot, doppelpot, dicemstr, stella8085_state, empty_init, ROT0, " ADP"  , " Disc 2000"  , MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK )
232+ GAME( 1987 , disc2001, doppelpot, doppelpot, dicemstr, stella8085_state, empty_init, ROT0, " ADP"  , " Disc 2001"  , MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK )
233+ GAME( 1989 , disc3000, doppelpot, doppelpot, dicemstr, stella8085_state, empty_init, ROT0, " ADP"  , " Disc 3000"  , MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK )
234+ GAME( 1986 , doppelpot, 0 , doppelpot, dicemstr, stella8085_state, empty_init, ROT0, " Nova"  , " Doppelpot"  , MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK )
235+ GAME( 1986 , elitedisc, doppelpot, doppelpot, dicemstr, stella8085_state, empty_init, ROT0, " ADP"  , " Elite Disc"  , MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK )
236+ GAME( 1988 , extrablatt, kniffi, dicemstr, dicemstr, stella8085_state, empty_init, ROT0, " ADP"  , " Extrablatt"  , MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK )
237+ GAME( 1982 , excellent, 0 , doppelpot, dicemstr, stella8085_state, empty_init, ROT0, " ADP"  , " Excellent"  , MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK )
238+ GAME( 1998 , glucksstern, kniffi, dicemstr, dicemstr, stella8085_state, empty_init, ROT0, " ADP"  , " Glücks-Stern"  , MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK )
239+ GAME( 1988 , juwel, kniffi, dicemstr, dicemstr, stella8085_state, empty_init, ROT0, " ADP"  , " Juwel"  , MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK )
240+ GAME( 1992 , karoas, kniffi, dicemstr, dicemstr, stella8085_state, empty_init, ROT0, " ADP"  , " Karo As"  , MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK )
241+ GAME( 1987 , kniffi, 0 , dicemstr, dicemstr, stella8085_state, empty_init, ROT0, " Nova"  , " Kniffi"  , MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK )
0 commit comments