OldComp.cz

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


Právě je 28.03.2024, 23:35

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 99 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5, 6, 7  Další
Autor Zpráva
 Předmět příspěvku: Re: GDG replika 2021
PříspěvekNapsal: 22.04.2021, 13:55 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Panda38 píše:
suksoft píše:
Zkus na instanci "Danhard" spustit funkci "Serialization"...
Jsem to přečetl "Sterilization", asi by nebyl rád :oops:

Taky jsem to tak četl, ale u mě to už nic neznamená :lol:

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replika 2021
PříspěvekNapsal: 22.04.2021, 17:48 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Selector prepina DA a MA (display address/memory address). U obou adres muze ale nemusi dochazet k scrollu.

Dobre je to popsane v Sharp_MZ-800_ROM_Poznamky_Odehnal-Veverka.pdf strana 61. Pro jistotu je to 2x podtrzeno. Neni problem aby GDG vybralo data z video ram a pouzilo scroll a vzapeti byl zapis do video co se prave nezobrazuje bez scrollu. A hned potom je opet cteni s video ram pro zobrazeni s scrollem.

Mne zajimalo jak si usetril tu odcitacku SEA-SOF, to byl muj dotaz. Obavam se ze to nejde usetrit. Uz proto, ze kdykoliv muze CPU zmenit SOF a tim padem posunout obraz. GDG si automaticky prepocte SEA-SOF a SOF-SW aby spravne zobrazoval.

Co se tyce toho radku a+/a./b./c+THRU tak v realnem GDG to vubec neni, protoze AND 0 da vysledek 0. Ale je zde signal zda se ma nebo nema delat scroll. O tom rozhoduje graficky rezim co je prave nastaveny a s jakou pameti se prave pracuje. Proto to muze byt vypnute, kdyz je rezim MZ800 320x200 a zapis do B video ram a tato neni vybrana pro zobrazovani.

SSA je cislo od 0 do 78h
SEA je cislo od 5 do 7dh

SSA a (SEA) je vlastne cislo a to posuneme o 6 bitu doleva tak dostameme bajt kde zacina (konci) oblast kde se provadi scroll. Takze je to posun o 64 bajtu. Kazdych 64 bajtu na obrazovce muze byt misto kde muzeme zacinat nebo koncit posuv. Ocekava se, ze ve vetsine programu jsou to zacatky celych znaku a tak 64*5=320 neni problem zpracovavat. Takze zde je cislo nasobkem peti.

SOF je cislo posuvu a protoze zde chceme treba jako v demu pro MZ800 posouvat i horizontalne je mozno posouvat o 8 znaku doleva/doprava a proto zmena o 1 udela realnou zmenu o 8 bajtu. 8*5=40 a to je bezna delka radku. Kdyz budu menit SOF o 5 tak budu posouvat o jednu mikroradku.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replika 2021
PříspěvekNapsal: 22.04.2021, 19:17 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
suksoft píše:
Mne zajimalo jak si usetril tu odcitacku SEA-SOF, to byl muj dotaz.

Ale to jsem tam psal, pro "přetečení" scrollu nehlídám vstupní adresu, ale scrollovanou.
Proto to nemusím hlídat ani 11-ti bitově, ale stačí 7-mi, resp. 8-mi, protože musím zahrnout i přetečení.

Pokud se tam leze náhodně, tak tam bohužel musí být ty komparátory >, ale i tak se něco ušetří, jedna 11 bit odečítačka a 8-mi bitovej komparátor místo 11-ti.

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replika 2021
PříspěvekNapsal: 22.04.2021, 20:42 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Takto funguje scroll u MZ800:

Kód:
a = SSA > DA      - true kdyz DA je pred casti co se ma scrollovat
b = SEA-SOF > DA  - scroll area se rozdeluje na dve casti - vyraz dava true, kdyz se ma k DA pricist SOF a false kdyz se ma k DA pricist SOF-SW (je potreba se vratit v pameti zpet)
c = SEA > DA      - true kdyz DA je pred koncem casti co se ma scrollovat

