0 Members and 1 Guest are viewing this topic.
I have the uIEC/64/datasette, and a 1571 and '81 here (need to dog them out of storage since we just moved), but no CP/M image.
But I think my CP/M D71 image, I found years ago is defective. On Zimmers.net I only found a cpm.fast.d71 image. Pokefinder.org also revealed only D64 and D81 images. Has someone a prepared D71 image using the version from May 87. But D81 images do not work yet.
If you can specify the tests you would like, I will run them. Yes, as you have noticed, UART messes things up at times. But, you can work around that if needed.I have the uIEC/64/datasette, and a 1571 and '81 here (need to dog them out of storage since we just moved), but no CP/M image.
case BUS_ATNPROCESS: // E8D7 set_atn_irq(1); if (iec_data.device_state == DEVICE_LISTEN) { if (iec_data.iecflags & FAST_SERIAL) { /* send fast-serial notify ($816A) */ uint8_t tmp; ATOMIC_BLOCK( ATOMIC_FORCEON ) { set_data(0); /* active listner, but not ready to receive */ do { /* wait for first byte to start ($8199) */ tmp = IEC_INPUT & (IEC_BIT_ATN | IEC_BIT_CLOCK); } while (tmp == IEC_BIT_ATN); if (tmp & IEC_BIT_ATN) { /* toggle SRQ line 8 times to set CIA register in host PC */ for (srq_pulse_count=0; srq_pulse_count<8; ++srq_pulse_count) { set_srq(0); _delay_us(4); // hardware delay, fudged set_srq(1); _delay_us(4); // hardware delay, fudged } } } } if (IEC_ATN) { if (iec_listen_handler(cmd)) break; } else { /* found ATN ... FIXME? */ iec_data.device_state = DEVICE_IDLE; iec_data.bus_state = BUS_ATNACTIVE;uart_putc('?'); break; } } else if (iec_data.device_state == DEVICE_TALK) { set_data(1); delay_us(50); // Implicit delay, fudged set_clock(0); delay_us(70); // Implicit delay, estimated if (iec_talk_handler(cmd)) break; } iec_data.bus_state = BUS_CLEANUP; break;
if (IEC_ATN) { if (iec_listen_handler(cmd)) break; } else { /* found ATN ... FIXME? */ iec_data.device_state = DEVICE_IDLE; iec_data.bus_state = BUS_ATNACTIVE;uart_putc('?'); break; }
if (iec_listen_handler(cmd)) break;
if (IEC_ATN) { if (iec_listen_handler(cmd)) break; } else { /* found ATN ... FIXME? */ iec_data.bus_state = BUS_ATNACTIVE;uart_putc('?'); break; }
iec_data.device_state = DEVICE_IDLE;
[...]+#define FAST_SERIAL (1<43)
if (IEC_ATN) { if (iec_listen_handler(cmd)) break; } else { /* found ATN - $EA59 */ //iec_data.device_state = DEVICE_IDLE; iec_data.bus_state = BUS_FOUNDATN; break; }