Duomenų atkūrimas-Western Digital MHDD with SCT command set

Western Digital MHDD with SCT command set

MHDD 4.5 versija su ATA terminalu ir script mašina suteikia dideles galimybes darbams su HDD tarnybine informacija.
čia bus patalpinti MHDD scriptai
pvz.  Rom nuskaitimo skriptas
 WDC Sata diskams, kurių "interface" išnaudotas Marvell 88i8030-TBC tiltas, kuris nepraleidžia WD "vendor command", bet egzistuoja vienas sprendimas kuris leidžia vis dėlto dirbti su šių disku tarnybine informacija be pcb. pakeitimo arba Marvell 88i8030-TBC litavimo, tai darbas su SCT komandomis.
pvz. ROM ir tarnybinės zonos nuskaitymas diskams  Eagle ir Polaris su minėtu tiltu, naujesnės kartos WD disku šeimynoms tokioms kaip pvz. Hercules ir Odyssey, kurie jau neturi minėto tilto ir duoda laisvai dirbti su tarnybine zona, bet nuskaityti arba įrašyti ROM su standartinėmis ATA komandomis paprastai yra neįmanoma.
 

Skriptų video pavyzdžiai: archyvas ( geresnė kokybė, be garso.), Online.

========================================================================================

WDC SATA, Hercules ir Odyssey rom nuskaitymas

; skriptas WDC sata rom  read
;
reset
waitnbsy
regs = $45 $0b $00 $44 $57 $a0 $80
waitnbsy
regs = $d6 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = rom128.bin
regs = $d5 $80 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = 2rom0.bin
regs = $d5 $80 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = 2rom1.bin
; end

konfigūracijos sektorius rom128.bin 512 byte pirmieji 16 likusieji  00  0x 0000 24 00 01 00 00 00 00 00 00 00 02 00 00 00 00 00

========================================================================================

; skriptas WDC sata ratable read
;
reset
waitnbsy
regs = $45 $0b $00 $44 $57 $a0 $80
waitnbsy
regs = $d6 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = ram0d.bin
regs = $d5 $02 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = 2ramd.bin

; end

konfigūracijos sektorius ram0d.bin 512 byte pirmieji 16 likusieji  00  0x 0000 0D 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00


========================================================================================

========================================================================================

WD Marvell rom  nuskaitymas

; WD Marvell flash 128 read
reset
waitnbsy
regs = $45 $0b $00 $44 $57 $a0 $80
waitnbsy
regs = $d6 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = rom128.bin
regs = $d5 $00 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = rom.bin
; end
konfigūracijos sektorius rom128.bin 512 byte pirmieji 16 likusieji  00  0x 0000 24 00 01 00 00 00 00 00 00 00 02 00 00 00 00 00



========================================================================================

WD Marvell Royl rom  nuskaitymas

; WD Marvell Royl serial flash 192 read
reset
waitnbsy
regs = $45 $0b $00 $44 $57 $a0 $80
waitnbsy
regs = $d6 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = rom192.bin
regs = $d5 $80 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = 3rom0.bin
regs = $d5 $80 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = 3rom1.bin
regs = $d5 $80 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = 3rom2.bin
; end

konfigūracijos sektorius rom192.bin 512 byte pirmieji 16 likusieji  00  0x 0000 24 00 01 00 00 00 00 00 00 00 03 00 00 00 00 00

 

========================================================================================

WD Marvell Royl SA rom copy nuskaitymas

; WD Marvell Royl SA rom copy read
reset
waitnbsy
regs = $45 $0b $00 $44 $57 $a0 $80
waitnbsy
regs = $d6 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = mw109.bin
regs = $d5 $01 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = 109_head.bin
regs = $d5 $80 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = rom1.bin
regs = $d5 $80 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = rom2.bin
regs = $d5 $80 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = rom3.bin

; modul 102 rom 0A - head map
regs = $d6 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = mw102.bin
waitnbsy
regs = $d5 $01 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = 102.bin
; modul 107 rom 0b - rom moduliu katalogas
regs = $d6 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = mw107.bin
waitnbsy
regs = $d5 $01 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = 107.bin
; modul 105 rom 30 - tarnybines zonos transliatorius
regs = $d6 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = mw105.bin
waitnbsy
regs = $d5 $02 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = 105.bin
; modul 103 rom 47 - tarnybines zonos adaptivai
regs = $d6 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = mw103.bin
waitnbsy
regs = $d5 $02 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = 103.bin
; modul 104 rom 0d - mikroprogramos versija
regs = $d6 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = mw104.bin
waitnbsy
regs = $d5 $01 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = 104.bin
; end

konfigūracijos sektorius mw109.bin 512 byte pirmieji 16 likusieji 00 0x 0000 08 00 01 00 09 01 00 00 00 00 00 00 00 00 00 00
konfigūracijos sektorius mw102.bin 512 byte pirmieji 16 likusieji 00 0x 0000 08 00 01 00 02 01 00 00 00 00 00 00 00 00 00 00
konfigūracijos sektorius mw103.bin 512 byte pirmieji 16 likusieji 00 0x 0000 08 00 01 00 03 01 00 00 00 00 00 00 00 00 00 00
konfigūracijos sektorius mw104.bin 512 byte pirmieji 16 likusieji 00 0x 0000 08 00 01 00 04 01 00 00 00 00 00 00 00 00 00 00
konfigūracijos sektorius mw105.bin 512 byte pirmieji 16 likusieji 00 0x 0000 08 00 01 00 05 01 00 00 00 00 00 00 00 00 00 00
konfigūracijos sektorius mw107.bin 512 byte pirmieji 16 likusieji 00 0x 0000 08 00 01 00 07 01 00 00 00 00 00 00 00 00 00 00

 

