src/mess/drivers/mikromik.c
| r6336 | r6337 | |
| 21 | 21 | - NEC uPD7220 GDC |
| 22 | 22 | - accurate video timing |
| 23 | 23 | - floppy DRQ during RECALL = 0 |
| 24 | | - write floppy TC only during DACK |
| 25 | 24 | - PCB layout |
| 26 | 25 | - NEC uPD7201 MPSC |
| 27 | 26 | |
| r6336 | r6337 | |
| 420 | 419 | { |
| 421 | 420 | mm1_state *driver_state = device->machine->driver_data; |
| 422 | 421 | |
| 423 | | /* floppy terminal count */ |
| 424 | | upd765_tc_w(driver_state->upd765, !state); |
| 422 | if (!driver_state->dack3) |
| 423 | { |
| 424 | /* floppy terminal count */ |
| 425 | upd765_tc_w(driver_state->upd765, !state); |
| 426 | } |
| 425 | 427 | |
| 428 | driver_state->tc = !state; |
| 429 | |
| 426 | 430 | cputag_set_input_line(device->machine, I8085A_TAG, I8085_RST75_LINE, state); |
| 427 | 431 | } |
| 428 | 432 | |
| 433 | static WRITE_LINE_DEVICE_HANDLER( dack3_w ) |
| 434 | { |
| 435 | mm1_state *driver_state = device->machine->driver_data; |
| 436 | |
| 437 | driver_state->dack3 = state; |
| 438 | |
| 439 | if (!driver_state->dack3) |
| 440 | { |
| 441 | /* floppy terminal count */ |
| 442 | upd765_tc_w(driver_state->upd765, driver_state->tc); |
| 443 | } |
| 444 | } |
| 445 | |
| 429 | 446 | static I8237_INTERFACE( mm1_dma8237_intf ) |
| 430 | 447 | { |
| 431 | 448 | DEVCB_LINE(dma_hrq_changed), |
| r6336 | r6337 | |
| 434 | 451 | DEVCB_MEMORY_HANDLER(I8085A_TAG, PROGRAM, memory_write_byte), |
| 435 | 452 | { DEVCB_NULL, DEVCB_NULL, DEVCB_DEVICE_HANDLER(UPD7201_TAG, mpsc_dack_r), DEVCB_DEVICE_HANDLER(UPD765_TAG, upd765_dack_r) }, |
| 436 | 453 | { DEVCB_DEVICE_HANDLER(I8275_TAG, i8275_dack_w), DEVCB_DEVICE_HANDLER(UPD7201_TAG, mpsc_dack_w), DEVCB_NULL, DEVCB_DEVICE_HANDLER(UPD765_TAG, upd765_dack_w) }, |
| 437 | | { DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL } |
| 454 | { DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_LINE(dack3_w) } |
| 438 | 455 | }; |
| 439 | 456 | |
| 440 | 457 | /* uPD765 Interface */ |
| r6336 | r6337 | |
| 689 | 706 | state_save_register_global(machine, state->tx21); |
| 690 | 707 | state_save_register_global(machine, state->rcl); |
| 691 | 708 | state_save_register_global(machine, state->recall); |
| 709 | state_save_register_global(machine, state->dack3); |
| 692 | 710 | } |
| 693 | 711 | |
| 694 | 712 | static MACHINE_RESET( mm1 ) |