OldComp.cz
https://oldcomp.cz/

Klony vs. originály
https://oldcomp.cz/viewtopic.php?f=41&t=1488
Stránka 23

Autor:  SCjoe [ 06.06.2014, 20:40 ]
Předmět příspěvku:  Re: ZX Spectrum 128k / +2 / +2a / +3 - Stránkovanie pamäte

Mit jakousi UniExec rutinu, pres kterou by program startoval a nastavil spravne strankovani a dalsi veci treba i na SAMovi ci Timexu...

----------
Tahle veta je neplatna: "standart platformy predstavuje originalne ZX Spectrum 48k a 128k (+2,+2A,+3)".
Jestli +2A i +3, pak nejen podle mnozstvi softu plati, ze standardem je napr. i Pentagon. K ZXS48K a 128K ma podobny vztah jako +3.

Autor:  mikezt [ 07.06.2014, 19:43 ]
Předmět příspěvku:  Re: ZX Spectrum 128k / +2 / +2a / +3 - Stránkovanie pamäte

zz_indigo píše:
No zo standardom v pripade 128k verzii je dost tazko hovorit.Kedze nie su same medzi sebou plne kompatibilne. V tomto ponimani by sa ako standard mala brat len 16k/48k verzia. LEbo jak mozes chciet aby klony boly kompatibilne bug to bug ked ani "originalny" niesu.

Nerozumiem. Port 32765 je na všetkých 128čkách rovnaký a podobne stránkuje aj Pentagon. O akú nekompatibilitu ide? Problém môže nastať s rýchlymi/pomalými stránkami, ktoré sú u +3 iné, ako u +2, ale s tým treba počítať dopredu a ja to ako neprekonateľný problém nevidím. Najvhodnejšie je asi používať rozšírenú pamäť ako ramdisk, kde je rýchlosť stránky nepodstatná.

Autor:  zz_indigo [ 07.06.2014, 20:34 ]
Předmět příspěvku:  Re: ZX Spectrum 128k / +2 / +2a / +3 - Stránkovanie pamäte

mikezt píše:
zz_indigo píše:
No zo standardom v pripade 128k verzii je dost tazko hovorit.Kedze nie su same medzi sebou plne kompatibilne. V tomto ponimani by sa ako standard mala brat len 16k/48k verzia. LEbo jak mozes chciet aby klony boly kompatibilne bug to bug ked ani "originalny" niesu.

Nerozumiem. Port 32765 je na všetkých 128čkách rovnaký a podobne stránkuje aj Pentagon. O akú nekompatibilitu ide? Problém môže nastať s rýchlymi/pomalými stránkami, ktoré sú u +3 iné, ako u +2, ale s tým treba počítať dopredu a ja to ako neprekonateľný problém nevidím. Najvhodnejšie je asi používať rozšírenú pamäť ako ramdisk, kde je rýchlosť stránky nepodstatná.


nemyslis ze si si sam odpovedal? a tiez matne si pametam ze tam boly aj nejake ine rozdiely.

Autor:  mborik128 [ 07.06.2014, 22:03 ]
Předmět příspěvku:  Re: ZX Spectrum 128k / +2 / +2a / +3 - Stránkovanie pamäte

nemyslim, ze si mikezt sam odpovedal, skor to dokazuje, ze zas a znova zz_indigo toci o veciach, o ktorych toho moc nevie... inak by si spomenul na spominane rozdiely. Fakt netusim, co by mohol byt rozdiel, ako v 1. a 15. bite na nule, napriec vsetkymi 128k modelmi ;)

Autor:  zz_indigo [ 08.06.2014, 08:10 ]
Předmět příspěvku:  Re: ZX Spectrum 128k / +2 / +2a / +3 - Stránkovanie pamäte

mborik128 píše:
nemyslim, ze si mikezt sam odpovedal, skor to dokazuje, ze zas a znova zz_indigo toci o veciach, o ktorych toho moc nevie... inak by si spomenul na spominane rozdiely. Fakt netusim, co by mohol byt rozdiel, ako v 1. a 15. bite na nule, napriec vsetkymi 128k modelmi ;)


Presne tak.

