trunk/src/mess/drivers/mz2500.c
| r242467 | r242468 | |
| 1183 | 1183 | WRITE8_MEMBER(mz2500_state::mz2500_fdc_w) |
| 1184 | 1184 | { |
| 1185 | 1185 | mb8877_device *fdc = machine().device<mb8877_device>("mb8877a"); |
| 1186 | | |
| 1186 | UINT8 drivenum; |
| 1187 | 1187 | switch(offset+0xdc) |
| 1188 | 1188 | { |
| 1189 | 1189 | case 0xdc: |
| 1190 | | fdc->set_drive(data & 3); |
| 1191 | | floppy_get_device(machine(), data & 3)->floppy_mon_w((data & 0x80) ? CLEAR_LINE : ASSERT_LINE); |
| 1192 | | floppy_get_device(machine(), data & 3)->floppy_drive_set_ready_state(1,0); |
| 1190 | drivenum = (data & 3) ^ m_fdc_reverse; |
| 1191 | fdc->set_drive(drivenum); |
| 1192 | floppy_get_device(machine(), drivenum)->floppy_mon_w((data & 0x80) ? CLEAR_LINE : ASSERT_LINE); |
| 1193 | floppy_get_device(machine(), drivenum)->floppy_drive_set_ready_state(1,0); |
| 1193 | 1194 | break; |
| 1194 | 1195 | case 0xdd: |
| 1195 | 1196 | fdc->set_side((data & 1)); |
| r242467 | r242468 | |
| 1267 | 1268 | READ8_MEMBER(mz2500_state::mz2500_wd17xx_r) |
| 1268 | 1269 | { |
| 1269 | 1270 | mb8877_device *fdc = machine().device<mb8877_device>("mb8877a"); |
| 1270 | | return fdc->read(space, offset) ^ m_fdc_reverse; |
| 1271 | return fdc->read(space, offset) ^ 0xff; |
| 1271 | 1272 | } |
| 1272 | 1273 | |
| 1273 | 1274 | WRITE8_MEMBER(mz2500_state::mz2500_wd17xx_w) |
| 1274 | 1275 | { |
| 1275 | 1276 | mb8877_device *fdc = machine().device<mb8877_device>("mb8877a"); |
| 1276 | | fdc->write(space, offset, data ^ m_fdc_reverse); |
| 1277 | fdc->write(space, offset, data ^ 0xff); |
| 1277 | 1278 | } |
| 1278 | 1279 | |
| 1279 | 1280 | READ8_MEMBER(mz2500_state::mz2500_bplane_latch_r) |
| r242467 | r242468 | |
| 1982 | 1983 | ---- --x- floppy reverse bit (controls wd17xx bits in command registers) |
| 1983 | 1984 | */ |
| 1984 | 1985 | |
| 1985 | | m_fdc_reverse = (data & 2) ? 0x00 : 0xff; |
| 1986 | m_fdc_reverse = data & 2; |
| 1986 | 1987 | m_pal_select = (data & 4) ? 1 : 0; |
| 1987 | 1988 | |
| 1988 | 1989 | m_ym_porta = data; |