Computers Overview
Commodore PET
Sinclair ZX80
Sinclair ZX81
BBC Micro
Sinclair Spectrum
Memotech MTX
    About
    Library
    Manuals
    Options
    Photos
    Projects
      CFX
      Hardware Hacks
      Legacy (1980s)
      MAGROM
      MTXPlus+
      PAL Reader
      PC Keyboard I/F
          Design
          Firmware
      Programmers
      ReMemotech
      ReMemorizer
      SDX
      SFX
    Repairs
    Software
    Tools
    User Groups
    Video Wall
Memotech CP/M
Atari ST
PDAs
DEC 3000 AXP
OpenVMS
Raspberry Pi

 

 
 
 

The Memotech MTX Series

MTX PC Keyboard Interface

 

 

This section describes the development of a PC keyboard interface for the Memotech MTX computer.

This project is an offshoot of MTXPlus+, our modern day, (almost) fully compatible, MTX "super computer".

The prototype I/O interface board for MTXPlus+ incorporated a keyboard interface using TTL logic, cloned from the original MTX computer design, allowing an original MTX computer keyboard to be used on MTXPlus+. That was great for users who had access to a MTX computer or spare MTX keyboard, but for others, this was going to be something of a problem. I had always intended to have a PS/2 keyboard interface for MTXPlus+ and had a draft (untested) design using a couple of Altera MAX 7000 series CPLDs. Two were required to provide sufficient logic capacity to do the interface logic and keyboard decoding. As well as the cost, this solution, although workable, took up quite a bit of space on the I/O board that could potentially be used for other purposes if the keyboard logic footprint could be reduced.

In 2017, Bill Brendling had helped Martin and I incorporate his 80 column video board design into CFX, our Compact Flash "disk" system for an unexpanded MTX computer, to give MTX computer users the ability to run 80 column CP/M. Bill's 80 column card design is based on a Parallax Propeller microcontroller. I asked Bill if he could work his magic with the Propeller and come up with a PS/2 interface for MTXPlus+ to reduce the I/O board space requirement.

MTX Keyboard Interface

For a detailed description of the MTX keyboard interface, take a look at my keyboard technical note, but in brief, the MTX matrix keyboard is divided into 8 sections, each managing up to 10 keys, giving 80 possible key codes, of which 77 are used in an MTX. The keyboard is read using two I/O ports which "drive" and "sense" the status of the lines of the 8 x 10 matrix.

Output port 5 is used to drive one of the 8 control lines which selects which section of the keyboard that you want to read. A 74LS273 Octal "D" type flip-flop (board location 3A) latches the data line values onto the 8 drive lines, DR0 to DR7 when "clocked" by a write to Output Port 5. In this context, each flip-flop is effectively a memory cell, storing the value of the bit until the next time that the gate is "clocked" by an OUT(5) command. 

A 74LS244 Octal Buffer/Line Driver (board location 2A) passes the sense data values from the 8 least significant bits of the 10 read lines back onto the data-bus under the control of Input Port 5. Similarly, the 74LS244 Octal Buffer/Line Driver (board location 1D) passes the sense data values from the 2 most significant bits of the 10 read lines back onto the data-bus under the control of Input Port 6. 

 

Propeller Logic Requirements

For the Propeller PS/2 keyboard interface to be "plug & play", the firmware would need to drive the Propeller to mimic the behavior of the MTX drive and sense lines, i.e., detecting which drive line was currently latched low, then setting the appropriate bit in response to a key press. Since the drive lines are latched by the MTX keyboard interface, the propeller does not need to monitor I/O port OUT(5) , the propeller can just read the status of the drive lines to see which line is latched.

Bill quickly came up with a potential solution and Martin built a prototype board for testing on his MTXPlus+ and MTX computers. This worked well and satisfied my original requirement but Bill was able to take it a step further and developed logic that can handle both PS/2 and USB keyboards.

 

Development

To reduce the size of this page, I have split description of the development of the PC keyboard interface to create separate pages for the hardware design and firmware development. Bill has written a really good description of the Propeller code, it is reproduced on the firmware page, along with firmware downloads.

 


Current Status - July 2018

Results to date have shown that all PS/2 keyboards, or dual mode keyboards in PS/2 mode, work without issue.

A small number of USB keyboards have been found to have issues, they are not being recognised by the Propeller initialisation code. At this point, it is thought that this may be an issue with high speed USB keyboards. This problem is not likely to be fixed, or indeed, fixable. In my tests, the USB failures have been with dual mode keyboards which have worked fine in PS/2 mode. If your USB keyboard does not work with the interface, then you will either need to try another one, or switch to a PS/2 keyboard.

If you are using a keyboard not recorded in the table, please let me know and I will update it. The more (successful) test results we have, the more confident we can be that additional keyboards are likely to work.

Keyboard Test Results
Manufacturer Model Number Type Result Comments
Ares K5 Rainbow Gaming Keyboard USB Pass  
Cherry ML4100 USB (D-91275)
(Compact keyboard with USB plug)
USB Fail USB mode selected on PCB
PS/2 Pass PS/2 mode selected on PCB
Chicony KB-5916 PS/2 Pass  
CIT KBMS-001 USB Pass  
Compaq KB-0133 (Assy P/N 265987-038 UK) PS/2 Pass  
HiPoint KBH-510
(Cheap (5) from eBay, with USB plug)
USB Fail USB mode selected on PCB
PS/2 Pass PS/2 mode selected on PCB
Logitech Classic New Touch Keyboard 200 USB Pass  
Microsoft Wireless Multimedia 1.1 1014 USB Pass Type WUR0445
         
         

Availability

The board is now available for purchase for anyone interested in connecting a PC keyboard to their MTX.

At this point, it meets my original design goal of allowing a PS/2 keyboard to be used with an MTX computer with the added benefit of also supporting (most) USB keyboards. I need to work out a cost for the Bill of Materials so that I can finalise the purchase price, but it is likely to be around 25, including P&P in the UK. The price includes an assembled interface PCB, short jumper leads used to harvest power from the MTX computer PCB, a short Type A USB header cable and a PS/2 to USB adapter. If you are interested, please drop me an email.

Please make sure that you are confident in your ability to install it before purchasing. Read this page first or contact me to discuss further.

 

 

 

mailto: Webmaster

 Terms & Conditions