summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers/pdp1.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/drivers/pdp1.c')
-rw-r--r--src/mess/drivers/pdp1.c36
1 files changed, 16 insertions, 20 deletions
diff --git a/src/mess/drivers/pdp1.c b/src/mess/drivers/pdp1.c
index 2d71bde9203..f3827cf61b1 100644
--- a/src/mess/drivers/pdp1.c
+++ b/src/mess/drivers/pdp1.c
@@ -166,7 +166,7 @@ static INPUT_PORTS_START( pdp1 )
rightmost one: maybe they were used to set the margin (I don't have the
manual for the typewriter). */
- PORT_START("TWR0") /* 6: typewriter codes 00-17 */
+ PORT_START("TWR.0") /* 6: typewriter codes 00-17 */
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(Space)") PORT_CODE(KEYCODE_SPACE)
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 \"") PORT_CODE(KEYCODE_1)
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 '") PORT_CODE(KEYCODE_2)
@@ -178,7 +178,7 @@ static INPUT_PORTS_START( pdp1 )
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 >") PORT_CODE(KEYCODE_8)
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 (up arrow)") PORT_CODE(KEYCODE_9)
- PORT_START("TWR1") /* 7: typewriter codes 20-37 */
+ PORT_START("TWR.1") /* 7: typewriter codes 20-37 */
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0 (right arrow)") PORT_CODE(KEYCODE_0)
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH)
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S)
@@ -192,7 +192,7 @@ static INPUT_PORTS_START( pdp1 )
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(", =") PORT_CODE(KEYCODE_COMMA)
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Tab Key") PORT_CODE(KEYCODE_TAB)
- PORT_START("TWR2") /* 8: typewriter codes 40-57 */
+ PORT_START("TWR.2") /* 8: typewriter codes 40-57 */
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(non-spacing middle dot) _") PORT_CODE(KEYCODE_QUOTE)
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J)
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K)
@@ -208,7 +208,7 @@ static INPUT_PORTS_START( pdp1 )
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(non-spacing overstrike) |") PORT_CODE(KEYCODE_OPENBRACE)
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("( [") PORT_CODE(KEYCODE_MINUS)
- PORT_START("TWR3") /* 9: typewriter codes 60-77 */
+ PORT_START("TWR.3") /* 9: typewriter codes 60-77 */
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A)
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B)
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C)
@@ -485,9 +485,8 @@ static pdp1_reset_param_t pdp1_reset_param =
void pdp1_state::machine_reset()
{
- int cfg;
+ int cfg = m_cfg->read();
- cfg = ioport("CFG")->read();
pdp1_reset_param.extend_support = (cfg >> pdp1_config_extend_bit) & pdp1_config_extend_mask;
pdp1_reset_param.hw_mul_div = (cfg >> pdp1_config_hw_mul_div_bit) & pdp1_config_hw_mul_div_mask;
pdp1_reset_param.type_20_sbs = (cfg >> pdp1_config_type_20_sbs_bit) & pdp1_config_type_20_sbs_mask;
@@ -1598,7 +1597,7 @@ static void iot_dra(device_t *device, int op2, int nac, int mb, int *io, int ac)
{
pdp1_state *state = device->machine().driver_data<pdp1_state>();
(*io) = (state->m_parallel_drum.rotation_timer->elapsed() *
- (ATTOSECONDS_PER_SECOND / (PARALLEL_DRUM_WORD_TIME.as_attoseconds()))).seconds & 0007777;
+ (ATTOSECONDS_PER_SECOND / (PARALLEL_DRUM_WORD_TIME.as_attoseconds()))).seconds() & 0007777;
/* set parity error and timing error... */
}
@@ -1618,7 +1617,7 @@ static void iot_dra(device_t *device, int op2, int nac, int mb, int *io, int ac)
*/
static void iot_011(device_t *device, int op2, int nac, int mb, int *io, int ac)
{
- int key_state = device->machine().root_device().ioport("SPACEWAR")->read();
+ int key_state = device->machine().driver_data<pdp1_state>()->read_spacewar();
int reply;
@@ -1701,12 +1700,11 @@ void pdp1_state::pdp1_keyboard()
int typewriter_keys[4];
int typewriter_transitions;
- static const char *const twrnames[] = { "TWR0", "TWR1", "TWR2", "TWR3" };
for (i=0; i<4; i++)
{
- typewriter_keys[i] = ioport(twrnames[i])->read();
+ typewriter_keys[i] = m_twr[i]->read();
}
for (i=0; i<4; i++)
@@ -1734,11 +1732,9 @@ void pdp1_state::pdp1_keyboard()
void pdp1_state::pdp1_lightpen()
{
int x_delta, y_delta;
- int current_state;
+ int current_state = m_io_lightpen->read();
- m_lightpen.active = (ioport("CFG")->read() >> pdp1_config_lightpen_bit) & pdp1_config_lightpen_mask;
-
- current_state = ioport("LIGHTPEN")->read();
+ m_lightpen.active = (m_cfg->read() >> pdp1_config_lightpen_bit) & pdp1_config_lightpen_mask;
/* update pen down state */
m_lightpen.down = m_lightpen.active && (current_state & pdp1_lightpen_down);
@@ -1760,8 +1756,8 @@ void pdp1_state::pdp1_lightpen()
m_old_lightpen = current_state;
/* update pen position */
- x_delta = ioport("LIGHTX")->read();
- y_delta = ioport("LIGHTY")->read();
+ x_delta = m_lightx->read();
+ y_delta = m_lighty->read();
if (x_delta >= 0x80)
x_delta -= 0x100;
@@ -1797,10 +1793,10 @@ INTERRUPT_GEN_MEMBER(pdp1_state::pdp1_interrupt)
int ta_transitions;
- m_maincpu->set_state_int(PDP1_SS, ioport("SENSE")->read());
+ m_maincpu->set_state_int(PDP1_SS, m_sense->read());
/* read new state of control keys */
- control_keys = ioport("CSW")->read();
+ control_keys = m_csw->read();
if (control_keys & pdp1_control)
{
@@ -1892,7 +1888,7 @@ INTERRUPT_GEN_MEMBER(pdp1_state::pdp1_interrupt)
/* handle test word keys */
- tw_keys = (ioport("TWDMSB")->read() << 16) | ioport("TWDLSB")->read();
+ tw_keys = (m_twdmsb->read() << 16) | m_twdlsb->read();
/* compute transitions */
tw_transitions = tw_keys & (~ m_old_tw_keys);
@@ -1905,7 +1901,7 @@ INTERRUPT_GEN_MEMBER(pdp1_state::pdp1_interrupt)
/* handle address keys */
- ta_keys = ioport("TSTADD")->read();
+ ta_keys = m_tstadd->read();
/* compute transitions */
ta_transitions = ta_keys & (~ m_old_ta_keys);