Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Zpět na zprávu

Celé vlákno · 8 zpráv

Scandoubler zase trochu jinak

Michal Hučík SHARP MZ-800

Zdravim,

pokusil jsem se schematicky navrhnout scandoubler pro FPGA Spartan3A :)
 Kazdopadne pokud by byl ten navrh funkcni, tak by asi nebyl problem realizovat 
to i s jakoukoliv normalni logikou. Takze bych vas chtel poprosit, pokud se bude
nekomu chtit, zda byste se mohli podivat, jestli jsem neudelal v nejake uvaze
chybku, a zda by vubec scandoubler mohl v teto podobe fungovat. Viz. prilozene
schema.

Zde je k nemu popis, resp. zbozne prani jak by to melo fungovat.

Vstupy:

- Clock, libovolny hodinovy signal alespon 36MHz a vyssi
- SharpRGBI, 4 bity RGBI ze Sharpa
- SharpVsync, 50Hz snimkova synchronizace ze Sharpa (s kazdou nabeznou hranou
zacina novy snimek)
- SharpHsync, 15.6115kHz horizontalni synchronizace ze Sharpa (s kazdou nabeznou
hranou zacina novy radek)


Popis soucastek:

- Ram1 a 2, interni pamet 4096x4, pokud je WE a EN na urovni 1, tak s nabeznou
hranou CLK zapisujeme do pameti stav ze sbernice D(3:0), pokud je WE ve stavu 0,
tak na sestupne hrane CLK cteme na sbernici DO(3:0)

- OUTBUFT4 jsou 3 stavove vystupni buffery, pokud je T ve stavu 0, tak
propousteji, pokud je T = 1, tak jsou na vystupu uvedeny do tretiho stavu -
vypnuto

- Count1, 2, 4 a 5 jsou 2 bitove citace, Count3 je 16 bitovy

- Muxy 1 a 2 prepinaji vystup tak, ze pokud je na S0 = 0, tak na vystupu je stav
z D0, pokud S0 = 1, tak je na vystupu stav z D1

- tajemna soucastka OUTBUFT_16_vs_12 je pouha redukce mezi 16 a 12 bitovou
sbernici

Popis funkce:

- Count1 funguje jako delicka hodinoveho signalu, jeji vystup Q0 slouzi jako
zdrojovy signal k citaci adres (Count3) a zaroven je timto signalem pri kazdem
prvnim taktu nastaveno WE = 1 u pameti Ram1 a 2 (tedy pri kazde prvni nabezne
hrane z Clock budeme provadet scan RGBI vstupu)

- Count2 pocita sude a liche radky scanovaneho snimku a podle toho urcuje, do
ktere z pameti se bude zapisovat a ze ktere se bude cist, nulty radek se zapise 
do Ram1, prvni do Ram2 atd.

- s prvni nabeznou hranou na Clock scanujeme / zapiseme stav RGBI na adresu #000
Ram1

- s prvni sestupnou hranou na Clock precteme / odesleme na VGA obsah Ram2 z
adresy #000

- s druhou nabeznou se nedeje nic

- s treti sestupnou opetovne precteme  / odesleme na VGA obsah Ram2 z adresy
#000 a zvedneme hodnotu citace adres Counter3 na #001

- takto postupne scanujeme cely nulty radek, zapisujeme jeho hodnotu do Ram1 a
do VGA odesilame nejake nesmysly z Ram2 dokud vstup SharpHsync nezmeni svou
hodnotu na 0 (konec radku), tim se prepne zapis na Ram2, cteni na Ram1, vynuluje
se citac adres Count3 a jakmile SharpHsync oznami prechodem do 1 zacatek noveho 
radku, tak zacneme na VGA posilat nascanovane data nulteho radku z Ram1, zatimco
do Ram2 se bude ukladat dalsi radek

- Hodnota signalu SharpHsync je transparentne predavana do VgaHsync

- Hodnota vstupu SharpVsync je pri prechodu na 0 zaznamenana do Count4 a do
vystupu VgaVsync je odeslana se zpozdenim o delku jednoho obrazoveho radku
pomoci Count5


