OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 28.03.2024, 15:22

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 116 ]  Přejít na stránku Předchozí  1 ... 4, 5, 6, 7, 8
Autor Zpráva
 Předmět příspěvku: Re: Bakalarska praca
PříspěvekNapsal: 17.10.2021, 12:03 
Offline
Kecka

Registrován: 03.07.2021, 20:10
Příspěvky: 31
Has thanked: 0 time
Been thanked: 0 time
dex píše:
To je celé nějaké zmatené, nejspíš špatně pochopené.
ce4aser píše:
A podla poctu synchronizacnych pulzov sa ucuje ci bude nasledovat datovy blok hlavicky alebo datovy blok dat

Sync signal je zlozeny zo serie sync pulzov 2168:2168 a ukoncovacieho jednorazoveho signalu 667:735. Ak je pocet sync pulzov 3223 dalej bude nasledovat datovy blok samotnych dat (aky typ dat urci predosla hlavicka ci sa jedna o program,screen, polia (array) v datovom type numeric alebo char (string)) a ak ich je 8063 bude nasledovat datovy blok hlavicky. V com som to zle pochopil ?

dex píše:
To ale neurčuje synchronizační pulz, ale flagbyte (0 hlavička, 255 data) - 17bajtová hlavička má ve skutečnosti 19 bajtů: flagbyte, vlastních 17 bajtů hlavičky a kontrolní "součet".
Citace:
Cize sa rutina ROM prisposobi ku rychlosti zaznamu.

O flagbyte a kontrolnom sucte som nevedel to som sa nikde nedocital. Po flagbyte rutina ROM skontroluje ci dostal pozadovany typ datoveho bloku? Pretoze z literatury co som cital tak typ datoveho bloku urcije sync signal. (Zdroj: Pilot tone: before each block is a sequence of 8063 (header) or 3223 (data) pulses, each of length 2168 T-states.). Preco potom je sync signal rozny pre hlavicku a datoveho bloku ak neurcuje co ma dostat ?

dex píše:
To je právě nepochopení rozdílu mezi změřením rychlosti střídání signálu a načtením flagbyte.
Citace:
T-Cyklus (1 takt hodinoveho signalu), M-Cyklus = 4 T-Cykly.

dex píše:
To podle mne není pravda, myslím, že M cyklus může mít 3, 4, 5 nebo 6 T cyklů.
Citace:
Ako dokaze presne napocitat tie cykly?

To musel programátor. Vědět, jak dlouhé instrukce použil, a podle toho spočíst, jakou hodnotu má dát do čítače při naměření jakých délek.
Např. DJNZ má v nenulovém případě 13, nulovém 8 taktů, takže se pomocí DJNZ samo na sebe provede B*13+8 T.
Stejně tak nelze měřit trvání na jednotlivé T cykly, ale jen na délky použité měřící smyčky + režie kolem.
Citace:
V zdrojaku ROM genrovanie ukoncovacieho sync pulzu (SAVE) prebieha instrukciu SA-SYNC-1 DJNZ #04EA,SA-SYNC-1.

To je přesně ten případ, zdržení B*13+8 T cyklů.


V M-Cykle mas pravdu napriklad LD r,(HL) trva 2 M-Cykly. Prvy M-Cyklus trva 4T-Cykly a druhy M-Cyklus trva 3T-Cykly. Ale v literature je uvadzano ze jeden cyklus do MGF je prepocitavani na hodinovy signal Z80 (UA880D...). Keby si si zvolil trvanie T-Cyklu podla seba napriklad z 1kHz tak dostanes Tape lader error. Cize 2168:2168 a to je pocet trvania 2168 T-Cyklov CPU. Ked si to scitas vyjde ti prva harmonicka okolo 800Hz a to sedi s tym co pocujes, potom k tomu pocujes aj dalsie harmonicke coz je jasne ked 800Hz nema tvar sinusu ale ineho. Napriklad spektralny rozklad oblznikoveho priebehu je umerny funkcii sinusu kardinalis.

