New working clones

------------------
Compact Computer 40 Plus (prototype) [hap, Jon Guidry]
This commit is contained in:
hap 2021-04-21 19:34:48 +02:00
parent c61bd7299c
commit 83d1b46ff5
15 changed files with 293 additions and 219 deletions

View File

@ -4,11 +4,9 @@
license:CC0 license:CC0
--> -->
<softwarelist name="cc40_cart" description="CC-40 cartridges">
<!-- <!--
Not included in list: Not yet emulated:
- SS-1000 16KB RAM - SS-1000 16KB RAM
- SS-2000 8KB RAM, battery backed - SS-2000 8KB RAM, battery backed
@ -19,6 +17,8 @@ license:CC0
--> -->
<softwarelist name="cc40_cart" description="CC-40 cartridges">
<software name="aee"> <software name="aee">
<description>Advanced Electrical Engineering</description> <description>Advanced Electrical Engineering</description>
<year>1983</year> <year>1983</year>

View File

@ -27,6 +27,7 @@ The "clock" feature is used to indicate MCU clock frequency
The "pla" feature is for TMS1100 output PLA type The "pla" feature is for TMS1100 output PLA type
The "paddle" feature is used to indicate if paddle circuitry exists on the PCB The "paddle" feature is used to indicate if paddle circuitry exists on the PCB
The "butmask" feature indicates cartridge button restrict mask (active-low) The "butmask" feature indicates cartridge button restrict mask (active-low)
--> -->
<softwarelist name="microvision" description="Milton Bradley Microvision cartridges"> <softwarelist name="microvision" description="Milton Bradley Microvision cartridges">

View File

@ -2,12 +2,15 @@
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd"> <!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!-- <!--
license:CC0 license:CC0
-->
<!--
Not dumped yet: Not dumped yet:
- Chemical Engineering - Chemical Engineering
- Statistics - Statistics
Not included in list: Not yet emulated:
- 8KB RAM, battery backed - 8KB RAM, battery backed
--> -->

View File

@ -2,13 +2,16 @@
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd"> <!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!-- <!--
license:CC0 license:CC0
-->
<!--
Library functions can be reached from [RUN], [F3] Library functions can be reached from [RUN], [F3]
Not dumped yet: Not dumped yet:
- Chemical Engineering Library - Chemical Engineering Library
Not included in list: Not yet emulated:
- 8KB RAM, battery backed - 8KB RAM, battery backed
--> -->

View File

@ -169,7 +169,7 @@ void o2_homecomp_device::device_add_mconfig(machine_config &config)
// cassette // cassette
CASSETTE(config, m_cass); CASSETTE(config, m_cass);
m_cass->set_default_state(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_DISABLED); m_cass->set_default_state(CASSETTE_STOPPED | CASSETTE_SPEAKER_MUTED | CASSETTE_MOTOR_DISABLED);
SPEAKER(config, "cass_output").front_center(); // on data recorder SPEAKER(config, "cass_output").front_center(); // on data recorder
m_cass->add_route(ALL_OUTPUTS, "cass_output", 0.05); m_cass->add_route(ALL_OUTPUTS, "cass_output", 0.05);
} }

View File

