summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/ave_arb.cpp253
-rw-r--r--src/mame/drivers/cking_master.cpp11
-rw-r--r--src/mame/drivers/cxg_ch2001.cpp9
-rw-r--r--src/mame/drivers/fidel_as12.cpp9
-rw-r--r--src/mame/drivers/fidel_csc.cpp2
-rw-r--r--src/mame/drivers/fidel_dames.cpp12
-rw-r--r--src/mame/drivers/fidel_desdis.cpp33
-rw-r--r--src/mame/drivers/fidel_eag68k.cpp11
-rw-r--r--src/mame/drivers/fidel_elite.cpp20
-rw-r--r--src/mame/drivers/fidel_phantom.cpp15
-rw-r--r--src/mame/drivers/fidel_sc6.cpp2
-rw-r--r--src/mame/drivers/fidel_sc8.cpp11
-rw-r--r--src/mame/drivers/fidel_sc9.cpp21
-rw-r--r--src/mame/drivers/novag_cforte.cpp11
-rw-r--r--src/mame/drivers/novag_delta1.cpp9
-rw-r--r--src/mame/drivers/novag_diablo.cpp13
-rw-r--r--src/mame/drivers/novag_presto.cpp12
-rw-r--r--src/mame/drivers/novag_scon.cpp11
-rw-r--r--src/mame/drivers/novag_sexpert.cpp15
-rw-r--r--src/mame/includes/chessbase.h1
-rw-r--r--src/mame/layout/ave_arb.lay437
-rw-r--r--src/mame/layout/fidel_pc.lay12
-rw-r--r--src/mame/machine/chessbase.cpp2
-rw-r--r--src/mame/mame.lst3
-rw-r--r--src/mame/mess.flt1
25 files changed, 807 insertions, 129 deletions
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<cpu_device> m_maincpu;
+ required_device<via6522_device> m_via;
+ required_device<dac_bit_interface> m_dac;
+ required_device<generic_slot_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 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+
+<!-- define elements -->
+
+ <element name="led" defstate="0">
+ <disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
+ <disk state="0"><color red="0.1" green="0.01" blue="0.015" /></disk>
+ </element>
+
+ <element name="led2" defstate="0">
+ <disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
+ <disk state="0"><color red="0.14" green="0.014" blue="0.02" /></disk>
+ </element>
+ <element name="led2y" defstate="0">
+ <disk state="1"><color red="1.0" green="0.85" blue="0.15" /></disk>
+ <disk state="0"><color red="0.14" green="0.12" blue="0.02" /></disk>
+ </element>
+ <element name="led2g" defstate="0">
+ <disk state="1"><color red="0.20" green="0.85" blue="0.15" /></disk>
+ <disk state="0"><color red="0.03" green="0.14" blue="0.02" /></disk>
+ </element>
+
+ <element name="bt" defstate="0">
+ <disk state="0"><color red="0.17" green="0.15" blue="0.15" /></disk>
+ <disk state="1"><color red="0.34" green="0.3" blue="0.3" /></disk>
+ </element>
+
+ <element name="hl" defstate="0">
+ <text string=" ">
+ <bounds x="0.0" y="0.0" width="1.0" height="1.0" />
+ <color red="0.0" green="0.0" blue="0.0" />
+ </text>
+ <disk state="1">
+ <bounds x="0.12" y="0.12" width="0.76" height="0.76" />
+ <color red="1.0" green="1.0" blue="1.0" />
+ </disk>
+ </element>
+
+ <element name="black"><rect><color red="0.17" green="0.15" blue="0.15" /></rect></element>
+ <element name="white"><rect><color red="0.81" green="0.8" blue="0.79" /></rect></element>
+ <element name="disk_black"><disk><color red="0.17" green="0.15" blue="0.15" /></disk></element>
+
+ <element name="text_1">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="1"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_2">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="2"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_3">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="3"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_4">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="4"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_5">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="5"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_6">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="6"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_7">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="7"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_8">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="8"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+
+ <element name="text_a">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="A"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_b">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="B"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_c">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="C"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_d">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="D"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_e">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="E"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_f">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="F"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_g">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="G"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+ <element name="text_h">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="H"><color red="0.01" green="0.01" blue="0.01" /></text>
+ </element>
+
+ <element name="text_l0"><text string="0"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_l1"><text string="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_l2"><text string="2"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_l3"><text string="3"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_l4"><text string="4"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_l5"><text string="5"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_l6"><text string="6"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+
+ <element name="text_s1"><text string="OPTIONS" align="1"><color red="0.55" green="0.55" blue="0.55" /></text></element>
+ <element name="text_s2"><text string="Verify" align="1"><color red="0.55" green="0.55" blue="0.55" /></text></element>
+ <element name="text_s3"><text string="Take Back" align="1"><color red="0.55" green="0.55" blue="0.55" /></text></element>
+ <element name="text_s4"><text string="Clear" align="1"><color red="0.55" green="0.55" blue="0.55" /></text></element>
+
+ <element name="text_r11"><text string="&#x2659;"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_r21"><text string="&#x2658;"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_r31"><text string="&#x2657;"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_r41"><text string="&#x2656;"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_r51"><text string="&#x2655;"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_r61"><text string="&#x2654;"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_r71"><text string="W"><color red="0.81" green="0.8" blue="0.79" /></text></element> <!-- White -->
+ <element name="text_r81"><text string="B"><color red="0.81" green="0.8" blue="0.79" /></text></element> <!-- Black -->
+
+ <element name="text_r12"><text string="RESET" align="2"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_r22"><text string="HALT" align="2"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_r32"><text string="New Game" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_r42"><text string="Change Level" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_r52"><text string="Change Color" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_r62"><text string="Change Board" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_r72"><text string="Self Play" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_r82"><text string="Monitor" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_r92"><text string="Variable" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_ra2"><text string="Hint" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+
+ <element name="text_r13"><text string="Your Move" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_r23"><text string="Sargon's Move" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_r33"><text string="Check" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_r43"><text string="Change Board" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+
+
+<!-- build screen -->
+
+ <view name="Internal Layout">
+ <bounds left="-2" right="106.5" top="-2" bottom="88" />
+
+ <bezel element="white"><bounds x="-2.5" y="-2.5" width="90.5" height="91" /></bezel>
+
+ <!-- chessboard coords -->
+
+ <bezel element="text_8"><bounds x="-0.8" y="7" width="2" height="2" /></bezel>
+ <bezel element="text_7"><bounds x="-0.8" y="17" width="2" height="2" /></bezel>
+ <bezel element="text_6"><bounds x="-0.8" y="27" width="2" height="2" /></bezel>
+ <bezel element="text_5"><bounds x="-0.8" y="37" width="2" height="2" /></bezel>
+ <bezel element="text_4"><bounds x="-0.8" y="47" width="2" height="2" /></bezel>
+ <bezel element="text_3"><bounds x="-0.8" y="57" width="2" height="2" /></bezel>
+ <bezel element="text_2"><bounds x="-0.8" y="67" width="2" height="2" /></bezel>
+ <bezel element="text_1"><bounds x="-0.8" y="77" width="2" height="2" /></bezel>
+
+ <bezel element="text_a"><bounds x="7" y="85" width="2" height="2" /></bezel>
+ <bezel element="text_b"><bounds x="17" y="85" width="2" height="2" /></bezel>
+ <bezel element="text_c"><bounds x="27" y="85" width="2" height="2" /></bezel>
+ <bezel element="text_d"><bounds x="37" y="85" width="2" height="2" /></bezel>
+ <bezel element="text_e"><bounds x="47" y="85" width="2" height="2" /></bezel>
+ <bezel element="text_f"><bounds x="57" y="85" width="2" height="2" /></bezel>
+ <bezel element="text_g"><bounds x="67" y="85" width="2" height="2" /></bezel>
+ <bezel element="text_h"><bounds x="77" y="85" width="2" height="2" /></bezel>
+
+ <!-- chessboard bezel -->
+
+ <bezel element="black"><bounds x="2" y="2" width="82" height="82" /></bezel>
+ <bezel element="white"><bounds x="3" y="3" width="80" height="80" /></bezel>
+
+ <bezel element="black"><bounds x="13" y="2.5" width="10" height="10.5" /></bezel>
+ <bezel element="black"><bounds x="33" y="2.5" width="10" height="10.5" /></bezel>
+ <bezel element="black"><bounds x="53" y="2.5" width="10" height="10.5" /></bezel>
+ <bezel element="black"><bounds x="73" y="2.5" width="10.5" height="10.5" /></bezel>
+
+ <bezel element="black"><bounds x="2.5" y="13" width="10.5" height="10" /></bezel>
+ <bezel element="black"><bounds x="23" y="13" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="43" y="13" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="63" y="13" width="10" height="10" /></bezel>
+
+ <bezel element="black"><bounds x="13" y="23" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="33" y="23" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="53" y="23" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="73" y="23" width="10.5" height="10" /></bezel>
+
+ <bezel element="black"><bounds x="2.5" y="33" width="10.5" height="10" /></bezel>
+ <bezel element="black"><bounds x="23" y="33" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="43" y="33" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="63" y="33" width="10" height="10" /></bezel>
+
+ <bezel element="black"><bounds x="13" y="43" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="33" y="43" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="53" y="43" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="73" y="43" width="10.5" height="10" /></bezel>
+
+ <bezel element="black"><bounds x="2.5" y="53" width="10.5" height="10" /></bezel>
+ <bezel element="black"><bounds x="23" y="53" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="43" y="53" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="63" y="53" width="10" height="10" /></bezel>
+
+ <bezel element="black"><bounds x="13" y="63" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="33" y="63" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="53" y="63" width="10" height="10" /></bezel>
+ <bezel element="black"><bounds x="73" y="63" width="10.5" height="10" /></bezel>
+
+ <bezel element="black"><bounds x="2.5" y="73" width="10.5" height="10.5" /></bezel>
+ <bezel element="black"><bounds x="23" y="73" width="10" height="10.5" /></bezel>
+ <bezel element="black"><bounds x="43" y="73" width="10" height="10.5" /></bezel>
+ <bezel element="black"><bounds x="63" y="73" width="10" height="10.5" /></bezel>
+
+ <!-- chessboard leds -->
+
+ <bezel name="0.7" element="led"><bounds x="11.3" y="11.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.7" element="led"><bounds x="21.3" y="11.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.7" element="led"><bounds x="31.3" y="11.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="3.7" element="led"><bounds x="41.3" y="11.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="4.7" element="led"><bounds x="51.3" y="11.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="5.7" element="led"><bounds x="61.3" y="11.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="6.7" element="led"><bounds x="71.3" y="11.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="7.7" element="led"><bounds x="81.3" y="11.3" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="0.6" element="led"><bounds x="11.3" y="21.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.6" element="led"><bounds x="21.3" y="21.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.6" element="led"><bounds x="31.3" y="21.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="3.6" element="led"><bounds x="41.3" y="21.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="4.6" element="led"><bounds x="51.3" y="21.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="5.6" element="led"><bounds x="61.3" y="21.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="6.6" element="led"><bounds x="71.3" y="21.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="7.6" element="led"><bounds x="81.3" y="21.3" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="0.5" element="led"><bounds x="11.3" y="31.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.5" element="led"><bounds x="21.3" y="31.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.5" element="led"><bounds x="31.3" y="31.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="3.5" element="led"><bounds x="41.3" y="31.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="4.5" element="led"><bounds x="51.3" y="31.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="5.5" element="led"><bounds x="61.3" y="31.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="6.5" element="led"><bounds x="71.3" y="31.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="7.5" element="led"><bounds x="81.3" y="31.3" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="0.4" element="led"><bounds x="11.3" y="41.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.4" element="led"><bounds x="21.3" y="41.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.4" element="led"><bounds x="31.3" y="41.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="3.4" element="led"><bounds x="41.3" y="41.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="4.4" element="led"><bounds x="51.3" y="41.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="5.4" element="led"><bounds x="61.3" y="41.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="6.4" element="led"><bounds x="71.3" y="41.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="7.4" element="led"><bounds x="81.3" y="41.3" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="0.3" element="led"><bounds x="11.3" y="51.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.3" element="led"><bounds x="21.3" y="51.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.3" element="led"><bounds x="31.3" y="51.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="3.3" element="led"><bounds x="41.3" y="51.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="4.3" element="led"><bounds x="51.3" y="51.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="5.3" element="led"><bounds x="61.3" y="51.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="6.3" element="led"><bounds x="71.3" y="51.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="7.3" element="led"><bounds x="81.3" y="51.3" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="0.2" element="led"><bounds x="11.3" y="61.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.2" element="led"><bounds x="21.3" y="61.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.2" element="led"><bounds x="31.3" y="61.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="3.2" element="led"><bounds x="41.3" y="61.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="4.2" element="led"><bounds x="51.3" y="61.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="5.2" element="led"><bounds x="61.3" y="61.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="6.2" element="led"><bounds x="71.3" y="61.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="7.2" element="led"><bounds x="81.3" y="61.3" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="0.1" element="led"><bounds x="11.3" y="71.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.1" element="led"><bounds x="21.3" y="71.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.1" element="led"><bounds x="31.3" y="71.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="3.1" element="led"><bounds x="41.3" y="71.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="4.1" element="led"><bounds x="51.3" y="71.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="5.1" element="led"><bounds x="61.3" y="71.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="6.1" element="led"><bounds x="71.3" y="71.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="7.1" element="led"><bounds x="81.3" y="71.3" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="0.0" element="led"><bounds x="11.3" y="81.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.0" element="led"><bounds x="21.3" y="81.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.0" element="led"><bounds x="31.3" y="81.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="3.0" element="led"><bounds x="41.3" y="81.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="4.0" element="led"><bounds x="51.3" y="81.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="5.0" element="led"><bounds x="61.3" y="81.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="6.0" element="led"><bounds x="71.3" y="81.3" width="1.5" height="1.5" /></bezel>
+ <bezel name="7.0" element="led"><bounds x="81.3" y="81.3" width="1.5" height="1.5" /></bezel>
+
+ <!-- chessboard sensors -->
+
+ <bezel element="hl" inputtag="IN.0" inputmask="0x80"><bounds x="3" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x80"><bounds x="13" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x80"><bounds x="23" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x80"><bounds x="33" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x80"><bounds x="43" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x80"><bounds x="53" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x80"><bounds x="63" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x80"><bounds x="73" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
+
+ <bezel element="hl" inputtag="IN.0" inputmask="0x40"><bounds x="3" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x40"><bounds x="13" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x40"><bounds x="23" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x40"><bounds x="33" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x40"><bounds x="43" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x40"><bounds x="53" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x40"><bounds x="63" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x40"><bounds x="73" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
+
+ <bezel element="hl" inputtag="IN.0" inputmask="0x20"><bounds x="3" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x20"><bounds x="13" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x20"><bounds x="23" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x20"><bounds x="33" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x20"><bounds x="43" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x20"><bounds x="53" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x20"><bounds x="63" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x20"><bounds x="73" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
+
+ <bezel element="hl" inputtag="IN.0" inputmask="0x10"><bounds x="3" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x10"><bounds x="13" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x10"><bounds x="23" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x10"><bounds x="33" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x10"><bounds x="43" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x10"><bounds x="53" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x10"><bounds x="63" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x10"><bounds x="73" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
+
+ <bezel element="hl" inputtag="IN.0" inputmask="0x08"><bounds x="3" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x08"><bounds x="13" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x08"><bounds x="23" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x08"><bounds x="33" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x08"><bounds x="43" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x08"><bounds x="53" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x08"><bounds x="63" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x08"><bounds x="73" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
+
+ <bezel element="hl" inputtag="IN.0" inputmask="0x04"><bounds x="3" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x04"><bounds x="13" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x04"><bounds x="23" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x04"><bounds x="33" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x04"><bounds x="43" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x04"><bounds x="53" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x04"><bounds x="63" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x04"><bounds x="73" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
+
+ <bezel element="hl" inputtag="IN.0" inputmask="0x02"><bounds x="3" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x02"><bounds x="13" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x02"><bounds x="23" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x02"><bounds x="33" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x02"><bounds x="43" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x02"><bounds x="53" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x02"><bounds x="63" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x02"><bounds x="73" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
+
+ <bezel element="hl" inputtag="IN.0" inputmask="0x01"><bounds x="3" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.1" inputmask="0x01"><bounds x="13" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x01"><bounds x="23" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.3" inputmask="0x01"><bounds x="33" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.4" inputmask="0x01"><bounds x="43" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.5" inputmask="0x01"><bounds x="53" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <bezel element="hl" inputtag="IN.6" inputmask="0x01"><bounds x="63" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
+ <bezel element="hl" inputtag="IN.7" inputmask="0x01"><bounds x="73" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
+
+ <!-- right side -->
+
+ <bezel element="text_l0"><bounds x="88.6" y="22.75" width="2.5" height="1.5" /></bezel>
+ <bezel element="text_l1"><bounds x="88.6" y="25.75" width="2.5" height="1.5" /></bezel>
+ <bezel element="text_l2"><bounds x="88.6" y="28.75" width="2.5" height="1.5" /></bezel>
+ <bezel element="text_l3"><bounds x="88.6" y="31.75" width="2.5" height="1.5" /></bezel>
+ <bezel element="text_l4"><bounds x="88.6" y="34.75" width="2.5" height="1.5" /></bezel>
+ <bezel element="text_l5"><bounds x="88.6" y="37.75" width="2.5" height="1.5" /></bezel>
+ <bezel element="text_l6"><bounds x="88.6" y="43.25" width="2.5" height="1.5" /></bezel>
+
+ <bezel element="text_r11"><bounds x="92.5" y="22.2" width="3" height="2.5" /></bezel>
+ <bezel element="text_r21"><bounds x="92.5" y="25.2" width="3" height="2.5" /></bezel>
+ <bezel element="text_r31"><bounds x="92.5" y="28.2" width="3" height="2.5" /></bezel>
+ <bezel element="text_r41"><bounds x="92.5" y="31.2" width="3" height="2.5" /></bezel>
+ <bezel element="text_r51"><bounds x="92.5" y="34.2" width="3" height="2.5" /></bezel>
+ <bezel element="text_r61"><bounds x="92.5" y="37.2" width="3" height="2.5" /></bezel>
+ <bezel element="text_r71"><bounds x="92.5" y="43.25" width="3" height="1.5" /></bezel>
+ <bezel element="text_r81"><bounds x="92.5" y="46.25" width="3" height="1.5" /></bezel>
+
+ <bezel element="text_s1"><bounds x="97.8" y="21.25" width="10" height="1.5" /></bezel>
+ <bezel element="text_s2"><bounds x="97.8" y="33.25" width="10" height="1.5" /></bezel>
+ <bezel element="text_s3"><bounds x="97.8" y="36.25" width="10" height="1.5" /></bezel>
+ <bezel element="text_s4"><bounds x="97.8" y="41.75" width="10" height="1.5" /></bezel>
+
+ <bezel element="text_r12"><bounds x="87.5" y="13.25" width="7" height="1.5" /></bezel>
+ <bezel element="text_r22"><bounds x="87.5" y="17.25" width="7" height="1.5" /></bezel>
+
+ <bezel element="text_r32"><bounds x="97.8" y="22.75" width="10" height="1.5" /></bezel>
+ <bezel element="text_r42"><bounds x="97.8" y="25.75" width="10" height="1.5" /></bezel>
+ <bezel element="text_r52"><bounds x="97.8" y="28.75" width="10" height="1.5" /></bezel>
+ <bezel element="text_r62"><bounds x="97.8" y="31.75" width="10" height="1.5" /></bezel>
+ <bezel element="text_r72"><bounds x="97.8" y="34.75" width="10" height="1.5" /></bezel>
+ <bezel element="text_r82"><bounds x="97.8" y="37.75" width="10" height="1.5" /></bezel>
+ <bezel element="text_r92"><bounds x="97.8" y="43.25" width="10" height="1.5" /></bezel>
+ <bezel element="text_ra2"><bounds x="97.8" y="46.25" width="10" height="1.5" /></bezel>
+
+ <bezel element="text_r13"><bounds x="93.5" y="51.75" width="10" height="1.5" /></bezel>
+ <bezel element="text_r23"><bounds x="93.5" y="54.75" width="10" height="1.5" /></bezel>
+ <bezel element="text_r33"><bounds x="93.5" y="60.25" width="10" height="1.5" /></bezel>
+ <bezel element="text_r43"><bounds x="93.5" y="63.25" width="10" height="1.5" /></bezel>
+
+ <bezel name="8.7" element="led2"><bounds x="91" y="22.75" width="1.5" height="1.5" /></bezel>
+ <bezel name="8.6" element="led2"><bounds x="91" y="25.75" width="1.5" height="1.5" /></bezel>
+ <bezel name="8.5" element="led2"><bounds x="91" y="28.75" width="1.5" height="1.5" /></bezel>
+ <bezel name="8.4" element="led2"><bounds x="91" y="31.75" width="1.5" height="1.5" /></bezel>
+ <bezel name="8.3" element="led2"><bounds x="91" y="34.75" width="1.5" height="1.5" /></bezel>
+ <bezel name="8.2" element="led2"><bounds x="91" y="37.75" width="1.5" height="1.5" /></bezel>
+ <bezel name="8.1" element="led2"><bounds x="91" y="43.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="8.0" element="led2"><bounds x="91" y="46.25" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="9.11" element="led2g"><bounds x="91" y="51.75" width="1.5" height="1.5" /></bezel>
+ <bezel name="9.10" element="led2y"><bounds x="91" y="54.75" width="1.5" height="1.5" /></bezel>
+ <bezel name="9.9" element="led2"><bounds x="91" y="60.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="9.8" element="led2"><bounds x="91" y="63.25" width="1.5" height="1.5" /></bezel>
+
+ <bezel element="bt" inputtag="IN.9" inputmask="0x01"><bounds x="95" y="13" width="2" height="2" /></bezel>
+ <bezel element="bt" inputtag="IN.9" inputmask="0x02"><bounds x="95" y="17" width="2" height="2" /></bezel>
+
+ <bezel element="bt" inputtag="IN.8" inputmask="0x80"><bounds x="95" y="22.5" width="2" height="2" /></bezel>
+ <bezel element="bt" inputtag="IN.8" inputmask="0x40"><bounds x="95" y="25.5" width="2" height="2" /></bezel>
+ <bezel element="bt" inputtag="IN.8" inputmask="0x20"><bounds x="95" y="28.5" width="2" height="2" /></bezel>
+ <bezel element="bt" inputtag="IN.8" inputmask="0x10"><bounds x="95" y="31.5" width="2" height="2" /></bezel>
+ <bezel element="bt" inputtag="IN.8" inputmask="0x08"><bounds x="95" y="34.5" width="2" height="2" /></bezel>
+ <bezel element="bt" inputtag="IN.8" inputmask="0x04"><bounds x="95" y="37.5" width="2" height="2" /></bezel>
+ <bezel element="bt" inputtag="IN.8" inputmask="0x02"><bounds x="95" y="43" width="2" height="2" /></bezel>
+ <bezel element="bt" inputtag="IN.8" inputmask="0x01"><bounds x="95" y="46" width="2" height="2" /></bezel>
+
+ </view>
+</mamelayout>
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 @@
<!-- right side -->
- <bezel element="text_r11"><bounds x="91.5" y="15.9" width="2.5" height="2" /></bezel>
- <bezel element="text_r21"><bounds x="91.5" y="18.9" width="2.5" height="2" /></bezel>
- <bezel element="text_r31"><bounds x="91.5" y="21.9" width="2.5" height="2" /></bezel>
- <bezel element="text_r41"><bounds x="91.5" y="24.9" width="2.5" height="2" /></bezel>
- <bezel element="text_r51"><bounds x="91.5" y="27.9" width="2.5" height="2" /></bezel>
- <bezel element="text_r61"><bounds x="91.5" y="30.9" width="2.5" height="2" /></bezel>
+ <bezel element="text_r11"><bounds x="91.5" y="15.6" width="3" height="2.5" /></bezel>
+ <bezel element="text_r21"><bounds x="91.5" y="18.6" width="3" height="2.5" /></bezel>
+ <bezel element="text_r31"><bounds x="91.5" y="21.6" width="3" height="2.5" /></bezel>
+ <bezel element="text_r41"><bounds x="91.5" y="24.6" width="3" height="2.5" /></bezel>
+ <bezel element="text_r51"><bounds x="91.5" y="27.6" width="3" height="2.5" /></bezel>
+ <bezel element="text_r61"><bounds x="91.5" y="30.6" width="3" height="2.5" /></bezel>
<bezel element="text_r12"><bounds x="96.8" y="8.25" width="10" height="1.5" /></bezel>
<bezel element="text_r22"><bounds x="96.8" y="11.25" width="10" height="1.5" /></bezel>
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