trunk/src/emu/cpu/z80/tmpz84c011.c
| r31482 | r31483 | |
| 108 | 108 | |
| 109 | 109 | |
| 110 | 110 | /* CPU interface */ |
| 111 | | READ8_MEMBER(tmpz84c011_device::tmpz84c011_pa_r) |
| 112 | | { |
| 113 | | return (m_inportsa() & ~m_pio_dir[0]) | (m_pio_latch[0] & m_pio_dir[0]); |
| 114 | | } |
| 115 | | |
| 116 | | READ8_MEMBER(tmpz84c011_device::tmpz84c011_pb_r) |
| 117 | | { |
| 118 | | return (m_inportsb() & ~m_pio_dir[1]) | (m_pio_latch[1] & m_pio_dir[1]); |
| 119 | | } |
| 120 | | |
| 121 | | READ8_MEMBER(tmpz84c011_device::tmpz84c011_pc_r) |
| 122 | | { |
| 123 | | return (m_inportsc() & ~m_pio_dir[2]) | (m_pio_latch[2] & m_pio_dir[2]); |
| 124 | | } |
| 125 | | |
| 126 | | READ8_MEMBER(tmpz84c011_device::tmpz84c011_pd_r) |
| 127 | | { |
| 128 | | return (m_inportsd() & ~m_pio_dir[3]) | (m_pio_latch[3] & m_pio_dir[3]); |
| 129 | | } |
| 130 | | |
| 131 | | READ8_MEMBER(tmpz84c011_device::tmpz84c011_pe_r) |
| 132 | | { |
| 133 | | return (m_inportse() & ~m_pio_dir[4]) | (m_pio_latch[4] & m_pio_dir[4]); |
| 134 | | } |
| 135 | | |
| 136 | | WRITE8_MEMBER(tmpz84c011_device::tmpz84c011_pa_w) |
| 137 | | { |
| 138 | | m_pio_latch[0] = data; |
| 139 | | m_outportsa(data & m_pio_dir[0]); |
| 140 | | } |
| 141 | | |
| 142 | | WRITE8_MEMBER(tmpz84c011_device::tmpz84c011_pb_w) |
| 143 | | { |
| 144 | | m_pio_latch[1] = data; |
| 145 | | m_outportsb(data & m_pio_dir[1]); |
| 146 | | } |
| 147 | | WRITE8_MEMBER(tmpz84c011_device::tmpz84c011_pc_w) |
| 148 | | { |
| 149 | | m_pio_latch[2] = data; |
| 150 | | m_outportsc(data & m_pio_dir[2]); |
| 151 | | } |
| 152 | | |
| 153 | | WRITE8_MEMBER(tmpz84c011_device::tmpz84c011_pd_w) |
| 154 | | { |
| 155 | | m_pio_latch[3] = data; |
| 156 | | m_outportsd(data & m_pio_dir[3]); |
| 157 | | } |
| 158 | | |
| 159 | | WRITE8_MEMBER(tmpz84c011_device::tmpz84c011_pe_w) |
| 160 | | { |
| 161 | | m_pio_latch[4] = data; |
| 162 | | m_outportse(data & m_pio_dir[4]); |
| 163 | | } |
| 164 | | |
| 165 | | READ8_MEMBER(tmpz84c011_device::tmpz84c011_dir_pa_r) |
| 166 | | { |
| 167 | | return m_pio_dir[0]; |
| 168 | | } |
| 169 | | |
| 170 | | READ8_MEMBER(tmpz84c011_device::tmpz84c011_dir_pb_r) |
| 171 | | { |
| 172 | | return m_pio_dir[1]; |
| 173 | | } |
| 174 | | |
| 175 | | READ8_MEMBER(tmpz84c011_device::tmpz84c011_dir_pc_r) |
| 176 | | { |
| 177 | | return m_pio_dir[2]; |
| 178 | | } |
| 179 | | |
| 180 | | READ8_MEMBER(tmpz84c011_device::tmpz84c011_dir_pd_r) |
| 181 | | { |
| 182 | | return m_pio_dir[3]; |
| 183 | | } |
| 184 | | |
| 185 | | READ8_MEMBER(tmpz84c011_device::tmpz84c011_dir_pe_r) |
| 186 | | { |
| 187 | | return m_pio_dir[4]; |
| 188 | | } |
| 189 | | |
| 190 | | WRITE8_MEMBER(tmpz84c011_device::tmpz84c011_dir_pa_w) |
| 191 | | { |
| 192 | | m_pio_dir[0] = data; |
| 193 | | } |
| 194 | | |
| 195 | | WRITE8_MEMBER(tmpz84c011_device::tmpz84c011_dir_pb_w) |
| 196 | | { |
| 197 | | m_pio_dir[1] = data; |
| 198 | | } |
| 199 | | |
| 200 | | WRITE8_MEMBER(tmpz84c011_device::tmpz84c011_dir_pc_w) |
| 201 | | { |
| 202 | | m_pio_dir[2] = data; |
| 203 | | } |
| 204 | | |
| 205 | | WRITE8_MEMBER(tmpz84c011_device::tmpz84c011_dir_pd_w) |
| 206 | | { |
| 207 | | m_pio_dir[3] = data; |
| 208 | | } |
| 209 | | |
| 210 | | WRITE8_MEMBER(tmpz84c011_device::tmpz84c011_dir_pe_w) |
| 211 | | { |
| 212 | | m_pio_dir[4] = data; |
| 213 | | } |
| 214 | | |
| 215 | | |
| 216 | 111 | static MACHINE_CONFIG_FRAGMENT( tmpz84c011 ) |
| 217 | 112 | MCFG_DEVICE_ADD("tmpz84c011_ctc", Z80CTC, DERIVED_CLOCK(1,1) ) |
| 218 | 113 | MCFG_Z80CTC_INTR_CB(INPUTLINE(DEVICE_SELF, INPUT_LINE_IRQ0)) |
trunk/src/emu/cpu/z80/tmpz84c011.h
| r31482 | r31483 | |
| 100 | 100 | |
| 101 | 101 | ///////////////////////////////////////////////////////// |
| 102 | 102 | |
| 103 | | DECLARE_READ8_MEMBER( tmpz84c011_pa_r ); |
| 104 | | DECLARE_READ8_MEMBER( tmpz84c011_pb_r ); |
| 105 | | DECLARE_READ8_MEMBER( tmpz84c011_pc_r ); |
| 106 | | DECLARE_READ8_MEMBER( tmpz84c011_pd_r ); |
| 107 | | DECLARE_READ8_MEMBER( tmpz84c011_pe_r ); |
| 108 | | DECLARE_WRITE8_MEMBER( tmpz84c011_pa_w ); |
| 109 | | DECLARE_WRITE8_MEMBER( tmpz84c011_pb_w ); |
| 110 | | DECLARE_WRITE8_MEMBER( tmpz84c011_pc_w ); |
| 111 | | DECLARE_WRITE8_MEMBER( tmpz84c011_pd_w ); |
| 112 | | DECLARE_WRITE8_MEMBER( tmpz84c011_pe_w ); |
| 103 | DECLARE_READ8_MEMBER( tmpz84c011_pa_r ) { return (m_inportsa() & ~m_pio_dir[0]) | (m_pio_latch[0] & m_pio_dir[0]); } |
| 104 | DECLARE_READ8_MEMBER( tmpz84c011_pb_r ) { return (m_inportsb() & ~m_pio_dir[1]) | (m_pio_latch[1] & m_pio_dir[1]); } |
| 105 | DECLARE_READ8_MEMBER( tmpz84c011_pc_r ) { return (m_inportsc() & ~m_pio_dir[2]) | (m_pio_latch[2] & m_pio_dir[2]); } |
| 106 | DECLARE_READ8_MEMBER( tmpz84c011_pd_r ) { return (m_inportsd() & ~m_pio_dir[3]) | (m_pio_latch[3] & m_pio_dir[3]); } |
| 107 | DECLARE_READ8_MEMBER( tmpz84c011_pe_r ) { return (m_inportse() & ~m_pio_dir[4]) | (m_pio_latch[4] & m_pio_dir[4]); } |
| 108 | DECLARE_WRITE8_MEMBER( tmpz84c011_pa_w ) { m_pio_latch[0] = data; m_outportsa(data & m_pio_dir[0]); } |
| 109 | DECLARE_WRITE8_MEMBER( tmpz84c011_pb_w ) { m_pio_latch[1] = data; m_outportsb(data & m_pio_dir[1]); } |
| 110 | DECLARE_WRITE8_MEMBER( tmpz84c011_pc_w ) { m_pio_latch[2] = data; m_outportsc(data & m_pio_dir[2]); } |
| 111 | DECLARE_WRITE8_MEMBER( tmpz84c011_pd_w ) { m_pio_latch[3] = data; m_outportsd(data & m_pio_dir[3]); } |
| 112 | DECLARE_WRITE8_MEMBER( tmpz84c011_pe_w ) { m_pio_latch[4] = data; m_outportse(data & m_pio_dir[4]); } |
| 113 | 113 | |
| 114 | | DECLARE_READ8_MEMBER( tmpz84c011_dir_pa_r ); |
| 115 | | DECLARE_READ8_MEMBER( tmpz84c011_dir_pb_r ); |
| 116 | | DECLARE_READ8_MEMBER( tmpz84c011_dir_pc_r ); |
| 117 | | DECLARE_READ8_MEMBER( tmpz84c011_dir_pd_r ); |
| 118 | | DECLARE_READ8_MEMBER( tmpz84c011_dir_pe_r ); |
| 119 | | DECLARE_WRITE8_MEMBER( tmpz84c011_dir_pa_w ); |
| 120 | | DECLARE_WRITE8_MEMBER( tmpz84c011_dir_pb_w ); |
| 121 | | DECLARE_WRITE8_MEMBER( tmpz84c011_dir_pc_w ); |
| 122 | | DECLARE_WRITE8_MEMBER( tmpz84c011_dir_pd_w ); |
| 123 | | DECLARE_WRITE8_MEMBER( tmpz84c011_dir_pe_w ); |
| 114 | DECLARE_READ8_MEMBER( tmpz84c011_dir_pa_r ) { return m_pio_dir[0]; } |
| 115 | DECLARE_READ8_MEMBER( tmpz84c011_dir_pb_r ) { return m_pio_dir[1]; } |
| 116 | DECLARE_READ8_MEMBER( tmpz84c011_dir_pc_r ) { return m_pio_dir[2]; } |
| 117 | DECLARE_READ8_MEMBER( tmpz84c011_dir_pd_r ) { return m_pio_dir[3]; } |
| 118 | DECLARE_READ8_MEMBER( tmpz84c011_dir_pe_r ) { return m_pio_dir[4]; } |
| 119 | DECLARE_WRITE8_MEMBER( tmpz84c011_dir_pa_w ) { m_pio_dir[0] = data; } |
| 120 | DECLARE_WRITE8_MEMBER( tmpz84c011_dir_pb_w ) { m_pio_dir[1] = data; } |
| 121 | DECLARE_WRITE8_MEMBER( tmpz84c011_dir_pc_w ) { m_pio_dir[2] = data; } |
| 122 | DECLARE_WRITE8_MEMBER( tmpz84c011_dir_pd_w ) { m_pio_dir[3] = data; } |
| 123 | DECLARE_WRITE8_MEMBER( tmpz84c011_dir_pe_w ) { m_pio_dir[4] = data; } |
| 124 | 124 | |
| 125 | 125 | DECLARE_WRITE_LINE_MEMBER( zc0_cb_trampoline_w ) { m_zc0_cb(state); } |
| 126 | 126 | DECLARE_WRITE_LINE_MEMBER( zc1_cb_trampoline_w ) { m_zc1_cb(state); } |