________________________________________________________________________________
...(для лучшего, визуального восприятия таблиц, выберите фонт "Fixedsys")
________________________________________________________________________________

********************************************************************************
* Немного, о стуктурах Firmware, модулях WD-MARVELL и TMOS-командах SEAGATE... *
********************************************************************************


Во FlashCode, у MARVELL, пока встречалось только два непакованных ехе-модуля (00 и 0A),
(исключая таблицу загрузки (в начале) и default-модули (в конце)).
Остальные блоки FlashCode - запакованы.

... Структура LoadTable (таблица загрузки) во FlashCode WD-Marvell.
________________________________________________________________________________
Model:
WD800JB-00FMA0 (Marvell CPU)
WD-WCAJ91911748

Flash Code LoadMap Table:
Таблица загрузки кодовых блоков в память.
(Table of the loading blocks codes to CPU Programm Memory)
________________________________________________________________________________
Record Lenght = 32bytes (32xXX)
(XX, варьируется от 09h до 0Ah (Max=0Fh ???))

Offset: 00000000
___________________________________________________________________________
nn.??.??.??| CS-BBlk| LenBlk |BegOfset|  LoadAddrRange  |  ????  |1stW.xxCS
___________________________________________________________________________
_____1_____|____2___|____3___|____4___|____5___|____6___|____7___|____8____
5A.04.00.00-05080000-04080000-60010000-00F00000-00F00000-010A0000-0000.00C3
01.01.00.00-E5530000-E4530000-65090000-00000000-FFFFFFFF-010A0000-C86C.001A
02.01.00.00-453D0000-443D0000-4A5D0000-006D0000-FFFFFFFF-010A0000-8060.0001
03.01.00.00-D9040000-D8040000-8F9A0000-80CD0000-FFFFFFFF-010A0000-1406.0054
04.03.00.00-19010000-18010000-689F0000-50000004-FFFFFFFF-010A0000-C401.0061
05.03.00.00-55000000-54000000-81A00000-A0240004-FFFFFFFF-010A0000-E800.0089
06.03.00.00-61140000-60140000-D6A00000-00000021-FFFFFFFF-010A0000-F81E.00A6
07.01.01.00-89D40000-88D40000-37B50000-00908010-FFFFFFFF-010A0000-1815.0002
08.01.00.00-AD360000-AC360000-C0890100-00A88110-FFFFFFFF-010A0000-F047.008F
09.01.00.00-E90F0000-E80F0000-6DC00100-0026FE1F-FFFFFFFF-010A0000-8C16.0013
0A.00.00.00-35210000-34210000-56D00100-0000FE1F-00000000-010A0000-0000.0004
_____1_____|____2___|____3___|____4___|____5___|____6___|____7___|____8____

*** Note:
Block 00 [MainLoader (Unpacker)???] NOT COMPRESSED !!!
Block 0A [BootInit (Unpacker)???] NOT COMPRESSED !!!

Контрольная сумма, имеется на каждую строку конфигурации
и на каждый кодовый блок, описываемый этой строкой.
_____________________
1: = nn.xx.xx.xx
nn = Block Code Number (Общее количество блоков, может варьировать)
xx = Page/Segment ???
xx = Page/Segment ??
xx = ??
(Exm: 5A.04.00.00 = (5a=[(Z(Zero))Flash Signature]) = block 00h)
(Exm: 08.01.00.00 = block 08)
_____________________
2: = CS BBlk
Address CS block-byte (Last block-byte) of the block code
Адрес последнего байта блока (CS блока).
_____________________
3: = LenBlk
Size block code
Размер блока
("CS BBlk" и "LenBlk", могут быть равны)
_____________________
4:
Address begin block code
Адрес начала влока
_____________________
5:, 6:
Range Address of the loading to CPU Programm Memory
Допустимый диапазон адресного пространства, куда может быть загружен блок.
(if 5:=6:, that the address is strictly fixed)
Если адреса (5:,6:) равны, значит адрес фиксирован и блок может быть
загружен только по этому адресу.
_____________________
7: = ???
_____________________
8: = 1stW.xxCS
1stW = First word in block.
Первое слово блока (кроме первого 00h и последнего 0Ah).
Очень похоже, что в первых трех байтах всех блоков, хранится значение,
минимально-требуемой памяти, для его работы.
например:

Real LenBlk 00-[0408:00] = 000804   Value Of Block 00-[5700:00] = 000057
Real LenBlk 01-[E453:00] = 0053E4   Value Of Block 01-[C86C:00] = 006СС8
Real LenBlk 02-[443D:00] = 003D44   Value Of Block 02-[8060:00] = 006080
Real LenBlk 03-[D804:00] = 0004D8   Value Of Block 03-[1406:00] = 000614
Real LenBlk 04-[1801:00] = 000118   Value Of Block 04-[C401:00] = 0001C4
Real LenBlk 05-[5400:00] = 000054   Value Of Block 05-[E800:00] = 0000E8
Real LenBlk 06-[6014:00] = 001460   Value Of Block 06-[F81E:00] = 001EF8
Real LenBlk 07-[88D4:00] = 00D488   Value Of Block 07-[1815:01] = 011518
Real LenBlk 08-[AC36:00] = 0036AC   Value Of Block 08-[F047:00] = 0047F0
Real LenBlk 09-[E80F:00] = 000FE8   Value Of Block 09-[8C16:00] = 00168C
Real LenBlk 0A-[3421:00] = 002134   Value Of Block 0A-[0123:00] = 002301

xxCS = (Control Sum Line) (1+2+3...+31=[32])
Контрольная сумма строки
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________

Block 00 - (Main Loader (Unpacker)???) WD800JB-00FMA0 (Marvell CPU)
Offset: 06C8h (79 entries [4Fh])
FEBD:0000  E0FF:FF1A
A080:0010  3080:BDE8
3040:2DE9  3C10:FE1F
9410:9FE5  9428:0004
9420:9FE5  6432:0004
9430:9FE5  7302:0000
94C0:9FE5  0280:0000
0C00:80E0  0080:FFFF
8420:9FE5  0680:0006
0001:91E7  0280:2000
0051:82E0  0C80:0F00
1040:B5E8  0628:7F00
0140:84E2  0628:0000
0041:82E7  08A8:8B00
0E00:54E1  0CA8:06BE
1500:00DA  0EA8:067E
04E0:95E4  0000:0100
0E00:54E1  0AA8:0200
FCFF:FFCA  00A8:E4FF
0850:45E2  02A8:2333
00E0:95E5  04A8:4600
0040:85E5  04A8:5700
00E1:82E7  002E:0000
0041:93E7  002E:0100
0250:45E0  002E:3100
2551:A0E1  0A2E:0708
0451:81E7  062E:5F01
05E1:93E7  062E:5F81
0541:83E7  0000:0000
0C00:54E1  042E:FFFF
0140:84B2  222E:0001
0451:81B7  4544:3333
0E01:81E7  3333:2222
00E1:83E7  2222:2222
0C00:5EE1  1111:1111
01E0:8EE2  1111:1111
0E01:81B7  1111:1111
0500:A0E1  0000:0000
0001:91E7  0000:0000
0000:50E3
.....
....
...
..
.

________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________

Block 0A - (Boot Init Module (Unpacker)???)WD800JB-00FMA0 (Marvell CPU)
Offset: 1F1Ch (55 entries [37h])
LoadTable ???
___________________
04F0:1FE5-049F:8110
04F0:1FE5-5867:0000
04F0:1FE5-F904:0000
04F0:1FE5-7867:0000
04F0:1FE5-F0F4:8110
04F0:1FE5-E33C:0000
04F0:1FE5-9D3B:0000
04F0:1FE5-4D3C:0000
04F0:1FE5-355D:0000
04F0:1FE5-8501:0000
04F0:1FE5-A153:0000
04F0:1FE5-DD53:0000
04F0:1FE5-9301:0000
04F0:1FE5-98D0:0000
04F0:1FE5-18CF:0000
04F0:1FE5-4954:0000
04F0:1FE5-ECCE:0000
04F0:1FE5-A78A:8110
04F0:1FE5-6704:0000
04F0:1FE5-ED61:0000
04F0:1FE5-D962:0000
04F0:1FE5-A983:8110
04F0:1FE5-371C:0000
04F0:1FE5-CD5C:8110
04F0:1FE5-0F16:0000
04F0:1FE5-035D:8110
04F0:1FE5-E515:0000
04F0:1FE5-BB15:0000
04F0:1FE5-3B16:0000
04F0:1FE5-1B16:0000
04F0:1FE5-933C:0000
04F0:1FE5-74CF:0000
04F0:1FE5-AF3F:0000
04F0:1FE5-C987:8110
04F0:1FE5-F935:0000
04F0:1FE5-551C:0000
04F0:1FE5-8F86:8110
04F0:1FE5-1F8A:8110
04F0:1FE5-5784:8110
04F0:1FE5-B188:8110
04F0:1FE5-10F5:8110
04F0:1FE5-BB89:8110
04F0:1FE5-18F5:8110
04F0:1FE5-3D5F:0000
04F0:1FE5-D554:0000
04F0:1FE5-7554:0000
04F0:1FE5-7903:0000
04F0:1FE5-611C:0000
04F0:1FE5-F31E:0000
04F0:1FE5-2912:0000
04F0:1FE5-B111:0000
04F0:1FE5-1118:FE1F
04F0:1FE5-9F9E:8110
04F0:1FE5-28A0:8110
04F0:1FE5-9532:8110

(24 entries)
____________
0000:A0E1
0000:0000          
0000:0000          
0000:0000          
0000:0000          
0000:0000          
C918:FE1F          
959E:8110          
CB18:FE1F          
6C1A:FE1F          
0000:0000          
0000:0000          
FF19:FE1F          
0000:0000          
6D19:FE1F          
ED19:FE1F          
7319:FE1F          
F319:FE1F          
7919:FE1F          
F919:FE1F          
0000:0021          
0000:2000          
D420:FE1F          
1800:0000
.....
....
...
..
.


________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________

Example Flash Map: (WD800JB-00FMA0 (Marvell CPU))
Пример карты расположения блоков и модулей во Flash.

________________________________________________________________________________
00000000\_Table of the distribution flash code blocks [11x32] (Not Fixed Size/Count)
0000015f/
00000160\_Block 00 (Not Fixed Offset/Size) [2053 bytes]
00000964/
00000965\_Block 01 (Not Fixed Offset/Size) [21477 bytes]
00005D49/
00005D4A\_Block 02 (Not Fixed Offset/Size) [15685 bytes]
00009A8E/
00009A8F\_Block 03 (Not Fixed Offset/Size) [1241 bytes]
00009F67/
00009F68\_Block 04 (Not Fixed Offset/Size) [281 bytes]
0000A080/
0000A081\_Block 05 (Not Fixed Offset/Size) [85 bytes]
0000A0D5/
0000A0D6\_Block 06 (Not Fixed Offset/Size) [5217 bytes]
0000B536/
0000B537\_Block 07 (Not Fixed Offset/Size) [54409 bytes]
000189BF/
000189C0\_Block 08 (Not Fixed Offset/Size) [13997 bytes]
0001C06c/
0001C06D\_Block 09 (Not Fixed Offset/Size) [4073 bytes]
0001D055/
0001DO56\_Block 0A (Not Fixed Offset/Size) [8502 bytes]
0001F18B/
0001F18C\_Reserved (Filled "FF" pattern) (Not Fixed Offset/Size) [2528 bytes]
0001FB77/
0001FB78\_Modul 47 (Default Adaptives (Init Chipsets Registers)) (Fixed Size Only) [512 bytes]
0001FD77/
0001FD78\_Modul 30 (Not Fixed Offset/Size) [512 bytes]
0001FF77/
0001FF78\_Reserved (Filled "FF" or "00" pattern) [128 bytes]
0001FFB7/
0001FFB8\_Header module 0A (Default Config Drive) (Fixed Offset/Size) [56 bytes]
0001FFEF/
0001FFF0\_Reserved (Filled "FF" pattern) (Fixed Offset/Size) [16 bytes]
0001FFFF/
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________

Пример таблицы загрузки "старых" WD-Firmware.

CPU(MPU) i296A (ST-Super10)

