PowerRomDasm/database/ROMDB_78F57389.yaml

314 lines
17 KiB
YAML

main_info:
short_cksum: 0x78F57389
name: "Power Macintosh G3 Beige v3 ROM file"
phys_addr: 0xFFC00000 # starting address of this ROM
annot_items:
0: {type: int, format: hex, size: 4, label: BaseOfRom, comment: ROM checksum}
4: {type: int, format: offset, size: 4, label: StartPC}
8: {type: int, format: hex, size: 1, label: MachineType}
9: {type: int, format: hex, size: 1, label: ROMVersion}
0xA: {type: code, arch: 68k, size: 4, label: JStartBoot}
0xE: {type: code, arch: 68k, size: 4, label: BadDisk}
0x12: {type: int, format: hex, size: 2, label: ROMRelease}
0x14: {type: int, format: hex, size: 2, label: PatchFlags}
0x16: {type: int, format: offset, size: 4, label: ForeignOSVecT}
0x1A: {type: int, format: offset, size: 4, label: RomRsrc}
0x1E: {type: code, arch: 68k, size: 4, label: Eject}
0x22: {type: int, format: offset, size: 4, label: DispOff}
0x26: {type: code, arch: 68k, size: 4, label: Critical}
0x2A: {type: code, arch: 68k, size: 4, label: ResetEntry}
0x2E: {type: int, format: hex, size: 1, label: RomLoc}
0x30: {type: array, format: hex, size: 16, elsize: 4, label: ROMCksum128}
0x40: {type: int, format: hex, size: 4, label: ROMSize68k}
0x44: {type: int, format: offset, size: 4, label: EraseMyIconOffs}
0x48: {type: int, format: offset, size: 4, label: InitSys7ToolboxOffs}
0x4E: {type: array, format: offset, size: 28, elsize: 4, label: ForeignOS}
0x4C: {type: int, format: hex, size: 2, label: ROMSubRelease}
0x6A: {type: code, arch: 68k, size: 6, label: GoofyDoEject}
0x70: {type: int, format: hex, size: 4, label: TCOff}
0x74: {type: code, arch: 68k, size: 0x66, label: StartBoot}
0xDA: {type: code, arch: 68k, size: 0x122, label: StartInit1}
0x1FC: {type: code, arch: 68k, size: 0x232, label: BootRetry}
0x42E: {type: code, arch: 68k, size: 0x4E, label: WhichCPU}
0x47C: {type: code, arch: 68k, size: 0xC, label: WhichBoard}
0x488: {type: code, arch: 68k, size: 0x100, label: SetUpTimeK}
# Cuda Manager
0x9EE0:
type: code
arch: 68k
size: 0x1AE
label: CudaDispatch
subregs:
- type: int
offset: 0xA032
format: hex
size: 2
0xA08E: {type: code, arch: 68k, size: 0x14, label: PollByte}
0xA0A2: {type: code, arch: 68k, size: 0xE, label: SendByte}
0xA0B0: {type: code, arch: 68k, size: 0x14, label: CudaCallShiftRegIRQ}
0xA0C4: {type: code, arch: 68k, size: 0x24A, label: CudaShiftRegIRQ}
0xA30E: {type: code, arch: 68k, size: 0x14C, label: SetTransferParams}
0xA45A: {type: code, arch: 68k, size: 0x3A, label: CheckCudaPacket}
0xA494: {type: code, arch: 68k, size: 0x1E, label: CudaTickHandler}
0xA4B2: {type: code, arch: 68k, size: 0xAC, label: CudaInit}
0xA55E: {type: code, arch: 68k, size: 0x130, label: SendCudaCmd}
0xA68E: {type: code, arch: 68k, size: 0x1E, label: RealAbort}
0xA6AC: {type: code, arch: 68k, size: 0x12, label: IrqMissed}
0xA6BE: {type: code, arch: 68k, size: 0x3C, label: StartRPkt}
0xA6FA: {type: code, arch: 68k, size: 0x2E, label: sendByte1}
0xA728: {type: code, arch: 68k, size: 0x16, label: readByte}
0xA73E: {type: code, arch: 68k, size: 0x10, label: readAttn}
0xA74E: {type: code, arch: 68k, size: 0xC, label: delay100us}
0xA75A: {type: code, arch: 68k, size: 10, label: IRQMISSED}
0xA764: {type: code, arch: 68k, size: 10, label: REALABORT}
0xA76E: {type: code, arch: 68k, size: 10, label: CUDACALLSHIFTREGIRQ}
0xA778: {type: code, arch: 68k, size: 10, label: CUDASHIFTREGIRQ}
0xA782: {type: code, arch: 68k, size: 10, label: CUDATICKHANDLER}
0xA78C: {type: code, arch: 68k, size: 10, label: CUDADISPATCH}
0xA796: {type: align, boundary: 16}
# SlotMgrInit.a
0x1AF40: {type: code, arch: 68k, size: 0x3C, label: InitJmpTbl}
0x1AF7C: {type: align, boundary: 16}
0x1AF80: {type: array, format: hex, size: 124, elsize: 2, label: SDMJmpTable}
0x1AFFC: {type: align, boundary: 16}
0x1B000: {type: code, arch: 68k, size: 0xCC, label: StartSDeclMgr}
0x1B0CC: {type: code, arch: 68k, size: 0x56, label: AllocSlot}
0x1B122: {type: code, arch: 68k, size: 0xB6, label: InitsInfo}
0x1B1D8: {type: code, arch: 68k, size: 0x124, label: VerifySlot}
0x1B2FC: {type: code, arch: 68k, size: 0x5E, label: GetByteLane}
0x1B35A: {type: code, arch: 68k, size: 0x26, label: VerifyFormat}
0x1B380: {type: code, arch: 68k, size: 0x8C, label: VerifyCRC}
0x1B40C: {type: code, arch: 68k, size: 0x84, label: InitsRsrc}
0x1B490: {type: code, arch: 68k, size: 0xC2, label: InitsPRAM}
0x1B552: {type: code, arch: 68k, size: 0x20, label: InitPrimary}
0x1B572: {type: code, arch: 68k, size: 0x64, label: doPrimaryInit}
0x1B5D6: {type: code, arch: 68k, size: 0x42, label: PatchPrimaryInit}
0x1B618: {type: code, arch: 68k, size: 6, label: StubCheckSlot}
0x1B61E: {type: code, arch: 68k, size: 6, label: StubAddCard}
0x1B624: {type: code, arch: 68k, size: 6, label: StubRemoveCard}
0x1B62A: {type: code, arch: 68k, size: 2, label: EnableBlockXfer}
0x1B62C: {type: code, arch: 68k, size: 10, label: STUBREMOVECARD}
0x1B636: {type: code, arch: 68k, size: 10, label: STUBADDCARD}
0x1B640: {type: code, arch: 68k, size: 10, label: STUBCHECKSLOT}
0x1B64A: {type: code, arch: 68k, size: 10, label: INITPRIMARY}
0x1B654: {type: code, arch: 68k, size: 10, label: INITSPRAM}
0x1B65E: {type: code, arch: 68k, size: 10, label: INITSRSRC}
0x1B668: {type: code, arch: 68k, size: 10, label: VERIFYSLOT}
0x1B672: {type: code, arch: 68k, size: 10, label: INITSINFO}
0x1B67C: {type: align, boundary: 16}
0x1B680: {type: code, arch: 68k, size: 0x30, label: Secondary_Init}
0x1B6B0: {type: code, arch: 68k, size: 0x98, label: DoSecondaryInit}
0x1B748: {type: code, arch: 68k, size: 10, label: DOSECONDARYINIT}
0x1B752: {type: code, arch: 68k, size: 10, label: SECONDARY_INIT}
0x1B75C: {type: align, boundary: 16}
# Slot Manager 2.3
0x1B760: {type: fixlenstr, size: 16, label: SlotMgrVersion}
0x1B770: {type: code, arch: 68k, size: 0x0E, label: SlotManager}
0x1B77E: {type: code, arch: 68k, size: 6, label: SlotEmpty}
0x1B784: {type: code, arch: 68k, size: 10, label: SLOTEMPTY}
0x1B78E: {type: align, boundary: 16}
0x1B790: {type: code, arch: 68k, size: 0x1C, label: ReadSlotByte}
0x1B7AC: {type: code, arch: 68k, size: 10, label: READSLOTBYTE}
0x1B7B6: {type: align, boundary: 16}
0x1B7C0: {type: code, arch: 68k, size: 0x1C, label: ReadSlotWord}
0x1B7DC: {type: code, arch: 68k, size: 10, label: READSLOTWORD}
0x1B7E6: {type: align, boundary: 16}
0x1B7F0: {type: code, arch: 68k, size: 0x1E, label: ReadSlotLong}
0x1B80E: {type: code, arch: 68k, size: 10, label: READSLOTLONG}
0x1B818: {type: align, boundary: 16}
0x1B820: {type: code, arch: 68k, size: 0x94, label: GetcString}
0x1B8B4: {type: code, arch: 68k, size: 10, label: GETCSTRING}
0x1B8BE: {type: align, boundary: 16}
0x1B8C0: {type: code, arch: 68k, size: 0x46, label: GetSlotBlock}
0x1B906: {type: code, arch: 68k, size: 10, label: GETSLOTBLOCK}
0x1B910: {type: code, arch: 68k, size: 0xC, label: FindSlotStruct}
0x1B91C: {type: code, arch: 68k, size: 10, label: FINDSLOTSTRUCT}
0x1B926: {type: align, boundary: 16}
0x1B930: {type: code, arch: 68k, size: 0x86, label: ReadSlotStruct}
0x1B9B6: {type: code, arch: 68k, size: 10, label: READSLOTSTRUCT}
0x1B9C0: {type: code, arch: 68k, size: 0x24, label: ReadSlotInfo}
0x1B9E4: {type: code, arch: 68k, size: 10, label: READSLOTINFO}
0x1B9EE: {type: align, boundary: 16}
0x1B9F0: {type: code, arch: 68k, size: 0x14, label: SlotDisposPtr}
0x1BA04: {type: code, arch: 68k, size: 10, label: SLOTDISPOSPTR}
0x1BA0E: {type: align, boundary: 16}
0x1BA10: {type: code, arch: 68k, size: 0x72, label: ReadSlotDrvrName}
0x1BA82: {type: code, arch: 68k, size: 10, label: READSLOTDRVRNAME}
0x1BA8C: {type: align, boundary: 16}
0x1BA90: {type: code, arch: 68k, size: 0xC6, label: FindDevBase}
0x1BB56: {type: code, arch: 68k, size: 10, label: FINDDEVBASE}
0x1BB60: {type: code, arch: 68k, size: 0x1A, label: CardChanged}
0x1BB7A: {type: code, arch: 68k, size: 10, label: CARDCHANGED}
0x1BB84: {type: align, boundary: 16}
0x1BB90: {type: code, arch: 68k, size: 2, label: SlotExec}
0x1BB92: {type: code, arch: 68k, size: 0x28, label: Revision2}
0x1BBBA: {type: code, arch: 68k, size: 0x44, label: BeginSlotExec}
0x1BBFE: {type: code, arch: 68k, size: 0x2E, label: FixTrident}
0x1BC2C:
type: struct
label: CompareTbl
fields:
- type: int
format: hex
size: 4
- type: array
format: hex
size: 14
elsize: 2
0x1BC3E: {type: code, arch: 68k, size: 10, label: SLOTEXEC}
0x1BC48: {type: align, boundary: 16}
0x1BC50: {type: code, arch: 68k, size: 0x90, label: CalcsPointer}
0x1BCE0: {type: code, arch: 68k, size: 10, label: CALCSPOINTER}
0x1BCEA: {type: align, boundary: 16}
0x1BCF0: {type: code, arch: 68k, size: 4, label: GetSlotDrvr}
0x1BCF4: {type: code, arch: 68k, size: 0x36, label: DynLoadDrvr}
0x1BD2A: {type: code, arch: 68k, size: 0x74, label: StatLoadDrvr}
0x1BD9E: {type: code, arch: 68k, size: 0x2C, label: BeginGetSlotDrvr}
0x1BDCA: {type: code, arch: 68k, size: 10, label: GETSLOTDRVR}
0x1BDD4: {type: align, boundary: 16}
0x1BDE0: {type: code, arch: 68k, size: 0x98, label: GetDriverPatch}
0x1BE78: {type: code, arch: 68k, size: 0x90, label: GetDevIndex}
0x1BF08: {type: array, format: hex, size: 32, elsize: 2, label: DevTbl}
0x1BF28:
type: struct
label: LoadTbl
fields:
- type: array
format: hex
size: 8
elsize: 4
- type: array
format: hex
size: 4
elsize: 1
- type: array
format: hex
size: 8
elsize: 4
- type: array
format: hex
size: 4
elsize: 1
- type: array
format: hex
size: 8
elsize: 4
- type: array
format: hex
size: 4
elsize: 1
0x1BF4C: {type: array, format: hex, size: 12, elsize: 4, label: JsrTbl}
0x1BF58: {type: code, arch: 68k, size: 10, label: GETDRIVERPATCH}
0x1BF62: {type: code, arch: 68k, size: 10, label: GETDEVINDEX}
0x1BF6C: {type: align, boundary: 16}
0x1BF70: {type: code, arch: 68k, size: 8, label: ReadSlotPRAM}
0x1BF78: {type: code, arch: 68k, size: 10, label: PutSlotPRAM}
0x1BF82: {type: code, arch: 68k, size: 8, label: InitSlotPRAM}
0x1BF8A: {type: code, arch: 68k, size: 0x6C, label: CommonPRAM}
0x1BFF6: {type: code, arch: 68k, size: 10, label: INITSLOTPRAM}
0x1C000: {type: code, arch: 68k, size: 10, label: PUTSLOTPRAM}
0x1C00A: {type: code, arch: 68k, size: 10, label: READSLOTPRAM}
0x1C014: {type: align, boundary: 16}
0x1C020: {type: code, arch: 68k, size: 0x1C, label: FindsInfoRecPtr}
0x1C03C: {type: code, arch: 68k, size: 10, label: FINDSINFORECPTR}
0x1C046: {type: align, boundary: 16}
0x1C050: {type: code, arch: 68k, size: 0x1E, label: FindsRsrcPtr}
0x1C06E: {type: code, arch: 68k, size: 10, label: FINDSRSRCPTR}
0x1C078: {type: code, arch: 68k, size: 10, label: GETSRSRCPTR}
0x1C082: {type: align, boundary: 16}
0x1C090: {type: code, arch: 68k, size: 0x50, label: PtrToSlot}
0x1C0E0: {type: code, arch: 68k, size: 10, label: PTRTOSLOT}
0x1C0EA: {type: align, boundary: 16}
0x1C0F0: {type: code, arch: 68k, size: 0x42, label: ReadFHeader}
0x1C132: {type: code, arch: 68k, size: 10, label: READFHEADER}
0x1C13C: {type: align, boundary: 16}
0x1C140: {type: code, arch: 68k, size: 0x1E, label: CkCardStat}
0x1C15E: {type: code, arch: 68k, size: 10, label: CKCARDSTAT}
0x1C168: {type: align, boundary: 16}
0x1C170: {type: code, arch: 68k, size: 0xE, label: SlotVersion}
0x1C17E: {type: code, arch: 68k, size: 10, label: SLOTVERSION}
0x1C188: {type: align, boundary: 16}
0x1C190: {type: code, arch: 68k, size: 10, label: NextsRsrc}
0x1C19A: {type: code, arch: 68k, size: 0x26, label: GetsRsrc}
0x1C1C0: {type: code, arch: 68k, size: 4, label: NextTypesRsrc}
0x1C1C4: {type: code, arch: 68k, size: 0x6A, label: GetTypesRsrc}
0x1C22E: {type: array, format: hex, size: 16, elsize: 2, label: MaskTbl}
0x1C23E: {type: code, arch: 68k, size: 12, label: UpdateSRT}
0x1C24A: {type: code, arch: 68k, size: 2, label: InsertSRT}
0x1C24C: {type: code, arch: 68k, size: 0x7A, label: ModifySRT}
0x1C2C6: {type: code, arch: 68k, size: 0x12, label: SearchSRT}
0x1C2D8: {type: code, arch: 68k, size: 0x70, label: FindSRTRec}
0x1C348: {type: code, arch: 68k, size: 0x98, label: DeleteSRTRec}
0x1C3E0: {type: code, arch: 68k, size: 4, label: SlotRsrcInfo}
0x1C3E4: {type: code, arch: 68k, size: 0x24, label: GetsRsrcInfo}
0x1C408: {type: code, arch: 68k, size: 0x3A, label: SetsRsrcState}
0x1C442: {type: code, arch: 68k, size: 0x7A, label: pNewSRTEntry}
0x1C4BC: {type: code, arch: 68k, size: 0xB4, label: pInitEntry}
0x1C570: {type: code, arch: 68k, size: 0x2C, label: MapUnit_0}
0x1C59C: {type: code, arch: 68k, size: 0x28, label: pAllocSRTBlk}
0x1C5C4: {type: code, arch: 68k, size: 0x40, label: GetSRTEntry}
0x1C604: {type: code, arch: 68k, size: 0x56, label: pSrToSpBlock}
0x1C65A: {type: code, arch: 68k, size: 10, label: NEXTSRSRC}
0x1C664: {type: code, arch: 68k, size: 10, label: PSRTOSPBLOCK}
0x1C66E: {type: code, arch: 68k, size: 10, label: GETSRTENTRY}
0x1C678: {type: code, arch: 68k, size: 10, label: PALLOCSRTBLK}
0x1C682: {type: code, arch: 68k, size: 10, label: PINITENTRY}
0x1C68C: {type: code, arch: 68k, size: 10, label: PNEWSRTENTRY}
0x1C696: {type: code, arch: 68k, size: 10, label: SETSRSRCSTATE}
0x1C6A0: {type: code, arch: 68k, size: 10, label: GETSRSRCINFO}
0x1C6AA: {type: code, arch: 68k, size: 10, label: SLOTRSRCINFO}
0x1C6B4: {type: code, arch: 68k, size: 10, label: DELETESRTREC}
0x1C6BE: {type: code, arch: 68k, size: 10, label: FINDSRTREC}
0x1C6C8: {type: code, arch: 68k, size: 10, label: SEARCHSRT}
0x1C6D2: {type: code, arch: 68k, size: 10, label: INSERTSRT}
0x1C6DC: {type: code, arch: 68k, size: 10, label: UPDATESRT}
0x1C6E6: {type: code, arch: 68k, size: 10, label: GETTYPESRSRC}
0x1C6F0: {type: code, arch: 68k, size: 10, label: NEXTTYPESRSRC}
0x1C6FA: {type: code, arch: 68k, size: 10, label: GETSRSRC}
0x1C704: {type: align, boundary: 16}
0x1C710: {type: code, arch: 68k, size: 0x60, label: CalcStep}
0x1C770: {type: array, format: hex, size: 64, elsize: 4, label: ByteTable}
0x1C7B0: {type: array, format: hex, size: 64, elsize: 4, label: IdTable}
0x1C7F0: {type: array, format: hex, size: 80, elsize: 4, label: ThreeByteTbl}
0x1C840: {type: code, arch: 68k, size: 10, label: CALCSTEP}
0x1C84A: {type: align, boundary: 16}
0x1C850: {type: code, arch: 68k, size: 0x90, label: OffsetData}
0x1C8E0: {type: code, arch: 68k, size: 10, label: OFFSETDATA}
0x1C8EA: {type: align, boundary: 16}
0x1C8F0: {type: code, arch: 68k, size: 0x68, label: ReadPBSize}
0x1C958: {type: code, arch: 68k, size: 10, label: READPBSIZE}
0x1C962: {type: align, boundary: 16}
0x1C970: {type: code, arch: 68k, size: 0x54, label: pRead4Bytes}
0x1C9C4: {type: code, arch: 68k, size: 0x38, label: pGetBoard}
0x1C9FC: {type: code, arch: 68k, size: 10, label: PREAD4BYTES}
0x1CA06: {type: code, arch: 68k, size: 10, label: PGETBOARD}
0x1CA10: {type: code, arch: 68k, size: 0x3C, label: pBusException}
0x1CA4C: {type: code, arch: 68k, size: 0x28, label: pInstallBus}
0x1CA74: {type: code, arch: 68k, size: 0x20, label: pRestoreBus}
0x1CA94: {type: code, arch: 68k, size: 0x46, label: p040BusException}
0x1CADA: {type: code, arch: 68k, size: 0x96, label: AddCard}
0x1CB70: {type: code, arch: 68k, size: 0x94, label: RemoveCard}
0x1CC04: {type: code, arch: 68k, size: 0xF2, label: CheckSlot}
0x1CCF6: {type: code, arch: 68k, size: 0xAA, label: GetBoardID}
0x1CDA0: {type: code, arch: 68k, size: 0x2C, label: FindDevBaseSlot0}
0x1CDCC: {type: code, arch: 68k, size: 10, label: PBUSEXCEPTION}
0x1CDD6: {type: code, arch: 68k, size: 10, label: FINDDEVBASESLOT0}
0x1CDE0: {type: code, arch: 68k, size: 10, label: CHECKSLOT}
0x1CDEA: {type: code, arch: 68k, size: 10, label: REMOVECARD}
0x1CDF4: {type: code, arch: 68k, size: 10, label: ADDCARD}
0x1CDFE: {type: code, arch: 68k, size: 10, label: PRESTOREBUS}
0x1CE08: {type: code, arch: 68k, size: 10, label: PINSTALLBUS}
0x1CE12: {type: align, boundary: 16}
# Misc stuff
0x263CE: {type: code, arch: 68k, size 4, label: DoEject}
0x33DB0: {type: code, arch: 68k, size: 0x40, label: ADBProc}
0x33DF0: {type: code, arch: 68k, size: 0x3C, label: PostInit}
0x33E2C: {type: code, arch: 68k, size: 0x50, label: InitADBDrvr}
0x33E7C: {type: code, arch: 68k, size: 0x8C, label: InitADB}
0x33F08: {type: code, arch: 68k, size: 0xFE, label: InitDevT}
0x34006: {type: code, arch: 68k, size: 0x46, label: CopyEntry}
0x340B6: {type: code, arch: 68k, size: 0x12, label: RSetKMap}
0x340C8: {type: code, arch: 68k, size: 0x32, label: DefaultDev}
0x340FA: {type: code, arch: 68k, size: 0x34, label: flushkbds}