OldComp.cz

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


Právě je 28.03.2024, 15:37

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  Další
Autor Zpráva
 Předmět příspěvku: Re: Bakalarska praca
PříspěvekNapsal: 11.07.2021, 14:40 
Offline
Kecka

Registrován: 03.07.2021, 20:10
Příspěvky: 31
Has thanked: 0 time
Been thanked: 0 time
danhard píše:
Ne, buď máš IORQ = 0, pak tě zajímá A7-A0 aby to bylo xxxxxxx0 a je to v sw port 254, čili I/O prostor,
nebo je MREQ = 0 a pak tě zajímá A15-A14 aby bylo 01, a je to adresa 16k memory bloku 4000-7FFF.

faraon píše:
Ne, MREQ=1, protože nechceš paměť. Buď paměť nebo porty.
Takže procesor pošle na adresní sběrnici nějaké číslo, potom stáhne IORQ na nulu, a totéž provede buď s WR nebo RD, podle toho jestli chce do portu zapisovat nebo ho číst. A pokud to číslo adresy bylo sudé, ULA to bere jako požadavek na port 254.
Prostě to u Sinclaira vo*ebali a nedali tam žádný dekodér, další dvě libry k dobru ;-)

Kód:
border_update : process(iorq,mreq,a0)
begin
  if falling_edge(iorq) and mreq='1' and a0='0' then
    borderCache <= data(2 downto 0);
  end if;
end process;

Diki moc. Snad som to nepoplietol.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Bakalarska praca
PříspěvekNapsal: 11.07.2021, 18:22 
Offline
Profík

Registrován: 26.11.2018, 16:59
Příspěvky: 580
Bydliště: Holešov
Has thanked: 13 times
Been thanked: 90 times
ještě by nebylo špatné si odpamatovat stav bitů REPRO/MGF, kdyby si chtěl mít i audio výstup případně kazetofon (některé hry kombinovaly tyto bity na víc stupňů hlasitosti)


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

Registrován: 03.07.2021, 20:10
Příspěvky: 31
Has thanked: 0 time
Been thanked: 0 time
l00k píše:
ještě by nebylo špatné si odpamatovat stav bitů REPRO/MGF, kdyby si chtěl mít i audio výstup případně kazetofon (některé hry kombinovaly tyto bity na víc stupňů hlasitosti)


Aj to bude ale to bude obsuhlovat iny modul ktora som zatial este nezacal., Zatial sa zameriavam na VGA driver s tym je celkom piplacka. vytvoril som si v tom drivery par pod-modulov a cil idem povytvarat testbenchy a otestovat ich v simulacii.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Bakalarska praca
PříspěvekNapsal: 11.07.2021, 19:02 
Offline
Profík

Registrován: 26.11.2018, 16:59
Příspěvky: 580
Bydliště: Holešov
Has thanked: 13 times
Been thanked: 90 times
jo, ale je to na tom samém portu co BORDER, takže nemusíš nic vymýšlet a jen si stav těch 2 bitů (případně jen 1) odpamatovat do proměnné... pak už si to zpracuješ později


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

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
Řekl bych že poplietol. Když se procesor dostane do stavu, kdy současně chce IORQ a MREQ, je barva borderu to poslední co by tě v tu chvíli mělo zajímat :x

Takže MREQ tady vůbec testovat nemusíš, zato bude potřeba zjistit jestli systém chce zapisovat nebo číst. Takhle bys totiž nastavoval barvu borderu i při každém čtení klávesnice. To by se měnila podle toho jakou klávesu máš stisknutou!

Zkus to takhle nějak:
Příloha:
port254.png
port254.png [ 780 bajtů | Zobrazeno 6637 krát ]

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


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

Registrován: 03.07.2021, 20:10
Příspěvky: 31
Has thanked: 0 time
Been thanked: 0 time
faraon píše:
Řekl bych že poplietol. Když se procesor dostane do stavu, kdy současně chce IORQ a MREQ, je barva borderu to poslední co by tě v tu chvíli mělo zajímat :x

Takže MREQ tady vůbec testovat nemusíš, zato bude potřeba zjistit jestli systém chce zapisovat nebo číst. Takhle bys totiž nastavoval barvu borderu i při každém čtení klávesnice. To by se měnila podle toho jakou klávesu máš stisknutou!

