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

Zdenek Adler 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>       <div><font>Ehm... Někdo použije pro vyjádření nesouhlasu s tím druhým slovní hříčku, někdo použije hrubé urážky které se jistě dotkly nejenom Petra, mě,&nbsp;ale i každého slušného člověka v této konferenci. Z konference nechci nikoho vyhazovat, tak aspoň prosím o to aby si někteří její členové uvědomili k čemu je vlastně určená. Pokud někdo není nadšený z nových příspěvků a dění okolo MZ-800, je velmi jednoduchá cesta k tomu si prostě zasílání příspěvků z Pandory zablokovat, případně se zcela odhlásit. Asi bych toho měl na jazyku víc, ale raději taktně pomlčím a budu doufat že podobné příspěvky které nemají&nbsp;pro MZ-800 nadšence žádnou hodnotu&nbsp;se už nebudou opakovat.</font></div> <div><font></font>&nbsp;</div> <div><font>Z.</font></div> <div><font></font>&nbsp;</div> <div><font></font>&nbsp;</div> <div><font></font>&nbsp;</div> <div><font></font>&nbsp;</div> <div><font></font>&nbsp;</div> <div>----- Original Message ----- </div>  <div><b>From:</b> <a href="mailto:puta@[doména skryta] (sharpemu@pandora.cz)">puta@[doména skryta] (sharpemu@pandora.cz)</a> </div> <div><b>To:</b> <a href="mailto:sharpemu@pandora.cz">Konference "Počítač SHARP MZ-800 a emulátory"</a> </div> <div><b>Sent:</b> Wednesday, March 22, 2006 6:50 PM</div> <div><b>Subject:</b> Re: Podrobnosti o funkčním FDC s DP8473/( kritizovaným MUDr. Punťou).</div> <div><br/></div> <p> </p><p>debile,</p> <p>ja jsem Te v zadnem pripade neurazel, ani nekritizoval. Mne zajimalo, jak k tomu sikovnemu "udelatku" prijit, protoze nejsem v technice tak zdatny jako Ty. Ty jsi ale jen sprostej VUL. Takze sorry :-((</p> <p>MUDr. Josef Puta</p> <p>P.S. mudrcu a kritiku je na Internetu opravdu hodne, takze si vsichni strcte kritiku na muj prispevek za klobouk. Sharpa s pomoci&nbsp;kamaradu upgraduji od roku 1986. Je to stale muj zivy a prvni pocitac a je smutne, ze za jeho "postprukopniky" se nachazeji takovi Edisonove, jako jsi Ty, chudaku.</p> <p><br/><br/>----- Původní zpráva ----- <br/>Odesílatel: Petr Žydek (sharpemu@pandora.cz) &lt;judeware@[doména skryta]&gt; <br/>Datum: Středa 22. března 2006, 10:32 <br/>Předmět: Podrobnosti o funkčním FDC s DP8473 <br/>Komu: Konference "Počítač SHARP MZ-800 a emulátory" &lt;sharpemu@pandora.cz&gt; <br/><br/>&lt;p&gt;&lt;P&gt;&lt;BR&gt;Co jsem měl k dispozici pro testy&lt;/P&gt; <br/>&lt;P&gt;&lt;BR&gt;Celkem 12 řadičů na bázi 8272, z toho:&lt;/P&gt; <br/>&lt;P&gt;1x s DP8473V (National, PLCC52)&lt;BR&gt;2x s DP8473N (National, DIP48)&lt;/P&gt; <br/>&lt;P&gt;2x s uPD765A (NEC, přímý ekvivalent 8272)&lt;BR&gt;2x s UM8388 (UMC, zaměřen jen na PC, DIP48)&lt;BR&gt;1x s UM8397 (UMC, do PC XT, DIP48)&lt;BR&gt;3x s GM82C765A (Goldstar, totéž co WD37C65B)&lt;BR&gt;1x s WD37C65B (Western, totéž co Goldstar)&lt;/P&gt; <br/>&lt;P&gt;Pak mám nějaké vypájené UMC a 37C65&lt;BR&gt;(od WD a SMC, PLCC44).&lt;/P&gt; <br/>&lt;P&gt;&lt;BR&gt;Jak jsem testoval&lt;/P&gt; <br/>&lt;P&gt;Mechaniku 3.5" jsem napájel z externího&lt;BR&gt;zdroje z PC, standardní "PC kšandou"&lt;BR&gt;jsem ji připojil do příslušného řadiče&lt;BR&gt;a ten připojil do Sharpa mým udělátkem&lt;BR&gt;"Sharp to ISA" (kritizovaným MUDr. Punťou).&lt;BR&gt;Připravil jsem si v monitoru pár primitivních&lt;BR&gt;podprogramů:&lt;/P&gt; <br/>&lt;P&gt;1000h:&lt;BR&gt;LD,14h&lt;BR&gt;OUT (F2h),A&lt;BR&gt;RET&lt;/P&gt; <br/>&lt;P&gt;1008h:&lt;BR&gt;LD,00h&lt;BR&gt;OUT (F2h),A&lt;BR&gt;RET&lt;/P&gt; <br/>&lt;P&gt;1010h:&lt;BR&gt;IN A,(F4h)&lt;BR&gt;CAll 03C3h&lt;BR&gt;RET&lt;/P&gt; <br/>&lt;P&gt;1018h:&lt;BR&gt;IN A,(F5h)&lt;BR&gt;CAll 03C3h&lt;BR&gt;RET&lt;/P&gt; <br/>&lt;P&gt;1020h:&lt;BR&gt;LD,03h&lt;BR&gt;OUT (F5h),A&lt;BR&gt;RET&lt;/P&gt; <br/>&lt;P&gt;1028h:&lt;BR&gt;LD,A0h&lt;BR&gt;OUT (F5h),A&lt;BR&gt;RET&lt;/P&gt; <br/>&lt;P&gt;&lt;BR&gt;1030h:&lt;BR&gt;LD,01h&lt;BR&gt;OUT (F5h),A&lt;BR&gt;RET&lt;/P&gt; <br/>&lt;P&gt;1040h:&lt;BR&gt;LD,46h&lt;BR&gt;OUT (F5h),A&lt;BR&gt;RET&lt;BR&gt;CAll 03C3h&lt;/P&gt; <br/>&lt;P&gt;1048h:&lt;BR&gt;LD,00h&lt;BR&gt;OUT (F5h),A&lt;BR&gt;RET&lt;BR&gt;CAll 03C3h&lt;/P&gt; <br/>&lt;P&gt;1050h:&lt;BR&gt;LD,00h&lt;BR&gt;OUT (F5h),A&lt;BR&gt;RET&lt;BR&gt;CAll 03C3h&lt;/P&gt; <br/>&lt;P&gt;1058h:&lt;BR&gt;LD,00h&lt;BR&gt;OUT (F5h),A&lt;BR&gt;RET&lt;BR&gt;CAll 03C3h&lt;/P&gt; <br/>&lt;P&gt;1060h:&lt;BR&gt;LD,01h&lt;BR&gt;OUT (F5h),A&lt;BR&gt;RET&lt;BR&gt;CAll 03C3h&lt;/P&gt; <br/>&lt;P&gt;1068h:&lt;BR&gt;LD,02h&lt;BR&gt;OUT (F5h),A&lt;BR&gt;RET&lt;BR&gt;CAll 03C3h&lt;/P&gt; <br/>&lt;P&gt;1070h:&lt;BR&gt;LD,01h&lt;BR&gt;OUT (F5h),A&lt;BR&gt;RET&lt;BR&gt;CAll 03C3h&lt;/P&gt; <br/>&lt;P&gt;1078h:&lt;BR&gt;LD,01h&lt;BR&gt;OUT (F5h),A&lt;BR&gt;RET&lt;BR&gt;CAll 03C3h&lt;/P&gt; <br/>&lt;P&gt;1080h:&lt;BR&gt;LD HL,2000h&lt;BR&gt;LD BC,0F5h&lt;BR&gt;LD A,FFh&lt;BR&gt;OUT (F5h),A&lt;BR&gt;108Ah:&lt;BR&gt;IN A,(F4h)&lt;BR&gt;CP F0h&lt;BR&gt;JP NZ,108Ah&lt;BR&gt;INI&lt;BR&gt;JP NZ,108Ah&lt;BR&gt;1096h:&lt;BR&gt;IN A,(F4h)&lt;BR&gt;CP F0h&lt;BR&gt;JP NZ,108Ah&lt;BR&gt;INI&lt;BR&gt;JP NZ,108Ah&lt;BR&gt;RET&lt;/P&gt; <br/>&lt;P&gt;1000h: vybere mechaniku A:, zapne motor,&lt;BR&gt;deaktivuje softwarový reset řadiče,&lt;BR&gt;zakazuje DMA piny&lt;BR&gt;1008: provede deselekt mechaniky, vypne&lt;BR&gt;motor, drží řadič v softwarovém resetu&lt;BR&gt;1010: přečte hodnotu z portu F4h&lt;BR&gt;(main status register)&lt;BR&gt;1018: přečte hodnotu z portu F5h&lt;BR&gt;(data register, má význam při výsledkové&lt;BR&gt;fázi příkazu čtení dat)&lt;BR&gt;1020h-1030h: pošle řadiči příkaz specify:&lt;BR&gt;03h: kód příkazu&lt;BR&gt;A0h: krokování 6ms, prodleva - motor off 0ms&lt;BR&gt;01h: prodleva - motor on 0ms, non DMA mode!!!&lt;BR&gt;(Tady je v manuálu GM82C765 chyba, v přehledu&lt;BR&gt;příkazu na str. 27 je v tabulce určené pro&lt;BR&gt;bit non DMA nějaký morseovkový paskvil a&lt;BR&gt;v podrobném popisu příkazu na str. 35-36&lt;BR&gt;není ani zmínka)&lt;BR&gt;Vhodnou změnou v instrukcích LD A, xxh&lt;BR&gt;zde lze vykonat příkazy seek a recalibrate&lt;BR&gt;(a tím ověřit vykonání specify), recalibrate &lt;BR&gt;se ovšem posílá jen dvěma bajty, je-li hlava&lt;BR&gt;na 80. stopě, musí se opakovat (pozůstatek&lt;BR&gt;z jednotek 8" se 77 stopami)&lt;BR&gt;U! <br/>DP8473 drží hodnoty nastavené příkazem&lt;BR&gt;specify i po Hw/Sw resetu&lt;BR&gt;1040h-1078h: pošle řadiči příkaz read data:&lt;BR&gt;46h: multitrack, skip sektor=no; MFM=yes&lt;BR&gt;00h: implied seek=no; head, drive=0&lt;BR&gt;00h: track=0&lt;BR&gt;00h: drive head number=0&lt;BR&gt;01h: sector number=1&lt;BR&gt;02h: number of bytes per sector=2 ---&amp;gt; 512B&lt;BR&gt;(pro Sharp má význam ještě 1 ---&amp;gt; 256B)&lt;BR&gt;01h: end of track sector number=1&lt;BR&gt;(pro čtení jediného sektoru musí mít hodnotu&lt;BR&gt;jako parametr sector number - při čtení v non&lt;BR&gt;DMA režimu)&lt;BR&gt;1Bh: intersector gap length=1Bh&lt;BR&gt;(pro Sharp má význam ještě 20h, stopa 16x256B)&lt;BR&gt;Jednotlivé bajty jsem zprvu posílal sólo&lt;BR&gt;(měření sondou, čtení statusu po každém bajtu),&lt;BR&gt;když se RETy nahradí NOPy, proběhne celá&lt;BR&gt;sekvence najednou s výpisem odesílaných bajtů&lt;BR&gt;(výpis akumulátoru zajistí potřebné prodlevy)&lt;/P&gt; <br/>&lt;P&gt;1080h: pošle řadiči poslední bajt příkazu&lt;BR&gt;read data&lt;BR&gt;ffh: data length (doporučená hodnota pro&lt;BR&gt;velikost sektoru 256 a 512B)&lt;BR&gt;a vykoná čtení 512ti bajtů 1. sektoru 0. stopy&lt;BR&gt;Čeká na hodnotu statusu F0h:&lt;BR&gt;request for master bit 7=1&lt;BR&gt;data direction bit 6=1&lt;BR&gt;non DMA execution bit 5=1&lt;BR&gt;command in progress bit 4=1&lt;/P&gt; <br/>&lt;P&gt;Není-li disketa v mechanice nebo čtení&lt;BR&gt;nezapočne, rutina se sekne - ošetření mezních&lt;BR&gt;stavů patří do O.S., při testech mě to&lt;BR&gt;nezajímá.&lt;/P&gt; <br/>&lt;P&gt;Jak se choval úspěšný DP8473V, jak jsem postupoval&lt;/P&gt; <br/>&lt;P&gt;1) vložení diskety do mechaniky - zděšení: točí&lt;BR&gt;se motor bez selektu (po Hw resetu!!!)&lt;BR&gt;2)*G1008 (vypne motor, deselekt, Sw reset),&lt;BR&gt;pauza na čaj&lt;BR&gt;3)*G1000 (rozjede mechaniku)&lt;BR&gt;4)*G1010 (vypíše 80h: čeká na příkaz)&lt;BR&gt;5)*G1040 .. G1078 (odešle bajty příkazu řadiče,&lt;BR&gt;průběžné čtení statusu oznamuje 90h: příkaz probíhá)&lt;BR&gt;6)*G1080 (vrátil se na prompt monitoru, malá prodleva;&lt;BR&gt;zjistil jsem, že výchozí nastavení určená příkazem&lt;BR&gt;specify jsou ta nejpomalejší: seek, motor on/off)&lt;BR&gt;7)*G1010 (status hlásí D0h, bit non DMA v nule&lt;BR&gt;oznamuje přechod na výsledkovou fázi)&lt;BR&gt;8)*G1018 (čtení výsledkových bajtů, s i bez&lt;BR&gt;prokládání čtením statusu: D0h):&lt;BR&gt;40h: abnormal termination of command&lt;BR&gt;80h: end of track bit=1&lt;BR&gt;00h: OK&lt;BR&gt;00h: track=0&lt;BR&gt;00h: head=0&lt;BR&gt;01h: sector=1&lt;BR&gt;02h: bytes/sector=2 tj. 512B&lt;BR&gt;9)*G1010 (vypíše 80h: čeká na příkaz)&lt;BR&gt;10)*G1008 (vypne motor, deselekt, Sw reset)&lt;/P&gt; <br/>&lt;P&gt;Od adresy 2000h je v paměti správně načtený sektor&lt;BR&gt;(z čistého formátu 720ky v PC, ověřeno diskeditem).&lt;BR&gt;Střídal jsem dvě diskety pořád dokola, bez chyby,&lt;BR&gt;ta druhá měla tentýž sektor popsaný vyjmenovanými&lt;BR&gt;slovy jazyka českého (velká ASCII písmena se dají&lt;BR&gt;ověřit v monitoru i v diskeditu v PC). Po 50ti&lt;BR&gt;cyklech jsem toho nechal.&lt;/P&gt; <br/>&lt;P&gt;Poznatky&lt;BR&gt;je-li po "*G1000" odeslán příkaz specify, prodleva&lt;BR&gt;při čtení sektoru je minimální&lt;BR&gt;hodnota 40h ve výsledkové fázi je OK, nativní&lt;BR&gt;režim řadiče je DMA, konec čtení dat je signalizován&lt;BR&gt;pinem TC=HIGH, tento je zde neaktivní a přenos&lt;BR&gt;je zakončen tím, že je vhodně nastaven bajt&lt;BR&gt;"end of track sector number" v příkazu read data&lt;/P&gt; <br/>&lt;P&gt;manuál DP8473 str. 16 odst. 2:&lt;BR&gt;"In DMA mode the Read Data command continues to read&lt;BR&gt;until the TC pin is set. This means that the DMA controller&lt;BR&gt;should be programmed to transfer the correct number of&lt;BR&gt;bytes. TC could be controlled by the mP and be asserted&lt;BR&gt;when enough bytes are received. An alternative to these&lt;BR&gt;methods of stopping the Read Data command is to program&lt;BR&gt;the End of Track Sector Number to be the last sector number&lt;BR&gt;that needs to be read. The controller will stop reading&lt;BR&gt;the disk with an error indicating that it tried to access a&lt;BR&gt;sector number beyond the end of the track."&lt;/P&gt; <br/>&lt;P&gt;manuál k DP8473 taky jediný zmiňuje metodu dotazování&lt;BR&gt;status registru (a ne spolupráci přes IRQ v non DMA režimu,&lt;BR&gt;tak non DMA režim chápou všichni ostatní brouci)&lt;BR&gt;str. 13 ostavec Software polling:&lt;BR&gt;"If the non-DMA mode is selected and interrupts are not&lt;BR&gt;suitable, the mP can poll the Main Status Register during the&lt;BR&gt;Execution Phase to determine when a byte is ready to be&lt;BR&gt;transferred. In the non-DMA mode, bit 7 of the Main Status&lt;BR&gt;Register reflects the state of the interrupt pin. Otherwise,&lt;BR&gt;the data transfer is similar to the Interrupt Mode described&lt;BR&gt;above."&lt;/P&gt; <br/>&lt;P&gt;&lt;BR&gt;Odlišnosti u DP8473N DIP48&lt;/P&gt; <br/>&lt;P&gt;Výše uvedený postup nezabral, proto jsem si dočasně upravil&lt;BR&gt;podprogram čtení sektoru:&lt;BR&gt;108A:&lt;BR&gt;CALL 03C3h&lt;BR&gt;DJNZ 108A&lt;BR&gt;RET&lt;BR&gt;Poté, co se odešle poslední bajt příkazu read data&lt;BR&gt;se 256x přečte status a skončí.&lt;/P&gt; <br/>&lt;P&gt;Co načetl: samé 10h tj. příkaz probíhá, non DMA=no&lt;BR&gt;Dodatečný status vypsal D0h tj. zahájení čtení výsledků&lt;BR&gt;a bajty z portu F5 určily:&lt;BR&gt;nedokončený příkaz&lt;BR&gt;"data utekla".&lt;/P&gt; <br/>&lt;P&gt;Po rozjetí mechaniky proto MUSÍ následovat příkaz specify,&lt;BR&gt;status po zahájení příkazu read data ohlásí:&lt;BR&gt;10h (jedinkrát) příkaz probíhá&lt;BR&gt;30h (mockrát) příkaz probíhá, non DMA execution&lt;BR&gt;F0h (cca 20x) příkaz probíhá, non DMA, čti bajt&lt;BR&gt;D0h (ve fázi result neustále do doby načtení výsledků&lt;BR&gt;z portu F5).&lt;/P&gt; <br/>&lt;P&gt;Tuto rutinu uplatňuju i u všech ostatních brouků,&lt;BR&gt;zatím se nedaří přečíst stav F0h po zadání read data.&lt;/P&gt; <br/>&lt;P&gt;Po Hw resetu nebo při pokusu načíst 1.44MB disketu&lt;BR&gt;se čtecí rutina seká, takže komplexní řešení pro (nejen)&lt;BR&gt;DP8473 je:&lt;BR&gt;po rozjetí mechaniky aplikovat příkaz specify,&lt;BR&gt;poslat na port F7h hodnotu 02h (data rate 250kbit/s),&lt;BR&gt;zadat příkaz read data. Pak chodily všechny tři&lt;BR&gt;DP8473x.&lt;BR&gt;Myslím, že se Zilogem &amp;gt;6MHz by prošlo sw čtení&lt;BR&gt;sektoru i na 1.44MB disketě :-))))&lt;/P&gt; <br/>&lt;P&gt;PDF manuál DP8473 je na:&lt;BR&gt;&lt;A href="http://www.mz-800.xf.cz/files/tech/dp8473.pdf" target="1"&gt;http://www.mz-800.xf.cz/files/tech/dp8473.pdf&lt;/A&gt;&lt;/P&gt; <br/>&lt;P&gt;Co jsem nestihl, příště.&lt;/P&gt; <br/>&lt;P&gt;Petr de Zviqov&lt;BR&gt;&lt;/P&gt;&lt;pre&gt;&lt;/pre&gt;&lt;p&gt;&lt;br&gt;--- &lt;br&gt; <br/>Vše o mobilech najdete v novém přehledném katalogu mobilů: &lt;a href="http://mobil.idnes.cz/katalog.asp" target="1"&gt;http://mobil.idnes.cz/katalog.asp&lt;/a&gt; <br/></p><pre></pre> <p><br/>--- <br/>Vše o mobilech najdete v novém přehledném katalogu mobilů: <a href="http://mobil.idnes.cz/katalog.asp">http://mobil.idnes.cz/katalog.asp</a> </p>