Konference: Počítač SHARP MZ-800 a emulátory

Od: Zdenek Adler
Datum: 18.10.2004 09:33
Předmět: Problemy s diskem WD Caviar 2635 (640 MB):


Ahojte Sharpiste,

minulou stredu jsme se jiz pustili do psani programu na MZ-800 pro
spolupraci s 16-bitovym IDE rozhranim, ale tvrde jsme narazili na problem
vyse zminenym HDD.

Stala se nam asi takovato vec: u disku se nam bez problemu zadaril prikaz
0xEC (Identify drive), ale pri pokusu o prikaz 0x20 (0x21) pro cteni sektoru
doslo k chybe - ihned po zapsani prikazu do command registru disk nastavil
status 0x59 a do Error registru nastavil 0x04 (tedy ze predchozi operace
byla zrusena kvuli invalidnimu stavu disku). Zkusil jsem jeste vyuzit
nastaveneho DRQ bitu a vycetl jsem vsech 512B z bufferu, ale bez ohledu na
to jaky jsem se pokusil precist sektor mi ta vracelo ta sama data (ktera mi
nic nerikala a ve skutecnosti se na disku ani nenachazela).

Rekl bych si ze se jedna o vadny disk, ale nejhorsi na tom je, ze:

- na PC funguje bez nejmensi chybicky (normalne na nej nakopiruju soubory,
prohlidnu si ho Diskeditem,...)

- na MZ-800 se mi na nem podari prikaz Identify drive, tedy v IDE rozhrani
snad chyba nebude...

- ze zoufalosti jsem ten disk pripojil i k jednocipu na bazi 8051
(DS89C420 - naprimo ke 3 jeho portum) a choval se tam uplne stejne zahadne -
tento procesor je jeste o kapku rychlejsi nez Z80, takze jsem zjistil, ze po
prikazu 0x20 se nizsich 8 bitu IDE sbernice na velmi malou chvili nastavi do
0xD0 (tzn. at se snazim cist z jakehokoliv z 8-mi IDE registru, tak z
kazdeho prectu tohle cislo). Pak uz z nej vyctu tu samou chybu, jako na
Z80...



Poradi mi prosim nekdo, kde delam chybu? Normalne bych to asi hodil za
hlavu, ale kdyz uz pisu program, tak at slape se vsemi disky...

Diky,

Zdenek



Ostatní příspěvky vlákna:

 
[2004/1 (1)] [2004/2 (1)] [2004/4 (33)] [2004/5 (34)] [2004/6 (12)] [2004/7 (1)] [2004/8 (12)] [2004/9 (31)] [2004/10 (52)] [2004/11 (43)] [2004/12 (4)]


[1999 (1)] [2000 (168)] [2001 (733)] [2002 (459)] [2003 (654)] [2004 (224)] [2005 (105)] [2006 (182)] [2007 (201)] [2008 (294)] [2009 (363)] [2010 (782)] [2011 (522)] [2012 (642)] [2013 (442)]