Pres porty muzes ovladat HDD z (temer) libovolneho programovaciho jazyka. Nicmene tou vrstvou firmwaru to tak jako tak projde. Nekdo treba musi provest translaci z logickeho umisteni sektoru na fyzicke umisteni coz neni tak trivialni jak by se mohlo zdat; treba pocet sektoru na stope uz nejaky ten patek neni konstantni, jedine FW dokaze urcit pozici realokovanych sektoru nehlede na to, ze prostor pro realokovane sektory je "z vnejsiho sveta" nepristupny atd. Nekdo musi updatovat SMART hodnoty a hromadu dalsich veci. Posilanim dat na porty (budme konkretni 0x1f0-0x1f7 pro master na prvnik kanalu) pouze rikas firmwaru co po nem chces...Bathory píše:Z assembleru můžeš normálně hdd ovládat přes porty, už jsem to psal a doložil zdrojákem. Nepotřebuješ k tomu žádnej firmware hdd. Co myslíš, že ten firmware je, je to normální binární kód zkompilovanej z assembleru, kterej udělal normálmí člověk z masa a kostí. Oni v tom svým ovladači mají samozřejmě dost věcí podobných s tím firmware, vždyť to dělá skoro stejnou práci. Akorát vypustili opravný algoritmy a podobný věci, který jim k ničemu nebyli.
Záchrana dat z harddisku pomocí ZX Spectra.
Moderátoři: morke, Igoreso, Loki5567
- miho
- Čestný člen

-
- Registrován: 29. kvě 2003
- Bydliště: Orlová-Lutyně
127.0.0.1, sweet 127.0.0.1
- Bathory
- Čestný člen

- Registrován: 28. úno 2004
- Bydliště: BlackworlD
- Kontaktovat uživatele:
Tak, dneska jsem měl v práci dost času, abych si to v hlavě trochu porovnal, takže začnu jednou opravou:
...............................................
...
Vtip je v tom, že oni v tom assembleru udělali software, ovladač, kterej ke svý práci nevyužívá firmware onoho hdd! Prostě udělali program, kterej kromě komunikace s OS, sám komunikuje s hdd a řídí ho.
...............................................
Ve světle nových poznatků musím připustit, že to asi nepůjde. Taky jsem "jim" vložil do úst, že oni to takhle udělali. Neudělali, nikde to nepíšou a byla to moje představa, jak by to snad mělo jít udělat, ale asi nepůjde, takže všem sorry. V tom postu to editnu, protože by se toho mohl někdo chytit a víte jak to chodí ............ pak je z toho hned FAQ.
...............................................
Ale máš. Pokud napíšeš ovladač, který firmware nevyužívá.MaWa píše:nikdy nemáš kontrolu nad jakýmkolivHW co má v sobě firmware...pokud nepřepíšeš ten FW...
...
Vtip je v tom, že oni v tom assembleru udělali software, ovladač, kterej ke svý práci nevyužívá firmware onoho hdd! Prostě udělali program, kterej kromě komunikace s OS, sám komunikuje s hdd a řídí ho.
...............................................
Ve světle nových poznatků musím připustit, že to asi nepůjde. Taky jsem "jim" vložil do úst, že oni to takhle udělali. Neudělali, nikde to nepíšou a byla to moje představa, jak by to snad mělo jít udělat, ale asi nepůjde, takže všem sorry. V tom postu to editnu, protože by se toho mohl někdo chytit a víte jak to chodí ............ pak je z toho hned FAQ.
Bathory
- Bathory
- Čestný člen