suksoft píše:
Ce4aser vhodne zdroje informaci jsou:
https://sinclair.wiki.zxnet.co.uk/wiki/ ... _interface
https://hsto.org/web/8ad/dd4/66c/8addd4 ... 525b8e.PNG

Co se tyce toho pilotniho a synchronizacniho impulsu, tak pilotni impuls je super dulezity. Jeho ukol je zajistit po nejaky cas vhodny signal pro automatiku zesileni signalu pro kazetovy prehravac, proto tak "dlouho trva". Hlavne starsi magnetofony potrebuji delsi cas aby se jejich elektronika spravne nastavila. Pak prichazi "impuls" ktery je o hodne kratsi a tomu se rika synchronizacni. Tak se presne definovano misto kde zacinaji data. Data nasleduji.



Dik za linky. S MGF prisposobenym je zaujimave. Ocividne ten signal plni viacero funkcii.

Takze co sa tyka dlzky kladnych a zapornych period MGF zaznamu to bude ako dex pisal velmi peclive napisana rutina a ako mu vysli iste pravidelne intervaly kedy sa rutina kukne alebo moze zapisat aktualny stav portu 254 musel zosuladit s ostanymi rutinami ako save, verify, merge ... a pak mu vyslo ako dlho to ma trvat.

Inac to ma cil napada ono by teoreticky bolo mozne ze si nacitas program, ktory bude bezat na hornej oblasti RAM 32kB v ktorom by si mal vlastnu rutinu nacitavania. A potom by si do ULA pustal audio pod inou ako ZX syntaxou a mohla by sa ti aj rychlejsie nacitat hra napriklad z dovodu ze mas kvlatinejsi prehravac , ktory nie je napriklad zalozeny na MGF ....


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Bakalarska praca
PříspěvekNapsal: 17.10.2021, 12:17 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.05.2013, 14:56
Příspěvky: 2331
Has thanked: 303 times
Been thanked: 637 times
ce4aser píše:
Inac to ma cil napada ono by teoreticky bolo mozne ze si nacitas program, ktory bude bezat na hornej oblasti RAM 32kB v ktorom by si mal vlastnu rutinu nacitavania. A potom by si do ULA pustal audio pod inou ako ZX syntaxou a mohla by sa ti aj rychlejsie nacitat hra napriklad z dovodu ze mas kvlatinejsi prehravac , ktory nie je napriklad zalozeny na MGF ....
Tomu se říkalo turbo a používalo se to i na magnetofonových páskách. Kromě zrychlení to částečně plnilo i roli ochrany proti kopírování.

Viz https://sinclair.wiki.zxnet.co.uk/wiki/ ... 22cores%22

A viz (kompletní?) sbírka TZX s různými loadery https://tzxvault.org/ (konkrétně viz "loading scheme lists")

_________________
https://cygnus.speccy.cz ZX Spectrum 128k, Betadisk, DivIDE, ESXDOS


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Bakalarska praca
PříspěvekNapsal: 17.10.2021, 12:58 
Offline
Pan Štábní

Registrován: 12.05.2013, 22:24
Příspěvky: 1508
Bydliště: u Prahy
Has thanked: 44 times
Been thanked: 380 times
Citace:
O flagbyte a kontrolnom sucte som nevedel to som sa nikde nedocital. Po flagbyte rutina ROM skontroluje ci dostal pozadovany typ datoveho bloku?

Ano, typ očekávaného flagbyte je parametr, se kterým se vstupuje do rutiny.
Blok s jiným než očekávaným flagbyte se nenačte.
Test je hned za LD-LOOP (skok na LD-FLAG).
Citace:
Pretoze z literatury co som cital tak typ datoveho bloku urcije sync signal.

Ne, to je právě to nepochopení.
Citace:
Pilot tone: before each block is a sequence of 8063 (header) or 3223 (data) pulses, each of length 2168 T-states.). Preco potom je sync signal rozny pre hlavicku a datoveho bloku ak neurcuje co ma dostat ?