Flash Code LoadMap Table:
Таблица загрузки кодовых блоков в память.
(Table of the loading blocks codes to CPU Programm Memory)


________________________________________________________________________________
--:--:------:------:------:-------------:--------------------:----------:---
Z : ?:LstByt:LenBlk:OfsBlk: LoadAdrRange:  ???               : "i296A"  :CS
--:--:------:------:------:-------------:--------------------:----------:---
5A-26-830100-830100-600200-0062C1:0062C1-ABDB7F-9B0000-000000-6932393641-1B
01-26-911F00-911F00-E30300-0041C1:0041C1-ABDB7F-9B0000-000000-6932393641-5C
02-26-3F0E00-3F0E00-742300-2220C1:2220C1-ABDB7F-9B0000-000000-6932393641-4A
03-21-DB1F00-DB1F00-B33100-0000C0:FFFFFF-ABDB7F-9B0000-000000-6932393641-A4
04-21-7D5500-7D5500-8E5100-0038C0:FFFFFF-ABDB7F-9B0000-000000-6932393641-88
05-21-723000-723000-0BA700-00BCC0:FFFFFF-ABDB7F-9B0000-000000-6932393641-80
06-21-3D0000-3D0000-7DD700-000CC1:FFFFFF-ABDB7F-9B0000-000000-6932393641-AA
07-11-5A1E00-5A1E00-BAD700-000023:FFFFFF-ABDB7F-9B0000-000000-6932393641-A4
08-11-8C2200-8C2200-14F600-004C23:FFFFFF-ABDB7F-9B0000-000000-6932393641-D6
09-10-2F0000-2F0000-D0FF01-D07F23:FFFFFF-ABDB7F-9B0000-000000-6932393641-A1
0A-50-260000-260000-A01801-00F029:FFFFFF-ABDB7F-9B0000-000000-6932393641-60
0B-50-260000-260000-C61801-26F029:FFFFFF-ABDB7F-9B0000-000000-6932393641-AD
0C-50-060200-060200-EC1801-4CF029:FFFFFF-ABDB7F-9B0000-000000-6932393641-BE
0D-11-801800-801800-F21A01-002823:FFFFFF-ABDB7F-9B0000-000000-6932393641-8E
0E-11-CE0200-CE0200-723301-008023:FFFFFF-ABDB7F-9B0000-000000-6932393641-F0
0F-13-32A700-32A700-403601-000022:BAA122-ABDB7F-9B0000-000000-6932393641-D5
--:--:------:------:------:-------------:--------------------:----------:---
Z : ?:LstByt:LenBlk:OfsBlk: LoadAdrRange:  ???               : "i296A"  :CS
--:--:------:------:------:-------------:--------------------:----------:---
5A-26-830100-830100-600200-0062C1:0062C1-5E87CB-080000-000000-6932393641-33
01-26-911F00-911F00-E30300-0041C1:0041C1-5E87CB-080000-000000-6932393641-74
02-26-430E00-430E00-742300-2220C1:2220C1-5E87CB-080000-000000-6932393641-6A
03-21-D91F00-D91F00-B73100-0000C0:FFFFFF-5E87CB-080000-000000-6932393641-BC
04-21-1D5500-1D5500-905100-0038C0:FFFFFF-5E87CB-080000-000000-6932393641-E2
05-21-633000-633000-ADA600-00BCC0:FFFFFF-5E87CB-080000-000000-6932393641-1B
06-21-3D0000-3D0000-10D700-000CC1:FFFFFF-5E87CB-080000-000000-6932393641-55
07-11-4C1E00-4C1E00-4DD700-000023:FFFFFF-5E87CB-080000-000000-6932393641-33
08-11-832200-832200-99F500-004C23:FFFFFF-5E87CB-080000-000000-6932393641-60
09-10-2F0000-2F0000-D0FF01-D07F23:FFFFFF-5E87CB-080000-000000-6932393641-B9
0A-50-260000-260000-1C1801-00F029:FFFFFF-5E87CB-080000-000000-6932393641-F4
0B-50-260000-260000-421801-26F029:FFFFFF-5E87CB-080000-000000-6932393641-41
0C-50-060200-060200-681801-4CF029:FFFFFF-5E87CB-080000-000000-6932393641-52
0D-11-671800-671800-6E1A01-002823:FFFFFF-5E87CB-080000-000000-6932393641-F0
0E-11-CE0200-CE0200-D53201-008023:FFFFFF-5E87CB-080000-000000-6932393641-6A
0F-13-18A600-18A600-A33501-000022:9EA022-5E87CB-080000-000000-6932393641-FC
________________________________________________________________________________

... Теперь о модулях, их назначении и структурах...
Давно уже идут гадания на кофейной гуще о том, где-что и зачем...
Мне то-же это было интересно и полез я в дебри...
(конечно-же, это не окончательная интерпритация...)
________________________________________________________________________________

Назначение модулей
;--------------------------------------
ID_01 = DIR (RoadMap (Directory Sector))
ID_02 = PASSPORT (Config Sector+Password)
ID_04 = ConfigModelsMain_Data
ID_05 = ConfigModelsAlt1_Data
ID_06 = ConfigModelsAlt2_Data
ID_07 = ConfigModelsAlt3_Data
ID_0A = Head & Track Map ???
ID_0C = Firmware Support Models Table
ID_0D = Rework Code Version ("09.07d09")???
;--------------------------------------
ID_11 = ATA_OVL (Loaded in Memory)
*Include "0200" = Chk Ver 28h module (EventLog) or 04h...07h modules
*Include "4.1E" = Chk Version Adatives
*Include part 40h module (Ver 4.00?) Default Adaptives ???
*Include "2120" Chk Ver SMART ???

ID_12 = ConfigModelsMain_OVL (Init2_OVL)
*Include 04h, 05h, 06h, 07h modules - Defaults Config Models

ID_13 = DRM_OVL ??? (Loaded in Memory)
ID_15 = SelfTest OVL
ID_17 = DM.OVL (DefectManagement_OVL)
*Include "1500" - Check Version Defect Management Modules ???

ID_19 = UpdateCODE OVL
ID_1B = DVT1_OVL (Drive Validate Test1) (Include "01.64 WD800EB")
ID_1C = VSC.OVL
ID_1E = DEPOP.OVL
;--------------------------------------
ID_20 = Operative SMART&LogCurrent [Full Copy 21h] (Always changes )
ID_21 = SMART&LogCurrent (Always changes)
ID_22 = SMART&LogPrevios (Always changes) 
ID_23 = SMART Factory Threshold
ID_24 = SMART Current Threshold
ID_25 = LOG (Clear) ???
ID_26 = LOG (Clear) ???
ID_28 = SelfTestEventLog ???
ID_29 = ErrorLogCurrent ???  (With datas)
ID_2A = ErrorLogFactory ??? (Without datas)
ID_2D = MemoDump1 (Memory VendorEventLog)
ID_2E = MemoDump2 (Memory VendorEventLog)
ID_2F = ZoneHead (0300-15-01/0300-15-02/0300-15-04) [direct translation] ???
;--------------------------------------
ID_30 = Table ???  RPDList (Reserved cylinders push down list) ???
ID_31 = Translator
ID_32 = RBBList
ID_33 = Plist
ID_34 = Glist
ID_35 = (Clear) ???
ID_36 = Depop Head Config
ID_37 = Table (2x???)
;--------------------------------------
ID_40 = ver(4.1E) MAIN Surface Adaptives ???
ID_41 = ver(4.1E) ALT1 Surface Adaptives ???
ID_42 = ver(4.1E) ALT2 Surface Adaptives ???
ID_43 = ver(4.1E) ALT3 Surface Adaptives ???
ID_46 = Full Copy 40h Module  (MAIN Surface Adaptives ???)
ID_47 = Init Chipsets Variables Table (StartUp Adaptives) ???
ID_49 = ChannelAdaptives ???
ID_4A = ServoAdaptives ???
ID_4C = SerVoCAL OVL (Include "03.31 WD400EB")
;--------------------------------------
ID_50 = Table ???  MAIN ??? SkProfR1
ID_51 = Table ???  ALT1 ??? SkProfW1
ID_52 = Table ???  ALT2 ??? SkProfR2
ID_53 = Table ???  ALT3 ??? SkProfW2
;--------------------------------------
ID_60 = Clear Log (BIG)
;--------------------------------------
ID_91 = Clear Log
ID_92 = Clear Log
ID_93 = Clear Log
ID_95 = Clear Log
ID_9E = Clear Log
;--------------------------------------
ID_B1 = Unknown OVL
ID_B6 = TestClamp OVL
ID_B7 = Table ???
ID_B8 = Table ??? (ButesPerSector + ECC [592-512=80]) ???
ID_B9 = SPTWriteAll OVL
ID_BA = SPTReadAll OVL (Include VSCFormat)
ID_BB = TestSPTDepop OVL (Include VSCFormat)
ID_BC = TestSPTWRC OVL
ID_BD = Clear
ID_BE = TestStepLog ???
ID_BF = IBI-Ware SptDir (SinglePlugTester Directory Sector) Directory Sector for Calibrator !!!
;--------------------------------------
ID_C1 = Table ???
ID_C2 = Table ???
ID_C4 = IBI-Ware MAIN CODE (calibrator) (Version 03.32E)
ID_C5 = DCM-CODE
ID_C7 = Table  (LogCx 3_0)(Clear)
ID_CA = Table  (LogCx 4_0)
ID_CB = Table  (LogCx 4_1)
ID_CC = Table  (LogCx 4_2)
ID_CD = Table  (LogCx 4_3)
ID_CE = Table  (LogCx 4_4)(Clear)
ID_CF = Table  (LogCx 4_5)(Clear)
;--------------------------------------
ID_D0 = TestBurnish OVL
ID_D2 = TestPlist OVL (Include VSCFormat)
ID_D3 = TestCalcPSN OVL
ID_D4 = TestTlist OVL
ID_D5 = TestCluster OVL
ID_D6 = TestRRO OVL  (XlateTrackAddr OVL)
ID_D7 = TestPEScan OVL
ID_D8 = Cmd OVL
ID_D9 = TestBulkErase OVL (Wedge OVL)
ID_DA = TestTSWrite OVL
ID_DB = TestTSRead OVL
ID_DC = TestXmitBlink OVL
ID_DD = TestGainCal OVL
ID_DE = TestButterfly OVL
ID_DF = TestMini OVL (Include VSCFormat)
;--------------------------------------
ID_E0 = LogHead_00
ID_E1 = LogHead_01
ID_E2 = LogHead_02
ID_E3 = LogHead_03
ID_E4 = LogHead_04
ID_E5 = LogHead_05
ID_E6 = Table (LogEx 2_0)
ID_E7 = Table (LogEx 2_1)
ID_E8 = LogEx 3_0
ID_E9 = LogEx 3_1
ID_EA = LogEx 3_2
ID_EB = LogEx 3_3
ID_EE = Table (Log)
;--------------------------
ID_FA = Table (Log)
ID_FB = Table (Log)
ID_FC = Table (Log)
ID_FD = Table (Log)
ID_FE = Table (Log)
;--------------------------
________________________________________________________________________________

... Следует помнить, что часть модулей, которые считываются с HDD, но не
описаны в DIR, на самом деле, считываются из адресного пространства ПЗУ.
А это значит, что если даже неисправен коммутатор или головы,
то эти модули, все-же будут якобы считаны с HDD !!!

Такими модулями, в частности являются:

OA-Head & Track Map ???
30-???
47-Initial Chipset Variables ???

Имеются так-же "оперативные" модули, постоянно изменяющиеся в памяти
и записывающиеся на диск только в определенные промежутки времени
(свободное от основной работы время).
Таким модулем является:
20 - Operative SMART, который, на самом деле, является 21м модулем и имеет его заголовок.
________________________________________________________________________________

... Все модули делятся на группы, группы определяются версиями модулей.
Основные версии модулей определяются, версиями Firmware
(Например: Copyright 2003 WDC 05.BWC05BWNov  2 2004, 14:35:14, нmS03.31, WD400EB)
и (или) IBIWare (13.03G13 BV13G0CNAW13G6Q1)...

