mirror of
https://github.com/holub/mame
synced 2025-10-04 16:34:53 +03:00
aci_prodigy: add chesspieces (nw)
This commit is contained in:
parent
b42c383f21
commit
4be0e75517
@ -1189,7 +1189,6 @@ function linkProjects_mame_mess(_target, _subtarget)
|
||||
"pitronic",
|
||||
"poly",
|
||||
"poly88",
|
||||
"prodigy",
|
||||
"psion",
|
||||
"qume",
|
||||
"radio",
|
||||
@ -1473,6 +1472,7 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/aci_boris.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/aci_borisdpl.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/aci_ggm.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/aci_prodigy.cpp",
|
||||
}
|
||||
|
||||
createMESSProjects(_target, _subtarget, "acorn")
|
||||
@ -2953,16 +2953,6 @@ files {
|
||||
MAME_DIR .. "src/mame/video/poly88.cpp",
|
||||
}
|
||||
|
||||
createMESSProjects(_target, _subtarget, "prodigy")
|
||||
files {
|
||||
MAME_DIR .. "src/mame/drivers/prodigy.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_prodigy.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_prodigy.h",
|
||||
}
|
||||
includedirs {
|
||||
ext_includedir("rapidjson"),
|
||||
}
|
||||
|
||||
createMESSProjects(_target, _subtarget, "psion")
|
||||
files {
|
||||
MAME_DIR .. "src/mame/drivers/psion.cpp",
|
||||
|
@ -139,12 +139,8 @@ files{
|
||||
MAME_DIR .. "src/mame/drivers/atarittl.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_stuntcyc.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_stuntcyc.h",
|
||||
MAME_DIR .. "src/mame/machine/nl_gtrak10.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_gtrak10.h",
|
||||
|
||||
MAME_DIR .. "src/mame/drivers/prodigy.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_prodigy.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_prodigy.h",
|
||||
MAME_DIR .. "src/mame/machine/nl_gtrak10.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_gtrak10.h",
|
||||
|
||||
MAME_DIR .. "src/mame/drivers/hazeltin.cpp",
|
||||
|
||||
@ -152,16 +148,16 @@ files{
|
||||
MAME_DIR .. "src/mame/includes/1942.h",
|
||||
MAME_DIR .. "src/mame/video/1942.cpp",
|
||||
|
||||
MAME_DIR .. "src/mame/drivers/gamemachine.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/gamemachine.cpp",
|
||||
|
||||
MAME_DIR .. "src/mame/drivers/popeye.cpp",
|
||||
MAME_DIR .. "src/mame/includes/popeye.h",
|
||||
MAME_DIR .. "src/mame/video/popeye.cpp",
|
||||
|
||||
MAME_DIR .. "src/mame/drivers/mario.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/mario.cpp",
|
||||
MAME_DIR .. "src/mame/includes/mario.h",
|
||||
MAME_DIR .. "src/mame/audio/nl_mario.cpp",
|
||||
MAME_DIR .. "src/mame/audio/nl_mario.h",
|
||||
MAME_DIR .. "src/mame/audio/nl_mario.cpp",
|
||||
MAME_DIR .. "src/mame/audio/nl_mario.h",
|
||||
MAME_DIR .. "src/mame/video/mario.cpp",
|
||||
MAME_DIR .. "src/mame/audio/mario.cpp",
|
||||
|
||||
@ -173,49 +169,49 @@ files{
|
||||
MAME_DIR .. "src/mame/audio/nl_kidniki.cpp",
|
||||
MAME_DIR .. "src/mame/audio/nl_kidniki.h",
|
||||
|
||||
MAME_DIR .. "src/mame/audio/cheekyms.cpp",
|
||||
MAME_DIR .. "src/mame/audio/cheekyms.h",
|
||||
MAME_DIR .. "src/mame/audio/nl_cheekyms.cpp",
|
||||
MAME_DIR .. "src/mame/audio/nl_cheekyms.h",
|
||||
MAME_DIR .. "src/mame/drivers/cheekyms.cpp",
|
||||
MAME_DIR .. "src/mame/includes/cheekyms.h",
|
||||
MAME_DIR .. "src/mame/video/cheekyms.cpp",
|
||||
MAME_DIR .. "src/mame/audio/cheekyms.cpp",
|
||||
MAME_DIR .. "src/mame/audio/cheekyms.h",
|
||||
MAME_DIR .. "src/mame/audio/nl_cheekyms.cpp",
|
||||
MAME_DIR .. "src/mame/audio/nl_cheekyms.h",
|
||||
MAME_DIR .. "src/mame/drivers/cheekyms.cpp",
|
||||
MAME_DIR .. "src/mame/includes/cheekyms.h",
|
||||
MAME_DIR .. "src/mame/video/cheekyms.cpp",
|
||||
|
||||
MAME_DIR .. "src/mame/audio/nl_zac1b11142.cpp",
|
||||
MAME_DIR .. "src/mame/audio/nl_zacc1b11142.h",
|
||||
MAME_DIR .. "src/mame/audio/zaccaria.cpp",
|
||||
MAME_DIR .. "src/mame/audio/zaccaria.h",
|
||||
MAME_DIR .. "src/mame/drivers/zaccaria.cpp",
|
||||
MAME_DIR .. "src/mame/includes/zaccaria.h",
|
||||
MAME_DIR .. "src/mame/video/zaccaria.cpp",
|
||||
MAME_DIR .. "src/mame/audio/nl_zac1b11142.cpp",
|
||||
MAME_DIR .. "src/mame/audio/nl_zacc1b11142.h",
|
||||
MAME_DIR .. "src/mame/audio/zaccaria.cpp",
|
||||
MAME_DIR .. "src/mame/audio/zaccaria.h",
|
||||
MAME_DIR .. "src/mame/drivers/zaccaria.cpp",
|
||||
MAME_DIR .. "src/mame/includes/zaccaria.h",
|
||||
MAME_DIR .. "src/mame/video/zaccaria.cpp",
|
||||
|
||||
MAME_DIR .. "src/mame/drivers/cocoloco.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/cocoloco.cpp",
|
||||
|
||||
MAME_DIR .. "src/mame/drivers/palestra.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_palestra.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_palestra.h",
|
||||
MAME_DIR .. "src/mame/drivers/palestra.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_palestra.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_palestra.h",
|
||||
|
||||
MAME_DIR .. "src/mame/drivers/testpat.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_tp1983.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_tp1983.h",
|
||||
MAME_DIR .. "src/mame/machine/nl_tp1985.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_tp1985.h",
|
||||
MAME_DIR .. "src/mame/drivers/testpat.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_tp1983.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_tp1983.h",
|
||||
MAME_DIR .. "src/mame/machine/nl_tp1985.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_tp1985.h",
|
||||
|
||||
-- Skeletons ...
|
||||
MAME_DIR .. "src/mame/drivers/a1supply.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/aleisttl.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/bailey.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/chicago.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/electra.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/exidyttl.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/fungames.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/meadwttl.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/monacogp.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/pse.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/ramtek.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/segattl.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/taitottl.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/usbilliards.cpp",
|
||||
-- Skeletons ...
|
||||
MAME_DIR .. "src/mame/drivers/a1supply.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/aleisttl.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/bailey.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/chicago.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/electra.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/exidyttl.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/fungames.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/meadwttl.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/monacogp.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/pse.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/ramtek.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/segattl.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/taitottl.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/usbilliards.cpp",
|
||||
}
|
||||
end
|
||||
|
||||
|
@ -99,7 +99,7 @@ void boris_state::update_reset(ioport_value state)
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// MK3850 ports/TTL
|
||||
|
@ -90,7 +90,7 @@ void borisdpl_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// F3870 ports
|
||||
|
@ -164,7 +164,7 @@ void ggm_state::update_reset(ioport_value state)
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// cartridge
|
||||
@ -288,7 +288,7 @@ static INPUT_PORTS_START( overlay_boris ) // actually most of the Chess games ha
|
||||
|
||||
PORT_MODIFY("IN.3")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) OVERLAY(0x01) PORT_CODE(KEYCODE_L) PORT_NAME("Level")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) OVERLAY(0x01) PORT_CODE(KEYCODE_H) PORT_NAME("Halt / Hint")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) OVERLAY(0x01) PORT_CODE(KEYCODE_I) PORT_NAME("Halt / Hint")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) OVERLAY(0x01) PORT_CODE(KEYCODE_S) PORT_NAME("Best")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) OVERLAY(0x01) PORT_CODE(KEYCODE_R) PORT_NAME("Restore")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) OVERLAY(0x01) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Enter")
|
||||
|
308
src/mame/drivers/aci_prodigy.cpp
Normal file
308
src/mame/drivers/aci_prodigy.cpp
Normal file
@ -0,0 +1,308 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:hap, Joakim Larsson Edstrom
|
||||
/******************************************************************************
|
||||
|
||||
Applied Concepts Destiny Prodigy
|
||||
Like most other chess computers by ACI, it was also distributed by Chafitz.
|
||||
|
||||
*******************************************************************************
|
||||
|
||||
PCB notes:
|
||||
|
||||
+-----------------------------------------------------------------------------------+
|
||||
|LEDS------------------------------------------+ +-----------------+ |
|
||||
| | | o o o o o o o o COLCN | | | |
|
||||
| V | | | 4 char BCD LED | |
|
||||
| O | 8 | +-----------------+ |
|
||||
| | ROWCN | ||||||||||||||||||| ____ |
|
||||
| O | 7 o|+----------------------+ / \ |
|
||||
| | o|| VIA | ( beep ) |
|
||||
| O | 6 o|| R6522 | \____/ |
|
||||
| | o|+----------------------+ |
|
||||
| O | 5 o|+----------------------+ |
|
||||
| | o|| CPU | |
|
||||
| O | 4 8 x 8 button matrix o|| R6502-13 | +--+ __ |
|
||||
| | o|+----------------------+ |74| PWR||
|
||||
| O | 3 o| o o +-------------+ |LS| SW >|
|
||||
| | | +=======+ | ROM | |14| __||
|
||||
| O | 2 | | 2MHz | | R2912 | +--+ |
|
||||
| | | | XTAL | +-------------+ +--+ |
|
||||
| O | 1 |++-------+ +-------------+ |74| |
|
||||
| | || 74145N | | RAM | |LS| |
|
||||
| | A B C D E F G H |+--------+ | M58725P | |00| |
|
||||
| +------------------------------------------+ +-------------+ +--+ |
|
||||
|LEDS-> O O O O O O O O OOOOOOOOOOOO KPDCN |
|
||||
+-----------------------------------------------------------------------------------+
|
||||
|
||||
Tracing the image shows that VIA Port A is used on the ROWCN and Port B on COLCN
|
||||
|
||||
The VIA pins CB1 and CB2 together with PB0 and PB1 via the 74145 drives the BCD display.
|
||||
The BCD display is of common anode type and each anode a0-a3 selects which digit that
|
||||
will be lit selected by PB0 and PB1. The segments to be lit is selected by the 8 bits
|
||||
shifted into the 74164 by clock from VIA CB1 and data from CB2.
|
||||
|
||||
Behind the BCD display we find the following supporting circuit:
|
||||
|
||||
4x7 segment BCD display
|
||||
+---+ +-----+ +---+---+---+---+
|
||||
+-----------------+ CB1 |74 |==/4/=>|2x |==/8/====>| 0 1 2 3 |
|
||||
| | VIA CB2 |164|==/4/=>|75491| segments | |
|
||||
| 4 char BCD LED | ===> 6522 +---+ +-----+ +---+---+---+---+
|
||||
+-----------------+ PB1--->|74 | | | | |
|
||||
||||||||||||||||||| PB2--->|145|=/4/=/R/=>b(4x )c=/4/==============>
|
||||
+---+ (PN2907)e=+ anodes
|
||||
|+5v
|
||||
|
||||
The keypad is connected to the 12 pin KPDCN connector left to right KP1:
|
||||
|
||||
Pin #: KP1 KP2 KP3 KP4 KP5 KP6 KP7 KP8 KP9 KP10 KP11 K12
|
||||
VIA : PB4 PB5 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7
|
||||
74145: Q8 Q9 - used to decode/ground one half of the KPAD at a time
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/m6502/m6502.h"
|
||||
#include "machine/6522via.h"
|
||||
#include "machine/sensorboard.h"
|
||||
#include "video/pwm.h"
|
||||
#include "sound/dac.h"
|
||||
#include "sound/volt_reg.h"
|
||||
#include "speaker.h"
|
||||
|
||||
// internal artwork
|
||||
#include "aci_prodigy.lh" // clickable
|
||||
|
||||
|
||||
namespace {
|
||||
|
||||
class prodigy_state : public driver_device
|
||||
{
|
||||
public:
|
||||
prodigy_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_via(*this, "via"),
|
||||
m_board(*this, "board"),
|
||||
m_display(*this, "display"),
|
||||
m_dac(*this, "dac"),
|
||||
m_inputs(*this, "IN.%u", 0)
|
||||
{ }
|
||||
|
||||
void prodigy(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
|
||||
private:
|
||||
// devices/pointers
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<via6522_device> m_via;
|
||||
required_device<sensorboard_device> m_board;
|
||||
required_device<pwm_display_device> m_display;
|
||||
required_device<dac_bit_interface> m_dac;
|
||||
required_ioport_array<2> m_inputs;
|
||||
|
||||
void main_map(address_map &map);
|
||||
|
||||
// I/O handlers
|
||||
void update_display();
|
||||
DECLARE_READ8_MEMBER(input1_r);
|
||||
DECLARE_READ8_MEMBER(input2_r);
|
||||
DECLARE_WRITE8_MEMBER(control_w);
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(shift_clock_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(shift_data_w);
|
||||
|
||||
u8 m_select;
|
||||
u8 m_led_data;
|
||||
u8 m_shift_data;
|
||||
u8 m_shift_clock;
|
||||
};
|
||||
|
||||
void prodigy_state::machine_start()
|
||||
{
|
||||
// zerofill
|
||||
m_select = 0;
|
||||
m_led_data = 0;
|
||||
m_shift_data = 0;
|
||||
m_shift_clock = 0;
|
||||
|
||||
// register for savestates
|
||||
save_item(NAME(m_select));
|
||||
save_item(NAME(m_led_data));
|
||||
save_item(NAME(m_shift_data));
|
||||
save_item(NAME(m_shift_clock));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// 6522 ports
|
||||
|
||||
void prodigy_state::update_display()
|
||||
{
|
||||
// 4 7seg leds via 74145 Q0-Q3 + leds via Q4,Q5
|
||||
m_display->matrix(1 << m_select, m_led_data);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(prodigy_state::shift_clock_w)
|
||||
{
|
||||
// shift 8-bit led/digit data on rising edge
|
||||
if (state && !m_shift_clock)
|
||||
{
|
||||
m_led_data = m_led_data << 1 | (m_shift_data & 1);
|
||||
update_display();
|
||||
}
|
||||
|
||||
m_shift_clock = state;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(prodigy_state::shift_data_w)
|
||||
{
|
||||
m_shift_data = state;
|
||||
}
|
||||
|
||||
READ8_MEMBER(prodigy_state::input1_r)
|
||||
{
|
||||
u8 data = 0;
|
||||
|
||||
// d0-d7: multiplexed inputs
|
||||
// read chessboard sensors via 74145 Q0-Q7
|
||||
if (m_select < 8)
|
||||
data = m_board->read_file(m_select);
|
||||
|
||||
// read keypad(low) via 74145 Q8,Q9
|
||||
else if (m_select == 8 || m_select == 9)
|
||||
data = m_inputs[m_select - 8]->read() & 0xff;
|
||||
|
||||
return ~data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(prodigy_state::input2_r)
|
||||
{
|
||||
u8 data = 0;
|
||||
|
||||
// d4,d5: keypad(high) via 74145 Q8,Q9
|
||||
if (m_select == 8 || m_select == 9)
|
||||
data = (m_inputs[m_select - 8]->read() >> 8 & 3) << 4;
|
||||
|
||||
// d6: ?
|
||||
|
||||
return ~data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(prodigy_state::control_w)
|
||||
{
|
||||
// d0-d3: 74145
|
||||
m_select = data & 0xf;
|
||||
update_display();
|
||||
|
||||
// d7: speaker out
|
||||
m_dac->write(BIT(data, 7));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Address Maps
|
||||
******************************************************************************/
|
||||
|
||||
void prodigy_state::main_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x07ff).ram();
|
||||
map(0x2000, 0x200f).m(m_via, FUNC(via6522_device::map));
|
||||
map(0x6000, 0x7fff).mirror(0x8000).rom();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Input Ports
|
||||
******************************************************************************/
|
||||
|
||||
static INPUT_PORTS_START( prodigy )
|
||||
PORT_START("IN.0")
|
||||
PORT_BIT(0x001, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("D 4 / Rook")
|
||||
PORT_BIT(0x002, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("G 7")
|
||||
PORT_BIT(0x004, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("Restore")
|
||||
PORT_BIT(0x008, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("CE") // clear entry
|
||||
PORT_BIT(0x010, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("Level")
|
||||
PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_X) PORT_NAME("Change Board")
|
||||
PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_V) PORT_NAME("Verify")
|
||||
PORT_BIT(0x080, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Enter")
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_O) PORT_NAME("Go")
|
||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("A 1 / Pawn")
|
||||
|
||||
PORT_START("IN.1")
|
||||
PORT_BIT(0x001, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("E 5 / Queen")
|
||||
PORT_BIT(0x002, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("H 8")
|
||||
PORT_BIT(0x004, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("Halt / Hint")
|
||||
PORT_BIT(0x008, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("Audio")
|
||||
PORT_BIT(0x010, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Time / Number")
|
||||
PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("F 6 / King")
|
||||
PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("C 3 / Bishop")
|
||||
PORT_BIT(0x080, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("White")
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("Black")
|
||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("B 2 / Knight")
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Machine Configs
|
||||
******************************************************************************/
|
||||
|
||||
void prodigy_state::prodigy(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M6502(config, m_maincpu, 2_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &prodigy_state::main_map);
|
||||
|
||||
VIA6522(config, m_via, 2_MHz_XTAL); // DDRA = 0x00, DDRB = 0x8f
|
||||
m_via->readpa_handler().set(FUNC(prodigy_state::input1_r));
|
||||
m_via->readpb_handler().set(FUNC(prodigy_state::input2_r));
|
||||
m_via->writepb_handler().set(FUNC(prodigy_state::control_w));
|
||||
m_via->cb1_handler().set(FUNC(prodigy_state::shift_clock_w));
|
||||
m_via->cb2_handler().set(FUNC(prodigy_state::shift_data_w));
|
||||
m_via->irq_handler().set_inputline(m_maincpu, M6502_IRQ_LINE);
|
||||
|
||||
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(6, 8);
|
||||
m_display->set_segmask(0xf, 0xff);
|
||||
config.set_default_layout(layout_aci_prodigy);
|
||||
|
||||
/* 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( prodigy )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD("007-707101", 0x6000, 0x02000, CRC(8d60345a) SHA1(fff18ff12e1b1be91f8eac1178605a682564eff2) )
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Drivers
|
||||
******************************************************************************/
|
||||
|
||||
// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
|
||||
CONS( 1980, prodigy, 0, 0, prodigy, prodigy, prodigy_state, empty_init, "Applied Concepts", "Destiny Prodigy", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
@ -137,7 +137,7 @@ void arb_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// cartridge
|
||||
|
@ -123,7 +123,7 @@ INPUT_CHANGED_MEMBER(chmate_state::reset_button)
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// 6530 ports
|
||||
|
@ -93,7 +93,7 @@ void master_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// TTL/generic
|
||||
|
@ -178,7 +178,7 @@ void cmpchess_state::update_reset(ioport_value state)
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
READ8_MEMBER(cmpchess_state::beeper_r)
|
||||
|
@ -86,7 +86,7 @@ void ch2001_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// TTL
|
||||
|
@ -101,7 +101,7 @@ void as12_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// cartridge
|
||||
|
@ -250,7 +250,7 @@ void card_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// misc handlers
|
||||
|
@ -111,7 +111,7 @@ void cc1_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// I8255 PPI
|
||||
|
@ -113,7 +113,7 @@ void ccx_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// I8255 PPI
|
||||
|
@ -105,7 +105,7 @@ void bcc_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// TTL
|
||||
|
@ -108,7 +108,7 @@ void chesster_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// TTL/generic
|
||||
|
@ -337,7 +337,7 @@ void su9_state::su9_set_cpu_freq()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// misc handlers
|
||||
|
@ -99,7 +99,7 @@ void dsc_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// sensorboard handlers
|
||||
|
@ -164,7 +164,7 @@ void desmas_state::init_fdes2265()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// TTL/generic
|
||||
|
@ -310,7 +310,7 @@ private:
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// cartridge
|
||||
|
@ -193,7 +193,7 @@ void eag_state::init_eag2100()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// cartridge
|
||||
|
@ -229,7 +229,7 @@ void excel_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// misc handlers
|
||||
|
@ -70,8 +70,9 @@ void phantom_state::init_fphantom()
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
//..
|
||||
|
@ -125,7 +125,7 @@ void sc12_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// cartridge
|
||||
|
@ -99,7 +99,7 @@ void sc6_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// cartridge
|
||||
|
@ -79,7 +79,7 @@ void scc_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// TTL
|
||||
|
@ -149,8 +149,9 @@ void sc9c_state::sc9c_set_cpu_freq()
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// cartridge
|
||||
|
@ -185,8 +185,9 @@ void vcc_state::machine_start()
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// misc handlers
|
||||
|
@ -249,7 +249,7 @@ void vsc_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// misc handlers
|
||||
|
@ -210,7 +210,7 @@ void tgm_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// MK3870 ports
|
||||
|
@ -122,7 +122,7 @@ INPUT_CHANGED_MEMBER(intel02_state::reset_button)
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// cartridge
|
||||
|
@ -126,7 +126,7 @@ void k28_state::power_off()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// MM5445 VFD
|
||||
|
@ -91,7 +91,7 @@ void mchess_state::update_reset(ioport_value state)
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
template<int Sel>
|
||||
|
@ -96,7 +96,7 @@ void cforte_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// HLCD0538
|
||||
|
@ -121,7 +121,7 @@ void diablo_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// LCD
|
||||
|
@ -117,7 +117,7 @@ void octo_state::octo_set_cpu_freq()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// MCU ports/generic
|
||||
|
@ -131,7 +131,7 @@ void savant_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// Z80 side
|
||||
|
@ -83,7 +83,7 @@ void scon_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// TTL
|
||||
|
@ -181,7 +181,7 @@ void sforte_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// LCD
|
||||
|
@ -1,725 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Joakim Larsson Edstrom
|
||||
/******************************************************************************
|
||||
|
||||
ACI Prodigy chess computer driver.
|
||||
|
||||
http://www.spacious-mind.com/html/destiny_prodigy.html
|
||||
Morphy software ELO rating: 1559
|
||||
|
||||
TODO:
|
||||
- Sound
|
||||
- Row/column LEDs
|
||||
- Chess board sensors
|
||||
|
||||
+-------------------------------------------------------------------------------------+
|
||||
|LEDS--------------------------------------------+ +-----------------+ |
|
||||
| | | o o o o o o o o COLCN | | | |
|
||||
| V | | | 4 char BCD LED | |
|
||||
| O | 8 | +-----------------+ |
|
||||
| | ROWCN | ||||||||||||||||||| ____ |
|
||||
| O | 7 o|+----------------------+ / \ |
|
||||
| | o|| VIA | ( beep ) |
|
||||
| O | 6 o|| R6522 | \____/ |
|
||||
| | o|+----------------------+ |
|
||||
| O | 5 o|+----------------------+ |
|
||||
| | o|| CPU | |
|
||||
| O | 4 8 x 8 button matrix o|| R6502-13 | +--+ __ |
|
||||
| | o|+----------------------+ |74| PWR||
|
||||
| O | 3 o| o o +-------------+ |LS| SW >|
|
||||
| | | +=======+ | ROM | |14| __||
|
||||
| O | 2 | | 2MHz | | R2912 | +--+ |
|
||||
| | | | XTAL | +-------------+ +--+ |
|
||||
| O | 1 |++-------+ +-------------+ |74| |
|
||||
| | || 74145N | | RAM | |LS| |
|
||||
| | A B C D E F G H |+--------+ | M58725P | |00| |
|
||||
| +--------------------------------------------+ +-------------+ +--+ |
|
||||
|LEDS-> O O O O O O O O OOOOOOOOOOOO KPDCN |
|
||||
+-------------------------------------------------------------------------------------+
|
||||
|
||||
Tracing the image shows that VIA Port A is used on the ROWCN and Port B on COLCN
|
||||
|
||||
The VIA pins CB1 and CB2 together with PB0 and PB1 via the 74145 drives the BCD display.
|
||||
The BCD display is of common anode type and each anode a0-a3 selects which digit that
|
||||
will be lit selected by PB0 and PB1. The segments to be lit is selected by the 8 bits
|
||||
shifted into the 74164 by clock from VIA CB1 and data from CB2.
|
||||
|
||||
Behind the BCD display we find the following supporting circuit
|
||||
|
||||
4x7 segment BCD display
|
||||
+---+ +-----+ +---+---+---+---+
|
||||
+-----------------+ CB1 |74 |==/4/=>|2x |==/8/====>| 0 1 2 3 |
|
||||
| | VIA CB2 |164|==/4/=>|75491| segments | |
|
||||
| 4 char BCD LED | ===> 6522 +---+ +-----+ +---+---+---+---+
|
||||
+-----------------+ PB1--->|74 | | | | |
|
||||
||||||||||||||||||| PB2--->|145|=/4/=/R/=>b(4x )c=/4/==============>
|
||||
+---+ (PN2907)e=+ anodes
|
||||
|+5v
|
||||
|
||||
The keypad is connected to the 12 pin KPDCN connector left to right KP1:
|
||||
|
||||
Pin #: KP1 KP2 KP3 KP4 KP5 KP6 KP7 KP8 KP9 KP10 KP11 K12
|
||||
VIA : PB4 PB5 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7
|
||||
74145: Q8 Q9 - used to decode/ground one half of the KPAD at a time
|
||||
|
||||
Q7 is suspected to be ground for the chessboard buttons
|
||||
|
||||
*******************************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "emuopts.h"
|
||||
#include "cpu/m6502/m6502.h"
|
||||
#include "machine/74145.h"
|
||||
#include "machine/netlist.h"
|
||||
#include "machine/nl_prodigy.h"
|
||||
#include "machine/6522via.h"
|
||||
|
||||
// TODO: Move all HTTPUI stuff global and generic
|
||||
#define HTTPUI 1
|
||||
|
||||
#if HTTPUI
|
||||
#include <zlib.h>
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <rapidjson/document.h>
|
||||
#include <rapidjson/stringbuffer.h>
|
||||
#include <rapidjson/writer.h>
|
||||
#endif
|
||||
|
||||
// Generated artwork includes
|
||||
#include "prodigy.lh"
|
||||
|
||||
#define LOG_SETUP (1U << 1)
|
||||
#define LOG_READ (1U << 2)
|
||||
#define LOG_BCD (1U << 3)
|
||||
#define LOG_NETLIST (1U << 4)
|
||||
#define LOG_CLK (1U << 5)
|
||||
#define LOG_KBD (1U << 6)
|
||||
#define LOG_AW (1U << 7)
|
||||
#define LOG_HTTP (1U << 8)
|
||||
#define LOG_XML (1U << 9)
|
||||
|
||||
//#define VERBOSE (LOG_HTTP|LOG_AW) // (LOG_BCD|LOG_NETLIST|LOG_SETUP)
|
||||
//#define LOG_OUTPUT_STREAM std::cout
|
||||
|
||||
#include "logmacro.h"
|
||||
|
||||
#define LOGSETUP(...) LOGMASKED(LOG_SETUP, __VA_ARGS__)
|
||||
#define LOGR(...) LOGMASKED(LOG_READ, __VA_ARGS__)
|
||||
#define LOGBCD(...) LOGMASKED(LOG_BCD, __VA_ARGS__)
|
||||
#define LOGNL(...) LOGMASKED(LOG_NETLIST, __VA_ARGS__)
|
||||
#define LOGCLK(...) LOGMASKED(LOG_CLK, __VA_ARGS__)
|
||||
#define LOGKBD(...) LOGMASKED(LOG_KBD, __VA_ARGS__)
|
||||
#define LOGAW(...) LOGMASKED(LOG_AW, __VA_ARGS__)
|
||||
#define LOGHTTP(...) LOGMASKED(LOG_HTTP, __VA_ARGS__)
|
||||
#define LOGXML(...) LOGMASKED(LOG_XML, __VA_ARGS__)
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#define FUNCNAME __func__
|
||||
#else
|
||||
#define FUNCNAME __PRETTY_FUNCTION__
|
||||
#endif
|
||||
|
||||
#define NETLIST_TAG "bcd"
|
||||
|
||||
class prodigy_state : public driver_device
|
||||
{
|
||||
public:
|
||||
prodigy_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_74145(*this, "io_74145")
|
||||
, m_segments(0)
|
||||
, m_digit_cache{0xff, 0xff, 0xff, 0xff}
|
||||
, m_via(*this, "via")
|
||||
, m_bcd(*this, NETLIST_TAG)
|
||||
, m_cb1(*this, "bcd:cb1")
|
||||
, m_cb2(*this, "bcd:cb2")
|
||||
, m_digit(0.0)
|
||||
, m_io_line(*this, "LINE%u", 0)
|
||||
, m_digits(*this, "digit%u", 0U)
|
||||
#if HTTPUI
|
||||
, m_connection(NULL)
|
||||
, m_web_line0(0)
|
||||
, m_web_line1(0)
|
||||
, m_web_line2(0)
|
||||
, m_web_line3(0)
|
||||
, m_web_line4(0)
|
||||
#endif
|
||||
{ }
|
||||
|
||||
void prodigy(machine_config &config);
|
||||
|
||||
private:
|
||||
NETDEV_LOGIC_CALLBACK_MEMBER(bcd_bit0_cb);
|
||||
NETDEV_LOGIC_CALLBACK_MEMBER(bcd_bit1_cb);
|
||||
NETDEV_LOGIC_CALLBACK_MEMBER(bcd_bit2_cb);
|
||||
NETDEV_LOGIC_CALLBACK_MEMBER(bcd_bit3_cb);
|
||||
NETDEV_LOGIC_CALLBACK_MEMBER(bcd_bit4_cb);
|
||||
NETDEV_LOGIC_CALLBACK_MEMBER(bcd_bit5_cb);
|
||||
NETDEV_LOGIC_CALLBACK_MEMBER(bcd_bit6_cb);
|
||||
NETDEV_LOGIC_CALLBACK_MEMBER(bcd_bit7_cb);
|
||||
|
||||
DECLARE_READ8_MEMBER( via_pa_r );
|
||||
DECLARE_READ8_MEMBER( via_pb_r );
|
||||
DECLARE_WRITE8_MEMBER( via_pa_w );
|
||||
DECLARE_WRITE8_MEMBER( via_pb_w );
|
||||
DECLARE_WRITE_LINE_MEMBER(via_cb1_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(via_cb2_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(irq_handler);
|
||||
|
||||
void maincpu_map(address_map &map);
|
||||
|
||||
required_device<m6502_device> m_maincpu;
|
||||
required_device<ttl74145_device> m_74145;
|
||||
uint8_t m_segments;
|
||||
uint8_t m_digit_cache[4];
|
||||
required_device<via6522_device> m_via;
|
||||
required_device<netlist_mame_device> m_bcd;
|
||||
required_device<netlist_mame_logic_input_device> m_cb1;
|
||||
required_device<netlist_mame_logic_input_device> m_cb2;
|
||||
uint8_t m_digit;
|
||||
void update_bcd();
|
||||
|
||||
virtual void device_start() override;
|
||||
required_ioport_array<5> m_io_line;
|
||||
output_finder<4> m_digits;
|
||||
uint16_t m_line[5];
|
||||
|
||||
#if HTTPUI
|
||||
http_manager *m_server;
|
||||
void on_update(http_manager::http_request_ptr request, http_manager::http_response_ptr response);
|
||||
const std::string decompress_layout_data(const internal_layout *layout_data);
|
||||
void on_open(http_manager::websocket_connection_ptr connection);
|
||||
void on_message(http_manager::websocket_connection_ptr connection, const std::string &payload, int opcode);
|
||||
void on_close(http_manager::websocket_connection_ptr connection, int status, const std::string& reason);
|
||||
void on_error(http_manager::websocket_connection_ptr connection, const std::error_code& error_code);
|
||||
void update_web_bcd(uint8_t digit_nbr, uint8_t m_segments);
|
||||
|
||||
http_manager::websocket_connection_ptr m_connection;
|
||||
uint16_t m_web_line0;
|
||||
uint16_t m_web_line1;
|
||||
uint16_t m_web_line2;
|
||||
uint16_t m_web_line3;
|
||||
uint16_t m_web_line4;
|
||||
#endif
|
||||
};
|
||||
|
||||
NETDEV_LOGIC_CALLBACK_MEMBER(prodigy_state::bcd_bit0_cb) { if (data != 0) m_digit |= 0x01; else m_digit &= ~(0x01); LOGBCD("%s: %d m_digit: %02x\n", FUNCNAME, data, m_digit); }
|
||||
NETDEV_LOGIC_CALLBACK_MEMBER(prodigy_state::bcd_bit1_cb) { if (data != 0) m_digit |= 0x02; else m_digit &= ~(0x02); LOGBCD("%s: %d m_digit: %02x\n", FUNCNAME, data, m_digit); }
|
||||
NETDEV_LOGIC_CALLBACK_MEMBER(prodigy_state::bcd_bit2_cb) { if (data != 0) m_digit |= 0x04; else m_digit &= ~(0x04); LOGBCD("%s: %d m_digit: %02x\n", FUNCNAME, data, m_digit); }
|
||||
NETDEV_LOGIC_CALLBACK_MEMBER(prodigy_state::bcd_bit3_cb) { if (data != 0) m_digit |= 0x08; else m_digit &= ~(0x08); LOGBCD("%s: %d m_digit: %02x\n", FUNCNAME, data, m_digit); }
|
||||
NETDEV_LOGIC_CALLBACK_MEMBER(prodigy_state::bcd_bit4_cb) { if (data != 0) m_digit |= 0x10; else m_digit &= ~(0x10); LOGBCD("%s: %d m_digit: %02x\n", FUNCNAME, data, m_digit); }
|
||||
NETDEV_LOGIC_CALLBACK_MEMBER(prodigy_state::bcd_bit5_cb) { if (data != 0) m_digit |= 0x20; else m_digit &= ~(0x20); LOGBCD("%s: %d m_digit: %02x\n", FUNCNAME, data, m_digit); }
|
||||
NETDEV_LOGIC_CALLBACK_MEMBER(prodigy_state::bcd_bit6_cb) { if (data != 0) m_digit |= 0x40; else m_digit &= ~(0x40); LOGBCD("%s: %d m_digit: %02x\n", FUNCNAME, data, m_digit); }
|
||||
NETDEV_LOGIC_CALLBACK_MEMBER(prodigy_state::bcd_bit7_cb) { if (data != 0) m_digit |= 0x80; else m_digit &= ~(0x80); LOGBCD("%s: %d m_digit: %02x\n", FUNCNAME, data, m_digit); }
|
||||
|
||||
void prodigy_state::device_start()
|
||||
{
|
||||
m_digits.resolve();
|
||||
memset(m_line, 0, sizeof(m_line));
|
||||
#if HTTPUI
|
||||
m_server = machine().manager().http();
|
||||
if (m_server->is_active())
|
||||
{
|
||||
using namespace std::placeholders;
|
||||
m_server->add_http_handler("/layout*", std::bind(&prodigy_state::on_update, this, _1, _2));
|
||||
m_server->add_endpoint("/socket",
|
||||
std::bind(&prodigy_state::on_open, this, _1),
|
||||
std::bind(&prodigy_state::on_message, this, _1, _2, _3),
|
||||
std::bind(&prodigy_state::on_close, this, _1, _2, _3),
|
||||
std::bind(&prodigy_state::on_error, this, _1, _2)
|
||||
);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#if HTTPUI
|
||||
const std::string prodigy_state::decompress_layout_data(const internal_layout *layout_data)
|
||||
{
|
||||
// +1 to ensure data is terminated for XML parser
|
||||
std::unique_ptr<u8> tempout(new u8(layout_data->decompressed_size + 1));
|
||||
std::string fail("");
|
||||
z_stream stream;
|
||||
int zerr;
|
||||
|
||||
/* initialize the stream */
|
||||
memset(&stream, 0, sizeof(stream));
|
||||
stream.next_out = tempout.get();
|
||||
stream.avail_out = layout_data->decompressed_size;
|
||||
|
||||
zerr = inflateInit(&stream);
|
||||
if (zerr != Z_OK)
|
||||
{
|
||||
fatalerror("could not inflateInit");
|
||||
return fail; // return empty buffer
|
||||
}
|
||||
|
||||
/* decompress this chunk */
|
||||
stream.next_in = (unsigned char*)layout_data->data;
|
||||
stream.avail_in = layout_data->compressed_size;
|
||||
zerr = inflate(&stream, Z_NO_FLUSH);
|
||||
|
||||
/* stop at the end of the stream */
|
||||
if (zerr == Z_STREAM_END)
|
||||
{
|
||||
// OK
|
||||
}
|
||||
else if (zerr != Z_OK)
|
||||
{
|
||||
fatalerror("decompression error\n");
|
||||
return fail; // return empty buffer
|
||||
}
|
||||
|
||||
/* clean up */
|
||||
zerr = inflateEnd(&stream);
|
||||
if (zerr != Z_OK)
|
||||
{
|
||||
fatalerror("inflateEnd error\n");
|
||||
return fail; // return empty buffer
|
||||
}
|
||||
|
||||
return std::string((const char *)tempout.get(), layout_data->decompressed_size + 1);
|
||||
}
|
||||
|
||||
|
||||
void prodigy_state::on_update(http_manager::http_request_ptr request, http_manager::http_response_ptr response)
|
||||
{
|
||||
LOG("%s\n", FUNCNAME);
|
||||
|
||||
LOGHTTP("Full request: %s\n", request->get_resource());
|
||||
LOGHTTP("Path: %s\n", request->get_path());
|
||||
LOGHTTP("Query: %s\n", request->get_query());
|
||||
LOGHTTP("Artpath: %s\n", this->machine().options().art_path());
|
||||
LOGHTTP("System: %s\n", machine().system().name);
|
||||
|
||||
response->set_status(200);
|
||||
response->set_content_type("text/xml");
|
||||
|
||||
if (std::string("/layout/layout.xsl") == request->get_path())
|
||||
{
|
||||
std::string path;
|
||||
osd_get_full_path(path, ".");
|
||||
LOGHTTP("Serving XSL document %s\n", path + "/web/layout.xsl");
|
||||
#if 0
|
||||
m_server->serve_document(request, response, "layout.xls"); // Doesn't work, how do I make the webserver serve a file?
|
||||
#else
|
||||
std::ifstream xslfile (path + "/web/layout.xsl");
|
||||
if (xslfile.is_open())
|
||||
{
|
||||
std::string buf;
|
||||
std::string outstr;
|
||||
while ( std::getline (xslfile, buf) )
|
||||
{
|
||||
outstr += buf + "\n";
|
||||
}
|
||||
xslfile.close();
|
||||
response->set_body(outstr);
|
||||
LOGXML("%s", outstr);
|
||||
}
|
||||
else
|
||||
{
|
||||
response->set_status(500); // Or 404...?
|
||||
logerror("Unable to open file %s", path + "web/layout.xsl");
|
||||
LOGHTTP("Unable to open file %s", path + "web/layout.xsl");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
z_stream stream;
|
||||
int zerr;
|
||||
char buf[1024 * 10];
|
||||
std::string outstr;
|
||||
memset(&stream, 0, sizeof(stream));
|
||||
stream.next_in = (Bytef *)(layout_prodigy.data);
|
||||
stream.avail_in = layout_prodigy.compressed_size;
|
||||
if ((zerr = inflateInit(&stream)) == Z_OK)
|
||||
{
|
||||
do
|
||||
{
|
||||
stream.next_out = (Bytef*)(&buf[0]);
|
||||
stream.avail_out = sizeof(buf);
|
||||
zerr = inflate(&stream, 0);
|
||||
if (zerr == Z_OK || zerr == Z_STREAM_END)
|
||||
{
|
||||
outstr.append(&buf[0], stream.total_out - outstr.size());
|
||||
LOGXML("appending %s\n", buf);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGHTTP("Append Error %d\n", zerr);
|
||||
}
|
||||
}while (zerr == Z_OK);
|
||||
if ((zerr = inflateEnd(&stream)) != Z_OK)
|
||||
{
|
||||
response->set_status(500); // Or 404...?
|
||||
fatalerror("Zlib decompression error\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
outstr.insert(std::string("<?xml version=\"1.0\"?>").size(), "<?xml-stylesheet type=\"text/xml\" href=\"layout.xsl\"?>");
|
||||
response->set_body(outstr);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
response->set_status(500); // Or 404...?
|
||||
LOGHTTP("Init Error %d\n", zerr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void prodigy_state::on_open(http_manager::websocket_connection_ptr connection)
|
||||
{
|
||||
logerror("websocket connection opened\n");
|
||||
LOGHTTP("%s\n", FUNCNAME);
|
||||
m_connection = connection;
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
update_web_bcd(i, m_digit_cache[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void prodigy_state::on_message(http_manager::websocket_connection_ptr connection, const std::string &payload, int opcode)
|
||||
{
|
||||
LOGHTTP("%s: %d - %s\n", FUNCNAME, opcode, payload);
|
||||
using namespace rapidjson;
|
||||
Document document;
|
||||
document.Parse(payload.c_str());
|
||||
LOGHTTP("%s - %04x: %s\n", document["inputtag"].GetString(), document["inputmask"].GetInt(), document["event"].GetInt() == 0 ? "mouse Down" : "mouse Up");
|
||||
|
||||
// TODO: Reduce number of LINE%u and match mouse up to last mouse down so that mouse clicks don't stick "forever" when gliding out of click down boundary
|
||||
if (std::string(document["inputtag"].GetString()).compare("LINE0") == 0)
|
||||
{
|
||||
if (document["event"].GetInt() == 0) m_web_line0 |= document["inputmask"].GetInt(); else m_web_line0 &= ~(document["inputmask"].GetInt());
|
||||
LOGAW("-WEBLINE0: %02x\n", m_web_line0);
|
||||
}
|
||||
else if (std::string(document["inputtag"].GetString()).compare("LINE1") == 0)
|
||||
{
|
||||
if (document["event"].GetInt() == 0) m_web_line1 |= document["inputmask"].GetInt(); else m_web_line1 &= ~(document["inputmask"].GetInt());
|
||||
LOGAW("-WEBLINE1: %02x\n", m_web_line1);
|
||||
}
|
||||
else if (std::string(document["inputtag"].GetString()).compare("LINE2") == 0)
|
||||
{
|
||||
if (document["event"].GetInt() == 0) m_web_line2 |= document["inputmask"].GetInt(); else m_web_line2 &= ~(document["inputmask"].GetInt());
|
||||
LOGAW("-WEBLINE2: %02x\n", m_web_line2);
|
||||
}
|
||||
else if (std::string(document["inputtag"].GetString()).compare("LINE3") == 0)
|
||||
{
|
||||
if (document["event"].GetInt() == 0) m_web_line3 |= document["inputmask"].GetInt(); else m_web_line3 &= ~(document["inputmask"].GetInt());
|
||||
LOGAW("-WEBLINE3: %02x\n", m_web_line3);
|
||||
}
|
||||
else if (std::string(document["inputtag"].GetString()).compare("LINE4") == 0)
|
||||
{
|
||||
if (document["event"].GetInt() == 0) m_web_line4 |= document["inputmask"].GetInt(); else m_web_line4 &= ~(document["inputmask"].GetInt());
|
||||
LOGAW("-WEBLINE4: %02x\n", m_web_line4);
|
||||
}
|
||||
}
|
||||
|
||||
void prodigy_state::on_close(http_manager::websocket_connection_ptr connection, int status, const std::string& reason)
|
||||
{
|
||||
logerror("websocket connection closed: %d - %s\n", status, reason);
|
||||
LOGHTTP("%s: %d - %s\n", FUNCNAME, status, reason);
|
||||
}
|
||||
|
||||
void prodigy_state::on_error(http_manager::websocket_connection_ptr connection, const std::error_code& error_code)
|
||||
{
|
||||
logerror("websocket connection error: %d\n", error_code);
|
||||
LOGHTTP("%s: %d\n", FUNCNAME, error_code);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
WRITE_LINE_MEMBER(prodigy_state::via_cb1_w)
|
||||
{
|
||||
LOGCLK("%s: %d\n", FUNCNAME, state);
|
||||
m_cb1->write(state);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(prodigy_state::via_cb2_w)
|
||||
{
|
||||
LOGCLK("%s: %d\n", FUNCNAME, state);
|
||||
m_cb2->write(state);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(prodigy_state::irq_handler)
|
||||
{
|
||||
LOGBCD("%s: %d\n", FUNCNAME, state);
|
||||
m_maincpu->set_input_line(M6502_IRQ_LINE, state);
|
||||
update_bcd();
|
||||
}
|
||||
|
||||
/* Pulling the base of the PN2907 PNP transistor low by the output of the 74145 controlled by PB0 and PB1 will feed
|
||||
the coresponding anode enabling the correct digit and lit the segments currently held by the outputs of the 74164
|
||||
serial to 8 bit parallel converter fed by serial data using CB1 clock and CB2 data
|
||||
|
||||
PB2 and PB3 is also connected to the 74145, usage to be traced....
|
||||
*/
|
||||
|
||||
READ8_MEMBER( prodigy_state::via_pa_r )
|
||||
{
|
||||
LOGKBD("%s: Port A <- %02x\n", FUNCNAME, 0);
|
||||
uint16_t ttl74145_data = m_74145->read();
|
||||
|
||||
LOGKBD(" - 74145: %03x\n", ttl74145_data);
|
||||
#if HTTPUI
|
||||
if (ttl74145_data & 0x100) return ((m_line[0] & ~m_web_line0) | (m_line[1] & ~m_web_line1));
|
||||
if (ttl74145_data & 0x200) return ((m_line[4] & ~m_web_line4) | (m_line[3] & ~m_web_line3));
|
||||
#else
|
||||
if (ttl74145_data & 0x100) return (m_line[0] | m_line[1]);
|
||||
if (ttl74145_data & 0x200) return (m_line[4] | m_line[3]);
|
||||
#endif
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
READ8_MEMBER( prodigy_state::via_pb_r )
|
||||
{
|
||||
LOGKBD("%s: Port B <- %02x\n", FUNCNAME, 0);
|
||||
uint16_t ttl74145_data = m_74145->read();
|
||||
|
||||
#if HTTPUI
|
||||
if (ttl74145_data & 0x100) return ((((m_line[2] & ~m_web_line2) >> 8) & 3) << 4);
|
||||
if (ttl74145_data & 0x200) return ((((m_line[2] & ~m_web_line2) >> 10) & 3) << 4);
|
||||
#else
|
||||
if (ttl74145_data & 0x100) return (((m_line[2] >> 8) & 3) << 4);
|
||||
if (ttl74145_data & 0x200) return (((m_line[2] >> 10) & 3) << 4);
|
||||
#endif
|
||||
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( prodigy_state::via_pa_w )
|
||||
{
|
||||
LOGKBD("%s: Port A -> %02x\n", FUNCNAME, data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( prodigy_state::via_pb_w )
|
||||
{
|
||||
LOGBCD("%s: %02x ANODE %c\n", FUNCNAME, data, (data & 0x0f) <= 3 ? ('0' + (data & 0x03)) : 'x');
|
||||
LOGKBD("%s: %02x KBD Q8:%c Q9:%c\n", FUNCNAME, data, (data & 0x0f) == 8 ? '0' : '1', (data & 0x0f) == 9 ? '0' : '1');
|
||||
// Write PB0-PB3 to the 74145
|
||||
// Q0-Q3 => BCD0-BCD3 (PB0-PB1, PB2=0 PB3=0)
|
||||
// Q8-Q9 => KPDCN (PB0:0=Q8 1=Q9, PB1=0 PB2=0 PB3=1)
|
||||
m_74145->write( data & 0x0f );
|
||||
|
||||
// Read the artwork
|
||||
int i = 0;
|
||||
for (auto & elem : m_io_line)
|
||||
{
|
||||
m_line[i] = elem->read();
|
||||
LOGAW("-LINE%u: %02x\n", i, m_line[i]);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
#if HTTPUI
|
||||
void prodigy_state::update_web_bcd(uint8_t digit_nbr, uint8_t m_segments)
|
||||
{
|
||||
using namespace rapidjson;
|
||||
Document d;
|
||||
d.SetObject();
|
||||
Document::AllocatorType& allocator = d.GetAllocator();
|
||||
// Add data to JSON document
|
||||
d.AddMember("name", "digit", allocator);
|
||||
d.AddMember("number", digit_nbr, allocator);
|
||||
d.AddMember("segments", m_segments, allocator);
|
||||
// Convert JSON document to string
|
||||
StringBuffer buf;
|
||||
Writer<StringBuffer> writer(buf);
|
||||
d.Accept(writer);
|
||||
if (m_connection != NULL)
|
||||
{
|
||||
m_connection->send_message(buf.GetString(), 1);// 1 == Text 2 == binary
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void prodigy_state::update_bcd()
|
||||
{
|
||||
LOGBCD("%s\n", FUNCNAME);
|
||||
uint16_t ttl74145_data;
|
||||
uint8_t digit_nbr = 4;
|
||||
|
||||
ttl74145_data = m_74145->read();
|
||||
LOGBCD(" - 74145: %03x\n", ttl74145_data);
|
||||
|
||||
if ((ttl74145_data & 0x0f) != 0x00)
|
||||
{
|
||||
switch (ttl74145_data & 0x0f)
|
||||
{
|
||||
case 0x01: digit_nbr = 0; break;
|
||||
case 0x02: digit_nbr = 1; break;
|
||||
case 0x04: digit_nbr = 2; break;
|
||||
case 0x08: digit_nbr = 3; break;
|
||||
default: logerror("Wrong BCD digit, shouldn't happen, call the maintainer!\n");
|
||||
}
|
||||
|
||||
LOGBCD(" - digit number: %d\n", digit_nbr);
|
||||
LOGBCD(" - segments: %02x -> ", m_digit);
|
||||
m_segments = m_digit;
|
||||
LOGBCD("%02x\n", m_segments);
|
||||
|
||||
if (digit_nbr < 4)
|
||||
{
|
||||
if (m_digit_cache[digit_nbr] != m_segments)
|
||||
{
|
||||
m_digits[digit_nbr] = m_segments;
|
||||
m_digit_cache[digit_nbr] = m_segments;
|
||||
#if HTTPUI
|
||||
update_web_bcd(digit_nbr, m_segments);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void prodigy_state::maincpu_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x07ff).ram();
|
||||
map(0x2000, 0x200f).m("via", FUNC(via6522_device::map));
|
||||
map(0x6000, 0x7fff).rom().region("roms", 0).mirror(0x8000);
|
||||
}
|
||||
|
||||
/*
|
||||
* The keypad was modelled after the physical appearance but altered after finding out how it was working so
|
||||
* LINE0 to LINE4 has no correlation to the actual keypad anymore, which is connected like this:
|
||||
*
|
||||
* con KP1/KP11
|
||||
*-----------------------
|
||||
* KP1 GND/HIZ
|
||||
* KP2 GO/BLACK
|
||||
* KP3 A1/B2
|
||||
* KP4 D4/E5
|
||||
* KP5 G7/E8
|
||||
* KP6 RESTORE/HALT&HINT
|
||||
* KP7 CE/AUDIO
|
||||
* KP8 LEVEL/TIME&NUMBER
|
||||
* KP9 CHANGE BOARD/F6
|
||||
* KP10 VERIFY/C3
|
||||
* KP11 HIZ/GND
|
||||
* KP12 ENTER/WHITE
|
||||
*-----------------------
|
||||
* KP1 and KP11 alternates as GND enabling 10 pads at a time which are read on VIA port A and B.
|
||||
* TODO: Refactor as two 10 bit LINEs rather then matrix in order to match circuit
|
||||
*
|
||||
*/
|
||||
static INPUT_PORTS_START( prodigy )
|
||||
PORT_START("LINE0") /* KEY ROW 0 */
|
||||
PORT_BIT(0x001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D_4") PORT_CODE(KEYCODE_D) PORT_CHAR('D') PORT_CHAR('4')
|
||||
PORT_BIT(0x002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G_7") PORT_CODE(KEYCODE_G) PORT_CHAR('G') PORT_CHAR('7')
|
||||
PORT_BIT(0x004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RESTORE") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q')
|
||||
PORT_BIT(0x008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CE") PORT_CODE(KEYCODE_T) PORT_CHAR('T')
|
||||
PORT_BIT(0xc00, 0x00, IPT_UNUSED )
|
||||
|
||||
PORT_START("LINE1") /* KEY ROW 1 */
|
||||
PORT_BIT(0x010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LEVEL") PORT_CODE(KEYCODE_L) PORT_CHAR('L')
|
||||
PORT_BIT(0x020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CHANGE_BOARD") PORT_CODE(KEYCODE_X) PORT_CHAR('X')
|
||||
PORT_BIT(0x040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("VERIFY") PORT_CODE(KEYCODE_V) PORT_CHAR('V')
|
||||
PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_S) PORT_CHAR('S')
|
||||
PORT_BIT(0xc00, 0x00, IPT_UNUSED )
|
||||
|
||||
PORT_START("LINE2") /* KEY ROW 2 */
|
||||
PORT_BIT(0x100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("GO") PORT_CODE(KEYCODE_O) PORT_CHAR('O')
|
||||
PORT_BIT(0x200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A_1") PORT_CODE(KEYCODE_A) PORT_CHAR('A') PORT_CHAR('1')
|
||||
PORT_BIT(0x400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BLACK") PORT_CODE(KEYCODE_P) PORT_CHAR('P')
|
||||
PORT_BIT(0x800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B_2") PORT_CODE(KEYCODE_B) PORT_CHAR('B') PORT_CHAR('2')
|
||||
PORT_BIT(0x000, 0x00, IPT_UNUSED )
|
||||
|
||||
PORT_START("LINE3") /* KEY ROW 3 */
|
||||
PORT_BIT(0x001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E_5") PORT_CODE(KEYCODE_E) PORT_CHAR('E') PORT_CHAR('5')
|
||||
PORT_BIT(0x002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H_8") PORT_CODE(KEYCODE_H) PORT_CHAR('H') PORT_CHAR('8')
|
||||
PORT_BIT(0x004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("HALT_HINT") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y')
|
||||
PORT_BIT(0x008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("AUDIO") PORT_CODE(KEYCODE_R) PORT_CHAR('R')
|
||||
PORT_BIT(0xc00, 0x00, IPT_UNUSED )
|
||||
|
||||
PORT_START("LINE4") /* KEY ROW 4 */
|
||||
PORT_BIT(0x010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TIME_NUMBER") PORT_CODE(KEYCODE_N) PORT_CHAR('N')
|
||||
PORT_BIT(0x020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F_6") PORT_CODE(KEYCODE_F) PORT_CHAR('F') PORT_CHAR('6')
|
||||
PORT_BIT(0x040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C_3") PORT_CODE(KEYCODE_C) PORT_CHAR('C') PORT_CHAR('3')
|
||||
PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("WHITE") PORT_CODE(KEYCODE_W) PORT_CHAR('W')
|
||||
PORT_BIT(0xc00, 0x00, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
void prodigy_state::prodigy(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M6502(config, m_maincpu, XTAL(2'000'000));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &prodigy_state::maincpu_map);
|
||||
config.set_default_layout(layout_prodigy);
|
||||
|
||||
TTL74145(config, m_74145, 0);
|
||||
|
||||
VIA6522(config, m_via, XTAL(2'000'000));
|
||||
m_via->irq_handler().set(FUNC(prodigy_state::irq_handler));
|
||||
m_via->writepa_handler().set(FUNC(prodigy_state::via_pa_w));
|
||||
m_via->writepb_handler().set(FUNC(prodigy_state::via_pb_w));
|
||||
m_via->readpa_handler().set(FUNC(prodigy_state::via_pa_r));
|
||||
m_via->readpb_handler().set(FUNC(prodigy_state::via_pb_r));
|
||||
m_via->cb1_handler().set(FUNC(prodigy_state::via_cb1_w));
|
||||
m_via->cb2_handler().set(FUNC(prodigy_state::via_cb2_w));
|
||||
|
||||
NETLIST_CPU(config, m_bcd, XTAL(2'000'000) * 30)
|
||||
.set_source(netlist_prodigy);
|
||||
|
||||
NETLIST_LOGIC_INPUT(config, m_cb1); m_cb1->set_params("cb1.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, m_cb2); m_cb2->set_params("cb2.IN", 0);
|
||||
|
||||
NETLIST_LOGIC_OUTPUT(config, "bcd:bcd_bit0").set_params("bcd_bit0", FUNC(prodigy_state::bcd_bit0_cb));
|
||||
NETLIST_LOGIC_OUTPUT(config, "bcd:bcd_bit1").set_params("bcd_bit1", FUNC(prodigy_state::bcd_bit1_cb));
|
||||
NETLIST_LOGIC_OUTPUT(config, "bcd:bcd_bit2").set_params("bcd_bit2", FUNC(prodigy_state::bcd_bit2_cb));
|
||||
NETLIST_LOGIC_OUTPUT(config, "bcd:bcd_bit3").set_params("bcd_bit3", FUNC(prodigy_state::bcd_bit3_cb));
|
||||
NETLIST_LOGIC_OUTPUT(config, "bcd:bcd_bit4").set_params("bcd_bit4", FUNC(prodigy_state::bcd_bit4_cb));
|
||||
NETLIST_LOGIC_OUTPUT(config, "bcd:bcd_bit5").set_params("bcd_bit5", FUNC(prodigy_state::bcd_bit5_cb));
|
||||
NETLIST_LOGIC_OUTPUT(config, "bcd:bcd_bit6").set_params("bcd_bit6", FUNC(prodigy_state::bcd_bit6_cb));
|
||||
NETLIST_LOGIC_OUTPUT(config, "bcd:bcd_bit7").set_params("bcd_bit7", FUNC(prodigy_state::bcd_bit7_cb));
|
||||
}
|
||||
|
||||
/*
|
||||
* 6522 VIA init sequence
|
||||
* :via Reg 03 <- 00 - DDRA - Data Direction A, pin A0-A7 programmed as inputs
|
||||
* :via Reg 02 <- 8f - DDRB - Data Direction B, pin B4-B6 programmed as inputs, other pins as outputs
|
||||
* :via Reg 0c <- e0 - PCR - Peripheral Control Register, CB2 out pos out, CB1 ints on neg edg, CA2 inp neg act edg, CA1 ints on neg edg
|
||||
* :via Reg 0b <- 58 - ACR - Auxilary Control Register, con ints, B7 dis, timed ints, shift out on 0/2, PA and PB latches disabled
|
||||
* :via Reg 09 <- 58 - T2C-H - Timer 2 High Order Counter value
|
||||
* :via Reg 04 <- ff - T1C-L - Timer 1 Low Order Latches
|
||||
* :via Reg 0e <- a0 - IER - Interrupt Enable Register, Timer 2 Interrupts enabled
|
||||
*
|
||||
* ISR VIA accesses
|
||||
* Reg 08 -> e1 - T2C-L - T2 low order counter
|
||||
* Reg 08 <- 6e - T2C-L - T2 low order latches
|
||||
* Reg 09 <- 20 - T2C-H - T2 High Order Counter
|
||||
* Reg 0a <- 00 - SR - Shift Register
|
||||
* Reg 00 <- 09
|
||||
* Reg 01 -> ff
|
||||
* Reg 00 -> 09
|
||||
* Reg 00 <- 08
|
||||
* Reg 01 -> ff
|
||||
* Reg 00 -> 08
|
||||
* Reg 00 <- 07
|
||||
* Reg 01 -> ff
|
||||
* Reg 00 <- 06
|
||||
* Reg 01 -> ff
|
||||
* Reg 00 <- 05
|
||||
* Reg 01 -> ff
|
||||
* Reg 00 <- 04
|
||||
* Reg 01 -> ff
|
||||
* Reg 00 <- 03
|
||||
* Reg 01 -> ff
|
||||
* Reg 00 <- 02
|
||||
* Reg 01 -> ff
|
||||
* Reg 00 <- 01
|
||||
* Reg 01 -> ff
|
||||
* Reg 00 <- 00
|
||||
* Reg 01 -> ff
|
||||
* Reg 0a <- 00
|
||||
* Reg 00 <- 05
|
||||
* Reg 08 -> e2
|
||||
*/
|
||||
ROM_START(prodigy)
|
||||
ROM_REGION(0x2000, "roms", 0)
|
||||
ROM_LOAD("0x2000.bin", 0x0000, 0x02000, CRC(8d60345a) SHA1(fff18ff12e1b1be91f8eac1178605a682564eff2))
|
||||
ROM_END
|
||||
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS
|
||||
CONS( 1981, prodigy, 0, 0, prodigy, prodigy, prodigy_state, empty_init, "Applied Concepts", "Destiny Prodigy", MACHINE_NO_SOUND )
|
@ -90,7 +90,7 @@ void chesstrv_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// F3870 ports
|
||||
|
@ -90,10 +90,10 @@ void cp2000_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// CPU I/O ports
|
||||
// 3850 ports
|
||||
|
||||
void cp2000_state::update_display()
|
||||
{
|
||||
|
@ -94,10 +94,10 @@ void delta1_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// CPU I/O ports
|
||||
// 3850 ports
|
||||
|
||||
void delta1_state::update_display()
|
||||
{
|
||||
|
@ -93,7 +93,7 @@ void sc2_state::machine_start()
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
void sc2_state::update_display()
|
||||
|
@ -26,7 +26,7 @@
|
||||
<!-- chess symbols are in 7seg style -->
|
||||
<element name="piece_1">
|
||||
<text string=" ">
|
||||
<bounds x="0" y="0" width="5" height="6" />
|
||||
<bounds x="0" y="0" width="6" height="6" />
|
||||
<color red="0" green="0" blue="0" />
|
||||
</text>
|
||||
<rect>
|
||||
@ -34,17 +34,17 @@
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="4" y="2.5" width="1" height="2.5" />
|
||||
<bounds x="5" y="2.5" width="1" height="2.5" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="0" y="5" width="5" height="1" />
|
||||
<bounds x="0" y="5" width="6" height="1" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
</element>
|
||||
<element name="piece_2">
|
||||
<text string=" ">
|
||||
<bounds x="0" y="0" width="5" height="6" />
|
||||
<bounds x="0" y="0" width="6" height="6" />
|
||||
<color red="0" green="0" blue="0" />
|
||||
</text>
|
||||
<rect>
|
||||
@ -52,21 +52,21 @@
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="4" y="2" width="1" height="3" />
|
||||
<bounds x="5" y="2" width="1" height="3" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="0" y="2" width="5" height="1" />
|
||||
<bounds x="0" y="2" width="6" height="1" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="0" y="5" width="5" height="1" />
|
||||
<bounds x="0" y="5" width="6" height="1" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
</element>
|
||||
<element name="piece_3">
|
||||
<text string=" ">
|
||||
<bounds x="0" y="0" width="5" height="6" />
|
||||
<bounds x="0" y="0" width="6" height="6" />
|
||||
<color red="0" green="0" blue="0" />
|
||||
</text>
|
||||
<rect>
|
||||
@ -74,17 +74,17 @@
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="4" y="2.5" width="1" height="2.5" />
|
||||
<bounds x="5" y="2.5" width="1" height="2.5" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="0" y="5" width="5" height="1" />
|
||||
<bounds x="0" y="5" width="6" height="1" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
</element>
|
||||
<element name="piece_4">
|
||||
<text string=" ">
|
||||
<bounds x="0" y="0" width="5" height="6" />
|
||||
<bounds x="0" y="0" width="6" height="6" />
|
||||
<color red="0" green="0" blue="0" />
|
||||
</text>
|
||||
<rect>
|
||||
@ -92,21 +92,21 @@
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="4" y="2" width="1" height="3" />
|
||||
<bounds x="5" y="2" width="1" height="3" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="0" y="2" width="5" height="1" />
|
||||
<bounds x="0" y="2" width="6" height="1" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="0" y="5" width="5" height="1" />
|
||||
<bounds x="0" y="5" width="6" height="1" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
</element>
|
||||
<element name="piece_5">
|
||||
<text string=" ">
|
||||
<bounds x="0" y="0" width="5" height="6" />
|
||||
<bounds x="0" y="0" width="6" height="6" />
|
||||
<color red="0" green="0" blue="0" />
|
||||
</text>
|
||||
<rect>
|
||||
@ -114,17 +114,17 @@
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="4" y="0" width="1" height="6" />
|
||||
<bounds x="5" y="0" width="1" height="6" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="0" y="5" width="5" height="1" />
|
||||
<bounds x="0" y="5" width="6" height="1" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
</element>
|
||||
<element name="piece_6">
|
||||
<text string=" ">
|
||||
<bounds x="0" y="0" width="5" height="6" />
|
||||
<bounds x="0" y="0" width="6" height="6" />
|
||||
<color red="0" green="0" blue="0" />
|
||||
</text>
|
||||
<rect>
|
||||
@ -132,15 +132,15 @@
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="4" y="0" width="1" height="6" />
|
||||
<bounds x="5" y="0" width="1" height="6" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="0" y="2" width="5" height="1" />
|
||||
<bounds x="0" y="2" width="6" height="1" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="0" y="5" width="5" height="1" />
|
||||
<bounds x="0" y="5" width="6" height="1" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
</element>
|
||||
@ -278,12 +278,12 @@
|
||||
<bezel element="text_2"><bounds x="30.5" y="50.5" width="9" height="4" /></bezel>
|
||||
<bezel element="text_3"><bounds x="40.5" y="50.5" width="9" height="4" /></bezel>
|
||||
|
||||
<bezel element="piece_1"><bounds x="23.3" y="55.5" width="3.4" height="4" /></bezel>
|
||||
<bezel element="piece_2"><bounds x="33.3" y="55.5" width="3.4" height="4" /></bezel>
|
||||
<bezel element="piece_3"><bounds x="43.3" y="55.5" width="3.4" height="4" /></bezel>
|
||||
<bezel element="piece_4"><bounds x="23.3" y="45.5" width="3.4" height="4" /></bezel>
|
||||
<bezel element="piece_5"><bounds x="33.3" y="45.5" width="3.4" height="4" /></bezel>
|
||||
<bezel element="piece_6"><bounds x="43.3" y="45.5" width="3.4" height="4" /></bezel>
|
||||
<bezel element="piece_1"><bounds x="23.3" y="56" width="3.4" height="3.4" /></bezel>
|
||||
<bezel element="piece_2"><bounds x="33.3" y="56" width="3.4" height="3.4" /></bezel>
|
||||
<bezel element="piece_3"><bounds x="43.3" y="56" width="3.4" height="3.4" /></bezel>
|
||||
<bezel element="piece_4"><bounds x="23.3" y="46" width="3.4" height="3.4" /></bezel>
|
||||
<bezel element="piece_5"><bounds x="33.3" y="46" width="3.4" height="3.4" /></bezel>
|
||||
<bezel element="piece_6"><bounds x="43.3" y="46" width="3.4" height="3.4" /></bezel>
|
||||
|
||||
<bezel element="disk_black"><bounds x="24.5" y="34.5" width="1" height="1" /></bezel>
|
||||
<bezel element="disk_white"><bounds x="34.5" y="34.5" width="1" height="1" /></bezel>
|
||||
|
733
src/mame/layout/aci_prodigy.lay
Normal file
733
src/mame/layout/aci_prodigy.lay
Normal file
@ -0,0 +1,733 @@
|
||||
<?xml version="1.0"?>
|
||||
<mamelayout version="2">
|
||||
|
||||
<!-- define elements -->
|
||||
|
||||
<element name="blackb"><rect><color red="0" green="0" blue="0" /></rect></element>
|
||||
<element name="black"><rect><color red="0.21" green="0.17" blue="0.17" /></rect></element>
|
||||
<element name="white"><rect><color red="0.81" green="0.8" blue="0.79" /></rect></element>
|
||||
<element name="disk_white"><disk><color red="0.81" green="0.8" blue="0.79" /></disk></element>
|
||||
<element name="gold"><rect><color red="0.7" green="0.6" blue="0.4" /></rect></element>
|
||||
|
||||
<element name="digit" defstate="0">
|
||||
<led7seg><color red="1.0" green="0.1" blue="0.15" /></led7seg>
|
||||
</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="hl" defstate="0">
|
||||
<text string=" "/>
|
||||
<rect state="1"><color red="1" green="1" blue="1" /></rect>
|
||||
</element>
|
||||
|
||||
<!-- chess symbols are in 7seg style -->
|
||||
<element name="piece_1">
|
||||
<text string=" ">
|
||||
<bounds x="0" y="0" width="6" height="6" />
|
||||
<color red="0" green="0" blue="0" />
|
||||
</text>
|
||||
<rect>
|
||||
<bounds x="0" y="2.5" width="1" height="2.5" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="5" y="2.5" width="1" height="2.5" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="0" y="5" width="6" height="1" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
</element>
|
||||
<element name="piece_2">
|
||||
<text string=" ">
|
||||
<bounds x="0" y="0" width="6" height="6" />
|
||||
<color red="0" green="0" blue="0" />
|
||||
</text>
|
||||
<rect>
|
||||
<bounds x="0" y="0" width="1" height="3" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="5" y="2" width="1" height="3" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="0" y="2" width="6" height="1" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="0" y="5" width="6" height="1" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
</element>
|
||||
<element name="piece_3">
|
||||
<text string=" ">
|
||||
<bounds x="0" y="0" width="6" height="6" />
|
||||
<color red="0" green="0" blue="0" />
|
||||
</text>
|
||||
<rect>
|
||||
<bounds x="0" y="0" width="1" height="6" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="5" y="2.5" width="1" height="2.5" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="0" y="5" width="6" height="1" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
</element>
|
||||
<element name="piece_4">
|
||||
<text string=" ">
|
||||
<bounds x="0" y="0" width="6" height="6" />
|
||||
<color red="0" green="0" blue="0" />
|
||||
</text>
|
||||
<rect>
|
||||
<bounds x="0" y="2" width="1" height="3" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="5" y="2" width="1" height="3" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="0" y="2" width="6" height="1" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="0" y="5" width="6" height="1" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
</element>
|
||||
<element name="piece_5">
|
||||
<text string=" ">
|
||||
<bounds x="0" y="0" width="6" height="6" />
|
||||
<color red="0" green="0" blue="0" />
|
||||
</text>
|
||||
<rect>
|
||||
<bounds x="0" y="0" width="1" height="6" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="5" y="0" width="1" height="6" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="0" y="5" width="6" height="1" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
</element>
|
||||
<element name="piece_6">
|
||||
<text string=" ">
|
||||
<bounds x="0" y="0" width="6" height="6" />
|
||||
<color red="0" green="0" blue="0" />
|
||||
</text>
|
||||
<rect>
|
||||
<bounds x="0" y="0" width="1" height="6" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="5" y="0" width="1" height="6" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="0" y="2" width="6" height="1" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds x="0" y="5" width="6" height="1" />
|
||||
<color red="0.7" green="0.6" blue="0.4" />
|
||||
</rect>
|
||||
</element>
|
||||
|
||||
<element name="text_restore">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="RESTORE"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
<element name="text_halt">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="HALT"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
<element name="text_hint">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="HINT"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
<element name="text_audio">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="AUDIO"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
<element name="text_ce">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="CE"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
|
||||
<element name="text_g7">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="G 7"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
<element name="text_h8">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="H 8"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
<element name="text_time">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="TIME"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
<element name="text_number">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="NUMBER"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
<element name="text_level">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="LEVEL"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
|
||||
<element name="text_d4">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="D 4"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
<element name="text_e5">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="E 5"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
<element name="text_f6">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="F 6"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
<element name="text_change">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="CHANGE"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
<element name="text_board">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="BOARD"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
|
||||
<element name="text_a1">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="A 1"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
<element name="text_b2">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="B 2"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
<element name="text_c3">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="C 3"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
<element name="text_verify">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="VERIFY"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
|
||||
<element name="text_go">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="GO"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
<element name="text_black">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="BLACK"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
<element name="text_white">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="WHITE"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
<element name="text_enter">
|
||||
<rect><color red="0.21" green="0.17" blue="0.17" /></rect>
|
||||
<text string="ENTER"><color red="0.81" green="0.8" blue="0.79" /></text>
|
||||
</element>
|
||||
|
||||
<element name="text_a">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="A"><color red="0.7" green="0.6" blue="0.4" /></text>
|
||||
</element>
|
||||
<element name="text_b">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="B"><color red="0.7" green="0.6" blue="0.4" /></text>
|
||||
</element>
|
||||
<element name="text_c">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="C"><color red="0.7" green="0.6" blue="0.4" /></text>
|
||||
</element>
|
||||
<element name="text_d">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="D"><color red="0.7" green="0.6" blue="0.4" /></text>
|
||||
</element>
|
||||
<element name="text_e">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="E"><color red="0.7" green="0.6" blue="0.4" /></text>
|
||||
</element>
|
||||
<element name="text_f">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="F"><color red="0.7" green="0.6" blue="0.4" /></text>
|
||||
</element>
|
||||
<element name="text_g">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="G"><color red="0.7" green="0.6" blue="0.4" /></text>
|
||||
</element>
|
||||
<element name="text_h">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="H"><color red="0.7" green="0.6" blue="0.4" /></text>
|
||||
</element>
|
||||
|
||||
<element name="text_1">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="1"><color red="0.7" green="0.6" blue="0.4" /></text>
|
||||
</element>
|
||||
<element name="text_2">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="2"><color red="0.7" green="0.6" blue="0.4" /></text>
|
||||
</element>
|
||||
<element name="text_3">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="3"><color red="0.7" green="0.6" blue="0.4" /></text>
|
||||
</element>
|
||||
<element name="text_4">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="4"><color red="0.7" green="0.6" blue="0.4" /></text>
|
||||
</element>
|
||||
<element name="text_5">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="5"><color red="0.7" green="0.6" blue="0.4" /></text>
|
||||
</element>
|
||||
<element name="text_6">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="6"><color red="0.7" green="0.6" blue="0.4" /></text>
|
||||
</element>
|
||||
<element name="text_7">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="7"><color red="0.7" green="0.6" blue="0.4" /></text>
|
||||
</element>
|
||||
<element name="text_8">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="8"><color red="0.7" green="0.6" blue="0.4" /></text>
|
||||
</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.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>
|
||||
|
||||
<!-- 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.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="RESET"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_uib3">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></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.81" green="0.8" blue="0.79" /></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.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string=" <<"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_uiu2b">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string=" < "><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_uiu2c">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string=" >"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_uiu2d">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string=" >>"><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="-28.75" top="187" right="784" bottom="628" />
|
||||
|
||||
<bezel element="white"><bounds x="33" y="187" width="751" height="441" /></bezel>
|
||||
|
||||
<!-- chessboard coords/leds -->
|
||||
<bezel element="text_a"><bounds x="76" y="600" width="14" height="14" /></bezel>
|
||||
<bezel element="text_b"><bounds x="126" y="600" width="14" height="14" /></bezel>
|
||||
<bezel element="text_c"><bounds x="176" y="600" width="14" height="14" /></bezel>
|
||||
<bezel element="text_d"><bounds x="226" y="600" width="14" height="14" /></bezel>
|
||||
<bezel element="text_e"><bounds x="276" y="600" width="14" height="14" /></bezel>
|
||||
<bezel element="text_f"><bounds x="326" y="600" width="14" height="14" /></bezel>
|
||||
<bezel element="text_g"><bounds x="376" y="600" width="14" height="14" /></bezel>
|
||||
<bezel element="text_h"><bounds x="426" y="600" width="14" height="14" /></bezel>
|
||||
|
||||
<bezel element="text_8"><bounds x="45" y="218" width="14" height="14" /></bezel>
|
||||
<bezel element="text_7"><bounds x="45" y="268" width="14" height="14" /></bezel>
|
||||
<bezel element="text_6"><bounds x="45" y="318" width="14" height="14" /></bezel>
|
||||
<bezel element="text_5"><bounds x="45" y="368" width="14" height="14" /></bezel>
|
||||
<bezel element="text_4"><bounds x="45" y="418" width="14" height="14" /></bezel>
|
||||
<bezel element="text_3"><bounds x="45" y="468" width="14" height="14" /></bezel>
|
||||
<bezel element="text_2"><bounds x="45" y="518" width="14" height="14" /></bezel>
|
||||
<bezel element="text_1"><bounds x="45" y="568" width="14" height="14" /></bezel>
|
||||
|
||||
<bezel name="4.0" element="led"><bounds x="78" y="614" width="10" height="10" /></bezel>
|
||||
<bezel name="4.1" element="led"><bounds x="128" y="614" width="10" height="10" /></bezel>
|
||||
<bezel name="4.2" element="led"><bounds x="178" y="614" width="10" height="10" /></bezel>
|
||||
<bezel name="4.3" element="led"><bounds x="228" y="614" width="10" height="10" /></bezel>
|
||||
<bezel name="4.4" element="led"><bounds x="278" y="614" width="10" height="10" /></bezel>
|
||||
<bezel name="4.5" element="led"><bounds x="328" y="614" width="10" height="10" /></bezel>
|
||||
<bezel name="4.6" element="led"><bounds x="378" y="614" width="10" height="10" /></bezel>
|
||||
<bezel name="4.7" element="led"><bounds x="428" y="614" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel name="5.7" element="led"><bounds x="37" y="220" width="10" height="10" /></bezel>
|
||||
<bezel name="5.6" element="led"><bounds x="37" y="270" width="10" height="10" /></bezel>
|
||||
<bezel name="5.5" element="led"><bounds x="37" y="320" width="10" height="10" /></bezel>
|
||||
<bezel name="5.4" element="led"><bounds x="37" y="370" width="10" height="10" /></bezel>
|
||||
<bezel name="5.3" element="led"><bounds x="37" y="420" width="10" height="10" /></bezel>
|
||||
<bezel name="5.2" element="led"><bounds x="37" y="470" width="10" height="10" /></bezel>
|
||||
<bezel name="5.1" element="led"><bounds x="37" y="520" width="10" height="10" /></bezel>
|
||||
<bezel name="5.0" element="led"><bounds x="37" y="570" width="10" height="10" /></bezel>
|
||||
|
||||
<!-- chessboard/ui -->
|
||||
<bezel element="gold"><bounds x="57" y="197" width="404" height="404" /></bezel>
|
||||
<group ref="sb_board"><bounds x="60" y="200" width="398" height="398" /></group>
|
||||
<group ref="sb_ui"><bounds x="-22.75" y="200" width="49.75" height="398" /></group>
|
||||
|
||||
<!-- display -->
|
||||
<bezel element="gold"><bounds x="471" y="197" width="303" height="121" /></bezel>
|
||||
<bezel element="black"><bounds x="474" y="200" width="297" height="115" /></bezel>
|
||||
<bezel element="blackb"><bounds x="538.5" y="210" width="168" height="68" /></bezel>
|
||||
<bezel name="digit0" element="digit"><bounds x="558.5" y="220" width="32" height="48" /></bezel>
|
||||
<bezel name="digit1" element="digit"><bounds x="590.5" y="220" width="32" height="48" /></bezel>
|
||||
<bezel name="digit2" element="digit"><bounds x="622.5" y="220" width="32" height="48" /></bezel>
|
||||
<bezel name="digit3" element="digit"><bounds x="654.5" y="220" width="32" height="48" /></bezel>
|
||||
|
||||
<!-- keypad -->
|
||||
<bezel element="gold"><bounds x="471" y="328" width="303" height="273" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="474" y="331" width="72" height="51" /></bezel>
|
||||
<bezel element="black"><bounds x="474" y="385" width="72" height="51" /></bezel>
|
||||
<bezel element="black"><bounds x="474" y="439" width="72" height="51" /></bezel>
|
||||
<bezel element="black"><bounds x="474" y="493" width="72" height="51" /></bezel>
|
||||
<bezel element="black"><bounds x="474" y="547" width="72" height="51" /></bezel>
|
||||
<bezel element="black"><bounds x="549" y="331" width="72" height="51" /></bezel>
|
||||
<bezel element="black"><bounds x="549" y="385" width="72" height="51" /></bezel>
|
||||
<bezel element="black"><bounds x="549" y="439" width="72" height="51" /></bezel>
|
||||
<bezel element="black"><bounds x="549" y="493" width="72" height="51" /></bezel>
|
||||
<bezel element="black"><bounds x="549" y="547" width="72" height="51" /></bezel>
|
||||
<bezel element="black"><bounds x="624" y="331" width="72" height="51" /></bezel>
|
||||
<bezel element="black"><bounds x="624" y="385" width="72" height="51" /></bezel>
|
||||
<bezel element="black"><bounds x="624" y="439" width="72" height="51" /></bezel>
|
||||
<bezel element="black"><bounds x="624" y="493" width="72" height="51" /></bezel>
|
||||
<bezel element="black"><bounds x="624" y="547" width="72" height="51" /></bezel>
|
||||
<bezel element="black"><bounds x="699" y="331" width="72" height="51" /></bezel>
|
||||
<bezel element="black"><bounds x="699" y="385" width="72" height="51" /></bezel>
|
||||
<bezel element="black"><bounds x="699" y="439" width="72" height="51" /></bezel>
|
||||
<bezel element="black"><bounds x="699" y="493" width="72" height="51" /></bezel>
|
||||
<bezel element="black"><bounds x="699" y="547" width="72" height="51" /></bezel>
|
||||
|
||||
<bezel element="text_restore"><bounds x="475" y="347" width="70" height="18" /></bezel>
|
||||
<bezel element="text_halt"><bounds x="550" y="335" width="70" height="18" /></bezel>
|
||||
<bezel element="text_hint"><bounds x="550" y="359" width="70" height="18" /></bezel>
|
||||
<bezel element="text_audio"><bounds x="625" y="347" width="70" height="18" /></bezel>
|
||||
<bezel element="text_ce"><bounds x="700" y="347" width="70" height="18" /></bezel>
|
||||
|
||||
<bezel element="text_g7"><bounds x="475" y="401" width="70" height="18" /></bezel>
|
||||
<bezel element="text_h8"><bounds x="550" y="401" width="70" height="18" /></bezel>
|
||||
<bezel element="text_time"><bounds x="625" y="389" width="70" height="18" /></bezel>
|
||||
<bezel element="text_number"><bounds x="625" y="413" width="70" height="18" /></bezel>
|
||||
<bezel element="text_level"><bounds x="700" y="401" width="70" height="18" /></bezel>
|
||||
|
||||
<bezel element="text_d4"><bounds x="475" y="443" width="70" height="18" /></bezel>
|
||||
<bezel element="text_e5"><bounds x="550" y="443" width="70" height="18" /></bezel>
|
||||
<bezel element="text_f6"><bounds x="625" y="443" width="70" height="18" /></bezel>
|
||||
<bezel element="text_change"><bounds x="700" y="446" width="70" height="18" /></bezel>
|
||||
<bezel element="text_board"><bounds x="700" y="464" width="70" height="18" /></bezel>
|
||||
|
||||
<bezel element="text_a1"><bounds x="475" y="497" width="70" height="18" /></bezel>
|
||||
<bezel element="text_b2"><bounds x="550" y="497" width="70" height="18" /></bezel>
|
||||
<bezel element="text_c3"><bounds x="625" y="497" width="70" height="18" /></bezel>
|
||||
<bezel element="text_verify"><bounds x="700" y="509" width="70" height="18" /></bezel>
|
||||
|
||||
<bezel element="text_go"><bounds x="475" y="560" width="70" height="24" /></bezel>
|
||||
<bezel element="text_black"><bounds x="550" y="563" width="70" height="18" /></bezel>
|
||||
<bezel element="text_white"><bounds x="625" y="563" width="70" height="18" /></bezel>
|
||||
<bezel element="text_enter"><bounds x="700" y="563" width="70" height="18" /></bezel>
|
||||
|
||||
<bezel element="disk_white"><bounds x="582.5" y="354" width="5" height="5" /></bezel>
|
||||
<bezel element="disk_white"><bounds x="657.5" y="408" width="5" height="5" /></bezel>
|
||||
|
||||
<bezel element="piece_1"><bounds x="500" y="519" width="20" height="20" /></bezel>
|
||||
<bezel element="piece_2"><bounds x="575" y="519" width="20" height="20" /></bezel>
|
||||
<bezel element="piece_3"><bounds x="650" y="519" width="20" height="20" /></bezel>
|
||||
<bezel element="piece_4"><bounds x="500" y="465" width="20" height="20" /></bezel>
|
||||
<bezel element="piece_5"><bounds x="575" y="465" width="20" height="20" /></bezel>
|
||||
<bezel element="piece_6"><bounds x="650" y="465" width="20" height="20" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x004"><bounds x="474" y="331" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x002"><bounds x="474" y="385" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x001"><bounds x="474" y="439" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x200"><bounds x="474" y="493" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x100"><bounds x="474" y="547" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x004"><bounds x="549" y="331" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x002"><bounds x="549" y="385" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x001"><bounds x="549" y="439" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x200"><bounds x="549" y="493" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x100"><bounds x="549" y="547" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x008"><bounds x="624" y="331" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x010"><bounds x="624" y="385" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x020"><bounds x="624" y="439" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x040"><bounds x="624" y="493" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x080"><bounds x="624" y="547" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x008"><bounds x="699" y="331" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x010"><bounds x="699" y="385" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x020"><bounds x="699" y="439" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x040"><bounds x="699" y="493" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x080"><bounds x="699" y="547" width="72" height="51" /><color alpha="0.15" /></bezel>
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
@ -1,268 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/xml" href="layout.xsl"?>
|
||||
<mamelayout version="2">
|
||||
<element name="digit" defstate="1">
|
||||
<led7seg>
|
||||
<color red="0.75" green="0.0" blue="0.0" />
|
||||
</led7seg>
|
||||
</element>
|
||||
<element name="led" defstate="0">
|
||||
<disk state="0">
|
||||
<color red="0.35" green="0.0" blue="0.0" />
|
||||
</disk>
|
||||
<disk state="1">
|
||||
<color red="0.95" green="0.0" blue="0.0" />
|
||||
</disk>
|
||||
</element>
|
||||
<element name="text_destiny"><text string="DESTINY"><color red="0.21" green="0.19" blue="0.20" /></text></element>
|
||||
<element name="text_prodigy"><text string="PRODIGY"><color red="0.68" green="0.63" blue="0.49" /></text></element>
|
||||
|
||||
<element name="text_restore"><text string="RESTORE"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
<element name="text_halt"><text string="HALT"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
<element name="text_hint"><text string="HINT"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
<element name="text_audio"><text string="AUDIO"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
<element name="text_ce"><text string="CE"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
|
||||
<element name="text_g_7"><text string="G 7"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
<element name="text_h_8"><text string="H 8"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
<element name="text_time"><text string="TIME"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
<element name="text_number"><text string="NUMBER"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
<element name="text_level"><text string="LEVEL"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
|
||||
<element name="text_d_4"><text string="D 4"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
<element name="text_e_5"><text string="E 5"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
<element name="text_f_6"><text string="F 6"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
<element name="text_change"><text string="CHANGE"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
<element name="text_board"><text string="BOARD"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
|
||||
<element name="text_a_1"><text string="A 1"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
<element name="text_b_2"><text string="B 2"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
<element name="text_c_3"><text string="C 3"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
<element name="text_verify"><text string="VERIFY"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
|
||||
<element name="text_go"><text string="GO"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
<element name="text_black"><text string="BLACK"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
<element name="text_white"><text string="WHITE"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
<element name="text_enter"><text string="ENTER"><color red="0.67" green="0.65" blue="0.67" /></text></element>
|
||||
|
||||
<element name="text_a"><text string="A"><color red="0.68" green="0.63" blue="0.49" /></text></element>
|
||||
<element name="text_b"><text string="B"><color red="0.68" green="0.63" blue="0.49" /></text></element>
|
||||
<element name="text_c"><text string="C"><color red="0.68" green="0.63" blue="0.49" /></text></element>
|
||||
<element name="text_d"><text string="D"><color red="0.68" green="0.63" blue="0.49" /></text></element>
|
||||
<element name="text_e"><text string="E"><color red="0.68" green="0.63" blue="0.49" /></text></element>
|
||||
<element name="text_f"><text string="F"><color red="0.68" green="0.63" blue="0.49" /></text></element>
|
||||
<element name="text_g"><text string="G"><color red="0.68" green="0.63" blue="0.49" /></text></element>
|
||||
<element name="text_h"><text string="H"><color red="0.68" green="0.63" blue="0.49" /></text></element>
|
||||
|
||||
<element name="text_1"><text string="1"><color red="0.68" green="0.63" blue="0.49" /></text></element>
|
||||
<element name="text_2"><text string="2"><color red="0.68" green="0.63" blue="0.49" /></text></element>
|
||||
<element name="text_3"><text string="3"><color red="0.68" green="0.63" blue="0.49" /></text></element>
|
||||
<element name="text_4"><text string="4"><color red="0.68" green="0.63" blue="0.49" /></text></element>
|
||||
<element name="text_5"><text string="5"><color red="0.68" green="0.63" blue="0.49" /></text></element>
|
||||
<element name="text_6"><text string="6"><color red="0.68" green="0.63" blue="0.49" /></text></element>
|
||||
<element name="text_7"><text string="7"><color red="0.68" green="0.63" blue="0.49" /></text></element>
|
||||
<element name="text_8"><text string="8"><color red="0.68" green="0.63" blue="0.49" /></text></element>
|
||||
|
||||
<element name="black"><rect><color red="0" green="0" blue="0" /></rect></element>
|
||||
<element name="white"><rect><color red="0.67" green="0.65" blue="0.67" /></rect></element>
|
||||
<element name="brown"><rect><color red="0.21" green="0.17" blue="0.17" /></rect></element>
|
||||
<element name="darkbrown"><rect><color red="0.11" green="0.07" blue="0.07" /></rect></element>
|
||||
<element name="gold"> <rect><color red="0.68" green="0.63" blue="0.49" /></rect></element>
|
||||
|
||||
<view name="Full Artwork">
|
||||
<bounds left="0" top="0" right="800" bottom="670" />
|
||||
|
||||
<!-- chessboard bezel -->
|
||||
|
||||
<bezel element="brown"><bounds x="0" y="0" width="800" height="670" /></bezel>
|
||||
<bezel element="darkbrown"><bounds x="25" y="175" width="760" height="460" /></bezel>
|
||||
<bezel element="white"><bounds x="30" y="180" width="750" height="450" /></bezel>
|
||||
<bezel element="gold"><bounds x="32" y="184" width="746" height="444" /></bezel>
|
||||
<bezel element="white"><bounds x="36" y="188" width="738" height="436" /></bezel>
|
||||
<bezel element="gold"><bounds x="57" y="197" width="404" height="404" /></bezel>
|
||||
<!-- bezel element="white"><bounds x="60" y="200" width="400" height="400" /></bezel -->
|
||||
<!-- bezel element="white"><bounds x="3" y="3" width="80" height="80" /></bezel -->
|
||||
|
||||
<!-- chess board -->
|
||||
<bezel element="gold"><bounds x="57" y="197" width="404" height="404" /></bezel>
|
||||
<bezel element="brown"><bounds x="110" y="200" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="210" y="200" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="310" y="200" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="410" y="200" width="48" height="48" /></bezel>
|
||||
|
||||
<bezel element="brown"><bounds x="60" y="250" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="160" y="250" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="260" y="250" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="360" y="250" width="48" height="48" /></bezel>
|
||||
|
||||
<bezel element="brown"><bounds x="110" y="300" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="210" y="300" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="310" y="300" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="410" y="300" width="48" height="48" /></bezel>
|
||||
|
||||
<bezel element="brown"><bounds x="60" y="350" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="160" y="350" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="260" y="350" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="360" y="350" width="48" height="48" /></bezel>
|
||||
|
||||
<bezel element="brown"><bounds x="110" y="400" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="210" y="400" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="310" y="400" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="410" y="400" width="48" height="48" /></bezel>
|
||||
|
||||
<bezel element="brown"><bounds x="60" y="450" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="160" y="450" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="260" y="450" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="360" y="450" width="48" height="48" /></bezel>
|
||||
|
||||
<bezel element="brown"><bounds x="110" y="500" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="210" y="500" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="310" y="500" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="410" y="500" width="48" height="48" /></bezel>
|
||||
|
||||
<bezel element="brown"><bounds x="60" y="550" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="160" y="550" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="260" y="550" width="48" height="48" /></bezel>
|
||||
<bezel element="brown"><bounds x="360" y="550" width="48" height="48" /></bezel>
|
||||
|
||||
|
||||
<bezel element="white"><bounds x="110" y="250" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="210" y="250" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="310" y="250" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="410" y="250" width="48" height="48" /></bezel>
|
||||
|
||||
<bezel element="white"><bounds x="60" y="200" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="160" y="200" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="260" y="200" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="360" y="200" width="48" height="48" /></bezel>
|
||||
|
||||
<bezel element="white"><bounds x="110" y="350" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="210" y="350" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="310" y="350" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="410" y="350" width="48" height="48" /></bezel>
|
||||
|
||||
<bezel element="white"><bounds x="60" y="300" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="160" y="300" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="260" y="300" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="360" y="300" width="48" height="48" /></bezel>
|
||||
|
||||
<bezel element="white"><bounds x="110" y="450" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="210" y="450" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="310" y="450" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="410" y="450" width="48" height="48" /></bezel>
|
||||
|
||||
<bezel element="white"><bounds x="60" y="400" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="160" y="400" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="260" y="400" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="360" y="400" width="48" height="48" /></bezel>
|
||||
|
||||
<bezel element="white"><bounds x="110" y="550" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="210" y="550" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="310" y="550" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="410" y="550" width="48" height="48" /></bezel>
|
||||
|
||||
<bezel element="white"><bounds x="60" y="500" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="160" y="500" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="260" y="500" width="48" height="48" /></bezel>
|
||||
<bezel element="white"><bounds x="360" y="500" width="48" height="48" /></bezel>
|
||||
|
||||
<bezel element="text_a"><bounds x="75" y="600" width="14" height="14" /></bezel>
|
||||
<bezel element="text_b"><bounds x="125" y="600" width="14" height="14" /></bezel>
|
||||
<bezel element="text_c"><bounds x="175" y="600" width="14" height="14" /></bezel>
|
||||
<bezel element="text_d"><bounds x="225" y="600" width="14" height="14" /></bezel>
|
||||
<bezel element="text_e"><bounds x="275" y="600" width="14" height="14" /></bezel>
|
||||
<bezel element="text_f"><bounds x="325" y="600" width="14" height="14" /></bezel>
|
||||
<bezel element="text_g"><bounds x="375" y="600" width="14" height="14" /></bezel>
|
||||
<bezel element="text_h"><bounds x="425" y="600" width="14" height="14" /></bezel>
|
||||
|
||||
<bezel element="text_8"><bounds x="45" y="215" width="14" height="14" /></bezel>
|
||||
<bezel element="text_7"><bounds x="45" y="265" width="14" height="14" /></bezel>
|
||||
<bezel element="text_6"><bounds x="45" y="315" width="14" height="14" /></bezel>
|
||||
<bezel element="text_5"><bounds x="45" y="365" width="14" height="14" /></bezel>
|
||||
<bezel element="text_4"><bounds x="45" y="415" width="14" height="14" /></bezel>
|
||||
<bezel element="text_3"><bounds x="45" y="465" width="14" height="14" /></bezel>
|
||||
<bezel element="text_2"><bounds x="45" y="515" width="14" height="14" /></bezel>
|
||||
<bezel element="text_1"><bounds x="45" y="565" width="14" height="14" /></bezel>
|
||||
|
||||
<bezel name="leda" element="led"><bounds x="78" y="614" width="10" height="10" /></bezel>
|
||||
<bezel name="ledb" element="led"><bounds x="128" y="614" width="10" height="10" /></bezel>
|
||||
<bezel name="ledc" element="led"><bounds x="178" y="614" width="10" height="10" /></bezel>
|
||||
<bezel name="ledd" element="led"><bounds x="228" y="614" width="10" height="10" /></bezel>
|
||||
<bezel name="lede" element="led"><bounds x="278" y="614" width="10" height="10" /></bezel>
|
||||
<bezel name="ledf" element="led"><bounds x="328" y="614" width="10" height="10" /></bezel>
|
||||
<bezel name="ledg" element="led"><bounds x="378" y="614" width="10" height="10" /></bezel>
|
||||
<bezel name="ledh" element="led"><bounds x="428" y="614" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel name="led8" element="led"><bounds x="37" y="217" width="10" height="10" /></bezel>
|
||||
<bezel name="led7" element="led"><bounds x="37" y="267" width="10" height="10" /></bezel>
|
||||
<bezel name="led6" element="led"><bounds x="37" y="317" width="10" height="10" /></bezel>
|
||||
<bezel name="led5" element="led"><bounds x="37" y="367" width="10" height="10" /></bezel>
|
||||
<bezel name="led4" element="led"><bounds x="37" y="417" width="10" height="10" /></bezel>
|
||||
<bezel name="led3" element="led"><bounds x="37" y="467" width="10" height="10" /></bezel>
|
||||
<bezel name="led2" element="led"><bounds x="37" y="517" width="10" height="10" /></bezel>
|
||||
<bezel name="led1" element="led"><bounds x="37" y="567" width="10" height="10" /></bezel>
|
||||
|
||||
<!-- display -->
|
||||
<bezel element="gold"><bounds x="471" y="197" width="283" height="135" /></bezel>
|
||||
<bezel element="brown"><bounds x="474" y="200" width="276" height="129" /></bezel>
|
||||
<bezel element="black"><bounds x="520" y="235" width="170" height="40" /></bezel>
|
||||
<bezel name="digit0" element="digit"><bounds x="540" y="240" width="25" height="30" /></bezel>
|
||||
<bezel name="digit1" element="digit"><bounds x="575" y="240" width="25" height="30" /></bezel>
|
||||
<bezel name="digit2" element="digit"><bounds x="610" y="240" width="25" height="30" /></bezel>
|
||||
<bezel name="digit3" element="digit"><bounds x="645" y="240" width="25" height="30" /></bezel>
|
||||
|
||||
<!-- front text -->
|
||||
<bezel element="text_prodigy"><bounds x="550" y="290" width="115" height="30" /></bezel>
|
||||
<bezel element="text_destiny"><bounds x="580" y="600" width="85" height="20" /></bezel>
|
||||
|
||||
<!-- keypad -->
|
||||
<bezel element="gold"><bounds x="471" y="343" width="283" height="258" /></bezel>
|
||||
<bezel element="brown" inputtag="LINE0" inputmask="0x004"><bounds x="474" y="345" width="68" height="48" /></bezel>
|
||||
<bezel element="text_restore"><bounds x="462" y="360" width="90" height="16" /></bezel>
|
||||
<bezel element="brown" inputtag="LINE3" inputmask="0x004"><bounds x="544" y="345" width="68" height="48" /></bezel>
|
||||
<bezel element="text_halt"><bounds x="554" y="352" width="40" height="16" /></bezel>
|
||||
<bezel element="text_hint"><bounds x="554" y="372" width="40" height="16" /></bezel>
|
||||
<bezel element="brown" inputtag="LINE3" inputmask="0x08"><bounds x="614" y="345" width="68" height="48" /></bezel>
|
||||
<bezel element="text_audio"><bounds x="624" y="360" width="40" height="16" /></bezel>
|
||||
<bezel element="brown" inputtag="LINE0" inputmask="0x08"><bounds x="684" y="345" width="68" height="48" /></bezel>
|
||||
<bezel element="text_ce"><bounds x="695" y="360" width="40" height="16" /></bezel>
|
||||
|
||||
<bezel element="brown" inputtag="LINE0" inputmask="0x02"><bounds x="474" y="396" width="68" height="48" /></bezel>
|
||||
<bezel element="text_g_7"><bounds x="487" y="410" width="40" height="18" /></bezel>
|
||||
<bezel element="brown" inputtag="LINE3" inputmask="0x02"><bounds x="544" y="396" width="68" height="48" /></bezel>
|
||||
<bezel element="text_h_8"><bounds x="557" y="410" width="40" height="18" /></bezel>
|
||||
<bezel element="brown" inputtag="LINE4" inputmask="0x10"><bounds x="614" y="396" width="68" height="48" /></bezel>
|
||||
<bezel element="text_time"><bounds x="618" y="400" width="60" height="16" /></bezel>
|
||||
<bezel element="text_number"><bounds x="618" y="420" width="60" height="16" /></bezel>
|
||||
<bezel element="brown" inputtag="LINE1" inputmask="0x10"><bounds x="684" y="396" width="68" height="48" /></bezel>
|
||||
<bezel element="text_level"><bounds x="693" y="410" width="40" height="18" /></bezel>
|
||||
|
||||
<bezel element="brown" inputtag="LINE0" inputmask="0x001"><bounds x="474" y="447" width="68" height="48" /></bezel>
|
||||
<bezel element="text_d_4"><bounds x="485" y="453" width="40" height="18" /></bezel>
|
||||
<bezel element="brown" inputtag="LINE3" inputmask="0x001"><bounds x="544" y="447" width="68" height="48" /></bezel>
|
||||
<bezel element="text_e_5"><bounds x="553" y="453" width="40" height="18" /></bezel>
|
||||
<bezel element="brown" inputtag="LINE4" inputmask="0x020"><bounds x="614" y="447" width="68" height="48" /></bezel>
|
||||
<bezel element="text_f_6"><bounds x="621" y="453" width="40" height="18" /></bezel>
|
||||
<bezel element="brown" inputtag="LINE1" inputmask="0x020"><bounds x="684" y="447" width="68" height="48" /></bezel>
|
||||
<bezel element="text_change"><bounds x="695" y="455" width="40" height="18" /></bezel>
|
||||
<bezel element="text_board"><bounds x="695" y="470" width="40" height="18" /></bezel>
|
||||
|
||||
<bezel element="brown" inputtag="LINE2" inputmask="0x200"><bounds x="474" y="498" width="68" height="48" /></bezel>
|
||||
<bezel element="text_a_1"><bounds x="485" y="503" width="40" height="18" /></bezel>
|
||||
<bezel element="brown" inputtag="LINE2" inputmask="0x800"><bounds x="544" y="498" width="68" height="48" /></bezel>
|
||||
<bezel element="text_b_2"><bounds x="553" y="503" width="40" height="18" /></bezel>
|
||||
<bezel element="brown" inputtag="LINE4" inputmask="0x40"><bounds x="614" y="498" width="68" height="48" /></bezel>
|
||||
<bezel element="text_c_3"><bounds x="621" y="503" width="40" height="18" /></bezel>
|
||||
<bezel element="brown" inputtag="LINE1" inputmask="0x40"><bounds x="684" y="498" width="68" height="48" /></bezel>
|
||||
<bezel element="text_verify"><bounds x="695" y="510" width="40" height="18" /></bezel>
|
||||
|
||||
<bezel element="brown" inputtag="LINE2" inputmask="0x100"><bounds x="474" y="549" width="68" height="48" /></bezel>
|
||||
<bezel element="text_go"><bounds x="485" y="565" width="40" height="18" /></bezel>
|
||||
<bezel element="brown" inputtag="LINE2" inputmask="0x400"><bounds x="544" y="549" width="68" height="48" /></bezel>
|
||||
<bezel element="text_black"><bounds x="553" y="565" width="40" height="18" /></bezel>
|
||||
<bezel element="brown" inputtag="LINE4" inputmask="0x80"><bounds x="614" y="549" width="68" height="48" /></bezel>
|
||||
<bezel element="text_white"><bounds x="621" y="565" width="40" height="18" /></bezel>
|
||||
<bezel element="brown" inputtag="LINE1" inputmask="0x80"><bounds x="684" y="549" width="68" height="48" /></bezel>
|
||||
<bezel element="text_enter"><bounds x="695" y="565" width="40" height="18" /></bezel>
|
||||
</view>
|
||||
</mamelayout>
|
@ -1,35 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Joakim Larsson Edstrom
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Netlist (prodigy) included from prodigy.cpp
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "netlist/devices/net_lib.h"
|
||||
|
||||
NETLIST_START(prodigy)
|
||||
|
||||
SOLVER(Solver, 48000)
|
||||
PARAM(Solver.ACCURACY, 1e-4) // works and is sufficient
|
||||
|
||||
ANALOG_INPUT(VCC, 5) // For TTL chips
|
||||
|
||||
TTL_INPUT(high, 1)
|
||||
TTL_INPUT(low, 0)
|
||||
|
||||
TTL_INPUT(cb1, 0)
|
||||
TTL_INPUT(cb2, 0)
|
||||
|
||||
TTL_74164(SHIFT, cb2, cb2, high, cb1)
|
||||
ALIAS(bcd_bit0, SHIFT.QA)
|
||||
ALIAS(bcd_bit1, SHIFT.QB)
|
||||
ALIAS(bcd_bit2, SHIFT.QC)
|
||||
ALIAS(bcd_bit3, SHIFT.QD)
|
||||
ALIAS(bcd_bit4, SHIFT.QE)
|
||||
ALIAS(bcd_bit5, SHIFT.QF)
|
||||
ALIAS(bcd_bit6, SHIFT.QG)
|
||||
ALIAS(bcd_bit7, SHIFT.QH)
|
||||
|
||||
NETLIST_END()
|
@ -1,6 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Joakim Larsson Edstrom
|
||||
|
||||
#include "netlist/nl_setup.h"
|
||||
|
||||
NETLIST_EXTERNAL(prodigy)
|
@ -884,6 +884,9 @@ borisdpl //
|
||||
@source:aci_ggm.cpp
|
||||
ggm
|
||||
|
||||
@source:aci_prodigy.cpp
|
||||
prodigy
|
||||
|
||||
@source:acommand.cpp
|
||||
acommand // (c) 1990
|
||||
|
||||
@ -33179,9 +33182,6 @@ pr_whlft // Wheel Of Fortune (Project)
|
||||
pr_wldkn // Wild Kings (Project)
|
||||
pr_wnstk // Winning Streak (Coinworld)
|
||||
|
||||
@source:prodigy.cpp
|
||||
prodigy // ACI Destiny Prodigy, 1981
|
||||
|
||||
@source:prof180x.cpp
|
||||
prof180x //
|
||||
prof181x //
|
||||
|
@ -19,6 +19,7 @@ aceex.cpp
|
||||
aci_boris.cpp
|
||||
aci_borisdpl.cpp
|
||||
aci_ggm.cpp
|
||||
aci_prodigy.cpp
|
||||
acrnsys1.cpp
|
||||
acrnsys.cpp
|
||||
acvirus.cpp
|
||||
@ -637,7 +638,6 @@ pp01.cpp
|
||||
prestige.cpp
|
||||
primo.cpp
|
||||
pro80.cpp
|
||||
prodigy.cpp
|
||||
prof180x.cpp
|
||||
prof80.cpp
|
||||
prophet600.cpp
|
||||
|
Loading…
Reference in New Issue
Block a user