OldComp.cz

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


Právě je 28.03.2024, 13:52

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 8 ] 
Autor Zpráva
PříspěvekNapsal: 27.02.2021, 01:05 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1611
Has thanked: 31 times
Been thanked: 357 times
Poslední dobou se šíří různé ZX klony či nové náhrady ZX uly s podporou grafických režimů kompatibilních s počítačem Timex. Konkrétně jde o port 255, který je sice na Timexu zpětně čitelný, ale u klonů či konkrétně u SLAM ULA+ je pouze pro zápis. To je z důvodu, že se čtení portu 255 využívá u her k synchronizaci s videoram, tedy zpětné čtení by kolidovalo a způsobilo více problémů než užitku.
Port 255 je vždy osmibitově dekódovaný (A0-A7) a neměl by se software spoléhat, že bude zpětně čitelný.

A teď k SAA1099. Jde o zvukový čip používaný převážně v počítačích SAM COUPE. Tento obvod používá porty 511 a 255. Jde o 8bitový port 255 (dekóduje A0-A7) akorát navíc adresa A8 vybírá funkci (výběr registru / zápis dat registru ).

Jak port výběru grafického režimu tak i SAA1099 používají stejný port 255 a pokud dojde k situaci, že náš počítač podporuje Timex grafiku a současně má funkční hudební čip SAA1099, bude se stávat následující:

- při přehrávání SAA hudeb se bude měnit i grafický režim
- při změně grafického režimu se může občas přepsat nějaký registr v SAA1099

Správně by se software měl psát tak, aby se po přerušení jako první spustilo hudební hradlo pro SAA1099 a hned po návratu z hradla nejlépe provést nastavení grafického režimu ZX:
LD BC,#01FF ;port je FF(255) a A8 v log.1 zároveň zajistí aby se SAA přepnul na neškodný výběr registru.
XOR A
OUT (C),A

Hudební hradlo SAA bývá většinou z E-TRACKERu, tedy stejné. Hradlo v první řadě vykonává kód generující tabulku bajtů, které následně postupně zapíše do SAA registrů. To na Timexu(nebo klonech a SLAM ULA+) způsobí nežádoucí efekty v borderu vlivem změny grafických režimů. Bohužel hradlo SAA tento borderový (d)efekt generuje až na konci funkce hradla, což je už v horním borderu vidět jako horizontální pruhy kousek nad pixelovou částí ZX screenu. Obejít by se to dalo celkem elegantně tak, že by se zápis registrů do SAA čipu prováděl ihned po přerušení, tedy v době, kdy se kreslí začátek horního borderu, který na TV není ještě viditelný. Hned pak by se provedl onen OUT #01FF,#00, který nastaví ZX grafiku. Teprve pak by se spustilo hradlo už bez zápisu registrů. Vlastně by hradlo generovalo tabulku, která by se do SAA zapisovala se zpožděním jedno přerušení. Takovýto postup zajistí nerušený a bezproblémový běh SAA hudby u ZX / Timexu.