Jedna napoveda:
Citace:
Problém môže nastať s rýchlymi/pomalými stránkami, ktoré sú u +3 iné, ako u +2, ale s tým treba počítať dopredu a ja to ako neprekonateľný problém nevidím.


Je to nekompatibilita. To ze je dobre znama z nej nerobi standard. rovnako su zname rozdieli jednotlivhy ULA v klonoch ......
Kompatibilne riesenia su kompatibilne nielen typom spravania ale aj casom zmeny. A tymto netrpia len klony ale aj +3 a +2A.
Pokial problem z tym malo aj par komercnich hier.

Pri casovo nekritickych ulohach sa nemusi prejavit ale pokial niekdo chce vytazit maximum (Ako som pochopil zadavatel chce) Tak to problerm je.

Autor:  zz_indigo [ 08.06.2014, 09:09 ]
Předmět příspěvku:  Re: ZX Spectrum 128k / +2 / +2a / +3 - Stránkovanie pamäte

Kompatibilita ma niekolkio urovni v pripade ZX spectra a klonou mozeme brat priblizne tieto:

- Jazyka (BASIC) Ak si nepocitame specialen ROMKy pre diskove prace tak tu z kompatibilitou problem nieje
- Strojoveho kodu (Pokial viem klony Z80 vedia aj nedokumentovane instrukcie tak tiez tu problem nieje)
- systemovych rutin (Tu si tiez nebude v standardnych ROM-kach problem)
- zariadeni - Videoram, strankovanie,..... (V tomto su vsetky ZX spektra spatne kompatibilne)
- Casovania. (Najvecsi problem Klonou a rozdiel medzi 128K/+2 a +2a/+3)

A podla povodnej otazky mam dojem ze toto bolo cielom pitajucveho sa.

Autor:  Busy [ 08.06.2014, 10:27 ]
Předmět příspěvku:  Re: ZX Spectrum 128k / +2 / +2a / +3 - Stránkovanie pamäte

zz_indigo píše:
Citace:
Problém môže nastať s rýchlymi/pomalými stránkami, ktoré sú u +3 iné, ako u +2
Je to nekompatibilita. To ze je dobre znama z nej nerobi standard. rovnako su zname rozdieli jednotlivhy ULA v klonoch ......
Kompatibilne riesenia su kompatibilne nielen typom spravania ale aj casom zmeny. A tymto netrpia len klony ale aj +3 a +2A.
Nemas pravdu. To by si potom kludne mohol oznacit aj orignalne ZX Spektrum 128k za nekompatibilne, pretoze tiez ma voci 48k ine casovanie. Jednoducho prijmi fakt, ze co sa tyka casovania, na platforme ZX Spektrum mame tri standarty: (a) 48k (b) 128k,+2 (c) +2A,+3.
zz_indigo píše:
Pri casovo nekritickych ulohach sa nemusi prejavit ale pokial niekdo chce vytazit maximum (Ako som pochopil zadavatel chce) Tak to problerm je.
Zase trepes blbosti. Nie je najmensi problem v programe zistit, na ktorom z tych troch standartov program bezi a nasledne podla toho v pripade potreby upravit casovanie (sam si to pred dvomi dnami pisal). Takto funguje napriklad moje multicolorove demo Overscan. A v pripade ze na detekcnu rutinku nie je miesto (napr. v pripade 1k intra), tak tam to riesim tak, ze skompilujem viac verzii intra, a detekciu pridam do loadera, ktory po spusteni zisti kde sa nachadza a podla toho loadne a spusti prislusnu verziu intra. Takymto sposobom som uz napriklad urobil intra Unlimited sprites a Multicolor shadevision.

Autor:  zz_indigo [ 08.06.2014, 19:24 ]
Předmět příspěvku:  Re: ZX Spectrum 128k / +2 / +2a / +3 - Stránkovanie pamäte

Busy píše:
....


Jedine co si povedal okrem invektiv bolo to ze existuju 3 casovo rozdielne verzie spektier. (rovnako ako to tvrdim ja)
A treba na to mysliet. (Z cim tiez suhlasim)

