Added cursor blinking for PC-9801 and A5105, hooked up DMA segments for APC

This commit is contained in:
Angelo Salese 2012-11-16 15:08:20 +00:00
parent 66ce4efe84
commit 3976eb8144
3 changed files with 9 additions and 3 deletions

View File

@ -104,7 +104,7 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text )
{
tile_data = state->m_char_rom[(tile*8+yi) & 0x7ff];
if(cursor_on && cursor_addr == addr+x) //TODO
if(cursor_on && cursor_addr == addr+x && device->machine().primary_screen->frame_number() & 0x10)
tile_data^=0xff;
for( xi = 0; xi < 8; xi++)

View File

@ -100,6 +100,7 @@ public:
DECLARE_WRITE8_MEMBER(apc_gdc_w);
DECLARE_READ8_MEMBER(apc_kbd_r);
DECLARE_WRITE8_MEMBER(apc_kbd_w);
DECLARE_WRITE8_MEMBER(apc_dma_segments_w);
DECLARE_WRITE_LINE_MEMBER(apc_master_set_int_line);
DECLARE_READ8_MEMBER(get_slave_ack);
@ -324,6 +325,11 @@ WRITE8_MEMBER(apc_state::apc_kbd_w)
printf("%08x %02x\n",offset,data);
}
WRITE8_MEMBER(apc_state::apc_dma_segments_w)
{
m_dma_offset[0][offset & 3] = data & 0x0f;
}
static ADDRESS_MAP_START( apc_map, AS_PROGRAM, 16, apc_state )
AM_RANGE(0x00000, 0x1ffff) AM_RAM
// AM_RANGE(0xa0000, 0xaffff) space for an external ROM
@ -336,7 +342,7 @@ static ADDRESS_MAP_START( apc_io, AS_IO, 16, apc_state )
AM_RANGE(0x20, 0x23) AM_DEVREADWRITE8_LEGACY("pic8259_master", pic8259_r, pic8259_w, 0x00ff) // i8259
AM_RANGE(0x28, 0x2f) AM_READWRITE8(apc_port_28_r, apc_port_28_w, 0xffff)
// 0x30, 0x37 serial port 0/1 (i8251) (even/odd)
// 0x38, 0x3f DMA extended address
AM_RANGE(0x38, 0x3f) AM_WRITE8(apc_dma_segments_w,0x00ff)
AM_RANGE(0x40, 0x43) AM_READWRITE8(apc_gdc_r, apc_gdc_w, 0xffff)
// 0x46 UPD7220 reset interrupt
AM_RANGE(0x48, 0x4f) AM_READWRITE8(apc_kbd_r, apc_kbd_w, 0x00ff)

View File

@ -564,7 +564,7 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text )
if(u_line && yi == 7) { tile_data = 0xff; }
if(v_line) { tile_data|=8; }
if(cursor_on && cursor_addr == tile_addr)
if(cursor_on && cursor_addr == tile_addr && device->machine().primary_screen->frame_number() & 0x10)
tile_data^=0xff;
if(yi >= char_size)