- Registrován: 28. úno 2004
- Bydliště: BlackworlD
- Kontaktovat uživatele:
Tak a teď bych ještě rád pokračoval.
- Oba se tedy shodneme na tom. že LBA jim nesouhlasí.
- Doufám, že se již taky snad shodneme na tom, že disk může přečíst vadný sektor, aniž by vytuhl, tedy pokud je ve stavu, že je jeho poškození tuto činnost nijak neznemožnuje.
- Shodujeme se i v tom, že dle jejich popisu musel být disk v tak nehorázném stavu (všechno to klepání, skřípání a jiné), že by vůbec neměl fungovat, natož se naklonovat na druhý. Taky za těch 8 dní co pracoval, kdyby v tomhle stavu byl, by to nejspíš nevydržel.
- Nebo stav disku nebyl tak dramatický, jak bylo vylíčeno a v podstatě se jednalo o disk z větší, či menší části s poškozenými sektory + sem tam nějaké to klepnutí, či zachrčení. Ovšem nebyl schopen v OS pracovat.
- Jestli se jim poškozený disk povedlo naklonovat na ZX s hardwarem používaným na ZX, půjde to i na PC
*********************************************************
Ještě se chci vrátit k tomuhle:
Tady jsem našel něco o tom řadiči, to jen tak mimo:
http://ci5.speccy.cz/docs/mb02/hardware_en.pdf
http://www.8bc.com/sinclair/
- Oba se tedy shodneme na tom. že LBA jim nesouhlasí.
- Doufám, že se již taky snad shodneme na tom, že disk může přečíst vadný sektor, aniž by vytuhl, tedy pokud je ve stavu, že je jeho poškození tuto činnost nijak neznemožnuje.
- Shodujeme se i v tom, že dle jejich popisu musel být disk v tak nehorázném stavu (všechno to klepání, skřípání a jiné), že by vůbec neměl fungovat, natož se naklonovat na druhý. Taky za těch 8 dní co pracoval, kdyby v tomhle stavu byl, by to nejspíš nevydržel.
- Nebo stav disku nebyl tak dramatický, jak bylo vylíčeno a v podstatě se jednalo o disk z větší, či menší části s poškozenými sektory + sem tam nějaké to klepnutí, či zachrčení. Ovšem nebyl schopen v OS pracovat.
- Jestli se jim poškozený disk povedlo naklonovat na ZX s hardwarem používaným na ZX, půjde to i na PC
*********************************************************
Ještě se chci vrátit k tomuhle:
Ty ata/atapi příkazy, jak je tam popisuješ samozřejmě disk nepřijímá, ten jim vůbec nerozumí. Od toho tam je mimo jiné řadič, aby tyhle příkazy, které si vymyslel člověk k usnadnění své práce přeložil do binárního kódu a poslal disku.MaWa píše:to, že něco napíšeš v assembleru sice obejde operační systém a další věci, ale stejně nakonec JEN a POUZE ŘADIČ převede ten assembler na ata/atapi příkazy jako např. READ_DMA/MULTIPLE/SECTOR/EXT nebo WRITE_DMA/MULTIPLE/SECTOR/EXT...a tyhle příkazy přijme disk a disku bude jedno, jestli an druhý straně mu to vykládá software v assembleru nebo .NET aplikace...prostě blíž k disku s ani s assemblerem nedostaneš...chápeš ? to by sis musel napsat svůj BIOS řadiče a napsat svůj FIRMWARE disku ! a o ničem takovym tam nepíšou...
Přes řadič to jít musí, to je bez debat, ale disk tím ovládáš, firmware ne. Ten zdroják to jasně dokazuje ...MaWa píše:ty IDE registry jsou klasický, ale tím ovládáš pouze řadič...ať se to tváří jak chce...neovládáš tim disk
Tady jsem našel něco o tom řadiči, to jen tak mimo:
http://ci5.speccy.cz/docs/mb02/hardware_en.pdf
http://www.8bc.com/sinclair/
Bathory
- MaWa
- Čestný člen

- Registrován: 27. lis 2003
- Bydliště: Železná Ruda
- Kontaktovat uživatele:
se všemi body obhajoby nad hvězdičkami souhlasím
akorát nemáš pravdu v tomto..."Ty ata/atapi příkazy, jak je tam popisuješ samozřejmě disk nepřijímá, ten jim vůbec nerozumí. Od toho tam je mimo jiné řadič, aby tyhle příkazy, které si vymyslel člověk k usnadnění své práce přeložil do binárního kódu a poslal disku. "...nevím, možná to myslíš dobře, ale možná si to jen špatně napsal, nebo jsem to já špatně pochopil....každopádně:
disk právěže těmhle příkazům rozumí !! samozřejmě, např. WRITE_DMA_QUEUED je jen jmenovka, kterou tomu dal člověk...ve skutečnosti je to prostě určitý signál, který vydá řadič, projde po ide kabelu a na druhé straně ho přijme disk ( = firmware), který vykoná určitou operaci (řekne servu aby seeknul na určitou pozici a pak data zapíše...i když ve skutečnosti díky cachingu to může být i uplně jinak). ale prostě disk těmto příkazům smozřejmě rozumí...vždyť jsou to příkazy definující IDE sběrnici...
a ještě k poslední větě....disk = firmware. DNES.
akorát nemáš pravdu v tomto..."Ty ata/atapi příkazy, jak je tam popisuješ samozřejmě disk nepřijímá, ten jim vůbec nerozumí. Od toho tam je mimo jiné řadič, aby tyhle příkazy, které si vymyslel člověk k usnadnění své práce přeložil do binárního kódu a poslal disku. "...nevím, možná to myslíš dobře, ale možná si to jen špatně napsal, nebo jsem to já špatně pochopil....každopádně:
disk právěže těmhle příkazům rozumí !! samozřejmě, např. WRITE_DMA_QUEUED je jen jmenovka, kterou tomu dal člověk...ve skutečnosti je to prostě určitý signál, který vydá řadič, projde po ide kabelu a na druhé straně ho přijme disk ( = firmware), který vykoná určitou operaci (řekne servu aby seeknul na určitou pozici a pak data zapíše...i když ve skutečnosti díky cachingu to může být i uplně jinak). ale prostě disk těmto příkazům smozřejmě rozumí...vždyť jsou to příkazy definující IDE sběrnici...
a ještě k poslední větě....disk = firmware. DNES.
"A computer allows you to make mistakes faster than any other invention with the possible exceptions of handguns and Tequila."
- blsof8bc
- Nováček