Autor:  danhard [ 19.07.2014, 09:05 ]
Předmět příspěvku:  Re: Klony vs. originály

Pokud je to přesné časování tak důležité, mohlo by se to udělat tak, že "pomalé" stránky by se emulovaly zpomalením procesoru ?
Případně i "rychlé" zpomalením 20MHz CPU :)

Autor:  VELESOFT [ 19.07.2014, 10:27 ]
Předmět příspěvku:  Re: Klony vs. originály

Zajimalo by me, kolik SW zneuziva neuplnou adresaci portu (jakychkoli portu na ZX). Docela dost casu jsem travil opravou starych her, ktere zneuzivaji neuplne adresace kempston joysticku a misto portu #1F ctou joy z portu #DF ci z jineho. V emulatorech a ruznych klonech se pouzivala uz rozdilna adresace joy portu, takze jsem se rozhodl vsechny tyto "nekorektni" hry opravit. A zadarilo se. Diky tomu mame desitky(mozna stovky) opravenych her, ktere si muzeme spustit na zx s libovolnou verzi kempston interface ci v jakemkoli emulatoru. V pripade pridavneho HW je vzdy lepsi pouzivat adresaci uplnou (casto ale jen 8bitovou). S podobnym problemem jsem se parkrat setkal u her co ctou klavesnici z jineho portu, ale tam se to pralo se 7FFD ci joystickem, to uz slo o SW prasarnu vyzadujici opravu. Mam doma rusky klon SPRINTER2000 a ten ma uplne adresovany port 7FFD a vlastne i vsechny ostatni (AY,1FFD,atd..). Nekdy se stavalo, ze software nebezel, ale az tak casty problem s dekodovanim portu 7FFD to nebyl. Drive se toto tema rozebiralo na Pandore a zminoval se tam konkretne treba problem s kombinaci LD A,xx + OUT (253),A, kdy horni adresa je shodna se zapisovanym bajtem. V registru A se musel navic nastavit bit D6 na log.1, aby to odpovidalo dekodovani portu i na +2A/+3, ale zase nastal problem u ruskych Pentagonu 512kB, ktere strankuji na nevyuzitych bitech portu 7FFD (D6 a D7). I takovy software jsem opravoval, ale nebylo toho prilis. Mam takovy dojem, ze se tento zpusob strankovani pouzival hlavne v CR a asi se bude pouzivat i v demech dodnes. Jestli takovy software neni nijak extra narocny na casovani a je zde moznost opravy na OUT (C),x tak to klidne opravim. Dnes se v demech pouzivaji ruzne finty se 7FFD, jako napriklad tam kde se hodne casto za sebou strankuje, tak u modelu ZX128/+2 lze eliminovat brzdeni ulou jednoduse vynulovanim adresy A14, takze misto OUT 7FFD,xx se pouzije OUT 3FFD,xx. Ale pro model +2A/+3 musi byt adresa A14 zase nastavena, jinak by SW nefungoval. U casove narocnych rutin se sahne obcas i po takoveto "prasarnicce". Jinde ale nevidim nejmensi duvod nepouzivat cistou adresu 7FFD.

Autor:  Busy [ 19.07.2014, 10:47 ]
Předmět příspěvku:  Re: Klony vs. originály

VELESOFT píše:
Dnes se v demech pouzivaji ruzne finty se 7FFD, jako napriklad tam kde se hodne casto za sebou strankuje, tak u modelu ZX128/+2 lze eliminovat brzdeni ulou jednoduse vynulovanim adresy A14, takze misto OUT 7FFD,xx se pouzije OUT 3FFD,xx. Ale pro model +2A/+3 musi byt adresa A14 zase nastavena, jinak by SW nefungoval. U casove narocnych rutin se sahne obcas i po takoveto "prasarnicce". Jinde ale nevidim nejmensi duvod nepouzivat cistou adresu 7FFD.
Jedna z fint je tiez vyuzitie "celoobrazovkoveho" borderu na porte #7FFC, vid prvy prispevok v tejto diskusii. Tam sa to tiez neda len tak nahradit poctivymi a korektnymi #7FFD + #FE, pretoze by si prisiel o rozlisenie v X. Tak isto ani klasicka cesta (nastavim atributy a casujem iba border) nie je idealna, pretoze niektore Z80 maju o 4T posunutu odozvu na prerusenie, takze na niektorych Spektrach by obraz sice sedel, ale na inych by bol zase posunuty border voci paperu.