Systém na DIVIDE/DIVMMC by měl také po ZX resetu vždy zapnout ZX režim (OUT &01FF,#00). Pokud systém používá i nějaké NMI s informacema na obrazovce, bylo by vhodné tento OUT provést také při vstupu do NMI, resp. také při jeho opuštění.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
PříspěvekNapsal: 27.02.2021, 01:20 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1611
Has thanked: 31 times
Been thanked: 357 times
SAA hudbu používá třeba hra KRUNEL.

Zde je problémový originál hry:
http://velesoft.speccy.cz/other/krunel_original.zip

A zde jsem za hudební hradlo přidal onen OUT #01FF,#00:
http://velesoft.speccy.cz/other/krunel_en_timex_compatible.zip

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
PříspěvekNapsal: 27.02.2021, 08:30 
Offline
Radil
Uživatelský avatar

Registrován: 12.05.2013, 20:32
Příspěvky: 457
Bydliště: Kladno
Has thanked: 46 times
Been thanked: 118 times
Pokud máme MB03+, máme to jednodušší. Stačí před spuštěním konfliktního programu SAA nebo Timex režim softwarově vypnout. Jednoduchá úprava v Basicu, kdy se přidají dva OUTy než se hra spustí. Vycházím z toho že nejspíš neexistuje program který by současně používal Timex režim a SAA. Je to jednodušší než přepisovat přerušovací rutinu. A pokud ta hra nemá Basic upravený, můžeme si Timex režim vypnout dočasně v menu.

_________________
>>eLeMeNt, MB03+, Amiga 1200, ZX Spectrum 128 +2A, ZX Spectrum+, Didaktik Gama, LnxSpectrum, LnxTracker, LnxAmigaImageConvertor, https://www.ilnx.cz <<


Nahoru
 Profil  
 
PříspěvekNapsal: 27.02.2021, 13:36 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1611
Has thanked: 31 times
Been thanked: 357 times
Lanex píše:
Pokud máme MB03+, máme to jednodušší. Stačí před spuštěním konfliktního programu SAA nebo Timex režim softwarově vypnout. Jednoduchá úprava v Basicu, kdy se přidají dva OUTy než se hra spustí. Vycházím z toho že nejspíš neexistuje program který by současně používal Timex režim a SAA. Je to jednodušší než přepisovat přerušovací rutinu. A pokud ta hra nemá Basic upravený, můžeme si Timex režim vypnout dočasně v menu.


Tak tento problem se bude spis tykat hojne rozsirene nove uly "SLAM ULA PLUS", ktera proste port 255 ma pristupny stale. Kdokoli si pak pusti SAA hudbu, budou mu problikavat v obraze ruzne graficke rezimy. Proto by se to melo resit uz na SW urovni. SAA hudebni hradlo muze na ZX bezet s beznou ulou bez problemu. Jen kdyz mame SLAM ULAPLUS v ZX, prakticky vse co se posila na porty SAA se soucasne zapisuje na port timexu teto uly. A to plati i opacne.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
PříspěvekNapsal: 27.02.2021, 13:55 
Offline
Radil
Uživatelský avatar

Registrován: 12.05.2013, 20:32
Příspěvky: 457
Bydliště: Kladno
Has thanked: 46 times
Been thanked: 118 times
Však ano, nepsal jsem že je to blbost, jen že MB03 uživatelé to mají jednodušší :)

_________________
>>eLeMeNt, MB03+, Amiga 1200, ZX Spectrum 128 +2A, ZX Spectrum+, Didaktik Gama, LnxSpectrum, LnxTracker, LnxAmigaImageConvertor, https://www.ilnx.cz <<


Nahoru
 Profil  
 
PříspěvekNapsal: 27.02.2021, 16:33 
Offline
Pan Generální
Uživatelský avatar

Registrován: 11.06.2013, 15:27
Příspěvky: 3025
Has thanked: 2191 times
Been thanked: 894 times
VELESOFT píše:
Tak tento problem se bude spis tykat hojne rozsirene nove uly "SLAM ULA PLUS"

Taky u ZX-UNO. Na rozdíl od mbéčka jsem v něm nenašel svobodu přepínání režimů mimo bios, OUTem. Nějaké povolení by měly zajistit OUT 64571,15: OUT 64827,0.

_________________
// na co myslím, když sedím u oldkompů: celý příběh


Nahoru
 Profil  
 
PříspěvekNapsal: 27.02.2021, 18:23 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1611
Has thanked: 31 times
Been thanked: 357 times
Také by mělo v dnešní době platit, že pokud vznikne nějaký software používající vlastní grafický režim Timexu, měl by si sám pod přerušením pokaždé tento režim nastavovat/obnovovat. Pokud to neudělá, hrozí, že při skoku do NMI menu (at už DIVIDE/DIVMMC....) si Esxdos sám nastaví ZX režim a po návratu už zůstane nastavený do doby, než si takový software nenastaví vlastní režim znovu.

Podobné je to s SAA. Systém ho může ztišit nebo vynulovat registry (nevím jak to teď dělá) ale ideální by bylo aby SAA hradlo s každým přerušením nastavovalo všechny registry SAA.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
PříspěvekNapsal: 27.02.2021, 18:33 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1611
Has thanked: 31 times
Been thanked: 357 times
A teď ještě o podpoře SAA v Rusku. Nezkoumal jsem ostatní ZX klony ale vím, že existuje například zvuková karta ZXM Soundcard, kde se dá SAA také vypínat. Narozdíl od původního zapojení ze SAM COUPE, kde se používají porty #00FF a #01FF, ZXM používá nové porty #04FF a #05FF. Pokud hradlo používá tyto porty, pak to bude hrát na SAM COUPE i na ZX za přepokladu, že dodržíme podobnou adresaci jako má SAM, tedy A0-A7 + A8. Naopak původní hradla SAA rusům hrát nebudou.

_________________
http://velesoft.speccy.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ů: 8 ] 

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 3 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