summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author Robbbert <Robbbert@users.noreply.github.com>2018-01-17 23:42:40 +1100
committer Robbbert <Robbbert@users.noreply.github.com>2018-01-17 23:42:40 +1100
commit414ec708d6bd9ce8fe65383133fbcf6ae8ce895b (patch)
treec670306800fcc22c4228d451cbb0a2009eef5e7a
parent489c124a3dd104f5f671e78ed1415167abcf2d46 (diff)
parent91ea7b5174254969c97145671167852fdd91bafb (diff)
Merge remote-tracking branch 'upstream/master'
-rw-r--r--src/devices/video/scn2674.cpp5
-rw-r--r--src/emu/drivers/xtal.h4
-rw-r--r--src/mame/drivers/cit220.cpp11
-rw-r--r--src/mame/drivers/funworld.cpp26
-rw-r--r--src/mame/drivers/microterm.cpp28
-rw-r--r--src/mame/drivers/tv912.cpp18
-rw-r--r--src/mame/mame.lst1
7 files changed, 72 insertions, 21 deletions
diff --git a/src/devices/video/scn2674.cpp b/src/devices/video/scn2674.cpp
index 8a3d1e5bf25..070cd82b3ab 100644
--- a/src/devices/video/scn2674.cpp
+++ b/src/devices/video/scn2674.cpp
@@ -287,7 +287,10 @@ void scn2674_device::write_init_regs(uint8_t data)
break;
}
- recompute_parameters();
+
+ // Don't reconfigure if the display isn't turned on (incomplete configurations may generate invalid screen parameters)
+ if (m_display_enabled)
+ recompute_parameters();
m_IR_pointer++;
if (m_IR_pointer>14)m_IR_pointer=14;
diff --git a/src/emu/drivers/xtal.h b/src/emu/drivers/xtal.h
index ed8cdec1c8d..497512c75d1 100644
--- a/src/emu/drivers/xtal.h
+++ b/src/emu/drivers/xtal.h
@@ -119,6 +119,7 @@ enum
XTAL_9_828MHz = 9828000, /* Universal PCBs */
XTAL_9_832MHz = 9832000, /* Robotron A7150 */
XTAL_9_8304MHz = 9830400, /* Epson PX-8 */
+ XTAL_9_87768MHz = 9877680, /* Microterm 420 */
XTAL_9_987MHz = 9987000, /* Crazy Balloon */
XTAL_10MHz = 10000000,
XTAL_10_245MHz = 10245000, /* PES Speech box */
@@ -198,7 +199,7 @@ enum
XTAL_17_9712MHz = 17971200,
XTAL_18MHz = 18000000, /* S.A.R, Ikari Warriors 3 */
XTAL_18_432MHz = 18432000, /* Extremely common, used on 100's of PCBs (48000 * 384) */
- XTAL_18_575MHz = 18575000, /* Visual 102 */
+ XTAL_18_575MHz = 18575000, /* Visual 102, Visual 220 */
XTAL_18_720MHz = 18720000, /* Nokia MikroMikko 1 */
XTAL_18_8696MHz = 18869600, /* Memorex 2178 */
XTAL_19_3396MHz = 19339600, /* TeleVideo TVI-955 80-column display clock */
@@ -248,6 +249,7 @@ enum
XTAL_27MHz = 27000000, /* Some Banpresto games macrossp, Irem M92 and 90's Toaplan games */
XTAL_27_164MHz = 27164000, /* Typically used on 90's Taito PCBs to drive the custom chips */
XTAL_27_2109MHz = 27210900, /* LA Girl */
+ XTAL_27_562MHz = 27562000, /* Visual 220 */
XTAL_28MHz = 28000000,
XTAL_28_322MHz = 28322000, /* Saitek RISC 2500, Mephisto Montreux */
XTAL_28_37516MHz = 28375160, /* Amiga PAL systems */
diff --git a/src/mame/drivers/cit220.cpp b/src/mame/drivers/cit220.cpp
index f06a3b92e7a..d66004fd350 100644
--- a/src/mame/drivers/cit220.cpp
+++ b/src/mame/drivers/cit220.cpp
@@ -79,16 +79,13 @@ static MACHINE_CONFIG_START( cit220p )
MCFG_I8085A_SOD(WRITELINE(cit220_state, sod_w))
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(720, 360)
- MCFG_SCREEN_VISIBLE_AREA(0, 720-1, 0, 360-1)
+ MCFG_SCREEN_RAW_PARAMS(24553200, 1580, 0, 1320, 259, 0, 240) // dot clock guessed
MCFG_SCREEN_UPDATE_DEVICE("avdc", scn2674_device, screen_update)
- MCFG_DEVICE_ADD("avdc", SCN2674, 4000000)
+ MCFG_DEVICE_ADD("avdc", SCN2674, 24553200 / 10)
MCFG_SCN2674_INTR_CALLBACK(INPUTLINE("maincpu", I8085_RST65_LINE))
- MCFG_SCN2674_TEXT_CHARACTER_WIDTH(8)
- MCFG_SCN2674_GFX_CHARACTER_WIDTH(8)
+ MCFG_SCN2674_TEXT_CHARACTER_WIDTH(10)
+ MCFG_SCN2674_GFX_CHARACTER_WIDTH(10)
MCFG_SCN2674_DRAW_CHARACTER_CALLBACK_OWNER(cit220_state, draw_character)
MCFG_DEVICE_ADDRESS_MAP(0, vram_map)
MCFG_VIDEO_SET_SCREEN("screen")
diff --git a/src/mame/drivers/funworld.cpp b/src/mame/drivers/funworld.cpp
index f6e07e18564..aeb9a93439b 100644
--- a/src/mame/drivers/funworld.cpp
+++ b/src/mame/drivers/funworld.cpp
@@ -3666,6 +3666,32 @@ ROM_END
Q is remote (x100)
W is payout.
+
+-------------------------------------
+
+ Complete specs:
+
+ 1x Empty CPU place (surely Rockwell 65C02 bitwise family)
+
+ 1x GI AY-3-8910 Sound Processor.
+
+ 2x Motorola MC68B21P for I/O.
+ 1x GoldStar GM68B45S CRTC.
+ 1x Altera EP910PC-40.
+
+ 1x KM6264AL-10
+ 1x Dallas DS1220Y nonvolatile SRAM.
+
+ 2x M27C512 (ROMs 6 & 7)
+ 1x MBM27256 (ROM 5)
+
+ 1x N82S147N Bipolar PROM (undumped)
+
+ 1x Xtal 16 MHz.
+ 1x 8 DIP Switches bank.
+ 1x Jamma edge connector.
+ 1x Unknown POT between two caps, maybe for sound amp stage.
+
*/
ROM_START( jolycdid ) /* Altera EP910PC CPLD */
ROM_REGION( 0x10000, "maincpu", 0 )
diff --git a/src/mame/drivers/microterm.cpp b/src/mame/drivers/microterm.cpp
index 77b5701c911..a2eba82f16e 100644
--- a/src/mame/drivers/microterm.cpp
+++ b/src/mame/drivers/microterm.cpp
@@ -23,6 +23,8 @@ public:
, m_p_chargen(*this, "chargen")
{ }
+ u32 mt5510_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
DECLARE_READ8_MEMBER(c000_r);
SCN2674_DRAW_CHARACTER_MEMBER(draw_character);
@@ -31,6 +33,11 @@ private:
optional_region_ptr<u8> m_p_chargen;
};
+u32 microterm_state::mt5510_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ return 0;
+}
+
READ8_MEMBER(microterm_state::c000_r)
{
return machine().rand() & 0x80;
@@ -48,7 +55,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mt420_io_map, AS_IO, 8, microterm_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xe0, 0xef) AM_DEVREADWRITE("duart", scn2681_device, read, write)
- AM_RANGE(0xf0, 0xf3) AM_DEVREADWRITE("asci", mc2661_device, read, write)
+ AM_RANGE(0xf0, 0xf3) AM_DEVREADWRITE("aci", mc2661_device, read, write)
ADDRESS_MAP_END
SCN2674_DRAW_CHARACTER_MEMBER(microterm_state::draw_character)
@@ -84,21 +91,20 @@ static MACHINE_CONFIG_START( mt420 )
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("eeprom", eeprom_serial_93cxx_device, cs_write)) MCFG_DEVCB_BIT(4)
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("eeprom", eeprom_serial_93cxx_device, clk_write)) MCFG_DEVCB_BIT(3)
- MCFG_DEVICE_ADD("asci", MC2661, XTAL_3_6864MHz) // SCN2641
+ MCFG_DEVICE_ADD("aci", MC2661, XTAL_3_6864MHz) // SCN2641
MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
MCFG_EEPROM_SERIAL_DO_CALLBACK(DEVWRITELINE("duart", scn2681_device, ip6_w))
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(720, 360)
- MCFG_SCREEN_VISIBLE_AREA(0, 720-1, 0, 360-1)
+ MCFG_SCREEN_RAW_PARAMS(XTAL_9_87768MHz, 612, 0, 480, 269, 0, 250)
+ //MCFG_SCREEN_RAW_PARAMS(XTAL_15_30072MHz, 948, 0, 792, 269, 0, 250)
MCFG_SCREEN_UPDATE_DEVICE("avdc", scn2674_device, screen_update)
- MCFG_DEVICE_ADD("avdc", SCN2674, 4000000)
- MCFG_SCN2674_TEXT_CHARACTER_WIDTH(8)
- MCFG_SCN2674_GFX_CHARACTER_WIDTH(8)
+ MCFG_DEVICE_ADD("avdc", SCN2674, XTAL_9_87768MHz / 6)
+ //MCFG_DEVICE_CLOCK(XTAL_15_30072MHz / 6)
+ MCFG_SCN2674_TEXT_CHARACTER_WIDTH(6)
+ MCFG_SCN2674_GFX_CHARACTER_WIDTH(6)
MCFG_SCN2674_DRAW_CHARACTER_CALLBACK_OWNER(microterm_state, draw_character)
MCFG_DEVICE_ADDRESS_MAP(0, mt420_vram_map)
MCFG_VIDEO_SET_SCREEN("screen")
@@ -123,6 +129,10 @@ static MACHINE_CONFIG_START( mt5510 )
MCFG_EEPROM_SERIAL_93C46_ADD("eeprom2")
MCFG_EEPROM_SERIAL_DO_CALLBACK(DEVWRITELINE("duart", scn2681_device, ip5_w))
+
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL_45_8304MHz / 2, 1120, 0, 960, 341, 0, 300) // wild guess at resolution
+ MCFG_SCREEN_UPDATE_DRIVER(microterm_state, mt5510_update)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/tv912.cpp b/src/mame/drivers/tv912.cpp
index ec53d76aab9..21e9069fcfd 100644
--- a/src/mame/drivers/tv912.cpp
+++ b/src/mame/drivers/tv912.cpp
@@ -49,6 +49,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map, AS_IO, 8, tv912_state )
ADDRESS_MAP_END
+static INPUT_PORTS_START( tv912b )
+INPUT_PORTS_END
+
static INPUT_PORTS_START( tv912c )
INPUT_PORTS_END
@@ -73,10 +76,19 @@ Other: 1x 8-sw DIP, 1x 10-sw DIP (internal), 2x 10-sw DIP (available to user at
ROM_START( tv912c )
ROM_REGION(0x1000, "maincpu", 0)
- ROM_LOAD( "a49c1.bin", 0x0000, 0x1000, CRC(d21851bf) SHA1(28fe77a218a5eee11de376f5d16e9380b616b3ca) BAD_DUMP ) // last half is all FF
+ ROM_LOAD( "a49c1.bin", 0x0000, 0x1000, CRC(40068371) SHA1(44c32f8c3980acebe28fa48f98479910af2eb4ae) ) // MM52132
+
+ ROM_REGION(0x0800, "chargen", 0)
+ ROM_LOAD( "a3-2.bin", 0x0000, 0x0800, CRC(bb9a7fbd) SHA1(5f1c4d41b25bd3ca4dbc336873362935daf283da) ) // EA8316
+ROM_END
+
+ROM_START( tv912b )
+ ROM_REGION(0x1000, "maincpu", 0)
+ ROM_LOAD( "televideo912b_rom_a49.bin", 0x0000, 0x1000, CRC(2c95e995) SHA1(77cda383d68b0bbbb783026d8fde679f10f9eded) ) // MM52132
ROM_REGION(0x0800, "chargen", 0)
- ROM_LOAD( "a3-2.bin", 0x0000, 0x0800, CRC(bb9a7fbd) SHA1(5f1c4d41b25bd3ca4dbc336873362935daf283da) )
+ ROM_LOAD( "televideo912b_rom_a3.bin", 0x0000, 0x0800, CRC(bb9a7fbd) SHA1(5f1c4d41b25bd3ca4dbc336873362935daf283da) ) // 2316E
ROM_END
-COMP( 1978, tv912c, 0, 0, tv912, tv912c, tv912_state, 0, "TeleVideo Systems", "TVI-912C", MACHINE_IS_SKELETON )
+COMP( 1978, tv912c, 0, 0, tv912, tv912c, tv912_state, 0, "TeleVideo Systems", "TVI-912C", MACHINE_IS_SKELETON )
+COMP( 1978, tv912b, tv912c, 0, tv912, tv912b, tv912_state, 0, "TeleVideo Systems", "TVI-912B", MACHINE_IS_SKELETON )
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 454440c714b..26405765549 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -37323,6 +37323,7 @@ tutor // 1983? Tomy Tutor
tv910 //
@source:tv912.cpp
+tv912b //
tv912c //
@source:tv950.cpp