To je jen délka pilotního tónu, před hlavičkou je delší, aby bylo jednodušší ho chytit (nebo najít při přetáčení).
Počet pulzů se při čtení nijak nepočítá a netestuje, jen se čeká na syncho pulz a pilot během čekání nesmí vypadnout, to je celé.
načítání proto funguje i s mnohem menším počtem pulzů v nahrávce (a rutinu jde upravit tak, aby nechytala pilot sekundu, ale i mnohem kratší dobu).
Citace:
V M-Cykle mas pravdu napriklad LD r,(HL) trva 2 M-Cykly. Prvy M-Cyklus trva 4T-Cykly a druhy M-Cyklus trva 3T-Cykly. Ale v literature je uvadzano ze jeden cyklus do MGF je prepocitavani na hodinovy signal Z80 (UA880D...). Keby si si zvolil trvanie T-Cyklu podla seba napriklad z 1kHz tak dostanes Tape lader error.

To už by bylo mimo meze, ale ta tolerance je dost velká (větší než u mnoha jiných počítačů), viz ten výpis LOAD rutiny. Jinak by dělalo problém i kolísání rychlosti posunu magnetofonu nebo jiná rychlost než byla ta pořizovací (čtení na jiném magnetofonu, než se zapisovalo, nebo docházejíccí baterie u bateriového datakordéru).
Citace:
Cize 2168:2168 a to je pocet trvania 2168 T-Cyklov CPU.

Ano, při zápisu. Ale při čtení je tolerance od-do, nic se neměří (a technicky to ani nelze) s přesností na takt.
Citace:
Inac to ma cil napada ono by teoreticky bolo mozne ze si nacitas program, ktory bude bezat na hornej oblasti RAM 32kB v ktorom by si mal vlastnu rutinu nacitavania.

Nejen teoreticky - v praxi se používá.
Maximální rychlost je ovšem silně závislá na kvalitě audiosignálu.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Bakalarska praca
PříspěvekNapsal: 17.10.2021, 13:26 
Offline
Kecka

Registrován: 03.07.2021, 20:10
Příspěvky: 31
Has thanked: 0 time
Been thanked: 0 time
dex píše:
...


Takze program by sa nacital dobre aj keby ten sync signal dam povedzme len o 100 cycle. Dolezite je len aby ho rutina zaznamenala a nasledne ak ho zaznamena ukoncovaci sync signal a nasledne lubovolny datovy blok ? Samozrejme ze najprv datovy blok hlavicky kvoli potrebnym informaciam o datovom bloku samotnych dat.

Napriklad VGA ma toleranciu Pixel CLK +-0.5%. Tape Loader ma aku toleranciu ? Ci to zavisi aj na velkosti datoveho bloku? Tym chybovost sa moze nascitavat. Napriklad. V prvom bite prisiel signal o X ns rychlejsie. V druhom bite je to o 2*X ns, v Tretom byte o 3*X ns rychlejsie a v nejakom case Y by rutina ROM zaznamenal ten isty bit 2 krat a nesedel by kontrolny sucet.

Pri 48kB =
> 393216+flagbyte+checksum =>393232 bitov. Log0: 855:855 T-Cycle aby sa udrzal spravne tak 855/393216=0.002T-Cycle. Čiže +-0.216%
Pri 17B hlavicka => 17+2 => 152bitov => 855 / 152 = 11.25 T-Cycle a to je +-550%.
Pri 10kB ~ +-1%

Alebo je priamo v rutine interval ?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Bakalarska praca
PříspěvekNapsal: 17.10.2021, 15:07 
Offline
Pan Štábní

Registrován: 12.05.2013, 22:24
Příspěvky: 1508
Bydliště: u Prahy
Has thanked: 44 times
Been thanked: 380 times
Citace:
Takze program by sa nacital dobre aj keby ten sync signal dam povedzme len o 100 cycle.

