MONOCHROME MDA monitor; a bit of retro fun!


I've picked up a little early 80s monochrome monitor.

And have been working on using the Arduino as a sort of graphics card for it...

I realise this is basically impossible. It's just under 800 pixels wide, and I only have just over 800 clock cycles before I need to make a new line (horizontal sync freq. is about 18kHz).

Having said that, I've got it to work (at first just using C, then proper assembler code) with simple things; horizontal and vertical lines, boxes, that sort of stuff (and got them to move horizontally, vertically, diagonally, etc).

Anyway, there are a few projects that do this sort of thing. There's the impressive TVOut, which does PAL and NSTC (both composite sync) and a Russian bloke, Max Ibragimov, in Togliatti (Tolyati) who did a great VGA thing around an AVR processor in black and white. The sync works so differently in these; does anyone know how they could be adapted (except knocking off a few 'nop' operations)?

If I'm going to build it from scratch, my main problem, from a programming point of view, is the graphics operations themselves. I can manipulate individual pixel chunks (albeit with very few operations spare!), but how do I get from that to displaying text? I'm guessing it involves storing a font, storing a big table of all the characters in the flash, and moving bits of it to the RAM; but I haven't the foggiest!

Thanks in advance.

Well the telemate does standard NTST and PAL monochrome output and it's source code is downloadable and schematics are avalible also. The telemate does both text and block graphics.

I use a telemate to drive a $25 4.2" LCD display I found on E-bay


Thanks for your swift reply.

The trouble with Telemate and similar projects is that the sync frequencies are all wrong.

The MDA system has a PAL-like vertical refresh rate of 50 Hz (NTSC is 60Hz)

However, the horizontal sync is completely out; 18452Hz for MDA instead of just over 15000Hz for PAL/NTSC.

Additionally, the sync out from the board needs to be non-composite; MDA has vertical and a horizontal sync pins, sort of like VGA, so they aren't just chucked into the video signal like they are with televisions.

So basically, as image manipulation is rather difficult for a n00b like me (there's some describtion at ), I need to modify someone else's (preferably VGA) project, and change the sync frequencies above all else, or use a television system and change the sync frequencies plus allocate separate pins to the different syncs. ^This is a headache. So I'd like to find the simplest possible bit of code where I can just change some interrupts (or put a few 'nop's in) and it will magically work. I haven't been able to find such a project; they're all so massive that I wouldn't know where to start!