Zkus to takhle nějak:
Příloha:
port254.png


Diki za upozornenie jj mas pravdu.

Kód:
border_update : process(iorq,wr,a0)
begin
  if falling_edge(iorq) and wr='0' and a0='0' then
    borderCache <= data(2 downto 0);
  end if;
end process;


Preco by chcel procesor sucasne pristupovat aj ku pamati aj ku i/o zariadeniu sucasne? Este ked procesor odosiela data by to bolo v poriadku, pretoze vstupne impedancie pamate a I/O zariadenia su velke. Ale vystupna zbernica zariadeni by v pripade ak by si ich zapajal paralelne museli pracovat v trojstavovej logike (log0, log1 a stav vysokej impedancie) a mat vstupny pin chip select a vyrat len jeden z nich. Tym myslim ak by chcel mikroprocesor citat data aj z pamate aj z I/O zariadenia sucasne tak by nastal z elektrickeho aj logickeho hladiska pruser. Napriklad pamat na pine chce dat log. 1 a I/O zariadenie na tom istom pine log. 0 tak mame vysoky prud a odpalenie. Preto z logickeho hladiska mi pride divne ze by procak umoznil /IORQ aj /MREQ mat v log. 0.

PS: Uz mam celkom napisane, som zvedavy ako bude praca vyzerat vo finalnej verzii.


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

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
ce4aser píše:
Preco by chcel procesor sucasne pristupovat aj ku pamati aj ku i/o zariadeniu sucasne?
To by se ti právě nemělo stát, protože kdyby k tomu došlo, tak budeš v první řadě shánět nový procesor. A pak zachraňovat ze zbytku toho počítače ještě použitelné kousky ;-)

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Bakalarska praca
PříspěvekNapsal: 16.10.2021, 17:47 
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
V počítačové logice jsou dvě možnosti:
buď je zaručeno, že nějaké vstupní kombinace nenastanou,
nebo tě výsedek pro nějaké vstupní kombinace nezajímá.
Nic nebrání tomu, aby jsi tam pro kombinace, které nenastanou nadefinoval nějaké nezajímavé výsledky :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: Bakalarska praca
PříspěvekNapsal: 16.10.2021, 22:51 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Ce4aser u Z80 nikdy neni soucasne /IORQ a /MREQ v log. 0. Toho dokonce vyuziva ULA. Takto kombinace se vyuzivala pri vyrobe na aktivovani ruznych hradel uvnitr ULA pro zrychlene otestovani cipu. Pro emulaci pocitace to nemusis resit.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Bakalarska praca
PříspěvekNapsal: 16.10.2021, 23:03 
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
Jó to byly doby, kdy se dělala do chipu ještě křížová diagnostika.

Já jsem to měl tak, že když tam něco zbylo, jeden volnej pin, tak jsem tam udělal registr a multiplexer, kterej mi na něj přepínal sondu na vnitřní spoje, abych si to mohl jako osciloskopem osahat.

_________________
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: Bakalarska praca
PříspěvekNapsal: 17.10.2021, 08:57 
Offline
Kecka

Registrován: 03.07.2021, 20:10
Příspěvky: 31
Has thanked: 0 time
Been thanked: 0 time
Este taka otazka co sa tyka sposobu ulozenia programov / hier a dat na MGF paske. Je tam nieco take ako synchronizacny pulz. V zdrojoch som nasiel je uvedene ze ta rycchlost je viazana na T-Cykly mikroprocesora. cize 1/3.5MHz ~ 285.7ns. Kde jeden synchronizacny pulz je trva 2618 cyklov v kladnej a 2618 v zapornej casti obdlznikoveho signalu (bez jednosmernej zlozky) a pak sa to zakonci ukoncovaci pulzom 667:735. A podla poctu synchronizacnych pulzov sa ucuje ci bude nasledovat datovy blok hlavicky alebo datovy blok dat, v ktorom je log1 1710:1710 a log0 855:855.

Tu nasleduje otazka ku tomu sync signalu a pojmu synchronizacny. Podla pojmu by som sychnronizacny chapal ze sa nascita pocet sync pulzov (3223 hlavicka alebo 8063 datovy blok) a dopocita sa casove razitko s mikroprocesorom. Cize sa rutina ROM prisposobi ku rychlosti zaznamu. Ale zdroje co som nasiel cykly su viazane na CLK mikroprocesora a nesmie sa moc odlisovat s tym ze este 1% odchylka je este pohode: 3.5MHz ZX48k vs 3.54MHz ZX128. Potom preco sa to vola sync ked to so sync nic nema, kde to len sluzi na predanie informacie typu datoveho bloku (hlavicka, data: z hlavicky - program, screen, ciselna pole, string: znakove pole).