Toz takhle nejak bych si to predstavoval :) I kdyz vlastne ani moc neverim, ze
to bude fungovat, tak jsem zvedavy na vas nazor.

Michal

Přílohy

  • scandoubler_schema.jpg
    image/jpeg · 85 kB · 1155 x 891 px
  • 3
    image/jpeg · 85 kB · 1155 x 891 px

Re: Scandoubler zase trochu jinak

Michal Hučík SHARP MZ-800

Tomuhle se na internetu tusim rika "selfpwned" :) az kdyz jsem si to po 
sobe precetl, tak jsem si uvedomil, ze jsem vlastne zdvojnasobil pocet 
sloupcu a nikoliv pocet radku! :))) No nic, tak priste :))

Michal

Re: Scandoubler zase trochu jinak

Michal Hučík SHARP MZ-800

Zdravim,

vcera jsem nad tim prvnim schematem vysedaval docela dlouho a jak se zda, tak
 zvitezil zadek nad myslenkou :) Za to se omlouvam a posilam opravenou verzi,
ktera uz je mnohem vic podobna puvodnimu zameru.

- count3 ma zdroj Clock/2 a pocita adresy pro zapis

- count4 ma zdroj Clock a pocita adresy cteni

- count5 je reverzni citac, ma zdroj z Clock, na konci zdrojoveho obrazoveho
radku (pri SharpHsync = 0) si tento counter nacte hodnotu z Count3, pri cteni / 
odesilani pak pocita soucasne s Count4 a jakmile Count5 dojde k nule, tak posle 
signal na VGA Hsync a vynuluje Count4, takze nasleduje opetovne cteni stejneho
radku, dalsi reset Count3 a VgaHsync nasleduje pri SharpHsync

Je dost pravdepodobne, ze jeste nemam uplne odladene hrany na tech citacich -
chci to cele jeste projit v analyzatoru s nejakymi testovacimi daty. Pokud je
vsak uvaha spravna, tak by tento scandoubler mel byt docela univerzalni a
nezavisly na zadnych konstantnich hodnotach Clock a Hsync.

Co myslite?

Michal

Přílohy

  • scandoubler_schema2.jpg
    image/jpeg · 99 kB · 1185 x 924 px
  • 3
    image/jpeg · 99 kB · 1185 x 924 px

Re: Scandoubler zase trochu jinak

Zdenek Adler SHARP MZ-800

Michale (a ostatní),

na to abych odkontroloval správnost zapojení už mi asi odumřely potřebné 
buňky. Nicméně snad alespoň pomohu dokumentem, který mi kdysi dal hodně 
práce a zkoumání na skutečném MZ-800. Je v něm zanesena většina věcí, 
kterými se můj emulátor odlišoval od konkurence, díky kterým byl o krok
 blíž 
k reálnému stroji a dokázal věrně reagovat i na nestandartní
programátorské 
postupy (např. přepínání grafických režimů s naplněnou videoram, 
nestandartní zápisy do registrů GDG aj. ). Jak jsem koukal, některé
kapitoly 
zůstaly pouze nadepsány a byl jsem líný do nich své poznatky přepsat než jsem na ně zapomněl. To hlavní v něm snad ale k nalezení je.
To co tě bude zajímat nejvíce bude v zazipovaném souboru - jedná se o
 průběh 
signálů starajících se o synchronizaci obrazu (je to prakticky grafický 
výpis portu 0xCE). V textovém dokumentu je to pak kapitola 2.1 kde jsou 
rozepsány parametry obrazu (v pixelech, doba jejich trvání) ve vztahu k 
procesoru - přepočet kdy se budou vztahovat k hlavnímu krystalu 17,xxxx MHz 
se provede jednoduše vynásobením 5-ti.
Na závěr poprosím všechny, kteří údaje z těchto dokumentů použijí
(ať už při 
tvorbě nového emulátoru, nebo při návrhu hardwaru apod.), aby se alespoň 
skromně zmínili, z jakého zdroje čerpali a kdo je jeho autorem (mimochodem, spolutvůrcem kapitoly o mapování paměti byl Roman Dolejší).

Zdeněk


