Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Původní podoba příspěvku

Radek Suk Zpět na příspěvek

Surová data tak, jak byla v roce 2013 stažena z Pandory (HTML zdroj bez úprav, osobní e-mailové adresy jsou maskované).

<!-------------------------------------------------------------->
<table width="100%"><tr><td align="left" valign="middle"></td><td align=right valign="middle"></td></tr></table><BR><pre>
Ahoj Michale

To co pises je pravda ale toto reseni ma tu obrovskou nevyhodu ze CP/M 
musi vzdy kdyz je potreba komunikace s FDD zablokovat ostatni preruseni 
a to jsou minimalne tri a to:

1) 50Hz-casovac obnoveni kurzoru a casu
2) pio - tisk z bufferu na tiskarne
3) sio - prerusit prijem v pripade ze se to bude resit pomoci interuptu 
a ne pres smycku
4) kazde dalsi zarizeni co vyuziva INT

jinak receno nesmi prijit jiny interupt po dobu prace s FDD. Vse je 
samozrejme resitelne ale nebude to cisty kod. Jinak asi pouzivas IM1 a 
ne IM0 jak pises. Co se tyce zmeny karty tak i ja jsem proti, predstava
ze tam davame treba PIO nebo CTC (mensi pouzdro) aby se vyvolal INT u 
IM2 mi neni po chuti - cele by to muselo byt umisteno ve vzduchu. Mozna 
ale pri dalsi verzi karty bych ale o tom uvazoval. Take mam ted myslenku 
tam dat 50pinovy konektor (jen piny) aby se pripadne na to dala dat 
daughter karta co by resila pripadne dodelavky nebo vyvedeni sbernice 
ven z pocitace.

Vysledek diskuse je ten ze muzeme pocitat jen s IM1 a na IM2 muzeme 
zatim zapomenout.

Radek



Dne 31.10.2011 9:41, Michal Hučík (sharpemu@pandora.cz) napsal(a):
<span class="replyquote1">&gt;
&gt; Dne 31.10.2011 0:50, Radek Suk (sharpemu@pandora.cz) napsal(a):
</span><span class="replyquote2">&gt;&gt; interupt. Zde myslim take na pristi kartu SIO ktera jiste bude IM2
&gt;&gt; podporovat. Take jiste se bude muset casem zavest diskuse ohledne
&gt;&gt; preruseni na UNIKARTE, predstavme si situaci (rezim IM2) ze budu
&gt;&gt; pouzivat tisk pres vnitrni PIO a prijde interupt od PIO a UNIKARTY
&gt;&gt; soucasne. V tom pripade ma prednost PIO (zajistuje to HW Sharpa) a
&gt;&gt; spravne unikarta ma testovat IEI a kdyz je zde log0 tak nema pravo
&gt;&gt; vyvolat Int. Proste muze se pouzit jen IM1 kdy se skace jen na jednu
&gt;&gt; rutinu na adrese 38H a neda se vyuzit plny vykon Sharpa. Z toho plyne
&gt;&gt; ze unikarta asi bude muset znat nejake prikazy ktere budou vypinat
&gt;&gt; vyvolani jejiho interuptu aby jina karta mela interupt volny pro svoji
&gt;&gt; cinnost, jinak se nebude moci zapojit soucasne s jinym interuptem.
</span><span class="replyquote1">&gt;
&gt; Ahoj Radku,
&gt;
&gt; jak uz jsem nedavno napsal, tak to, aby unikarta dokazala korektne
&gt; pracovat s interruptem by vyzadovalo nekolik zasahu do PCB a obavam se,
&gt; ze se do toho nikomu nechce. Signal /INT se v unikarte generuje tak, ze
&gt; pokud je aktivni, tak na nem vystavile 0 a pokud je neaktivni, tak ho
&gt; odpojime a o vystaveni 1 se postara pullup na sbernici Sharpa.
&gt; Pokud se budou ostatni pripojene periferie chovat stejne, tak nedojde k
&gt; zadnemu fyzickemu problemu, ale kdyby se pripojilo zarizeni, ktere ma
&gt; potrebu posilat v klidovem stavu tvrdych +5V, tak mame problem.
&gt;
&gt; Co se tyka samotneho preruseni, tak u emu_SIO jej lze deaktivovat pomoci
&gt; prikazu na portu 0x53. U emu_FDC je generovani interruptu realizovano
&gt; tak, ze pokud je radic zapnuty do INT rezimu a je aktivni prikaz
&gt; cteni/zapis sektoru, tak mame v unikarte interni citac zbyvajicich dat
&gt; do ktereho se nastavi velikost fyzickeho sektoru a jeho hodnota se
&gt; snizuje pri cteni/zapisu datoveho portu 0xdb. Pro vygenerovani
&gt; interruptu je podminkou to, ze tento citac neni nulovy (DRQ). Pri
&gt; testovani jsem odzkousel i variantu, kdy radic agresivne drzel aktivni
&gt; interrupt po celou dobu, kdy byl tento citac nenulovy, ale do firmware
&gt; jsem nakonec pro jistotu pouzil takovou variantu, ze aktivaci INT
&gt; spoustim vzdy po kazdem druhem pozadavku na radic - kazda rutina pro
&gt; praci s FDC totiz neustale testuje status radice prectenim portu 0xd8 a
&gt; toho jsem vyuzil. Napr. v HD cp/m se nastavi radic do INT rezimu, na
&gt; adrese 0x0038 se pripravi prerusovaci kod, zakaze se ruseni, ktere se
&gt; pouziva pro cp/m a nastavi se IM0, do FDC se posle prikaz odpovidajici
&gt; typu operace a pak uz se jen ve smycce neustale testuje status na 0xd8.
&gt; Mezi tim se v preruseni vyridi predani dat a smycka testujici status se
&gt; ukonci ve chvili, kdy FDC prestane byt BUSY.
&gt; V tom popisu je v podstate i navod na to, jak je mozne obelstit INT pri
&gt; praci s emu_FDC a obslouzit nejake jine zarizeni, nicmene pri praci se
&gt; skutecnym radicem asi k necemu takovemu nebude sance, protoze by doslo
&gt; ke ztrate dat.
&gt;
&gt; Michal
&gt;
&gt;
&gt;
&gt; ---
&gt;
&gt;
</span>
</pre>