@tony_tg
Niemalże tak samo

, tylko:
miałem własny (no prawie, bo przerobiony z 640x480) kontroler VGA 800x600@72Hz, który dawał sygnały h_sync i v_sync oraz współrzędne x i y aktualnego piksela. (dwa liczniki + z 5 warunków na generowanie impulsów sterujących).
Jako sygnał VGA służył mi prosty układ kombinacyjny do generacji pasów oraz inne, przełączane dip-switchami statyczne obrazy(np. czarne tło) i jeden dynamiczny obraz.
Do tego z pamięci RAM (117kB, rozdzielczość 400x300) odczytywałem zawartość tego co ma być dołożone, czyli była to pamięć MENU (czy jak kto woli OSD). Format danych był taki, że miałem 6-bitowy kolor + 'kanał alpha'. Dzięki czemu przy odpowiednim zapisie koloru mogłem uzyskać półprzeźroczystość lub też całkowite wyświetlanie menu bądź tła.
Do zapisu pamięci RAM używałem oczywiście wbudowanej '51 (TSK51 od Altium). Czcionka z gotowca od Altium, bo samemu mi się nie chciało pisać

Oczywiście można by do tego dołożyć inny układ generujący sygnał VGA, byle się synchronizował sygnałami x i y.
Gdzieś mam prezentację do tego zrobioną jak Cię szczegóły interesują.