diff --git a/src/mame/drivers/tabe22.cpp b/src/mame/drivers/tabe22.cpp index 7c0997fe300..50ae77ad5b6 100644 --- a/src/mame/drivers/tabe22.cpp +++ b/src/mame/drivers/tabe22.cpp @@ -24,6 +24,10 @@ Notes: - The hardware has some similarities to cit220.cpp - Everything here is guessed (including the system name), no docs available + - Other (undumped) terminals from Tab: + * 132/15: VT52/VT100/VT132 (1982) + * 132/15-G: Tektronix graphics (1982) + * 132/15-H: Honeywell (1983) ***************************************************************************/ @@ -67,6 +71,13 @@ protected: virtual void machine_start() override; private: + required_device m_maincpu; + required_device m_screen; + required_device m_palette; + required_device m_avdc; + required_region_ptr m_chargen; + required_device m_vram_bank; + void mem_map(address_map &map); void io_map(address_map &map); void vram_map(address_map &map); @@ -74,13 +85,6 @@ private: void char_map(address_map &map); void attr_map(address_map &map); - required_device m_maincpu; - required_device m_screen; - required_device m_palette; - required_device m_avdc; - required_region_ptr m_chargen; - optional_device m_vram_bank; - void video_ctrl_w(uint8_t data); void crt_brightness_w(uint8_t data); SCN2674_DRAW_CHARACTER_MEMBER(draw_character); @@ -155,10 +159,8 @@ void tabe22_state::crt_brightness_w(uint8_t data) SCN2674_DRAW_CHARACTER_MEMBER( tabe22_state::draw_character ) { - uint16_t data = m_chargen[charcode << 4 | linecount] << 2; - const pen_t *const pen = m_palette->pens(); - - // 76------ unknown + // 7------- chargen high bit + // -6------ unknown // --5----- shaded // ---4---- unknown // ----3--- bold @@ -166,6 +168,9 @@ SCN2674_DRAW_CHARACTER_MEMBER( tabe22_state::draw_character ) // ------1- underline // -------0 reverse + uint16_t data = m_chargen[(BIT(attrcode, 7) << 12) | charcode << 4 | linecount] << 2; + const pen_t *const pen = m_palette->pens(); + if (ul && (BIT(attrcode, 1))) data = 0x1ff; diff --git a/src/mame/machine/e22_kbd.cpp b/src/mame/machine/e22_kbd.cpp index 61cfafd9b94..52525fe5227 100644 --- a/src/mame/machine/e22_kbd.cpp +++ b/src/mame/machine/e22_kbd.cpp @@ -248,10 +248,15 @@ void e22_kbd_hle_device::received_byte(uint8_t byte) switch (byte) { case 0x02: break; // keyclick on - case 0x06: transmit_byte(0x01); break; // can't be 0x00 - case 0x07: transmit_byte(0x02); break; // can't be 0x00 + case 0x06: transmit_byte(0x01); break; // keyboard model, can't be 0 + case 0x07: transmit_byte(0x02); break; // read 3 times, can't be 0 in total case 0x09: break; // bell? case 0x12: break; // keyclick off + case 0xf8: logerror("Key repeat disabled\n"); break; + case 0xf9: logerror("Key repeat 6 cps\n"); break; + case 0xfa: logerror("Key repeat 12 cps\n"); break; + case 0xfb: logerror("Key repeat 24 cps\n"); break; + case 0xfc: logerror("Key repeat 30 cps\n"); break; } }