UK Vintage Radio Repair and Restoration Powered By Google Custom Search Vintage Radio and TV Service Data

Go Back   UK Vintage Radio Repair and Restoration Discussion Forum > Specific Vintage Equipment > Vintage Computers

Notices

Vintage Computers Any vintage computer systems, calculators, video games etc., but with an emphasis on 1980s and earlier equipment.

Closed Thread
 
Thread Tools
Old 9th Feb 2021, 8:34 am   #1
TonyDuell
Dekatron
 
Join Date: Jun 2015
Location: Biggin Hill, London, UK.
Posts: 5,188
Default Microcolour terminal keyboard

This is a long shot, but does anybody have any infromation on the keyboard used with the Microcolour terminals M2240 and M2250? They were made by Microvitec in the late 1980s/early 1990s.

A bit of background. I have 2 of the main units, one of each model. I think the difference is just the firmware ROMs, although one uses a 'normal' SMPSU, the other has a torroidal mains transformer with a switching regualtor board after it. But the PSU outputs are the same in both cases so that's not a real difference.

There are 3 PCBs in the cardcage inside. One contains the 68B09E processor, ROMs, RAM, 4 6551 serial chips (keyboard, printer, 2 for the host port to allow split baud rates) a 6821 (parallel printer port and assorted control signals). The next board is the text video system - 4K*24 bit video RAM, character generator RAM, 6845 crt controller, etc. The last is the graphics video system with 128K bytes of DRAM, a lot of TTL, etc It stores 4 bits/pixel, then there's a colour lookup table that maps those 16 colours to 12 bit physical colours on the monitor.

The video output is strange. It's on a DB25 plug and carries ground, +5V, 2 sync signals (Hsync is about 21kHz, Vsync is 50Hz), 4 TTL video lines from the text board (I am guessing at RGBI) and 12 TTL video lines from the graphics board.

Anyway, I've managed to interface an old EGA monitor to it, the text outputs only for the moment. After removing someantisocial capacitors from the mains filter of the monitor it works. I get a cursor. I have noticed that all the serial chips are set to 9600 baud by default, if I send such data up the appropriate pin of the host port it displays it as characters. Not tried anything fancy yet, but clearly the processor is running, the text system works, etc.

Now the keyboard interface is a DE9 socket. It carries the power lines and a pair of signals that go via buffers/inverters to the TxD and RxD lines of one of the 6551 chips. As I said, 9600 baud. I've made a little transistor buffer so I can send RS232 data into that port too. And it ignores it. I've sent every byte.

So either it's expecting some odd data format, like 8 bits with parity, or it's expecting some odd protocol, or it's expecting some response from the keyboard after power up and ignores the keyboard until it gets it. Or....

Any suggestions
TonyDuell is offline  
Old 9th Feb 2021, 4:41 pm   #2
TonyDuell
Dekatron
 
Join Date: Jun 2015
Location: Biggin Hill, London, UK.
Posts: 5,188
Default Re: Microcolour terminal keyboard

Ok, I am an idiot...

When I checked the speed of the keyboard 6551, I connected a counter to the RxC pin (which is an output clocking at 16 times the baud rate in internal clock mode) of what I thought was the right chip. It wasn't. I was testing one of the host interface chips.

Checking the correct one shows that the keyboard port runs at 1200 baud....

At which point I get some response from sending data into the keyboard socket. I particular 0x80 goes into setup mode with a lovely multi-colour setup options screen. I think, though, it's really expecting 8 data bits and a parity bit, 9 bits total, which is something a lot of modern serial devices can't handle. Time to experiment some more...
TonyDuell is offline  
Old 9th Feb 2021, 5:23 pm   #3
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 661
Default Re: Microcolour terminal keyboard

PC Serial ports can handle 8e1 and 8o1 - I mean real ones I don't know about the usb versions - you may have to experiement with these.

Its a strange one to use with modems though.

PS - can you post some photos to satisfy my curiosity.
JohnBHanson is offline  
Old 10th Feb 2021, 8:29 am   #4
TonyDuell
Dekatron
 
Join Date: Jun 2015
Location: Biggin Hill, London, UK.
Posts: 5,188
Default Re: Microcolour terminal keyboard

I can stick up some photos when I've taken them, but the unit is not much to look at. A bit like a small PC box, flat on the benchtop. The only thing on the front is a green power-on LED.

