summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/machine
diff options
context:
space:
mode:
author Joakim Larsson Edström <joakimlarsson42@gmail.com>2015-07-21 02:30:04 +0200
committer Joakim Larsson Edström <joakimlarsson42@gmail.com>2015-07-21 02:30:04 +0200
commit06f46524f9fb257ba660857937b351545b18a8cb (patch)
tree3fc4956d16cc6bd4a34441c522ed6be216117f00 /src/emu/machine
parent776915947deabc358786fc8f3db1689abc7b6053 (diff)
started support for CPU-1 Centronics port on Port B
Diffstat (limited to 'src/emu/machine')
-rw-r--r--src/emu/machine/68230pit.c23
-rw-r--r--src/emu/machine/68230pit.h1
2 files changed, 23 insertions, 1 deletions
diff --git a/src/emu/machine/68230pit.c b/src/emu/machine/68230pit.c
index 8c7385c5f69..647bd7884bb 100644
--- a/src/emu/machine/68230pit.c
+++ b/src/emu/machine/68230pit.c
@@ -67,6 +67,7 @@ void pit68230_device::device_reset()
m_pbcr = 0;
m_padr = 0;
m_pbdr = 0;
+ m_psr = 0;
}
WRITE8_MEMBER( pit68230_device::data_w )
@@ -98,6 +99,14 @@ WRITE8_MEMBER( pit68230_device::data_w )
printf("PBCR");
m_pbcr = data;
break;
+ case PIT_68230_PADR:
+ printf("PADR");
+ m_padr = data;
+ break;
+ case PIT_68230_PSR:
+ printf("PSR");
+ m_padr = data;
+ break;
default:
printf("unhandled register %02x", offset);
}
@@ -139,12 +148,24 @@ READ8_MEMBER( pit68230_device::data_r )
printf("PADR");
data = m_padr;
break;
- case PIT_68230_PBDR:
+ case PIT_68230_PBDR:
+ /* 4.6.2. PORT B DATA REGISTER (PBDR). The port B data register is a holding register for moving data
+to and from port B pins. The port B data direction register determines whether each pin is an input (zero)
+or an output (one). This register is readable and writable at all times. Depending on the chosen mode/submode,
+reading or writing may affect the double-buffered handshake mechanism. The port B data register is not affected
+by the assertion of the RESET pin. PB0-PB7 sits on pins 17-24 on a 48 pin DIP package */
printf("PBDR");
data = m_pbdr;
+ // data = (m_pbdr & 0xfc) | 1; // CPU-1 centronics interface expects to see 2 lowest bits equal 1 for printer
+ break;
+ case PIT_68230_PSR:
+ printf("PSR");
+ data = m_psr;
+ // data = m_psr | 1; // CPU-1 centronics interface expects status to be non zero
break;
default:
printf("unhandled register %02x", offset);
+ data = 0;
}
printf("\n");
diff --git a/src/emu/machine/68230pit.h b/src/emu/machine/68230pit.h
index 5d9eb1463d8..a79999a2395 100644
--- a/src/emu/machine/68230pit.h
+++ b/src/emu/machine/68230pit.h
@@ -66,6 +66,7 @@ private:
UINT8 m_pbcr; // Port B Control register
UINT8 m_padr; // Port A Data register
UINT8 m_pbdr; // Port B Data register
+ UINT8 m_psr; // Port Status Register
};