New working machines

--------------------
La Régence [hap, anonymous]
This commit is contained in:
hap 2019-12-02 16:06:02 +01:00
parent 2d790b172f
commit 004f75e2c8
6 changed files with 714 additions and 6 deletions

View File

@ -1132,6 +1132,7 @@ function linkProjects_mame_mess(_target, _subtarget)
"fairlight",
"fidelity",
"force",
"francedr",
"fujitsu",
"funtech",
"galaxy",
@ -1207,6 +1208,7 @@ function linkProjects_mame_mess(_target, _subtarget)
"osborne",
"osi",
"palm",
"parker",
"pc",
"pdp1",
"pel",
@ -2273,6 +2275,11 @@ files {
MAME_DIR .. "src/mame/drivers/force68k.cpp",
}
createMESSProjects(_target, _subtarget, "francedr")
files {
MAME_DIR .. "src/mame/drivers/regence.cpp",
}
createMESSProjects(_target, _subtarget, "fujitsu")
files {
MAME_DIR .. "src/mame/drivers/fmtowns.cpp",
@ -2978,6 +2985,12 @@ files {
MAME_DIR .. "src/mame/drivers/palmz22.cpp",
}
createMESSProjects(_target, _subtarget, "parker")
files {
MAME_DIR .. "src/mame/drivers/talkingbb.cpp",
MAME_DIR .. "src/mame/drivers/talkingfb.cpp",
}
createMESSProjects(_target, _subtarget, "pitronic")
files {
MAME_DIR .. "src/mame/drivers/beta.cpp",
@ -4185,8 +4198,6 @@ files {
MAME_DIR .. "src/mame/drivers/sys9002.cpp",
MAME_DIR .. "src/mame/drivers/systec.cpp",
MAME_DIR .. "src/mame/drivers/systel1.cpp",
MAME_DIR .. "src/mame/drivers/talkingbb.cpp",
MAME_DIR .. "src/mame/drivers/talkingfb.cpp",
MAME_DIR .. "src/mame/drivers/tavernie.cpp",
MAME_DIR .. "src/mame/drivers/tecnbras.cpp",
MAME_DIR .. "src/mame/drivers/teleray10.cpp",

View File

@ -33,10 +33,10 @@ Note that EAS doesn't have a "new game" button, it is done through game options:
Press GAME CONTROL, then place/lift a piece on D6 to restart, or D8 to reset
with default settings, then press CL.
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? Opening module PC16 was included by default,
this module is the same as CB16 but at different form factor.
Prestige Challenger (PC) hardware is very similar. It was released before EAS,
it doesn't have the 8255 PPI, but has more RAM(7*TMM2016P). Some were released at
3.6MHz instead of 4MHz, perhaps due to hardware instability? Opening module PC16 was
included by default, this module is the same as CB16 but at different form factor.
Elite Avant Garde (models 6081,6088,6089) is on the same hardware as EAS.

View File

@ -0,0 +1,224 @@
// license:BSD-3-Clause
// copyright-holders:hap
/******************************************************************************
La Régence, French chess computer by "France Double R". German distribution
by Sandy Electronic, who sub-titled it the TSB 4 (Turniersensorbrett).
The chess engine is Richard Lang's Cyrus.
Hardware notes:
- PCB label: FRANCE DOUBLE R, MADE IN FRANCE
- Sharp LH0080A Z80A @ 4 MHz (8MHz XTAL)
- 2KB RAM (MSM5128-15RS), 3*4KB ROM
- TTL, piezo, 8*8+4 LEDs, magnetic sensors
TODO:
- verify irq source/frequency, probably a 555 ic, current approximation is from
comparing led blink rate with a video recording
- ARC0/ARC2 rom labels might be the wrong way around
- French button labels(right side panel) aren't fully known
******************************************************************************/
#include "emu.h"
#include "cpu/z80/z80.h"
#include "machine/sensorboard.h"
#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "video/pwm.h"
#include "speaker.h"
// internal artwork
#include "regence.lh" // clickable
namespace {
class regence_state : public driver_device
{
public:
regence_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_display(*this, "display"),
m_board(*this, "board"),
m_dac(*this, "dac"),
m_inputs(*this, "IN.%u", 0)
{ }
// machine drivers
void regence(machine_config &config);
protected:
virtual void machine_start() override;
private:
// devices/pointers
required_device<cpu_device> m_maincpu;
required_device<pwm_display_device> m_display;
required_device<sensorboard_device> m_board;
required_device<dac_bit_interface> m_dac;
required_ioport_array<2> m_inputs;
// address maps
void main_map(address_map &map);
// I/O handlers
void update_display();
DECLARE_WRITE8_MEMBER(control_w);
DECLARE_WRITE8_MEMBER(leds_w);
DECLARE_READ8_MEMBER(input_r);
u8 m_inp_mux = 0;
u8 m_led_data = 0;
};
void regence_state::machine_start()
{
// register for savestates
save_item(NAME(m_inp_mux));
save_item(NAME(m_led_data));
}
/******************************************************************************
I/O
******************************************************************************/
void regence_state::update_display()
{
m_display->matrix(1 << m_inp_mux, m_led_data);
}
WRITE8_MEMBER(regence_state::control_w)
{
// d0-d3: input mux/led select
m_inp_mux = data & 0xf;
update_display();
// d7: speaker out
m_dac->write(BIT(data, 7));
// other: ?
}
WRITE8_MEMBER(regence_state::leds_w)
{
// d0-d7: led data
m_led_data = data;
update_display();
}
READ8_MEMBER(regence_state::input_r)
{
u8 data = 0;
// d0-d7: multiplexed inputs
// read chessboard sensors
if (m_inp_mux < 8)
data = m_board->read_file(m_inp_mux, true);
// read other buttons
else if (m_inp_mux < 10)
data = m_inputs[m_inp_mux - 8]->read();
return data;
}
/******************************************************************************
Address Maps
******************************************************************************/
void regence_state::main_map(address_map &map)
{
map(0x0000, 0x0fff).rom();
map(0x4000, 0x4fff).rom();
map(0x8000, 0x8fff).rom();
map(0xd000, 0xd7ff).ram();
map(0xf000, 0xf000).rw(FUNC(regence_state::input_r), FUNC(regence_state::control_w));
map(0xf800, 0xf800).w(FUNC(regence_state::leds_w));
}
/******************************************************************************
Input Ports
******************************************************************************/
static INPUT_PORTS_START( regence )
PORT_START("IN.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("Set Up") // Changement de Position / Veränderung
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Take Back") // Retour en Arriere / Zug Zurück
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_NAME("New Game") // Nouvelle Partie / Neues Spiel (press after setup)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("King")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Queen")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Rook")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Bishop")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START("IN.1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_O) PORT_NAME("Sound") // ? / Ton
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("Level") // ? / Stufe
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_CODE(KEYCODE_H) PORT_NAME("Move / Halt") // Jeu Auto/Arrêter? / Zug-Halt
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_NAME("Black") // Noir / Schwarz
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("White") // Blanc / Weiss
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Pawn")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Knight")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
INPUT_PORTS_END
/******************************************************************************
Machine Drivers
******************************************************************************/
void regence_state::regence(machine_config &config)
{
/* basic machine hardware */
Z80(config, m_maincpu, 8_MHz_XTAL/2);
m_maincpu->set_addrmap(AS_PROGRAM, &regence_state::main_map);
m_maincpu->set_periodic_int(FUNC(regence_state::irq0_line_hold), attotime::from_hz(400)); // approximation
SENSORBOARD(config, m_board).set_type(sensorboard_device::MAGNETS);
m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));
m_board->set_delay(attotime::from_msec(150));
/* video hardware */
PWM_DISPLAY(config, m_display).set_size(10, 8);
config.set_default_layout(layout_regence);
/* 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);
}
/******************************************************************************
ROM Definitions
******************************************************************************/
ROM_START( regence )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("arc0.ic13", 0x0000, 0x1000, CRC(ac6a0a67) SHA1(52b115c7cd372dfbad14b00854aa4f6f75a937d3) )
ROM_LOAD("arc1.ic12", 0x4000, 0x1000, CRC(5c2fb0c7) SHA1(811ab3d7cefcf872741eb2265115080aaf913f0f) )
ROM_LOAD("arc2.ic11", 0x8000, 0x1000, CRC(e4c39dbd) SHA1(b6a6d1d39f73a2ff1ade6205bdf180be13e84df3) )
ROM_END
} // anonymous namespace
/******************************************************************************
Drivers
******************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS */
CONS( 1982, regence, 0, 0, regence, regence, regence_state, empty_init, "France Double R", "La Regence", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )

469
src/mame/layout/regence.lay Normal file
View File

@ -0,0 +1,469 @@
<?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="but" 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="text_1">
<rect><color red="0.56" green="0.33" blue="0.12" /></rect>
<text string="1"><color red="0.87" green="0.87" blue="0.84" /></text>
</element>
<element name="text_2">
<rect><color red="0.56" green="0.33" blue="0.12" /></rect>
<text string="2"><color red="0.87" green="0.87" blue="0.84" /></text>
</element>
<element name="text_3">
<rect><color red="0.56" green="0.33" blue="0.12" /></rect>
<text string="3"><color red="0.87" green="0.87" blue="0.84" /></text>
</element>
<element name="text_4">
<rect><color red="0.56" green="0.33" blue="0.12" /></rect>
<text string="4"><color red="0.87" green="0.87" blue="0.84" /></text>
</element>
<element name="text_5">
<rect><color red="0.56" green="0.33" blue="0.12" /></rect>
<text string="5"><color red="0.87" green="0.87" blue="0.84" /></text>
</element>
<element name="text_6">
<rect><color red="0.56" green="0.33" blue="0.12" /></rect>
<text string="6"><color red="0.87" green="0.87" blue="0.84" /></text>
</element>
<element name="text_7">
<rect><color red="0.56" green="0.33" blue="0.12" /></rect>
<text string="7"><color red="0.87" green="0.87" blue="0.84" /></text>
</element>
<element name="text_8">
<rect><color red="0.56" green="0.33" blue="0.12" /></rect>
<text string="8"><color red="0.87" green="0.87" blue="0.84" /></text>
</element>
<element name="text_a">
<rect><color red="0.56" green="0.33" blue="0.12" /></rect>
<text string="A"><color red="0.87" green="0.87" blue="0.84" /></text>
</element>
<element name="text_b">
<rect><color red="0.56" green="0.33" blue="0.12" /></rect>
<text string="B"><color red="0.87" green="0.87" blue="0.84" /></text>
</element>
<element name="text_c">
<rect><color red="0.56" green="0.33" blue="0.12" /></rect>
<text string="C"><color red="0.87" green="0.87" blue="0.84" /></text>
</element>
<element name="text_d">
<rect><color red="0.56" green="0.33" blue="0.12" /></rect>
<text string="D"><color red="0.87" green="0.87" blue="0.84" /></text>
</element>
<element name="text_e">
<rect><color red="0.56" green="0.33" blue="0.12" /></rect>
<text string="E"><color red="0.87" green="0.87" blue="0.84" /></text>
</element>
<element name="text_f">
<rect><color red="0.56" green="0.33" blue="0.12" /></rect>
<text string="F"><color red="0.87" green="0.87" blue="0.84" /></text>
</element>
<element name="text_g">
<rect><color red="0.56" green="0.33" blue="0.12" /></rect>
<text string="G"><color red="0.87" green="0.87" blue="0.84" /></text>
</element>
<element name="text_h">
<rect><color red="0.56" green="0.33" blue="0.12" /></rect>
<text string="H"><color red="0.87" green="0.87" blue="0.84" /></text>
</element>
<element name="text_p1"><image file="chess/wp.png"/></element>
<element name="text_p2"><image file="chess/wn.png"/></element>
<element name="text_p3"><image file="chess/wb.png"/></element>
<element name="text_p4"><image file="chess/wr.png"/></element>
<element name="text_p5"><image file="chess/wq.png"/></element>
<element name="text_p6"><image file="chess/wk.png"/></element>
<element name="text_r1"><text string="WHITE"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_r2"><text string="BLACK"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_r3"><text string="CHECK"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_r4"><text string="SET UP"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_r5"><text string="TAKE BACK"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_r6"><text string="NEW GAME"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_r7"><text string="MOVE/HALT"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_r8"><text string="LEVEL"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_r9"><text string="SOUND"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<!-- sb board -->
<element name="cblack"><rect><color red="0.56" green="0.33" blue="0.12" /></rect></element>
<element name="cwhite"><rect><color red="0.84" green="0.75" blue="0.50" /></rect></element>
<element name="hlbb" defstate="0">
<text string=" "><bounds x="0" y="0" width="1" height="1" /></text>
<disk state="1">
<bounds x="0.12" y="0.12" width="0.76" height="0.76" />
<color red="0" green="0" blue="0" />
</disk>
</element>
<element name="piece" defstate="0">
<image file="chess/wp.png" state="1"/>
<image file="chess/wn.png" state="2"/>
<image file="chess/wb.png" state="3"/>
<image file="chess/wr.png" state="4"/>
<image file="chess/wq.png" state="5"/>
<image file="chess/wk.png" state="6"/>
<image file="chess/bp.png" state="7"/>
<image file="chess/bn.png" state="8"/>
<image file="chess/bb.png" state="9"/>
<image file="chess/br.png" state="10"/>
<image file="chess/bq.png" state="11"/>
<image file="chess/bk.png" state="12"/>
<!-- selected pieces -->
<image file="chess/wp.png" state="13"><color alpha="0.5" /></image>
<image file="chess/wn.png" state="14"><color alpha="0.5" /></image>
<image file="chess/wb.png" state="15"><color alpha="0.5" /></image>
<image file="chess/wr.png" state="16"><color alpha="0.5" /></image>
<image file="chess/wq.png" state="17"><color alpha="0.5" /></image>
<image file="chess/wk.png" state="18"><color alpha="0.5" /></image>
<image file="chess/bp.png" state="19"><color alpha="0.5" /></image>
<image file="chess/bn.png" state="20"><color alpha="0.5" /></image>
<image file="chess/bb.png" state="21"><color alpha="0.5" /></image>
<image file="chess/br.png" state="22"><color alpha="0.5" /></image>
<image file="chess/bq.png" state="23"><color alpha="0.5" /></image>
<image file="chess/bk.png" state="24"><color alpha="0.5" /></image>
</element>
<group name="sb_board">
<bounds x="0" y="0" width="80" height="80" />
<!-- squares (avoid seams) -->
<bezel element="cwhite"><bounds x="0" y="0" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="10" y="0" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="20" y="0" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="30" y="0" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="40" y="0" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="50" y="0" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="60" y="0" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="70" y="0" width="10" height="11" /></bezel>
<bezel element="cblack"><bounds x="0" y="10" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="10" y="10" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="20" y="10" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="30" y="10" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="40" y="10" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="50" y="10" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="60" y="10" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="70" y="10" width="10" height="11" /></bezel>
<bezel element="cwhite"><bounds x="0" y="20" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="10" y="20" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="20" y="20" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="30" y="20" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="40" y="20" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="50" y="20" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="60" y="20" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="70" y="20" width="10" height="11" /></bezel>
<bezel element="cblack"><bounds x="0" y="30" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="10" y="30" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="20" y="30" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="30" y="30" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="40" y="30" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="50" y="30" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="60" y="30" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="70" y="30" width="10" height="11" /></bezel>
<bezel element="cwhite"><bounds x="0" y="40" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="10" y="40" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="20" y="40" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="30" y="40" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="40" y="40" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="50" y="40" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="60" y="40" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="70" y="40" width="10" height="11" /></bezel>
<bezel element="cblack"><bounds x="0" y="50" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="10" y="50" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="20" y="50" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="30" y="50" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="40" y="50" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="50" y="50" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="60" y="50" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="70" y="50" width="10" height="11" /></bezel>
<bezel element="cwhite"><bounds x="0" y="60" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="10" y="60" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="20" y="60" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="30" y="60" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="40" y="60" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="50" y="60" width="11" height="11" /></bezel>
<bezel element="cwhite"><bounds x="60" y="60" width="11" height="11" /></bezel>
<bezel element="cblack"><bounds x="70" y="60" width="10" height="11" /></bezel>
<bezel element="cblack"><bounds x="0" y="70" width="11" height="10" /></bezel>
<bezel element="cwhite"><bounds x="10" y="70" width="11" height="10" /></bezel>
<bezel element="cblack"><bounds x="20" y="70" width="11" height="10" /></bezel>
<bezel element="cwhite"><bounds x="30" y="70" width="11" height="10" /></bezel>
<bezel element="cblack"><bounds x="40" y="70" width="11" height="10" /></bezel>
<bezel element="cwhite"><bounds x="50" y="70" width="11" height="10" /></bezel>
<bezel element="cblack"><bounds x="60" y="70" width="11" height="10" /></bezel>
<bezel element="cwhite"><bounds x="70" y="70" width="10" height="10" /></bezel>
<!-- leds -->
<repeat count="8">
<param name="y" start="8.3" increment="10" />
<param name="i2" start="0" increment="1" />
<repeat count="8">
<param name="x" start="0.2" increment="10" />
<param name="i1" start="0" increment="1" />
<bezel name="~i1~.~i2~" element="led"><bounds x="~x~" y="~y~" width="1.5" height="1.5" /></bezel>
</repeat>
</repeat>
<!-- sensors, pieces -->
<repeat count="8">
<param name="y" start="0" increment="10" />
<param name="i" start="8" increment="-1" />
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x01"><bounds x="0" y="~y~" width="10" height="10" /><color alpha="0.04" /></bezel>
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.04" /></bezel>
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.04" /></bezel>
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.04" /></bezel>
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.04" /></bezel>
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.04" /></bezel>
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.04" /></bezel>
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.04" /></bezel>
<bezel name="piece_a~i~" element="piece"><bounds x="0" y="~y~" width="10" height="10" /></bezel>
<bezel name="piece_b~i~" element="piece"><bounds x="10" y="~y~" width="10" height="10" /></bezel>
<bezel name="piece_c~i~" element="piece"><bounds x="20" y="~y~" width="10" height="10" /></bezel>
<bezel name="piece_d~i~" element="piece"><bounds x="30" y="~y~" width="10" height="10" /></bezel>
<bezel name="piece_e~i~" element="piece"><bounds x="40" y="~y~" width="10" height="10" /></bezel>
<bezel name="piece_f~i~" element="piece"><bounds x="50" y="~y~" width="10" height="10" /></bezel>
<bezel name="piece_g~i~" element="piece"><bounds x="60" y="~y~" width="10" height="10" /></bezel>
<bezel name="piece_h~i~" element="piece"><bounds x="70" y="~y~" width="10" height="10" /></bezel>
</repeat>
</group>
<!-- sb ui -->
<element name="hlub" defstate="0">
<rect state="1"><color red="0" green="0" blue="0" /></rect>
</element>
<element name="text_uit1"><text string="S.BOARD"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uit2"><text string="INTERFACE"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uib1"><text string="BOARD:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uib2">
<rect><color red="0.84" green="0.75" blue="0.50" /></rect>
<text string="RESET"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uib3">
<rect><color red="0.84" green="0.75" blue="0.50" /></rect>
<text string="CLEAR"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uis1"><text string="SPAWN:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uih1"><text string="HAND:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uih2">
<rect><color red="0.84" green="0.75" blue="0.50" /></rect>
<text string="REMOVE"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uiu1"><text string="UNDO:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uiu2a">
<rect><color red="0.84" green="0.75" blue="0.50" /></rect>
<text string=" &lt;&lt;"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uiu2b">
<rect><color red="0.84" green="0.75" blue="0.50" /></rect>
<text string=" &lt; "><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uiu2c">
<rect><color red="0.84" green="0.75" blue="0.50" /></rect>
<text string=" &gt;"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uiu2d">
<rect><color red="0.84" green="0.75" blue="0.50" /></rect>
<text string=" &gt;&gt;"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_uiu3a" defstate="0">
<simplecounter maxstate="999" digits="1" align="2">
<color red="0.81" green="0.8" blue="0.79" />
</simplecounter>
</element>
<element name="text_uiu3b"><text string="/"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uiu3c" defstate="0">
<simplecounter maxstate="999" digits="1" align="1">
<color red="0.81" green="0.8" blue="0.79" />
</simplecounter>
</element>
<group name="sb_ui">
<bounds x="0" y="0" width="10" height="80" />
<bezel element="cblack"><bounds x="0" y="0" width="10" height="1" /></bezel>
<bezel element="cblack"><bounds x="0" y="7" width="10" height="1" /></bezel>
<bezel element="cblack"><bounds x="0" y="79" width="10" height="1" /></bezel>
<bezel element="text_uit1"><bounds x="0" y="2" width="10" height="2" /></bezel>
<bezel element="text_uit2"><bounds x="0" y="4" width="10" height="2" /></bezel>
<!-- board -->
<bezel element="text_uib1"><bounds x="0" y="9" width="10" height="2" /></bezel>
<bezel element="cwhite"><bounds x="1" y="11.5" width="8" height="2.5" /></bezel>
<bezel element="cwhite"><bounds x="1" y="15" width="8" height="2.5" /></bezel>
<bezel element="text_uib2"><bounds x="1.5" y="11.75" width="7" height="2" /></bezel>
<bezel element="text_uib3"><bounds x="1.5" y="15.25" width="7" height="2" /></bezel>
<bezel element="hlub" inputtag="board:UI" inputmask="0x200"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></bezel>
<bezel element="hlub" inputtag="board:UI" inputmask="0x100"><bounds x="1" y="15" width="8" height="2.5" /><color alpha="0.25" /></bezel>
<!-- spawn -->
<bezel element="text_uis1"><bounds x="0" y="20.5" width="10" height="2" /></bezel>
<bezel element="cwhite"><bounds x="1" y="23" width="8" height="12" /></bezel>
<bezel element="cwhite"><bounds x="1" y="36" width="8" height="12" /></bezel>
<bezel name="piece_ui1" element="piece"><bounds x="1" y="23" width="4" height="4" /></bezel>
<bezel name="piece_ui2" element="piece"><bounds x="1" y="27" width="4" height="4" /></bezel>
<bezel name="piece_ui3" element="piece"><bounds x="1" y="31" width="4" height="4" /></bezel>
<bezel name="piece_ui4" element="piece"><bounds x="5" y="23" width="4" height="4" /></bezel>
<bezel name="piece_ui5" element="piece"><bounds x="5" y="27" width="4" height="4" /></bezel>
<bezel name="piece_ui6" element="piece"><bounds x="5" y="31" width="4" height="4" /></bezel>
<bezel name="piece_ui7" element="piece"><bounds x="1" y="36" width="4" height="4" /></bezel>
<bezel name="piece_ui8" element="piece"><bounds x="1" y="40" width="4" height="4" /></bezel>
<bezel name="piece_ui9" element="piece"><bounds x="1" y="44" width="4" height="4" /></bezel>
<bezel name="piece_ui10" element="piece"><bounds x="5" y="36" width="4" height="4" /></bezel>
<bezel name="piece_ui11" element="piece"><bounds x="5" y="40" width="4" height="4" /></bezel>
<bezel name="piece_ui12" element="piece"><bounds x="5" y="44" width="4" height="4" /></bezel>
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0001"><bounds x="1" y="23" width="4" height="4" /><color alpha="0.25" /></bezel>
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0002"><bounds x="1" y="27" width="4" height="4" /><color alpha="0.25" /></bezel>
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0004"><bounds x="1" y="31" width="4" height="4" /><color alpha="0.25" /></bezel>
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0008"><bounds x="5" y="23" width="4" height="4" /><color alpha="0.25" /></bezel>
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0010"><bounds x="5" y="27" width="4" height="4" /><color alpha="0.25" /></bezel>
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0020"><bounds x="5" y="31" width="4" height="4" /><color alpha="0.25" /></bezel>
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0040"><bounds x="1" y="36" width="4" height="4" /><color alpha="0.25" /></bezel>
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0080"><bounds x="1" y="40" width="4" height="4" /><color alpha="0.25" /></bezel>
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0100"><bounds x="1" y="44" width="4" height="4" /><color alpha="0.25" /></bezel>
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0200"><bounds x="5" y="36" width="4" height="4" /><color alpha="0.25" /></bezel>
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0400"><bounds x="5" y="40" width="4" height="4" /><color alpha="0.25" /></bezel>
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0800"><bounds x="5" y="44" width="4" height="4" /><color alpha="0.25" /></bezel>
<!-- hand -->
<bezel element="text_uih1"><bounds x="0" y="51" width="10" height="2" /></bezel>
<bezel element="cblack"><bounds x="1" y="53.5" width="8" height="6" /></bezel>
<bezel name="piece_ui0" element="piece"><bounds x="2" y="53.5" width="6" height="6" /></bezel>
<bezel element="cwhite"><bounds x="1" y="60.5" width="8" height="2.5" /></bezel>
<bezel element="text_uih2"><bounds x="1.5" y="60.75" width="7" height="2" /></bezel>
<bezel element="hlub" inputtag="board:UI" inputmask="0x08"><bounds x="1" y="60.5" width="8" height="2.5" /><color alpha="0.25" /></bezel>
<!-- undo -->
<bezel element="text_uiu1"><bounds x="0" y="66" width="10" height="2" /></bezel>
<bezel element="cwhite"><bounds x="1" y="68.5" width="1.7" height="6" /></bezel>
<bezel element="cwhite"><bounds x="3.1" y="68.5" width="1.7" height="6" /></bezel>
<bezel element="cwhite"><bounds x="5.2" y="68.5" width="1.7" height="6" /></bezel>
<bezel element="cwhite"><bounds x="7.3" y="68.5" width="1.7" height="6" /></bezel>
<bezel element="text_uiu2a"><bounds x="1" y="69.5" width="1.7" height="4" /></bezel>
<bezel element="text_uiu2b"><bounds x="3.1" y="69.5" width="1.7" height="4" /></bezel>
<bezel element="text_uiu2c"><bounds x="5.2" y="69.5" width="1.7" height="4" /></bezel>
<bezel element="text_uiu2d"><bounds x="7.3" y="69.5" width="1.7" height="4" /></bezel>
<bezel element="hlub" inputtag="board:UI" inputmask="0x10"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></bezel>
<bezel element="hlub" inputtag="board:UI" inputmask="0x20"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></bezel>
<bezel element="hlub" inputtag="board:UI" inputmask="0x40"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></bezel>
<bezel element="hlub" inputtag="board:UI" inputmask="0x80"><bounds x="7.3" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></bezel>
<bezel name="count_ui0" element="text_uiu3a"><bounds x="0" y="75" width="4" height="2" /></bezel>
<bezel name="count_ui1" element="text_uiu3c"><bounds x="6" y="75" width="4" height="2" /></bezel>
<bezel element="text_uiu3b"><bounds x="4" y="75" width="2" height="2" /></bezel>
</group>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="-13" right="102" top="-1.5" bottom="87.5" />
<bezel element="cblack"><bounds x="-1" y="-1.5" width="89" height="89" /></bezel>
<bezel element="cwhite"><bounds x="3" y="2.5" width="81" height="81" /></bezel>
<group ref="sb_board"><bounds x="3.5" y="3" width="80" height="80" /></group>
<group ref="sb_ui"><bounds x="-12" y="3" width="10" height="80" /></group>
<!-- chessboard coords -->
<bezel element="text_8"><bounds x="0.2" y="7" width="2" height="2" /></bezel>
<bezel element="text_7"><bounds x="0.2" y="17" width="2" height="2" /></bezel>
<bezel element="text_6"><bounds x="0.2" y="27" width="2" height="2" /></bezel>
<bezel element="text_5"><bounds x="0.2" y="37" width="2" height="2" /></bezel>
<bezel element="text_4"><bounds x="0.2" y="47" width="2" height="2" /></bezel>
<bezel element="text_3"><bounds x="0.2" y="57" width="2" height="2" /></bezel>
<bezel element="text_2"><bounds x="0.2" y="67" width="2" height="2" /></bezel>
<bezel element="text_1"><bounds x="0.2" y="77" width="2" height="2" /></bezel>
<bezel element="text_a"><bounds x="7.5" y="84.5" width="2" height="2" /></bezel>
<bezel element="text_b"><bounds x="17.5" y="84.5" width="2" height="2" /></bezel>
<bezel element="text_c"><bounds x="27.5" y="84.5" width="2" height="2" /></bezel>
<bezel element="text_d"><bounds x="37.5" y="84.5" width="2" height="2" /></bezel>
<bezel element="text_e"><bounds x="47.5" y="84.5" width="2" height="2" /></bezel>
<bezel element="text_f"><bounds x="57.5" y="84.5" width="2" height="2" /></bezel>
<bezel element="text_g"><bounds x="67.5" y="84.5" width="2" height="2" /></bezel>
<bezel element="text_h"><bounds x="77.5" y="84.5" width="2" height="2" /></bezel>
<!-- right side -->
<bezel element="but" inputtag="IN.0" inputmask="0x01"><bounds x="89" y="25" width="2" height="2" /></bezel>
<bezel element="but" inputtag="IN.0" inputmask="0x02"><bounds x="89" y="29" width="2" height="2" /></bezel>
<bezel element="but" inputtag="IN.0" inputmask="0x04"><bounds x="89" y="33" width="2" height="2" /></bezel>
<bezel element="but" inputtag="IN.0" inputmask="0x08"><bounds x="89" y="37" width="2" height="2" /></bezel>
<bezel element="but" inputtag="IN.0" inputmask="0x10"><bounds x="89" y="41" width="2" height="2" /></bezel>
<bezel element="but" inputtag="IN.0" inputmask="0x20"><bounds x="89" y="45" width="2" height="2" /></bezel>
<bezel element="but" inputtag="IN.0" inputmask="0x40"><bounds x="89" y="49" width="2" height="2" /></bezel>
<bezel element="but" inputtag="IN.1" inputmask="0x40"><bounds x="89" y="53" width="2" height="2" /></bezel>
<bezel element="but" inputtag="IN.1" inputmask="0x20"><bounds x="89" y="57" width="2" height="2" /></bezel>
<bezel element="but" inputtag="IN.1" inputmask="0x10"><bounds x="89" y="61" width="2" height="2" /></bezel>
<bezel element="but" inputtag="IN.1" inputmask="0x08"><bounds x="89" y="65" width="2" height="2" /></bezel>
<bezel element="but" inputtag="IN.1" inputmask="0x04"><bounds x="89" y="69" width="2" height="2" /></bezel>
<bezel element="but" inputtag="IN.1" inputmask="0x02"><bounds x="89" y="73" width="2" height="2" /></bezel>
<bezel element="but" inputtag="IN.1" inputmask="0x01"><bounds x="89" y="77" width="2" height="2" /></bezel>
<bezel name="8.2" element="led2"><bounds x="89.25" y="9.25" width="1.5" height="1.5" /></bezel>
<bezel name="8.1" element="led2"><bounds x="89.25" y="13.25" width="1.5" height="1.5" /></bezel>
<bezel name="8.3" element="led2"><bounds x="89.25" y="17.25" width="1.5" height="1.5" /></bezel>
<bezel name="8.0" element="led2"><bounds x="89.25" y="21.25" width="1.5" height="1.5" /></bezel>
<bezel element="text_r1"><bounds x="91.5" y="9" width="10" height="2" /></bezel>
<bezel element="text_r2"><bounds x="91.5" y="13" width="10" height="2" /></bezel>
<bezel element="text_r3"><bounds x="91.5" y="17" width="10" height="2" /></bezel>
<bezel element="text_r4"><bounds x="91.5" y="25" width="10" height="2" /></bezel>
<bezel element="text_r5"><bounds x="91.5" y="29" width="10" height="2" /></bezel>
<bezel element="text_r6"><bounds x="91.5" y="33" width="10" height="2" /></bezel>
<bezel element="text_r1"><bounds x="91.5" y="61" width="10" height="2" /></bezel>
<bezel element="text_r2"><bounds x="91.5" y="65" width="10" height="2" /></bezel>
<bezel element="text_r7"><bounds x="91.5" y="69" width="10" height="2" /></bezel>
<bezel element="text_r8"><bounds x="91.5" y="73" width="10" height="2" /></bezel>
<bezel element="text_r9"><bounds x="91.5" y="77" width="10" height="2" /></bezel>
<bezel element="text_p6"><bounds x="94.5" y="36" width="3.3" height="3.3" /><color alpha="0.82" /></bezel>
<bezel element="text_p5"><bounds x="94.5" y="40" width="3.3" height="3.3" /><color alpha="0.82" /></bezel>
<bezel element="text_p4"><bounds x="94.5" y="44" width="3.3" height="3.3" /><color alpha="0.82" /></bezel>
<bezel element="text_p3"><bounds x="94.5" y="48" width="3.3" height="3.3" /><color alpha="0.82" /></bezel>
<bezel element="text_p2"><bounds x="94.5" y="52" width="3.3" height="3.3" /><color alpha="0.82" /></bezel>
<bezel element="text_p1"><bounds x="94.5" y="56" width="3.3" height="3.3" /><color alpha="0.82" /></bezel>
</view>
</mamelayout>

View File

@ -34075,6 +34075,9 @@ zerohour // 8011 (c) Universal
zerohoura // 8011 (c) Universal
zerohouri //
@source:regence.cpp
regence
@source:relief.cpp
relief // 136093 (c) 1992
relief2 // 136093 (c) 1992

View File

@ -709,6 +709,7 @@ rc759.cpp
rcm32p.cpp
rd100.cpp
rd110.cpp
regence.cpp
replicator.cpp
rex6000.cpp
riscpc.cpp