========================================================================================

WD Marvell Royl D ram table nuskaitymas

; MHDD 4.5 script name: wd royl rp.
reset
waitnbsy
regs = $45 $0b $00 $44 $57 $a0 $80
waitnbsy
regs = $d6 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
; key sector "csrp0d.bin" D table nuskaitimui turi būti toks action code "d", function code "d" .
sectorsfrom = csrp0d.bin
regs = $d5 $01 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = rp0d1.bin
regs = $d5 $01 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = rp0d2.bin
;faile rp0d1.bin bus tokie duomenys
;0x0030 00 00 56 FF FF FF FF FF FF FF 00 FF FF FF FF FF ofsetas 32h -39h mūsų cilindrai
;0x0040 FF FF 2D 05 00 00 00 00 82 35 00 00 00 00 00 00 ofsetas 42h-43h mūsų spt
; trumpas paaiškinimas dėl apskaičiavimo
; FFFFFFFF=-1cyl, FFFFFFFE=-2cyl, FFFFFF56=-170cyl
; 052D= 1325 sec.
;end
konfigūracijos sektorius csrp0d.bin 512 byte pirmieji 16 likusieji  00  0x 0000 0D 00 0D 00 00 00 00 00 00 00 00 00 00 00 00 00

 

========================================================================================

 WD Marvell Royl cilindru nuskaitymas

 

;reads track -170 on WD royl drives ex.WD7500AAVS-00D7B0 spt 1325/: -170cyl ;
reset
waitnbsy
regs = $45 $0b $00 $44 $57 $a0 $80
waitnbsy
regs = $d6 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
;reikia atkreipti dėmesį, kad pvz. wd royl diskams skirtingai nuo senų marvell pirmas trakas yra su didesniu nr., pvz 00HKA0 "mammoth"
;tai -1 o 00D7B0 "kermit" tai -170, -1 trakas royl diske pilnai nesuformatuotas ir po
;paskutiniu sektorių su informacija bus klaida „idnf“ . taigi skaityti pradedam royl nuo -max iki - min .
; key sector "cstr56.bin" -170 trako nuskaitimui : action code "c", function code "1"
; per viena komanda su mhdd nuskaitysim po 256 sektorių, todėl trakas bus padalintas.

sectorsfrom = cstr56.bin
regs = $d5 $00 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = rtra01.bin
regs = $d5 $00 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = rtra02.bin
regs = $d5 $00 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = rtra03.bin
regs = $d5 $00 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = rtra04.bin
regs = $d5 $00 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = rtra05.bin
regs = $d5 $2D $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = rtra06.bin
; end

konfigūracijos sektorius cstr56.bin 512 byte pirmieji 16 likusieji  00  0x 0000 0C 00 01 00 56 FF FF FF 00 00 01 00 2D 05 00 00


 

WD Marvell Royl cilindru įrašymas

 

; MHDD 4.5 script name: WD Royl Kermit (SPT 1325)write -3 track
reset
waitnbsy
regs = $45 $0b $00 $44 $57 $a0 $80
waitnbsy
regs = $d6 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = wr3.bin
regs = $d5 $00 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = rtra01.bin
regs = $d6 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = 1wr3.bin
regs = $d5 $00 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = rtra02.bin
regs = $d6 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = 2wr3.bin
regs = $d5 $00 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = rtra03.bin
regs = $d6 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = 3wr3.bin
regs = $d5 $00 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = rtra04.bin
regs = $d6 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = 4wr3.bin
regs = $d5 $00 $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = rtra05.bin
regs = $d6 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = 5wr3.bin
regs = $d5 $2d $bf $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = rtra06.bin

;end

konfigūracijos sektorius   wr3.bin 512 byte pirmieji 16 likusieji 00 0x 0000 0C 00 02 00 FD FF FF FF 00 00 01 00 00 01 00 00
konfigūracijos sektorius 1wr3.bin 512 byte pirmieji 16 likusieji 00 0x 0000 0C 00 02 00 FD FF FF FF 00 00 01 01 00 01 00 00
konfigūracijos sektorius 2wr3.bin 512 byte pirmieji 16 likusieji 00 0x 0000 0C 00 02 00 FD FF FF FF 00 00 01 02 00 01 00 00
konfigūracijos sektorius 3wr3.bin 512 byte pirmieji 16 likusieji 00 0x 0000 0C 00 02 00 FD FF FF FF 00 00 01 03 00 01 00 00
konfigūracijos sektorius 4wr3.bin 512 byte pirmieji 16 likusieji 00 0x 0000 0C 00 02 00 FD FF FF FF 00 00 01 04 00 01 00 00
konfigūracijos sektorius 5wr3.bin 512 byte pirmieji 16 likusieji 00 0x 0000 0C 00 02 00 FD FF FF FF 00 00 01 05 2d 00 00 00

=========================================================================================

WD Marvell translatorių atkūrimas (perskaičiavimas.)

; skriptas WD marvell translatorių perskaičiavimas
;
reset
waitnbsy
regs = $45 $0b $00 $44 $57 $a0 $80
waitnbsy
regs = $d6 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsfrom = mwtrrec.bin
waitnbsy
regs = $d5 $01 $be $4f $c2 $a0 $b0
waitnbsy
checkdrq
sectorsto = i ; ( be )
; end

konfigūracijos sektorius mwtrrec.bin 512 byte pirmieji 16 likusieji  00  0x 0000 18 00 02 00 12 00 00 00 00 00 00 00 00 00 00 00

 

 

Duomenų atkūrimas