Numbers Version Modules: (Track 04h)
_____________##____##_____**##________
WCAJ91911748 13.03G13 BV13G04NAW13G6Q0 - Drive 1
WCAJ91921656 13.03G13 BV13G0CNAW13G6Q1 - Drive 2
....
...
..
.
__________****__##
Drive 1 - 6148 34N\_Versions Modules !!! (SPT-Module 0A00)
Drive 2 - 6148 3CN/
...
Видимо версия присваивается по результату работы IBIWare (IBI=Intelligent Burn IN (калибратор)),
в зависимости от конечной конфигурации драйвера Prime, Depop, Alt или Rework.
Все второстепенные модули, обычно имеют очень старую версию типа 0000? или выше...
Последняя буква ACSI-версии модулей, это "Copmatibility Byte" (байт совмевтимости).
Например xxxx? - "?" означает, что данный модуль совместим с кодом контроллера.
Т.е. - данный модуль, может быть использован любым другим модулем,
любой версии данного набора модулей.
Такие модули обычно, всегда являются данными для других модулей.
Если в конце версии стоит код ACSI, это не всегда означает,
что модуль является оверлеем или ехе-модулем.
Это может означать, что данный модуль (например, модуль 2F), жестко связан с модулями
(оверлеями), являющимися основными носителями версии, или сам является указателем
версии (как иногда DIR) и несовместим с другими модулями никоим образом.

________________________________________________________________________________
Вот примеры разпределения модулей по группам:
________________________________________________________________________________

WD800JB-00FMA0
______________
Group Version:[0000?] = Head&TrackMap
Modul - 0Ah = Data

Group Version:[0100?] = Models Table
Modul - 0Ch,37h = Data

Group Version:[0107?] = Unknown Overlay
Modul - B1h = Overlay

Group Version:[0200?] = Models Lists
Modul - 04h,05h,06h,07h,28h = Data

Group Version:[0800?] = Passport + Master Password
Modul - 02h = Data

Group Version:[13CN?] = Data For Main Work Utilites
Modul - 01h,25h,26h,29h,2Ah,2Dh,2Eh,36h,40h,41h
Modul - 42h,43h,46h,49h,4Ah,50h,51h,52h,53h,60h
*** Part 49h module include in IBI (Calibator) files (1402.mod) !!!

Group Version:[13CNG] = Main Work Utilites
Modul - 11h,12h,13h,15h,17h,1Bh,1Ch,1Eh,4Ch = Overlays
Modul - 2Fh = Data

Group Version:[1500?] = Defect Management
Modul - 30h,31h,32h,33h,34h = Data

Group Version:[2102?] = SMART Management
Modul - 20h,21h,22h,23h,24h = Data

Group Version:[6000?] = Unknown Log (for TestUtilProcedures group ???)
Modul - 35h = Data

Group Version:[6148?] = Main TestUtilProcedures Files
Modul - B9h,BAh,BBh,D0h,D2h,D3h,D4h,D5h,D6h,D7h,D9h,DAh,DBh,DCh,DDh,DFh = Overlays
Modul - B8h,BDh,BEh,BFh,E0h,E1h,E2h,E3h,E4h,E5h,E6h,E7h,E8h,E9h,EEh,FBh,FCh,FD = Data

Group Version:[O.04?] = DCM-Data
Modul - C5h = Data

Group Version:[O.07?] = IBI (Calibrator Files) (FW-GO.07)
Modul - C4h = Overlay (Ver-03.32E)
Modul - 47h,C1h,C2h,C7h,CAh,CBh,CCh,CDh,CEh,CFh = Data

________________________________________________________________________________
Вот примеры различных версий модулей:
________________________________________________________________________________

 WD800JB      WD800JB     WD800BB     WD800BB     WD400BB  
 -00FMA0      -00FMA0     -00JHA0     -22FJA0     -00JHC0  
                                              
01 [134N?]  01 [13CN?]  01 [05AW?]  01 [13D7?]  01 [0812?] DIR
02 [0800?]  02 [0800?]  02 [0800?]  02 [0800?]  02 [0800?] Passport
04 [0200?]  04 [0200?]  04 [0200?]  04 [0200?]  04 [0200?] Models List
05 [0200?]  05 [0200?]  05 [0200?]  05 [0200?]  05 [0200?] Models List
06 [0200?]  06 [0200?]  06 [0200?]  06 [0200?]  06 [0200?] Models List
07 [0200?]  07 [0200?]  07 [0200?]  07 [0200?]  07 [0200?] Models List
0A [0000?]  0A [0000?]  0A [0000?]  0A  None    0A [0000?]
0C [0100?]  0C [0100?]  0C [0100?]  0C [0100?]  0C [0100?]
0D  None    0D  None    0D  None    0D  None    0D [0812?]
11 [134NG]  11 [13CNG]  11 [05AWC]  11 [13D7G]  11 [0812C]
12 [134NG]  12 [13CNG]  12 [05AWC]  12 [13D7G]  12 [0812C]
13 [134NG]  13 [13CNG]  13 [05AWC]  13 [13D7G]  13 [0812C]
15 [134NG]  15 [13CNG]  15 [05AWC]  15 [13D7G]  15 [0812C]
17 [134NG]  17 [13CNG]  17 [05AWC]  17 [13D7G]  17 [0812C]
1B [134NG]  1B [13CNG]  1B [05AWC]  1B [13D7G]  1B [0812C]
1C [134NG]  1C [13CNG]  1C [05AWC]  1C [13D7G]  1C [0812C]
1E [134NG]  1E [13CNG]  1E [05AWC]  1E [13D7G]  1E [0812C]
20 [2102?]  20 [2102?]  20 [2103?]  20  None    20 [2105?] S.M.A.R.T. Management
21 [2102?]  21 [2102?]  21 [2103?]  21 [2102?]  21 [2105?] S.M.A.R.T. Management
22 [2102?]  22 [2102?]  22 [2103?]  22 [2102?]  22 [2105?] S.M.A.R.T. Management
23 [2102?]  23 [2102?]  23 [2103?]  23 [2102?]  23 [2105?] S.M.A.R.T. Management
24 [2102?]  24 [2102?]  24 [2103?]  24 [2102?]  24 [2105?] S.M.A.R.T. Management
25 [134N?]  25 [13CN?]  25 [05AW?]  25 [13D7?]  25 [0812?]
26 [134N?]  26 [13CN?]  26 [05AW?]  26 [13D7?]  26 [0812?]
28 [0200?]  28 [0200?]  28 [0200?]  28 [0200?]  28 [0200?]
29 [134N?]  29 [13CN?]  29 [05AW?]  29 [13D7?]  29 [0812?]
2A [134N?]  2A [13CN?]  2A [05AW?]  2A [13D7?]  2A [0812?]
2D [0201?]  2D [13CN?]  2D [05AW?]  2D [13D7?]  2D [0812?] MemoDumper (Memory EventLog If Debug On) 
2E [0201?]  2E [13CN?]  2E [0201?]  2E [0201?]  2E [0201?] MemoDumper (Memory EventLog If Debug On) 
2F [134NG]  2F [13CNG]  2F [05AWC]  2F [13D7G]  2F [0812C]
30 [1500?]  30 [1500?]  30 [1500?]  30  None    30 [1500?] Defect Management
31 [1500?]  31 [1500?]  31 [1500?]  31 [1500?]  31 [1500?] Defect Management
32 [1500?]  32 [1500?]  32 [1500?]  32 [1500?]  32 [1500?] Defect Management
33 [1500?]  33 [1500?]  33 [1500?]  33 [1500?]  33 [1500?] Defect Management
34 [1500?]  34 [1500?]  34 [1500?]  34 [1500?]  34 [1500?] Defect Management
35 [6000?]  35 [6000?]  35 [6000?]  35 [6000?]  35 [622F?] Defect Log ???
36 [134N?]  36 [13CN?]  36 [05AW?]  36 [13D7?]  36 [0812?]
37  None    37  None    37 [0100?]  37  None    37 [0100?]
40 [134N?]  40 [13CN?]  40 [05AW?]  40 [13D7?]  40 [0812?] Ver 4.00?,3.00?,4.00?,3.00? in 11h Module
41 [134N?]  41 [13CN?]  41 [05AW?]  41 [13D7?]  41 [0812?]
42 [134N?]  42 [13CN?]  42 [05AW?]  42 [13D7?]  42 [0812?]
43 [134N?]  43 [13CN?]  43 [05AW?]  43 [13D7?]  43 [0812?]
46 [134N?]  46 [13CN?]  46 [05AW?]  46  None    46 [0812?]
47 [O.07?]  47 [O.07?]  47 [O.0S?]  47  None    47 [O.0S?] Default Adaptives (Chipsets Init Variables) IBI-files
49 [134N?]  49 [13CN?]  49 [05AW?]  49 [13D7?]  49 [0812?]
4A [134N?]  4A [13CN?]  4A [05AW?]  4A [13D7?]  4A [0812?]
4C [134NG]  4C [13CNG]  4C [05AWC]  4C [13D7G]  4C [0812C]
50 [134N?]  50 [13CN?]  50 [05AW?]  50 [13D7?]  50 [0812?]
51 [134N?]  51 [13CN?]  51 [05AW?]  51 [13D7?]  51 [0812?]
52 [134N?]  52 [13CN?]  52 [05AW?]  52 [13D7?]  52 [0812?]
53 [134N?]  53 [13CN?]  53 [05AW?]  53 [13D7?]  53 [0812?]
60 [134N?]  60 [13CN?]  60 [05AW?]  60 [13D7?]  60 [0812?]
90  None    90  None    90 [O.0S?]  90  None    90 [O.0S?]
91  None    91  None    91 [O.0S?]  91  None    91 [O.0S?]
92  None    92  None    92 [O.0S?]  92  None    92 [O.0S?]
B1 [0107?]  B1 [0107?]  B1 [0107?]  B1 [0107?]  B1 [0112?] Unknown OVL
B8 [6148?]  B8 [6148?]  B8 [616A?]  B8 [614G?]  B8 [622F?] TestUtilProcedures Files
B9 [6148?]  B9 [6148?]  B9 [616A?]  B9 [614G?]  B9 [622F?] TestUtilProcedures Files
BA [6148?]  BA [6148?]  BA [616A?]  BA [614G?]  BA [622F?] TestUtilProcedures Files
BB [6148?]  BB [6148?]  BB [616A?]  BB [614G?]  BB [622F?] TestUtilProcedures Files
BD [6148?]  BD [6148?]  BD [616A?]  BD [614G?]  BC [622F?] TestUtilProcedures Files
BE [6148?]  BE [6148?]  BE [616A?]  BE [614G?]  BE [622F?] TestUtilProcedures Files
BF [6148?]  BF [6148?]  BF [616A?]  BF [614G?]  BF [622F?] TestUtilProcedures Files
C1 [O.07?]  C1 [O.07?]  C1 [O.0S?]  C1 [O.07?]  C1 [O.0S?] IBI-files (calibrator)
C2 [O.07?]  C2 [O.07?]  C2 [O.0S?]  C2 [O.07?]  C2 [O.0S?] IBI-files (calibrator)
C4 [O.07?]  C4 [O.07?]  C4 [O.0S?]  C4 [O.07?]  C4 [O.0S?] IBI-files (calibrator)
C5 [O.04?]  C5 [O.04?]  C5 [O.06?]  C5 [O.06?]  C5 [O.0B?] DCM
C7 [O.07?]  C7 [O.07?]  C7 [O.0S?]  C7 [O.07?]  C7 [O.0S?] IBI-files (calibrator)
CA [O.07?]  CA [O.07?]  CA [O.0S?]  CA [O.07?]  CA [O.0S?] IBI-files (calibrator)
CB [O.07?]  CB [O.07?]  CB [O.0S?]  CB [O.07?]  CB [O.0S?] IBI-files (calibrator)
CC [O.07?]  CC [O.07?]  CC [O.0S?]  CC [O.07?]  CC [O.0S?] IBI-files (calibrator)
CD [O.07?]  CD [O.07?]  CD [O.0S?]  CD [O.07?]  CD [O.0S?] IBI-files (calibrator)
CE [O.07?]  CE [O.07?]  CE [O.0S?]  CE [O.07?]  CE [O.0S?] IBI-files (calibrator)
CF [O.07?]  CF [O.07?]  CF [O.0S?]  CF [O.07?]  CF [O.0S?] IBI-files (calibrator)
D0 [6148?]  D0 [6148?]  D0 [616A?]  D0 [614G?]  D0 [622F?] TestUtilProcedures Files
D2 [6148?]  D2 [6148?]  D2 [616A?]  D2 [614G?]  D2 [622F?] TestUtilProcedures Files
D3 [6148?]  D3 [6148?]  D3 [616A?]  D3 [614G?]  D3 [622F?] TestUtilProcedures Files
D4 [6148?]  D4 [6148?]  D4 [616A?]  D4 [614G?]  D4 [622F?] TestUtilProcedures Files
D5 [6148?]  D5 [6148?]  D5 [616A?]  D5 [614G?]  D5 [622F?] TestUtilProcedures Files
D6 [6148?]  D6 [6148?]  D6 [616A?]  D6 [614G?]  D6 [622F?] TestUtilProcedures Files
D7 [6148?]  D7 [6148?]  D7 [616A?]  D7 [614G?]  D7 [622F?] TestUtilProcedures Files
D9 [6148?]  D9 [6148?]  D9 [616A?]  D9 [614G?]  D9 [622F?] TestUtilProcedures Files
DA [6148?]  DA [6148?]  DA [616A?]  DA [614G?]  DA [622F?] TestUtilProcedures Files
DB [6148?]  DB [6148?]  DB [616A?]  DB [614G?]  DB [622F?] TestUtilProcedures Files
DC [6148?]  DC [6148?]  DC [616A?]  DC [614G?]  DC [622F?] TestUtilProcedures Files
DD [6148?]  DD [6148?]  DD [616A?]  DD [614G?]  DD [622F?] TestUtilProcedures Files
DE  None    DE  None    DE  None    DE  None    DE [622F?] TestUtilProcedures Files
DF [6148?]  DF [6148?]  DF [616A?]  DF [614G?]  DF [622F?] TestUtilProcedures Files
E0 [6148?]  E0 [6148?]  E0 [616A?]  E0 [614G?]  E0 [622F?] TestUtilProcedures Files
E1 [6148?]  E1 [6148?]  E1 [616A?]  E1 [614G?]  E1  None   TestUtilProcedures Files
E2 [6148?]  E2 [6148?]  E2 [616A?]  E2 [614G?]  E2  None   TestUtilProcedures Files
E3 [6148?]  E3 [6148?]  E3 [616A?]  E3 [614G?]  E3  None   TestUtilProcedures Files
E4 [6148?]  E4 [6148?]  E4 [616A?]  E4 [614G?]  E4  None   TestUtilProcedures Files
E5 [6148?]  E5 [6148?]  E5 [616A?]  E5 [614G?]  E5  None   TestUtilProcedures Files
E6 [6148?]  E6 [6148?]  E6 [616A?]  E6 [614G?]  E6 [622F?] TestUtilProcedures Files
E7 [6148?]  E7 [6148?]  E7 [616A?]  E7 [614G?]  E7 [622F?] TestUtilProcedures Files
E8 [6148?]  E8 [6148?]  E8 [616A?]  E8 [614G?]  E8 [622F?] TestUtilProcedures Files
E9 [6148?]  E9 [6148?]  E9 [616A?]  E9 [614G?]  EE [622F?] TestUtilProcedures Files
EE [6148?]  EE [6148?]  EE [616A?]  EE [614G?]  FA [622F?] TestUtilProcedures Files
FB [6148?]  FB [6148?]  FB [616A?]  FB [614G?]  FB [622F?] TestUtilProcedures Files
FC [6148?]  FC [6148?]  FC [616A?]  FC [614G?]  FC [622F?] TestUtilProcedures Files
FD [6148?]  FD [6148?]  FD [616A?]  FD [614G?]  FD [622F?] TestUtilProcedures Files
FE [6148?]  FE [6148?]  FE [616A?]  FE [614G?]  FE [622F?] TestUtilProcedures Files
________________________________________________________________________________


