sc6.cpp: rename gambit to classic, update miniscc internal artwork and correct cpu type now that EA pin works

New working systems
-------------------
Gambit Voice [hap, Sean Riddle]
This commit is contained in:
hap 2024-08-14 20:08:45 +02:00
parent 1d62461304
commit f943b25a02
12 changed files with 750 additions and 251 deletions

View File

@ -442,7 +442,7 @@ void csc_state::pia0_ca2_w(int state)
void csc_state::pia1_pa_w(u8 data)
{
// d0-d5: TSI C0-C5
// d0-d5: S14001A C0-C5
m_speech->data_w(data & 0x3f);
// d0-d7: data for the 4 7seg leds, bits are ABFGHCDE (H is extra led)
@ -455,10 +455,10 @@ void csc_state::pia1_pb_w(u8 data)
// d0: speech ROM A12
m_speech->set_rom_bank(data & 1);
// d1: TSI START line
// d1: S14001A start pin
m_speech->start_w(BIT(data, 1));
// d4: lower TSI volume
// d4: lower S14001A volume
m_speech->set_output_gain(0, (data & 0x10) ? 0.25 : 1.0);
}
@ -467,14 +467,14 @@ u8 csc_state::pia1_pb_r()
// d2: printer?
u8 data = 0x04;
// d3: TSI BUSY line
// d3: S14001A busy pin
if (m_speech->busy_r())
data |= 0x08;
// d5: button row 8
data |= (read_inputs() >> 3 & 0x20);
// d6,d7: language switches(hardwired with 2 resistors/jumpers)
// d6,d7: language jumpers (hardwired)
return data | (*m_language << 6 & 0xc0);
}

View File

