Missing file ...

This commit is contained in:
Angelo Salese 2014-04-02 02:44:49 +00:00
parent 0a498e31f7
commit f6dc3b14b1

View File

@ -64,7 +64,7 @@ void aakart_device::device_start()
m_rxtimer = timer_alloc(RX_TIMER);
m_rxtimer->adjust(attotime::from_hz(clock()), 0, attotime::from_hz(clock()));
m_txtimer = timer_alloc(TX_TIMER);
m_txtimer->adjust(attotime::from_hz(clock()), 0, attotime::from_hz(clock()));
m_txtimer->adjust(attotime::from_hz(clock()*3), 0, attotime::from_hz(clock()*3));
m_mousetimer = timer_alloc(MOUSE_TIMER);
m_mousetimer->adjust(attotime::from_hz(clock()), 0, attotime::from_hz(clock()));
m_keybtimer = timer_alloc(KEYB_TIMER);
@ -108,6 +108,8 @@ void aakart_device::device_reset()
// device_timer - handler timer events
//-------------------------------------------------
#if 0
void aakart_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
{
#if 0
@ -233,6 +235,27 @@ void aakart_device::device_timer(emu_timer &timer, device_timer_id id, int param
m_new_command |= 2;
}
}
#else
void aakart_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
{
if(id == RX_TIMER && m_new_command & 2)
{
m_out_rx_func(ASSERT_LINE);
m_out_tx_func(CLEAR_LINE);
m_rx = m_rx_latch;
return;
}
if(id == TX_TIMER && m_new_command & 1)
{
m_out_tx_func(ASSERT_LINE);
m_new_command &= ~1;
m_new_command |= 2;
return;
}
}
#endif
//**************************************************************************
// READ/WRITE HANDLERS
@ -240,7 +263,7 @@ void aakart_device::device_timer(emu_timer &timer, device_timer_id id, int param
READ8_MEMBER( aakart_device::read )
{
m_out_tx_func(CLEAR_LINE);
m_out_rx_func(CLEAR_LINE);
return m_rx;
}
@ -249,6 +272,78 @@ WRITE8_MEMBER( aakart_device::write )
// if(m_new_command) printf("skip cmd %02x\n",data);
m_tx_latch = data;
switch(m_status)
{
case STATUS_NORMAL:
{
switch(m_tx_latch)
{
case 0x00: //set leds
break;
case RQID:
m_rx_latch = 0x81; //keyboard ID
break;
case HRST:
m_rx_latch = HRST;
m_status = STATUS_HRST;
break;
case SMAK:
case MACK:
case SACK:
case NACK:
if(m_tx_latch & 2) { m_mouse_enable = 1; }
if(m_tx_latch & 1) { m_keyb_enable = 1; }
m_rx_latch = 0;
break;
case BACK:
m_rx_latch = machine().rand(); // ???
break;
default:
//printf("%02x\n",data);
break;
}
break;
}
case STATUS_KEYDOWN:
{
m_rx_latch = machine().rand();
switch(m_tx_latch)
{
case HRST:
m_rx_latch = HRST;
m_status = STATUS_HRST;
break;
default:
//m_rx_latch = 0xc0 | 0x04;
printf("%02x\n",data);
break;
}
break;
}
case STATUS_HRST:
{
switch(m_tx_latch)
{
case HRST: { m_rx_latch = HRST; m_keyb_enable = m_mouse_enable = 0; break; }
case RAK1: { m_rx_latch = RAK1; m_keyb_enable = m_mouse_enable = 0; break; }
case RAK2: { m_rx_latch = RAK2; m_status = STATUS_NORMAL; break; }
}
break;
}
}
m_new_command |= 1;
m_out_rx_func(CLEAR_LINE);
//m_tx_latch = data;
//m_new_command |= 1;
}
#if 0
void aakart_device::write_kbd_buf()
{
//printf("%08x\n",data);
m_out_tx_func(ASSERT_LINE);
//debugger_break(machine());
m_status = STATUS_KEYDOWN;
}
#endif