Previous 199869 Revisions Next

r35309 Thursday 26th February, 2015 at 20:40:51 UTC by Carl
(mess) pcd: cursor and floppy 2 (nw)
[src/emu/video]scn2674.c scn2674.h
[src/mess/drivers]pcd.c

trunk/src/emu/video/scn2674.c
r243820r243821
694694
695695         for(int i = 0; i < m_IR5_character_per_row; i++)
696696         {
697            if((address & 0x3fff) == ((m_cursor_h << 8) | m_cursor_l))
698               m_cursor_on = true;
697            bool cursor_on = ((address & 0x3fff) == ((m_cursor_h << 8) | m_cursor_l));
699698
700699            if (!m_display_cb.isnull())
701700               m_display_cb(m_bitmap,
r243820r243821
704703                           tilerow,
705704                           space().read_byte(address),
706705                           address,
707                           (charrow >= m_IR6_cursor_first_scanline) && m_cursor_on,
706                           (charrow >= m_IR6_cursor_first_scanline) && (charrow <= m_IR6_cursor_last_scanline) && cursor_on,
708707                           dw != 0,
709708                           m_gfx_enabled != 0,
710709                           charrow == m_IR7_cursor_underline_position,
r243820r243821
715714               address = (m_IR9_display_buffer_first_address_MSB << 8) | m_IR8_display_buffer_first_address_LSB;
716715         }
717716
718         if(charrow == m_IR6_cursor_last_scanline)
719            m_cursor_on = false;
720
721717         if(m_gfx_enabled || (charrow == (m_IR0_scanline_per_char_row - 1)))
722718            m_address = address;
723719      }
trunk/src/emu/video/scn2674.h
r243820r243821
105105   UINT8 m_dbl1;
106106   int m_linecounter;
107107   UINT16 m_address;
108   bool m_cursor_on;
109108
110109   UINT8 m_irq_state;
111110
trunk/src/mess/drivers/pcd.c
r243820r243821
250250
251251   if((m_dskctl & 1) && floppy0)
252252      m_fdc->set_floppy(floppy0);
253   if((m_dskctl & 2) && floppy1)
254      m_fdc->set_floppy(floppy1);
253255
254256   if(floppy0)
255257   {
r243820r243821
292294   else
293295   {
294296      UINT8 data = m_charram[(m_vram[address] & 0xff) * 16 + linecount];
297      if(cursor && blink)
298         data = 0xff;
295299      for(int i = 0; i < 8; i++)
296300         bitmap.pix32(y, x + i) = m_palette->pen((data & (1 << (7 - i))) ? 1 : 0);
297301   }
r243820r243821
397401//**************************************************************************
398402
399403static ADDRESS_MAP_START( pcd_map, AS_PROGRAM, 16, pcd_state )
400   AM_RANGE(0x00000, 0x3ffff) AM_RAM // fixed 256k for now
404   AM_RANGE(0x00000, 0x7ffff) AM_RAM // fixed 512k for now
401405   AM_RANGE(0xf0000, 0xf7fff) AM_READONLY AM_WRITE(vram_w) AM_SHARE("vram")
402406   AM_RANGE(0xfc000, 0xfffff) AM_ROM AM_REGION("bios", 0)
403407   AM_RANGE(0x00000, 0xfffff) AM_READWRITE8(nmi_io_r, nmi_io_w, 0xffff)
r243820r243821
449453   MCFG_80186_TMROUT1_HANDLER(WRITELINE(pcd_state, i186_timer1_w))
450454   MCFG_80186_IRQ_SLAVE_ACK(READ8(pcd_state, irq_callback))
451455
456   MCFG_CPU_ADD("graphics", I8741, XTAL_16MHz/2)
457   MCFG_DEVICE_DISABLE()
458
452459   MCFG_TIMER_DRIVER_ADD_PERIODIC("timer0_tick", pcd_state, timer0_tick, attotime::from_hz(XTAL_16MHz / 24)) // adjusted to pass post
453460
454461   MCFG_PIC8259_ADD("pic1", DEVWRITELINE("maincpu", i80186_cpu_device, int0_w), VCC, NULL)


Previous 199869 Revisions Next


© 1997-2024 The MAME Team