Autor Wątek: Max 48 i VGA  (Przeczytany 7373 razy)

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Max 48 i VGA
« dnia: 2019.08.16, 20:45:43 »
Tak sobie od paru dni siedzę i kombinuję... Czy nie dałoby się w prosty sposób przystosować wkładu w Max 48, by zamiast zwykłego monitora sterować monitorem VGA? Na razie tylko jako proof of concept, bo w tym przypadku nie da się pogodzić prostoty z jakością.

Teoretycznie da się wykorzystać podstawowy tryb VGA (640x480, 31,5kHz) tak, by każda linia screena była rysowana dwa razy. W miarę proporcjonalne byłyby też wszystkie marginesy (border). Zmieniłaby się oczywiście częstotliwość przerwań, by choć niektóre efekty borderowo-multikolorowe miały szansę zadziałać. Do realizacji tego pomysłu całkowicie wystarcza zegar 14MHz, co upraszcza sprawę.

Sporym minusem byłyby znacznie częstsze odwołania do pamięci obrazu, plus częstsze przerwania - procesor miałby mniej czasu na resztę zadań, o ile jednocześnie nie podniesie się częstotliwości zegara CPU.

Sugestie? Pomysły? Pytania?

pear

  • *****
  • Wiadomości: 5509
  • Miejsce pobytu:
    Będzin
  • Z80 only
Odp: Max 48 i VGA
« Odpowiedź #1 dnia: 2019.08.16, 21:02:59 »
Można w jakiś sposób zbuforować 32 bajty danych do dublowania linii, żeby ograniczyć ilość odczytów z pamięci. Nie zmieni to jednak wyższej częstotliwości przy pierwszym odczycie (będzie "szarpało" ;) ).
ZX/Enterprise/CPC/Robotron/C128D

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Max 48 i VGA
« Odpowiedź #2 dnia: 2019.08.16, 21:11:40 »
Teoretycznie można zintegrować obecny wkład z wkładem od scandoublera i problem odwołań do pamięci całkowicie znika.
Oczywiście trzeba wtedy dołożyć kawałek RAM jako bufor linii.

Ale ja chciałem zrobić coś prostszego. Ot, podmieniamy wkład, wyprowadzamy dwa sygnały dodatkowo (Hsync i Vsync) i to wszystko.

Drugą pieczenią na jednym rożnie miałoby być sprawdzenie trybów turbo - 7/14 MHz.
« Ostatnia zmiana: 2019.08.16, 21:26:11 wysłana przez trojacek »

Maryjan

  • *****
  • Wiadomości: 6650
  • Miejsce pobytu:
    Skarżysko-Kam.
  • Scotch whiskey and West Highland Terrier
Odp: Max 48 i VGA
« Odpowiedź #3 dnia: 2019.08.16, 23:16:41 »
ALTERA się od tego nie zapali ?

Ja bym wolał w ZX Max 48 tryby Timex-owe.
Terminal dla CP/M uruchomiony na Timex-ie wświetla ładniejszą czcionkę, niż na ZX Spectrum.
"Co miałem powiedzieć - przeczytałem..." Nikodem Dyzma

SAJ

  • *****
  • Wiadomości: 1484
  • Miejsce pobytu:
    Terra Prime
Odp: Max 48 i VGA
« Odpowiedź #4 dnia: 2019.08.16, 23:23:34 »
Widzialem to w Akcji i dziala.

Pozwole sobie przytoczyc, ze Pan Krzysztof z tego prtalu

https://sites.google.com/site/krzkomar/elwro-800-junior

Zbudowal sobie klona Elwro 800 Juniora, ktory wyswietla obraz na VGA.

Zrobil to na zasadzie, ze zainteresowal go tylko obszar pamieci, przypisany do ekranu.