Zobrazit citovaný text (36 řádků)
----- Original Message ----- 
From: "Michal Hučík (sharpemupandora.cz)" <pandora.idnes.cz[doména skryta]>
To: "Konference "Počítač SHARP MZ-800 a emulátory"" <sharpemupandora.cz>
Sent: Friday, April 24, 2009 12:09 PM
Subject: Re: Scandoubler zase trochu jinak


>
> Zdravim,
>
> vcera jsem nad tim prvnim schematem vysedaval docela dlouho a jak se zda, 
> tak zvitezil zadek nad myslenkou :) Za to se omlouvam a posilam opravenou 
> verzi, ktera uz je mnohem vic podobna puvodnimu zameru.
>
> - count3 ma zdroj Clock/2 a pocita adresy pro zapis
>
> - count4 ma zdroj Clock a pocita adresy cteni
>
> - count5 je reverzni citac, ma zdroj z Clock, na konci zdrojoveho 
> obrazoveho radku (pri SharpHsync = 0) si tento counter nacte hodnotu z 
> Count3, pri cteni / odesilani pak pocita soucasne s Count4 a jakmile 
> Count5 dojde k nule, tak posle signal na VGA Hsync a vynuluje Count4, 
> takze nasleduje opetovne cteni stejneho radku, dalsi reset Count3 a 
> VgaHsync nasleduje pri SharpHsync
>
> Je dost pravdepodobne, ze jeste nemam uplne odladene hrany na tech 
> citacich - chci to cele jeste projit v analyzatoru s nejakymi testovacimi 
> daty. Pokud je vsak uvaha spravna, tak by tento scandoubler mel byt docela 
> univerzalni a nezavisly na zadnych konstantnich hodnotach Clock a Hsync.
>
> Co myslite?
>
> Michal
>
> ---
> 

Přílohy

  • MZ800Undoc.doc
    application/msword · 129 kB
  • out1-2.zip
    application/zip · 94 kB

Re: Scandoubler zase trochu jinak

Pavel Železo SHARP MZ-800

Ahoj Zdeňku,

dík za zajímavé informace ! 

Pavel
Zobrazit citovaný text (8 řádků)
> ----------------------------------------
> 
> Michale (a ostatní),
> 
> na to abych odkontroloval správnost zapojení už mi asi odumřely potřebné
> buňky. Nicméně snad alespoň pomohu dokumentem, který mi kdysi dal hodně 
> práce a zkoumání na skutečném MZ-800. ...
> Zdeněk

Re: Scandoubler zase trochu jinak

Michal Hučík SHARP MZ-800

Zdenku dekuji, alespon muzu do analyzatoru poslat vstupni data v realne 
podobe.

Jak uz to tak chodi, tak v predchozim schematu je opet chybka - 
tentokrat pouze v muxech. Oprava: mux pro adresni sbernici funguje nyni 
jako krizovy prepinac.
Nechci vam zbytecne plnit mailboxy obrazkama, takze pokud to nekoho 
zajima, tak schema je zde 
http://duna.ordoz.com/scandoubler/spartan3/scandoubler_schema3.jpg

Michal


Zdenek Adler (sharpemupandora.cz) napsal(a):
Zobrazit citovaný text (27 řádků)
>
> Michale (a ostatní),
>
> na to abych odkontroloval správnost zapojení už mi asi odumřely 
> potřebné buňky. Nicméně snad alespoň pomohu dokumentem, který mi kdysi 
> dal hodně práce a zkoumání na skutečném MZ-800. Je v něm zanesena 
> většina věcí, kterými se můj emulátor odlišoval od konkurence, díky
> kterým byl o krok blíž k reálnému stroji a dokázal věrně reagovat i na
> nestandartní programátorské postupy (např. přepínání grafických
 režimů 
> s naplněnou videoram, nestandartní zápisy do registrů GDG aj. ). Jak 
> jsem koukal, některé kapitoly zůstaly pouze nadepsány a byl jsem líný 
> do nich své poznatky přepsat než jsem na ně zapomněl. To hlavní v něm> snad ale k nalezení je.
> To co tě bude zajímat nejvíce bude v zazipovaném souboru - jedná se o 
> průběh signálů starajících se o synchronizaci obrazu (je to prakticky 
> grafický výpis portu 0xCE). V textovém dokumentu je to pak kapitola 
> 2.1 kde jsou rozepsány parametry obrazu (v pixelech, doba jejich 
> trvání) ve vztahu k procesoru - přepočet kdy se budou vztahovat k 
> hlavnímu krystalu 17,xxxx MHz se provede jednoduše vynásobením 5-ti.
> Na závěr poprosím všechny, kteří údaje z těchto dokumentů použijí
 (ať 
> už při tvorbě nového emulátoru, nebo při návrhu hardwaru apod.), aby 
> se alespoň skromně zmínili, z jakého zdroje čerpali a kdo je jeho 
> autorem (mimochodem, spolutvůrcem kapitoly o mapování paměti byl Roman 
> Dolejší).
>
> Zdeněk

