Skip to content

Commit 3ecb4d9

Browse files
committed
adi_vt52: Fixed scrolling, identify more dip switches
Systems promoted to working --------------------------- ADI VT52
1 parent cec6bde commit 3ecb4d9

File tree

1 file changed

+19
-18
lines changed

1 file changed

+19
-18
lines changed

src/mame/misc/adi_vt52.cpp

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
- 2x10 position DIP switch
1818
1919
TODO:
20-
- Scrolling is broken
2120
- VRAM bit 7 is unknown
2221
- Unknown DIP switch settings
2322
- Replace HLE serial keyboard
@@ -101,13 +100,13 @@ class adi_vt52_state : public driver_device
101100
void adi_vt52_state::mem_map(address_map &map)
102101
{
103102
map.global_mask(0x7fff);
104-
map(0x0000, 0x0003).rw("mos6551", FUNC(mos6551_device::read), FUNC(mos6551_device::write));
105-
map(0x0040, 0x0040).rw("crtc", FUNC(mc6845_device::status_r), FUNC(mc6845_device::address_w));
106-
map(0x0041, 0x0041).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
107-
map(0x0080, 0x00ff).mirror(0x100).m("riot", FUNC(mos6532_device::ram_map));
108-
map(0x0280, 0x029f).m("riot", FUNC(mos6532_device::io_map));
109-
map(0x2000, 0x27ff).ram().share("vram");
110-
map(0x4000, 0x4001).rw("mc6850", FUNC(acia6850_device::read), FUNC(acia6850_device::write));
103+
map(0x0000, 0x0003).rw(m_mos6551, FUNC(mos6551_device::read), FUNC(mos6551_device::write));
104+
map(0x0040, 0x0040).rw(m_crtc, FUNC(mc6845_device::status_r), FUNC(mc6845_device::address_w));
105+
map(0x0041, 0x0041).rw(m_crtc, FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
106+
map(0x0080, 0x00ff).mirror(0x100).m(m_riot, FUNC(mos6532_device::ram_map));
107+
map(0x0280, 0x029f).m(m_riot, FUNC(mos6532_device::io_map));
108+
map(0x2000, 0x27ff).mirror(0x800).ram().share("vram");
109+
map(0x4000, 0x4001).rw(m_mc6850, FUNC(acia6850_device::read), FUNC(acia6850_device::write));
111110
map(0x7000, 0x7fff).rom().region("maincpu", 0);
112111
}
113112

@@ -118,14 +117,16 @@ void adi_vt52_state::mem_map(address_map &map)
118117

119118
static INPUT_PORTS_START( adi_vt52 )
120119
PORT_START("dip1") // might be dip2
121-
PORT_DIPUNKNOWN(0x01, IP_ACTIVE_LOW) PORT_NAME("DIP1-1")
122-
PORT_DIPUNKNOWN(0x02, IP_ACTIVE_LOW) PORT_NAME("DIP1-2")
123-
PORT_DIPUNKNOWN(0x04, IP_ACTIVE_LOW) PORT_NAME("DIP1-3")
124-
PORT_DIPUNKNOWN(0x08, IP_ACTIVE_LOW) PORT_NAME("DIP1-4")
125-
PORT_DIPUNKNOWN(0x10, IP_ACTIVE_LOW) PORT_NAME("DIP1-5")
126-
PORT_DIPUNKNOWN(0x20, IP_ACTIVE_LOW) PORT_NAME("DIP1-6")
127-
PORT_DIPUNKNOWN(0x40, IP_ACTIVE_LOW) PORT_NAME("DIP1-7")
128-
PORT_DIPUNKNOWN(0x80, IP_ACTIVE_LOW) PORT_NAME("DIP1-8")
120+
PORT_DIPUNKNOWN_DIPLOC(0x01, IP_ACTIVE_LOW, "DIP1:1") PORT_NAME("DIP1-1")
121+
PORT_DIPUNKNOWN_DIPLOC(0x02, IP_ACTIVE_LOW, "DIP1:2") PORT_NAME("DIP1-2")
122+
PORT_DIPUNKNOWN_DIPLOC(0x04, IP_ACTIVE_LOW, "DIP1:3") PORT_NAME("DIP1-3") // when set, vram bit 7 set for unwritten areas
123+
PORT_DIPUNKNOWN_DIPLOC(0x08, IP_ACTIVE_LOW, "DIP1:4") PORT_NAME("DIP1-4")
124+
PORT_DIPUNKNOWN_DIPLOC(0x10, IP_ACTIVE_LOW, "DIP1:5") PORT_NAME("DIP1-5")
125+
PORT_DIPUNKNOWN_DIPLOC(0x20, IP_ACTIVE_LOW, "DIP1:6") PORT_NAME("DIP1-6")
126+
PORT_DIPNAME(0x40, 0x00, "Local Echo") PORT_DIPLOCATION("DIP1:7")
127+
PORT_DIPSETTING(0x00, DEF_STR( On ))
128+
PORT_DIPSETTING(0x40, DEF_STR( Off ))
129+
PORT_DIPUNKNOWN_DIPLOC(0x80, IP_ACTIVE_LOW, "DIP1:8") PORT_NAME("DIP1-8")
129130

130131
PORT_START("dip2") // might be dip1
131132
PORT_DIPNAME(0x0f, 0x0e, "Baud Rate") PORT_DIPLOCATION("DIP2:1,2,3,4")
@@ -152,7 +153,7 @@ static INPUT_PORTS_START( adi_vt52 )
152153
PORT_DIPNAME(0x40, 0x40, "Parity") PORT_DIPLOCATION("DIP2:7")
153154
PORT_DIPSETTING(0x00, "Odd")
154155
PORT_DIPSETTING(0x40, "Even")
155-
PORT_DIPUNKNOWN(0x80, IP_ACTIVE_LOW) PORT_NAME("DIP2-8") PORT_DIPLOCATION("DIP2:8")
156+
PORT_DIPUNKNOWN_DIPLOC(0x80, IP_ACTIVE_LOW, "DIP2:8") PORT_NAME("DIP2-8")
156157
INPUT_PORTS_END
157158

158159

@@ -307,4 +308,4 @@ ROM_END
307308
//**************************************************************************
308309

309310
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
310-
COMP( 1984, adi_vt52, 0, 0, adi_vt52, adi_vt52, adi_vt52_state, empty_init, "ADI", "VT52", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
311+
COMP( 1984, adi_vt52, 0, 0, adi_vt52, adi_vt52, adi_vt52_state, empty_init, "ADI", "VT52", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )

0 commit comments

Comments
 (0)