diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index a0432aae536..00a3e62038f 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -4491,6 +4491,7 @@ files { MAME_DIR .. "src/mame/drivers/eacc.cpp", MAME_DIR .. "src/mame/drivers/easy_karaoke.cpp", MAME_DIR .. "src/mame/drivers/elwro800.cpp", + MAME_DIR .. "src/mame/drivers/elzet80.cpp", MAME_DIR .. "src/mame/drivers/epic14e.cpp", MAME_DIR .. "src/mame/drivers/esprit.cpp", MAME_DIR .. "src/mame/drivers/eti660.cpp", diff --git a/src/mame/drivers/elzet80.cpp b/src/mame/drivers/elzet80.cpp new file mode 100644 index 00000000000..d9e3a49d809 --- /dev/null +++ b/src/mame/drivers/elzet80.cpp @@ -0,0 +1,183 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +/*************************************************************************** + +ELZET/K +ELZET/P +BCS + +All documentation is in German. + +The ELZET/P is a luggable CP/M computer that from the outside looks very +much like a Kaypro II. The floppy drives could be one under the other like +the Kaypro, or could be vertically-orientated side-by-side. The drives are +80 track quad-density with 800KB capacity. +Behind the drives is a cage that can hold up to 8 slots that plug into a +small motherboard. +CARDS: (some are optional) +- Floppy Disk Controller: choice of FDC 2: (basic) or FDC3 (also has 128K RAM) + (main chips are PIO, DMA, MB8877A) +- Dynamic RAM: choice of 64k or 256k +- Centronics (contains PIO, CTC) +- EIC (contains PIO, DART, Z80B) +- Experimenter board (contains PIO, CTC) +- Video (contains MC6845, 2k vram, 2k attr-ram, chargen roms, 15MHz xtal) +- CPU (contains Z80, SIO, PIO, 4MHz xtal) + +The keyboard plugs into the front by using a stereo audio plug, like you +have on a modern computer's line-out jack. There's no internal information +for it. + + +The ELZET/K is a similar computer but is a slightly smaller form factor. + +The BCS is a box that can be used to convert over 300 floppy-disk formats. + +*************************************************************************** + + +To Do: Everything. +Status: Just a closet skeleton + + +***************************************************************************/ + +#include "emu.h" +#include "cpu/z80/z80.h" +#include "imagedev/floppy.h" +#include "machine/z80ctc.h" +#include "machine/z80dma.h" +#include "machine/z80sio.h" +#include "machine/z80pio.h" +#include "machine/wd_fdc.h" + +class elzet80_state : public driver_device +{ +public: + elzet80_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_ctc(*this, "ctc") + , m_dma(*this, "dma") + , m_pio(*this, "pio") + , m_uart(*this, "uart") + , m_fdc(*this, "fdc") + , m_floppy0(*this, "fdc:0") + , m_floppy1(*this, "fdc:1") + //, m_io_keyboard(*this, "LINE%u", 0) + { } + + void elzet80(machine_config &config); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + +private: + + void mem_map(address_map &map); + void io_map(address_map &map); + + void drive_w(offs_t offset, u8 data); + + floppy_image_device *m_floppy; + required_device m_maincpu; + required_device m_ctc; + required_device m_dma; + required_device m_pio; + required_device m_uart; + required_device m_fdc; + required_device m_floppy0; + required_device m_floppy1; + //required_ioport_array<8> m_io_keyboard; +}; + + +void elzet80_state::mem_map(address_map &map) +{ +} + +void elzet80_state::io_map(address_map &map) +{ + map.global_mask(0xff); + map.unmap_value_high(); +} + +static INPUT_PORTS_START( elzet80 ) +INPUT_PORTS_END + + +void elzet80_state::machine_start() +{ +} + +void elzet80_state::machine_reset() +{ + m_floppy = nullptr; +} + +static void elzet80_floppies(device_slot_interface &device) +{ + device.option_add("fdd", FLOPPY_525_QD); +} + + +void elzet80_state::elzet80(machine_config &config) +{ + /* basic machine hardware */ + Z80(config, m_maincpu, 4_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &elzet80_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &elzet80_state::io_map); + + // devices + FD1793(config, m_fdc, 1000000); // unknown where this is derived + FLOPPY_CONNECTOR(config, "fdc:0", elzet80_floppies, "fdd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, "fdc:1", elzet80_floppies, "fdd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true); + + Z80PIO(config, m_pio, 0); + Z80SIO(config, m_uart, 0); + Z80CTC(config, m_ctc, 0); + Z80DMA(config, m_dma, 0); +} + + +/*************************************************************************** + + Game driver(s) + +***************************************************************************/ + + +ROM_START(elzet80k) + ROM_REGION(0x1000, "maincpu", 0) + ROM_LOAD( "elzet80-k_cpu.bin", 0x0000, 0x1000, CRC(e5300137) SHA1(5a9fcb52756a2e9008d53b734b874d33b069efb5) ) + + ROM_REGION(0x2000, "chargen", 0) // same roms as P? + ROM_LOAD( "elzet80-p_video80_ic1_prom3.bin", 0x0000, 0x1000, CRC(70008d71) SHA1(048efed186861050f0e6b47fec57149319de22b6) ) + ROM_LOAD( "elzet80-p_video80_ic2_prom4.bin", 0x1000, 0x1000, CRC(8db78b54) SHA1(7d0ce2811ee1f6c179295411fd8c3c2e67ea2842) ) + + ROM_REGION(0x1000, "kbd", 0) + ROM_LOAD( "elzet80-k_tastatur_d8748.bin", 0x0000, 0x0400, CRC(78bf6f1a) SHA1(95919363e73779899cbd7c143d10c245c35ca789) ) + + ROM_REGION(0x1000, "bcs", 0) + ROM_LOAD( "elzet80-bcs_cpuiec.bin", 0x0000, 0x1000, CRC(724fe45a) SHA1(b4b01c9bf11b35c48b0a4839d7530a18259b1ae9) ) +ROM_END + +ROM_START(elzet80p) + ROM_REGION(0x1000, "maincpu", 0) + ROM_LOAD( "elzet80-p_cpu.bin", 0x0000, 0x1000, CRC(8b876e12) SHA1(0fb4dfe267a3fbc033fbce430d13fb22a4ad16ed) ) + + ROM_REGION(0x2000, "chargen", 0) + ROM_LOAD( "elzet80-p_video80_ic1_prom3.bin", 0x0000, 0x1000, CRC(70008d71) SHA1(048efed186861050f0e6b47fec57149319de22b6) ) + ROM_LOAD( "elzet80-p_video80_ic2_prom4.bin", 0x1000, 0x1000, CRC(8db78b54) SHA1(7d0ce2811ee1f6c179295411fd8c3c2e67ea2842) ) + + ROM_REGION(0x1000, "kbd", 0) + ROM_LOAD( "elzet80-p_tastatur_jk_ti2732.bin", 0x0000, 0x1000, CRC(88be9b29) SHA1(b83603dadce9d7e7367d1782ee78189156fe9a60) ) + + ROM_REGION(0x1000, "bcs", 0) + ROM_LOAD( "elzet80-bcs_cpuiec.bin", 0x0000, 0x1000, CRC(724fe45a) SHA1(b4b01c9bf11b35c48b0a4839d7530a18259b1ae9) ) +ROM_END + +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1982, elzet80k, elzet80p, 0, elzet80, elzet80, elzet80_state, empty_init, "Elektronikladen", "Elzet/K 80", MACHINE_IS_SKELETON ) +COMP( 1982, elzet80p, 0, 0, elzet80, elzet80, elzet80_state, empty_init, "Elektronikladen", "Elzet/P 80", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/junior80.cpp b/src/mame/drivers/junior80.cpp index e7b0f8bbdc0..9e694978fd3 100644 --- a/src/mame/drivers/junior80.cpp +++ b/src/mame/drivers/junior80.cpp @@ -133,7 +133,6 @@ Status: Just a closet skeleton #include "machine/z80sio.h" #include "machine/z80pio.h" //#include "bus/rs232/rs232.h" -#include "machine/wd_fdc.h" class junior80_state : public driver_device { diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 861a0c63a64..9548f38db85 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -13167,6 +13167,10 @@ elf2 // @source:elwro800.cpp elwro800 // +@source:elzet80.cpp +elzet80k // +elzet80p // + @source:emax.cpp emax // emax2 // diff --git a/src/mame/mess.flt b/src/mame/mess.flt index c8600d99b9a..e1b59abd73e 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -268,6 +268,7 @@ elekscmp.cpp elektronmono.cpp elf.cpp elwro800.cpp +elzet80.cpp emax.cpp emma2.cpp emu2.cpp