@ -1,5 +1,6 @@
// license:BSD-3-Clause // license:BSD-3-Clause
// copyright-holders:hap // copyright-holders:hap
// thanks-to:Jon Guidry
/*************************************************************************** /***************************************************************************
Texas Instruments Compact Computer 40 (aka CC-40) Texas Instruments Compact Computer 40 (aka CC-40)
@ -38,7 +39,7 @@
--------- ---------
HM6116LP-4 - Hitachi 2KB SRAM (newer 18KB version has two HM6264 8KB chips) HM6116LP-4 - Hitachi 2KB SRAM (newer 18KB version has two HM6264 8KB chips)
HN61256PC09 - Hitachi DIP-28 32KB CMOS Mask PROM HN61256PC09 - Hitachi DIP-28 32KB CMOS Mask PROM (also seen with HN61256PB02, earlier version?)
TMX70C20N2L - Texas Instruments TMS70C20 CPU (128 bytes RAM, 2KB ROM) @ 2.5MHz, 40 pins - "X" implies prototype TMX70C20N2L - Texas Instruments TMS70C20 CPU (128 bytes RAM, 2KB ROM) @ 2.5MHz, 40 pins - "X" implies prototype
AMI 1041036-1 - 68-pin QFP AMI Gate Array AMI 1041036-1 - 68-pin QFP AMI Gate Array
HD44100H - 60-pin QFP Hitachi HD44100 LCD Driver HD44100H - 60-pin QFP Hitachi HD44100 LCD Driver
@ -59,6 +60,15 @@
can be loaded. Load a program by pressing the [RUN] key while viewing the list, can be loaded. Load a program by pressing the [RUN] key while viewing the list,
or manually with the command RUN "<shortname of program in list>" or manually with the command RUN "<shortname of program in list>"
As for the CC-40+, the product was finalized, but in the end it wasn't released.
The hardware is very similar to CC-40. The main differences are the CPU:
a TMS70C40 (twice larger internal ROM), and a cassette port separate from Hexbus.
The controller chip is a TI TP0373 this time, it appears that the basic functionality
is the same as the one by AMI. Like the CC-40, it had either 6KB or 18KB RAM.
The CC-40+ cassette device number is 1, eg. SAVE"1.FILENAME" to save, and
OLD"1.FILENAME" to load.
TODO: TODO:
- external RAM cartridge (bus_control_w cartridge memory addressing) - external RAM cartridge (bus_control_w cartridge memory addressing)
@ -73,9 +83,11 @@
***************************************************************************/ ***************************************************************************/
#include "emu.h" #include "emu.h"
#include "bus/generic/slot.h" #include "bus/generic/slot.h"
#include "bus/generic/carts.h" #include "bus/generic/carts.h"
#include "cpu/tms7000/tms7000.h" #include "cpu/tms7000/tms7000.h"
#include "imagedev/cassette.h"
#include "machine/nvram.h" #include "machine/nvram.h"
#include "sound/dac.h" #include "sound/dac.h"
#include "video/hd44780.h" #include "video/hd44780.h"
@ -88,17 +100,21 @@
#include "cc40.lh" #include "cc40.lh"
namespace {
class cc40_state : public driver_device class cc40_state : public driver_device
{ {
public: public:
cc40_state(const machine_config &mconfig, device_type type, const char *tag) : cc40_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag), driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"), m_maincpu(*this, "maincpu"),
m_cart(*this, "cartslot"),
m_key_matrix(*this, "IN.%u", 0),
m_battery_inp(*this, "BATTERY"),
m_nvram(*this, "sysram.%u", 1U), m_nvram(*this, "sysram.%u", 1U),
m_lamps(*this, "lamp%u", 0U) m_sysbank(*this, "sysbank"),
m_cartbank(*this, "cartbank"),
m_cart(*this, "cartslot"),
m_cass(*this, "cassette"),
m_key_matrix(*this, "IN.%u", 0),
m_segs(*this, "seg%u", 0U)
{ {
m_sysram[0] = nullptr; m_sysram[0] = nullptr;
m_sysram[1] = nullptr; m_sysram[1] = nullptr;
@ -107,13 +123,14 @@ public:
DECLARE_INPUT_CHANGED_MEMBER(sysram_size_changed); DECLARE_INPUT_CHANGED_MEMBER(sysram_size_changed);
void cc40(machine_config &config); void cc40(machine_config &config);
void cc40p(machine_config &config);
protected: protected:
virtual void machine_reset() override; virtual void machine_reset() override;
virtual void machine_start() override; virtual void machine_start() override;
virtual void device_post_load() override;
private: private:
void postload();
void init_sysram(int chip, u16 size); void init_sysram(int chip, u16 size);
void update_lcd_indicator(u8 y, u8 x, int state); void update_lcd_indicator(u8 y, u8 x, int state);
void update_clock_divider(); void update_clock_divider();
@ -122,41 +139,46 @@ private:
void sysram_w(offs_t offset, u8 data); void sysram_w(offs_t offset, u8 data);
u8 bus_control_r(); u8 bus_control_r();
void bus_control_w(u8 data); void bus_control_w(u8 data);
u8 power_r();
void power_w(u8 data); void power_w(u8 data);
u8 battery_r();
u8 bankswitch_r(); u8 bankswitch_r();
void bankswitch_w(u8 data); void bankswitch_w(u8 data);
u8 clock_control_r(); u8 clock_control_r();
void clock_control_w(u8 data); void clock_control_w(u8 data);
u8 keyboard_r(); u8 keyboard_r();
void keyboard_w(u8 data); void keyboard_w(u8 data);
u8 cass_r();
void cass_w(u8 data);
void cc40_palette(palette_device &palette) const; void cc40_palette(palette_device &palette) const;
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load); DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load);
HD44780_PIXEL_UPDATE(cc40_pixel_update); HD44780_PIXEL_UPDATE(cc40_pixel_update);
void main_map(address_map &map); void cc40_map(address_map &map);
void cc40p_map(address_map &map);
required_device<tms70c20_device> m_maincpu; required_device<tms7000_device> m_maincpu;
required_device<generic_slot_device> m_cart;
required_ioport_array<8> m_key_matrix;
required_ioport m_battery_inp;
required_device_array<nvram_device, 2> m_nvram; required_device_array<nvram_device, 2> m_nvram;
required_memory_bank m_sysbank;
required_memory_bank m_cartbank;
required_device<generic_slot_device> m_cart;
optional_device<cassette_image_device> m_cass;
required_ioport_array<8> m_key_matrix;
output_finder<80> m_segs;
memory_region *m_cart_rom; memory_region *m_cart_rom;
u8 m_bus_control; u8 m_bus_control = 0;
u8 m_power; u8 m_power = 0;
u8 m_banks; u8 m_banks = 0;
u8 m_clock_control; u8 m_clock_control = 0;
u8 m_clock_divider; u8 m_clock_divider = 0;
u8 m_key_select; u8 m_key_select = 0;
std::unique_ptr<u8[]> m_sysram[2]; std::unique_ptr<u8[]> m_sysram[2];
u16 m_sysram_size[2]; u16 m_sysram_size[2];
u16 m_sysram_end[2]; u16 m_sysram_end[2];
u16 m_sysram_mask[2]; u16 m_sysram_mask[2];
output_finder<80> m_lamps;
}; };
@ -195,7 +217,7 @@ DEVICE_IMAGE_LOAD_MEMBER(cc40_state::cart_load)
void cc40_state::cc40_palette(palette_device &palette) const void cc40_state::cc40_palette(palette_device &palette) const
{ {
palette.set_pen_color(0, rgb_t(138, 146, 148)); // background palette.set_pen_color(0, rgb_t(138, 146, 148)); // background
palette.set_pen_color(1, rgb_t(92, 83, 88)); // lcd pixel on palette.set_pen_color(1, rgb_t(50, 45, 60)); // lcd pixel on
palette.set_pen_color(2, rgb_t(131, 136, 139)); // lcd pixel off palette.set_pen_color(2, rgb_t(131, 136, 139)); // lcd pixel off
} }
@ -207,7 +229,7 @@ void cc40_state::update_lcd_indicator(u8 y, u8 x, int state)
// ---- raw lcd screen here ---- // ---- raw lcd screen here ----
// under | ERROR v v v v v v _LOW // under | ERROR v v v v v v _LOW
// output# | 60 61 62 63 50 51 52 53 // output# | 60 61 62 63 50 51 52 53
m_lamps[y * 10 + x] = state ? 1 : 0; m_segs[y * 10 + x] = state ? 1 : 0;
} }
HD44780_PIXEL_UPDATE(cc40_state::cc40_pixel_update) HD44780_PIXEL_UPDATE(cc40_state::cc40_pixel_update)
@ -290,6 +312,11 @@ void cc40_state::bus_control_w(u8 data)
m_bus_control = data; m_bus_control = data;
} }
u8 cc40_state::power_r()
{
return m_power;
}
void cc40_state::power_w(u8 data) void cc40_state::power_w(u8 data)
{ {
// d0: power-on hold latch // d0: power-on hold latch
@ -300,12 +327,6 @@ void cc40_state::power_w(u8 data)
m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
} }
u8 cc40_state::battery_r()
{
// d0: low battery sense line (0 = low power)
return m_battery_inp->read();
}
u8 cc40_state::bankswitch_r() u8 cc40_state::bankswitch_r()
{ {
return m_banks; return m_banks;
@ -316,11 +337,11 @@ void cc40_state::bankswitch_w(u8 data)
data &= 0x0f; data &= 0x0f;
// d0-d1: system rom bankswitch // d0-d1: system rom bankswitch
membank("sysbank")->set_entry(data & 3); m_sysbank->set_entry(data & 3);
// d2-d3: cartridge 32KB page bankswitch // d2-d3: cartridge 32KB page bankswitch
if (m_cart_rom) if (m_cart_rom)
membank("cartbank")->set_entry(data >> 2 & 3); m_cartbank->set_entry(data >> 2 & 3);
m_banks = data; m_banks = data;
} }
@ -353,35 +374,50 @@ void cc40_state::clock_control_w(u8 data)
u8 cc40_state::keyboard_r() u8 cc40_state::keyboard_r()
{ {
u8 ret = 0; u8 data = 0;
// read selected keyboard rows // read selected keyboard rows
for (int i = 0; i < 8; i++) for (int i = 0; i < 8; i++)
{ {
if (m_key_select >> i & 1) if (m_key_select >> i & 1)
ret |= m_key_matrix[i]->read(); data |= m_key_matrix[i]->read();
} }
return ret; return data;
} }
void cc40_state::keyboard_w(u8 data) void cc40_state::keyboard_w(u8 data)
{ {
// d(0-7): select keyboard column // d0-d7: select keyboard column
m_key_select = data; m_key_select = data;
} }
void cc40_state::main_map(address_map &map) u8 cc40_state::cass_r()
{
// d3: cass data in
return (m_cass->input() > 0.04) ? 8 : 0;
}
void cc40_state::cass_w(u8 data)
{
// d4: cass motor
m_cass->set_motor((data & 0x10) ? 1 : 0);
// d3: cass data out
m_cass->output((data & 8) ? +1.0 : -1.0);
}
void cc40_state::cc40_map(address_map &map)
{ {
map.unmap_value_high(); map.unmap_value_high();
map(0x0110, 0x0110).rw(FUNC(cc40_state::bus_control_r), FUNC(cc40_state::bus_control_w)); map(0x0110, 0x0110).rw(FUNC(cc40_state::bus_control_r), FUNC(cc40_state::bus_control_w));
map(0x0111, 0x0111).w(FUNC(cc40_state::power_w)); map(0x0111, 0x0111).rw(FUNC(cc40_state::power_r), FUNC(cc40_state::power_w));
map(0x0112, 0x0112).noprw(); // d0-d3: Hexbus data map(0x0112, 0x0112).noprw(); // d0-d3: Hexbus data
map(0x0113, 0x0113).noprw(); // d0: Hexbus available map(0x0113, 0x0113).noprw(); // d0: Hexbus available
map(0x0114, 0x0114).noprw(); // d0,d1: Hexbus handshake map(0x0114, 0x0114).noprw(); // d0,d1: Hexbus handshake
map(0x0115, 0x0115).w("dac", FUNC(dac_bit_interface::data_w)); // d0: piezo control map(0x0115, 0x0115).w("dac", FUNC(dac_bit_interface::data_w));
map(0x0116, 0x0116).r(FUNC(cc40_state::battery_r)); map(0x0116, 0x0116).portr("BATTERY");
map(0x0119, 0x0119).rw(FUNC(cc40_state::bankswitch_r), FUNC(cc40_state::bankswitch_w)); map(0x0119, 0x0119).rw(FUNC(cc40_state::bankswitch_r), FUNC(cc40_state::bankswitch_w));
map(0x011a, 0x011a).rw(FUNC(cc40_state::clock_control_r), FUNC(cc40_state::clock_control_w)); map(0x011a, 0x011a).rw(FUNC(cc40_state::clock_control_r), FUNC(cc40_state::clock_control_w));
map(0x011e, 0x011f).rw("hd44780", FUNC(hd44780_device::read), FUNC(hd44780_device::write)); map(0x011e, 0x011f).rw("hd44780", FUNC(hd44780_device::read), FUNC(hd44780_device::write));
@ -392,6 +428,12 @@ void cc40_state::main_map(address_map &map)
map(0xd000, 0xefff).bankr("sysbank"); map(0xd000, 0xefff).bankr("sysbank");
} }
void cc40_state::cc40p_map(address_map &map)
{
cc40_map(map);
map(0x0121, 0x0121).rw(FUNC(cc40_state::cass_r), FUNC(cc40_state::cass_w));
}
/*************************************************************************** /***************************************************************************
@ -518,7 +560,6 @@ void cc40_state::machine_reset()
m_power = 1; m_power = 1;
update_clock_divider(); update_clock_divider();
bankswitch_w(0); bankswitch_w(0);
} }
@ -539,7 +580,7 @@ void cc40_state::init_sysram(int chip, u16 size)
m_sysram_size[chip] = size; m_sysram_size[chip] = size;
} }
void cc40_state::postload() void cc40_state::device_post_load()
{ {
init_sysram(0, m_sysram_size[0]); init_sysram(0, m_sysram_size[0]);
init_sysram(1, m_sysram_size[1]); init_sysram(1, m_sysram_size[1]);
@ -550,15 +591,15 @@ void cc40_state::postload()
void cc40_state::machine_start() void cc40_state::machine_start()
{ {
// init // init
m_lamps.resolve(); m_segs.resolve();
std::string region_tag; std::string region_tag;
m_cart_rom = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str()); m_cart_rom = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str());
membank("sysbank")->configure_entries(0, 4, memregion("system")->base(), 0x2000); m_sysbank->configure_entries(0, 4, memregion("system")->base(), 0x2000);
if (m_cart_rom) if (m_cart_rom)
membank("cartbank")->configure_entries(0, 4, m_cart_rom->base(), 0x8000); m_cartbank->configure_entries(0, 4, m_cart_rom->base(), 0x8000);
else else
membank("cartbank")->set_base(memregion("maincpu")->base() + 0x5000); m_cartbank->set_base(memregion("maincpu")->base() + 0x5000);
init_sysram(0, 0x800); // default to 6KB init_sysram(0, 0x800); // default to 6KB
init_sysram(1, 0x800); // " init_sysram(1, 0x800); // "
@ -566,11 +607,6 @@ void cc40_state::machine_start()
bus_control_w(0); bus_control_w(0);
bankswitch_w(0); bankswitch_w(0);
// zerofill other
m_power = 0;
m_clock_control = 0;
m_key_select = 0;
// register for savestates // register for savestates
save_item(NAME(m_bus_control)); save_item(NAME(m_bus_control));
save_item(NAME(m_power)); save_item(NAME(m_power));
@ -578,15 +614,13 @@ void cc40_state::machine_start()
save_item(NAME(m_clock_control)); save_item(NAME(m_clock_control));
save_item(NAME(m_clock_divider)); save_item(NAME(m_clock_divider));
save_item(NAME(m_key_select)); save_item(NAME(m_key_select));
machine().save().register_postload(save_prepost_delegate(FUNC(cc40_state::postload), this));
} }
void cc40_state::cc40(machine_config &config) void cc40_state::cc40(machine_config &config)
{ {
/* basic machine hardware */ // basic machine hardware
TMS70C20(config, m_maincpu, XTAL(5'000'000) / 2); TMS70C20(config, m_maincpu, 5_MHz_XTAL / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &cc40_state::main_map); m_maincpu->set_addrmap(AS_PROGRAM, &cc40_state::cc40_map);
m_maincpu->in_porta().set(FUNC(cc40_state::keyboard_r)); m_maincpu->in_porta().set(FUNC(cc40_state::keyboard_r));
m_maincpu->out_portb().set(FUNC(cc40_state::keyboard_w)); m_maincpu->out_portb().set(FUNC(cc40_state::keyboard_w));
@ -594,7 +628,7 @@ void cc40_state::cc40(machine_config &config)
NVRAM(config, "sysram.1", nvram_device::DEFAULT_ALL_0); NVRAM(config, "sysram.1", nvram_device::DEFAULT_ALL_0);
NVRAM(config, "sysram.2", nvram_device::DEFAULT_ALL_0); NVRAM(config, "sysram.2", nvram_device::DEFAULT_ALL_0);
/* video hardware */ // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
screen.set_refresh_hz(60); // arbitrary screen.set_refresh_hz(60); // arbitrary
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
@ -610,15 +644,32 @@ void cc40_state::cc40(machine_config &config)
hd44780.set_lcd_size(2, 16); // 2*16 internal hd44780.set_lcd_size(2, 16); // 2*16 internal
hd44780.set_pixel_update_cb(FUNC(cc40_state::cc40_pixel_update)); hd44780.set_pixel_update_cb(FUNC(cc40_state::cc40_pixel_update));
/* sound hardware */ // sound hardware
SPEAKER(config, "speaker").front_center(); SPEAKER(config, "speaker").front_center();
DAC_1BIT(config, "dac").add_route(ALL_OUTPUTS, "speaker", 0.25); DAC_1BIT(config, "dac").add_route(ALL_OUTPUTS, "speaker", 0.25);
/* cartridge */ // cartridge
GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "cc40_cart", "bin,rom,256").set_device_load(FUNC(cc40_state::cart_load)); GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "cc40_cart", "bin,rom,256").set_device_load(FUNC(cc40_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("cc40_cart"); SOFTWARE_LIST(config, "cart_list").set_original("cc40_cart");
} }
void cc40_state::cc40p(machine_config &config)
{
cc40(config);
// basic machine hardware
TMS70C40(config.replace(), m_maincpu, 5_MHz_XTAL / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &cc40_state::cc40p_map);
m_maincpu->in_porta().set(FUNC(cc40_state::keyboard_r));
m_maincpu->out_portb().set(FUNC(cc40_state::keyboard_w));
// cassette
CASSETTE(config, m_cass);
m_cass->set_default_state(CASSETTE_STOPPED | CASSETTE_SPEAKER_MUTED | CASSETTE_MOTOR_DISABLED);
SPEAKER(config, "cass_output").front_center(); // on data recorder
m_cass->add_route(ALL_OUTPUTS, "cass_output", 0.05);
}
/*************************************************************************** /***************************************************************************
@ -628,13 +679,24 @@ void cc40_state::cc40(machine_config &config)
***************************************************************************/ ***************************************************************************/
ROM_START( cc40 ) ROM_START( cc40 )
ROM_REGION( 0x800, "maincpu", 0 ) ROM_REGION( 0x0800, "maincpu", 0 )
ROM_LOAD( "tms70c20.bin", 0x000, 0x800, CRC(a21bf6ab) SHA1(3da8435ecbee143e7fa149ee8e1c92949bade1d8) ) // internal cpu rom ROM_LOAD( "c11002", 0x0000, 0x0800, CRC(a21bf6ab) SHA1(3da8435ecbee143e7fa149ee8e1c92949bade1d8) ) // internal cpu rom
ROM_REGION( 0x8000, "system", 0 ) ROM_REGION( 0x8000, "system", 0 )
ROM_LOAD( "hn61256pc09.bin", 0x0000, 0x8000, CRC(f5322fab) SHA1(1b5c4052a53654363c458f75eac7a27f0752def6) ) // system rom, banked ROM_LOAD( "hn61256pc09", 0x0000, 0x8000, CRC(f5322fab) SHA1(1b5c4052a53654363c458f75eac7a27f0752def6) ) // system rom, banked
ROM_END ROM_END
ROM_START( cc40p )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "75305.u200", 0x0000, 0x1000, CRC(42bb6af2) SHA1(642dede16cb4ef2c5b9eaae79e28054f1111eef8) ) // internal cpu rom
ROM_REGION( 0x8000, "system", 0 )
ROM_LOAD( "hn61256pc09.u205", 0x0000, 0x8000, CRC(f5322fab) SHA1(1b5c4052a53654363c458f75eac7a27f0752def6) ) // system rom, banked
ROM_END
} // anonymous namespace
// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS // YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
COMP( 1983, cc40, 0, 0, cc40, cc40, cc40_state, empty_init, "Texas Instruments", "Compact Computer 40", MACHINE_SUPPORTS_SAVE ) COMP( 1983, cc40, 0, 0, cc40, cc40, cc40_state, empty_init, "Texas Instruments", "Compact Computer 40", MACHINE_SUPPORTS_SAVE )
COMP( 1984, cc40p, cc40, 0, cc40p, cc40, cc40_state, empty_init, "Texas Instruments", "Compact Computer 40 Plus (prototype)", MACHINE_SUPPORTS_SAVE )