@ -252,8 +252,8 @@ u8 elite_state::input_r()
void elite_state::ppi_porta_w(u8 data)
{
// d0-d5: TSI C0-C5
// d6: TSI START line
// d0-d5: S14001A C0-C5
// d6: S14001A start pin
m_speech->data_w(data & 0x3f);
m_speech->start_w(BIT(data, 6));
@ -273,7 +273,7 @@ void elite_state::ppi_portc_w(u8 data)
// d4: speech ROM A12
m_speech->set_rom_bank(BIT(data, 4));
// d5: lower TSI volume
// d5: lower S14001A volume
m_speech->set_output_gain(0, (data & 0x20) ? 0.25 : 1.0);
// d6,d7: bookrom bankswitch (model EAG)
@ -286,10 +286,10 @@ u8 elite_state::ppi_portb_r()
// d0: printer? white wire from LED pcb
u8 data = 1;
// d1: TSI BUSY line
// d1: S14001A busy pin
data |= (m_speech->busy_r()) ? 2 : 0;
// d2,d3: language switches(hardwired)
// d2,d3: language jumpers (hardwired)
data |= *m_language << 2 & 0x0c;
// d5: 3 more buttons

View File

@ -24,7 +24,7 @@ CPU: GTE G65SC102P-3, 32 KB PRG ROM: AMI 101-1080A01(IC5), 8192x8 SRAM SRM2264C1
PCB 2: 510.1117A01
Speech: TSI S14001A, 32 KB ROM: AMI 101-1081A01(IC2)
Dip Switches set ROM A13 and ROM A14, on the side of the board
DIP Switches set ROM A13 and ROM A14, on the side of the board
ROM A12 is tied to S14001A's A11 (yuck)
ROM A11 is however tied to the CPU's XYZ
@ -126,7 +126,7 @@ basically same as (Par) Excellence hardware, reskinned board
Designer 2100 (model 6103): exactly same, but running at 5MHz
(Designer 1500 is on 80C50 hardware, same ROM as The Gambit, see sc6.cpp)
(Designer 1500 is on 80C50 hardware, same ROM as The Classic, see sc6.cpp)
*******************************************************************************/
@ -222,7 +222,7 @@ void excel_state::machine_start()
I/O
*******************************************************************************/
// speech
// speech (fexcelv)
void excel_state::init_fexcelv()
{
@ -230,7 +230,7 @@ void excel_state::init_fexcelv()
const u32 len = memregion("speech")->bytes();
assert(len == 0x8000);
// TSI A11 is A12, program controls A11, user controls A13,A14(language switches)
// program controls A11, user controls A13,A14(language switches)
std::vector<u8> buf(len);
memcpy(&buf[0], rom, len);
for (int i = 0; i < len; i++)
@ -249,12 +249,12 @@ void excel_state::speech_w(u8 data, u8 mask)
// a0-a2,d2 (from ttl_w): 74259(2) to speech board
m_speech_data = (m_speech_data & ~mask) | ((data & 4) ? mask : 0);
// 74259 Q6: TSI ROM A11
// 74259 Q6: speech ROM A11
m_speech_bank = (m_speech_bank & ~1) | BIT(m_speech_data, 6);
m_speech->set_rom_bank(m_speech_bank);
// Q0-Q5: TSI C0-C5
// Q7: TSI START line
// Q0-Q5: S14001A C0-C5
// Q7: S14001A start pin
m_speech->data_w(m_speech_data & 0x3f);
m_speech->start_w(BIT(m_speech_data, 7));
}
@ -302,7 +302,7 @@ u8 excel_state::ttl_r(offs_t offset)
if (m_inputs[2] != nullptr && sel == 0 && ~m_select & 0x80)
d7 = m_inputs[2]->read() & 0x80;
// a0-a2,d6: from speech board: language switches and TSI BUSY line, otherwise tied to VCC
// a0-a2,d6: from speech board: language switches and S14001A busy pin, otherwise tied to VCC
u8 d6 = (m_inputs[1].read_safe(0xff) >> offset & 1) ? 0x40 : 0;
// a0-a2,d7: multiplexed inputs (active low)

View File

@ -1,17 +1,28 @@
// license:BSD-3-Clause
// copyright-holders:hap
// thanks-to:yoyo_chessboard, Berger
// thanks-to:yoyo_chessboard, Berger, Sean Riddle
/*******************************************************************************
Fidelity Sensory Chess Challenger 6 (model SC6)
Fidelity Mini Sensory Chess Challenger (model MSC, 1982 version)
Fidelity The Gambit (model 6084)
Fidelity The Classic (model 6079)
Fidelity Gambit Voice (model 6085)
The chess engine is by Ron Nelson. These are all on similar hardware. Several
models are equal to eachother from an emulator's perspective, hence some aren't
included in MAME, see list below.
Known MCU ROM serials:
- 7203 100-1012B01 (1982), Mini Sensory Chess Challenger
- 9517 [no label] (1985), The Classic (model CC8)
- 9311 100-1020B02 (1986), The Classic (model 6079), The Gambit, Silver Bullet
- 9311 100-1020B01 (1989), The Gambit, Designer 1500, Peri Beta
- 9337 100-1020C01 (1987), Gambit Voice
100-1020B01 ROM contents is confirmed to be identical to 100-1020B02.
TODO:
- MSC MCU is currently emulated as I8039, due to missing EA pin emulation
- different button panel for fidel_msc_v2 artwork
- verify if the 1985 version of The Classic the same ROM
- dump/add Gambit Voice MCU
- is The Classic model CC8 a different ROM? and what about model 6079D?
--------------------------------------------------------------------------------
@ -40,55 +51,65 @@ MCU ports I/O is identical to SC6.
It accepts the same modules as the 1st MSC version. See msc.cpp for known modules.
The module overrides the internal ROM, by asserting the EA pin.
--------------------------------------------------------------------------------
The Gambit(v3) hardware notes:
- PCB label: 510-1115A01 (1986 PCB, but chips from 1989)
- TMP80C50AP-6-9311 MCU, 4KB internal ROM, 6MHz XTAL
- buzzer, 16 leds, 8*8 chessboard buttons
The Gambit either has a black/white button panel color theme, or black/red/white,
more commonly seen on newer versions, and Gambit Voice.
MCU ports I/O again identical to SC6.
The same MCU+ROM was also used in Designer 1500(PCB label 510.1131A01).
And also in The Classic(PCB label 510-1095A01), 100-1020B02 MCU.
100-1020B02 ROM contents is confirmed to be identical to 100-1020B01.
Gambit Voice hardware notes:
- TMP80C50AP-6-9311 MCU, 4KB internal ROM, 6MHz XTAL
- 510.1117A01 sound PCB, the one from Excel Voice, but with 2332 ROM
- speaker, 16 leds, 8*8 chessboard buttons
Silver Bullet hardware notes:
- PCB from MSC, but lose/check leds unpopulated
- TMP80C50AP-6-9311 MCU, 4KB internal ROM, 6MHz XTAL
- buzzer, 16 leds, 8*8 chessboard buttons, module slot
- buzzer, 16 leds, 8*8 chessboard buttons, module slot (takes MSC modules)
To summarize, known MCU chip ROM serials+year:
- [no label] (1985), The Classic (model CC8)
- 100-1020B01 (1989), The Gambit, Designer 1500, Peri Beta
- 100-1020B02 (1986), The Gambit, Silver Bullet
- 100-1020B02 (1987), The Classic (model 6079)
- 100-1020C01 (1987), Gambit Voice
--------------------------------------------------------------------------------
The Classic (model CC8) hardware notes:
- PCB label: 510-1095A01
- TMP80C50AP-6-9517 MCU, 4KB internal ROM, 6MHz XTAL
- buzzer, 16 leds, 8*8 chessboard buttons
The Classic (model 6079) hardware notes:
- TMP80C50AP-6-9311 MCU, rest is same as model CC8
The Gambit hardware notes:
- PCB label: 510-1115A01
- rest is same as The Classic (model 6079)
The Gambit either has a black/white button panel color theme, or black/red/white,
which was more commonly seen on newer versions and Gambit Voice.
Designer 1500 hardware notes:
- PCB label: 510.1131A01
- rest is same as The Classic (model 6079)
Peri Beta has the same PCB/ROM as Designer 1500, only the housing differs.
--------------------------------------------------------------------------------
Gambit Voice hardware notes:
- TMP80C50AP-6-9337 MCU, 4KB internal ROM, 6MHz XTAL
- 510.1117A01 sound PCB (TSI S14001A, 4KB or 8KB ROM)
- speaker, 16 leds, 8*8 chessboard buttons
The sound PCB is the same as the one from Excel Voice (see excel.cpp), except
with a smaller ROM, and no language selection DIP switches. It only supports
the English or French speech ROM.
As noted above, the non-voice Gambit is the same ROM as The Classic (model 6079).
*******************************************************************************/
#include "emu.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
#include "cpu/mcs48/mcs48.h"
#include "machine/sensorboard.h"
#include "sound/dac.h"
#include "sound/s14001a.h"
#include "video/pwm.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
#include "softlist_dev.h"
#include "speaker.h"
// internal artwork
#include "fidel_gambit.lh"
#include "fidel_classic.lh"
#include "fidel_gambitv.lh"
#include "fidel_msc_v2.lh"
#include "fidel_sc6.lh"
@ -105,17 +126,23 @@ public:
m_board(*this, "board"),
m_display(*this, "display"),
m_dac(*this, "dac"),
m_speech(*this, "speech"),
m_language(*this, "language"),
m_cart(*this, "cartslot"),
m_inputs(*this, "IN.0")
{ }
// machine configs
void msc(machine_config &config);
template <typename T> void cpu_config(T &maincpu);
void shared(machine_config &config);
void sc6(machine_config &config);
void gambit(machine_config &config);
void msc(machine_config &config);
void classic(machine_config &config);
void gambitv(machine_config &config);
protected:
virtual void machine_start() override;
virtual void machine_reset() override;
private:
// devices/pointers
@ -123,34 +150,41 @@ private:
required_region_ptr<u8> m_rom;
required_device<sensorboard_device> m_board;
required_device<pwm_display_device> m_display;
required_device<dac_1bit_device> m_dac;
optional_device<dac_1bit_device> m_dac;
optional_device<s14001a_device> m_speech;
optional_region_ptr<u8> m_language;
optional_device<generic_slot_device> m_cart;
required_ioport m_inputs;
u8 m_led_select = 0;
u8 m_inp_mux = 0;
u8 m_speech_data = 0;
// address maps
void msc_map(address_map &map);
void sc6_map(address_map &map);
// I/O handlers
void update_display();
void mux_w(u8 data);
void select_w(u8 data);
u8 rom_r(offs_t offset);
u8 read_inputs();
u8 input_r();
int input6_r();
int input7_r();
u8 msc_rom_r(offs_t offset);
void speech_w(offs_t offset, u8 data, u8 mem_mask);
u8 speech_r();
};
void sc6_state::machine_start()
{
// register for savestates
save_item(NAME(m_led_select));
save_item(NAME(m_inp_mux));
save_item(NAME(m_speech_data));
}
void sc6_state::machine_reset()
{
// EA pin is tied to VCC when a cartridge is inserted
m_maincpu->set_input_line(MCS48_INPUT_EA, (m_cart && m_cart->exists()) ? ASSERT_LINE : CLEAR_LINE);
}
@ -159,38 +193,29 @@ void sc6_state::machine_start()
I/O
*******************************************************************************/
void sc6_state::update_display()
{
// MSC: 18 leds, SC6: 2 7seg leds
m_display->matrix(m_led_select, 1 << m_inp_mux);
}
// common
void sc6_state::mux_w(u8 data)
{
// P24-P27: 7442 A-D (or 74145)
// 7442 0-8: input mux, led data
m_inp_mux = data >> 4 & 0xf;
update_display();
m_display->write_mx(1 << m_inp_mux);
// 7442 9: speaker out
m_dac->write(BIT(1 << m_inp_mux, 9));
if (m_dac != nullptr)
m_dac->write(BIT(1 << m_inp_mux, 9));
}
void sc6_state::select_w(u8 data)
{
// P16,P17: led select
m_led_select = ~data >> 6 & 3;
update_display();
// P16,P17: digit/led select
m_display->write_my(~data >> 6 & 3);
}
u8 sc6_state::rom_r(offs_t offset)
{
// MSC reads from cartridge if it's inserted(A12 high), otherwise from internal ROM
return m_cart->exists() ? m_cart->read_rom(offset | 0x1000) : m_rom[offset];
}
u8 sc6_state::read_inputs()
u8 sc6_state::input_r()
{
// P10-P15,T0,T1: multiplexed inputs
u8 data = 0;
// read chessboard sensors
@ -204,22 +229,31 @@ u8 sc6_state::read_inputs()
return ~data;
}
u8 sc6_state::input_r()
// speech (gambitv)
u8 sc6_state::speech_r()
{
// P10-P15: multiplexed inputs low
return (read_inputs() & 0x3f) | 0xc0;
// P20: S14001A busy pin
u8 data = m_speech->busy_r();
// P21: language jumper
// P22,P23: unused?
return data | (*m_language << 1 & 2) | 0xfc;
}
int sc6_state::input6_r()
void sc6_state::speech_w(offs_t offset, u8 data, u8 mem_mask)
{
// T0: multiplexed inputs bit 6
return read_inputs() >> 6 & 1;
}
data &= mem_mask;
m_speech_data = data;
int sc6_state::input7_r()
{
// T1: multiplexed inputs bit 7
return read_inputs() >> 7 & 1;
// DB6: speech ROM A12
m_speech->set_rom_bank(BIT(data, 6));
// DB0-DB5: S14001A C0-C5
// DB7: S14001A start pin
m_speech->data_w(data & 0x3f);
m_speech->start_w(BIT(data, 7));
}
@ -228,14 +262,20 @@ int sc6_state::input7_r()
Address Maps
*******************************************************************************/
u8 sc6_state::msc_rom_r(offs_t offset)
{
// MSC module ROM A12 is forced high (lower half has a Z8 program)
return m_cart->read_rom(offset | 0x1000);
}
void sc6_state::msc_map(address_map &map)
{
map(0x0000, 0x0fff).r(FUNC(sc6_state::rom_r));
map(0x0000, 0x0fff).r(FUNC(sc6_state::msc_rom_r));
}
void sc6_state::sc6_map(address_map &map)
{
map(0x0000, 0x0fff).r("cartslot", FUNC(generic_slot_device::read_rom));
map(0x0000, 0x0fff).r(m_cart, FUNC(generic_slot_device::read_rom));
}
@ -263,7 +303,7 @@ static INPUT_PORTS_START( msc )
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Speaker / Bishop")
INPUT_PORTS_END
static INPUT_PORTS_START( gambit )
static INPUT_PORTS_START( gambitv )
PORT_START("IN.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Move / Pawn")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Hint / Knight")
@ -281,71 +321,91 @@ INPUT_PORTS_END
Machine Configs
*******************************************************************************/
void sc6_state::gambit(machine_config &config)
template <typename T>
void sc6_state::cpu_config(T &maincpu)
{
maincpu.p1_in_cb().set(FUNC(sc6_state::input_r)).mask(0x3f);
maincpu.p1_in_cb().append_constant(0xc0).mask(0xc0);
maincpu.p1_out_cb().set(FUNC(sc6_state::select_w));
maincpu.p2_out_cb().set(FUNC(sc6_state::mux_w));
maincpu.t0_in_cb().set(FUNC(sc6_state::input_r)).bit(6);
maincpu.t1_in_cb().set(FUNC(sc6_state::input_r)).bit(7);
}
void sc6_state::shared(machine_config &config)
{
// basic machine hardware
I8050(config, m_maincpu, 6_MHz_XTAL);
m_maincpu->p2_out_cb().set(FUNC(sc6_state::mux_w));
m_maincpu->p1_in_cb().set(FUNC(sc6_state::input_r));
m_maincpu->p1_out_cb().set(FUNC(sc6_state::select_w));
m_maincpu->t0_in_cb().set(FUNC(sc6_state::input6_r));
m_maincpu->t1_in_cb().set(FUNC(sc6_state::input7_r));
SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS);
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(2, 9);
config.set_default_layout(layout_fidel_gambit);
// sound hardware
SPEAKER(config, "speaker").front_center();
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
}
void sc6_state::msc(machine_config &config)
{
gambit(config);
// basic machine hardware
I8039(config.replace(), m_maincpu, 11_MHz_XTAL); // actually I8049
m_maincpu->set_addrmap(AS_PROGRAM, &sc6_state::msc_map);
m_maincpu->p2_out_cb().set(FUNC(sc6_state::mux_w));
m_maincpu->p1_in_cb().set(FUNC(sc6_state::input_r));
m_maincpu->p1_out_cb().set(FUNC(sc6_state::select_w));
m_maincpu->t0_in_cb().set(FUNC(sc6_state::input6_r));
m_maincpu->t1_in_cb().set(FUNC(sc6_state::input7_r));
config.set_default_layout(layout_fidel_msc_v2);
// cartridge
GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "fidel_msc");
SOFTWARE_LIST(config, "cart_list").set_original("fidel_msc");
}
void sc6_state::sc6(machine_config &config)
{
gambit(config);
// basic machine hardware
I8040(config.replace(), m_maincpu, 11_MHz_XTAL);
I8040(config, m_maincpu, 11_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &sc6_state::sc6_map);
m_maincpu->p2_out_cb().set(FUNC(sc6_state::mux_w));
m_maincpu->p1_in_cb().set(FUNC(sc6_state::input_r));
m_maincpu->p1_out_cb().set(FUNC(sc6_state::select_w));
m_maincpu->t0_in_cb().set(FUNC(sc6_state::input6_r));
m_maincpu->t1_in_cb().set(FUNC(sc6_state::input7_r));
cpu_config<i8040_device>(downcast<i8040_device &>(*m_maincpu));
shared(config);
// video hardware
m_display->set_segmask(0x3, 0x7f);
config.set_default_layout(layout_fidel_sc6);
// cartridge
GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "fidel_sc6").set_must_be_loaded(true);
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "fidel_sc6").set_must_be_loaded(true);
SOFTWARE_LIST(config, "cart_list").set_original("fidel_sc6");
}
void sc6_state::msc(machine_config &config)
{
I8049(config, m_maincpu, 11_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &sc6_state::msc_map);
cpu_config<i8049_device>(downcast<i8049_device &>(*m_maincpu));
shared(config);
config.set_default_layout(layout_fidel_msc_v2);
// cartridge
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "fidel_msc");
SOFTWARE_LIST(config, "cart_list").set_original("fidel_msc");
}
void sc6_state::classic(machine_config &config)
{
I8050(config, m_maincpu, 6_MHz_XTAL);
cpu_config<i8050_device>(downcast<i8050_device &>(*m_maincpu));
shared(config);
config.set_default_layout(layout_fidel_classic);
}
void sc6_state::gambitv(machine_config &config)
{
classic(config);
// basic machine hardware
m_maincpu->p2_in_cb().set(FUNC(sc6_state::speech_r));
m_maincpu->bus_in_cb().set([this](){ return m_speech_data; });
m_maincpu->bus_out_cb().set(FUNC(sc6_state::speech_w));
config.set_default_layout(layout_fidel_gambitv);
// sound hardware
config.device_remove("dac");
S14001A(config, m_speech, 25000); // R/C circuit, around 25khz
m_speech->add_route(ALL_OUTPUTS, "speaker", 0.75);
}
/*******************************************************************************
@ -358,14 +418,32 @@ ROM_START( fscc6 )
ROM_END
ROM_START( miniscc )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD("100-1012b01", 0x0000, 0x0800, CRC(ea3261f7) SHA1(1601358fdf0eee0b973c0f4c78bf679b8dada72a) ) // internal ROM
ROM_RELOAD( 0x0800, 0x0800)
ROM_REGION( 0x0800, "maincpu", 0 )
ROM_LOAD("p8049h_7203_100-1012b01.ic1", 0x0000, 0x0800, CRC(ea3261f7) SHA1(1601358fdf0eee0b973c0f4c78bf679b8dada72a) )
ROM_END
ROM_START( gambit )
ROM_START( classic )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD("100-1020b02", 0x0000, 0x1000, CRC(ba41b5ba) SHA1(1a5c5b2e990a07b9ff51eecfa952a4b890107797) ) // internal ROM
ROM_LOAD("tmp80c50ap-6-9311_100-1020b02.ic1", 0x0000, 0x1000, CRC(ba41b5ba) SHA1(1a5c5b2e990a07b9ff51eecfa952a4b890107797) )
ROM_END
ROM_START( gambitv )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD("tmp80c50ap-6-9337_100-1020c01.ic1", 0x0000, 0x1000, CRC(dafee386) SHA1(d67914fb2abd73c0068b7e61fc23d211c52d65d9) )
// speech ROM
ROM_DEFAULT_BIOS("en")
ROM_SYSTEM_BIOS(0, "en", "English")
ROM_SYSTEM_BIOS(1, "fr", "French")
ROM_REGION( 1, "language", 0 )
ROMX_FILL(0, 1, 1, ROM_BIOS(0) )
ROMX_FILL(0, 1, 0, ROM_BIOS(1) )
ROM_REGION( 0x2000, "speech", 0 )
ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) )
ROM_RELOAD( 0x1000, 0x1000)
ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(1) )
ROM_END
} // anonymous namespace
@ -376,8 +454,10 @@ ROM_END
Drivers
*******************************************************************************/
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
SYST( 1982, fscc6, 0, 0, sc6, sc6, sc6_state, empty_init, "Fidelity Electronics", "Sensory Chess Challenger \"6\"", MACHINE_SUPPORTS_SAVE )
SYST( 1982, miniscc, 0, 0, msc, msc, sc6_state, empty_init, "Fidelity Electronics", "Mini Sensory Chess Challenger (MCS-48 version)", MACHINE_SUPPORTS_SAVE ) // aka "Mini Sensory II"
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
SYST( 1982, fscc6, 0, 0, sc6, sc6, sc6_state, empty_init, "Fidelity Electronics", "Sensory Chess Challenger \"6\"", MACHINE_SUPPORTS_SAVE )
SYST( 1982, miniscc, 0, 0, msc, msc, sc6_state, empty_init, "Fidelity Electronics", "Mini Sensory Chess Challenger (MCS-48 version)", MACHINE_SUPPORTS_SAVE ) // aka "Mini Sensory II"
SYST( 1986, gambit, 0, 0, gambit, gambit, sc6_state, empty_init, "Fidelity International", "The Gambit", MACHINE_SUPPORTS_SAVE )
SYST( 1986, classic, 0, 0, classic, sc6, sc6_state, empty_init, "Fidelity International", "The Classic (model 6079)", MACHINE_SUPPORTS_SAVE )
SYST( 1987, gambitv, 0, 0, gambitv, gambitv, sc6_state, empty_init, "Fidelity International", "Gambit Voice", MACHINE_SUPPORTS_SAVE )