The 8-bits-with-parity link is for the keyboard (which I don't have) to the main unit. The host port (to the modem, minicomputer, whatever) can be set to whatever you want I think. I've managed to display one of the setup pages but not worked out what the keyboard has to send to move around and change values.

I am not sure how I'd get a PC, not even an old laptop, on the bench along with the terminal, EGA monitor, logic analyser, serial comms analyser, etc that are currently there.... Yes, most older serial ports can do 8 bit with parity, a lot of more modern things can't. A number of the serial routines I've seen for microcontroller boards assume 8 bits, no parity, 1 stop bit.
TonyDuell is offline  
Old 10th Feb 2021, 8:58 am   #5
dglcomp
Heptode
 
Join Date: Jul 2016
Location: Portland, Dorset, UK.
Posts: 870
Default Re: Microcolour terminal keyboard

If keyboard size is not an issue then maybe look for one of the old HP MS-DOS palmtops, one of the windows CE palmtops or something like an Amstrad NC, I believe they had terminal emulation.
dglcomp is offline  
Old 10th Feb 2021, 5:19 pm   #6
TonyDuell
Dekatron
 
Join Date: Jun 2015
Location: Biggin Hill, London, UK.
Posts: 5,188
Default Re: Microcolour terminal keyboard

I'm actually using an HP95LX to see what is coming out of the host port...

But anyway, with a lot of odd hardware (the Microcolour itself is somewhere at the bottom, there's also an IBM5154 EGA monitor, a thing called a Ferret acting as an RS232 format coverter and an HP49G calculator to send the keyboard data -- chosen because even I can figure out how to program it) I've worked out much of the keyboard interface.

The serial parameters are 1200 baud, 8 bits, even parity.

Values from 0 to 0x7F seem to be sent to the host unchanged. This means the keyboard must handle shift. control, caps lock, repeat, etc. Normally it's done in the terminal unit itself, but not here

0x80 is setup as I aready knew

Above that are the arrow keys, etc, numeric keypad keys, things like that/. I've made a list of most of them, I've missed a few (line/local toggle, which will be a lot easier to find when I have a sort-of keyboard working).

Now have to think about what sort of keyboard to use and how to interface it.
TonyDuell is offline  
Old 14th Feb 2021, 5:18 pm   #7
TonyDuell
Dekatron
 
Join Date: Jun 2015
Location: Biggin Hill, London, UK.
Posts: 5,188
Default Re: Microcolour terminal keyboard

I've done some more on this. In particular I've got a DEC LK201 keyboard (the one used with the VT220, etc) interfaced to the Microcolour using an Arduino Micro. Yes, you read that correctly, I used an Arduino. I am happier with boards of TTL, but...

Not finished yet, but I have got most of the way I think....
TonyDuell is offline  
Old 24th Mar 2021, 2:05 pm   #8
TonyDuell
Dekatron
 
Join Date: Jun 2015
Location: Biggin Hill, London, UK.
Posts: 5,188
Default Re: Microcolour terminal keyboard

Here. as promised, are the results of my designs. This post covers the EGA monitor interface, the next the LK201 keyboard interface.

Here is the circuit diagram of the interface to an IBM EGA monitor. Actually it could be reduced to 3 TTL ICs (replace the OR's with NANDs, invert the 4 text output signals rather than the 6 graaphics ones, and it'll fit into 2 quad NAND ICs (one gate strapped as an inverter) and a hex inverter device.

The 2 photos show the insides of the monitor interface and the whole thing working.
Attached Thumbnails
Click image for larger version

Name:	EGA_Monitor_Interface.jpg
Views:	78
Size:	101.2 KB
ID:	230027   Click image for larger version

Name:	Microcolour_test.jpg
Views:	86
Size:	101.0 KB
ID:	230028  
Attached Files
File Type: pdf EGA_Monitor_Interface_Schematic.pdf (890.3 KB, 144 views)
TonyDuell is offline  
Old 24th Mar 2021, 2:08 pm   #9
TonyDuell
Dekatron
 
Join Date: Jun 2015
Location: Biggin Hill, London, UK.
Posts: 5,188
Default Re: Microcolour terminal keyboard

Now for the keyboard interface. Again here's the circuit diagram and a photo of the complete unit. Also the keycodes to send to the Microcolour terminal, how I mapped those to the LK201 keys, and the source of the Arduino program (so you can laugh at my terrible programming)
Attached Thumbnails
Click image for larger version

Name:	LK201_Interface_Internals.jpg
Views:	59
Size:	107.6 KB
ID:	230029  
Attached Files
File Type: pdf LK201_Keyboard_Interface_Schematic.pdf (805.8 KB, 50 views)
File Type: txt Keycodes.txt (744 Bytes, 47 views)
File Type: txt Key_Assignment.txt (2.2 KB, 43 views)
File Type: zip LK201_Interface_forum.zip (1.7 KB, 44 views)
TonyDuell is offline  
Old 24th Mar 2021, 6:12 pm   #10
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: Microcolour terminal keyboard

Nicely done Tony. I confess you are braver than I am to be neatly hand-drawing diagrams like that, I would get 90% of the way through one, then make a mistake which I would find intolerable, so I would have to draw the whole thing again. Probably several times.

For that reason I tend to draw diagrams like those using Windows Paint - not the greatest tool for circuit diagrams as it has no pre-made component outlines but I have drawn enough diagrams that way now to be able to pinch the necessary 'parts' for new diagrams from the older ones. The main reason for doing it on a computer is that I can undo any mistakes I make.

The Arduino 'sketch' looks fine to me, the variables / arrays etc have sensible names so that it is easy to work out that array 'shkey' contains shifted key codes, and so on. If anyone complains you can always shrug and say 'It works'. (That's what I do, anyway).

The Arduino and similar boards are a very useful Swiss-army electronics tool either for a permanent way to solve a problem, or just as temporary proof of concept so that if you do still want to put something more 'period' in there you already know exactly how the period-appropriate circuit needs to behave, having proof-tested it in 'Arduino prototype' form. I always argue that it's easier to rewire a circuit on a screen (ie, to rewrite the code a bit) than to change the circuit physically.
SiriusHardware is online now  
Old 24th Mar 2021, 6:54 pm   #11
TonyDuell
Dekatron
 
Join Date: Jun 2015
Location: Biggin Hill, London, UK.
Posts: 5,188
Default Re: Microcolour terminal keyboard

I've never found a CAD system which actually aids me to design (or reverse-engineer), so I stick to pen, paper, calculator and brain. As regards mistakes, that's what those white-paint correction fluids are for

I feel that adding non-period accessories without modifying the original unit is no worse than, say, listening to a CD player through a vintage valve amplifier. In this case, if I ever get the original keyboard I can just plug it in, no longer using my interface. The Microcolour itself is unchanged.

The 'no modifications' is the reason for the little 12V SMPSU in the keyboard interface box. The older Microcolour terminals have the +12V rail supplied by a 78L12 regulator, so limited to 100mA. That's not enough for an LK201. Later models had a more conventional SMSPU inside and seem to be able to power the LK201 but I wanted the interface to work with both my units (I have one of each)

A 'period' solution would probably use a microcontroller of the 8048 or 8051 family. I am not sure it's worth me trying to write the code in assembler for that. It couldn't be 'original' as the Microcolour never used the LK201 keyboard as far as I know. So I'll stick with the Arduino, 'it works'.

Actually I am more used to soldering than programming and find it quicker to change components/physical circuitry than to modify a program and download it to the Arduino or whatever. But whatever works...
TonyDuell is offline  
Old 24th Mar 2021, 7:22 pm   #12
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: Microcolour terminal keyboard

I have a large quantity of 8748 and 8751 ICs, the '8048 / 8051 with an EPROM built in', should you ever need one for a project. I also have some 89C51 / 89C52, the Atmel Flash programmable 8751 equivalent which runs the same code.

I had a friend / colleague in a former job who was very good at electronics, including digital electronics, but he absolutely hated microprocessors and microcontrollers. We had a need to make something which decoded and displayed the output from an IC which converted an analogue property into 4 bit data + a strobe. (For the curious, it was a Selcall tone decoder IC).

As we both needed one of these devices, we both set about making them in our own way, me with a microcontroller and one of the (then new-fangled) Alphanumeric LCD displays, and he with a vast pile of logic ICs and some 7-segment displays.

Very late on in the process we discovered that if these tone receiver ICs received the same tone twice in succession, they didn't output the same 4-bit code both times - on receiving the second instance of the tone they would output a special 'repeat last character' code instead.

At that point, all I had to do was to rewrite my code to always 'remember' the last normal code received and to display the same character again whenever the 'repeat last character' code was received. That's what I mean about it being easier to 'rewire' something on the screen than to physically rewire the circuit.

What surprised me, though, was how he responded to the problem. I could almost imagine that his highly dedicated circuit had been all but broken by this late change but to my amazement he went away and a couple of hours later, had it behaving exactly the way it it should with the last received character being buffered and correctly displayed whenever the 'repeat last character' code came out of the IC. All done with standard logic. I was well impressed.
SiriusHardware is online now  
Old 24th Mar 2021, 11:07 pm   #13
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 661
Default Re: Microcolour terminal keyboard

I don't want to divert the topic too much what is the development procedure
for an Arduino. What tool do you use to write code and how do you get
the code into the chip?

I am the reverse to you - I do software professionally and some ham hardware
if my arm is twisted enough. Small vero is about my limit for homebrew.

What type of board are you using for your circuits - looks a bit like speedwire
I used once many years ago?
JohnBHanson is offline  
Old 25th Mar 2021, 6:55 am   #14
TonyDuell
Dekatron
 
Join Date: Jun 2015
Location: Biggin Hill, London, UK.
Posts: 5,188
Default Re: Microcolour terminal keyboard

The board is the FR4 (glassfibre) substrate stripboard that I got from Maplin years ago. I think RS sell something similar. It's much nicer to use than the SRBP-based boards, the only downside being that it's harder to drill to cut the tracks.

The wiring is either tinned copper wire for short links or wirewrap wire (soldered, not wrapped) for longer ones. That's the blue wire you can see in the photos.

For the Arduino development I just downloaded the (free) Arduino software which I think is available for any modern-ish OS. The language is similar to C. The Arduino modules come with a bootloader programmed into the chip, you connect the module to a USB port on your PC, install the driver (that was the only hard part for me, it took a couple of tries), then download. Unplug the USB cable, plug the module into the target board and go (you hope).
TonyDuell is offline  
Old 25th Mar 2021, 3:40 pm   #15
ortek_service
Octode
 
ortek_service's Avatar
 
Join Date: May 2018
Location: Northampton, Northamptonshire, UK.
Posts: 1,394
Default Re: Microcolour terminal keyboard

Yes, that 'green' tin-plated veroboard is a bit nicer, not oxidising like bare copper can, so less worry about cleaning / lacquering if might get a bit damp.

You can also get Eurocard sized board, with continuous top ground plan around all the holes, and just suare pads underneath that you just connect point to point with with wires underneath of wire to adjacent holes, bent over, on the top which is a bit neater. And I quite like using this for analogue circuitry.
Besides vero (original?) other manufacturers like Roth do it, in Farnell etc.


I recently got the Arduino software running under Win-XP, with a small ARM uC board. But having never used it before, took me a while to discover how to get the right board package for other processors.
And I too spent a lot of time trying to find the right serial driver, as it didn't seem to get installed automatically, finding one buried down several folders. I think it may also be similar with Win7, although at least it's default USB driver support multi-devices on one USB port better for Microbit style mass-storage area to copy compiled code to.
You can also use Atmel Studio etc. (which comes with a free C compiler), with the Arduino board's ATMega328 uC if you have an extra In-System Programmer interface - And then don't need the bootloader in the uC / can use this to resurrect one. There an even lower cost Asb? programmer for a few pounds, but need to use Avrdude / WinAvr? to support that as not an official Atmel etc. one on Atmel studio's supported list (which also includes their various In-Circuit Debuggers, inc. quite low-cost Dragon).
ortek_service is offline  
Old 25th Mar 2021, 5:46 pm   #16
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: Microcolour terminal keyboard

? Odd, normally if you install the Arduino IDE software it installs the necessary USB driver at the same time, in both Windows and Linux in my experience. I have to say it's possibly the nicest / easiest IDE around - 'Mu' (for Micropython on boards like the Micro:Bit ) comes quite close.
SiriusHardware is online now  
Closed Thread

Thread Tools



All times are GMT +1. The time now is 3:52 pm.


All information and advice on this forum is subject to the WARNING AND DISCLAIMER located at https://www.vintage-radio.net/rules.html.
Failure to heed this warning may result in death or serious injury to yourself and/or others.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright ©2002 - 2023, Paul Stenning.