Module 02h: (Config String)

_______________________*_#_*_*_*_*_*_#_*_*_*_*_*_#_*_#_*_*_*_*_*_*   # = Change
WDC WD800JB-00FMA0     S J B U L B P Z M V H 7 C S R M V M K T U F   04-21-2004 S/N: WD-WCAJ91911748
WDC WD800JB-00FMA0     S C B U L B P M M V H 7 C R R L V M K T U F   04-21-2004 S/N: WD-WCAJ91921656

(Эта конфигурация операций, указываемой при IBI-скане)
(SJ-x BU-x LB-x PZ-x MV-x H7-x CS-x RM-x VM-x KT-x UF-x)
Например: IBI-Module 0A00 (Tracks 04h)
______________________#______________#______________#____#_________________
WDC WD800JB-00FMA0   SJ-0 BU-0 LB-0 PZ-0 MV-0 H8W5 CSW0 RM-0 VM-0 KT-0 UF-0
WDC WD800JB-00FMA0   SC-0 BUR0 LB-0 PM-0 MV-0 H8W5 CRW0 RL-0 VM-0 KT-0 UF-0
___________________________________________________________________________
___________________________________________________________________________

Module BFh:
SPT-DIR
(SinglePlugTester Directory Sector)
IBI-DIR (DIR-Calibrator)
(Этот модуль существует и в старых версиях WD, но многие думают, что SPT - это только SectorPerTrack)
Модули нумеруются нестандартно: ssnn (ss=SubNumber nn=Number).

____________________
      HEADER
____________________
040604-1D-BF-363134383F-000000000000
000000100000-0800 = Size Module
0000 = Reserv
3600 = Numbers Modules
1E00 = Offset Module Directory
_________________________________
      SPT-DIRECTORY SECTOR
ss_nn__Trck__Sect__Leng___Reserv_
00.02--0400--0100--0100--00000000
00.03--0400--0300--0100--00000000
00.04--0400--0600--0200--00000000
00.05--0400--0C00--0100--00000000
04.08--0400--2200--0400--00000000
01.05--0400--0E00--0100--00000000
00.06--0400--0D00--0100--00000000
01.06--0400--0F00--0100--00000000
00.07--0400--1900--0100--00000000
01.07--0400--3200--0100--00000000
02.07--0400--3700--0100--00000000
00.08--0400--1A00--0400--00000000
01.08--0400--3300--0400--00000000
02.08--0400--1E00--0400--00000000
03.08--0400--2600--0400--00000000
04.08--0400--2200--0400--00000000
05.08--0400--2A00--0400--00000000
06.08--0400--2E00--0400--00000000
07.08--0400--8100--0400--00000000
08.08--0400--3300--0400--00000000
09.08--0400--1E00--0400--00000000
0A.08--0400--1A00--0400--00000000
0B.08--0400--9101--0F00--00000000
0C.08--0400--A001--0F00--00000000
00.09--0400--0B00--0100--00000000
00.0A--0400--7400--0700--00000000 -- [0A00] Versions Module !!!
00.0B--0400--9600--0700--00000000
00.0C--0400--6800--0700--00000000
00.0D--0400--7B00--0100--00000000
00.0E--0400--9400--0100--00000000
01.0E--0400--9500--0100--00000000
00.0F--0400--7C00--0300--00000000
00.10--0400--7F00--0200--00000000
00.11--0400--8D00--0200--00000000
00.12--0400--9D00--0100--00000000
01.03--0400--0400--0200--00000000
00.13--0400--A000--0100--00000000
01.13--0400--A100--0100--00000000
02.13--0400--A200--0400--00000000
02.03--0400--1800--0100--00000000
03.03--0400--9E00--0200--00000000
01.11--0400--A600--0200--00000000
01.02--0400--0200--0100--00000000
01.0A--0400--5B00--0700--00000000
10.0A--0400--AB00--0700--00000000
00.14--0400--B200--0200--00000000
01.14--0400--B400--0200--00000000
02.14--0400--B600--0100--00000000
03.14--0400--B700--0300--00000000
04.14--0400--BA00--0200--00000000
13.14--0400--6700--0100--00000000
04.03--0400--0800--0100--00000000
02.0A--0400--BE00--0700--00000000
00.00--0400--0000--0000--00000000 -- Free (Dynamic) Module
00.00--0400--0000--0000--00000000 -- Free (Dynamic) Module
(Последних - может быть несколько...)
....
...
..
.
________________________________________________________________________________

OVERLAYS:

Оверлеи на Marvell, имеют новый заголовок.
Длина заголовка 64 байта (3Fh)
Например:
Modul 11h (ATA-Overlay)
________________________________________________________________________________
Header: (Only For Main Work Files (13CNG Group))
=======
Offs:0000 - 040604-87-11-3133434E47-CA7A00000000 (CAC7 = ID ???)
000000000000-BA00 = Standard Header
Offs:0018 - A809:00E0 = LoadAddr for Interrupt (JMP) Tables (Part1 Ovl)
Offs:001C - 2060:01E0 = AltLoadAddr ???
Offs:0020 - 00F2:8110 = LoadAddr for OVERLAY !!! (xxx1F200h !!!)
Offs:0024 - A809:0000 = Size Interrupt (JMP) Tables (Part1 Ovl)
Offs:0028 - 000F:8210 = Loading Address Overlay Code
Offs:002C - 7856:0100 = Size Overlay Code
Offs:0030 - 00FC:0121 = Loading Address Table 03 + Modul...
Offs:0034 - B807:0000 = Size Table 03 + Modul...
Offs:0038 - B803:0221 = Loading Address WorkValueArea
Offs:003C - DC09:0000 = Size WorkValueArea
.....
....
...
..
.

________________________________________________________________________________

*** Для исследования оверлея, выставите в HIEW, виртуальный адрес (Ctrl+F5),
равный в данном случае x1F200h (Offs:0020), x-ставить не надо, и все адреса и ссылки совпадут.
"x1" - это сегмент адресуемой памяти и на Marvell, может достигать значения 256 (FFh),
однако сам сегменты могут располагатьться в памяти где угодно
и даже, накладываться друг на друга.

Например:
00:2xxxx
01:Exxxx
FE:8xxxx

________________________________________________________________________________
Modul 13h (Unknown Overlay)
________________________________________________________________________________
***Standard Header:
040604-FC-13-3133434E47-CA7A-00000000
000000000000-1600 - Size Module

Addresses Config:
C000:00D0 - Load Address ???
642B:00D0 - Start Address (Entry Point) ???
A0D3:0000 - Load Address Interrupt (JMP) Tables
C000:0000 - Size Interrupt (JMP) Tables
A0D4:0000 - Load Address Code Overlay
A42A:0000 - Size Code Overlay
70D4:0000 - Load Address Init Variables
2C00:0000 - Size Init Variables
9CD4:0000 - Load Address Work Status DWord
0000:0000 - Reserve

***JMP Table:
50C0:9FE51CFF2FE1\
4CC0:9FE51CFF2FE1 \
48C0:9FE51CFF2FE1  \
44C0:9FE51CFF2FE1   \
40C0:9FE51CFF2FE1    \_JMP Entry Points (10x8)
3CC0:9FE51CFF2FE1    /
38C0:9FE51CFF2FE1   /
34C0:9FE51CFF2FE1  /
30C0:9FE51CFF2FE1 /
2CC0:9FE51CFF2FE1/

B10A00EA\_???
0000A0E1/

***Interrupt Table:
47FA:0000\         
B7FA:0000 \        
95FB:0000  \       
ABFB:0000   \      
23FC:0000    \_Interrupt Entry Points for JMP Table (10x4)
1FFD:0000    /     
4BDF:0000   /      
81E1:0000  /       
DFE9:0000 /        
47EB:0000/         

***Reserv:
00000000000000000000000000000000

***Init Variables:
05DB:0000\
0FDA:0000 \
C7D8:0000  \_Sub Entry Points
55D9:0000  /
71DA:0000 /
11-13-24-FF-21-23-25-FF-12-14-22-11
13-11-FF-11-13-FF-FF-12-14-12-00-00

***Work Status DWord ???
00000000

