mirror of
https://github.com/holub/mame
synced 2025-06-20 11:16:37 +03:00
(mess) pcd: cursor and floppy 2 (nw)
This commit is contained in:
parent
5320552859
commit
a11aebba8d
@ -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++)
|
for(int i = 0; i < m_IR5_character_per_row; i++)
|
||||||
{
|
{
|
||||||
if((address & 0x3fff) == ((m_cursor_h << 8) | m_cursor_l))
|
bool cursor_on = ((address & 0x3fff) == ((m_cursor_h << 8) | m_cursor_l));
|
||||||
m_cursor_on = true;
|
|
||||||
|
|
||||||
if (!m_display_cb.isnull())
|
if (!m_display_cb.isnull())
|
||||||
m_display_cb(m_bitmap,
|
m_display_cb(m_bitmap,
|
||||||
@ -704,7 +703,7 @@ void scn2674_device::device_timer(emu_timer &timer, device_timer_id id, int para
|
|||||||
tilerow,
|
tilerow,
|
||||||
space().read_byte(address),
|
space().read_byte(address),
|
||||||
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,
|
dw != 0,
|
||||||
m_gfx_enabled != 0,
|
m_gfx_enabled != 0,
|
||||||
charrow == m_IR7_cursor_underline_position,
|
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;
|
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)))
|
if(m_gfx_enabled || (charrow == (m_IR0_scanline_per_char_row - 1)))
|
||||||
m_address = address;
|
m_address = address;
|
||||||
}
|
}
|
||||||
|
@ -105,7 +105,6 @@ private:
|
|||||||
UINT8 m_dbl1;
|
UINT8 m_dbl1;
|
||||||
int m_linecounter;
|
int m_linecounter;
|
||||||
UINT16 m_address;
|
UINT16 m_address;
|
||||||
bool m_cursor_on;
|
|
||||||
|
|
||||||
UINT8 m_irq_state;
|
UINT8 m_irq_state;
|
||||||
|
|
||||||
|
@ -250,6 +250,8 @@ WRITE16_MEMBER( pcd_state::dskctl_w )
|
|||||||
|
|
||||||
if((m_dskctl & 1) && floppy0)
|
if((m_dskctl & 1) && floppy0)
|
||||||
m_fdc->set_floppy(floppy0);
|
m_fdc->set_floppy(floppy0);
|
||||||
|
if((m_dskctl & 2) && floppy1)
|
||||||
|
m_fdc->set_floppy(floppy1);
|
||||||
|
|
||||||
if(floppy0)
|
if(floppy0)
|
||||||
{
|
{
|
||||||
@ -292,6 +294,8 @@ SCN2674_DRAW_CHARACTER_MEMBER(pcd_state::display_pixels)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
UINT8 data = m_charram[(m_vram[address] & 0xff) * 16 + linecount];
|
UINT8 data = m_charram[(m_vram[address] & 0xff) * 16 + linecount];
|
||||||
|
if(cursor && blink)
|
||||||
|
data = 0xff;
|
||||||
for(int i = 0; i < 8; i++)
|
for(int i = 0; i < 8; i++)
|
||||||
bitmap.pix32(y, x + i) = m_palette->pen((data & (1 << (7 - i))) ? 1 : 0);
|
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 )
|
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(0xf0000, 0xf7fff) AM_READONLY AM_WRITE(vram_w) AM_SHARE("vram")
|
||||||
AM_RANGE(0xfc000, 0xfffff) AM_ROM AM_REGION("bios", 0)
|
AM_RANGE(0xfc000, 0xfffff) AM_ROM AM_REGION("bios", 0)
|
||||||
AM_RANGE(0x00000, 0xfffff) AM_READWRITE8(nmi_io_r, nmi_io_w, 0xffff)
|
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_TMROUT1_HANDLER(WRITELINE(pcd_state, i186_timer1_w))
|
||||||
MCFG_80186_IRQ_SLAVE_ACK(READ8(pcd_state, irq_callback))
|
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_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)
|
MCFG_PIC8259_ADD("pic1", DEVWRITELINE("maincpu", i80186_cpu_device, int0_w), VCC, NULL)
|
||||||
|
Loading…
Reference in New Issue
Block a user