diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 879d7531d69..61e18ad14f3 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -3333,6 +3333,7 @@ files { createMESSProjects(_target, _subtarget, "visual") files { + MAME_DIR .. "src/mame/drivers/v100.cpp", MAME_DIR .. "src/mame/drivers/v1050.cpp", MAME_DIR .. "src/mame/includes/v1050.h", MAME_DIR .. "src/mame/machine/v1050kb.cpp", diff --git a/src/devices/machine/com8116.cpp b/src/devices/machine/com8116.cpp index bbc8d02119d..1569e83176a 100644 --- a/src/devices/machine/com8116.cpp +++ b/src/devices/machine/com8116.cpp @@ -35,6 +35,7 @@ const int com8116_device::divisors_16X_5_0688MHz[] = // SMC/COM8116-003 // from http://www.vintagecomputer.net/fjkraan/comp/divcomp/doc/SMC_BaudGen.pdf page 283 (pdf page 20) // baud rates are 50, 75, 110, 134.5, 150, 200, 300, 600, 1200, 1800, 2000, 2400, 3600, 4800, 9600, 19200 +// SMC/COM8116T-020 should have similar output rates, but clock is unknown and probably different const int com8116_device::divisors_16X_6_01835MHz[] = { 7523, 5015, 3420, 2797, 2508, 1881, 1254, 627, 313, 209, 188, 157, 104, 78, 39, 20 }; diff --git a/src/mame/drivers/terminals.cpp b/src/mame/drivers/terminals.cpp index bda83063565..8f486bef1b4 100644 --- a/src/mame/drivers/terminals.cpp +++ b/src/mame/drivers/terminals.cpp @@ -250,27 +250,6 @@ COMP( 1989, tv965, 0, 0, terminals, terminals, terminals_state, 0, "TeleVideo", -/************************************************************************************************************** - -Visual 100. (VT-100 clone) -Chips: D780C-1 (Z80), CRT5037, D8255AC-5, uPB8214C, COM8116T-020, D8251AC, ER1400, 8-sw dip -Crystal: 47.736 - -***************************************************************************************************************/ - -ROM_START( v100 ) - ROM_REGION(0x10000, "maincpu", 0) - ROM_LOAD( "262-047.u108", 0x0000, 0x1000, CRC(e82f708c) SHA1(20ed83a41fd0703d72a20e170af971181cfbd575) ) - ROM_LOAD( "262-048.u110", 0x1000, 0x1000, CRC(830923d3) SHA1(108590234ff84b5856cc2784d738a2a625305953) ) - - ROM_REGION(0x0800, "chargen", 0) - ROM_LOAD( "241-001.u29", 0x0000, 0x0800, CRC(ef807141) SHA1(cbf3fed001811c5840b9a131d2d3133843cb3b6a) ) -ROM_END - -COMP( 1982, v100, 0, 0, terminals, terminals, terminals_state, 0, "Visual Technology", "Visual 100", MACHINE_IS_SKELETON ) - - - /************************************************************************************************************** Visual 102. (VT-102 clone plus graphics) diff --git a/src/mame/drivers/v100.cpp b/src/mame/drivers/v100.cpp new file mode 100644 index 00000000000..93630ff1b33 --- /dev/null +++ b/src/mame/drivers/v100.cpp @@ -0,0 +1,97 @@ +// license:BSD-3-Clause +// copyright-holders: +/*********************************************************************************************************************************** + +Skeleton driver for Visual 100 display terminal. + +************************************************************************************************************************************/ + +#include "emu.h" +#include "cpu/z80/z80.h" +#include "machine/com8116.h" +//#include "machine/er1400.h" +#include "machine/i8214.h" +#include "machine/i8251.h" +#include "machine/i8255.h" +//#include "video/crt5027.h" +//#include "screen.h" + +class v100_state : public driver_device +{ +public: + v100_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_p_chargen(*this, "chargen") + { } + +private: + required_device m_maincpu; + required_region_ptr m_p_chargen; +}; + + +static ADDRESS_MAP_START( mem_map, AS_PROGRAM, 8, v100_state ) + AM_RANGE(0x0000, 0x3fff) AM_ROM AM_REGION("maincpu", 0) + AM_RANGE(0x4000, 0x5fff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( io_map, AS_IO, 8, v100_state ) + ADDRESS_MAP_GLOBAL_MASK(0xff) + //AM_RANGE(0x00, 0x0f) AM_DEVWRITE("vtac", crt5027_device, write) + // 0x10 - 8116T baud rate + AM_RANGE(0x12, 0x12) AM_DEVREADWRITE("usart", i8251_device, data_r, data_w) + AM_RANGE(0x13, 0x13) AM_DEVREADWRITE("usart", i8251_device, status_r, control_w) + // 0x14-0x15 - second 8251 (not populated) + // 0x16 - second 8116T (not populated) + // 0x20 - read ??? + // 0x30 - write ??? + AM_RANGE(0x40, 0x40) AM_NOP // read/write ??? + // 0x48 - write ??? + // 0x60 - write ??? + AM_RANGE(0x70, 0x73) AM_DEVREADWRITE("ppi", i8255_device, read, write) +ADDRESS_MAP_END + + +static INPUT_PORTS_START( v100 ) +INPUT_PORTS_END + + +static MACHINE_CONFIG_START( v100 ) + MCFG_CPU_ADD("maincpu", Z80, XTAL_47_736MHz / 12) // divider not verified + MCFG_CPU_PROGRAM_MAP(mem_map) + MCFG_CPU_IO_MAP(io_map) + + MCFG_DEVICE_ADD("usart", I8251, XTAL_47_736MHz / 12) // divider not verified + + MCFG_DEVICE_ADD("brg", COM8116, 5068800) + MCFG_COM8116_FR_HANDLER(DEVWRITELINE("usart", i8251_device, write_rxc)) + MCFG_COM8116_FT_HANDLER(DEVWRITELINE("usart", i8251_device, write_txc)) + + //MCFG_DEVICE_ADD("vtac", CRT5037, XTAL_47_736MHz / 12) // divider not verified + + MCFG_DEVICE_ADD("picu", I8214, XTAL_47_736MHz / 12) + + MCFG_DEVICE_ADD("ppi", I8255, 0) +MACHINE_CONFIG_END + + + +/************************************************************************************************************** + +Visual 100. (VT-100 clone) +Chips: D780C-1 (Z80), CRT5037, D8255AC-5, uPB8214C, COM8116T-020, D8251AC, ER1400, 8-sw dip +Crystal: 47.736 + +***************************************************************************************************************/ + +ROM_START( v100 ) + ROM_REGION(0x4000, "maincpu", 0) + ROM_LOAD( "262-047.u108", 0x0000, 0x1000, CRC(e82f708c) SHA1(20ed83a41fd0703d72a20e170af971181cfbd575) ) + ROM_LOAD( "262-048.u110", 0x1000, 0x1000, CRC(830923d3) SHA1(108590234ff84b5856cc2784d738a2a625305953) ) + + ROM_REGION(0x0800, "chargen", 0) + ROM_LOAD( "241-001.u29", 0x0000, 0x0800, CRC(ef807141) SHA1(cbf3fed001811c5840b9a131d2d3133843cb3b6a) ) +ROM_END + +COMP( 1982, v100, 0, 0, v100, v100, v100_state, 0, "Visual Technology", "Visual 100", MACHINE_IS_SKELETON ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 198e589c34e..4b4964e1e96 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -36457,7 +36457,6 @@ tr175 tv912c tv955 tv965 -v100 v102 vt420 @@ -37429,6 +37428,9 @@ ut88mini // @source:uzebox.cpp uzebox // +@source:v100.cpp +v100 // + @source:v1050.cpp v1050 // diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 47baaf62f60..2b4107df421 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -723,6 +723,7 @@ univac.cpp unixpc.cpp ut88.cpp uzebox.cpp +v100.cpp v1050.cpp v6809.cpp vax11.cpp