***Code Overlay:
042910B505D8FD4A890051588847041C02E0FB4802F026ED201C10BD242330B5
F94D584349014019F64C002A18D10A19D3681B070CD5D37FFF2B09D0191C2423
594349190A694B69C98BD218511802E06158928889180269511A2030017030BD
012AFCD1026943696158D218891AC18330BDF8B5041C8079E249009040014718
BE88FD68A188206840187989884203D9DB48013002F0E6EC680703D50098F5F7
A1FFFD685220284003D1D548023002F0DAECA288B24201D3321C04E020681118
.....
....
...
..
. cutting......

04F01FE5:0592:8010\
04F01FE5:049F:8110 \
04F01FE5:E13D:8110  \
04F01FE5:1179:8110   \
04F01FE5:F77B:8110    \_Calls Externals Procedures JMP Table
04F01FE5:2136:8110   /
04F01FE5:C57A:8110  /
04F01FE5:F57C:8110 /
04F01FE5:0901:FE1F/
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
000000000000000000000000
________________________________________________________________________________

Structure of module 47h (полная копия находится в FlashCode).

Модуль 47h, видимо является, StartUp-адаптивами (StartUp Adaptives) [Init Chipsets Variables Table]
для настройки регистров каналов чтения/записи, фильтров, регистров VCM и прочего.
По всей вероятности, именно модуль 47h, служит своего рода указателем
совместимости Firmware с оборудованием HDD, так как, именно в нем, находятся
все ID чипсетов (VCM, HeadAmplifier, SrvDec и пр.), поддерживаемых данным Firmware.

Example:
Drive 0 (2 models supported (Cnfg 1 and Cnfg 2))
============================================================================
Header:
040604-B3-47-4F2E30373F
1800=Offset Table 1 (34x6)
E400=Offset Table 2 (6x6)
0801=Offset Table 3 (2x6)
3756=Version ("7V") ???
0100=Amount sector in module
...
Values for Chips-Regs:
Cnfg 1: 40-3F-C0-8098-80-875F-00FE06FD305C2D1E030730-700C5D46318078-0505040505050405 \_ Supported
Cnfg 2: 40-61-C0-60B8-80-875F-FFFC08FE36632F1F020420-700C5D46318078-0709070707090707 /
Cnfg 3: 40-80-C0-60B0-80-875F-03FF0AFE345C2C17FF0020-700C5D46318078-0505050500000000
Cnfg 4: 40-80-C0-60B0-80-875F-03FF0AFE345C2C17FF0020-700C5D46318078-0505050500000000
Cnfg 5: 40-80-C0-60B0-80-875F-03FF0AFE345C2C17FF0020-700C5D46318078-0505050500000000
Cnfg 6: 40-80-C0-60B0-80-875F-03FF0AFE345C2C17FF0020-700C5D46318078-0505050500000000

Cnfg 1: 0A-0A-28952A97 \_ Supported
Cnfg 2: 0A-0A-25952797 /           
Cnfg 3: 09-0A-2A852A85
Cnfg 4: 09-0A-2A852A85
Cnfg 5: 09-0A-2A852A85
Cnfg 6: 09-0A-2A852A85

Cnfg 1: A1-04 \_ Supported
Cnfg 2: D9-04 /           
Cnfg 3: 3A-04
Cnfg 4: 3A-04
Cnfg 5: 3A-04
Cnfg 6: 3A-04
-----

Drive 1,2,3 (1 model supported (Cnfg 1))
============================================================================
...
Header:
061B05-B7-47-522E39433F-1800-FC00-2001 --> Drive 1
061B05-D1-47-522E39433F-1800-FC00-2001 --> Drive 2
081105-B0-47-522E39433F-1800-FC00-2001 --> Drive 3
...
000000004D52-0100 --> Drive 1
000000004D52-0100 --> Drive 2
000000004D42-0100 --> Drive 3
-----------------------------
Values for Chips-Regs:
Cnfg 1: 40-56-C0-50C8-80-3792-FF0303101C681F190704-020000-20-01300C394400807005-09-05-09-05-09-05-09 --> Drive 1
Cnfg 1: 40-53-C0-50B8-80-3792-0102050E1B661D160602-020000-24-01300C394400807005-09-05-08-05-09-05-08 --> Drive 2
Cnfg 1: 40-49-C0-50C0-80-3792-FE0302131C6E201C0804-020000-2E-01300C394400807005-0B-05-09-05-0B-05-09 --> Drive 3


Cnfg 2: 40-80-C0-60B0-80-3792-03FF0AFE345C2C17FF00-020000-20-01300C394400807005-05-05-05-00-00-00-00\
Cnfg 3: 40-80-C0-60B0-80-3792-03FF0AFE345C2C17FF00-020000-20-01300C394400807005-05-05-05-00-00-00-00 \
Cnfg 4: 40-80-C0-60B0-80-3792-03FF0AFE345C2C17FF00-020000-20-01300C394400807005-05-05-05-00-00-00-00  |--> Drive 1,2,3
Cnfg 5: 40-80-C0-60B0-80-3792-03FF0AFE345C2C17FF00-020000-20-01300C394400807005-05-05-05-00-00-00-00 /
Cnfg 6: 40-80-C0-60B0-80-3792-03FF0AFE345C2C17FF00-020000-20-01300C394400807005-05-05-05-00-00-00-00/

Cnfg 1: 0A-09-27-95-29-9D --> Drive 1
Cnfg 1: 0B-09-25-95-27-9D --> Drive 2
Cnfg 1: 0A-09-25-95-27-9D --> Drive 3

Cnfg 2: 0A-A9-0A-55-0A-55\
Cnfg 3: 0A-A9-0A-55-0A-55 \
Cnfg 4: 0A-A9-0A-55-0A-55  |--> Drive 1,2,3
Cnfg 5: 0A-A9-0A-55-0A-55 /
Cnfg 6: 0A-A9-0A-55-0A-55/

Cnfg 1: 48-04 --> Drive 1
Cnfg 1: 4C-04 --> Drive 2
Cnfg 1: 62-04 --> Drive 3

Cnfg 2: 3A-04\
Cnfg 3: 3A-04 \
Cnfg 4: 3A-04  |--> Drive 1,2,3
Cnfg 5: 3A-04 /
Cnfg 6: 3A-04/
________________________________________________________________________________

Module 02h (Passport-Password)
________________________________________________________________________________
0B0204-F6-02-303830303F-000000000000000000000000-0200 = Standard Header

Sections Table
_________________________
1600 = Number Sections (22)
7200 = Offset Section 01h
1600 = Size Section 01h
8800 = Offset Section 02h
1E00 = Size Section 02h
A600 = Offset Section 03h
1500 = Size Section 03h
BB00 = Offset Section 04h
3100 = Size Section 04h
1D01 = Offset Section 05h
1100 = Size Section 05h
3F01 = Offset Section 06h
1800 = Size Section 06h
6F01 = Offset Section 07h
0A00 = Size Section 07h
7901 = Offset Section 08h
0900 = Size Section 08h
8201 = Offset Section 09h
1300 = Size Section 09h
9501 = Offset Section 0Ah
0E00 = Size Section 0Ah
A301 = Offset Section 0Bh
1800 = Size Section 0Bh
BB01 = Offset Section 0Ch
1000 = Size Section 0Ch
CB01 = Offset Section 0Dh
1B00 = Size Section 0Dh
E601 = Offset Section 0Eh
3400 = Size Section 0Eh
1A02 = Offset Section 0Fh
1500 = Size Section 0Fh
2F02 = Offset Section 10h
1400 = Size Section 10h
4302 = Offset Section 11h
1A00 = Size Section 11h
5D02 = Offset Section 12h
4C00 = Size Section 12h
A902 = Offset Section 13h
4C00 = Size Section 13h
EC00 = Offset Section 14h
3100 = Size Section 14h
2E01 = Offset Section 15h
1100 = Size Section 15h
5701 = Offset Section 16h
1800 = Size Section 16h
__________________________

*** Section 01 (Serial Number)
0001
57442D574D414D43313639343332380000000000 = WD-WCAM91015860
*** Section 02 (Config LBA Size)
0001
10 = 16 Heads
3F = 63 sectors
032F0100 = 77571 Cyl
6FB5A804 = Size1 LBA 78165359 sect (HPA Mode 1)
6FB5A804 = Size2 LBA 78165359 sect (HPA Mode 2)
6FB5A804 = Size3 LBA 78165359 sect (HPA Mode 3)
71E4E801 = Size4 LBA 32040049 sect (HPA Mode 4) (HPA On, see Section 03)
000000000000
*** Section 03 (HPA Config)
0001
2400
48 = Flag HPA (48 = HPA On))
000000077F000006F401030001000000
*** Section 04
0001
01004000400132000507000100028000
3C008000008008100A140A242E425F78
8C8000080005030002000300000000
*** Section 14
0001
0100C800800132000507000100028000
C8008000008008100A140A14285F5F78
B48000080005030002000300000000
*** Section 05
0001
00010001010A030505000000000000
*** Section 15
0001
00010001010A030505000000000000

*** Section 06
000102040200000206000006040003020010000000000000
*** Section 16
0001
020602000002030000060600050A0010000000000000
*** Section 07 (Heads ???)
0001
0101000000000000
*** Section 08 (Zones ???)
0001
14000000000000
*** Section 09
0001
6400008FFDFFF8439A01007A0000000000
*** Section 0A
0001
840000000000003C40000100
*** Section 0B
0001
0E0000000204000F320CCAFA0A320A01000000000000
*** Section 0C
0001
6402120022000A00000000000000
*** Section 0D
0001
E0010F0F0201020A0101010202120102FFFF05000001000000
*** Section 0E
0001
00000000050000000000FFFF00000000
180A180000000500000000001E000000
0000000000004D0029000700180000000000
*** Section 0F
0001
000000000000070001020D0000000000000000
*** Section 10
0001
040003010001000000000000000000000000
*** Section 11
0001
57444320574434303042422D30304A484130202020202020 = WDC WD400BB-00JHA0......
*** Section 12 (Config String)
0001
534342554C42505A4D42484D43525248 = SCBULBPZMBHMCRRH
565A4B51554600202020202020202020 = VZKQUF..........
2020202031312D32362D323030340000 = ....11-26-2004
00000000000000000000000000000000
00000000000000000000
*** Section 13
0001
0100
00000000000000000000000000000000
00000000000000000000000000000000
57444357444357444357444357444357 = WDCWDCWDCWDCWDCW
44435744435744435744435744435700   DCWDCWDCWDCWDCW
0800
FEFF = 65534
00000000
...
_____________________________________________________________________________

Module 36h (Depop Head Config)  WD800 (2 head)
________________________________________________________________________________

040604-66-36-3133434E3F-000000000000
000000000000-0100-1200-0000 (1200h = String Count)

0000-0000-0000-0000-E9-03-0000\
0000-0000-0000-0000-EA-03-0000 \
0000-0000-0000-0000-EB-03-0000  \
                                 \
0000-0000-0100-0000-09-A0-0000    \
0000-0000-0100-0000-0A-A0-0000     | For Head 0 ???
0000-0000-0100-0000-0B-A0-0000    /
                                 /
0000-0000-0200-0000-29-3C-0100  /
0000-0000-0200-0000-2A-3C-0100 /
0000-0000-0200-0000-2B-3C-0100/

0100-0000-0000-0000-E9-03-0000\
0100-0000-0000-0000-EA-03-0000 \
0100-0000-0000-0000-EB-03-0000  \
                                 \
0100-0000-0100-0000-09-A0-0000    \
0100-0000-0100-0000-0A-A0-0000     | For Head 1 ???
0100-0000-0100-0000-0B-A0-0000    /
                                 /
0100-0000-0200-0000-29-3C-0100  /
0100-0000-0200-0000-2A-3C-0100 /
0100-0000-0200-0000-2B-3C-0100/

____________________________________
Module 36h (Depop Head Config)  WD400 (1 head)
____________________________________
0B0204-6F-36-303542573F-000000000000
000000000000-0100-0900-0000 (0900h = String Count)

0000-0000-0000-0000-E9-03-0000\
0000-0000-0000-0000-EA-03-0000 \
0000-0000-0000-0000-EB-03-0000  \
                                 \
