summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2017-05-27 17:01:44 +0200
committer hap <happppp@users.noreply.github.com>2017-05-27 17:01:44 +0200
commita5592f94e0587799c2786bd8b0813dac8f77e201 (patch)
tree756710267063b5b47baca95e38727c33499fdb5c
parent7ab03402a3db2e4188cd8ef94e7e9979b2b63d43 (diff)
New working clone added
---------- Novag Constellation Forte (version A) [Berger]
-rw-r--r--src/mame/drivers/novag6502.cpp33
-rw-r--r--src/mame/mame.lst1
2 files changed, 22 insertions, 12 deletions
diff --git a/src/mame/drivers/novag6502.cpp b/src/mame/drivers/novag6502.cpp
index 04b4b295c8c..627571c1ce5 100644
--- a/src/mame/drivers/novag6502.cpp
+++ b/src/mame/drivers/novag6502.cpp
@@ -12,7 +12,7 @@
TODO:
- cforte ACIA?
- - verify supercon/cforte IRQ and beeper frequency
+ - verify supercon IRQ and beeper frequency
- sforte irq active time (21.5us is too long)
- sforte/sexpert led handling is correct?
- printer port
@@ -29,14 +29,13 @@ Super Constellation Chess Computer (model 844):
******************************************************************************
Constellation Forte:
-- 65C02 @ 5MHz
-- 4KB RAM, 64KB ROM
+- R65C02P4 @ 5MHz (10MHz XTAL)
+- 2*2KB RAM(NEC D449C-3), 2*32KB ROM(27C256)
- HLCD0538P, 10-digit 7seg LCD display
- TTL, 18 LEDs, 8*8 chessboard buttons
-When it was first added to MAME as skeleton driver in mmodular.c, this romset
-was assumed to be Super Forte B, but it definitely isn't. I/O is similar to
-Super Constellation, it's near-certainly a Constellation Forte B.
+When it was first added to MAME as skeleton driver in mmodular.c, cforteb romset
+was assumed to be Super Forte B, but it definitely isn't. I/O is similar to supercon.
******************************************************************************
@@ -61,6 +60,7 @@ instead of magnet sensors.
#include "bus/rs232/rs232.h"
#include "cpu/m6502/m6502.h"
#include "cpu/m6502/m65c02.h"
+#include "cpu/m6502/r65c02.h"
#include "machine/mos6551.h"
#include "machine/nvram.h"
#include "video/hlcd0538.h"
@@ -892,9 +892,11 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( cforte )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", M65C02, 5000000) // 5MHz
- MCFG_CPU_PERIODIC_INT_DRIVER(novag6502_state, irq0_line_hold, 256) // approximation
+ MCFG_CPU_ADD("maincpu", R65C02, XTAL_10MHz/2)
MCFG_CPU_PROGRAM_MAP(cforte_map)
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", novag6502_state, irq_on, attotime::from_hz(XTAL_32_768kHz/128)) // 256Hz
+ MCFG_TIMER_START_DELAY(attotime::from_hz(XTAL_32_768kHz/128) - attotime::from_usec(11)) // active for 11us
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", novag6502_state, irq_off, attotime::from_hz(XTAL_32_768kHz/128))
MCFG_NVRAM_ADD_1FILL("nvram")
@@ -907,7 +909,7 @@ static MACHINE_CONFIG_START( cforte )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("beeper", BEEP, 1024) // 1024Hz (measured from video reference)
+ MCFG_SOUND_ADD("beeper", BEEP, XTAL_32_768kHz/32) // 1024Hz
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
@@ -964,7 +966,7 @@ static MACHINE_CONFIG_DERIVED( sforte, sexpert )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(sforte_map)
MCFG_TIMER_MODIFY("irq_on")
- MCFG_TIMER_START_DELAY(attotime::from_hz(XTAL_32_768kHz/128) - attotime::from_usec(15)) // active for ?us
+ MCFG_TIMER_START_DELAY(attotime::from_hz(XTAL_32_768kHz/128) - attotime::from_usec(11)) // active for ?us (assume same as cforte)
MCFG_DEFAULT_LAYOUT(layout_novag_sforte)
MACHINE_CONFIG_END
@@ -982,8 +984,14 @@ ROM_START( supercon )
ROM_END
+ROM_START( cfortea )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD("a_903_l", 0x0000, 0x8000, CRC(01e7e306) SHA1(6a2b982bb0f412a63f5d3603958dd863e38669d9) ) // NEC D27C256AD-12
+ ROM_LOAD("a_903_h", 0x8000, 0x8000, CRC(c5a5573f) SHA1(7e11eb2f3d96bc41386a14a19635427a386ec1ec) ) // "
+ROM_END
+
ROM_START( cforteb )
- ROM_REGION( 0x18000, "maincpu", 0 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("forte_b_l.bin", 0x0000, 0x8000, CRC(e3d194a1) SHA1(80457580d7c57e07895fd14bfdaf14b30952afca) )
ROM_LOAD("forte_b_h.bin", 0x8000, 0x8000, CRC(dd824be8) SHA1(cd8666b6b525887f9fc48a730b71ceabcf07f3b9) )
ROM_END
@@ -1055,7 +1063,8 @@ ROM_END
// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
CONS( 1984, supercon, 0, 0, supercon, supercon, novag6502_state, 0, "Novag", "Super Constellation", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1986, cforteb, 0, 0, cforte, cforte, novag6502_state, 0, "Novag", "Constellation Forte (version B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1986, cfortea, 0, 0, cforte, cforte, novag6502_state, 0, "Novag", "Constellation Forte (version A)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1986, cforteb, cfortea, 0, cforte, cforte, novag6502_state, 0, "Novag", "Constellation Forte (version B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1987, sfortea, 0, 0, sforte, sforte, novag6502_state, sexpert, "Novag", "Super Forte (version A, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1987, sfortea1, sfortea, 0, sforte, sforte, novag6502_state, sexpert, "Novag", "Super Forte (version A, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 2edbc170976..1d86b97c397 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -29540,6 +29540,7 @@ raiders5 // UPL-85004 (c) 1985
raiders5t // UPL-85004 (c) 1985 Taito license
@source:novag6502.cpp
+cfortea //
cforteb //
sexperta //
sexpertb //