mist64 / ccgmsterm

CCGMS Future, a terminal program for the Commodore 64
Other
72 stars 9 forks source link

It hangs and/or not activating flow control at the begining of connection #13

Open Gabeki17 opened 2 years ago

Gabeki17 commented 2 years ago

Most Important: Thank you! :)

I am very happy that the development of this terminal is again active! I consider CCGMS and specially your version, the most compact and effective from many perspective, evan that it is having issues since the very begining.

The below issue is also inherited from the previous versions.

Modem: Zimodem 3.6.4 (default configuration)

https://github.com/bozimmerman/Zimodem

C64 is PAL

CCGMS configuration:

Baud: any Duplex: Full Modem type: UP9600 / EZ232 Firmware: Zimodem Protocol: Xmodem

Issue description: At the begining of the connection, modem is already sending the data, but CCGMS is hanging and not quite reacting. Might be flow control is not yet active. By the time, it does reacts, data is corrupt/pocket lost?

Video about (I have spyed into the communication between the C64 and the modem using my PC. The PC is also receiving/displaying the same that the C64 does. (same wires)): https://www.youtube.com/watch?v=RPRbq7SDGHY

In addition: I am not good at assembly. But I am able to apply a workaround to the modem FW. It is dirty, but looks like ok -ish.... At the begining of the connection, after ATV1 & ATD received by the modem I have added the following:

for(int i = 0; i < 75; i++) { HWSerial.printf(" "); } HWSerial.printf("\r\n");

This is hiding the issue.

At first i have added a 7 sec delay simply.

delay(7000);

This is also working but slow.

The previous workaround is fast. (As fast as sending the 75*3 spaces over serial)

Not sure if also related. Think not, but anyways:

Having Synchronet BBS installed on a Reaspberry Pi when downloading via Xmodem protocol, at the very end it is failing. Still I think it have downloaded all right, but not reporting back to Synchronet server.

At the end of the transfer, the final ACK is not sent to server I think.

Thank you!

All the best, Gábor