Quote from: Hydrophilic on March 14, 2011, 09:04 PMYou assume while procession ATN and after you have sent the fast serial impulse, that if SRQ is low, the master C128 is able to do the fast serial protocol.
Wow, I am glad it works on PAL systems. Thanks for the report abraXxl.
Quote from: abraXxlFirst time I've heard of anything like that. I never owned a 1581, and haven't seen a datasette in years (me and my friends are still wondering what happened to the one we had years ago...). I was only able to test that it works with 1571(s) attached (in 1571 and/or 1541 mode).
Hydrophilic: your implementation and my port has a problem if a datasette is connected to C64/C128@C64 mode. It simply hangs like the 1581 in the same scenario.
If anybody knows more about the C64 / 1581 bug, then it might be possible (from that info) to fix the firmware...
In C64 mode or on a real C64 SRQ is connected with the FLAG line on the datasette port. There some datasette models out there that pull FLAG down and so SRQ if the cassete motor is off.
There are also many hardware implementations out there that have SRQ not connected, so the SRQ pin is floating with no well defined input.
AFAIK The correct way is to wait for eight SRQ pulses. If you have received this indicator for the fast serial protocol from master, then and only then the sd2iec should send the eight SRQ pulses and only then wait for SRQ low.
Quote from: Hydrophilic on March 14, 2011, 09:04 PMHEAD is the last checked in revision of code from a git repository. eg. if you simple type git clone http://www.sd2iec.de/sd2iec.git you get HEAD.
I guess I can take a look and see if there is some obvious problem... BTW, I have no idea what HEAD is... can somebody explain?
git pull and git diff are also handy
Quote from: Hydrophilic on March 14, 2011, 09:04 PMYou're right $55,$30,$4c,$00 (INQUIRE STAUTS) is sent and the following reads ($55 $30 $00 $01 $00 $01) seem to fail
I don't understand the UART dump... but I do know I had problems like you described at one point, and it was a similar problem. Whenever there is a "disk change", either by insert new memory card, or "disk swap" button, or "CD" into disk image, then the firmware is coded to act like a 1571 and set "disk ID mismatch" until a BCIS "log in" occurs.
The "log in" can be with BCIS command "Inquire Disk" or "Query Status" as I recall... I don't have the code in front of me to tell you which U0 commands these are (I'm thinking code $0c is one).
Anyway, I had the problem described, where you get "booting cp/m plus" - "read error - hit return to retry". This was fixed (for me) by changing firmware to clear the "disk change" when either BCIS command described above was sent. So I could do this...
OPEN 1,10,15: REM uIEC default unit 10
PRINT#1,"CD:MYSOSSYS.D71": REM attach CP/M disk image
PRINT#1,"U0>"CHR$( 8 ): REM set uIEC to unit 8
CLOSE 1
BOOT
Umm... maybe I attached the disk image after changing the device number, but I don't think it would matter. Anyway, CP/M worked for me, so I don't know the problem.... as I recall, the CP/M boot process will send the BCIS $0c command before any read sector commands, and it will also send it again after CP/M system is loaded but just before the A> prompt appears (I'm guessing this is just before CCP.COM is loaded). Also the BCIS $0c command has high bit flags, and as I recall the actuall code sent is $4c (i.e., $55 $30 $4C $00).

I have no idea why.