-
- Registrován: 31. srp 2004
JAK TO TEDY JE?
Ahoj, jsem spoluautorem toho "fake" clanku.
Co se tyce casto zminovaneho LBA - pry je to fake, protoze nase LBA nesedi. Sedi, ale...
CPU ZX Spectra Z80 umi nativne pocitat pouze s 16tibitovymi cisly (0-FFFFh, 0-65535 dec.). LBA je vsak 48mibitove. Protoze se kolegovi nechtelo trapit se s rutinami prevadejici 3 16tibitove hodnoty na 48bitovy string pro ucely zobrazeni (s 16tibitovou aritmetikou zadna prdel), zobrazujeme tri tretiny LBA adresy jako 3 16tibitova cisla v dekadicke reprezentaci. Proto:
00000 04769 40624 => 312581808 (LBA)
0000h 12A1h 9EB0h => 12A19EB0h (LBA)
312581808 * 512 / 1024^3 = 149,05062103271484375 GB kapacita disku
Uz to sedi?
Ze Spectrum nezvladne 48mibitove LBA? S jednoduchym radicem neni problem (z diskuse na cdr.cz):
"osmibitova je sirka sbernice, s adresaci disku to nema nic spolecneho, navic az na data probiha komunikace s ATA zarizenim prave po osmi bitech
(data po 16)."
Takze ani zde neni problem.
A co se tyce komunikace s diskem - je samozrejme na urovni ATA prikazu, firmware je tedy nutny. Otazkou je, jak OBSLUZNY SOFTWARE (BIOS, drivery atd.) osetruje ruzne problemy reportovane firmwarem. Je pravdepodobne, ze BIOS (ci Windows drivery obsluhujici ATA zarizeni) pri READ erroru to zkousi stale dokola a dokola (bud donekonecna nebo "hodnekrat"), coz muze mit za nasledek ono zatuhnuti pri pokusu o recovery na PC. ZX se o nic takoveho nesnazi, proste kdyz je problem jde se dal a basta.
***FAKTEM ZUSTAVA, ZE ZADNA Z NAMI ZMINOVANYCH APLIKACI NEUMOZNOVALA DATA PRECIST A ZAPSAT NA JINY ZDRAVY DISK; NAPR. DOSOVSKY HDCLONE, KTERY JINAK FUNGUJE PERFEKTNE, PO TYDNU (!!!) "KLONOVANI" MEL HOTOVE ASI TAK 3% (KLONOVACI DOSOVSKY TOOL OD ONTRACKU NEDOPADL LIP).*** To, ze se z disku nepodarilo do Windows XP vubec nabootovat je snad jasne.
Dopadlo to stejne kdyz byl disk pripojen pouze jako datovy na jinem PC.
Probehl i pokus pripojit disk k naboototovanym Windows. I zde vsak nami zkousene zachranne utility dopadly uplne stejne.
Poslednim spornym bodem snad jiz je, jak to, ze ten disk vydrzel takovou zatez (asi mesic pokusu). Bali jsme se, ale vydrzel. K tomu neni co vic dodat.
Tak snad uz nam vsichni veri. Smirte se s tim, na PC to FAKT neslo.
Nekecam. ZX rulez.
Martin Blazek
Co se tyce casto zminovaneho LBA - pry je to fake, protoze nase LBA nesedi. Sedi, ale...
CPU ZX Spectra Z80 umi nativne pocitat pouze s 16tibitovymi cisly (0-FFFFh, 0-65535 dec.). LBA je vsak 48mibitove. Protoze se kolegovi nechtelo trapit se s rutinami prevadejici 3 16tibitove hodnoty na 48bitovy string pro ucely zobrazeni (s 16tibitovou aritmetikou zadna prdel), zobrazujeme tri tretiny LBA adresy jako 3 16tibitova cisla v dekadicke reprezentaci. Proto:
00000 04769 40624 => 312581808 (LBA)
0000h 12A1h 9EB0h => 12A19EB0h (LBA)
312581808 * 512 / 1024^3 = 149,05062103271484375 GB kapacita disku
Uz to sedi?
Ze Spectrum nezvladne 48mibitove LBA? S jednoduchym radicem neni problem (z diskuse na cdr.cz):
"osmibitova je sirka sbernice, s adresaci disku to nema nic spolecneho, navic az na data probiha komunikace s ATA zarizenim prave po osmi bitech
Takze ani zde neni problem.
A co se tyce komunikace s diskem - je samozrejme na urovni ATA prikazu, firmware je tedy nutny. Otazkou je, jak OBSLUZNY SOFTWARE (BIOS, drivery atd.) osetruje ruzne problemy reportovane firmwarem. Je pravdepodobne, ze BIOS (ci Windows drivery obsluhujici ATA zarizeni) pri READ erroru to zkousi stale dokola a dokola (bud donekonecna nebo "hodnekrat"), coz muze mit za nasledek ono zatuhnuti pri pokusu o recovery na PC. ZX se o nic takoveho nesnazi, proste kdyz je problem jde se dal a basta.
***FAKTEM ZUSTAVA, ZE ZADNA Z NAMI ZMINOVANYCH APLIKACI NEUMOZNOVALA DATA PRECIST A ZAPSAT NA JINY ZDRAVY DISK; NAPR. DOSOVSKY HDCLONE, KTERY JINAK FUNGUJE PERFEKTNE, PO TYDNU (!!!) "KLONOVANI" MEL HOTOVE ASI TAK 3% (KLONOVACI DOSOVSKY TOOL OD ONTRACKU NEDOPADL LIP).*** To, ze se z disku nepodarilo do Windows XP vubec nabootovat je snad jasne.
Dopadlo to stejne kdyz byl disk pripojen pouze jako datovy na jinem PC.
Probehl i pokus pripojit disk k naboototovanym Windows. I zde vsak nami zkousene zachranne utility dopadly uplne stejne.
Poslednim spornym bodem snad jiz je, jak to, ze ten disk vydrzel takovou zatez (asi mesic pokusu). Bali jsme se, ale vydrzel. K tomu neni co vic dodat.
Tak snad uz nam vsichni veri. Smirte se s tim, na PC to FAKT neslo.
Nekecam. ZX rulez.
Martin Blazek
- Bathory
- Čestný člen

