OldComp.cz

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

Zptky do minulosti!

Právě je 16.09.2021, 13:13

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 6 ] 
Autor Zpráva
 Předmět příspěvku: Konverze her pro SAPI
PříspěvekNapsal: 08.09.2021, 15:35 
Offline
Radil

Registrován: 28.07.2018, 14:37
Příspěvky: 531
Has thanked: 9 times
Been thanked: 202 times
Hned na úvod začnu jednou nemilou věcí. Přestože programy, původně určené pro PMD-85, poběží na deskách JPR-1x systému SAPI nebržděné, tedy o cca 15% rychleji, tak jejich skutečnou výslednou rychlost sráží zápisy a čtení do/z videoram.

U synchronního propojení PMD-85 a jeho videoprocesoru dochází občas k vložení nějakého toho WAIT stavu, který se projeví zmíněným poklesem výkonu na cca 85%. U SAPI to nemám změřeno, ale vizuální pokles rychlosti oproti PMD-85 je odhadem dalších 5%. Samozřejmě záleží na skladbě programu, jednodušší hry s menší četností zápisů do videoram mohou běžet naopak mírně rychleji. Na osciloskopu je vidět, že díky asynchronnímu přístupu CPU do videoram v systémech SAPI (a týká se to všech desek, tj. od AND-1 až po DGD-1 i BGP-1) se běžně vkládají 2-4 WAIT stavy. A to je důvod zmíněného zpoždění. A taky je to argument pro to, udělat desku BGP-1 bez možnosti zpětného čtení, tedy jen se zápisem do videoram. Pak by v systému musela být taková deska RAM, aby pokrývala oblast i "pod" vnitřní videoram desky BGP-1. Čtení z RAM mimo desku BGP-1 by tak o něco urychlilo hry. Ale bavíme se reálně o přínosu max. do 5%, spíše bych odhadoval méně. Eliminace zpětného čtení z BGP-1 by ovšem diskvalifikovalo ze sestav desku RAM-32 a možná i RAM-1 u složitějších her (tedy skoro u všech zajímavých).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Konverze her pro SAPI
PříspěvekNapsal: 08.09.2021, 16:40 
Offline
Radil

Registrován: 15.01.2014, 20:08
Příspěvky: 470
Has thanked: 67 times
Been thanked: 56 times
Tak to je teda dost špatná správa aneb jsem čekal, že to bude spíše naopak.

Synchronní zápis by se dal realizovat aneb FI2 tj. 2MHz je synchronní s CPU ale to by se musel vynásobit, dále jsou na sběrnici i signály STSTB a /M1 a to jak u 8080 tak Z80. Rekonstrukce časování ala PMD-85 by bylo realizovatelné, ale bude to sát asi dost obvodů … na MPH-1 je ještě místo a tam by mohl být ten rekonstrukční obvod propoj mezi BGP-1 a MPH-1 by byl pak nutností.

RAM-1 by nebila diskvalifikovaná, aneb by vždy bylo 32KB+16KB tj. u ZPS-2 by byla RAM VRAM na konci RAM a u ZPS-3 a ZPS-4 na začátku RAM aneb schodě jak to bylo navrženo u DGD-1.

AND-1(A) nebrzdí CPU ale daní za to jsou poruchy v obrazu, aneb CPU má přednost, AND-1Z, DGD-1 a nove i BGP-1 brzdí CPU.

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Konverze her pro SAPI
PříspěvekNapsal: 08.09.2021, 17:18 
Offline
Radil

Registrován: 28.07.2018, 14:37
Příspěvky: 531
Has thanked: 9 times
Been thanked: 202 times
Máš pravdu, AND-1 nebrzdí procesor. Tam se procesor neptá... Platí to ale samozřejmě pro AND-1Z, DGD-1 a BGP-1. Ostatní desky neznám, nezkoumal jsem.

Do modelu se synchronním během CPU a videoprocesoru bych nešel. To časování signálu READY je dost časově kritické, asi i proto u PMD-85 obešli obvod 8224 a READY řídí přímo. A to mají vše k dispozici na jedné desce. Ale možná je to jen z důvodu jednoduchosti, nevím. U multideskového systému s velkým rozptylem zpoždění různých signálů tažených přes sběrnici by se však do úzkého časového okna pro vystavení signály READY dost těžko trefovalo. Ostatně z toho stejného důvodu je u 8080-ky možno generovat signál READY (tedy vkládání WAIT stavů) pouze na základě adresy paměti nebo portu. Řídicí signály /MR, /MW, /IOR a /IOW přichází příliš pozdě, ty do tohoto procesu nezasahují. A proto ta poznámka ing. Smutného v popisu AND-1Z: "Není to úplné řešení, protože při /IOR (ale i při /IOW) již procesor čekací cykl zařadí, ale alespoň je jen jeden." Z toho mmj. nepřímo vyplývá, že i jemu se při /MR a /MW (tedy zápis "do" a čtení "z" videoram AND-1Z) vkládalo těch čekacích stavů více, minimálně však dva na jeden zápis či čtení z interní videoram na grafické kartě.

