Previous 15994 Revisions Next

r7328 Thursday 11th February, 2010 at 22:15:54 UTC by Curt Coder
[C1571] WIP
[src/mess/machine]c1571.c

src/mess/machine/c1571.c
r7327r7328
1111
1212   TODO:
1313
14   - autoboot does not work when fast serial is used
15   - disk insert routine is not run
14   - fast serial mode is broken, bytes get skipped
1615   - 1541/1571 Alignment shows drive speed as 266 rpm, should be 310
1716   - CP/M disks
1817    - power/activity LEDs
r7327r7328
7574   int byte;                        /* byte ready */
7675   int mode;                        /* mode (0 = write, 1 = read) */
7776   int side;                        /* disk side select */
77   int clock;                        /* clock speed */
7878
7979   /* interrupts */
8080   int via0_irq;                     /* VIA #0 interrupt request */
r7327r7328
182182      c1571->bit_count = 0;
183183      byte = 1;
184184
185      if (!(c1571->data & 0xff))
185      c1571->yb = c1571->data & 0xff;
186
187      if (!c1571->yb)
186188      {
187189         /* simulate weak bits with randomness */
188         c1571->data = (c1571->data & 0xff00) | (mame_rand(machine) & 0xff);
190         c1571->yb = mame_rand(machine) & 0xff;
189191      }
190192   }
191193
r7327r7328
444446   c1571_t *c1571 = get_safe_token(device->owner);
445447
446448   /* 1/2 MHz */
447   UINT32 clock = BIT(data, 5) ? XTAL_16MHz/8 : XTAL_16MHz/16;
449   int clock_1_2 = BIT(data, 5);
450   
451   if (c1571->clock != clock_1_2)
452   {
453      UINT32 clock = clock_1_2 ? XTAL_16MHz/8 : XTAL_16MHz/16;
448454
449   c1571->cpu->set_clock(clock);
450   c1571->cia->set_clock(clock);
451   c1571->via0->set_clock(clock);
452   c1571->via1->set_clock(clock);
455      c1571->cpu->set_clock(clock);
456      c1571->cia->set_clock(clock);
457      c1571->via0->set_clock(clock);
458      c1571->via1->set_clock(clock);
453459
460      c1571->clock = clock_1_2;
461   }
462
454463   /* fast serial direction */
455464   c1571->ser_dir = BIT(data, 1);
456465   iec_data_w(device->owner);
r7327r7328
594603
595604   c1571_t *c1571 = get_safe_token(device->owner);
596605
597   return c1571->data & 0xff;
606   return c1571->yb;
598607}
599608
600609static WRITE8_DEVICE_HANDLER( yb_w )
r7327r7328
613622        PA7     YB7
614623
615624    */
625   
626   c1571_t *c1571 = get_safe_token(device->owner);
627
628   c1571->yb = data;
616629}
617630
618631static READ8_DEVICE_HANDLER( via1_pb_r )

Previous 15994 Revisions Next


© 1998-2018 The MESS Team