Autor:  zz_indigo [ 19.07.2014, 12:03 ]
Předmět příspěvku:  Re: Klony vs. originály

danhard píše:
Pokud je to přesné časování tak důležité, mohlo by se to udělat tak, že "pomalé" stránky by se emulovaly zpomalením procesoru ?
Případně i "rychlé" zpomalením 20MHz CPU :)


ak som to spravne pochopil problem je v tom ze casovo kriticke casti kodu treba mat v rychlej RAM. Takze pokial by cela RAM bola rychla tak by asi problem nebol.

Autor:  danhard [ 19.07.2014, 18:15 ]
Předmět příspěvku:  Re: Klony vs. originály

Pomalá RAM je v podstatě dualport ramka, kde se sdílí pevné časové sloty pro zobrazování s přístupem od CPU. Video musí mít přednost, aby to nerušilo zobrazení.
Původní ZX16,48 používala 4116 a aby se to stíhalo, tak jeden cyklus byl dlouhý 8 CPU taktů, při kterém se hráblo 2x na znak (2x data, 2x atribut) a jednou se dala RAM k dispozici CPU.
Každé sáhnutí do videopaměti trvá tedy 3-8 taktů, pokud se pracuje jen nad videopamětí, tak vždy 8 taktů.
Pokud by to videopamět nijak nezdržovala, tak se to také trochu změní, protože do ní musíš vždy aspoň zapisovat.
Teď jsou paměti podstatně rychlejší a dá se to udělat tak, že o videopaměti CPU víceméně neví.
Zjednodušení na jen jednu RAM paměť bylo třeba v bobo64, tam byla celá paměť "pomalá", ale cyklus zobrazení trval 4 takty CPU, kdy se hráblo pro jeden znak a atribut a udělal se jeden přístup od CPU.
Ve videopaměti to bylo 2x rychlejší, mimo v RAM trochu pomalejší, protože se všechno normalizovalo na 4 CPU takty (fetch fáze už 4 takty trvá, ostatní přístupy byly 3 takty).
Všechno to bylo na jedné sadě stejných dynamických pamětí 4164-15, nic jiného tehdy nebylo.
Museli jsme akorát poladit nahrávání na magnetofon, protože tam se poměry trochu změnily.

Autor:  Busy [ 20.07.2014, 01:14 ]
Předmět příspěvku:  Re: Klony vs. originály

danhard píše:
Pomalá RAM je v podstatě dualport ramka, kde se sdílí pevné časové sloty pro zobrazování s přístupem od CPU. Video musí mít přednost, aby to nerušilo zobrazení.
Původní ZX16,48 používala 4116 a aby se to stíhalo, tak jeden cyklus byl dlouhý 8 CPU taktů, při kterém se hráblo 2x na znak (2x data, 2x atribut) a jednou se dala RAM k dispozici CPU.
Kedze 4116 ma multiplexovanu adresovu zbernicu, adresu treba posielat nadvakrat. ZX spektrum ma citanie videopameti zoptimalizovane tak, ze nizsi bajt adresy pre pixely a adresy pre ich zodpovedajuci atribut su rovnake, preto ho pre tieto dve citania staci poslat iba raz. Tym padom samotne precitanie dvoch bajtov (pixely + atribut) netrva v skutocnosti 8 taktov, ale iba 6.

Autor:  danhard [ 20.07.2014, 07:53 ]
Předmět příspěvku:  Re: Klony vs. originály

Busy píše:
Tym padom samotne precitanie dvoch bajtov (pixely + atribut) netrva v skutocnosti 8 taktov, ale iba 6.
A ty zbývající 2 takty jsou na jeden přístup do videoRAM od CPU.

ps. a nečtou se 2byte, ale 4byte pro dva znaky, cyklus zobrazení je 8 taktů CPU hodin, to je 16 pixlů zobrazení, 2 znaky.

Stránka 23 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/