Video DRAM read-back ports added.

This commit is contained in:
Jean-François DEL NERO 2015-12-29 00:33:03 +01:00
parent ce099f6b22
commit 3c8d2d8597

View File

@ -89,6 +89,8 @@ public:
{ }
DECLARE_WRITE8_MEMBER(ctrl_w);
DECLARE_READ8_MEMBER(video_ram_read_reg1);
DECLARE_READ8_MEMBER(video_ram_read_reg2);
DECLARE_WRITE8_MEMBER(fdc_sel0_w);
DECLARE_READ8_MEMBER(fdc_sel0_r);
DECLARE_WRITE8_MEMBER(fdc_sel1_w);
@ -157,6 +159,76 @@ WRITE8_MEMBER( squale_state::ctrl_w )
m_ef9365->set_color_filler(data & 0xF);
}
READ8_MEMBER( squale_state::video_ram_read_reg1 )
{
UINT8 data;
int p;
//D7 D0
//I2R2G2B2 I3R3G3B3
data = 0x00;
for(p = 0; p < 4 ; p++)
{
if( m_ef9365->get_last_readback_word(p, 0) & 8 )
{
data |= (0x01 << p);
}
}
data = data << 4;
for(p = 0; p < 4 ; p++)
{
if( m_ef9365->get_last_readback_word(p, 0) & 4 )
{
data |= (0x01 << p);
}
}
#ifdef DBGMODE
printf("read video_ram_read_reg1 reg : 0x%X\n",data);
#endif
return data;
}
READ8_MEMBER( squale_state::video_ram_read_reg2 )
{
UINT8 data;
int p;
//D7 D0
//I0R0G0B0 I1R1G1B1
data = 0x00;
for(p = 0; p < 4 ; p++)
{
if( m_ef9365->get_last_readback_word(p, 0) & 2 )
{
data |= (0x01 << p);
}
}
data = data << 4;
for(p = 0; p < 4 ; p++)
{
if( m_ef9365->get_last_readback_word(p, 0) & 1 )
{
data |= (0x01 << p);
}
}
#ifdef DBGMODE
printf("read video_ram_read_reg2 reg : 0x%X\n",data);
#endif
return data;
}
/**********************************
* Floppy controller I/O Handlers *
***********************************/
@ -542,6 +614,8 @@ static ADDRESS_MAP_START(squale_mem, AS_PROGRAM, 8, squale_state)
AM_RANGE(0x0000,0xefff) AM_RAM
AM_RANGE(0xf000,0xf00f) AM_DEVREADWRITE("ef9365", ef9365_device, data_r, data_w)
AM_RANGE(0xf010,0xf01f) AM_WRITE( ctrl_w )
AM_RANGE(0xf020,0xf02f) AM_READ( video_ram_read_reg1 )
AM_RANGE(0xf030,0xf03f) AM_READ( video_ram_read_reg2 )
AM_RANGE(0xf044,0xf047) AM_DEVREADWRITE("pia_u75", pia6821_device, read, write)
AM_RANGE(0xf048,0xf04b) AM_DEVREADWRITE("pia_u72", pia6821_device, read, write)
AM_RANGE(0xf050,0xf05f) AM_DEVREADWRITE("ef6850", acia6850_device, data_r, data_w)