View File

@ -29,7 +29,7 @@ use this same ROM (three or four). The later chess boards use a slightly diffe
number, but the contents are identical.
Memory map (VCC):
-----------
-----------------
0000-0FFF: 4K 2332 ROM VCC1 or 101-32013
1000-1FFF: 4K 2332 ROM VCC2
2000-2FFF: 4K 2332 ROM VCC3
@ -37,7 +37,7 @@ Memory map (VCC):
6000-FFFF: empty
Memory map (UVC):
-----------
-----------------
0000-1FFF: 8K 2364 ROM 101-64017
2000-2FFF: 4K 2332 ROM 101-32010 or VCC3
4000-5FFF: 1K RAM (2114 SRAM x2)
@ -64,7 +64,7 @@ PB.2 - digit 0, bottom dot (W)
PB.3 - digit 1, top dot (W)
PB.4 - digit 2 (W)
PB.5 - digit 3 (W)
PB.6 - enable language switches (W, see below)
PB.6 - enable language jumpers (W, see below)
PB.7 - TSI BUSY line (R)
(button rows pulled up to 5V through 2.2K resistors)
@ -77,14 +77,14 @@ PC.5 - button column B (W)
PC.6 - button column C (W)
PC.7 - button column D (W)
language switches:
------------------
When PB.6 is pulled low, the language switches can be read. There are four.
Language jumpers:
-----------------
When PB.6 is pulled low, the language jumpers can be read. There are four.
They connect to the button rows. When enabled, the row(s) will read low if
the jumper is present. English only VCC's do not have the 367 or any pads stuffed.
The jumpers are labeled: French, German, Spanish, and special.
language latch:
Language latch:
---------------
There's an unstuffed 7474 on the board that connects to PA.6 and PA.7. It allows
one to latch the state of A12 to the speech ROM. The English version has the chip
@ -196,27 +196,27 @@ void vcc_state::ppi_porta_w(u8 data)
m_7seg_data = bitswap<8>(data,7,0,1,2,3,4,5,6);
update_display();
// d0-d5: TSI C0-C5
// d7: TSI START line
m_speech->data_w(data & 0x3f);
m_speech->start_w(BIT(data, 7));
// d6: language latch data
// d7: language latch clock (latch on high)
if (data & 0x80)
m_speech->set_rom_bank(BIT(data, 6));
// d0-d5: S14001A C0-C5
// d7: S14001A start pin
m_speech->data_w(data & 0x3f);
m_speech->start_w(BIT(data, 7));
}
u8 vcc_state::ppi_portb_r()
{
// d7: TSI BUSY line
// d7: S14001A busy pin
return (m_speech->busy_r()) ? 0x80 : 0x00;
}
void vcc_state::ppi_portb_w(u8 data)
{
// d0,d2-d5: digit/led select
// _d6: enable language switches
// _d6: enable language jumpers
m_led_select = data;
update_display();
}
@ -230,8 +230,8 @@ u8 vcc_state::ppi_portc_r()
if (BIT(m_inp_mux, i))
data |= m_inputs[i]->read();
// also language switches, hardwired with 4 jumpers
// 0(none wired): English, 1: German, 2: French, 4: Spanish, 8:Special(unused)
// also language jumpers (hardwired)
// 0(no jumper): English, 1: German, 2: French, 4: Spanish, 8: Special(unused)
if (~m_led_select & 0x40)
data |= *m_language;