Re: Scandoubler zase trochu jinak

Zdenek Adler SHARP MZ-800

Ještě na doplnění posílám něco obdobného - týká se to sice MZ-700, ale
 pár 
zajímavých informací se z toho dá načerpat (obzvlášt poslední 3 odkazy 
htiming + pixel + wramwait): 
http://www.maroon.dti.ne.jp/youkan/mz700/M60719/index.html

Z.



Zobrazit citovaný text (55 řádků)
----- Original Message ----- 
From: "Michal Hučík (sharpemupandora.cz)" <ordoz[doména skryta]>
To: "Konference "Počítač SHARP MZ-800 a emulátory"" <sharpemupandora.cz>
Sent: Friday, April 24, 2009 1:39 PM
Subject: Re: Scandoubler zase trochu jinak


>
>
> Zdenku dekuji, alespon muzu do analyzatoru poslat vstupni data v realne 
> podobe.
>
> Jak uz to tak chodi, tak v predchozim schematu je opet chybka - tentokrat 
> pouze v muxech. Oprava: mux pro adresni sbernici funguje nyni jako krizovy 
> prepinac.
> Nechci vam zbytecne plnit mailboxy obrazkama, takze pokud to nekoho 
> zajima, tak schema je zde 
> http://duna.ordoz.com/scandoubler/spartan3/scandoubler_schema3.jpg
>
> Michal
>
>
> Zdenek Adler (sharpemupandora.cz) napsal(a):
>>
>> Michale (a ostatní),
>>
>> na to abych odkontroloval správnost zapojení už mi asi odumřely
potřebné 
>> buňky. Nicméně snad alespoň pomohu dokumentem, který mi kdysi dal hodně>> práce a zkoumání na skutečném MZ-800. Je v něm zanesena většina
 věcí, 
>> kterými se můj emulátor odlišoval od konkurence, díky kterým byl o krok>> blíž k reálnému stroji a dokázal věrně reagovat i na nestandartní 
>> programátorské postupy (např. přepínání grafických režimů s
 naplněnou 
>> videoram, nestandartní zápisy do registrů GDG aj. ). Jak jsem koukal, 
>> některé kapitoly zůstaly pouze nadepsány a byl jsem líný do nich své 
>> poznatky přepsat než jsem na ně zapomněl. To hlavní v něm snad ale k 
>> nalezení je.
>> To co tě bude zajímat nejvíce bude v zazipovaném souboru - jedná se o 
>> průběh signálů starajících se o synchronizaci obrazu (je to prakticky 
>> grafický výpis portu 0xCE). V textovém dokumentu je to pak kapitola 2.1 
>> kde jsou rozepsány parametry obrazu (v pixelech, doba jejich trvání) ve 
>> vztahu k procesoru - přepočet kdy se budou vztahovat k hlavnímu krystalu 
>> 17,xxxx MHz se provede jednoduše vynásobením 5-ti.
>> Na závěr poprosím všechny, kteří údaje z těchto dokumentů použijí 
(ať už 
>> při tvorbě nového emulátoru, nebo při návrhu hardwaru apod.), aby se 
>> alespoň skromně zmínili, z jakého zdroje čerpali a kdo je jeho autorem 
>> (mimochodem, spolutvůrcem kapitoly o mapování paměti byl Roman
Dolejší).
>>
>> Zdeněk
>
>
> ---