Here is MOD 0B extracted from the ROM of a WD2002FAEX-00MJRA0:
Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 52 4F 59 4C 04 00 1E 00 0B 00 01 00 F3 E0 0C F5 ROYL............
00000010 30 30 30 33 30 30 30 30 00 00 00 07 07 00 0A 12 00030000........
00000020 02 01 00 18 00 03 18 90 00 5E 2C 02 00 5E 2C 02
00000030 00 12 01 0A 00 4E 00 00 19 00 00 00 F0 07 00 00
00000040 00 00 00 12 01 0B 00 29 01 00 19 00 00 DE FA 07
00000050 00 00 00 00 00 12 01 0B 02 29 01 00 19 00 00 DE
00000060 EA 07 00 00 00 00 00 12 01 30 00 00 04 00 19 00
00000070 00 00 F0 0F 00 00 00 00 00 12 01 47 00 00 06 00
00000080 19 00 00 DE F4 07 00 00 00 00 00 12 01 0D 00 90
00000090 00 00 19 00 00 4E F0 07 00 00 00 00 00 12 01 4F
000000A0 00 00 04 00 19 00 00 DE F0 07 00 00 00 00 00 12
000000B0 01 5D 00 00 10 00 19 00 00 00 00 08 00 00 00 00
000000C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000D0 00 00 00 56 06 FF 0F 3F 00 00 A0 05 00 00 00 00
000000E0 00 00 A0 05 00 00 80 07 00 00 A0 05 00 00 00 0F
000000F0 00 00 A0 05 00 00 80 16 00 00 A0 05 00 00 00 1E
00000100 00 00 A0 05 00 00 80 25 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
........
000001F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
This is the structure, AIUI:
Code:
offsets description
------------------------------------------------
0x00 - 0x03 "ROYL" signature
0x08 - 0x09 module ID = 0x000B
0x0A - 0x0B module size in sectors = 0x0001
0x0C - 0x0F checksum bytes (CRC) = 0xF50CE0F3
0x10 - 0x17 module version
0x0E number of directory entries = 0x0A
0x0F - end directory entries
Here are the directory entries arranged as 18 bytes per row:
Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11
00000000 12 02 01 00 18 00 03 18 90 00 5E 2C 02 00 5E 2C 02 00
00000012 12 01 0A 00 4E 00 00 19 00 00 00 F0 07 00 00 00 00 00
00000024 12 01 0B 00 29 01 00 19 00 00 DE FA 07 00 00 00 00 00
00000036 12 01 0B 02 29 01 00 19 00 00 DE EA 07 00 00 00 00 00
00000048 12 01 30 00 00 04 00 19 00 00 00 F0 0F 00 00 00 00 00
0000005A 12 01 47 00 00 06 00 19 00 00 DE F4 07 00 00 00 00 00
0000006C 12 01 0D 00 90 00 00 19 00 00 4E F0 07 00 00 00 00 00
0000007E 12 01 4F 00 00 04 00 19 00 00 DE F0 07 00 00 00 00 00
00000090 12 01 5D 00 00 10 00 19 00 00 00 00 08 00 00 00 00 00
000000A2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
This is the structure of each entry, AIUI:
Code:
offsets description
------------------------------------------------
0x00 size of entry = 0x12 (18) bytes
0x01 ? type/location (0x01 = ROM, 0x02 = SA)
0x02 - 0x03 module ID
0x04 - 0x05 size of module (in bytes for ROM MOD, or in sectors for SA MOD)
0x0A - 0x0D location in ROM (byte offset) or location of primary copy in SA (LBA)
0x0E - 0x11 location of secondary copy in SA (LBA)
Note that all values are little-endian.