0000-0000-0100-0000-09-A0-0000    \
0000-0000-0100-0000-0A-A0-0000     | For Head 0 ???
0000-0000-0100-0000-0B-A0-0000    /
                                 /
0000-0000-0200-0000-29-3C-0100  /
0000-0000-0200-0000-2A-3C-0100 /
0000-0000-0200-0000-2B-3C-0100/

________________________________________________________________________________

Config Pages.
________________________________________________________________________________

Sable как-то писал:
********************************************************************************
***If page = 00...
01-06	- modelТs list (?)
07-0C	- Total LBAТs INCLUDE G-list (по моделям)
0D	- Serial number
0E	- Model
0F	- что-то уникальное для каждого винта
10	- дата влпуска
11	- возвращает все нули
13	- возвращает все нули
14	- возвращает все нули
***If page = 02
00	- Loading LOG ???
01	- 00 01 + Serial number
02-10	- ??
11	- 00 01 + Model
12 	- ??? (что-то уникальное и дата влпуска)
13	- мастерпасс
14-16	- ???
***If page = 21
00-0D	- непонятное (страница конфигурации??? Дефект-лист??? Адаптивы???)
If page = 2D и 2E винт уходит в бизи, резетом не снимается.
********************************************************************************

На поверку оказалось, что на самом деле, это не что иное как...
________________________________________________________________________________
Config Pages: WD-Marvell (WD800BB-00JHA0)
____________________________________
Page 00h (Parse Active Model Drive)
____________________________________
Sector:
01 = Config 1 [Model Names From module 0Ch]
02 = Config 2 [Model Names From module 0Ch]
03 = Config 3 [Model Names From module 0Ch]
04 = Config 4 [Model Names From module 0Ch]
05 = Config 5 [Model Names From module 0Ch]
06 = Config 6 [Model Names From module 0Ch]
07 = LBA Size (WD400x-WD800x) [From module 0Ch]
08 = LBA Size (WD300x-WD600x) [From module 0Ch]
09 = LBA Size (WD200x-WD400x) [From module 0Ch]
0D = Serial Number [From module 02h]
0E = Model Name [From module 02h]
0f = String HDA-DCM [From module 02h]
10 = Data [From module 02h]
____________________________________
Page 02h (Parse Config Sector 02h)
____________________________________
Sector:            
00 = Header + Sections Table from module 02h
01 = RAW Section 01 (Serial Number from module 02h)
02 = RAW Section 02 (from module 02h)
03 = RAW Section 03 (from module 02h)
04 = RAW Section 04 (from module 02h)
05 = RAW Section 05 (from module 02h)
06 = RAW Section 06 (from module 02h)
07 = RAW Section 07 (from module 02h)
08 = RAW Section 08 (from module 02h)
09 = RAW Section 09 (from module 02h)
0A = RAW Section 0A (from module 02h)
0B = RAW Section 0B (from module 02h)
0C = RAW Section 0C (from module 02h)
0D = RAW Section 0D (from module 02h)
0E = RAW Section 0E (from module 02h)
0F = RAW Section 0F (from module 02h)
10 = RAW Section 10 (from module 02h)
11 = RAW Section 11 (Model Name from module 02h)
12 = RAW Section 12 (String HDA-DCM + Data from module 02h)
13 = RAW Section 13 (Password from module 02h)
14 = RAW Section 14 (from module 02h)
15 = RAW Section 15 (from module 02h)
16 = RAW Section 16 (from module 02h)
____________________________________
Page 21h (Parse S.M.A.R.T. Module 21h)
____________________________________
Sector:                           
00 = Header + Sections Table from module 21h
01 = RAW Section 01 (from module 21h)
02 = RAW Section 02 (from module 21h)
03 = RAW Section 03 (from module 21h)
04 = RAW Section 04 (from module 21h)
05 = RAW Section 05 (from module 21h)
06 = RAW Section 06 (from module 21h)
07 = RAW Section 07 (from module 21h)
08 = RAW Section 08 (from module 21h)
09 = RAW Section 09 (from module 21h)
0A = RAW Section 0A (from module 21h)
0B = RAW Section 0B (from module 21h)
0C = RAW Section 0C (from module 21h)
_____________________________________

...То-есть, страницы конфигурации, включают еще и текущие SMART-данные,
которые, время от времени, записываются в SMART-модули.
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________

TMOS-команды:

Все наслышаны о TMOS-командах и о их больших возможностях.
Есть люди, имеющие неплохую, заводскую документацию по TMOS-командам,
хотя, основная масса, довольствуется только тем что выпустит "Ася" или
другими, "самодельными" описаниями.
Но ни те и не другие, не имеют полного представления о том,
какие-же именно TMOS-команды, поддерживаются его жестким диском.

И вот почему...
Наборы TMOS-команд, (их количество и назначение) всегда зависят от версии Firmware,
и даже, полнейшее заводское описание TMOS-команд, всегда относится только
к определенной версии Firmware в пределах одного семейства.
Мало того, даже в заводской документации, нет описания всех команд,
которые, на самом деле имеет Firmware данного семейства.
Часть команд, так и остается скрытой от сервисных центров, для которых
и предназначаются эти описания.
Полный-же набор команд для данной Firmware, известен только производителю.
Конечно, огромнейшую роль, в понимании TMOS-команд, играет само описание,
назначения и использования команд, но опытный ремонтник сможет понять назначение
и подобрать параметры неизвестной команды, если будет точно известно,
что данная команда, подерживается жестким диском на все 100 процентов.
Сами таблицы команд, находятся в трех модулях: FlashCode, APPCode и CertCode.
Поэтому, не будем ждать милости от производителя и вытащим все поддерживаемые
TMOS-команды из модулей Firmware :)

... Не все команды я смог проверить на своей полумертвой рыбе,
но надеюсь, что настоящие рыбаки, это сделают.

________________________________________________________________________________
*** Данная структура таблиц применяется в моделях под управлением MPU-I296A.

Note:
"???" = Unknown (New) TMOS command

Все TMOS-таблицы, начинаются с сигнатуры уровня (NameLevel+00 (2 байта)),
имеют 6ти-байтовую структуру и заканчиваются кодом 00FF.

Например: Блок уровня F> [FlashCode]
----------------
SEAGATE (Alpine)
----------------
__________________________________
46-00 = (46h="F") Begin Block "F" (Level Signature)
2B-40-BA78-0800\
3D-40-C478-0800 \
2D-40-F878-0800  \
42-40-B872-0800   \
43-60-8A76-0800    |
44-40-1876-0800    |
50-40-3A74-0800    |
52-00-8A6F-0800    |
55-00-4870-0800    |
56-60-2272-0800    |
59-00-BA70-0800     \ ASCICode-Flag-OffsetAddress-SegmentAddress
5A-00-5070-0800     /
62-40-9E2C-0800    |
64-40-9274-0800    |
65-00-1033-0800    |
66-00-960B-0800    |
6A-00-EE6F-0800    |
72-40-A275-0800   /
73-00-0A70-0800  /
74-40-C874-0800 /
76-60-EE0B-0800/
00-FF - End Block

Необходимо учитывать, что TMOS-блоки, могут находиться в различных местах модулей.

Например:
Уровни [T], [D], [1,2,3,4,7,A,C,E,T]
в CERTCode, находятся в трех, различных блоках.
Кроме того, уровень [T], разбит на две части :)
_______________________________________________

*** FlashCode содержит:
-----------------------
Ver. 0.99/3.04 (4.99)

*FLASH-CODE TESTS*
___________________
Level F: 4600
Address: 006F7C

+: 2B-40-BA78-0800
=: 3D-40-C478-0800
-: 2D-40-F878-0800
B: 42-40-B872-0800
C: 43-60-8A76-0800
D: 44-40-1876-0800
P: 50-40-3A74-0800
R: 52-00-8A6F-0800
U: 55-00-4870-0800
V: 56-60-2272-0800 [F>V1,2,400 Memory mismatch = 00000400, Src = 0C2D, Dest = 70FE]
Y: 59-00-BA70-0800 [F>YFF,44,66 (Y flags,data,write)]
Z: 5A-00-5070-0800
b: 62-40-9E2C-0800
d: 64-40-9274-0800
e: 65-00-1033-0800
f: 66-00-960B-0800 [SFlashWork(Simular[ex,y,z,w]Include Opt "v")???]
j: 6A-00-EE6F-0800
r: 72-40-A275-0800
s: 73-00-0A70-0800
t: 74-40-C874-0800
v: 76-60-EE0B-0800 [SFlashWork(Simular[ex,y,z,w])???]
00FF-End                                                       
---------------------
Address: 00007D2E
Info & Control Code
---------------------
03h: 03-00-EE6D-0800 = Ctrl+C
04h: 04-40-107D-0800 = Ctrl+D
0Ch: 0C-40-207F-0800 = Ctrl+L
0Eh: 0E-40-107D-0800 = Ctrl+N
0Fh: 0F-40-687D-0800 = Ctrl+O
1Ah: 1A-00-FA6D-0800 = Ctrl+Z
1Dh: 1D-40-687D-0800 = Ctrl+]
 ! : 21-40-C07D-0800 = " ! "
 % : 25-40-A080-0800 = " % "
 ' : 27-40-4881-0800 = " ' "
 . : 2E-40-3082-0800 = " . "
 ; : 3B-40-EC82-0800 = " ; "
 < : 3C-40-FC80-0800 = " < "
 > : 3E-40-1481-0800 = " > "
__________________________________

Пример разбора строки команды и запуска процедуры:

44-40-1876-0800 = Kоманда Dx,y,z (Display Memory), на уровне F>.
...
44 = ASCI Command Code [44h = "D"]
40 = Flag [00h,40h,60h] Назначение неизвестно
1876 [7618h] = Offset Procedure
0800 [0008h] = Segment Procedure
...
Зная адрес процедуры, можно запустить ее на выполнение
используя команду jx,y (Jump to address to execute), на уровне F>.

Например, запустить процедуру Display Memory на уровне F>, в данной Firmware, можно вот так:

F>j0008,7618 (или F>j8,7618)
и в результате мы увидим подобное...
______________________________________________________________________________
Addr    0 1 2 3  4 5 6 7  8 9 A B  C D E F 10 1 2 3  4 5 6 7  8 9 A B  C D E F
087618 88908880 26F00800 03090303 80758080 6586699D D456BE4B A70A8000 00000000
...
..
.
______________________________________________________________________________

... Так-как, в буфере передачи параметров команды, имеется введенный нами
адрес "0008:7618", который будет передан запускаемой процедуре,
то мы увидим, не что иное, как, исполняющий код процедуры "Display Memory".
То-есть, процедура "Display Memory", покажет свой собственный код.
... Таким образом, можно запустить любую процедуру в памяти.
Проблемма лишь в передаче параметров для запускаемой процедуры,
ведь она получает в качестве параметров команды, введенный нами адрес :(
... Нужно, каким-то образом изменить адрес буфера передачи параметров,
с предварительным заполнением его, необходимыми значениями.
Иначе, процедура, либо зависнет, либо сделает неведомо что,
либо просто игнорирует команду, либо прекрасно отработает,
если параметров для нее, не требуется :)

Так-как, APPCode, обычно всегда загружается в память,
мoжно, к примеру, из уровня F>, попытаться загрузить CERTCode,
подачей "программного" Ctrl+R, находящегося в APPCode,
но отсутствующего на уровне F>. Например: F>j000A,BB28

*** Однако следует помнить, что часть команд, находящихся в APPCode,
вызывает процедуры из незагруженного CERTCode, поэтому, такая команда,
может до конца не выполнится и зависнуть.

В общем - эксперементам нет границ.
В одном только FlashCode, более 500 подпрограмм - была-бы рыба :)
-------------------------------
*** CERTСode и APPCode содержат:
-------------------------------
Ver. 0.99/3.04 (4.99)                                                 
-------------------------------------------                           
 *CERT-CODE TESTS*   :   *APP-CODE TESTS*                             
