22// copyright-holders: Jean-Francois DEL NERO
33/* **************************************************************************
44
5- Minitel 2
5+ Minitel 2 by Philips
66
77 The Minitel is a small, on-line computer/Videotex terminal with multi-services that
88 can be connected to any French telephone line. This terminal was widely used in France
1111 There are several models and versions. Most of them are based on 8051 compatible MCUs
1212 and EF9345 semi graphic video chip.
1313
14- The current implementation is a Minitel 2 from "La RADIOTECHNIQUE PORTENSEIGNE" / RPIC (Philips)
14+ The current implementation is a Minitel 2 (NFZ 400) from "La RADIOTECHNIQUE
15+ PORTENSEIGNE" (RPIC, later acquired by Philips).
16+
1517 More Minitel hardware related informations are available on this page :
1618 http://hxc2001.free.fr/minitel
1719
6062
6163#include " emu.h"
6264
65+ #include " bus/generic/carts.h"
66+ #include " bus/generic/slot.h"
6367#include " bus/rs232/rs232.h"
6468#include " cpu/mcs51/mcs51.h"
6569#include " machine/clock.h"
@@ -113,6 +117,7 @@ class minitel_state : public driver_device
113117 minitel_state (const machine_config &mconfig, device_type type, const char *tag)
114118 : driver_device(mconfig, type, tag)
115119 , m_maincpu(*this , " maincpu" )
120+ , m_romslot(*this , " romslot" )
116121 , m_ts9347(*this , " ts9347" )
117122 , m_palette(*this , " palette" )
118123 , m_i2cmem(*this , " i2cmem" )
@@ -129,6 +134,7 @@ class minitel_state : public driver_device
129134
130135private:
131136 required_device<i80c32_device> m_maincpu;
137+ required_device<generic_slot_device> m_romslot;
132138 required_device<ts9347_device> m_ts9347;
133139 required_device<palette_device> m_palette;
134140 required_device<i2cmem_device> m_i2cmem;
@@ -178,6 +184,9 @@ void minitel_state::machine_start()
178184 m_palette->set_pen_color (5 , 120 , 120 , 120 );
179185 m_palette->set_pen_color (6 , 200 , 200 , 200 );
180186 m_palette->set_pen_color (7 , 255 , 255 , 255 );
187+
188+ if (m_romslot->exists ())
189+ m_maincpu->space (AS_PROGRAM).install_read_handler (0x0000 , 0xffff , emu::rw_delegate (*m_romslot, FUNC (generic_slot_device::read_rom)));
181190}
182191
183192void minitel_state::port1_w (uint8_t data)
@@ -529,6 +538,9 @@ void minitel_state::minitel2(machine_config &config)
529538 m_maincpu->port_in_cb <3 >().set (FUNC (minitel_state::port3_r));
530539 m_maincpu->port_out_cb <3 >().set (FUNC (minitel_state::port3_w));
531540
541+ /* if populated, this ROM slot replaces the main ROM */
542+ GENERIC_SOCKET (config, m_romslot, generic_linear_slot, " minitel_rom" , " bin,rom" );
543+
532544 I2C_24C02 (config, m_i2cmem);
533545
534546 TS9347 (config, m_ts9347, 0 );
@@ -564,23 +576,28 @@ void minitel_state::minitel2(machine_config &config)
564576}
565577
566578ROM_START ( minitel2 )
567-
568579 ROM_REGION ( 0x10000 , " maincpu" , ROMREGION_ERASEFF )
569580 ROM_DEFAULT_BIOS (" ft_bv4" )
570581
571- ROM_SYSTEM_BIOS (0 , " ft_bv4" , " Minitel 2 ROM BV4 " )
582+ ROM_SYSTEM_BIOS (0 , " ft_bv4" , " France Telecom Bv4 " )
572583 ROMX_LOAD ( " minitel2_bv4.bin" , 0x0000 , 0x8000 , CRC(8844a0a7) SHA1(d3e9079b080dbcee27ad870ec6c39ac42e7deacf), ROM_BIOS(0 ) )
573584
574- ROM_SYSTEM_BIOS (1 , " demov1" , " Minitel 2 Demo" )
575- ROMX_LOAD ( " demo_minitel.bin" , 0x0000 , 0x8000 , CRC(607f2482) SHA1(7965edbef68e45d09dc67a4684da56003eff6328), ROM_BIOS(1 ) )
585+ ROM_SYSTEM_BIOS (1 , " ft_bv6" , " France Telecom Bv6" )
586+ ROMX_LOAD ( " bv6.bin" , 0x0000 , 0x8000 , CRC(9e162977 ) SHA1(e66a0951d14be4f9da693c478319d1c620878347), ROM_BIOS(1 ) )
587+
588+ ROM_SYSTEM_BIOS (2 , " ft_bv7" , " France Telecom Bv7" )
589+ ROMX_LOAD ( " bv7.bin" , 0x0000 , 0x8000 , CRC(2dde1628) SHA1(85500c06b93efb6e925dcb156248425fa3366ce6), ROM_BIOS(2 ) )
590+
591+ ROM_SYSTEM_BIOS (3 , " ft_bv9" , " France Telecom Bv9" )
592+ ROMX_LOAD ( " bv9.1402" , 0x0000 , 0x8000 , CRC(ace5d65e) SHA1(c8d589f8af6bd7d339964fdece937a76db972115), ROM_BIOS(3 ) )
576593
577- ROM_SYSTEM_BIOS (2 , " ft_bv9 " , " Minitel 2 ROM Bv9 " )
578- ROMX_LOAD ( " bv9.1402 " , 0x0000 , 0x8000 , CRC(ace5d65e ) SHA1(c8d589f8af6bd7d339964fdece937a76db972115 ), ROM_BIOS(2 ) )
594+ ROM_SYSTEM_BIOS (4 , " demov1 " , " The Minitel Demo (jfdelnero) " )
595+ ROMX_LOAD ( " demo_minitel.bin " , 0x0000 , 0x8000 , CRC(607f2482 ) SHA1(7965edbef68e45d09dc67a4684da56003eff6328 ), ROM_BIOS(4 ) )
579596
580597 ROM_REGION ( 0x4000 , " ts9347" , 0 )
581598 ROM_LOAD ( " charset.rom" , 0x0000 , 0x2000 , BAD_DUMP CRC (b2f49eb3) SHA1(d0ef530be33bfc296314e7152302d95fdf9520fc) ) // from dcvg5k
582599ROM_END
583600
584601} // anonymous namespace
585602
586- COMP ( 1989 , minitel2, 0 , 0 , minitel2, minitel2, minitel_state, empty_init, " Philips" , " Minitel 2" , MACHINE_NO_SOUND )
603+ COMP ( 1989 , minitel2, 0 , 0 , minitel2, minitel2, minitel_state, empty_init, " Philips" , " Minitel 2 NFZ 400 " , MACHINE_NO_SOUND )
0 commit comments