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}