That routine only works for uncompressed data in an unused part of the PCI Option Rom. We would probably store it as an uncompressed property in the name registry rather than as uncompressed data in an unused part of the PCI Option Rom.
Just look at the Info.plist to determine what version of Mac OS X is required.
It says it requires com.apple.iokit.IOATAFamily 1.5.1d3.
which appears to be from Mac OS X 10.1.5 (source 151.3.1, version 1.5.1f1, OSBundleCompatibleVersion 1.0b1).
The 10.5.8 version (source 202.0.1, version 2.0.1) has OSBundleCompatibleVersion of 1.0b1 which is the version from Mac OS X 10.1 (source 1.4.8f3).
That is just data (define constant bytes) in the traceback table for the DumpFlash C++ method. Traceback tables are used for debugging. They help generate back traces, etc.
DumpFlash__9SerialATAFlPcl is a mangled C++ name.
Code:
mpw unmangle ".DumpFlash__9SerialATAFlPcl"
SerialATA::.DumpFlash(long, char*, long)
No. PowerPC is big endian so it wouldn't need endian flipping. 01000000 endian flipped is 01. If you want to look at code, then you need a proper disassembler. Are there any good modern disassemblers for PPC PEF format? IDA, Ghidra, Binary Ninja, Hopper, ... ? I've attached output from Jasik's MacNosy which is a classic macOS disassembler for 68K and PPC.
Code:
mr r3,r29 ; Move Reg
lis r4,1 ; Load Immed Shifted
la r5,vab_2(SP) ; Load Address
li r6,4 ; Load Immed
bl .SerialATA::DumpFlash(long, char *, long)
nop ; No op
mr r3,r29 ; Move Reg
lis r4,1 ; Load Immed Shifted
addi r4,r4,4 ; Add Immed
addis r5,RTOC,0 ; Add Immed Shifted
addi r5,r5,-$74B8 ; Add Immed
lwz r6,vab_2(SP) ; Load Word and Zero
bl .SerialATA::DumpFlash(long, char *, long)
This code in LoadSIM gets the first 4 bytes at offset 0x10000 which is the size of the SIM PEF. Then it loads that many bytes at offset 0x10004 which is the SIM PEF.
What purpose does the Fcode ndrv serve other than to load the SIM ndrv? Could the SIM ndrv replace the Fcode ndrv?