___________________  :  ___________________                           
Level T: 5400        :  Level T: 5400                                 
Address: 00152C                                                       
00FF                 :  Address: 019C76                               
___________________  :  B: 42-409E2C0800 --Address FlashCode  "Set Baud Rate"
Level T: 5400        :  E: 45-0008B10A00 Display/Edit Cert Log(s)
Address: 002F80      :  F: 46-00B8950A00
D: 44-404E3E1200     :  G: 47-00883B0A00  ???
C: 43-007A3B1300     :  J: 4A-0008B10A00
H: 48-009A3B1300     :  K: 4B-0000960A00
I: 49-00FA3B1300     :  N: 4E-00F89F0A00
T: 54-406A591400     :  R: 52-0062A00A00
V: 56-006E361300     :  W: 57-003EA00A00
h: 68-605C5F1400     :  Y: 59-006CA00A00
i: 69-00083B1300     :  a: 61-009C2B0800 --Address FlashCode  "Drive messaging pause toggle switch"
j: 6A-60267E1500     :  b: 62-0068090B00
l: 6C-00563C1300     :  c: 63-00DC090B00
m: 6D-009A3E1300     :  d: 64-00743C0A00
r: 72-604E581400     :  e: 65-00B0090B00
s: 73-0000401300     :  f: 66-00CED20A00
w: 77-40B25A1400     :  g: 67-006E090B00
x: 78-40E63B1200     :  p: 70-00209F0A00  ???
00FF-End             :  #: 23-008E9F0A00
----------------     :  $: 24-003E9F0A00
                     :  [: 5B-00E8A00A00
                     :  00FF-End
____________________ :  ___________________                           
Level 1: 3100        :  Level 1: 3100                                 
Address: 001530                                                       
00FF-End             :  Address: 019CF8                               
Address: 002D1A      :  B: 42-4026D70A00                              
H: 48-40C2D01200 ??? :  D: 44-4022D30A00
R: 52-40F2C71200 ??? :  F: 46-0056A10A00
Y: 59-0028221300     :  N: 4E-004E3C0A00                              
c: 63-0074C71200     :  S: 53-400ED70A00                              
t: 74-6040621400     :  U: 55-401AD70A00                              
u: 75-60787F1500     :  d: 64-604CDC0A00                              
y: 79-00DC211300     :  e: 65-00FAFE0800 --Address FlashCode  ???
00FF-End             :  m: 6D-401CD40A00                              
                     :  r: 72-4076850900
                     :  s: 73-40CCF10A00                              
                     :  00FF-End                                      
-------------------
1>H = AT FIFO test
1>R =  Ram Test (WinC 0,1,2,3....)
___________________  :  ___________________
Level 2: 3200        :  Level 2: 3200                                 
Address: 001534      :  Address: 019D3E                               
K: 4B-00A20F1200     :  B: 42-4026D70A00                              
M: 4D-00401D1200     :  E: 45-0008B10A00                              
N: 4E-00001B1200     :  F: 46-0062A10A00                              
O: 4F-00CC0F1200     :  H: 48-0004A40A00                              
Q: 51-007E0F1200     :  J: 4A-0008B10A00                              
7: 37-00F40E1200 ??? :  P: 50-40FCD70A00                              
9: 39-006A0F1200 ??? :  R: 52-001EA20A00                              
00FF-End             :  S: 53-0054A20A00                              
Address: 002D48      :  U: 55-00F4A30A00                              
C: 43-60B0D91200     :  W: 57-00DCA20A00                              
c: 63-4088C71200     :  Y: 59-0036A30A00                              
d: 64-40E0DA1200     :  Z: 5A-00FCA30A00                              
e: 65-00E81A1300     :  r: 72-0052A40A00                              
f: 66-001E101300     :  s: 73-0070A70A00                              
G: 47-40BC901300     :  w: 77-009AA40A00                              
g: 67-4096D41200     :  x: 78-60B4DE0A00                              
h: 68-6058D81200     :  00FF-End                                      
I: 49-00B4DF1300     :  ----------------                              
i: 69-008C131300     :                                                
j: 6A-40D2FA1200     :                                                
l: 6C-0044151300     :                                                
k: 6B-008E151300 ??? :--> ("k"NumZone) Test Read Speed
m: 6D-00AE0D1300 ??? :--> Set NumCylsPerRegion
p: 70-60B4671300     :                                                
q: 71-6016791300 ??? :--> qx,y,z (x0=Read, x1=Write, y=From, z=To)
T: 54-00E0151300     :(q1,16500,16510) Measured spin speed (Test 48)
t: 74-00320E1300     :                                                
V: 56-00EC0D1300     :                                                
X: 58-606AE11200     :                                                
x: 78-6032FB1200     :                                                
y: 79-00881D1200     :                                                
z: 7A-402EF21200     :                                                
00FF-End             :                                                
================     :                                                
2>k = SpeedRite with Shift Skew
___________________  :  ___________________                           
Level 3: 3300        :  Level 3: 3300                                 
Address: 001562      :  Address: 019DA2                               
C: 43-00F0111200     :  f: 66-0004A90A00  ???                         
D: 44-0028101200     :  00FF-End                                      
E: 45-0008B10A00     :  ----------------                              
H: 48-0004A40A00     :                                                
O: 4F-00CC0F1200     :                                                
P: 50-0032101200     :                                                
Q: 51-00BC131200     :                                                
S: 53-0054A20A00     :                                                
T: 54-00B2111200     :                                                
U: 55-00F4A30A00     :                                                
V: 56-00A4111200     :                                                
Z: 5A-00FCA30A00     :                                                
k: 6B-0030121200     :
s: 73-0088A70A00     :                                                
00FF-End             :                                                
Address: 002DD0      :                                                
G: 47-0028221300     :                                                
J: 4A-00BE221300     :                                                
M: 4D-00B2211300     :                                                
R: 52-002C221300     :                                                
W: 57-00922B1300     :                                                
X: 58-00EE221300 ??? : -- sigma^2 RRO  = 0B98  To get sigma (%Trk)...
Y: 59-000A271300     :
f: 66-00641C1300 ??? : -- Graphics
g: 67-00DC211300     :                                                
m: 6D-40D4361200     :                                                
p: 70-00CA141300     :                                                
q: 71-0044151300     :                                                
00FF-End             :                                                
================     :                                                
___________________  :  ___________________                           
Level 4: 3400        :  Level 4: 3400                                 
Address: 0015BA      :  Address: 019DAC                               
4: 34-00E2161200 ??? :  R: 52-407AE00A00 ???                          
D: 44-0028101200     :  00FF-End                                      
E: 45-0008B10A00     :  ----------------                              
H: 48-0004A40A00     :  ___________________                                              
K: 4B-00A20F1200     :  Level 6: 3600                                                 
O: 4F-00C4191200     :  Address: 003974
P: 50-0032101200     :  B: 42-4026ED0A00
S: 53-0054A20A00     :  D: 44-40A0EC0A00
X: 58-0000191200     :  E: 45-40E2EB0A00
d: 64-003C151200     :  00FF-End
e: 65-0052141200 ??? :  ----------------
i: 69-00F6181200     :
r: 72-00B6141200     :                                                
t: 74-00E0151200     :                                                
u: 75-0048151200     :                                                
x: 78-0002171200     :                                                
y: 79-0070181200     :                                                
z: 7A-00DE171200     :                                                
00FF-End             :                                                
Address: 002E1C      :                                                
B: 42-007E331300 ??? :                                                
C: 43-40782A1400     :                                                
G: 47-009E2A1300     :                                                
I: 49-00AC830900     :                                                
M: 4D-00B2211300     :                                                
N: 4E-4036C21200     :                                                
T: 54-4046C21200     :                                                
U: 55-40821A1400 ??? :
W: 57-00922B1300     :                                                
Y: 59-405A2E1400 ??? :
Z: 5A-00102B1300     :                                                
a: 61-00D6011400     :                                                
c: 63-40DA1D1400     :                                                
f: 66-40222F1400     :                                                
g: 67-005A291300 ??? : --> Writing data to disk Diag mode On
j: 6A-40C4031400     :                                                
k: 6B-40FA2B1400     :                                                
l: 6C-40782A1400     :                                                
n: 6E-40762B1400     :                                                
o: 6F-401A051400 ??? :  test head pos???
p: 70-001E051300     :                                                
q: 71-00062B1300     :                                                
s: 73-00BAAE1300     :                                                
v: 76-4000001400     :                                                
w: 77-4010071400     :                                                
00FF-End             :                                                
================     :                                                
4>Y = Seek Test
4>Uxx = SelfBode Test (xx = Mode 02-03)
4>e xx = DiagDac On with Resolution xx
4>e,1 = PES output Disabled
___________________  :  ___________________
Level 7: 3700        :  Level 7: 3700                                 
Address: 00162A      :  Address: 019DB6                               
G: 47-000E271200     :  B: 42-4026D70A00                              
N: 4E-00001B1200     :  E: 45-0008B10A00                              
O: 4F-00501B1200     :  F: 46-0062A10A00                              
T: 54-00741A1200     :  H: 48-0004A40A00                              
Q: 51-007E0F1200     :  P: 50-40FCD70A00                              
b: 62-00421D1200     :  R: 52-001EA20A00                              
e: 65-0072261200     :  S: 53-0054A20A00                              
f: 66-0048261200     :  U: 55-00F4A30A00                              
i: 69-00F4261200     :  W: 57-00DCA20A00                              
n: 6E-00621D1200     :  Y: 59-0036A30A00                              
o: 6F-006E301200     :  Z: 5A-00FCA30A00                              
p: 70-404C281200     :  r: 72-0062A00A00                              
u: 75-00F6251200     :  s: 73-003CE30A00                              
y: 79-00881D1200     :  w: 77-003EA00A00                              
z: 7A-009C261200     :  ----------------                              
9: 39-0078231200     :  0000 ???                                      
----------------     :  ----------------                              
0000 ???             :  ___________________                           
Address: 002EB6      :  Level 8: 3800                                 
d: 64-40E2E41300     :  Address: 019E7A                               
C: 43-60B0D91200     :  8: 38-00B0BD0A00 ???
D: 44-60B2FE1300     :  00FF-End                                      
M: 4D-406EC21200     :                                                
O: 4F-40FEF31300     :                                                
I: 49-00B4DF1300     :                                                
V: 56-009E341300     :                                                
g: 67-60BAF91300     :                                                
c: 63-4042FC1300     :                                                
l: 6C-40C8E81300 ??? :                                                
q: 71-0034341300 ??? :                                                
t: 74-009AF41300     :                                                
x: 78-0032FB1200     :                                                
7: 37-0074E21300     :                                                
00FF-End             :                                                
================     :
7>l count,flag
7>l2,7
Trk 59E Hd 03 TA_Thld 03 IBias 0D EPCount : 0000
Trk 59E Hd 03 TA_Thld 03 IBias 0B EPCount : 0000
Trk 59E Hd 03 TA_Thld 03 IBias 09 EPCount : 0000
Trk 59E Hd 03 TA_Thld 03 IBias 07 EPCount : 0000
Trk 59E Hd 03 TA_Thld 03 IBias 05 EPCount : 0000
Trk 59E Hd 03 TA_Thld 03 IBias 03 EPCount : 0000
Trk 59E Hd 03 TA_Thld 03 IBias 01 EPCount : 0000
Total EPCount : 0000 
Trk 59E Hd 03 TA_Thld 04 IBias 0D EPCount : 0000
Trk 59E Hd 03 TA_Thld 04 IBias 0B EPCount : 0000
Trk 59E Hd 03 TA_Thld 04 IBias 09 EPCount : 0000
Trk 59E Hd 03 TA_Thld 04 IBias 07 EPCount : 0000
Trk 59E Hd 03 TA_Thld 04 IBias 05 EPCount : 0000
Trk 59E Hd 03 TA_Thld 04 IBias 03 EPCount : 0000
Trk 59E Hd 03 TA_Thld 04 IBias 01 EPCount : 0000
Total EPCount : 0000
___________________  :  ___________________
Level A: 4100        :  Level A: 4100                                 
Address: 00168E      :  Address: 019E0E                               
C: 43-607C341200     :  E: 45-0008B10A00                              
c: 63-6016351200     :  Y: 59-0036A30A00                              
D: 44-6080351200     :  0000 ???                                      
d: 64-603A361200     :  ----------------                              
l: 6C-60BA341200     :                                                
Q: 51-40AE331200     :                                                
R: 52-403E331200     :                                                
S: 53-40E0331200     :                                                
W: 57-4076331200     :                                                
Address: 002F0E      :                                                
M: 4D-60343B1200     :                                                
00FF-End             :                                                
================     :                                                
___________________  :  ___________________
Level C: 4300        :  Level Info & ??? (Bath Opt ???)
Address: 002F18      :  Address: 019E1E                               
B: 42-6018301400 ??? :  @: 40-40D0ED0A00                              
C: 43-6096351400 ??? :  *: 2A-4046ED0A00                              
D: 44-60383F1400     :  +: 2B-4052EB0A00
P: 50-6074381400     :  =: 3D-405CEB0A00
s: 73-00FE521300     :  -: 2D-40D8EB0A00
W: 57-60523C1400 ??? :  A: 41-0042BC0A00                              
p: 70-40FC3D1400 ??? :  L: 4C-400EEB0A00                              
c: 63-60684E1400 ??? :  0: 30-40D0ED0A00                              
d: 64-60FE9B1300 ??? :  1: 31-40D0ED0A00                              
e: 65-6096321400 ??? :  2: 32-40D0ED0A00                              
t: 74-60D8381400 ??? :  3: 33-40D0ED0A00                              
u: 75-60C6AE1300 ??? :  4: 34-40D0ED0A00                              
v: 76-60F2391400 ??? :  5: 35-40D0ED0A00                              
w: 77-600E3A1400 ??? :  6: 36-40D0ED0A00                              
00FF-End             :  8: 38-40D0ED0A00                              
                     :  00FF-End
-------------------------------------------
C>B = ErrorRateTest
C>C = Do747CurveTest
C>W = (W head) OTC Characteriszation (If "head" > Real-HeadNum = Check All Heads)
C>p = (p0,1 = Head 0: 0 Head 1: 0)
C>c = Full-track cold write screen (Check Heads?)
C>d = Rwhlth set, will not defect map track
C>e = (e ErrLevel) ErrRate Degradation (compare base-log 49 with factory-log 00)
C>t = t0, t1 ((1/0) EC FFC) ???
C>u = (u NumLog) Scanning and schow log
C>w = (w head) Errors for "head" in zone 0
___________________________________________
Level D: 4400        :  Info & Control Code
----------------     :  Address: 019E84    
I: 49-604A6F1400     :  01h: 01-0010BF0A00 = Ctrl+A
E: 45-60806C1400     :  03h: 03-0032BB0A00 = Ctrl+C
D: 44-60B46C1400 ??? :  04h: 04-003EC50A00 = Ctrl+D
S: 53-60C66F1400     :  05h: 05-8098390A00 = Ctrl+E
T: 54-601A701400     :  06h: 06-803E290A00 = Ctrl+F
b: 62-6040701400     :  07h: 07-808C8C0A00 = Ctrl+G
c: 63-6010711400     :  09h: 09-804A090A00 = Ctrl+I
l: 6C-60CE711400     :  0Bh: 0B-801E0A0A00 = Ctrl+K
p: 70-60EE711400     :  0Ch: 0C-005CC40A00 = Ctrl+L
s: 73-6032721400     :  0Eh: 0E-003EC50A00 = Ctrl+N
t: 74-6090721400     :  0Fh: 0F-008CC50A00 = Ctrl+O
v: 76-60BC721400     :  10h: 10-0082C40A00 = Ctrl+P
w: 77-6008741400     :  11h: 11-001ABF0A00 = Ctrl+Q
0000 ???             :  12h: 12-0028BB0A00 = Ctrl+R
___________________  :  13h: 13-80240A0A00 = Ctrl+S
Level E: 4500        :  14h: 14-001CBB0A00 = Ctrl+T
Address: 002F70      :  15h: 15-80DE950A00 = Ctrl+U
a: 61-408C511400     :  16h: 16-80C6900A00 = Ctrl+V
b: 62-4056561400     :  17h: 17-00C2C40A00 = Ctrl+W
00FF-End             :  18h: 18-80C08F0A00 = Ctrl+X
----------------     :  19h: 19-80363C0A00 = Ctrl+Y
                     :  1Ah: 1A-0048BB0A00 = Ctrl+Z
                     :  1Dh: 1D-008CC50A00 = Ctrl+]