- Registrován: 28. úno 2004
- Bydliště: BlackworlD
- Kontaktovat uživatele:
Paráda, tak jsme se hnuli.MaWa píše:se všemi body obhajoby nad hvězdičkami souhlasím![]()
To jsme si opravdu špatně rozuměli. Oprav mě jestli kecám, ale takhle to snad bylo kdysi před lety "je to prostě určitý signál, který vydá řadič, projde po ide kabelu a na druhé straně ho přijme disk".MaWa píše:"...nevím, možná to myslíš dobře, ale možná si to jen špatně napsal, nebo jsem to já špatně pochopil....každopádně:
disk právěže těmhle příkazům rozumí !! samozřejmě, např. WRITE_DMA_QUEUED je jen jmenovka, kterou tomu dal člověk...ve skutečnosti je to prostě určitý signál, který vydá řadič, projde po ide kabelu a na druhé straně ho přijme disk ( = firmware)
Já myslel, že dnešní disky už mají svůj řadič ...
Naposledy upravil(a) Bathory dne úte 31. srp 2004, 19:08, celkem upraveno 2 x.
Bathory
- Bathory
- Čestný člen

- Registrován: 28. úno 2004
- Bydliště: BlackworlD
- Kontaktovat uživatele:
Re: JAK TO TEDY JE?
No konečně, díky, že ses ozval. Než jsem dopsal svůj předchozí post, tak jsi to sem vložil 