Ale zpět k volbě, zda integrovat na BGP-1 zpětné čtení. Obvodově to je zvládnuté, v tom problém není, a místo na desce rev. 3.1 ASI taky zbude. Stávající deska BGP-1 rev. 2.1 zpětné čtení má a je odzkoušeno. Deaktivace zpětného čtení se dá v tom případě jednoduše udělat tak, že se vyhodí z patice záchytný registr 74xx574, který pouští data z videoram na sběrnici. Bohužel v tom případě nepřestane BGP-1 vkládat čekací stavy při čtení, protože by se signál /MR musel "odněkud" odpojit a "někam" přepojit a s každou takovou doplňkovou (avšak zbytečnou) funkcí roste náročnost na obvodové řešení a tím i hustotu spojů na desce.

Pořád zastávám názor, že co na desce být nemusí (ve smyslu, že tyto funkce přebere jiná deska), tak to bych na desku nedával. Typicky stránkovaná RAM suplující RAMDISK, více přepínatelných grafických stránek, snad i to zpětné čtení lze nahradit "paralelní" RAMkou na desce RAM-1Z nebo jejích následnících. Spíše bych do zbytku volného místa na desce BGP-1 doplnil možnost čtení stavu "polohy" paprsku TV rozkladu, protože tuto funkci sice programově lze nahradit, ovšem ztráta strojového času je při buferingu videa obrovská. Leckdy více jak 50% výkonu CPU.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Konverze her pro SAPI
PříspěvekNapsal: 08.09.2021, 19:31 
Offline
Radil

Registrován: 15.01.2014, 20:08
Příspěvky: 470
Has thanked: 67 times
Been thanked: 56 times
Tak jak z toho teď ven … Překopat BGP-1 na SRAM 62010 (128KB) a jen čistě pro zápis. Na MPH-1 mít stínovou SRAM 62010 (128KB) pro čtení i zápis. Tím pádem by bylo 8 video stránek, v stránkovacím registru by 6 bitu padlo na řízení VRAM tj. 3bity, která stránka se bude zobrazovat a 3bity do které stránky bude mít CPU přistup. Zbylé dva bity budou generovat mapování pamětí tj. MAP1 a MAP2.

Otázky jak vyřešit zjišťování polohy paprsku … na MPH-1 je volný pro čtení jeden port …

To by bylo asi vhodnější řešit emailem …

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Konverze her pro SAPI
PříspěvekNapsal: 08.09.2021, 20:01 
Offline
Radil

Registrován: 28.07.2018, 14:37
Příspěvky: 531
Has thanked: 9 times
Been thanked: 202 times
Já bych to klidně řešil tady, ať k tomu více lidí přispěje svými návrhy.

Čtení polohy paprsku nelze řešit pomocí 8253 podobně jako na PMD-85. Minule mě tyto úvahy zavedly špatným směrem. My na SAPI totiž nemáme hodiny pro 8253 synchronní s rozkladem obrazu. Musely by se tahat z BGP-1 na MPH-1. Hodiny!! To ne, fuj! Momentálně nejjednodušší řešení bez potřeby adresace a čtení periferie je použití přerušení. Deska BGP-1 by uměla pomocí DIP přepínače aktivovat jedno nebo druhé systémové přerušení na sběrnici. A zbytek už je na programátorovi.

Pro zajímavost: deska BGP-1 by generovala přerušení v délce cca jednoho mikrořádku, tedy někde mezi 48 až 74usec. To je dost na to, aby se požadavek od BGP-1 neztratil během obsluhy předchozího přerušení od jiného zdroje (ten druhý zdroj přerušení by ale musel být "slušný" a udělat jen to nejnutnější za zmíněných 48-74usec). Zároveň je ta doba trvání požadavku na INT od BGP-1 dostatečně krátká, takže obsluha přerušení od BGP-1 by musela být minimálně těch 48-74usec dlouhá, aby se po závěrečné instrukci EI znovu neaktivovala obsluha téhož přerušení. Zní to složitě, ale je to extrémně jednoduché hardwarově a přijatelně složité softwarově. A kdo by to obsloužit neuměl, tak napíše hru bez synchronizace s kreslením obrazu, tak jak jsou napsány všechny hry pro PMD-85. Kdo to programátorsky zvládne, dostane navíc bonus v podobě konstantního "budíku" 20msec, který je celkem přijatelným základním časovým etalonem pro většinu herních smyček.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Konverze her pro SAPI
PříspěvekNapsal: 08.09.2021, 20:31 
Offline
Radil

Registrován: 15.01.2014, 20:08
Příspěvky: 470
Has thanked: 67 times
Been thanked: 56 times
S tím přerušením bude problém pokut bude BGP-1 adresovaná od 0H. dále na JPR-1 je k dispozici RST7 a RST6 od 3214, u JPR-1A je k dispozici jen RST7 nebo 8259 z JPN-1, u JPR-1Z je k dispozici RST7 a NMI a u JPR-ZI je k dispozici 8259 z JPN-1 a NMI. A pokut možno bych se přerušení vyhnul.

Ta 8253 s trochou sekvenční logiky půjde zasynchronnyzovat. Já vím že propoj mezi BGP-1 a MPH-1 se ti nelíbí, ale asi to bez něj nepůjde a pak to nebude první dvoj deska s propojme … stejnak tam ty desky budou obě. Na sběrnici je teoreticky k dispozici jen 4 rezervní signály.

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


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ů: 6 ] 

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 1 návštěvní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