View File

@ -123,10 +123,10 @@ PB.2 - hi/lo TSI speaker volume
PB.3 - violet wire to printer port?
PB.4 - white wire to printer port? (and TSI BUSY line)
PB.5 - selection jumper input (see below)
PB.6 - TSI start line
PB.6 - TSI START line
PB.7 - TSI ROM A12 line
selection jumpers:
Selection jumpers:
------------------
These act like another row of buttons. It is composed of two diode locations,
so there's up to 4 possible configurations. My board does not have either diode
@ -138,7 +138,7 @@ Anyways, the two jumpers are connected to button columns A and B and the common
connects to Z80A PIO PB.5, which basically makes a 10th button row. I would
expect that the software reads these once on startup only.
printer:
Printer:
--------
This is the 1st Fidelity chess computer with a printer port. Many later Fidelity chess
computers also have support for it. Two models were released:
@ -201,7 +201,6 @@ private:
u8 m_7seg_data = 0;
u8 m_cb_mux = 0;
u8 m_kp_mux = 0;
bool m_lan_switch = false;
// address maps
void main_map(address_map &map);
@ -226,7 +225,6 @@ void vsc_state::machine_start()
save_item(NAME(m_7seg_data));
save_item(NAME(m_cb_mux));
save_item(NAME(m_kp_mux));
save_item(NAME(m_lan_switch));
}
@ -245,7 +243,7 @@ void vsc_state::update_display()
void vsc_state::ppi_porta_w(u8 data)
{
// d0-d5: TSI C0-C5
// d0-d5: S14001A C0-C5
m_speech->data_w(data & 0x3f);
// d0-d7: data for the 4 7seg leds, bits are HGCBAFED (H is extra led)
@ -286,8 +284,8 @@ u8 vsc_state::pio_porta_r()
if (BIT(m_kp_mux, i))
data |= m_inputs[i]->read();
// also language switches(hardwired with 2 diodes)
if (m_lan_switch)
// also language jumpers (hardwired with 2 diodes)
if (m_kp_mux & 0x20)
data |= *m_language;
return data;
@ -295,28 +293,23 @@ u8 vsc_state::pio_porta_r()
u8 vsc_state::pio_portb_r()
{
u8 data = 0;
// d4: TSI BUSY line
data |= (m_speech->busy_r()) ? 0 : 0x10;
return data;
// d4: S14001A busy pin
return (m_speech->busy_r()) ? 0 : 0x10;
}
void vsc_state::pio_portb_w(u8 data)
{
// d0,d1: keypad input mux
// d5: enable language switch
m_kp_mux = data & 3;
m_lan_switch = bool(data & 0x20);
// d5: enable language jumpers
m_kp_mux = data;
// d7: TSI ROM A12
// d7: speech ROM A12
m_speech->set_rom_bank(BIT(data, 7));
// d6: TSI START line
// d6: S14001A start pin
m_speech->start_w(BIT(data, 6));
// d2: lower TSI volume
// d2: lower S14001A volume
m_speech->set_output_gain(0, (data & 4) ? 0.25 : 1.0);
}

View File

@ -0,0 +1,449 @@
<?xml version="1.0"?>
<!--
license:CC0-1.0
authors:hap
-->
<mamelayout version="2">
<!-- define elements -->
<element name="black"><rect><color red="0.15" 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.15" green="0.15" blue="0.15" /></disk></element>
<element name="disk_white"><disk><color red="0.81" green="0.8" blue="0.79" /></disk></element>
<element name="led0o">
<disk><color red="0.1" green="0.1" blue="0.1" /></disk>
</element>
<element name="led0r" defstate="0">
<disk state="0"><color red="0" green="0" blue="0" /></disk>
<disk state="1"><color red="1" green="0" blue="0" /></disk>
</element>
<element name="led0g" defstate="0">
<disk state="0"><color red="0" green="0" blue="0" /></disk>
<disk state="1"><color red="0" green="1" blue="0" /></disk>
</element>
<element name="ledr" defstate="0">
<disk state="0"><color red="0.1" green="0.01" blue="0.01" /></disk>
<disk state="1"><color red="1.0" green="0.1" blue="0.1" /></disk>
</element>
<element name="ledg" defstate="0">
<disk state="0"><color red="0.01" green="0.1" blue="0.01" /></disk>
<disk state="1"><color red="0.1" green="1.0" blue="0.1" /></disk>
</element>
<element name="hlb" 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.0" y="0.0" width="1.0" height="1.0" />
<color red="1.0" green="1.0" blue="1.0" />
</disk>
</element>
<element name="text_1"><text string="1"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_2"><text string="2"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_3"><text string="3"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_4"><text string="4"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_5"><text string="5"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_6"><text string="6"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_7"><text string="7"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_8"><text string="8"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_a"><text string="A"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_b"><text string="B"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_c"><text string="C"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_d"><text string="D"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_e"><text string="E"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_f"><text string="F"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_g"><text string="G"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_h"><text string="H"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_lb"><text string="CHECK"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_lc"><text string="MATE"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_ld"><text string="WHITE"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_le"><text string="BLACK"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_lf"><text string="I LOSE"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_re"><text string="RE"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_cl"><text string="CL"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_pb"><text string="PB"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_pv"><text string="PV"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_lv"><text string="LV"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_tb"><text string="TB"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_dm"><text string="DM"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_rv"><text string="RV"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_p1"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wk.svg" /><rect><color red="1" green="1" blue="1" alpha="0.1875" /></rect></element>
<element name="text_p2"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wq.svg" /><rect><color red="1" green="1" blue="1" alpha="0.1875" /></rect></element>
<element name="text_p3"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wr.svg" /><rect><color red="1" green="1" blue="1" alpha="0.1875" /></rect></element>
<element name="text_p4"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wb.svg" /><rect><color red="1" green="1" blue="1" alpha="0.1875" /></rect></element>
<element name="text_p5"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wn.svg" /><rect><color red="1" green="1" blue="1" alpha="0.1875" /></rect></element>
<element name="text_p6"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wp.svg" /><rect><color red="1" green="1" blue="1" alpha="0.1875" /></rect></element>
<!-- sb board -->
<element name="cblack"><rect><color red="0.41" green="0.4" blue="0.39" /></rect></element>
<element name="cwhite"><rect><color red="0.81" green="0.8" blue="0.79" /></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.svg" state="1"/>
<image file="chess/wn.svg" state="2"/>
<image file="chess/wb.svg" state="3"/>
<image file="chess/wr.svg" state="4"/>
<image file="chess/wq.svg" state="5"/>
<image file="chess/wk.svg" state="6"/>
<image file="chess/bp.svg" state="7"/>
<image file="chess/bn.svg" state="8"/>
<image file="chess/bb.svg" state="9"/>
<image file="chess/br.svg" state="10"/>
<image file="chess/bq.svg" state="11"/>
<image file="chess/bk.svg" state="12"/>
<!-- selected pieces -->
<image file="chess/wp.svg" state="13"><color alpha="0.5" /></image>
<image file="chess/wn.svg" state="14"><color alpha="0.5" /></image>
<image file="chess/wb.svg" state="15"><color alpha="0.5" /></image>
<image file="chess/wr.svg" state="16"><color alpha="0.5" /></image>
<image file="chess/wq.svg" state="17"><color alpha="0.5" /></image>
<image file="chess/wk.svg" state="18"><color alpha="0.5" /></image>
<image file="chess/bp.svg" state="19"><color alpha="0.5" /></image>
<image file="chess/bn.svg" state="20"><color alpha="0.5" /></image>
<image file="chess/bb.svg" state="21"><color alpha="0.5" /></image>
<image file="chess/br.svg" state="22"><color alpha="0.5" /></image>
<image file="chess/bq.svg" state="23"><color alpha="0.5" /></image>
<image file="chess/bk.svg" state="24"><color alpha="0.5" /></image>
</element>
<group name="sb_board">
<bounds x="0" y="0" width="80" height="80" />
<!-- squares (avoid seams) -->
<element ref="cwhite"><bounds x="0" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="0" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="0" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="0" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="0" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="10" y="10" width="11" height="11" /></element>
<element ref="cblack"><bounds x="20" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="30" y="10" width="11" height="11" /></element>
<element ref="cblack"><bounds x="40" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="50" y="10" width="11" height="11" /></element>
<element ref="cblack"><bounds x="60" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="70" y="10" width="10" height="11" /></element>
<element ref="cwhite"><bounds x="0" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="20" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="20" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="20" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="20" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="10" y="30" width="11" height="11" /></element>
<element ref="cblack"><bounds x="20" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="30" y="30" width="11" height="11" /></element>
<element ref="cblack"><bounds x="40" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="50" y="30" width="11" height="11" /></element>
<element ref="cblack"><bounds x="60" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="70" y="30" width="10" height="11" /></element>
<element ref="cwhite"><bounds x="0" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="40" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="40" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="40" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="40" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="10" y="50" width="11" height="11" /></element>
<element ref="cblack"><bounds x="20" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="30" y="50" width="11" height="11" /></element>
<element ref="cblack"><bounds x="40" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="50" y="50" width="11" height="11" /></element>
<element ref="cblack"><bounds x="60" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="70" y="50" width="10" height="11" /></element>
<element ref="cwhite"><bounds x="0" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="60" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="60" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="60" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="60" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="10" y="70" width="11" height="10" /></element>
<element ref="cblack"><bounds x="20" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="30" y="70" width="11" height="10" /></element>
<element ref="cblack"><bounds x="40" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="50" y="70" width="11" height="10" /></element>
<element ref="cblack"><bounds x="60" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="70" y="70" width="10" height="10" /></element>
<!-- sensors, pieces -->
<repeat count="8">
<param name="y" start="0" increment="10" />
<param name="i" start="8" increment="-1" />
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x01"><bounds x="0" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element name="piece_a~i~" ref="piece"><bounds x="0" y="~y~" width="10" height="10" /></element>
<element name="piece_b~i~" ref="piece"><bounds x="10" y="~y~" width="10" height="10" /></element>
<element name="piece_c~i~" ref="piece"><bounds x="20" y="~y~" width="10" height="10" /></element>
<element name="piece_d~i~" ref="piece"><bounds x="30" y="~y~" width="10" height="10" /></element>
<element name="piece_e~i~" ref="piece"><bounds x="40" y="~y~" width="10" height="10" /></element>
<element name="piece_f~i~" ref="piece"><bounds x="50" y="~y~" width="10" height="10" /></element>
<element name="piece_g~i~" ref="piece"><bounds x="60" y="~y~" width="10" height="10" /></element>
<element name="piece_h~i~" ref="piece"><bounds x="70" y="~y~" width="10" height="10" /></element>
</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"><text string="RESET"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uib3"><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"><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"><text string=" &lt;&lt;"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu2b"><text string=" &lt; "><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu2c"><text string=" &gt;"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu2d"><text string=" &gt;&gt;"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu3b"><text string="/"><color red="0.81" green="0.8" blue="0.79" /></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_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" />
<element ref="cblack"><bounds x="0" y="0" width="10" height="1" /></element>
<element ref="cblack"><bounds x="0" y="7" width="10" height="1" /></element>
<element ref="cblack"><bounds x="0" y="79" width="10" height="1" /></element>
<element ref="text_uit1"><bounds x="0" y="2" width="10" height="2" /></element>
<element ref="text_uit2"><bounds x="0" y="4" width="10" height="2" /></element>
<!-- board -->
<element ref="text_uib1"><bounds x="0" y="9" width="10" height="2" /></element>
<element ref="cwhite"><bounds x="1" y="11.5" width="8" height="2.5" /></element>
<element ref="cwhite"><bounds x="1" y="15" width="8" height="2.5" /></element>
<element ref="text_uib2"><bounds x="1.5" y="11.75" width="7" height="2" /></element>
<element ref="text_uib3"><bounds x="1.5" y="15.25" width="7" height="2" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x200"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x100"><bounds x="1" y="15" width="8" height="2.5" /><color alpha="0.25" /></element>
<!-- spawn -->
<element ref="text_uis1"><bounds x="0" y="20.5" width="10" height="2" /></element>
<element ref="cwhite"><bounds x="1" y="23" width="8" height="12" /></element>
<element ref="cwhite"><bounds x="1" y="36" width="8" height="12" /></element>
<element name="piece_ui1" ref="piece"><bounds x="1" y="23" width="4" height="4" /></element>
<element name="piece_ui2" ref="piece"><bounds x="1" y="27" width="4" height="4" /></element>
<element name="piece_ui3" ref="piece"><bounds x="1" y="31" width="4" height="4" /></element>
<element name="piece_ui4" ref="piece"><bounds x="5" y="23" width="4" height="4" /></element>
<element name="piece_ui5" ref="piece"><bounds x="5" y="27" width="4" height="4" /></element>
<element name="piece_ui6" ref="piece"><bounds x="5" y="31" width="4" height="4" /></element>
<element name="piece_ui7" ref="piece"><bounds x="1" y="36" width="4" height="4" /></element>
<element name="piece_ui8" ref="piece"><bounds x="1" y="40" width="4" height="4" /></element>
<element name="piece_ui9" ref="piece"><bounds x="1" y="44" width="4" height="4" /></element>
<element name="piece_ui10" ref="piece"><bounds x="5" y="36" width="4" height="4" /></element>
<element name="piece_ui11" ref="piece"><bounds x="5" y="40" width="4" height="4" /></element>
<element name="piece_ui12" ref="piece"><bounds x="5" y="44" width="4" height="4" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0001"><bounds x="1" y="23" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0002"><bounds x="1" y="27" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0004"><bounds x="1" y="31" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0008"><bounds x="5" y="23" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0010"><bounds x="5" y="27" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0020"><bounds x="5" y="31" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0040"><bounds x="1" y="36" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0080"><bounds x="1" y="40" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0100"><bounds x="1" y="44" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0200"><bounds x="5" y="36" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0400"><bounds x="5" y="40" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0800"><bounds x="5" y="44" width="4" height="4" /><color alpha="0.25" /></element>
<!-- hand -->
<element ref="text_uih1"><bounds x="0" y="51" width="10" height="2" /></element>
<element ref="cblack"><bounds x="1" y="53.5" width="8" height="6" /></element>
<element name="piece_ui0" ref="piece"><bounds x="2" y="53.5" width="6" height="6" /></element>
<element ref="cwhite"><bounds x="1" y="60.5" width="8" height="2.5" /></element>
<element ref="text_uih2"><bounds x="1.5" y="60.75" width="7" height="2" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x08"><bounds x="1" y="60.5" width="8" height="2.5" /><color alpha="0.25" /></element>
<!-- undo -->
<element ref="text_uiu1"><bounds x="0" y="66" width="10" height="2" /></element>
<element ref="cwhite"><bounds x="1" y="68.5" width="1.7" height="6" /></element>
<element ref="cwhite"><bounds x="3.1" y="68.5" width="1.7" height="6" /></element>
<element ref="cwhite"><bounds x="5.2" y="68.5" width="1.7" height="6" /></element>
<element ref="cwhite"><bounds x="7.3" y="68.5" width="1.7" height="6" /></element>
<element ref="text_uiu2a"><bounds x="1" y="69.5" width="1.7" height="4" /></element>
<element ref="text_uiu2b"><bounds x="3.1" y="69.5" width="1.7" height="4" /></element>
<element ref="text_uiu2c"><bounds x="5.2" y="69.5" width="1.7" height="4" /></element>
<element ref="text_uiu2d"><bounds x="7.3" y="69.5" width="1.7" height="4" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x10"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x20"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x40"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x80"><bounds x="7.3" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element name="count_ui0" ref="text_uiu3a"><bounds x="0" y="75" width="4" height="2" /></element>
<element name="count_ui1" ref="text_uiu3c"><bounds x="6" y="75" width="4" height="2" /></element>
<element ref="text_uiu3b"><bounds x="4" y="75" width="2" height="2" /></element>
</group>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="-13" right="99" top="-1.5" bottom="87.5" />
<element ref="white"><bounds x="-1" y="-1.5" width="100" height="89" /></element>
<element ref="black"><bounds x="3" y="2.5" width="81" height="81" /></element>
<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 -->
<element ref="text_8"><bounds x="0.2" y="7" width="2" height="2" /></element>
<element ref="text_7"><bounds x="0.2" y="17" width="2" height="2" /></element>
<element ref="text_6"><bounds x="0.2" y="27" width="2" height="2" /></element>
<element ref="text_5"><bounds x="0.2" y="37" width="2" height="2" /></element>
<element ref="text_4"><bounds x="0.2" y="47" width="2" height="2" /></element>
<element ref="text_3"><bounds x="0.2" y="57" width="2" height="2" /></element>
<element ref="text_2"><bounds x="0.2" y="67" width="2" height="2" /></element>
<element ref="text_1"><bounds x="0.2" y="77" width="2" height="2" /></element>
<element ref="text_a"><bounds x="7.5" y="84.5" width="2" height="2" /></element>
<element ref="text_b"><bounds x="17.5" y="84.5" width="2" height="2" /></element>
<element ref="text_c"><bounds x="27.5" y="84.5" width="2" height="2" /></element>
<element ref="text_d"><bounds x="37.5" y="84.5" width="2" height="2" /></element>
<element ref="text_e"><bounds x="47.5" y="84.5" width="2" height="2" /></element>
<element ref="text_f"><bounds x="57.5" y="84.5" width="2" height="2" /></element>
<element ref="text_g"><bounds x="67.5" y="84.5" width="2" height="2" /></element>
<element ref="text_h"><bounds x="77.5" y="84.5" width="2" height="2" /></element>
<!-- bottom side labels -->
<element ref="text_lb"><bounds xc="14.45" y="84.6" width="10" height="1.25" /></element>
<element ref="text_lc"><bounds xc="24.45" y="84.6" width="10" height="1.25" /></element>
<element ref="text_ld"><bounds xc="34.45" y="84.6" width="10" height="1.25" /></element>
<element ref="text_le"><bounds xc="44.45" y="84.6" width="10" height="1.25" /></element>
<element ref="text_lf"><bounds xc="54.45" y="84.6" width="10" height="1.25" /></element>
<!-- chessboard leds -->
<element name="0.7" ref="ledr"><bounds x="3.7" y="11.3" width="1.5" height="1.5" /></element>
<element name="0.6" ref="ledr"><bounds x="3.7" y="21.3" width="1.5" height="1.5" /></element>
<element name="0.5" ref="ledr"><bounds x="3.7" y="31.3" width="1.5" height="1.5" /></element>
<element name="0.4" ref="ledr"><bounds x="3.7" y="41.3" width="1.5" height="1.5" /></element>
<element name="0.3" ref="ledr"><bounds x="3.7" y="51.3" width="1.5" height="1.5" /></element>
<element name="0.2" ref="ledr"><bounds x="3.7" y="61.3" width="1.5" height="1.5" /></element>
<element name="0.1" ref="ledr"><bounds x="3.7" y="71.3" width="1.5" height="1.5" /></element>
<element name="1.1" ref="ledg"><bounds x="13.7" y="81.3" width="1.5" height="1.5" /></element>
<element name="1.2" ref="ledg"><bounds x="23.7" y="81.3" width="1.5" height="1.5" /></element>
<element name="1.3" ref="ledg"><bounds x="33.7" y="81.3" width="1.5" height="1.5" /></element>
<element name="1.4" ref="ledg"><bounds x="43.7" y="81.3" width="1.5" height="1.5" /></element>
<element name="1.5" ref="ledg"><bounds x="53.7" y="81.3" width="1.5" height="1.5" /></element>
<element name="1.6" ref="ledg"><bounds x="63.7" y="81.3" width="1.5" height="1.5" /></element>
<element name="1.7" ref="ledg"><bounds x="73.7" y="81.3" width="1.5" height="1.5" /></element>
<element ref="led0o"><bounds x="3.7" y="81.3" width="1.5" height="1.5" /></element>
<element name="0.0" ref="led0r" blend="add"><bounds x="3.7" y="81.3" width="1.5" height="1.5" /></element>
<element name="1.0" ref="led0g" blend="add"><bounds x="3.7" y="81.3" width="1.5" height="1.5" /></element>
<!-- right side -->
<element ref="disk_black"><bounds x="89" y="13" width="7.4" height="7.4" /></element>
<element ref="disk_black"><bounds x="89" y="21.8" width="7.4" height="7.4" /></element>
<element ref="disk_black"><bounds x="89" y="30.6" width="7.4" height="7.4" /></element>
<element ref="disk_black"><bounds x="89" y="39.4" width="7.4" height="7.4" /></element>
<element ref="disk_black"><bounds x="89" y="48.2" width="7.4" height="7.4" /></element>
<element ref="disk_black"><bounds x="89" y="57" width="7.4" height="7.4" /></element>
<element ref="disk_black"><bounds x="89" y="65.8" width="7.4" height="7.4" /></element>
<element ref="disk_black"><bounds x="89" y="74.6" width="7.4" height="7.4" /></element>
<element ref="disk_white"><bounds x="89.7" y="13.7" width="6" height="6" /></element>
<element ref="disk_white"><bounds x="89.7" y="22.5" width="6" height="6" /></element>
<element ref="disk_white"><bounds x="89.7" y="31.3" width="6" height="6" /></element>
<element ref="disk_white"><bounds x="89.7" y="40.1" width="6" height="6" /></element>
<element ref="disk_white"><bounds x="89.7" y="48.9" width="6" height="6" /></element>
<element ref="disk_white"><bounds x="89.7" y="57.7" width="6" height="6" /></element>
<element ref="disk_white"><bounds x="89.7" y="66.5" width="6" height="6" /></element>
<element ref="disk_white"><bounds x="89.7" y="75.3" width="6" height="6" /></element>
<element ref="text_re"><bounds x="90.2" y="15.2" width="5" height="3" /></element>
<element ref="text_cl"><bounds x="90.2" y="24" width="5" height="3" /></element>
<element ref="text_pb"><bounds x="90.2" y="32.8" width="5" height="3" /></element>
<element ref="text_pv"><bounds x="90.2" y="41.6" width="5" height="3" /></element>
<element ref="text_lv"><bounds x="90.2" y="50.4" width="5" height="3" /></element>
<element ref="text_tb"><bounds x="90.2" y="59.2" width="5" height="3" /></element>
<element ref="text_dm"><bounds x="90.2" y="68" width="5" height="3" /></element>
<element ref="text_rv"><bounds x="90.2" y="76.8" width="5" height="3" /></element>
<repeat count="6">
<param name="y" start="31.9" increment="8.8" />
<param name="i" start="1" increment="1" />
<element ref="text_p~i~" blend="multiply"><bounds x="84.5" y="~y~" width="4.4" height="4.4" /></element>
</repeat>
<element ref="hlb" inputtag="IN.0" inputmask="0x80"><bounds x="89" y="13" width="7.4" height="7.4" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x40"><bounds x="89" y="21.8" width="7.4" height="7.4" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x20"><bounds x="89" y="30.6" width="7.4" height="7.4" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x10"><bounds x="89" y="39.4" width="7.4" height="7.4" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x08"><bounds x="89" y="48.2" width="7.4" height="7.4" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x04"><bounds x="89" y="57" width="7.4" height="7.4" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x02"><bounds x="89" y="65.8" width="7.4" height="7.4" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x01"><bounds x="89" y="74.6" width="7.4" height="7.4" /><color alpha="0.3" /></element>
</view>
</mamelayout>

View File

@ -364,8 +364,8 @@ authors:hap
<group ref="sb_ui"><bounds x="-12" y="3" width="10" height="80" /></group>
<!-- chessboard leds -->
<element ref="text_lose"><bounds x="88" y="75" width="9.4" height="2.5" /></element>
<element ref="text_check"><bounds x="88" y="81.75" width="9.4" height="2.5" /></element>
<element ref="text_lose"><bounds x="88" y="75.25" width="9.4" height="2.25" /></element>
<element ref="text_check"><bounds x="88" y="82" width="9.4" height="2.25" /></element>
<element name="0.8" ref="led"><bounds x="91.95" y="78.0" width="1.5" height="1.5" /></element>
<element name="1.8" ref="led"><bounds x="91.95" y="84.75" width="1.5" height="1.5" /></element>

View File

@ -9,23 +9,25 @@ authors:hap
<element name="black"><rect><color red="0.15" 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.15" green="0.15" blue="0.15" /></disk></element>
<element name="disk_white"><disk><color red="0.81" green="0.8" blue="0.79" /></disk></element>
<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="hlb" 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.0" y="0.0" width="1.0" height="1.0" />
<color red="1.0" green="1.0" blue="1.0" />
</disk>
<element name="but" defstate="0">
<rect>
<bounds xc="0" yc="0" width="5.4" height="3.6" />
<color red="0.01" green="0.01" blue="0.01" />
</rect>
<rect>
<bounds xc="0" yc="0" width="4.9" height="3.1" />
<color red="0.55" green="0.25" blue="0.15" />
</rect>
<rect state="1">
<bounds xc="0" yc="0" width="4.9" height="3.1" />
<color red="1" green="1" blue="1" alpha="0.18" />
</rect>
</element>
<element name="text_1"><text string="1"><color red="0.01" green="0.01" blue="0.01" /></text></element>
@ -56,13 +58,14 @@ authors:hap
]]></data></image>
</element>
<element name="text_re"><text string="RE"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_cl"><text string="CL"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_pb"><text string="PB"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_pv"><text string="PV"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_lv"><text string="LV"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_dm"><text string="DM"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_rv"><text string="RV"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_l1"><text string="RE"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_l2"><text string="CL"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_l3"><text string="PB"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_l4"><text string="PV"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_l5"><text string="LV"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_l6"><text string=" "></text></element>
<element name="text_l7"><text string="DM"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_l8"><text string="RV"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_lose"><text string="I LOSE"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_check"><text string="CHECK"><color red="0.15" green="0.15" blue="0.15" /></text></element>
@ -337,8 +340,8 @@ authors:hap
<!-- build screen -->
<view name="Internal Layout">
<bounds left="-13" right="99" top="-1.5" bottom="87.5" />
<element ref="white"><bounds x="-1" y="-1.5" width="100" height="89" /></element>
<bounds left="-13" right="97" top="-1.5" bottom="87.5" />
<element ref="white"><bounds x="-1" y="-1.5" width="98" height="89" /></element>
<!-- chessboard coords -->
<element ref="text_8"><bounds x="1.1" y="11" width="2" height="2" /></element>
@ -364,11 +367,11 @@ authors:hap
<group ref="sb_ui"><bounds x="-12" y="3" width="10" height="80" /></group>
<!-- chessboard leds -->
<element ref="text_lose"><bounds x="88" y="75" width="9.4" height="2.5" /></element>
<element ref="text_check"><bounds x="88" y="81.75" width="9.4" height="2.5" /></element>
<element ref="text_lose"><bounds xc="91.7" y="75.75" width="9.4" height="2.25" /></element>
<element ref="text_check"><bounds xc="91.7" y="82" width="9.4" height="2.25" /></element>
<element name="0.8" ref="led"><bounds x="91.95" y="78.0" width="1.5" height="1.5" /></element>
<element name="1.8" ref="led"><bounds x="91.95" y="84.75" width="1.5" height="1.5" /></element>
<element name="0.8" ref="led"><bounds xc="91.7" y="78.5" width="1.5" height="1.5" /></element>
<element name="1.8" ref="led"><bounds xc="91.7" y="84.75" width="1.5" height="1.5" /></element>
<element name="0.7" ref="led"><bounds x="0.25" y="7.25" width="1.5" height="1.5" /></element>
<element name="0.6" ref="led"><bounds x="0.25" y="17.25" width="1.5" height="1.5" /></element>
@ -389,49 +392,25 @@ authors:hap
<element name="1.7" ref="led"><bounds x="77.75" y="84.75" width="1.5" height="1.5" /></element>
<!-- right side -->
<element ref="black"><bounds x="85.3" y="14" width="2.7" height="3" /></element>
<element ref="disk_black"><bounds x="89" y="3" width="7.4" height="7.4" /></element>
<element ref="disk_black"><bounds x="89" y="11.8" width="7.4" height="7.4" /></element>
<element ref="disk_black"><bounds x="89" y="20.6" width="7.4" height="7.4" /></element>
<element ref="disk_black"><bounds x="89" y="29.4" width="7.4" height="7.4" /></element>
<element ref="disk_black"><bounds x="89" y="38.2" width="7.4" height="7.4" /></element>
<element ref="disk_black"><bounds x="89" y="47" width="7.4" height="7.4" /></element>
<element ref="disk_black"><bounds x="89" y="55.8" width="7.4" height="7.4" /></element>
<element ref="disk_black"><bounds x="89" y="64.6" width="7.4" height="7.4" /></element>
<element ref="disk_white"><bounds x="89.7" y="3.7" width="6" height="6" /></element>
<element ref="disk_white"><bounds x="89.7" y="12.5" width="6" height="6" /></element>
<element ref="disk_white"><bounds x="89.7" y="21.3" width="6" height="6" /></element>
<element ref="disk_white"><bounds x="89.7" y="30.1" width="6" height="6" /></element>
<element ref="disk_white"><bounds x="89.7" y="38.9" width="6" height="6" /></element>
<element ref="disk_white"><bounds x="89.7" y="47.7" width="6" height="6" /></element>
<element ref="disk_white"><bounds x="89.7" y="56.5" width="6" height="6" /></element>
<element ref="disk_white"><bounds x="89.7" y="65.3" width="6" height="6" /></element>
<element ref="text_re"><bounds x="90.2" y="5.2" width="5" height="3" /></element>
<element ref="text_cl"><bounds x="90.2" y="14" width="5" height="3" /></element>
<element ref="text_pb"><bounds x="90.2" y="22.8" width="5" height="3" /></element>
<element ref="text_pv"><bounds x="90.2" y="31.6" width="5" height="3" /></element>
<element ref="text_lv"><bounds x="90.2" y="40.4" width="5" height="3" /></element>
<element ref="speaker"><bounds x="91.0" y="49.0" width="3.4" height="3.4" /></element>
<element ref="text_dm"><bounds x="90.2" y="58" width="5" height="3" /></element>
<element ref="text_rv"><bounds x="90.2" y="66.8" width="5" height="3" /></element>
<repeat count="6">
<param name="y" start="22.25" increment="8.8" />
<param name="y" start="23.65" increment="9.485" />
<param name="i" start="1" increment="1" />
<element ref="text_p~i~" blend="multiply"><bounds x="84.75" y="~y~" width="3.8" height="3.8" /></element>
<element ref="text_p~i~" blend="multiply"><bounds x="84.75" yc="~y~" width="3.8" height="3.8" /></element>
</repeat>
<element ref="hlb" inputtag="IN.0" inputmask="0x80"><bounds x="89" y="3" width="7.4" height="7.4" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x40"><bounds x="89" y="11.8" width="7.4" height="7.4" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x20"><bounds x="89" y="20.6" width="7.4" height="7.4" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x10"><bounds x="89" y="29.4" width="7.4" height="7.4" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x08"><bounds x="89" y="38.2" width="7.4" height="7.4" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x04"><bounds x="89" y="47" width="7.4" height="7.4" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x02"><bounds x="89" y="55.8" width="7.4" height="7.4" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x01"><bounds x="89" y="64.6" width="7.4" height="7.4" /><color alpha="0.3" /></element>
<repeat count="8">
<param name="y" start="-0.5" increment="9.485" />
<param name="i" start="1" increment="1" />
<element ref="text_l~i~"><bounds xc="91.7" y="~y~" width="7.4" height="3.4" /></element>
</repeat>
<element ref="speaker"><bounds xc="91.7" y="46.6" width="3.7" height="3.7" /></element>
<repeat count="8">
<param name="y" start="4.8" increment="9.485" />
<param name="mask" start="0x80" rshift="1" />
<element ref="but" inputtag="IN.0" inputmask="~mask~"><bounds xc="91.7" yc="~y~" width="5.4" height="3.6" /></element>
</repeat>
</view>
</mamelayout>

View File

@ -18108,8 +18108,9 @@ fscc12 //
fscc12a //
@source:fidelity/sc6.cpp
fscc6 //
gambit
classic
fscc6
gambitv
miniscc
@source:fidelity/sc8.cpp

View File

@ -22,9 +22,6 @@ TODO:
- it does a cold boot at every reset, so nvram won't work properly unless MAME
adds some kind of auxillary autosave state feature at power-off
BTANB:
- it still has the same AT level bug as sapphire (see sapphire.cpp)
*******************************************************************************/
#include "emu.h"