Myslím, že celá tahle kauza byla příjemným osvěžením zde na fóru a obohatila nás všechny o pár nových či starých poznatků ............
O tomhle jsme se něco nadiskutovali, ale těsně před tvým postem jsme se shodliblsof8bc píše:A co se tyce komunikace s diskem - je samozrejme na urovni ATA prikazu, firmware je tedy nutny. Otazkou je, jak OBSLUZNY SOFTWARE (BIOS, drivery atd.) osetruje ruzne problemy reportovane firmwarem. Je pravdepodobne, ze BIOS (ci Windows drivery obsluhujici ATA zarizeni) pri READ erroru to zkousi stale dokola a dokola (bud donekonecna nebo "hodnekrat"), coz muze mit za nasledek ono zatuhnuti pri pokusu o recovery na PC. ZX se o nic takoveho nesnazi, proste kdyz je problem jde se dal a basta.
Myslím, že celá tahle kauza byla příjemným osvěžením zde na fóru a obohatila nás všechny o pár nových či starých poznatků ............
Bathory
- MaWa
- Čestný člen

- Registrován: 27. lis 2003
- Bydliště: Železná Ruda
- Kontaktovat uživatele:
jasně že mají, napsal sem to blbě...prosím šktrni slovo "disk" a nahraď ho souslovím "řadič disku"Bathory píše:To jsme si opravdu špatně rozuměli. Oprav mě jestli kecám, ale takhle to snad bylo kdysi před lety "je to prostě určitý signál, který vydá řadič, projde po ide kabelu a na druhé straně ho přijme disk".
Já myslel, že dnešní disky už mají svůj řadič ...
to Martin Blazek:
takže ty 3 16bit čísla jsou jen pro zobrazení na monitoru ? nebo se to takhle posílá i disku ?
ten řadič umí příkazy pro 48bit addressing ? tzn všechny s _EXT ?
"A computer allows you to make mistakes faster than any other invention with the possible exceptions of handguns and Tequila."
- Bathory
- Čestný člen

- Registrován: 28. úno 2004
- Bydliště: BlackworlD
- Kontaktovat uživatele:
Otázka sice šla na Martina Blažka, ale myslím, že je to takhle, to jen pro případ, kdyby se už neozval, kdyžtak, ať mě opraví:MaWa píše:ten řadič umí příkazy pro 48bit addressing ? tzn všechny s _EXT ?
Ten jejich řadič neumí 48bitové adresování. S ATA komunikuje po 8bitech a software ho pak složí na 48bit ze 3 x 16bitů. 16bitové číslo je na 8bitovém ZX Spectrum uloženo ve dvou 8bitech (2 byte, bajty), kde první byte je tzv. vyšší a druhý nižší. Například číslo 50000 je uloženo takto: 50000:256=195,3125. Vyšší byte má hodnotu celého čísla, tedy "195" a nižší se vypočítá takto 50000-(195x256)="80", čili 50000 mínus hodnota vyššího byte vynásobená 256. Výsledek 50000 = "195", "80".
ZX Spectrum, ač 8bitový počítač, umí pracovat s 16bitovými registry.
Snad jsem to napsal správně.
Bathory
- MaWa
- Čestný člen

- Registrován: 27. lis 2003
- Bydliště: Železná Ruda
- Kontaktovat uživatele:
no, asi jsem urejpanej, ale ty si IDE představuješ trochu moc jednoduše. pokud ten řadič neumí 48bit adresování, nelze ho k tomu žádným normálním SWrem donutit. proto bych uvítal, kdyby se tu objevil autor a osvětlil nám, jak toto dokázal... 
"A computer allows you to make mistakes faster than any other invention with the possible exceptions of handguns and Tequila."
- Bathory
- Čestný člen