pri logicke funkci "/a.b"     pricti SOF    k DA/MA
pri logicke funkci "/a./b.c"  pricti SOF-SW k DA/MA
pri rezimu kdy je vypnut scroll - vystup je 0 (napr. MZ700, MZ800 pri zapisu/cteni video ram co se nezobrazuje)

priklad1:
SSA = 0 jedna znakova radka
SEA = 5
 SW = 5
SOF = 0

priklad2:
SSA = 0 dve znakove radky
SEA = 10
 SW = 10
SOF = 5   - SOF posunuti o jednu znakovou radku

Zde je videt ze prvni znakova radka se vykresli z dat pro druhou znakovou radku (posunuti SOF). Druha se vykresli z dat z prvni (posunuti SOF-SW).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replika 2021
PříspěvekNapsal: 22.04.2021, 23:29 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Proč píšeš jak to funguje, místo tohoho, abys snažil pochopit, že tam dělám to samé, jen jiným způsobem ?

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replika 2021
PříspěvekNapsal: 23.04.2021, 00:07 
Offline
Radil

Registrován: 08.10.2013, 18:00
Příspěvky: 296
Has thanked: 12 times
Been thanked: 228 times
danhard píše:
Jen mi není jasné, jestli se při přístupu CPU leze do paměti přes srollování, nebo transparentně ?
Přes tu scrollovací jednotku jdou i všechny zápisy a čtení z procesoru a ty jsou různé, takže každý přístup do video paměti (a programy opravdu nečekají s překreslováním až mimo obraz, takový časový luxus si nemůžou dovolit) to může (a často to udělá) v tvém "řešení" úplně podělat, takže to není funkční řešení. A evidentně to nedělá to samé ani náhodou, jak se tu snaží suksoft naznačit.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replika 2021
PříspěvekNapsal: 23.04.2021, 00:16 
Offline
Radil

Registrován: 08.10.2013, 18:00
Příspěvky: 296
Has thanked: 12 times
Been thanked: 228 times
danhard píše:
Rolovací adresu počítám nejdřív DA+SOF(11) a když přeteče SEA(7), tak oděčítám v další SW(7).
Ještě malou poznámku k tomuto. Nechci zabíhat do detailů, ale ty scroll registry jsou 4, jednak počáteční adresa SSA, koncová SSE, šířka SW a posun SOF. A šířka je na ofsetu absolutně nezávislá ! Stejně tak šířka na rozdílu SSE a SSA a taky na posuvu, já tam prostě ty čtyři proměnné v tom zjednodušení nenacházím, je tam nějaký předpoklad, který neplatí (s odhlédnutím od toho, že to stejně nemůže chodit viz výše).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replika 2021
PříspěvekNapsal: 23.04.2021, 07:08 
Offline
Pan Štábní

Registrován: 11.11.2013, 10:29
Příspěvky: 1198
Has thanked: 360 times
Been thanked: 304 times
Pri patku,
ja si ted hodne rypnu: skoda, tesil jsem se, kam az takhle debata na teoreticke urovni dospeje :-) Uz pred casem jsem ziskal pocit, ze je to teoretizovani, i kdyz na zacatku byla takova pekna snaha udelat neco konkretniho, viz tema tohoto vlakna ;-)
No, asi to diskutujici odradi, nebo se pres ty 'hozene vidle' prenesou a budou pokracovat?

Pls, vratme to k te realizaci repliky.

_________________
Sharp MZ-800++, MZ-1500++, MZ-2500++, SM-B-80T, MK-14_replica, HP-85, ZX-80+replica, ZX81, ZX-Spectrum+replica++, PMI-80+replica, SAM coupe++, PMD-85-2A+3, Didaktik-M, SORD-M5, TI-57, TI-59+PC-100, TI99/4A, ZetaV2+ppp, ZX-uno, Petr


