The ROM has several modules -- 0x0B, 0x20B, 0x0A, 0x30, 0x47, 0x0D, 0x4F, 0x181, 0x1A2, 0x1B6, 0x1B0.
There are two directory modules, 0x0B and 0x20B. Each module has a flag which determines whether it is active or inactive. The module with the highest flag is active. The entries in the directory modules point to the other ROM modules and also to SA module 0x01.
This is PC3K's output:
ROM:
Read ROM................................ : Ok
ROM Data size........................... : 1024 Kb
Flash ROM dir reading................... : Ok (Active) <-- this is module 0x0B, flag = 3
Flash ROM dir reading (Ext)............. : Ok <-- this is module 0x20B, flag = 2
Modules directory address............... : 947 380 <-- this is the ABA of module 0x01 in the SA, 947380 = 0xE74B4PC3K's analysis is confusing because, although it identifies 0x0B as the active directory, it reports the ABA of module 0x01 in the inactive directory (0x20B).
The following analysis uses those modules referenced by the active directory (0x0B), many of which have not been initialised. The same modules in the inactive directory (0x20B) are all OK.
ROM Modules:
ROM version............................. : 02.1AP
ROM F/W version......................... : Module ID 4F reading error Device Error Detected: "FM ERR HEADER II SIGNATURE INVALID"
Overlay F/W version..................... : 02.1AP
Servo F/W version....................... : 01.3C
Head Map Reading Error.................. : Module ID 0A reading error Device Error Detected: "FM ERR HEADER II SIGNATURE INVALID"
I don't know what is going on inside the firmware, but clearly PC3K is confused by it. I have attached a ROM image where I have changed the flag for 0x20B from 2 to 4. This should make PC3K happy, but I doubt that it will change the overall outcome.
BTW, these ROMs appear to have two flag bytes per directory, but I'm not completely certain. Maybe that's why the behaviour differs from earlier ROMs.
Directory 0x0B:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 52 4F 59 4C 04 80 1E 00 0B 00 01 00 E9 FC 4C 6B ROYL.€......éüLk
00000010 30 30 30 33 30 30 30 30 00 00 00 03 03 00 0C 12 00030000........
^^ ^^
flag bytesDirectory 0x20B:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 52 4F 59 4C 04 80 1E 00 0B 02 01 00 6B 0C B3 1B ROYL.€......k.³.
00000010 30 30 30 33 30 30 30 30 00 00 00 02 02 00 0C 12 00030000........
^^ ^^
flag bytes