Ano, pokud si nedbale upravím rutinu (třeba do ní přidám nějaký efekt) a nechám odchylku i stovky taktů, neděje se nic - je jedno, zda kolísá rychlost magnetofonu, nebo se změnila rychlost samotné rutiny (viz např. Didaktik M se zcela odlišným časováním přečte záznam ze ZX 48).
Citace:
Tape Loader ma aku toleranciu ? Ci to zavisi aj na velkosti datoveho bloku? Tym chybovost sa moze nascitavat. Napriklad. V prvom bite prisiel signal o X ns rychlejsie. V druhom bite je to o 2*X ns, v Tretom byte o 3*X ns rychlejsie a v nejakom case Y by rutina ROM zaznamenal ten isty bit 2 krat a nesedel by kontrolny sucet.

Nene, měří se vždy od zachycení změny, nic se nenasčítá, na velikosti bloku nesejde.
Citace:
Alebo je priamo v rutine interval ?

Vše je v rutině LD-EDGE-1 a LD-SAMPLE.
22x DEC A, JR NZ (22x4+21x12+7 T = zdržení 347T
jestli dobře koukám, v B je B2h (LD-DEC) nebo B0h (LD-8-BITS), inkrementuje se B, musí stihnout načíst změnu dřív, než doinkrementuje do 256.
Při návratu se porovnává s CBh, kratší je nula, delší jednička.
Smyčka LD-SAMPLE má 4+5+7+11+4+5+4+7+12/7 T (59/54 T), to je taky nejmenší přesnost, s jakou může samplovat vzorek.
Nula je tedy 347+54 až 27x59+347T (401 až 1940 T), do timeoutu je přes 4700 taktů, rezerva na jedničku je tedy přes 2760 T (cokoli, co přijde v těch 2760 taktech, bude jednička).
Počítám správně, že kolísání rychlosti může být o 8 ms?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Bakalarska praca
PříspěvekNapsal: 17.10.2021, 16:25 
Offline
Kecka

Registrován: 03.07.2021, 20:10
Příspěvky: 31
Has thanked: 0 time
Been thanked: 0 time
Diki za obzrejmenie. Takze je tam velka benevolencia. Inac k tym minimalnym dlzkam treba zapocitat aj cykly skladania bajtu, ulozenie do ram, inkrementacia adresy, ale cykly ktore mozneho stavu ked ULA pozastavi CLK mikroprocesoru. Ale aj tak je tam ta benevolencia. Oki tak to v tej praci prepisem v duchu ze hentie casovania su ako standard a je mozne kolisat rýchlastami z dovodu rozdielnosti, nedokonalosti mgf a pod.

Este otazka z praxe. Nemam orig. Didaktik Gama. Kolko krat je mozne zrychlit a kolko krat spomalit zaznam a este nahravanie programu prebehne uspesne?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Bakalarska praca
PříspěvekNapsal: 17.10.2021, 16:34 
Offline
Pan Štábní

Registrován: 12.05.2013, 22:24
Příspěvky: 1508
Bydliště: u Prahy
Has thanked: 44 times
Been thanked: 380 times
A snad kromě Didaktiku M (který má, nepletu-li se, paměť všude stejně rychlou) běží nahrávací rutina v nezpomalené paměti, takže by procesor neměl být ULA bržděn.

Zrychlení viewtopic.php?f=37&t=285#p2250
Zpomalení ani nevím, jestli někdo zkoušel.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Bakalarska praca
PříspěvekNapsal: 17.10.2021, 16:48 
Offline
Kecka

Registrován: 03.07.2021, 20:10
Příspěvky: 31
Has thanked: 0 time
Been thanked: 0 time
V pripade ze chce procesor pristupovat (citat, zapisovat) ku pamati TV RAM 16kB, ku ktorej ma pristup ULA kvoli generovaniu YUV obrazoveho signnalu, tak ula obvod pozastavi CLK mikroprocesoru. Ked si ULA vykona vykona nacitanie 2 bajty pixel a atributu potom obnovi generovanie CLK.

Dik za link ale v tomto linku riesia Tutbo Loadery, v ktorom sa rutina v ROM vyuziva len na nahranie programu Turbo Loadera. Potom uz sa nevyuziva rutina ROM a obsluhu nahravania riesi ten program.

Ja som myslel ako vela sa da zrychlit alebo spomalit nahravka pri nahravani rutinou v ROM a aby to prebehlo uspesne.

Este raz diki moc moc ai mi pomohol.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Bakalarska praca
PříspěvekNapsal: 17.10.2021, 18:57 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
ce4aser píše:
Ked si ULA vykona vykona nacitanie 2 bajty pixel a atributu potom obnovi generovanie CLK.


Spravne je 4 bajty. Jeden cykl nacitani dat z video ram obsahuje nacteni pixelu prvnich 8 bitu a nasledne bajtu s atributy pro techto prvnich 8 bitu. Pak nasleduje dalsi bajt s pixely a pak jejich atributy. Celkem je to 16 bitu pixelu a dva bajty atributu. Az potom se VZDY na dva takty povoli hodiny pro cpu. Sezen si knihu "The ZX Spectrum Ula: How to Design a Microcomputer". Existuje i v pdf formatu. Hezky obrazek je treba Figure 14-1.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Bakalarska praca
PříspěvekNapsal: 19.11.2021, 18:56 
Offline
Kecka

Registrován: 03.07.2021, 20:10
Příspěvky: 31
Has thanked: 0 time
Been thanked: 0 time
Este taka drobnost v Didaktiku Gama sa meni banka OUT127,1 aj OUT 95,1 ? Resp ked zapocitame mirror porty tak vsetky neparne porty od 65 do 127 a zapis nulteho bitu? Cize OUT A,B ;kde A je 65,67,69,...,125,127 a B pre Bank B 1,3,5,7,..,255 a B pre banka A je 0,2,4,6,...,252,254 ?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Bakalarska praca
PříspěvekNapsal: 19.11.2021, 20:24 
Offline
Kecálek

Registrován: 10.07.2014, 01:57
Příspěvky: 168
Has thanked: 25 times
Been thanked: 225 times
ce4aser píše:
Este taka drobnost v Didaktiku Gama sa meni banka OUT127,1 aj OUT 95,1 ? Resp ked zapocitame mirror porty tak vsetky neparne porty od 65 do 127 a zapis nulteho bitu? Cize OUT A,B ;kde A je 65,67,69,...,125,127 a B pre Bank B 1,3,5,7,..,255 a B pre banka A je 0,2,4,6,...,252,254 ?


ano a nie,

treba si uvedomit ze out na port 127 a out na port 95 su dve odlisne veci. (teraz nebudem riesit zrkadlenie portov)

pokial out na port 95 zapisuje iba na branu C 8255, efekt outu na port 127 zavisi od najvyssieho bitu zapisovanej hodnoty.

ked najvyssi bit hodnoty zapisanej na port 127 je 1 tak sa na branu C nic nezapisuje, ale meni sa konfiguracia 8255 (definicia, ktore brany su vstupne, ktore vystupne, mody jednotlivych bran).

ked najvyssi bit hodnoty zapisanej na port 127 je 0, tak sa jedna o bitove ovladanie portu C.

takze to, ze out 127,0 a out 127,1 prepinaju banky podobne ako out 95,0 a out 95,1 , je iba zhoda okolnosti a je to len vdaka tomu, ze je na strankovanie pouzity nulty bit brany C.

najlepsie bude, ked si prestudujes niektory datasheet ku 8255 (a potom ho nezabudni spomenut v bakalarke ako zdroj cerpania informacii ;])


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 116 ]  Přejít na stránku Předchozí  1 ... 4, 5, 6, 7, 8

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Kompaktfloppy a 6 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz