blob: 4469410ed5f9ce94c60c8df6572789554198ed66 (
plain) (
tree)
|
|
// license:BSD-3-Clause
// copyright-holders:Nathan Woods
/***************************************************************************
coco12.cpp
TRS-80 Radio Shack Color Computer 1/2 Family
***************************************************************************/
#include "emu.h"
#include "includes/coco12.h"
//-------------------------------------------------
// device_start
//-------------------------------------------------
void coco12_state::device_start()
{
coco_state::device_start();
configure_sam();
}
//-------------------------------------------------
// configure_sam
//-------------------------------------------------
void coco12_state::configure_sam()
{
offs_t ramsize = m_ram->size() - 1;
m_sam->space(0).install_ram(0, ramsize - 1, m_ram->pointer());
if (ramsize < 65536)
m_sam->space(0).nop_readwrite(ramsize, 0xffff);
}
//-------------------------------------------------
// horizontal_sync
//-------------------------------------------------
WRITE_LINE_MEMBER( coco12_state::horizontal_sync )
{
pia_0().ca1_w(state);
m_sam->hs_w(state);
}
//-------------------------------------------------
// field_sync
//-------------------------------------------------
WRITE_LINE_MEMBER( coco12_state::field_sync )
{
pia_0().cb1_w(state);
}
//-------------------------------------------------
// sam_read
//-------------------------------------------------
uint8_t coco12_state::sam_read(offs_t offset)
{
uint8_t data = sam().display_read(offset);
m_vdg->as_w(data & 0x80 ? ASSERT_LINE : CLEAR_LINE);
m_vdg->inv_w(data & 0x40 ? ASSERT_LINE : CLEAR_LINE);
return data;
}
//-------------------------------------------------
// pia1_pb_changed
//-------------------------------------------------
void coco12_state::pia1_pb_changed(uint8_t data)
{
/* call inherited function */
coco_state::pia1_pb_changed(data);
m_vdg->css_w(data & 0x08);
m_vdg->intext_w(data & 0x10);
m_vdg->gm0_w(data & 0x10);
m_vdg->gm1_w(data & 0x20);
m_vdg->gm2_w(data & 0x40);
m_vdg->ag_w(data & 0x80);
}
|