summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Angelo Salese <angelosa@users.noreply.github.com>2014-04-12 00:06:32 +0000
committer Angelo Salese <angelosa@users.noreply.github.com>2014-04-12 00:06:32 +0000
commit1323ec4e9c78977a4c03ff199ae567fd06828795 (patch)
treecfe6fb98b944374686b5e746c797f98b6a4d8494
parentb5713761986d9deaeacecf90301fa9616857a883 (diff)
Some keyboard additions, nw
-rw-r--r--src/emu/machine/aakart.c1
-rw-r--r--src/mame/machine/archimds.c33
-rw-r--r--src/mess/drivers/a310.c41
3 files changed, 52 insertions, 23 deletions
diff --git a/src/emu/machine/aakart.c b/src/emu/machine/aakart.c
index 9f8db26a74d..e6884107f05 100644
--- a/src/emu/machine/aakart.c
+++ b/src/emu/machine/aakart.c
@@ -149,7 +149,6 @@ void aakart_device::device_timer(emu_timer &timer, device_timer_id id, int param
m_keyb_state = 0;
}
-
break;
case 0xfd:
m_rx = 0xfd;
diff --git a/src/mame/machine/archimds.c b/src/mame/machine/archimds.c
index 705abc5abfe..cf916444d82 100644
--- a/src/mame/machine/archimds.c
+++ b/src/mame/machine/archimds.c
@@ -58,7 +58,7 @@ void archimedes_state::archimedes_request_irq_b(int mask)
if (m_ioc_regs[IRQ_STATUS_B] & m_ioc_regs[IRQ_MASK_B])
{
- generic_pulse_irq_line(m_maincpu, ARM_IRQ_LINE, 1);
+ m_maincpu->set_input_line(ARM_IRQ_LINE, HOLD_LINE);
}
}
@@ -66,9 +66,11 @@ void archimedes_state::archimedes_request_fiq(int mask)
{
m_ioc_regs[FIQ_STATUS] |= mask;
+ //printf("STATUS:%02x IRQ:%02x MASK:%02x\n",m_ioc_regs[FIQ_STATUS],mask,m_ioc_regs[FIQ_MASK]);
+
if (m_ioc_regs[FIQ_STATUS] & m_ioc_regs[FIQ_MASK])
{
- generic_pulse_irq_line(m_maincpu, ARM_FIRQ_LINE, 1);
+ m_maincpu->set_input_line(ARM_FIRQ_LINE, HOLD_LINE);
}
}
@@ -81,13 +83,13 @@ void archimedes_state::archimedes_clear_irq_a(int mask)
void archimedes_state::archimedes_clear_irq_b(int mask)
{
m_ioc_regs[IRQ_STATUS_B] &= ~mask;
- archimedes_request_irq_b(0);
+ //archimedes_request_irq_b(0);
}
void archimedes_state::archimedes_clear_fiq(int mask)
{
m_ioc_regs[FIQ_STATUS] &= ~mask;
- archimedes_request_fiq(0);
+ //archimedes_request_fiq(0);
}
void archimedes_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
@@ -138,10 +140,11 @@ void archimedes_state::vidc_video_tick()
offset_ptr = m_vidc_vidstart;
}
- size = m_vidc_vidend-m_vidc_vidstart+0x10;
-
- for(m_vidc_ccur = 0;m_vidc_ccur < 0x200;m_vidc_ccur++)
- m_cursor_vram[m_vidc_ccur] = (space.read_byte(m_vidc_cinit+m_vidc_ccur));
+ if(m_cursor_enabled == true)
+ {
+ for(m_vidc_ccur = 0;m_vidc_ccur < 0x200;m_vidc_ccur++)
+ m_cursor_vram[m_vidc_ccur] = (space.read_byte(m_vidc_cinit+m_vidc_ccur));
+ }
if(m_video_dma_on)
{
@@ -276,7 +279,7 @@ void archimedes_state::archimedes_reset()
}
m_ioc_regs[IRQ_STATUS_A] = 0x10 | 0x80; //set up POR (Power On Reset) and Force IRQ at start-up
- m_ioc_regs[IRQ_STATUS_B] = 0x02; //set up IL[1] On
+ m_ioc_regs[IRQ_STATUS_B] = 0x00; //set up IL[1] On
m_ioc_regs[FIQ_STATUS] = 0x80; //set up Force FIQ
m_ioc_regs[CONTROL] = 0xff;
}
@@ -967,7 +970,7 @@ WRITE32_MEMBER(archimedes_state::archimedes_vidc_w)
//#ifdef MAME_DEBUG
- if(0)
+ if(1)
logerror("VIDC: %s = %d\n", vrnames[(reg-0x80)/4], m_vidc_regs[reg]);
//#endif
@@ -1001,23 +1004,25 @@ WRITE32_MEMBER(archimedes_state::archimedes_memc_w)
switch ((data >> 17) & 7)
{
case 0: /* video init */
+ m_cursor_enabled = false;
m_vidc_vidinit = ((data>>2)&0x7fff)*16;
- //printf("MEMC: VIDINIT %08x\n",m_vidc_vidinit);
+ printf("MEMC: VIDINIT %08x\n",m_vidc_vidinit);
break;
case 1: /* video start */
m_vidc_vidstart = 0x2000000 | (((data>>2)&0x7fff)*16);
- //printf("MEMC: VIDSTART %08x\n",m_vidc_vidstart);
+ printf("MEMC: VIDSTART %08x\n",m_vidc_vidstart);
break;
case 2: /* video end */
m_vidc_vidend = 0x2000000 | (((data>>2)&0x7fff)*16);
- //printf("MEMC: VIDEND %08x\n",m_vidc_vidend);
+ printf("MEMC: VIDEND %08x\n",m_vidc_vidend);
break;
case 3: /* cursor init */
+ //m_cursor_enabled = true;
m_vidc_cinit = 0x2000000 | (((data>>2)&0x7fff)*16);
- //printf("MEMC: CURSOR %08x\n",((data>>2)&0x7fff)*16);
+ printf("MEMC: CURSOR INIT %08x\n",((data>>2)&0x7fff)*16);
break;
case 4: /* sound start */
diff --git a/src/mess/drivers/a310.c b/src/mess/drivers/a310.c
index efe67064522..10e513cac45 100644
--- a/src/mess/drivers/a310.c
+++ b/src/mess/drivers/a310.c
@@ -100,18 +100,22 @@ WRITE_LINE_MEMBER(a310_state::a310_wd177x_intrq_w)
{
printf("%d IRQ\n",state);
if (state)
+ {
archimedes_request_fiq(ARCHIMEDES_FIQ_FLOPPY);
- else
- archimedes_clear_fiq(ARCHIMEDES_FIQ_FLOPPY);
+ }
+ //else
+ // archimedes_clear_fiq(ARCHIMEDES_FIQ_FLOPPY);
}
WRITE_LINE_MEMBER(a310_state::a310_wd177x_drq_w)
{
printf("%d DRQ\n",state);
if (state)
+ {
archimedes_request_fiq(ARCHIMEDES_FIQ_FLOPPY_DRQ);
- else
- archimedes_clear_fiq(ARCHIMEDES_FIQ_FLOPPY_DRQ);
+ }
+ //else
+ // archimedes_clear_fiq(ARCHIMEDES_FIQ_FLOPPY_DRQ);
}
READ32_MEMBER(a310_state::a310_psy_wram_r)
@@ -206,7 +210,7 @@ static INPUT_PORTS_START( a310 )
PORT_BIT(0x10, 0x00, IPT_KEYBOARD) PORT_NAME("= +") PORT_CODE(KEYCODE_EQUALS) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x1c) PORT_IMPULSE(1)
PORT_BIT(0x20, 0x00, IPT_KEYBOARD) PORT_NAME("` ~") PORT_CODE(KEYCODE_TILDE) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x10) PORT_IMPULSE(1)
PORT_BIT(0x40, 0x00, IPT_KEYBOARD) PORT_NAME("BACK SPACE") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x1e) PORT_IMPULSE(1)
- PORT_BIT(0x80, 0x00, IPT_KEYBOARD) PORT_NAME("TAB") PORT_CODE(KEYCODE_TAB)
+ PORT_BIT(0x80, 0x00, IPT_KEYBOARD) PORT_NAME("TAB") PORT_CODE(KEYCODE_TAB) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x26) PORT_IMPULSE(1)
PORT_START("key2") /* KEY ROW 2 */
PORT_BIT(0x01, 0x00, IPT_KEYBOARD) PORT_NAME("q Q") PORT_CODE(KEYCODE_Q) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x27) PORT_IMPULSE(1)
@@ -225,7 +229,7 @@ static INPUT_PORTS_START( a310 )
PORT_BIT(0x08, 0x00, IPT_KEYBOARD) PORT_NAME("] }") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x32) PORT_IMPULSE(1)
PORT_BIT(0x10, 0x00, IPT_KEYBOARD) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x47) PORT_IMPULSE(1)
PORT_BIT(0x20, 0x00, IPT_KEYBOARD) PORT_NAME("DEL") PORT_CODE(KEYCODE_DEL)
- PORT_BIT(0x40, 0x00, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL)
+ PORT_BIT(0x40, 0x00, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x61) PORT_IMPULSE(1)
PORT_BIT(0x80, 0x80, IPT_KEYBOARD) PORT_NAME("CAPS LOCK") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE
PORT_START("key4") /* KEY ROW 4 */
@@ -256,11 +260,11 @@ static INPUT_PORTS_START( a310 )
PORT_BIT(0x10, 0x00, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x55) PORT_IMPULSE(1)
PORT_BIT(0x20, 0x00, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x56) PORT_IMPULSE(1)
PORT_BIT(0x40, 0x00, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x23) PORT_IMPULSE(1)
- PORT_BIT(0x80, 0x00, IPT_KEYBOARD) PORT_NAME("SHIFT (R)") PORT_CODE(KEYCODE_RSHIFT)
+ PORT_BIT(0x80, 0x00, IPT_KEYBOARD) PORT_NAME("SHIFT (R)") PORT_CODE(KEYCODE_RSHIFT) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x58) PORT_IMPULSE(1)
PORT_START("key7") /* KEY ROW 7 */
PORT_BIT(0x01, 0x00, IPT_KEYBOARD) PORT_NAME("LINE FEED")
- PORT_BIT(0x02, 0x00, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x26) PORT_IMPULSE(1)
+ PORT_BIT(0x02, 0x00, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x5f) PORT_IMPULSE(1)
PORT_BIT(0x04, 0x00, IPT_KEYBOARD) PORT_NAME("- (KP)") PORT_CODE(KEYCODE_MINUS_PAD)
PORT_BIT(0x08, 0x00, IPT_KEYBOARD) PORT_NAME(", (KP)") PORT_CODE(KEYCODE_PLUS_PAD)
PORT_BIT(0x10, 0x00, IPT_KEYBOARD) PORT_NAME("ENTER (KP)") PORT_CODE(KEYCODE_ENTER_PAD)
@@ -283,6 +287,27 @@ static INPUT_PORTS_START( a310 )
PORT_BIT(0x02, 0x00, IPT_KEYBOARD) PORT_NAME("*") PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x24) PORT_IMPULSE(1) // (KP?)
PORT_BIT(0x04, 0x00, IPT_KEYBOARD) PORT_NAME("#") PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x25) PORT_IMPULSE(1) // (KP?)
+ PORT_START("keya")
+ PORT_BIT(0x01, 0x00, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x01) PORT_IMPULSE(1)
+ PORT_BIT(0x02, 0x00, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x02) PORT_IMPULSE(1)
+ PORT_BIT(0x04, 0x00, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x03) PORT_IMPULSE(1)
+ PORT_BIT(0x08, 0x00, IPT_KEYBOARD) PORT_NAME("F4") PORT_CODE(KEYCODE_F4) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x04) PORT_IMPULSE(1)
+ PORT_BIT(0x10, 0x00, IPT_KEYBOARD) PORT_NAME("F5") PORT_CODE(KEYCODE_F5) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x05) PORT_IMPULSE(1)
+ PORT_BIT(0x20, 0x00, IPT_KEYBOARD) PORT_NAME("F6") PORT_CODE(KEYCODE_F6) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x06) PORT_IMPULSE(1)
+ PORT_BIT(0x40, 0x00, IPT_KEYBOARD) PORT_NAME("F7") PORT_CODE(KEYCODE_F7) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x07) PORT_IMPULSE(1)
+ PORT_BIT(0x80, 0x00, IPT_KEYBOARD) PORT_NAME("F8") PORT_CODE(KEYCODE_F8) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x08) PORT_IMPULSE(1)
+
+ PORT_START("keyb")
+ PORT_BIT(0x01, 0x00, IPT_KEYBOARD) PORT_NAME("F9") PORT_CODE(KEYCODE_F9) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x09) PORT_IMPULSE(1)
+ PORT_BIT(0x02, 0x00, IPT_KEYBOARD) PORT_NAME("F10") PORT_CODE(KEYCODE_F10) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x0a) PORT_IMPULSE(1)
+ PORT_BIT(0x04, 0x00, IPT_KEYBOARD) PORT_NAME("F11") PORT_CODE(KEYCODE_F11) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x0b) PORT_IMPULSE(1)
+ PORT_BIT(0x08, 0x00, IPT_KEYBOARD) PORT_NAME("F12") PORT_CODE(KEYCODE_F12) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x0c) PORT_IMPULSE(1)
+// PORT_BIT(0x10, 0x00, IPT_KEYBOARD) PORT_NAME("F5") PORT_CODE(KEYCODE_F5) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x05) PORT_IMPULSE(1)
+// PORT_BIT(0x20, 0x00, IPT_KEYBOARD) PORT_NAME("F6") PORT_CODE(KEYCODE_F6) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x06) PORT_IMPULSE(1)
+// PORT_BIT(0x40, 0x00, IPT_KEYBOARD) PORT_NAME("F7") PORT_CODE(KEYCODE_F7) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x07) PORT_IMPULSE(1)
+// PORT_BIT(0x80, 0x00, IPT_KEYBOARD) PORT_NAME("F8") PORT_CODE(KEYCODE_F8) PORT_CHANGED_MEMBER(DEVICE_SELF, a310_state, key_stroke, 0x08) PORT_IMPULSE(1)
+
+
PORT_START("via1a") /* VIA #1 PORT A */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START) PORT_PLAYER(1)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START) PORT_PLAYER(2)