- Registrován: 28. úno 2004
- Bydliště: BlackworlD
- Kontaktovat uživatele:
Tak je možná na čase, vysvětlil ty, jak že to podle tebe funguje.
Kolika bitový je přenos po ATA, jakým způsobem a v kolika bitech se ukládají data na disk a jak to souvisí s 48bitovým adresováním?
Docela by mě taky zajímalo, jestli disk vůbec využije všech 40 žil na 40 kabelu (80žilovej necháme zatím na pokoji) a taky jak podle tebe probíhá komunikace mezi PC a diskem, protože nevěřím tomu, že je disk ovládán těmi ATA příkazy, řadič určitě, ale k disku už teče přeložaný stroják (binární kód). V tom disku je přeci chipset a ten zrovna tak jako jakýkoliv jiný chipset nezná nic jiného než 2kovou soustavu. K čemu by tam potom teda byl řadič?
Jinak to nijak neberu jako rejpání, naopak jsem trochu nostagicky zavzpomínal na doby dávno minulé a i se něčemu přiučil. Ty snad taky ...
Kolika bitový je přenos po ATA, jakým způsobem a v kolika bitech se ukládají data na disk a jak to souvisí s 48bitovým adresováním?
Docela by mě taky zajímalo, jestli disk vůbec využije všech 40 žil na 40 kabelu (80žilovej necháme zatím na pokoji) a taky jak podle tebe probíhá komunikace mezi PC a diskem, protože nevěřím tomu, že je disk ovládán těmi ATA příkazy, řadič určitě, ale k disku už teče přeložaný stroják (binární kód). V tom disku je přeci chipset a ten zrovna tak jako jakýkoliv jiný chipset nezná nic jiného než 2kovou soustavu. K čemu by tam potom teda byl řadič?
Jinak to nijak neberu jako rejpání, naopak jsem trochu nostagicky zavzpomínal na doby dávno minulé a i se něčemu přiučil. Ty snad taky ...
Bathory
- TomV
- Středně pokročilý

- Registrován: 12. lis 2003
- Bydliště: Jihočeská Metropole (tm) ... lol
- Kontaktovat uživatele:
Jen bych doplnil, že nejen čipset, ale všechna digitální technika zná jenom 2kovou soustavu. Ale jelikož je v tom disku procesor (a tím pádem i program), tak nevidím důvod k tomu, aby disk nemohl přijímat příkazy. Ten řadič je tam pro to, aby zajistil komunikační rozhraní mezi diskem a zbytkem systému po hardwarové stránce.
The problem has been eaten.
Vanilkovou do velkýho kornoutu bych prosil... hodně velkýho... hodně vanilkovou

Vanilkovou do velkýho kornoutu bych prosil... hodně velkýho... hodně vanilkovou
- Bathory
- Čestný člen

- Registrován: 28. úno 2004
- Bydliště: BlackworlD
- Kontaktovat uživatele:
Chipset je v podstatě procesor.TomV píše:Jen bych doplnil, že nejen čipset, ale všechna digitální technika zná jenom 2kovou soustavu. Ale jelikož je v tom disku procesor (a tím pádem i program), tak nevidím důvod k tomu, aby disk nemohl přijímat příkazy. Ten řadič je tam pro to, aby zajistil komunikační rozhraní mezi diskem a zbytkem systému po hardwarové stránce.
Co to je, disk přijímá příkazy? Příkazy přijímá procesor a ten ještě nikdo nikdy nenaučil pracovat jinak než 01010101. Neexistuje příkaz, který by se dostal k procesoru, tam se dostane pouze strojová instrukce, binární kód.
Ano, řadič tam je aby zajistil komunikační rozhraní mezi diskem a počítačem. A protože procesor nerozumí žádnému z ATA příkazů, musí mu to řadič přeložit do 01010101.
Jinak k procesoru samozřejmě patří program (procesor se bez něj obejde, ale lidi ne). Ten se dřív nahrával do ROM, dnes do EPROM, protože ROMku nebylo možné přepsat, pouze z ní číst. Kdyby firmware překládal procesoru ATA příkazy do binárního kódu, tak můžeš zapomenout na rychlý disk.
Nevím jestli to pamatuješ, ale dřív disky neměli řadič v sobě, ale strkal se do ISA slotů jako přídavná karta.
Taky je potřeba rozlišovat mezi řadičem disku a řadičem rozhraní na základní desce, ale v tom si snad rozumíme.
Bathory
- MaWa
- Čestný člen