A nasleduje potom druha otazka. Najprv spomeniem terminologiu casovych udajov. T-Cyklus (1 takt hodinoveho signalu), M-Cyklus = 4 T-Cykly. Najrychlejsie instrukcie trvaju 4 T-Cykly a najpomalsie instrukcie az 23 T-Cyklov. Tie najpomalsie su v podstate 16bitove instrukcie. Dalej vieme ze kontrola dlzky je riesene pod-rutinou v ROM. Ako dokaze presne napocitat tie cykly? Pretoze cisla 667, 735, 855, 1710 a 2618 ktore sa na to pouzivaju maju spolocny delitel len 1. Cize aby vsetky tieto cisla dokazalo presne nascitat musi pocitat v systeme 1, 2, 3 , 4 .... Takze myslienka povedzme spolocneho delitela 10: 10, 20 , 30 .... nespada k uvahu. Za jeden T-Cyklus ked sa ani NOP nevykona tak mikroprocesor nedokaze presne scitavat s presnostou 1 T-Cyklu. Ako to potom rutina nacitava ?

Napriklad v AVR mas nezavisle countery (program a counter pracuju paralelne a ked counter dopocita vyvola prerusenie tym ze zalohuje PC do SP , blokne vsetky prerusenia skoci na specificku adresu a pri navratovej instrukcii obnovi povolenie prerusenia a SP prepise do PC). V dokumentacii Z80 som nikde nevidel ze by Z80 mala taketo nezavisle pocitadlo. Ak ho tam ma ako sa aktivuje (v Z80.pdf co som nasiel tam nic take nebolo spomenute).

V zdrojaku ROM genrovanie ukoncovacieho sync pulzu (SAVE) prebieha instrukciu SA-SYNC-1 DJNZ #04EA,SA-SYNC-1. (pre 667). Ale DJNZ je jednoparametrovy. Povedzme ze je to ista modifikacia a prekladac si to poriesi. Tak DJNZ ak B!=0 trva 13 T-Cyklov, ak B=0 trva 8 T-cyklov. Stale mi nejde do hlavy to presne nascitavanie rutinou ROM. ULA obvod v tom nepomaha ten len zaistuje transfer kladne napatie log 1 a zaporne napatie log 0 na specifickom bite 254 portu.

Ako to je presne s tym MGF zaznamom ? Vopred Dakujem :)


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

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
Jak pravil Woz: "Nejlevnější hardware je software."

Z80 žádný pomocný čítač nemá. Umí ale šestnáctibitový INC/DEC.
ULA nemá vůbec nic, jen jednobitový A/D převodník.
Všechno dělá program v ROM.

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Bakalarska praca
PříspěvekNapsal: 17.10.2021, 10:06 
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
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

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.

Flexibilita je u Spectra dost velká, snese nejenom přenos mezi ZX48/ZX128, ale i na Didaktik M.
Citace:
Potom preco sa to vola sync ked to so sync nic nema, kde to len sluzi na predanie informacie typu datoveho bloku (hlavicka, data: z hlavicky - program, screen, ciselna pole, string: znakove pole)

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.

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ů.


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

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
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.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Bakalarska praca
PříspěvekNapsal: 17.10.2021, 10:43 
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
Viz výpis LOAD rutiny.
Popis byl třeba ve FIFO 9, str. 6-7, nebo v příloze C této práce: https://www.vut.cz/www_base/zav_prace_soubor_verejne.php?file_id=118295
Jsou tu časové konstanty v LD-START HL=0415h (asi 1 sekunda, ve smyčce je vloženo DJNZ 256x, čekání na pilotní tón), v LD-LEADER B=9Ch (pilotní tón), v LD-SYNC B=C9h (synchronizace). Po synchronizačním pulzu teprve následuje načtení bajtu - flagbyte. Jeho struktura je už stejná jako následujících dat.


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  Další

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


Kdo je online

Uživatelé procházející toto fórum: Jack_Free a 7 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