summaryrefslogblamecommitdiffstatshomepage
path: root/src/devices/video/upd7227.cpp
blob: f512f8832be6f70edb15220dacf1218da1b51485 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11

                               

                                                                       
                                                                  
 




                                                                       

                     






                                                                            
                                                                     

 




                                                  

 








                                                                            
                                                                                                               

                                                       
                                                                                                                               




                  




                                                   























                                                   



                                                   
                                                                                        
 
                                    

                                                  



                                                   


                                                   
                                                                                                              




















































                                                   
// license:BSD-3-Clause
// copyright-holders:Curt Coder
/**********************************************************************

    uPD7227 Intelligent Dot-Matrix LCD Controller/Driver emulation

**********************************************************************/

#include "emu.h"
#include "upd7227.h"

//#define VERBOSE 1
#include "logmacro.h"



//**************************************************************************
//  DEVICE DEFINITIONS
//**************************************************************************

DEFINE_DEVICE_TYPE(UPD7227, upd7227_device, "upd7227", "NEC uPD7227")


void upd7227_device::upd7227_map(address_map &map)
{
	map(0x00, 0x27).ram();
	map(0x40, 0x67).ram();
}



//**************************************************************************
//  LIVE DEVICE
//**************************************************************************

//-------------------------------------------------
//  upd7227_device - constructor
//-------------------------------------------------

upd7227_device::upd7227_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
	: device_t(mconfig, UPD7227, tag, owner, clock)
	, device_memory_interface(mconfig, *this)
	, m_space_config("videoram", ENDIANNESS_BIG, 8, 7, 0, address_map_constructor(FUNC(upd7227_device::upd7227_map), this))
	, m_cs(1)
	, m_cd(1)
	, m_sck(1)
	, m_si(1)
	, m_so(1)
{
}


//-------------------------------------------------
//  device_start - device-specific startup
//-------------------------------------------------

void upd7227_device::device_start()
{
	// state saving
	save_item(NAME(m_cs));
	save_item(NAME(m_cd));
	save_item(NAME(m_sck));
	save_item(NAME(m_si));
	save_item(NAME(m_so));
}


//-------------------------------------------------
//  device_reset - device-specific reset
//-------------------------------------------------

void upd7227_device::device_reset()
{
}


//-------------------------------------------------
//  memory_space_config - return a description of
//  any address spaces owned by this device
//-------------------------------------------------

device_memory_interface::space_config_vector upd7227_device::memory_space_config() const
{
	return space_config_vector {
		std::make_pair(0, &m_space_config)
	};
}


//-------------------------------------------------
//  update_screen - update screen
//-------------------------------------------------

uint32_t upd7227_device::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
	return 0;
}


//-------------------------------------------------
//  cs_w - chip select
//-------------------------------------------------

WRITE_LINE_MEMBER( upd7227_device::cs_w )
{
	m_cs = state;
}


//-------------------------------------------------
//  cd_w - command/data select
//-------------------------------------------------

WRITE_LINE_MEMBER( upd7227_device::cd_w )
{
	m_cd = state;
}


//-------------------------------------------------
//  sck_w - serial clock
//-------------------------------------------------

WRITE_LINE_MEMBER( upd7227_device::sck_w )
{
	m_sck = state;
}


//-------------------------------------------------
//  si_w - serial input
//-------------------------------------------------

WRITE_LINE_MEMBER( upd7227_device::si_w )
{
	m_si = state;
}


//-------------------------------------------------
//  so_r - serial output/busy
//-------------------------------------------------

READ_LINE_MEMBER( upd7227_device::so_r )
{
	return m_so;
}