- Registrován: 27. lis 2003
- Bydliště: Železná Ruda
- Kontaktovat uživatele:
vy si IDE rozhraní představujete jako hurvínek válku...nic ve zlym
prostě pochopte, že aby se adresa sektoru který je nad 128gb dostala z IDE řadiče přes IDE kabel do řadiče disku, MUSÍ ten řadič vydat signál (skládající se nějakého množství ASSERT a NEGATE napětí Val a Vne o nějakém napětí) s rozšířením _EXT. a to řadič, který neumí 48bit adresování neumí. ano, šlo by to "natvrdo", pokud někdo ví jaký počet jakých signálů je potřeba k vydání těchto EXT signálů a taky umí ošetřit všechny odpovídající registry. ale podle vás jsou autoři "geekové" v assembleru, ne na ATA rozhraní...
ano, já vím, že stejně je IDE 16bitové, data se posílají 10/8 kodování, ale tady jde o ten příkaz disku pro operaci s čímkoliv nad 128gb. a ten musí být podle specifikace.
pokud mi nevěříš, uploadnul jsem kompletní ata-6 specifikaci sem... http://www.jsc-computers.cz/pub/ata-6.pdf
je tam jasně řečeno, že pro např. čtení dat nad 128gb musí ide řadič vydat příkaz READ_DMA_EXT, který se liší od READ_DMA v tom, že umí adresaci nad 128gb. a EXT signály umí jen řadiče co podporují 48bit adresování, nebo se to musí udělat manuálně. o čemž v článku ani zde není ani slovo...
prostě pochopte, že aby se adresa sektoru který je nad 128gb dostala z IDE řadiče přes IDE kabel do řadiče disku, MUSÍ ten řadič vydat signál (skládající se nějakého množství ASSERT a NEGATE napětí Val a Vne o nějakém napětí) s rozšířením _EXT. a to řadič, který neumí 48bit adresování neumí. ano, šlo by to "natvrdo", pokud někdo ví jaký počet jakých signálů je potřeba k vydání těchto EXT signálů a taky umí ošetřit všechny odpovídající registry. ale podle vás jsou autoři "geekové" v assembleru, ne na ATA rozhraní...
ano, já vím, že stejně je IDE 16bitové, data se posílají 10/8 kodování, ale tady jde o ten příkaz disku pro operaci s čímkoliv nad 128gb. a ten musí být podle specifikace.
pokud mi nevěříš, uploadnul jsem kompletní ata-6 specifikaci sem... http://www.jsc-computers.cz/pub/ata-6.pdf
je tam jasně řečeno, že pro např. čtení dat nad 128gb musí ide řadič vydat příkaz READ_DMA_EXT, který se liší od READ_DMA v tom, že umí adresaci nad 128gb. a EXT signály umí jen řadiče co podporují 48bit adresování, nebo se to musí udělat manuálně. o čemž v článku ani zde není ani slovo...
"A computer allows you to make mistakes faster than any other invention with the possible exceptions of handguns and Tequila."
- Bathory
- Čestný člen

- Registrován: 28. úno 2004
- Bydliště: BlackworlD
- Kontaktovat uživatele:
Určitě a taky se s ním radím.MaWa píše:vy si IDE rozhraní představujete jako hurvínek válku...nic ve zlym![]()
Nevím proč sem pleteš signály, napětí atd., tohle přeci neřešíme, celej počítač je na tom postavenej.MaWa píše:prostě pochopte, že aby se adresa sektoru který je nad 128gb dostala z IDE řadiče přes IDE kabel do řadiče disku, MUSÍ ten řadič vydat signál (skládající se nějakého množství ASSERT a NEGATE napětí Val a Vne o nějakém napětí) s rozšířením _EXT. a to řadič, který neumí 48bit adresování neumí. ano, šlo by to "natvrdo", pokud někdo ví jaký počet jakých signálů je potřeba k vydání těchto EXT signálů a taky umí ošetřit všechny odpovídající registry. ale podle vás jsou autoři "geekové" v assembleru, ne na ATA rozhraní...
Takže, jestli tomu dobře rozumím a nemám chuť to teď přepočítávat, číslo vyšší 128GB nelze zapsat do 32bitů, proto 48bit.MaWa píše:ano, já vím, že stejně je IDE 16bitové, data se posílají 10/8 kodování, ale tady jde o ten příkaz disku pro operaci s čímkoliv nad 128gb. a ten musí být podle specifikace.
Je logický, že starý řadič, který byl vyrobený pro ZX Spectrum nemůže znát nový příkaz pro 48bitovou adresaci, tohle už jsem psal, že to neumí!MaWa píše:je tam jasně řečeno, že pro např. čtení dat nad 128gb musí ide řadič vydat příkaz READ_DMA_EXT, který se liší od READ_DMA v tom, že umí adresaci nad 128gb. a EXT signály umí jen řadiče co podporují 48bit adresování, nebo se to musí udělat manuálně. o čemž v článku ani zde není ani slovo...
A teď napíšu svůj názor:
Jestli jejich řadič umí nebo ne 48bit je přece úplně jedno, ten jim posloužil pouze jako řadič rozhraní a ne jako diskový řadič, ten je přece v disku a 48bit adresování umí. ZX nemá IDE výstupní rozhraní, nelze do něj zasunout IDE 40žilový kabel, proto museli použít v podstatě něco jako redukci.
Příkazy ATA posíláš po 8bitech (data po 16), takže je jedno, jestli ty 8bity přijdou z PC nebo ze ZX, diskový řadič nic nepozná, prostě ty data zpracuje a pošle dál.
Doufám, že těď už je to jasný.
Naposledy upravil(a) Bathory dne ned 5. zář 2004, 11:20, celkem upraveno 1 x.
Bathory
- MaWa
- Čestný člen

