diff --git a/rom-info.txt b/rom-info.txt index 63bdd23..693d262 100644 --- a/rom-info.txt +++ b/rom-info.txt @@ -67,7 +67,7 @@ 011E0 ENTRY INTERC_11E0_C2PSTRCPY ; all good -- makes weird call to a sublabel of DRAWCURSOR -011e0 FILE BuildResults/RISC/Obj/StartInterstix.c.o, WRITEOUT, MODGUESS, REFGUESS +011e0 FILE AmphibianDNA/StartInterstix.c.o, WRITEOUT, REFGUESS, NOFORCE ; can change all of these to MODs 01230 ENTRY INTERC_1230 012C0 ENTRY INTERC_12C0_ISLAND @@ -156,10 +156,10 @@ 041B0 ENTRY STARTLIB_GETSTARTUPDEVICE ; all good -041b0 FILE BuildResults/RISC/Obj/StartLibGlue.c.o, WRITEOUT, MODGUESS, REFGUESS +;041b0 FILE AmphibianDNA/StartLibGlue.c.o, WRITEOUT, REFGUESS, NOFORCE 04270 ENTRY STARTLIB_GETSTARTUPDEVICETYPE 04330 ENTRY STARTLIB_GETFIREWIRESTARTUPDEVICEINFO -04400 ENDF +;04400 ENDF 04400 ENTRY BOOTME 0443A ENTRY REBOOT @@ -182,25 +182,43 @@ 06C10 ENTRY INITROMVECTORS ; all good -06c90 FILE BuildResults/RISC/Lib/IoPrimitives.lib, WRITEOUT, MODGUESS, REFGUESS +;06c90 FILE AmphibianDNA/IoPrimitives.lib, WRITEOUT, MODGUESS, REFGUESS 06D20 ENTRY NWADBTABLE 06D54 ENTRY CPUSPEEDJAWS 07420 ENTRY IOPR_ADB -075A4 ENTRY NWCLOCKPRAM ; ??? + + +;075A0 FILE AmphibianDNA/ClockPRAMPrimitives.a.o, WRITEOUT, REFGUESS +075A0 MOD CLOCKPRAMPRIMITIVES +075A4 ENTRY NWCLOCKPRAM +075D0 ENTRY STANDARDXPRAMIO +07650 ENTRY NWXPARAM +076BC ENTRY NWRDXBYTE +076D4 ENTRY NWWRXBYTE +076F2 ENTRY NWREADTIME +07700 ENTRY NWWRITETIME +;07770 ENDF + +07770 FILE AmphibianDNA/NVRAMPrimitives.c.o, WRITEOUT, NOFORCE +07770 MOD NWREADNVRAM_C +077E0 MOD NWWRITENVRAM_C +07840 MOD NWREADTIME_C +07890 MOD NWWRITETIME_C +078E0 ENDF + 078E4 ENTRY SNDCNTNEWWORLD ; ??? -07930 ENDF ; all good -07930 FILE BuildResults/RISC/Obj/MMU.a.o, REFGUESS +;07930 FILE AmphibianDNA/MMU.a.o, REFGUESS 07930 MOD MMUSTUFF 07930 ENTRY INITMMUTRAP 0793C ENTRY INITMMUGLOBALS 07990 ENTRY SWAP32ONLY 07994 ENTRY SWAP030 079EC ENTRY SWITCHMMU -07A20 ENDF +;07A20 ENDF -07A20 FILE BuildResults/RISC/Obj/MMUTables.a.o, REFGUESS +;07A20 FILE AmphibianDNA/MMUTables.a.o, REFGUESS 07A20 MOD MMUSTUFF 07A20 ENTRY INITMMU 07A38 ENTRY SETUPGLOBALS @@ -210,17 +228,18 @@ 07BAC ENTRY MMUERROR 07BB8 ENTRY COPYCHUNKS 07BE8 ENTRY FINDINFO -07C50 ENDF +;07C50 ENDF -07C50 FILE BuildResults/RISC/Obj/MMUTables.a.o, REFGUESS +;07C50 FILE AmphibianDNA/MMUTables.a.o, REFGUESS 07C50 MOD GETREALPROC 07C7E ENTRY GETMMUINFO 07C90 MOD EDISKPROTECTPPC -07cce ENDF +;07cce ENDF ; no outwards references, pretty harmless, probably asm -07cd0 FILE BuildResults/RISC/Obj/BCScreenRelated.o, WRITEOUT, MODGUESS, REFGUESS +07cd0 FILE AmphibianDNA/BCScreen.a.o, WRITEOUT, MODGUESS, REFGUESS, NOFORCE +07cd0 MOD BCSCREEN 07CE2 ENTRY INITBCSCREEN 08180 ENDF @@ -278,7 +297,8 @@ ; all good, no outward references ; implements trap AA6A (unknown) -09960 FILE BuildResults/RISC/Obj/DeviceRelatedMgr.o, WRITEOUT, MODGUESS, REFGUESS +09960 FILE AmphibianDNA/DeviceDispatch.o, WRITEOUT, MODGUESS, REFGUESS, NOFORCE +09960 MOD DEVICEDISPATCHTBL 0996C ENTRY INITDEVICEDISPATCH 09BAA ENDF @@ -341,9 +361,9 @@ 0BCAE ENTRY INITVBLQS 0BDB6 ENTRY SKIPALLTHIS 0BDB8 ENTRY SKIPSOMEOFTHIS -0BE20 ENTRY POWERMGRNEWC_FIDDLEPMGRVECTORS -0be20 FILE BuildResults/RISC/Obj/PowerMgr.o, WRITEOUT, MODGUESS, REFGUESS +0be20 FILE AmphibianDNA/PowerMgr.c.o, WRITEOUT, MODGUESS, REFGUESS, NOFORCE +0BE20 ENTRY POWERMGRNEWC_FIDDLEPMGRVECTORS 0BFB0 ENTRY POWERMGRNEWC_BFB0 0C030 ENTRY POWERMGRNEWC_C030 0C0E0 ENTRY POWERMGRNEWC_C0E0 @@ -352,6 +372,10 @@ 0C1E0 ENTRY POWERMGRNEWC_C1E0 0C2E0 ENTRY POWERMGRNEWC_C2E0 0C3A0 ENTRY POWERMGRNEWC_C3A0 +0C3C0 ENDF + +; todo check force +0C3C0 FILE AmphibianDNA/PowerMgr.a.o, WRITEOUT, MODGUESS, REFGUESS 0C3C0 ENTRY INITPMGRVARS 0C446 ENTRY INITPMGROP 0C45E ENTRY SETUPPMGROPINTERFACE @@ -376,6 +400,7 @@ 0D504 ENTRY PMGRRECV 0D506 ENTRY PMGRSEND 0D51E ENTRY POWERDOWNALL +0dca6 ENTRY LOOKS_LIKE_SHUTDOWN 0DE10 ENTRY PMGRCALLEDBYDISPLAYMGRDE10 0DE30 ENTRY PMGRCALLEDBYDISPLAYMGRDE30 0DE50 ENTRY PMGRCALLEDBYGESTALTDE50 @@ -394,47 +419,69 @@ 0E160 ENTRY CPUIDPRODUCTLOOKUP ; probably okay -0e160 FILE BuildResults/RISC/Obj/UniversalTables.a.o, MODGUESS, REFGUESS +;0e160 FILE AmphibianDNA/UniversalTables.a.o, MODGUESS, REFGUESS 0E180 ENTRY PRODUCTLOOKUP 0E184 ENTRY DECODERLOOKUP 0E184 ENTRY INFONEWWORLD -0e340 ENDF +;0e340 ENDF ; all good -0E340 ENTRY NKEventGroupRelated - -0e340 FILE BuildResults/RISC/Obj/NKEventGroupRelated.a.o, WRITEOUT, MODGUESS, REFGUESS -0E4A0 MOD NKEG_UNKNOWN -0e510 ENDF - +; the functions in 'IntHnd' are all 8-aligned, which makes the DumpObj look bad +0e340 FILE AmphibianDNA/InterruptHandlers.a.o, WRITEOUT, REFGUESS, NOFORCE +0E340 MOD INTHND +0E340 ENTRY OVERRIDE_DEVICEDISPATCH +0E370 ENTRY SOME_ISLAND +0E380 ENTRY NEW_DEVICEDISPATCH_MOD +0E388 ENTRY NEW_DEVICEDISPATCH +0e3a0 ENTRY PLAY_WITH_MPDISPATCH +0E4A0 ENTRY MP_HANDLER_CORE 0E510 ENTRY DISABLEINTSOURCES - -; all good -0e510 FILE BuildResults/RISC/Obj/InterruptHandlers.a.o, WRITEOUT, MODGUESS, REFGUESS 0E520 ENTRY ENABLE60HZINTS 0E558 ENTRY ENABLEONESECINTS 0E568 ENTRY ENABLESLOTINTS +0E578 ENTRY ENABLESOUNDINTS +0E588 ENTRY DISABLESOUNDINTS +0E598 ENTRY CLEARSOUNDINT +0E5A8 ENTRY ENABLESCSIINTS +0E5B8 ENTRY DISABLESCSIINTS +0E5C8 ENTRY CLEARSCSIINT +0E5D8 ENTRY POWEROFF +0E5E8 ENTRY INT_NOT_SURE +0E5F0 ENTRY DEBUGUTIL 0E70A ENTRY WHACKOPENPIC 0EE58 ENTRY INTHAND_CALLED_BY_NKEG 0F0A0 ENTRY INITINTHANDLER 0F174 ENTRY NWINTTBL ; ??? -0f230 ENDF - +0F240 MOD INTHND_NK_SHIM 0F240 ENTRY NKCREATEEVENT 0F260 ENTRY NKSETSWIEVENT 0F280 ENTRY NKWAITFOREVENT +0f2b0 ENDF ; all good ; reversed using Cube-E GoNativeROMLib as a very helpful guide -0f2b0 FILE Misc/GoNativeROMLib.o, WRITEOUT, REFGUESS +0f2b0 FILE Misc/GoNativeROMLib.o, WRITEOUT, REFGUESS, NOFORCE 0F2B0 MOD GoNative 0F310 MOD GoNativeMainWith68KCFM 0F370 MOD InitializeAllResourceLists -0F3E0 MOD PrepareAndInitOneSpecialCaseLibrary +0F3E0 MOD _GNMixedModeSecondaryInit +0F540 MOD PrepareAndInitOneSpecialCaseLibrary 0F620 MOD RegisterOneSpecialCaseLibrary 0F6F0 MOD InstallAllSpecialCaseLibraries 0F790 MOD InstallOneGenericLibrary 0F820 MOD InstallAllGenericLibraries +0F860 MOD _GNGetGestaltCFMG +0F890 MOD _GNPrepareSomeFrag +0F940 MOD _GNWrapPrepare +0F970 MOD _GNPlayTrap +0FA30 MOD _GNGetNFAT +0FA70 MOD _GNB +0FB30 MOD _GNC +0FBA0 MOD _GND +0FC00 MOD _GNE +0FC60 MOD _GNF +0FCB0 MOD _GNG +0FCE0 MOD _GNH 0FD10 MOD SetupCFM 0FDE0 MOD SetupMixedMode 10010 MOD SetupNativeDebugger @@ -547,11 +594,11 @@ 150A0 MOD PoolAllocate 15160 MOD PoolAllocateClear 15180 MOD PoolDeallocate -151E0 MOD GoNativeNew_151E0 -15220 MOD GoNativeNew_15220 -15260 MOD GoNativeNew_15260 -15370 MOD GoNativeNew_15370 -153F0 MOD GoNativeNew_153F0 +151E0 MOD _GN_M +15220 MOD _GN_N +15260 MOD _GN_O +15370 MOD _GN_P +153F0 MOD _GN_Q 15400 MOD IMapFile 157A0 MOD IUnmapRange 15840 MOD ISL_GONATIVE_GETPTRSIZE @@ -574,6 +621,8 @@ 160D0 MOD PLGetImportInfo 16170 MOD PLSetImportAddress 161B0 MOD PLPrepareRegion +16830 MOD _GN_U +16840 MOD _GN_V 16850 MOD PLOpenContainer 169D0 MOD GetCount 16A70 MOD UnpackData @@ -582,33 +631,106 @@ 16D30 MOD InstallMixedModeExceptionHandler 16D70 MOD InstallMixedModeGestaltHandler 16DD0 MOD ExceptionStub +16DD6 ENTRY JumpOld +16DDE ENTRY EndExceptionStub 16DE0 MOD LoadMixedModeExceptionVector 16DF8 ENDF ; all good -16e00 FILE BuildResults/RISC/Lib/SlotMgr.lib, MODGUESS, REFGUESS +;16e00 FILE AmphibianDNA/SlotMgr.lib, MODGUESS, REFGUESS ; not bothering to put symbol names in here? all entry points dealt with anyway, I think... 16F32 ENTRY INITSDTBL 17020 ENTRY STARTSDECLMGR 17C90 ENTRY PROTECTEDISK -18bea ENDF +;18bea ENDF -18C30 ENTRY SOMETHINGSCSI ; all good -18c30 FILE BuildResults/RISC/Lib/SCSI.lib, WRITEOUT, MODGUESS, REFGUESS -18E30 ENTRY INITSCSIMGR -18E80 ENTRY INITSCSIBOOT -193C0 ENTRY ITTBOOT -1A8C0 ENTRY SCSIMGR_1A8C0 -1A910 ENTRY SCSIMGR_1A910 -1AAF0 ENTRY SCSIDISKMODE -1AB60 ENTRY SCSIMGR_1AB60 +18c30 FILE AmphibianDNA/SCSI.lib, WRITEOUT, MODGUESS, REFGUESS +18C30 MOD INITNATIVEITT +18D40 MOD SCSIMGR_18D40 +18E30 MOD INITSCSIMGR +18E50 MOD SCSIMGR_18E50 +18E80 MOD INITSCSIBOOT ; BootItt.c +193C0 MOD ITTBOOT ; BootItt.c +19A80 MOD AttemptDriverLoad ; BootItt.c +19B10 MOD ScanDrive ; BootItt.c +19EA0 MOD LoadDriver ; BootItt.c +1A0A0 MOD SetLoadFlag_1 ; BootItt.c +1A160 MOD SetLoadFlag_2 ; BootItt.c +1A1A0 MOD SetLoadFlag_3 ; BootItt.c +1A1F0 MOD BOOTITT_UNKNOWN_1 ; BootItt.c +1A230 MOD BOOTITT_UNKNOWN_2 ; BootItt.c +1A280 MOD ScRead ; BootItt.c +1A3D0 MOD BOOTITT_UNKNOWN_3 ; BootItt.c +1A490 MOD BOOTITT_UNKNOWN_4 ; BootItt.c +1A680 MOD SOpenDriver ; BootItt.c +1A7A0 MOD Ck4EjectableVolume ; BootItt.c +1A7F0 MOD DummyOldCallRead ; BootItt.c +1A8A0 MOD Clear ; XPTfunctions.c +1A8C0 MOD SCSIMGR_1A8C0 +1A910 MOD SCSIMGR_1A910 +1A970 MOD JmpToDrvr ; BootItt.a +1A9B0 MOD CheckSumDrvr ; BootItt.a +1a9e0 MOD Ck4IgnoreCmdShOptDel ; BootItt.a +1aa00 MOD Ck4OnlyLoadFromDefault ; BootItt.a +1AA20 MOD SCSIMGR_1AA20 +1AA30 MOD SCSIMGR_1AA30 +1AA40 MOD SCSIMGR_1AA40 +1AA60 MOD SCSIMGR_1AA60 +1AA80 MOD SCSIMGR_1AA80 +1AA90 MOD SCSIMGR_1AA90 +1AAA0 MOD SCSIMGR_1AAA0 +1AAB0 MOD SCSIMGR_1AAB0 +1AAF0 MOD SCSIDISKMODE +1AB30 MOD TESTFORDISKMODE +1AB60 MOD SCSIDISKWAKEALERT +1ABE0 MOD INFORMPOWERMGR +1AC10 MOD SCSIMGR_1AC10 +1AC90 MOD SCSIMGR_1AC90 +1AD70 MOD SCSIMGR_1AD70 +1ADC0 MOD SCSIMGR_1ADC0 +1AF00 MOD SCSIMGR_1AF00 1AF10 MOD SCSI_CALLED_BY_SLOT +1B040 MOD SCSIMGR_1B040 +1B340 MOD SCSIMGR_1B340 +1B4D0 MOD InitSW_GC ; halc96gc +1B590 MOD SCSIMGR_1B590 +1B690 MOD SCSIMGR_1B690 +1B700 MOD SCSIMGR_1B700 +1B720 MOD SCSIMGR_1B720 +1B740 MOD SCSIMGR_1B740 +1B760 MOD SCSIMGR_1B760 +1B790 MOD SCSIMGR_1B790 +1B940 MOD SCSIMGR_1B940 +1BA00 MOD SCSIMGR_1BA00 +1BA50 MOD SCSIMGR_1BA50 +1BA80 MOD SCSIMGR_1BA80 +1BAC0 MOD SCSIMGR_1BAC0 +1BF20 MOD SCSIMGR_1BF20 +1BFB0 MOD SCSIMGR_1BFB0 +1C040 MOD SCSIMGR_1C040 +1C160 MOD SCSIMGR_1C160 +1C1C0 MOD SCSIMGR_1C1C0 +1C310 MOD SCSIMGR_1C310 +1C360 MOD SCSIMGR_1C360 +1CCE0 MOD SCSIMGR_1CCE0 +1CD50 MOD SCSIMGR_1CD50 +1CDD0 MOD SCSIMGR_1CDD0 +1CE60 MOD SCSIMGR_1CE60 +1CFF0 MOD SCSIMGR_1CFF0 +1D120 MOD SCSIMGR_1D120 +1D2E0 MOD SCSIMGR_1D2E0 +1D4D0 MOD SCSIMGR_1D4D0 +1D6A0 MOD SCSIMGR_1D6A0 +1D810 MOD SCSIMGR_1D810 +1D8A0 MOD SCSIMGR_1D8A0 +1D8F0 MOD SCSIMGR_1D8F0 +1D970 MOD SCSIMGR_1D970 1dac6 ENDF ; 6 bad unresolved outgoing references -1dad0 FILE BuildResults/RISC/Lib/HFS.lib, WRITEOUT, MODGUESS, REFGUESS +1dad0 FILE AmphibianDNA/HFS.lib, WRITEOUT, MODGUESS, REFGUESS 25160 ENTRY FILEMANAGERIDLEPROC 2A230 ENTRY HFS_2A230 2A2D6 ENTRY GETBLOCK @@ -674,7 +796,7 @@ 2CB90 ENTRY SHUTDOWNCALLEE2CB90 2CB90 ENTRY SHUTDOWNMGRC_2CB90 -2cb90 FILE BuildResults/RISC/Obj/ShutDownMgr.c.o, WRITEOUT, MODGUESS, REFGUESS +2cb90 FILE AmphibianDNA/ShutDownMgr.c.o, WRITEOUT, MODGUESS, REFGUESS 2CC30 ENTRY SHUTDOWNCALLEE2CC30 2CC30 ENTRY SHUTDOWNMGRC_2CC30 2CC90 ENTRY SHUTDOWNCALLEE2CC90 @@ -699,38 +821,47 @@ 2E3D0 ENTRY TEGLOBALINIT -331f0 FILE BuildResults/RISC/Obj/ScrapMgr.a.o, WRITEOUT, MODGUESS, REFGUESS +331f0 FILE AmphibianDNA/ScrapMgr.a.o, WRITEOUT, MODGUESS, REFGUESS 333fe ENDF -33750 FILE BuildResults/RISC/Obj/PrintingExtra.a.o, WRITEOUT, MODGUESS, REFGUESS +33750 FILE AmphibianDNA/PrintingExtra.a.o, WRITEOUT, MODGUESS, REFGUESS 337D0 ENTRY PRINTINGNEWFUNC_337D0 3388c ENDF -33980 FILE BuildResults/RISC/Lib/MemoryMgr.lib, WRITEOUT, MODGUESS, REFGUESS +33980 FILE AmphibianDNA/MemoryMgr.lib, WRITEOUT, MODGUESS, REFGUESS 38CC0 ENTRY INITMEMMGR 38CDC ENTRY INITMEMVECT 39368 ENDF -39370 FILE BuildResults/RISC/Lib/AliasMgr.lib, WRITEOUT, MODGUESS, REFGUESS -3BE10 MOD ISL_ALIASMGR_GETHANDLESIZE -3C8F0 MOD ISL_ALIASMGR_EQUALSTRING +39370 FILE AmphibianDNA/AliasMgr.lib, WRITEOUT, MODGUESS, REFGUESS +3D770 MOD LookupServer +3D850 MOD GetServerInfo +3D960 MOD AlreadyLoggedOnServer +3D9C0 MOD AppleTalkActive +3DA00 MOD GetVolumeLocation +3E100 MOD AL_mountHD +3E1E0 MOD SizeCompatible +3E2A0 MOD DRIVEAVAILABLE +3E390 MOD EJECTABLEFILTER +3E4F0 MOD AL_mountEjectable +3E690 MOD InternalNames 3f2d0 ENDF -3f2d0 FILE BuildResults/RISC/Lib/ComponentMgr.lib, WRITEOUT, MODGUESS, REFGUESS +3f2d0 FILE AmphibianDNA/ComponentMgr.lib, WRITEOUT, MODGUESS, REFGUESS 4212c ENDF -42160 FILE BuildResults/RISC/Lib/ExpansionBusMgr.lib, WRITEOUT, MODGUESS, REFGUESS +42160 FILE AmphibianDNA/ExpansionBusMgr.lib, WRITEOUT, MODGUESS, REFGUESS 42160 MOD EXPANSIONBUSMGRFIRSTFUNC 44D20 MOD INITEXPANSIONMGR 452D0 MOD EXPANSIONBUSMGR_452D0 496b0 ENDF -496b0 FILE BuildResults/RISC/Lib/Gestalt.lib, WRITEOUT, MODGUESS, REFGUESS +496b0 FILE AmphibianDNA/Gestalt.lib, WRITEOUT, MODGUESS, REFGUESS 49C2E ENTRY GESTALTCUDAFUNC 49E42 ENTRY INITGESTALT 4a7d8 ENDF -4a7e0 FILE BuildResults/RISC/Lib/NotificationMgr.lib, WRITEOUT, MODGUESS, REFGUESS +4a7e0 FILE AmphibianDNA/NotificationMgr.lib, WRITEOUT, MODGUESS, REFGUESS 4AC60 MOD ISL_NOTMGR_GETHANDLESIZE 4b67c ENDF @@ -749,7 +880,7 @@ ; The only unresolved refs are LEAs and PEAs to nulls at the ends of modules -4c240 FILE BuildResults/RISC/Lib/DisplayMgr.lib, WRITEOUT, REFGUESS +4c240 FILE AmphibianDNA/DisplayMgr.lib, WRITEOUT, REFGUESS 4C240 MOD DISPLAY_4C240 4C2A0 MOD DISPLAY_4C2A0 4C310 MOD DISPLAY_4C310 @@ -1036,16 +1167,16 @@ 57460 MOD DISPLAY_57460 574aa ENDF -574b0 FILE BuildResults/RISC/Lib/WindowMgr.lib, WRITEOUT, MODGUESS, REFGUESS +574b0 FILE AmphibianDNA/WindowMgr.lib, WRITEOUT, MODGUESS, REFGUESS 59240 ENTRY INITFASTERINVALS 5b0ca ENDF -5b0e0 FILE BuildResults/RISC/Lib/MenuMgr.lib, WRITEOUT, MODGUESS, REFGUESS +5b0e0 FILE AmphibianDNA/MenuMgr.lib, WRITEOUT, MODGUESS, REFGUESS 5B260 MOD GETMENURGN 5d8e0 ENDF ; Spurious outgoing BSR in at 5DDE0 + 10 -5d900 FILE BuildResults/RISC/Lib/ATAMgr.lib, WRITEOUT, MODGUESS, REFGUESS +5d900 FILE AmphibianDNA/ATAMgr.lib, WRITEOUT, MODGUESS, REFGUESS 5D940 ENTRY ATAMGR_5D940 5D940 ENTRY ATAMGR_5D940 5D9B0 ENTRY ATAMGR_5D9B0 @@ -1059,7 +1190,7 @@ 5e024 ENDF ; These branch islands are probably the invention of the linker (uh-oh!) -5e030 FILE BuildResults/RISC/Obj/DeviceMgr.a.o, WRITEOUT, MODGUESS, REFGUESS +5e030 FILE AmphibianDNA/DeviceMgr.a.o, WRITEOUT, MODGUESS, REFGUESS 5E040 ENTRY FSIODNETBL 5EDE0 MOD ISL_DEVMGR_EQUALSTRING 607C0 MOD ISL_DEVMGR_GETHANDLESIZE @@ -1075,14 +1206,14 @@ 62eb0 ENDF ; Fix calls into DeviceMgr: 5EDE0, 607C0 -62f80 FILE BuildResults/RISC/Lib/DialogMgr.lib, WRITEOUT, MODGUESS, REFGUESS +62f80 FILE AmphibianDNA/DialogMgr.lib, WRITEOUT, MODGUESS, REFGUESS 6535e ENDF 65392 ENTRY INITRSRCMGR 65446 ENTRY ROMOVERRIDE ; REFGUESS finds three spurious out-of-file references here: -684b0 FILE BuildResults/RISC/Lib/ScriptMgr.lib, WRITEOUT, MODGUESS +684b0 FILE AmphibianDNA/ScriptMgr.lib, WRITEOUT, MODGUESS 6DA00 ENTRY HANDLEKEYBOARDMENU 6fd2a ENDF @@ -1100,7 +1231,7 @@ 79A70 ENTRY SCRNSIZE 8AC20 ENTRY FLUSHPALETTES -8ec00 FILE BuildResults/RISC/Lib/MoreCQD.lib, WRITEOUT, MODGUESS, REFGUESS +8ec00 FILE AmphibianDNA/MoreCQD.lib, WRITEOUT, MODGUESS, REFGUESS 90A00 ENTRY QDNEW_ALLOCCRSR 90F30 ENTRY QDNEW_SETCURSOR 910D0 ENTRY QDNEW_SETCCURSOR @@ -1125,16 +1256,16 @@ 925D0 ENTRY QDNEW_SHIELDCURSOR 926C8 ENDF -92a70 FILE BuildResults/RISC/Lib/FontMgr.lib, WRITEOUT, MODGUESS, REFGUESS +;92a70 FILE AmphibianDNA/FontMgr.lib, MODGUESS, REFGUESS 993F0 ENTRY INSTALLBASSCOMMON 99550 MOD FORCEINITFONTSCALL 99560 MOD INITZONEGLUE A4040 MOD INITIALIZEPARTIALFONTS A5950 MOD INITIALIZEDISKCACHE A6930 ENTRY INITFONTS -a8540 ENDF +;a8540 ENDF -a8540 FILE BuildResults/RISC/Lib/RomInterface.Lib, WRITEOUT, REFGUESS +;a8540 FILE AmphibianDNA/RomInterface.Lib, REFGUESS a8540 MOD GETPTRSIZE A8550 MOD GETHANDLESIZE A8560 MOD OPENDRIVER ; not sure about this one @@ -1220,10 +1351,10 @@ A8C60 ENTRY REMOVEHDLBLKS A8C90 MOD ISMPPOPEN A8CB0 MOD GETNODEADDRESS A8CE0 MOD NBPEXTRACT -A8D40 ENDF +;A8D40 ENDF -A8D40 FILE BuildResults/RISC/Lib/RomStandardLib.lib, WRITEOUT, REFGUESS +;A8D40 FILE AmphibianDNA/RomStandardLib.lib, REFGUESS, NOFORCE A8D40 MOD c2pstr A8D70 MOD __setjmp A8D80 MOD longjmp @@ -1237,10 +1368,10 @@ A8F10 MOD strcspn A8F40 MOD strlen A8F60 MOD strncmp A8FA0 MOD strncpy -A8FE0 ENDF +;A8FE0 ENDF -A8FE0 FILE BuildResults/RISC/Lib/Lastly.lib, WRITEOUT, REFGUESS, MODGUESS +A8FE0 FILE AmphibianDNA/Lastly.lib, WRITEOUT, REFGUESS, MODGUESS A8FE0 MOD LASTLY_A8FE0 ;A9140 MOD SIZESOUNDBUFFER A9142 ENTRY SIZESOUNDBUFFER diff --git a/unlink b/unlink index 84500e4..10b5368 100755 --- a/unlink +++ b/unlink @@ -24,8 +24,12 @@ def trim_rom(rom): def read_mac_source_file(path): # May insert arbitrary blank lines! - with open(path, encoding='mac_roman') as f: - return f.read().replace('\r','\n') + with open(path, 'rb') as f: + src = f.read() + src = bytes(ch for ch in src if ch < 128) + src = src.replace(b'\r',b'\n') + src = src.decode('ascii') + return src def parse_asm(src): @@ -694,7 +698,7 @@ for (lbl, vt, vo, reg, cmt) in srcvecinfo: try: gluelocs_by_label[lbl] = gluelocs[vt, vo] except KeyError: - raise + pass imploc_of_glue = {} @@ -1049,8 +1053,11 @@ for frng, *args in filerngs: # Write actual semantic stuff: + flags = 1 << 3 # externally accessible + if 'NOFORCE' not in args: flags |= 1 << 7 + obj.putdict(dict_names) - obj.putmod(modname) + obj.putmod(modname, flags=flags) obj.putsize(len(mod_data)) obj.putcontents(mod_data) @@ -1091,6 +1098,8 @@ for frng, *args in filerngs: pass with open(abspath, 'wb') as f: f.write(obj_bin) + with open(abspath + '.idump', 'w') as f: + f.write('OBJ MPS ')