示例#1
0
文件: i8255.cpp 项目: meesokim/fc-100
void I8255::write_io8(uint32 addr, uint32 data)
{
	int ch = addr & 3;
	
	switch(ch) {
	case 0:
	case 1:
	case 2:
		if(port[ch].wreg != data || port[ch].first) {
			write_signals(&port[ch].outputs, data);
			port[ch].wreg = data;
			port[ch].first = false;
		}
		break;
	case 3:
		if(data & 0x80) {
			port[0].rmask = (data & 0x10) ? 0xff : 0;
			port[0].mode = (data >> 5) & 3;
			port[1].rmask = (data & 2) ? 0xff : 0;
			port[1].mode = (data >> 2) & 1;
			port[2].rmask = ((data & 8) ? 0xf0 : 0) | ((data & 1) ? 0xf : 0);
			// clear ports
			if(clear_ports_by_cmdreg) {
				write_io8(0, 0);
				write_io8(1, 0);
				write_io8(2, 0);
			}
		}
		else {
示例#2
0
文件: upd765a.cpp 项目: tkochi/xm8
void UPD765A::write_dma_io8(uint32 addr, uint32 data)
{
#ifdef UPD765A_DMA_MODE
	// EPSON QC-10 CP/M Plus
	dma_data_lost = false;
#endif
	write_io8(1, data);
}
示例#3
0
文件: scsi.cpp 项目: meesokim/fc-100
void SCSI::write_dma_io8(uint32 addr, uint32 data)
{
	write_io8(0xc30, data);
}
示例#4
0
文件: sasi.cpp 项目: meesokim/fc-100
void SASI::write_dma_io8(uint32 addr, uint32 data)
{
	write_io8(0x1f0, data);
}