- Registrován: 27. lis 2003
- Bydliště: Železná Ruda
- Kontaktovat uživatele:
možná ty tenhle problém neřešíš, jenomže je to přesně to, co bys měl řešit. protože to je ta podstata problému. je irelevantní, jestli se data přenášej takovym množstvím a příkazy jinak, faktem prostě je, že pokud chceš donutit disk aby udělal cokoliv se sektorem který je někde nad 128gb, tak musíš donutit, aby ide řadič vydal command (de facto signál) s rozšížení EXT. ten command je 8bitový, stejně jako všechny ostatní příkazy. ale je to nutná a postačující podmínka k tomu, abys mohl dělat cokoliv nad 128gb. nelze použít příkazy bez EXT.Bathory píše:Nevím proč sem pleteš signály, napětí atd., tohle přeci neřešíme, celej počítač je na tom postavenej.MaWa píše:prostě pochopte, že aby se adresa sektoru který je nad 128gb dostala z IDE řadiče přes IDE kabel do řadiče disku, MUSÍ ten řadič vydat signál (skládající se nějakého množství ASSERT a NEGATE napětí Val a Vne o nějakém napětí) s rozšířením _EXT. a to řadič, který neumí 48bit adresování neumí. ano, šlo by to "natvrdo", pokud někdo ví jaký počet jakých signálů je potřeba k vydání těchto EXT signálů a taky umí ošetřit všechny odpovídající registry. ale podle vás jsou autoři "geekové" v assembleru, ne na ATA rozhraní...
"A computer allows you to make mistakes faster than any other invention with the possible exceptions of handguns and Tequila."
- Bathory
- Čestný člen

- Registrován: 28. úno 2004
- Bydliště: BlackworlD
- Kontaktovat uživatele:
Dobrý, takže teď pro změnu budeme probírat IDE řadič, to snad ne.MaWa píše:faktem prostě je, že pokud chceš donutit disk aby udělal cokoliv se sektorem který je někde nad 128gb, tak musíš donutit, aby ide řadič vydal command (de facto signál) s rozšížení EXT. ten command je 8bitový, stejně jako všechny ostatní příkazy. ale je to nutná a postačující podmínka k tomu, abys mohl dělat cokoliv nad 128gb. nelze použít příkazy bez EXT.
Podívej, každý příkaz má svoji číselnou podobu (kód) uloženou v byte s hodnotou od 0-255. Třeba v Basicu je příkaz FORMAT uložen v 1 byte jako číslo 208, což je v binárním kódu zapsáno jako 1 1 0 1 0 0 0 0. Každý jiný příkaz i jakýkoliv nový příkaz, který někdo vymyslí třeba příští měsíc bude mít svůj číselný ekvivalent a zrovna tak ho mají i ty příkazy s rozšířením EXT.
Dejme tomu, že příkazu READ SECTOR(S) EXT bude přiděleno číslo 180. Na ZX uděláš program, který příkaz READ SECTOR(S) EXT pošle přes MB-02+ do hdd a to tak, že tam pošle kód (jak taky jinak) tohoto příkazu v 8bitech 10110100. Diskovému řadiči, který ty data převezme jako první je šumafuk, jestli mu těch 8bitů přiteče z IDE rozhraní na základní desce nebo z MB-02+, projede svoji tabulku kódů a když narazí na 10110100, tak to vyhodnotí jako READ SECTOR(S) EXT.
Obě zařízení, jak MB-02+, tak diskový řadič na disku umí přijímat i odesílat 8bitové příkazy (kódy), takže v čem je problém.
Samozřejmě já nevím, jaký kód má přidělen příkaz READ SECTOR(S) EXT, určitě to nebude 180 a s největší pravděpodobností bude minimálně ve 2-3 bytech, protože s sebou jistě ponese i číselný operand.
btw: poslal jsem jim mail, ať se sem ještě někdo od nich podívá, třeba to vysvětlí líp, tak uvidíme ...
Bathory