Page 1 of 2
EDIT 0B/2B DISABLE
Posted: August 17th, 2018, 17:31
by mhp666
Hi.
I have an HDD that I have formatted the SA.
In order to write the SA again I have loaded the LDR and I have written it by track.
Now the problem is that it does not find the 0x01 module when the disk is booted, but if I load it manually and the LDR, I have access by ID, ABA and TRACK.
What I want is to edit the address of module 0x01, in the ROM, but it does not leave me the option to edit the address.
Greetings.
Re: EDIT 0B/2B DISABLE
Posted: August 17th, 2018, 17:33
by fzabkar
Can you upload the ROM and module 01?
Re: EDIT 0B/2B DISABLE
Posted: August 17th, 2018, 17:43
by mhp666
fzabkar wrote:Can you upload the ROM and module 01?
Yes
Re: EDIT 0B/2B DISABLE
Posted: August 17th, 2018, 17:46
by fzabkar
mhp666 wrote:fzabkar wrote:Can you upload the ROM and module 01?
Yes
I mean, can you upload the modules as an attachment to this thread.
Re: EDIT 0B/2B DISABLE
Posted: August 17th, 2018, 17:52
by mhp666
ok, I sent it to you in rar
Re: EDIT 0B/2B DISABLE
Posted: August 17th, 2018, 18:20
by mhp666
By ID I do not read the modules, just by track and ABA
Re: EDIT 0B/2B DISABLE
Posted: August 17th, 2018, 18:24
by fzabkar
ROM module 0B is the active directory. It points to ABA 0x1171F as the location of module 01.
Module 01 points to the same ABA:
- Code:
12 02 01 00 18 00 03 18 90 00 1F 17 01 00 1F 17 01 00
^^^^^^^^^^^ ^^^^^^^^^^^
What do you see at ABA 0x1171F?
- Code:
Analysing ROM_WDC WD4500HLHX-01JJPV0.bin ...
Searching for LDSCs and verifying PCMBlocks ...
LDSC LDSC PCMBLock PCMBlk CS
Start ID CS Start - End Exp/Act
---------------------------------------
00000 5A F1 00020 - 00FB4 5D 5D OK
01000 01 99 01140 - 02794 DD DD OK
01020 02 81 02795 - 091C1 CD CD OK
01040 03 19 091C2 - 0E6EA 47 47 OK
01060 04 7F 0E6EB - 0EE33 BB BB OK
01080 05 85 0EE34 - 0F034 4D 4D OK
010A0 06 10 0F035 - 0F449 FF FF OK
010C0 07 F1 0F44A - 0F84E 00 00 OK
010E0 08 BA 0F84F - 24D37 0B 0B OK
01100 09 08 24D38 - 2D6D0 5F 5F OK
41000 01 99 41140 - 42794 DD DD OK
41020 02 81 42795 - 491C1 A6 A6 OK
41040 03 F9 491C2 - 4E6DE 1A 1A OK
41060 04 73 4E6DF - 4EE27 BB BB OK
41080 05 79 4EE28 - 4F028 4D 4D OK
410A0 06 04 4F029 - 4F43D E8 E8 OK
410C0 07 E5 4F43E - 4F842 00 00 OK
410E0 08 AE 4F843 - 64D2B A1 A1 OK
41100 09 24 64D2C - 6D6D4 16 16 OK
LDSC = PM Loader Config String (32 bytes)
ID = ID byte of LDSC (byte #0)
CS = Checksum byte or word
PCMBlk = Program Code Memory Block
Exp = Expected checksum for PCMBLock
Act = Actual checksum for PCMBLock
ROYL directory module 0x000B found at 0x0003FEE7
Active directory flag = 0x05
Identifying SA regions ...
Reg# Reg size Reg loc
----------------------------
0x00 0x00026AC0 0x00000000
0x01 0x00026AC0 0x00033900
0x02 0x00026AC0 0x00067200
0x03 0x00026AC0 0x0009AB00
0x04 0x00026AC0 0x000CE400
Verifying ROYL modules ...
ID Size (bytes) Address Checksum
dir hdr dir hdr
-----------------------------------------------------
0001 N/A 00003000 N/A 0001171F N/A
000A OK 0000003E 00000200 0003F21D 00000000 OK
000B OK 00000119 00000200 0003FEE7 00000000 OK
020B OK 00000119 00000200 0003EEE7 00000000 OK
0030 OK 00000400 OK 0003F2E7 00000000 OK
0047 OK 00000400 OK 0003F6E7 00000000 OK
000D OK 0000008C 00000200 0003F25B 00000000 OK
004F OK 00000400 OK 0003FAE7 00000000 OK
ROYL directory module 0x020B found at 0x0003EEE7
Active directory flag = 0x04
Identifying SA regions ...
Reg# Reg size Reg loc
----------------------------
0x00 0x00026AC0 0x00000000
0x01 0x00026AC0 0x00033900
0x02 0x00026AC0 0x00067200
0x03 0x00026AC0 0x0009AB00
0x04 0x00026AC0 0x000CE400
Verifying ROYL modules ...
ID Size (bytes) Address Checksum
dir hdr dir hdr
-----------------------------------------------------
0001 N/A 00003000 N/A 0001F2EA N/A
000A OK 0000003E 00000200 0003E21D 00000000 OK
000B OK 00000119 00000200 0003FEE7 00000000 OK
020B OK 00000119 00000200 0003EEE7 00000000 OK
0030 OK 00000400 OK 0003E2E7 00000000 OK
0047 OK 00000400 OK 0003E6E7 00000000 OK
000D OK 0000008C 00000200 0003E25B 00000000 OK
004F OK 00000400 OK 0003EAE7 00000000 OK
dir - Module ID/Size as reported in directory module (0x20B or 0x0B)
hdr - Module ID/Size as reported in module's header
N/A - Not Applicable
BAD - Module has invalid checksum. This may be due to non-existent module.
ROM modules saved to Flash$$$\000Bmods and Flash$$$\020Bmods
Active directory is 0x0B
Analysing active 0x0A module ...
Head map checksum (Expected / Actual) = 0x0000 / 0x0000 - OK
Number of heads (physical / in use) = 6/5
Head map #1 = 0x3E / 0b00111110
Head map #2 = 0x00 / 0b00000000
DCM = | Z | C S H H A C N
: : : : : : : : : :
: : : : : : : : : unknown
: : : : : : : : top VCM
: : : : : : : ACA
: : : : : : bottom VCM
: : : : : HSA
: : : : media
: : : preamp
: : latch
: base
spindle motor
Analysing active 0x0D module ...
Firmware Version = 04.05G04
World Wide Name = 50014EE0AD526CBD
Model Number = WDC WD4500HLHX-01JJPV0
Serial Number =
Analysing active 0x4F module ...
ROM version = 000200A2
Analysing active 0x47 module ...
Preamp values
-----------
0 05195124
1 071A622E
2 0717702A
3 09166027
4 09136028
5 0411422E
Microjogs
-------
0 0840
1 08AC
2 07E8
3 07E0
4 07EC
5 089C
Head/Media DCM = HS
Re: EDIT 0B/2B DISABLE
Posted: August 17th, 2018, 18:47
by mhp666
I pass you the track -170.
Right now I do not clarify but it seems to be this:
ABA 0x1171F : -170 HEAD 0 OFFSET 0x1FA -> seems to point to the module 0x01
OFFSET FILE -170 IS 3F200
Sorry if I was wrong in something.
Re: EDIT 0B/2B DISABLE
Posted: August 17th, 2018, 19:08
by fzabkar
I don't know how the ABA relates to CHS, but ...
Are the sectors numbered from 0 or 1?
(Sorry, I don't have experience in this area.)
Re: EDIT 0B/2B DISABLE
Posted: August 17th, 2018, 21:32
by reco
better give a screenshot about ROM module 0B 20B where the address of module 01 is stored, or I can help you directly via remote
Re: EDIT 0B/2B DISABLE
Posted: August 17th, 2018, 22:03
by fzabkar
reco wrote:better give a screenshot about ROM module 0B 20B where the address of module 01 is stored
Dir
0B- Code:
ID Size (bytes) Address Checksum
dir hdr dir hdr
-----------------------------------------------------
0001 N/A 00003000 N/A 0001171F N/A
^^^^^^^^
Dir
20B- Code:
ID Size (bytes) Address Checksum
dir hdr dir hdr
-----------------------------------------------------
0001 N/A 00003000 N/A 0001F2EA N/A
^^^^^^^^
Re: EDIT 0B/2B DISABLE
Posted: August 18th, 2018, 0:08
by reco
I can help you handle that through a thorough inspection via remote software if you are not reluctant to have me doing this.
Re: EDIT 0B/2B DISABLE
Posted: August 18th, 2018, 0:13
by reco
fzabkar wrote:reco wrote:better give a screenshot about ROM module 0B 20B where the address of module 01 is stored
Dir
0B- Code:
ID Size (bytes) Address Checksum
dir hdr dir hdr
-----------------------------------------------------
0001 N/A 00003000 N/A 0001171F N/A
^^^^^^^^
Dir
20B- Code:
ID Size (bytes) Address Checksum
dir hdr dir hdr
-----------------------------------------------------
0001 N/A 00003000 N/A 0001F2EA N/A
^^^^^^^^
The address recorded in 0B 20B contradicts against each other , we can fix this issue by modifying its address. Perhaps the module recording the addresses malfunctions or something else, but no big an issue
Re: EDIT 0B/2B DISABLE
Posted: August 18th, 2018, 2:24
by fzabkar
reco wrote:The address recorded in 0B 20B contradicts against each other , we can fix this issue by modifying its address. Perhaps the module recording the addresses malfunctions or something else, but no big an issue
AIUI, the contradiction should not be a problem since 0B is active, not 20B. Anyway, you don't need remote access to make the changes.
Re: EDIT 0B/2B DISABLE
Posted: August 18th, 2018, 4:35
by mhp666
mhp666 wrote:I pass you the track -170.
Right now I do not clarify but it seems to be this:
I pass you the track -170.
Right now I do not clarify but it seems to be this:
ABA 0x1171F : -170 HEAD 0 OFFSET 0x1FA -> seems to point to the module 0x01
OFFSET FILE -170 IS 3F200
Sorry if I was wrong in something.
Rectification :
ABA 0x1171F : -170 HEAD 0 OFFSET 0x1F9 -> seems to point to the module 0x01
OFFSET FILE -170 IS 3F200
The sectors are numbered from 0.
I'll study the case a little more and I'll tell you.
I return to comment what I did:
Format the SA
I write SA by track.
and the problem in question arises.
reco wrote:I can help you handle that through a thorough inspection via remote software if you are not reluctant to have me doing this.
I do not have any problem, the problem is the time difference.
I would like to leave the case solved only to learn and if it is worth of experience to someone.
As soon as we agree if it suits you, I give you a connection.
Re: EDIT 0B/2B DISABLE
Posted: August 18th, 2018, 16:36
by mhp666
It may be that the problem that I have committed is to format the SA, without having synchronized the SA translator, for that reason I believe that it does not find the modules by ID, and when loading the module 0x11 I can operate by track and by ABA.
I'm trying to format the SA synchronizing the translator but I get an error.
This is just a suggestion, I'm not sure.
Re: EDIT 0B/2B DISABLE
Posted: August 18th, 2018, 16:43
by fzabkar
ISTM that ABA 0 is sector 0 of cylinder -256. The number of sectors per track is 825.
Therefore ...
0x1171F = (825 SPT x 86 tracks) + 0x1F9 sectors
-256 + 86 = -170
Re: EDIT 0B/2B DISABLE
Posted: August 18th, 2018, 16:57
by mhp666
Thank you very much for this information.
Now I understand what the ABA is.
When I search the modules by track I see that they all start with ROYL.
In rom modules the same thing happens and if I'm not wrong the offeset 0x08 indicates the module number follows 00 01 00 and then checksum, but when I search for them, I'm not clear about the header.
I have now formatted all the tracks of the SA and recorded the tracks but it remains the same.
Could it be the translator of the SA?
Re: EDIT 0B/2B DISABLE
Posted: August 18th, 2018, 17:14
by fzabkar
IIUC, module 0x35 is the defect list for the SA. Module 0x30 in the ROM is the translator for the SA.
ISTM that an SA format would identify any defects, and these would then need to be written to mod 0x35. Regenerating the SA translator should then update mod 0x30. ???
You could try to edit mod 0x20B (and recalculate its checksum), as suggested by @reco, but I would be surprised if this made any difference. I'm prepared to be proven wrong, though.
Re: EDIT 0B/2B DISABLE
Posted: August 18th, 2018, 17:28
by mhp666
Then if I'm not wrong:
ABA = (HEAD * SPT * MAX_CYL) + [SPT * (MAX_CYL + TRACK)] + OFFSET
Being the negative track
HEAD = ABA MOD ( SPT * MAX_CYL )
TRACK = [ABA - (HEAD * SPT * MAX_CYL) ] MOD SPT - MAX_CYL
OFFSET = ABA - (HEAD * SPT * MAX_CYL) - [SPT * (MAX_CYL + TRACK)]
If I'm not mistaken
Also, until module 0x11 is loaded, it can not read by track or ABA, as it happens in my case.