Naposledy upravil Mikes21 dne 23.04.2021, 08:23, celkově upraveno 1

Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replika 2021
PříspěvekNapsal: 23.04.2021, 07:59 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Ja jsem spokojen s debatou. Panda treba napsal ze by se GDG melo udelat jako kostka, s tim souhlasim. Dandard navrhl radu obvodu, nektere jsou za rozumny peniz. Ted resi zjednoduseni Scroll do CPLD. Mne ta debata pripada v pohode. Mam radost ze jsem si vyclenil cas a popsal jsem Scroll jednotku. Ja ted delam dve veci, za prve, priprava dat na preklesleni GDG do Eaglu (Kicadu), to si preje hodne lidi (asi tak tri), vysledek by mely byt schemata jake jsou v knize "ZX Spectrum ULA". Soucasne stejny program muze generovat vystupy pro CPLD. Dale muze automaticky vypocitat zpozdeni pres hradla. Osobne mne ted nejvice zajima pouziti CPLD pro nahradu GDG. Predevsim ta cast co mapuje pameti a stara se o aktivaci periferii, ne zobrazovani dat.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replika 2021
PříspěvekNapsal: 23.04.2021, 08:16 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
nobomi píše:
danhard píše:
Rolovací adresu počítám nejdřív DA+SOF(11) a když přeteče SEA(7), tak oděčítám v další SW(7).
Ještě malou poznámku k tomuto. Nechci zabíhat do detailů, ale ty scroll registry jsou 4, jednak počáteční adresa SSA, koncová SEA, šířka SW a posun SOF. A šířka je na ofsetu absolutně nezávislá ! Stejně tak šířka na rozdílu SSE a SSA a taky na posuvu, já tam prostě ty čtyři proměnné v tom zjednodušení nenacházím, je tam nějaký předpoklad, který neplatí (s odhlédnutím od toho, že to stejně nemůže chodit viz výše).

A jak jsi přišel na to, že to nemůže fungovat, když tam logicky dělám to samé ???
Protože je to náhodné, tak jsou tam komparátory > odvozené od carry odečítačky, takže zabírají 7 makrocel pro 7 bitů.
Celé se to vejde asi do 95 makrocel a to jsem ještě nezkoušel jak to naláme překladač, ale měl by se tam ještě vejít tne vstupní mux DA/MA.
SW je definován jako SEA-SSA, jinak by to dělalo psí kusy !
I když to udělám jako původní obrázek, tak by se to mělo nacpat do 128 makrocel.

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replika 2021
PříspěvekNapsal: 23.04.2021, 08:35 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
danhard píše:
nobomi píše:
danhard píše:
Rolovací adresu počítám nejdřív DA+SOF(11) a když přeteče SEA(7), tak oděčítám v další SW(7).
Ještě malou poznámku k tomuto. Nechci zabíhat do detailů, ale ty scroll registry jsou 4, jednak počáteční adresa SSA, koncová SEA, šířka SW a posun SOF. A šířka je na ofsetu absolutně nezávislá ! Stejně tak šířka na rozdílu SSE a SSA a taky na posuvu, já tam prostě ty čtyři proměnné v tom zjednodušení nenacházím, je tam nějaký předpoklad, který neplatí (s odhlédnutím od toho, že to stejně nemůže chodit viz výše).

A jak jsi přišel na to, že to nemůže fungovat, když tam logicky dělám to samé ???
Protože je to náhodné, tak jsou tam komparátory > odvozené od carry odečítačky, takže zabírají 7 makrocel pro 7 bitů.
Celé se to vejde asi do 95 makrocel a to jsem ještě nezkoušel jak to naláme překladač, ale měl by se tam ještě vejít tne vstupní mux DA/MA.
SW je definován jako SEA-SSA, jinak by to dělalo psí kusy !
I když to udělám jako původní obrázek, tak by se to mělo nacpat do 128 makrocel.



