somhi / AmstradXTPS2

GNU General Public License v2.0
7 stars 2 forks source link

Problem with ps2 adapter and keyboard after CTRL-ALT-DEL reset #2

Open Fing972 opened 1 month ago

Fing972 commented 1 month ago

Good evening, first of all, congratulations on the project. I have an Amstrad PC1640 and I created the project since I don't have an original keyboard and I want to adapt a PS2 keyboard. When I turn on the PC it takes a few seconds after the "check keyboard or mouse" message and then it boots and then the PS2 keyboard works without problems. When I reset the pc with the CTRL-ATL-DEL combination, the boot procedure stops at the "check keyboard or mouse" message. If I turn the computer off and on again I have no problems. Is there anything to check in the Arduino code or could it be a hardware problem with the PC ? I created the project first with an Arduino Uno and then with an Arduino Nano and I have the same problem. Thank you.

somhi commented 1 month ago

Thanks for testing this project. I haven't touched it since 3 years ago, and I'm afraid I have no clue about your question. Someone who knows deeper the boot process of the Amstrad might help.

wmoindrot commented 1 month ago

Don't know enough about the 1640/1512 boot sequence but looking at my issue (just closed) mine also had the delay. But did not notice the hang after CTRL ALT DEL. Will try to give it a try again.

Fing972 commented 3 weeks ago

Good morning, I think I've found the problem, the boot sequence requires the PC to send a reset signal to the keyboard and wait for a response from the keyboard. I haven't found a way to make the Arduino listen in case of a reset, or in any case I did some tests by modifying the code but I wasn't able to make it work. From what I see, the Arduino procedure, in the PC startup phase, so when the 5V power supply arrives, it sends "X00" signals to the PC in a specified time (which can be increased or decreased as needed). At the time of a manual reset ( CTRL-ALT-DEL) this procedure is not invoked because the power is never removed. In these cases you reset the Arduino (by the arduino button) or, in my case, I thought of using a keyboard key that is unused in XT mode which, once pressed, sends the signal "X00" to the PC in order to manually make an OK signal . For now I have managed to do this. I hope I can be of help.