mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
cit101, cit101_kbd: Update notes; minor keyboard tweaks
This commit is contained in:
parent
01d5d49518
commit
01438a2cf8
@ -30,6 +30,8 @@ CIT-101e (released 1983)
|
||||
Ergonomic redesign of CIT-101.
|
||||
Competitive with DEC VT220 (which was released several months later).
|
||||
14-inch monochrome screen with tilt/swivel, 24 lines of 80 or 132 characters.
|
||||
10 x 12 (80 columns)/9 x 12 (132 columns) display cell.
|
||||
19,610 Hz (80 columns)/18,870 Hz (132 columns) horizontal frequency.
|
||||
85-key low-profile keyboard.
|
||||
CIG-201
|
||||
Plug-in graphics card for CIT-101 and CIT-101e.
|
||||
@ -47,7 +49,9 @@ Special SET-UP control codes:
|
||||
* CTRL+D: Restore default NVR settings
|
||||
* CTRL+A: Set answerback message
|
||||
* CTRL+X: Enable/disable Bidirectional Auxiliary I/O Channel and SET-UP D Mode
|
||||
(undocumented; SET-UP B Mode only)
|
||||
(SET-UP B Mode only; documented only for CIT-101e but also valid on original)
|
||||
|
||||
The NVR checksum error reported when the terminal is first used is nonfatal. Default settings will be used and can be saved.
|
||||
|
||||
************************************************************************************************************************************/
|
||||
|
||||
@ -301,6 +305,7 @@ void cit101_state::screen_control_101e_w(u8 data)
|
||||
{
|
||||
if ((m_extraram[0] & 0x06) != (data & 0x06))
|
||||
{
|
||||
// TODO: interlace mode
|
||||
const int height = 300;
|
||||
if (BIT(data, 1))
|
||||
screen_reconfigure(19.6608_MHz_XTAL, 800, 1000, 288, height);
|
||||
|
@ -46,8 +46,8 @@
|
||||
9F (Invalid key)
|
||||
|
||||
Two types of host commands are processed. Commands with bit 0
|
||||
set affect the LEDs (TODO: identify which LEDs are which), and
|
||||
commands with bit 0 clear are needed to initiate a new scan.
|
||||
set affect the LEDs, and commands with bit 0 clear affect the
|
||||
beeper. Sending a command is necessary to initiate a new scan.
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
@ -68,7 +68,7 @@ cit101_keyboard_device::cit101_keyboard_device(const machine_config &mconfig, de
|
||||
, m_beeper(*this, "beeper")
|
||||
, m_keys(*this, "KEYS%d", 0U)
|
||||
, m_kbid(*this, "KBID")
|
||||
, m_leds(*this, "led%d", 1U)
|
||||
, m_leds(*this, "led%d", 0U)
|
||||
, m_txd_callback(*this)
|
||||
, m_kbid_enabled(false)
|
||||
{
|
||||
@ -110,8 +110,16 @@ void cit101_keyboard_device::p2_w(u8 data)
|
||||
void cit101_keyboard_device::leds_w(u8 data)
|
||||
{
|
||||
m_kbid_enabled = !BIT(data, 0);
|
||||
|
||||
// Bit 7 = ON LINE
|
||||
// Bit 6 = OFF LINE
|
||||
// Bit 5 = KBD LOCKED
|
||||
// Bit 4 = L1
|
||||
// Bit 3 = L2
|
||||
// Bit 2 = L3
|
||||
// Bit 1 = L4
|
||||
for (int i = 0; i < 7; i++)
|
||||
m_leds[i] = !BIT(data, i + 1);
|
||||
m_leds[i] = !BIT(data, 7 - i);
|
||||
}
|
||||
|
||||
u8 cit101_keyboard_device::keys_r()
|
||||
@ -147,8 +155,8 @@ INPUT_PORTS_START(cit101_keyboard)
|
||||
PORT_BIT(0xe7, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
|
||||
PORT_START("MODIFIERS")
|
||||
PORT_BIT(1, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Repeat") PORT_CODE(KEYCODE_RCONTROL)
|
||||
PORT_BIT(2, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_SHIFT_2) PORT_CODE(KEYCODE_LCONTROL)
|
||||
PORT_BIT(1, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Rept") PORT_CODE(KEYCODE_RCONTROL)
|
||||
PORT_BIT(2, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ctrl") PORT_CHAR(UCHAR_SHIFT_2) PORT_CODE(KEYCODE_LCONTROL)
|
||||
|
||||
PORT_START("KEYS0")
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PF3") PORT_CHAR(UCHAR_MAMEKEY(F3)) PORT_CODE(KEYCODE_F3)
|
||||
@ -263,11 +271,23 @@ INPUT_PORTS_START(cit101_keyboard)
|
||||
PORT_BIT(0xfe, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||
INPUT_PORTS_END
|
||||
|
||||
INPUT_PORTS_START(cit101e_keyboard)
|
||||
PORT_INCLUDE(cit101_keyboard)
|
||||
|
||||
PORT_MODIFY("KEYS0")
|
||||
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad Enter (Print)") PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD)) PORT_CODE(KEYCODE_ENTER_PAD)
|
||||
INPUT_PORTS_END
|
||||
|
||||
ioport_constructor cit101_keyboard_device::device_input_ports() const
|
||||
{
|
||||
return INPUT_PORTS_NAME(cit101_keyboard);
|
||||
}
|
||||
|
||||
ioport_constructor cit101e_keyboard_device::device_input_ports() const
|
||||
{
|
||||
return INPUT_PORTS_NAME(cit101e_keyboard);
|
||||
}
|
||||
|
||||
void cit101_keyboard_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
I8035(config, m_mcu, 2.376_MHz_XTAL); // TMP8048P in EA mode (location marked "8048/8035/8748" on original keyboard)
|
||||
@ -280,7 +300,7 @@ void cit101_keyboard_device::device_add_mconfig(machine_config &config)
|
||||
m_mcu->t1_in_cb().set_ioport("MODIFIERS").bit(1);
|
||||
|
||||
SPEAKER(config, "mono").front_center();
|
||||
BEEP(config, m_beeper, 786).add_route(ALL_OUTPUTS, "mono", 0.5); // unknown frequency
|
||||
BEEP(config, m_beeper, 786).add_route(ALL_OUTPUTS, "mono", 0.5); // unknown frequency (original keyboard has a NE555)
|
||||
}
|
||||
|
||||
|
||||
|
@ -27,6 +27,8 @@ public:
|
||||
// device type constructor
|
||||
cit101_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0);
|
||||
|
||||
static constexpr feature_type unemulated_features() { return feature::SOUND; }
|
||||
|
||||
// callback configuration
|
||||
auto txd_callback() { return m_txd_callback.bind(); }
|
||||
|
||||
@ -77,6 +79,7 @@ public:
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual ioport_constructor device_input_ports() const override;
|
||||
virtual const tiny_rom_entry *device_rom_region() const override;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user