Previous 199869 Revisions Next

r18986 Friday 16th November, 2012 at 15:08:20 UTC by Angelo Salese
Added cursor blinking for PC-9801 and A5105, hooked up DMA segments for APC
[src/mess/drivers]a5105.c apc.c pc9801.c

trunk/src/mess/drivers/pc9801.c
r18985r18986
564564            if(u_line && yi == 7) { tile_data = 0xff; }
565565            if(v_line)   { tile_data|=8; }
566566
567            if(cursor_on && cursor_addr == tile_addr)
567            if(cursor_on && cursor_addr == tile_addr && device->machine().primary_screen->frame_number() & 0x10)
568568               tile_data^=0xff;
569569
570570            if(yi >= char_size)
trunk/src/mess/drivers/apc.c
r18985r18986
100100   DECLARE_WRITE8_MEMBER(apc_gdc_w);
101101   DECLARE_READ8_MEMBER(apc_kbd_r);
102102   DECLARE_WRITE8_MEMBER(apc_kbd_w);
103   DECLARE_WRITE8_MEMBER(apc_dma_segments_w);
103104
104105   DECLARE_WRITE_LINE_MEMBER(apc_master_set_int_line);
105106   DECLARE_READ8_MEMBER(get_slave_ack);
r18985r18986
324325   printf("%08x %02x\n",offset,data);
325326}
326327
328WRITE8_MEMBER(apc_state::apc_dma_segments_w)
329{
330   m_dma_offset[0][offset & 3] = data & 0x0f;
331}
332
327333static ADDRESS_MAP_START( apc_map, AS_PROGRAM, 16, apc_state )
328334   AM_RANGE(0x00000, 0x1ffff) AM_RAM
329335//   AM_RANGE(0xa0000, 0xaffff) space for an external ROM
r18985r18986
336342   AM_RANGE(0x20, 0x23) AM_DEVREADWRITE8_LEGACY("pic8259_master", pic8259_r, pic8259_w, 0x00ff) // i8259
337343   AM_RANGE(0x28, 0x2f) AM_READWRITE8(apc_port_28_r, apc_port_28_w, 0xffff)
338344//   0x30, 0x37 serial port 0/1 (i8251) (even/odd)
339//   0x38, 0x3f DMA extended address
345   AM_RANGE(0x38, 0x3f) AM_WRITE8(apc_dma_segments_w,0x00ff)
340346   AM_RANGE(0x40, 0x43) AM_READWRITE8(apc_gdc_r, apc_gdc_w, 0xffff)
341347//  0x46 UPD7220 reset interrupt
342348   AM_RANGE(0x48, 0x4f) AM_READWRITE8(apc_kbd_r, apc_kbd_w, 0x00ff)
trunk/src/mess/drivers/a5105.c
r18985r18986
104104      {
105105         tile_data = state->m_char_rom[(tile*8+yi) & 0x7ff];
106106
107         if(cursor_on && cursor_addr == addr+x) //TODO
107         if(cursor_on && cursor_addr == addr+x && device->machine().primary_screen->frame_number() & 0x10)
108108            tile_data^=0xff;
109109
110110         for( xi = 0; xi < 8; xi++)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team