Previous 15994 Revisions Next

r6337 Sunday 8th November, 2009 at 15:55:31 UTC by Curt Coder
[MIKROMIK] Write floppy TC only during DACK.
[src/emu/machine]8237dma.c
[src/mess/drivers]mikromik.c
[src/mess/includes]mikromik.h

src/emu/machine/8237dma.c
r6336r6337
217217   
218218   for (i = 0; i < 4; i++)
219219   {
220      int state = (i == channel) ^ BIT(i8237->command, 7);
220      int state = (i == channel) ^ !BIT(i8237->command, 7);
221221
222222      devcb_call_write_line(&i8237->chan[i].out_dack_func, state);
223223   }
src/mess/includes/mikromik.h
r6336r6337
3131   int tx21;
3232   int rcl;
3333
34   /* floppy state */
3435   int recall;
36   int dack3;
37   int tc;
3538
3639   /* devices */
3740   const device_config      *i8212;
src/mess/drivers/mikromik.c
r6336r6337
2121   - NEC uPD7220 GDC
2222   - accurate video timing
2323   - floppy DRQ during RECALL = 0
24   - write floppy TC only during DACK
2524   - PCB layout
2625   - NEC uPD7201 MPSC
2726
r6336r6337
420419{
421420   mm1_state *driver_state = device->machine->driver_data;
422421
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   }
425427
428   driver_state->tc = !state;
429
426430   cputag_set_input_line(device->machine, I8085A_TAG, I8085_RST75_LINE, state);
427431}
428432
433static 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
429446static I8237_INTERFACE( mm1_dma8237_intf )
430447{
431448   DEVCB_LINE(dma_hrq_changed),
r6336r6337
434451   DEVCB_MEMORY_HANDLER(I8085A_TAG, PROGRAM, memory_write_byte),
435452   { DEVCB_NULL, DEVCB_NULL, DEVCB_DEVICE_HANDLER(UPD7201_TAG, mpsc_dack_r), DEVCB_DEVICE_HANDLER(UPD765_TAG, upd765_dack_r) },
436453   { 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) }
438455};
439456
440457/* uPD765 Interface */
r6336r6337
689706   state_save_register_global(machine, state->tx21);
690707   state_save_register_global(machine, state->rcl);
691708   state_save_register_global(machine, state->recall);
709   state_save_register_global(machine, state->dack3);
692710}
693711
694712static MACHINE_RESET( mm1 )

Previous 15994 Revisions Next


© 1998-2018 The MESS Team