| 
					
						| 
						 | 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  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. The board is now available for purchase for anyone interested 
				in connecting a PC keyboard to their MTX.  The price is £40.00 + postage. 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. 
					
						
							| Available July 2018 |  
							| Board 
							Rev | Firmware+ | Serial | Status, Feedback | 
							Owner |  
							| 1.0 | 180610 | 1 | Installed, Tested, Working | DS |  
							| 1.0 | 180610 | 2 | Installed, Tested, Working | MA |  
							| 1.0 | 180610 | 3 | Received, no feedback | CD (us) |  
							| 1.0 | Build --- | 4 |  |  |  
							| 1.0 | Build --- | 5 |  |  |  
							| 1.0 | Build --- | 6 |  |  |  
							| 1.0 | Build --- | 7 |  |  |  
							| 1.0 | Build --- | 8 |  |  |  
							| 1.0 | Build --- | 9 |  |  |  
							| 1.0 | Build --- | 10 |  |  |  
							| Shipping address UK unless 
							otherwise noted (by Country Code) |  
							| For firmware upgrades,
							see here |      |