From 23c11c7cb4e3bdeb0ec7f003239e573bc228ef4a Mon Sep 17 00:00:00 2001 From: hap Date: Fri, 22 Feb 2019 15:55:57 +0100 Subject: New working machine added ------------ Auto Response Board [hap, Berger] --- hash/arb.xml | 20 ++ scripts/target/mame/mess.lua | 1 + src/mame/drivers/ave_arb.cpp | 253 +++++++++++++++++++++ src/mame/drivers/cking_master.cpp | 11 +- src/mame/drivers/cxg_ch2001.cpp | 9 +- src/mame/drivers/fidel_as12.cpp | 9 +- src/mame/drivers/fidel_csc.cpp | 2 - src/mame/drivers/fidel_dames.cpp | 12 +- src/mame/drivers/fidel_desdis.cpp | 33 ++- src/mame/drivers/fidel_eag68k.cpp | 11 +- src/mame/drivers/fidel_elite.cpp | 20 +- src/mame/drivers/fidel_phantom.cpp | 15 +- src/mame/drivers/fidel_sc6.cpp | 2 +- src/mame/drivers/fidel_sc8.cpp | 11 +- src/mame/drivers/fidel_sc9.cpp | 21 +- src/mame/drivers/novag_cforte.cpp | 11 +- src/mame/drivers/novag_delta1.cpp | 9 +- src/mame/drivers/novag_diablo.cpp | 13 +- src/mame/drivers/novag_presto.cpp | 12 +- src/mame/drivers/novag_scon.cpp | 11 +- src/mame/drivers/novag_sexpert.cpp | 15 +- src/mame/includes/chessbase.h | 1 + src/mame/layout/ave_arb.lay | 437 +++++++++++++++++++++++++++++++++++++ src/mame/layout/fidel_pc.lay | 12 +- src/mame/machine/chessbase.cpp | 2 + src/mame/mame.lst | 3 + src/mame/mess.flt | 1 + 27 files changed, 828 insertions(+), 129 deletions(-) create mode 100644 hash/arb.xml create mode 100644 src/mame/drivers/ave_arb.cpp create mode 100644 src/mame/layout/ave_arb.lay diff --git a/hash/arb.xml b/hash/arb.xml new file mode 100644 index 00000000000..cffff250ce9 --- /dev/null +++ b/hash/arb.xml @@ -0,0 +1,20 @@ + + + + + + + + + Sargon 2.5 + 1980 + AVE Micro Systems + + + + + + + + + diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 8d1a978011f..32250e76ec3 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -1836,6 +1836,7 @@ createMESSProjects(_target, _subtarget, "chess") files { MAME_DIR .. "src/mame/machine/chessbase.cpp", MAME_DIR .. "src/mame/includes/chessbase.h", + MAME_DIR .. "src/mame/drivers/ave_arb.cpp", MAME_DIR .. "src/mame/drivers/cking_master.cpp", MAME_DIR .. "src/mame/drivers/cxg_ch2001.cpp", diff --git a/src/mame/drivers/ave_arb.cpp b/src/mame/drivers/ave_arb.cpp new file mode 100644 index 00000000000..2fbd03fb2b6 --- /dev/null +++ b/src/mame/drivers/ave_arb.cpp @@ -0,0 +1,253 @@ +// license:BSD-3-Clause +// copyright-holders:hap +// thanks-to:Berger +/****************************************************************************** +* +* ave_arb.cpp, subdriver of machine/chessbase.cpp + +AVE Micro Systems ARB chess computer driver, in some regions redistributed +by Chafitz, and in Germany by Sandy Electronic. + +******************************************************************************* + +Auto Response Board (ARB) overview: +- R6502P CPU @ 2MHz(4MHz XTAL), R6522P VIA +- 2KB RAM(4*2114), cartridge port +- magnetic chessboard, 8*8+12 leds +- PCB label AV001C01 REV A + +The electronic magnetic chessboard is the first of is kind. AVE later licensed +it to Fidelity (see fidel_elite.cpp). +ARB is a romless system, the program ROM is on a cartridge. + +Known modules (*denotes not dumped yet): +- Sargon 2.5 +- *Grand Master Series 3 +- *Grand Master Series 3.5 +- *Grand Master Series 4.0 + +Newer modules included button label stickers for OPTIONS, Verify, Take Back, Clear. + +******************************************************************************/ + +#include "emu.h" +#include "includes/chessbase.h" + +#include "cpu/m6502/m6502.h" +#include "machine/6522via.h" +#include "machine/nvram.h" +#include "sound/dac.h" +#include "sound/volt_reg.h" +#include "speaker.h" +#include "bus/generic/slot.h" +#include "bus/generic/carts.h" +#include "softlist.h" + +// internal artwork +#include "ave_arb.lh" // clickable + + +namespace { + +class arb_state : public chessbase_state +{ +public: + arb_state(const machine_config &mconfig, device_type type, const char *tag) : + chessbase_state(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_via(*this, "via"), + m_dac(*this, "dac"), + m_cart(*this, "cartslot") + { } + + // halt button is tied to NMI, reset button to RESET(but only if halt button is held) + DECLARE_INPUT_CHANGED_MEMBER(reset_button) { m_maincpu->set_input_line(INPUT_LINE_RESET, (newval && m_inp_matrix[9]->read() & 2) ? ASSERT_LINE : CLEAR_LINE); } + DECLARE_INPUT_CHANGED_MEMBER(halt_button) { m_maincpu->set_input_line(M6502_NMI_LINE, newval ? ASSERT_LINE : CLEAR_LINE); } + + // machine drivers + void arb(machine_config &config); + +private: + // devices/pointers + required_device m_maincpu; + required_device m_via; + required_device m_dac; + required_device m_cart; + + // address maps + void main_map(address_map &map); + + // cartridge + DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cartridge); + DECLARE_READ8_MEMBER(cartridge_r); + u32 m_cart_mask; + + // I/O handlers + void prepare_display(); + DECLARE_WRITE8_MEMBER(leds_w); + DECLARE_WRITE8_MEMBER(control_w); + DECLARE_READ8_MEMBER(input_r); +}; + + +/****************************************************************************** + Devices, I/O +******************************************************************************/ + +// cartridge + +DEVICE_IMAGE_LOAD_MEMBER(arb_state, cartridge) +{ + u32 size = m_cart->common_get_size("rom"); + m_cart_mask = ((1 << (31 - count_leading_zeros(size))) - 1) & 0x7fff; + + m_cart->rom_alloc(size, GENERIC_ROM8_WIDTH, ENDIANNESS_LITTLE); + m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom"); + + return image_init_result::PASS; +} + +READ8_MEMBER(arb_state::cartridge_r) +{ + // range is 0x4000-0x7fff + 0xc000-0xffff + if (offset >= 0x8000) + offset -= 0x4000; + + return m_cart->read_rom(offset & m_cart_mask); +} + + +// R6522 ports + +void arb_state::prepare_display() +{ + // 12 led column data lines via 3 7475 + u16 mask = 0; + mask |= (m_led_select & 1) ? 0xf00 : 0; + mask |= (m_led_select & 2) ? 0x0ff : 0; + + m_led_data = (m_led_data & ~mask) | ((m_led_latch << 8 | m_led_latch) & mask); + display_matrix(12, 9+1, m_led_data, m_inp_mux | 0x200); +} + +WRITE8_MEMBER(arb_state::leds_w) +{ + // PA0-PA7: led latch input + m_led_latch = ~data & 0xff; + prepare_display(); +} + +WRITE8_MEMBER(arb_state::control_w) +{ + // PB0-PB3: 74145 A-D + // 74145 0-8: input mux, led row select + m_inp_mux = 1 << (data & 0xf) & 0x1ff; + + // PB4,PB5: led group select + m_led_select = data >> 4 & 3; + prepare_display(); + + // PB7: speaker out + m_dac->write(BIT(data, 7)); +} + +READ8_MEMBER(arb_state::input_r) +{ + // PA0-PA7: multiplexed inputs + return ~read_inputs(9); +} + + + +/****************************************************************************** + Address Maps +******************************************************************************/ + +void arb_state::main_map(address_map &map) +{ + map(0x0000, 0x07ff).mirror(0x3800).ram().share("nvram"); + map(0x4000, 0xffff).r(FUNC(arb_state::cartridge_r)); // gap in 0x8000-0xbfff + map(0x8000, 0x800f).mirror(0x3ff0).rw(m_via, FUNC(via6522_device::read), FUNC(via6522_device::write)); +} + + + +/****************************************************************************** + Input Ports +******************************************************************************/ + +static INPUT_PORTS_START( arb ) + PORT_INCLUDE( generic_cb_magnets ) + + PORT_START("IN.8") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_7) PORT_NAME("Hint / Black") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_V) PORT_CODE(KEYCODE_6) PORT_NAME("Variable / Clear / White / 6") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_CODE(KEYCODE_5) PORT_NAME("Monitor / Take Back / King / 5") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_CODE(KEYCODE_4) PORT_NAME("Self Play / Verify / Queen / 4") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_3) PORT_NAME("Change Board / Rook / 3") + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_2) PORT_NAME("Change Color / Bishop / 2") + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_CODE(KEYCODE_1) PORT_NAME("Change Level / Knight / 1") + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_CODE(KEYCODE_0) PORT_NAME("New Game / Options / Pawn / 0") + + PORT_START("IN.9") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("Reset") PORT_CHANGED_MEMBER(DEVICE_SELF, arb_state, reset_button, nullptr) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("Halt") PORT_CHANGED_MEMBER(DEVICE_SELF, arb_state, halt_button, nullptr) +INPUT_PORTS_END + + + +/****************************************************************************** + Machine Drivers +******************************************************************************/ + +void arb_state::arb(machine_config &config) +{ + /* basic machine hardware */ + M6502(config, m_maincpu, 4_MHz_XTAL/2); + m_maincpu->set_addrmap(AS_PROGRAM, &arb_state::main_map); + + VIA6522(config, m_via, 4_MHz_XTAL/4); + m_via->writepa_handler().set(FUNC(arb_state::leds_w)); + m_via->writepb_handler().set(FUNC(arb_state::control_w)); + m_via->readpa_handler().set(FUNC(arb_state::input_r)); + m_via->irq_handler().set_inputline(m_maincpu, M6502_IRQ_LINE); + + NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); + + TIMER(config, "display_decay").configure_periodic(FUNC(arb_state::display_decay_tick), attotime::from_msec(1)); + config.set_default_layout(layout_ave_arb); + + /* sound hardware */ + SPEAKER(config, "speaker").front_center(); + DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); + VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); + + /* cartridge */ + generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "arb", "bin")); + cartslot.set_device_load(device_image_load_delegate(&arb_state::device_image_load_cartridge, this)); + cartslot.set_must_be_loaded(true); + + SOFTWARE_LIST(config, "cart_list").set_original("arb"); +} + + + +/****************************************************************************** + ROM Definitions +******************************************************************************/ + +ROM_START( arb ) + ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) + // none here, it's in the module slot +ROM_END + +} // anonymous namespace + + + +/****************************************************************************** + Drivers +******************************************************************************/ + +/* YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS */ +CONS( 1980, arb, 0, 0, arb, arb, arb_state, empty_init, "AVE Micro Systems", "Auto Response Board", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) diff --git a/src/mame/drivers/cking_master.cpp b/src/mame/drivers/cking_master.cpp index c4ddc300d0f..3de15ba8803 100644 --- a/src/mame/drivers/cking_master.cpp +++ b/src/mame/drivers/cking_master.cpp @@ -12,12 +12,11 @@ TODO: ******************************************************************************* -Chess King Master (yes, it's plainly named "Master") ---------------- -Z80 CPU(NEC D780C-1) @ 4MHz(8MHz XTAL), IRQ from 555 timer -8KB ROM(NEC D2764C-3), 2KB RAM(NEC D4016C), ROM is scrambled for easy PCB placement -simple I/O via 2*74373 and a 74145 -8*8 chessboard buttons, 32+1 border leds, piezo +Chess King Master overview (yes, it's plainly named "Master"): +- Z80 CPU(NEC D780C-1) @ 4MHz(8MHz XTAL), IRQ from 555 timer +- 8KB ROM(NEC D2764C-3), 2KB RAM(NEC D4016C), ROM is scrambled for easy PCB placement +- simple I/O via 2*74373 and a 74145 +- 8*8 chessboard buttons, 32+1 border leds, piezo ******************************************************************************/ diff --git a/src/mame/drivers/cxg_ch2001.cpp b/src/mame/drivers/cxg_ch2001.cpp index 84a464c57f1..047f0112143 100644 --- a/src/mame/drivers/cxg_ch2001.cpp +++ b/src/mame/drivers/cxg_ch2001.cpp @@ -7,11 +7,10 @@ ******************************************************************************* -CXG Chess 2001 --------------- -Zilog Z8400APS @ 4 MHz (8MHz XTAL) -2KB RAM HM6116, 16KB ROM D27128D -TTL, piezo, 8*8+9 LEDs, magnetic sensors +CXG Chess 2001 overview: +- Zilog Z8400APS @ 4 MHz (8MHz XTAL) +- 2KB RAM HM6116, 16KB ROM D27128D +- TTL, piezo, 8*8+9 LEDs, magnetic sensors ******************************************************************************/ diff --git a/src/mame/drivers/fidel_as12.cpp b/src/mame/drivers/fidel_as12.cpp index f81bed38c9c..02c6a15463d 100644 --- a/src/mame/drivers/fidel_as12.cpp +++ b/src/mame/drivers/fidel_as12.cpp @@ -7,11 +7,10 @@ ******************************************************************************* -Fidelity Elegance Chess Challenger (AS12) ----------------- -R65C02P4 CPU @ 4MHz -3*8KB ROM(TMM2764), 2*2KB RAM(HM6116) -PCB label 510-1084B01 +Fidelity Elegance Chess Challenger (AS12) overview: +- R65C02P4 CPU @ 4MHz +- 3*8KB ROM(TMM2764), 2*2KB RAM(HM6116) +- PCB label 510-1084B01 This is on the SC12B board, with enough modifications to support more leds and magnetic chess board sensors. See fidel_sc12.cpp for a more technical description. diff --git a/src/mame/drivers/fidel_csc.cpp b/src/mame/drivers/fidel_csc.cpp index f327d6f5009..246a8c383a1 100644 --- a/src/mame/drivers/fidel_csc.cpp +++ b/src/mame/drivers/fidel_csc.cpp @@ -154,7 +154,6 @@ Super 9 Sensory Chess Challenger (SU9/DS9) This is basically the Fidelity Elite A/S program on CSC hardware. Model DS9(Deluxe) has a 5MHz XTAL, but is otherwise same. --------------------------------- - R6502AP CPU, 1.95MHz(3.9MHz resonator) 2 RAM chips, assume 4KB 2*8KB ROM + 1*2KB ROM @@ -168,7 +167,6 @@ Reversi Sensory Challenger (RSC) The 1st version came out in 1980, a program revision was released in 1981. Another distinction is the board color and layout, the 1981 version is green. --------------------------------- - 8*(8+1) buttons, 8*8+1 LEDs 1KB RAM(2*2114), 4KB ROM MOS MPS 6502B CPU, frequency unknown diff --git a/src/mame/drivers/fidel_dames.cpp b/src/mame/drivers/fidel_dames.cpp index b8d33c819b3..083a0fbb8c6 100644 --- a/src/mame/drivers/fidel_dames.cpp +++ b/src/mame/drivers/fidel_dames.cpp @@ -7,13 +7,13 @@ ******************************************************************************* -Fidelity Dame Sensory Challenger (DSC) +Fidelity Dame Sensory Challenger (DSC) overview: +- Z80A CPU @ 3.9MHz +- 8KB ROM(MOS 2364), 1KB RAM(2*TMM314APL) +- 4-digit 7seg panel, sensory board with 50 buttons +- PCB label 510-1030A01 + It's a checkers game for once instead of chess ---------------- -Z80A CPU @ 3.9MHz -8KB ROM(MOS 2364), 1KB RAM(2*TMM314APL) -4-digit 7seg panel, sensory board with 50 buttons -PCB label 510-1030A01 ******************************************************************************/ diff --git a/src/mame/drivers/fidel_desdis.cpp b/src/mame/drivers/fidel_desdis.cpp index fde3d26474b..ff2b7893c41 100644 --- a/src/mame/drivers/fidel_desdis.cpp +++ b/src/mame/drivers/fidel_desdis.cpp @@ -10,33 +10,30 @@ Fidelity Designer Display series, 6502 and 68000 ******************************************************************************* -Designer 2100 Display (model 6106) ----------------- -8KB RAM(MS6264L-10), 2*32KB ROM(27C256) -WDC W65C02P-6 CPU, 6MHz XTAL -4-digit LCD panel -PCB label 510.1130A01 +Designer 2100 Display (model 6106) overview: +- 8KB RAM(MS6264L-10), 2*32KB ROM(27C256) +- WDC W65C02P-6 CPU, 6MHz XTAL +- 4-digit LCD panel +- PCB label 510.1130A01 Designer 2000 Display (model 6105): same hardware, no bookrom, 3MHz ******************************************************************************* -Designer Mach III Master 2265 (model 6113) ------------------------------------------- -80KB RAM(2*KM6264AL-10, 2*KM62256AP-10), 64KB ROM(2*WSI 27C256L-12) -MC68HC000P12F CPU, 16MHz XTAL -IRQ(IPL2) from 555 timer, 1.67ms low, 6us high -PCB label 510.1134A02 +Designer Mach III Master 2265 (model 6113) overview: +- 80KB RAM(2*KM6264AL-10, 2*KM62256AP-10), 64KB ROM(2*WSI 27C256L-12) +- MC68HC000P12F CPU, 16MHz XTAL +- IRQ(IPL2) from 555 timer, 1.67ms low, 6us high +- PCB label 510.1134A02 ROM address/data lines are scrambled, presumed for easy placement on PCB and not for obfuscation. I/O is nearly the same as Designer Display on 6502 hardware. -Designer Mach IV Master 2325 (model 6129) ------------------------------------------ -32KB(4*P5164-70) + 512KB(TC518512PL-80) RAM, 64KB ROM(TMS 27C512-120JL) -MC68EC020RP25 CPU, 20MHz XTAL -PCB label 510.1149A01 -It has a green "Shift" led instead of red, and ROM is not scrambled. +Designer Mach IV Master 2325 (model 6129) overview: +- 32KB(4*P5164-70) + 512KB(TC518512PL-80) RAM, 64KB ROM(TMS 27C512-120JL) +- MC68EC020RP25 CPU, 20MHz XTAL +- PCB label 510.1149A01 +- It has a green "Shift" led instead of red, and ROM is not scrambled. ******************************************************************************/ diff --git a/src/mame/drivers/fidel_eag68k.cpp b/src/mame/drivers/fidel_eag68k.cpp index 08a0c3e2de8..a143ca957de 100644 --- a/src/mame/drivers/fidel_eag68k.cpp +++ b/src/mame/drivers/fidel_eag68k.cpp @@ -20,12 +20,11 @@ TODO: ******************************************************************************* -Excel 68000 (model 6094) ------------------------- -16KB RAM(2*SRM2264C-10 @ U8/U9), 64KB ROM(2*AT27C256-15DC @ U6/U7) -HD68HC000P12 CPU, 12MHz XTAL -PCB label 510-1129A01 -PCB has edge connector for module, but no external slot +Excel 68000 (model 6094) overview: +- 16KB RAM(2*SRM2264C-10 @ U8/U9), 64KB ROM(2*AT27C256-15DC @ U6/U7) +- HD68HC000P12 CPU, 12MHz XTAL +- PCB label 510-1129A01 +- PCB has edge connector for module, but no external slot There's room for 2 SIMMs at U22 and U23, unpopulated in Excel 68000 and Mach III. Mach II has 2*64KB DRAM with a MB1422A DRAM controller @ 25MHz. diff --git a/src/mame/drivers/fidel_elite.cpp b/src/mame/drivers/fidel_elite.cpp index 633b063afbe..31a8f4a340c 100644 --- a/src/mame/drivers/fidel_elite.cpp +++ b/src/mame/drivers/fidel_elite.cpp @@ -16,15 +16,16 @@ This came out in 1982. 2 program updates were released in 1983 and 1984, named Budapest and Glasgow, places where Fidelity won chess computer matches. A/S stands for auto sensory, it's the 1st Fidelity board with magnet sensors. The magnetic chessboard was licensed from AVE Micro Systems, in fact it's the -exact same one as in AVE's ARB. +exact same one as in AVE's ARB (ave_arb.cpp driver). -8*8 magnet sensors, 11 buttons, 8*(8+1) LEDs + 4*7seg LEDs -R65C02P4 or R6502BP CPU, default frequency 3MHz* -4KB RAM (2*HM6116), 24KB ROM -TSI S14001A + speech ROM -I/O with 8255 PPI and bunch of TTL -module slot and printer port -PCB label 510-1071A01 +hardware overview: +- 8*8 magnet sensors, 11 buttons, 8*(8+1) LEDs + 4*7seg LEDs +- R65C02P4 or R6502BP CPU, default frequency 3MHz* +- 4KB RAM (2*HM6116), 24KB ROM +- TSI S14001A + speech ROM +- I/O with 8255 PPI and bunch of TTL +- module slot and printer port +- PCB label 510-1071A01 *It was advertised as 3.2, 3.6, or 4MHz, with unofficial modifications up to 8MHz. PCB photos show only a 3MHz XTAL. @@ -35,7 +36,8 @@ Elite Avant Garde (models 6081,6088,6089) is on the same hardware. Prestige Challenger (PC) hardware is very similar. They stripped the 8255 PPI, and added more RAM(7*TMM2016P). Some were released at 3.6MHz instead of 4MHz, -perhaps due to hardware instability? +perhaps due to hardware instability? Opening module PC16 was included by default, +this module is the same as CB16 but at different form factor. ******************************************************************************/ diff --git a/src/mame/drivers/fidel_phantom.cpp b/src/mame/drivers/fidel_phantom.cpp index 6d309e4ef3f..f1862aa5c57 100644 --- a/src/mame/drivers/fidel_phantom.cpp +++ b/src/mame/drivers/fidel_phantom.cpp @@ -14,14 +14,13 @@ their own version. It has a small LCD panel added, the rest looks nearly the sam the outside. After Fidelity was taken over by H&G, it was rereleased in 1990 as the Mephisto Phantom. This is assumed to be identical. -Phantom (model 6100) ----------------- -R65C02P4, XTAL marked 4.91?200 -2*32KB ROM 27C256-15, 8KB RAM MS6264L-10 -LCD driver, display panel for digits -magnetized x/y motor under chessboard, chesspieces have magnet underneath -piezo speaker, LEDs, 8*8 chessboard buttons -PCB label 510.1128A01 +Fidelity Phantom (model 6100) overview: +- R65C02P4, XTAL marked 4.91?200 +- 2*32KB ROM 27C256-15, 8KB RAM MS6264L-10 +- LCD driver, display panel for digits +- magnetized x/y motor under chessboard, chesspieces have magnet underneath +- piezo speaker, LEDs, 8*8 chessboard buttons +- PCB label 510.1128A01 ******************************************************************************/ diff --git a/src/mame/drivers/fidel_sc6.cpp b/src/mame/drivers/fidel_sc6.cpp index 33a100cae14..928350a4d4e 100644 --- a/src/mame/drivers/fidel_sc6.cpp +++ b/src/mame/drivers/fidel_sc6.cpp @@ -7,7 +7,7 @@ ******************************************************************************* -Fidelity Sensory Chess Challenger 6 (model SC6): +Fidelity Sensory Chess Challenger 6 (model SC6) overview: - PCB label 510-1045B01 - INS8040N-11 MCU, 11MHz XTAL - external 4KB ROM 2332 101-1035A01, in module slot diff --git a/src/mame/drivers/fidel_sc8.cpp b/src/mame/drivers/fidel_sc8.cpp index 362f5c72d1e..2e03a0458a4 100644 --- a/src/mame/drivers/fidel_sc8.cpp +++ b/src/mame/drivers/fidel_sc8.cpp @@ -7,12 +7,11 @@ ******************************************************************************* -Fidelity Sensory Chess Challenger 8 ---------------- -Z80A CPU @ 3.9MHz -4KB ROM(MOS 2732), 256 bytes RAM(35391CP) -chessboard buttons, 8*8+1 leds -PCB label 510-1011 REV.2 +Fidelity Sensory Chess Challenger 8 overview: +- Z80A CPU @ 3.9MHz +- 4KB ROM(MOS 2732), 256 bytes RAM(35391CP) +- chessboard buttons, 8*8+1 leds +- PCB label 510-1011 REV.2 ******************************************************************************/ diff --git a/src/mame/drivers/fidel_sc9.cpp b/src/mame/drivers/fidel_sc9.cpp index 3931fa00e5d..a6bf8440f9d 100644 --- a/src/mame/drivers/fidel_sc9.cpp +++ b/src/mame/drivers/fidel_sc9.cpp @@ -7,23 +7,22 @@ ******************************************************************************* -Fidelity Sensory Chess Challenger "9" (SC9) -3 versions were available, the newest "B" version was 2MHz and included the Budapest program. -The Playmatic S was only released in Germany, it's basically a 'deluxe' version of SC9 -with magnet sensors and came with CB9 and CB16. ---------------------------------- - -8*(8+1) buttons, 8*8+1 LEDs -36-pin edge connector, assume same as SC12 -2KB RAM(TMM2016P), 2*8KB ROM(HN48364P) -R6502-13, 1.4MHz from resonator, another pcb with the same resonator was measured 1.49MHz* -PCB label 510-1046C01 2-1-82 +Fidelity Sensory Chess Challenger "9" (SC9) overview: +- 8*(8+1) buttons, 8*8+1 LEDs +- 36-pin edge connector, assume same as SC12 +- 2KB RAM(TMM2016P), 2*8KB ROM(HN48364P) +- R6502-13, 1.4MHz from resonator, another pcb with the same resonator was measured 1.49MHz* +- PCB label 510-1046C01 2-1-82 *: 2 other boards were measured 1.60MHz and 1.88MHz(newest serial). Online references suggest 3 versions of SC9(C01) total: 1.5MHz, 1.6MHz, and 1.9MHz. I/O is via TTL, not further documented here +3 versions were available, the newest "B" version was 2MHz and included the Budapest program. +The Playmatic S was only released in Germany, it's basically a 'deluxe' version of SC9 +with magnet sensors and came with CB9 and CB16. + ******************************************************************************/ #include "emu.h" diff --git a/src/mame/drivers/novag_cforte.cpp b/src/mame/drivers/novag_cforte.cpp index ab4d980501d..e17b7407b67 100644 --- a/src/mame/drivers/novag_cforte.cpp +++ b/src/mame/drivers/novag_cforte.cpp @@ -10,12 +10,11 @@ TODO: ******************************************************************************* -Novag Constellation Forte -------------------------- -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 +Novag Constellation Forte overview: +- 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 I/O is similar to supercon diff --git a/src/mame/drivers/novag_delta1.cpp b/src/mame/drivers/novag_delta1.cpp index 30e6e0880ec..e5c408288be 100644 --- a/src/mame/drivers/novag_delta1.cpp +++ b/src/mame/drivers/novag_delta1.cpp @@ -11,11 +11,10 @@ TODO: ******************************************************************************* -Novag Delta-1 -------------- -3850PK CPU at ~2MHz, 3853PK memory interface -4KB ROM(2332A), 256 bytes RAM(2*2111A-4) -4-digit 7seg panel, no sound, no chessboard +Novag Delta-1 overview: +- 3850PK CPU at ~2MHz, 3853PK memory interface +- 4KB ROM(2332A), 256 bytes RAM(2*2111A-4) +- 4-digit 7seg panel, no sound, no chessboard ******************************************************************************/ diff --git a/src/mame/drivers/novag_diablo.cpp b/src/mame/drivers/novag_diablo.cpp index b9b4c619e4e..de7300eb47b 100644 --- a/src/mame/drivers/novag_diablo.cpp +++ b/src/mame/drivers/novag_diablo.cpp @@ -10,13 +10,12 @@ TODO: ******************************************************************************* -Diablo 68000 ----------------- -M68000 @ 16MHz, IPL1 256Hz, IPL2 from ACIA IRQ(always high) -2*8KB RAM TC5565 battery-backed, 2*32KB hashtable RAM TC55257 3*32KB ROM -HD44780 LCD controller (16x1) -R65C51P2 ACIA @ 1.8432MHz, RS232 -magnetic sensors, 8*8 chessboard leds +Novag Diablo 68000 overview: +- M68000 @ 16MHz, IPL1 256Hz, IPL2 from ACIA IRQ(always high) +- 2*8KB RAM TC5565 battery-backed, 2*32KB hashtable RAM TC55257 3*32KB ROM +- HD44780 LCD controller (16x1) +- R65C51P2 ACIA @ 1.8432MHz, RS232 +- magnetic sensors, 8*8 chessboard leds Scorpio 68000 hardware is very similar, but with chessboard buttons and side leds. diff --git a/src/mame/drivers/novag_presto.cpp b/src/mame/drivers/novag_presto.cpp index 5be27248284..bb0522d9fa9 100644 --- a/src/mame/drivers/novag_presto.cpp +++ b/src/mame/drivers/novag_presto.cpp @@ -11,15 +11,11 @@ TODO: ******************************************************************************* -Presto ----------- -NEC D80C49C MCU(serial 186), OSC from LC circuit measured ~6MHz -buzzer, 16+4 LEDs, 8*8 chessboard buttons - -Octo ----------- -NEC D80C49HC MCU(serial 111), OSC from LC circuit measured ~12MHz +Novag Presto overview: +- NEC D80C49C MCU(serial 186), OSC from LC circuit measured ~6MHz +- buzzer, 16+4 LEDs, 8*8 chessboard buttons +Octo has a NEC D80C49HC MCU(serial 111), OSC from LC circuit measured ~12MHz The buzzer has a little electronic circuit going on, not sure whatfor. Otherwise, it's identical to Presto. The MCU internal ROM is same too. diff --git a/src/mame/drivers/novag_scon.cpp b/src/mame/drivers/novag_scon.cpp index 78370a3a23d..b4b3ee4772f 100644 --- a/src/mame/drivers/novag_scon.cpp +++ b/src/mame/drivers/novag_scon.cpp @@ -9,12 +9,11 @@ TODO: ******************************************************************************* -Novag Super Constellation Chess Computer (model 844) --------------------- -UMC UM6502C @ 4 MHz (8MHz XTAL), 600Hz? IRQ(source unknown?) -2*2KB RAM TC5516APL-2 battery-backed, 2*32KB ROM custom label -TTL, buzzer, 24 LEDs, 8*8 chessboard buttons -external ports for clock and printer, not emulated here +Novag Super Constellation Chess Computer (model 844) overview: +- UMC UM6502C @ 4 MHz (8MHz XTAL), 600Hz? IRQ(source unknown?) +- 2*2KB RAM TC5516APL-2 battery-backed, 2*32KB ROM custom label +- TTL, buzzer, 24 LEDs, 8*8 chessboard buttons +- external ports for clock and printer, not emulated here ******************************************************************************/ diff --git a/src/mame/drivers/novag_sexpert.cpp b/src/mame/drivers/novag_sexpert.cpp index 8995f84ad0a..1083e4f0440 100644 --- a/src/mame/drivers/novag_sexpert.cpp +++ b/src/mame/drivers/novag_sexpert.cpp @@ -11,14 +11,13 @@ TODO: ******************************************************************************* -Novag Super Expert (model 878/887/902): --------------------- -65C02 @ 5MHz or 6MHz (10MHz or 12MHz XTAL) -8KB RAM battery-backed, 3*32KB ROM -HD44780 LCD controller (16x1) -beeper(32KHz/32), IRQ(32KHz/128) via MC14060 -optional R65C51P2 ACIA @ 1.8432MHz, for IBM PC interface (only works in version C?) -printer port, magnetic sensors, 8*8 chessboard leds +Novag Super Expert (model 878/887/902) overview: +- 65C02 @ 5MHz or 6MHz (10MHz or 12MHz XTAL) +- 8KB RAM battery-backed, 3*32KB ROM +- HD44780 LCD controller (16x1) +- beeper(32KHz/32), IRQ(32KHz/128) via MC14060 +- optional R65C51P2 ACIA @ 1.8432MHz, for IBM PC interface (only works in version C?) +- printer port, magnetic sensors, 8*8 chessboard leds I/O via TTL, hardware design was very awkward. diff --git a/src/mame/includes/chessbase.h b/src/mame/includes/chessbase.h index 209abf998f8..b02c0c04bd3 100644 --- a/src/mame/includes/chessbase.h +++ b/src/mame/includes/chessbase.h @@ -39,6 +39,7 @@ protected: u16 m_inp_mux; // multiplexed keypad/leds mask u16 m_led_select; u16 m_led_data; + u16 m_led_latch; u32 m_7seg_data; // data for seg leds u16 read_inputs(int columns); diff --git a/src/mame/layout/ave_arb.lay b/src/mame/layout/ave_arb.lay new file mode 100644 index 00000000000..6a3c9a4c502 --- /dev/null +++ b/src/mame/layout/ave_arb.lay @@ -0,0 +1,437 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/layout/fidel_pc.lay b/src/mame/layout/fidel_pc.lay index 9531446bc56..5750625e5c2 100644 --- a/src/mame/layout/fidel_pc.lay +++ b/src/mame/layout/fidel_pc.lay @@ -362,12 +362,12 @@ - - - - - - + + + + + + diff --git a/src/mame/machine/chessbase.cpp b/src/mame/machine/chessbase.cpp index 85453f3c785..4515e632e28 100644 --- a/src/mame/machine/chessbase.cpp +++ b/src/mame/machine/chessbase.cpp @@ -34,6 +34,7 @@ void chessbase_state::machine_start() m_inp_mux = 0; m_led_select = 0; m_led_data = 0; + m_led_latch = 0; m_7seg_data = 0; // register for savestates @@ -48,6 +49,7 @@ void chessbase_state::machine_start() save_item(NAME(m_inp_mux)); save_item(NAME(m_led_select)); save_item(NAME(m_led_data)); + save_item(NAME(m_led_latch)); save_item(NAME(m_7seg_data)); } diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 6a954e3bd67..ba785bacd91 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -2712,6 +2712,9 @@ avalnche // 030574 1978/04 [6502] cascade // bootleg catchp // 008837 prototype 1977/?? [6502] +@source:ave_arb.cpp +arb // + @source:avigo.cpp avigo // 1997 Avigo avigo_de // 1997 Avigo (German) diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 33c046f0927..9b3cc83f400 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -80,6 +80,7 @@ att4425.cpp att630.cpp attache.cpp aussiebyte.cpp +ave_arb.cpp avigo.cpp ax20.cpp b16.cpp -- cgit v1.2.3