Kiedy procesor probuje wpisac cos w ten obszar, to grafika mu w tym nie przeszkadza aby zapisal to sobie, ale do zwyklego statycznego RAMu, z ktorego moze tez sobie te dane spowrotem przeczytac, natomiast kiedy te dane sa na magistrali w czasie zapisu, to modul grafiki sobie te dane "pozycza" i zapisuje do swojego wlasnego bufora, z ktorego moze potem wyswietlac obraz z taka czestotliwoscia, z jaka tylko chce.

Proste i skuteczne i miesci sie w jednym xilinxie :)


SAJ

  • *****
  • Wiadomości: 1484
  • Miejsce pobytu:
    Terra Prime
Odp: Max 48 i VGA
« Odpowiedź #5 dnia: 2019.08.16, 23:40:43 »
W miarę proporcjonalne byłyby też wszystkie marginesy (border).

Tutaj dorzuce troche doswiadczen, ktore nabylem, kiedy budowalem terminal do Bosmana i bawilem sie w wyswietlanie obrazu w VGA w roznych predkosciach i rozdzielczosci. Wydawaloby sie to proste, gdyby nie fakt, ze nawet monitory CRT tak dlugo jak sa kolorowe, to maja jakas rozdzielczosc i dobrze jest w ta rozdzielczosc trafic. To nie jest tak, ze wyrzucisz 256 pixeli na ekran kiedy Ci sie to podoba i beda wygladaly slicznie, bo to przeciez VGA, tylko to musi sie zsynchronizowac z rastrem i pixele musza trafiac w punkty zwlaszcza, kiedy wyswietlaczem jest panel LCD. W Przeciwnym wypadku efekt jest taki, ze np Litera "I" bedzie miala rozna grubosc, a litera m bedzie miala kazda nozke inna, zaleznie od miejsca w ktorym jest na ekranie, a jesli dochodzi kolor, to jeszcze kolory sie zaczna rozjezdzac.

W zalaczniku jest mniej wiecej demonstracja efektu co sie dzieje, gdy to co wyswietlasz nie trafia w pixele na ekranie. Nalepiej widac na literze m.

Teraz przy rozdzielczosci 640x480@60Hz musisz udezyc w ekran 800 razy w 32us. Z zegara 14Mhz, to nie bedzie mozliwe. Grafika bedzie musiala miec swoj wlasny osobny zegar i dzialac asynchronicznie do reszty ukladu, co oznacza, ze takie sprawy jak IRQ musza byc przeanalizowane jeszcze raz.

« Ostatnia zmiana: 2019.08.17, 00:02:01 wysłana przez sajmosia »

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Max 48 i VGA
« Odpowiedź #6 dnia: 2019.08.17, 01:24:53 »
Nawet przy 14MHz będzie lepiej, niż po composite. Zwłaszcza na monitorze CRT, który nie ma pikseli.
A na LCD, przyjmując minimalną rozdzielczość poziomą 1280px (tyle ma mój Samsung 19"), wystarczy, że spectrumowy piksel będzie się składał z około 3 pikseli fizycznych. Jak któraś kreska będzie nieco cieńsza (2 piksele), to nic złego się nie stanie.

Cytuj
Kiedy procesor probuje wpisac cos w ten obszar, to grafika mu w tym nie przeszkadza aby zapisal to sobie, ale do zwyklego statycznego RAMu, z ktorego moze tez sobie te dane spowrotem przeczytac, natomiast kiedy te dane sa na magistrali w czasie zapisu, to modul grafiki sobie te dane "pozycza" i zapisuje do swojego wlasnego bufora, z ktorego moze potem wyswietlac obraz z taka czestotliwoscia, z jaka tylko chce.

Tak działa znany scandoubler, tak działa ZX-HD Bena, tak działa ZX-VGA, tak działa Spectra mający złącze SCART.
Ale mi nie o to zupełnie chodziło.
Niemniej dzięki za insight :)

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Max 48 i VGA
« Odpowiedź #7 dnia: 2019.08.17, 01:26:44 »
Ja bym wolał w ZX Max 48 tryby Timex-owe.
Terminal dla CP/M uruchomiony na Timex-ie wświetla ładniejszą czcionkę, niż na ZX Spectrum.

