(mess) pcd: cursor and floppy 2 (nw)

This commit is contained in:
cracyc 2015-02-26 14:40:51 -06:00
parent 5320552859
commit a11aebba8d
3 changed files with 10 additions and 8 deletions

View File

@ -694,8 +694,7 @@ void scn2674_device::device_timer(emu_timer &timer, device_timer_id id, int para
for(int i = 0; i < m_IR5_character_per_row; i++)
{
if((address & 0x3fff) == ((m_cursor_h << 8) | m_cursor_l))
m_cursor_on = true;
bool cursor_on = ((address & 0x3fff) == ((m_cursor_h << 8) | m_cursor_l));
if (!m_display_cb.isnull())
m_display_cb(m_bitmap,
@ -704,7 +703,7 @@ void scn2674_device::device_timer(emu_timer &timer, device_timer_id id, int para
tilerow,
space().read_byte(address),
address,
(charrow >= m_IR6_cursor_first_scanline) && m_cursor_on,
(charrow >= m_IR6_cursor_first_scanline) && (charrow <= m_IR6_cursor_last_scanline) && cursor_on,
dw != 0,
m_gfx_enabled != 0,
charrow == m_IR7_cursor_underline_position,
@ -715,9 +714,6 @@ void scn2674_device::device_timer(emu_timer &timer, device_timer_id id, int para
address = (m_IR9_display_buffer_first_address_MSB << 8) | m_IR8_display_buffer_first_address_LSB;
}
if(charrow == m_IR6_cursor_last_scanline)
m_cursor_on = false;
if(m_gfx_enabled || (charrow == (m_IR0_scanline_per_char_row - 1)))
m_address = address;
}

View File

@ -105,7 +105,6 @@ private:
UINT8 m_dbl1;
int m_linecounter;
UINT16 m_address;
bool m_cursor_on;
UINT8 m_irq_state;

View File

@ -250,6 +250,8 @@ WRITE16_MEMBER( pcd_state::dskctl_w )
if((m_dskctl & 1) && floppy0)
m_fdc->set_floppy(floppy0);
if((m_dskctl & 2) && floppy1)
m_fdc->set_floppy(floppy1);
if(floppy0)
{
@ -292,6 +294,8 @@ SCN2674_DRAW_CHARACTER_MEMBER(pcd_state::display_pixels)
else
{
UINT8 data = m_charram[(m_vram[address] & 0xff) * 16 + linecount];
if(cursor && blink)
data = 0xff;
for(int i = 0; i < 8; i++)
bitmap.pix32(y, x + i) = m_palette->pen((data & (1 << (7 - i))) ? 1 : 0);
}
@ -397,7 +401,7 @@ WRITE_LINE_MEMBER(pcd_state::write_scsi_req)
//**************************************************************************
static ADDRESS_MAP_START( pcd_map, AS_PROGRAM, 16, pcd_state )
AM_RANGE(0x00000, 0x3ffff) AM_RAM // fixed 256k for now
AM_RANGE(0x00000, 0x7ffff) AM_RAM // fixed 512k for now
AM_RANGE(0xf0000, 0xf7fff) AM_READONLY AM_WRITE(vram_w) AM_SHARE("vram")
AM_RANGE(0xfc000, 0xfffff) AM_ROM AM_REGION("bios", 0)
AM_RANGE(0x00000, 0xfffff) AM_READWRITE8(nmi_io_r, nmi_io_w, 0xffff)
@ -449,6 +453,9 @@ static MACHINE_CONFIG_START( pcd, pcd_state )
MCFG_80186_TMROUT1_HANDLER(WRITELINE(pcd_state, i186_timer1_w))
MCFG_80186_IRQ_SLAVE_ACK(READ8(pcd_state, irq_callback))
MCFG_CPU_ADD("graphics", I8741, XTAL_16MHz/2)
MCFG_DEVICE_DISABLE()
MCFG_TIMER_DRIVER_ADD_PERIODIC("timer0_tick", pcd_state, timer0_tick, attotime::from_hz(XTAL_16MHz / 24)) // adjusted to pass post
MCFG_PIC8259_ADD("pic1", DEVWRITELINE("maincpu", i80186_cpu_device, int0_w), VCC, NULL)