Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

Re: LPC21XX as OSD Generator

2005-10-29 by Eric Engler

--- In lpc2000@yahoogroups.com, "rodboyce70" <rodboyce70@y...> wrote:

> Look it is relativly easy to do the micro must sync up with the
> horizontal and vertical sync pulses.  Then it is a simple matter of
> timming and interrupting the original video with your own.  If you
> only wnat white text then you only need one output pin.  Toggle it
> high when you want white and low when you want the original video to
> pass through.

You reminded me of a book that came out in the late 70's by Don
Lancaster. It was called "The Cheap Video Cookbook". He used a 1 Mhz
6502 to generate an NTSC video signal. During horizontal retrace the
chip would get the text lined up for the next scan line, and he had
enough free cycles to do some other work.

He took advantage of a brilliant deduction. He wanted to use the
address  bus to clock out character pixels from an external shift
register. This meant that he didn't have to send out pixels
individually - he'd only need to send out the address of one complete
character each microsecond. He thought of executing a string of NOPs
to get the addresses to increment. However, the 6502 could only
execute one NOP every 2 clock periods, and this wasn't fast enough.
Then a stroke of genious set in: he could give it a series of LDA $xx
commands. The 6502 would execute the opcode fetch on one clock, then
it would fetch the immediate data from the following memory address
with the next clock cycle. This gave him a stream of character
adresses at one per microsecond, which was good enough to meet his needs.

The hard part is to support colors and to lock it to an external
signal and superimpose your characters over the other video signal.
This is harder than it sounds. You can easily get ghosting and noise
problems due to circuit layout issues.

Eric

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.