diff options
| author | 2024-07-26 19:41:37 -0400 | |
|---|---|---|
| committer | 2024-07-26 19:41:37 -0400 | |
| commit | 8f82bd0a7ebfbf6a445db5cf7824eee6e9a3f339 (patch) | |
| tree | bd173f1132fb4071ecccc70aa20475b504661784 /src | |
| parent | 06879c3cb7f1889efad480c3b6e5d24bf4c83503 (diff) | |
heathzenith/h8.cpp: Add front panel keypad and serial console to Heathkit H8. (#12590)
Diffstat (limited to 'src')
| -rw-r--r-- | src/mame/heathzenith/h8.cpp | 45 | ||||
| -rw-r--r-- | src/mame/layout/h8.lay | 209 |
2 files changed, 250 insertions, 4 deletions
diff --git a/src/mame/heathzenith/h8.cpp b/src/mame/heathzenith/h8.cpp index 236ce61f9bd..25aea75c1d0 100644 --- a/src/mame/heathzenith/h8.cpp +++ b/src/mame/heathzenith/h8.cpp @@ -10,6 +10,8 @@ STATUS: It runs, keyboard works, you can enter data. + Serial console works. You can make it visible by setting Video + Options in settings. Meaning of LEDs: PWR = power is turned on @@ -50,6 +52,7 @@ Official test program from pages 4 to 8 of the operator's manual: #include "machine/i8251.h" #include "machine/clock.h" #include "machine/timer.h" +#include "bus/rs232/rs232.h" #include "imagedev/cassette.h" #include "sound/beep.h" #include "speaker.h" @@ -66,6 +69,7 @@ public: : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") , m_uart(*this, "uart") + , m_console(*this, "console") , m_cass(*this, "cassette") , m_beep(*this, "beeper") , m_io_keyboard(*this, "X%u", 0U) @@ -90,6 +94,7 @@ private: void portf1_w(u8 data); void h8_status_callback(u8 data); void h8_inte_callback(int state); + void h8_level3_irq_callback(int state); TIMER_DEVICE_CALLBACK_MEMBER(h8_irq_pulse); TIMER_DEVICE_CALLBACK_MEMBER(kansas_r); TIMER_DEVICE_CALLBACK_MEMBER(kansas_w); @@ -112,6 +117,7 @@ private: required_device<i8080_cpu_device> m_maincpu; required_device<i8251_device> m_uart; + required_device<i8251_device> m_console; required_device<cassette_image_device> m_cass; required_device<beep_device> m_beep; required_ioport_array<2> m_io_keyboard; @@ -122,6 +128,16 @@ private: output_finder<> m_run_led; }; +// The usual baud rate is 600. The H8 supported baud rates from 110 to +// 9600. You can change the baud rate if it is changed here and in the +// other places that specify 600 baud. +static DEVICE_INPUT_DEFAULTS_START(terminal) + DEVICE_INPUT_DEFAULTS("RS232_RXBAUD", 0xff, RS232_BAUD_600) + DEVICE_INPUT_DEFAULTS("RS232_TXBAUD", 0xff, RS232_BAUD_600) + DEVICE_INPUT_DEFAULTS("RS232_DATABITS", 0xff, RS232_DATABITS_8) + DEVICE_INPUT_DEFAULTS("RS232_PARITY", 0xff, RS232_PARITY_NONE) + DEVICE_INPUT_DEFAULTS("RS232_STOPBITS", 0xff, RS232_STOPBITS_1) +DEVICE_INPUT_DEFAULTS_END TIMER_DEVICE_CALLBACK_MEMBER(h8_state::h8_irq_pulse) { @@ -211,8 +227,8 @@ void h8_state::io_map(address_map &map) map(0xf0, 0xf0).rw(FUNC(h8_state::portf0_r), FUNC(h8_state::portf0_w)); map(0xf1, 0xf1).w(FUNC(h8_state::portf1_w)); map(0xf8, 0xf9).rw(m_uart, FUNC(i8251_device::read), FUNC(i8251_device::write)); - // optional connection to a serial terminal @ 600 baud - //map(0xfa, 0xfb).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write)); + // Connection to a serial terminal @ 600 baud + map(0xfa, 0xfb).rw(m_console, FUNC(i8251_device::read), FUNC(i8251_device::write)); } /* Input ports */ @@ -320,6 +336,13 @@ But, all of this can only occur if bit 4 of port F0 is low. */ m_run_led = state; } +void h8_state::h8_level3_irq_callback(int state) +{ + if (state) { + m_maincpu->set_input_line_and_vector(INPUT_LINE_IRQ0, ASSERT_LINE, 0xdf); // RST3 + } +} + TIMER_DEVICE_CALLBACK_MEMBER(h8_state::kansas_w) { m_cass_data[3]++; @@ -370,10 +393,28 @@ void h8_state::h8(machine_config &config) I8251(config, m_uart, 0); m_uart->txd_handler().set([this] (bool state) { m_cassbit = state; }); + I8251(config, m_console, 0); + m_console->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); + m_console->rts_handler().set("rs232", FUNC(rs232_port_device::write_rts)); + m_console->dtr_handler().set("rs232", FUNC(rs232_port_device::write_dtr)); + // The RxRdy pin on the 8251 USART is normally jumpered to generate a level 3 i/o interrupt. + m_console->rxrdy_handler().set(FUNC(h8_state::h8_level3_irq_callback)); + + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set(m_console, FUNC(i8251_device::write_rxd)); + rs232.cts_handler().set(m_console, FUNC(i8251_device::write_cts)); + rs232.dsr_handler().set(m_console, FUNC(i8251_device::write_dsr)); + rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); + clock_device &cassette_clock(CLOCK(config, "cassette_clock", 4800)); cassette_clock.signal_handler().set(m_uart, FUNC(i8251_device::write_txc)); cassette_clock.signal_handler().append(m_uart, FUNC(i8251_device::write_rxc)); + // Console UART clock is 16X the baud rate. + clock_device &console_clock(CLOCK(config, "console_clock", 600*16)); + console_clock.signal_handler().set(m_console, FUNC(i8251_device::write_txc)); + console_clock.signal_handler().append(m_console, FUNC(i8251_device::write_rxc)); + CASSETTE(config, m_cass); m_cass->set_formats(h8_cassette_formats); m_cass->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED); diff --git a/src/mame/layout/h8.lay b/src/mame/layout/h8.lay index 0ecb7c44d5d..b571a4cc4b5 100644 --- a/src/mame/layout/h8.lay +++ b/src/mame/layout/h8.lay @@ -31,10 +31,181 @@ license:CC0-1.0 <color red="1.0" green="1.0" blue="1.0" /></text> </element> - <view name="Default Layout"> + <element name="btn_0"> + <rect state="0"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect state="1"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="0"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="1"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect><bounds x="0.1" y="0.1" width="0.8" height="0.8" /><color red="0.15" green="0.15" blue="0.15" /></rect> + <text string="0"><bounds x="0.15" y="0.2" width="0.8" height="0.6" /><color red="1.0" green="1.0" blue="1.0" /></text> + </element> + <element name="btn_1"> + <rect state="0"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect state="1"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="0"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="1"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect><bounds x="0.1" y="0.1" width="0.8" height="0.8" /><color red="0.15" green="0.15" blue="0.15" /></rect> + <text string="1"><bounds x="0.15" y="0.2" width="0.8" height="0.6" /><color red="1.0" green="1.0" blue="1.0" /></text> + <text string="SP"><bounds x="0.0" y="0.1" width="0.8" height="0.2" /><color red="1.0" green="1.0" blue="1.0" /></text> + </element> + <element name="btn_2"> + <rect state="0"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect state="1"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="0"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="1"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect><bounds x="0.1" y="0.1" width="0.8" height="0.8" /><color red="0.15" green="0.15" blue="0.15" /></rect> + <text string="2"><bounds x="0.15" y="0.2" width="0.8" height="0.6" /><color red="1.0" green="1.0" blue="1.0" /></text> + <text string="AF"><bounds x="0.0" y="0.1" width="0.8" height="0.2" /><color red="1.0" green="1.0" blue="1.0" /></text> + </element> + <element name="btn_3"> + <rect state="0"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect state="1"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="0"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="1"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect><bounds x="0.1" y="0.1" width="0.8" height="0.8" /><color red="0.15" green="0.15" blue="0.15" /></rect> + <text string="3"><bounds x="0.15" y="0.2" width="0.8" height="0.6" /><color red="1.0" green="1.0" blue="1.0" /></text> + <text string="BC"><bounds x="0.0" y="0.1" width="0.8" height="0.2" /><color red="1.0" green="1.0" blue="1.0" /></text> + </element> + <element name="btn_4"> + <rect state="0"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect state="1"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="0"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="1"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect><bounds x="0.1" y="0.1" width="0.8" height="0.8" /><color red="0.15" green="0.15" blue="0.15" /></rect> + <text string="4"><bounds x="0.15" y="0.2" width="0.8" height="0.6" /><color red="1.0" green="1.0" blue="1.0" /></text> + <text string="DE"><bounds x="0.0" y="0.1" width="0.8" height="0.2" /><color red="1.0" green="1.0" blue="1.0" /></text> + <text string="GO"><bounds x="0.2" y="0.7" width="0.8" height="0.2" /><color red="1.0" green="1.0" blue="1.0" /></text> + </element> + <element name="btn_5"> + <rect state="0"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect state="1"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="0"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="1"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect><bounds x="0.1" y="0.1" width="0.8" height="0.8" /><color red="0.15" green="0.15" blue="0.15" /></rect> + <text string="5"><bounds x="0.15" y="0.2" width="0.8" height="0.6" /><color red="1.0" green="1.0" blue="1.0" /></text> + <text string="HL"><bounds x="0.0" y="0.1" width="0.8" height="0.2" /><color red="1.0" green="1.0" blue="1.0" /></text> + <text string="IN"><bounds x="0.2" y="0.7" width="0.8" height="0.2" /><color red="1.0" green="1.0" blue="1.0" /></text> + </element> + <element name="btn_6"> + <rect state="0"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect state="1"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="0"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="1"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect><bounds x="0.1" y="0.1" width="0.8" height="0.8" /><color red="0.15" green="0.15" blue="0.15" /></rect> + <text string="6"><bounds x="0.15" y="0.2" width="0.8" height="0.6" /><color red="1.0" green="1.0" blue="1.0" /></text> + <text string="PC"><bounds x="0.0" y="0.1" width="0.8" height="0.2" /><color red="1.0" green="1.0" blue="1.0" /></text> + <text string="OUT"><bounds x="0.2" y="0.7" width="0.8" height="0.2" /><color red="1.0" green="1.0" blue="1.0" /></text> + </element> + <element name="btn_7"> + <rect state="0"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect state="1"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="0"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="1"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect><bounds x="0.1" y="0.1" width="0.8" height="0.8" /><color red="0.15" green="0.15" blue="0.15" /></rect> + <text string="7"><bounds x="0.15" y="0.2" width="0.8" height="0.6" /><color red="1.0" green="1.0" blue="1.0" /></text> + <text string="SI"><bounds x="0.22" y="0.7" width="0.8" height="0.2" /><color red="1.0" green="1.0" blue="1.0" /></text> + </element> + <element name="btn_8"> + <rect state="0"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect state="1"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="0"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="1"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect><bounds x="0.1" y="0.1" width="0.8" height="0.8" /><color red="0.15" green="0.15" blue="0.15" /></rect> + <text string="8"><bounds x="0.15" y="0.2" width="0.8" height="0.6" /><color red="1.0" green="1.0" blue="1.0" /></text> + <text string="LOAD"><bounds x="0.22" y="0.7" width="0.8" height="0.2" /><color red="1.0" green="1.0" blue="1.0" /></text> + </element> + <element name="btn_9"> + <rect state="0"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect state="1"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="0"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="1"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect><bounds x="0.1" y="0.1" width="0.8" height="0.8" /><color red="0.15" green="0.15" blue="0.15" /></rect> + <text string="9"><bounds x="0.15" y="0.2" width="0.8" height="0.6" /><color red="1.0" green="1.0" blue="1.0" /></text> + <text string="DUMP"><bounds x="0.22" y="0.7" width="0.8" height="0.2" /><color red="1.0" green="1.0" blue="1.0" /></text> + </element> + <element name="btn_a"> + <rect state="0"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect state="1"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="0"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="1"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect><bounds x="0.1" y="0.1" width="0.8" height="0.8" /><color red="0.15" green="0.15" blue="0.15" /></rect> + <text string="+"><bounds x="0.1" y="0.2" width="0.8" height="0.6" /><color red="1.0" green="1.0" blue="1.0" /></text> + </element> + <element name="btn_b"> + <rect state="0"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect state="1"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="0"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="1"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect><bounds x="0.1" y="0.1" width="0.8" height="0.8" /><color red="0.15" green="0.15" blue="0.15" /></rect> + <text string="-"><bounds x="0.1" y="0.2" width="0.8" height="0.6" /><color red="1.0" green="1.0" blue="1.0" /></text> + </element> + <element name="btn_c"> + <rect state="0"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect state="1"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="0"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="1"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect><bounds x="0.1" y="0.1" width="0.8" height="0.8" /><color red="0.15" green="0.15" blue="0.15" /></rect> + <text string="*"><bounds x="0.1" y="0.3" width="0.8" height="0.6" /><color red="1.0" green="1.0" blue="1.0" /></text> + <text string="CANCEL"><bounds x="0.1" y="0.7" width="0.8" height="0.2" /><color red="1.0" green="1.0" blue="1.0" /></text> + </element> + <element name="btn_d"> + <rect state="0"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect state="1"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="0"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="1"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect><bounds x="0.1" y="0.1" width="0.8" height="0.8" /><color red="0.15" green="0.15" blue="0.15" /></rect> + <text string="/"><bounds x="0.1" y="0.2" width="0.8" height="0.6" /><color red="1.0" green="1.0" blue="1.0" /></text> + <text string="ALTER"><bounds x="0.0" y="0.1" width="0.8" height="0.2" /><color red="1.0" green="1.0" blue="1.0" /></text> + <text string="RST 0"><bounds x="0.2" y="0.7" width="0.8" height="0.2" /><color red="1.0" green="1.0" blue="1.0" /></text> + </element> + <element name="btn_e"> + <rect state="0"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect state="1"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="0"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="1"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect><bounds x="0.1" y="0.1" width="0.8" height="0.8" /><color red="0.15" green="0.15" blue="0.15" /></rect> + <text string="#"><bounds x="0.1" y="0.2" width="0.8" height="0.6" /><color red="1.0" green="1.0" blue="1.0" /></text> + <text string="MEM"><bounds x="0.0" y="0.1" width="0.8" height="0.2" /><color red="1.0" green="1.0" blue="1.0" /></text> + <text string="RTM 0"><bounds x="0.2" y="0.7" width="0.8" height="0.2" /><color red="1.0" green="1.0" blue="1.0" /></text> + </element> + <element name="btn_f"> + <rect state="0"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect state="1"><bounds x="0.0" y="0.0" width="1.0" height="1.0" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="0"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.1" green="0.1" blue="0.1" /></rect> + <rect state="1"><bounds x="0.1" y="0.1" width="0.9" height="0.9" /><color red="0.2" green="0.2" blue="0.2" /></rect> + <rect><bounds x="0.1" y="0.1" width="0.8" height="0.8" /><color red="0.15" green="0.15" blue="0.15" /></rect> + <text string="."><bounds x="0.1" y="0.1" width="0.8" height="0.6" /><color red="1.0" green="1.0" blue="1.0" /></text> + <text string="REG"><bounds x="0.0" y="0.1" width="0.8" height="0.2" /><color red="1.0" green="1.0" blue="1.0" /></text> + </element> + + <group name="keypad"> + <bounds x="0" y="0" width="4.35" height="4.275" /> + + <element ref="btn_7" inputtag="X0" inputmask="0x80"><bounds x="0.20" y="0.125" width="1.0" height="1.0" /></element> + <element ref="btn_8" inputtag="X1" inputmask="0x01"><bounds x="1.25" y="0.125" width="1.0" height="1.0" /></element> + <element ref="btn_9" inputtag="X1" inputmask="0x02"><bounds x="2.30" y="0.125" width="1.0" height="1.0" /></element> + <element ref="btn_a" inputtag="X1" inputmask="0x04"><bounds x="3.35" y="0.125" width="1.0" height="1.0" /></element> + + <element ref="btn_4" inputtag="X0" inputmask="0x10"><bounds x="0.20" y="1.175" width="1.0" height="1.0" /></element> + <element ref="btn_5" inputtag="X0" inputmask="0x20"><bounds x="1.25" y="1.175" width="1.0" height="1.0" /></element> + <element ref="btn_6" inputtag="X0" inputmask="0x40"><bounds x="2.30" y="1.175" width="1.0" height="1.0" /></element> + <element ref="btn_b" inputtag="X1" inputmask="0x08"><bounds x="3.35" y="1.175" width="1.0" height="1.0" /></element> + + <element ref="btn_1" inputtag="X0" inputmask="0x02"><bounds x="0.20" y="2.225" width="1.0" height="1.0" /></element> + <element ref="btn_2" inputtag="X0" inputmask="0x04"><bounds x="1.25" y="2.225" width="1.0" height="1.0" /></element> + <element ref="btn_3" inputtag="X0" inputmask="0x08"><bounds x="2.30" y="2.225" width="1.0" height="1.0" /></element> + <element ref="btn_c" inputtag="X1" inputmask="0x10"><bounds x="3.35" y="2.225" width="1.0" height="1.0" /></element> + + <element ref="btn_0" inputtag="X0" inputmask="0x01"><bounds x="0.20" y="3.275" width="1.0" height="1.0" /></element> + <element ref="btn_f" inputtag="X1" inputmask="0x80"><bounds x="1.25" y="3.275" width="1.0" height="1.0" /></element> + <element ref="btn_e" inputtag="X1" inputmask="0x40"><bounds x="2.30" y="3.275" width="1.0" height="1.0" /></element> + <element ref="btn_d" inputtag="X1" inputmask="0x20"><bounds x="3.35" y="3.275" width="1.0" height="1.0" /></element> + </group> + + <group name="leds"> <!-- Black background --> <element ref="background"> - <bounds left="1" top="65" right="600" bottom="200" /> + <bounds left="1" top="65" right="900" bottom="200" /> </element> <element name="digit1" ref="digit"> <bounds left="107" top="075" right="154" bottom="146" /> @@ -93,5 +264,39 @@ license:CC0-1.0 <element name="pwr_txt" ref="DAT"> <bounds left="437" right="593" top="175" bottom="190" /> </element> + </group> + + <view name="LEDs and Keypad"> + <bounds x="0" y="0" width="1000" height="400" /> + <collection name="LEDs and Keypad"> + <group ref="leds"> + <bounds x="5" y="15" width="1000" height="150" /> + </group> + <group ref="keypad"> + <bounds x="720" y="15" width="220" height="220" /> + </group> + </collection> + </view> + + <view name="LEDs"> + <bounds x="0" y="0" width="600" height="150" /> + <collection name="LEDs"> + <group ref="leds"> + <bounds x="0" y="8" width="900" height="130" /> + </group> + </collection> + </view> + + <view name="LEDs, Keypad, and Terminal"> + <bounds x="0" y="0" width="1000" height="400" /> + <collection name="LEDs and Keypad"> + <group ref="leds"> + <bounds x="5" y="15" width="1000" height="150" /> + </group> + <group ref="keypad"> + <bounds x="720" y="15" width="220" height="220" /> + </group> + </collection> + <screen index="0"><bounds x="120" y="160" width="400" height="300" /></screen> </view> </mamelayout> |
