mirror of
https://github.com/holub/mame
synced 2025-04-28 11:11:48 +03:00
act5a: Add jumper definitions (nw)
This commit is contained in:
parent
47a730bc50
commit
aadfb7e096
@ -29,15 +29,17 @@ public:
|
|||||||
, m_kbdecode(*this, "kbdecode")
|
, m_kbdecode(*this, "kbdecode")
|
||||||
, m_chargen(*this, "chargen")
|
, m_chargen(*this, "chargen")
|
||||||
, m_keys(*this, "KEY%u", 0U)
|
, m_keys(*this, "KEY%u", 0U)
|
||||||
, m_dsw(*this, "DSW%u", 1U)
|
|
||||||
, m_modifiers(*this, "MODIFIERS")
|
, m_modifiers(*this, "MODIFIERS")
|
||||||
, m_special(*this, "SPECIAL")
|
, m_special(*this, "SPECIAL")
|
||||||
|
, m_dsw(*this, "DSW%u", 1U)
|
||||||
|
, m_jumpers(*this, "JUMPERS")
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
void act5a(machine_config &config);
|
void act5a(machine_config &config);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual void machine_start() override;
|
virtual void machine_start() override;
|
||||||
|
virtual void machine_reset() override;
|
||||||
|
|
||||||
u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||||
|
|
||||||
@ -66,9 +68,10 @@ private:
|
|||||||
required_region_ptr<u8> m_kbdecode;
|
required_region_ptr<u8> m_kbdecode;
|
||||||
required_region_ptr<u8> m_chargen;
|
required_region_ptr<u8> m_chargen;
|
||||||
required_ioport_array<11> m_keys;
|
required_ioport_array<11> m_keys;
|
||||||
required_ioport_array<3> m_dsw;
|
|
||||||
required_ioport m_modifiers;
|
required_ioport m_modifiers;
|
||||||
required_ioport m_special;
|
required_ioport m_special;
|
||||||
|
required_ioport_array<3> m_dsw;
|
||||||
|
required_ioport m_jumpers;
|
||||||
|
|
||||||
u8 m_port00;
|
u8 m_port00;
|
||||||
u8 m_keylatch;
|
u8 m_keylatch;
|
||||||
@ -80,7 +83,6 @@ void microterm_f8_state::machine_start()
|
|||||||
{
|
{
|
||||||
m_port00 = 0;
|
m_port00 = 0;
|
||||||
m_keylatch = 0;
|
m_keylatch = 0;
|
||||||
m_scroll = 0;
|
|
||||||
m_vram = make_unique_clear<u16[]>(0x800); // 6x MM2114 with weird addressing
|
m_vram = make_unique_clear<u16[]>(0x800); // 6x MM2114 with weird addressing
|
||||||
|
|
||||||
save_item(NAME(m_port00));
|
save_item(NAME(m_port00));
|
||||||
@ -89,8 +91,14 @@ void microterm_f8_state::machine_start()
|
|||||||
save_pointer(NAME(m_vram), 0x800);
|
save_pointer(NAME(m_vram), 0x800);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void microterm_f8_state::machine_reset()
|
||||||
|
{
|
||||||
|
m_scroll = 0;
|
||||||
|
}
|
||||||
|
|
||||||
u32 microterm_f8_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
u32 microterm_f8_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||||
{
|
{
|
||||||
|
const ioport_value jumpers = m_jumpers->read();
|
||||||
unsigned y = cliprect.top();
|
unsigned y = cliprect.top();
|
||||||
offs_t rowbase = (((y / 12) + m_scroll) % 24) * 80;
|
offs_t rowbase = (((y / 12) + m_scroll) % 24) * 80;
|
||||||
unsigned line = y % 12;
|
unsigned line = y % 12;
|
||||||
@ -99,7 +107,7 @@ u32 microterm_f8_state::screen_update(screen_device &screen, bitmap_rgb32 &bitma
|
|||||||
|
|
||||||
while (y <= cliprect.bottom())
|
while (y <= cliprect.bottom())
|
||||||
{
|
{
|
||||||
const bool allow_underline = line == 13;
|
const bool allow_underline = (line == 13) || (line == 12 && !BIT(jumpers, 1));
|
||||||
|
|
||||||
for (unsigned x = cliprect.left(); x <= cliprect.right(); x++)
|
for (unsigned x = cliprect.left(); x <= cliprect.right(); x++)
|
||||||
{
|
{
|
||||||
@ -416,7 +424,28 @@ static INPUT_PORTS_START(act5a)
|
|||||||
PORT_DIPSETTING(0x000, "1")
|
PORT_DIPSETTING(0x000, "1")
|
||||||
PORT_DIPSETTING(0x100, "2")
|
PORT_DIPSETTING(0x100, "2")
|
||||||
|
|
||||||
// TODO: W1-W5 jumper settings
|
PORT_START("JUMPERS")
|
||||||
|
PORT_DIPNAME(0x0003, 0x0002, "Underline") PORT_DIPLOCATION("W1:1,2")
|
||||||
|
PORT_DIPSETTING(0x0002, "Single")
|
||||||
|
PORT_DIPSETTING(0x0001, "Double")
|
||||||
|
PORT_DIPNAME(0x003c, 0x0034, "Cursor Rate") PORT_DIPLOCATION("W2:1,2,3,4")
|
||||||
|
PORT_DIPSETTING(0x001c, "0 Hz")
|
||||||
|
PORT_DIPSETTING(0x002c, "1 Hz")
|
||||||
|
PORT_DIPSETTING(0x0034, "2 Hz")
|
||||||
|
PORT_DIPSETTING(0x0038, "4 Hz")
|
||||||
|
PORT_DIPNAME(0x01c0, 0x00c0, "Blinking Rate") PORT_DIPLOCATION("W3:1,2,3")
|
||||||
|
PORT_DIPSETTING(0x00c0, "1 Hz")
|
||||||
|
PORT_DIPSETTING(0x0140, "2 Hz")
|
||||||
|
PORT_DIPSETTING(0x0180, "4 Hz")
|
||||||
|
PORT_DIPNAME(0x1e00, 0x0e00, "Protected Video Attribute") PORT_DIPLOCATION("W4:4,3,2,1")
|
||||||
|
PORT_DIPSETTING(0x0e00, "Reduced Intensity")
|
||||||
|
PORT_DIPSETTING(0x1600, "Blinking")
|
||||||
|
PORT_DIPSETTING(0x1a00, "Reverse Video")
|
||||||
|
PORT_DIPSETTING(0x1c00, "Underline")
|
||||||
|
PORT_DIPNAME(0xe000, 0x6000, "Keyboard Auto Repeat Rate") PORT_DIPLOCATION("W5:1,2,3")
|
||||||
|
PORT_DIPSETTING(0x6000, "7.5 cps")
|
||||||
|
PORT_DIPSETTING(0xa000, "15 cps")
|
||||||
|
PORT_DIPSETTING(0xc000, "30 cps")
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
void microterm_f8_state::act5a(machine_config &config)
|
void microterm_f8_state::act5a(machine_config &config)
|
||||||
|
Loading…
Reference in New Issue
Block a user