___________________  :  1Bh: 1B-4040EB0A00 = Ctrl+[
=============        :   ! : 21-008EC30A00 = " ! " 
1:Y - 3:G            :   % : 25-0048C30A00 = " % " 
1:y - 3:g            :   ' : 27-0094BF0A00 = " ' " 
2:C - 7:C            :   . : 2E-004ABF0A00 = " . " 
2:I - 7:I            :   : : 3A-00E8C20A00 = " : "
2:l - 3:q            :   ; : 3B-00E0C20A00 = " ; "
3:M - 4:M            :   < : 3C-00DEC40A00 = " < "
3:W - 4:W            :   > : 3E-00ECC40A00 = " > " 
4:C - 4:l            :   ? : 3F-00F0C20A00 = " ? "
=============        :   ^ : 5E-005EBF0A00 = " ^ "
=============        :   ` : 60-009CBF0A00 = " ` "
AppTestNum:          :   ~ : 7E-80B0900A00 = " ~ "
T,1,2,3,4,6          :  00FF-End           
7,8,A,C,D,E,F
=============
================================================================

Как видите, такая методика, позволила обнаружить немало дополнительных
и безопасных тестов, которые были доступны, только при запущенном скане.

Например:
1>R = "Ram Test", позволяет проверить всю память
C>e = "ErrRate Degradation", позволяет определить степень деградации голов.
C>B = "ErrorRateTest"... и.т.д.

... Однако, ни в коем случае, нельзя забывать, о том, что,
"незнание, не освобождает от ответственности" за загубленный HDD.
Например, вполне возможно что, в другой версии Firmware,
такие-же тесты (буквы) имеют другое назначение и могут быть небезопасны.

... Незная броду, не лезем в воду, несмотря на хорошую, с виду, погоду. :)

__________________________________________________

Несколько слов об адресах буферов:
? = Show Buffer Allocation.
__________________________________________________
RD:0200:10           RD:0200:10  
WR:0210:10           WR:0210:10  
AC:022B:01FF         AC:022B:01FF
AS:042A:0065         AS:042A:0065
SC:048F:0201         SC:048F:0201
DP:022B:01FF         DP:022B:01FF
BA:0227:03           BA:0227:03  
ST:022A:01           ST:022A:01  
logbps:0200          logbps:0200 
codebps:0200         codebps:0200
uP:0FE2:1E           uP:3FE2:1E            
FM:0220:07           FM:0220:07
AD:0220:0B           AD:0220:0B
RL:0FDD              RL:3FDD   
SL:0F1A              SL:3F1A   
AL:0F03              AL:3F03   
MZ:0FF6              MZ:3FF6   

.130

Sys= 0EDFB-0EE7A   0280 SPTK on sys trks
__________________________________________________
... Обычно, расположение и размер буферов,
AC, AS, SC, DP, BA, ST, FM, AD - жестко определяется в APPCode.
Расположение и размер буферов:
logbps, codebps, RD, WR, uP, RL, SL, AL, MZ - определяются
динамически, в зывисимости от объема памяти и размера
SL и AL листов, RL и различных логов.

Вот часть кода из APPCode .130
______________________________
(В квадратных скобках выделены кол-во и размер буфера)
*** = Динамическое распределение.
______________________________

logbps: 6C6F676270733A800A002AC402800A002AC400-05 ***
codebps: 636F64656270733A800A002AC402800A002AC400-06 ***
RD: 52443A-076681 3A037881-05 ***
WR: 57523A-076481 3A037681-06 ***
AC: 41433A-800A0036C4 [2B02] 0742813A 800A00 36C4 [FF01] 074281-05
AS: 41533A-800A0036C4 [2A04] 0742813A 800A00 36C4 [6500] 074281-05
SC: 53433A-800A0036C4 [8F04] 0742813A 800A00 36C4 [0102] 074281-05
DP: 44503A-800A0036C4 [2B02] 0742813A 800A00 36C4 [FF01] 074281-05
BA: 42413A-800A0036C4 [2702] 0742813A 800A00 30C4 [03] -05
ST: 53543A-800A0036C4 [2A02] 0742813A 800A00 30C4 [01] -0605
uP: 75503A-074281 3A800A002AC41E -05 ***
FM: 464D3A-800A0036C4 [2002] 0742813A800A0030C4 [07] 05
AD: 41443A-800A0036C4 [2002] 0742813A800A0030C4 [0B] 05
RL: 524C3A-0768D0-05 ***                                                
SL: 534C3A-073AD2-05 ***                                                
AL: 414C3A-073CD2-05 ***                                                
MZ: 4D5A3A-073ED2-06 ***                                                
________________________________________________________________

А вот и обычная Zone Map...
Однако, очень интересно выглядят две последние строчки... что это за зоны ???
________________________________________________________________
Address: 0000827E (CERT)
Zone Map Rev .130 .245 its...                                                                     
_Zone__BegCyl___EndCyl____________Spt_____________________________________________________________
00-00-18000000-E80B0000-AF6D0A00-4C04-8F01-8601-61050500-0901-1701-4C0C-04AC-0202-0CEB-A111-0A25  
01-00-E90B0000-FE270000-CF290A00-2004-9401-8A01-85050400-0801-1701-F80B-80AC-0202-0CE5-9D11-0B26  
02-00-FF270000-07470000-83DC0900-0204-9601-8901-B0050400-0801-1A01-9C0B-FCAC-0202-0566-9810-0E27  
03-00-08470000-A36C0000-5F7F0900-DE03-9C01-8C01-E8050400-0801-1D01-2C0B-78AD-0202-0EF7-9210-1028  
04-00-A46C0000-668B0000-F1300900-B903-9F01-8B01-1B060400-0701-2001-CC0A-F4AD-0202-022F-8D0F-142A  
05-00-678B0000-79A40000-28DB0800-9403-A301-8E01-56060300-0701-2201-640A-70AE-0202-0BB8-870E-162B  
06-00-7AA40000-05C40000-5A540800-7003-AA01-9001-AF060400-0601-2601-C409-ECAE-0202-0339-7E0D-1B2E  
07-00-06C40000-9AD90000-D30A0800-4403-B001-9401-EC060300-0601-2801-6C09-68AF-0202-0229-7A0D-1D30  
08-00-9BD90000-D9EC0000-20B90700-2603-B501-9401-32070300-0501-2C01-0809-E4AF-0202-0878-740C-2232  
09-00-DAEC0000-37030100-D4550700-0203-BA01-9401-90070300-0501-3101-9408-60B0-0202-0CA5-6E0B-2734  
0A-00-38030100-97130100-680B0700-DD02-C201-9A01-E0070300-0401-3301-3808-DCB0-0202-12E8-690B-2936  
0B-00-98130100-54280100-AFAC0600-B302-CB01-A101-50080200-0401-3501-C807-58B1-0202-14F3-630B-2B39  
0C-00-55280100-383F0100-F1420600-9402-D701-AB01-DC080300-0301-3701-4407-D4B1-0202-096C-5C0B-2D3D  
0D-00-393F0100-E74A0100-710C0600-6F02-DF01-B101-2C090200-0201-3801-0407-50B2-0202-10B2-590B-303F  
0E-00-E84A0100-D6550100-54D90500-5D02-E601-B601-7C090200-0101-3901-C806-CCB2-0202-0A6F-550B-3142  
0F-00-D7550100-58630100-928D0500-3C02-F101-BF01-FE090200-0101-3C01-6C06-48B3-0202-021C-500B-3445  

_Zone__BegCyl___EndCyl____________Spt_____________________________________________________________
CE-FA-9BD90000-DAEC0000-5F8B0700-9402-E401-BF01-81070300-0501-3001-C408-5680-0202-0EC4-7117-2633
10-00-9BD90000-DAEC0000-5F8B0700-9402-E401-BF01-81070300-0501-3001-C408-5680-0202-0EC4-7117-2633
__________________________________________________________________________________________________

...
(C)NazYura

будет продолжение...
to be continued...

!!! Happy New Year !!!

28-12-2006 (D-M-Y) (C)NazYura