• Please review our updated Terms and Rules here

80188 interface to 8279 Keyboard Controller Help

80186 Enthusiast

Experienced Member
Joined
May 18, 2023
Messages
53
In my last post, you guys helped me to create a schematic that represents how an 80188 should interface and connect to a TMS9918A VDP. For the last main component of this prototyping project, I need a Keyboard Controller. As I stated before, I'm not going for a DOS Compatible Computer, nor do I want a computer that requires an external PS/2 Keyboard, I want this computer to have a built-in Keyboard like a Commodore Pet, Vic 20, 64, and the Apple II. This computer will be running an OS a friend and I will develop. Even though the schematic I'll show has a 74LS573, The computer itself will only have 1. The schematic just shows the CPU to Keyboard Controller connections. Speaking of that schematic ...
Schematic_80188 2 KBC_2023-06-18.png
Here it is. I'll list my concerns in a list below:
  • Latched Address Pin A0 is used for the TMS9918A, it's also used for the 8279 Keyboard controller. Should I use a different address Pin if there will be conflicts? The User Eudimorphodon said in a Previous Post of mine "depending on the chip family you use for the address latches you should be fine fanning it out to a couple dozen things."
  • I've read the AP-186 Intro to the 80186 Book (in PDF form) about the Interrupt Controller and how Interrupt Requests work. However, is INT3 the only IRQ pin, or are any of the 4 INT pins able to act as IRQ inputs? I know the INT pins can't switch between detecting different kinds of Interrupts, but is INT3 the only pin that's intended to be used for an IRQ signal?
  • Is there a need to have some sort of enable logic for the 74LS138 that's needed to decode the 8 Keyboard Rows?
Here's a screenshot of the schematic that's in the Datasheet for the 8279 Keyboard Controller that shows how a CPU is meant to interface to it.
Screenshot (135).png
That's it for this post, After I make an improved schematic, I'll create a schematic that represents the whole prototyping computer. Prototyping as in developing the essentials for my system, as In testing keyboard layouts and graphics related things. the first Program I'd like to make is just having an invisible grid, and whatever Letter or Number I typed pop up on the screen, and the next Letter or Number I type pop up next to the previous one.

Any help and Advice will be thanked in advance!
 
Not too many issues with your schematic. Well done.

Using the latched A0 is fine. You just have to watch how many devices USE that latched A0 - to prevent it being loaded too much. This is specified for the device output. With a relatively 'small' design like yours currently is, you will not have any problems. There are no 'conflicts'... The only conflict will occur if you program the two (2) PCSn signals to accidentally enable both the video processor and keyboard controller!

You can use any (or all) of INT0, INT1, INT2 and INT3 for external interrupts. You just have to configure them as interrupt pins in the software. Some pins are permanently configured as active high (as required by the 8279) and some pins can be programmed as active high or active low. I would check which interrupt pins are which. It would be a shame to use a programmable interrupt input pin when a fixed active high interrupt pin would suffice - and then you would keep the flexibility of the active high/low programmable pin for later...

No requirement to enable the 3 to 8 decoder (from what I have read).

I would add a 0V pin to the keyboard connectors. You will require this to pull-down the shift and/or control pins of the keyboard controller.

Dave
 
Not too many issues with your schematic. Well done.

Using the latched A0 is fine. You just have to watch how many devices USE that latched A0 - to prevent it being loaded too much. This is specified for the device output. With a relatively 'small' design like yours currently is, you will not have any problems. There are no 'conflicts'... The only conflict will occur if you program the two (2) PCSn signals to accidentally enable both the video processor and keyboard controller!

You can use any (or all) of INT0, INT1, INT2 and INT3 for external interrupts. You just have to configure them as interrupt pins in the software. Some pins are permanently configured as active high (as required by the 8279) and some pins can be programmed as active high or active low. I would check which interrupt pins are which. It would be a shame to use a programmable interrupt input pin when a fixed active high interrupt pin would suffice - and then you would keep the flexibility of the active high/low programmable pin for later...

No requirement to enable the 3 to 8 decoder (from what I have read).

I would add a 0V pin to the keyboard connectors. You will require this to pull-down the shift and/or control pins of the keyboard controller.

Dave
0V is GND, right? if it's not GND, then How do I create a 0V signal?
Also those connectors aren't finalized, they're just there to show all of the different Key I/O lines
 
Back
Top