A ja bym wolał timexowy hires na monitorze VGA, i to najlepiej bez borderu :)
Ale do tego potrzebny jest zegar minimum 20MHz. I know-how, którego mi brak.
Baby steps...

Maryjan

  • *****
  • Wiadomości: 6650
  • Miejsce pobytu:
    Skarżysko-Kam.
  • Scotch whiskey and West Highland Terrier
Odp: Max 48 i VGA
« Odpowiedź #8 dnia: 2019.08.17, 13:00:29 »
So, steb by step.
Do sukcesu :)

Choć ostatnio usłyszałem od jednej osoby, że takie nowoczesności, to już nie retro.
Są jeszcze zatwardziali retro-maniacy  ;D
"Co miałem powiedzieć - przeczytałem..." Nikodem Dyzma

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Max 48 i VGA
« Odpowiedź #9 dnia: 2019.08.17, 13:17:32 »
To nie retro, zgoda, to raczej taki pomysł na własne potrzeby. Dla mnie osobiście prostszy w realizacji niż montaż ZX-Uno :D

SAJ

  • *****
  • Wiadomości: 1484
  • Miejsce pobytu:
    Terra Prime
Odp: Max 48 i VGA
« Odpowiedź #10 dnia: 2019.08.17, 20:53:23 »
... Zwłaszcza na monitorze CRT, który nie ma pikseli.


trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Max 48 i VGA
« Odpowiedź #11 dnia: 2019.08.17, 21:00:22 »
To nie są piksele. A rysunek nawet nie odzwierciedla struktury luminoforu monitorów CRT, tylko starych telewizorów.
Dlatego ja CRT wszystkie tryby grafiki są jednakowo... rozmazane :)
Przykładem z życia wziętym jest Trinitron,  który nie ma kropek (dots), tylko ciągłe paski luminoforu. Rozdzielczość pozioma jest więc teoretycznie nieskończona (w praktyce ograniczona pasmem sygnału i elektroniki monitora).
« Ostatnia zmiana: 2019.08.17, 21:34:42 wysłana przez trojacek »

SAJ

  • *****
  • Wiadomości: 1484
  • Miejsce pobytu:
    Terra Prime
Odp: Max 48 i VGA
« Odpowiedź #12 dnia: 2019.08.17, 21:02:03 »
Cytuj
Nawet przy 14MHz będzie lepiej, niż po composite.

Moze nie byc. Kiedy probjesz wyswietlic pixel w momencie, gdy raster jest miedzy pixelami na ekranie, to naprawde nie wyglada ladnie. W kolorze jest jeszcze gorzej, bo oprocz samych pixeli jeszcze rozjezdza sie kolor.








SAJ

  • *****
  • Wiadomości: 1484
  • Miejsce pobytu:
    Terra Prime
Odp: Max 48 i VGA
« Odpowiedź #13 dnia: 2019.08.17, 21:05:39 »
To nie są piksele.

Ok, aczkolwiek z autopsji wiem, ze dobrze jest w czasie w to trafic, cokolwiek to jest.

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Max 48 i VGA
« Odpowiedź #14 dnia: 2019.08.17, 21:07:33 »
Cytat: sajmosia link=topic=5194.msg79710#msg79710
W kolorze jest jeszcze gorzej, bo oprocz samych pixeli jeszcze rozjezdza sie kolor.

Hicolor jest mono.
I naprawdę nie ma znaczenia, czy na jeden piksel timexowy załapią się 2 czy 3 piksele matrycy LCD. Rozmazanie jest całkiem znośne.
« Ostatnia zmiana: 2019.08.22, 00:22:26 wysłana przez trojacek »