VOGONS


First post, by LChackr

User metadata
Rank Newbie
Rank
Newbie

I'll go ahead and get the basics out of the way:

- I've run Memtest86+, the RAM is fine
- I've tried both with and without external cache, no difference
- I've even tried different graphics cards and even different CPUs, no difference

I have a C&T Peak DM 386DX I am trying to tame. In DOS while typing, including at the prompt, the PC will occasionally beep and miss my keystroke. It seems to be totally random with no obvious pattern. There is no key, for example, where it happens most often. The keyboard is NOS and does not have this behavior on any other PC. I installed Windows 3.0 and in 386 Enhanced Mode it beeps once per second while running. It beeps constantly while not interacting with it. The beeps coincide with a clear stutter in responsiveness so it's not like I could just unplug the speaker and ignore the problem. There is something clearly wrong. Running Windows in real mode does not cause this beeping.

Does anyone have an idea what might be happening? Anyone else had this happen? Thanks!

Reply 1 of 6, by Zerthimon

User metadata
Rank Member
Rank
Member

I'd guess it's the keyboard controller (8042 chip) malfunctioning. A hi-res photo of the board would be helpful.
Also what does the setting of A20 gate in the BIOS say? If it's fast, try setting it to slow or normal.

Reply 2 of 6, by LChackr

User metadata
Rank Newbie
Rank
Newbie
Zerthimon wrote on 2023-07-27, 23:02:

I'd guess it's the keyboard controller (8042 chip) malfunctioning. A hi-res photo of the board would be helpful.

Yeah, I wondered about that. I will work on getting a photo of the board. I'd need to break the system down to do that so it will take some time. The chip is a MEGAKEY™ (1994, AM) marked L5252411.

I understand that the 8042 is a common failure point on these old 386-era boards. I know that some people have had challenges programming them. Is it work going for a VIA VT82C42? The C&T BIOS has proven to be very picky so I am a little worried it will reject a controller with programming it doesn't recognize.

Zerthimon wrote on 2023-07-27, 23:02:

Also what does the setting of A20 gate in the BIOS say? If it's fast, try setting it to slow or normal.

It has a C&T BIOS and there is no explicit mention of A20 at all. The closest thing I found deep inside the Chipset Register Control is "Port 92h Access", which I believe is the equivalent of the "fast access" A20 option. It was enabled so I disabled it. Same behavior.

Reply 3 of 6, by LChackr

User metadata
Rank Newbie
Rank
Newbie
Zerthimon wrote on 2023-07-27, 23:02:

I'd guess it's the keyboard controller (8042 chip) malfunctioning. A hi-res photo of the board would be helpful.

A hi-res photo of the board is attached.

I replaced with 8042 chip with a known good one and the behavior is the same.

BTW, the battery hasn't leaked at all. There is zero corrosion, all metal and pads are shiny, and it's still holding a charge. I'll remove it eventually. Although if I can't fix this problem I won't be able to use this board. 😥

Attachments

Reply 4 of 6, by mkarcher

User metadata
Rank l33t
Rank
l33t

There is a functionality in the keyboard driver to beep if unintelligible data is received from the keyboard controller. This beep is output from inside the keyboard IRQ handler. While the beep sounds, the keyboard IRQ handler waits. So the machine is not responsive during this beep. I'd expect that's exactly what's happening on your system. You seem to have ruled out a faulty keyboard and a faulty keyboard controller by now. The permanent beeping from Windows in Standard / 386 enhanced mode (but not in real mode) also point to the keyboard controller as a possible suspect, due to the A20 switching and CPU resetting performed by the keyboard controller in Standard and 386 enhanced mode.

The A20 toggling option is not supposed to send any data from the keyboard controller to the host, it should just send data from the host to the keyboard controller. There should be no IRQ1 (keyboard IRQ) triggered when using the keyboard controller to toggle the A20 line. I see a BIOS chip with a "Chips & Technology" label on that board, but a keyboard controller by AMI. I'm unsure whether there might be incompatibilites. I also don't know whether C&T ever made their own keyboard controllers. I suggest you to try a replacement for the keyboard IRQ1 handler: Try loading KEYB in DOS. AFAIK, even if you use KEYB US, you replace the BIOS IRQ1 handler by the IRQ1 handler integrated in KEYB.COM.

Reply 5 of 6, by LChackr

User metadata
Rank Newbie
Rank
Newbie
mkarcher wrote on 2023-07-30, 17:38:

The A20 toggling option is not supposed to send any data from the keyboard controller to the host, it should just send data from the host to the keyboard controller. There should be no IRQ1 (keyboard IRQ) triggered when using the keyboard controller to toggle the A20 line. I see a BIOS chip with a "Chips & Technology" label on that board, but a keyboard controller by AMI. I'm unsure whether there might be incompatibilites. I also don't know whether C&T ever made their own keyboard controllers.

This board was NOS and I pulled it out of the box with the AMI chip installed. I assume it was the original chip as everything (date codes, etc) match the board. What you see in the picture is the replacement chip, another AMI I pulled from a board. I also ordered a VIA VT82C42 and will try that.

mkarcher wrote on 2023-07-30, 17:38:

I suggest you to try a replacement for the keyboard IRQ1 handler: Try loading KEYB in DOS. AFAIK, even if you use KEYB US, you replace the BIOS IRQ1 handler by the IRQ1 handler integrated in KEYB.COM.

Awesome. I will try that, thanks!

Reply 6 of 6, by LChackr

User metadata
Rank Newbie
Rank
Newbie
mkarcher wrote on 2023-07-30, 17:38:

I suggest you to try a replacement for the keyboard IRQ1 handler: Try loading KEYB in DOS. AFAIK, even if you use KEYB US, you replace the BIOS IRQ1 handler by the IRQ1 handler integrated in KEYB.COM.

You are my hero! That actually worked. Thank you!