Jeden z moznych problemu bude zpozdeni retezce cinnosti "DA+SOF(11) a když přeteče SEA(7), tak oděčítám v další SW(7)." Jsou to tri veci, kazda ma relativne velke zpozdeni. V originalnim GDG je to reseno paralelnim vypoctem. Vsechny tri veci se delaji soucasne.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replika 2021
PříspěvekNapsal: 23.04.2021, 08:41 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Ano, tam je malý rozdíl ve zpoždění:
Původně 10 bit rozhodnutí, mux, 10 bit add, celkem průchod 21 makrocel.
Jak jsem to navrhl, 10 bit add, 7 bit rozhodnutí, 7 bit sub, celkem průchod 24 makrocel.
Ale ještě jsem to časově neoptimalizoval, jaký je tam časový požadavek na výsledek ?

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replika 2021
PříspěvekNapsal: 23.04.2021, 11:13 
Offline
Radil

Registrován: 08.10.2013, 18:00
Příspěvky: 296
Has thanked: 12 times
Been thanked: 228 times
danhard píše:
SW je definován jako SEA-SSA, jinak by to dělalo psí kusy !
Naopak, jasně definovanou věc to dělá. Prostě se vrátí o SW v adrese. Možná to nedává až takový smysl pro vykreslování obrazovky (proč kopírovat, co už je na jiných řádcích), ale pro přístup procesoru do paměti, to sakra dává smysl.

Příklad: mám super optimalizovanou funkci pro zápis grafiky od konstantní adresy na začátku VRAM, třeba dlaždice do hry na prvních 8 mikro řádcích. A teď to chci použít i na jiné řádky na obrazovce. No tak si nastavím scroll SSA=0, SEA=5, SOF=SEA*8 a pomocí SW si šíbuju místem, kam budu zapisovat do VRAM na který řádek, aniž bych musel měnit tu super optimalizovanou funkci na pevných adresách. Super, né ? Stejně tak by to šlo měnit SOF, tam mám možnost kroku dokonce po 64 pixelech, za cenu zápisu na dva porty.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replika 2021
PříspěvekNapsal: 23.04.2021, 13:17 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
To je pěkné, jaké si vymýšlíš krkolomné konstrukce, jak by se to dalo využít, aby jsi ukojil své svaté přesvědčení :D

Ale asi Tě zklamu, moje zjednodušené řešení se chová ve výstupnich adresách identicky.

ps. pro SSA=0, SEA=5, SOF=SEA*8 dává výraz SOF-SW záporný výsledek a podtečeš tak adresu přes nezobrazovanou oblast 384 byte. Tam si můžeš schovat nějakého vira, který pak vyskočí na obrazovku :lol:

Brikule se scrollem se dají dělat, jen když scroll nepoužíváš při zobrazení.

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG replika 2021
PříspěvekNapsal: 23.04.2021, 14:26 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Dandarde zkusil jsem prepsat to co pises do pro mne srozumitelne formy. Napis zda to myslis takto:

Adder1
vstup1: DA/MA
vstup2: SOF

Subtractor1
vstup1: vystup z adder1 (3 bity z adder1 se neucastni vypoctu)
vstup2: SW

komparator
a = SSA > DA - true kdyz DA je pred casti co se ma scrollovat
b = SEA > vystup adder1
c = SEA > DA - true kdyz DA je pred koncem casti co se ma scrollovat

Na vystup celeho obvodu multipex 3 vstupy - vyber bude delat logicke hodnoty z komparatoru a rezimu zobrazeni
1) pruchod signalu DA/MA (zadna zmena)
2) vystup z adder1
3) vystup z subtractor1

============

Jinak kdyz se koukam na originalni zapojeni, tak si myslim ze ten subtractor vpravo je zbytecne 10 bitovy. Stacilo by ho udelat 7 bitovy a 3 nejnizsi bity z SOF proste jen obchvatem pripojit na nasledujici obvody.


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ů: 99 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5, 6, 7  Další

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


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 5 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