View File

@ -382,8 +382,8 @@ void dai3wksi_state::main_map(address_map &map)
{ {
map(0x0000, 0x1bff).rom(); map(0x0000, 0x1bff).rom();
map(0x2000, 0x23ff).ram(); map(0x2000, 0x23ff).ram();
map(0x2400, 0x24ff).mirror(0x100).portr("IN0"); map(0x2400, 0x2400).mirror(0x1ff).portr("IN0");
map(0x2800, 0x28ff).mirror(0x100).portr("IN1"); map(0x2800, 0x2800).mirror(0x1ff).portr("IN1");
map(0x3000, 0x3000).w(FUNC(dai3wksi_state::audio_1_w)); map(0x3000, 0x3000).w(FUNC(dai3wksi_state::audio_1_w));
map(0x3400, 0x3400).w(FUNC(dai3wksi_state::audio_2_w)); map(0x3400, 0x3400).w(FUNC(dai3wksi_state::audio_2_w));
map(0x3800, 0x3800).w(FUNC(dai3wksi_state::audio_3_w)); map(0x3800, 0x3800).w(FUNC(dai3wksi_state::audio_3_w));

View File

@ -76,7 +76,7 @@ Mephisto 4 Turbo Kit 18mhz - (mm4tk)
The MM V prototype was the program that Ed Schroeder participated with as "Rebel" at the The MM V prototype was the program that Ed Schroeder participated with as "Rebel" at the
1989 WMCCC in Portorose. It was used with the TK20 TurboKit. 1989 WMCCC in Portorose. It was used with the TK20 TurboKit.
http://chesseval.com/ChessEvalJournal/PrototypeMMV.htm For more information, see: http://chesseval.com/ChessEvalJournal/PrototypeMMV.htm
MM VI (Saitek, 1994) is on different hardware, H8 CPU. MM VI (Saitek, 1994) is on different hardware, H8 CPU.
@ -514,4 +514,4 @@ CONS( 1987, mm4tk, mm4, 0, mm4tk, mm2, mm2_state, empty_init, "ha
CONS( 1990, mm5, 0, 0, mm5, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM V (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1990, mm5, 0, 0, mm5, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM V (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1990, mm5a, mm5, 0, mm5, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM V (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1990, mm5a, mm5, 0, mm5, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM V (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1989, mm5p, mm5, 0, mm5p, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM V (Portorose TM version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING ) CONS( 1989, mm5p, mm5, 0, mm5p, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM V (Portorose TM version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING ) // aka Rebel

View File

@ -8,12 +8,16 @@ Commonly known as Tasc R30, it's basically a dedicated ChessMachine.
The King chess engines are also compatible with Tasc's The ChessMachine software The King chess engines are also compatible with Tasc's The ChessMachine software
on PC, however the prototype Gideon 2.1(internally: Rebel 2.01) is not. on PC, however the prototype Gideon 2.1(internally: Rebel 2.01) is not.
The King 2.23 version was not released to the public. It has an opening book
meant for chesscomputer competitions.
For more information, see: http://chesseval.com/ChessEvalJournal/R30v223.htm
R30 hardware notes: R30 hardware notes:
- ARM6 CPU(P60ARM/CG) @ 30MHz - ARM6 CPU(P60ARM/CG) @ 30MHz
- 256KB system ROM (2*27C010) - 256KB system ROM (2*27C010)
- 512KB program RAM (4*MT5C1008), 128KB permanent RAM (KM681000ALP-7L) - 512KB program RAM (4*MT5C1008), 128KB permanent RAM (KM681000ALP-7L)
- Toshiba LCD drivers (3*T7778A, T7900, T6963C), TC5565AFL-15 - Toshiba LCD drivers (3*T7778A, T7900, T6963C), TC5565AFL-15
- SB20 or SB30 "Smartboard" chessboard with piece recognition - SB20 or SB30 "SmartBoard" chessboard with piece recognition
R40 hardware notes: R40 hardware notes:
- ARM6 CPU(VY86C061PSTC) @ 40MHz - ARM6 CPU(VY86C061PSTC) @ 40MHz
@ -305,5 +309,5 @@ ROM_END
// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS // YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
CONS( 1995, tascr30, 0, 0, tasc, tasc, tasc_state, empty_init, "Tasc", "ChessSystem R30 (The King 2.50)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND ) CONS( 1995, tascr30, 0, 0, tasc, tasc, tasc_state, empty_init, "Tasc", "ChessSystem R30 (The King 2.50)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND )
CONS( 1993, tascr30a, tascr30, 0, tasc, tasc, tasc_state, empty_init, "Tasc", "ChessSystem R30 (The King 2.20)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND ) CONS( 1993, tascr30a, tascr30, 0, tasc, tasc, tasc_state, empty_init, "Tasc", "ChessSystem R30 (The King 2.20)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND )
CONS( 1993, tascr30b, tascr30, 0, tasc, tasc, tasc_state, empty_init, "Tasc", "ChessSystem R30 (The King 2.23, unreleased)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND ) CONS( 1993, tascr30b, tascr30, 0, tasc, tasc, tasc_state, empty_init, "Tasc", "ChessSystem R30 (The King 2.23, TM version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND ) // competed in several chesscomputer tournaments
CONS( 1993, tascr30g, tascr30, 0, tasc, tasc, tasc_state, empty_init, "Tasc", "ChessSystem R30 (Gideon 2.1, prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND ) // made in 1993, later released in 2012 CONS( 1993, tascr30g, tascr30, 0, tasc, tasc, tasc_state, empty_init, "Tasc", "ChessSystem R30 (Gideon 2.1, prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND ) // made in 1993, later released in 2012

View File

@ -51,9 +51,8 @@
Overall, the hardware is very similar to TI CC-40. A lot has been shuffled around Overall, the hardware is very similar to TI CC-40. A lot has been shuffled around
to cut down on complexity (and probably for protection too). To reduce power usage to cut down on complexity. To reduce power usage even more, the OS often idles while
even more, the OS often idles while waiting for any keypress that triggers an interrupt waiting for any keypress that triggers an interrupt and wakes the processor up.
and wakes the processor up.
The machine is powered by 4 AAA batteries. These will also save internal RAM, The machine is powered by 4 AAA batteries. These will also save internal RAM,
provided that the machine is turned off properly. provided that the machine is turned off properly.
@ -70,11 +69,13 @@
***************************************************************************/ ***************************************************************************/
#include "emu.h" #include "emu.h"
#include "bus/generic/carts.h" #include "bus/generic/carts.h"
#include "bus/generic/slot.h" #include "bus/generic/slot.h"
#include "cpu/tms7000/tms7000.h" #include "cpu/tms7000/tms7000.h"
#include "machine/nvram.h" #include "machine/nvram.h"
#include "video/hd44780.h" #include "video/hd44780.h"
#include "emupal.h" #include "emupal.h"
#include "screen.h" #include "screen.h"
#include "softlist.h" #include "softlist.h"
@ -83,16 +84,19 @@
#include "ti95.lh" #include "ti95.lh"
namespace {
class ti74_state : public driver_device class ti74_state : public driver_device
{ {
public: public:
ti74_state(const machine_config &mconfig, device_type type, const char *tag) : ti74_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag), driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"), m_maincpu(*this, "maincpu"),
m_sysbank(*this, "sysbank"),
m_cart(*this, "cartslot"), m_cart(*this, "cartslot"),
m_key_matrix(*this, "IN.%u", 0), m_key_matrix(*this, "IN.%u", 0),
m_battery_inp(*this, "BATTERY"), m_battery_inp(*this, "BATTERY"),
m_lamps(*this, "lamp%u", 0U) m_segs(*this, "seg%u", 0U)
{ } { }
void ti74(machine_config &config); void ti74(machine_config &config);
@ -119,14 +123,14 @@ private:
void main_map(address_map &map); void main_map(address_map &map);
required_device<tms70c46_device> m_maincpu; required_device<tms70c46_device> m_maincpu;
required_memory_bank m_sysbank;
required_device<generic_slot_device> m_cart; required_device<generic_slot_device> m_cart;
required_ioport_array<8> m_key_matrix; required_ioport_array<8> m_key_matrix;
required_ioport m_battery_inp; required_ioport m_battery_inp;
output_finder<80> m_segs;
u8 m_key_select; u8 m_key_select = 0;
u8 m_power; u8 m_power = 0;
output_finder<80> m_lamps;
}; };
@ -165,7 +169,7 @@ DEVICE_IMAGE_LOAD_MEMBER(ti74_state::cart_load)
void ti74_state::ti74_palette(palette_device &palette) const void ti74_state::ti74_palette(palette_device &palette) const
{ {
palette.set_pen_color(0, rgb_t(138, 146, 148)); // background palette.set_pen_color(0, rgb_t(138, 146, 148)); // background
palette.set_pen_color(1, rgb_t(92, 83, 88)); // LCD pixel on palette.set_pen_color(1, rgb_t(50, 45, 60)); // LCD pixel on
palette.set_pen_color(2, rgb_t(131, 136, 139)); // LCD pixel off palette.set_pen_color(2, rgb_t(131, 136, 139)); // LCD pixel off
} }
@ -183,7 +187,7 @@ void ti74_state::update_lcd_indicator(u8 y, u8 x, int state)
// above | _LOW _ERROR 2nd INV ALPHA LC INS DEGRAD HEX OCT I/O // above | _LOW _ERROR 2nd INV ALPHA LC INS DEGRAD HEX OCT I/O
// screen- | _P{70} <{71} RUN{3} // screen- | _P{70} <{71} RUN{3}
// area . SYS{4} // area . SYS{4}
m_lamps[y * 10 + x] = state ? 1 : 0; m_segs[y * 10 + x] = state ? 1 : 0;
} }
HD44780_PIXEL_UPDATE(ti74_state::ti74_pixel_update) HD44780_PIXEL_UPDATE(ti74_state::ti74_pixel_update)
@ -242,28 +246,28 @@ HD44780_PIXEL_UPDATE(ti74_state::ti95_pixel_update)
u8 ti74_state::keyboard_r() u8 ti74_state::keyboard_r()
{ {
u8 ret = 0; u8 data = 0;
// read selected keyboard rows // read selected keyboard rows
for (int i = 0; i < 8; i++) for (int i = 0; i < 8; i++)
{ {
if (m_key_select >> i & 1) if (m_key_select >> i & 1)
ret |= m_key_matrix[i]->read(); data |= m_key_matrix[i]->read();
} }
return ret; return data;
} }
void ti74_state::keyboard_w(u8 data) void ti74_state::keyboard_w(u8 data)
{ {
// d(0-7): select keyboard column // d0-d7: select keyboard column
m_key_select = data; m_key_select = data;
} }
void ti74_state::bankswitch_w(u8 data) void ti74_state::bankswitch_w(u8 data)
{ {
// d0-d1: system rom bankswitch // d0-d1: system rom bankswitch
membank("sysbank")->set_entry(data & 3); m_sysbank->set_entry(data & 3);
// d2: power-on latch // d2: power-on latch
if (~data & 4 && m_power) if (~data & 4 && m_power)
@ -496,22 +500,18 @@ void ti74_state::machine_reset()
{ {
m_power = 1; m_power = 1;
m_sysbank->set_entry(0);
update_battery_status(m_battery_inp->read()); update_battery_status(m_battery_inp->read());
} }
void ti74_state::machine_start() void ti74_state::machine_start()
{ {
m_lamps.resolve(); m_segs.resolve();
if (m_cart->exists()) if (m_cart->exists())
m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0xbfff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom))); m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0xbfff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
membank("sysbank")->configure_entries(0, 4, memregion("system")->base(), 0x2000); m_sysbank->configure_entries(0, 4, memregion("system")->base(), 0x2000);
membank("sysbank")->set_entry(0);
// zerofill
m_key_select = 0;
m_power = 0;
// register for savestates // register for savestates
save_item(NAME(m_key_select)); save_item(NAME(m_key_select));
@ -520,8 +520,8 @@ void ti74_state::machine_start()
void ti74_state::ti74(machine_config &config) void ti74_state::ti74(machine_config &config)
{ {
/* basic machine hardware */ // basic machine hardware
TMS70C46(config, m_maincpu, XTAL(4'000'000)); TMS70C46(config, m_maincpu, 4_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &ti74_state::main_map); m_maincpu->set_addrmap(AS_PROGRAM, &ti74_state::main_map);
m_maincpu->in_porta().set(FUNC(ti74_state::keyboard_r)); m_maincpu->in_porta().set(FUNC(ti74_state::keyboard_r));
m_maincpu->out_portb().set(FUNC(ti74_state::bankswitch_w)); m_maincpu->out_portb().set(FUNC(ti74_state::bankswitch_w));
@ -529,7 +529,7 @@ void ti74_state::ti74(machine_config &config)
NVRAM(config, "sysram.ic3", nvram_device::DEFAULT_ALL_0); NVRAM(config, "sysram.ic3", nvram_device::DEFAULT_ALL_0);
/* video hardware */ // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
screen.set_refresh_hz(60); // arbitrary screen.set_refresh_hz(60); // arbitrary
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
@ -546,16 +546,15 @@ void ti74_state::ti74(machine_config &config)
hd44780.set_lcd_size(2, 16); // 2*16 internal hd44780.set_lcd_size(2, 16); // 2*16 internal
hd44780.set_pixel_update_cb(FUNC(ti74_state::ti74_pixel_update)); hd44780.set_pixel_update_cb(FUNC(ti74_state::ti74_pixel_update));
/* cartridge */ // cartridge
GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "ti74_cart", "bin,rom,256").set_device_load(FUNC(ti74_state::cart_load)); GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "ti74_cart", "bin,rom,256").set_device_load(FUNC(ti74_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("ti74_cart"); SOFTWARE_LIST(config, "cart_list").set_original("ti74_cart");
} }
void ti74_state::ti95(machine_config &config) void ti74_state::ti95(machine_config &config)
{ {
/* basic machine hardware */ // basic machine hardware
TMS70C46(config, m_maincpu, XTAL(4'000'000)); TMS70C46(config, m_maincpu, 4_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &ti74_state::main_map); m_maincpu->set_addrmap(AS_PROGRAM, &ti74_state::main_map);
m_maincpu->in_porta().set(FUNC(ti74_state::keyboard_r)); m_maincpu->in_porta().set(FUNC(ti74_state::keyboard_r));
m_maincpu->out_portb().set(FUNC(ti74_state::bankswitch_w)); m_maincpu->out_portb().set(FUNC(ti74_state::bankswitch_w));
@ -563,7 +562,7 @@ void ti74_state::ti95(machine_config &config)
NVRAM(config, "sysram.ic3", nvram_device::DEFAULT_ALL_0); NVRAM(config, "sysram.ic3", nvram_device::DEFAULT_ALL_0);
/* video hardware */ // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
screen.set_refresh_hz(60); // arbitrary screen.set_refresh_hz(60); // arbitrary
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
@ -580,9 +579,8 @@ void ti74_state::ti95(machine_config &config)
hd44780.set_lcd_size(2, 16); hd44780.set_lcd_size(2, 16);
hd44780.set_pixel_update_cb(FUNC(ti74_state::ti95_pixel_update)); hd44780.set_pixel_update_cb(FUNC(ti74_state::ti95_pixel_update));
/* cartridge */ // cartridge
GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "ti95_cart", "bin,rom,256").set_device_load(FUNC(ti74_state::cart_load)); GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "ti95_cart", "bin,rom,256").set_device_load(FUNC(ti74_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("ti95_cart"); SOFTWARE_LIST(config, "cart_list").set_original("ti95_cart");
} }
@ -611,7 +609,9 @@ ROM_START( ti95 )
ROM_LOAD( "hn61256pc95.ic1", 0x0000, 0x8000, CRC(c46d29ae) SHA1(c653f08590dbc28241a9f5a6c2541641bdb0208b) ) // system rom, banked ROM_LOAD( "hn61256pc95.ic1", 0x0000, 0x8000, CRC(c46d29ae) SHA1(c653f08590dbc28241a9f5a6c2541641bdb0208b) ) // system rom, banked
ROM_END ROM_END
} // anonymous namespace
// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS // YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
COMP( 1985, ti74, 0, 0, ti74, ti74, ti74_state, empty_init, "Texas Instruments", "TI-74 BASICALC", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) COMP( 1985, ti74, 0, 0, ti74, ti74, ti74_state, empty_init, "Texas Instruments", "TI-74 Basicalc", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )
COMP( 1986, ti95, 0, 0, ti95, ti95, ti74_state, empty_init, "Texas Instruments", "TI-95 PROCALC", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) COMP( 1986, ti95, 0, 0, ti95, ti95, ti74_state, empty_init, "Texas Instruments", "TI-95 Procalc", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )

View File

@ -16,7 +16,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="&#x25c4;" align="1" state="1"> <text string="&#x25c4;" align="1" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -26,7 +26,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="&#x25ba;" align="2" state="1"> <text string="&#x25ba;" align="2" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -36,7 +36,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="SHIFT" state="1"> <text string="SHIFT" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -46,7 +46,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="CTL" state="1"> <text string="CTL" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -56,7 +56,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="FN" state="1"> <text string="FN" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -66,7 +66,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="DEG" state="1"> <text string="DEG" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -76,7 +76,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="RAD" state="1"> <text string="RAD" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -86,7 +86,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="GRAD" state="1"> <text string="GRAD" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -96,7 +96,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="I/O" state="1"> <text string="I/O" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -106,7 +106,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="UCL" state="1"> <text string="UCL" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -116,7 +116,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="ERROR" state="1"> <text string="ERROR" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -126,13 +126,13 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="&#x25bc;" state="1"> <text string="&#x25bc;" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
<element name="ind_low" defstate="0"> <element name="ind_low" defstate="0">
<rect state="0"><color red="0.515" green="0.537" blue="0.548" /></rect> <rect state="0"><color red="0.515" green="0.537" blue="0.548" /></rect>
<rect state="1"><color red="0.361" green="0.326" blue="0.346" /></rect> <rect state="1"><color red="0.196" green="0.176" blue="0.235" /></rect>
<text string="LOW"> <text string="LOW">
<color red="0.5412" green="0.57255" blue="0.5804" /> <color red="0.5412" green="0.57255" blue="0.5804" />
</text> </text>
@ -164,65 +164,65 @@ license:CC0
<!-- draw top row of lcd indicators --> <!-- draw top row of lcd indicators -->
<element name="lamp10" ref="ind_left"> <element name="seg10" ref="ind_left">
<bounds x="1.5" y="2.5" width="20" height="5.5" /> <bounds x="1.5" y="2.5" width="20" height="5.5" />
</element> </element>
<element name="lamp4" ref="ind_right"> <element name="seg4" ref="ind_right">
<bounds x="167.5" y="2.5" width="20" height="5.5" /> <bounds x="167.5" y="2.5" width="20" height="5.5" />
</element> </element>
<element name="lamp11" ref="ind_shift"> <element name="seg11" ref="ind_shift">
<bounds x="7" y="3" width="20" height="5" /> <bounds x="7" y="3" width="20" height="5" />
</element> </element>
<element name="lamp12" ref="ind_ctl"> <element name="seg12" ref="ind_ctl">
<bounds x="29" y="3" width="20" height="5" /> <bounds x="29" y="3" width="20" height="5" />
</element> </element>
<element name="lamp13" ref="ind_fn"> <element name="seg13" ref="ind_fn">
<bounds x="51" y="3" width="20" height="5" /> <bounds x="51" y="3" width="20" height="5" />
</element> </element>
<element name="lamp14" ref="ind_deg"> <element name="seg14" ref="ind_deg">
<bounds x="73" y="3" width="20" height="5" /> <bounds x="73" y="3" width="20" height="5" />
</element> </element>
<element name="lamp0" ref="ind_rad"> <element name="seg0" ref="ind_rad">
<bounds x="95" y="3" width="20" height="5" /> <bounds x="95" y="3" width="20" height="5" />
</element> </element>
<element name="lamp1" ref="ind_grad"> <element name="seg1" ref="ind_grad">
<bounds x="117" y="3" width="20" height="5" /> <bounds x="117" y="3" width="20" height="5" />
</element> </element>
<element name="lamp2" ref="ind_io"> <element name="seg2" ref="ind_io">
<bounds x="139" y="3" width="20" height="5" /> <bounds x="139" y="3" width="20" height="5" />
</element> </element>
<element name="lamp3" ref="ind_ucl"> <element name="seg3" ref="ind_ucl">
<bounds x="161" y="3" width="20" height="5" /> <bounds x="161" y="3" width="20" height="5" />
</element> </element>
<!-- draw bottom row of lcd indicators --> <!-- draw bottom row of lcd indicators -->
<element name="lamp60" ref="ind_error"> <element name="seg60" ref="ind_error">
<bounds x="7" y="25" width="20" height="5" /> <bounds x="7" y="25" width="20" height="5" />
</element> </element>
<element name="lamp61" ref="ind_user"> <element name="seg61" ref="ind_user">
<bounds x="29" y="27" width="20" height="5.5" /> <bounds x="29" y="27" width="20" height="5.5" />
</element> </element>
<element name="lamp62" ref="ind_user"> <element name="seg62" ref="ind_user">
<bounds x="51" y="27" width="20" height="5.5" /> <bounds x="51" y="27" width="20" height="5.5" />
</element> </element>
<element name="lamp63" ref="ind_user"> <element name="seg63" ref="ind_user">
<bounds x="73" y="27" width="20" height="5.5" /> <bounds x="73" y="27" width="20" height="5.5" />
</element> </element>
<element name="lamp50" ref="ind_user"> <element name="seg50" ref="ind_user">
<bounds x="95" y="27" width="20" height="5.5" /> <bounds x="95" y="27" width="20" height="5.5" />
</element> </element>
<element name="lamp51" ref="ind_user"> <element name="seg51" ref="ind_user">
<bounds x="117" y="27" width="20" height="5.5" /> <bounds x="117" y="27" width="20" height="5.5" />
</element> </element>
<element name="lamp52" ref="ind_user"> <element name="seg52" ref="ind_user">
<bounds x="139" y="27" width="20" height="5.5" /> <bounds x="139" y="27" width="20" height="5.5" />
</element> </element>
<element name="lamp53" ref="ind_low"> <element name="seg53" ref="ind_low">
<bounds x="165" y="26.5" width="12" height="5" /> <bounds x="165" y="26.5" width="12" height="5" />
</element> </element>

View File

@ -8,7 +8,7 @@ license:CC0
<element name="digit" defstate="0"> <element name="digit" defstate="0">
<led7seg> <led7seg>
<color red="0.2" green="0.16" blue="0.16" /> <color red="0.200" green="0.164" blue="0.169" />
</led7seg> </led7seg>
</element> </element>
<element name="led" defstate="0"> <element name="led" defstate="0">
@ -66,22 +66,22 @@ license:CC0
<element name="sym_colon"> <element name="sym_colon">
<rect><color red="0.5412" green="0.57255" blue="0.5804" /></rect> <rect><color red="0.5412" green="0.57255" blue="0.5804" /></rect>
<text state="0" string=":"> <color red="0.49412" green="0.51765" blue="0.51765" /></text> <text state="0" string=":"> <color red="0.49412" green="0.51765" blue="0.51765" /></text>
<text state="1" string=":"> <color red="0.2" green="0.16" blue="0.16" /></text> <text state="1" string=":"> <color red="0.200" green="0.164" blue="0.169" /></text>
</element> </element>
<element name="sym_left"> <element name="sym_left">
<rect><color red="0.5412" green="0.57255" blue="0.5804" /></rect> <rect><color red="0.5412" green="0.57255" blue="0.5804" /></rect>
<text state="0" string="&#x2190;"> <color red="0.49412" green="0.51765" blue="0.51765" /></text> <text state="0" string="&#x2190;"> <color red="0.49412" green="0.51765" blue="0.51765" /></text>
<text state="1" string="&#x2190;"> <color red="0.2" green="0.16" blue="0.16" /></text> <text state="1" string="&#x2190;"> <color red="0.200" green="0.164" blue="0.169" /></text>
</element> </element>
<element name="sym_right"> <element name="sym_right">
<rect><color red="0.5412" green="0.57255" blue="0.5804" /></rect> <rect><color red="0.5412" green="0.57255" blue="0.5804" /></rect>
<text state="0" string="&#x2192;"> <color red="0.49412" green="0.51765" blue="0.51765" /></text> <text state="0" string="&#x2192;"> <color red="0.49412" green="0.51765" blue="0.51765" /></text>
<text state="1" string="&#x2192;"> <color red="0.2" green="0.16" blue="0.16" /></text> <text state="1" string="&#x2192;"> <color red="0.200" green="0.164" blue="0.169" /></text>
</element> </element>
<element name="sym_white"> <element name="sym_white">
<rect><color red="0.5412" green="0.57255" blue="0.5804" /></rect> <rect><color red="0.5412" green="0.57255" blue="0.5804" /></rect>
<text state="0" string="&#x25cb;"> <color red="0.49412" green="0.51765" blue="0.51765" /></text> <text state="0" string="&#x25cb;"> <color red="0.49412" green="0.51765" blue="0.51765" /></text>
<text state="1" string="&#x25cb;"> <color red="0.2" green="0.16" blue="0.16" /></text> <text state="1" string="&#x25cb;"> <color red="0.200" green="0.164" blue="0.169" /></text>
</element> </element>
<element name="sym_black"> <element name="sym_black">
<rect><color red="1.0" green="1.0" blue="1.0" /></rect> <rect><color red="1.0" green="1.0" blue="1.0" /></rect>

View File

@ -16,7 +16,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="&#x25c4;" align="1" state="1"> <text string="&#x25c4;" align="1" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -26,7 +26,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="&#x25ba;" align="2" state="1"> <text string="&#x25ba;" align="2" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -36,7 +36,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="SHIFT" state="1"> <text string="SHIFT" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -46,7 +46,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="CTL" state="1"> <text string="CTL" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -56,7 +56,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="FN" state="1"> <text string="FN" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -66,7 +66,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="I/O" state="1"> <text string="I/O" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -76,7 +76,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="UCL" state="1"> <text string="UCL" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -86,7 +86,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="BASIC" state="1"> <text string="BASIC" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -96,7 +96,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="CALC" state="1"> <text string="CALC" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -106,7 +106,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="DEG" state="1"> <text string="DEG" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -116,7 +116,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="RAD" state="1"> <text string="RAD" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -126,7 +126,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="GRAD" state="1"> <text string="GRAD" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -136,13 +136,13 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="STAT" state="1"> <text string="STAT" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
<element name="ind_low" defstate="0"> <element name="ind_low" defstate="0">
<rect state="0"><color red="0.515" green="0.537" blue="0.548" /></rect> <rect state="0"><color red="0.515" green="0.537" blue="0.548" /></rect>
<rect state="1"><color red="0.361" green="0.326" blue="0.346" /></rect> <rect state="1"><color red="0.196" green="0.176" blue="0.235" /></rect>
<text string="LOW"> <text string="LOW">
<color red="0.5412" green="0.57255" blue="0.5804" /> <color red="0.5412" green="0.57255" blue="0.5804" />
</text> </text>
@ -174,51 +174,51 @@ license:CC0
<!-- draw top row of lcd indicators --> <!-- draw top row of lcd indicators -->
<element name="lamp10" ref="ind_left"> <element name="seg10" ref="ind_left">
<bounds x="1.5" y="0.5" width="20" height="5.5" /> <bounds x="1.5" y="0.5" width="20" height="5.5" />
</element> </element>
<element name="lamp4" ref="ind_right"> <element name="seg4" ref="ind_right">
<bounds x="167.5" y="0.5" width="20" height="5.5" /> <bounds x="167.5" y="0.5" width="20" height="5.5" />
</element> </element>
<element name="lamp11" ref="ind_shift"> <element name="seg11" ref="ind_shift">
<bounds x="16" y="1" width="20" height="5" /> <bounds x="16" y="1" width="20" height="5" />
</element> </element>
<element name="lamp12" ref="ind_ctl"> <element name="seg12" ref="ind_ctl">
<bounds x="43" y="1" width="20" height="5" /> <bounds x="43" y="1" width="20" height="5" />
</element> </element>
<element name="lamp13" ref="ind_fn"> <element name="seg13" ref="ind_fn">
<bounds x="70" y="1" width="20" height="5" /> <bounds x="70" y="1" width="20" height="5" />
</element> </element>
<element name="lamp14" ref="ind_io"> <element name="seg14" ref="ind_io">
<bounds x="97" y="1" width="20" height="5" /> <bounds x="97" y="1" width="20" height="5" />
</element> </element>
<element name="lamp2" ref="ind_ucl"> <element name="seg2" ref="ind_ucl">
<bounds x="124" y="1" width="20" height="5" /> <bounds x="124" y="1" width="20" height="5" />
</element> </element>
<element name="lamp3" ref="ind_low"> <element name="seg3" ref="ind_low">
<bounds x="154" y="1" width="12" height="5" /> <bounds x="154" y="1" width="12" height="5" />
</element> </element>
<!-- draw bottom row of lcd indicators --> <!-- draw bottom row of lcd indicators -->
<element name="lamp63" ref="ind_basic"> <element name="seg63" ref="ind_basic">
<bounds x="16" y="23" width="20" height="5" /> <bounds x="16" y="23" width="20" height="5" />
</element> </element>
<element name="lamp64" ref="ind_calc"> <element name="seg64" ref="ind_calc">
<bounds x="43" y="23" width="20" height="5" /> <bounds x="43" y="23" width="20" height="5" />
</element> </element>
<element name="lamp1" ref="ind_deg"> <element name="seg1" ref="ind_deg">
<bounds x="70" y="23" width="20" height="5" /> <bounds x="70" y="23" width="20" height="5" />
</element> </element>
<element name="lamp62" ref="ind_rad"> <element name="seg62" ref="ind_rad">
<bounds x="97" y="23" width="20" height="5" /> <bounds x="97" y="23" width="20" height="5" />
</element> </element>
<element name="lamp53" ref="ind_grad"> <element name="seg53" ref="ind_grad">
<bounds x="124" y="23" width="20" height="5" /> <bounds x="124" y="23" width="20" height="5" />
</element> </element>
<element name="lamp54" ref="ind_stat"> <element name="seg54" ref="ind_stat">
<bounds x="151" y="23" width="20" height="5" /> <bounds x="151" y="23" width="20" height="5" />
</element> </element>

View File

@ -11,14 +11,14 @@ license:CC0
<rect><color red="0.5412" green="0.57255" blue="0.5804" /></rect> <rect><color red="0.5412" green="0.57255" blue="0.5804" /></rect>
</element> </element>
<element name="static_bg2"> <element name="static_bg2">
<rect><color red="0.41" green="0.37" blue="0.39" /></rect> <rect><color red="0.36" green="0.37" blue="0.39" /></rect>
</element> </element>
<!-- define lcd indicators --> <!-- define lcd indicators -->
<element name="ind_low" defstate="0"> <element name="ind_low" defstate="0">
<rect state="0"><color red="0.515" green="0.537" blue="0.548" /></rect> <rect state="0"><color red="0.515" green="0.537" blue="0.548" /></rect>
<rect state="1"><color red="0.361" green="0.326" blue="0.346" /></rect> <rect state="1"><color red="0.196" green="0.176" blue="0.235" /></rect>
<text string="LOW"> <text string="LOW">
<color red="0.5412" green="0.57255" blue="0.5804" /> <color red="0.5412" green="0.57255" blue="0.5804" />
</text> </text>
@ -26,7 +26,7 @@ license:CC0
<element name="ind_error" defstate="0"> <element name="ind_error" defstate="0">
<rect state="0"><color red="0.515" green="0.537" blue="0.548" /></rect> <rect state="0"><color red="0.515" green="0.537" blue="0.548" /></rect>
<rect state="1"><color red="0.361" green="0.326" blue="0.346" /></rect> <rect state="1"><color red="0.196" green="0.176" blue="0.235" /></rect>
<text string="ERROR"> <text string="ERROR">
<color red="0.5412" green="0.57255" blue="0.5804" /> <color red="0.5412" green="0.57255" blue="0.5804" />
</text> </text>
@ -34,7 +34,7 @@ license:CC0
<element name="ind_p" defstate="0"> <element name="ind_p" defstate="0">
<rect state="0"><color red="0.515" green="0.537" blue="0.548" /></rect> <rect state="0"><color red="0.515" green="0.537" blue="0.548" /></rect>
<rect state="1"><color red="0.361" green="0.326" blue="0.346" /></rect> <rect state="1"><color red="0.196" green="0.176" blue="0.235" /></rect>
<text string="P"> <text string="P">
<color red="0.5412" green="0.57255" blue="0.5804" /> <color red="0.5412" green="0.57255" blue="0.5804" />
</text> </text>
@ -46,7 +46,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="&#x25c4;" align="1" state="1"> <text string="&#x25c4;" align="1" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -56,7 +56,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="2nd" align="1" state="1"> <text string="2nd" align="1" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -66,7 +66,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="INV" align="1" state="1"> <text string="INV" align="1" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -76,7 +76,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="ALPHA" align="1" state="1"> <text string="ALPHA" align="1" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -86,7 +86,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="LC" align="1" state="1"> <text string="LC" align="1" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -96,7 +96,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="INS" align="1" state="1"> <text string="INS" align="1" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -106,7 +106,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="DE" align="1" state="1"> <text string="DE" align="1" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -116,7 +116,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="G" align="1" state="1"> <text string="G" align="1" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -126,7 +126,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="RAD" align="1" state="1"> <text string="RAD" align="1" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -136,7 +136,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="HEX" align="1" state="1"> <text string="HEX" align="1" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -146,7 +146,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="OCT" align="1" state="1"> <text string="OCT" align="1" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -156,7 +156,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="I/O" align="1" state="1"> <text string="I/O" align="1" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -166,7 +166,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="RUN" align="1" state="1"> <text string="RUN" align="1" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -176,7 +176,7 @@ license:CC0
<color red="0.515" green="0.537" blue="0.548" /> <color red="0.515" green="0.537" blue="0.548" />
</text> </text>
<text string="SYS" align="1" state="1"> <text string="SYS" align="1" state="1">
<color red="0.361" green="0.326" blue="0.346" /> <color red="0.196" green="0.176" blue="0.235" />
</text> </text>
</element> </element>
@ -258,68 +258,68 @@ license:CC0
<!-- left: _p, left --> <!-- left: _p, left -->
<element name="lamp70" ref="ind_p"> <element name="seg70" ref="ind_p">
<bounds x="1" y="9" width="5" height="5" /> <bounds x="1" y="9" width="5" height="5" />
</element> </element>
<element name="lamp71" ref="ind_left"> <element name="seg71" ref="ind_left">
<bounds x="7.5" y="8" width="4" height="6" /> <bounds x="7.5" y="8" width="4" height="6" />
</element> </element>
<!-- right: run, sys --> <!-- right: run, sys -->
<element name="lamp3" ref="ind_run"> <element name="seg3" ref="ind_run">
<bounds x="115.5" y="6.5" width="20" height="5" /> <bounds x="115.5" y="6.5" width="20" height="5" />
</element> </element>
<element name="lamp4" ref="ind_sys"> <element name="seg4" ref="ind_sys">
<bounds x="115.5" y="12" width="20" height="5" /> <bounds x="115.5" y="12" width="20" height="5" />
</element> </element>
<!-- top: _low, _error, 2nd, inv, alpha, lc, ins --> <!-- top: _low, _error, 2nd, inv, alpha, lc, ins -->
<element name="lamp40" ref="ind_low"> <element name="seg40" ref="ind_low">
<bounds x="1" y="1" width="12" height="5" /> <bounds x="1" y="1" width="12" height="5" />
</element> </element>
<element name="lamp43" ref="ind_error"> <element name="seg43" ref="ind_error">
<bounds x="16" y="1" width="15" height="5" /> <bounds x="16" y="1" width="15" height="5" />
</element> </element>
<element name="lamp41" ref="ind_2nd"> <element name="seg41" ref="ind_2nd">
<bounds x="32" y="1" width="20" height="5" /> <bounds x="32" y="1" width="20" height="5" />
</element> </element>
<element name="lamp44" ref="ind_inv"> <element name="seg44" ref="ind_inv">
<bounds x="41" y="1" width="20" height="5" /> <bounds x="41" y="1" width="20" height="5" />
</element> </element>
<element name="lamp42" ref="ind_alpha"> <element name="seg42" ref="ind_alpha">
<bounds x="50" y="1" width="20" height="5" /> <bounds x="50" y="1" width="20" height="5" />
</element> </element>
<element name="lamp12" ref="ind_lc"> <element name="seg12" ref="ind_lc">
<bounds x="64.3" y="1" width="20" height="5" /> <bounds x="64.3" y="1" width="20" height="5" />
</element> </element>
<element name="lamp11" ref="ind_ins"> <element name="seg11" ref="ind_ins">
<bounds x="71.3" y="1" width="20" height="5" /> <bounds x="71.3" y="1" width="20" height="5" />
</element> </element>
<!-- top: deg/rad/grad --> <!-- top: deg/rad/grad -->
<element name="lamp10" ref="ind_de"> <element name="seg10" ref="ind_de">
<bounds x="80" y="1" width="20" height="5" /> <bounds x="80" y="1" width="20" height="5" />
</element> </element>
<element name="lamp13" ref="ind_g"> <element name="seg13" ref="ind_g">
<bounds x="85" y="1" width="20" height="5" /> <bounds x="85" y="1" width="20" height="5" />
</element> </element>
<element name="lamp14" ref="ind_rad"> <element name="seg14" ref="ind_rad">
<bounds x="87.8" y="1" width="20" height="5" /> <bounds x="87.8" y="1" width="20" height="5" />
</element> </element>
<!-- top: hex, oct, i/o --> <!-- top: hex, oct, i/o -->
<element name="lamp0" ref="ind_hex"> <element name="seg0" ref="ind_hex">
<bounds x="97.7" y="1" width="20" height="5" /> <bounds x="97.7" y="1" width="20" height="5" />
</element> </element>
<element name="lamp1" ref="ind_oct"> <element name="seg1" ref="ind_oct">
<bounds x="107" y="1" width="20" height="5" /> <bounds x="107" y="1" width="20" height="5" />
</element> </element>
<element name="lamp2" ref="ind_io"> <element name="seg2" ref="ind_io">
<bounds x="117.5" y="1" width="20" height="5" /> <bounds x="117.5" y="1" width="20" height="5" />
</element> </element>

View File

@ -10058,6 +10058,7 @@ twocrudea // MAB (c) 1990 Data East USA (US)
@source:cc40.cpp @source:cc40.cpp
cc40 // 1983 TI CC-40 cc40 // 1983 TI CC-40
cc40p // 1983 TI CC-40+
@source:ccastles.cpp @source:ccastles.cpp
ccastles // 136022 (c) 1983 ccastles // 136022 (c) 1983