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 ram table 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