boot3/OS/StartMgr/Boot3.a

31090 lines
761 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;
; File: Boot3.a (formerly BootCode.a)
;
; Contains: boot code for the Macintosh system
;
; This code lives in the 'boot' 3 resource in the System file.
;
; This code takes over the boot process from Boot2.a, and takes it
; up to the launch of the Process Manager. This code used to be in
; Boot2.a itself but was split off during the implementation of the
; CPU Gibbly mechanism. All code which handles booting should be added to
; this file; Boot2.a doesnÕt do much beyond finding a CPU Gibbly with
; this code and passing on the boot baton. This code, unlike Boot2.a,
; can be in ROM if we so choose.
;
; This contains all the code necessary to get from boot to the Process Mgr.
; It also contains the code that was formerly in INIT 31 that loads INIT resources
; from INIT, RDEV, and cdev files.
;
; Written by: Darin Adler, based on old boot blocks and StartBoot.a
;
; Copyright: © 1990-1993 by Apple Computer, Inc. All rights reserved.
;
; Change History (most recent first):
;
; <SM30> 11/7/93 SAM Roll in <MC2> from mc900ftjesus.
; <MC2> 11/7/93 SAM Sync-in this file with CPUBootcode.a from the gibbly sources.
; <SM29> 7/21/93 RC Changed RegisterROMComponent to selector 42 instead of 27
; <SM28> 7/20/93 SAM Cleaned up more stuff. Moved the processmgr 'proc' resource
; loading code *way* forward in the boot. The scod's end up being
; the very first resources in the heap. The "Welcome dialog is
; displayed after the scods are loaded. Removed a couple of 24
; bit routines. Redid the old installmgr code (which is now
; called InitSys7ToolBox). See the comment block around that
; change for details. Made QuickTime components not load on
; 68010s. Added labels to the ROM header references.
; <SM27> 6/17/93 rab Removed the GetGibbly and CanThisGibblyBootThisMachine routines
; and the code that calls them. This code was inadvertantly rolled
; in during the Ludwig sync up.
; <SM26> 6/15/93 SAM Undid change <LW2> for PDM. We dont need a gibbly to boot
; (we're actually turning the ROM you see...)
; <SM25> 6/14/93 kc Roll in Ludwig.
; <LW2> 3/25/93 GS Added GetGibbly and CanthisGibblyBootThisMachine routines to put
; up the proper Alert when booting a 7.1 System without a Gibbly.
; <SM24> 4/20/93 SAM Removed a call to _InitFonts, cuz _InitGraf calls it.
; <SM23> 2/12/93 PN Add forROM condition for the previous change
; <SM22> 02/11/93 HY Fix problem in routine DetachAndExecute. If a particular resource
; is not found in either the ROM or system file then you crash.
; <SM21> 02/10/93 HY Enable Appletalk on LCR/LC930 again. Revert <SM18> changes.
; <SM20> 2/5/93 SAM Removed the code that was unimplementing MemoryDispatch based on
; MMUtype. Removed the CPU/MMU checks before calling VM. VM
; knows if it can run.
; <SM19> 01/11/93 jmp Updated various BoxFlag names.
; <SM18> 12/16/92 HY Disable Appletalk on LCR/LC930.
; <SM17> 12/7/92 GMA We now call RegisterRomComponents directly from Boot3 instead of
; through the Manager InstallationVector(in ROM). Rom Components
; are registered (through ComponentDispatch) after making the
; Cyclone Gibbly Resident. This allows the Components in ROM to
; use Localized Strings in the Gibbly without referenceing the
; gibbly file directly.
; <SM16> 12/1/92 RB Added a call to MakeOverrideMap so that the 'rovm' resource is
; used to override some system resources.
; <SM15> 11/20/92 GS Added the EnablePDMsgs for the Quadra 900/950 . This was
; originally in a linked patch routine to avoid a problem with the
; KeySw handler early in the boot process.
; <SM14> 11/18/92 RB Finally, the Disk Cache code is in ROM so we don't need to
; install ptch 41 (the only one in SuperMario ROMs) anymore.
; <SM13> 11/3/92 RB Use ROMBase to check for VM being in ROM or not, and call
; StripAddress on the resource pointer before checkin it, just in
; case we are in 24 bit mode.
; <SM12> 11/3/92 fau Corrected a dereference in DetachandExecute.
; <SM11> 11/01/92 HY Conditionalize changes in <SM10> for LC930 because we don't have
; VM in ROM.
; <SM10> 10/30/92 RB Give VM in ROM a chance to load when this file is being used as
; a ROM Gibbly. VM in ROM is newer than the one in the system and
; it behaves correctly in SuperMario based ROMs.
; <SM9> 10/29/92 SWC Changed ShutdownEqu.a->Shutdown.a.
; <SM8> 10/22/92 CSS Change short branches to word branches.
; <41> 8/13/92 JDR Offset to CloseTheFile was out of range in ForTheFuture.
; <40> 8/13/92 DTY #1039434 <BBM>: DonÕt register components from QuickTime if
; weÕre booting on a 68000.
; <39> 7/22/92 csd #1018711: If script extensions canÕt be found in the Extensions
; folder, change <26> added a check for the System Folder. On
; Install 1 disks, though, we donÕt even have that; everything is
; at the root. So weÕll also check there. This is required so WSI
; and WSII systems can have Install 1 disks.
; <38> 6/27/92 DTY #1033818: We decided to leave the Gibbly the current resource
; map after all, so CurMap needs to be changed to SysMap before
; LoadDSAT can be called.
; <37> 6/24/92 DTY #1033818 <csd>: Undo <17> since 'boot' 2 now puts the Gibbly
; underneath the system resource map before heading into 'boot' 3
; so that the system will now always be the top resource map.
; <36> 6/15/92 csd #1032429 <gbm>: Added the file type 'vbnd' to the list of types
; from which INITs are run. These are Telephone Tools from the
; Comm Toolbox Telephone Manager.
; <35> 5/28/92 DTY #1030972: After 'DSAT' 0 is set up, look at a bit in low memory
; to see if 'boot' 2 could find a Gibbly or not. If it couldnÕt,
; the bit is set, which means that this code should bring up the
; error alert saying that the disk is too old.
; <34> 4/29/92 DTY #1027105: Roll out changes from <27>. The script extensions were
; being loaded, but seconary inits, like Akiko and
; InputBackSupport were still being disabled since theyÕre just
; normal INITs. Making them work would take a lot of hacking
; around, and that doesnÕt give us a nice general solution anyway,
; so just donÕt try to fix the problem at all.
; <33> 4/23/92 DTY Fix a bug in the linked patch extension mechanism. (I TOLD you
; it wasnÕt tested.) Set up D5 with a pointer to the linked patch
; loader so that linked patch extensions will work.
; <32> 4/20/92 DTY #1024149: DonÕt prevent DAL from loading if AppleTalk is off.
; <31> 4/20/92 JSM Moved this file from BootCode.a to Boot3.a, keeping all
; revisions.
; <30> 4/17/92 DTY Add mechanism to load linked patch files from the Extensions
; folder. Conditionalized for theFuture. No, I didnÕt test this
; change. I donÕt have an 'lpch' file to test with. And itÕs not
; theFuture yet.
; <29> 4/16/92 DTY Always include ResourceMgrPriv.a (in case this file is used for
; a Gibbly), and donÕt include LAPEqu.a any more, since the dummy
; LAP routine went away.
; <28> 4/15/92 JSM Roll-in changes from SuperMario to support their ROM gibbly,
; should not change System build. Take out some leftover revision
; <28> comments from when part of this file lived in
; StartSystem.a.
; <27> 4/13/92 DTY #1027105,<csd>: Script extensions should be considered part of
; required system software, and should not be disabled when the
; shift key is held down if Roman is not the primary script.
; Also, removed changes from revision <12>, AppleTalk does the
; right thing now.
; <26> 4/2/92 csd #1018711,<FM>: Change the LoadINITFilesInFolder routine to look
; in the System Folder if thereÕs an error trying to get the
; Extensions Folder when loading script extensions.
; <25> 4/2/92 DTY #1025555,<BBM>: When this file was part of StartSystem.a,
; MakeSysHeapGrowable was done way early in the boot process. It
; even does it twice. My worries about doing this so early in the
; last change are therefore unfounded. Move the first call to
; MakeSystemHeapGrowable back to StartSystem.a so that Gibblies do
; not get closed out. Get rid of the check around the second
; MakeSystemHeapGrowable.
; <24> 4/1/92 DTY #1025555,<FM>: Add A/UX support.
; <23> 3/27/92 DTY #1025567: Call _RsrcZoneInit before growing the system heap for
; the Process Manager to blow away any resources in the
; application heap that will get trashed by the call to
; _SetAppBase.
; <22> 3/26/92 DTY #1024282,<gbm>: I took the MoveHHi out of LinkedPatchLoader, so
; we donÕt need to keep so much stack space in memory all the
; time. Go back to the way it was before <19>.
; <21> 3/25/92 FM last checkin was #1025326
; <20> 3/25/92 FM Rolled in code from StartSystem.a. Now StartSystem.a only
; contains code to load a gibbly. BootCode.a (the gibbly) now
; takes care of all startup initialization.
; <19> 3/20/92 DTY BLT: Since the linked patch loader now calls _MoveHHi, VM is
; hanging with a double bus fault because the stack pointer is
; being moved to a paged out page again. Bump up the stack size
; needed for boot.
; <18> 3/16/92 DTY #1024540: Load 'pext' (El Kabong printing extensions) files from
; our special folders.
; <17> 3/3/92 DTY #1023670: The system 'boot' 3 needs to call _UseResFile before
; loading linked patches. This is because MacsBug resets CurMap to
; be the reference number of TopMapHndl, which could be a Gibbly
; calling the systemÕs boot code. This causes the linked patch
; loader to fail since it might not find any 'lpch' resources in
; the Gibbly.
; <16> 2/18/92 DTY Use d5 as a flag meaning that we had to implement StripAddress
; ourselves. If we had to relocate the boot code, check this flag
; to determine if we patched StripAddress. This lets Scruffy
; work.
; <15> 2/11/92 DTY Release the 'lodr' resource after linked patches have been
; loaded. This frees up about 2K in the system heap.
; <14> 2/11/92 DCL Changed the name of include file TSMEqu.[aph] to
; TextServices.[aph] for better read-ability.
; <13> 1/23/92 csd Make sure that enough pages are in memory before we move the
; supervisor stack pointer when relocating the boot world. If a
; stack operation causes a page fault, it creates a double bus
; fault, guaranteed.
; <12> 1/19/92 DTY Add a bunch of skanky code to prevent network code from being
; loaded if AppleTalk is turned off: Set up a fake LAP manager,
; and donÕt load DAL, AppleShare, or FileShare. (And just think
; about how 7 Up had to do this without changing the boot code!)
; Also get rid of NewROMCheck since this is done implicitly by the
; Gibblies.
; <11> 1/17/92 DTY DonÕt set up StkLowPt when relocating the boot world. Setting it
; causes the stack sniffer to fire.
; <10> 1/14/92 csd If VM adds memory the machine, relocate the boot world (code,
; stack, globals) to the new MemTop/2 area. This is because the VM
; code costs memory in the System heap, and CubeE no longer has
; room to boot on a 2 megabyte machine. Also, move the BootGlobals
; record and other equates to BootEqu.a so we donÕt have to keep
; the StartSystem.a and BootCode.a versions in sync.
; <9> 12/12/91 csd #1017421: with bal, loading the components from the QuickTime
; init because it wonÕt since the Component Manager is implemented
; already. Load components from the System file before we load
; init files. This doesnÕt work yet because the component manager
; canÕt handle 'thng' resources which come from a resource file
; with the refnum 0, which is what HomeResFile returns for the
; System.
; <8> 12/10/91 JH Oops, forgot to fill out the script language record before
; sending it to SetTextServiceLanguage.
; <7> 12/9/91 JH Added a little subroutine called TellTSMScriptAndLanguage. It
; gets called right after _AddScriptFonts and its purpose is to
; tell the text service manager what the system script and
; language is.
; <6> 11/23/91 YK Removed RegisterComponetFile calls. Added ComponentSearch at the
; end of LoadINITFiles.
; <5> 11/15/91 DTY Change the resource ID of the 'lodr' resource to match the ones
; in the Gibbly ERS.
; <4> 11/12/91 DTY Pass off a pointer to the 'ptbl' resource to the linked patch
; loader. Change type of linked patch load resource to 'lodr'.
; <3> 11/11/91 DTY The linked patch loader has been moved to the 'pldr' 0 resource
; for CPU Gibblies. Get this resource and jump to it instead of
; importing the label and jsrÕing.
; <2> 11/8/91 DTY Adding a comment describing why this file is here.
; <1> 11/8/91 DTY first checked in
;
; Change history from StartSystem.a:
;
; <56> 11/4/91 YK Register components in the INIT loading loop.
; <55> 11/4/91 JSM Take out SysPrivateEqu.a again.
; <54> 10/28/91 SAM Added a default define of false to has3rdFloppy.
; <53> 10/28/91 SAM/KSM Rolled in Regatta file:
; On Spike with caches diabled, we patch the MFM WrData vector of
; the Sony driver so we can use an updated timing constant in the
; Write code. The original constant is *barely* within spec and
; with caches disable it is no longer even close.
; Changed CheckFor040CacheInhibit to use the hwPriv call to push
; the caches, added a clock rate calculation to determine the
; amount of adjustment TimeDBRA will require with the caches off
; on the differently clocked 040s. Added a Terror2 (ROM minor
; version 17) check to the Zap PRAM routine so it will work on
; Zydeco.
; Updated the kNo040CacheTimeDBRA value.
; Slam a slower/lower TimeDBRA when the 040 caches are inhibited.
; (jmp) Make the System cmd-opt-r-p PRAM Reset work on TERROR
; machines to fix a TERROR bug.
; Changed HighestSupportedBoxFlag to Eclipse33.
; Added code to inhibit the 68040 caches if the high bit of the
; MMFlags byte is set (PRAM 8A).
; Add back the check for Gestalt after loading VM cuz if VM does
; not load, Gestalt is not yet implemented on non IIci ROM
; machines.
; Adding free memory checks after VM loads.
; Removed the previous revision -- Macsbug has been fixed to load
; in copyback!
; Inhibited all 040 caches while loading Macsbug cuz its too
; brain-damaged to load in copyback.
; <52> 9/16/91 JSM Cleanup header, donÕt include SysPrivateEqu.a (already in dump
; file).
; <51> 7/2/91 JSM Remove obsolete 7.0 related SysVers conditionals.
; <50> 6/12/91 LN added #include 'InternalOnlyEqu.a'
; <49> 6/11/91 gbm Take out conditional for Regatta
; <48> 4/13/91 stb dty, BRC#86692: Replace WhichCPU (borrowed from ROM) with
; HandleMacIIWith030. Now handle exactly one case where we help
; accelerators be VM-capable.
; <47> 4/2/91 SAM Bumping HighestSupportedBoxFlag for Regatta build.
; <46> 3/31/91 csd dba: Changed the test for 040 in the WhichCPU routine so that it
; doesnÕt jam 0 into the CACR, thereby possibly nuking any data
; which has not been flushed out of the cache.
; <45> 3/13/91 stb bbm, #83253: setup and use new ExpandMem global
; emMinSysHeapFreeSpace which specifies how much elbow room to
; leave in the system/process mgr heaps.
; <44> 2/19/91 gbm csd, #Go5 approved: Make sure _MemoryDispatch is NOT implemented
; on machines without PMMUs. Also fix the related bug in the ci
; ROM that sets MMUType wrong.
; <43> 2/15/91 gbm stb & dba, BRC # 82829: Fix the WhichCPU routine so that is
; stops turning off data cache and data bursting on '030s
; <42> 2/11/91 stb gbm, WS #stb211: change BSR.S back to BSR so MacsBug wonÕt die
; if you bail during install (by holding down the mouse button).
; Disassembler, too.
; <41> 2/11/91 stb gbm, BRC # 82423: implement StripAddress early enough to use
; when installing VM
; <40> 1/29/91 csd stb, Whiteboard Bug: Moved the SetDefaults code to an earlier
; position so that it executes before code that uses the
; variables.
; <39> 1/23/91 stb TED,81551: test a result code before BCCÕing.
; <38> 1/19/91 stb & DC (& dfh for some of it) change 'dbex' id; adjust file cache
; allowance; coordinate upward and downward growth limits.
; <37> 1/14/91 stb & mda; more net booting stuff; disable extension disabling if
; desired; do DoWeHaveEnoughRAMToBoot earlier; give file cache a
; little less BufPtr room. add culprit names for VM, Debugger,
; Disassembler; jam CPUflag to support 3rd-party processors for
; VM.
; <36> 12/18/90 stb & JDR; add error check after _MemoryDispatch.
; fix infinite loop in MakeSysFree if couldnÕt get desired amount.
; <35> 12/15/90 stb & KSM; move the currently-executing filename to avoid conflict
; with INITs which check CurApName to see if itÕs post-boot time.
; Replace error 106 with 25. Remove _MemoryDispatch declaration.
; <34> 12/13/90 stb & gbm; no longer load AppleTalk from a file.
; Use source to GetDefaultStartup to avoid problem on Plus.
; Reserve 100K for post-boot allocations by Process Mgr & Finder.
; <33> 12/12/90 stb & gbm; pass bufPtrLimit to LoadFileSystemCache code
; & dba; added 'appe' (background app) to the list of boot-executables.
; & bbm; add Cmd-Option-pr to reset PRAM on Plus, SE, II, Portable
; & k s; add net booting hooks
; <32> 11/15/90 stb & JDR; move dsBufPtrTooLow to SysErr.a
; <31> 11/9/90 dba & JSM; move 8¥24 GC loading before script system loading
; <30> 11/1/90 dba & stb; some misc. cleanup; fix bug where we were checking
; against the wrong value for the barrier; fix obscure error
; handling bug in NewPtrStartup; add NewPtrStartup for post-boot
; that returns an error; add an ellipsis on the end of long file
; names, instead of relying on smart code in the DSAT; put in the
; file name for all files opened outside the system file, not just
; for files with INIT resources
; <29> 10/31/90 dba & csd; add code to load the 8¥24 GC support code
; <28> 10/30/90 stb & BBM; make booting safer and more predictable in low-memory
; conditions.
; <27> 10/22/90 JJ Rex V8: Change all box flag references to use boxMacLC. Get rid
; of boxElsie and boxElsieV8.
; <26> 10/1/90 dba add innocuous value for location 0
; <25> 9/25/90 SAM Bumped highestBoxFlag to ElsieV8.
; <24> 9/22/90 gbm (with dba) change the routines that could kill ApplZone so that
; they do InitApplZone to get rid of the old contents
; <23> 9/16/90 gbm Fix detatching of system INITs. I don't think it ever worked...
; <22> 9/10/90 dba fix name copy bug
; <21> 8/27/90 VL (actually dba) set TheZone to SysZone when doing
; MakeSystemHeapGrowable since the application heap goes away.
; <20> 8/10/90 dba load A/ROSE and AppleTalk; this obsoletes INIT 18 and prevents
; the need for INIT 16
; <19> 8/6/90 stb add test for at least 1.5MB to make sure we can boot 7.0
; <18> 7/20/90 dba get rid of PTCH -1
; <17> 6/22/90 dba (with emt) move this code onto the stack to avoid fragmenting
; the system heap
; <16> 6/11/90 EMT Moved alternate trap dispatcher loading from patch files.
; <15> 5/29/90 DDG NEEDED FOR SIXPACK: Changed all the sixpack conditionals from
; six-point-oh-seven to six-point-oh-six.
; <14> 5/11/90 PKE NEEDED FOR SIXPACK: if this file is used for 6.0.6:
; Conditionalized early loading of script systems (see <9> and
; <13>) on SysVers >= $700. ALSO (for 7.0 only): Added call to new
; Script Mgr _AddScriptFonts routine after all INITs.
; <13> 5/5/90 PKE Added call to Script Mgr _InitScripts (new) after script system
; installation.
; <12> 4/25/90 dba change MMU check in LoadVM section (also add feature to load
; MacsBug before VM)
; <11> 4/20/90 dba check to see that the Shift key is the only key held down for
; Extensions Disabled
; <10> 4/20/90 dba close QD port much earlier; it isnÕt doing anyone any good; do
; InitApplZone for each INIT file; rely on patch to SetAppBase to
; do InitApplZones
; <9> 4/19/90 dba add support for Script Systems; increase system heap size
; <8> 4/19/90 dba make StartupScreens and Disable Extensions work
; <7> 4/18/90 dba change bsr.s to bsr (I will never check in w/o building)
; <6> 4/18/90 dba change branch from pl to mi to fix MakeSysFree bug (INITs were
; not being loaded); restuff dirID to make setting of the noINITs
; bit work right
; <5> 4/17/90 dba fix bug with InitApplZone stuff
; <4> 4/16/90 csd save registers around calls to ptch and PTCH resources since
; they donÕt obey the register saving conventions.
; <3> 4/11/90 dba put dynamic system heap size code for the Plus and SE back here;
; do InitApplZone before each INIT, instead of after each
; MakeSysFree; detach ourselves so we can support remote booting
; closing the System file and opening a new one
; <2> 4/10/90 dba fix bugs in MakeSysFree (wrong register d2 vs. d0 and possible
; error where size is odd)
; <1> 4/9/90 dba new today
;
; Change History from data fork of System file:
;
; <5> 3/22/90 dba change name of LoadPatch to LoadLinkedPatches
; <4> 3/21/90 dba take out the lingering Debugger statement
; <3> 3/21/90 dba change to work with new boot blocks for 7.0
; <2> 12/28/89 dba use MAIN instead of PROC to get dead code stripping; also get
; rid of wierd header that was required by a strange build rule in
; the old Make file; a corresponding change was made in
; SysObj.Make
; <1.5> 11/17/89 dba got rid of checks for 64K ROMs
; <1.4> 10/14/89 EMT Always load in RAM cache in system 7.
; <1.3> 6/5/89 EMT One more try.
; <1.2> 6/2/89 EMT Fixed coding errors in 1.1.
; <1.1> 6/1/89 EMT Removed ROM69 stuff. Bootstrap StripAddress if it doesnÕt exist.
; Use StripAddress before executing 'PTCH's.
; <1.0> 11/16/88 CCH Added to EASE.
; <S174> 4/10/87 bbm Save off the A5 world for the inits. (Some inits relied on
; CurrentA5 to be set up.)
; <S145> 3/27/87 bbm The algorithm that S115 used to grow the heap was to enlarge the
; heap by 16k or the size of the patch - whichever was bigger.
; What you really want is 16k free in addition to the size of the
; patch.
; <S128> 3/23/87 JTC On 64K ROMs be sure not to use nonexistent traps (such as
; SizeRsrc) or resize heap (since boot blocks are loaded at 64K).
; <S115> 3/19/87 JTC Ensure sufficient sys heap space before loading patches, using
; SizeResource to figure the local min. Then guarantee MinSysExtra
; space after loading last one. Code borrowed from INIT=31.
; <S109> 3/18/87 bbm Added the code for ÔPTCH $FFFFÕ. This enables general patches
; for all machines before the patches are read in by ÔPTCH 0Õ and
; general patches after the patches are read in by ÔPTCH $FFFFÕ.
; <S108> 3/17/87 bbm For system heaps larger than 58k, rom69patch needed to move the
; boot code (the boot code is loaded in at $10000). Since the boot
; code has moved, the return address on the stack should be
; modified. If you change the nature of the stack Ñ which rom69fix
; depends on - you must also modify rom69fix.a.
; <P029> 1/22/87 JTC JTC The above dates should surely be Ô86 and the res type is now
; 'PTCH', despite the above comments. This change is to
; accommodate the new PTCH=0 patch file for all systems.
; 11/20/86 BB Changed resource type for patch files from 'PTCH' to 'ptch'.
; 11/15/86 BB New today.
;
; Change History from INIT 31:
;
; <2> 2/19/90 sad <version 5>
; look into Extensions and Control Panels folders using Folder
; Mgr; use 1-deep resource calls instead of 64K ROM-compatible
; hacks; got rid of d7 hack for 64K ROMs; assures MinSysFree after
; last INIT file instead of before first
; <1.4> 11/17/89 dba got rid of checks for 64K ROMs
; <1.3> 6/19/89 CCH Removed check for files of type 'mntr' from version 1.2.
; <1.2> 2/21/89 CCH Added 'mntr' type to list of files that contain INITs.
; <1.1> 1/17/89 CCH Merged changes from 6.0.3.
; <1.0> 11/16/88 CCH Added to EASE.
; <S424> 3/15/88 DBG Prevent invisible INIT files from running
; <S393> 2/12/88 JRM Use fndrInfo bit to eliminate extra OpenResFiles. Set the bit if
; no INIT resources are found for a file. Check the bit before
; calling OpenResFile
; <SB293> 10/2/87 DAF Added an InitGraf before the InitPalettes so that all gDevices
; will be active.
; <S285> 9/21/87 DAF Changed the ROM85 test in s277 to test MacII or greater, rather
; than equal.
; <S277> 9/16/87 DAF Added InitPalettes here before INIT files are loaded. This
; causes the data structures to be allocated early rather than
; during the first init that calls _InitWindows.
; <S173> 4/10/87 JTC Fix CDEV to be cdev.
; <S114> 3/19/87 JTC Fix to get 16K min in sys heap even if no RDEV,INIT,CDEV files.
; Also, look for CDEV files too.
; <S9> 2/14/87 JTC Call InitApplZone after SetApplBase to get initialation
; attendant thereto.
; <S6> 1/5/87 JTC Add new resource 'sysz' comprising just one long word to request
; said amount of system heap space. Put code into inner loop of
; loading and executing INITs below to guarantee #MinSysExtra
; (borrowed from start code) free space at every execution.
; 8/4/86 DLD Converted source to MPW.
;
; System 3.1
;
; 2/8/86 JTC&LAK Fixed bug in patching return address into boot blocks after the
; boot blocks have been moved. Also added a BCLR to assure that
; the half-way point in memory is even after the DIV by 2.
; 2/5/86 LAK Fixed bug for Shuffle: return address needs to be updated after
; stack move.
;
; for InfoSphere
;
; 1/7/86 LAK On old ROMs: if not called from $10000 space or BufPtr has been
; moved below MemTop/2 + 1K already then punt the normalization.
; Someone has probably already 'normalized' the world, hopefully
; correctly.
;
; System Tools Disk for Plus
;
; 12/10/85 LAK Modified to look for files of both INIT and RDEV types.
; 12/6/85 ELR New Today
;
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; equates
supportsMFM equ 1
If &type('has3rdFloppy') = 'UNDEFINED' Then
has3rdFloppy: equ 0
EndIf
load 'StandardEqu.d'
include 'MMUEqu.a'
include 'BootEqu.a'
include 'EgretEqu.a' ; <15>
include 'Folders.a'
include 'GestaltEqu.a' ; <33>
include 'HardwarePrivateEqu.a' ; just for hwCbAUX
include 'LinkedPatchMacros.a' ; For kROMVersion equates <10>
include 'ReliabilityEqu.a' ; just for RelPRAM <33>
include 'ResourceMgrPriv.a' ; for SetupResourceFileAttributes & Resource Override traps <28> <29>
include 'ScriptPriv.a' ; <13>
include 'ShutDown.a' ; just for _SDRestart <33><SM9>
include 'SonyEqu.a' ; <11>
include 'TextServices.a' ; so we have SetTextServiceLanguage <14>
include 'UniversalEqu.a' ; <15>
include 'FileMgrPrivate.a'
include 'Script.a'
include 'Devices.a'
VMGlobals EQU $B78 ; Pointer to VM's globals
MACHINE MC68020 ; <SM28>
_AUXDispatch opword $ABF9 ; <24> A/UXÕs trap dispatch *** move to Traps.a
auxSecondaryInit equ 36 ; <24> Parameter for _AUXDispatch
auxExtraDebuggerSize equ $1c00-debuggerGlobalSize ; <24> Amount of additional storage space required by A/UX for MacsBug
bFInvisible equ 7 ; bit in ilFlUsrWds+fdFlags which means an invisible file
bFNoINIT equ 7 ; bit in ilFlUsrWds+fdFlags+1 which means no INIT resources
vmDebugSignature equ 'JB' ; magic number to debug VM
bbVMDebugSignature equ bbPageFlags ; boot blocks offset of magic word to debug VM
kNo040CacheTimeDBRA25MHz equ 1560 ; # of DBRA's per ms with 25MHz 040 caches inhibited <8>
kNo040CacheTimeDBRA33MHz equ 1513 ; # of DBRA's per ms with 33MHz 040 caches inhibited <9>
k040CyclesPerDBRA equ 4 ; # of cycles it takes an 040 to execute a DBRA <9>
kNoCacheWriteAdj equ $30EA ; No Caches Write Delay constant <11>
kBootStackSizeNeeded equ $2000 ; this many bytes of stack should be in physical memory <12> <19> <22>
kNetBootNameID equ -16507 ; name of NetBoot file <33>
kNetBootProcID equ -16507 ; id of the net boot proc resource <33>
kNetBootDriverRefNum equ -50 ; refnum if we are to load the net booter <33>
kAROSENameID equ -16501 ; name of A/ROSE file
kAppleTalkNameID equ -16500 ; name of AppleTalk file
k8Dot24GCNameID equ -16454 ; name of 8¥24 GC file <29>
kLinkedPatchFileID equ 'lpch' ; <30> File type containing a bunch of 'lpch' resources.
kPatchLoaderResourceType equ 'lodr' ; Resource type containing linked patch loader
kPatchLoaderResourceID equ -16385 ; Resource ID of resource containing linked patch loader
kPatchTableResourceType equ 'ptbl' ; Resource type containing patch table ranges
kFileShareCreator equ 'hhgg' ; <12>
kAppleShareCreator equ 'afps' ; <12>
kDALCreator equ 'dald' ; <12>
IF forROM THEN ; <28>
SysVersForROM equ $0710 ; <28> jam Cube-E system version into SysVersion lowmem for now
kROMVersionPlus equ $0075 ; <28>
kROMVersionSE equ $0276 ; <28>
kROMVersionII equ $0178 ; <28>
kROMVersionPortable equ $037A ; <28>
kROMVersionIIci equ $067C ; <28>
kROMVersionSuperMario EQU $077D ; <28>
ENDIF ; <28>
pramFigmentOffset EQU $8A ; sayeth SheepShaver
pramFigmentFlag EQU 5 ; (SheepShaver also sets bits 0 and 2)
LogProgress SET 0 ; SET to 1 (at any point) to spam NanoKernel log
MACRO
&label Progress
IF LogProgress THEN
@progRegs reg a0/a1/d0/d1/d2
ELSE
@progRegs reg a0/a1
ENDIF
movem.l @progRegs, -(sp)
IF LogProgress THEN
pea @str + 1 ; c string
move #-3, -(sp)
dc.w $AA7F
ENDIF
move.l $2b6, a0 ; expandmem
lea @str, a1
move.l a1, $324(a0)
bsr NudgeProgressBar
movem.l (sp)+, @progRegs
bra.s @poststr
LCLC &oldstr ; save string setting
&oldstr SETC &SETTING('STRING')
STRING Pascal ; change it
@str
dc.b '&label' ; insert string
IF LogProgress THEN
STRING C
dc.b '^n'
ENDIF
align 2
@poststr
STRING &oldstr ; change it back
ENDM
MACRO
ParanoidDebugStr &strPtr
; Bits in MacJmpFlag:
; Running (7) | Initialized (6) | Installed (5) | 5 unused
move.l d0, -(sp)
move.b MacJmpFlag, d0
cmp.b #-1, d0
beq.s @unsafe
and.b #(1 << 7) | (1 << 6) | (1 << 5), d0
cmp.b #(1 << 6) | (1 << 5), d0
bne.s @unsafe
move.l MacJmp, d0
tst.l d0
beq.s @unsafe
cmp.l #-1, d0
beq.s @unsafe
pea &strPtr
_DebugStr
@unsafe
move.l (sp)+, d0
ENDM
BootCode MAIN
IMPORT DoSomethingSpecialOnPBG3Series
IMPORT DoSomethingWithTextEdit ; 2c24
IMPORT FiddleWithBacklight
IMPORT _MessWithSomeTraps
IMPORT LoopSnoopInit
IMPORT PatchCompMgrForProgressBar
IMPORT NudgeProgressBar ; 3988
IMPORT _SetUpStartupScreen
IMPORT GetStartupPict
IMPORT BootAlert ; 539a
IMPORT VMName ; 54b6
IMPORT UserModeInitName ; 54c6
IMPORT DebuggerName ; 54e0
IMPORT DisassemblerName ; 54ea
IMPORT SystemName ; 54f8
IMPORT LinkedPatchName ; 54fa
IMPORT InitGreeterWindow
IMPORT PrepForResolutionChangeByThing
IMPORT sub_60005682
IMPORT HeavyAlert
IMPORT sub_60005e0a
IMPORT _LoadNativeDriversFromExtensionFolder
IMPORT PCCardDiskBasedCheckUp
IMPORT _FireWirePerformLateInits
IMPORT _USBDiskCheck
IMPORT _InstallITT
IMPORT _DoSCSILateLoad
IMPORT _MakeObjectSupportLibResidentHack
IMPORT _GoInstallSerialDMA
IMPORT _FinishInitDisplayManager
IMPORT sub_600063c6
IMPORT sub_6000643e
IMPORT sub_600065b4
IMPORT sub_6000663e
IMPORT sub_60006780
IMPORT sub_60006798
IMPORT sub_600067b0
IMPORT sub_600068bc
IMPORT PatchADBReInit
IMPORT _IncreaseEventQueueSize
IMPORT EnforceCDOnlyBoot
IMPORT AdjustRAMForCDBoot
IMPORT sub_6000725a
IMPORT sub_60007634
IMPORT sub_6000780a
IMPORT j_SetColorCodeGestalt
IMPORT j_EmulatorIsOnDisk
IMPORT j__LoadMultitaskingNanoKernel
IMPORT j_DisableEDiskIfNotEnoughRAM
IMPORT sub_60007bde
IMPORT sub_60007d2c
IMPORT j__LoadGoNative
IMPORT j_SetSplitOSGestalt
IMPORT j_SpecialCaseOriginaliMac
IMPORT _InitLotsOfNativeManagers
IMPORT _LoadTimeManagerLib
IMPORT FinalProcessMgrLaunch
IMPORT sub_60008a2e
IMPORT sub_60008a9a
IMPORT _RemoveAlisToUninitializedPAPA
IMPORT _InstallOFDiskNameMaker
IMPORT sub_60008d62
IMPORT sub_60008ff4
IMPORT sub_60009278
IMPORT _ReplaceBridgeVideoDriver
IMPORT sub_600095a6
IMPORT sub_600095d4
IMPORT GetSysVersion
IMPORT sub_60009790
IMPORT sub_6000b5b2
IMPORT sub_6000b80c
IMPORT SetUserVisibleMachineName
IMPORT sub_6000cc4e
IMPORT sub_60009CA6
IMPORT SUB_600073B4
IMPORT SUB_60007424
IMPORT SUB_60007598
IMPORT SUB_6000851C
IMPORT SUB_600085A4
IMPORT SUB_60009CA2
IMPORT SUB_6000A740
EXPORT FinishMovingBootWorld, LoadDSAT, LoadBelowBufPtr
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; Registers passed in from boot blocks:
; A3 = handle to this resource
; A4 = dirID of the startup application (for pre-7.0 systems; used by the remote booting INIT)
; A5 = pointer to globals (SP + 400)
; A6 = pointer to boot blocks (used by the remote booting INIT)
PositionStack
lea BootGlobals.initialSP(a5), sp
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
EnsureFigment
btst.b #mmFigEnable, MMFlags
bnz.s @figment_enabled
; Set "Modern Memory Manager" flag and restart
subq.l #4, sp
move.l sp, a0
move.l #(1 << 16) | pramFigmentOffset, d0
_ReadXPRam
ori.b #1 << pramFigmentFlag, (a0)
move.l #(1 << 16) | pramFigmentOffset, d0
_WriteXPram
addq.l #4, sp
_SDRestart
@figment_enabled
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
PrepareGibblyResourceMap
clr BootGlobals.sysRsrcFirstBlk(a5) ; init new globals
clr.l BootGlobals.sysRsrcPhysicalLen(a5)
clr BootGlobals.enablerRsrcFirstBlk(a5)
clr.l BootGlobals.enablerRsrcPhysicalLen(a5)
move #-1, BootGlobals.sysRsrcFirstBlk(a5) ; whaa?
sub #HFileParam.HFileParamSize, sp ; need to make two paramBlock calls
move.l sp, a0
clr.l HParamBlockRec.ioCompletion(a0) ; clear boring fields
clr.l HParamBlockRec.ioNamePtr(a0)
clr HFileParam.ioFDirIndex(a0)
clr HParamBlockRec.ioVRefNum(a0) ; boot volume please
move SysMap, HFileParam.ioFRefNum(a0) ; get info for SYSTEM resource fork
moveq #8, d0
_HFSDispatch ; OSErr PBGetFCBInfoSync(paramBlock)
cmp #0, d0
bne.s @couldNotGetSysRsrcDetails
move HFileParam.ioFlStBlk(a0), BootGlobals.sysRsrcFirstBlk(a5)
move.l HFileParam.ioFlPyLen(a0), BootGlobals.sysRsrcPhysicalLen(a5)
@couldNotGetSysRsrcDetails
move SysMap, d0 ; is this resource in a system enabler?
cmp CurMap, d0 ; if so, get this fork's details too...
beq @noEnablerFile
move CurMap, HFileParam.ioFRefNum(a0) ; get info for ENABLER resource fork
moveq #8, d0
_HFSDispatch ; OSErr PBGetFCBInfoSync(paramBlock)
cmp #0, d0
bne.s @couldNotGetEnablerRsrcDetails
move.l HFileParam.ioFlPyLen(a0), BootGlobals.enablerRsrcPhysicalLen(a5)
move HFileParam.ioFlStBlk(a0), d0
cmp BootGlobals.sysRsrcFirstBlk(a5), d0
beq.s @enablerIsActuallySystemFile
move HFileParam.ioFlStBlk(a0), BootGlobals.enablerRsrcFirstBlk(a5)
@couldNotGetEnablerRsrcDetails
@enablerIsActuallySystemFile
opt none
adda.w #HFileParam.HFileParamSize, sp ; deallocate paramBlock
opt all
move SysMap, d0 ; REORDER MAPS SO THAT ENABLER COMES FIRST
cmp CurMap, d0
beq @noEnablerFile
move.l SysMapHndl, a0 ; get enabler map (system map -> next)
move.l (a0), a0
move.l mNext(a0), a0
move.l a0, TopMapHndl ; always search it before system
move.l (a0), a0
move.l mNext(a0), d0 ; save enabler map -> next
move.l SysMapHndl, mNext(a0)
move.l SysMapHndl, a0 ; reinsert system map into linked list
move.l (a0), a0
move.l d0, mNext(a0)
jsr PatchRsrcZoneInit
@noEnablerFile
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
TopOfCubeECode
move.l a3,a0 ; get the size of this boot code
_GetHandleSize
move.l d0, BootGlobals.boot3Size(a5)
lea @continue,a0 ; copy from @continue to the end of the boot code
lea BootCode,a1
sub.l a0,a1 ; get BootCode-@continue
add.l a1,d0 ; fix up size
sub.l d0,sp ; make room on the stack
move.l sp,a1 ; copy onto the stack
_BlockMove ; move it up
jmp (a1) ; pass control there
@continue
move.l a3,-(sp) ; get rid of the resource
_ReleaseResource ; and continue with booting as normal
move.l ROMBase,a0 ; point into a safe place in ROM
add.l #$10000,a0 ; 64K into the ROM is always safe
move.l a0,0 ; jam this nice value into location 0
move.l sp,CurStackBase ; MacsBug works better if CurStackBase is set up
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
ExpandApplZoneUpToBootWorld
move.l sp, a0 ; current stack <10>
sub.l DefltStack, a0 ; leave room for the stack <10>
_SetApplLimit ; give the System Heap room to grow <10>
beq.s @noerr
move #dsMemFullErr, d0
_SysError
@noerr
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadMacsBugEarly
cmp #'CB', $278(a5)
bne.s noEarlyMxbg
bclr.s #2, SwitchedFlags
bsr LoadDebugger
ParanoidDebugStr dbs1
bra.s pdbs1
dbs1 dc.b 'MacsBug was loaded at start of boot 3 as requested'
align 2
pdbs1
noEarlyMxbg
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
ExpandExpandMem
move.l ExpandMem, a0 ; check size
move.l ExpandMemRec.emSize(a0), d0
cmp.l #$34A, d0
bcc.s @done
move.l a0, a1 ; allocate new
move.l #$34A, d0
_NewPtrSysClear
bne @oom
move.l ExpandMemRec.emSize(a1), d0 ; copy old
exg.l a0, a1
_BlockMoveData
move #$16B, ExpandMemRec.emVersion(a1) ; set size and version
move.l #$34A, ExpandMemRec.emSize(a1)
move.l a1, ExpandMem ; set global ptr
_DisposePtr ; free old
beq.s @done
@oom
_SysError ; crash'n'burn
@done
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
TellExpandMemAboutGibblyMap
move CurMap, d0
cmp SysMap, d0
beq.s @equal
move.l ExpandMem, a0
move d0, $2A2(a0)
@equal
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
EnsureEightByteBlockExists
move.l ExpandMem, a0
tst.l $2E2(a0)
bnz.s @done
moveq #8, d0
_NewPtrSysClear
bne.s @done
move.l ExpandMem, a1
move.l a0, $2E2(a1)
@done
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
DoWeHaveEnoughRAMToBoot
moveq #20, d0 ; new block
_NewPtr ,sys,clear
bne.s @notEnough
move.l ExpandMem, a1 ; ... ptr in ExpandMem
move.l a0, $304(a1)
move.l a0, a1 ; ... save in a1 for later
move.l SysZone, a0 ; d1 = size(lomem) + size(sysheap) - freeIn(sysheap)
move.l 0(a0), d1
_FreeMem ,sys
sub.l d0, d1
move.l d1, 0(a1) ; ... save in 0(our new block)
movem.l a1, -(sp) ; (save our block ptr)
subq #4, sp ; get mnrm 0, a resource of 12+ bytes (16 on 9.2.2)
move.l #'mnrm', -(sp)
move #0, -(sp)
_GetResource
move.l (sp)+, d1
movem.l (sp)+, a1 ; (restore our block ptr)
beq.s @useDefaults
move.l d1, a0
_GetHandleSize
beq.s @useDefaults
cmp.l #12, d0
bcs.s @useDefaults
move.l (a0), a0 ; ... get ptr in a0
move.l 4(a0), $42(a5) ; use mnrm to get min sizes
move.l 8(a0), $46(a5)
bra.s @gotMinRamRes
@useDefaults
move.l #$980000, $42(a5) ; ... or use these defaults: 9.5 MB, 4.125 MB
move.l #$420000, $46(a5)
@gotMinRamRes
move.l 0(a1), d0 ; first long of mnrm
add.l $42(a5), d0 ; + second long
add.l $46(a5), d0 ; + third long
move.l MemTop, d1 ; must not exceed MemTop
cmp.l d1, d0
bls.s @weHaveEnough
@notEnough
moveq #dsNotEnoughRAMToBoot, d0
_SysError
@weHaveEnough
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
RelocateBootWorldOnPCIMachines
move.l #gestaltOpenFirmwareInfo, d0
_Gestalt
tst d0
bne FinishMovingBootWorldForOtherPCIMachines
move.l MemTop, d0
lsr.l #1, d0
move.l BootGlobals.bufPtrLimit(a5), d1
add.l #$100000, d1
cmp.l d1, d0
bcs FinishMovingBootWorldForOtherPCIMachines
; NEW CODE: expunge our QD port ptr from the global PortList
pea BootGlobals.port(a5) ; the literal address to expunge
clr.l -(sp) ; return OSErr
move.l PortList, -(sp) ; handle
move.l #2, -(sp) ; search offset (skip count word)
pea.l 12(sp) ; ptr1 = &(literal above)
move.l #4, -(sp) ; len1
pea.l @nowhere ; ptr2
move.l #0, -(sp) ; len2
_Munger
move.l (sp)+, d0
bmi.s @mungerDidNotFindPtrToOurGlobalsInPortList
move.l PortList, a0 ; hooray -- decrement PortList count
move.l (a0), a0
subq #1, (a0)
@mungerDidNotFindPtrToOurGlobalsInPortList
@nowhere
addq #4, sp ; pop that naughty ptr above
; NEW CODE: calculate our new stack location -> a1
move.l MemTop, d0
lsr.l #1, d0
move.l d0, a1
lea BootCode, a0
bsr.l GetEndOfBootCode
move.l (sp)+, a2
move.l a0, d2
move.l a2, d3
sub.l a0, a2
move.l a2, d0
sub.l #BootGlobals.Size, d2
add.l d0, d3
cmp.l a1, d2
bge.s @noooo
cmp.l a1, d3
ble.s @noooo
move.l d2, a1
@noooo
move.l a1, sp ; move the stack <10>
lea BootGlobals.initialSP(a5), a0 ; old globals <10>
move.l #BootGlobals.size, d0 ; size of globals <10>
_BlockMoveData ; relocate the globals <10>
lea BootGlobals.initialA5-BootGlobals.initialSP(a1), a5 ; point A5 into the new globals <10>
lea BootGlobals.initialA6(a5), a6 ; fix A6 <10>
move.l a5, CurrentA5 ; new line
; NEW CODE: make divers adjustments to QD globals
lea.l -4(a5), a0
move.l a0, BootGlobals.quickDrawGlobalsPtr(a5)
move.l PortList, a0 ; expand the global PortList
_GetHandleSize
move.l d0, d3
addq.l #4, d0
_SetHandleSize
move.l (a0), a0
move (a0), d0 ; append our port
move.l a0, a1
add.l d3, a1
lea BootGlobals.port(a5), a3
move.l a3, (a1)
addq #1, d0
move d0, (a0)
pea BootGlobals.port(a5)
_SetPort
lea -$8A(a5), a1
move.l a1, -$86(a5)
lea -$94(a5), a0
move.l a0, (a1)
; New addition to old code: depending on ExpandMem, skip the chunk of code 30 lines down...
move.l ExpandMem, a0
move.l $320(a0), d0
bz.s @keepLess
lea FinishMovingBootWorldForPCIMachines, a0
bra.s @endIf
@keepLess
lea FinishMovingBootWorldForOtherPCIMachines, a0
@endIf
bsr.l GetEndOfBootCode
move.l (sp)+, a1 ; end of code to move
sub.l a0, a1 ; how much code to move <10>
move.l a1, d0 ; number of bytes to move <10>
sub.l d0, sp ; move the stack down to make room <10>
move.l sp, a1 ; destination is above the stack <10>
_BlockMove ; move the rest of this code <10>
move.l sp, CurStackBase ; a new beginning for the stack <10>
move.l sp, a0 ; current stack <10>
sub.l DefltStack, a0 ; leave room for the stack <10>
_SetApplLimit ; give the System Heap room to grow <10>
lea BootGlobals.lowestBufPtr(a5), a0 ; new minimum BufPtr default <10>
cmp.l BootGlobals.bufPtrLimit(a5), a0 ; is the limit already higher than this? <10>
bls.s @bootCodeMoved ; if so, donÍt need to worry <10>
move.l a0, BootGlobals.bufPtrLimit(a5) ; bump lower limit past new globals <10>
@bootCodeMoved ; <10>
jmp (sp) ; go to new code location <10>
FinishMovingBootWorldForPCIMachines
jsr sub_6000780A
move.l ExpandMem, a0
move.l $320(a0), a0
move.l (a0), a0
move.l a0, BootGlobals.bufPtrLimit(a5)
move.l MemTop, a0
move.l a0, BootGlobals.logicalMemTop(a5)
FinishMovingBootWorldForOtherPCIMachines
NotAPCIMachine
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
MountBootDrive
move.l FSVarsPtr, a0
tst.b $AF(a0) ; cannot find in interfaces
bne.s @whatever
lea BootGlobals.paramBlock(a5), a0
move BootDrive, HParamBlockRec.ioVRefNum(a0)
_MountVol
@whatever
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
PatchBalloonHelp
move #-21623, d0
bsr LoadLowerCaseptch
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
move.l ExpandMem, a0
move.l $2EA(a0), d0
bz @dontRun
move.l d0, a0
jsr (a0)
@dontRun
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
SetUpStartupScreen
bsr _SetUpStartupScreen
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
CheckTooOld
btst.b #systemEnabledBit, ExtensionsEnabledByte
bz.s @notTooOld
moveq #dsOldSystem, d0
_SysError
@notTooOld
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadMultitaskingNanoKernel
jsr j__LoadMultitaskingNanoKernel
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
PatchEmulator
; First patch touches "Emulator Update Extension" Gestalt selector ('emuv')
move.l #gestaltMacOSCompatibilityBoxAttr, d0
_Gestalt
beq.s @emuInBboxThereforeUpToDate
clr.b -(sp)
jsr j_EmulatorIsOnDisk
tst.b (sp)+
bne.s @emuOnDiskThereforeUpToDate
move #156, d0
bsr LoadLowerCaseptch
move #911, d0
bsr LoadLowerCaseptch
@emuOnDiskThereforeUpToDate
@emuInBboxThereforeUpToDate
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
InitLotsOfNativeManagers
move CurMap, -(sp)
clr -(sp)
jsr _InitLotsOfNativeManagers
move (sp)+, d1
bz.s @noErr
moveq #dsBadPatch, d0
_SysError
@noErr
move.l FSVarsPtr, a0
st.b $B6F(a0)
move (sp)+, CurMap
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
InstallNameRegistryTrap
bsr UpdateNameRegistryLib
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
DoSomethingWithSystemVersion
jsr j_SetColorCodeGestalt
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
ReplaceBridgeVideoDriver
move.l #gestaltMacOSCompatibilityBoxAttr, d0
_Gestalt
beq.s @no
lea MyKeyMap2, a1
lea KeyMap, a0
moveq #3, d0
@keycheck cmpm.l (a0)+, (a1)+
dbne d0, @keycheck
beq.s @no
bsr.l _ReplaceBridgeVideoDriver
@no
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
ShowStartupScreen
; First, open the resource fork of the startup screen file to look for a 'PICT' (0) resource.
bsr GetStartupPict
; Now, do the welcome screen.
moveq #dsGreeting,d0 ; put up the greeting
bsr BootAlert
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
MakeEDiskPagesWriteThrough
move.l ROMBase, a0
move.b ROMHeader.ROMRelease(a0), d0
cmp.b #$42, d0
beq @done
cmp.b #$40, d0
beq @done
cmp.b #$45, d0
beq @done
cmp.b #$33, d0
beq @done
move.l DrvQHdr+QHead, d0
bra @enterLoop
@tryNextDCE
move ROMHeader.MachineNumber(a0), d0
not d0 ; convert refnum to index
move.l ([UTableBase], d0.w*4), a1 ; get handle to DCE
move.l (a1), a1 ; get ptr to DCE
btst.b #dRAMBased, dCtlFlags+1(a1) ; get ptr to DRVR
move.l dCtlDriver(a1), a1
bz.s @alreadyPtr
move.l (a1), a1
@alreadyPtr
move.l DrvrName(a1), d0 ; d1/d2 = first 7 bytes of name pstring
move.l #$FFFFFF00, d1
and.l DrvrName+4(a1), d1
cmp.l #(6 << 24) | '.ED', d0
bne.s @notEDisk
cmp.l #'isk' << 8, d1
bne.s @notEDisk
moveq #0, d3
move.l ([$68FFEFD8.L],$10), d0 ; d0 = NKProcessorInfo.PageSize
bfffo d0{15:15}, d3
eor.b #$1F, d3
move.l -$28(a0), d2 ; these addresses... are below the ROM?
bnz @else
move.l -$20(a0), d2
sub.l -$24(a0), d2
move.l -$24(a0), d0
bra.s @endIf
@else
move.l -$20(a0), d2
sub.l -$28(a0), d2
move.l -$28(a0), d0
@endIf
lsr.l d3, d2
lsr.l d3, d0
move.l d0, a0
@writeThruLoop
_nkMakePageWriteThrough
addq #1, a0
subq.l #1, d2
bne.s @writeThruLoop
bra.s @done
@notEDisk
move.l (a0), d0
@enterLoop
move.l d0, a0
bne @tryNextDCE
@done
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
MessWithSomeTraps
jsr _MessWithSomeTraps
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
CheckForExtensionsDisabled
; If the Shift key is held down, disable loading of all Extensions, including VM and INITs,
; and background applications, and Finder Startup Folder.
; Do not allow disabling if a 'dbex' resource is not present. This allows users to ensure that
; their INITs will run (e.g. security packages). <37>
clr.b ResLoad ; no preloads please
subq #4,sp ; make room for function result
move.l #'dbex',-(sp) ; if present, allow user to Disable Extensions
move.w #-16385,-(sp) ; 'dbex' (-16385)
_GetResource
st ResLoad ; restore resLoad to proper state
move.l (sp)+,d0 ; did we get a handle?
bz.s @dontDisable ; no, user wonÕt get to disable
move.l d0,-(sp) ; get rid of the empty handle
_ReleaseResource
move.w KeyMap+6,d0
cmp.w #$8805,d0
beq.s @dontDisable
movem.l KeyMap,d0-d3 ; get four words worth of keys
bclr #7,d3 ; clear off the power key
bclr #1,d1 ; clear off the Caps Lock key
bclr #0,d1 ; clear off and test the Shift key
bz.s @dontDisable ; Shift key not held down, donÕt disable extensions
bclr.l #$2,d1
bnz.s @bitodd
or.l d1,d0 ; stray keys held down?
or.l d2,d0
or.l d3,d0
bnz.s @dontDisable ; yes, donÕt disable extensions
bclr #3,ExtensionsEnabledByte+1
@bitodd
bclr #extensionsEnabledBit,ExtensionsEnabledByte ; disable extensions
moveq #dsExtensionsDisabled,d0
bsr BootAlert ; put up an alert if we should
@dontDisable
;___________________________________________________________________________
ResetPRAM
bsr _ResetPram
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
RememberPhysicalMemTop
; Prior to loading VM, MemTop holds the top of physical memory.
; WeÕll use this later for our reality checking.
move.l MemTop,BootGlobals.physicalMemTop(a5)
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
clr -(sp)
move.l #'xboo', -(sp)
_CountResources
move (sp)+, d0
bz.s @noXBOO
bsr.l EnforceCDOnlyBoot
bsr.l AdjustRAMForCDBoot
@noXBOO
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadTimeManagerLib
bsr.l _LoadTimeManagerLib
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
move #-20483, d0
bsr LoadLowerCaseptch
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
JustBeforeLoadingVM
bsr PatchSetApplBase
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadVMAndDebugger
move.l #gestaltMacOSCompatibilityBoxAttr, d0
_Gestalt
bne @bareMetal
move.l a0, d0
btst.l #gestaltMacOSCompatibilityBoxPresent, d0
bz @bareMetal
; Running in the blue box, oh dear
move.l ExpandMem, a0
move #1, d0
move.b d0, $33B(a0)
bsr.l LoadLowerCaseptch419
bsr.l DoUserModeInit
moveq #-1, d0
dc.w $A0AC ; _FSMDispatch
subq.l #2, sp
move.l #gestaltVersion, d0
_Gestalt
cmp #5, a0
bcs @dontLoadDebuggerInBlueBox
move.l #gestaltMemoryMapAttr, -(sp)
clr.l -(sp)
_SetGestaltValue
addq.l #2, sp
pea -4(sp)
pea -4(sp)
move.l #$20006, d0
dc.w $FE22
move.l (sp)+, a0
move.l (sp)+, d1
tst.l d0
bnz.s @dontLoadDebuggerInBlueBox
move.l a0, -(sp)
move.l a0, -(a0)
move.l d1, -(a0)
move.l MemTop, -(a0)
move.l BufPtr, -(a0)
move.l a0, BufPtr
move.l (sp), a0
move.l a0, MemTop
subq.l #2, sp
move.l #gestaltLogicalRAMSize, -(sp)
move.l a0, -(sp)
_SetGestaltValue
move.l #gestaltMemoryMapAttr, -(sp)
moveq #0, d0
bset.l #gestaltMemoryMapSparse, d0
move.l d0, -(sp)
_SetGestaltValue
move.l #gestaltVMInfoType, -(sp)
move.l #gestaltVMInfoNoneType, -(sp)
_SetGestaltValue
addq.l #2, sp
bsr.l LoadDebugger
bsr.l sub_60008FF4
move.l (sp)+, a0
move.l BufPtr, a1
move.l -16(a0), BufPtr
move.l a1, -16(a0)
move.l -12(a0), MemTop
bra @done
@dontLoadDebuggerInBlueBox
bsr.l LoadDebugger
bra @done
@bareMetal
; Load VM and MacsBug, but do it in a different order if JoeÕs debugging signature is found.
cmp.w #vmDebugSignature,BootGlobals.bootBlocks+bbVMDebugSignature(a5)
beq.s @forDebugging ; if it is set right, do debugging
@normal
bsr LoadLowerCaseptch419
bsr LoadVM ; VM first
_nkMMUFinalInit
bsr DoUserModeInit
moveq #-1, d0
dc.w $A0AC ; _FSMDispatch
bsr LoadDebugger
bra.s @done
@forDebugging
bsr LoadDebugger ; debugger first; weÕll crash for sure (well, not for sure...)
ParanoidDebugStr @debugStr
bsr LoadLowerCaseptch419
bsr LoadVM
_nkMMUFinalInit
bsr DoUserModeInit
moveq #-1, d0
dc.w $A0AC ; _FSMDispatch
bra.s @done
@debugStr dc.b 'MacsBug was loaded before VM as requested'
align 2
@done
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
move #-21708, d0
bsr LoadLowerCaseptch
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
jsr j_DisableEDiskIfNotEnoughRAM
jsr sub_60005E0A
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
move.l ASCBase, d0 ; ptr to sound chip
not.l d0
bne.s @noDisableSound
move.l ROMBase, ASCBase
@noDisableSound
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
bsr AdjustBarrier ; go take other things into account <38>
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
RememberLogicalMemTop
; After loading VM, MemTop holds the top of logical memory.
move.l MemTop,BootGlobals.logicalMemTop(a5)
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
RelocateBootWorld
; If VM has added memory to the machine, relocate all the boot stuff to the new MemTop/2 <10>
; note: we NO LONGER ignore the QuickDraw globals in the BootGlobals record
move.l ExpandMem, a0
move.l $320(a0), d0
bz.s @yesShouldRelocate
bra DontUnholdAndRehold ; didn't add memory, don't bother moving
@yesShouldRelocate
; NEW CODE: expunge our QD port ptr from the global PortList
pea BootGlobals.port(a5) ; the literal address to expunge
clr.l -(sp) ; return OSErr
move.l PortList, -(sp) ; handle
move.l #2, -(sp) ; search offset (skip count word)
pea.l 12(sp) ; ptr1 = &(literal above)
move.l #4, -(sp) ; len1
pea.l @nowhere ; ptr2
move.l #0, -(sp) ; len2
_Munger
move.l (sp)+, d0
bmi.s @mungerDidNotFindPtrToOurGlobalsInPortList
move.l PortList, a0 ; hooray -- decrement PortList count
move.l (a0), a0
subq #1, (a0)
@mungerDidNotFindPtrToOurGlobalsInPortList
@nowhere
addq #4, sp ; pop that naughty ptr above
; NEW CODE: calculate our new stack location -> a1
move.l BootGlobals.logicalMemTop(a5), d0 ; starting MemTop <10>
move.l d0, d1
lsr.l #2, d1
sub.l d1, d0
move.l d0, a1
lea BootCode, a0
bsr.l GetEndOfBootCode
move.l (sp)+, a2
move.l a0, d2
move.l a2, d3
sub.l a0, a2
move.l a2, d0
sub.l #BootGlobals.Size, d2
add.l d0, d3
cmp.l a1, d2
bge.s @noooo
cmp.l a1, d3
ble.s @noooo
move.l d2, a1
@noooo
tst.l VMGlobals
bmi.s @skipMakingStackPhysical
; Make sure that the pages where the stack will be are in physical memory. We want about 12K <12>
; fo the stack, so use the logical page size to figure out how many pages to bring in. <12>
move.l #gestaltLogicalPageSize, d0 ; we want the page size <12>
_Gestalt ; VM implements Gestalt <12>
bne FinishMovingBootWorld ; huh? just bailÉ <12> <SM8> CSS
; NEW CODE: calculate our new stack size -> d1
bsr.l GetEndOfBootCode
move.l (sp)+, a6
move.l a6, d1
lea FinishMovingBootWorld, a6
sub.l a6, d1
add.l #$2000, d1
move.w a0, d0 ; page size <12>
divu d0, d1 ; number of pages we need <12>
move.l a1, a0 ; where the stack will be <12>
@makePhysicalStackLoop
tst.b (a0) ; bring a page in <12>
sub.w d0, a0 ; point to previous page <12>
dbra d1, @makePhysicalStackLoop ; do enough pages <12>
@skipMakingStackPhysical
move.l a1, sp ; move the stack <10>
lea BootGlobals.initialSP(a5), a0 ; old globals <10>
move.l #BootGlobals.size, d0 ; size of globals <10>
_BlockMoveData ; relocate the globals <10>
lea BootGlobals.initialA5-BootGlobals.initialSP(a1), a5 ; point A5 into the new globals <10>
lea BootGlobals.initialA6(a5), a6 ; fix A6 <10>
move.l a5, CurrentA5 ; new line
; NEW CODE: make divers adjustments to QD globals
lea.l -4(a5), a0
move.l a0, BootGlobals.quickDrawGlobalsPtr(a5)
move.l PortList, a0 ; expand the global PortList
_GetHandleSize
move.l d0, d3
addq.l #4, d0
_SetHandleSize
move.l (a0), a0
move (a0), d0 ; append our port
move.l a0, a1
add.l d3, a1
lea BootGlobals.port(a5), a3
move.l a3, (a1)
addq #1, d0
move d0, (a0)
pea BootGlobals.port(a5)
_SetPort
lea -$8A(a5), a1
move.l a1, -$86(a5)
lea -$94(a5), a0
move.l a0, (a1)
lea FinishMovingBootWorld, a0 ; start of code to move <10>
bsr.l GetEndOfBootCode
move.l (sp)+, a1 ; end of code to move
sub.l a0, a1 ; how much code to move <10>
move.l a1, d0 ; number of bytes to move <10>
sub.l d0, sp ; move the stack down to make room <10>
move.l sp, a1 ; destination is above the stack <10>
_BlockMove ; move the rest of this code <10>
move.l sp, CurStackBase ; a new beginning for the stack <10>
move.l sp, a0 ; current stack <10>
sub.l DefltStack, a0 ; leave room for the stack <10>
_SetApplLimit ; give the System Heap room to grow <10>
lea BootGlobals.lowestBufPtr(a5), a0 ; new minimum BufPtr default <10>
cmp.l BootGlobals.bufPtrLimit(a5), a0 ; is the limit already higher than this? <10>
bls.s @bootCodeMoved ; if so, donÍt need to worry <10>
move.l a0, BootGlobals.bufPtrLimit(a5) ; bump lower limit past new globals <10>
@bootCodeMoved ; <10>
jmp (sp) ; go to new code location <10>
FinishMovingBootWorld ; <10>
tst.l VMGlobals
bmi.s @noVM
bsr.l GetEndOfBootCode ; unhold boot 3 from specialfunc onwards
move.l (sp)+, a1
lea JustBeforeLoadingVM, a0
sub.l a0, a1
_UnholdMemory
move.l DefltStack, d0 ; hold 3 stacks worth from here backwards
add.l d0, d0
add.l (DefltStack), d0
lea FinishMovingBootWorld, a0
sub.l d0, a0
move.l d0, a1
_HoldMemory
@noVM
DontUnholdAndRehold
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadUserAlerts
; Now that we have done all the boot message stuff, go on to the user alerts.
moveq #2,d0 ; load DSAT 2
bsr LoadDSAT ; get the handle
move.l d0,-(sp) ; now let the Resource Mgr. forget
_DetachResource
move.l d6,-(sp) ; and get rid of DSAT 0
_ReleaseResource
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadImportantPointerFromTopOfMemory
move.l #gestaltMemoryMapAttr, d0
_Gestalt
bne.s @done
move.l a0, d0
btst.l #gestaltMemoryMapSparse, d0
bz.s @done
move.l #gestaltLogicalRAMSize, d0
_Gestalt
move.l -4(a0), MemTop
move.l -4(a0), BootGlobals.logicalMemTop(a5)
move.l -8(a0), BootGlobals.bufPtrLimit(a5)
move.l -16(a0), BufPtr
@done
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadTemporaryNewPtrStartup
; INITs depend on NewPtrStartup, so install a temporary version for the time before loading.
move.w #$9C,d0
LEA TemporaryNewPtrStartup,a0
_SetTrapAddress newOS ; NewPtrStartup doesnÕt exist, use mine as a bootstrap
; Create a block containing the NewPtrStartup that will be used after boot. <30>
; It will be installed at the end of the boot below, just before starting the Process Mgr.
lea JustReturnAnError,a1 ; get the start in a1
lea JustReturnAnErrorEnd,a2
sub.l a1,a2 ; calculate the size in a2
move.l a2,d0 ; put the size in d0
_NewPtr sys ; make a block for this code
bne BadSystem
exg a0,a1 ; copy from the old block into the new
move.l a2,d0 ; put the size in d0
_BlockMove
move.l a1,BootGlobals.postBootNewPtrStartup(a5)
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
MakeBootDriveWDRefNum
; Up until now, BootDrive contained a drive number; make it a WDRefNum (the current volume).
lea BootGlobals.paramBlock(a5),a0
clr.l ioFileName(A0) ; we donÕt want the name
_GetVol ; make BootDrive a VRefNum/WDRefNum
move.w ioVRefNum(A0),BootDrive
ActivateTrackCache
; Turn on the track caching of the Sony driver.
MOVE.W #dskRfn,ioRefNum(a0) ; refNum of the Sony driver
MOVE.W #9,csCode(a0) ; disk cache control code
MOVE.W #$FF01,csParam(a0) ; install and enable
_Control ; allocate and install track cache
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
IF NOT forROM THEN ; <SM2> rb <SM14> rb
LoadFileSystemCache
; This makes assumptions about the RAM cache that are not true of the 6.X cache:
; ¥ The 'ptch' (41) resource must have the system heap and locked bits set.
; ¥ The cache locals are allocated by the cache code.
; ¥ The cache code is aware that it is not loaded above BufPtr and allocates its own buffer space.
; ¥ The cache code is aware that the limit to bufPtr is passed in d2.
; This reserves 32K for other things which also need BufPtr space to get the machine booted
; (e.g. AppleShare).
bsr AdjustBarrier ; <38>
btst #extensionsEnabledBit,ExtensionsEnabledByte ; <38>
bne.s @normal ; extensions disabled means feed him a small limit <38>
move.l BufPtr,d2 ; survival-mode, get my machine booted! <38>
sub.l #$10000,d2 ; give the cache 64K <38>
bra.s @continue ; <38>
@normal
move.l BootGlobals.bufPtrLimit(a5),d2 ; <33>
add.l #elbowRoomCacheCantHave,d2 ; <38>
@continue
moveq #41,d0
bsr LoadLowerCaseptch
ENDIF ; <SM2> rb <SM14> rb
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
IF forROM THEN ; <28>
with ExpandMemRec ; <28>
; Check to see if AppleTalk is active. If it is not, set emAppleTalkInactiveOnBoot
; to true. Various other parts of the System will look at this global later on to
; determine whether or not network code should be loaded.
move.b SPConfig,d0 ; Get serial port configuration <28>
and.b #$0f,d0 ; Mask off Port B bits <28>
beq.s @appleTalkIsActive ; Yes. DonÕt set emAppleTalkInactiveOnBoot <62>
cmp.b #useATalk,d0 ; Configured for AppleTalk? <28>
beq.s @appleTalkIsActive ; Yes. DonÕt set emAppleTalkInactiveOnBoot <28>
with ExpandMemRec ; Get the system's globals <28>
move.l ExpandMem,a0 ; <28>
move.w #-1,emAppleTalkInactiveOnBoot(a0) ; just do it <28>
EndWith ; <28>
@appleTalkIsActive ; <28>
; loop through all the open resource files, and clear the alternate attributes byte
; then, set it for the system file
SetupResourceFileAttributes ; <28>
move.l TopMapHndl,a0 ;start with the first map <28>
@next ; <28>
move.l a0,d0 ;are we done? <28>
bz.s @done ; <28>
move.l (a0),a0 ;get the map pointer <28>
bclr #decompressionPasswordBit,mInMemoryAttr(a0) ; clear the flags for this map <28>
move.l mNext(a0),a0 ;go on to the next map <28>
bra.s @next ; <28>
@done ; <28>
move.l SysMapHndl,a0 ;get the system map <28>
move.l (a0),a0 ; <28>
bset #decompressionPasswordBit,mInMemoryAttr(a0) ; allow dcmps here <28>
bset #dontCountOrIndexDuplicatesBit,mInMemoryAttr(a0) ; DonÕt count duplicate resources in the System file <28>
bset #twoDeepBit,mInMemoryAttr(a0) ; One deep calls on the System file will search two (or more) maps. <28>
ELSE ; not ROM, System version <28>
LoadPTCHZero
; PTCH(0) does not get executed in SuperMario based ROMs, only in the System. <28>
MOVEQ #0,D0 ; load patches for all ROMs
BSR LoadPTCH
ENDIF ; IF forROM <28>
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
SetSysVersion
move CurMap, -(sp)
move.l TopMapHndl, a0
move.l (a0), a0
move mRefNum(a0), CurMap
movem.l d2/a1-a3, -(sp)
subq #4, sp
bsr.l GetSysVersion
move.l (sp)+, d1
bnz.s @success
moveq #dsNoPatch, d0
_SysError
@success
movem.l (sp)+, d2/a1-a3
swap d1
move d1, SysVersion
move (sp), CurMap
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
bsr AdjustBarrier
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
btst #extensionsEnabledBit, ExtensionsEnabledByte
bnz.s @extensionsOn
@extensionsOff
move.l BufPtr, d2
sub.l #$2C240, d2
move.l BootGlobals.bufPtrLimit(a5), d0
add.l #400*1024, d0
cmp.l d0, d2
bcs.s @skipIt
bra.s @doIt
@extensionsOn
move.l BootGlobals.bufPtrLimit(a5), d2
add.l #400*1024, d2
@doIt
subq #2, sp
move.l d2, -(sp)
move #$217, d0
_HighLevelFSDispatch
move (sp)+, d0
cmp #paramErr, d0
bne.s @done
moveq #41, d0
bsr LoadLowerCaseptch
@done
@skipIt
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; Set the ExpandMem global emMinSysHeapFreeSpace <45>
move.l ExpandMem,a0
move.l #minSysHeapFreeSpace,d0
move.l d0,ExpandMemRec.emMinSysHeapFreeSpace(a0)
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
IF NOT forROM THEN ; donÕt load ROM specfic patches or linked patches <28>
; for SuperMario <28>
LoadPTCHROMSpecific
; *** obsolete, get rid of this eventually
MOVEA.L ROMBase,a0 ; ID = ROM version number
MOVE.W 8(A0),D0 ; load ROM-specific patch
BSR LoadPTCH
LoadLinkedPatches
lea LinkedPatchName,a0
move.l a0,CurNamePtr ; Put ptr to the VM string <37>
subq #4,sp
move.l #kPatchTableResourceType,-(sp)
clr.w -(sp)
_GetResource
move.l (sp),d0 ; <15> Keep 'ptbl' on stack to save a call to _RecoverHandle
bz.s @noPatchTable
move.l d0,a0
_HLock ; Lock it down
move.l (a0),a3 ; Pass the pointer to the patch loader in A3
subq #4,sp
move.l #kPatchLoaderResourceType,-(sp) ; 'lodr'
move.w #kPatchLoaderResourceID,-(sp)
_GetResource ; Use the SystemÕs patch loader if the gibbly doesnÕt have one.
move.l (sp),d0 ; <15> Keep handle to 'lodr' on the stack for a release later
bz.s @noPatchLoader
move.l d0,a0
move.l (a0),d0
_StripAddress
move.l d0,a0
if theFuture then
move.l a0,d5 ; <33> Remember the linked patch loader address so it can be used to load linked patch extensions
endif
jsr (a0) ; Call the patch loader
if theFuture then
move.l #kLinkedPatchFileID,a2 ; <30> Get 'lpch' files
move.l #kExtensionFolderType,d7 ; <30> from the Extensions folder
bsr LoadINITFilesInFolder ; <30>
endif
_ReleaseResource ; <15> Release the linked patch loader
_ReleaseResource ; <15> Release the 'ptbl' resource
bra.s @done ; Load extensions, Process Manager, etc.
@noPatchTable
@noPatchLoader
moveq #dsBadPatch,d0 ; CouldnÕt find the patch loader code
_SysError
@done
ENDIF ; IF NOT forROM <28>
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
MOVE SysMap, D0
MOVE.L ([$2058],$68), A0 ; GETPSNFROMPARALLELFCB
JSR (A0) ; a0 -> parallel array element for file
clr.l (a0)+ ; muck with that element?
move.l #1, (a0)
clr -(sp)
_UseResFile
move.l SysMapHndl, -(sp)
_MakeOverrideMap
move (sp), CurMap
bsr MakeSystemHeapGrowable
move (sp), CurMap
bsr.l sub_60007BDE
bsr InstallPatches
move (sp)+, CurMap
bsr.l sub_60008A2E
move BootGlobals.sysRsrcFirstBlk(a5), -(sp)
move.l BootGlobals.sysRsrcPhysicalLen(a5), -(sp)
pea SysResName
bsr.l sub_60008A9A
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; Call "DiskBasedCheckUp" in "PCCard" library
move.l ExpandMem, a0
tst.b $33B(a0)
bnz @dontJump
jsr PCCardDiskBasedCheckUp
@dontJump
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
move.l #gestaltPowerMgrVers, d0
_Gestalt
tst d0
bnz.s @noPowerMgr
move.l a0, d0
cmp.l #$200, d0
blt.s @noPowerMgr
clr d0
swap d0
move #99, d0
_PowerDispatch
@noPowerMgr
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
bsr _CheckForMinSysEarly
jsr PatchADBReInit
bsr.l SetUserVisibleMachineName
jsr j_SpecialCaseOriginaliMac
jsr j_SetSplitOSGestalt
bsr FiddleWithBacklight
bsr InitGreeterWindow
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
MakeGibblyResident Progress
move CurMap, d0
cmp #3, d0
beq.s @nope
cmp SysMap, d0
beq.s @nope
; De-fang
lea NewRsrcZoneInit_InstalledAt, a0
move.l (a0), a0
clr.b NewRsrcZoneInit_Flag-NewRsrcZoneInit(a0)
move.l TopMapHndl, -(sp)
move.l SysMapHndl, -(sp)
_InsertOverrideMap
@nope
move.l IAZNotify, d0 ; notify about a world-swap
ble.s @noNotify
move.l d0, a0
jsr (a0)
@noNotify
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
move.l #gestaltMacOSCompatibilityBoxAttr, d0
_Gestalt
bne.s @no_bbox
move.l a0, d0
btst.l #gestaltMacOSCompatibilityBoxPresent, d0
bz.s @no_bbox
jsr sub_60007D2C
@no_bbox
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
RegisterROMComponents Progress
moveq #42,d0 ; Component Search selector for RegisterROMComponents <70><72>
_ComponentDispatch ; register the components ('thng' rsrc's) in ROM
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; Load and Execute GoNative Loader
LoadGoNative Progress
lea MyKeyMap, A1
lea KeyMap, A0
moveq #3, D0
@loop cmpm.l (A0)+, (A1)+
dbne D0, @loop
beq.s @noLoad
clr -(SP)
jsr j__LoadGoNative
add #2, SP
@noLoad
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; Load and Execute Emulator Accelerations
LoadEmulatorAccel Progress
moveq #1,d6 ; ID=1
move.l #'GARY',d5 ; type='GARY'
moveq #0,d3
bsr ExecuteFromSystem
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
bsr RealityCheck ; check for enough memory to continue
move.l #-1,CurNamePtr ; no currently-executing file
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
TurnOnDynamicRecomp Progress
move #7,a0
moveq #18,d0
dc.w $FE05
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
TestForNeedToReset Progress
; Earlier we chose whether we need to reboot. On the Plus, we donÕt have _SDRestart until
; linked patches are loaded. Rather than move that code into this file, we simply waited.
tst.w BootGlobals.resetFlag(a5)
beq.s @skipReset
_SDRestart
@skipReset
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
IncreaseEventQueueSize Progress
jsr _IncreaseEventQueueSize
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadStartupDispatch Progress
move.w #-20641,d0 ; implements AA7D (StartupDispatch) trap
bsr LoadLowerCaseptch
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
SetupProcessMgrLaunch Progress
; So that old code that patches Launch will still work, we point the Launch trap to the code used
; to start the Process Mgr. Later, we will call Launch, so all patches to Launch will be executed.
lea StartProcessMgr,a0 ; point to the code to start the Process Mgr.
move.w #$A9F2,d0 ; get the Launch trap number
_SetTrapAddress
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
CreateApplicationHeap Progress
bsr CreateApplicationHeap
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
ClearSysHeapTooBigBit Progress
bclr.b #4, SwitchedFlags
move.l #$64000, BootGlobals.reservedForAfterBoot(a5)
move.l #$C8000, BootGlobals.reservedForAfterBoot + 4(a5)
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
move.l #gestaltSCSI, d0
_Gestalt
tst d0
bnz.s @noAsyncSCSIInROM
move.l a0, d0
btst.l #gestaltAsyncSCSIInROM, d0
bz.s @noAsyncSCSIInROM
bset.b #7, SCSIPoll
bsr sub_6000643E
ble.s @noEnableDynWait
_EnableDynWait
@noEnableDynWait
@noAsyncSCSIInROM
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
InstallITT Progress
moveq #-1, d4
move.l #$20000, d5
bsr MakeSysFree
tst.l VMGlobals
bmi.s @noDoThing
moveq #-2, d0
_MemoryDispatch
@noDoThing
bsr _InstallITT
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
PreInitMemoryCheck Progress
move.l ExpandMem, a1
move.l $304(a1), a1 ; a1 = ptr to 20-byte block from DoWeHaveEnoughRAMToBoot
move.l SysZone, a0 ; d1 = ptr to end of sys heap (bkLimit)
move.l (a0), d1
_FreeMem ,sys ; d0 = free mem in sys heap
sub.l d0, d1 ; 4(a1) = sysBkLimit - sysFree - 0(a1)
sub.l (a1), d1
move.l d1, 4(a1)
move.l RealMemTop, d1 ; 8(a1) = ?physicalMem - BufPtr
sub.l BufPtr, d1
move.l d1, 8(a1)
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadScriptSystems Progress
; Initialize the script systems that are already installed.
subq #2,sp ; make room for OSErr result <13>
_InitScripts ; <13>
addq #2,sp ; ignore result for now <13>
btst #extensionsEnabledBit,ExtensionsEnabledByte
bz.s @extensionsDisabled
; If extensions enabled:
bsr.l sub_60009278
move.l #kExtensionFolderType,-(sp)
move.l #'scri',-(sp) ; look for these types of INITs
bsr LoadINITFilesInFolder2
bra.b @endIf
@extensionsDisabled
; Else:
; Load International Configuration 0
subq #4, sp
move.l #'itlc', -(sp)
move #0, -(sp)
_GetResource
move.l (sp)+, d0
bz.s @intFail
move.l d0, a0
move.l (a0), a0 ; a0 = ptr
move ItlcRecord.itlcSystem(a0), d0
bz.s @intFail ; ID of default system script (itlb)
; Load above-specified default system script bundle
subq #4, sp
move.l #'itlb', -(sp)
move d0,-(sp)
_GetResource
move.l (sp)+,d0
bz.s @intFail
move.l d0,a0
move.l (a0),a0 ; a0 = ptr
move.l ItlbRecord.itlbFlags(a0),d0 ; does not accord with structure (word field)
btst.l #1,d0
beq.s @dontCheckIntStructure
btst.l #7,d0
beq.s @intFail
@dontCheckIntStructure
move #-20699,d0
move.l #kExtensionFolderType,d7
bsr LoadINITFileByName
@intFail
@endIf
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
ReInitScripts Progress
subq #2, sp
_ReInitScripts
addq #2, sp
; Allocate control paramBlock on stack -> a0
moveq #CntrlParam.size/2-1, d0
@loop clr -(sp)
dbra d0, @loop
move.l sp, a0
lea @swmdrvr_string, a2
move.l a2, CntrlParam.ioNamePtr(a0)
move.b #0, CntrlParam.csCode+1(a0)
_Open
bne.s @done
move.l a0, a2
subq #4, sp
move #smEnabled, -(sp)
_GetEnvirons
move.l (sp)+, d0
cmp #1, d0
ble @done ; continue if 2 or more scripts are enabled
move.l a2, a0
move #126, CntrlParam.csCode(a0) ; unknown control code
_Control immed
@done
lea CntrlParam.size(sp), sp
bra.s @post_string
@swmdrvr_string
dc.b '.swmdrvr'
align 2
@post_string
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; Disable extensions if we have insufficient logical ram
CheckForMinimumLogicalRAM Progress
btst.b #extensionsEnabledBit, ExtensionsEnabledByte
bz.s @extensionsAlreadyDisabled
subq #4, sp
move.l #'mlrm', -(sp)
move #1, -(sp)
_GetIndResource
move.l #24 * $100000, d0 ; calculate requirement:
move.l (sp)+, d1 ; contents of 'mnrm' resource else 24 MB
move.l d1, a0
bz.s @useDefaultMinRequirement
move.l (a0), a1
move.l (a1), d0
@useDefaultMinRequirement
move.l d0, -(sp)
tst.l a0 ; release 'mnrm'
bz.s @noNeedToReleaseResource
move.l a0, -(sp)
_ReleaseResource
@noNeedToReleaseResource
move.l #gestaltLogicalRAMSize, d0
_Gestalt
tst d0
bnz.s @gestaltIsClueless ; if Gestalt doesn't know 'lram', assume the worst
move.l (sp)+, a1
cmp.l a0, a1
bls.s @plentyOfLogicalRAM
@gestaltIsClueless
move #-16506, d5 ; disable extensions
bsr HeavyAlert
bclr.b #extensionsEnabledBit, ExtensionsEnabledByte
@plentyOfLogicalRAM
@extensionsAlreadyDisabled
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
CheckForBadRestart Progress
btst.b #extensionsEnabledBit, ExtensionsEnabledByte
bz.s @extensionsDisabled
move.l ExpandMem, a0
tst.b $33B(a0)
bz.s @case2
;case1
lea DAStrings, a0
clr.l 0(a0)
clr.l 4(a0)
clr.l 8(a0)
clr.l 12(a0)
bra.s @done
@case2
clr -(sp)
bsr.l sub_6000B80C
tst (sp)+
bz.s @done
move #0, -(sp) ; temp'ly disable resource loading
_SetResLoad
subq #4, sp ; push handle to 'dfa ' 4
move.l #'dfa ', -(sp)
move #-20886, -(sp)
_GetResource
move #1, -(sp) ; reenable resource loading
_SetResLoad
move.l (sp)+, d0 ; handle into d0, fail if not found
bz.s @done
subq #4, sp ; d5 = resource size
move.l d0, -(sp)
_SizeRsrc
move.l (sp)+, d5
tst ResErr ; check errors
bnz.s @done
add.l #96 * 1024, d5 ; free resource size + 96 k slop
moveq #-1, d4
bsr MakeSysFree
bsr.l sub_6000B5B2
clr -(sp)
bsr sub_60005682
@done
@extensionsDisabled
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadINITResourcesInSystemFile Progress
; Load all of the INIT resources from the System file.
;
; Note that one of these INIT resources may be the INIT 20 resource used for remote booting.
; This INIT closes the System file and opens a new system file. In addition, it returns the
; dirID of the folder containing the startup application in A4. To top that, it also clobbers
; the boot blocks at A6 with the boot blocks
moveq #-1,d4 ; refNum -1 means we load from the System file
bsr LoadINITResources ; call the common routine below
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
GoInstallSerialDMA Progress
moveq #-1,d4
move.l #$8000,d5
bsr MakeSysFree
bsr _GoInstallSerialDMA
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
InstallOFDiskNameMaker Progress
jsr _InstallOFDiskNameMaker
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
InstallPCSerial Progress
moveq #-1,d4
move.l #$4000,d5
bsr MakeSysFree
move.l #'expt',d5
move #-20216,d6
clr d3
bsr ExecuteFromSystem
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadExtensionsManagerINIT Progress
bsr LoadExtensionsManagerINIT
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
MakeSystemHeapGrowable Progress
bsr MakeSystemHeapGrowable
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
lea MyKeyMap2, a1
lea KeyMap, a0
moveq #4-1, d0
@loop cmpm.l (a0)+, (a1)+
dbne d0, @loop
beq begoneNativeExpertsAndDrivers
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
move.l ExpandMem, a0
tst.b $33B(a0)
bnz begoneNativeDrivers
LoadNativeDriversFromExtensionFolder Progress
moveq #-1,d4
move.l #$40000,d5
bsr MakeSysFree
subq #2,sp
clr -(sp)
jsr _LoadNativeDriversFromExtensionFolder
addq #2,sp
begoneNativeDrivers
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadNativeExpertsFromExtensionFolder Progress
move #29,d0
dc.w $aaf3 ; _ExpansionBusDispatch
begoneNativeExpertsAndDrivers
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
RestorePropertiesFromPreferenceFile Progress
move #44,d0
dc.w $aaf3 ; _ExpansionBusDispatch
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
USBDiskCheck Progress
jsr _USBDiskCheck
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
move.l ExpandMem,a0
tst.b $33b(a0)
bnz no_fw
FireWirePerformLateInits Progress
jsr _FireWirePerformLateInits
no_fw
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
FinishInitDisplayManager Progress
bsr _FinishInitDisplayManager
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
move.l ExpandMem,a0
tst.b $33b(a0)
bnz no_ramcheck
CheckForBadRam Progress
bsr _CheckForBadRam
no_ramcheck
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
moveq #-1,d4
move.l #$40000,d5
bsr MakeSysFree
btst.b #4, SwitchedFlags
bnz begoneNetworking
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadNetworking Progress
bsr.l sub_6000CC4E
move.l #'ptch', d5
move #-20917, d6
bsr ExecuteFromSystem
clr -(sp)
bsr sub_60005682
move.l #gestaltMacOSCompatibilityBoxAttr, d0
_Gestalt
bne @no_bbox
move.l a0, d0
btst.l #gestaltMacOSCompatibilityBoxPresent, d0
bz @no_bbox
btst.l #gestaltMacOSCompatibilityBoxHasSerial, d0
bnz @bbox_has_serial
move.l ATalkHk2, a0
move.l a0, d0
ble.s @atalk_hook_absent ; StartInit sets to -1
move #17, d0
move.b #2, d1
jsr 2(a0)
bsr.l sub_60007634
@atalk_hook_absent
@bbox_has_serial
@no_bbox
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
PCINetworkLoader Progress
move.l #'pnll', d5
move #-20168, d6
clr d3 ; clear DontCloseOnError
bsr ExecuteFromSystem
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
IRTalkLoader Progress
move.l #'wart', d5
move #2, d6
clr d3 ; clear DontCloseOnError
bsr ExecuteFromSystem
begoneNetworking
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadSystemComponents Progress
bsr _LoadSystemComponents
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
move.l #gestaltSCSI,d0
_Gestalt
tst d0
bnz.s no_scsi
DoSCSILateLoad Progress
bsr _DoSCSILateLoad
no_scsi
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
CheckForMinSysLate Progress
bsr _CheckForMinSysLate
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
CreateApplicationHeap Progress
bsr CreateApplicationHeap
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LOOP_SNOOP Progress
bsr DoSomethingSpecialOnPBG3Series
bsr LoopSnoopInit
clr.b $2C(a5)
subq.l #2, sp
moveq.l #-1, d0
dc.w $AA7D ; StartupDispatch
move (sp)+, d0
bz.s @success
move #dsMemFullErr, d0
_SysError
@success
subq.l #2, sp
clr.l -(sp)
moveq.l #-6, d0
dc.w $AA7D ; StartupDispatch
move (sp)+, d0
btst #extensionsEnabledBit, ExtensionsEnabledByte
bnz.s @extensionsOn
@extensionsOff
moveq #-1, d4
move.l #$40000, d5
bsr MakeSysFree
btst #4, SwitchedFlags
bnz SkipAllExtensionLoads
move.l #kExtensionFolderType, -(sp)
move.l #'INIT', -(sp)
bsr LoadINITFilesInFolder2
bra @endIf
@extensionsOn
move.l ExpandMem, a0
tst.b $33B(a0)
bnz.s @extensionsOnNoFtsk
move #-1, -(sp)
_SetResLoad
clr.l -(sp)
move.l #'ftsk', -(sp)
move #1, -(sp)
_Get1Resource
move.l (sp)+, a0
tst.l a0
bz.s @extensionsOnNoFtsk
tst.l (a0)
bz.s @extensionsOnNoFtsk
move.l (a0), a1
clr 12(a1)
moveq #14, d0
_SetHandleSize
@extensionsOnNoFtsk
move.l #kExtensionFolderType, -(sp)
move.l #'thng', -(sp)
bsr LoadINITFilesInFolder2
move.l #'etbl', -(sp)
clr.l -(sp)
bsr LoadINITFilesInFolder2
@endIf
subq.l #2, sp
clr.l -(sp)
moveq #-5, d0
dc.w $AA7D ; StartupDispatch
move (sp)+, d0
move.l ExpandMem, a0
tst.b $33B(a0)
bz @emValueZero
pea $4A(a5)
bsr.l sub_600095A6
@emValueZero
clr.l -(sp) ; release ftsk resource
move.l #'ftsk', -(sp)
move #1, -(sp)
_Get1Resource
move.l (sp)+, a0
tst.l a0
bz.s @noNeedToReleaseFtsk
move.l a0, -(sp)
_ReleaseResource
@noNeedToReleaseFtsk
btst.b #extensionsEnabledBit, ExtensionsEnabledByte
bz.s SkipAllExtensionLoads
moveq #-1,d4
move.l #$100000,d5
bsr MakeSysFree
btst.b #4,SwitchedFlags
bnz.s SkipAllExtensionLoads
; Register Components from 'thng' files.
ComponentSearch Progress
moveq #34,d0 ; ComponentSearch selector <6>
_ComponentDispatch ; look for 'thng's <6>
bsr.l sub_60009790
SkipAllExtensionLoads
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
RemoveAlisToUninitializedPAPA Progress
bsr.l _RemoveAlisToUninitializedPAPA
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
move.l #gestaltPowerMgrVers, d0
_Gestalt
tst d0
bnz.s begonePMSecondaryInit
move.l a0, d0
cmp.l #$200, d0
blt.s begonePMSecondaryInit
PMSecondaryInit Progress
btst.b #extensionsEnabledBit, ExtensionsEnabledByte
bnz.s @extensionsEnabled
move #1, d0
swap d0
move #19, d0
dc.w $A09E ; _PowerMgrDispatch
@extensionsEnabled
move #1, d0
swap d0
move #99, d0
_PowerDispatch
begonePMSecondaryInit
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
MakeObjectSupportLibResidentHack Progress
bsr _MakeObjectSupportLibResidentHack
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
PatchComponentManager Progress
moveq #1, d3
move.l #'pthg', d5
move #-16500, d6
bsr.l ExecuteFromSystem
bsr PatchCompMgrForProgressBar
bsr PrepForResolutionChangeByThing
btst.b #4, SwitchedFlags
bz.s @nah
bclr.b #extensionsEnabledBit, ExtensionsEnabledByte
move #-16504, d5
bsr HeavyAlert
@nah
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; Now that networks are usable, give script systems a chance to install fonts over the network. <14>
subq #2,sp ; make room for OSErr result
_AddScriptFonts
addq #2,sp ; ignore result for now
; *** what kind of reality checking/error checking should go here?
;------------------------------------------------------------------------------------------------
; Go tell text services manager what the system script is and what its default language is
bsr TellTSMScriptAndLanguage
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; Switch from the boot-time NewPtrStartup to one that returns an error. <30>
move.l BootGlobals.postBootNewPtrStartup(a5),a0
move.w #$9C,d0
_SetTrapAddress newOS ; use the NewPtrStartup that just returns an error
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; We still have two heaps. We are going to get minSysHeapFreeAfterBoot bytes, even if it
; means growing the system heap again. This time, though, weÕll stop reserving anything,
; and take as much as we need.
_RsrcZoneInit ; <23> Call _RsrcZoneInit to blow away system resources loaded in the application heap
; Guarantee some free space after last INIT (or for folks lacking any INIT files at all).
clr.l BootGlobals.reservedForAfterBoot+4(a5)
clr.l BootGlobals.reservedForAfterBoot(a5) ; stop reserving that big chunk <34>
moveq #-1,d4
move.l #minSysHeapFreeAfterBoot,d5 ; what we want to have free in the system heap <34>
bsr MakeSysFree ; resize
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; resembles PreInitMemoryCheck...
move.l ExpandMem, a1
move.l $304(a1), a1 ; a1 = ptr to 20-byte block from DoWeHaveEnoughRAMToBoot
move.l SysZone, a0 ; d1 = ptr to end of sys heap (bkLimit)
move.l (a0), d1
_FreeMem ,sys ; d0 = free mem in sys heap
sub.l d0, d1 ; 12(a1) = sysBkLimit - sysFree - 0(a1) - 4(a1)
sub.l (a1), d1
sub.l 4(a1), d1
move.l d1, 12(a1) ; diverges here
move.l RealMemTop, d1 ; 16(a1) = ?physicalMem - BufPtr - 8(a1)
sub.l BufPtr, d1
sub.l 8(a1), d1
move.l d1, 16(a1)
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
move.l ExpandMem, a0
move #'ok', $268(a0)
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; Now, we call the launch trap. Before INITs, we patched Launch to point here, to the code that
; is used to start the Process Mgr. Any patches to Launch will be executed, followed by the Process
; Mgr. itself.
clr.w -(sp) ; for the wierdos who look
clr.l -(sp) ; we pass the parameters like the old launch
string C
pea #'MultiFinder' ; (rest in peace)
string Pascal
move.l sp,a0 ; pass those parameters
_Launch
StartProcessMgr
; The Process Mgr. is structured like an application (a bunch of code segments), but
; the code segments are numbered differently so they can be in the System file.
; First, set up the application heap, and then load the jump table for the Process Mgr.
CLR.L StkLowPt ; keep VBL task out
MOVE.L BufPtr,sp ; start stack out here
CLR.L ScrapHandle ; no need for this
_InitApplZone ; cut back the heap
SUB #40,SP
MOVE.L SP,A5
MOVE.L A5,CurrentA5 ; remember A5 for the Process Mgr.
MOVE.L SP,CurStackBase ; remember stack for this one, too
MOVE.L SP,StkLowPt ; for heap-stack crashes
MOVE.L #gestaltMacOSCompatibilityBoxAttr,d0
_Gestalt
BNE.S @no_bbox
MOVE.L A0,D0
BTST.L #gestaltMacOSCompatibilityBoxPresent,D0
BZ.S @no_bbox ; fall thru if in blue box
MOVE.L #gestaltMemoryMapAttr,D0
_Gestalt
BNE.S @no_mmap
MOVE.L A0,D0
BTST.L #gestaltMemoryMapSparse,D0
BZ.S @no_mmap ; fall thru if sparse memory map
MOVE.L SP,BufPtr ; CASE: blue box with sparse memory map
MOVE.L DefltStack,D0
SUB.L D0,BufPtr
MOVE.L BufPtr,-(SP)
MOVE.L ApplZone,-(SP)
MOVE.L #$20008,D0
DC.W $FE22
ADDQ #8,SP
MOVE.L $68FFEFF0,A0
MOVE.L 4(A0),A0 ; A0 = NKSystemInfoPtr.UsableMemorySize - 32k
SUB.L #$8000,A0
BRA.S @common
@no_bbox MOVE.L ExpandMem,A0
MOVE.L $320(A0),D0
BZ.S @no_mmap
MOVE.L SP,BufPtr ; CASE: non-blue box with ?mmap
JSR sub_60008D62
@no_mmap MOVE.L SP,A0 ; CASE: no mmap
SUB.L DefltStack,A0 ; A0 = SP - Default Stack
@common ; SetApplLimit(A0)
_SetApplLimit
BRA.L FinalProcessMgrLaunch
; ÑÑÑ THE END ÑÑÑ
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadDSAT
; Loads the desired DSAT resource, and install it in low-memory.
;
; D0.W -> resource ID of DSAT
; D0.L <- handle of DSAT
subq #4,sp ; room for returned handle
MOVE.L #'DSAT',-(SP)
MOVE.W D0,-(SP)
_GetResource
MOVE.L (SP)+,D0
bz.s BadSystem
move.l d0,a0
move.l (a0),DSAlertTab
RTS
BadSystem
; Come here if a resource that is required is missing.
moveq #dsBadPatch,d0
_SysError
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
ExecuteFromSystem ; <34>
; Execute a resource that is gotten from the system.
;
; a5 -> globals, including parameter block and file name storage
; d3.W -> DontCloseOnError flag. If nonzero, don't CloseTheFile on nonzero result
; d5.L -> resource type
; d6.W -> resource ID
moveq #-1,d4
bsr.l DontOpenAFile
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
DontOpenAFile
; Execute a resource that is gotten either from the system
;
; a5 -> globals, including parameter block and file name storage
; d0.W -> ID of STR resource containing the file name
; d3.W -> DontCloseOnError flag. If nonzero, don't CloseTheFile on nonzero result <33>
; d7.L -> folder type to look in
; d5.L -> resource type
; d6.W -> resource ID
move.w #mapTrue,ROMMapInsert ; get ROM as well as System file
subq #4,sp
move.l d5,-(sp)
move.w d6,-(sp)
_GetResource
move.l (sp)+,d1 ; get the result
bz.s @noResource
move.l d1,-(sp) ; save for later release
bsr ExecuteHandle
tst.w d3 ; do we care about closing the file? <33>
bz.s @continue ; nope, just release and close <33>
tst.w d0 ; yes, check for response <33>
beq.s @continue ; glad we checked, but donÕt close it <37>
addq #4,sp ; pop the (no longer a resource) handle <37>
rts ; leave without closing <37>
@continue
_ReleaseResource
@noResource
bsr CloseTheFile
@DontClose
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadINITFileByName
; If so, open the file, look for a 'sysz', and cycle through the INITs.
; If the system heap must be resized, then close and reopen the resource file.
;
; d0.W -> resource ID of string containing name of file to load
; a5 -> globals, including parameter block and file name storage
; d7.L -> folder type to look in, then folder dirID
;
; ccr <- Z means success, NZ means error
;
; d4.W = refnum of opened file
; d5.L = requested contiguous free space in system zone
link a6, #-4
move.l d7, -4(a6)
tst BootGlobals.enablerRsrcFirstBlk(a5)
bz.s @noEnabler
move BootGlobals.enablerRsrcFirstBlk(a5), d1
clr -(sp)
move d1, -(sp)
move.l -4(a6), -(sp)
move d0, -(sp)
bsr SetUpForFileByName
move (sp)+, d1
bz.s @straightAway
@noEnabler
move BootGlobals.enablerRsrcFirstBlk(a5), d1
clr -(sp)
move d1, -(sp)
move.l -4(a6), -(sp)
move d0, -(sp)
bsr SetUpForFileByName
move (sp)+, d0
bnz.s @return
@straightAway
move.l -4(a6), d7
bsr LoadINITFile
@return
unlk a6
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
SetUpForFileByName
; Get the name of a file from a resource.
; Set up a parameter block with the appropriate values, find a folder to work in.
;
; a5 -> globals, including parameter block and file name storage
; d7.L -> folder type to look for
; d0.W -> resource ID of the fileÕs name
;
; d0.W <- error code
; d7.L <- dirID of found folder
; Now actually stack-based, like this:
; pascal OSErr SetUpForFileByName(int whichDisk, long folderType, int fileNameResID)
link a6, #0
moveq #0, d7
subq #4, sp
move 8(a6), -(sp)
_GetString
move.l (sp)+, d0
bz.s @fail
move.l d0, a0
moveq #0, d0 ; success code
move.l (a0), a0 ; handle to ptr
move.b (a0), d0 ; pstring size
addq.b #1, d0 ; raw size
lea $DC(a5), a1 ; why not BootGlobals.fileName?
_BlockMoveData
move 14(a6), d1
move.l 10(a6), d7
bsr SetUpForFolder
bra.s @return
@fail
move #resNotFound, d0
@return
move d0, 16(a6)
unlk a6
move.l (sp)+, a0
addq.l #8, sp
jmp (a0)
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
SetUpForFolder
; Set up a parameter block with the appropriate values, and find a folder to work in.
;
; a5 -> globals, including parameter block and file name storage
; d1.W -> which disk
; d7.L -> folder type to look for
;
; d0.W <- error code
; d7.L <- dirID of found folder
sub #2,sp ; _FindFolder result (OSErr)
move d1,-(sp) ; which disk
move.l d7,-(sp) ; which folder type
move.b #kDontCreateFolder,-(sp)
pea $1DC(a5) ; var foundVRefNum result
pea $1DE(a5) ; var foundDirID result
_FindFolder
move.l $1DE(a5), d7
move.w (sp)+,d0
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadExtensionsManagerINIT
btst.b #extensionsEnabledBit, ExtensionsEnabledByte
bz.s @return
move.l #kExtensionFolderType, -(sp)
move.l #'INIT', -(sp)
lea ExtensionsManagerFlag, a0
st.b (a0)
bsr LoadINITFilesInFolder2
lea ExtensionsManagerFlag, a0
sf.b (a0)
@return
rts
ExtensionsManagerFlag
dc.b 0
dc.b 0
ExtensionsManagerFlag2 equ ExtensionsManagerFlag + 1
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadINITFilesInFolder2
; pascal cpid LoadINITFilesInFolder2(long folderType /*d7*/, long fileType /*a2*/)
; for fileType: 0 means get INIT, RDEV, cdev, anything else means that file type only
link a6, #0
movem.l d2-d7/a2-a4, -(sp)
tst BootGlobals.enablerRsrcFirstBlk(a5)
bz.s @noEnabler
move.l 12(a6), d7
move.l 8(a6), a2
move BootGlobals.enablerRsrcFirstBlk(a5), d1
bsr LoadINITFilesInFolder
@noEnabler
move.l 12(a6), d7
move.l 8(a6), a2
move BootGlobals.sysRsrcFirstBlk(a5), d1
bsr LoadINITFilesInFolder
movem.l (sp)+, d2-d7/a2-a4
unlk a6
move.l (sp), a0
opt none
adda #12, sp
opt all
jmp (a0)
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadINITFilesInFolder
; The major file-loading loop for INITs. For each file in the folder specified by d7,
; by index, check whether itÕs an INIT, RDEV or cdev. If so, open the file, look
; for an 'sysz', and cycle through the INITs. If the system heap must be resized,
; then must close and reopen the resource file.
;
; a5 -> globals, including parameter block and file name storage
; d7.L -> folder type to look in, then folder dirID
; a2 -> 0 means get INIT, RDEV, cdev, anything else means that file type only
;
; d3.W = index of current file
; d4.W = refnum of opened file
;
; no return values
move.l a4,-(sp) ; save a4 for folder. Used for creator type. <9>
cmp #0, a2
beq.s @foundFolder
bsr SetUpForFolder
bz.s @foundFolder ; we got it, keep going <26>
cmp.l #'scri', a2 ; looking for script extensions? <26>
bne DoneWithFolder ; if not, donÕt try System Folder <26>
move BootGlobals.sysRsrcFirstBlk(a5), d1
move.l #kSystemFolderType, d7 ; try the System Folder <26>
bsr SetUpForFolder ; <26>
bz.s @foundFolder ; it worked <39>
; <39> go ahead and try anyway with 0 as a dirID in case everything is at the root
moveq #0, D7 ; try the root <39>
@foundFolder
lea BootGlobals.fileName(a5),a0 ; store pointer to fileÕs name
move.l a0,BootGlobals.paramBlock+ioFileName(a5)
move $1DC(a5),BootGlobals.paramBlock+ioVRefNum(a5)
clr.w BootGlobals.paramBlock+ioFileType(a5) ; "version" and permissions
moveq #0,d3 ; start looping through the files
_NextFileInFolder
addq.w #1,d3 ; increment the file index
ReiterateWithoutIncrementing
bsr GetInfoForNextFile
bnz DoneWithFolder ; no more files in the folder, stop loading
move.l ioFlUsrWds+fdType(a0),d0 ; grab file type for testing
move.l ioFlUsrWds+fdCreator(A0),a4 ; save file creator type for LoadInitFile <9>
btst.b #extensionsEnabledBit, ExtensionsEnabledByte
bz.s @extensionsDisabled
move.l a0, -(sp)
move.l ExpandMem, a0
tst.b $33B(a0)
move.l (sp)+, a0
bz @byteWasZero
movem.l d0-d1/a0-a1, -(sp)
move.b #0, -(sp)
move.l d0, -(sp)
move.l a4, -(sp)
move $1DC(a5), -(sp)
move.l $1DE(a5), -(sp)
move.l BootGlobals.paramBlock+ioFileName(a5), -(sp)
pea $4A(a5)
bsr.l sub_600095D4
tst.b (sp)+
movem.l (sp)+, d0-d1/a0-a1
bz NextFileInFolder
@byteWasZero
move.l a0, -(sp)
lea ExtensionsManagerFlag, a0
tst.b (a0)
move.l (sp)+, a0
bz.s @emOff
cmp.l #'extE', a4
bne NextFileInFolder
bsr LoadINITFile
bne DoneWithFolder
move.l a0, -(sp)
lea ExtensionsManagerFlag2, a0
st.b (a0)
move.l (sp)+, a0
bra @flagWhetherFileContainsINIT
@emOff
move.l a2, d1
beq.s @allTypes
cmp.l d1, d0
bra @checkType
@extensionsDisabled
;guessing that these are the indispensable extension types...
cmp.l #'aaud', a4
beq @goodFile
cmp.l #'cbon', a4
beq @goodFile
cmp.l #'ttsu', a4
bne NextFileInFolder
move.l a0, -(sp)
move.l ExpandMem, a0
tst.b $33B(a0)
move.l (sp)+, a0
bz @goodFile
bra NextFileInFolder
; move.l a2,d1 ; what file type are we looking for
; bz.s @allTypes ; 0, means look for all boot-executable types
; cmp.l d1,d0 ; is this the type weÕre looking for?
; bra.s @checkType ; go ask the storm trooper
@allTypes
cmp.l #'INIT',d0 ; is it a system extension?
bne.s @notExtension ; <12> no, keep checking
; special-case INIT creator codes
cmp.l #'kuri', a4
beq @is_kuri
cmp.l #'kl08', a4
beq @is_kl08
cmp.l #kFileShareCreator, a4
beq @checkAppleTalkState
cmp.l #'mtv2', a4
beq @is_mtv2
cmp.l #'caps', a4
beq @is_caps
cmp.l #'ATI ', a4
beq @is_ati
cmp.l #'avav', a4
beq @is_avav
cmp.l #'extE', a4
beq NextFileInFolder
bra @goodFile
@notExtension
cmp.l #'pext',d0 ; <18> Is it an El Kabong printing extension?
beq @goodFile ; <18> Yes. Go load it.
cmp.l #'cdev',d0 ; is it a control panel?
BNE.S @notcdev ; use control panels only if
cmp.l #'kl07',a4 ; their creator is not kl07
bne @goodFile
bra @is_kl08
@notcdev
cmp.l #'RDEV',d0 ; is it a Chooser extension?
bne.s @notRDEV ; <12> no, keep checking
cmp.l #kAppleShareCreator,a4 ; <12> Is it AppleShare?
bne @goodFile ; <12> No, itÕs just some Chooser extension
bra @checkAppleTalkState ; <12> See if AppleTalk is active. If not, donÕt load AppleShare
@notRDEV
cmp.l #'cbnd',d0 ; is it a connection tool?
BEQ.S @goodFile ; yes, use it
cmp.l #'fbnd',d0 ; is it a file transfer tool?
BEQ.S @goodFile ; yes, use it
cmp.l #'tbnd',d0 ; is it a terminal emulation tool?
BEQ.S @goodFile ; yes, use it
cmp.l #'vbnd',d0 ; is it a telephone tool?
BEQ.S @goodFile ; yes, use it
cmp.l #'adev',d0 ; is it a network extension?
BEQ.S @goodFile ; yes, use it
cmp.l #'ddev',d0 ; is it a database extension?
BEQ.S @goodFile ; yes, use it
cmp.l #'appe',d0 ; is it a background app? <33>
BNE.S @not_appe
cmp.l #'kl02',a4
BNE.S @goodFile
bra @is_kl08
@not_appe
cmp.l #'ndrv',d0
BNE.S @not_ndrv
move.l a0,-(sp)
move.l ExpandMem,a0
tst.b $33B(a0)
move.l (sp)+,a0
bz.s @goodFile
cmp.l #'usbd',a4
BEQ.S @goodFile
bra NextFileInFolder
@not_ndrv
cmp.l #'fext',d0 ; is it a Finder extension?
BEQ.S @goodFile
cmp.l #'APPC',d0
BEQ.S @goodFile
cmp.l #'FNDR',d0
@checkType
bne NextFileInFolder ; no, move along
@goodFile
btst #4,SwitchedFlags
bne NextFileInFolder
btst #bFNoINIT,ioFlUsrWds+fdFlags+1(a0) ; do we know there are no INIT resources?
bne NextFileInFolder ; yes, skip slow OpenResFile
btst #6,ioFlUsrWds+fdFlags(a0)
bnz NextFileInFolder
move.l a4, d0
cmp.l #'mntr',d0
beq NextFileInFolder
@normalINITFile ; <30>
bsr LoadINITFile ; load all the INITs from the file
bnz NextFileInFolder
; Check to see if we actually found any INITs in this file. If we didnÕt, then save this useful
; information as a fndrInfo bit so we can skip the really slow OpenResFile the next time we start up.
@flagWhetherFileContainsINIT
cmp.w #1,d6 ; exit on first time through loop?
bne.s @hadINIT ; no, had an INIT
tst.w d1 ; was the problem not finding a resource?
bz.s @noINITs ; yes, no INITs
cmp.w #resNotFound,d1 ; was the problem not finding a resource?
bne.s @hadINIT ; no, perhaps too little memory
@noINITs
lea BootGlobals.paramBlock(a5),a0 ; point at param block
bset #bFNoINIT,ioFlUsrWds+fdFlags+1(a0) ; remember that there are no INIT resources
move.l d7,ioDirID(a0) ; reset the dirID, since HGetFileInfo trashes it
_HSetFileInfo ; write out the bit
; ignore errors, weÕre just optimizing
@hadINIT
; Loop over files in folder... unless this was the Extensions Manager!
move.l a0,-(sp)
lea ExtensionsManagerFlag, a0
tst.b (a0)
move.l (sp)+, a0
bz NextFileInFolder
move.l a0,-(sp)
lea ExtensionsManagerFlag2, a0
tst.b (a0)
move.l (sp)+, a0
bz NextFileInFolder
bra DoneWithFolder
; See if AppleTalk is active. If not, donÕt load the current extension.
@checkAppleTalkState
move.l a0,-(sp) ; <12> Save parameter block
move.l ExpandMem,a0 ; <12>
tst.w ExpandMemRec.emAppleTalkInactiveOnBoot(a0) ; <12> Check saved AppleTalk state
move.l (sp)+,a0 ; <12> Restore parameter block
bz.s @goodFile ; <12> AppleTalk is on. ItÕs ok to load this extension.
bra NextFileInFolder ; <12> AppleTalk is off. DonÕt load this extension.
@is_mtv2
btst #4, SwitchedFlags
bnz NextFileInFolder
bsr LoadINITFile
bne NextFileInFolder
movem.l d1/d6/d7, -(sp)
clr.b -(sp)
bsr sub_600067B0
tst.b (sp)+
bz.s @noAdbReinit
_ADBReInit
@noAdbReinit
movem.l (sp)+, d1/d6/d7
bra @flagWhetherFileContainsINIT
@is_ati
btst #4, SwitchedFlags
bnz NextFileInFolder
movem.l d1/d6/d7, -(sp)
clr.b -(sp)
bsr sub_600068BC
tst.b (sp)+
movem.l (sp)+, d1/d6/d7
beq NextFileInFolder
bsr LoadINITFile
bne NextFileInFolder
bra @flagWhetherFileContainsINIT
@is_avav
btst #4, SwitchedFlags
bnz NextFileInFolder
bsr LoadINITFile
bne NextFileInFolder
movem.l d1/d6/d7, -(sp)
bsr sub_600063C6
movem.l (sp)+, d1/d6/d7
bra @flagWhetherFileContainsINIT
@is_kuri
move #-20983, d0
bra.s @commonKuriCapsCase
@is_caps
clr d0
@commonKuriCapsCase
movem.l d1-d3/a0-a3, -(sp)
move d0, -(sp)
clr -(sp)
lea BootGlobals.paramBlock(a5), a0
move.l d7, $30(a0)
move.l a0, -(sp)
jsr sub_6000663E
move (sp)+, d0
cmp #0, d0
bne.s @nm
jsr sub_600065B4
movem.l (sp)+, d1-d3/a0-a3
bra ThisFileAgain
@nm
addq.l #2, sp
movem.l (sp)+, d1-d3/a0-a3
bra NextFileInFolder
@is_kl08
movem.l d0-d3/a0-a3, -(sp)
clr -(sp)
lea BootGlobals.paramBlock(a5), a0
move.l d7, $30(a0)
move.l a0, -(sp)
jsr sub_60006798
move (sp)+, d0
cmp #0, d0
bne.s @nm2
move.b $2C(a5), d0
cmp.b #0, d0
bne.s @nm3
jsr sub_60006780
move.b #1, d0
move.b d0, $2C(a5)
@nm3 movem.l (sp)+, d0-d3/a0-a3
bra ThisFileAgain
@nm2 movem.l (sp)+, d0-d3/a0-a3
bra NextFileInFolder
DoneWithFolder
movem.l (sp)+,a4 ; restore a4 for folder. Used for creator type. <9>
rts
GetInfoForNextFile ; Somehow involve the Extension Table Mechanism
lea BootGlobals.paramBlock(a5), a0
cmp #0, a2
beq.s @doingMainSearch
;searching for a specific file type
move d3, ioFDirIndex(a0)
move.l d7, ioDirID(a0)
_HGetFileInfo
bra.s @return
@doingMainSearch
movem.l d1-d2/a0-a1, -(sp)
subq.l #2, sp
move.l a0, -(sp)
moveq #-2, d0
dc.w $AA7D ; StartupDispatch
move (sp)+, d0
bnz.s @skipNextCall
move d0, -(sp)
subq.l #2, sp
clr.l -(sp)
moveq #-4, d0
dc.w $AA7D ; StartupDispatch
addq.l #2, sp
move (sp)+, d0
@skipNextCall
movem.l (sp)+, d1-d2/a0-a1
move.l $30(a0), d7
move $16(a0), $1DC(a5)
move.l d7, $1DE(a5)
move d3, ioFDirIndex(a0)
ext.l d0
tst d0
@return
rts
NextFileInFolder ; Invoke the Extension Table Reorder Mechanism
cmp.l #0, a2
bne _NextFileInFolder
movem.l d0-d2/a0-a1, -(sp)
subq.l #2, sp
clr.l -(sp)
moveq #-3, d0
dc.w $AA7D ; StartupDispatch
addq.l #2, sp
movem.l (sp)+, d0-d2/a0-a1
bra _NextFileInFolder
ThisFileAgain
cmp.l #0, a2
bne ReiterateWithoutIncrementing
movem.l d0-d2/a0-a1, -(sp)
subq.l #2, sp
clr.l -(sp)
moveq #-3, d0
dc.w $AA7D ; StartupDispatch
addq.l #2, sp
movem.l (sp)+, d0-d2/a0-a1
bra ReiterateWithoutIncrementing
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadINITFile
; Open a file, look for a 'sysz', and cycle through the INITs.
; If the system heap must be resized, then must close and reopen the resource file.
;
; a5 -> globals, including parameter block and file name storage
; d7.L -> folder type to look in, then folder dirID
; d6.W <- number of resources loaded
; d1.W <- error result from loading last resource in the file
; d0.W <- error result
; ResErr <- error result
;
; d4.W = refnum of opened file
; d5.L = requested contiguous free space in system zone
;
; To do:
; Change the reality check to a preflight which either chooses to not run the init or to
; skip the allocation and (hopefully) let the init know that the space wasn't allocated.
; Make space before getting 'sysz' to speed up booting, since it reduces re-opening of the file.
move.l #minSysHeapFreeForINIT,d5 ; minimum space needed to run an INIT
bsr MakeSysFree ; resize
bsr OpenTheFile ; go open the resource file
bnz @skip ; skip file if bad open
; Now look for an 'sysz' resource to make a system heap request.
subq #4,sp ; room for result
move.l #'sysz',-(sp) ; 'sysz' resource
clr.w -(sp) ; id 0 always
_Get1Resource
move.l (sp)+,d0
bz.s @noRequest ; no sysz, go on
move.l d0,a0 ; sysz handle
move.l (a0),a0 ; sysz pointer
move.l (a0),d5 ; requested size
bsr MakeSysFree ; get it in the sys zone
@noRequest
btst.b #4,SwitchedFlags
bnz.s @skip
cmp.l #'Œnd5',A4 ; is this QuickTimeª? <9>
bne.s @skipQuickTimeFix ; if not, we donÕt have to load components <9>
;pascal long RegisterComponentResourceFile(short resRefNum, short global) <9>
clr.l -(sp) ; return value <9>
move.w d4,-(sp) ; fref <9>
move.w #1,-(sp) ; register them globally <9>
moveq #20,d0 ; RegisterComponentResourceFile selector <9>
_ComponentDispatch ; <9>
addq #4,sp ; ignore result <9>
@skipQuickTimeFix
btst.b #2,SwitchedFlags
bnz.s @skip_whatever_this_is
st.b WWExist
@skip_whatever_this_is
bsr LoadINITResources ; now load all the INIT resources
bsr.s CloseTheFile
_CleanUpApplicationComponents ; clean up any components left in the app heap <9>
andi.b #-2,BufPtr+3 ; worried about odd BufPtr, huh.
clr -(sp)
bsr sub_60005682
tst CrsrState
bz.s @crsr_fine
_ShowCursor
@crsr_fine
@skip
move.w ResErr,d0
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
OpenTheFile
; Open the current resource file with preloading off.
;
; a5 -> globals, including file name at BootGlobals.fileName(a5)
; d7.L -> parent directory id
; d4.W <- file refnum
; d0.W <- error result
; ResErr <- error result
;
; Trashes d0/a0
move.l a1,-(sp)
subq #2,sp ; room for result
move.w $1DC(A5),-(sp) ; at boot time def. vol. = boot vol.
move.l $1DE(A5),-(sp)
pea BootGlobals.fileName(a5)
move.b #fsCurPerm,-(sp)
clr.b ResLoad ; no preloads please
_HOpenResFile
st ResLoad ; restore resLoad to proper state
move (sp)+,d4 ; save the refnum
bmi.s @nothingOpened
lea BootGlobals.fileName(a5),a0 ; pointer to fileÕs name <30>
move.l a0,CurNamePtr ; Put ptr to the filename into CurApName+4 <35>
@nothingOpened
move.l (sp)+,a1
move.w ResErr,d0
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
CloseTheFile
; Close the current resource file.
;
; d4.W -> file refnum
; d4.W <- -1, indicating no file is open
; Trashes d0/a0
cmp.w #-1,d4
beq.s @done
move.l #-1,CurNamePtr ; no currently-executing file <35>
move d4,-(sp) ; refNum of the open file
_CloseResFile
moveq #-1,d4 ; no file is open
@done
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
MakeSysFree
; Guarantee a contiguous block of free space in the sys. heap.
; If the heap must be grown, must carefully close and reopen the
; current resource file since its map, etc. is in the app heap.
; To avoid purging everything, we use a loop based on _CompactMem
; and _SetAppBase. In the worst case, the loop should be
; executed twice.
;
; d5.L -> requested space
; d4.W -> file refnum, or negative if no resource file is open now
; a5 -> if d4 is positive, name at BootGlobals.fileName(a5)
; d7.L -> if d4 is positive, parent directory id
;
; Trashes d0-d2/a0
;
; To Do:
; Do the CompactMem anyway, even if there is only one zone.
; Add a result code indicating success or failure.
;
; Assertions:
; d1 doesnÕt get trashed by CloseTheFile, PinSysHeapTop, _SetApplBase, _CompactMem
bsr ApplZoneExists
beq.s @exit ; yes, sys. heap is growable; do nothing
move.w d4,d1 ; save file refNum for later
cmp.l #$7fffffff,d5
bne.s @dothing
bsr CalculateAmountReallyNeeded
bra.s @bitWeird
@dothing
move.l d5,d0 ; amount needed
_CompactMem sys ; look for it in sys zone
sub.l d5,d0 ; gotten - needed
bge.s @done ; gotten ³ needed --> done
; d0 is negative <36>
move.l d5,d2 ; 'needed' for later
@bitWeird
addq.l #1,d2 ; round up and
and.w #~1,d2 ; make sure it is even
tst.w d4 ; is a resource file open?
bmi.s @noNeedToClose ; no, no need to close the file
bsr.s CloseTheFile ; close resource file
@noNeedToClose
move.l SysZone,a0
move.l bkLim(a0),a0 ; end of sys. zone
add.l d2,a0 ; end of zone + (needed-gotten)
adda.w #sysHeapFreeSpaceSlop,a0 ; with slop
bsr PinSysHeapTop
_SetApplBase ; free up more space
move.l d5,d0 ; amount needed <36>
_CompactMem sys ; look for it in sys zone again <36>
@done
tst.w d1 ; was there a resource file open?
bmi.s @noNeedToOpen ; no, no need to re-open the file
tst.w d4 ; is the resource file still open?
bpl.s @noNeedToOpen ; yes, no need to re-open the file
bsr OpenTheFile ; assume success here
@noNeedToOpen
bsr RealityCheck ; make sure we have enough memory to continue
@exit
rts
;--------------------------------------------------------------------------------------
CalculateAmountReallyNeeded
movem.l d0/d1/a0, -(sp)
move.l sp, d1
sub.l DefltStack, d1
sub.l #$40000, d1
sub.l #$40000, d1
sub.l BootGlobals.reservedForAfterBoot(a5), d1
move.l SysZone, a0
sub.l 0(a0), d1 ; bkLimit
tst.l VMGlobals
bmi.s @return_d1_as_d2
moveq #-3, d0
_MemoryDispatch
sub.l BootGlobals.reservedForAfterBoot + 4(a5), d0
bmi.s @return_d1_as_d2
cmp.l d1, d0
bge.s @return_d1_as_d2
sub.l #$40000, d0
move.l d0, d1
@return_d1_as_d2
move.l d1, d2
movem.l (sp)+, d0/d1/a0
rts
;--------------------------------------------------------------------------------------
;
; Call GetEnvirons to get the system script and GetScript to get that scripts language code
; then pass the information onto the Text Services manager
;
TellTSMScriptAndLanguage
movem.l d3,-(sp) ;save d3
subq #4,sp ;make room for long result from GetScript
move.w #smSysScript,-(sp) ;push the system script verb onto the stack
_GetEnvirons ;get the system script
move.l (sp)+,d3 ;save return value in d3
subq #4,sp ;space for GetScript return value
move.w d3,-(sp) ;put the script (in low word) onto the stack
swap d3 ;now move the script code high
move.w #smScriptLang,-(sp) ;now tell us the language
_GetScript
addq #2,sp ;again we want the low word
move.w (sp)+,d3 ;save the language
subq #4,sp ;make a record on the stack
move.l sp,a0 ;get a pointer to it
move.l d3,(a0) ;copy the S&L infor from d0 into the record we made on the stack
clr.w -(sp) ;clear space for the result
move.l a0,-(sp) ;move the pointer to the stack
; _SetTextServiceLanguage ;set the script and language
moveq #14,d0
dc.w $aa54
addq #6,sp ;pop and ignore the result and get rid of the record
movem.l (sp)+,d3 ;restore d3
rts
nop
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadINITResources
; The resource loading loop.
;
; d4.W -> refNum of file weÕre loading from, or -1 meaning the system file
;
; d6.W <- number of resources loaded
; d1.W <- error code
;
; d6.W = index of resource
; d5.L = size needed (used to pass to MakeSysFree)
;
; To Do: store the INIT index and/or handle along with the filename to make
; for easier debugging when files have more than one INIT.
moveq #1,d6 ; start with resource 1
@loop
; First, do a Get1IndResource or a GetResource, from the file or System file.
move.w #mapFalse,ROMMapInsert ; make ResLoad temporarily false, get ROM as well
bsr GetINITResource
bnz.s @continue ; got one
; If we didnÕt get a handle and we are working on a file, we are done.
; If we are working on the System file, we just move on to the next resource by number.
tst.w d4 ; in System?
bpl.s @done ; no, we are done
bra.s @next ; yes, keep going
@continue
; Now make sure there is enough system heap free for us.
subq #4,sp
MOVE.L d1,-(SP) ; resource handle
_SizeRsrc
MOVE.L (SP)+,d5 ; get the size of the INIT
ADD.L #minSysHeapFreeForINIT,d5 ; add the required free space
bsr.s MakeSysFree ; get contiguous bytes in sys. heap
; Make a fresh heap, and get the resource, for real this time.
move.w #mapTrue,ROMMapInsert ; get ROM as well as System file
bsr.l GetINITResource ; now get it for real
bz.s @next ; skip this one if we canÕt load it
; Detach the resource, if it is one of the ones from the System file.
tst.w d4 ; in System?
bpl.s @noDetach ; no, then donÕt detach
move.l d1, -(sp) ; yes, push handle to detach <23>
_DetachResource ; and cut it off! <23>
@noDetach
lea @nmiscratch,a0 ; prevent INITs from patching NMI vector?
move.l AutoInt7,(a0)
; Lock the sucker down, and call him, preserving registers.
bsr SetBufPtrLimit ; jam MemTop so they wonÕt lower BufPtr too far
bsr.s ExecuteHandle ; execute the stuff in that resource
move.l BootGlobals.logicalMemTop(a5),MemTop ; set MemTop back <30>
move.l (AutoInt7),a0
cmp #$4e73,(a0) ; RTE opcode
bne @next
lea @nmiscratch,a0
move.l (a0),AutoInt7
@next
addq.w #1,d6 ; up the resource index
tst.w d4 ; in System?
bpl.s @loop ; no, keep going until we canÕt get any more INITs
cmp.w #36,d6 ; done yet?
bcs.s @loop ; no, keep loading
@done
move.w ResErr,d1
rts
@nmiscratch
dc.l 0
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
ExecuteHandle
; Lock and execute the contents of a handle.
;
; d1.L -> handle
;
; Trashes d0-d2/a0-a1
move.l d1,a0 ; resource handle
_HLock ; lock before executing
move.l (a0),a1
_StripAddress
move.l a1,d0
move.l (a5),-(sp) ; preserve QD globals pointer
movem.l d3-d7/a2-a6,-(sp) ; save all regs over call
jsr (a1) ; pass handle in a0 for disposing, sizing, etc.
movem.l (sp)+,d3-d7/a2-a6 ; restore regs
move.l (sp)+,(a5)
bsr RealityCheck ; make sure we have enough memory to continue
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
GetINITResource
; d6.W -> ID of INIT resource in System file, or index of INIT resource in another file
; d4.W -> -1 to mean System file, or other to mean current resource file
; d1.L <- handle
; ccr <- Z if resource not found
subq #4,sp ; room for returned handle
move.l #'INIT',-(sp)
move.w d6,-(sp)
tst.w d4 ; from System?
bmi.s @getFromSys
_Get1IxResource ; get indexed from file
bra.s @got
@getFromSys
_GetResource ; get by number from System/ROM
@got
move.l (sp)+,d1
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadLowerCaseptch419
move #419,d0
bsr LoadLowerCaseptch
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadVM
; Load the Virtual Memory system, which is contained in the 'ptch' (42) resource (which is locked).
; Also note that VM code contains the true test for whether a machine is ÒVM capableÓ.
btst #extensionsEnabledBit, ExtensionsEnabledByte
bz @return
move.l #420, d0
move.l MemTop, -(sp) ; why stack these?
move.l BufPtr, -(sp)
lea VMName, a0
move.l a0, CurNamePtr
bsr LoadLowerCaseptch
move.l #-1, $914
tst.l VMGlobals
bmi @clearStackAndReturn
bsr.l GetEndOfBootCode ; hold *part of* boot 3
move.l (sp)+, a1
lea JustBeforeLoadingVM, a0
sub.l a0, a1
_HoldMemory
move.l MacJmp, d0
bz.s @dontWorryAboutMacsBug
cmp.l #-1, d0
beq.s @dontWorryAboutMacsBug ; fall thru if MacsBug installed
move.l MemTop, d0 ; check whether it is possible
move.l d0, d1 ; to hold MacsBug's memory?
lsr.l #2, d1
sub.l d1, d0
add.l #$100000, d0
cmp.l (sp), d0 ; (bufptr on entry)
bhi.s @failToHoldMacsBug
move.l 4(sp), a1 ; try holding all mem above BufPtr
move.l 0(sp), a0
sub.l a0, a1
subq.l #1, a1 ; (why decrement len by 1?)
_HoldMemory
tst d0
bnz.s @failToHoldMacsBug
move.l (sp), BufPtr
bra.s @dontWorryAboutMacsBug
@failToHoldMacsBug
addq.l #8, sp
ParanoidDebugStr loadVMComplainString
moveq #dsCoreErr, d0
_SysError
@dontWorryAboutMacsBug
move.l #gestaltVMAttr, d0
_Gestalt
tst d0
bnz.s @requiredFunctionsNotInstalled
move.l a0, d0
; "MakeMemoryResident, MakeMemoryNonResident, FlushMemory, and ReleaseMemoryData are available"
btst.l #gestaltVMHasPagingControl, d0
bz.s @requiredFunctionsNotInstalled
bsr.l GetEndOfBootCode ; a0/a1 = (end of boot 3) : (BufPtr - 1 page)
move.l BufPtr, a1
sub.l (sp), a1
sub.l #$1001, a1
move.l (sp)+, a0
opt none
adda #$1000, a0
opt all
movem.l a0/a1, -(sp)
_ReleaseMemoryData ; kill it off!
movem.l (sp), a0/a1
_MakeMemoryNonResident
movem.l (sp)+, a0/a1
_ReleaseMemoryData
@requiredFunctionsNotInstalled
bsr.s SetGestaltLogicalRAM
@clearStackAndReturn
addq.l #8, sp
@return
rts
loadVMComplainString
dc.b 'Stopping now because MacsBug was loaded before VM and we were about to make it non-resident'
nop
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
SetGestaltLogicalRAM
moveq #-6, d0
_MemoryDispatch
move.l d0, d4 ; add "unusable" memory to whatever the above call tells us
move.l $68FFEFF0, a0 ; NKSystemInfo
move.l 0(a0), d3 ; .PhysicalMemorySize
sub.l 4(a0), d3 ; - .UsableMemorySize
add.l d3, d4
move.l #gestaltVersion, d0
_Gestalt
cmp #5, a0
blo.s @return
subq #2, a7 ; depending on Gestalt version, set lram selector
move.l #gestaltLogicalRAMSize, -(sp)
move.l d4, -(sp)
_SetGestaltValue
addq #2, sp
@return
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
DoUserModeInit
clr.l $2E(a5)
tst.l VMGlobals
bge.s @return
move.l #$AEEF, d0
lea UserModeInitName, a0
move.l a0, CurNamePtr
bsr LoadLowerCaseptch
move.l #-1, CurNamePtr
@return
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadDebugger
; Load the MacsBug debugger, and optionally the other debug thing (Disassembler).
; If there is no MacsBug, no attempt is made to load Disassmbler.
; Before loading MacsBug (below BufPtr), 1024 bytes of globals are reserved.
; MacsBug and the Disassembler are responsible for lowering BufPtr themselves after being loaded.
; If they donÕt, they will be overwritten by the stack and globals of the first application.
btst.b #3,SwitchedFlags
bz.s @cancel
bclr.b #3,SwitchedFlags
move.b SwitchedFlags,-(sp)
subq.l #debuggerGlobalSize,BufPtr
clr.b -(sp)
lea BootGlobals.bootBlocks+bbDbg1Name(a5),a1
pea (a1)
bsr sub_6000725A
tst.b (sp)+
beq.s @revertBufPtrAndCancel
@loadDebugger
lea BootGlobals.bootBlocks+bbDbg1Name(a5),a1
bsr LoadBelowBufPtrSkip512 ; try loading it
BEQ.S @install ; if present, install it
@revertBufPtrAndCancel
ADD.L #debuggerGlobalSize,BufPtr ; otherwise, dealloc MacsBug globals
BRA.S @done
@install
lea DebuggerName,a0 ; put name of MacsBug into CurApPtr <37>
move.l a0,CurNamePtr ; Put ptr to the MacsBug string <37>
JSR (a2) ; tell it to install itself
; NOTE: the following code must not change in length - MacsBug depends upon it (blegh!)
; If MacsBug punts, it adds the magic offset 6 (bytes, that is) to the return address
; to skip over this code. Ideally, the interface should allow the debugger to return
; an error code (in, say, D0?) to allow happy bypassing of this message.
MOVEQ #dsMacsBugInstalled,D0 ; alert saying we got MacsBug
bsr BootAlert ; display it if we should <42>
; If we loaded the debugger successfully, get the Disassembler, too.
lea BootGlobals.bootBlocks+bbDbg2Name(a5),a1
bsr LoadBelowBufPtrSkip512 ; search for Disassembler
BNE.S @done ; branch if thereÕs no disassembler
lea DisassemblerName,a0 ; put name of Disassembler into CurApPtr <37>
move.l a0,CurNamePtr ; Put ptr to the Disassembler string <37>
JSR (a2) ; tell it to install itself
; see above NOTE for MacsBug: the disassembler works the same way
MOVEQ #dsDisassemblerInstalled,D0 ; alert saying we got the disassembler
bsr BootAlert ; display it if we should <42>
@done
move.b SwitchedFlags,d0
move.b (sp)+,SwitchedFlags
btst.l #3,d0
bz.s @flagZero
bset.b #3,SwitchedFlags
@flagZero
@cancel
move.l #-1,CurNamePtr ; nothing currently executing <37>
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; Load the data fork of a file into high memory (just below BufPtr).
LoadBelowBufPtrSkip512
moveq #64,d1
lsl.w #3,d1 ; 64*8 = 512
bra.s LoadBelowBufPtrCommon
LoadBelowBufPtr
moveq #0,d1
LoadBelowBufPtrCommon
; a1 -> name for file to load
; d1.L -> number of bytes to skip at the start of the file
; a5 -> boot globals (used to find place for parameter block)
; a2 <- location loaded
; d2.L <- size of file loaded 0 means failure
; d3.B <- 0 = successfully loaded (CCRs set)
;
; Trashes d0-d3/a0-a2.
lea BootGlobals.paramBlock(a5),a0
MOVEQ #-1,d3 ; error code
LEA ioFileName(A0),A2 ; point to params we use
MOVE.L A1,(A2)+ ; ioFileName(A0)
CLR.L (A2)+ ; ioDrvNum(A0), ioRefNum(A0) use default drive?
CLR.B (A2)+ ; ioFileType(A0) type 0
MOVE.B #fsRdPerm,(A2)+ ; read-only permissions
lea BootGlobals.fileBuffer(a5),a1
move.l a1,(A2) ; ioOwnBuf(A0) use space after boot blocks
_Open
BNE.S @fail
_GetEOF
BNE.S @close
MOVE.L (A2)+,d2 ; ioLEOF(A0) get physical length in bytes
SUB.L d1,d2 ; skip first block
MOVE.L BufPtr,A2 ; get top of code stack
SUB.L d2,A2 ; A2 = where to read into
MOVE.L A2,(A2)
LEA ioBuffer(a0),a1
MOVE.L A2,(a1)+ ; ioBuffer(A0)
MOVE.L d2,(a1)+ ; ioByteCount(A0)
ADDQ #ioPosMode-ioNumDone,a1
MOVE.W #fsFromStart,(a1)+ ; ioPosMode(A0) absolute positioning
MOVE.L d1,(a1) ; ioPosOffset(A0) start at 512
_Read
BNE.S @close
MOVEQ #0,d3 ; no errors
@close
_Close
@fail
tst.b d3 ; test result for CCR
RTS
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
LoadLowerCaseptch
move.l #'ptch',d1 ; load one of these
DetachAndExecute
; Loads, detaches, and executes the resource with given type and ID.
;
; D0.W -> patch resource id
; D1.L -> patch resource type
; D2.L -> bufPtrÕs lower limit (added for the file cache) <33>
;
; Trashes: d0-d1/a0
;
; Patches are called with their handle in D1.L.
SUBQ #4,SP ; make room on the stack
MOVE.L d1,-(SP)
MOVE.W d0,-(SP)
_GetResource ; get the resource handle
MOVE.L (SP)+,D1 ; save the resource handle
BEQ.S @skip ; we didnÕt get it, so just go on <SM22> hy
MOVE.L D1,-(SP) ; detach it
_DetachResource
MOVE.L D1,A0 ; get the handle
MOVE.L (A0),A0 ; handle -> pointer
movem.l A3-A6, -(SP) ; save important registers
jsr (A0) ; call it (note that the handle must be in D1)
movem.l (SP)+, A3-A6 ; restore Õcause ptch/PTCH trashes these
@skip
RTS
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
ApplZoneExists
move.l ApplZone,d0
cmp.l SysZone,d0
rts
CreateApplicationHeap
bsr.s ApplZoneExists
bne.s @clobberIt ; if an ApplZone exists, kill it, otherwise É
move.l BufPtr,ApplZone ; fool InitApplZone into thinking we had no zone before
@clobberIt
_InitApplZone ; make the heap and clean up if there was an old one
move.l sp,a0 ; current stack
sub.l DefltStack,a0 ; leave room for INITs to work
_SetApplLimit
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
MakeSystemHeapGrowable
; Set things up so the system heap and the application heap are the same, so the system heap will
; grow (this is only needed for the Plus and the SE, other ROMs do something like this already).
bsr.s ApplZoneExists
beq.s @noApplZone ; if no ApplZone exists, no need to kill it
_InitApplZone
@noApplZone
move.l SysZone,a0 ; calculate a new minimum size for the heap
add.l #initialSysHeapSize,a0 ; make it big enough so it wonÕt need to grow much
bsr PinSysHeapTop ; donÕt go farther than we really can
_SetApplBase ; SetApplBase will never shrink the heap
move.l SysZone,a0 ; the one true heap
move.l a0,ApplZone ; coincident heaps
move.l a0,TheZone ; make it the current heap too
move.l bkLim(a0),HeapEnd ; end of dynamic system/application heap
move.l sp,a0 ; find the stack
sub.l DefltStack,a0 ; keep room for the stack
sub.l #minBootAppHeapSize,a0 ; and the application heap
_SetApplLimit ; this is the highest we should grow
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
PinSysHeapTop ; <34>
; Things above sysZone include the stack (which starts in the middle) and applZone (if any).
; This is only called when SysZone is being made ApplZone so it can grow, so there is never
; an ApplZone to worry about. However, we do have to leave room so we can create one later.
;
; Other things above that include: this code (on the stack), BufPtr, MemTop.
;
; a0 -> where they think they want the top of heap
; a0 <- where they get to put the top of the system heap
;
; Trashes a1
;
; To Do:
; Consider the case where the recommended top of the sysheap/bottom of the app heap is lower
; than the current top of the system heap. Bad, but what should happen? We can't cut into
; the stack or app heap sizes, can we? Maybe we just stop trying to load inits because we
; ran out of room. How would we get into this state, anyway? Would it (could it) ever happen?
move.l sp,a1
sub.l DefltStack,a1 ; leave room for the stack
sub.l #minBootAppHeapSize,a1 ; leave room for an app heap later <34>
sub.l BootGlobals.reservedForAfterBoot(a5),a1 ; leave room for post-boot <34>
cmp.l a0,a1
bhi.s @ok
move.l a1,a0
bset.b #4,SwitchedFlags
@ok
move.l d1,-(sp)
tst.l VMGlobals
bmi.s @return
move.l a0,d1
move.l SysZone,a1
sub.l (a1),d1
moveq #-3,d0 ; ?? negative of UnLockMemory
_MemoryDispatch
sub.l $1a(a5),d0
bpl.s @umm
move.l (a1),a0
bset.b #4,SwitchedFlags
bra.s @return
@umm
cmp.l d1,d0
bge.s @return
move.l (a1),a0
add.l d0,a0
bset.b #4,SwitchedFlags
@return
move.l (sp)+,d1
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
TemporaryNewPtrStartup ; <30>
; This is a routine to lower BufPtr. ItÕs usable only during startup.
; Another routine is used after startup is through.
; -> d0.L logicalSize
; <- a0 address of allocated block (Nil on failure)
; <- d0 result code
; memFullErr
; Error is also reported in MemErr
;
; _NewPtrStartup ,CLEAR will clear the allocated block.
movem.l d2-d3,-(sp) ; save params and work registers
move.w d1,d3 ; save trap word in d3
addq.l #3,d0 ; round up to nearest multiple of 4 <30>
andi.b #$FC,d0
move.l d0,d2 ; save amount requested in d2
move.l BufPtr,d1
sub.l d0,d1 ; proposed new BufPtr value
bcs.s @allocationFailed ; they asked for something bigger than BufPtr
bsr.l IsThisBufPtrOK ; see if this d1 will work as a new value of BufPtr
bne.s @allocationFailed
andi.b #$FC,d1 ; drop it to the next longword
move.l d1,a0 ; address of allocated block
move.l a0,BufPtr ; make the allocation
btst #clearBit,d3 ; is this a NewPtrStartup ,CLEAR?
beq.s @dontClear
move.l d2,d1 ; size to clear out
move.l a0,a1 ; pointer to block
bsr.s ClearBlock ; clear out the block at BufPtr as requested
@dontClear
movem.l (sp)+,d2-d3
clr.l d0 ; set the result code
move.w d0,MemErr ; set MemErr
rts
@allocationFailed
movem.l (sp)+,d2-d3
; fall through into JustReturnAnError
JustReturnAnError ; <30>
; This is used for NewPtrStartup after startup time.
move.l #0,a0 ; return nil
move.w #memFullErr,d0 ; allocation failed
move.w d0,MemErr ; set MemErr
rts
JustReturnAnErrorEnd
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
ClearBlock
; -> d1.L logicalSize (must be multiple of 4)
; -> a1 start of block to zero
;
; Trashes a1
lsr #2,d1 ; d1 := d1 / 4
subq #1,d1 ; make it zero-based
@loop clr.l (a1)+
dbf d1,@loop
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
SetBufPtrLimit
; This sets MemTop to a value which will put a (faked-up) limit on how far BufPtr may be lowered.
; ItÕs based on the rule that BufPtr may not be lowered past MemTop / 2 + 1024. We believe that
; many INITs use this rule, so we also expect that they will stop where we want them to when they
; use our computed value of MemTop.
;
; Things which limit BufPtrÕs descent:
; must have at least 350K + stack space to launch Finder
; must have at least ???K + stack space to launch some essential control panel
; NuBusª cards or ROM in the logical memory space (when VM is in 24 bit mode
;
; a5 -> globals
; MemTop <- 2 * (bufPtrLimit - 1K)
;
; Trashes a0/d0
;
; fake MemTop -> FakeMemTop will always be ³ MemTop
; MemTop -> +_____________
; |
; |
; BufPtr -> |
; |
; |ÉÉÉÉÉÉÉÉÉÉÉÉÉ <- if 24bit VM, then barrier = BootGlobals.bufPtrLimit(a5)
; |## NuBusª ## <- may be here if in 24bit VM mode
; |
; |### ROM #### <- ditto
; |
; |
; |------------- <- SysZone + minProcessMgrSpace (could be below barrier)
; |
; |
; |ÑÑÑÑÑÑÑÑÑÑÑÑÑ <- barrier = BootGlobals.lowestBufPtr(a5)
; boot code -> |±±±±±±±±±±±±± BufPtr canÕt go lower than this without killing the machine.
; boot globals-> |­­­­­­­­­­­­­
; top of stack-> |\\\\\\\\\\\\\
; |\\\ stack \\\
; SP -> |\\\\\\\\\\\\\
; |
; ApplZone É É É É É É É É
; SZ.bkLim -> |
; |
; |
; SysZone -> |_____________
; | lomem globs
; +ÑÑÑÑÑÑÑÑÑÑÑÑÑ
bsr AdjustBarrier ; <38>
move.l BootGlobals.bufPtrLimit(a5),a0 ; <38>
sub.w #1024,a0 ; minBufPtr - 1024
add.l a0,a0 ; 2*(minBufPtr - 1024) <30>
move.l a0,MemTop ; MemTop := 2*(minBufPtr - 1024)
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
RealityCheck
; This boolean routine returns EQ if there is sufficient space in the system heap to accomodate
; the amount requested in D0.
;
; Trashes d0-d1/a0
; Actually just fall through to the next routine, but we might eventually want to check other
; things, like the size of or the amount of free space in the system heap.
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
IsBufPtrOK
; Has BufPtr moved too far down?
;
; Trashes d0-d1/a0
move.l BufPtr,d1
bsr.s IsThisBufPtrOK
beq.s @yes
move.w #dsMemFullErr,d0
_SysError
@yes
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
IsThisBufPtrOK ; <30>
; Would it be OK to lower BufPtr to the place suggested by d1?
;
; 1. Moved past the boot-time barrier. This is a test for whether boot globals would be smashed.
; 2. Consumed so much room we wonÕt have room to launch Finder.
;
; a5 -> globals
; d1.L -> suggested BufPtr
; CCRs <- Z if successful
;
; Trashes d1/a0
; Have we gone past the boot globals or the limit imposed by VM?
move.l BootGlobals.bufPtrLimit(a5),a0 ; a0 := top of the barrier <33><30>
cmp.l a0,d1 ; barrier < suggested BufPtr?
bcs.s @no ; nope, we need our boot globals
; Is there enough space to build the Process Mgr. heap?
move.l SysZone,a0
move.l bkLim(a0),a0
sub.l a0,d1 ; any space above the system heap?
bcs.s @no ; nope, we need our system heap <30>
cmp.l $46(a5),d1
bgt.s @noButSucceed
bset.b #4,SwitchedFlags
@noButSucceed
moveq #0,d1 ; set CCR for success (Z)
@no ; all failure cases set CCR for failure (not Z)
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
AdjustBarrier ; <38>
; Adjust BootGlobals.bufPtrLimit(a5) to have:
; MAX( sysHeap.bkLim + minProcessMgrSpace, static limits (i.e. boot globals & vm limits) )
; Trashes: a0/d0
move.l SysZone,a0
move.l a0,d0 ; copy baseAddr of SysZone
move.l bkLim(a0),a0
add.l #initialSysHeapSize,d0
cmp.l d0,a0 ; if heap is small because weÕre on a small RAM machine
bcc.s @enoughReservedForSysHeap ; pretend heap is at initialSysHeapSize because it will
; be that big soon anyway.
move.l d0,a0 ; Set to be the minimum weÕd ever consider.
@enoughReservedForSysHeap
add.l $46(a5),a0 ; where the process mgr heap would end if we
; created it right now
cmp.l BootGlobals.bufPtrLimit(a5),a0 ; processMgrHeap.bkLim > current barrier?
bls.s @dont ; if not, donÕt adjust
move.l a0,BootGlobals.bufPtrLimit(a5) ; set new barrier
@dont
rts
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
MyKeyMap
dc.l $03000000
dc.l $00008001
dc.l $00000000
dc.l $00000000
dc.w 0
MyKeyMap2
dc.l $04000000
dc.l $00208001
dc.l $00000000
dc.l $00000000
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; There is only about 1k of slack in this file, unless you turn some branches into longs.
; Don't rearrange the monolith that follows. Its internal refs are inflexible.
; A new trap we will install to replace _RsrcZoneInit
NewRsrcZoneInit
movem.l d0/a0,-(sp)
move.b NewRsrcZoneInit_Flag,d0
bne.s @flag_is_set
;flag not set: nop this trap
movem.l (sp)+,d0/a0
move.l NewRsrcZoneInit_TailCallAddress,-(sp)
rts
@flag_is_set; set/restore
move.l SysMapHndl,-(sp) ; save
move.w SysMap,-(sp)
move.l NewRsrcZoneInit_TopMapHndl,SysMapHndl ; set
move.w CurMap,SysMap
move.l NewRsrcZoneInit_TailCallAddress,a0 ; call
jsr (a0)
move.w (sp)+,SysMap ; restore
move.l (sp)+,SysMapHndl
movem.l (sp)+,d0/a0
rts
NewRsrcZoneInit_TailCallAddress dc.l 0
NewRsrcZoneInit_TopMapHndl dc.l 0
NewRsrcZoneInit_Flag dc.b 1, 1 ; not sure why there are two
NewRsrcZoneInit_InstalledAt dc.l $50FF8001 ; so we can modify the flag after installing
NewRsrcZoneInit_End
dc.w 0
PatchRsrcZoneInit
movem.l d0/a0-a1,-(sp)
moveq #NewRsrcZoneInit_End-NewRsrcZoneInit,d0
_NewPtrSysClear
move.l a0,a1
lea NewRsrcZoneInit,a0
moveq #NewRsrcZoneInit_End-NewRsrcZoneInit,d0
_BlockMove
move.l TopMapHndl,a0
move.l a0,NewRsrcZoneInit_TopMapHndl-NewRsrcZoneInit(a1)
move.l (a0),a0
andi.b #1,mInMemoryAttr(a0)
move.w #$A996,d0
_GetTrapAddress
move.l a0,NewRsrcZoneInit_TailCallAddress-NewRsrcZoneInit(a1)
move.w #$A996,d0
move.l a1,a0
_SetTrapAddress
lea NewRsrcZoneInit_InstalledAt,a0
move.l a1,(a0)
movem.l (sp)+,d0/a0-a1
rts
; Patch _SetApplBase
NewSetApplBase
_InitApplZone
NewSetApplBase_TheJsr
jsr $50FF8001 ; will get patched to point to original
_InitApplZone
rts
NewSetApplBase_End
PatchSetApplBase
move.w #$A057,d0
_GetOSTrapAddress
lea NewSetApplBase_TheJsr,a1
move.l a0,2(a1)
moveq #NewSetApplBase_End-NewSetApplBase,d0
_NewPtrSysClear
move.l a0,a1
lea NewSetApplBase,a0
moveq #NewSetApplBase_End-NewSetApplBase,d0
_BlockMove
move.l a1,a0
move.w #$A057,d0
_SetOSTrapAddress
rts
STRING AsIs
; YIELD
; redacted IDA macro
; =============== S U B R O U T I N E =======================================
InstallPatches: ; CODE XREF: ROM:60000A38â†p
; FUNCTION CHUNK AT 600026EA SIZE 00000260 BYTES
movem.l d0-d6/a0-a4,-(sp)
subq.w #4,sp
move.l #'gusd',-(sp) ; Crash if gusd=1 is missing
move.w #1,-(sp)
dc.w $A9A0 ; _GetResource
move.l (sp)+,d0
movea.l d0,a4
bne.w @gusd_not_missing
moveq #dsNoPatch,d0
dc.w $A9C9 ; _SysError
@gusd_not_missing: ; CODE XREF: InstallPatches+16â†j
move.l a4,-(sp)
dc.w $A992 ; _DetachResource
movea.l a4,a0
dc.w $A029 ; _HLock
movea.l (a4),a0 ; keep using and incrementing a0 for a while
addq.w #6,a0
move.w (a0)+,d0 ; 6(a0) = (number of machine/gtblID pairs) - 1
moveq #0,d1
; get mach(ine) ID from Gestalt (cheeky stack usage; latter addition?)
movem.l d0/a0,-(sp)
move.l #'mach',d0
dc.w $A1AD ; _Gestalt
move.l a0,d1
movem.l (sp)+,d0/a0
@gusd_search_loop: ; CODE XREF: InstallPatches+46↓j
cmp.w (a0),d1 ; search for machine ID in gusd
lea 4(a0),a0
dbeq d0,@gusd_search_loop
cmpi.w #$FFFF,d0 ; fail if we overran
bne.w @did_find_mach_entry_in_gusd
move.l ($2BA).w,-(sp)
moveq #0,d0
bsr.w LoadDSAT
move.l d0,d6
moveq #dsOldSystem,d0
dc.w $A9C9 ; _SysError
move.l (sp)+,($2BA).w
move.l d6,-(sp)
dc.w $A9A3 ; _ReleaseResource
@did_find_mach_entry_in_gusd: ; CODE XREF: InstallPatches+4Eâ†j
lea -2(a0),a0
move.w (a0),d1
movea.l a4,a0
dc.w $A02A ; _HUnlock ; done with gusd now that we know our gtbl ID
dc.w $A023 ; _DisposeHandle
suba.w #24,sp ; point a4 to some scratch space for the patch loop
movea.l sp,a4
subq.w #4,sp ; fire up the linked patch loader
move.l #'lodr',-(sp)
move.w #$BFFF,-(sp)
dc.w $A9A0 ; _GetResource
move.l (sp)+,d0
bne.w @lodr_not_missing
moveq #dsNoPatch,d0
dc.w $A9C9 ; _SysError
@lodr_not_missing: ; CODE XREF: InstallPatches+8Câ†j
move.l d0,20(a4) ; lodr hdl (locked) to top of scratch space
movea.l d0,a0
dc.w $A029 ; _HLock
subq.w #4,sp
move.l #'gtbl',-(sp)
move.w d1,-(sp) ; d1 gotten by looking up 'mach' in gusd rsrc
dc.w $A9A0 ; _GetResource
move.l (sp)+,d0
bne.w @gtbl_not_missing
moveq #dsNoPatch,d0
dc.w $A9C9 ; _SysError
@gtbl_not_missing: ; CODE XREF: InstallPatches+AAâ†j
move.l d0,16(a4) ; gtbl hdl (locked) also to scratch space
movea.l d0,a0
dc.w $A029 ; _HLock
; Setup done, now dive into the loop
movea.l 16(a4),a2
movea.l (a2),a2
addq.w #6,a2
move.w (a2)+,6(a4) ; (number of 8-byte chunks) - 1
ipLoop: ; CODE XREF: InstallPatches+34E↓j
clr.w $A(a4)
move.w (a2),d0
cmp.w ipJumpTblCnt,d0
bhi.s ipBadSelector ; jumptable 000026B4 default case
move.w d0,d1
add.w d1,d1
move.w ipJumpTbl(pc,d1.w),d1 ; switch 22 cases
jmp ipJumpTbl(pc,d1.w) ; switch jump
; ---------------------------------------------------------------------------
ipBadSelector: ; CODE XREF: InstallPatches+D0â†j
moveq #$63,d0 ; 'c' ; jumptable 000026B4 default case
dc.w $A9C9 ; _SysError
; End of function InstallPatches
; ---------------------------------------------------------------------------
; Jump the currect routine for this selector.
; a2 points to 8b chunk in the gtbl, of which first 2b is selector
ipJumpTblCnt: dc.b 0, $15 ; DATA XREF: InstallPatches+CCâ†r
ipJumpTbl: dc.w ipSelector0-ipJumpTbl
; DATA XREF: InstallPatches+D6â†r
; InstallPatches+DAâ†r
dc.w ipSelector1-ipJumpTbl ; jump table for switch statement
dc.w ipSelector2-ipJumpTbl
dc.w ipSelector3-ipJumpTbl
dc.w ipSelector4-ipJumpTbl
dc.w ipReturn-ipJumpTbl
dc.w ipSelectorPtch-ipJumpTbl
dc.w ipReturn-ipJumpTbl
dc.w ipSelector8_9_10_11_12-ipJumpTbl
dc.w ipSelector8_9_10_11_12-ipJumpTbl
dc.w ipSelector8_9_10_11_12-ipJumpTbl
dc.w ipSelector8_9_10_11_12-ipJumpTbl
dc.w ipSelector8_9_10_11_12-ipJumpTbl
dc.w ipSelector13-ipJumpTbl
dc.w ipSelector14_17-ipJumpTbl
dc.w ipSelector15-ipJumpTbl
dc.w ipSelector16-ipJumpTbl
dc.w ipSelector14_17-ipJumpTbl
dc.w ipSelector18-ipJumpTbl
dc.w ipSelector19-ipJumpTbl
dc.w ipSelector20-ipJumpTbl
dc.w ipSelector21-ipJumpTbl
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR InstallPatches
ipSelectorPtch: ; CODE XREF: InstallPatches+DAâ†j
; DATA XREF: ROM:ipJumpTblâ†o
move.w 6(a2),d0 ; jumptable 600026B4 case 6
move.l a2,-(sp)
subq.w #4,sp
move.l #$70746368,-(sp)
move.w d0,-(sp)
dc.w $A9A0 ; _GetResource
tst.l (sp)
bne.s @ptch_not_missing
addq.w #4,sp
bra.s @fail_no_resume_proc
; ---------------------------------------------------------------------------
@ptch_not_missing: ; CODE XREF: InstallPatches+124â†j
move.l (sp),-(sp)
dc.w $A992 ; _DetachResource
movea.l (sp),a0
movea.l (a0),a0
move.l a0,-(sp)
jsr (a0)
move.l a0,d1
movea.l a0,a1
move.l (sp)+,d2
@trapchange_loop: ; CODE XREF: InstallPatches+14E↓j
; InstallPatches+152↓j
move.l (a1)+,d0
beq.s @exit_trapchange_loop
add.l d2,d0
movea.l d0,a0
move.w (a1)+,d0
cmpi.w #$A800,d0
bcs.s @is_os_trap
dc.w $A647 ; _SetToolTrapAddress
bra.s @trapchange_loop
; ---------------------------------------------------------------------------
@is_os_trap: ; CODE XREF: InstallPatches+14Aâ†j
dc.w $A247 ; _SetOSTrapAddress
bra.s @trapchange_loop
; ---------------------------------------------------------------------------
@exit_trapchange_loop: ; CODE XREF: InstallPatches+13Eâ†j
move.l d1,d0
sub.l d2,d0
movea.l (sp)+,a0
dc.w $A024 ; _SetHandleSize
bra.s @return_restoring_a2_from_stack
; ---------------------------------------------------------------------------
@fail_no_resume_proc: ; CODE XREF: InstallPatches+128â†j
clr.l ($A8C).w
@fail:
moveq #$63,d0 ; 'c'
dc.w $A9C9 ; _SysError
@return_restoring_a2_from_stack: ; CODE XREF: InstallPatches+15Câ†j
movea.l (sp)+,a2
@return_island: ; jumptable 600026B4 case 0
bra.w ipReturn
; ---------------------------------------------------------------------------
ipSelector3: ; CODE XREF: InstallPatches+DAâ†j
; DATA XREF: ROM:ipJumpTblâ†o
bset #1,$A(a4) ; jumptable 600026B4 case 3
ipSelector0: ; CODE XREF: InstallPatches+DAâ†j
; DATA XREF: ROM:ipJumpTblâ†o
movea.l a2,a1 ; jumptable 600026B4 case 0
clr.w 8(a4)
move.w 6(a2),4(a4)
subq.w #1,6(a4)
bmi.w loc_6000277E
loc_60002760: ; CODE XREF: InstallPatches+1A2↓j
addq.l #8,a2
tst.w (a2)
bne.s loc_6000277E
move.w 6(a2),d0
cmp.w 4(a4),d0
bne.s loc_6000277E
addq.w #1,8(a4)
subq.w #1,6(a4)
bmi.w loc_6000277E
bra.s loc_60002760
; ---------------------------------------------------------------------------
loc_6000277E: ; CODE XREF: InstallPatches+182â†j
; InstallPatches+18Aâ†j ...
moveq #0,d0
move.w 8(a4),d0
addq.l #1,d0
lsl.l #2,d0
addq.l #4,d0
suba.l d0,sp
movea.l sp,a0
move.l d0,-(sp)
movea.l a0,a3
move.w #1,(a0)+
move.w 8(a4),(a0)+
loc_6000279A: ; CODE XREF: InstallPatches+1CA↓j
addq.l #2,a1
move.l (a1)+,(a0)+
addq.l #2,a1
subq.w #1,8(a4)
bpl.s loc_6000279A
move.w 4(a4),d0
beq.s loc_600027CC
subq.w #4,sp
move.l #$67706368,-(sp)
move.w 4(a4),-(sp)
dc.w $A9A0 ; _GetResource
move.l (sp)+,d0
bne.s loc_600027CC
btst #1,$A(a4)
bne.s loc_600027E4
moveq #$62,d0 ; 'b'
dc.w $A9C9 ; _SysError
bra.s loc_600027E4
; ---------------------------------------------------------------------------
loc_600027CC: ; CODE XREF: InstallPatches+1D0â†j
; InstallPatches+1E2â†j
lea SystemName,a0
move.l a0,($914).w
move.w 4(a4),d6
movea.l $14(a4),a0
movea.l (a0),a0
move.w 4(a4),d0
jsr (a0)
loc_600027E4: ; CODE XREF: InstallPatches+1EAâ†j
; InstallPatches+1F0â†j
move.l (sp)+,d0
adda.l d0,sp
bra.w loc_60002924
; ---------------------------------------------------------------------------
ipSelector1: ; CODE XREF: InstallPatches+DAâ†j
; DATA XREF: ROM:ipJumpTblâ†o
move.l 2(a2),d1 ; jumptable 600026B4 case 1
move.w 6(a2),d0
move.l a2,-(sp)
bsr.w DetachAndExecute
movea.l (sp)+,a2
bra.w ipReturn ; jumptable 600026B4 cases 5,7
; ---------------------------------------------------------------------------
ipSelector2: ; CODE XREF: InstallPatches+DAâ†j
; DATA XREF: ROM:ipJumpTblâ†o
move.l 2(a2),d6 ; jumptable 600026B4 case 2
move.w 6(a2),d5
clr.w d3
move.l a2,-(sp)
bsr.w ExecuteFromSystem
movea.l (sp)+,a2
bra.w ipReturn ; jumptable 600026B4 cases 5,7
; ---------------------------------------------------------------------------
ipSelector4: ; CODE XREF: InstallPatches+DAâ†j
; DATA XREF: ROM:ipJumpTblâ†o
move.l a2,-(sp) ; jumptable 600026B4 case 4
bsr.w DoSomethingWithTextEdit
movea.l (sp)+,a2
bra.w ipReturn ; jumptable 600026B4 cases 5,7
; ---------------------------------------------------------------------------
ipSelector8_9_10_11_12: ; CODE XREF: InstallPatches+DAâ†j
; DATA XREF: ROM:ipJumpTblâ†o
move.w d0,d1 ; jumptable 600026B4 cases 8-12
move.l a2,-(sp)
clr.w -(sp)
move.w d1,-(sp)
move.w 6(a2),-(sp)
move.w 2(a2),-(sp)
bsr.l sub_6000A740
move.w (sp)+,d0
beq.s loc_60002840
moveq #$62,d0 ; 'b'
dc.w $A9C9 ; _SysError
loc_60002840: ; CODE XREF: InstallPatches+260â†j
movea.l (sp)+,a2
bra.w ipReturn ; jumptable 600026B4 cases 5,7
; ---------------------------------------------------------------------------
ipSelector14_17: ; CODE XREF: InstallPatches+DAâ†j
; DATA XREF: ROM:ipJumpTblâ†o
subq.w #4,sp ; jumptable 600026B4 cases 14,17
move.l #$63667267,-(sp)
move.w 6(a2),-(sp)
dc.w $A9A0 ; _GetResource
move.l (sp)+,d0
beq.w ipReturn ; jumptable 600026B4 cases 5,7
subq.w #2,sp
move.l d0,-(sp)
dc.w $A9A4 ; _HomeResFile
move.w (sp)+,d0
bmi.w ipReturn ; jumptable 600026B4 cases 5,7
bne.s loc_6000286C
move.w ($A58).w,d0
loc_6000286C: ; CODE XREF: InstallPatches+28Câ†j
move.w ($A5A).w,-(sp)
move.w d0,-(sp)
move.w d0,-(sp)
dc.w $A998 ; _UseResFile
move.w (sp)+,d0
move.l a2,-(sp)
subq.w #2,sp
move.w 6(a2),-(sp)
move.w d0,-(sp)
move.w 2(a2),-(sp)
move.w 4(a2),-(sp)
jsr sub_60009CA6
move.w (sp)+,d0
beq.s loc_60002896
moveq #$62,d0 ; 'b'
dc.w $A9C9 ; _SysError
loc_60002896: ; CODE XREF: InstallPatches+2B6â†j
movea.l (sp)+,a2
move.w (sp)+,($A5A).w
bra.w ipReturn ; jumptable 600026B4 cases 5,7
; ---------------------------------------------------------------------------
ipSelector15: ; CODE XREF: InstallPatches+DAâ†j
; DATA XREF: ROM:ipJumpTblâ†o
move.l a2,-(sp) ; jumptable 600026B4 case 15
subq.w #2,sp
move.w 6(a2),-(sp)
jsr sub_60009CA2
addq.w #2,sp
movea.l (sp)+,a2
bra.l ipReturn ; jumptable 600026B4 cases 5,7
; ---------------------------------------------------------------------------
ipSelector16: ; CODE XREF: InstallPatches+DAâ†j
; DATA XREF: ROM:ipJumpTblâ†o
bra.l ipReturn ; jumptable 600026B4 case 16
; ---------------------------------------------------------------------------
ipSelector18: ; CODE XREF: InstallPatches+DAâ†j
; DATA XREF: ROM:ipJumpTblâ†o
move.l a2,-(sp) ; jumptable 600026B4 case 18
subq.w #2,sp
jsr sub_600073B4
move.w (sp)+,d0
movea.l (sp)+,a2
beq.w ipReturn ; jumptable 600026B4 cases 5,7
moveq #$62,d0 ; 'b'
dc.w $A9C9 ; _SysError
bra.w ipReturn ; jumptable 600026B4 cases 5,7
; ---------------------------------------------------------------------------
ipSelector13: ; CODE XREF: InstallPatches+DAâ†j
; DATA XREF: ROM:ipJumpTblâ†o
moveq #$C,d0 ; jumptable 600026B4 case 13
dc.w $A9C9 ; _SysError
ipSelector19: ; CODE XREF: InstallPatches+DAâ†j
; DATA XREF: ROM:ipJumpTblâ†o
move.l a2,-(sp) ; jumptable 600026B4 case 19
move.w 6(a2),-(sp)
jsr sub_60007424
movea.l (sp)+,a2
bra.w ipReturn ; jumptable 600026B4 cases 5,7
; ---------------------------------------------------------------------------
ipSelector20: ; CODE XREF: InstallPatches+DAâ†j
; DATA XREF: ROM:ipJumpTblâ†o
jsr sub_60007598 ; jumptable 600026B4 case 20
bra.w ipReturn ; jumptable 600026B4 cases 5,7
; ---------------------------------------------------------------------------
ipSelector21: ; CODE XREF: InstallPatches+DAâ†j
; DATA XREF: ROM:ipJumpTblâ†o
move.l d0,-(sp) ; jumptable 600026B4 case 21
move.b ($BFF).w,d0
cmpi.b #$FF,d0
beq.s loc_60002918
andi.b #$E0,d0
cmpi.b #$60,d0 ; '`'
bne.s loc_60002918
move.l ($120).w,d0
tst.l d0
beq.s loc_60002918
cmpi.l #$FFFFFFFF,d0
beq.s loc_60002918
dc.w $A9FF ; _Debugger
loc_60002918: ; CODE XREF: InstallPatches+320â†j
; InstallPatches+32Aâ†j ...
move.l (sp)+,d0
; ---------------------------------------------------------------------------
dc.b $60 ; `
dc.b 0
dc.b 0
dc.b 2
; ---------------------------------------------------------------------------
ipReturn: ; CODE XREF: InstallPatches+DAâ†j
; InstallPatches:@return_islandâ†j ...
addq.l #8,a2 ; jumptable 600026B4 cases 5,7
subq.w #1,6(a4)
loc_60002924: ; CODE XREF: InstallPatches+20Eâ†j
tst.w 6(a4)
bge.w ipLoop
movea.l $10(a4),a0
dc.w $A02A ; _HUnlock
move.l a0,-(sp)
dc.w $A9A3 ; _ReleaseResource
movea.l $14(a4),a0
dc.w $A02A ; _HUnlock
move.l a0,-(sp)
dc.w $A9A3 ; _ReleaseResource
lea $18(sp),sp
movem.l (sp)+,d0-d6/a0-a4
rts
; END OF FUNCTION CHUNK FOR InstallPatches
; =============== S U B R O U T I N E =======================================
_CheckForBadRam: ; CODE XREF: ROM:loc_600013ACâ†p
movem.l d2-d3,-(sp)
moveq #3,d2
moveq #0,d3
btst #6,($2400).w
beq.s loc_600029B8
jsr sub_600085A4
tst.l d0
beq.s loc_6000296A
move.w #$AD26,d5
bsr.w HeavyAlert
loc_6000296A: ; CODE XREF: _CheckForBadRam+16â†j
clr.l -(sp)
pea (sp)
jsr sub_6000851C
addq.l #4,sp
move.l (sp)+,d3
tst.w d0
beq.s loc_600029CE
move.l #'nreg',d0
dc.w $A1AD ; _Gestalt
tst.w d0
bne.s loc_600029CE
cmpa.l #$1010000,a0
blt.s loc_600029CE
bra.s loc_60002992
; ---------------------------------------------------------------------------
loc_60002990: ; CODE XREF: _CheckForBadRam+66↓j
lsl.l #8,d3
loc_60002992: ; CODE XREF: _CheckForBadRam+44â†j
move.l d2,-(sp)
subq.w #2,sp
move.b #$5F,-(sp) ; '_'
pea aDiagnostics ; "diagnostics"
move.l #$1B,-(sp)
sub.l d2,(sp)
move.w #$530,d0
dc.w $AAF3 ; _ExpansionBusDispatch
move.b (sp)+,d3
move.l (sp)+,d2
dbf d2,loc_60002990
bra.s loc_600029CE
; ---------------------------------------------------------------------------
loc_600029B6: ; CODE XREF: _CheckForBadRam+80↓j
lsl.l #8,d3
loc_600029B8: ; CODE XREF: _CheckForBadRam+Eâ†j
subq.w #2,sp
move.l #$111B,-(sp)
sub.l d2,(sp)
move.w #$22E,d0
dc.w $AAF3 ; _ExpansionBusDispatch
move.b (sp)+,d3
dbf d2,loc_600029B6
loc_600029CE: ; CODE XREF: _CheckForBadRam+2Eâ†j
; _CheckForBadRam+3Aâ†j ...
move.l d3,d0
move.l d0,d1
movem.l (sp)+,d2-d3
andi.l #$847,d0
beq.s locret_600029FA
move.l d1,d0
andi.l #$807,d0
beq.s loc_600029F2
move.w #$BF89,d5
bsr.w HeavyAlert
bra.s locret_600029FA
; ---------------------------------------------------------------------------
loc_600029F2: ; CODE XREF: _CheckForBadRam+9Câ†j
move.w #$BF87,d5
bsr.w HeavyAlert
locret_600029FA: ; CODE XREF: _CheckForBadRam+92â†j
; _CheckForBadRam+A6â†j
rts
; End of function _CheckForBadRam
; ---------------------------------------------------------------------------
aDiagnostics: dc.b 'diagnostics',0 ; DATA XREF: _CheckForBadRam+50â†o
; =============== S U B R O U T I N E =======================================
_LoadSystemComponents: ; CODE XREF: ROM:loc_600014E6â†p
clr.l -(sp)
clr.w -(sp)
move.w #1,-(sp)
moveq #$14,d0
dc.w $A82A ; _ComponentDispatch
addq.w #4,sp
moveq #$16,d0
dc.w $A82A ; _ComponentDispatch
rts
; End of function _LoadSystemComponents
; =============== S U B R O U T I N E =======================================
_CheckForMinSysEarly: ; CODE XREF: ROM:loc_60000A88â†p
move.l d2,-(sp)
moveq #0,d2
bra.s loc_60002A26
; ---------------------------------------------------------------------------
_CheckForMinSysLate: ; CODE XREF: ROM:loc_60001552â†p
move.l d2,-(sp)
moveq #$FFFFFFFF,d2
loc_60002A26: ; CODE XREF: _CheckForMinSysEarly+4â†j
sf ($A5E).w
subq.w #4,sp
move.l #$6D737973,-(sp)
move.w #$BFFF,-(sp)
dc.w $A9A0 ; _GetResource
st ($A5E).w
tst.l (sp)
beq.s loc_60002A5E
bset #1,($B21).w
movea.l ($358).w,a0
cmpi.w #$FFFB,$4A(a0)
beq.s loc_60002A5E
tst.l d2
beq.s loc_60002A5E
move.w #$BE87,d5
bsr.w HeavyAlert
loc_60002A5E: ; CODE XREF: _CheckForMinSysEarly+22â†j
; _CheckForMinSysEarly+34â†j ...
dc.w $A9A3 ; _ReleaseResource
move.l (sp)+,d2
rts
; End of function _CheckForMinSysEarly
; =============== S U B R O U T I N E =======================================
_ResetPRAM: ; CODE XREF: ROM:loc_60000574â†p
clr.w $14(a5)
movem.l ($174).w,d0-d3
bclr #7,d3
bclr #1,d1
eori.l #$8008004,d1
bne.w locret_60002ACA
bchg #$17,d0
or.l d2,d0
or.l d3,d0
bne.w locret_60002ACA
lea unk_60002AC2,a1
subq.w #4,sp
movea.l sp,a0
move.l #$400B8,d0
dc.w $A051 ; _ReadXPRam
movea.l a1,a0
move.l (a0)+,d0
dc.w $A052 ; _WriteXPRam
lea ($1F8).w,a0
moveq #$FFFFFFFF,d0
move.b d0,(a0)
dc.w $A038 ; _WriteParam
dc.w $A03F ; _InitUtil
movea.l sp,a0
move.l #$400B8,d0
dc.w $A052 ; _WriteXPRam
addq.w #4,sp
move.w #$FFFF,$14(a5)
bra.s locret_60002ACA
; ---------------------------------------------------------------------------
unk_60002AC2: dc.b 0 ; DATA XREF: _ResetPRAM+28â†o
dc.b 4
dc.b 0
dc.b $C
dc.b $47 ; G
dc.b $6F ; o
dc.b $6E ; n
dc.b $65 ; e
; ---------------------------------------------------------------------------
locret_60002ACA: ; CODE XREF: _ResetPRAM+18â†j
; _ResetPRAM+24â†j ...
rts
; End of function _ResetPRAM
; =============== S U B R O U T I N E =======================================
UpdateNameRegistryLib: ; CODE XREF: ROM:60000428â†p
move.l #$6E726567,d0
dc.w $A1AD ; _Gestalt
tst.w d0
bne.w @return
movea.l a0,a3
move.w #$ABE9,d0
dc.w $A746 ; _GetToolTrapAddress
move.l a0,d3
move.w #$9F,d0
dc.w $A746 ; _GetToolTrapAddress
cmp.l a0,d3
bne.w @return
subq.w #4,sp
move.l #$666F7672,-(sp)
move.w #$BFF0,-(sp)
dc.w $A9A0 ; _GetResource
move.l (sp)+,d0
cmpa.l #$1030000,a3
bge.s @opt1
tst.l d0
beq.s @opt2
clr.w -(sp)
move.w #9,-(sp)
move.w #$BFF0,-(sp)
clr.w -(sp)
bsr.l sub_6000A740
move.w (sp)+,d0
bne.s @opt2
subq.w #2,sp
move.l #$6E726567,-(sp)
move.l #$1030000,-(sp)
move.w #$402,d0
dc.w $ABF1 ; _GestaltValueDispatch
move.w (sp)+,d0
@opt1: ; CODE XREF: UpdateNameRegistryLib+3Aâ†j
clr.w -(sp)
move.w #$B,-(sp)
move.w #$BFF0,-(sp)
clr.w -(sp)
bsr.l sub_6000A740
move.w (sp)+,d0
move.w #$ABE9,d0
dc.w $A746 ; _GetToolTrapAddress
move.l a0,d3
move.w #$9F,d0
dc.w $A746 ; _GetToolTrapAddress
cmp.l a0,d3
bne.s @return
@opt2: ; CODE XREF: UpdateNameRegistryLib+3Eâ†j
; UpdateNameRegistryLib+54â†j
lea NameRegReturnCallNotSupported,a2
lea GetEndOfBootCode,a3
suba.l a2,a3
move.l a3,d0
dc.w $A51E ; _NewPtrSys
move.l a0,d0
beq.s @return
move.l a3,d0
movea.l a0,a3
movea.l a0,a1
movea.l a2,a0
dc.w $A02E ; _BlockMove
movea.l a3,a0
clr.w d0
move.w #$ABE9,d0
dc.w $A647 ; _SetToolTrapAddress
@return: ; CODE XREF: UpdateNameRegistryLib+Aâ†j
; UpdateNameRegistryLib+20â†j ...
rts
; End of function UpdateNameRegistryLib
; =============== S U B R O U T I N E =======================================
NameRegReturnCallNotSupported: ; DATA XREF: UpdateNameRegistryLib:@opt2â†o
move.l #$FFFFF603,d0 ; nrCallNotSupported
rts
; End of function NameRegReturnCallNotSupported
; redacted IDA macro
; RESUME
GetEndOfBootCode
move.l (sp), -(sp) ; dup return address (orig to be overwritten by result)
move.l a0, -(sp) ; scratch reg
lea BootCode, a0
add.l BootGlobals.boot3Size(a5), a0
move.l a0, 8(sp)
move.l (sp)+, a0
rts
PROC ; we know that this module-break goes here because
; the assembler puts a lea-string just above
IMPORT FinishMovingBootWorld, LoadDSAT, LoadBelowBufPtr
EXPORT DoSomethingSpecialOnPBG3Series
EXPORT DoSomethingWithTextEdit ; 2c24
EXPORT FiddleWithBacklight
EXPORT _MessWithSomeTraps
EXPORT LoopSnoopInit
EXPORT PatchCompMgrForProgressBar
EXPORT NudgeProgressBar ; 3988
EXPORT _SetUpStartupScreen
EXPORT GetStartupPict
EXPORT BootAlert ; 539a
EXPORT VMName ; 54b6
EXPORT UserModeInitName ; 54c6
EXPORT DebuggerName ; 54e0
EXPORT DisassemblerName ; 54ea
EXPORT SystemName ; 54f8
EXPORT LinkedPatchName ; 54fa
EXPORT InitGreeterWindow
EXPORT PrepForResolutionChangeByThing
EXPORT sub_60005682
EXPORT HeavyAlert
EXPORT sub_60005e0a
EXPORT _LoadNativeDriversFromExtensionFolder
EXPORT PCCardDiskBasedCheckUp
EXPORT _FireWirePerformLateInits
EXPORT _USBDiskCheck
EXPORT _InstallITT
EXPORT _DoSCSILateLoad
EXPORT _MakeObjectSupportLibResidentHack
EXPORT _GoInstallSerialDMA
EXPORT _FinishInitDisplayManager
EXPORT sub_600063c6
EXPORT sub_6000643e
EXPORT sub_600065b4
EXPORT sub_6000663e
EXPORT sub_60006780
EXPORT sub_60006798
EXPORT sub_600067b0
EXPORT sub_600068bc
EXPORT PatchADBReInit
EXPORT _IncreaseEventQueueSize
EXPORT EnforceCDOnlyBoot
EXPORT AdjustRAMForCDBoot
EXPORT sub_6000725a
EXPORT sub_60007634
EXPORT sub_6000780a
EXPORT j_SetColorCodeGestalt
EXPORT j_EmulatorIsOnDisk
EXPORT j__LoadMultitaskingNanoKernel
EXPORT j_DisableEDiskIfNotEnoughRAM
EXPORT sub_60007bde
EXPORT sub_60007d2c
EXPORT j__LoadGoNative
EXPORT j_SetSplitOSGestalt
EXPORT j_SpecialCaseOriginaliMac
EXPORT _InitLotsOfNativeManagers
EXPORT _LoadTimeManagerLib
EXPORT FinalProcessMgrLaunch
EXPORT sub_60008a2e
EXPORT sub_60008a9a
EXPORT _RemoveAlisToUninitializedPAPA
EXPORT _InstallOFDiskNameMaker
EXPORT sub_60008d62
EXPORT sub_60008ff4
EXPORT sub_60009278
EXPORT _ReplaceBridgeVideoDriver
EXPORT sub_600095a6
EXPORT sub_600095d4
EXPORT GetSysVersion
EXPORT sub_60009790
EXPORT sub_6000b5b2
EXPORT sub_6000b80c
EXPORT SetUserVisibleMachineName
EXPORT sub_6000cc4e
EXPORT sub_60009CA6
EXPORT SUB_600073B4
EXPORT SUB_60007424
EXPORT SUB_60007598
EXPORT SUB_6000851C
EXPORT SUB_600085A4
EXPORT SUB_60009CA2
EXPORT SUB_6000A740
STRING AsIs
; YIELD
; redacted IDA macro
; =============== S U B R O U T I N E =======================================
DoSomethingSpecialOnPBG3Series: ; CODE XREF: ROM:loc_600015B0â†p
move.l #$6D616368,d0
dc.w $A1AD ; _Gestalt
bne.s locret_60002BF6
cmpa.w #$138,a0
beq.s @isPBG3Series
cmpa.w #$13A,a0
bne.s locret_60002BF6
@isPBG3Series: ; CODE XREF: DoSomethingSpecialOnPBG3Series+Eâ†j
movea.l #$FEC00000,a0
move.l #$A8000080,(a0)
nop
movea.l #$FEE00000,a0
move.l (a0),d0
movea.l #$FEC00000,a0
move.l #$A8000080,(a0)
movea.l #$FEE00000,a0
ori.l #$10000000,d0
move.l d0,(a0)
nop
locret_60002BF6: ; CODE XREF: DoSomethingSpecialOnPBG3Series+8â†j
; DoSomethingSpecialOnPBG3Series+14â†j
rts
; End of function DoSomethingSpecialOnPBG3Series
; =============== S U B R O U T I N E =======================================
sub_60002BF8: ; DATA XREF: sub_60008C54+DC↓o
var_8 set -8
arg_C set $10
move.l d0,-(sp)
move.l d0,-(sp)
move.l 8+arg_C(sp),d0
movem.l d1-d7/a0-a6,-(sp)
clr.l -(sp)
move.l d0,-(sp)
bsr.l sub_60008E90
move.l (sp)+,d0
movem.l (sp)+,d1-d7/a0-a6
bne.s loc_60002C1C
addq.w #4,sp
move.l (sp)+,d0
rte
; ---------------------------------------------------------------------------
loc_60002C1C: ; CODE XREF: sub_60002BF8+1Câ†j
move.l d0,$C+var_8(sp)
move.l (sp)+,d0
rts
; End of function sub_60002BF8
; =============== S U B R O U T I N E =======================================
DoSomethingWithTextEdit: ; CODE XREF: InstallPatches+23Eâ†p
move.l a0,-(sp)
move.w ($A5A).w,-(sp)
dc.w $A9E6 ; _InitAllPacks
dc.w $A9CC ; _TEInit
move.l a1,-(sp)
movea.l ([$2010],$6C),a0
lea unk_60002CDA,a1
cmpm.l (a0)+,(a1)+
bne.s loc_60002C44
cmpm.l (a0)+,(a1)+
beq.s loc_60002C48
loc_60002C44: ; CODE XREF: DoSomethingWithTextEdit+1Aâ†j
jsr sub_6000A0B6
loc_60002C48: ; CODE XREF: DoSomethingWithTextEdit+1Eâ†j
movea.l (sp)+,a1
jsr sub_6000A0B2
jsr sub_6000A0AE
jsr sub_6000A0AA
jsr sub_6000A0A6
movea.l ($2B6).w,a0
move.l #$7FFF7FFF,$158(a0)
move.l #$80008000,$15C(a0)
jsr sub_6000A0A2
jsr sub_6000A09E
subq.w #2,sp
moveq #$FFFFFFFF,d0
dc.w $ABEB ; _DisplayDispatch
addq.w #2,sp
jsr sub_6000A09A
dc.w $A8FE ; _InitFonts
move.w ($17A).w,d0
cmpi.w #$8805,d0
beq.s loc_60002C9E
move.l #$73637369,d0
dc.w $A1AD ; _Gestalt
tst.w d0
beq.s loc_60002C9E
jsr sub_6000A096
loc_60002C9E: ; CODE XREF: DoSomethingWithTextEdit+68â†j
; DoSomethingWithTextEdit+74â†j
tst.l ($B78).w
bmi.s loc_60002CC0
move.l ($322).w,d0
add.l d0,d0
add.l ($322).w,d0
lea FinishMovingBootWorld,a0
suba.l d0,a0
movea.l d0,a1
moveq #1,d0
; ---------------------------------------------------------------------------
dc.b $A0
dc.b $5C ; \
dc.b $70 ; p
dc.b $FF
dc.b $A0
dc.b $5C ; \
dc.b $60 ; `
dc.b $12
; ---------------------------------------------------------------------------
loc_60002CC0: ; CODE XREF: DoSomethingWithTextEdit+7Eâ†j
move.l $2E(a5),d0
beq.s loc_60002CD2
movea.l d0,a0
movem.l a3-a6,-(sp)
jsr (a0)
movem.l (sp)+,a3-a6
loc_60002CD2: ; CODE XREF: DoSomethingWithTextEdit+A0â†j
move.w (sp)+,($A5A).w
movea.l (sp)+,a0
rts
; End of function DoSomethingWithTextEdit
; ---------------------------------------------------------------------------
unk_60002CDA: dc.b $2F ; / ; DATA XREF: DoSomethingWithTextEdit+14â†o
dc.b $30 ; 0
dc.b $81
dc.b $E2
dc.b $20
dc.b $10
dc.b 0
dc.b $BC
; =============== S U B R O U T I N E =======================================
sub_60002CE2: ; CODE XREF: InitGreeterWindow+A↓p
clr.b ($8F3).w
movem.l a0-a2,-(sp)
move.w ($A5A).w,-(sp)
bsr.w sub_60002D1E
move.l #$62756778,d0
dc.w $A1AD ; _Gestalt
bne.s loc_60002D04
move.l a0,d0
btst #$13,d0
bne.s loc_60002D0A
loc_60002D04: ; CODE XREF: sub_60002CE2+18â†j
jsr sub_60002DAA
bra.s loc_60002D0E
; ---------------------------------------------------------------------------
loc_60002D0A: ; CODE XREF: sub_60002CE2+20â†j
jsr sub_6000A0BA
loc_60002D0E: ; CODE XREF: sub_60002CE2+26â†j
move.l (a5),-(sp)
dc.w $A86E ; _InitGraf
dc.w $AA90 ; _InitPalettes
move.w (sp)+,($A5A).w
movem.l (sp)+,a0-a2
rts
; End of function sub_60002CE2
; =============== S U B R O U T I N E =======================================
sub_60002D1E: ; CODE XREF: sub_60002CE2+Câ†p
move.l ($8A4).w,d0
beq.w locret_60002DA8
movea.l d0,a0
movea.l (a0),a0
move.w $14(a0),d0
btst #0,d0
bne.s locret_60002DA8
cmpi.w #0,4(a0)
bne.s locret_60002DA8
link a6,#-$14A
move.l a5,-4(a6)
lea -8(a6),a5
pea -$C(a6)
dc.w $A86E ; _InitGraf
pea -$14A(a6)
dc.w $A86F ; _OpenPort
movea.l (a5),a2
lea -$74(a2),a0
move.l a0,-(sp)
tst.b ($B3E).w
bne.s loc_60002D6A
pea -$18(a2)
dc.w $A8A5 ; _FillRect
bra.s loc_60002D9C
; ---------------------------------------------------------------------------
loc_60002D6A: ; CODE XREF: sub_60002D1E+42â†j
lea -$DE(a6),a1
move.l a1,-(sp)
move.l a1,-(sp)
move.l (a0)+,(a1)+
move.l (a0),(a1)
move.l #$FFFDFFFD,-(sp)
dc.w $A8A9 ; _InsetRect
move.l #$30003,-(sp)
dc.w $A89B ; _PenSize
move.l #$160016,-(sp)
dc.w $A8B0 ; _FrameRoundRect
dc.w $A89E ; _PenNormal
move.l #$100010,-(sp)
pea -$18(a2)
dc.w $A8B4 ; _FillRoundRect
loc_60002D9C: ; CODE XREF: sub_60002D1E+4Aâ†j
pea -$14A(a6)
dc.w $A87D ; _ClosePort
movea.l -4(a6),a5
unlk a6
locret_60002DA8: ; CODE XREF: sub_60002D1E+4â†j
; sub_60002D1E+14â†j ...
rts
; End of function sub_60002D1E
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_60002DAA: ; CODE XREF: sub_60002CE2:loc_60002D04â†p
bra.w sub_60002E6C
; End of function sub_60002DAA
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60002DAE: ; CODE XREF: sub_60002E6C+10↓p
; sub_60002E6C+B4↓p
var_84 set -$84
var_40 set -$40
link a6,#-$B4
move.l a2,-(sp)
movea.l (a0),a2
cmpi.w #0,4(a2)
bne.s loc_60002E04
cmpa.w #$FFFF,a1
beq.s loc_60002DC8
movea.l a1,a0
bra.s loc_60002DD2
; ---------------------------------------------------------------------------
loc_60002DC8: ; CODE XREF: sub_60002DAE+14â†j
movea.l $16(a2),a0
movea.l (a0),a0
movea.l $2A(a0),a0
loc_60002DD2: ; CODE XREF: sub_60002DAE+18â†j
dc.w $A029 ; _HLock
move.l a0,-(sp)
movea.l (a0),a0
lea var_84(a6),a1
clr.w 4(a1)
move.w 6(a0),6(a1)
lea 8(a0),a0
move.l a0,(a1)
lea var_40(a6),a0
move.w (a2),$18(a0)
move.w #3,$1A(a0)
move.l a1,$1C(a0)
dc.w $A204 ; _PBControlImmed
movea.l (sp)+,a0
dc.w $A02A ; _HUnlock
loc_60002E04: ; CODE XREF: sub_60002DAE+Eâ†j
movea.l (sp)+,a2
unlk a6
rts
; End of function sub_60002DAE
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60002E0A: ; CODE XREF: sub_60002E6C+A6↓p
var_84 set -$84
var_40 set -$40
link a6,#-$B4
movem.l a2-a3,-(sp)
movea.l (a0),a2
movea.l a1,a3
lea var_84(a6),a1
move.l a3,(a1)
lea var_40(a6),a0
move.w (a2),$18(a0)
move.w #4,$1A(a0)
move.l a1,$1C(a0)
dc.w $A204 ; _PBControlImmed
movem.l (sp)+,a2-a3
unlk a6
rts
; End of function sub_60002E0A
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60002E38: ; CODE XREF: sub_60002E6C+50↓p
var_B4 set -$B4
var_94 set -$94
var_40 set -$40
link a6,#-$B4
move.l a2,-(sp)
movea.l (a0),a2
lea var_94(a6),a1
move.l #$FFFFFFFE,(a1)
lea var_B4(a6),a0
move.l a0,$C(a1)
lea var_40(a6),a0
move.w (a2),$18(a0)
move.w #$14,$1A(a0)
move.l a1,$1C(a0)
dc.w $A205 ; _PBStatusImmed
movea.l (sp)+,a2
unlk a6
rts
; End of function sub_60002E38
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60002E6C: ; CODE XREF: sub_60002DAAâ†j
var_78 set -$78
link a6,#-$8C
movem.l d0-d7/a0-a4,-(sp)
movea.l ($8A8).w,a0
movea.w #$FFFF,a1
bsr.w sub_60002DAE
; ---------------------------------------------------------------------------
dc.b $60 ; `
dc.b 0
dc.b 0
dc.b 2
; ---------------------------------------------------------------------------
clr.l -(sp)
move.l #$67616D61,-(sp)
clr.w -(sp)
dc.w $A80C ; _rGetResource
move.l (sp),-(sp)
dc.w $A992 ; _DetachResource
movea.l (sp)+,a0
dc.w $A04A ; _HNoPurge
movea.l a0,a2
movea.l ($8A8).w,a3
loc_60002E9E: ; CODE XREF: sub_60002E6C+BE↓j
movea.l a3,a4
movea.l (a4),a4
move.w (a4),d0
not.w d0
movea.l ($11C).w,a0
movea.l (a0,d0.w*4),a0
movea.l (a0),a0
move.b $28(a0),d0
cmpi.b #$F,d0
bcs.s loc_60002EC4
movea.l a3,a0
bsr.w sub_60002E38
bne.s loc_60002F0A
bra.s loc_60002F24
; ---------------------------------------------------------------------------
loc_60002EC4: ; CODE XREF: sub_60002E6C+4Câ†j
lea var_78(a6),a0
move.b d0,$31(a0)
clr.w $32(a0)
clr.w $33(a0)
move.b #1,$30(a0)
move.w #3,$28(a0)
move.w #1,$2A(a0)
move.w #1,$2C(a0)
clr.w $34(a0)
moveq #$15,d0
dc.w $A06E ; _SlotManager
bne.s loc_60002F24
cmpi.w #1,$2E(a0)
beq.s loc_60002F24
move.b #$40,$32(a0) ; '@'
moveq #6,d0
dc.w $A06E ; _SlotManager
beq.s loc_60002F24
loc_60002F0A: ; CODE XREF: sub_60002E6C+54â†j
movea.l a2,a0
dc.w $A029 ; _HLock
movea.l (a0),a1
movea.l a3,a0
bsr.w sub_60002E0A
movea.l a2,a0
dc.w $A02A ; _HUnlock
movea.l a3,a0
movea.w #$FFFF,a1
bsr.w sub_60002DAE
loc_60002F24: ; CODE XREF: sub_60002E6C+56â†j
; sub_60002E6C+88â†j ...
move.l $1E(a4),d0
movea.l d0,a3
bne.w loc_60002E9E
movea.l a2,a0
dc.w $A023 ; _DisposeHandle
bra.w loc_60002FCE
; End of function sub_60002E6C
; =============== S U B R O U T I N E =======================================
sub_60002F36: ; DATA XREF: sub_60002F58+10↓o
; sub_60002F78+22↓o
subq.w #2,sp
move.l 2(sp),(sp)
move sr,4(sp)
move.l d0,-(sp)
moveq #7,d0
and.b 8(sp),d0
subq.b #2,d0
bge.s loc_60002F54
ori #$200,sr
andi #$FAFF,sr
loc_60002F54: ; CODE XREF: sub_60002F36+14â†j
move.l (sp)+,d0
rts
; End of function sub_60002F36
; =============== S U B R O U T I N E =======================================
sub_60002F58: ; CODE XREF: sub_60002F78+F8↓p
; sub_60002F78+100↓p ...
cmp.w (a1,d0.w),d6
bne.s loc_60002F72
cmp.l 2(a1,d0.w),d7
bne.s loc_60002F72
move.w (a6),(a1,d0.w)
lea sub_60002F36,a5
move.l a5,2(a1,d0.w)
rts
; ---------------------------------------------------------------------------
loc_60002F72: ; CODE XREF: sub_60002F58+4â†j
; sub_60002F58+Aâ†j
addq.w #4,sp
bra.w loc_600030BC
; End of function sub_60002F58
; =============== S U B R O U T I N E =======================================
sub_60002F78: ; CODE XREF: sub_60002F78+136↓p
move.l a0,-(sp)
lea unk_60002FBA,a0
move.l (a0)+,d1
cmp.l $9BA(a1),d1
bne.s loc_60002FAC
move.l (a0)+,d1
cmp.l $9BE(a1),d1
bne.s loc_60002FAC
move.w (a0)+,d1
cmp.w $9C2(a1),d1
bne.s loc_60002FAC
move.w (a6),$9BA(a1)
lea sub_60002F36,a5
move.l a5,$9BC(a1)
move.l 6(a6),$9C0(a1)
movea.l (sp)+,a0
rts
; ---------------------------------------------------------------------------
loc_60002FAC: ; CODE XREF: sub_60002F78+Câ†j
; sub_60002F78+14â†j ...
movea.l (sp)+,a0
addq.w #4,sp
bra.w loc_600030BC
; ---------------------------------------------------------------------------
unk_60002FB4: dc.b $40 ; @ ; DATA XREF: sub_60002F78+62↓o
dc.b $E7
dc.b 0
dc.b $7C ; |
dc.b 7
dc.b 0
unk_60002FBA: dc.b $40 ; @ ; DATA XREF: sub_60002F78+2â†o
dc.b $C0
dc.b $3F ; ?
dc.b 0
dc.b 0
dc.b $40 ; @
dc.b 7
dc.b 0
dc.b $46 ; F
dc.b $C0
unk_60002FC4: dc.b $4E ; N ; DATA XREF: sub_60002F78+6E↓o
dc.b $B9
dc.b $7F ; 
dc.b $FF
dc.b $FF
dc.b $FF
dc.b $4E ; N
dc.b $71 ; q
dc.b $4E ; N
dc.b $71 ; q
; ---------------------------------------------------------------------------
loc_60002FCE: ; CODE XREF: sub_60002E6C+C6â†j
movem.l a5-a6,-(sp)
movea.l ($11C).w,a2
suba.w #$38,sp ; '8'
lea unk_60002FB4,a0
move.w (a0),d6
move.l 2(a0),d7
moveq #0,d5
lea unk_60002FC4,a6
movea.l ($8A8).w,a3
movea.l (a3),a3
loc_60002FF0: ; CODE XREF: sub_60002F78+14E↓j
move.w (a3),d0
not.w d0
movea.l (a2,d0.w*4),a1
movea.l (a1),a1
movea.l (a1),a4
move.w 4(a1),d0
btst #6,d0
beq.s loc_60003008
movea.l (a4),a4
loc_60003008: ; CODE XREF: sub_60002F78+8Câ†j
movea.l sp,a0
move.b $28(a1),$31(a0)
move.b $29(a1),$32(a0)
move.b $32(a1),$33(a0)
moveq #$16,d0
dc.w $A06E ; _SlotManager
bne.w loc_600030CA
move.b #7,$32(a0)
moveq #1,d0
dc.w $A06E ; _SlotManager
bne.s loc_6000303E
move.l (a0),d0
btst #2,d0
beq.s loc_6000303E
bset #8,$14(a3)
loc_6000303E: ; CODE XREF: sub_60002F78+B6â†j
; sub_60002F78+BEâ†j
movea.l a4,a1
move.l $14(a1),d0
cmpi.l #$44725756,d0
beq.s loc_6000306C
cmpi.l #$44725056,d0
beq.s loc_6000306C
cmpi.l #$44697370,d0
bne.w loc_600030BC
move.l $26(a1),d0
cmpi.l #$655F4852,d0
beq.s loc_60003096
bra.s loc_600030BC
; ---------------------------------------------------------------------------
loc_6000306C: ; CODE XREF: sub_60002F78+D2â†j
; sub_60002F78+DAâ†j
move.w #$2DA,d0
bsr.w sub_60002F58
move.w #$388,d0
bsr.w sub_60002F58
move.w #$4D8,d0
bsr.w sub_60002F58
move.w #$630,d0
bsr.w sub_60002F58
move.w #$8CC,d0
bsr.w sub_60002F58
bra.s loc_600030BA
; ---------------------------------------------------------------------------
loc_60003096: ; CODE XREF: sub_60002F78+F0â†j
move.w #$45A,d0
bsr.w sub_60002F58
move.w #$58A,d0
bsr.w sub_60002F58
move.w #$6F2,d0
bsr.w sub_60002F58
bsr.w sub_60002F78
move.w #$A1E,d0
bsr.w sub_60002F58
loc_600030BA: ; CODE XREF: sub_60002F78+11Câ†j
addq.w #1,d5
loc_600030BC: ; CODE XREF: sub_60002F58+1Câ†j
; sub_60002F78+38â†j ...
move.l $1E(a3),d0
beq.s loc_600030CA
movea.l d0,a3
movea.l (a3),a3
bra.w loc_60002FF0
; ---------------------------------------------------------------------------
loc_600030CA: ; CODE XREF: sub_60002F78+A8â†j
; sub_60002F78+148â†j
lea $38(sp),sp
movem.l (sp)+,a5-a6
movem.l (sp)+,d0-d7/a0-a4
unlk a6
rts
; End of function sub_60002F78
; =============== S U B R O U T I N E =======================================
sub_600030DA: ; CODE XREF: sub_60004960↓j
var_4 set -4
subq.l #6,sp
pea 6+var_4(sp)
move.w #$203,d0
dc.w $AA68 ; _DialogDispatch
tst.w (sp)+
bne.s loc_600030EE
movea.l (sp)+,a0
jmp (a0)
; ---------------------------------------------------------------------------
loc_600030EE: ; CODE XREF: sub_600030DA+Eâ†j
movea.l (sp)+,a0
; ---------------------------------------------------------------------------
dc.b $DE
dc.b $FC
dc.b 0
dc.b $C
; ---------------------------------------------------------------------------
clr.w (sp)
jmp (a0)
; End of function sub_600030DA
; =============== S U B R O U T I N E =======================================
sub_600030F8: ; CODE XREF: sub_60004F12↓j
movea.l (sp)+,a1
movea.l (sp)+,a0
dc.w $A021 ; _GetPtrSize
move.l d0,(sp)
bpl.s loc_60003104
clr.l (sp)
loc_60003104: ; CODE XREF: sub_600030F8+8â†j
jmp (a1)
; End of function sub_600030F8
; =============== S U B R O U T I N E =======================================
sub_60003106: ; CODE XREF: sub_60003ED4↓j
; sub_60007424+7A↓p ...
movea.l (sp)+,a1
movea.l (sp)+,a0
dc.w $A025 ; _GetHandleSize
move.l d0,(sp)
bpl.s loc_60003112
clr.l (sp)
loc_60003112: ; CODE XREF: sub_60003106+8â†j
jmp (a1)
; End of function sub_60003106
; =============== S U B R O U T I N E =======================================
sub_60003114: ; CODE XREF: FiddleWithBacklight+1A↓p
arg_C set $10
arg_12 set $16
arg_2C set $30
arg_30 set $34
arg_34 set $38
moveq #$18,d0
loc_60003116: ; CODE XREF: sub_60003114+4↓j
clr.w -(sp)
dbf d0,loc_60003116
move.l 2+arg_34(sp),2+arg_C(sp)
movea.l sp,a0
dc.w $A000 ; _Open
movea.l 2+arg_30(sp),a0
move.w 2+arg_12(sp),(a0)
movea.l 2+arg_2C(sp),a0
lea $3E(sp),sp
move.w d0,(sp)
jmp (a0)
; End of function sub_60003114
; ---------------------------------------------------------------------------
dc.b $22 ; "
dc.b $5F ; _
dc.b $12
dc.b $1F
dc.b $30 ; 0
dc.b $1F
dc.b $4A ; J
dc.b 1
dc.b $67 ; g
dc.b 4
dc.b $A7
dc.b $46 ; F
dc.b $60 ; `
dc.b 2
dc.b $A3
dc.b $46 ; F
dc.b $2E ; .
dc.b $88
dc.b $4E ; N
dc.b $D1
dc.b $22 ; "
dc.b $5F ; _
dc.b $12
dc.b $1F
dc.b $30 ; 0
dc.b $1F
dc.b $20
dc.b $5F ; _
dc.b $4A ; J
dc.b 1
dc.b $67 ; g
dc.b 4
dc.b $A6
dc.b $47 ; G
dc.b $60 ; `
dc.b 2
dc.b $A2
dc.b $47 ; G
dc.b $4E ; N
dc.b $D1
; =============== S U B R O U T I N E =======================================
sub_60003162: ; CODE XREF: sub_60004668+5E↓p
; sub_60004CCA↓j ...
arg_0 set 4
arg_2 set 6
arg_4 set 8
arg_8 set $C
arg_C set $10
movea.l arg_8(sp),a0
movea.l arg_4(sp),a1
moveq #0,d0
move.b (a0)+,d0
swap d0
move.b (a1)+,d0
tst.b arg_0(sp)
beq.s loc_60003186
tst.b arg_2(sp)
beq.s loc_60003182
dc.w $A43C ; _CaseSensitiveEqualString
bra.s loc_60003192
; ---------------------------------------------------------------------------
loc_60003182: ; CODE XREF: sub_60003162+1Aâ†j
dc.w $A03C ; _CmpString
bra.s loc_60003192
; ---------------------------------------------------------------------------
loc_60003186: ; CODE XREF: sub_60003162+14â†j
tst.b arg_2(sp)
beq.s loc_60003190
dc.w $A63C ; _CaseAndMarkSensitiveEqualString
bra.s loc_60003192
; ---------------------------------------------------------------------------
loc_60003190: ; CODE XREF: sub_60003162+28â†j
dc.w $A23C ; _MarkSensitiveEqualString
loc_60003192: ; CODE XREF: sub_60003162+1Eâ†j
; sub_60003162+22â†j ...
eori.b #1,d0
move.b d0,arg_C(sp)
movea.l (sp)+,a0
lea $C(sp),sp
jmp (a0)
; End of function sub_60003162
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600031A2: ; CODE XREF: PlayWithNewNanoKernel+184↓p
; PlayWithNewNanoKernel+1B0↓p
arg_0 set 8
arg_2 set $A
link a6,#-$32
movea.l sp,a0
move.w arg_0(a6),$18(a0)
dc.w $A001 ; _Close
move.w d0,arg_2(a6)
unlk a6
movea.l (sp)+,a0
addq.l #2,sp
jmp (a0)
; End of function sub_600031A2
; =============== S U B R O U T I N E =======================================
sub_600031BC: ; CODE XREF: PlayWithNewNanoKernel+144↓p
sf d1
bra.s loc_600031C2
; End of function sub_600031BC
; =============== S U B R O U T I N E =======================================
sub_600031C0: ; CODE XREF: PlayWithNewNanoKernel+168↓p
st d1
loc_600031C2: ; CODE XREF: sub_600031BC+2â†j
link a6,#-$32
movea.l sp,a0
move.l 8(a6),$20(a0)
move.w $10(a6),$18(a0)
movea.l $C(a6),a1
move.l (a1),$24(a0)
clr.w $2C(a0)
clr.l $2E(a0)
tst.b d1
bne.s loc_600031EC
dc.w $A002 ; _Read
bra.s loc_600031EE
; ---------------------------------------------------------------------------
loc_600031EC: ; CODE XREF: sub_600031C0+26â†j
dc.w $A003 ; _Write
loc_600031EE: ; CODE XREF: sub_600031C0+2Aâ†j
move.w d0,$12(a6)
movea.l $C(a6),a1
move.l $28(a0),(a1)
unlk a6
movea.l (sp)+,a1
lea $A(sp),sp
jmp (a1)
; End of function sub_600031C0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60003204: ; CODE XREF: PlayWithNewNanoKernel+F8↓p
arg_0 set 8
arg_4 set $C
arg_6 set $E
link a6,#-$32
movea.l sp,a0
move.w arg_4(a6),$18(a0)
move.l arg_0(a6),$1C(a0)
dc.w $A012 ; _SetEOF
move.w d0,arg_6(a6)
unlk a6
movea.l (sp)+,a1
addq.l #6,sp
jmp (a1)
; End of function sub_60003204
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60003224: ; CODE XREF: PlayWithNewNanoKernel+88↓p
; PlayWithNewNanoKernel+10E↓p
arg_0 set 8
arg_4 set $C
arg_6 set $E
arg_8 set $10
link a6,#-$32
movea.l sp,a0
move.w arg_6(a6),$18(a0)
move.w arg_4(a6),$2C(a0)
move.l arg_0(a6),$2E(a0)
dc.w $A044 ; _SetFPos
move.w d0,arg_8(a6)
unlk a6
movea.l (sp)+,a1
addq.l #8,sp
jmp (a1)
; End of function sub_60003224
; ---------------------------------------------------------------------------
dc.b $4E ; N
dc.b $56 ; V
dc.b 0
dc.b 0
dc.b $20
dc.b $6E ; n
dc.b 0
dc.b $10
dc.b $22 ; "
dc.b $6E ; n
dc.b 0
dc.b $C
dc.b $70 ; p
dc.b 0
dc.b $10
dc.b $18
dc.b $48 ; H
dc.b $40 ; @
dc.b $10
dc.b $19
dc.b $4A ; J
dc.b $2E ; .
dc.b 0
dc.b 8
dc.b $67 ; g
dc.b $E
dc.b $4A ; J
dc.b $2E ; .
dc.b 0
dc.b $A
dc.b $67 ; g
dc.b 4
dc.b $A4
dc.b $50 ; P
dc.b $60 ; `
dc.b $10
dc.b $A0
dc.b $50 ; P
dc.b $60 ; `
dc.b $C
dc.b $4A ; J
dc.b $2E ; .
dc.b 0
dc.b $A
dc.b $67 ; g
dc.b 4
dc.b $A6
dc.b $50 ; P
dc.b $60 ; `
dc.b 2
dc.b $A2
dc.b $50 ; P
dc.b $3D ; =
dc.b $40 ; @
dc.b 0
dc.b $14
dc.b $4E ; N
dc.b $5E ; ^
dc.b $20
dc.b $5F ; _
dc.b $4F ; O
dc.b $EF
dc.b 0
dc.b $C
dc.b $4E ; N
dc.b $D0
; =============== S U B R O U T I N E =======================================
sub_6000328C: ; CODE XREF: sub_60004668+78↓p
; sub_60004668+1BC↓p ...
arg_0 set 4
arg_4 set 8
movea.l arg_0(sp),a0
move.l arg_4(sp),d0
clr.w -(sp)
dc.w $A9EE ; _Pack7 ; Binary/Decimal conversion
movea.l (sp)+,a0
addq.w #8,sp
jmp (a0)
; End of function sub_6000328C
; =============== S U B R O U T I N E =======================================
sub_6000329E: ; CODE XREF: sub_6000780E+48↓p
; sub_6000780E+5E↓p
arg_0 set 4
arg_4 set 8
movea.l arg_0(sp),a0
movea.l (a0),a0
dc.w $A9E1 ; _HandToHand
movea.l arg_0(sp),a1
move.l a0,(a1)
move.w d0,arg_4(sp)
move.l (sp)+,(sp)
rts
; End of function sub_6000329E
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600032B4: ; CODE XREF: sub_60003ED8+3E↓p
; sub_6000437C↓j ...
arg_0 set 8
arg_2 set $A
arg_4 set $C
link a6,#0
subq.w #4,sp
move.l #$53545223,-(sp)
move.w arg_2(a6),-(sp)
dc.w $A9A0 ; _GetResource
movea.l arg_4(a6),a1
clr.b (a1)
move.l (sp)+,d0
beq.s loc_600032F2
movea.l d0,a0
movea.l (a0),a0
move.w (a0)+,d0
move.w arg_0(a6),d1
beq.s loc_600032F2
cmp.w d0,d1
bhi.s loc_600032F2
moveq #0,d0
loc_600032E2: ; CODE XREF: sub_600032B4+36↓j
subq.w #1,d1
beq.s loc_600032EC
move.b (a0)+,d0
adda.l d0,a0
bra.s loc_600032E2
; ---------------------------------------------------------------------------
loc_600032EC: ; CODE XREF: sub_600032B4+30â†j
move.b (a0),d0
addq.w #1,d0
dc.w $A02E ; _BlockMove
loc_600032F2: ; CODE XREF: sub_600032B4+1Aâ†j
; sub_600032B4+26â†j ...
unlk a6
movea.l (sp)+,a0
addq.l #8,sp
jmp (a0)
; End of function sub_600032B4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600032FA: ; CODE XREF: sub_6000905A+1CE↓p
var_7C set -$7C
var_6A set -$6A
var_66 set -$66
var_62 set -$62
var_4C set -$4C
arg_0 set 8
arg_4 set $C
arg_8 set $10
arg_A set $12
link a6,#-$7C
move.w arg_8(a6),var_66(a6)
move.l arg_4(a6),var_4C(a6)
move.l arg_0(a6),var_6A(a6)
clr.b var_62(a6)
lea var_7C(a6),a0
dc.w $A209 ; _PBHDeleteSync
move.w d0,arg_A(a6)
unlk a6
movea.l (sp)+,a0
lea $A(sp),sp
jmp (a0)
; End of function sub_600032FA
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60003328: ; CODE XREF: sub_6000725A+136↓p
var_7C set -$7C
var_6A set -$6A
var_66 set -$66
var_62 set -$62
var_60 set -$60
var_4C set -$4C
arg_0 set 8
arg_4 set $C
arg_8 set $10
arg_C set $14
arg_E set $16
link a6,#-$7C
move.w arg_C(a6),var_66(a6)
move.l arg_8(a6),var_4C(a6)
move.l arg_4(a6),var_6A(a6)
clr.b var_62(a6)
move.l arg_0(a6),var_60(a6)
lea var_7C(a6),a0
dc.w $A20B ; _PBHRenameSync
move.w d0,arg_E(a6)
unlk a6
movea.l (sp)+,a0
lea $E(sp),sp
jmp (a0)
; End of function sub_60003328
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000335C: ; CODE XREF: sub_6000905A+16C↓p
; sub_6000905A+1B6↓p
var_34 set -$34
var_22 set -$22
var_1E set -$1E
var_18 set -$18
var_10 set -$10
var_4 set -4
arg_0 set 8
arg_4 set $C
arg_8 set $10
arg_C set $14
arg_10 set $18
arg_12 set $1A
link a6,#-$34
move.l arg_8(a6),var_22(a6)
move.w arg_10(a6),var_1E(a6)
move.l arg_C(a6),var_4(a6)
move.l arg_4(a6),var_10(a6)
move.l arg_0(a6),var_18(a6)
lea var_34(a6),a0
moveq #5,d0
dc.w $A260 ; _HFSDispatch
move.w d0,arg_12(a6)
unlk a6
movea.l (sp)+,a0
lea $12(sp),sp
jmp (a0)
; End of function sub_6000335C
; =============== S U B R O U T I N E =======================================
sub_60003394: ; CODE XREF: sub_60005280↓j
; sub_600097E4+42↓p
arg_8 set $C
move.l (sp)+,d0
movea.l (sp)+,a1
movea.l (sp)+,a0
move.l d0,-(sp)
moveq #0,d0
moveq #0,d1
move.b (a0)+,d0
move.b (a1)+,d1
sub.w d1,d0
bge.s loc_600033AA
add.w d0,d1
loc_600033AA: ; CODE XREF: sub_60003394+12â†j
cmp.b d0,d0
bra.s loc_600033B0
; ---------------------------------------------------------------------------
loc_600033AE: ; CODE XREF: sub_60003394:loc_600033B0↓j
cmpm.b (a1)+,(a0)+
loc_600033B0: ; CODE XREF: sub_60003394+18â†j
dbne d1,loc_600033AE
beq.s loc_600033C0
blt.s loc_600033BC
moveq #1,d0
bra.s loc_600033C0
; ---------------------------------------------------------------------------
loc_600033BC: ; CODE XREF: sub_60003394+22â†j
moveq #1,d0
neg.w d0
loc_600033C0: ; CODE XREF: sub_60003394+20â†j
; sub_60003394+26â†j
move.w d0,-8+arg_8(sp)
rts
; End of function sub_60003394
; ---------------------------------------------------------------------------
dc.b $88
dc.b $50 ; P
dc.b $4C ; L
dc.b $53 ; S
dc.b $74 ; t
dc.b $72 ; r
dc.b $43 ; C
dc.b $6D ; m
dc.b $70 ; p
dc.b 0
dc.b 0
dc.b 0
; =============== S U B R O U T I N E =======================================
sub_600033D2: ; CODE XREF: sub_60004CC6↓j
; sub_600097E4+50↓p
move.l (sp)+,d0
movea.l (sp)+,a1
movea.l (sp)+,a0
move.l a0,(sp)
move.l d0,-(sp)
moveq #0,d0
move.b (a1)+,d0
move.b d0,(a0)+
bra.s loc_600033E6
; ---------------------------------------------------------------------------
loc_600033E4: ; CODE XREF: sub_600033D2:loc_600033E6↓j
move.b (a1)+,(a0)+
loc_600033E6: ; CODE XREF: sub_600033D2+10â†j
dbf d0,loc_600033E4
rts
; End of function sub_600033D2
; ---------------------------------------------------------------------------
dc.b $88
dc.b $50 ; P
dc.b $4C ; L
dc.b $53 ; S
dc.b $74 ; t
dc.b $72 ; r
dc.b $43 ; C
dc.b $70 ; p
dc.b $79 ; y
dc.b 0
dc.b 0
dc.b 0
; =============== S U B R O U T I N E =======================================
sub_600033F8: ; CODE XREF: ROM:loc_60005502↓j
; sub_60007634+10E↓p
arg_0 set 4
movem.l arg_0(sp),a0-a1
moveq #0,d0
cmpa.l a0,a1
beq.s loc_6000340E
loc_60003404: ; CODE XREF: sub_600033F8+14↓j
move.b (a0)+,d0
cmp.b (a1)+,d0
bne.s loc_60003412
tst.b d0
bne.s loc_60003404
loc_6000340E: ; CODE XREF: sub_600033F8+Aâ†j
moveq #0,d0
rts
; ---------------------------------------------------------------------------
loc_60003412: ; CODE XREF: sub_600033F8+10â†j
moveq #0,d1
move.b -(a1),d1
sub.l d1,d0
rts
; End of function sub_600033F8
; ---------------------------------------------------------------------------
dc.b $86
dc.b $73 ; s
dc.b $74 ; t
dc.b $72 ; r
dc.b $63 ; c
dc.b $6D ; m
dc.b $70 ; p
dc.b 0
dc.b 0
dc.b 0
; =============== S U B R O U T I N E =======================================
sub_60003424: ; CODE XREF: sub_60006828+68↓p
arg_0 set 4
movem.l d2-d3,-(sp)
movem.l 8+arg_0(sp),d0-d1
loc_6000342E: ; CODE XREF: sub_60003424+1C↓j
movea.l d0,a0
movea.l d1,a1
loc_60003432: ; CODE XREF: sub_60003424+18↓j
move.b (a1)+,d3
beq.s loc_60003444
move.b (a0)+,d2
beq.s loc_60003442
cmp.b d2,d3
beq.s loc_60003432
addq.l #1,d0
bra.s loc_6000342E
; ---------------------------------------------------------------------------
loc_60003442: ; CODE XREF: sub_60003424+14â†j
moveq #0,d0
loc_60003444: ; CODE XREF: sub_60003424+10â†j
movem.l (sp)+,d2-d3
rts
; End of function sub_60003424
; ---------------------------------------------------------------------------
dc.b $86
dc.b $73 ; s
dc.b $74 ; t
dc.b $72 ; r
dc.b $73 ; s
dc.b $74 ; t
dc.b $72 ; r
dc.b 0
dc.b 0
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60003454: ; CODE XREF: sub_60003476+E↓p
arg_0 set 8
link a6,#0
movea.l arg_0(a6),a1
move.w #1,(a1)
clr.w 2(a1)
moveq #0,d0
move.l d0,4(a1)
move.l d0,8(a1)
move.l d0,$C(a1)
unlk a6
rts
; End of function sub_60003454
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60003476: ; CODE XREF: FiddleWithBacklight+44↓p
var_3A set -$3A
var_32 set -$32
var_20 set -$20
var_1A set -$1A
var_18 set -$18
var_16 set -$16
arg_0 set 8
arg_4 set $C
link a6,#-$32
movem.l d7/a4,-(sp)
movea.l arg_4(a6),a4
move.l a4,-(sp)
jsr sub_60003454
moveq #0,d0
move.l d0,var_20(a6)
movea.l arg_0(a6),a0
movea.l (a0),a0
move.w (a0),var_1A(a6)
move.w #$C,var_18(a6)
move.l a4,var_16(a6)
lea var_32(a6),a0
dc.w $A005 ; _Status
move.w d0,d7
movem.l var_3A(a6),d7/a4
unlk a6
rts
; End of function sub_60003476
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600034B4: ; CODE XREF: sub_60003516+22↓p
; sub_60003516+40↓p
var_3E set -$3E
var_32 set -$32
var_20 set -$20
var_1A set -$1A
var_18 set -$18
var_16 set -$16
arg_0 set 8
arg_4 set $C
link a6,#-$32
movem.l d7/a3-a4,-(sp)
movea.l arg_0(a6),a3
movea.l arg_4(a6),a4
moveq #$FFFFFFCE,d7
move.l a3,d0
beq.s loc_6000350A
move.l a4,d0
beq.s loc_6000350A
clr.w 4(a4)
clr.w 6(a4)
moveq #0,d0
move.l d0,8(a4)
move.l d0,$C(a4)
move.l d0,$10(a4)
move.l d0,var_20(a6)
movea.l (a3),a0
move.w (a0),var_1A(a6)
move.w #$1C,var_18(a6)
move.l a4,var_16(a6)
lea var_32(a6),a0
dc.w $A005 ; _Status
move.w d0,d7
bne.s loc_6000350A
moveq #$FFFFFFFF,d0
cmp.l (a4),d0
bne.s loc_6000350A
moveq #$FFFFFFEE,d7
loc_6000350A: ; CODE XREF: sub_600034B4+14â†j
; sub_600034B4+18â†j ...
move.w d7,d0
movem.l var_3E(a6),d7/a3-a4
unlk a6
rts
; End of function sub_600034B4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60003516: ; CODE XREF: FiddleWithBacklight+AC↓p
var_28 set -$28
var_14 set -$14
var_10 set -$10
var_E set -$E
var_D set -$D
var_C set -$C
arg_0 set 8
arg_4 set $C
arg_8 set $10
arg_C set $14
link a6,#-$14
movem.l d6-d7/a2-a4,-(sp)
movea.l arg_8(a6),a2
movea.l arg_4(a6),a3
movea.l arg_0(a6),a4
clr.b d7
moveq #$FFFFFFFF,d0
move.l d0,var_14(a6)
pea var_14(a6)
move.l a4,-(sp)
jsr sub_600034B4
tst.w d0
addq.w #8,sp
bne.s loc_600035B2
move.l var_14(a6),d6
bra.s loc_600035AA
; ---------------------------------------------------------------------------
loc_60003548: ; CODE XREF: sub_60003516+9A↓j
move.l d6,d0
subq.l #1,d6
move.l d0,var_14(a6)
pea var_14(a6)
move.l a4,-(sp)
jsr sub_600034B4
tst.w d0
addq.w #8,sp
bne.s loc_600035AA
moveq #0,d0
move.w var_10(a6),d0
moveq #2,d1
cmp.l d0,d1
beq.s loc_60003584
moveq #0,d0
move.w var_10(a6),d0
moveq #$E,d1
cmp.l d0,d1
beq.s loc_60003584
moveq #0,d0
move.w var_10(a6),d0
moveq #$14,d1
cmp.l d0,d1
bne.s loc_600035AA
loc_60003584: ; CODE XREF: sub_60003516+54â†j
; sub_60003516+60â†j
moveq #1,d7
moveq #0,d0
move.b var_E(a6),d0
move.w d0,(a3)
moveq #0,d0
move.b var_D(a6),d0
move.w d0,(a2)
move.l #$200,d0
and.l var_C(a6),d0
bne.s loc_600035AA
movea.l arg_C(a6),a0
move.b #1,(a0)
loc_600035AA: ; CODE XREF: sub_60003516+30â†j
; sub_60003516+48â†j ...
tst.l d6
bls.s loc_600035B2
tst.b d7
beq.s loc_60003548
loc_600035B2: ; CODE XREF: sub_60003516+2Aâ†j
; sub_60003516+96â†j
move.b d7,d0
movem.l var_28(a6),d6-d7/a2-a4
unlk a6
rts
; End of function sub_60003516
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
FiddleWithBacklight: ; CODE XREF: ROM:60000A9Eâ†p
var_5A set -$5A
var_4E set -$4E
var_3C set -$3C
var_36 set -$36
var_34 set -$34
var_32 set -$32
var_30 set -$30
var_2E set -$2E
var_1C set -$1C
var_18 set -$18
var_16 set -$16
var_15 set -$15
var_14 set -$14
var_8 set -8
var_6 set -6
var_1 set -1
link a6,#-$4E
movem.l d7/a3-a4,-(sp)
moveq #0,d0
movea.l d0,a3
clr.l var_6(a6)
subq.l #2,sp
pea aBacklight ; "\n.Backlight"
pea var_8(a6)
jsr sub_60003114
tst.w (sp)+
bne.w loc_600036F2
move.l #'mach',d0
lea var_1C(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
subq.l #4,sp
dc.w $AA29 ; _GetDeviceList
movea.l (sp)+,a4
bra.w loc_600036E8
; ---------------------------------------------------------------------------
loc_600035FC: ; CODE XREF: FiddleWithBacklight+130↓j
pea var_18(a6)
move.l a4,-(sp)
jsr sub_60003476
move.w d0,d7
addq.w #8,sp
bne.s loc_60003678
moveq #0,d0
move.w var_18(a6),d0
moveq #2,d1
cmp.l d0,d1
beq.s loc_60003630
moveq #0,d0
move.w var_18(a6),d0
moveq #$E,d1
cmp.l d0,d1
beq.s loc_60003630
moveq #0,d0
move.w var_18(a6),d0
moveq #$14,d1
cmp.l d0,d1
bne.s loc_60003658
loc_60003630: ; CODE XREF: FiddleWithBacklight+58â†j
; FiddleWithBacklight+64â†j
move.l #$800,d0
and.l var_14(a6),d0
beq.s loc_60003658
movea.l a4,a3
move.b #1,var_1(a6)
moveq #0,d0
move.b var_16(a6),d0
move.w d0,var_6(a6)
moveq #0,d0
move.b var_15(a6),d0
move.w d0,var_6+2(a6)
loc_60003658: ; CODE XREF: FiddleWithBacklight+70â†j
; FiddleWithBacklight+7Câ†j
move.l a3,d0
bne.s loc_60003678
pea var_1(a6)
pea var_6+2(a6)
pea var_6(a6)
move.l a4,-(sp)
jsr sub_60003516
tst.b d0
lea $10(sp),sp
beq.s loc_60003678
movea.l a4,a3
loc_60003678: ; CODE XREF: FiddleWithBacklight+4Câ†j
; FiddleWithBacklight+9Câ†j ...
move.l a3,d0
beq.s loc_600036E0
cmpi.l #$13A,var_1C(a6)
bne.s loc_6000368C
move.w #$FF,var_6+2(a6)
loc_6000368C: ; CODE XREF: FiddleWithBacklight+C6â†j
moveq #0,d0
move.l d0,var_3C(a6)
move.w var_8(a6),var_36(a6)
move.w #$430B,var_34(a6)
move.w var_6(a6),var_32(a6)
move.w var_6+2(a6),var_30(a6)
move.l var_1C(a6),var_2E(a6)
lea var_4E(a6),a0
dc.w $A004 ; _Control
move.w d0,d7
tst.b var_1(a6)
beq.s loc_600036F2
moveq #0,d0
move.l d0,var_3C(a6)
move.w var_8(a6),var_36(a6)
move.w #$430A,var_34(a6)
move.w #7,var_32(a6)
lea var_4E(a6),a0
dc.w $A004 ; _Control
move.w d0,d7
bra.s loc_600036F2
; ---------------------------------------------------------------------------
loc_600036E0: ; CODE XREF: FiddleWithBacklight+BCâ†j
subq.l #4,sp
move.l a4,-(sp)
dc.w $AA2B ; _GetNextDevice
movea.l (sp)+,a4
loc_600036E8: ; CODE XREF: FiddleWithBacklight+3Aâ†j
move.l a4,d0
beq.s loc_600036F2
move.l a3,d0
beq.w loc_600035FC
loc_600036F2: ; CODE XREF: FiddleWithBacklight+20â†j
; FiddleWithBacklight+FEâ†j ...
movem.l var_5A(a6),d7/a3-a4
unlk a6
rts
; End of function FiddleWithBacklight
; ---------------------------------------------------------------------------
aBacklight: dc.b $A ; DATA XREF: FiddleWithBacklight+12â†o
dc.b '.Backlight',0
; =============== S U B R O U T I N E =======================================
_MessWithSomeTraps: ; CODE XREF: ROM:loc_60000514â†p
; FUNCTION CHUNK AT 60003770 SIZE 0000003C BYTES
bsr.w sub_60003712
bra.w loc_60003770
; End of function _MessWithSomeTraps
; ---------------------------------------------------------------------------
dc.b $4E ; N
dc.b $75 ; u
; =============== S U B R O U T I N E =======================================
sub_60003712: ; CODE XREF: _MessWithSomeTrapsâ†p
moveq #0,d1
lea loc_6000376A,a0
move.w (a0),d0
dc.w $A146 ; _GetTrapAddress
movea.l a0,a1
lea loc_6000376C,a0
move.l a1,(a0)
lea sub_60003766,a0
move.w (a0),d0
dc.w $A346 ; _GetOSTrapAddress
movea.l a0,a1
lea loc_6000376C,a0
cmpa.l (a0),a1
beq.s locret_60003764
movea.l ($DD8).w,a0
move.l $24(a0),d0
moveq #$E,d1
and.l d0,d1
cmpi.l #6,d1
beq.s locret_60003764
moveq #$70,d1 ; 'p'
and.l d0,d1
cmpi.l #$20,d1 ; ' '
beq.s locret_60003764
lea sub_60003766,a0
move.w (a0),d0
lea loc_6000376C,a0
movea.l (a0),a0
dc.w $A247 ; _SetOSTrapAddress
locret_60003764: ; CODE XREF: sub_60003712+22â†j
; sub_60003712+36â†j ...
rts
; End of function sub_60003712
; =============== S U B R O U T I N E =======================================
sub_60003766: ; DATA XREF: sub_60003712+12â†o
; sub_60003712+44â†o
dc.w $A092 ; _EgretDispatch
loc_60003768: ; DATA XREF: _MessWithSomeTraps:loc_6000378A↓o
; _MessWithSomeTraps+94↓o
dc.w $AAF3 ; _ExpansionBusDispatch
loc_6000376A: ; DATA XREF: sub_60003712+2â†o
dc.w $A89F ; _Unimplemented
loc_6000376C: ; DATA XREF: sub_60003712+Câ†o
; sub_60003712+1Câ†o ...
ori.b #0,d0
; End of function sub_60003766
; START OF FUNCTION CHUNK FOR _MessWithSomeTraps
loc_60003770: ; CODE XREF: _MessWithSomeTraps+4â†j
btst #6,($240B).w
bne.s locret_600037AA
move.l #'bbox',d0
dc.w $A1AD ; _Gestalt
bne.s loc_6000378A
move.l a0,d0
btst #0,d0
bne.s locret_600037AA
loc_6000378A: ; CODE XREF: _MessWithSomeTraps+78â†j
lea loc_60003768,a0
move.w (a0),d0
dc.w $A746 ; _GetToolTrapAddress
movea.l a0,a1
lea loc_6000376C,a0
cmpa.l (a0),a1
beq.s locret_600037AA
lea loc_60003768,a0
move.w (a0),d0
lea loc_6000376C,a0
movea.l (a0),a0
dc.w $A647 ; _SetToolTrapAddress
locret_600037AA: ; CODE XREF: _MessWithSomeTraps+6Eâ†j
; _MessWithSomeTraps+80â†j ...
rts
; END OF FUNCTION CHUNK FOR _MessWithSomeTraps
; =============== S U B R O U T I N E =======================================
sub_600037AC: ; CODE XREF: InitGreeterWindow:loc_6000559A↓p
clr.w $28(a5)
clr.w $26(a5)
move.l #$62756777,d0
dc.w $A1AD ; _Gestalt
beq.s loc_600037C0
suba.l a0,a0
loc_600037C0: ; CODE XREF: sub_600037AC+10â†j
move.l a0,d0
bset #0,d0
subq.w #2,sp
move.l #$62756777,-(sp)
move.l d0,-(sp)
move.w #$404,d0
dc.w $ABF1 ; _GestaltValueDispatch
addq.w #2,sp
btst #1,($B21).w
beq.s loc_600037E2
rts
; ---------------------------------------------------------------------------
loc_600037E2: ; CODE XREF: sub_600037AC+32â†j
jsr sub_600049FA
jsr loc_600037F0
jsr sub_60003ED8
rts
; End of function sub_600037AC
; ---------------------------------------------------------------------------
loc_600037F0: ; CODE XREF: sub_600037AC+3Aâ†p
; ResetDMNotifyProc:loc_6000562C↓p
btst #2,($B21).w
beq.s loc_60003806
move.l ($3F8).w,$1E(a5)
move.l ($3FC).w,$22(a5)
bra.s loc_60003818
; ---------------------------------------------------------------------------
loc_60003806: ; CODE XREF: ROM:600037F6â†j
move.l a0,d0
lea unk_600058CE,a0
move.l (a0),$1E(a5)
move.l 4(a0),$22(a5)
movea.l d0,a0
loc_60003818: ; CODE XREF: ROM:60003804â†j
move.w $22(a5),d0
subi.w #$14,d0
move.w d0,$22(a5)
subi.w #$C,d0
move.w d0,$1E(a5)
btst #2,($B21).w
beq.s loc_60003842
subi.w #$32,$24(a5) ; '2'
addi.w #$32,$20(a5) ; '2'
bra.s loc_60003864
; ---------------------------------------------------------------------------
loc_60003842: ; CODE XREF: ROM:60003832â†j
move.w $24(a5),d0
sub.w $20(a5),d0
lsr.w #1,d0
add.w $20(a5),d0
move.w d0,$24(a5)
move.w d0,$20(a5)
addi.w #$50,$24(a5) ; 'P'
subi.w #$50,$20(a5) ; 'P'
loc_60003864: ; CODE XREF: ROM:60003840â†j
move.l #$62626F78,d0
dc.w $A1AD ; _Gestalt
bne.s loc_6000388E
move.l a0,d0
btst #0,d0
beq.s loc_6000388E
pea $28(a5)
pea $26(a5)
pea $1E(a5)
move.l #$30719,d0
; ---------------------------------------------------------------------------
dc.b $FE
dc.b $22 ; "
dc.b $50 ; P
dc.b $4F ; O
dc.b $58 ; X
dc.b $4F ; O
; ---------------------------------------------------------------------------
loc_6000388E: ; CODE XREF: ROM:6000386Câ†j
; ROM:60003874â†j
jmp NudgeProgressBar
; =============== S U B R O U T I N E =======================================
LoopSnoopInit: ; CODE XREF: ROM:600015B4â†p
btst #1,($B21).w
beq.s loc_6000389C
rts
; ---------------------------------------------------------------------------
loc_6000389C: ; CODE XREF: LoopSnoopInit+6â†j
jsr sub_60004B2E
st -(sp)
jsr sub_60003EA8
rts
; End of function LoopSnoopInit
; =============== S U B R O U T I N E =======================================
sub_600038A8: ; CODE XREF: sub_60004964+38↓p
arg_0 set 4
; FUNCTION CHUNK AT 60003988 SIZE 00000046 BYTES
; FUNCTION CHUNK AT 600039D0 SIZE 000000F6 BYTES
move.w $26(a5),$2A(a5)
clr.w $26(a5)
move.w #1,$28(a5)
move.w arg_0(sp),d0
movem.l d7-d7/a0-a1,-(sp)
movea.l ($2B6).w,a0
lea aExtensions,a1 ; "\nExtensions"
move.l a1,$324(a0)
btst #5,($B20).w
beq.s loc_60003906
addq.w #8,d0
move.w d0,$28(a5)
lea word_60003986,a0
move.w $28(a5),(a0)
lea unk_60003914,a0
pea (a0)
jsr sub_60003DB8
lea unk_60003914,a0
tst.l (a0)
beq.s loc_60003906
movea.l (a0),a0
movea.l (a0),a0
move.w (a0),d0
cmp.w $28(a5),d0
bne.s loc_60003906
move.w 2(a0),$28(a5)
loc_60003906: ; CODE XREF: sub_600038A8+2Aâ†j
; sub_600038A8+4Aâ†j ...
movem.l (sp)+,d7-d7/a0-a1
move.l (sp)+,d0
addq.w #2,sp
move.l d0,-(sp)
jmp NudgeProgressBar
; End of function sub_600038A8
; ---------------------------------------------------------------------------
unk_60003914: dc.b 0 ; DATA XREF: sub_600038A8+3Aâ†o
; sub_600038A8+44â†o
dc.b 0
dc.b 0
dc.b 0
aExtensions: dc.b $A ; DATA XREF: sub_600038A8+1Câ†o
dc.b 'Extensions',0
; =============== S U B R O U T I N E =======================================
sub_60003924: ; CODE XREF: sub_60004964+54↓p
movea.l (sp)+,a0
move.w (sp)+,d0
addq.w #1,d0
move.w d0,$26(a5)
move.w (sp)+,d0
addq.w #8,d0
move.w d0,$28(a5)
jmp (a0)
; End of function sub_60003924
; =============== S U B R O U T I N E =======================================
PatchCompMgrForProgressBar: ; CODE XREF: ROM:600017FEâ†p
btst #1,($B21).w
beq.s loc_60003942
rts
; ---------------------------------------------------------------------------
loc_60003942: ; CODE XREF: PatchCompMgrForProgressBar+6â†j
lea unk_60003AC6,a0
st (a0)
movea.l ($2B6).w,a0
clr.l $324(a0)
btst #5,($B20).w
beq.s loc_60003978
lea word_60003982,a0
lea word_60003986,a1
move.w (a1),(a0)
move.w $26(a5),2(a0)
addq.w #2,2(a0)
pea (a0)
jsr sub_60003DE8
sf -(sp)
jsr sub_60003EA8
loc_60003978: ; CODE XREF: PatchCompMgrForProgressBar+1Eâ†j
move.w $28(a5),$26(a5)
jmp NudgeProgressBar
; ---------------------------------------------------------------------------
word_60003982: dc.w 0 ; DATA XREF: PatchCompMgrForProgressBar+20â†o
dc.w 0
word_60003986: dc.w 0 ; DATA XREF: sub_600038A8+32â†o
; PatchCompMgrForProgressBar+24â†o
; End of function PatchCompMgrForProgressBar
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_600038A8
NudgeProgressBar: ; CODE XREF: ROM:60000AB6â†p
; ROM:60000B2Aâ†p ...
btst #1,($B21).w
beq.s loc_60003992
rts
; ---------------------------------------------------------------------------
loc_60003992: ; CODE XREF: sub_600038A8+E6â†j
link a6,#-$2A
movem.l d0-d2/a0-a1,-(sp)
clr.b -(sp)
jsr sub_60004CCE
tst.b (sp)+
bset #7,($15D).w
bne.s loc_600039B6
bsr.w sub_60003AC8
move.w #1,-(sp)
bsr.w sub_60005682
loc_600039B6: ; CODE XREF: sub_600038A8+100â†j
move.l #$62626F78,d0
dc.w $A1AD ; _Gestalt
bne.s loc_600039D0
move.l a0,d0
btst #0,d0
beq.s loc_600039D0
move.l #$71A,d0
; END OF FUNCTION CHUNK FOR sub_600038A8
; ---------------------------------------------------------------------------
dc.b $FE
dc.b $22 ; "
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_600038A8
loc_600039D0: ; CODE XREF: sub_600038A8+116â†j
; sub_600038A8+11Eâ†j
addq.w #1,$26(a5)
move.w $28(a5),d0
beq.s loc_600039E4
cmp.w $26(a5),d0
bge.s loc_600039E4
move.w d0,$26(a5)
loc_600039E4: ; CODE XREF: sub_600038A8+130â†j
; sub_600038A8+136â†j
move.l $1E(a5),-$2A(a6)
move.l $22(a5),-$26(a6)
move.l ($118).w,-(sp)
move.l ($2A6).w,($118).w
movea.l (a5),a0
move.l (a0),-$22(a6)
pea $70(a5)
dc.w $A873 ; _SetPort
pea -$1E(a6)
dc.w $A898 ; _GetPenState
dc.w $A89E ; _PenNormal
pea -$C(a6)
dc.w $AA19 ; _GetForeColor
pea -6(a6)
dc.w $AA1A ; _GetBackColor
pea -$2A(a6)
jsr sub_60003F4C
pea -$2A(a6)
move.l #$10001,-(sp)
dc.w $A8A9 ; _InsetRect
tst.w $28(a5)
beq.s loc_60003A52
move.w -$24(a6),d0
sub.w -$28(a6),d0
sub.w $2A(a5),d0
mulu.w $26(a5),d0
divu.w $28(a5),d0
add.w -$28(a6),d0
add.w $2A(a5),d0
bra.s loc_60003A5A
; ---------------------------------------------------------------------------
loc_60003A52: ; CODE XREF: sub_600038A8+18Aâ†j
move.w $26(a5),d0
add.w -$28(a6),d0
loc_60003A5A: ; CODE XREF: sub_600038A8+1A8â†j
move.w -$24(a6),-(sp)
move.w d0,-$24(a6)
pea -$2A(a6)
jsr sub_60004028
move.w -$24(a6),-$28(a6)
move.w (sp)+,-$24(a6)
pea -$2A(a6)
jsr sub_60004380
lea unk_60003AC6,a0
tst.b (a0)
beq.s loc_60003A8A
movea.w #2,a0
dc.w $A03B ; _Delay
loc_60003A8A: ; CODE XREF: sub_600038A8+1DAâ†j
pea -$C(a6)
dc.w $AA14 ; _RGBForeColor
pea -6(a6)
dc.w $AA15 ; _RGBBackColor ; come-from patches = #1
pea -$1E(a6)
dc.w $A899 ; _SetPenState
moveq #0,d0
move.w $28(a5),d0
moveq #0,d1
move.w $26(a5),d1
pea $1E(a5)
move.l d0,-(sp)
move.l d1,-(sp)
jsr sub_60004668
move.l -$22(a6),-(sp)
dc.w $A873 ; _SetPort
move.l (sp)+,($118).w
movem.l (sp)+,d0-d2/a0-a1
unlk a6
rts
; END OF FUNCTION CHUNK FOR sub_600038A8
; ---------------------------------------------------------------------------
unk_60003AC6: dc.b 0 ; DATA XREF: PatchCompMgrForProgressBar:loc_60003942â†o
; sub_600038A8+1D4â†o
dc.b 0
; =============== S U B R O U T I N E =======================================
sub_60003AC8: ; CODE XREF: sub_600038A8+102â†p
move.l a3,-(sp)
subq.w #4,sp
move.l sp,-(sp)
dc.w $A874 ; _GetPort
move.l ($9DE).w,-(sp)
dc.w $A873 ; _SetPort
subq.w #4,sp
dc.w $A924 ; _FrontWindow
subq.w #4,sp
dc.w $A8D8 ; _NewRgn
movea.l (sp),a3
pea ($3F8).w
dc.w $A8DF ; _RectRgn
move.l a3,-(sp)
dc.w $A90D ; _PaintBehind
move.l a3,-(sp)
dc.w $A8D9 ; _DisposeRgn
dc.w $A873 ; _SetPort
movea.l (sp)+,a3
jmp sub_60004D70
; End of function sub_60003AC8
; =============== S U B R O U T I N E =======================================
sub_60003AF6: ; CODE XREF: sub_60004668+E↓p
; sub_60004964+16↓p ...
arg_0 set 4
lea unk_60003B00,a0
move.l a0,arg_0(sp)
rts
; End of function sub_60003AF6
; ---------------------------------------------------------------------------
unk_60003B00: dc.b 0 ; DATA XREF: sub_60003AF6â†o
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 1
dc.b $CA
dc.b 2
dc.b $30 ; 0
dc.b 2
dc.b 2
dc.b 2
dc.b 8
dc.b 7
dc.b $80
dc.b $1F
dc.b $E0
dc.b $1F
dc.b $20
dc.b $3F ; ?
dc.b $90
dc.b $3F ; ?
dc.b $F0
dc.b $3F ; ?
dc.b $F0
dc.b $3F ; ?
dc.b $F0
dc.b $1F
dc.b $E0
dc.b $1F
dc.b $E0
dc.b 7
dc.b $80
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 1
dc.b $CA
dc.b 2
dc.b $30 ; 0
dc.b 2
dc.b 2
dc.b 2
dc.b 8
dc.b 7
dc.b $80
dc.b $1F
dc.b $E0
dc.b $1F
dc.b $E0
dc.b $3F ; ?
dc.b $F0
dc.b $3F ; ?
dc.b $F0
dc.b $3F ; ?
dc.b $F0
dc.b $3F ; ?
dc.b $F0
dc.b $1F
dc.b $E0
dc.b $1F
dc.b $E0
dc.b 7
dc.b $80
dc.b 0
dc.b 0
dc.b 0
dc.b 9
dc.b 0
dc.b 7
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60003D9C: ; CODE XREF: sub_60004DFC+20↓p
; sub_60004F5C+14↓p ...
var_4 set -4
arg_0 set 8
link a6,#0
move.l d3,-(sp)
movea.l arg_0(a6),a0
tst.w 6(a0)
slt d3
neg.b d3
move.b d3,d0
move.l var_4(a6),d3
unlk a6
rts
; End of function sub_60003D9C
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60003DB8: ; CODE XREF: sub_600038A8+40â†p
; sub_60003DE8+1C↓p
var_4 set -4
arg_0 set 8
link a6,#0
move.l a4,-(sp)
movea.l arg_0(a6),a4
subq.l #4,sp
move.l #$70626172,-(sp)
move.w #$B1BE,-(sp)
dc.w $A9A0 ; _GetResource
move.l (sp)+,(a4)
subq.l #2,sp
dc.w $A9AF ; _ResError
tst.w (sp)+
beq.s loc_60003DDE
moveq #0,d0
move.l d0,(a4)
loc_60003DDE: ; CODE XREF: sub_60003DB8+20â†j
movea.l var_4(a6),a4
unlk a6
move.l (sp)+,(sp)
rts
; End of function sub_60003DB8
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60003DE8: ; CODE XREF: PatchCompMgrForProgressBar+36â†p
var_C set -$C
var_4 set -4
arg_0 set 8
link a6,#-4
movem.l d7/a4,-(sp)
movea.l arg_0(a6),a4
move.l a4,d0
beq.w loc_60003E96
moveq #0,d0
move.l d0,var_4(a6)
pea var_4(a6)
jsr sub_60003DB8
tst.l var_4(a6)
bne.s loc_60003E4E
subq.l #2,sp
dc.w $A994 ; _CurResFile
move.w (sp)+,d7
moveq #0,d0
move.w d0,-(sp)
dc.w $A998 ; _UseResFile
moveq #4,d0
dc.w $A722 ; _NewHandleSysClear
move.l a0,var_4(a6)
beq.s loc_60003E4A
move.l a0,-(sp)
move.l #$70626172,-(sp)
move.w #$B1BE,-(sp)
pea off_60003EA2
dc.w $A9AB ; _AddResource
subq.l #2,sp
dc.w $A9AF ; _ResError
tst.w (sp)+
beq.s loc_60003E4A
movea.l var_4(a6),a0
dc.w $A023 ; _DisposeHandle
moveq #0,d0
move.l d0,var_4(a6)
loc_60003E4A: ; CODE XREF: sub_60003DE8+3Aâ†j
; sub_60003DE8+54â†j
move.w d7,-(sp)
dc.w $A998 ; _UseResFile
loc_60003E4E: ; CODE XREF: sub_60003DE8+24â†j
tst.l var_4(a6)
beq.s loc_60003E96
movea.l var_4(a6),a0
movea.l (a0),a0
move.w (a4),d0
cmp.w (a0),d0
bne.s loc_60003E70
movea.l var_4(a6),a0
movea.l (a0),a0
move.w 2(a4),d0
cmp.w 2(a0),d0
beq.s loc_60003E90
loc_60003E70: ; CODE XREF: sub_60003DE8+76â†j
movea.l var_4(a6),a0
movea.l (a0),a0
move.w (a4),(a0)
movea.l var_4(a6),a0
movea.l (a0),a0
move.w 2(a4),2(a0)
move.l var_4(a6),-(sp)
dc.w $A9AA ; _ChangedResource
moveq #0,d0
move.w d0,-(sp)
dc.w $A999 ; _UpdateResFile
loc_60003E90: ; CODE XREF: sub_60003DE8+86â†j
move.l var_4(a6),-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_60003E96: ; CODE XREF: sub_60003DE8+Eâ†j
; sub_60003DE8+6Aâ†j
movem.l var_C(a6),d7/a4
unlk a6
move.l (sp)+,(sp)
rts
; End of function sub_60003DE8
; ---------------------------------------------------------------------------
off_60003EA2: dc.l $6000 ; CODE XREF: sub_6000B34E+1E↓p
; DATA XREF: sub_60003DE8+48â†o
dc.b $F3
dc.b $A4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60003EA8: ; CODE XREF: LoopSnoopInit+10â†p
; PatchCompMgrForProgressBar+3Câ†p
arg_0 set 8
link a6,#0
tst.b arg_0(a6)
beq.s loc_60003EC0
subq.l #2,sp
pea sub_60004964
moveq #0,d0
dc.w $AA7D ; _StartupDispatch
addq.w #2,sp
bra.s loc_60003ECC
; ---------------------------------------------------------------------------
loc_60003EC0: ; CODE XREF: sub_60003EA8+8â†j
subq.l #2,sp
pea sub_60004964
moveq #1,d0
dc.w $AA7D ; _StartupDispatch
addq.w #2,sp
loc_60003ECC: ; CODE XREF: sub_60003EA8+16â†j
unlk a6
movea.l (sp)+,a0
addq.w #2,sp
jmp (a0)
; End of function sub_60003EA8
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_60003ED4: ; CODE XREF: sub_60004B2A↓j
bra.w sub_60003106
; End of function sub_60003ED4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60003ED8: ; CODE XREF: sub_600037AC+3Eâ†p
var_150 set -$150
var_14C set -$14C
var_4C set -$4C
var_6 set -6
var_4 set -4
link a6,#-$14C
move.l a4,-(sp)
lea var_14C(a6),a4
clr.w var_6(a6)
moveq #0,d0
move.l d0,var_4(a6)
subq.l #2,sp
move.w #$8000,-(sp)
move.l #$70726566,-(sp)
moveq #0,d0
move.b d0,-(sp)
pea var_6(a6)
pea var_4(a6)
moveq #0,d0
dc.w $A823 ; _AliasDispatch
tst.w (sp)+
bne.s loc_60003F44
move.l a4,-(sp)
move.w #$AF87,-(sp)
moveq #3,d0
move.w d0,-(sp)
jsr sub_600032B4
moveq #0,d0
move.b (a4),d0
tst.l d0
beq.s loc_60003F44
subq.l #2,sp
move.w var_6(a6),-(sp)
move.l var_4(a6),-(sp)
move.l a4,-(sp)
pea var_4C(a6)
moveq #1,d0
dc.w $AA52 ; _HighLevelFSDispatch
tst.w (sp)+
bne.s loc_60003F44
movea.l ($2B6).w,a0
move.b #1,$2FB(a0)
loc_60003F44: ; CODE XREF: sub_60003ED8+32â†j
; sub_60003ED8+48â†j ...
movea.l var_150(a6),a4
unlk a6
rts
; End of function sub_60003ED8
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60003F4C: ; CODE XREF: sub_600038A8+176â†p
var_E set -$E
var_C set -$C
var_8 set -8
var_4 set -4
var_2 set -2
arg_0 set 8
link a6,#-$E
movea.l arg_0(a6),a0
lea var_8(a6),a1
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
pea var_8(a6)
moveq #$FFFFFFFF,d0
move.w d0,-(sp)
move.w d0,-(sp)
dc.w $A8A9 ; _InsetRect
jsr sub_6000519E
tst.b d0
beq.w loc_6000400A
move.w #$AAAA,var_C+2(a6)
move.w #$AAAA,var_C(a6)
move.w #$AAAA,var_E(a6)
pea var_E(a6)
dc.w $AA14 ; _RGBForeColor
move.w var_8+2(a6),-(sp)
move.w var_4(a6),d0
subq.w #2,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.l var_8(a6),-(sp)
dc.w $A891 ; _LineTo
move.w var_2(a6),d0
subq.w #2,d0
move.w d0,-(sp)
move.w var_8(a6),-(sp)
dc.w $A891 ; _LineTo
move.w #$FFFF,var_C+2(a6)
move.w #$FFFF,var_C(a6)
move.w #$FFFF,var_E(a6)
pea var_E(a6)
dc.w $AA14 ; _RGBForeColor
move.w var_8+2(a6),d0
addq.w #1,d0
move.w d0,-(sp)
move.w var_4(a6),d0
subq.w #1,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w var_2(a6),d0
subq.w #1,d0
move.w d0,-(sp)
move.w var_4(a6),d0
subq.w #1,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w var_2(a6),d0
subq.w #1,d0
move.w d0,-(sp)
move.w var_8(a6),d0
addq.w #1,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
clr.l var_C(a6)
clr.w var_E(a6)
pea var_E(a6)
dc.w $AA14 ; _RGBForeColor
bra.s loc_60004010
; ---------------------------------------------------------------------------
loc_6000400A: ; CODE XREF: sub_60003F4C+22â†j
moveq #$21,d0 ; '!'
move.l d0,-(sp)
dc.w $A862 ; _ForeColor
loc_60004010: ; CODE XREF: sub_60003F4C+BCâ†j
pea var_8(a6)
moveq #1,d0
move.w d0,-(sp)
move.w d0,-(sp)
dc.w $A8A9 ; _InsetRect
pea var_8(a6)
dc.w $A8A1 ; _FrameRect
unlk a6
move.l (sp)+,(sp)
rts
; End of function sub_60003F4C
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60004028: ; CODE XREF: sub_600038A8+1BEâ†p
var_10 set -$10
var_4 set -4
arg_0 set 8
link a6,#-4
movem.l d6-d7/a4,-(sp)
movea.l arg_0(a6),a4
jsr sub_6000519E
tst.b d0
beq.w loc_6000436C
pea var_4(a6)
jsr sub_60004FF2
move.b d0,d6
move.w 6(a4),d0
ext.l d0
move.w 2(a4),d1
ext.l d1
move.l d0,d7
sub.l d1,d7
cmpi.w #6,d7
addq.w #4,sp
blt.w loc_6000434E
moveq #3,d0
move.l d0,-(sp)
move.l var_4(a6),-(sp)
jsr sub_6000514C
move.w 2(a4),-(sp)
move.w 4(a4),d0
subq.w #1,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 2(a4),-(sp)
move.w (a4),-(sp)
dc.w $A891 ; _LineTo
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w (a4),-(sp)
dc.w $A891 ; _LineTo
move.w 2(a4),d0
addq.w #2,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #1,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 6(a4),d0
subq.w #2,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #1,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #2,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #2,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w 2(a4),d0
addq.w #2,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #3,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 6(a4),d0
subq.w #3,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #3,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
moveq #4,d0
move.l d0,-(sp)
move.l var_4(a6),-(sp)
jsr sub_6000514C
move.w 2(a4),d0
addq.w #2,d0
move.w d0,-(sp)
move.w (a4),-(sp)
dc.w $A893 ; _MoveTo
move.w 6(a4),d0
subq.w #1,d0
move.w d0,-(sp)
move.w (a4),-(sp)
dc.w $A891 ; _LineTo
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #1,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #1,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w 2(a4),d0
addq.w #2,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #2,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 6(a4),d0
subq.w #2,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #2,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w 6(a4),d0
subq.w #2,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #2,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
moveq #6,d0
move.l d0,-(sp)
move.l var_4(a6),-(sp)
jsr sub_6000514C
move.w 2(a4),d0
addq.w #2,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #1,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 6(a4),d0
subq.w #1,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #1,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w 6(a4),d0
subq.w #1,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #1,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
moveq #2,d0
move.l d0,-(sp)
move.l var_4(a6),-(sp)
jsr sub_6000514C
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #1,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #1,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w 2(a4),d0
addq.w #2,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #2,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 6(a4),d0
subq.w #3,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #2,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w 2(a4),d0
addq.w #2,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #4,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 6(a4),d0
subq.w #3,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #4,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #3,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #3,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
moveq #1,d0
move.l d0,-(sp)
move.l var_4(a6),-(sp)
jsr sub_6000514C
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #2,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #2,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w 2(a4),d0
addq.w #2,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #3,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 6(a4),d0
subq.w #3,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #3,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w 6(a4),d0
subq.w #3,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #5,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w 2(a4),d0
addq.w #2,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #5,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #4,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #4,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
moveq #0,d0
move.l d0,-(sp)
move.l var_4(a6),-(sp)
jsr sub_6000514C
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #3,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #4,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w 2(a4),d0
addq.w #2,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #4,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 6(a4),d0
subq.w #4,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #4,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #5,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #5,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
lea $30(sp),sp
bra.s loc_60004360
; ---------------------------------------------------------------------------
loc_6000434E: ; CODE XREF: sub_60004028+36â†j
moveq #4,d0
move.l d0,-(sp)
move.l var_4(a6),-(sp)
jsr sub_6000514C
move.l a4,-(sp)
dc.w $A8A2 ; _PaintRect
addq.w #8,sp
loc_60004360: ; CODE XREF: sub_60004028+324â†j
tst.b d6
beq.s loc_60004370
movea.l var_4(a6),a0
dc.w $A023 ; _DisposeHandle
bra.s loc_60004370
; ---------------------------------------------------------------------------
loc_6000436C: ; CODE XREF: sub_60004028+12â†j
move.l a4,-(sp)
dc.w $A8A2 ; _PaintRect
loc_60004370: ; CODE XREF: sub_60004028+33Aâ†j
; sub_60004028+342â†j
movem.l var_10(a6),d6-d7/a4
unlk a6
move.l (sp)+,(sp)
rts
; End of function sub_60004028
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_6000437C: ; CODE XREF: sub_6000B5B2+1C8↓p
; sub_6000B80C+3C↓p ...
bra.w sub_600032B4
; End of function sub_6000437C
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60004380: ; CODE XREF: sub_600038A8+1D0â†p
var_1C set -$1C
var_14 set -$14
var_12 set -$12
var_E set -$E
var_C set -$C
var_8 set -8
var_6 set -6
var_4 set -4
var_2 set -2
arg_0 set 8
link a6,#-$14
movem.l d7/a4,-(sp)
movea.l arg_0(a6),a4
jsr sub_6000519E
tst.b d0
beq.w loc_60004640
move.w 6(a4),d0
ext.l d0
move.w 2(a4),d1
ext.l d1
move.l d0,d7
sub.l d1,d7
cmpi.w #5,d7
blt.w loc_60004512
lea var_8(a6),a0
movea.l a4,a1
move.l (a1)+,(a0)+
move.l (a1)+,(a0)+
pea var_8(a6)
moveq #1,d0
move.w d0,-(sp)
move.w d0,-(sp)
dc.w $A8A9 ; _InsetRect
addq.w #2,var_6(a6)
move.w #$BBBB,var_C+2(a6)
move.w #$BBBB,var_C(a6)
move.w #$BBBB,var_E(a6)
pea var_E(a6)
dc.w $AA14 ; _RGBForeColor
pea var_8(a6)
dc.w $A8A2 ; _PaintRect
pea var_8(a6)
moveq #$FFFFFFFF,d0
move.w d0,-(sp)
move.w d0,-(sp)
dc.w $A8A9 ; _InsetRect
subq.w #2,var_6(a6)
clr.l var_C(a6)
clr.w var_E(a6)
pea var_E(a6)
dc.w $AA14 ; _RGBForeColor
move.w 2(a4),-(sp)
move.w (a4),-(sp)
dc.w $A893 ; _MoveTo
move.w 2(a4),-(sp)
move.w 4(a4),d0
subq.w #1,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w #$5555,var_C+2(a6)
move.w #$5555,var_C(a6)
move.w #$5555,var_E(a6)
pea var_E(a6)
dc.w $AA14 ; _RGBForeColor
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w (a4),-(sp)
dc.w $A893 ; _MoveTo
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #1,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w #$8888,var_C+2(a6)
move.w #$8888,var_C(a6)
move.w #$8888,var_E(a6)
pea var_E(a6)
dc.w $AA14 ; _RGBForeColor
move.w 2(a4),d0
addq.w #2,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #1,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 2(a4),d0
addq.w #2,d0
move.w d0,-(sp)
move.w (a4),-(sp)
dc.w $A891 ; _LineTo
move.w 6(a4),d0
subq.w #2,d0
move.w d0,-(sp)
move.w (a4),-(sp)
dc.w $A891 ; _LineTo
move.w #$DDDD,var_C+2(a6)
move.w #$DDDD,var_C(a6)
move.w #$DDDD,var_E(a6)
pea var_E(a6)
dc.w $AA14 ; _RGBForeColor
move.w 2(a4),d0
addq.w #3,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #1,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 6(a4),d0
subq.w #1,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #1,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w 6(a4),d0
subq.w #1,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #1,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w #$BBBB,var_C+2(a6)
move.w #$BBBB,var_C(a6)
move.w #$BBBB,var_E(a6)
pea var_E(a6)
dc.w $AA14 ; _RGBForeColor
move.w 6(a4),d0
subq.w #1,d0
move.w d0,-(sp)
move.w (a4),-(sp)
dc.w $A893 ; _MoveTo
move.w 6(a4),d0
subq.w #1,d0
move.w d0,-(sp)
move.w (a4),-(sp)
dc.w $A891 ; _LineTo
bra.w loc_6000465C
; ---------------------------------------------------------------------------
loc_60004512: ; CODE XREF: sub_60004380+2Aâ†j
cmpi.w #1,d7
blt.s loc_6000453C
clr.l var_12(a6)
clr.w var_14(a6)
pea var_14(a6)
dc.w $AA14 ; _RGBForeColor
move.w 2(a4),-(sp)
move.w (a4),-(sp)
dc.w $A893 ; _MoveTo
move.w 2(a4),-(sp)
move.w 4(a4),d0
subq.w #1,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
loc_6000453C: ; CODE XREF: sub_60004380+196â†j
cmpi.w #2,d7
blt.s loc_60004578
move.w #$5555,var_12+2(a6)
move.w #$5555,var_12(a6)
move.w #$5555,var_14(a6)
pea var_14(a6)
dc.w $AA14 ; _RGBForeColor
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w (a4),-(sp)
dc.w $A893 ; _MoveTo
move.w 2(a4),d0
addq.w #1,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #1,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
loc_60004578: ; CODE XREF: sub_60004380+1C0â†j
cmpi.w #3,d7
blt.s loc_600045C0
move.w #$8888,var_12+2(a6)
move.w #$8888,var_12(a6)
move.w #$8888,var_14(a6)
pea var_14(a6)
dc.w $AA14 ; _RGBForeColor
move.w 2(a4),d0
addq.w #2,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #1,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 2(a4),d0
addq.w #2,d0
move.w d0,-(sp)
move.w (a4),-(sp)
dc.w $A891 ; _LineTo
move.w 6(a4),d0
subq.w #1,d0
move.w d0,-(sp)
move.w (a4),-(sp)
dc.w $A891 ; _LineTo
loc_600045C0: ; CODE XREF: sub_60004380+1FCâ†j
cmpi.w #4,d7
blt.w loc_6000465C
move.w #$BBBB,var_12+2(a6)
move.w #$BBBB,var_12(a6)
move.w #$BBBB,var_14(a6)
pea var_14(a6)
dc.w $AA14 ; _RGBForeColor
move.w 2(a4),d0
addq.w #3,d0
move.w d0,-(sp)
move.w (a4),d0
addq.w #1,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 2(a4),d0
addq.w #3,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #2,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
move.w #$DDDD,var_12+2(a6)
move.w #$DDDD,var_12(a6)
move.w #$DDDD,var_14(a6)
pea var_14(a6)
dc.w $AA14 ; _RGBForeColor
move.w 2(a4),d0
addq.w #3,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #1,d0
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.w 2(a4),d0
addq.w #3,d0
move.w d0,-(sp)
move.w 4(a4),d0
subq.w #1,d0
move.w d0,-(sp)
dc.w $A891 ; _LineTo
bra.s loc_6000465C
; ---------------------------------------------------------------------------
loc_60004640: ; CODE XREF: sub_60004380+12â†j
move.w #$FFFF,var_2(a6)
move.w #$FFFF,var_4(a6)
move.w #$FFFF,var_6(a6)
pea var_6(a6)
dc.w $AA15 ; _RGBBackColor ; come-from patches = #1
move.l a4,-(sp)
dc.w $A8A3 ; _EraseRect
loc_6000465C: ; CODE XREF: sub_60004380+18Eâ†j
; sub_60004380+244â†j ...
movem.l var_1C(a6),d7/a4
unlk a6
move.l (sp)+,(sp)
rts
; End of function sub_60004380
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60004668: ; CODE XREF: sub_600038A8+208â†p
var_286 set -$286
var_26A set -$26A
var_268 set -$268
var_263 set -$263
var_262 set -$262
var_224 set -$224
var_21C set -$21C
var_21A set -$21A
var_214 set -$214
var_210 set -$210
var_20E set -$20E
var_20C set -$20C
var_206 set -$206
var_204 set -$204
var_104 set -$104
var_4 set -4
arg_0 set 8
arg_4 set $C
arg_8 set $10
link a6,#-$26A
movem.l d3-d7/a3-a4,-(sp)
lea var_104(a6),a4
subq.l #4,sp
jsr sub_60003AF6
movea.l (sp)+,a3
addq.l #1,$206(a3)
movea.l ($2B6).w,a0
tst.b $2FB(a0)
beq.w loc_6000493C
movea.l ($2B6).w,a0
move.l $324(a0),var_4(a6)
beq.w loc_6000493C
jsr sub_6000519E
move.b d0,var_263(a6)
movea.l arg_8(a6),a0
lea var_214(a6),a1
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l var_4(a6),-(sp)
move.l a4,-(sp)
jsr sub_6000521E
subq.l #2,sp
move.l var_4(a6),-(sp)
move.l a3,-(sp)
moveq #0,d0
move.b d0,-(sp)
move.b d0,-(sp)
jsr sub_60003162
tst.b (sp)+
addq.w #8,sp
beq.s loc_60004706
addq.l #1,$202(a3)
move.l $202(a3),d0
addq.l #1,d0
move.l d0,-(sp)
pea var_204(a6)
jsr sub_6000328C
pea var_204(a6)
jsr sub_60005284
pea unk_6000495C
move.l a4,-(sp)
jsr sub_60005240
pea var_204(a6)
move.l a4,-(sp)
jsr sub_60005240
lea $14(sp),sp
bra.s loc_6000470C
; ---------------------------------------------------------------------------
loc_60004706: ; CODE XREF: sub_60004668+66â†j
moveq #0,d0
move.l d0,$202(a3)
loc_6000470C: ; CODE XREF: sub_60004668+9Câ†j
moveq #0,d0
move.b var_263(a6),d0
move.l d0,-(sp)
pea var_262(a6)
jsr sub_60004DFC
pea var_224(a6)
jsr sub_60004D92
pea unk_60004954
pea var_206(a6)
dc.w $A900 ; _GetFNum
move.w var_206(a6),-(sp)
dc.w $A887 ; _TextFont
moveq #9,d0
move.w d0,-(sp)
dc.w $A88A ; _TextSize
moveq #1,d0
move.w d0,-(sp)
dc.w $A889 ; _TextMode
pea var_21C(a6)
dc.w $A88B ; _GetFontInfo
moveq #0,d0
move.b (a3),d0
tst.l d0
lea $C(sp),sp
bne.s loc_60004756
clr.w d7
bra.s loc_60004778
; ---------------------------------------------------------------------------
loc_60004756: ; CODE XREF: sub_60004668+E8â†j
subq.l #2,sp
move.l a4,-(sp)
dc.w $A88C ; _StringWidth
move.w $100(a3),d0
cmp.w (sp)+,d0
sgt d3
neg.b d3
beq.s loc_6000476E
move.w $100(a3),d0
bra.s loc_60004776
; ---------------------------------------------------------------------------
loc_6000476E: ; CODE XREF: sub_60004668+FEâ†j
subq.l #2,sp
move.l a4,-(sp)
dc.w $A88C ; _StringWidth
move.w (sp)+,d0
loc_60004776: ; CODE XREF: sub_60004668+104â†j
move.w d0,d7
loc_60004778: ; CODE XREF: sub_60004668+ECâ†j
ext.l d7
move.w var_20E(a6),d0
ext.l d0
move.w var_214+2(a6),d1
ext.l d1
sub.l d1,d0
moveq #0,d1
move.w d0,d1
cmp.l d7,d1
bge.s loc_6000479A
move.w d7,d0
add.w var_214+2(a6),d0
move.w d0,var_20E(a6)
loc_6000479A: ; CODE XREF: sub_60004668+126â†j
movea.l arg_8(a6),a0
move.w 4(a0),d0
addq.w #2,d0
move.w d0,var_214(a6)
move.w var_21A(a6),d6
add.w var_21C(a6),d6
move.w d6,d0
add.w var_214(a6),d0
move.w d0,var_210(a6)
ext.l d0
move.w var_214(a6),d1
ext.l d1
sub.l d1,d0
moveq #0,d1
move.w d0,d1
ext.l d6
sub.l d6,d1
asr.l #1,d1
move.w d1,d4
add.w var_214(a6),d4
move.w var_21C(a6),d5
add.w d4,d5
move.l var_214(a6),-(sp)
pea var_20C(a6)
dc.w $AA17 ; _GetCPixel
clr.l var_268(a6)
clr.w var_26A(a6)
pea var_26A(a6)
dc.w $AA14 ; _RGBForeColor
pea var_20C(a6)
dc.w $AA15 ; _RGBBackColor ; come-from patches = #1
pea var_214(a6)
dc.w $A8A3 ; _EraseRect
move.w var_214+2(a6),-(sp)
move.w d5,-(sp)
dc.w $A893 ; _MoveTo
move.l a4,-(sp)
dc.w $A884 ; _DrawString
move.l var_4(a6),-(sp)
move.l a3,-(sp)
jsr sub_6000521E
subq.l #2,sp
move.l a4,-(sp)
dc.w $A88C ; _StringWidth
move.w (sp)+,$100(a3)
move.l arg_0(a6),-(sp)
move.l a4,-(sp)
jsr sub_6000328C
tst.l arg_4(a6)
addq.w #8,sp
beq.s loc_60004854
move.l arg_4(a6),-(sp)
pea var_204(a6)
jsr sub_6000328C
pea unk_60004950
move.l a4,-(sp)
jsr sub_60005240
pea var_204(a6)
move.l a4,-(sp)
jsr sub_60005240
lea $10(sp),sp
loc_60004854: ; CODE XREF: sub_60004668+1C6â†j
move.l $206(a3),-(sp)
pea var_204(a6)
jsr sub_6000328C
pea unk_6000494C
move.l a4,-(sp)
jsr sub_60005240
pea var_204(a6)
move.l a4,-(sp)
jsr sub_60005240
tst.l $206(a3)
lea $10(sp),sp
bne.s loc_60004888
subq.l #2,sp
move.l a4,-(sp)
dc.w $A88C ; _StringWidth
move.w (sp)+,d7
bra.s loc_600048B6
; ---------------------------------------------------------------------------
loc_60004888: ; CODE XREF: sub_60004668+214â†j
subq.l #2,sp
pea $102(a3)
dc.w $A88C ; _StringWidth
subq.l #2,sp
move.l a4,-(sp)
dc.w $A88C ; _StringWidth
move.w (sp)+,d0
cmp.w (sp)+,d0
slt d3
neg.b d3
beq.s loc_600048AC
subq.l #2,sp
pea $102(a3)
dc.w $A88C ; _StringWidth
move.w (sp)+,d0
bra.s loc_600048B4
; ---------------------------------------------------------------------------
loc_600048AC: ; CODE XREF: sub_60004668+236â†j
subq.l #2,sp
move.l a4,-(sp)
dc.w $A88C ; _StringWidth
move.w (sp)+,d0
loc_600048B4: ; CODE XREF: sub_60004668+242â†j
move.w d0,d7
loc_600048B6: ; CODE XREF: sub_60004668+21Eâ†j
movea.l arg_8(a6),a0
lea var_214(a6),a1
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
movea.l arg_8(a6),a0
move.w 6(a0),d0
addq.w #4,d0
move.w d0,var_214+2(a6)
move.w d7,d0
add.w var_214+2(a6),d0
move.w d0,var_20E(a6)
move.w d6,d0
add.w var_214(a6),d0
move.w d0,var_210(a6)
ext.l d0
move.w var_214(a6),d1
ext.l d1
sub.l d1,d0
moveq #0,d1
move.w d0,d1
ext.l d6
sub.l d6,d1
asr.l #1,d1
move.w d1,d4
add.w var_214(a6),d4
move.w var_21C(a6),d5
add.w d4,d5
pea var_214(a6)
dc.w $A8A3 ; _EraseRect
move.w var_214+2(a6),-(sp)
move.w d5,-(sp)
dc.w $A893 ; _MoveTo
move.l a4,-(sp)
dc.w $A884 ; _DrawString
move.l a4,-(sp)
pea $102(a3)
jsr sub_6000521E
pea var_224(a6)
jsr sub_60004DD4
moveq #0,d0
move.b var_263(a6),d0
move.l d0,-(sp)
pea var_262(a6)
jsr sub_60004F5C
lea $14(sp),sp
loc_6000493C: ; CODE XREF: sub_60004668+20â†j
; sub_60004668+2Eâ†j
movem.l var_286(a6),d3-d7/a3-a4
unlk a6
movea.l (sp)+,a0
lea $C(sp),sp
jmp (a0)
; End of function sub_60004668
; ---------------------------------------------------------------------------
unk_6000494C: dc.b 2 ; DATA XREF: sub_60004668+1F8â†o
dc.b $2C ; ,
dc.b $20
dc.b 0
unk_60004950: dc.b 1 ; DATA XREF: sub_60004668+1D4â†o
dc.b $2F ; /
dc.b 0
dc.b 0
unk_60004954: dc.b 6 ; DATA XREF: sub_60004668+BCâ†o
dc.b $47 ; G
dc.b $65 ; e
dc.b $6E ; n
dc.b $65 ; e
dc.b $76 ; v
dc.b $61 ; a
dc.b 0
unk_6000495C: dc.b 1 ; DATA XREF: sub_60004668+84â†o
dc.b $20
dc.b 0
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_60004960: ; CODE XREF: sub_6000BAF8+EE↓p
bra.w sub_600030DA
; End of function sub_60004960
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60004964: ; DATA XREF: sub_60003EA8+Câ†o
; sub_60003EA8+1Aâ†o
var_10 set -$10
arg_0 set 8
arg_8 set $10
link a6,#0
movem.l d6-d7/a3-a4,-(sp)
move.l arg_8(a6),d6
beq.s loc_60004978
moveq #2,d0
cmp.l d6,d0
bne.s loc_600049EA
loc_60004978: ; CODE XREF: sub_60004964+Câ†j
subq.l #4,sp
jsr sub_60003AF6
movea.l (sp)+,a4
movea.l ($2B6).w,a0
movea.l $2C6(a0),a3
movea.l (a3),a0
movea.l (a0),a0
move.w $12(a0),d7
move.l d6,d0
beq.s loc_6000499A
subq.l #2,d0
beq.s loc_600049A6
bra.s loc_600049EA
; ---------------------------------------------------------------------------
loc_6000499A: ; CODE XREF: sub_60004964+2Eâ†j
move.w d7,-(sp)
jsr sub_600038A8
move.w d7,$22A(a4)
bra.s loc_600049EA
; ---------------------------------------------------------------------------
loc_600049A6: ; CODE XREF: sub_60004964+32â†j
cmp.w $22A(a4),d7
beq.s loc_600049C0
movea.l (a3),a0
movea.l (a0),a0
move.w $A(a0),d6
move.w d7,-(sp)
move.w d6,-(sp)
jsr sub_60003924
move.w d7,$22A(a4)
loc_600049C0: ; CODE XREF: sub_60004964+46â†j
movea.l ($2B6).w,a0
tst.b $2FB(a0)
beq.s loc_600049E6
movea.l arg_0(a6),a0
move.l a0,-(sp)
pea $20A(a4)
jsr sub_6000521E
lea $20A(a4),a0
movea.l ($2B6).w,a1
move.l a0,$324(a1)
addq.w #8,sp
loc_600049E6: ; CODE XREF: sub_60004964+64â†j
jsr NudgeProgressBar
loc_600049EA: ; CODE XREF: sub_60004964+12â†j
; sub_60004964+34â†j ...
movem.l var_10(a6),d6-d7/a3-a4
unlk a6
movea.l (sp)+,a0
lea $C(sp),sp
jmp (a0)
; End of function sub_60004964
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600049FA: ; CODE XREF: sub_600037AC:loc_600037E2â†p
var_24 set -$24
var_C set -$C
var_8 set -8
var_4 set -4
link a6,#-$C
movem.l d3/d5-d7/a3-a4,-(sp)
subq.l #4,sp
move.l #$61637572,-(sp)
move.w #$AF23,-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a3
move.l a3,d0
beq.w loc_60004B20
movea.l (a3),a0
tst.w (a0)
beq.w loc_60004B20
subq.l #4,sp
jsr sub_60003AF6
move.l (sp)+,var_C(a6)
dc.w $A11A ; _GetZone
move.l a0,var_8(a6)
subq.l #4,sp
move.l ($2A6).w,(sp)
movea.l (sp)+,a0
dc.w $A01B ; _SetZone
movea.l (a3),a0
moveq #$44,d0 ; 'D'
muls.w (a0),d0
dc.w $A51E ; _NewPtrSys
move.l a0,var_4(a6)
beq.w loc_60004B16
clr.b d6
movea.l (a3),a0
move.w (a0),d5
clr.w d7
bra.s loc_60004A94
; ---------------------------------------------------------------------------
loc_60004A54: ; CODE XREF: sub_600049FA+A0↓j
subq.l #4,sp
ext.l d7
movea.l (a3),a0
move.l d7,d0
asl.l #2,d0
move.w 4(a0,d0.l),-(sp)
dc.w $A9B9 ; _GetCursor
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_60004A8E
movea.l (a4),a0
ext.l d7
movea.l var_4(a6),a1
move.l d7,d0
move.l d0,d1
mulu.w #$44,d0 ; 'D'
swap d1
mulu.w #$44,d1 ; 'D'
swap d1
clr.w d1
add.l d1,d0
adda.l d0,a1
moveq #$44,d0 ; 'D'
dc.w $A22E ; _BlockMoveData
bra.s loc_60004A90
; ---------------------------------------------------------------------------
loc_60004A8E: ; CODE XREF: sub_600049FA+6Eâ†j
moveq #1,d6
loc_60004A90: ; CODE XREF: sub_600049FA+92â†j
move.w d7,d0
addq.w #1,d7
loc_60004A94: ; CODE XREF: sub_600049FA+58â†j
cmp.w d7,d5
ble.s loc_60004A9C
tst.b d6
beq.s loc_60004A54
loc_60004A9C: ; CODE XREF: sub_600049FA+9Câ†j
tst.b d6
bne.s loc_60004B10
movea.l var_C(a6),a0
move.w d5,$22E(a0)
movea.l var_C(a6),a0
move.l var_4(a6),$232(a0)
move.w #$3E8,d0
ext.l d0
divs.w d5,d0
cmpi.w #$11,d0
sgt d3
neg.b d3
beq.s loc_60004ACE
move.w #$3E8,d0
ext.l d0
divs.w d5,d0
bra.s loc_60004AD0
; ---------------------------------------------------------------------------
loc_60004ACE: ; CODE XREF: sub_600049FA+C8â†j
moveq #$11,d0
loc_60004AD0: ; CODE XREF: sub_600049FA+D2â†j
ext.l d0
movea.l var_C(a6),a0
move.l d0,$236(a0)
move.l a5,d0
movea.l ($904).w,a5
movea.l var_C(a6),a0
move.l d0,$23E(a0)
lea sub_60004B60,a0
movea.l var_C(a6),a1
move.l a0,$248(a1)
movea.l var_C(a6),a0
lea $242(a0),a0
dc.w $A458 ; _InsXTime
movea.l var_C(a6),a0
lea $242(a0),a0
move.l #$7D0,d0
dc.w $A05A ; _PrimeTime
bra.s loc_60004B16
; ---------------------------------------------------------------------------
loc_60004B10: ; CODE XREF: sub_600049FA+A4â†j
movea.l var_4(a6),a0
dc.w $A01F ; _DisposePtr
loc_60004B16: ; CODE XREF: sub_600049FA+4Câ†j
; sub_600049FA+114â†j
movea.l var_8(a6),a0
dc.w $A01B ; _SetZone
move.l a3,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_60004B20: ; CODE XREF: sub_600049FA+1Aâ†j
; sub_600049FA+22â†j
movem.l var_24(a6),d3/d5-d7/a3-a4
unlk a6
rts
; End of function sub_600049FA
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_60004B2A: ; CODE XREF: sub_6000B3B6+58↓p
; sub_6000BFB6+3C↓p
bra.w sub_60003ED4
; End of function sub_60004B2A
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60004B2E: ; CODE XREF: LoopSnoopInit:loc_6000389Câ†p
var_4 set -4
link a6,#0
move.l a4,-(sp)
subq.l #2,sp
jsr sub_60004CCE
tst.b (sp)+
beq.s loc_60004B58
subq.l #4,sp
jsr sub_60003AF6
movea.l (sp)+,a4
lea $242(a4),a0
dc.w $A059 ; _RmvTime
movea.l $232(a4),a0
dc.w $A01F ; _DisposePtr
moveq #0,d0
move.l d0,$232(a4)
loc_60004B58: ; CODE XREF: sub_60004B2E+Eâ†j
movea.l var_4(a6),a4
unlk a6
rts
; End of function sub_60004B2E
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60004B60: ; DATA XREF: sub_600049FA+EEâ†o
var_14 set -$14
link a6,#0
movem.l d3/d5-d7/a4,-(sp)
subq.l #4,sp
jsr sub_60003AF6
movea.l (sp)+,a4
tst.b $22C(a4)
beq.w loc_60004C5E
moveq #0,d0
move.b ($8CD).w,d0
tst.l d0
bne.w loc_60004C5E
tst.w ($8D0).w
bne.w loc_60004C5E
moveq #0,d0
move.b ($8D2).w,d0
tst.l d0
bne.w loc_60004C5E
tst.b ($8F2).w
beq.w loc_60004C5E
jsr sub_60004D36
tst.b d0
bne.w loc_60004C5E
move.l $23E(a4),d0
exg d0,a5
move.l d0,d7
move.w $230(a4),d6
move.l ($16A).w,d5
ext.l d6
movea.l $232(a4),a0
move.l d6,d0
move.l d0,d1
mulu.w #$44,d0 ; 'D'
swap d1
mulu.w #$44,d1 ; 'D'
swap d1
clr.w d1
add.l d1,d0
pea (a0,d0.l)
dc.w $A851 ; _SetCursor
move.l d7,d0
exg d0,a5
ext.l d6
move.l d6,d0
addq.l #1,d0
move.w $22E(a4),d1
ext.l d1
jsr sub_6000C128
move.w d0,$230(a4)
tst.l $23A(a4)
bne.s loc_60004BFE
move.l d5,$23A(a4)
bra.s loc_60004C58
; ---------------------------------------------------------------------------
loc_60004BFE: ; CODE XREF: sub_60004B60+96â†j
move.l d5,d6
sub.l $23A(a4),d6
cmpi.l #$189C,d6
bls.s loc_60004C24
move.l $23E(a4),d0
exg d0,a5
move.l d0,d7
pea $258(a4)
dc.w $A851 ; _SetCursor
move.l d7,d0
exg d0,a5
clr.b $22C(a4)
bra.s loc_60004C58
; ---------------------------------------------------------------------------
loc_60004C24: ; CODE XREF: sub_60004B60+AAâ†j
moveq #0,d0
move.b $22D(a4),d0
cmpi.w #1,d0
bne.s loc_60004C38
cmpi.l #$1518,d6
bhi.s loc_60004C4A
loc_60004C38: ; CODE XREF: sub_60004B60+CEâ†j
moveq #0,d0
move.b $22D(a4),d0
tst.l d0
bne.s loc_60004C58
cmpi.l #$E10,d6
bls.s loc_60004C58
loc_60004C4A: ; CODE XREF: sub_60004B60+D6â†j
move.l $236(a4),d0
add.l d0,d0
move.l d0,$236(a4)
addq.b #1,$22D(a4)
loc_60004C58: ; CODE XREF: sub_60004B60+9Câ†j
; sub_60004B60+C2â†j ...
move.l $236(a4),d6
bra.s loc_60004CAE
; ---------------------------------------------------------------------------
loc_60004C5E: ; CODE XREF: sub_60004B60+14â†j
; sub_60004B60+20â†j ...
tst.b $22C(a4)
beq.s loc_60004C6C
subq.l #2,sp
jsr sub_60004CCE
addq.w #2,sp
loc_60004C6C: ; CODE XREF: sub_60004B60+102â†j
move.b #1,$22C(a4)
clr.w $230(a4)
moveq #0,d0
move.l d0,$23A(a4)
move.w #$3E8,d1
ext.l d1
divs.w $22E(a4),d1
cmpi.w #$11,d1
sgt d3
neg.b d3
beq.s loc_60004C9C
move.w #$3E8,d1
ext.l d1
divs.w $22E(a4),d1
bra.s loc_60004C9E
; ---------------------------------------------------------------------------
loc_60004C9C: ; CODE XREF: sub_60004B60+12Eâ†j
moveq #$11,d1
loc_60004C9E: ; CODE XREF: sub_60004B60+13Aâ†j
ext.l d1
move.l d1,$236(a4)
clr.b $22D(a4)
move.l #$7D0,d6
loc_60004CAE: ; CODE XREF: sub_60004B60+FCâ†j
tst.b $22C(a4)
beq.s loc_60004CBC
lea $242(a4),a0
move.l d6,d0
dc.w $A05A ; _PrimeTime
loc_60004CBC: ; CODE XREF: sub_60004B60+152â†j
movem.l var_14(a6),d3/d5-d7/a4
unlk a6
rts
; End of function sub_60004B60
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_60004CC6: ; CODE XREF: sub_6000C03C+96↓p
; sub_6000C57A+18↓p ...
bra.w sub_600033D2
; End of function sub_60004CC6
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_60004CCA: ; CODE XREF: sub_6000C03C+76↓p
bra.w sub_60003162
; End of function sub_60004CCA
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60004CCE: ; CODE XREF: sub_600038A8+F4â†p
; sub_60004B2E+8â†p ...
var_10 set -$10
arg_0 set 8
link a6,#0
movem.l d6-d7/a3-a4,-(sp)
subq.l #4,sp
jsr sub_60003AF6
movea.l (sp)+,a4
clr.b d7
tst.l $232(a4)
beq.s loc_60004D28
move.b $22C(a4),d6
clr.b $22C(a4)
tst.b d6
beq.s loc_60004D26
moveq #0,d0
move.b ($8CD).w,d0
tst.l d0
bne.s loc_60004D26
tst.w ($8D0).w
bne.s loc_60004D26
moveq #0,d0
move.b ($8D2).w,d0
tst.l d0
bne.s loc_60004D26
movea.l $23E(a4),a0
movea.l (a0),a3
lea -$CA(a3),a3
move.l a0,d0
exg d0,a5
move.l d0,d6
pea $5E(a3)
dc.w $A851 ; _SetCursor
move.l d6,d0
exg d0,a5
loc_60004D26: ; CODE XREF: sub_60004CCE+22â†j
; sub_60004CCE+2Câ†j ...
moveq #1,d7
loc_60004D28: ; CODE XREF: sub_60004CCE+16â†j
move.b d7,arg_0(a6)
movem.l var_10(a6),d6-d7/a3-a4
unlk a6
rts
; End of function sub_60004CCE
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60004D36: ; CODE XREF: sub_60004B60+40â†p
var_8 set -8
var_6 set -6
var_4 set -4
var_2 set -2
link a6,#-8
clr.b d1
lea var_8(a6),a0
lea ($3F8).w,a1
move.l (a1)+,(a0)+
move.l (a1)+,(a0)+
moveq #$FFFFFFFF,d0
cmp.w var_8(a6),d0
beq.s loc_60004D6A
moveq #$FFFFFFFF,d0
cmp.w var_6(a6),d0
beq.s loc_60004D6A
moveq #$FFFFFFFF,d0
cmp.w var_4(a6),d0
beq.s loc_60004D6A
moveq #$FFFFFFFF,d0
cmp.w var_2(a6),d0
beq.s loc_60004D6A
moveq #1,d1
loc_60004D6A: ; CODE XREF: sub_60004D36+18â†j
; sub_60004D36+20â†j ...
move.b d1,d0
unlk a6
rts
; End of function sub_60004D36
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60004D70: ; CODE XREF: sub_60003AC8+2Aâ†j
var_8 set -8
var_6 set -6
var_4 set -4
link a6,#-8
clr.l var_4(a6)
clr.w var_6(a6)
move.w #$FFFF,var_8(a6)
lea ($3F8).w,a0
lea var_8(a6),a1
move.l (a1)+,(a0)+
move.l (a1)+,(a0)+
unlk a6
rts
; End of function sub_60004D70
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60004D92: ; CODE XREF: sub_60004668+B8â†p
var_8 set -8
var_4 set -4
arg_0 set 8
link a6,#-4
move.l a4,-(sp)
movea.l arg_0(a6),a4
pea var_4(a6)
dc.w $A874 ; _GetPort
movea.l var_4(a6),a0
move.w $44(a0),(a4)
movea.l var_4(a6),a0
move.w $4A(a0),2(a4)
movea.l var_4(a6),a0
moveq #0,d0
move.b $46(a0),d0
move.w d0,4(a4)
movea.l var_4(a6),a0
move.w $48(a0),6(a4)
movea.l var_8(a6),a4
unlk a6
rts
; End of function sub_60004D92
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60004DD4: ; CODE XREF: sub_60004668+2BCâ†p
var_4 set -4
arg_0 set 8
link a6,#0
move.l a4,-(sp)
movea.l arg_0(a6),a4
move.w (a4),-(sp)
dc.w $A887 ; _TextFont
move.w 2(a4),-(sp)
dc.w $A88A ; _TextSize
move.w 4(a4),-(sp)
dc.w $A888 ; _TextFace
move.w 6(a4),-(sp)
dc.w $A889 ; _TextMode
movea.l var_4(a6),a4
unlk a6
rts
; End of function sub_60004DD4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60004DFC: ; CODE XREF: sub_60004668+B0â†p
var_14 set -$14
var_4 set -4
arg_0 set 8
link a6,#-8
movem.l a2-a4,-(sp)
movea.l arg_0(a6),a4
pea var_4(a6)
dc.w $A874 ; _GetPort
moveq #0,d0
move.l d0,$22(a4)
move.l d0,$26(a4)
move.l var_4(a6),-(sp)
jsr sub_60003D9C
move.b d0,(a4)
move.b #1,1(a4)
movea.l var_4(a6),a0
lea $2A(a4),a1
lea $20(a0),a0
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
movea.l var_4(a6),a0
move.l $54(a0),$36(a4)
movea.l var_4(a6),a0
move.l $50(a0),$32(a4)
tst.b (a4)
addq.w #4,sp
beq.s loc_60004EA4
pea 2(a4)
dc.w $AA19 ; _GetForeColor
pea 8(a4)
dc.w $AA1A ; _GetBackColor
movea.l var_4(a6),a0
movea.l $3A(a0),a2
movea.l $20(a0),a3
move.l a2,d0
beq.s loc_60004E78
movea.l (a2),a0
tst.w (a0)
beq.s loc_60004E78
move.l a2,$22(a4)
loc_60004E78: ; CODE XREF: sub_60004DFC+70â†j
; sub_60004DFC+76â†j
move.l a3,d0
beq.s loc_60004EA0
movea.l (a3),a0
tst.w (a0)
beq.s loc_60004E88
move.l a3,$26(a4)
bra.s loc_60004E98
; ---------------------------------------------------------------------------
loc_60004E88: ; CODE XREF: sub_60004DFC+84â†j
movea.l (a3),a0
movea.l 6(a0),a0
movea.l (a0),a0
lea $2A(a4),a1
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
loc_60004E98: ; CODE XREF: sub_60004DFC+8Aâ†j
move.b #1,1(a4)
bra.s loc_60004EA4
; ---------------------------------------------------------------------------
loc_60004EA0: ; CODE XREF: sub_60004DFC+7Eâ†j
clr.b 1(a4)
loc_60004EA4: ; CODE XREF: sub_60004DFC+54â†j
; sub_60004DFC+A2â†j
pea $E(a4)
dc.w $A898 ; _GetPenState
movea.l var_4(a6),a0
move.w $48(a0),$20(a4)
movem.l var_14(a6),a2-a4
unlk a6
rts
; End of function sub_60004DFC
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60004EBE: ; CODE XREF: sub_60004F5C+26↓p
var_10 set -$10
var_8 set -8
var_4 set -4
arg_0 set 8
arg_7 set $F
link a6,#-8
movem.l d7/a4,-(sp)
move.b arg_7(a6),d7
beq.s loc_60004EF0
pea var_8(a6)
dc.w $A874 ; _GetPort
pea var_4(a6)
dc.w $AA48 ; _GetCWMgrPort
move.l var_8(a6),d0
cmp.l var_4(a6),d0
bne.s loc_60004EF0
dc.w $A11A ; _GetZone
movea.l a0,a4
subq.l #4,sp
move.l ($2A6).w,(sp)
movea.l (sp)+,a0
dc.w $A01B ; _SetZone
loc_60004EF0: ; CODE XREF: sub_60004EBE+Câ†j
; sub_60004EBE+22â†j
move.l arg_0(a6),-(sp)
dc.w $A899 ; _SetPenState
tst.b d7
beq.s loc_60004F08
move.l var_8(a6),d0
cmp.l var_4(a6),d0
bne.s loc_60004F08
movea.l a4,a0
dc.w $A01B ; _SetZone
loc_60004F08: ; CODE XREF: sub_60004EBE+3Aâ†j
; sub_60004EBE+44â†j
movem.l var_10(a6),d7/a4
unlk a6
rts
; End of function sub_60004EBE
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_60004F12: ; CODE XREF: sub_6000C412+16↓p
; sub_6000C4A8+36↓p
bra.w sub_600030F8
; End of function sub_60004F12
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60004F16: ; CODE XREF: sub_60004F5C+6E↓p
var_C set -$C
var_8 set -8
var_4 set -4
arg_0 set 8
link a6,#-8
move.l a4,-(sp)
pea var_8(a6)
dc.w $A874 ; _GetPort
pea var_4(a6)
dc.w $AA48 ; _GetCWMgrPort
move.l var_8(a6),d0
cmp.l var_4(a6),d0
bne.s loc_60004F40
dc.w $A11A ; _GetZone
movea.l a0,a4
subq.l #4,sp
move.l ($2A6).w,(sp)
movea.l (sp)+,a0
dc.w $A01B ; _SetZone
loc_60004F40: ; CODE XREF: sub_60004F16+1Aâ†j
move.l arg_0(a6),-(sp)
dc.w $A87C ; _BackPat
move.l var_8(a6),d0
cmp.l var_4(a6),d0
bne.s loc_60004F54
movea.l a4,a0
dc.w $A01B ; _SetZone
loc_60004F54: ; CODE XREF: sub_60004F16+38â†j
movea.l var_C(a6),a4
unlk a6
rts
; End of function sub_60004F16
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60004F5C: ; CODE XREF: sub_60004668+2CCâ†p
var_8 set -8
var_4 set -4
arg_0 set 8
link a6,#-4
move.l a4,-(sp)
movea.l arg_0(a6),a4
pea var_4(a6)
dc.w $A874 ; _GetPort
move.l var_4(a6),-(sp)
jsr sub_60003D9C
moveq #0,d1
move.b d0,d1
tst.l d1
addq.l #4,sp
move.l d1,-(sp)
pea $E(a4)
jsr sub_60004EBE
move.l var_4(a6),-(sp)
jsr sub_60003D9C
tst.b d0
lea $C(sp),sp
beq.s loc_60004FD2
tst.b (a4)
beq.s loc_60004FD2
pea 2(a4)
dc.w $AA14 ; _RGBForeColor
pea 8(a4)
dc.w $AA15 ; _RGBBackColor ; come-from patches = #1
tst.l $22(a4)
beq.s loc_60004FB2
move.l $22(a4),-(sp)
dc.w $AA0A ; _PenPixPat
loc_60004FB2: ; CODE XREF: sub_60004F5C+4Eâ†j
tst.b 1(a4)
beq.s loc_60004FE4
tst.l $26(a4)
beq.s loc_60004FC6
move.l $26(a4),-(sp)
dc.w $AA0B ; _BackPixPat
bra.s loc_60004FE4
; ---------------------------------------------------------------------------
loc_60004FC6: ; CODE XREF: sub_60004F5C+60â†j
pea $2A(a4)
jsr sub_60004F16
addq.w #4,sp
bra.s loc_60004FE4
; ---------------------------------------------------------------------------
loc_60004FD2: ; CODE XREF: sub_60004F5C+38â†j
; sub_60004F5C+3Câ†j
pea $2A(a4)
dc.w $A87C ; _BackPat
move.l $32(a4),-(sp)
dc.w $A862 ; _ForeColor
move.l $36(a4),-(sp)
dc.w $A863 ; _BackColor
loc_60004FE4: ; CODE XREF: sub_60004F5C+5Aâ†j
; sub_60004F5C+68â†j ...
move.w $20(a4),-(sp)
dc.w $A889 ; _TextMode
movea.l var_8(a6),a4
unlk a6
rts
; End of function sub_60004F5C
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60004FF2: ; CODE XREF: sub_60004028+1Aâ†p
var_14 set -$14
arg_0 set 8
link a6,#-4
movem.l d7/a2-a4,-(sp)
movea.l arg_0(a6),a3
clr.b d7
move.l a3,d0
beq.w loc_60005140
moveq #0,d0
move.l d0,(a3)
movea.l ($2B6).w,a0
tst.l $2A8(a0)
beq.w loc_60005140
movea.l ($2B6).w,a0
movea.l $2A8(a0),a0
move.l (a0),(a3)
bne.w loc_60005140
dc.w $A11A ; _GetZone
movea.l a0,a2
subq.l #4,sp
move.l ($2A6).w,(sp)
movea.l (sp)+,a0
dc.w $A01B ; _SetZone
subq.l #4,sp
move.l #$636C7574,-(sp)
move.w #$B0F7,-(sp)
dc.w $A9A0 ; _GetResource
move.l (sp)+,(a3)
beq.s loc_6000504C
move.l (a3),-(sp)
dc.w $A992 ; _DetachResource
bra.w loc_60005136
; ---------------------------------------------------------------------------
loc_6000504C: ; CODE XREF: sub_60004FF2+50â†j
moveq #$48,d0 ; 'H'
dc.w $A722 ; _NewHandleSysClear
move.l a0,(a3)
beq.w loc_60005136
movea.l a0,a4
movea.l (a4),a0
move.w #7,6(a0)
movea.l (a4),a0
clr.w 8(a0)
movea.l (a4),a0
move.w #$EEEE,$A(a0)
movea.l (a4),a0
move.w #$EEEE,$C(a0)
movea.l (a4),a0
move.w #$EEEE,$E(a0)
movea.l (a4),a0
move.w #1,$10(a0)
movea.l (a4),a0
move.w #$CCCC,$12(a0)
movea.l (a4),a0
move.w #$CCCC,$14(a0)
movea.l (a4),a0
move.w #$FFFF,$16(a0)
movea.l (a4),a0
move.w #2,$18(a0)
movea.l (a4),a0
move.w #$9999,$1A(a0)
movea.l (a4),a0
move.w #$9999,$1C(a0)
movea.l (a4),a0
move.w #$FFFF,$1E(a0)
movea.l (a4),a0
move.w #3,$20(a0)
movea.l (a4),a0
move.w #$6666,$22(a0)
movea.l (a4),a0
move.w #$6666,$24(a0)
movea.l (a4),a0
move.w #$CCCC,$26(a0)
movea.l (a4),a0
move.w #4,$28(a0)
movea.l (a4),a0
move.w #$3333,$2A(a0)
movea.l (a4),a0
move.w #$3333,$2C(a0)
movea.l (a4),a0
move.w #$9999,$2E(a0)
movea.l (a4),a0
move.w #5,$30(a0)
movea.l (a4),a0
clr.w $32(a0)
movea.l (a4),a0
clr.w $34(a0)
movea.l (a4),a0
move.w #$8888,$36(a0)
movea.l (a4),a0
move.w #6,$38(a0)
movea.l (a4),a0
clr.w $3A(a0)
movea.l (a4),a0
clr.w $3C(a0)
movea.l (a4),a0
move.w #$5555,$3E(a0)
loc_60005136: ; CODE XREF: sub_60004FF2+56â†j
; sub_60004FF2+60â†j
tst.l (a3)
beq.s loc_6000513C
moveq #1,d7
loc_6000513C: ; CODE XREF: sub_60004FF2+146â†j
movea.l a2,a0
dc.w $A01B ; _SetZone
loc_60005140: ; CODE XREF: sub_60004FF2+10â†j
; sub_60004FF2+20â†j ...
move.b d7,d0
movem.l var_14(a6),d7/a2-a4
unlk a6
rts
; End of function sub_60004FF2
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000514C: ; CODE XREF: sub_60004028+42â†p
; sub_60004028+D8â†p ...
var_10 set -$10
arg_0 set 8
arg_6 set $E
link a6,#0
movem.l d5-d7/a4,-(sp)
move.w arg_6(a6),d5
movea.l arg_0(a6),a4
move.l a4,d0
beq.s loc_60005194
movea.l (a4),a0
move.w 6(a0),d0
ext.l d0
move.l d0,d6
addq.l #1,d6
moveq #0,d7
bra.s loc_6000518E
; ---------------------------------------------------------------------------
loc_60005170: ; CODE XREF: sub_6000514C+46↓j
movea.l (a4),a0
move.l d7,d0
asl.l #3,d0
cmp.w 8(a0,d0.l),d5
bne.s loc_6000518A
movea.l (a4),a0
move.l d7,d0
asl.l #3,d0
pea $A(a0,d0.l)
dc.w $AA14 ; _RGBForeColor
bra.s loc_60005194
; ---------------------------------------------------------------------------
loc_6000518A: ; CODE XREF: sub_6000514C+2Eâ†j
move.l d7,d0
addq.l #1,d7
loc_6000518E: ; CODE XREF: sub_6000514C+22â†j
ext.l d6
cmp.l d7,d6
bgt.s loc_60005170
loc_60005194: ; CODE XREF: sub_6000514C+12â†j
; sub_6000514C+3Câ†j
movem.l var_10(a6),d5-d7/a4
unlk a6
rts
; End of function sub_6000514C
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000519E: ; CODE XREF: sub_60003F4C+1Câ†p
; sub_60004028+Câ†p ...
var_1C set -$1C
var_4 set -4
link a6,#-4
movem.l d3-d7/a4,-(sp)
clr.b d6
pea var_4(a6)
dc.w $A874 ; _GetPort
move.l var_4(a6),-(sp)
jsr sub_60003D9C
tst.b d0
addq.w #4,sp
beq.s loc_600051CC
movea.l var_4(a6),a0
movea.l 2(a0),a0
movea.l (a0),a0
movea.w $20(a0),a0
bra.s loc_600051D0
; ---------------------------------------------------------------------------
loc_600051CC: ; CODE XREF: sub_6000519E+1Câ†j
movea.w #1,a0
loc_600051D0: ; CODE XREF: sub_6000519E+2Câ†j
move.w a0,d7
cmpi.w #4,d7
blt.s loc_60005212
subq.l #4,sp
dc.w $AA2A ; _GetMainDevice
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_60005212
movea.l (a4),a0
move.w $14(a0),d4
moveq #1,d0
and.w d4,d0
moveq #0,d1
move.w d0,d1
tst.l d1
sne d3
neg.b d3
move.b d3,d5
moveq #1,d3
tst.b d5
beq.s loc_60005204
cmpi.w #8,d7
bge.s loc_60005210
loc_60005204: ; CODE XREF: sub_6000519E+5Eâ†j
tst.b d5
bne.s loc_6000520E
cmpi.w #4,d7
bge.s loc_60005210
loc_6000520E: ; CODE XREF: sub_6000519E+68â†j
moveq #0,d3
loc_60005210: ; CODE XREF: sub_6000519E+64â†j
; sub_6000519E+6Eâ†j
move.b d3,d6
loc_60005212: ; CODE XREF: sub_6000519E+38â†j
; sub_6000519E+42â†j
move.b d6,d0
movem.l var_1C(a6),d3-d7/a4
unlk a6
rts
; End of function sub_6000519E
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000521E: ; CODE XREF: sub_60004668+4Câ†p
; sub_60004668+1A8â†p ...
var_4 set -4
arg_0 set 8
arg_4 set $C
link a6,#0
move.l a4,-(sp)
movea.l arg_4(a6),a4
movea.l a4,a0
movea.l arg_0(a6),a1
move.b (a4),d0
ext.w d0
addq.w #1,d0
ext.l d0
dc.w $A22E ; _BlockMoveData
movea.l var_4(a6),a4
unlk a6
rts
; End of function sub_6000521E
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60005240: ; CODE XREF: sub_60004668+8Aâ†p
; sub_60004668+94â†p ...
var_10 set -$10
arg_0 set 8
arg_4 set $C
link a6,#0
movem.l d6-d7/a3-a4,-(sp)
movea.l arg_4(a6),a3
movea.l arg_0(a6),a4
move.b (a3),d0
ext.w d0
ext.l d0
move.l d0,d6
move.b (a4),d0
ext.w d0
ext.l d0
move.l d0,d7
movea.l a3,a0
addq.l #1,a0
move.l d7,d0
addq.l #1,d0
lea (a4,d0.l),a1
move.l d6,d0
dc.w $A22E ; _BlockMoveData
move.l d7,d0
add.l d6,d0
move.b d0,(a4)
movem.l var_10(a6),d6-d7/a3-a4
unlk a6
rts
; End of function sub_60005240
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_60005280: ; CODE XREF: SpecialCaseOriginaliMac+100↓p
bra.w sub_60003394
; End of function sub_60005280
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60005284: ; CODE XREF: sub_60004668+80â†p
var_108 set -$108
var_100 set -$100
arg_0 set 8
link a6,#-$100
movem.l a3-a4,-(sp)
movea.l arg_0(a6),a3
lea var_100(a6),a4
move.b #1,(a4)
move.b #$28,1(a4) ; '('
move.l a3,-(sp)
move.l a4,-(sp)
jsr sub_60005240
pea byte_600052C2
move.l a4,-(sp)
jsr sub_60005240
move.l a4,-(sp)
move.l a3,-(sp)
jsr sub_6000521E
movem.l var_108(a6),a3-a4
unlk a6
rts
; ---------------------------------------------------------------------------
byte_600052C2: dc.b 1 ; DATA XREF: sub_60005284+22â†o
dc.b $29 ; )
dc.b 0
dc.b 0
; End of function sub_60005284
; =============== S U B R O U T I N E =======================================
_SetUpStartupScreen: ; CODE XREF: ROM:loc_600003D2â†p
movea.l ($A50).w,a0
movea.l (a0),a0
move.w $14(a0),($A5A).w
moveq #0,d0
bsr.w LoadDSAT
move.l d0,d6
lea unk_600058DE,a1
tst.w (a1)
bne.w locret_600052E8
bsr.w sub_60005B8A
locret_600052E8: ; CODE XREF: _SetUpStartupScreen+1Aâ†j
rts
; End of function _SetUpStartupScreen
; =============== S U B R O U T I N E =======================================
GetStartupPict: ; CODE XREF: ROM:loc_60000452â†p
var_18 set -$18
var_10 set -$10
bclr #2,($B21).w
bclr #1,($B21).w
subq.w #2,sp
pea $2BA(a5)
dc.w $A997 ; _OpenResFile
move.w (sp)+,d0
bmi.s loc_60005336
move.w d0,-(sp)
subq.w #4,sp
clr.w -(sp)
dc.w $A9BC ; _GetPicture
move.l (sp)+,d0
beq.s loc_60005334
movea.l d0,a2
movea.l (a2),a0
move.l 6(a0),-(sp)
move.l 2(a0),-(sp)
bsr.w sub_60005C9C
move.l a2,-(sp)
pea $14+var_10(sp)
dc.w $A8F6 ; _DrawPicture
addq.w #8,sp
bset #2,($B21).w
bset #1,($B21).w
loc_60005334: ; CODE XREF: GetStartupPict+22â†j
dc.w $A99A ; _CloseResFile
loc_60005336: ; CODE XREF: GetStartupPict+16â†j
btst #2,($B21).w
bne.s locret_60005398
lea $2BA(a5),a1
bsr.w LoadBelowBufPtr
bne.s loc_60005386
cmpi.l #$5580,d2
bcs.s loc_60005386
move.l #$1560200,-(sp)
clr.l -(sp)
bsr.w sub_60005C9C
move.w #$40,-(sp) ; '@'
move.l a2,-(sp)
move.l sp,-(sp)
pea $72(a5)
pea $26+var_18(sp)
move.l (sp),-(sp)
clr.w -(sp)
clr.l -(sp)
dc.w $A8EC ; _CopyBits
lea $E(sp),sp
bset #2,($B21).w
bset #1,($B21).w
bra.s locret_60005398
; ---------------------------------------------------------------------------
loc_60005386: ; CODE XREF: GetStartupPict+5Câ†j
; GetStartupPict+64â†j
move.b ($B21).w,-(sp)
bset #1,($B21).w
bsr.w sub_600056AE
move.b (sp)+,($B21).w
locret_60005398: ; CODE XREF: GetStartupPict+52â†j
; GetStartupPict+9Aâ†j
rts
; End of function GetStartupPict
; =============== S U B R O U T I N E =======================================
BootAlert: ; CODE XREF: ROM:60000458â†p
; ROM:60000570â†p ...
movem.l d0-d4/a0-a4,-(sp)
lea unk_600058DE,a1
cmpi.w #0,(a1)
beq.w loc_60005442
lea unk_6000544A,a0
move.w (a1),d1
cmpi.w #$BF8B,d1
beq.s loc_600053C2
cmpi.w #$BF88,d1
beq.s loc_600053C2
move.w #2,d1
bra.s loc_600053D0
; ---------------------------------------------------------------------------
loc_600053C2: ; CODE XREF: BootAlert+1Aâ†j
; BootAlert+20â†j
move.w #4,d1
bra.s loc_600053D0
; ---------------------------------------------------------------------------
loc_600053C8: ; CODE XREF: BootAlert+38↓j
addq.l #8,a0
tst.w (a0)
beq.w loc_60005442
loc_600053D0: ; CODE XREF: BootAlert+26â†j
; BootAlert+2Câ†j
cmp.w (a0),d0
bne.s loc_600053C8
move.w 6(a0),d4
subq.w #4,sp
move.w (a0,d1.w),-(sp)
dc.w $A9BC ; _GetPicture
move.l (sp)+,d0
beq.s loc_60005442
movea.l d0,a2
movea.l (a2),a0
lea unk_600058D6,a4
lea unk_600058CE,a3
move.w 8(a0),d0
move.w 6(a3),d1
move.w 2(a3),d2
sub.w d2,d1
sub.w d0,d1
lsr.w #1,d1
add.w d1,d2
move.w d2,2(a4)
add.w d2,d0
move.w d0,6(a4)
move.w 4(a3),d0
sub.w d4,d0
move.w d0,4(a4)
move.w 6(a0),d1
sub.w d1,d0
move.w d0,(a4)
bsr.w sub_60005644
clr.l -(sp)
move.l sp,-(sp)
dc.w $A874 ; _GetPort
pea $70(a5)
dc.w $A873 ; _SetPort
move.l a2,-(sp)
move.l a4,-(sp)
dc.w $A8F6 ; _DrawPicture
move.l a2,-(sp)
dc.w $A9A3 ; _ReleaseResource
dc.w $A873 ; _SetPort
movem.l (sp)+,d0-d4/a0-a4
rts
; ---------------------------------------------------------------------------
loc_60005442: ; CODE XREF: BootAlert+Câ†j
; BootAlert+32â†j ...
movem.l (sp)+,d0-d4/a0-a4
bra.w loc_60005478
; ---------------------------------------------------------------------------
unk_6000544A: dc.b $FF ; DATA XREF: BootAlert+10â†o
dc.b $F6
dc.b $B0
dc.b $F1
dc.b $B0
dc.b $F0
dc.b 0
dc.b $F
dc.b 0
dc.b $28 ; (
dc.b $B0
dc.b $EF
dc.b $B0
dc.b $EE
dc.b 0
dc.b $24 ; $
dc.b $FF
dc.b $F3
dc.b $B0
dc.b $F3
dc.b $B0
dc.b $F2
dc.b 0
dc.b $F
dc.b $FF
dc.b $F2
dc.b $B0
dc.b $F5
dc.b $B0
dc.b $F4
dc.b 0
dc.b $24 ; $
dc.b 0
dc.b 0
dc.b $C
dc.b $40 ; @
dc.b $FF
dc.b $F6
dc.b $66 ; f
dc.b 6
dc.b 8
dc.b $F8
dc.b 0
dc.b 3
dc.b $B
dc.b $21 ; !
; ---------------------------------------------------------------------------
loc_60005478: ; CODE XREF: BootAlert+ACâ†j
btst #5,($B20).w
bne.s loc_60005496
cmpi.w #$FFF6,d0
bne.s loc_6000548C
move.w #$FFFF,d0
bra.s loc_60005496
; ---------------------------------------------------------------------------
loc_6000548C: ; CODE XREF: BootAlert+EAâ†j
cmpi.w #$FFF5,d0
bne.s loc_60005496
move.w #$FFFE,d0
loc_60005496: ; CODE XREF: BootAlert+E4â†j
; BootAlert+F0â†j ...
lea unk_60005500,a0
move.w d0,(a0)
move.b ($B21).w,-(sp)
bset #1,($B21).w
bsr.w sub_600056AE
move.b (sp)+,($B21).w
lea unk_60005500,a0
clr.w (a0)
rts
; End of function BootAlert
; ---------------------------------------------------------------------------
VMName: dc.b 14,'Virtual Memory',0
; DATA XREF: ROM:600020F8â†o
UserModeInitName:dc.b 24,'User Mode Initialization',0
; DATA XREF: sub_60002270+10â†o
DebuggerName: dc.b 8,'Debugger',0 ; DATA XREF: sub_60002296:loc_600022CCâ†o
DisassemblerName:dc.b 12,'Disassembler',0
; DATA XREF: sub_60002296+50â†o
SystemName: dc.b 6 ; DATA XREF: InstallPatches:loc_600027CCâ†o
dc.b $53 ; S
LinkedPatchName:dc.b 'ystem',0
unk_60005500: dc.b 0 ; DATA XREF: BootAlert:loc_60005496â†o
; BootAlert+114â†o ...
dc.b 0
; ---------------------------------------------------------------------------
loc_60005502: ; CODE XREF: SetColorCodeGestalt+82↓p
; SetColorCodeGestalt+CA↓p ...
bra.w sub_600033F8
; =============== S U B R O U T I N E =======================================
InitGreeterWindow: ; CODE XREF: ROM:60000AA2â†p
btst #2,($B21).w
bne.w locret_600055A6
jsr sub_60002CE2
dc.w $A912 ; _InitWindows
pea $70(a5)
move.w $76(a5),d0
andi.w #$C000,d0
beq.s loc_60005528
dc.w $AA01 ; _InitCPort
bra.s loc_6000552A
; ---------------------------------------------------------------------------
loc_60005528: ; CODE XREF: InitGreeterWindow+1Câ†j
dc.w $A86D ; _InitPort
loc_6000552A: ; CODE XREF: InitGreeterWindow+20â†j
bsr.w sub_600056AE
btst #2,($B21).w
beq.s loc_6000559A
move.b ($BFF).w,-(sp)
clr.b ($BFF).w
move.l ($120).w,-(sp)
clr.l ($120).w
move.l ($2BA).w,-(sp)
bsr.w sub_600059A4
moveq #0,d0
bsr.w LoadDSAT
move.w ($A58).w,-(sp)
movea.l ($A50).w,a0
movea.l (a0),a0
move.w $14(a0),($A58).w
moveq #$28,d0 ; '('
dc.w $A9C9 ; _SysError
move.w (sp)+,($A58).w
btst #5,($B20).w
bne.s loc_6000557C
moveq #$FFFFFFF3,d0
bsr.w BootAlert
bra.s loc_6000558A
; ---------------------------------------------------------------------------
loc_6000557C: ; CODE XREF: InitGreeterWindow+6Câ†j
btst #3,($B21).w
beq.s loc_6000558A
moveq #$FFFFFFF6,d0
bsr.w BootAlert
loc_6000558A: ; CODE XREF: InitGreeterWindow+74â†j
; InitGreeterWindow+7Câ†j
move.l (sp)+,($2BA).w
move.l (sp)+,($120).w
move.b (sp)+,($BFF).w
bsr.w sub_60005984
loc_6000559A: ; CODE XREF: InitGreeterWindow+2Eâ†j
bsr.w sub_600037AC
move.w #1,-(sp)
bsr.w ResetDMNotifyProc
locret_600055A6: ; CODE XREF: InitGreeterWindow+6â†j
rts
; End of function InitGreeterWindow
; =============== S U B R O U T I N E =======================================
ResetDMNotifyProc: ; CODE XREF: InitGreeterWindow+9Câ†p
; PrepForResolutionChangeByThing+8↓p
movea.l (sp)+,a0
move.w (sp)+,d0
move.l a0,-(sp)
tst.w d0
bne.s loc_600055CA
subq.w #2,sp
pea loc_600055E2
move.l a5,-(sp)
clr.l -(sp)
clr.w -(sp)
move.w #$726,d0
dc.w $ABEB ; _DisplayDispatch
addq.w #2,sp
bra.w locret_60005642
; ---------------------------------------------------------------------------
loc_600055CA: ; CODE XREF: ResetDMNotifyProc+8â†j
subq.w #2,sp
pea loc_600055E2
move.l a5,-(sp)
clr.w -(sp)
clr.l -(sp)
move.w #$7EF,d0
dc.w $ABEB ; _DisplayDispatch
addq.w #2,sp
bra.w locret_60005642
; ---------------------------------------------------------------------------
loc_600055E2: ; DATA XREF: ResetDMNotifyProc+Câ†o
; ResetDMNotifyProc+24â†o
link a6,#0
move.l a5,-(sp)
move.w $C(a6),d0
cmpi.w #2,d0
bne.s loc_60005636
movea.l $E(a6),a5
move.l (a5),-(sp)
dc.w $A86E ; _InitGraf
lea $70(a5),a0
move.l a0,-(sp)
move.l a0,-(sp)
move.w 6(a0),d0
andi.w #$C000,d0
beq.s loc_60005612
dc.w $AA02 ; _CloseCPort
dc.w $AA00 ; _OpenCPort
bra.s loc_60005616
; ---------------------------------------------------------------------------
loc_60005612: ; CODE XREF: ResetDMNotifyProc+62â†j
dc.w $A87D ; _ClosePort
dc.w $A86F ; _OpenPort
loc_60005616: ; CODE XREF: ResetDMNotifyProc+68â†j
bsr.w sub_60005644
move.w #1,-(sp)
bsr.w sub_60005682
tst.w $28(a5)
beq.s loc_6000562C
addq.w #1,$28(a5)
loc_6000562C: ; CODE XREF: ResetDMNotifyProc+7Eâ†j
bsr.w loc_600037F0
bsr.l sub_6000CEB6
loc_60005636: ; CODE XREF: ResetDMNotifyProc+48â†j
movea.l (sp)+,a5
unlk a6
movea.l (sp)+,a0
lea $A(sp),sp
jmp (a0)
; ---------------------------------------------------------------------------
locret_60005642: ; CODE XREF: ResetDMNotifyProc+1Eâ†j
; ResetDMNotifyProc+36â†j
rts
; End of function ResetDMNotifyProc
; =============== S U B R O U T I N E =======================================
sub_60005644: ; CODE XREF: BootAlert+86â†p
; ResetDMNotifyProc:loc_60005616â†p ...
movem.l d0-d2/a0-a1,-(sp)
clr.l -(sp)
dc.w $AA2A ; _GetMainDevice
movea.l (sp)+,a0
movea.l (a0),a0
movea.l $16(a0),a0
movea.l (a0),a0
lea -$7E(a5),a1
move.l (a0)+,(a1)+
move.w (a0)+,d0
andi.w #$3FFF,d0
move.w d0,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
movem.l (sp)+,d0-d2/a0-a1
rts
; End of function sub_60005644
; =============== S U B R O U T I N E =======================================
PrepForResolutionChangeByThing: ; CODE XREF: ROM:60001802â†p
pea $70(a5)
dc.w $A87D ; _ClosePort
clr.w -(sp)
bsr.w ResetDMNotifyProc
bset #2,($B21).w
rts
; End of function PrepForResolutionChangeByThing
; =============== S U B R O U T I N E =======================================
sub_60005682: ; CODE XREF: ROM:60001064â†p
; ROM:60001406â†p ...
arg_0 set 4
btst #2,($B21).w
bne.s loc_600056A8
tst.l ($9D6).w
beq.s loc_60005694
dc.w $A912 ; _InitWindows
bra.s loc_600056A0
; ---------------------------------------------------------------------------
loc_60005694: ; CODE XREF: sub_60005682+Câ†j
tst.w arg_0(sp)
bne.s loc_600056A0
tst.b ($8F2).w
bne.s loc_600056A8
loc_600056A0: ; CODE XREF: sub_60005682+10â†j
; sub_60005682+16â†j
bsr.w sub_600056AE
st ($8F2).w
loc_600056A8: ; CODE XREF: sub_60005682+6â†j
; sub_60005682+1Câ†j
movea.l (sp)+,a0
addq.w #2,sp
jmp (a0)
; End of function sub_60005682
; =============== S U B R O U T I N E =======================================
sub_600056AE: ; CODE XREF: GetStartupPict+A6â†p
; BootAlert+10Câ†p ...
btst #2,($B21).w
beq.s loc_600056B8
rts
; ---------------------------------------------------------------------------
loc_600056B8: ; CODE XREF: sub_600056AE+6â†j
movem.l d0-d4/a0-a3,-(sp)
move.l ($118).w,-(sp)
move.l ($2A6).w,($118).w
bsr.w sub_60005644
move.w #1,d3
move.w -$74(a5),d0
cmpi.w #$190,d0
bls.s loc_600056DE
lea unk_600058B8,a2
bra.s loc_600056E2
; ---------------------------------------------------------------------------
loc_600056DE: ; CODE XREF: sub_600056AE+28â†j
; sub_600056AE+1E4↓j
lea unk_600058A6,a2
loc_600056E2: ; CODE XREF: sub_600056AE+2Eâ†j
move.w $76(a5),d0
andi.w #$C000,d0
bne.s loc_600056F0
moveq #1,d0
bra.s loc_60005704
; ---------------------------------------------------------------------------
loc_600056F0: ; CODE XREF: sub_600056AE+3Câ†j
movea.l $72(a5),a0
movea.l (a0),a0
move.w $20(a0),d0
cmpi.w #8,d0
bls.s loc_60005704
move.w #8,d0
loc_60005704: ; CODE XREF: sub_600056AE+40â†j
; sub_600056AE+50â†j
asl.w #1,d0
lea 2(a2,d0.w),a2
loc_6000570A: ; CODE XREF: sub_600056AE+66↓j
; sub_600056AE+72↓j
move.w -(a2),d0
beq.w loc_6000588A
cmpi.w #$FFFF,d0
beq.s loc_6000570A
subq.w #4,sp
move.w d0,d1
move.w d0,-(sp)
dc.w $A9BC ; _GetPicture
move.l (sp)+,d0
beq.s loc_6000570A
move.l a2,-(sp)
lea unk_600058DE,a2
move.w d1,(a2)
movea.l (sp)+,a2
movea.l d0,a2
movea.l (a2),a0
move.l 6(a0),-(sp)
move.l 2(a0),-(sp)
bsr.w sub_60005C9C
lea unk_600058CE,a3
move.l (sp)+,(a3)
move.l (sp)+,4(a3)
moveq #0,d0
move.w (a3),d0
asl.w #1,d0
divu.w #5,d0
sub.w d0,(a3)
sub.w d0,4(a3)
clr.l -(sp)
move.l sp,-(sp)
dc.w $A874 ; _GetPort
pea $70(a5)
dc.w $A873 ; _SetPort
subq.w #4,sp
move.w #$B0F5,-(sp) ; "Starting Up..."
dc.w $A9BC ; _GetPicture
move.l (sp)+,d0
beq.s loc_6000579C
move.l a2,-(sp)
move.l a3,-(sp)
dc.w $A8F6 ; _DrawPicture
move.l a2,-(sp)
dc.w $A9A3 ; _ReleaseResource
movem.l d0-d2/a0-a3,-(sp)
move.l a3,-(sp)
bsr.l sub_60005CC2
movem.l (sp)+,d0-d2/a0-a3
btst #1,($B21).w
bne.w loc_60005886
moveq #$FFFFFFF2,d0
bsr.w BootAlert
bra.w loc_60005886
; ---------------------------------------------------------------------------
loc_6000579C: ; CODE XREF: sub_600056AE+BEâ†j
move.w #$BF8A,d0
move.w #$FFFF,d1
moveq #0,d4
btst #1,($B21).w
beq.s loc_60005806
lea unk_60005500,a0
move.w (a0),d1
lea off_600057CE,a0
loc_600057B8: ; CODE XREF: sub_600056AE+116↓j
cmp.w (a0)+,d1
beq.s loc_600057C6
tst.w (a0)+
beq.w loc_60005886
addq.w #4,a0
bra.s loc_600057B8
; ---------------------------------------------------------------------------
loc_600057C6: ; CODE XREF: sub_600056AE+10Câ†j
move.w (a0)+,d0
move.w (a0)+,d1
move.w (a0),d4
bra.s loc_60005806
; ---------------------------------------------------------------------------
off_600057CE: dc.l $B0DC ; DATA XREF: sub_600056AE+106â†o
dc.b $FF
dc.b $FF
dc.b 0
dc.b 0
dc.b $FF
dc.b $F3
dc.b $B0
dc.b $DF
dc.b 0
dc.b 0
dc.b 0
dc.b $12
dc.b $FF
dc.b $F6
dc.b $B0
dc.b $DA
dc.b $FF
dc.b $FF
dc.b 0
dc.b 0
dc.b $FF
dc.b $F5
dc.b $B0
dc.b $D9
dc.b 0
dc.b 0
dc.b 0
dc.b $12
dc.b $FF
dc.b $FF
dc.b $B0
dc.b $DA
dc.b 0
dc.b 0
dc.b 0
dc.b $22 ; "
dc.b $FF
dc.b $FE
dc.b $B0
dc.b $DA
dc.b 0
dc.b 0
dc.b $FF
dc.b $FF
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
; ---------------------------------------------------------------------------
loc_60005806: ; CODE XREF: sub_600056AE+FEâ†j
; sub_600056AE+11Eâ†j
move.w d0,-(sp)
tst.w d1
beq.s loc_60005816
move.l a2,-(sp)
move.l a3,-(sp)
dc.w $A8F6 ; _DrawPicture
move.l a2,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_60005816: ; CODE XREF: sub_600056AE+15Câ†j
move.w (sp)+,d0
cmpi.w #$FFFF,d4
beq.s loc_60005886
subq.w #4,sp
move.w d0,-(sp)
dc.w $A9BA ; _GetString
move.l (sp)+,d0
beq.s loc_60005886
movea.l d0,a2
clr.w -(sp)
dc.w $A888 ; _TextFace
clr.w -(sp)
move.l (a2),-(sp)
dc.w $A88C ; _StringWidth
move.w (sp)+,d0
btst #1,($B21).w
bne.s loc_60005854
cmpi.w #$A2,d0
bls.w loc_60005854
move.w #$20,-(sp) ; ' '
dc.w $A888 ; _TextFace
clr.w -(sp)
move.l (a2),-(sp)
dc.w $A88C ; _StringWidth
move.w (sp)+,d0
loc_60005854: ; CODE XREF: sub_600056AE+18Eâ†j
; sub_600056AE+194â†j
lsr.w #1,d0
move.w 6(a3),d1
sub.w 2(a3),d1
lsr.w #1,d1
add.w 2(a3),d1
sub.w d0,d1
move.w d1,-(sp)
move.w 4(a3),d0
subi.w #$2C,d0 ; ','
btst #1,($B21).w
beq.s loc_6000587A
add.w d4,d0
loc_6000587A: ; CODE XREF: sub_600056AE+1C8â†j
move.w d0,-(sp)
dc.w $A893 ; _MoveTo
move.l (a2),-(sp)
dc.w $A884 ; _DrawString
move.l a2,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_60005886: ; CODE XREF: sub_600056AE+E0â†j
; sub_600056AE+EAâ†j ...
dc.w $A873 ; _SetPort
bra.s loc_6000589C
; ---------------------------------------------------------------------------
loc_6000588A: ; CODE XREF: sub_600056AE+5Eâ†j
cmpi.w #2,d3
beq.s loc_60005896
addq.w #1,d3
bra.w loc_600056DE
; ---------------------------------------------------------------------------
loc_60005896: ; CODE XREF: sub_600056AE+1E0â†j
bset #2,($B21).w
loc_6000589C: ; CODE XREF: sub_600056AE+1DAâ†j
move.l (sp)+,($118).w
movem.l (sp)+,d0-d4/a0-a3
rts
; End of function sub_600056AE
; ---------------------------------------------------------------------------
unk_600058A6: dc.b 0 ; DATA XREF: sub_600056AE:loc_600056DEâ†o
dc.b 0
dc.b $BF
dc.b $8B
dc.b $FF
dc.b $FF
dc.b $FF
dc.b $FF
dc.b $BF
dc.b $8A
dc.b $FF
dc.b $FF
dc.b $FF
dc.b $FF
dc.b $FF
dc.b $FF
dc.b $BF
dc.b $89
unk_600058B8: dc.b 0 ; DATA XREF: sub_600056AE+2Aâ†o
dc.b 0
dc.b $BF
dc.b $88
dc.b $FF
dc.b $FF
dc.b $FF
dc.b $FF
dc.b $BF
dc.b $87
dc.b $FF
dc.b $FF
dc.b $FF
dc.b $FF
dc.b $FF
dc.b $FF
dc.b $BF
dc.b $86
; ---------------------------------------------------------------------------
j_NudgeProgressBar: ; CODE XREF: sub_6000CBBC:loc_6000CC32↓p
bra.w NudgeProgressBar
; ---------------------------------------------------------------------------
unk_600058CE: dc.b 0 ; DATA XREF: ROM:60003808â†o
; BootAlert+52â†o ...
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
unk_600058D6: dc.b 0 ; DATA XREF: BootAlert+4Eâ†o
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
unk_600058DE: dc.b 0 ; DATA XREF: _SetUpStartupScreen+14â†o
; BootAlert+4â†o ...
dc.b 0
unk_600058E0: dc.b 0 ; DATA XREF: sub_60005984↓o
; sub_600059A4↓o
dc.b 0
dc.b 0
dc.b 0
unk_600058E4: dc.b 0 ; DATA XREF: sub_60005A16+8↓o
; sub_60005A16+46↓o
dc.b 0
dc.b 0
dc.b 0
unk_600058E8: dc.b 0 ; DATA XREF: sub_60005A16+24↓o
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
; =============== S U B R O U T I N E =======================================
sub_60005984: ; CODE XREF: InitGreeterWindow+90â†p
lea unk_600058E0,a0
move.l (a0),d0
beq.s locret_60005992
move.l d0,($334).w
clr.l (a0)
locret_60005992: ; CODE XREF: sub_60005984+6â†j
rts
; End of function sub_60005984
; ---------------------------------------------------------------------------
dc.b $41 ; A
dc.b $FA
dc.b $FF
dc.b $4E ; N
dc.b $20
dc.b $10
dc.b $67 ; g
dc.b 6
dc.b $42 ; B
dc.b $90
dc.b $2F ; /
dc.b 0
dc.b $A9
dc.b $2D ; -
dc.b $4E ; N
dc.b $75 ; u
; =============== S U B R O U T I N E =======================================
sub_600059A4: ; CODE XREF: InitGreeterWindow+44â†p
lea unk_600058E0,a0
move.l ($334).w,(a0)
loc_600059AC: ; CODE XREF: sub_600059B6+54↓j
; sub_600059B6+5E↓j
lea sub_600059B6,a0
move.l a0,($334).w
rts
; End of function sub_600059A4
; =============== S U B R O U T I N E =======================================
sub_600059B6: ; DATA XREF: sub_600059A4:loc_600059ACâ†o
lea ($3F8).w,a0
tst.b (a0)
bpl.s loc_60005A0C
movem.l d1/a1,-(sp)
movea.l (a5),a1
lea -$70(a1),a1
moveq #$64,d0 ; 'd'
mulu.w (a1)+,d0
divu.w #$216,d0
move.w d0,(a0)
moveq #$FFFFFFC0,d1
add.w d0,d1
move.w d1,($DA8).w
addi.w #$7E,d0 ; '~'
move.w d0,4(a0)
move.w (a1),d0
lsr.w #1,d0
subi.w #$E0,d0
move.w d0,2(a0)
moveq #$FFFFFFE0,d1
add.w d0,d1
move.w d1,($DAA).w
addi.w #$1C0,d0
move.w d0,6(a0)
bsr.s sub_60005A16
bset #7,($3F8).w
movem.l (sp)+,d1/a1
bra.s loc_600059AC
; ---------------------------------------------------------------------------
loc_60005A0C: ; CODE XREF: sub_600059B6+6â†j
bsr.s sub_60005A16
move.l ($3F8).w,-(sp)
dc.w $A877 ; _MovePortTo
bra.s loc_600059AC
; End of function sub_600059B6
; =============== S U B R O U T I N E =======================================
sub_60005A16: ; CODE XREF: sub_600059B6+48â†p
; sub_600059B6:loc_60005A0Câ†p
lea ($9FA).w,a1
move.l (a0)+,(a1)+
move.l (a0),(a1)
lea unk_600058E4,a0
move.l (a0),d0
beq.s loc_60005A2C
clr.l (a0)
move.l d0,-(sp)
dc.w $A92D ; _CloseWindow
loc_60005A2C: ; CODE XREF: sub_60005A16+Eâ†j
pea ($9FA).w
move.l #$80008,-(sp)
dc.w $A8A9 ; _InsetRect
clr.l -(sp)
pea unk_600058E8
pea ($9FA).w
clr.l -(sp)
move.b #1,-(sp)
move.w #1,-(sp)
move.l #$FFFFFFFF,-(sp)
clr.b -(sp)
clr.l -(sp)
dc.w $AA45 ; _NewCWindow
move.l (sp)+,d0
beq.s loc_60005A64
lea unk_600058E4,a0
move.l d0,(a0)
rts
; ---------------------------------------------------------------------------
loc_60005A64: ; CODE XREF: sub_60005A16+44â†j
pea ($9FA).w
move.l #$FFF8FFF8,-(sp)
dc.w $A8A9 ; _InsetRect
lea ($9FA).w,a0
move.l a0,-(sp)
move.l a0,-(sp)
move.l a0,-(sp)
move.l a0,-(sp)
move.l a0,-(sp)
dc.w $A8A3 ; _EraseRect
dc.w $A8A1 ; _FrameRect
move.l #$20002,-(sp)
dc.w $A89B ; _PenSize
move.l #$30003,-(sp)
dc.w $A8A9 ; _InsetRect
dc.w $A8A1 ; _FrameRect
move.l #$FFFDFFFD,-(sp)
dc.w $A8A9 ; _InsetRect
dc.w $A89E ; _PenNormal
rts
; End of function sub_60005A16
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
HeavyAlert: ; CODE XREF: ROM:60000FBCâ†p
; ROM:60001818â†p ...
var_10 set -$10
var_C set -$C
var_8 set -8
var_4 set -4
var_2 set -2
link a6,#-$DA
move.l a5,var_8(a6)
lea var_C(a6),a5
move.b ($8F3).w,var_2(a6)
move.b ($8F2).w,var_4(a6)
pea var_10(a6)
dc.w $A86E ; _InitGraf
dc.w $A912 ; _InitWindows
dc.w $A930 ; _InitMenus
dc.w $A9CC ; _TEInit
clr.l -(sp)
dc.w $A97B ; _InitDialogs
subq.w #2,sp
move.w d5,-(sp)
pea HeavyAlertModalFilter
dc.w $A985 ; _Alert
addq.w #2,sp
move.b var_4(a6),($8F2).w
move.b var_2(a6),($8F3).w
movea.l var_8(a6),a5
unlk a6
move.w #1,-(sp)
bsr.w sub_60005682
rts
; End of function HeavyAlert
; =============== S U B R O U T I N E =======================================
HeavyAlertModalFilter: ; DATA XREF: HeavyAlert+2Câ†o
arg_8 set $C
movem.l d0-d1/a0/a6,-(sp)
suba.w #$C,sp
movea.l sp,a6
clr.b $2C(a6)
movea.l $24(a6),a0
move.w (a0),d0
cmpi.w #3,d0
bne.s loc_60005B56
move.l 2(a0),d0
cmpi.b #3,d0
beq.s loc_60005B1A
cmpi.b #$D,d0
bne.s loc_60005B78
loc_60005B1A: ; CODE XREF: HeavyAlertModalFilter+22â†j
; HeavyAlertModalFilter+86↓j
movea.l $20(a6),a0
move.w #1,(a0)
move.b #1,$2C(a6)
move.l $28(a6),-(sp)
move.w #1,-(sp)
pea (a6)
pea 4(a6)
pea 8(a6)
dc.w $A98D ; _GetDialogItem
move.l 4(a6),-(sp)
move.w #1,-(sp)
dc.w $A95D ; _HiliteControl
movea.w #8,a0
dc.w $A03B ; _Delay
move.l 4(a6),-(sp)
clr.w -(sp)
dc.w $A95D ; _HiliteControl
bra.s loc_60005B78
; ---------------------------------------------------------------------------
loc_60005B56: ; CODE XREF: HeavyAlertModalFilter+18â†j
movea.l $28(a6),a0
tst.l $98(a0)
bne.s loc_60005B6E
move.l ($20C).w,d0
addi.l #$78,d0 ; 'x'
move.l d0,$98(a0)
loc_60005B6E: ; CODE XREF: HeavyAlertModalFilter+6Eâ†j
move.l ($20C).w,d0
sub.l $98(a0),d0
bcc.s loc_60005B1A
loc_60005B78: ; CODE XREF: HeavyAlertModalFilter+28â†j
; HeavyAlertModalFilter+64â†j
lea $C(sp),sp
movem.l (sp)+,d0-d1/a0/a6
move.l (sp),arg_8(sp)
lea $C(sp),sp
rts
; End of function HeavyAlertModalFilter
; =============== S U B R O U T I N E =======================================
sub_60005B8A: ; CODE XREF: _SetUpStartupScreen+1Eâ†p
clr.l -(sp)
move.l #$6369636E,-(sp)
move.w #$B1C9,-(sp)
move.w #$FFFF,($B9E).w
dc.w $A9A0 ; _GetResource
move.l (sp)+,d0
bne.s loc_60005BAA
lea unk_60005BF0,a0
move.w #$FFFF,(a0)
loc_60005BAA: ; CODE XREF: sub_60005B8A+16â†j
clr.l -(sp)
move.l #$6169636E,-(sp)
clr.w -(sp)
dc.w $A9A0 ; _GetResource
move.l (sp)+,d0
beq.s loc_60005BE4
movem.l d2-d3/a3,-(sp)
movea.l d0,a0
dc.w $A029 ; _HLock
move.l a0,-(sp)
movea.l (a0),a3
move.w (a3)+,d3
beq.s loc_60005BDC
subq.w #1,d3
loc_60005BCC: ; CODE XREF: sub_60005B8A+4E↓j
move.w (a3)+,d0
bsr.s sub_60005BF2
moveq #0,d0
move.w (a3)+,d0
movea.l d0,a0
dc.w $A03B ; _Delay
dbf d3,loc_60005BCC
loc_60005BDC: ; CODE XREF: sub_60005B8A+3Eâ†j
movea.l (sp)+,a0
dc.w $A02A ; _HUnlock
movem.l (sp)+,d2-d3/a3
loc_60005BE4: ; CODE XREF: sub_60005B8A+2Eâ†j
movea.l ($2AE).w,a0
adda.l $44(a0),a0
jsr (a0)
rts
; End of function sub_60005B8A
; ---------------------------------------------------------------------------
unk_60005BF0: dc.b 0 ; DATA XREF: sub_60005B8A+18â†o
; sub_60005BF2↓o
dc.b 0
; =============== S U B R O U T I N E =======================================
sub_60005BF2: ; CODE XREF: sub_60005B8A+44â†p
var_1E set -$1E
var_2 set -2
lea unk_60005BF0,a0
tst.w (a0)
bne.s loc_60005C14
subq.w #4,sp
move.w d0,-(sp)
dc.w $AA1E ; _GetCIcon
move.l (sp)+,d2
beq.s locret_60005C12
move.l d2,-(sp)
bsr.s sub_60005C68
move.l sp,-(sp)
move.l d2,-(sp)
dc.w $AA1F ; _PlotCIcon
addq.w #8,sp
dc.w $AA25 ; _DisposeCIcon
locret_60005C12: ; CODE XREF: sub_60005BF2+10â†j
; sub_60005BF2+30↓j
rts
; ---------------------------------------------------------------------------
loc_60005C14: ; CODE XREF: sub_60005BF2+6â†j
subq.w #4,sp
move.l #$49434E23,-(sp)
move.w d0,-(sp)
dc.w $A9A0 ; _GetResource
move.l (sp)+,d2
beq.s locret_60005C12
movea.l d2,a0
dc.w $A029 ; _HLock
move.l a0,-(sp)
movea.l (a0),a0
move.l a0,d2
bsr.s sub_60005C68
move.w #4,-(sp)
move.l d2,-(sp)
lea $10+var_2(sp),a0
move.l -(a0),-(sp)
move.l -(a0),-(sp)
move.w -(a0),-(sp)
movea.l -(a0),a1
pea $80(a1)
move.l a0,-(sp)
pea $22+var_1E(sp)
movea.l (a5),a1
movea.l (a1),a1
pea 2(a1)
pea 6(a0)
move.l (sp),-(sp)
move.l (sp),-(sp)
dc.w $A817 ; _CopyMask
lea $1C(sp),sp
movea.l (sp)+,a0
dc.w $A02A ; _HUnlock
rts
; End of function sub_60005BF2
; =============== S U B R O U T I N E =======================================
sub_60005C68: ; CODE XREF: sub_60005BF2+14â†p
; sub_60005BF2+3Câ†p
movea.l (sp)+,a0
move.l #$200020,-(sp)
clr.l -(sp)
movea.l sp,a1
move.l a0,-(sp)
movea.l (a5),a0
lea -$74(a0),a0
bsr.s sub_60005C80
nop
; End of function sub_60005C68
; =============== S U B R O U T I N E =======================================
sub_60005C80: ; CODE XREF: sub_60005C68+14â†p
move.w 4(a0),d0
sub.w (a0),d0
move.w 4(a1),d1
sub.w (a1),d1
sub.w d1,d0
asr.w #1,d0
add.w (a0)+,d0
move.w d0,(a1)+
add.w d1,d0
move.w d0,2(a1)
rts
; End of function sub_60005C80
; =============== S U B R O U T I N E =======================================
sub_60005C9C: ; CODE XREF: GetStartupPict+30â†p
; GetStartupPict+6Eâ†p ...
arg_0 set 4
lea arg_0(sp),a0
move.l a0,-(sp)
moveq #2,d0
bsr.s sub_60005CAE
moveq #0,d0
bsr.s sub_60005CAE
dc.w $A8A8 ; _OffsetRect
rts
; End of function sub_60005C9C
; =============== S U B R O U T I N E =======================================
sub_60005CAE: ; CODE XREF: sub_60005C9C+8â†p
; sub_60005C9C+Câ†p
movea.l (sp)+,a1
move.w -$74(a5,d0.w),d1
sub.w 4(a0,d0.w),d1
sub.w (a0,d0.w),d1
asr.w #1,d1
move.w d1,-(sp)
jmp (a1)
; End of function sub_60005CAE
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60005CC2: ; CODE XREF: sub_600056AE+D0â†p
var_24 set -$24
var_10 set -$10
var_E set -$E
var_C set -$C
var_A set -$A
var_8 set -8
var_6 set -6
var_4 set -4
var_2 set -2
arg_0 set 8
link a6,#-$10
movem.l d5-d7/a3-a4,-(sp)
movea.l arg_0(a6),a3
movea.l ($2B6).w,a0
move.w $2A2(a0),d7
moveq #1,d6
tst.w d7
beq.s loc_60005CE6
subq.l #2,sp
dc.w $A994 ; _CurResFile
move.w (sp)+,d5
move.w d7,-(sp)
dc.w $A998 ; _UseResFile
loc_60005CE6: ; CODE XREF: sub_60005CC2+18â†j
subq.l #4,sp
move.l #$50494354,-(sp)
move.w #$BF8C,-(sp)
dc.w $A81F ; _Get1Resource
movea.l (sp)+,a4
tst.w d7
beq.s loc_60005D0A
move.l a4,d0
beq.s loc_60005D0A
subq.l #2,sp
move.l a4,-(sp)
dc.w $A9A4 ; _HomeResFile
tst.w (sp)+
bne.s loc_60005D0A
clr.b d6
loc_60005D0A: ; CODE XREF: sub_60005CC2+36â†j
; sub_60005CC2+3Aâ†j ...
move.l a4,d0
beq.w loc_60005DF6
tst.b d6
beq.w loc_60005DF2
tst.l (a4)
beq.w loc_60005DF2
movea.l (a4),a0
lea var_10(a6),a1
addq.l #2,a0
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
tst.w var_E(a6)
blt.s loc_60005D52
move.w var_E(a6),d0
add.w 2(a3),d0
move.w d0,var_6(a6)
move.w var_A(a6),d0
ext.l d0
move.w var_E(a6),d1
ext.l d1
sub.l d1,d0
add.w var_6(a6),d0
move.w d0,var_2(a6)
bra.s loc_60005D8A
; ---------------------------------------------------------------------------
loc_60005D52: ; CODE XREF: sub_60005CC2+6Aâ†j
move.w 6(a3),d0
ext.l d0
move.w var_E(a6),d1
ext.l d1
add.l d0,d1
move.w var_A(a6),d0
ext.l d0
move.w var_E(a6),d2
ext.l d2
sub.l d2,d0
sub.w d0,d1
move.w d1,var_6(a6)
move.w var_A(a6),d0
ext.l d0
move.w var_E(a6),d1
ext.l d1
sub.l d1,d0
add.w var_6(a6),d0
move.w d0,var_2(a6)
loc_60005D8A: ; CODE XREF: sub_60005CC2+8Eâ†j
tst.w var_10(a6)
blt.s loc_60005DB2
move.w var_10(a6),d0
add.w (a3),d0
move.w d0,var_8(a6)
move.w var_C(a6),d0
ext.l d0
move.w var_10(a6),d1
ext.l d1
sub.l d1,d0
add.w var_8(a6),d0
move.w d0,var_4(a6)
bra.s loc_60005DEA
; ---------------------------------------------------------------------------
loc_60005DB2: ; CODE XREF: sub_60005CC2+CCâ†j
move.w 4(a3),d0
ext.l d0
move.w var_10(a6),d1
ext.l d1
add.l d0,d1
move.w var_C(a6),d0
ext.l d0
move.w var_10(a6),d2
ext.l d2
sub.l d2,d0
sub.w d0,d1
move.w d1,var_8(a6)
move.w var_C(a6),d0
ext.l d0
move.w var_10(a6),d1
ext.l d1
sub.l d1,d0
add.w var_8(a6),d0
move.w d0,var_4(a6)
loc_60005DEA: ; CODE XREF: sub_60005CC2+EEâ†j
move.l a4,-(sp)
pea var_8(a6)
dc.w $A8F6 ; _DrawPicture
loc_60005DF2: ; CODE XREF: sub_60005CC2+50â†j
; sub_60005CC2+56â†j
move.l a4,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_60005DF6: ; CODE XREF: sub_60005CC2+4Aâ†j
tst.w d7
beq.s loc_60005DFE
move.w d5,-(sp)
dc.w $A998 ; _UseResFile
loc_60005DFE: ; CODE XREF: sub_60005CC2+136â†j
movem.l var_24(a6),d5-d7/a3-a4
unlk a6
move.l (sp)+,(sp)
rts
; End of function sub_60005CC2
; =============== S U B R O U T I N E =======================================
sub_60005E0A: ; CODE XREF: ROM:60000736â†p
arg_2 set 6
arg_10 set $14
arg_14 set $18
movem.l d0/a0-a3,-(sp)
jsr sub_60005EBA
lea ($4E).w,a3
move.l a3,d0
dc.w $A51E ; _NewPtrSys
bne.s loc_60005E2C
movea.l a0,a2
lea unk_60005E66,a0
movea.l a2,a1
move.l a3,d0
dc.w $A02E ; _BlockMove
move.l a2,($5C).w
loc_60005E2C: ; CODE XREF: sub_60005E0A+10â†j
tst.l ($6C).w
bpl.s loc_60005E60
subq.l #8,($10C).w
movea.l ($10C).w,a0
tst.l ($B78).w
bmi.s loc_60005E48
lea ($6).w,a1
moveq #0,d0
; ---------------------------------------------------------------------------
dc.b $A0
dc.b $5C ; \
; ---------------------------------------------------------------------------
loc_60005E48: ; CODE XREF: sub_60005E0A+34â†j
move.w #$4EF9,(a0)
move.l ($6C).w,2(a0)
move.l a0,-(sp)
lea ($6).w,a1
moveq #9,d0
; ---------------------------------------------------------------------------
dc.b $A0
dc.b $98
; ---------------------------------------------------------------------------
move.l (sp)+,($6C).w
loc_60005E60: ; CODE XREF: sub_60005E0A+26â†j
movem.l (sp)+,d0/a0-a3
rts
; ---------------------------------------------------------------------------
unk_60005E66: dc.b $FE ; DATA XREF: sub_60005E0A+14â†o
dc.b 7
; ---------------------------------------------------------------------------
bne.s loc_60005E6C
rte
; ---------------------------------------------------------------------------
loc_60005E6C: ; CODE XREF: sub_60005E0A+5Eâ†j
cmpi.w #$E05C,arg_2(sp)
bne.s loc_60005E94
cmpi.w #$1300,arg_10(sp)
bne.s loc_60005E94
clr.w d0
move.b arg_14(sp),d0
cmpi.b #$17,d0
bhi.s loc_60005E94
lea byte_60005E9C,a0
move.b (a0,d0.w),d0
dc.w $A9C9 ; _SysError
rte
; ---------------------------------------------------------------------------
loc_60005E94: ; CODE XREF: sub_60005E0A+68â†j
; sub_60005E0A+70â†j ...
move.w #$B,d0
dc.w $A9C9 ; _SysError
rte
; ---------------------------------------------------------------------------
byte_60005E9C: dc.b $B, 9 ; DATA XREF: sub_60005E0A+7Eâ†o
dc.b $A, $10
dc.b 3, 7
dcb.b 2,$B
dc.b 8, $B
dc.b 2
dcb.b 2,1
dc.b $B, 7
dc.b $B, 8
dc.b $B, 2
dcb.b 5,1
; ---------------------------------------------------------------------------
loc_60005EB4: ; DATA XREF: sub_60005EBA+4E↓o
moveq #$C,d0
dc.w $A9C9 ; _SysError
rts
; End of function sub_60005E0A
; =============== S U B R O U T I N E =======================================
sub_60005EBA: ; CODE XREF: sub_60005E0A+4â†p
move sr,-(sp)
movem.l a0-a1,-(sp)
move.l #$62756778,d0
dc.w $A1AD ; _Gestalt
bne.s loc_60005ED4
move.l a0,d0
btst #$19,d0
bne.w loc_60005F44
loc_60005ED4: ; CODE XREF: sub_60005EBA+Eâ†j
moveq #$FFFFFFFF,d0
cmp.b ($BFF).w,d0
sne d3
neg.b d3
beq.s loc_60005EE8
moveq #$40,d0 ; '@'
and.b ($BFF).w,d0
bra.s loc_60005EEE
; ---------------------------------------------------------------------------
loc_60005EE8: ; CODE XREF: sub_60005EBA+24â†j
moveq #$40,d0 ; '@'
; ---------------------------------------------------------------------------
dc.b $C0
dc.b $38 ; 8
dc.b 1
dc.b $20
; ---------------------------------------------------------------------------
loc_60005EEE: ; CODE XREF: sub_60005EBA+2Câ†j
tst.b d0
bne.s loc_60005F44
move.w #$A89F,d0
dc.w $A746 ; _GetToolTrapAddress
move.l a0,d1
beq.s loc_60005F44
lea ($6).w,a3
move.l a3,d0
dc.w $A51E ; _NewPtrSys
bne.s loc_60005F44
movea.l a0,a2
lea loc_60005EB4,a0
movea.l a2,a1
move.l a3,d0
dc.w $A02E ; _BlockMove
movea.l a2,a1
ori #$700,sr
lea ($400).w,a0
move.l #$FF,d0
loc_60005F22: ; CODE XREF: sub_60005EBA+70↓j
cmp.l (a0),d1
bne.s loc_60005F28
move.l a1,(a0)
loc_60005F28: ; CODE XREF: sub_60005EBA+6Aâ†j
addq.l #4,a0
dbf d0,loc_60005F22
lea ($E00).w,a0
move.l #$3FF,d0
loc_60005F38: ; CODE XREF: sub_60005EBA+86↓j
cmp.l (a0),d1
bne.s loc_60005F3E
move.l a1,(a0)
loc_60005F3E: ; CODE XREF: sub_60005EBA+80â†j
addq.l #4,a0
dbf d0,loc_60005F38
loc_60005F44: ; CODE XREF: sub_60005EBA+16â†j
; sub_60005EBA+36â†j ...
movem.l (sp)+,a0-a1
move (sp)+,sr
rts
; End of function sub_60005EBA
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
_LoadNativeDriversFromExtensionFolder: ; CODE XREF: ROM:6000123Eâ†p
var_116 set -$116
var_10E set -$10E
var_10A set -$10A
var_105 set -$105
var_104 set -$104
var_4 set -4
arg_2 set $A
link a6,#-$10E
movem.l d7/a4,-(sp)
lea var_104(a6),a4
subq.l #2,sp
pea aNativedriverlo ; "NativeDriverLoaderLib"
move.l #$70777063,-(sp)
moveq #1,d0
move.l d0,-(sp)
pea var_10A(a6)
pea var_10E(a6)
move.l a4,-(sp)
move.w #1,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.s loc_60005FBA
subq.l #2,sp
move.l var_10A(a6),-(sp)
pea aLoadnativedriv_0 ; "LoadNativeDrivers"
pea var_4(a6)
pea var_105(a6)
move.w #5,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.s loc_60005FBA
moveq #0,d0
move.b var_105(a6),d0
cmpi.w #1,d0
bne.s loc_60005FBA
movea.l var_4(a6),a0
jsr (a0)
move.w d0,d7
subq.l #2,sp
pea var_10A(a6)
move.w #4,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
addq.w #2,sp
loc_60005FBA: ; CODE XREF: _LoadNativeDriversFromExtensionFolder+2Eâ†j
; _LoadNativeDriversFromExtensionFolder+4Aâ†j ...
move.w d7,arg_2(a6)
movem.l var_116(a6),d7/a4
unlk a6
movea.l (sp)+,a0
addq.w #2,sp
jmp (a0)
; End of function _LoadNativeDriversFromExtensionFolder
; ---------------------------------------------------------------------------
aLoadnativedriv_0:dc.b 17,'LoadNativeDrivers'
; DATA XREF: _LoadNativeDriversFromExtensionFolder+36â†o
dc.b 0
dc.b 0
aNativedriverlo:dc.b 21,'NativeDriverLoaderLib'
; DATA XREF: _LoadNativeDriversFromExtensionFolder+Eâ†o
dc.b 0
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
PCCardDiskBasedCheckUp: ; CODE XREF: ROM:60000A64â†p
var_11A set -$11A
var_10E set -$10E
var_10A set -$10A
var_106 set -$106
var_101 set -$101
var_100 set -$100
link a6,#-$10E
movem.l d7/a3-a4,-(sp)
lea var_100(a6),a3
subq.l #2,sp
pea aPccard ; "PCCard"
move.l #$70777063,-(sp)
moveq #2,d0
move.l d0,-(sp)
pea var_106(a6)
pea var_10E(a6)
move.l a3,-(sp)
move.w #1,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d0
ext.l d0
move.l d0,d7
bne.s loc_6000607E
moveq #0,d0
movea.l d0,a4
subq.l #2,sp
move.l var_106(a6),-(sp)
pea aDiskbasedcheck ; "DiskBasedCheckUp"
pea var_10A(a6)
pea var_101(a6)
move.w #5,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d0
ext.l d0
move.l d0,d7
bne.s loc_60006070
moveq #0,d0
move.b var_101(a6),d0
cmpi.w #2,d0
bne.s loc_60006070
subq.l #4,sp
move.l var_10A(a6),-(sp)
moveq #$31,d0 ; '1'
move.l d0,-(sp)
moveq #1,d1
move.b d1,-(sp)
moveq #0,d0
dc.w $AA59 ; _MixedModeDispatch
movea.l (sp)+,a4
loc_60006070: ; CODE XREF: PCCardDiskBasedCheckUp+56â†j
; PCCardDiskBasedCheckUp+62â†j
move.l a4,d0
beq.s loc_6000607E
movea.l a4,a0
jsr (a0)
move.l a4,-(sp)
moveq #1,d0
dc.w $AA59 ; _MixedModeDispatch
loc_6000607E: ; CODE XREF: PCCardDiskBasedCheckUp+32â†j
; PCCardDiskBasedCheckUp+7Aâ†j
movem.l var_11A(a6),d7/a3-a4
unlk a6
rts
; End of function PCCardDiskBasedCheckUp
; ---------------------------------------------------------------------------
aDiskbasedcheck:dc.b 16,'DiskBasedCheckUp'
; DATA XREF: PCCardDiskBasedCheckUp+3Eâ†o
dc.b 0
aPccard: dc.b 6,'PCCard' ; DATA XREF: PCCardDiskBasedCheckUp+Eâ†o
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
_FireWirePerformLateInits: ; CODE XREF: ROM:loc_6000133Aâ†p
var_C set -$C
var_4 set -4
link a6,#-4
movem.l d7/a4,-(sp)
move.l #$66777665,d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
move.w d0,d7
bne.s loc_600060DA
cmpi.l #$201,var_4(a6)
blt.s loc_600060DA
movea.l ($2B6).w,a0
move.l $30C(a0),d7
move.l d7,d0
addq.l #4,d0
movea.l d0,a0
movea.l (a0),a4
jsr (a4)
loc_600060DA: ; CODE XREF: _FireWirePerformLateInits+1Aâ†j
; _FireWirePerformLateInits+24â†j
movem.l var_C(a6),d7/a4
unlk a6
rts
; End of function _FireWirePerformLateInits
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
_USBDiskCheck: ; CODE XREF: ROM:loc_600012F6â†p
var_11A set -$11A
var_10E set -$10E
var_10A set -$10A
var_106 set -$106
var_101 set -$101
var_100 set -$100
link a6,#-$10E
movem.l d7/a3-a4,-(sp)
lea var_100(a6),a3
subq.l #2,sp
pea aUsbfamilyexper ; "USBFamilyExpertLib"
move.l #$70777063,-(sp)
moveq #2,d0
move.l d0,-(sp)
pea var_106(a6)
pea var_10E(a6)
move.l a3,-(sp)
move.w #1,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d0
ext.l d0
move.l d0,d7
bne.s loc_6000616A
moveq #0,d0
movea.l d0,a4
subq.l #2,sp
move.l var_106(a6),-(sp)
pea aDiskbasedcheck_0 ; "DiskBasedCheckUp"
pea var_10A(a6)
pea var_101(a6)
move.w #5,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d0
ext.l d0
move.l d0,d7
bne.s loc_6000615C
moveq #0,d0
move.b var_101(a6),d0
cmpi.w #2,d0
bne.s loc_6000615C
subq.l #4,sp
move.l var_10A(a6),-(sp)
moveq #$31,d0 ; '1'
move.l d0,-(sp)
moveq #1,d1
move.b d1,-(sp)
moveq #0,d0
dc.w $AA59 ; _MixedModeDispatch
movea.l (sp)+,a4
loc_6000615C: ; CODE XREF: _USBDiskCheck+56â†j
; _USBDiskCheck+62â†j
move.l a4,d0
beq.s loc_6000616A
movea.l a4,a0
jsr (a0)
move.l a4,-(sp)
moveq #1,d0
dc.w $AA59 ; _MixedModeDispatch
loc_6000616A: ; CODE XREF: _USBDiskCheck+32â†j
; _USBDiskCheck+7Aâ†j
movem.l var_11A(a6),d7/a3-a4
unlk a6
rts
; End of function _USBDiskCheck
; ---------------------------------------------------------------------------
aDiskbasedcheck_0:dc.b 16,'DiskBasedCheckUp'
; DATA XREF: _USBDiskCheck+3Eâ†o
dc.b 0
aUsbfamilyexper:dc.b 18,'USBFamilyExpertLib'
; DATA XREF: _USBDiskCheck+Eâ†o
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
_InstallITT: ; CODE XREF: ROM:loc_60000DC8â†p
var_C set -$C
var_4 set -4
link a6,#-4
movem.l a3-a4,-(sp)
dc.w $A11A ; _GetZone
movea.l a0,a3
subq.l #4,sp
move.l ($2A6).w,(sp)
movea.l (sp)+,a0
dc.w $A01B ; _SetZone
subq.l #4,sp
move.l #'citt',-(sp)
moveq #$2D,d0 ; '-'
move.w d0,-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_600061D8
tst.l (a4)
beq.s loc_600061D8
movea.l a4,a0
dc.w $A029 ; _HLock
movea.l (a4),a0
move.l a0,var_4(a6)
jsr (a0)
move.l a4,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_600061D8: ; CODE XREF: _InstallITT+28â†j
; _InstallITT+2Câ†j
movea.l a3,a0
dc.w $A01B ; _SetZone
movem.l var_C(a6),a3-a4
unlk a6
rts
; End of function _InstallITT
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
_DoSCSILateLoad: ; CODE XREF: ROM:loc_60001520â†p
var_C set -$C
var_4 set -4
link a6,#-4
movem.l a3-a4,-(sp)
dc.w $A11A ; _GetZone
movea.l a0,a3
subq.l #4,sp
move.l ($2A6).w,(sp)
movea.l (sp)+,a0
dc.w $A01B ; _SetZone
subq.l #4,sp
move.l #'citt',-(sp)
moveq #$2E,d0 ; '.'
move.w d0,-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_60006224
tst.l (a4)
beq.s loc_60006224
movea.l a4,a0
dc.w $A029 ; _HLock
movea.l (a4),a0
move.l a0,var_4(a6)
jsr (a0)
move.l a4,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_60006224: ; CODE XREF: _DoSCSILateLoad+28â†j
; _DoSCSILateLoad+2Câ†j
movea.l a3,a0
dc.w $A01B ; _SetZone
movem.l var_C(a6),a3-a4
unlk a6
rts
; End of function _DoSCSILateLoad
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
_MakeObjectSupportLibResidentHack: ; CODE XREF: ROM:loc_600017B8â†p
var_110 set -$110
var_10C set -$10C
var_108 set -$108
var_104 set -$104
var_100 set -$100
link a6,#-$10C
move.l a4,-(sp)
lea var_100(a6),a4
move.l #$63667267,d0
lea var_108(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
tst.w d0
bne.s loc_6000627C
move.l var_108(a6),d0
btst #0,d0
beq.s loc_6000627C
subq.l #2,sp
pea aObjectsupportl ; "ObjectSupportLib"
move.l #$70777063,-(sp)
moveq #1,d0
move.l d0,-(sp)
pea var_10C(a6)
pea var_104(a6)
move.l a4,-(sp)
move.w #1,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
addq.w #2,sp
loc_6000627C: ; CODE XREF: _MakeObjectSupportLibResidentHack+1Câ†j
; _MakeObjectSupportLibResidentHack+26â†j
movea.l var_110(a6),a4
unlk a6
rts
; End of function _MakeObjectSupportLibResidentHack
; ---------------------------------------------------------------------------
aObjectsupportl:dc.b 16,'ObjectSupportLib'
; DATA XREF: _MakeObjectSupportLibResidentHack+2Aâ†o
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
_GoInstallSerialDMA: ; CODE XREF: ROM:600010E0â†p
var_C set -$C
var_4 set -4
link a6,#-4
movem.l a3-a4,-(sp)
move.l ($DD0).w,d0
; ---------------------------------------------------------------------------
dc.b $C0
dc.b $BC
dc.b 8
dc.b 0
dc.b 0
dc.b 0
; ---------------------------------------------------------------------------
beq.s loc_600062C0
movea.l ($DD8).w,a0
move.l (a0),d0
add.l ($DD8).w,d0
movea.l d0,a0
movea.l $6C(a0),a0
move.b #$88,$144(a0)
loc_600062C0: ; CODE XREF: _GoInstallSerialDMA+12â†j
move.l ($2400).w,d0
; ---------------------------------------------------------------------------
dc.b $C0
dc.b $BC
dc.b 0
dc.b 0
dc.b 8
dc.b 0
; ---------------------------------------------------------------------------
bne.s loc_600062D8
move.l ($2400).w,d0
; ---------------------------------------------------------------------------
dc.b $C0
dc.b $BC
dc.b $10
dc.b 0
dc.b 0
dc.b 0
; ---------------------------------------------------------------------------
beq.s loc_600062EC
loc_600062D8: ; CODE XREF: _GoInstallSerialDMA+34â†j
subq.l #2,sp
move.l #'shal',-(sp)
moveq #3,d0
move.l d0,-(sp)
move.w #$402,d0
dc.w $ABF1 ; _GestaltValueDispatch
addq.w #2,sp
loc_600062EC: ; CODE XREF: _GoInstallSerialDMA+40â†j
move.l #'shal',d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
tst.w d0
bne.s loc_60006320
subq.l #4,sp
move.l #'nsrd',-(sp)
moveq #1,d0
move.w d0,-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_60006320
move.l a4,-(sp)
dc.w $A992 ; _DetachResource
movea.l a4,a0
dc.w $A029 ; _HLock
movea.l (a4),a3
jsr (a3)
loc_60006320: ; CODE XREF: _GoInstallSerialDMA+68â†j
; _GoInstallSerialDMA+7Câ†j
movem.l var_C(a6),a3-a4
unlk a6
rts
; End of function _GoInstallSerialDMA
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
_FinishInitDisplayManager: ; CODE XREF: ROM:loc_60001372â†p
var_10 set -$10
var_4 set -4
link a6,#-4
movem.l d3/d6-d7,-(sp)
moveq #0,d0
move.l d0,var_4(a6)
move.l #$64706C79,d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
tst.w d0
bne.s loc_6000637E
move.l var_4(a6),d0
; ---------------------------------------------------------------------------
dc.b $C0
dc.b $BC
dc.b 0
dc.b 0
dc.b 0
dc.b 1
; ---------------------------------------------------------------------------
beq.s loc_6000637E
moveq #$20,d0 ; ' '
and.b ($B20).w,d0
moveq #0,d1
move.b d0,d1
tst.l d1
sne d3
neg.b d3
move.b d3,d6
clr.b d7
tst.b d6
beq.s loc_60006372
moveq #1,d7
loc_60006372: ; CODE XREF: _FinishInitDisplayManager+44â†j
subq.l #2,sp
move.b d7,-(sp)
move.w #$1ED,d0
dc.w $ABEB ; _DisplayDispatch
addq.w #2,sp
loc_6000637E: ; CODE XREF: _FinishInitDisplayManager+20â†j
; _FinishInitDisplayManager+2Câ†j
movem.l var_10(a6),d3/d6-d7
unlk a6
rts
; End of function _FinishInitDisplayManager
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60006388: ; CODE XREF: sub_600063C6+6↓p
var_8 set -8
var_4 set -4
link a6,#-4
move.l d7,-(sp)
moveq #0,d0
move.l d0,var_4(a6)
clr.b d7
move.l #$706F7772,d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
tst.w d0
bne.s loc_600063BC
moveq #1,d0
and.l var_4(a6),d0
beq.s loc_600063BC
moveq #$1A,d0
dc.w $A09E ; _PowerMgrDispatch
tst.w d0
beq.s loc_600063BC
moveq #1,d7
loc_600063BC: ; CODE XREF: sub_60006388+20â†j
; sub_60006388+28â†j ...
move.b d7,d0
move.l var_8(a6),d7
unlk a6
rts
; End of function sub_60006388
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600063C6: ; CODE XREF: sub_60001A7A+2F8â†p
var_4 set -4
link a6,#0
move.l d7,-(sp)
jsr sub_60006388
tst.b d0
beq.s loc_6000641A
movea.l ($2B6).w,a0
move.b #1,$39(a0)
movea.l ($2B6).w,a0
clr.b $3F(a0)
moveq #1,d0
move.b d0,-(sp)
jsr sub_6000D69C
movea.l ($2B6).w,a0
moveq #0,d0
move.b $3F(a0),d0
tst.l d0
beq.s loc_6000640A
moveq #3,d7
subq.l #2,sp
move.b d7,-(sp)
move.w #$1ED,d0
dc.w $ABEB ; _DisplayDispatch
addq.w #2,sp
loc_6000640A: ; CODE XREF: sub_600063C6+34â†j
movea.l ($2B6).w,a0
clr.b $39(a0)
movea.l ($2B6).w,a0
clr.b $3F(a0)
loc_6000641A: ; CODE XREF: sub_600063C6+Câ†j
move.l var_4(a6),d7
unlk a6
rts
; End of function sub_600063C6
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60006422: ; CODE XREF: sub_6000643E+16↓p
arg_0 set 8
arg_6 set $E
link a6,#0
movea.l arg_0(a6),a1
move.w arg_6(a6),d0
subq.w #1,d0
tst.w d0
blt.s loc_6000643A
loc_60006434: ; CODE XREF: sub_60006422+14↓j
clr.b (a1)+
dbf d0,loc_60006434
loc_6000643A: ; CODE XREF: sub_60006422+10â†j
unlk a6
rts
; End of function sub_60006422
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000643E: ; CODE XREF: ROM:60000D80â†p
var_CC set -$CC
var_B4 set -$B4
var_AE set -$AE
var_AC set -$AC
var_AA set -$AA
var_A7 set -$A7
var_86 set -$86
var_70 set -$70
var_F set -$F
var_E set -$E
var_8 set -8
var_4 set -4
var_2 set -2
var_1 set -1
link a6,#-$B4
movem.l d4-d7/a3-a4,-(sp)
lea var_4(a6),a0
dc.w $A07D ; _GetDefaultStartup
pea ($AC).w
pea var_B4(a6)
jsr sub_60006422
move.b #3,var_AC(a6)
move.w #$AC,var_AE(a6)
move.b #$FF,var_A7(a6)
lea var_B4(a6),a0
moveq #1,d0
dc.w $A089 ; _SCSIAtomic
tst.w var_AA(a6)
addq.w #8,sp
beq.s loc_60006480
moveq #$FFFFFFFF,d0
bra.w loc_600065AA
; ---------------------------------------------------------------------------
loc_60006480: ; CODE XREF: sub_6000643E+3Aâ†j
moveq #0,d0
move.b var_70(a6),d0
cmpi.w #$FF,d0
bne.s loc_60006492
moveq #$FFFFFFFF,d0
bra.w loc_600065AA
; ---------------------------------------------------------------------------
loc_60006492: ; CODE XREF: sub_6000643E+4Câ†j
move.b var_70(a6),d4
move.w var_86(a6),d6
clr.b d5
moveq #0,d0
move.w d6,d0
tst.l d0
dc.w $A71E ; _NewPtrSysClear
movea.l a0,a4
move.l a4,d0
bne.s loc_600064B0
moveq #$FFFFFFFF,d0
bra.w loc_600065AA
; ---------------------------------------------------------------------------
loc_600064B0: ; CODE XREF: sub_6000643E+6Aâ†j
move.w d6,6(a4)
move.b var_2(a6),d0
ext.w d0
move.w #$F0,d1
and.b d0,d1
moveq #0,d0
move.b d1,d0
tst.l d0
bne.s loc_60006532
clr.b d7
bra.s loc_6000652E
; ---------------------------------------------------------------------------
loc_600064CC: ; CODE XREF: sub_6000643E+F2↓j
move.b d7,var_A7(a6)
lea var_B4(a6),a0
moveq #1,d0
dc.w $A089 ; _SCSIAtomic
tst.w var_AA(a6)
bne.s loc_6000652C
moveq #0,d0
move.b var_F(a6),d0
move.b var_2(a6),d1
ext.w d1
cmp.w d0,d1
bne.s loc_6000652C
moveq #0,d0
move.w var_E(a6),d0
move.b var_1(a6),d1
ext.w d1
ext.l d1
cmp.l d0,d1
bne.s loc_6000652C
clr.b var_8(a6)
move.b d7,var_8+1(a6)
move.b var_4(a6),d0
asr.b #3,d0
moveq #$1F,d1
and.b d0,d1
move.b d1,var_8+2(a6)
moveq #7,d0
and.b var_4(a6),d0
move.b d0,var_8+3(a6)
beq.s loc_60006526
moveq #1,d6
bra.s loc_60006528
; ---------------------------------------------------------------------------
loc_60006526: ; CODE XREF: sub_6000643E+E2â†j
clr.b d6
loc_60006528: ; CODE XREF: sub_6000643E+E6â†j
moveq #1,d5
bra.s loc_60006532
; ---------------------------------------------------------------------------
loc_6000652C: ; CODE XREF: sub_6000643E+9Eâ†j
; sub_6000643E+AEâ†j ...
addq.b #1,d7
loc_6000652E: ; CODE XREF: sub_6000643E+8Câ†j
cmp.b d7,d4
bcc.s loc_600064CC
loc_60006532: ; CODE XREF: sub_6000643E+88â†j
; sub_6000643E+ECâ†j
tst.b d5
beq.s loc_6000659E
lea $44(a4),a3
clr.w (a3)
clr.w 2(a3)
clr.w 4(a3)
move.b #6,$35(a4)
moveq #0,d0
move.l d0,$28(a4)
move.l d0,$2C(a4)
move.l #$E0040000,$14(a4)
move.w #2,$5E(a4)
moveq #0,d1
move.b d6,d1
tst.l d1
bne.s loc_60006570
ori.w #4,$5E(a4)
loc_60006570: ; CODE XREF: sub_6000643E+12Aâ†j
move.l var_8(a6),$C(a4)
move.b #1,8(a4)
moveq #0,d0
move.l d0,$10(a4)
move.b #1,$67(a4)
movea.l a4,a0
moveq #1,d0
dc.w $A089 ; _SCSIAtomic
cmpi.w #$E10A,$A(a4)
beq.s loc_6000659A
moveq #1,d6
bra.s loc_600065A0
; ---------------------------------------------------------------------------
loc_6000659A: ; CODE XREF: sub_6000643E+156â†j
clr.b d6
bra.s loc_600065A0
; ---------------------------------------------------------------------------
loc_6000659E: ; CODE XREF: sub_6000643E+F6â†j
moveq #$FFFFFFFF,d6
loc_600065A0: ; CODE XREF: sub_6000643E+15Aâ†j
; sub_6000643E+15Eâ†j
move.l a4,d0
beq.s loc_600065A8
movea.l a4,a0
dc.w $A01F ; _DisposePtr
loc_600065A8: ; CODE XREF: sub_6000643E+164â†j
move.b d6,d0
loc_600065AA: ; CODE XREF: sub_6000643E+3Eâ†j
; sub_6000643E+50â†j ...
movem.l var_CC(a6),d4-d7/a3-a4
unlk a6
rts
; End of function sub_6000643E
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600065B4: ; CODE XREF: sub_60001A7A+32Aâ†p
; sub_60006780+C↓p ...
var_10 set -$10
arg_0 set 8
link a6,#0
movem.l d7/a2-a4,-(sp)
move.w arg_0(a6),d7
beq.s loc_60006630
subq.l #4,sp
move.w d7,-(sp)
dc.w $A9BA ; _GetString
movea.l (sp)+,a3
move.l a3,d0
beq.s loc_60006630
tst.l (a3)
beq.s loc_60006630
moveq #0,d0
movea.l d0,a4
movea.l a3,a0
dc.w $A029 ; _HLock
movea.l (a3),a0
moveq #0,d0
move.b (a0),d0
; ---------------------------------------------------------------------------
dc.b $D0
dc.b $7C ; |
dc.b 0
dc.b $25 ; %
; ---------------------------------------------------------------------------
ext.l d0
dc.w $A71E ; _NewPtrSysClear
movea.l a0,a4
move.l a4,d0
beq.s loc_6000662C
move.w #8,4(a4)
clr.w $E(a4)
moveq #0,d0
move.l d0,$10(a4)
moveq #$FFFFFFFF,d1
move.l d1,$14(a4)
move.l a4,d2
moveq #$24,d0 ; '$'
add.l d0,d2
move.l d2,$18(a4)
move.l d1,$1C(a4)
movea.l (a3),a0
move.l a4,d0
moveq #$24,d1 ; '$'
add.l d1,d0
movea.l d0,a1
movea.l a0,a2
moveq #0,d0
move.b (a2),d0
addq.w #1,d0
ext.l d0
dc.w $A22E ; _BlockMoveData
movea.l a4,a0
dc.w $A05E ; _NMInstall
loc_6000662C: ; CODE XREF: sub_600065B4+38â†j
move.l a3,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_60006630: ; CODE XREF: sub_600065B4+Câ†j
; sub_600065B4+18â†j ...
movem.l var_10(a6),d7/a2-a4
unlk a6
movea.l (sp)+,a0
addq.w #2,sp
jmp (a0)
; End of function sub_600065B4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000663E: ; CODE XREF: sub_60001A7A+31Eâ†p
; sub_60006798+A↓p
var_216 set -$216
var_1FA set -$1FA
var_1E8 set -$1E8
var_1E4 set -$1E4
var_1DE set -$1DE
var_1CA set -$1CA
var_1B4 set -$1B4
var_1A2 set -$1A2
var_19E set -$19E
var_198 set -$198
var_190 set -$190
var_184 set -$184
var_180 set -$180
var_16E set -$16E
var_16A set -$16A
var_164 set -$164
var_150 set -$150
var_106 set -$106
var_6 set -6
var_4 set -4
arg_0 set 8
arg_4 set $C
link a6,#-$1FA
movem.l d4-d7/a2-a4,-(sp)
movea.l arg_0(a6),a3
lea var_106(a6),a4
subq.l #2,sp
move.w $16(a3),-(sp)
move.l #$65787444,-(sp)
moveq #1,d0
move.b d0,-(sp)
pea var_6(a6)
pea var_4(a6)
moveq #0,d0
dc.w $A823 ; _AliasDispatch
move.w (sp)+,d6
bne.w loc_60006770
clr.b d4
moveq #$30,d5 ; '0'
bra.w loc_60006700
; ---------------------------------------------------------------------------
loc_60006678: ; CODE XREF: sub_6000663E+CA↓j
movea.l $12(a3),a0
movea.l a4,a1
movea.l a0,a2
moveq #0,d0
move.b (a2),d0
addq.w #1,d0
ext.l d0
dc.w $A22E ; _BlockMoveData
moveq #0,d0
move.w d5,d0
cmpi.w #$30,d0 ; '0'
bls.s loc_600066C8
move.b (a4),d7
moveq #0,d0
move.b d7,d0
cmpi.b #$1B,d0
bls.s loc_600066A2
moveq #$1B,d7
loc_600066A2: ; CODE XREF: sub_6000663E+60â†j
addq.b #1,d7
moveq #0,d0
move.b d7,d0
move.b #$20,(a4,d0.w) ; ' '
addq.b #1,d7
moveq #0,d0
move.b d7,d0
move.b #$23,(a4,d0.w) ; '#'
addq.b #1,d7
moveq #0,d0
move.b d7,d0
move.b d5,(a4,d0.w)
move.b d7,(a4)
moveq #1,d4
loc_600066C8: ; CODE XREF: sub_6000663E+54â†j
move.l a4,var_16E(a6)
move.w var_6(a6),var_16A(a6)
move.l var_4(a6),var_150(a6)
clr.w var_164(a6)
lea var_180(a6),a0
dc.w $A20C ; _PBHGetFInfoSync
move.w d0,d6
beq.s loc_600066FC
tst.b d4
beq.s loc_600066F8
move.l $30(a3),var_150(a6)
lea var_180(a6),a0
dc.w $A20C ; _PBHGetFInfoSync
move.w d0,d6
loc_600066F8: ; CODE XREF: sub_6000663E+AAâ†j
tst.w d6
bne.s loc_6000670C
loc_600066FC: ; CODE XREF: sub_6000663E+A6â†j
move.w d5,d0
addq.w #1,d5
loc_60006700: ; CODE XREF: sub_6000663E+36â†j
moveq #0,d0
move.w d5,d0
cmpi.w #$39,d0 ; '9'
bcs.w loc_60006678
loc_6000670C: ; CODE XREF: sub_6000663E+BCâ†j
cmpi.w #$FFD5,d6
bne.s loc_60006764
tst.b d4
beq.s loc_60006736
move.l $12(a3),var_1E8(a6)
move.w $16(a3),var_1E4(a6)
move.l $30(a3),var_1CA(a6)
move.l a4,var_1DE(a6)
lea var_1FA(a6),a0
dc.w $A20B ; _PBHRenameSync
move.w d0,d6
bra.s loc_60006738
; ---------------------------------------------------------------------------
loc_60006736: ; CODE XREF: sub_6000663E+D6â†j
clr.w d6
loc_60006738: ; CODE XREF: sub_6000663E+F6â†j
tst.w d6
bne.s loc_60006770
move.l a4,var_1A2(a6)
move.w $16(a3),var_19E(a6)
move.l $30(a3),var_184(a6)
moveq #0,d0
move.l d0,var_198(a6)
move.l var_4(a6),var_190(a6)
lea var_1B4(a6),a0
moveq #5,d0
dc.w $A260 ; _HFSDispatch
move.w d0,d6
bra.s loc_60006770
; ---------------------------------------------------------------------------
loc_60006764: ; CODE XREF: sub_6000663E+D2â†j
tst.w d6
bne.s loc_60006770
move.w #$FFD5,arg_4(a6)
bra.s loc_60006774
; ---------------------------------------------------------------------------
loc_60006770: ; CODE XREF: sub_6000663E+2Eâ†j
; sub_6000663E+FCâ†j ...
move.w d6,arg_4(a6)
loc_60006774: ; CODE XREF: sub_6000663E+130â†j
movem.l var_216(a6),d4-d7/a2-a4
unlk a6
move.l (sp)+,(sp)
rts
; End of function sub_6000663E
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60006780: ; CODE XREF: sub_60001A7A+366â†p
var_4 set -4
link a6,#0
move.l d7,-(sp)
move.w #$B0DB,d7
move.w d7,-(sp)
jsr sub_600065B4
move.l var_4(a6),d7
unlk a6
rts
; End of function sub_60006780
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60006798: ; CODE XREF: sub_60001A7A+350â†p
arg_0 set 8
arg_4 set $C
link a6,#0
subq.l #2,sp
move.l arg_0(a6),-(sp)
jsr sub_6000663E
move.w (sp)+,arg_4(a6)
unlk a6
move.l (sp)+,(sp)
rts
; End of function sub_60006798
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600067B0: ; CODE XREF: sub_60001A7A+2A8â†p
var_16 set -$16
var_A set -$A
var_9 set -9
arg_0 set 8
link a6,#-$A
movem.l d5-d7,-(sp)
clr.b d6
dc.w $A077 ; _CountADBs
move.w d0,d7
bra.s loc_600067E4
; ---------------------------------------------------------------------------
loc_600067C0: ; CODE XREF: sub_600067B0+3A↓j
lea var_A(a6),a0
move.w d7,d0
dc.w $A078 ; _GetIndADB
ext.w d0
move.w d0,d5
moveq #7,d0
cmp.b var_9(a6),d0
bne.s loc_600067E2
moveq #0,d0
move.b var_A(a6),d0
cmpi.b #6,d0
bcc.s loc_600067E2
moveq #1,d6
loc_600067E2: ; CODE XREF: sub_600067B0+22â†j
; sub_600067B0+2Eâ†j
subq.w #1,d7
loc_600067E4: ; CODE XREF: sub_600067B0+Eâ†j
tst.w d7
beq.s loc_600067EC
tst.b d6
beq.s loc_600067C0
loc_600067EC: ; CODE XREF: sub_600067B0+36â†j
move.b d6,arg_0(a6)
movem.l var_16(a6),d5-d7
unlk a6
rts
; End of function sub_600067B0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600067FA: ; CODE XREF: sub_600068BC+8↓p
var_8 set -8
var_4 set -4
link a6,#-4
move.l d7,-(sp)
clr.b d7
move.l #$6E726567,d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
tst.w d0
bne.s loc_6000681E
tst.l var_4(a6)
blt.s loc_6000681E
moveq #1,d7
loc_6000681E: ; CODE XREF: sub_600067FA+1Aâ†j
; sub_600067FA+20â†j
move.b d7,d0
move.l var_8(a6),d7
unlk a6
rts
; End of function sub_600067FA
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60006828: ; CODE XREF: sub_600068BC+14↓p
var_62 set -$62
var_56 set -$56
var_26 set -$26
var_16 set -$16
var_6 set -6
var_5 set -5
var_4 set -4
arg_0 set 8
link a6,#-$56
movem.l d7/a3-a4,-(sp)
movea.l arg_0(a6),a3
lea var_56(a6),a4
clr.b d7
pea var_4(a6)
moveq #7,d0
dc.w $ABE9
tst.l d0
addq.w #4,sp
bne.s loc_600068B0
clr.b var_6(a6)
bra.s loc_600068A0
; ---------------------------------------------------------------------------
loc_6000684E: ; CODE XREF: sub_60006828+7C↓j
pea var_6(a6)
pea var_16(a6)
moveq #1,d0
move.l d0,-(sp)
pea var_4(a6)
moveq #$A,d0
dc.w $ABE9
tst.l d0
lea $10(sp),sp
bne.s loc_600068A0
tst.b var_6(a6)
bne.s loc_600068A0
clr.b (a4)
pea var_5(a6)
move.l a4,-(sp)
pea var_26(a6)
pea var_16(a6)
moveq #$F,d0
dc.w $ABE9
tst.l d0
lea $10(sp),sp
bne.s loc_600068A0
move.l a3,-(sp)
move.l a4,-(sp)
jsr sub_60003424
tst.l d0
addq.w #8,sp
beq.s loc_600068A0
moveq #1,d7
move.b d7,var_6(a6)
loc_600068A0: ; CODE XREF: sub_60006828+24â†j
; sub_60006828+40â†j ...
tst.b var_6(a6)
beq.s loc_6000684E
pea var_4(a6)
moveq #8,d0
dc.w $ABE9
addq.w #4,sp
loc_600068B0: ; CODE XREF: sub_60006828+1Eâ†j
move.b d7,d0
movem.l var_62(a6),d7/a3-a4
unlk a6
rts
; End of function sub_60006828
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600068BC: ; CODE XREF: sub_60001A7A+2C8â†p
var_4 set -4
arg_0 set 8
link a6,#0
move.l d7,-(sp)
clr.b d7
jsr sub_600067FA
tst.b d0
beq.s loc_600068DC
pea aAty ; "ATY,"
jsr sub_60006828
tst.b d0
addq.w #4,sp
beq.s loc_600068DC
moveq #1,d7
loc_600068DC: ; CODE XREF: sub_600068BC+Eâ†j
; sub_600068BC+1Câ†j
move.b d7,arg_0(a6)
move.l var_4(a6),d7
unlk a6
rts
; End of function sub_600068BC
; ---------------------------------------------------------------------------
aAty: dc.b 'ATY,',0 ; DATA XREF: sub_600068BC+10â†o
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600068EE: ; CODE XREF: PatchADBReInit+2A↓p
var_12 set -$12
var_A set -$A
link a6,#-$A
movem.l d6-d7,-(sp)
dc.w $A077 ; _CountADBs
move.w d0,d7
loc_600068FA: ; CODE XREF: sub_600068EE+2C↓j
lea var_A(a6),a0
move.w d7,d0
dc.w $A078 ; _GetIndADB
ext.w d0
move.w d0,d6
moveq #0,d0
move.b var_A(a6),d0
cmpi.w #$C0,d0
bne.s loc_60006916
moveq #1,d0
bra.s loc_6000691E
; ---------------------------------------------------------------------------
loc_60006916: ; CODE XREF: sub_600068EE+22â†j
subq.w #1,d7
tst.w d7
bne.s loc_600068FA
moveq #0,d0
loc_6000691E: ; CODE XREF: sub_600068EE+26â†j
movem.l var_12(a6),d6-d7
unlk a6
rts
; End of function sub_600068EE
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60006928: ; DATA XREF: PatchADBReInit+90↓o
; PatchADBReInit+A2↓o
var_8 set -8
var_4 set -4
link a6,#-4
move.l d7,-(sp)
move.l #$61646272,d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
move.w d0,d7
bne.w loc_600069CA
movea.l var_4(a6),a0
tst.w 4(a0)
beq.s loc_600069CA
clr.w d7
loc_60006950: ; CODE XREF: sub_60006928+60↓j
ext.l d7
movea.l var_4(a6),a0
move.l d7,d0
add.l d0,d0
move.l d0,d1
add.l d1,d1
add.l d1,d0
tst.b 6(a0,d0.l)
beq.s loc_6000697C
ext.l d7
movea.l var_4(a6),a0
move.l d7,d0
add.l d0,d0
move.l d0,d1
add.l d1,d1
add.l d1,d0
movea.l 8(a0,d0.l),a1
jsr (a1)
loc_6000697C: ; CODE XREF: sub_60006928+3Câ†j
move.w d7,d0
addq.w #1,d7
movea.l var_4(a6),a0
cmp.w 4(a0),d7
blt.s loc_60006950
movea.l (a0),a1
jsr (a1)
clr.w d7
loc_60006990: ; CODE XREF: sub_60006928+A0↓j
ext.l d7
movea.l var_4(a6),a0
move.l d7,d0
add.l d0,d0
move.l d0,d1
add.l d1,d1
add.l d1,d0
tst.b 6(a0,d0.l)
bne.s loc_600069BC
ext.l d7
movea.l var_4(a6),a0
move.l d7,d0
add.l d0,d0
move.l d0,d1
add.l d1,d1
add.l d1,d0
movea.l 8(a0,d0.l),a1
jsr (a1)
loc_600069BC: ; CODE XREF: sub_60006928+7Câ†j
move.w d7,d0
addq.w #1,d7
movea.l var_4(a6),a0
cmp.w 4(a0),d7
blt.s loc_60006990
loc_600069CA: ; CODE XREF: sub_60006928+18â†j
; sub_60006928+24â†j
move.l var_8(a6),d7
unlk a6
rts
; End of function sub_60006928
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
PatchADBReInit: ; CODE XREF: ROM:60000A8Câ†p
; DATA XREF: PatchADBReInit+8C↓o
var_10 set -$10
link a6,#0
movem.l d6-d7/a3-a4,-(sp)
moveq #$12,d0
dc.w $A71E ; _NewPtrSysClear
movea.l a0,a4
move.l a4,d0
beq.w loc_60006A9C
subq.l #2,sp
move.l #'adbr',-(sp)
move.l a4,-(sp)
move.w #$401,d0
dc.w $ABF1 ; _GestaltValueDispatch
move.w (sp)+,d6
bne.w loc_60006A9C
jsr sub_600068EE
tst.b d0
beq.s loc_60006A50
jsr sub_60006AA6
lea sub_600070E6,a0
lea sub_60006AA6,a1
move.l a0,d7
sub.l a1,d7
move.l d7,d0
dc.w $A51E ; _NewPtrSys
movea.l a0,a3
move.l a3,d0
beq.s loc_60006A50
lea sub_60006AA6,a0
movea.l a3,a1
move.l d7,d0
dc.w $A02E ; _BlockMove
move.w 4(a4),d0
ext.l d0
add.l d0,d0
move.l d0,d1
add.l d1,d1
add.l d1,d0
move.l a3,8(a4,d0.l)
move.w 4(a4),d0
ext.l d0
add.l d0,d0
move.l d0,d1
add.l d1,d1
add.l d1,d0
clr.b 6(a4,d0.l)
addq.w #1,4(a4)
loc_60006A50: ; CODE XREF: PatchADBReInit+30â†j
; PatchADBReInit+4Aâ†j
tst.w 4(a4)
beq.s loc_60006A88
move.w #$A07B,d0
dc.w $A346 ; _GetOSTrapAddress
move.l a0,(a4)
lea PatchADBReInit,a0
lea sub_60006928,a1
move.l a0,d7
sub.l a1,d7
move.l d7,d0
dc.w $A51E ; _NewPtrSys
movea.l a0,a3
move.l a3,d0
beq.s loc_60006A9C
lea sub_60006928,a0
movea.l a3,a1
move.l d7,d0
dc.w $A02E ; _BlockMove
movea.l a3,a0
move.w #$A07B,d0
dc.w $A247 ; _SetOSTrapAddress
bra.s loc_60006A9C
; ---------------------------------------------------------------------------
loc_60006A88: ; CODE XREF: PatchADBReInit+82â†j
movea.l a4,a0
dc.w $A01F ; _DisposePtr
subq.l #2,sp
move.l #'adbr',-(sp)
move.w #$203,d0
dc.w $ABF1 ; _GestaltValueDispatch
move.w (sp)+,d6
loc_60006A9C: ; CODE XREF: PatchADBReInit+10â†j
; PatchADBReInit+26â†j ...
movem.l var_10(a6),d6-d7/a3-a4
unlk a6
rts
; End of function PatchADBReInit
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60006AA6: ; CODE XREF: PatchADBReInit+32â†p
; DATA XREF: PatchADBReInit+3Aâ†o ...
var_4C set -$4C
var_3C set -$3C
var_32 set -$32
var_22 set -$22
var_20 set -$20
var_1F set -$1F
link a6,#-$3C
movem.l d5-d7/a4,-(sp)
lea var_32(a6),a4
dc.w $A077 ; _CountADBs
move.w d0,d6
clr.w var_22(a6)
clr.w d7
loc_60006ABC: ; CODE XREF: sub_60006AA6+32↓j
ext.l d7
move.l d7,d0
add.l d0,d0
clr.b var_20(a6,d0.l)
ext.l d7
move.l d7,d0
add.l d0,d0
clr.b var_1F(a6,d0.l)
move.w d7,d0
addq.w #1,d7
cmpi.w #$10,d7
blt.s loc_60006ABC
loc_60006ADA: ; CODE XREF: sub_60006AA6+6E↓j
lea var_3C(a6),a0
move.w d6,d0
dc.w $A078 ; _GetIndADB
move.b d0,d5
moveq #0,d0
move.b var_3C(a6),d0
cmpi.w #$C0,d0
bne.s loc_60006B10
move.w var_22(a6),d0
ext.l d0
add.l d0,d0
move.b d5,var_20(a6,d0.l)
move.w var_22(a6),d0
ext.l d0
add.l d0,d0
clr.b var_1F(a6,d0.l)
move.w var_22(a6),d0
addq.w #1,var_22(a6)
loc_60006B10: ; CODE XREF: sub_60006AA6+48â†j
subq.w #1,d6
tst.w d6
bne.s loc_60006ADA
clr.w d5
tst.w var_22(a6)
beq.s loc_60006B5E
move.l a4,-(sp)
jsr sub_60006B68
clr.w d7
addq.w #4,sp
loc_60006B28: ; CODE XREF: sub_60006AA6+A8↓j
; sub_60006AA6+B2↓j
move.l a4,-(sp)
ext.l d7
move.l d7,-(sp)
pea var_22(a6)
jsr sub_60006FA2
lea $C(sp),sp
ext.l d7
move.l d7,d0
add.l d0,d0
moveq #0,d1
move.b var_1F(a6,d0.l),d1
cmpi.b #$10,d1
bcc.s loc_60006B50
tst.b (a4)
bne.s loc_60006B28
loc_60006B50: ; CODE XREF: sub_60006AA6+A4â†j
move.w d7,d0
addq.w #1,d7
cmp.w var_22(a6),d7
blt.s loc_60006B28
jsr sub_60006C78
loc_60006B5E: ; CODE XREF: sub_60006AA6+76â†j
movem.l var_4C(a6),d5-d7/a4
unlk a6
rts
; End of function sub_60006AA6
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60006B68: ; CODE XREF: sub_60006AA6+7Aâ†p
var_14 set -$14
arg_0 set 8
link a6,#0
movem.l d5-d7/a3-a4,-(sp)
movea.l arg_0(a6),a3
movea.l ($CF8).w,a4
clr.b (a3)
moveq #4,d5
loc_60006B7C: ; CODE XREF: sub_60006B68+62↓j
dc.w $A077 ; _CountADBs
move.w d0,d7
clr.b d6
loc_60006B82: ; CODE XREF: sub_60006B68+46↓j
ext.l d7
move.l d7,d0
move.l d0,d1
mulu.w #$C,d0
swap d1
mulu.w #$C,d1
swap d1
clr.w d1
add.l d1,d0
moveq #0,d1
move.b 2(a4,d0.l),d1
cmp.w d5,d1
bne.s loc_60006BA4
moveq #1,d6
loc_60006BA4: ; CODE XREF: sub_60006B68+38â†j
subq.w #1,d7
cmpi.w #$FFFF,d7
ble.s loc_60006BB0
tst.b d6
beq.s loc_60006B82
loc_60006BB0: ; CODE XREF: sub_60006B68+42â†j
tst.b d6
bne.s loc_60006BC2
move.b (a3),d0
addq.b #1,d0
move.b d0,(a3)
moveq #0,d0
move.b (a3),d0
move.b d5,(a3,d0.w)
loc_60006BC2: ; CODE XREF: sub_60006B68+4Aâ†j
move.w d5,d0
addq.w #1,d5
cmpi.w #$10,d5
blt.s loc_60006B7C
movem.l var_14(a6),d5-d7/a3-a4
unlk a6
rts
; End of function sub_60006B68
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60006BD6: ; CODE XREF: sub_60006FA2+11A↓p
var_14 set -$14
arg_3 set $B
arg_4 set $C
link a6,#0
movem.l d4-d7/a4,-(sp)
move.b arg_3(a6),d5
movea.l arg_4(a6),a4
clr.b d6
clr.b d7
clr.b d4
tst.b d5
beq.s loc_60006C4E
moveq #0,d0
move.b (a4),d0
cmp.b (a4,d0.w),d5
bls.s loc_60006C06
addq.b #1,(a4)
moveq #0,d0
move.b (a4),d0
move.b d5,(a4,d0.w)
bra.s loc_60006C4E
; ---------------------------------------------------------------------------
loc_60006C06: ; CODE XREF: sub_60006BD6+22â†j
move.b (a4),d6
loc_60006C08: ; CODE XREF: sub_60006BD6+76↓j
moveq #0,d0
move.b d6,d0
cmp.b (a4,d0.w),d5
bls.s loc_60006C44
move.b (a4),d0
addq.b #1,d0
move.b d0,d7
loc_60006C18: ; CODE XREF: sub_60006BD6+60↓j
moveq #0,d0
move.b d7,d0
subq.w #1,d0
moveq #0,d1
move.b d7,d1
move.b (a4,d0.w),(a4,d1.w)
subq.b #1,d7
moveq #0,d0
move.b d7,d0
moveq #0,d1
move.b d6,d1
addq.w #1,d1
cmp.w d0,d1
bcs.s loc_60006C18
addq.b #1,(a4)
moveq #0,d0
move.b d7,d0
move.b d5,(a4,d0.w)
moveq #1,d4
loc_60006C44: ; CODE XREF: sub_60006BD6+3Aâ†j
subq.b #1,d6
tst.b d6
beq.s loc_60006C4E
tst.b d4
beq.s loc_60006C08
loc_60006C4E: ; CODE XREF: sub_60006BD6+18â†j
; sub_60006BD6+2Eâ†j ...
movem.l var_14(a6),d4-d7/a4
unlk a6
rts
; End of function sub_60006BD6
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60006C58: ; CODE XREF: sub_60006FA2+28↓p
arg_0 set 8
link a6,#0
movea.l arg_0(a6),a1
tst.b (a1)
beq.s loc_60006C72
subq.b #1,(a1)
moveq #0,d0
move.b (a1),d0
addq.w #1,d0
move.b (a1,d0.w),d0
bra.s loc_60006C74
; ---------------------------------------------------------------------------
loc_60006C72: ; CODE XREF: sub_60006C58+Aâ†j
moveq #0,d0
loc_60006C74: ; CODE XREF: sub_60006C58+18â†j
unlk a6
rts
; End of function sub_60006C58
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60006C78: ; CODE XREF: sub_60006AA6+B4â†p
var_14 set -$14
var_13 set -$13
var_12 set -$12
var_E set -$E
var_C set -$C
var_8 set -8
var_6 set -6
var_4 set -4
link a6,#-4
movem.l d6-d7/a4,-(sp)
clr.w d7
movea.l ($CF8).w,a4
clr.w $14E(a4)
loc_60006C8A: ; CODE XREF: sub_60006C78+72↓j
ext.l d7
move.l d7,d0
move.l d0,d1
mulu.w #$C,d0
swap d1
mulu.w #$C,d1
swap d1
clr.w d1
add.l d1,d0
tst.b (a4,d0.l)
beq.s loc_60006CE2
clr.w d6
subq.l #4,sp
moveq #1,d0
move.l d0,-(sp)
ext.l d7
move.l d7,d1
move.l d1,d2
mulu.w #$C,d1
swap d2
mulu.w #$C,d2
swap d2
clr.w d2
add.l d2,d1
moveq #0,d2
move.b 2(a4,d1.l),d2
move.w d2,-(sp)
dc.w $A85C ; _BitShift
move.l (sp)+,d0
move.w d0,d6
moveq #0,d0
move.w $14E(a4),d0
ext.l d6
move.l d6,d1
or.l d0,d1
move.w d1,$14E(a4)
loc_60006CE2: ; CODE XREF: sub_60006C78+2Câ†j
move.w d7,d0
addq.w #1,d7
cmpi.w #$10,d7
blt.s loc_60006C8A
move.l #$63756461,d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
move.w d0,d6
bne.s loc_60006D40
movem.l a0-a1,-(sp)
link a6,#-$14
movea.l ($CF8).w,a1
move.b #1,var_14(a6)
move.b #$19,var_13(a6)
move.w $14E(a1),var_12(a6)
move.w #2,var_E(a6)
clr.l var_C(a6)
clr.w var_8(a6)
clr.w var_6(a6)
clr.l var_4(a6)
lea var_14(a6),a0
dc.w $A092 ; _EgretDispatch
unlk a6
movem.l (sp)+,a0-a1
loc_60006D40: ; CODE XREF: sub_60006C78+86â†j
movem.l -$10(a6),d6-d7/a4
unlk a6
rts
; End of function sub_60006C78
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60006D4A: ; CODE XREF: sub_60006FA2+C4↓p
; sub_60006FA2+106↓p
var_14 set -$14
arg_3 set $B
arg_7 set $F
arg_B set $13
link a6,#0
movem.l d4-d7/a4,-(sp)
move.b arg_7(a6),d4
dc.w $A077 ; _CountADBs
move.w d0,d7
clr.w d6
clr.b d5
movea.l ($CF8).w,a4
tst.b arg_3(a6)
beq.w loc_60006DFE
loc_60006D6A: ; CODE XREF: sub_60006D4A+AE↓j
ext.l d6
move.l d6,d0
move.l d0,d1
mulu.w #$C,d0
swap d1
mulu.w #$C,d1
swap d1
clr.w d1
add.l d1,d0
cmp.b 2(a4,d0.l),d4
bne.s loc_60006DF2
ext.l d7
move.l d7,d0
move.l d0,d1
mulu.w #$C,d0
swap d1
mulu.w #$C,d1
swap d1
clr.w d1
add.l d1,d0
move.b arg_B(a6),2(a4,d0.l)
ext.l d6
move.l d6,d0
move.l d0,d1
mulu.w #$C,d0
swap d1
mulu.w #$C,d1
swap d1
clr.w d1
add.l d1,d0
ext.l d7
move.l d7,d1
move.l d1,d2
mulu.w #$C,d1
swap d2
mulu.w #$C,d2
swap d2
clr.w d2
add.l d2,d1
move.b 1(a4,d0.l),1(a4,d1.l)
ext.l d7
move.l d7,d0
move.l d0,d1
mulu.w #$C,d0
swap d1
mulu.w #$C,d1
swap d1
clr.w d1
add.l d1,d0
move.b #$C0,(a4,d0.l)
move.w d7,d6
loc_60006DF2: ; CODE XREF: sub_60006D4A+3Aâ†j
move.w d6,d0
addq.w #1,d6
cmp.w d6,d7
bge.w loc_60006D6A
bra.s loc_60006E42
; ---------------------------------------------------------------------------
loc_60006DFE: ; CODE XREF: sub_60006D4A+1Câ†j
; sub_60006D4A+F6↓j
ext.l d7
move.l d7,d0
move.l d0,d1
mulu.w #$C,d0
swap d1
mulu.w #$C,d1
swap d1
clr.w d1
add.l d1,d0
cmp.b 2(a4,d0.l),d4
bne.s loc_60006E38
ext.l d7
move.l d7,d0
move.l d0,d1
mulu.w #$C,d0
swap d1
mulu.w #$C,d1
swap d1
clr.w d1
add.l d1,d0
move.b arg_B(a6),2(a4,d0.l)
moveq #1,d5
loc_60006E38: ; CODE XREF: sub_60006D4A+CEâ†j
subq.w #1,d7
tst.w d7
beq.s loc_60006E42
tst.b d5
beq.s loc_60006DFE
loc_60006E42: ; CODE XREF: sub_60006D4A+B2â†j
; sub_60006D4A+F2â†j
movem.l var_14(a6),d4-d7/a4
unlk a6
rts
; End of function sub_60006D4A
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60006E4C: ; CODE XREF: sub_60006FA2+3C↓p
var_32 set -$32
var_1A set -$1A
var_16 set -$16
var_C set -$C
var_8 set -8
var_4 set -4
arg_0 set 8
arg_7 set $F
arg_B set $13
link a6,#-$1A
movem.l d3-d7/a4,-(sp)
move.b arg_B(a6),d3
lea var_16(a6),a4
clr.w d4
clr.w d4
clr.w d6
moveq #0,d7
moveq #0,d0
move.l d0,var_1A(a6)
tst.b d3
beq.w loc_60006F96
moveq #0,d0
move.b arg_7(a6),d0
movea.l arg_0(a6),a0
add.l d0,d0
moveq #0,d6
move.b 2(a0,d0.l),d6
move.w d6,d0
ext.l d0
asl.l #4,d0
move.w d0,d6
; ---------------------------------------------------------------------------
dc.b $D0
dc.b $7C ; |
dc.b 0
dc.b $F
; ---------------------------------------------------------------------------
move.w d0,d6
clr.b (a4)
move.l a4,var_C(a6)
moveq #0,d0
move.l d0,var_8(a6)
move.l d0,var_4(a6)
subq.l #2,sp
pea var_C(a6)
move.w d6,-(sp)
move.w (sp)+,d0
movea.l (sp)+,a0
dc.w $A07C ; _ADBOp
move.w d0,(sp)
move.w (sp)+,d4
subq.l #4,sp
dc.w $A975 ; _TickCount
move.l (sp)+,d7
loc_60006EB8: ; CODE XREF: sub_60006E4C+7A↓j
tst.b (a4)
bne.s loc_60006EC8
subq.l #4,sp
dc.w $A975 ; _TickCount
move.l d7,d0
addq.l #2,d0
cmp.l (sp)+,d0
bhi.s loc_60006EB8
loc_60006EC8: ; CODE XREF: sub_60006E4C+6Eâ†j
tst.b (a4)
beq.w loc_60006F92
movea.w #1,a0
lea var_1A(a6),a1
dc.w $A03B ; _Delay
move.l d0,(a1)
move.b #2,(a4)
moveq #0,d0
move.b 1(a4),d0
move.w #$F0,d1
and.b d0,d1
move.b d1,1(a4)
move.b d3,d0
add.b 1(a4),d0
move.b d0,1(a4)
move.b #$FE,2(a4)
move.w d6,d0
subq.w #4,d0
move.w d0,d6
move.l a4,var_C(a6)
moveq #0,d0
move.l d0,var_8(a6)
move.l d0,var_4(a6)
subq.l #2,sp
pea var_C(a6)
move.w d6,-(sp)
move.w (sp)+,d0
movea.l (sp)+,a0
dc.w $A07C ; _ADBOp
move.w d0,(sp)
move.w (sp)+,d4
clr.w d5
loc_60006F26: ; CODE XREF: sub_60006E4C+140↓j
movea.w #1,a0
lea var_1A(a6),a1
dc.w $A03B ; _Delay
move.l d0,(a1)
clr.b (a4)
moveq #0,d6
move.b d3,d6
move.w d6,d0
ext.l d0
asl.l #4,d0
move.w d0,d6
; ---------------------------------------------------------------------------
dc.b $D0
dc.b $7C ; |
dc.b 0
dc.b $F
; ---------------------------------------------------------------------------
move.w d0,d6
move.l a4,var_C(a6)
moveq #0,d0
move.l d0,var_8(a6)
move.l d0,var_4(a6)
subq.l #2,sp
pea var_C(a6)
move.w d6,-(sp)
move.w (sp)+,d0
movea.l (sp)+,a0
dc.w $A07C ; _ADBOp
move.w d0,(sp)
move.w (sp)+,d4
subq.l #4,sp
dc.w $A975 ; _TickCount
move.l (sp)+,d7
loc_60006F6C: ; CODE XREF: sub_60006E4C+12E↓j
tst.b (a4)
bne.s loc_60006F7C
subq.l #4,sp
dc.w $A975 ; _TickCount
move.l d7,d0
addq.l #2,d0
cmp.l (sp)+,d0
bhi.s loc_60006F6C
loc_60006F7C: ; CODE XREF: sub_60006E4C+122â†j
tst.b (a4)
beq.s loc_60006F84
moveq #1,d0
bra.s loc_60006F98
; ---------------------------------------------------------------------------
loc_60006F84: ; CODE XREF: sub_60006E4C+132â†j
move.w d5,d0
addq.w #1,d5
cmpi.w #4,d5
bne.s loc_60006F26
moveq #0,d0
bra.s loc_60006F98
; ---------------------------------------------------------------------------
loc_60006F92: ; CODE XREF: sub_60006E4C+7Eâ†j
moveq #0,d0
bra.s loc_60006F98
; ---------------------------------------------------------------------------
loc_60006F96: ; CODE XREF: sub_60006E4C+20â†j
moveq #0,d0
loc_60006F98: ; CODE XREF: sub_60006E4C+136â†j
; sub_60006E4C+144â†j ...
movem.l var_32(a6),d3-d7/a4
unlk a6
rts
; End of function sub_60006E4C
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60006FA2: ; CODE XREF: sub_60006AA6+8Câ†p
var_3C set -$3C
var_1A set -$1A
var_16 set -$16
var_C set -$C
var_8 set -8
var_4 set -4
arg_0 set 8
arg_7 set $F
arg_8 set $10
link a6,#-$1C
movem.l d3-d7/a2-a4,-(sp)
movea.l arg_8(a6),a2
move.b arg_7(a6),d6
lea var_16(a6),a3
movea.l arg_0(a6),a4
clr.w d5
clr.w d3
clr.w d5
moveq #0,d7
moveq #0,d0
move.l d0,var_1A(a6)
move.l a2,-(sp)
jsr sub_60006C58
move.b d0,d4
moveq #0,d0
move.b d4,d0
move.l d0,-(sp)
moveq #0,d0
move.b d6,d0
move.l d0,-(sp)
move.l a4,-(sp)
jsr sub_60006E4C
tst.b d0
lea $10(sp),sp
beq.w loc_600070DC
movea.w #1,a0
lea var_1A(a6),a1
dc.w $A03B ; _Delay
move.l d0,(a1)
moveq #0,d0
move.b d6,d0
add.l d0,d0
moveq #0,d5
move.b 2(a4,d0.l),d5
move.w d5,d0
ext.l d0
asl.l #4,d0
move.w d0,d5
; ---------------------------------------------------------------------------
dc.b $D0
dc.b $7C ; |
dc.b 0
dc.b $F
; ---------------------------------------------------------------------------
move.w d0,d5
clr.b (a3)
move.l a3,var_C(a6)
moveq #0,d0
move.l d0,var_8(a6)
move.l d0,var_4(a6)
subq.l #2,sp
pea var_C(a6)
move.w d5,-(sp)
move.w (sp)+,d0
movea.l (sp)+,a0
dc.w $A07C ; _ADBOp
move.w d0,(sp)
move.w (sp)+,d3
subq.l #4,sp
dc.w $A975 ; _TickCount
move.l (sp)+,d7
loc_6000703A: ; CODE XREF: sub_60006FA2+A6↓j
tst.b (a3)
bne.s loc_6000704A
subq.l #4,sp
dc.w $A975 ; _TickCount
move.l d7,d0
addq.l #2,d0
cmp.l (sp)+,d0
bhi.s loc_6000703A
loc_6000704A: ; CODE XREF: sub_60006FA2+9Aâ†j
tst.b (a3)
beq.s loc_60007090
moveq #0,d0
move.b d4,d0
move.l d0,-(sp)
moveq #0,d0
move.b d6,d0
add.l d0,d0
moveq #0,d1
move.b 2(a4,d0.l),d1
move.l d1,-(sp)
moveq #1,d0
move.l d0,-(sp)
jsr sub_60006D4A
move.w (a4),d0
ext.l d0
add.l d0,d0
move.b d4,2(a4,d0.l)
move.w (a4),d0
ext.l d0
add.l d0,d0
clr.b 3(a4,d0.l)
moveq #0,d0
move.b d6,d0
add.l d0,d0
clr.b 3(a4,d0.l)
addq.w #1,(a4)
lea $C(sp),sp
bra.s loc_600070DC
; ---------------------------------------------------------------------------
loc_60007090: ; CODE XREF: sub_60006FA2+AAâ†j
moveq #0,d0
move.b d4,d0
move.l d0,-(sp)
moveq #0,d0
move.b d6,d0
add.l d0,d0
moveq #0,d1
move.b 2(a4,d0.l),d1
move.l d1,-(sp)
moveq #0,d0
move.l d0,-(sp)
jsr sub_60006D4A
move.l a2,-(sp)
moveq #0,d0
move.b d6,d0
add.l d0,d0
moveq #0,d1
move.b 2(a4,d0.l),d1
move.l d1,-(sp)
jsr sub_60006BD6
moveq #0,d0
move.b d6,d0
add.l d0,d0
move.b d4,2(a4,d0.l)
moveq #0,d0
move.b d6,d0
add.l d0,d0
move.b 3(a4,d0.l),d1
addq.b #1,3(a4,d0.l)
lea $14(sp),sp
loc_600070DC: ; CODE XREF: sub_60006FA2+46â†j
; sub_60006FA2+ECâ†j
movem.l var_3C(a6),d3-d7/a2-a4
unlk a6
rts
; End of function sub_60006FA2
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600070E6: ; DATA XREF: PatchADBReInit+36â†o
link a6,#0
unlk a6
rts
; End of function sub_600070E6
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
_IncreaseEventQueueSize: ; CODE XREF: ROM:loc_60000C78â†p
var_1C set -$1C
var_8 set -8
var_4 set -4
link a6,#-8
movem.l d3/d6-d7/a3-a4,-(sp)
moveq #$30,d7 ; '0'
move.w ($154).w,d6
moveq #0,d0
move.w d6,d0
cmp.l d0,d7
bls.s loc_60007180
movea.l ($146).w,a3
moveq #0,d0
movea.l d0,a4
movea.l ($14C).w,a4
; ---------------------------------------------------------------------------
dc.b $31
dc.b $FC
dc.b $FF
dc.b $FF
dc.b 1
dc.b $4A ; J
; ---------------------------------------------------------------------------
move.w d7,d0
dc.w $A06D ; _InitEvents
bra.s loc_6000715E
; ---------------------------------------------------------------------------
loc_6000711C: ; CODE XREF: _IncreaseEventQueueSize+72↓j
moveq #0,d0
move.w 6(a4),d0
moveq #$FFFFFFFF,d1
cmp.l d0,d1
beq.s loc_6000715C
movea.w 6(a4),a0
move.l 8(a4),d0
lea var_4(a6),a1
dc.w $A12F ; _PPostEvent
move.l a0,(a1)
tst.l var_4(a6)
beq.s loc_6000715C
movea.l var_4(a6),a0
move.l $C(a4),$C(a0)
movea.l var_4(a6),a0
move.l $10(a4),$10(a0)
movea.l var_4(a6),a0
move.w $14(a4),$14(a0)
loc_6000715C: ; CODE XREF: _IncreaseEventQueueSize+38â†j
; _IncreaseEventQueueSize+4Eâ†j
movea.l (a4),a4
loc_6000715E: ; CODE XREF: _IncreaseEventQueueSize+2Câ†j
move.l a4,d0
bne.s loc_6000711C
move.l a3,d0
beq.s loc_60007180
movea.l a3,a0
dc.w $A148 ; _PtrZone
move.l a0,var_8(a6)
subq.l #4,sp
move.l ($2A6).w,(sp)
move.l var_8(a6),d0
cmp.l (sp)+,d0
bne.s loc_60007180
movea.l a3,a0
dc.w $A01F ; _DisposePtr
loc_60007180: ; CODE XREF: _IncreaseEventQueueSize+14â†j
; _IncreaseEventQueueSize+76â†j ...
movem.l var_1C(a6),d3/d6-d7/a3-a4
unlk a6
rts
; End of function _IncreaseEventQueueSize
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
EnforceCDOnlyBoot: ; CODE XREF: ROM:6000058Câ†p
var_10 set -$10
link a6,#0
movem.l d3/d7/a3-a4,-(sp)
moveq #1,d7
moveq #0,d0
movea.l d0,a4
subq.l #4,sp
move.l #'xboo',-(sp)
moveq #1,d0
move.w d0,-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_600071D2
tst.l (a4)
beq.s loc_600071D2
subq.l #4,sp
move.l #$356,(sp)
movea.l (sp)+,a4
movea.l 2(a4),a3
moveq #0,d3
move.l a3,d0
beq.s loc_600071D0
move.w #$80,d0
and.w $12(a3),d0
beq.s loc_600071D0
moveq #1,d3
loc_600071D0: ; CODE XREF: EnforceCDOnlyBoot+38â†j
; EnforceCDOnlyBoot+42â†j
move.b d3,d7
loc_600071D2: ; CODE XREF: EnforceCDOnlyBoot+20â†j
; EnforceCDOnlyBoot+24â†j
tst.b d7
bne.s loc_600071E0
moveq #$76,d0 ; 'v'
dc.w $A9C9 ; _SysError
move.w #2,-(sp)
dc.w $A895 ; _ShutDown
loc_600071E0: ; CODE XREF: EnforceCDOnlyBoot+4Aâ†j
movem.l var_10(a6),d3/d7/a3-a4
unlk a6
rts
; End of function EnforceCDOnlyBoot
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
AdjustRAMForCDBoot: ; CODE XREF: ROM:60000592â†p
var_C set -$C
var_4 set -4
link a6,#-4
movem.l d7/a4,-(sp)
subq.l #4,sp
move.l #'xboo',-(sp)
moveq #2,d0
move.w d0,-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_60007250
move.l a4,-(sp)
dc.w $A9A3 ; _ReleaseResource
subq.l #4,sp
move.l #'mlrm',-(sp)
moveq #0,d0
move.w d0,-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_60007250
tst.l (a4)
beq.s loc_60007250
move.l #'ram ',d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
move.w d0,d7
bne.s loc_6000724C
movea.l (a4),a0
move.l var_4(a6),d0
cmp.l (a0),d0
bge.s loc_6000724C
move.w ($B20).w,d7
andi.w #$DFFF,d7
move.w d7,($B20).w
loc_6000724C: ; CODE XREF: AdjustRAMForCDBoot+4Aâ†j
; AdjustRAMForCDBoot+54â†j
move.l a4,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_60007250: ; CODE XREF: AdjustRAMForCDBoot+1Aâ†j
; AdjustRAMForCDBoot+32â†j ...
movem.l var_C(a6),d7/a4
unlk a6
rts
; End of function AdjustRAMForCDBoot
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000725A: ; CODE XREF: sub_60002296+1Eâ†p
var_13E set -$13E
var_12A set -$12A
var_126 set -$126
var_106 set -$106
var_6 set -6
var_4 set -4
arg_0 set 8
arg_4 set $C
link a6,#-$12A
movem.l d6-d7/a2-a4,-(sp)
movea.l arg_0(a6),a2
lea var_126(a6),a4
lea unk_600073AA,a0
lea (a4),a1
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.b (a0),(a1)
clr.w var_106(a6)
moveq #1,d6
subq.l #2,sp
move.l a2,-(sp)
move.l a4,-(sp)
moveq #0,d0
move.b d0,-(sp)
moveq #1,d1
move.b d1,-(sp)
jsr sub_60003162
tst.b (sp)+
beq.w loc_6000739A
subq.l #2,sp
move.w #$8000,-(sp)
move.l #$6D616373,-(sp)
moveq #1,d0
move.b d0,-(sp)
pea var_6(a6)
pea var_4(a6)
moveq #0,d0
dc.w $A823 ; _AliasDispatch
tst.w (sp)+
bne.w loc_6000739A
moveq #0,d0
move.b d0,-(sp)
dc.w $A99B ; _SetResLoad
subq.l #2,sp
move.w var_6(a6),-(sp)
move.l var_4(a6),-(sp)
move.l a2,-(sp)
moveq #1,d0
move.b d0,-(sp)
dc.w $A81A ; _HOpenResFile
move.w (sp)+,d7
moveq #1,d0
move.b d0,-(sp)
dc.w $A99B ; _SetResLoad
cmpi.w #$FFFF,d7
beq.w loc_6000739A
subq.l #4,sp
move.l #$6D786267,-(sp)
moveq #0,d0
move.w d0,-(sp)
dc.w $A81F ; _Get1Resource
movea.l (sp)+,a3
move.l a3,d0
beq.w loc_60007396
subq.l #4,sp
move.l a3,-(sp)
moveq #1,d0
move.l d0,-(sp)
pea 1(a4)
moveq #0,d1
move.b (a4),d1
move.l d1,-(sp)
moveq #0,d1
move.l d1,-(sp)
move.l d1,-(sp)
dc.w $A9E0 ; _Munger
tst.l (sp)+
blt.w loc_60007396
subq.l #4,sp
move.l #$76657273,-(sp)
moveq #1,d0
move.w d0,-(sp)
dc.w $A81F ; _Get1Resource
movea.l (sp)+,a3
move.l a3,d0
beq.s loc_60007396
movea.l (a3),a0
move.l (a0),var_12A(a6)
cmpi.l #$6544007,var_12A(a6)
bcc.s loc_60007396
clr.b d6
pea var_106(a6)
move.w #$AF87,-(sp)
moveq #2,d0
move.w d0,-(sp)
jsr sub_600032B4
moveq #0,d0
move.b var_106(a6),d0
tst.l d0
beq.s loc_60007396
moveq #0,d0
move.b (a4),d0
moveq #0,d1
move.b var_106(a6),d1
add.w d0,d1
cmpi.w #$20,d1 ; ' '
bge.s loc_60007396
lea var_106+1(a6),a0
moveq #0,d0
move.b (a4),d0
addq.w #1,d0
lea (a4,d0.w),a1
moveq #0,d0
move.b var_106(a6),d0
dc.w $A22E ; _BlockMoveData
move.b var_106(a6),d0
add.b d0,(a4)
subq.l #2,sp
move.w var_6(a6),-(sp)
move.l var_4(a6),-(sp)
move.l a2,-(sp)
move.l a4,-(sp)
jsr sub_60003328
addq.w #2,sp
loc_60007396: ; CODE XREF: sub_6000725A+96â†j
; sub_6000725A+B6â†j ...
move.w d7,-(sp)
dc.w $A99A ; _CloseResFile
loc_6000739A: ; CODE XREF: sub_6000725A+36â†j
; sub_6000725A+58â†j ...
move.b d6,arg_4(a6)
movem.l var_13E(a6),d6-d7/a2-a4
unlk a6
move.l (sp)+,(sp)
rts
; End of function sub_6000725A
; ---------------------------------------------------------------------------
unk_600073AA: dc.b 7 ; DATA XREF: sub_6000725A+10â†o
dc.b $4D ; M
dc.b $61 ; a
dc.b $63 ; c
dc.b $73 ; s
dc.b $42 ; B
dc.b $75 ; u
dc.b $67 ; g
dc.b 0
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600073B4: ; CODE XREF: InstallPatches+2E6â†p
var_114 set -$114
var_108 set -$108
var_8 set -8
var_4 set -4
arg_0 set 8
link a6,#-$108
movem.l d7/a3-a4,-(sp)
lea var_108(a6),a3
dc.w $A11A ; _GetZone
movea.l a0,a4
subq.l #4,sp
move.l ($2A6).w,(sp)
movea.l (sp)+,a0
dc.w $A01B ; _SetZone
subq.l #2,sp
pea unk_60007412
move.l #$70777063,-(sp)
moveq #1,d0
move.l d0,-(sp)
pea var_8(a6)
pea var_4(a6)
move.l a3,-(sp)
move.w #1,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.s loc_60007400
subq.l #2,sp
pea var_8(a6)
move.w #4,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
addq.w #2,sp
loc_60007400: ; CODE XREF: sub_600073B4+3Câ†j
movea.l a4,a0
dc.w $A01B ; _SetZone
move.w d7,arg_0(a6)
movem.l var_114(a6),d7/a3-a4
unlk a6
rts
; End of function sub_600073B4
; ---------------------------------------------------------------------------
unk_60007412: dc.b $10 ; DATA XREF: sub_600073B4+1Câ†o
dc.b $54 ; T
dc.b $6F ; o
dc.b $6F ; o
dc.b $6C ; l
dc.b $62 ; b
dc.b $6F ; o
dc.b $78 ; x
dc.b $42 ; B
dc.b $6F ; o
dc.b $6F ; o
dc.b $74 ; t
dc.b $73 ; s
dc.b $74 ; t
dc.b $72 ; r
dc.b $61 ; a
dc.b $70 ; p
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60007424: ; CODE XREF: InstallPatches+304â†p
var_BA set -$BA
var_9E set -$9E
var_96 set -$96
var_56 set -$56
var_16 set -$16
var_12 set -$12
var_D set -$D
var_C set -$C
var_8 set -8
var_4 set -4
arg_0 set 8
link a6,#-$9E
movem.l d4-d7/a2-a4,-(sp)
move.w arg_0(a6),d5
lea var_56(a6),a4
dc.w $A11A ; _GetZone
move.l a0,var_8(a6)
subq.l #4,sp
move.l ($2A6).w,(sp)
movea.l (sp)+,a0
dc.w $A01B ; _SetZone
move.l #$73797361,d0
lea var_9E(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
move.w d0,d6
bne.w loc_60007522
moveq #2,d0
cmp.l var_9E(a6),d0
bne.w loc_60007522
subq.l #4,sp
move.l #$62737472,-(sp)
move.w d5,-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a3
move.l a3,d0
beq.w loc_60007522
subq.l #4,sp
move.l #$70706374,-(sp)
moveq #1,d0
move.w d0,-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a2
move.l a2,d0
beq.w loc_6000751E
movea.l a3,a0
dc.w $A029 ; _HLock
movea.l a2,a0
dc.w $A029 ; _HLock
subq.l #2,sp
move.l (a2),-(sp)
subq.l #4,sp
move.l a2,-(sp)
jsr sub_60003106
pea aPpctidbits ; "\nPPCTidbits"
moveq #1,d0
move.l d0,-(sp)
pea var_12(a6)
pea var_16(a6)
pea var_96(a6)
move.w #3,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d6
bne.s loc_6000751A
movea.l (a3),a0
move.w (a0),d4
moveq #1,d7
bra.s loc_60007508
; ---------------------------------------------------------------------------
loc_600074C8: ; CODE XREF: sub_60007424+E6↓j
ext.l d7
move.l d7,-(sp)
move.l a3,-(sp)
move.l a4,-(sp)
jsr sub_60007542
subq.l #2,sp
move.l var_12(a6),-(sp)
move.l a4,-(sp)
pea var_C(a6)
pea var_D(a6)
move.w #5,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d6
lea $C(sp),sp
bne.s loc_60007504
pea var_4(a6)
ext.l d5
move.l d5,-(sp)
movea.l var_C(a6),a0
jsr (a0)
move.w d0,d6
addq.w #8,sp
loc_60007504: ; CODE XREF: sub_60007424+CCâ†j
move.w d7,d0
addq.w #1,d7
loc_60007508: ; CODE XREF: sub_60007424+A2â†j
cmp.w d7,d4
bge.s loc_600074C8
subq.l #2,sp
pea var_12(a6)
move.w #4,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d6
loc_6000751A: ; CODE XREF: sub_60007424+9Aâ†j
move.l a2,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_6000751E: ; CODE XREF: sub_60007424+66â†j
move.l a3,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_60007522: ; CODE XREF: sub_60007424+32â†j
; sub_60007424+3Câ†j ...
movea.l var_8(a6),a0
dc.w $A01B ; _SetZone
movem.l var_BA(a6),d4-d7/a2-a4
unlk a6
movea.l (sp)+,a0
addq.w #2,sp
jmp (a0)
; End of function sub_60007424
; ---------------------------------------------------------------------------
aPpctidbits: dc.b $A ; DATA XREF: sub_60007424+7Eâ†o
dc.b 'PPCTidbits',0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60007542: ; CODE XREF: sub_60007424+ACâ†p
var_10 set -$10
arg_0 set 8
arg_4 set $C
arg_A set $12
link a6,#0
movem.l d7/a2-a4,-(sp)
movea.l arg_4(a6),a2
movea.l arg_0(a6),a3
move.w arg_A(a6),d7
subq.w #1,d7
move.l a2,d0
beq.s loc_6000758E
tst.l (a2)
beq.s loc_6000758E
move.l a3,d0
beq.s loc_6000758E
movea.l (a2),a4
addq.w #2,a4
bra.s loc_60007572
; ---------------------------------------------------------------------------
loc_6000756A: ; CODE XREF: sub_60007542+36↓j
moveq #0,d0
move.b (a4),d0
addq.w #1,d0
adda.w d0,a4
loc_60007572: ; CODE XREF: sub_60007542+26â†j
move.w d7,d0
subq.w #1,d7
tst.w d0
bne.s loc_6000756A
move.l a4,d0
addq.l #1,d0
movea.l d0,a0
move.l a3,d0
addq.l #1,d0
movea.l d0,a1
moveq #0,d0
move.b (a4),d0
dc.w $A22E ; _BlockMoveData
move.b (a4),(a3)
loc_6000758E: ; CODE XREF: sub_60007542+18â†j
; sub_60007542+1Câ†j ...
movem.l var_10(a6),d7/a2-a4
unlk a6
rts
; End of function sub_60007542
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60007598: ; CODE XREF: InstallPatches:ipSelector20â†p
var_64 set -$64
var_58 set -$58
var_12 set -$12
var_10 set -$10
var_C set -$C
var_8 set -8
link a6,#-$58
movem.l d6-d7/a4,-(sp)
lea var_8(a6),a4
moveq #0,d0
move.l d0,4(a4)
move.l #$61737570,(a4)
move.l #$63667267,d0
lea var_C(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
tst.w d0
bne.s loc_6000762A
moveq #1,d0
and.l var_C(a6),d0
beq.s loc_6000762A
moveq #0,d6
loc_600075CE: ; CODE XREF: sub_60007598+90↓j
subq.l #2,sp
move.w #$8000,-(sp)
move.l d6,d0
asl.w #2,d0
move.l (a4,d0.w),-(sp)
moveq #1,d0
move.b d0,-(sp)
pea var_12(a6)
pea var_10(a6)
moveq #0,d0
dc.w $A823 ; _AliasDispatch
move.w (sp)+,d7
bne.s loc_6000761C
subq.l #2,sp
move.w var_12(a6),-(sp)
move.l var_10(a6),-(sp)
moveq #0,d0
move.l d0,-(sp)
pea var_58(a6)
moveq #1,d0
dc.w $AA52 ; _HighLevelFSDispatch
move.w (sp)+,d7
bne.s loc_6000761C
subq.l #2,sp
pea var_58(a6)
moveq #0,d0
move.b d0,-(sp)
move.w #$FFEC,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
loc_6000761C: ; CODE XREF: sub_60007598+56â†j
; sub_60007598+70â†j
move.l d6,d0
addq.l #1,d6
move.l d6,d0
asl.w #2,d0
tst.l (a4,d0.w)
bne.s loc_600075CE
loc_6000762A: ; CODE XREF: sub_60007598+2Aâ†j
; sub_60007598+32â†j
movem.l var_64(a6),d6-d7/a4
unlk a6
rts
; End of function sub_60007598
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60007634: ; CODE XREF: ROM:6000143Câ†p
var_24A set -$24A
var_23A set -$23A
var_236 set -$236
var_232 set -$232
var_131 set -$131
var_130 set -$130
var_12C set -$12C
var_128 set -$128
var_EC set -$EC
link a6,#-$23E
movem.l a2-a4,-(sp)
moveq #0,d0
move.l d0,var_23A(a6)
movea.l d0,a4
movea.l d0,a3
dc.w $A11A ; _GetZone
movea.l a0,a2
subq.l #4,sp
move.l ($2A6).w,(sp)
movea.l (sp)+,a0
dc.w $A01B ; _SetZone
subq.l #2,sp
pea unk_600077D0
move.l #$70777063,-(sp)
moveq #5,d0
move.l d0,-(sp)
pea var_23A(a6)
pea var_236(a6)
pea var_232(a6)
move.w #1,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
tst.w (sp)+
bne.w loc_6000775A
subq.l #2,sp
move.l var_23A(a6),-(sp)
pea unk_600077BE
pea var_130(a6)
pea var_131(a6)
move.w #5,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
tst.w (sp)+
bne.w loc_6000775A
subq.l #4,sp
move.l var_130(a6),-(sp)
pea ($3F1).w
moveq #1,d0
move.b d0,-(sp)
moveq #0,d0
dc.w $AA59 ; _MixedModeDispatch
movea.l (sp)+,a4
move.l a4,d0
beq.w loc_6000775A
subq.l #2,sp
move.l var_23A(a6),-(sp)
pea aOtfindport ; "\nOTFindPort"
pea var_12C(a6)
pea var_131(a6)
move.w #5,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
tst.w (sp)+
bne.w loc_6000775A
subq.l #4,sp
move.l var_12C(a6),-(sp)
pea ($3F1).w
moveq #1,d0
move.b d0,-(sp)
moveq #0,d0
dc.w $AA59 ; _MixedModeDispatch
movea.l (sp)+,a3
move.l a3,d0
beq.s loc_6000775A
moveq #0,d0
move.l d0,-(sp)
pea aSeriala ; "serialA"
movea.l a4,a0
jsr (a0)
moveq #0,d0
move.l d0,-(sp)
pea aSerialb ; "serialB"
movea.l a4,a0
jsr (a0)
moveq #0,d0
move.l d0,-(sp)
pea aLtlk ; "ltlk"
movea.l a4,a0
jsr (a0)
moveq #0,d0
move.l d0,-(sp)
pea aLtlka ; "ltlkA"
movea.l a4,a0
jsr (a0)
moveq #0,d0
move.l d0,-(sp)
pea aLtlkb ; "ltlkB"
movea.l a4,a0
jsr (a0)
pea aEnet0 ; "enet0"
pea var_128(a6)
movea.l a3,a0
jsr (a0)
tst.l d0
lea $30(sp),sp
beq.s loc_6000775A
pea aBlueshim ; "blueshim"
pea var_EC(a6)
jsr sub_600033F8
tst.l d0
addq.w #8,sp
beq.s loc_6000775A
moveq #0,d0
move.l d0,-(sp)
pea aEnet0 ; "enet0"
movea.l a4,a0
jsr (a0)
addq.w #8,sp
loc_6000775A: ; CODE XREF: sub_60007634+44â†j
; sub_60007634+62â†j ...
tst.l var_23A(a6)
beq.s loc_6000776E
subq.l #2,sp
pea var_23A(a6)
move.w #4,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
addq.w #2,sp
loc_6000776E: ; CODE XREF: sub_60007634+12Aâ†j
move.l a4,d0
move.l a3,d0
movea.l a2,a0
dc.w $A01B ; _SetZone
movem.l var_24A(a6),a2-a4
unlk a6
rts
; End of function sub_60007634
; ---------------------------------------------------------------------------
aEnet0: dc.b 'enet0',0 ; DATA XREF: sub_60007634+F2â†o
; sub_60007634+11Câ†o
aBlueshim: dc.b 'blueshim',0 ; DATA XREF: sub_60007634+106â†o
dc.b 0
aLtlkb: dc.b 'ltlkB',0 ; DATA XREF: sub_60007634+EAâ†o
aLtlka: dc.b 'ltlkA',0 ; DATA XREF: sub_60007634+DEâ†o
aLtlk: dc.b 'ltlk',0 ; DATA XREF: sub_60007634+D2â†o
dc.b 0
aSerialb: dc.b 'serialB',0 ; DATA XREF: sub_60007634+C6â†o
aSeriala: dc.b 'serialA',0 ; DATA XREF: sub_60007634+BAâ†o
aOtfindport: dc.b $A ; DATA XREF: sub_60007634+86â†o
dc.b 'OTFindPort',0
unk_600077BE: dc.b $10 ; DATA XREF: sub_60007634+4Eâ†o
dc.b $4F ; O
dc.b $54 ; T
dc.b $55 ; U
dc.b $6E ; n
dc.b $72 ; r
dc.b $65 ; e
dc.b $67 ; g
dc.b $69 ; i
dc.b $73 ; s
dc.b $74 ; t
dc.b $65 ; e
dc.b $72 ; r
dc.b $50 ; P
dc.b $6F ; o
dc.b $72 ; r
dc.b $74 ; t
dc.b 0
unk_600077D0: dc.b $F ; DATA XREF: sub_60007634+22â†o
dc.b $4F ; O
dc.b $54 ; T
dc.b $43 ; C
dc.b $6C ; l
dc.b $69 ; i
dc.b $65 ; e
dc.b $6E ; n
dc.b $74 ; t
dc.b $55 ; U
dc.b $74 ; t
dc.b $69 ; i
dc.b $6C ; l
dc.b $4C ; L
dc.b $69 ; i
dc.b $62 ; b
dc.b 0
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600077E2: ; CODE XREF: sub_6000780E+90↓p
; sub_6000780E+9E↓p
var_4 set -4
arg_0 set 8
arg_6 set $E
link a6,#0
move.l a4,-(sp)
subq.l #4,sp
move.l arg_0(a6),-(sp)
move.w arg_6(a6),-(sp)
dc.w $A81F ; _Get1Resource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_60007802
move.l a4,-(sp)
dc.w $A9AD ; _RemoveResource
movea.l a4,a0
dc.w $A023 ; _DisposeHandle
loc_60007802: ; CODE XREF: sub_600077E2+16â†j
movea.l var_4(a6),a4
unlk a6
rts
; End of function sub_600077E2
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_6000780A: ; CODE XREF: ROM:loc_6000038Aâ†p
bra.w sub_60008C54
; End of function sub_6000780A
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000780E: ; CODE XREF: PlayWithNewNanoKernel+194↓p
var_14 set -$14
var_8 set -8
var_4 set -4
arg_2 set $A
arg_4 set $C
link a6,#-8
movem.l d5-d7,-(sp)
subq.l #2,sp
dc.w $A994 ; _CurResFile
move.w (sp)+,d5
move.w arg_2(a6),-(sp)
dc.w $A998 ; _UseResFile
subq.l #4,sp
move.l #'vers',-(sp)
moveq #1,d0
move.w d0,-(sp)
dc.w $A81F ; _Get1Resource
move.l (sp)+,var_8(a6)
bne.s loc_6000783E
move.w #$FF40,d7
bra.w loc_600078FA
; ---------------------------------------------------------------------------
loc_6000783E: ; CODE XREF: sub_6000780E+26â†j
subq.l #4,sp
move.l #'vers',-(sp)
moveq #2,d0
move.w d0,-(sp)
dc.w $A81F ; _Get1Resource
move.l (sp)+,var_4(a6)
subq.l #2,sp
pea var_8(a6)
jsr sub_6000329E
move.w (sp)+,d7
bne.w loc_600078FA
tst.l var_4(a6)
beq.s loc_6000787A
subq.l #2,sp
pea var_4(a6)
jsr sub_6000329E
tst.w (sp)+
beq.s loc_6000787A
moveq #0,d0
move.l d0,var_4(a6)
loc_6000787A: ; CODE XREF: sub_6000780E+56â†j
; sub_6000780E+64â†j
subq.l #2,sp
move.l arg_4(a6),-(sp)
moveq #3,d0
move.b d0,-(sp)
moveq #$D,d0
dc.w $AA52 ; _HighLevelFSDispatch
move.w (sp)+,d6
cmpi.w #$FFFF,d6
bne.s loc_60007894
moveq #$FFFFFFD5,d7
bra.s loc_600078FA
; ---------------------------------------------------------------------------
loc_60007894: ; CODE XREF: sub_6000780E+80â†j
moveq #1,d0
move.l d0,-(sp)
move.l #'vers',-(sp)
jsr sub_600077E2
moveq #2,d0
move.l d0,-(sp)
move.l #'vers',-(sp)
jsr sub_600077E2
move.l var_8(a6),-(sp)
move.l #'vers',-(sp)
moveq #1,d0
move.w d0,-(sp)
pea unk_6000790A
dc.w $A9AB ; _AddResource
subq.l #2,sp
dc.w $A9AF ; _ResError
move.w (sp)+,d7
lea $10(sp),sp
tst.w d7
bne.s loc_600078F6
tst.l var_4(a6)
beq.s loc_600078EC
move.l var_4(a6),-(sp)
move.l #'vers',-(sp)
moveq #2,d0
move.w d0,-(sp)
pea unk_6000790A
dc.w $A9AB ; _AddResource
loc_600078EC: ; CODE XREF: sub_6000780E+C8â†j
move.w d6,-(sp)
dc.w $A999 ; _UpdateResFile
subq.l #2,sp
dc.w $A9AF ; _ResError
move.w (sp)+,d7
loc_600078F6: ; CODE XREF: sub_6000780E+C2â†j
move.w d6,-(sp)
dc.w $A99A ; _CloseResFile
loc_600078FA: ; CODE XREF: sub_6000780E+2Câ†j
; sub_6000780E+4Eâ†j ...
move.w d5,-(sp)
dc.w $A998 ; _UseResFile
move.w d7,d0
movem.l var_14(a6),d5-d7
unlk a6
rts
; End of function sub_6000780E
; ---------------------------------------------------------------------------
unk_6000790A: dc.b 0 ; DATA XREF: sub_6000780E+B0â†o
; sub_6000780E+D8â†o
dc.b 0
; ---------------------------------------------------------------------------
j_SetColorCodeGestalt: ; CODE XREF: ROM:6000042Câ†p
bra.w SetColorCodeGestalt
; ---------------------------------------------------------------------------
j_EmulatorIsOnDisk: ; CODE XREF: ROM:600003F2â†p
bra.w EmulatorIsOnDisk
; ---------------------------------------------------------------------------
j__LoadMultitaskingNanoKernel: ; CODE XREF: ROM:loc_600003E2â†p
bra.w _LoadMultitaskingNanoKernel
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60007918: ; CODE XREF: sub_60007BDE+86↓p
var_28 set -$28
var_4 set -4
arg_0 set 8
link a6,#-8
movem.l d3-d7/a2-a4,-(sp)
clr.b d5
subq.l #2,sp
dc.w $A994 ; _CurResFile
move.w (sp)+,var_4(a6)
moveq #0,d0
move.b d0,-(sp)
dc.w $A99B ; _SetResLoad
subq.l #2,sp
move.l arg_0(a6),-(sp)
moveq #1,d0
move.b d0,-(sp)
moveq #$D,d0
dc.w $AA52 ; _HighLevelFSDispatch
move.w (sp)+,d7
moveq #1,d0
move.b d0,-(sp)
dc.w $A99B ; _SetResLoad
cmpi.w #$FFFF,d7
beq.s loc_600079C6
subq.l #4,sp
move.l #$76657273,-(sp)
moveq #1,d0
move.w d0,-(sp)
dc.w $A81F ; _Get1Resource
movea.l (sp)+,a2
move.l a2,d0
beq.s loc_600079BC
movea.l (a2),a0
move.w (a0),d3
subq.l #4,sp
move.l #$7A737972,-(sp)
moveq #0,d0
move.w d0,-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_600079B8
subq.l #2,sp
move.l a4,-(sp)
dc.w $A9A4 ; _HomeResFile
move.w (sp)+,d6
cmpi.w #$FFFF,d7
beq.s loc_600079B4
tst.w d6
bne.s loc_6000798E
move.w ($A58).w,d6
loc_6000798E: ; CODE XREF: sub_60007918+70â†j
move.w d6,-(sp)
dc.w $A998 ; _UseResFile
subq.l #4,sp
move.l #$76657273,-(sp)
moveq #1,d0
move.w d0,-(sp)
dc.w $A81F ; _Get1Resource
movea.l (sp)+,a3
move.l a3,d0
beq.s loc_600079B4
movea.l (a3),a0
move.w (a0),d4
cmp.w d4,d3
bne.s loc_600079B0
moveq #1,d5
loc_600079B0: ; CODE XREF: sub_60007918+94â†j
move.l a3,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_600079B4: ; CODE XREF: sub_60007918+6Câ†j
; sub_60007918+8Câ†j
move.l a4,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_600079B8: ; CODE XREF: sub_60007918+5Eâ†j
move.l a2,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_600079BC: ; CODE XREF: sub_60007918+46â†j
move.w d7,-(sp)
dc.w $A99A ; _CloseResFile
move.w var_4(a6),-(sp)
dc.w $A998 ; _UseResFile
loc_600079C6: ; CODE XREF: sub_60007918+32â†j
move.b d5,d0
movem.l var_28(a6),d3-d7/a2-a4
unlk a6
rts
; End of function sub_60007918
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600079D2: ; CODE XREF: PlayWithNewNanoKernel+56↓p
var_46 set -$46
var_3E set -$3E
var_2C set -$2C
var_28 set -$28
var_26 set -$26
var_22 set -$22
var_A set -$A
var_4 set -4
arg_2 set $A
arg_4 set $C
link a6,#-$3E
movem.l d7/a4,-(sp)
movea.l arg_4(a6),a4
movea.l a4,a0
addq.l #6,a0
move.l a0,var_2C(a6)
clr.w var_28(a6)
move.w arg_2(a6),var_26(a6)
clr.w var_22(a6)
lea var_3E(a6),a0
moveq #8,d0
dc.w $A260 ; _HFSDispatch
move.w d0,d7
move.w var_A(a6),(a4)
move.l var_4(a6),2(a4)
move.w d7,d0
movem.l var_46(a6),d7/a4
unlk a6
rts
; End of function sub_600079D2
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
PlayWithNewNanoKernel: ; CODE XREF: sub_60007BDE+100↓p
var_82 set -$82
var_5E set -$5E
var_18 set -$18
var_10 set -$10
var_8 set -8
var_6 set -6
var_4 set -4
arg_0 set 8
link a6,#-$62
movem.l d3-d7/a2-a4,-(sp)
movea.l arg_0(a6),a2
subq.l #4,sp
move.l #$7A737972,-(sp)
moveq #0,d0
move.w d0,-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a3
move.l a3,d0
bne.s loc_60007A3C
move.w #$FF40,d7
bra.w loc_60007BCE
; ---------------------------------------------------------------------------
loc_60007A3C: ; CODE XREF: PlayWithNewNanoKernel+1Eâ†j
movea.l (a3),a0
move.l (a0),d3
move.l 4(a0),d4
subq.l #2,sp
move.l a3,-(sp)
dc.w $A9A4 ; _HomeResFile
move.w (sp)+,d5
cmpi.w #$FFFF,d5
bne.s loc_60007A5A
move.w #$FF40,d7
bra.w loc_60007BCA
; ---------------------------------------------------------------------------
loc_60007A5A: ; CODE XREF: PlayWithNewNanoKernel+3Câ†j
tst.w d5
bne.s loc_60007A62
move.w ($A58).w,d5
loc_60007A62: ; CODE XREF: PlayWithNewNanoKernel+48â†j
pea var_5E(a6)
ext.l d5
move.l d5,-(sp)
jsr sub_600079D2
move.w d0,d7
addq.w #8,sp
tst.w d7
bne.w loc_60007BCA
subq.l #2,sp
pea var_5E(a6)
moveq #1,d0
move.b d0,-(sp)
pea var_8(a6)
moveq #2,d0
dc.w $AA52 ; _HighLevelFSDispatch
move.w (sp)+,d7
bne.w loc_60007BCA
subq.l #2,sp
move.w var_8(a6),-(sp)
moveq #1,d0
move.w d0,-(sp)
move.l d3,-(sp)
jsr sub_60003224
move.w (sp)+,d7
bne.w loc_60007BBE
subq.l #2,sp
move.l a2,-(sp)
move.l #$4D414353,-(sp)
move.l #$7A737972,-(sp)
moveq #$FFFFFFFF,d0
move.w d0,-(sp)
moveq #4,d0
dc.w $AA52 ; _HighLevelFSDispatch
move.w (sp)+,d7
bne.w loc_60007BBE
subq.l #2,sp
move.l a2,-(sp)
pea var_18(a6)
moveq #7,d0
dc.w $AA52 ; _HighLevelFSDispatch
move.w (sp)+,d7
bne.w loc_60007BB0
ori.w #$1000,var_10(a6)
subq.l #2,sp
move.l a2,-(sp)
pea var_18(a6)
moveq #8,d0
dc.w $AA52 ; _HighLevelFSDispatch
move.w (sp)+,d7
bne.w loc_60007BB0
subq.l #2,sp
move.l a2,-(sp)
moveq #3,d0
move.b d0,-(sp)
pea var_6(a6)
moveq #3,d0
dc.w $AA52 ; _HighLevelFSDispatch
move.w (sp)+,d7
bne.w loc_60007BB0
subq.l #2,sp
move.w var_6(a6),-(sp)
move.l d4,-(sp)
jsr sub_60003204
move.w (sp)+,d7
bne.s loc_60007B92
subq.l #2,sp
move.w var_6(a6),-(sp)
moveq #1,d0
move.w d0,-(sp)
moveq #0,d1
move.l d1,-(sp)
jsr sub_60003224
move.w (sp)+,d7
bne.s loc_60007B92
move.l #$10000,d0
dc.w $A122 ; _NewHandle
movea.l a0,a4
move.l a4,d0
bne.s loc_60007B3C
moveq #$FFFFFF94,d7
bra.s loc_60007B92
; ---------------------------------------------------------------------------
loc_60007B3C: ; CODE XREF: PlayWithNewNanoKernel+122â†j
movea.l a4,a0
dc.w $A029 ; _HLock
move.l #$10000,var_4(a6)
moveq #0,d6
bra.s loc_60007B8A
; ---------------------------------------------------------------------------
loc_60007B4C: ; CODE XREF: PlayWithNewNanoKernel+178↓j
subq.l #2,sp
move.w var_8(a6),-(sp)
pea var_4(a6)
move.l (a4),-(sp)
jsr sub_600031BC
move.w (sp)+,d7
cmpi.w #$FFD9,d7
beq.s loc_60007B68
tst.w d7
bne.s loc_60007B8E
loc_60007B68: ; CODE XREF: PlayWithNewNanoKernel+14Eâ†j
cmpi.w #$FFD9,d7
bne.s loc_60007B70
clr.w d7
loc_60007B70: ; CODE XREF: PlayWithNewNanoKernel+158â†j
subq.l #2,sp
move.w var_6(a6),-(sp)
pea var_4(a6)
move.l (a4),-(sp)
jsr sub_600031C0
addq.w #2,sp
tst.w d7
bne.s loc_60007B8E
add.l var_4(a6),d6
loc_60007B8A: ; CODE XREF: PlayWithNewNanoKernel+136â†j
cmp.l d6,d4
bhi.s loc_60007B4C
loc_60007B8E: ; CODE XREF: PlayWithNewNanoKernel+152â†j
; PlayWithNewNanoKernel+170â†j
movea.l a4,a0
dc.w $A023 ; _DisposeHandle
loc_60007B92: ; CODE XREF: PlayWithNewNanoKernel+FEâ†j
; PlayWithNewNanoKernel+114â†j ...
subq.l #2,sp
move.w var_6(a6),-(sp)
jsr sub_600031A2
tst.w d7
addq.w #2,sp
bne.s loc_60007BB0
move.l a2,-(sp)
ext.l d5
move.l d5,-(sp)
jsr sub_6000780E
move.w d0,d7
addq.w #8,sp
loc_60007BB0: ; CODE XREF: PlayWithNewNanoKernel+BEâ†j
; PlayWithNewNanoKernel+D6â†j ...
tst.w d7
beq.s loc_60007BBE
subq.l #2,sp
move.l a2,-(sp)
moveq #6,d0
dc.w $AA52 ; _HighLevelFSDispatch
addq.w #2,sp
loc_60007BBE: ; CODE XREF: PlayWithNewNanoKernel+8Eâ†j
; PlayWithNewNanoKernel+ACâ†j ...
subq.l #2,sp
move.w var_8(a6),-(sp)
jsr sub_600031A2
addq.w #2,sp
loc_60007BCA: ; CODE XREF: PlayWithNewNanoKernel+42â†j
; PlayWithNewNanoKernel+60â†j ...
move.l a3,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_60007BCE: ; CODE XREF: PlayWithNewNanoKernel+24â†j
move.w d7,d0
movem.l var_82(a6),d3-d7/a2-a4
unlk a6
rts
; End of function PlayWithNewNanoKernel
; ---------------------------------------------------------------------------
j_DisableEDiskIfNotEnoughRAM: ; CODE XREF: ROM:60000732â†p
bra.w DisableEDiskIfNotEnoughRAM
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60007BDE: ; CODE XREF: ROM:60000A32â†p
var_12C set -$12C
var_118 set -$118
var_116 set -$116
var_112 set -$112
var_CC set -$CC
var_CA set -$CA
var_C6 set -$C6
var_86 set -$86
var_46 set -$46
link a6,#-$118
movem.l d5-d7/a3-a4,-(sp)
lea var_86(a6),a3
lea var_C6(a6),a4
clr.w (a4)
lea unk_60007D1A,a0
lea (a3),a1
moveq #3,d0
loc_60007BF8: ; CODE XREF: sub_60007BDE+1C↓j
move.l (a0)+,(a1)+
dbf d0,loc_60007BF8
move.w (a0)+,(a1)+
subq.l #2,sp
move.w #$8000,-(sp)
move.l #'macs',-(sp)
moveq #0,d0
move.b d0,-(sp)
pea var_CC(a6)
pea var_CA(a6)
moveq #0,d0
dc.w $A823 ; _AliasDispatch
move.w (sp)+,d7
bne.w loc_60007D0C
move.l a4,-(sp)
move.w #$AF87,-(sp)
moveq #1,d0
move.w d0,-(sp)
jsr sub_600032B4
moveq #0,d0
move.b (a4),d0
tst.l d0
bne.s loc_60007C46
movea.l a3,a0
movea.l a4,a1
moveq #0,d0
move.b (a3),d0
addq.w #1,d0
ext.l d0
dc.w $A22E ; _BlockMoveData
loc_60007C46: ; CODE XREF: sub_60007BDE+58â†j
clr.b d5
subq.l #2,sp
move.w var_CC(a6),-(sp)
move.l var_CA(a6),-(sp)
move.l a4,-(sp)
pea var_46(a6)
moveq #1,d0
dc.w $AA52 ; _HighLevelFSDispatch
move.w (sp)+,d7
bne.s loc_60007CD0
pea var_46(a6)
jsr sub_60007918
moveq #0,d1
move.b d0,d1
tst.l d1
addq.w #4,sp
bne.s loc_60007CD0
moveq #1,d5
subq.l #2,sp
move.w #$8000,-(sp)
move.l #'trsh',-(sp)
moveq #1,d0
move.b d0,-(sp)
pea var_118(a6)
pea var_116(a6)
moveq #0,d0
dc.w $A823 ; _AliasDispatch
move.w (sp)+,d7
bne.s loc_60007CBE
subq.l #2,sp
move.w var_118(a6),-(sp)
move.l var_116(a6),-(sp)
moveq #0,d0
move.l d0,-(sp)
pea var_112(a6)
moveq #1,d0
dc.w $AA52 ; _HighLevelFSDispatch
move.w (sp)+,d7
bne.s loc_60007CBE
subq.l #2,sp
pea var_46(a6)
pea var_112(a6)
moveq #$C,d0
dc.w $AA52 ; _HighLevelFSDispatch
move.w (sp)+,d7
loc_60007CBE: ; CODE XREF: sub_60007BDE+B4â†j
; sub_60007BDE+CEâ†j
tst.w d7
beq.s loc_60007CD0
subq.l #2,sp
pea var_46(a6)
moveq #6,d0
dc.w $AA52 ; _HighLevelFSDispatch
move.w (sp)+,d7
bne.s loc_60007D0C
loc_60007CD0: ; CODE XREF: sub_60007BDE+80â†j
; sub_60007BDE+92â†j ...
cmpi.w #$FFD5,d7
beq.s loc_60007CDA
tst.b d5
beq.s loc_60007CEA
loc_60007CDA: ; CODE XREF: sub_60007BDE+F6â†j
pea var_46(a6)
jsr PlayWithNewNanoKernel
move.w d0,d7
addq.w #4,sp
tst.w d7
bne.s loc_60007D0C
loc_60007CEA: ; CODE XREF: sub_60007BDE+FAâ†j
subq.l #2,sp
pea var_46(a6)
moveq #1,d0
move.b d0,-(sp)
moveq #$FFFFFFFE,d0
dc.w $A822 ; _ResourceDispatch
move.w (sp)+,d6
cmpi.w #$FFFF,d6
beq.s loc_60007D0C
subq.l #2,sp
move.w d6,-(sp)
moveq #$FFFFFFFD,d0
dc.w $A822 ; _ResourceDispatch
addq.w #2,sp
bra.s loc_60007D10
; ---------------------------------------------------------------------------
loc_60007D0C: ; CODE XREF: sub_60007BDE+40â†j
; sub_60007BDE+F0â†j ...
moveq #$1B,d0
dc.w $A9C9 ; _SysError
loc_60007D10: ; CODE XREF: sub_60007BDE+12Câ†j
movem.l var_12C(a6),d5-d7/a3-a4
unlk a6
rts
; End of function sub_60007BDE
; ---------------------------------------------------------------------------
unk_60007D1A: dc.b $10 ; DATA XREF: sub_60007BDE+12â†o
dc.b $53 ; S
dc.b $79 ; y
dc.b $73 ; s
dc.b $74 ; t
dc.b $65 ; e
dc.b $6D ; m
dc.b $20
dc.b $52 ; R
dc.b $65 ; e
dc.b $73 ; s
dc.b $6F ; o
dc.b $75 ; u
dc.b $72 ; r
dc.b $63 ; c
dc.b $65 ; e
dc.b $73 ; s
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60007D2C: ; CODE XREF: ROM:loc_60000B16â†p
var_10 set -$10
var_8 set -8
var_4 set -4
link a6,#-8
movem.l d6-d7,-(sp)
moveq #1,d7
move.l #'sysv',d0
lea var_8(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
move.w d0,d6
bne.s loc_60007D98
move.l #'sysu',d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
move.w d0,d6
bne.s loc_60007D84
tst.l var_8(a6)
bne.s loc_60007D6E
move.w ($15A).w,d0
ext.l d0
move.l d0,var_8(a6)
loc_60007D6E: ; CODE XREF: sub_60007D2C+36â†j
pea var_4(a6)
move.l var_8(a6),-(sp)
move.l #$20C03,d0
; ---------------------------------------------------------------------------
dc.b $FE
dc.b $22 ; "
; ---------------------------------------------------------------------------
move.l d0,d7
addq.w #8,sp
bra.s loc_60007D98
; ---------------------------------------------------------------------------
loc_60007D84: ; CODE XREF: sub_60007D2C+30â†j
moveq #0,d0
move.l d0,-(sp)
move.l var_8(a6),-(sp)
move.l #$20C03,d0
; ---------------------------------------------------------------------------
dc.b $FE
dc.b $22 ; "
; ---------------------------------------------------------------------------
move.l d0,d7
addq.w #8,sp
loc_60007D98: ; CODE XREF: sub_60007D2C+1Câ†j
; sub_60007D2C+56â†j
cmpi.l #$FFFFF926,d7
bne.s loc_60007DA4
moveq #$66,d0 ; 'f'
dc.w $A9C9 ; _SysError
loc_60007DA4: ; CODE XREF: sub_60007D2C+72â†j
moveq #0,d0
move.l d0,-(sp)
move.l d0,-(sp)
move.l #'rdad',-(sp)
move.l #$3162D,d0
; ---------------------------------------------------------------------------
dc.b $FE
dc.b $22 ; "
; ---------------------------------------------------------------------------
lea $C(sp),sp
movem.l var_10(a6),d6-d7
unlk a6
rts
; End of function sub_60007D2C
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60007DC6: ; CODE XREF: _InitLotsOfNativeManagers+21C↓p
var_C set -$C
var_8 set -8
var_4 set -4
link a6,#-8
move.l d7,-(sp)
moveq #0,d0
move.l d0,var_4(a6)
subq.l #2,sp
pea unk_60007E50
move.l #$70777063,-(sp)
moveq #2,d0
move.l d0,-(sp)
pea var_8(a6)
moveq #0,d1
move.l d1,-(sp)
move.l d1,-(sp)
move.w #1,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.s loc_60007E2E
subq.l #2,sp
move.l var_8(a6),-(sp)
pea unk_60007E36
pea var_4(a6)
moveq #0,d0
move.l d0,-(sp)
move.w #5,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.s loc_60007E2E
subq.l #4,sp
moveq #3,d0
move.b d0,-(sp)
move.b #$83,-(sp)
move.l var_8(a6),-(sp)
moveq #0,d1
move.l d1,-(sp)
movea.l var_4(a6),a0
jsr (a0)
move.l (sp)+,d0
move.w d0,d7
loc_60007E2E: ; CODE XREF: sub_60007DC6+2Eâ†j
; sub_60007DC6+4Aâ†j
move.l var_C(a6),d7
unlk a6
rts
; End of function sub_60007DC6
; ---------------------------------------------------------------------------
unk_60007E36: dc.b $18 ; DATA XREF: sub_60007DC6+36â†o
dc.b $43 ; C
dc.b $46 ; F
dc.b $72 ; r
dc.b $61 ; a
dc.b $67 ; g
dc.b $49 ; I
dc.b $6E ; n
dc.b $69 ; i
dc.b $74 ; t
dc.b $69 ; i
dc.b $61 ; a
dc.b $6C ; l
dc.b $69 ; i
dc.b $7A ; z
dc.b $61 ; a
dc.b $74 ; t
dc.b $69 ; i
dc.b $6F ; o
dc.b $6E ; n
dc.b $52 ; R
dc.b $44 ; D
dc.b $65 ; e
dc.b $73 ; s
dc.b $63 ; c
dc.b 0
unk_60007E50: dc.b $F ; DATA XREF: sub_60007DC6+Eâ†o
dc.b $43 ; C
dc.b $6F ; o
dc.b $64 ; d
dc.b $65 ; e
dc.b $46 ; F
dc.b $72 ; r
dc.b $61 ; a
dc.b $67 ; g
dc.b $6D ; m
dc.b $65 ; e
dc.b $6E ; n
dc.b $74 ; t
dc.b $4D ; M
dc.b $67 ; g
dc.b $72 ; r
dc.b 0
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60007E62: ; CODE XREF: _InitLotsOfNativeManagers+3CC↓p
var_11A set -$11A
var_10E set -$10E
var_E set -$E
var_A set -$A
var_6 set -6
var_1 set -1
link a6,#-$10E
movem.l d7/a3-a4,-(sp)
lea var_10E(a6),a3
subq.l #2,sp
pea aMplibrary ; "\tMPLibrary"
move.l #$70777063,-(sp)
moveq #2,d0
move.l d0,-(sp)
pea var_E(a6)
pea var_A(a6)
move.l a3,-(sp)
move.w #1,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.s loc_60007EDC
subq.l #2,sp
move.l var_E(a6),-(sp)
pea unk_60007EE8
pea var_6(a6)
pea var_1(a6)
move.w #5,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.s loc_60007EDC
moveq #0,d0
move.b var_1(a6),d0
cmpi.w #2,d0
bne.s loc_60007EDC
subq.l #4,sp
move.l var_6(a6),-(sp)
moveq #$21,d0 ; '!'
move.l d0,-(sp)
moveq #1,d1
move.b d1,-(sp)
moveq #0,d0
dc.w $AA59 ; _MixedModeDispatch
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_60007EDC
movea.l a4,a0
jsr (a0)
move.l a4,-(sp)
moveq #1,d0
dc.w $AA59 ; _MixedModeDispatch
loc_60007EDC: ; CODE XREF: sub_60007E62+2Eâ†j
; sub_60007E62+4Aâ†j ...
move.w d7,d0
movem.l var_11A(a6),d7/a3-a4
unlk a6
rts
; End of function sub_60007E62
; ---------------------------------------------------------------------------
unk_60007EE8: dc.b $18 ; DATA XREF: sub_60007E62+36â†o
dc.b $4D ; M
dc.b $50 ; P
dc.b $53 ; S
dc.b $65 ; e
dc.b $63 ; c
dc.b $6F ; o
dc.b $6E ; n
dc.b $64 ; d
dc.b $61 ; a
dc.b $72 ; r
dc.b $79 ; y
dc.b $49 ; I
dc.b $6E ; n
dc.b $69 ; i
dc.b $74 ; t
dc.b $69 ; i
dc.b $61 ; a
dc.b $6C ; l
dc.b $69 ; i
dc.b $7A ; z
dc.b $65 ; e
dc.b $41 ; A
dc.b $50 ; P
dc.b $49 ; I
dc.b 0
aMplibrary: dc.b 9,'MPLibrary',0 ; DATA XREF: sub_60007E62+Eâ†o
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60007F0E: ; CODE XREF: _InitLotsOfNativeManagers+2DA↓p
arg_0 set 8
link a6,#0
move.l arg_0(a6),d0
subi.l #$666F7672,d0
beq.s loc_60007F4A
subi.l #$7F3F8F2,d0
beq.s loc_60007F56
subi.l #$8F9FE,d0
beq.s loc_60007F4E
subi.l #$80900,d0
beq.s loc_60007F52
subi.l #$F7F700,d0
beq.s loc_60007F5A
subi.l #$3FA0D10,d0
bne.s loc_60007F5E
moveq #8,d0
bra.s loc_60007F60
; ---------------------------------------------------------------------------
loc_60007F4A: ; CODE XREF: sub_60007F0E+Eâ†j
moveq #9,d0
bra.s loc_60007F60
; ---------------------------------------------------------------------------
loc_60007F4E: ; CODE XREF: sub_60007F0E+1Eâ†j
moveq #$A,d0
bra.s loc_60007F60
; ---------------------------------------------------------------------------
loc_60007F52: ; CODE XREF: sub_60007F0E+26â†j
moveq #$B,d0
bra.s loc_60007F60
; ---------------------------------------------------------------------------
loc_60007F56: ; CODE XREF: sub_60007F0E+16â†j
moveq #$C,d0
bra.s loc_60007F60
; ---------------------------------------------------------------------------
loc_60007F5A: ; CODE XREF: sub_60007F0E+2Eâ†j
moveq #$11,d0
bra.s loc_60007F60
; ---------------------------------------------------------------------------
loc_60007F5E: ; CODE XREF: sub_60007F0E+36â†j
moveq #0,d0
loc_60007F60: ; CODE XREF: sub_60007F0E+3Aâ†j
; sub_60007F0E+3Eâ†j ...
unlk a6
rts
; End of function sub_60007F0E
; ---------------------------------------------------------------------------
j__LoadGoNative: ; CODE XREF: ROM:60000B8Aâ†p
bra.w _LoadGoNative
; ---------------------------------------------------------------------------
j_SetSplitOSGestalt: ; CODE XREF: ROM:60000A9Aâ†p
bra.w SetSplitOSGestalt
; ---------------------------------------------------------------------------
j_SpecialCaseOriginaliMac: ; CODE XREF: ROM:60000A96â†p
bra.w SpecialCaseOriginaliMac
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
_InitLotsOfNativeManagers: ; CODE XREF: ROM:60000410â†p
var_512 set -$512
var_4FA set -$4FA
var_3FA set -$3FA
var_3F6 set -$3F6
var_3F1 set -$3F1
var_3F0 set -$3F0
var_3B0 set -$3B0
var_3AC set -$3AC
var_3AA set -$3AA
var_3A8 set -$3A8
var_368 set -$368
var_364 set -$364
var_362 set -$362
var_360 set -$360
var_320 set -$320
var_31C set -$31C
var_31A set -$31A
var_318 set -$318
var_2D8 set -$2D8
var_2D4 set -$2D4
var_2D2 set -$2D2
var_2D0 set -$2D0
var_290 set -$290
var_28C set -$28C
var_28A set -$28A
var_288 set -$288
var_248 set -$248
var_244 set -$244
var_242 set -$242
var_240 set -$240
var_200 set -$200
var_1FC set -$1FC
var_1FA set -$1FA
var_1F8 set -$1F8
var_1B8 set -$1B8
var_1B4 set -$1B4
var_1B2 set -$1B2
var_1B0 set -$1B0
var_170 set -$170
var_16C set -$16C
var_16A set -$16A
var_168 set -$168
var_128 set -$128
var_124 set -$124
var_122 set -$122
var_120 set -$120
var_E0 set -$E0
var_DC set -$DC
var_DA set -$DA
var_D8 set -$D8
var_98 set -$98
var_94 set -$94
var_92 set -$92
var_90 set -$90
var_50 set -$50
var_4C set -$4C
var_4A set -$4A
var_48 set -$48
var_8 set -8
var_4 set -4
var_2 set -2
arg_0 set 8
link a6,#-$4FA
movem.l d3/d5-d7/a3-a4,-(sp)
lea var_4FA(a6),a3
move.w #$8000,var_DA(a6)
move.w #6,var_DC(a6)
move.l #$666F7672,var_E0(a6)
lea aPrivateinterfa,a0 ; "PrivateInterfaceLib"
lea var_120(a6),a1
moveq #4,d0
loc_60007F9A: ; CODE XREF: _InitLotsOfNativeManagers+2C↓j
move.l (a0)+,(a1)+
dbf d0,loc_60007F9A
move.b (a0),(a1)
move.w #$8000,var_122(a6)
move.w #8,var_124(a6)
move.l #$73667672,var_128(a6)
lea aProcessmgrsupp,a0 ; "ProcessMgrSupport"
lea var_168(a6),a1
moveq #3,d0
loc_60007FC0: ; CODE XREF: _InitLotsOfNativeManagers+52↓j
move.l (a0)+,(a1)+
dbf d0,loc_60007FC0
move.w (a0)+,(a1)+
move.b (a0),(a1)
move.w #$8000,var_16A(a6)
clr.w var_16C(a6)
move.l #$73667672,var_170(a6)
lea aCodefragmentmg,a0 ; "CodeFragmentMgr"
lea var_1B0(a6),a1
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.b (a0),(a1)
move.w #$8000,var_1B2(a6)
move.w #$32,var_1B4(a6) ; '2'
move.l #$666F7672,var_1B8(a6)
lea aInterfacelib,a0 ; "InterfaceLib"
lea var_1F8(a6),a1
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.w (a0)+,(a1)+
move.w #$8000,var_1FA(a6)
move.w #1,var_1FC(a6)
move.l #$73667672,var_200(a6)
lea aMixedmode,a0 ; "\tMixedMode"
lea var_240(a6),a1
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.w (a0)+,(a1)+
move.b (a0),(a1)
move.w #$4000,var_242(a6)
move.w #2,var_244(a6)
loc_60008042:
move.l #$6E6C6962,var_248(a6)
lea aMplibrary_0,a0 ; "\tMPLibrary"
lea var_288(a6),a1
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.w (a0)+,(a1)+
move.b (a0),(a1)
move.w #$4000,var_28A(a6)
move.w #3,var_28C(a6)
move.l #$6E6C6962,var_290(a6)
lea aMpsharedglobal,a0 ; "MPSharedGlobals"
lea var_2D0(a6),a1
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.b (a0),(a1)
move.w #$8000,var_2D2(a6)
move.w #$33,var_2D4(a6) ; '3'
move.l #$666F7672,var_2D8(a6)
lea aInterfacelib,a0 ; "InterfaceLib"
lea var_318(a6),a1
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.w (a0)+,(a1)+
move.w #$8001,var_31A(a6)
move.w #7,var_31C(a6)
move.l #$6E6C6962,var_320(a6)
lea aBootstdclib,a0 ; "BootStdCLib"
lea var_360(a6),a1
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.b (a0),(a1)
move.w #$8001,var_362(a6)
move.w #$BFDC,var_364(a6)
move.l #$6E6C6962,var_368(a6)
lea aMath64lib,a0 ; "Math64Lib"
lea var_3A8(a6),a1
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.w (a0)+,(a1)+
move.b (a0),(a1)
move.w #$4000,var_3AA(a6)
move.w #$BFF1,var_3AC(a6)
move.l #$6E6C6962,var_3B0(a6)
lea aDebuglib,a0 ; "\bDebugLib"
lea var_3F0(a6),a1
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.w (a0)+,(a1)+
move.w #$8000,var_2(a6)
move.w #6,var_4(a6)
move.l #$666F7672,var_8(a6)
lea aPrivateinterfa,a0 ; "PrivateInterfaceLib"
lea var_48(a6),a1
moveq #4,d0
loc_6000812C: ; CODE XREF: _InitLotsOfNativeManagers+1BE↓j
move.l (a0)+,(a1)+
dbf d0,loc_6000812C
move.b (a0),(a1)
move.w #$8000,var_4A(a6)
move.w #$32,var_4C(a6) ; '2'
move.l #$666F7672,var_50(a6)
lea aInterfacelib,a0 ; "InterfaceLib"
lea var_90(a6),a1
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.w (a0)+,(a1)+
move.w #$4001,var_92(a6)
move.w #$BFF1,var_94(a6)
move.l #$6E6C6962,var_98(a6)
lea aDebuglib,a0 ; "\bDebugLib"
lea var_D8(a6),a1
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.w (a0)+,(a1)+
clr.w d6
subq.l #2,sp
jsr EmulatorIsOnDisk
move.b (sp)+,d5
beq.s loc_60008192
lea var_D8(a6),a4
moveq #3,d5
jsr sub_60007DC6
bra.s loc_60008198
; ---------------------------------------------------------------------------
loc_60008192: ; CODE XREF: _InitLotsOfNativeManagers+214â†j
lea var_3F0(a6),a4
moveq #$B,d5
loc_60008198: ; CODE XREF: _InitLotsOfNativeManagers+220â†j
clr.w d7
bra.w loc_60008332
; ---------------------------------------------------------------------------
loc_6000819E: ; CODE XREF: _InitLotsOfNativeManagers+3C4↓j
ext.l d7
move.l d7,d0
move.l d0,d1
mulu.w #$48,d0 ; 'H'
swap d1
mulu.w #$48,d1 ; 'H'
swap d1
clr.w d1
add.l d1,d0
moveq #0,d1
move.w $46(a4,d0.l),d1
tst.l d1
btst #0,d1
beq.s loc_6000820A
subq.l #2,sp
moveq #1,d0
move.l d0,-(sp)
moveq #0,d1
move.l d1,-(sp)
ext.l d7
move.l d7,d2
move.l d2,d3
mulu.w #$48,d2 ; 'H'
swap d3
mulu.w #$48,d3 ; 'H'
swap d3
clr.w d3
add.l d3,d2
pea (a4,d2.l)
moveq #2,d0
move.l d0,-(sp)
move.l #$70777063,-(sp)
pea var_3FA(a6)
pea var_3F6(a6)
pea var_3F1(a6)
move.l a3,-(sp)
move.w #$FFFE,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d6
beq.w loc_6000832E
loc_6000820A: ; CODE XREF: _InitLotsOfNativeManagers+250â†j
ext.l d7
move.l d7,d0
move.l d0,d1
mulu.w #$48,d0 ; 'H'
swap d1
mulu.w #$48,d1 ; 'H'
swap d1
clr.w d1
add.l d1,d0
moveq #0,d1
move.w $46(a4,d0.l),d1
move.w #$8000,d0
and.w d1,d0
beq.s loc_60008278
subq.l #2,sp
ext.l d7
move.l d7,d0
move.l d0,d1
mulu.w #$48,d0 ; 'H'
swap d1
mulu.w #$48,d1 ; 'H'
swap d1
clr.w d1
add.l d1,d0
move.l $40(a4,d0.l),-(sp)
jsr sub_60007F0E
addq.l #4,sp
move.w d0,-(sp)
ext.l d7
move.l d7,d0
move.l d0,d1
mulu.w #$48,d0 ; 'H'
swap d1
mulu.w #$48,d1 ; 'H'
swap d1
clr.w d1
add.l d1,d0
move.w $44(a4,d0.l),-(sp)
moveq #0,d0
move.w d0,-(sp)
jsr sub_6000A740
move.w (sp)+,d6
bra.s loc_600082DC
; ---------------------------------------------------------------------------
loc_60008278: ; CODE XREF: _InitLotsOfNativeManagers+2BCâ†j
ext.l d7
move.l d7,d0
move.l d0,d1
mulu.w #$48,d0 ; 'H'
swap d1
mulu.w #$48,d1 ; 'H'
swap d1
clr.w d1
add.l d1,d0
moveq #0,d1
move.w $46(a4,d0.l),d1
move.w #$4000,d0
and.w d1,d0
beq.s loc_600082DC
subq.l #2,sp
ext.l d7
move.l d7,d0
move.l d0,d1
mulu.w #$48,d0 ; 'H'
swap d1
mulu.w #$48,d1 ; 'H'
swap d1
clr.w d1
add.l d1,d0
move.l $40(a4,d0.l),-(sp)
ext.l d7
move.l d7,d0
move.l d0,d1
mulu.w #$48,d0 ; 'H'
swap d1
mulu.w #$48,d1 ; 'H'
swap d1
clr.w d1
add.l d1,d0
move.w $44(a4,d0.l),-(sp)
moveq #0,d0
move.b d0,-(sp)
jsr sub_6000A66E
move.w (sp)+,d6
loc_600082DC: ; CODE XREF: _InitLotsOfNativeManagers+306â†j
; _InitLotsOfNativeManagers+32Aâ†j
tst.w d6
beq.s loc_6000832E
moveq #0,d0
move.b ($BFF).w,d0
cmpi.w #$FF,d0
beq.s loc_60008338
moveq #0,d0
move.b ($BFF).w,d0
move.w #$E0,d1
and.b d0,d1
moveq #0,d0
move.b d1,d0
cmpi.w #$60,d0 ; '`'
bne.s loc_60008338
tst.l ($120).w
beq.s loc_60008338
moveq #$FFFFFFFF,d0
cmp.l ($120).w,d0
beq.s loc_60008338
ext.l d7
move.l d7,d0
move.l d0,d1
mulu.w #$48,d0 ; 'H'
swap d1
mulu.w #$48,d1 ; 'H'
swap d1
clr.w d1
add.l d1,d0
pea (a4,d0.l)
dc.w $ABFF ; _DebugStr
bra.s loc_60008338
; ---------------------------------------------------------------------------
loc_6000832E: ; CODE XREF: _InitLotsOfNativeManagers+296â†j
; _InitLotsOfNativeManagers+36Eâ†j
move.w d7,d0
addq.w #1,d7
loc_60008332: ; CODE XREF: _InitLotsOfNativeManagers+22Aâ†j
cmp.w d7,d5
bgt.w loc_6000819E
loc_60008338: ; CODE XREF: _InitLotsOfNativeManagers+37Aâ†j
; _InitLotsOfNativeManagers+390â†j ...
tst.w d6
bne.s loc_60008342
jsr sub_60007E62
move.w d0,d6
loc_60008342: ; CODE XREF: _InitLotsOfNativeManagers+3CAâ†j
move.w d6,arg_0(a6)
movem.l var_512(a6),d3/d5-d7/a3-a4
unlk a6
rts
; ---------------------------------------------------------------------------
aDebuglib: dc.b 8,'DebugLib',0 ; DATA XREF: _InitLotsOfNativeManagers+190â†o
; _InitLotsOfNativeManagers+1FCâ†o
aInterfacelib: dc.b 12,'InterfaceLib' ; DATA XREF: _InitLotsOfNativeManagers+92â†o
; _InitLotsOfNativeManagers+124â†o ...
dc.b 0
aPrivateinterfa:dc.b 19,'PrivateInterfaceLib'
; DATA XREF: _InitLotsOfNativeManagers+20â†o
; _InitLotsOfNativeManagers+1B2â†o
dc.b 0
dc.b 0
aMath64lib: dc.b 9,'Math64Lib' ; DATA XREF: _InitLotsOfNativeManagers+16Câ†o
dc.b 0
dc.b 0
aBootstdclib: dc.b 11,'BootStdCLib' ; DATA XREF: _InitLotsOfNativeManagers+148â†o
dc.b 0
dc.b 0
aMpsharedglobal:dc.b 15,'MPSharedGlobals'
; DATA XREF: _InitLotsOfNativeManagers+FEâ†o
dc.b 0
dc.b 0
aMplibrary_0: dc.b 9,'MPLibrary',0 ; DATA XREF: _InitLotsOfNativeManagers+DAâ†o
dc.b 0
aMixedmode: dc.b 9,'MixedMode',0 ; DATA XREF: _InitLotsOfNativeManagers+B6â†o
dc.b 0
aCodefragmentmg:dc.b 15,'CodeFragmentMgr'
; DATA XREF: _InitLotsOfNativeManagers+6Câ†o
dc.b 0
dc.b 0
aProcessmgrsupp:dc.b 17,'ProcessMgrSupport'
; DATA XREF: _InitLotsOfNativeManagers+46â†o
dc.b 0
dc.b 0
; End of function _InitLotsOfNativeManagers
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
_LoadTimeManagerLib: ; CODE XREF: ROM:loc_60000598â†p
var_114 set -$114
var_108 set -$108
var_104 set -$104
var_100 set -$100
link a6,#-$108
movem.l d7/a3-a4,-(sp)
moveq #0,d0
move.l d0,var_104(a6)
dc.w $A11A ; _GetZone
movea.l a0,a3
subq.l #4,sp
move.l ($2A6).w,(sp)
movea.l (sp)+,a0
dc.w $A01B ; _SetZone
subq.l #2,sp
pea aTimemanagerlib ; "TimeManagerLib"
move.l #'pwpc',-(sp)
moveq #2,d0
move.l d0,-(sp)
pea var_108(a6)
pea var_104(a6)
pea var_100(a6)
move.w #1,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
movea.l a3,a0
dc.w $A01B ; _SetZone
tst.w d7
bne.s loc_60008458
tst.l var_104(a6)
beq.s loc_60008458
subq.l #4,sp
move.l var_104(a6),-(sp)
moveq #$31,d0 ; '1'
move.l d0,-(sp)
moveq #1,d1
move.b d1,-(sp)
moveq #0,d0
dc.w $AA59 ; _MixedModeDispatch
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_60008458
movea.l a4,a0
jsr (a0)
move.l a4,-(sp)
moveq #1,d0
dc.w $AA59 ; _MixedModeDispatch
loc_60008458: ; CODE XREF: _LoadTimeManagerLib+46â†j
; _LoadTimeManagerLib+4Câ†j ...
movem.l var_114(a6),d7/a3-a4
unlk a6
rts
; End of function _LoadTimeManagerLib
; ---------------------------------------------------------------------------
aTimemanagerlib:dc.b 14,'TimeManagerLib'
; DATA XREF: _LoadTimeManagerLib+1Eâ†o
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
FinalProcessMgrLaunch: ; CODE XREF: ROM:6000191Câ†j
var_130 set -$130
var_128 set -$128
var_124 set -$124
var_120 set -$120
var_20 set -$20
var_1E set -$1E
var_1D set -$1D
var_1C set -$1C
var_18 set -$18
var_16 set -$16
var_14 set -$14
var_10 set -$10
var_E set -$E
var_C set -$C
var_8 set -8
var_4 set -4
link a6,#-$128
movem.l d7/a4,-(sp)
lea var_120(a6),a4
moveq #0,d0
move.l d0,var_4(a6)
move.l d0,var_8(a6)
move.l d0,var_C(a6)
move.w #4,var_E(a6)
clr.w var_10(a6)
move.l d0,var_14(a6)
clr.w var_16(a6)
clr.w var_18(a6)
move.l d0,var_1C(a6)
clr.b var_1D(a6)
move.b #7,var_1E(a6)
move.w #$AAFE,var_20(a6)
subq.l #4,sp
move.l ($2A6).w,(sp)
movea.l (sp)+,a0
dc.w $A01B ; _SetZone
subq.l #2,sp
pea aProcessmgrlib ; "\rProcessMgrLib"
move.l #$70777063,-(sp)
pea ($101).w
pea var_128(a6)
pea var_124(a6)
move.l a4,-(sp)
move.w #1,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.s loc_600084FE
tst.l var_124(a6)
beq.s loc_600084FE
move.b #1,var_10+1(a6)
move.l var_124(a6),var_C(a6)
lea var_20(a6),a0
jsr (a0)
bra.s loc_60008502
; ---------------------------------------------------------------------------
loc_600084FE: ; CODE XREF: FinalProcessMgrLaunch+70â†j
; FinalProcessMgrLaunch+76â†j
moveq #$F,d0
dc.w $A9C9 ; _SysError
loc_60008502: ; CODE XREF: FinalProcessMgrLaunch+8Aâ†j
movem.l var_130(a6),d7/a4
unlk a6
rts
; ---------------------------------------------------------------------------
aProcessmgrlib: dc.b $D,'ProcessMgrLib',0
; DATA XREF: FinalProcessMgrLaunch+50â†o
dc.b 0
; End of function FinalProcessMgrLaunch
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000851C: ; CODE XREF: _CheckForBadRam+24â†p
var_1C set -$1C
var_14 set -$14
var_4 set -4
arg_0 set 8
link a6,#-$14
movem.l d7/a4,-(sp)
movea.l arg_0(a6),a4
moveq #0,d0
move.l d0,(a4)
pea var_14(a6)
pea aDevicesDeviceT_3 ; "Devices:device-tree:diagnostics"
moveq #0,d0
move.l d0,-(sp)
moveq #$C,d0
dc.w $ABE9
move.w d0,d7
lea $C(sp),sp
bne.s loc_6000856A
moveq #4,d0
move.l d0,var_4(a6)
pea var_4(a6)
move.l a4,-(sp)
pea aPostResults ; "post-results"
pea var_14(a6)
moveq #$17,d0
dc.w $ABE9
move.w d0,d7
pea var_14(a6)
moveq #3,d0
dc.w $ABE9
lea $14(sp),sp
loc_6000856A: ; CODE XREF: sub_6000851C+26â†j
move.w d7,d0
movem.l var_1C(a6),d7/a4
unlk a6
rts
; End of function sub_6000851C
; ---------------------------------------------------------------------------
aPostResults: dc.b 'post-results',0 ; DATA XREF: sub_6000851C+34â†o
dc.b 0
aDevicesDeviceT_3:dc.b 'Devices:device-tree:diagnostics',0
; DATA XREF: sub_6000851C+14â†o
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600085A4: ; CODE XREF: _CheckForBadRam+10â†p
var_20 set -$20
var_18 set -$18
var_8 set -8
var_4 set -4
link a6,#-$18
movem.l d6-d7,-(sp)
moveq #0,d0
move.l d0,var_8(a6)
moveq #0,d7
moveq #0,d6
move.l d0,var_4(a6)
pea var_18(a6)
moveq #0,d0
dc.w $ABE9
pea var_18(a6)
pea aDevicesDeviceT_4 ; "Devices:device-tree:cpus:dead"
moveq #0,d0
move.l d0,-(sp)
moveq #$C,d0
dc.w $ABE9
move.l d0,d7
lea $10(sp),sp
bne.s loc_60008608
moveq #4,d0
move.l d0,var_8(a6)
pea var_8(a6)
pea var_4(a6)
pea aState ; "state"
pea var_18(a6)
moveq #$17,d0
dc.w $ABE9
move.l d0,d7
lea $10(sp),sp
bne.s loc_60008608
cmpi.l #$64656164,var_4(a6)
bne.s loc_60008608
moveq #1,d6
loc_60008608: ; CODE XREF: sub_600085A4+34â†j
; sub_600085A4+56â†j ...
pea var_18(a6)
moveq #3,d0
dc.w $ABE9
move.l d6,d0
addq.w #4,sp
movem.l var_20(a6),d6-d7
unlk a6
rts
; End of function sub_600085A4
; ---------------------------------------------------------------------------
aState: dc.b 'state',0 ; DATA XREF: sub_600085A4+44â†o
aDevicesDeviceT_4:dc.b 'Devices:device-tree:cpus:dead',0
; DATA XREF: sub_600085A4+22â†o
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60008642: ; CODE XREF: sub_600086E0+10C↓p
; sub_600086E0+15C↓p ...
var_14 set -$14
arg_0 set 8
arg_4 set $C
arg_8 set $10
link a6,#0
movem.l d3/d7/a2-a4,-(sp)
movea.l arg_0(a6),a2
movea.l arg_4(a6),a3
movea.l arg_8(a6),a4
moveq #0,d7
tst.b (a2)
beq.s loc_600086D4
moveq #0,d3
move.b (a4),d0
cmp.b (a3),d0
bhi.s loc_60008686
moveq #0,d0
move.b (a4),d0
moveq #0,d1
move.b (a3,d0.w),d1
cmpi.b #$30,d1 ; '0'
bcs.s loc_60008686
moveq #0,d0
move.b (a4),d0
moveq #0,d1
move.b (a3,d0.w),d1
cmpi.b #$39,d1 ; '9'
bhi.s loc_60008686
moveq #1,d3
loc_60008686: ; CODE XREF: sub_60008642+20â†j
; sub_60008642+30â†j ...
move.b d3,(a2)
bra.s loc_600086AA
; ---------------------------------------------------------------------------
loc_6000868A: ; CODE XREF: sub_60008642+90↓j
move.l d7,d1
add.l d1,d1
move.l d1,d0
lsl.l #2,d1
add.l d0,d1
moveq #0,d0
move.b (a4),d0
moveq #0,d2
move.b (a3,d0.w),d2
; ---------------------------------------------------------------------------
dc.b $94
dc.b $7C ; |
dc.b 0
dc.b $30 ; 0
; ---------------------------------------------------------------------------
ext.l d2
add.l d1,d2
move.l d2,d7
addq.b #1,(a4)
loc_600086AA: ; CODE XREF: sub_60008642+46â†j
tst.b (a2)
beq.s loc_600086D4
move.b (a4),d0
cmp.b (a3),d0
bhi.s loc_600086D4
moveq #0,d0
move.b (a4),d0
moveq #0,d1
move.b (a3,d0.w),d1
cmpi.b #$30,d1 ; '0'
bcs.s loc_600086D4
moveq #0,d0
move.b (a4),d0
moveq #0,d1
move.b (a3,d0.w),d1
cmpi.b #$39,d1 ; '9'
bls.s loc_6000868A
loc_600086D4: ; CODE XREF: sub_60008642+18â†j
; sub_60008642+6Aâ†j ...
move.l d7,d0
movem.l var_14(a6),d3/d7/a2-a4
unlk a6
rts
; End of function sub_60008642
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600086E0: ; CODE XREF: sub_60008A2E+1A↓p
var_148 set -$148
var_12C set -$12C
var_127 set -$127
var_126 set -$126
var_122 set -$122
var_11E set -$11E
var_1E set -$1E
var_1A set -$1A
var_16 set -$16
var_5 set -5
var_4 set -4
arg_0 set 8
link a6,#-$12C
movem.l d3-d7/a3-a4,-(sp)
movea.l arg_0(a6),a3
lea var_11E(a6),a4
clr.b var_5(a6)
move.l #$6E726567,d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
tst.w d0
bne.w loc_600089A8
move.w #$ABE9,d0
dc.w $A746 ; _GetToolTrapAddress
move.l a0,var_12C(a6)
move.w #$A89F,d0
dc.w $A746 ; _GetToolTrapAddress
move.l var_12C(a6),d0
cmpa.l d0,a0
beq.w loc_600089A8
pea var_16(a6)
moveq #0,d0
dc.w $ABE9
move.w d0,d7
addq.w #4,sp
bne.w loc_6000899E
lea aDevicesDeviceT_0,a0 ; "Devices:device-tree:rom:macos"
move.l a0,var_1A(a6)
pea var_16(a6)
move.l a0,-(sp)
moveq #0,d0
move.l d0,-(sp)
moveq #$C,d0
dc.w $ABE9
move.w d0,d7
lea $C(sp),sp
bne.w loc_6000899E
lea aMacosromfileVe,a0 ; "MacOSROMFile-version"
move.l a0,var_1E(a6)
move.l #$FF,var_122(a6)
pea var_122(a6)
pea 1(a4)
move.l var_1E(a6),-(sp)
pea var_16(a6)
moveq #$17,d0
dc.w $ABE9
move.w d0,d7
cmpi.w #$F615,d7
lea $10(sp),sp
bne.s loc_60008794
move.b #1,var_5(a6)
move.l #$1FFFFFF,(a3)
bra.w loc_6000899E
; ---------------------------------------------------------------------------
loc_60008794: ; CODE XREF: sub_600086E0+A2â†j
tst.w d7
bne.w loc_6000899E
tst.l var_122(a6)
bls.w loc_6000899E
move.b #1,var_127(a6)
moveq #0,d5
move.l #$80,d7
moveq #1,d6
bra.s loc_600087BC
; ---------------------------------------------------------------------------
loc_600087B4: ; CODE XREF: sub_600086E0+EE↓j
move.l var_122(a6),d0
subq.l #1,var_122(a6)
loc_600087BC: ; CODE XREF: sub_600086E0+D2â†j
tst.l var_122(a6)
bls.s loc_600087D0
move.w var_122+2(a6),d0
moveq #0,d1
move.b (a4,d0.w),d1
tst.l d1
beq.s loc_600087B4
loc_600087D0: ; CODE XREF: sub_600086E0+E0â†j
move.b var_122+3(a6),(a4)
moveq #0,d0
move.b (a4),d0
tst.l d0
shi d3
neg.b d3
move.b d3,var_5(a6)
pea var_127(a6)
move.l a4,-(sp)
pea var_5(a6)
jsr sub_60008642
move.l d0,var_126(a6)
tst.b var_5(a6)
lea $C(sp),sp
beq.s loc_60008824
move.b var_127(a6),d0
cmp.b (a4),d0
bhi.s loc_60008824
move.b var_127(a6),d0
addq.b #1,var_127(a6)
moveq #0,d1
move.b d0,d1
moveq #0,d0
move.b (a4,d1.w),d0
cmpi.w #$2E,d0 ; '.'
seq d3
neg.b d3
move.b d3,var_5(a6)
loc_60008824: ; CODE XREF: sub_600086E0+11Câ†j
; sub_600086E0+124â†j
tst.b var_5(a6)
beq.s loc_60008846
move.b var_127(a6),d0
cmp.b (a4),d0
bhi.s loc_60008846
pea var_127(a6)
move.l a4,-(sp)
pea var_5(a6)
jsr sub_60008642
move.l d0,d4
lea $C(sp),sp
loc_60008846: ; CODE XREF: sub_600086E0+148â†j
; sub_600086E0+150â†j
tst.b var_5(a6)
beq.s loc_6000887A
moveq #0,d0
move.b var_127(a6),d0
moveq #0,d1
move.b (a4,d0.w),d1
cmpi.w #$2E,d1 ; '.'
bne.s loc_6000887A
move.b var_127(a6),d0
addq.b #1,var_127(a6)
pea var_127(a6)
move.l a4,-(sp)
pea var_5(a6)
jsr sub_60008642
move.l d0,d5
lea $C(sp),sp
loc_6000887A: ; CODE XREF: sub_600086E0+16Aâ†j
; sub_600086E0+17Câ†j
tst.b var_5(a6)
beq.w loc_6000899E
move.b var_127(a6),d0
cmp.b (a4),d0
bcc.w loc_6000899E
moveq #0,d0
move.b var_127(a6),d0
move.b (a4,d0.w),d0
subi.b #$41,d0 ; 'A'
beq.s loc_600088C4
subq.b #1,d0
beq.s loc_600088C8
subq.b #2,d0
beq.s loc_600088CC
subq.b #2,d0
beq.s loc_600088D0
subq.b #1,d0
beq.s loc_600088D8
subi.b #$1A,d0
beq.s loc_600088C4
subq.b #1,d0
beq.s loc_600088C8
subq.b #2,d0
beq.s loc_600088CC
subq.b #2,d0
beq.s loc_600088D0
subq.b #1,d0
beq.s loc_600088D8
bra.s loc_60008922
; ---------------------------------------------------------------------------
loc_600088C4: ; CODE XREF: sub_600086E0+1BAâ†j
; sub_600086E0+1D0â†j
moveq #$40,d7 ; '@'
bra.s loc_60008926
; ---------------------------------------------------------------------------
loc_600088C8: ; CODE XREF: sub_600086E0+1BEâ†j
; sub_600086E0+1D4â†j
moveq #$60,d7 ; '`'
bra.s loc_60008926
; ---------------------------------------------------------------------------
loc_600088CC: ; CODE XREF: sub_600086E0+1C2â†j
; sub_600086E0+1D8â†j
moveq #$20,d7 ; ' '
bra.s loc_60008926
; ---------------------------------------------------------------------------
loc_600088D0: ; CODE XREF: sub_600086E0+1C6â†j
; sub_600086E0+1DCâ†j
move.l #$80,d7
bra.s loc_60008926
; ---------------------------------------------------------------------------
loc_600088D8: ; CODE XREF: sub_600086E0+1CAâ†j
; sub_600086E0+1E0â†j
move.l #$80,d7
bra.s loc_600088E8
; ---------------------------------------------------------------------------
loc_600088E0: ; CODE XREF: sub_600086E0+23E↓j
move.b var_127(a6),d0
addq.b #1,var_127(a6)
loc_600088E8: ; CODE XREF: sub_600086E0+1FEâ†j
move.b var_127(a6),d0
cmp.b (a4),d0
bcc.s loc_60008926
moveq #0,d3
moveq #0,d0
move.b var_127(a6),d0
addq.w #1,d0
moveq #0,d1
move.b (a4,d0.w),d1
cmpi.b #$30,d1 ; '0'
bcs.s loc_6000891C
moveq #0,d0
move.b var_127(a6),d0
addq.w #1,d0
moveq #0,d1
move.b (a4,d0.w),d1
cmpi.b #$39,d1 ; '9'
bhi.s loc_6000891C
moveq #1,d3
loc_6000891C: ; CODE XREF: sub_600086E0+224â†j
; sub_600086E0+238â†j
tst.b d3
beq.s loc_600088E0
bra.s loc_60008926
; ---------------------------------------------------------------------------
loc_60008922: ; CODE XREF: sub_600086E0+1E2â†j
clr.b var_5(a6)
loc_60008926: ; CODE XREF: sub_600086E0+1E6â†j
; sub_600086E0+1EAâ†j ...
tst.b var_5(a6)
beq.s loc_60008948
move.b var_127(a6),d0
addq.b #1,var_127(a6)
pea var_127(a6)
move.l a4,-(sp)
pea var_5(a6)
jsr sub_60008642
move.l d0,d6
lea $C(sp),sp
loc_60008948: ; CODE XREF: sub_600086E0+24Aâ†j
moveq #0,d3
tst.b var_5(a6)
beq.s loc_60008970
cmpi.l #$100,var_126(a6)
bge.s loc_60008970
moveq #$10,d0
cmp.l d4,d0
ble.s loc_60008970
moveq #$10,d0
cmp.l d5,d0
ble.s loc_60008970
cmpi.l #$100,d6
bge.s loc_60008970
moveq #1,d3
loc_60008970: ; CODE XREF: sub_600086E0+26Eâ†j
; sub_600086E0+278â†j ...
move.b d3,var_5(a6)
beq.s loc_6000899E
move.l var_126(a6),d0
lsl.w #8,d0
swap d0
clr.w d0
move.l d4,d1
lsl.w #4,d1
swap d1
clr.w d1
or.l d0,d1
move.l d5,d0
swap d0
clr.w d0
or.l d1,d0
move.l d7,d1
lsl.l #8,d1
or.l d0,d1
move.l d6,d0
or.l d1,d0
move.l d0,(a3)
loc_6000899E: ; CODE XREF: sub_600086E0+50â†j
; sub_600086E0+70â†j ...
pea var_16(a6)
moveq #3,d0
dc.w $ABE9
addq.w #4,sp
loc_600089A8: ; CODE XREF: sub_600086E0+26â†j
; sub_600086E0+40â†j
move.b var_5(a6),d0
movem.l var_148(a6),d3-d7/a3-a4
unlk a6
rts
; End of function sub_600086E0
; ---------------------------------------------------------------------------
aMacosromfileVe:dc.b 'MacOSROMFile-version',0
; DATA XREF: sub_600086E0+74â†o
dc.b 0
aDevicesDeviceT_0:dc.b 'Devices:device-tree:rom:macos',0
; DATA XREF: sub_600086E0+54â†o
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
EmulatorIsOnDisk: ; CODE XREF: ROM:j_EmulatorIsOnDiskâ†j
; _InitLotsOfNativeManagers+20Eâ†p ...
var_4 set -4
arg_0 set 8
link a6,#-4
move.l #'mach',d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
tst.w d0
bne.s @notBlueBox
cmpi.l #$196,var_4(a6)
bne.s @notNewWorld
move.b #1,arg_0(a6)
bra.s @return
; ---------------------------------------------------------------------------
@notNewWorld: ; CODE XREF: EmulatorIsOnDisk+20â†j
cmpi.l #$4B6,var_4(a6)
bne.s @notBlueBox
move.b #1,arg_0(a6)
bra.s @return
; ---------------------------------------------------------------------------
@notBlueBox: ; CODE XREF: EmulatorIsOnDisk+16â†j
; EmulatorIsOnDisk+32â†j
clr.b arg_0(a6)
@return: ; CODE XREF: EmulatorIsOnDisk+28â†j
; EmulatorIsOnDisk+3Aâ†j
unlk a6
rts
; End of function EmulatorIsOnDisk
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60008A2E: ; CODE XREF: ROM:60000A40â†p
var_8 set -8
var_4 set -4
link a6,#-4
move.l a4,-(sp)
moveq #0,d0
move.l d0,var_4(a6)
subq.l #2,sp
jsr EmulatorIsOnDisk
tst.b (sp)+
beq.s loc_60008A92
pea var_4(a6)
jsr sub_600086E0
tst.b d0
addq.w #4,sp
beq.s loc_60008A92
tst.l var_4(a6)
bls.s loc_60008A92
subq.l #4,sp
move.l #$6D727673,-(sp)
moveq #1,d0
move.w d0,-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_60008A74
tst.l (a4)
bne.s loc_60008A74
move.l a4,-(sp)
dc.w $A9A2 ; _LoadResource ; come-from patches = #1
loc_60008A74: ; CODE XREF: sub_60008A2E+3Câ†j
; sub_60008A2E+40â†j
move.l a4,d0
beq.s loc_60008A92
tst.l (a4)
beq.s loc_60008A92
subq.l #2,sp
dc.w $A9AF ; _ResError
tst.w (sp)+
bne.s loc_60008A92
movea.l (a4),a0
move.l var_4(a6),d0
cmp.l (a0),d0
bcc.s loc_60008A92
moveq #$78,d0 ; 'x'
dc.w $A9C9 ; _SysError
loc_60008A92: ; CODE XREF: sub_60008A2E+14â†j
; sub_60008A2E+22â†j ...
movea.l var_8(a6),a4
unlk a6
rts
; End of function sub_60008A2E
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60008A9A: ; CODE XREF: ROM:loc_60000A52â†p
var_82 set -$82
var_7A set -$7A
var_68 set -$68
var_64 set -$64
var_5E set -$5E
var_52 set -$52
var_4A set -$4A
arg_0 set 8
arg_4 set $C
arg_8 set $10
link a6,#-$7A
movem.l d6-d7,-(sp)
move.l arg_4(a6),d7
move.w arg_8(a6),var_64(a6)
move.l arg_0(a6),var_68(a6)
move.l d7,var_4A(a6)
clr.w var_5E(a6)
lea var_7A(a6),a0
dc.w $A20C ; _PBHGetFInfoSync
tst.w d0
bne.s loc_60008AE4
move.w var_52(a6),d6
ori.w #$3000,var_52(a6)
ext.l d6
moveq #0,d0
move.w var_52(a6),d0
cmp.l d6,d0
beq.s loc_60008AE4
move.l d7,var_4A(a6)
lea var_7A(a6),a0
dc.w $A20D ; _PBHSetFInfoSync
loc_60008AE4: ; CODE XREF: sub_60008A9A+28â†j
; sub_60008A9A+3Eâ†j
movem.l var_82(a6),d6-d7
unlk a6
movea.l (sp)+,a0
lea $A(sp),sp
jmp (a0)
; End of function sub_60008A9A
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
_RemoveAlisToUninitializedPAPA: ; CODE XREF: ROM:loc_60001716â†p
var_68 set -$68
var_48 set -$48
var_1 set -1
link a6,#-$4C
movem.l d4-d7/a2-a4,-(sp)
moveq #0,d0
movea.l d0,a3
movea.l d0,a4
movea.l d0,a2
clr.w d6
moveq #$FFFFFFFF,d5
clr.w d7
subq.l #2,sp
dc.w $A994 ; _CurResFile
move.w (sp)+,d4
moveq #0,d0
move.w d0,-(sp)
dc.w $A998 ; _UseResFile
subq.l #4,sp
move.l #$616C6973,-(sp)
move.w #$E000,-(sp)
dc.w $A81F ; _Get1Resource
movea.l (sp)+,a3
move.l a3,d0
beq.w loc_60008BFA
subq.l #2,sp
dc.w $A9AF ; _ResError
tst.w (sp)+
bne.w loc_60008BFA
move.l a3,-(sp)
dc.w $A9A2 ; _LoadResource ; come-from patches = #1
subq.l #2,sp
dc.w $A9AF ; _ResError
move.w (sp)+,d6
bne.s loc_60008B58
subq.l #2,sp
moveq #0,d0
move.l d0,-(sp)
move.l a3,-(sp)
pea var_48(a6)
pea var_1(a6)
moveq #3,d0
dc.w $A823 ; _AliasDispatch
move.w (sp)+,d6
loc_60008B58: ; CODE XREF: _RemoveAlisToUninitializedPAPA+4Câ†j
tst.w d6
bne.w loc_60008BFA
subq.l #2,sp
pea var_48(a6)
moveq #3,d0
move.b d0,-(sp)
moveq #$D,d0
dc.w $AA52 ; _HighLevelFSDispatch
move.w (sp)+,d5
cmpi.w #$FFFF,d5
beq.w loc_60008BFA
subq.l #4,sp
move.l #$50415041,-(sp)
move.w #$E000,-(sp)
dc.w $A81F ; _Get1Resource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_60008BF6
subq.l #2,sp
dc.w $A9AF ; _ResError
tst.w (sp)+
bne.s loc_60008BF6
movea.l a4,a0
dc.w $A029 ; _HLock
movea.l (a4),a0
move.b (a0),d0
ext.w d0
move.w d0,d7
addq.w #1,d7
ext.l d7
move.b (a0,d7.w),d0
ext.w d0
ext.l d0
add.l d7,d0
addq.w #1,d0
move.w d0,d7
ext.l d7
movea.l (a4),a0
move.b (a0,d7.w),d0
ext.w d0
ext.l d0
add.l d7,d0
addq.w #1,d0
move.w d0,d7
movea.l (a4),a2
adda.w d7,a2
cmpi.w #$1A,d7
bne.s loc_60008BEE
tst.l (a2)
bne.s loc_60008BEE
moveq #0,d0
move.w d0,-(sp)
dc.w $A998 ; _UseResFile
move.l a3,-(sp)
dc.w $A9AD ; _RemoveResource
subq.l #2,sp
dc.w $A9AF ; _ResError
move.w (sp)+,d6
subq.l #2,sp
dc.w $A9AF ; _ResError
tst.w (sp)+
bne.s loc_60008BEE
moveq #0,d0
move.w d0,-(sp)
dc.w $A999 ; _UpdateResFile
loc_60008BEE: ; CODE XREF: _RemoveAlisToUninitializedPAPA+D6â†j
; _RemoveAlisToUninitializedPAPA+DAâ†j ...
movea.l a4,a0
dc.w $A02A ; _HUnlock
move.l a4,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_60008BF6: ; CODE XREF: _RemoveAlisToUninitializedPAPA+94â†j
; _RemoveAlisToUninitializedPAPA+9Câ†j
move.w d5,-(sp)
dc.w $A99A ; _CloseResFile
loc_60008BFA: ; CODE XREF: _RemoveAlisToUninitializedPAPA+34â†j
; _RemoveAlisToUninitializedPAPA+3Eâ†j ...
move.w d4,-(sp)
dc.w $A998 ; _UseResFile
movem.l var_68(a6),d4-d7/a2-a4
unlk a6
rts
; End of function _RemoveAlisToUninitializedPAPA
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
_InstallOFDiskNameMaker: ; CODE XREF: ROM:loc_60001116â†p
var_8 set -8
link a6,#0
movem.l a3-a4,-(sp)
dc.w $A11A ; _GetZone
movea.l a0,a3
movea.l ($2A6).w,a0
dc.w $A01B ; _SetZone
subq.l #4,sp
move.l #'scod',-(sp)
move.w #$AD08,-(sp)
dc.w $A81F ; _Get1Resource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_60008C46
move.l a4,-(sp)
dc.w $A992 ; _DetachResource
movea.l a4,a0
dc.w $A064 ; _MoveHHi
movea.l a4,a0
dc.w $A029 ; _HLock
move.l (a4),-(sp)
moveq #8,d0
move.w d0,-(sp)
move.w #3,-(sp)
dc.w $A895 ; _ShutDown
loc_60008C46: ; CODE XREF: _InstallOFDiskNameMaker+24â†j
movea.l a3,a0
dc.w $A01B ; _SetZone
movem.l var_8(a6),a3-a4
unlk a6
rts
; End of function _InstallOFDiskNameMaker
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60008C54: ; CODE XREF: sub_6000780Aâ†j
var_14 set -$14
link a6,#0
movem.l d5-d7/a3-a4,-(sp)
movea.l ($2B6).w,a0
movea.l $320(a0),a3
movea.l ($2A6).w,a4
bra.s loc_60008C6E
; ---------------------------------------------------------------------------
loc_60008C6A: ; CODE XREF: sub_60008C54+1E↓j
movea.l $20(a4),a4
loc_60008C6E: ; CODE XREF: sub_60008C54+14â†j
tst.l $20(a4)
bne.s loc_60008C6A
movea.l (a4),a0
move.l 4(a0),d7
add.l (a4),d7
move.l d7,d0
; ---------------------------------------------------------------------------
dc.b $D0
dc.b $BC
dc.b 0
dc.b 0
dc.b $10
dc.b 0
; ---------------------------------------------------------------------------
move.l #$FFFFF000,d1
and.l d0,d1
move.l d1,d7
cmp.l $10(a3),d7
bhi.w loc_60008D54
move.l $10(a3),d6
sub.l d7,d6
move.l #$FFFFF000,d0
and.l d6,d0
move.l d0,d6
cmpi.l #$100000,d6
bls.s loc_60008CBA
subi.l #$100000,d6
addi.l #$100000,d7
loc_60008CBA: ; CODE XREF: sub_60008C54+58â†j
subq.l #4,sp
move.l $20(a3),-(sp)
move.l d7,-(sp)
move.l d6,-(sp)
moveq #0,d0
move.l d0,-(sp)
move.w #$FFF3,-(sp)
dc.w $AA7F
move.l (sp)+,d5
bne.w loc_60008D54
subq.l #4,sp
move.l $20(a3),-(sp)
moveq #0,d0
move.l d0,-(sp)
move.l d7,-(sp)
move.w #$FFF6,-(sp)
dc.w $AA7F
move.l (sp)+,d5
bne.s loc_60008D54
move.l d7,$10(a3)
add.l d6,$18(a3)
movea.l d7,a0
dc.w $A02D ; _SetApplLimit
cmpi.l #$4000000,$1C(a3)
bls.s loc_60008D24
subq.l #4,sp
move.l $20(a3),-(sp)
moveq #$40,d0 ; '@'
move.l d0,-(sp)
move.l #$4000000,-(sp)
move.w #$FFE8,-(sp)
dc.w $AA7F
move.l (sp)+,d5
bne.s loc_60008D54
move.l #$4000000,$14(a3)
bra.s loc_60008D2A
; ---------------------------------------------------------------------------
loc_60008D24: ; CODE XREF: sub_60008C54+AAâ†j
move.l $1C(a3),$14(a3)
loc_60008D2A: ; CODE XREF: sub_60008C54+CEâ†j
move.l ($8).w,$38(a3)
lea sub_60002BF8,a0
move.l a0,$34(a3)
lea $32(a3),a0
move.l a0,($8).w
; ---------------------------------------------------------------------------
dc.b $21
dc.b $C7
dc.b $1E
dc.b $10
; ---------------------------------------------------------------------------
move.l 4(a3),d0
; ---------------------------------------------------------------------------
dc.b $90
dc.b $BC
dc.b 0
dc.b 0
dc.b 2
dc.b 0
; ---------------------------------------------------------------------------
move.l d0,($DDC).w
bra.s loc_60008D58
; ---------------------------------------------------------------------------
loc_60008D54: ; CODE XREF: sub_60008C54+3Eâ†j
; sub_60008C54+7Câ†j ...
moveq #$69,d0 ; 'i'
dc.w $A9C9 ; _SysError
loc_60008D58: ; CODE XREF: sub_60008C54+FEâ†j
movem.l var_14(a6),d5-d7/a3-a4
unlk a6
rts
; End of function sub_60008C54
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60008D62: ; CODE XREF: ROM:60001910â†p
var_28 set -$28
var_8 set -8
link a6,#-$C
movem.l d3-d7/a3-a4,-(sp)
moveq #0,d5
move.l ($322).w,d0
add.l d0,d0
move.l d0,var_8(a6)
movea.l ($2B6).w,a0
movea.l $320(a0),a3
move.l ($10C).w,d0
sub.l var_8(a6),d0
move.l #$FFFFF000,d6
and.l d0,d6
cmp.l (a3),d6
bcs.w loc_60008E7E
move.l d6,d0
; ---------------------------------------------------------------------------
dc.b $90
dc.b $BC
dc.b 0
dc.b $10
dc.b 0
dc.b 0
; ---------------------------------------------------------------------------
move.l #$FFFFF000,d1
and.l d0,d1
move.l d1,d6
cmp.l (a3),d6
bcc.s loc_60008DAC
move.l (a3),d6
loc_60008DAC: ; CODE XREF: sub_60008D62+46â†j
cmp.l 8(a3),d6
bhi.s loc_60008DB8
movea.l d6,a0
clr.b (a0)
bra.s loc_60008DEA
; ---------------------------------------------------------------------------
loc_60008DB8: ; CODE XREF: sub_60008D62+4Eâ†j
move.l d6,d0
sub.l 8(a3),d0
move.l #$FFFFF000,d3
and.l d0,d3
tst.l d3
bls.s loc_60008DEA
subq.l #4,sp
move.l $C(a3),-(sp)
move.l 8(a3),-(sp)
move.l d3,-(sp)
moveq #0,d0
move.l d0,-(sp)
move.w #$FFF3,-(sp)
dc.w $AA7F
move.l (sp)+,d5
bne.w loc_60008E7E
add.l d3,8(a3)
loc_60008DEA: ; CODE XREF: sub_60008D62+54â†j
; sub_60008D62+66â†j
movea.l ($2A6).w,a4
bra.s loc_60008DF4
; ---------------------------------------------------------------------------
loc_60008DF0: ; CODE XREF: sub_60008D62+96↓j
movea.l $20(a4),a4
loc_60008DF4: ; CODE XREF: sub_60008D62+8Câ†j
tst.l $20(a4)
bne.s loc_60008DF0
movea.l (a4),a0
move.l 4(a0),d2
add.l (a4),d2
move.l d2,d0
; ---------------------------------------------------------------------------
dc.b $D0
dc.b $BC
dc.b 0
dc.b 0
dc.b $10
dc.b $60 ; `
; ---------------------------------------------------------------------------
move.l #$FFFFF000,d7
and.l d0,d7
cmp.l $14(a3),d7
bhi.s loc_60008E7E
move.l d7,d0
; ---------------------------------------------------------------------------
dc.b $D0
dc.b $BC
dc.b 0
dc.b $20
dc.b $10
dc.b 0
; ---------------------------------------------------------------------------
move.l #$FFFFF000,d1
and.l d0,d1
move.l d1,d7
cmp.l $14(a3),d7
bls.s loc_60008E34
move.l $14(a3),d7
loc_60008E34: ; CODE XREF: sub_60008D62+CCâ†j
cmp.l $10(a3),d7
bcs.s loc_60008E44
move.l d7,d0
subq.l #1,d0
movea.l d0,a0
clr.b (a0)
bra.s loc_60008E86
; ---------------------------------------------------------------------------
loc_60008E44: ; CODE XREF: sub_60008D62+D6â†j
move.l $10(a3),d0
sub.l d7,d0
move.l #$FFFFF000,d4
and.l d0,d4
tst.l d4
bls.s loc_60008E86
move.l d2,-(sp)
subq.l #4,sp
move.l $20(a3),-(sp)
move.l d7,-(sp)
move.l d4,-(sp)
moveq #0,d0
move.l d0,-(sp)
move.w #$FFF3,-(sp)
dc.w $AA7F
move.l (sp)+,d0
move.l (sp)+,d2
move.l d0,d5
bne.s loc_60008E7E
move.l d7,$10(a3)
add.l d4,$18(a3)
bra.s loc_60008E86
; ---------------------------------------------------------------------------
loc_60008E7E: ; CODE XREF: sub_60008D62+2Eâ†j
; sub_60008D62+80â†j ...
move.l d2,-(sp)
moveq #$69,d0 ; 'i'
dc.w $A9C9 ; _SysError
move.l (sp)+,d2
loc_60008E86: ; CODE XREF: sub_60008D62+E0â†j
; sub_60008D62+F2â†j ...
movem.l var_28(a6),d3-d7/a3-a4
unlk a6
rts
; End of function sub_60008D62
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60008E90: ; CODE XREF: sub_60002BF8+10â†p
var_34 set -$34
var_C set -$C
var_8 set -8
var_4 set -4
arg_0 set 8
arg_4 set $C
link a6,#-$14
movem.l d3-d7/a2-a4,-(sp)
moveq #0,d7
movea.l ($2B6).w,a0
move.l $320(a0),var_4(a6)
move.l #$FFFFF000,d0
and.l arg_0(a6),d0
move.l d0,var_8(a6)
movea.l var_4(a6),a0
move.l (a0),var_C(a6)
move.l 8(a0),d4
movea.l $C(a0),a2
move.l var_8(a6),d0
cmp.l var_C(a6),d0
bcs.s loc_60008ED2
cmp.l var_8(a6),d4
bhi.s loc_60008F12
loc_60008ED2: ; CODE XREF: sub_60008E90+3Aâ†j
move.l arg_0(a6),d0
; ---------------------------------------------------------------------------
dc.b $D0
dc.b $BC
dc.b 0
dc.b 0
dc.b $10
dc.b 0
; ---------------------------------------------------------------------------
move.l #$FFFFF000,d1
and.l d0,d1
move.l d1,var_8(a6)
movea.l var_4(a6),a0
move.l $10(a0),d4
movea.l $20(a0),a2
cmp.l var_8(a6),d4
bhi.s loc_60008F04
move.l var_8(a6),d0
cmp.l $14(a0),d0
bcs.s loc_60008F78
loc_60008F04: ; CODE XREF: sub_60008E90+68â†j
movea.l var_4(a6),a0
move.l $38(a0),arg_4(a6)
bra.w loc_60008FE8
; ---------------------------------------------------------------------------
loc_60008F12: ; CODE XREF: sub_60008E90+40â†j
move.l d4,d0
sub.l var_8(a6),d0
; ---------------------------------------------------------------------------
dc.b $D0
dc.b $BC
dc.b 0
dc.b 0
dc.b $10
dc.b 0
; ---------------------------------------------------------------------------
move.l #$FFFFF000,d3
and.l d0,d3
sub.l d3,d4
moveq #$C,d0
move.l d3,d1
lsr.l d0,d1
move.l d1,d3
subq.l #4,sp
move.w #$FFCC,-(sp)
dc.w $AA7F
cmp.l (sp)+,d3
bhi.w loc_60008FCC
move.l d3,d5
movea.l d4,a3
bra.s loc_60008F6A
; ---------------------------------------------------------------------------
loc_60008F44: ; CODE XREF: sub_60008E90+DC↓j
subq.l #4,sp
move.l a2,-(sp)
move.l a3,-(sp)
moveq #0,d0
move.l d0,-(sp)
moveq #1,d1
move.l d1,-(sp)
move.w #$FFF2,-(sp)
dc.w $AA7F
move.l (sp)+,d7
bne.s loc_60008FCC
move.l a3,d0
; ---------------------------------------------------------------------------
dc.b $D0
dc.b $BC
dc.b 0
dc.b 0
dc.b $10
dc.b 0
; ---------------------------------------------------------------------------
movea.l d0,a3
move.l d5,d0
subq.l #1,d5
loc_60008F6A: ; CODE XREF: sub_60008E90+B2â†j
tst.l d5
bhi.s loc_60008F44
movea.l var_4(a6),a0
move.l d4,8(a0)
bra.s loc_60008FE2
; ---------------------------------------------------------------------------
loc_60008F78: ; CODE XREF: sub_60008E90+72â†j
move.l var_8(a6),d0
sub.l d4,d0
moveq #$C,d1
move.l d0,d3
lsr.l d1,d3
subq.l #4,sp
move.w #$FFCC,-(sp)
dc.w $AA7F
cmp.l (sp)+,d3
bhi.s loc_60008FCC
move.l d3,d6
movea.l d4,a4
bra.s loc_60008FBC
; ---------------------------------------------------------------------------
loc_60008F96: ; CODE XREF: sub_60008E90+12E↓j
subq.l #4,sp
move.l a2,-(sp)
move.l a4,-(sp)
moveq #0,d0
move.l d0,-(sp)
moveq #1,d1
move.l d1,-(sp)
move.w #$FFF2,-(sp)
dc.w $AA7F
move.l (sp)+,d7
bne.s loc_60008FCC
move.l a4,d0
; ---------------------------------------------------------------------------
dc.b $D0
dc.b $BC
dc.b 0
dc.b 0
dc.b $10
dc.b 0
; ---------------------------------------------------------------------------
movea.l d0,a4
move.l d6,d0
subq.l #1,d6
loc_60008FBC: ; CODE XREF: sub_60008E90+104â†j
tst.l d6
bhi.s loc_60008F96
move.l a4,d4
movea.l var_4(a6),a0
move.l d4,$10(a0)
bra.s loc_60008FE2
; ---------------------------------------------------------------------------
loc_60008FCC: ; CODE XREF: sub_60008E90+AAâ†j
; sub_60008E90+CAâ†j ...
moveq #$69,d0 ; 'i'
dc.w $A9C9 ; _SysError
move.l #$FFFFFD94,d7
movea.l var_4(a6),a0
move.l $38(a0),arg_4(a6)
bra.s loc_60008FE8
; ---------------------------------------------------------------------------
loc_60008FE2: ; CODE XREF: sub_60008E90+E6â†j
; sub_60008E90+13Aâ†j
moveq #0,d0
move.l d0,arg_4(a6)
loc_60008FE8: ; CODE XREF: sub_60008E90+7Eâ†j
; sub_60008E90+150â†j
movem.l var_34(a6),d3-d7/a2-a4
unlk a6
move.l (sp)+,(sp)
rts
; End of function sub_60008E90
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60008FF4: ; CODE XREF: ROM:6000066Câ†p
var_8 set -8
var_4 set -4
link a6,#-4
move.l a4,-(sp)
subq.l #4,sp
move.l #'vm ',-(sp)
moveq #1,d0
move.w d0,-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_60009052
subq.l #4,sp
move.l a4,-(sp)
jsr sub_60003106
moveq #$C,d0
cmp.l (sp)+,d0
bne.s loc_60009052
moveq #$B,d0
move.l d0,-(sp)
movea.l (a4),a0
move.l (a0),-(sp)
pea var_4(a6)
move.l #$30002,d0
; ---------------------------------------------------------------------------
dc.b $FE
dc.b $22 ; "
; ---------------------------------------------------------------------------
tst.l d0
lea $C(sp),sp
bne.s loc_6000904E
movea.l var_4(a6),a0
movea.l ($2B6).w,a1
move.l (a0),$2D2(a1)
movea.l (a4),a0
movea.l ($2B6).w,a1
move.l (a0),$2D6(a1)
loc_6000904E: ; CODE XREF: sub_60008FF4+42â†j
move.l a4,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_60009052: ; CODE XREF: sub_60008FF4+18â†j
; sub_60008FF4+26â†j
movea.l var_8(a6),a4
unlk a6
rts
; End of function sub_60008FF4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000905A: ; CODE XREF: sub_60009278+58↓p
; sub_60009278+8C↓p ...
var_B4 set -$B4
var_98 set -$98
var_94 set -$94
var_92 set -$92
var_8E set -$8E
var_7C set -$7C
var_78 set -$78
var_72 set -$72
var_70 set -$70
var_6E set -$6E
var_6A set -$6A
var_5E set -$5E
var_2A set -$2A
var_22 set -$22
var_2 set -2
arg_0 set 8
arg_4 set $C
arg_8 set $10
arg_C set $14
link a6,#-$98
movem.l d3-d7/a3-a4,-(sp)
movea.l arg_0(a6),a0
dc.w $A029 ; _HLock
lea var_22(a6),a0
move.l a0,var_7C(a6)
move.w arg_C(a6),var_78(a6)
move.w #1,var_72(a6)
loc_6000907C: ; CODE XREF: sub_6000905A+204↓j
move.l arg_8(a6),var_5E(a6)
lea var_8E(a6),a0
moveq #9,d0
dc.w $A260 ; _HFSDispatch
move.w d0,var_2(a6)
bne.w loc_60009252
moveq #$10,d0
and.b var_70(a6),d0
moveq #0,d1
move.b d0,d1
tst.l d1
bne.w loc_60009252
clr.w d5
bra.w loc_60009240
; ---------------------------------------------------------------------------
loc_600090A8: ; CODE XREF: sub_6000905A+1F4↓j
moveq #0,d0
move.w d5,d0
movea.l arg_0(a6),a0
movea.l (a0),a0
move.l d0,d1
mulu.w #$2E,d0 ; '.'
swap d1
mulu.w #$2E,d1 ; '.'
swap d1
clr.w d1
add.l d1,d0
lea 4(a0,d0.l),a4
moveq #1,d6
tst.l (a4)
beq.s loc_600090D6
move.l (a4),d0
cmp.l var_6E(a6),d0
bne.s loc_60009108
loc_600090D6: ; CODE XREF: sub_6000905A+72â†j
tst.l 4(a4)
beq.s loc_600090E6
move.l 4(a4),d0
cmp.l var_6A(a6),d0
bne.s loc_60009108
loc_600090E6: ; CODE XREF: sub_6000905A+80â†j
moveq #0,d0
move.b $E(a4),d0
tst.l d0
bls.s loc_6000910A
subq.l #2,sp
pea $E(a4)
move.l var_7C(a6),-(sp)
moveq #0,d0
move.b d0,-(sp)
move.b d0,-(sp)
jsr sub_60003162
tst.b (sp)+
bne.s loc_6000910A
loc_60009108: ; CODE XREF: sub_6000905A+7Aâ†j
; sub_6000905A+8Aâ†j
clr.b d6
loc_6000910A: ; CODE XREF: sub_6000905A+94â†j
; sub_6000905A+ACâ†j
tst.b d6
beq.s loc_60009174
tst.l 8(a4)
beq.s loc_60009174
clr.b d6
moveq #0,d0
move.b d0,-(sp)
dc.w $A99B ; _SetResLoad
subq.l #2,sp
move.w var_78(a6),-(sp)
move.l var_2A(a6),-(sp)
move.l var_7C(a6),-(sp)
moveq #1,d0
move.b d0,-(sp)
dc.w $A81A ; _HOpenResFile
move.w (sp)+,d4
moveq #1,d0
move.b d0,-(sp)
dc.w $A99B ; _SetResLoad
tst.w d4
ble.s loc_60009174
subq.l #4,sp
move.l #$76657273,-(sp)
moveq #1,d0
move.w d0,-(sp)
dc.w $A81F ; _Get1Resource
movea.l (sp)+,a3
moveq #0,d0
move.l d0,var_98(a6)
move.l a3,d1
beq.s loc_60009170
tst.l (a3)
bne.s loc_6000915E
move.l a3,-(sp)
dc.w $A9A2 ; _LoadResource ; come-from patches = #1
loc_6000915E: ; CODE XREF: sub_6000905A+FEâ†j
tst.l (a3)
beq.s loc_60009170
movea.l (a3),a0
move.l (a0),d0
cmp.l 8(a4),d0
sls d3
neg.b d3
move.b d3,d6
loc_60009170: ; CODE XREF: sub_6000905A+FAâ†j
; sub_6000905A+106â†j
move.w d4,-(sp)
dc.w $A99A ; _CloseResFile
loc_60009174: ; CODE XREF: sub_6000905A+B2â†j
; sub_6000905A+B8â†j ...
tst.b d6
beq.w loc_6000923C
tst.w $C(a4)
beq.s loc_60009188
move.w $C(a4),-(sp)
jsr sub_600065B4
loc_60009188: ; CODE XREF: sub_6000905A+124â†j
subq.l #2,sp
move.w var_78(a6),-(sp)
move.l arg_4(a6),-(sp)
moveq #1,d0
move.b d0,-(sp)
pea var_94(a6)
pea var_92(a6)
moveq #0,d0
dc.w $A823 ; _AliasDispatch
move.w (sp)+,d7
bne.s loc_600091CC
move.w var_78(a6),d0
cmp.w var_94(a6),d0
bne.s loc_600091CC
subq.l #2,sp
move.w var_78(a6),-(sp)
move.l var_2A(a6),-(sp)
move.l var_7C(a6),-(sp)
move.l var_92(a6),-(sp)
moveq #0,d0
move.l d0,-(sp)
jsr sub_6000335C
move.w (sp)+,d7
loc_600091CC: ; CODE XREF: sub_6000905A+14Aâ†j
; sub_6000905A+154â†j
tst.w d7
beq.s loc_60009216
subq.l #2,sp
move.w var_78(a6),-(sp)
move.l #$74727368,-(sp)
moveq #1,d0
move.b d0,-(sp)
pea var_94(a6)
pea var_92(a6)
moveq #0,d0
dc.w $A823 ; _AliasDispatch
move.w (sp)+,d7
bne.s loc_60009216
move.w var_78(a6),d0
cmp.w var_94(a6),d0
bne.s loc_60009216
subq.l #2,sp
move.w var_78(a6),-(sp)
move.l var_2A(a6),-(sp)
move.l var_7C(a6),-(sp)
move.l var_92(a6),-(sp)
moveq #0,d0
move.l d0,-(sp)
jsr sub_6000335C
move.w (sp)+,d7
loc_60009216: ; CODE XREF: sub_6000905A+174â†j
; sub_6000905A+194â†j ...
tst.w d7
beq.s loc_6000922E
subq.l #2,sp
move.w var_78(a6),-(sp)
move.l var_2A(a6),-(sp)
move.l var_7C(a6),-(sp)
jsr sub_600032FA
move.w (sp)+,d7
loc_6000922E: ; CODE XREF: sub_6000905A+1BEâ†j
tst.w d7
bne.s loc_60009252
move.w var_72(a6),d0
subq.w #1,var_72(a6)
bra.s loc_60009252
; ---------------------------------------------------------------------------
loc_6000923C: ; CODE XREF: sub_6000905A+11Câ†j
move.w d5,d0
addq.w #1,d5
loc_60009240: ; CODE XREF: sub_6000905A+4Aâ†j
moveq #0,d0
move.w d5,d0
tst.l d0
movea.l arg_0(a6),a0
movea.l (a0),a0
cmp.l (a0),d0
bcs.w loc_600090A8
loc_60009252: ; CODE XREF: sub_6000905A+34â†j
; sub_6000905A+44â†j ...
move.w var_72(a6),d0
addq.w #1,var_72(a6)
tst.w var_2(a6)
beq.w loc_6000907C
movea.l arg_0(a6),a0
dc.w $A02A ; _HUnlock
movem.l var_B4(a6),d3-d7/a3-a4
unlk a6
movea.l (sp)+,a0
lea $E(sp),sp
jmp (a0)
; End of function sub_6000905A
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60009278: ; CODE XREF: ROM:60000E5Eâ†p
var_E set -$E
var_6 set -6
var_4 set -4
link a6,#-6
movem.l d7/a4,-(sp)
moveq #1,d7
bra.w loc_60009344
; ---------------------------------------------------------------------------
loc_60009286: ; CODE XREF: sub_60009278+D8↓j
subq.l #4,sp
move.l #'disf',-(sp)
move.w d7,-(sp)
dc.w $A99D ; _GetIndResource
movea.l (sp)+,a4
move.l a4,d0
beq.w loc_60009340
tst.l (a4)
beq.w loc_60009340
subq.l #2,sp
move.w #$8000,-(sp)
move.l #'extn',-(sp)
moveq #0,d0
move.b d0,-(sp)
pea var_6(a6)
pea var_4(a6)
moveq #0,d0
dc.w $A823 ; _AliasDispatch
tst.w (sp)+
bne.s loc_600092D4
move.w var_6(a6),-(sp)
move.l var_4(a6),-(sp)
move.l #'extD',-(sp)
move.l a4,-(sp)
jsr sub_6000905A
loc_600092D4: ; CODE XREF: sub_60009278+46â†j
subq.l #2,sp
move.w #$8000,-(sp)
move.l #'ctrl',-(sp)
moveq #0,d0
move.b d0,-(sp)
pea var_6(a6)
pea var_4(a6)
moveq #0,d0
dc.w $A823 ; _AliasDispatch
tst.w (sp)+
bne.s loc_60009308
move.w var_6(a6),-(sp)
move.l var_4(a6),-(sp)
move.l #$63747244,-(sp)
move.l a4,-(sp)
jsr sub_6000905A
loc_60009308: ; CODE XREF: sub_60009278+7Aâ†j
subq.l #2,sp
move.w #$8000,-(sp)
move.l #'macs',-(sp)
moveq #0,d0
move.b d0,-(sp)
pea var_6(a6)
pea var_4(a6)
moveq #0,d0
dc.w $A823 ; _AliasDispatch
tst.w (sp)+
bne.s loc_6000933C
move.w var_6(a6),-(sp)
move.l var_4(a6),-(sp)
move.l #'macD',-(sp)
move.l a4,-(sp)
jsr sub_6000905A
loc_6000933C: ; CODE XREF: sub_60009278+AEâ†j
move.l a4,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_60009340: ; CODE XREF: sub_60009278+1Eâ†j
; sub_60009278+24â†j
move.w d7,d0
addq.w #1,d7
loc_60009344: ; CODE XREF: sub_60009278+Aâ†j
subq.l #2,sp
move.l #'disf',-(sp)
dc.w $A99C ; _CountResources
cmp.w (sp)+,d7
ble.w loc_60009286
movem.l var_E(a6),d7/a4
unlk a6
rts
; End of function sub_60009278
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
_ReplaceBridgeVideoDriver: ; CODE XREF: ROM:6000044Câ†p
var_116 set -$116
var_10A set -$10A
var_105 set -$105
var_104 set -$104
var_100 set -$100
link a6,#-$10A
movem.l d7/a3-a4,-(sp)
subq.l #4,sp
move.l #'cofb',-(sp)
move.w #$B1BE,-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_600093F8
subq.l #4,sp
move.l a4,-(sp)
dc.w $A9A5 ; _GetResourceSizeOnDisk
move.l (sp)+,d7
move.l a4,-(sp)
dc.w $A992 ; _DetachResource
movea.l a4,a0
dc.w $A029 ; _HLock
dc.w $A11A ; _GetZone
movea.l a0,a3
subq.l #4,sp
; ---------------------------------------------------------------------------
dc.b $2E
dc.b $B8
dc.b 2
dc.b $A6
; ---------------------------------------------------------------------------
movea.l (sp)+,a0
dc.w $A01B ; _SetZone
subq.l #2,sp
move.l (a4),-(sp)
move.l d7,-(sp)
pea aReplacebridgev ; "\x1BReplaceBridgeVideoDriverLib"
moveq #1,d0
move.l d0,-(sp)
pea var_104(a6)
moveq #0,d1
move.l d1,-(sp)
pea var_100(a6)
move.w #3,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
tst.w (sp)+
bne.s loc_600093EC
subq.l #2,sp
move.l var_104(a6),-(sp)
pea aReplacebridgev_0 ; "ReplaceBridgeVideoDriver"
pea var_10A(a6)
pea var_105(a6)
move.w #5,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
tst.w (sp)+
bne.s loc_600093DE
movea.l var_10A(a6),a0
jsr (a0)
loc_600093DE: ; CODE XREF: _ReplaceBridgeVideoDriver+78â†j
subq.l #2,sp
pea var_104(a6)
move.w #4,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
addq.w #2,sp
loc_600093EC: ; CODE XREF: _ReplaceBridgeVideoDriver+5Câ†j
movea.l a4,a0
dc.w $A02A ; _HUnlock
movea.l a4,a0
dc.w $A023 ; _DisposeHandle
movea.l a3,a0
dc.w $A01B ; _SetZone
loc_600093F8: ; CODE XREF: _ReplaceBridgeVideoDriver+1Aâ†j
movem.l var_116(a6),d7/a3-a4
unlk a6
rts
; End of function _ReplaceBridgeVideoDriver
; ---------------------------------------------------------------------------
aReplacebridgev_0:dc.b 24,'ReplaceBridgeVideoDriver'
; DATA XREF: _ReplaceBridgeVideoDriver+64â†o
dc.b 0
aReplacebridgev:dc.b $1B,'ReplaceBridgeVideoDriverLib',0
; DATA XREF: _ReplaceBridgeVideoDriver+40â†o
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
DisableEDiskIfNotEnoughRAM: ; CODE XREF: ROM:j_DisableEDiskIfNotEnoughRAMâ†j
var_1A set -$1A
var_E set -$E
var_A set -$A
var_6 set -6
var_1 set -1
link a6,#-$E
movem.l d7/a3-a4,-(sp)
moveq #0,d0
movea.l d0,a4
move.l #'ram ',d0
lea var_A(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
move.w d0,d7
bne.w loc_60009534
lea var_1(a6),a0
move.l #$100AF,d0
dc.w $A051 ; _ReadXPRam
move.w d0,d7
bne.w loc_60009534
moveq #0,d0
move.b var_1(a6),d0
tst.l d0
beq.w loc_60009534
moveq #0,d0
move.b var_1(a6),d0
move.l var_A(a6),d1
asr.l #8,d1
jsr sub_6000D786
sub.l d0,var_A(a6)
move.l #'rrpm',d0
lea var_E(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
move.w d0,d7
beq.s loc_600094CE
moveq #0,d0
move.l d0,var_E(a6)
move.l #'mach',d0
lea var_6(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
tst.w d0
bne.s loc_600094CE
cmpi.l #$196,var_6(a6)
bne.s loc_600094CE
move.l #$400000,var_E(a6)
loc_600094CE: ; CODE XREF: DisableEDiskIfNotEnoughRAM+66â†j
; DisableEDiskIfNotEnoughRAM+80â†j ...
subq.l #4,sp
move.l #'mnrm',-(sp)
moveq #0,d0
move.w d0,-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_60009534
movea.l (a4),a3
move.l #'vm ',d0
lea var_6(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
move.w d0,d7
bne.s loc_60009508
moveq #1,d0
and.l var_6(a6),d0
beq.s loc_60009508
move.l (a3),d0
add.l d0,var_E(a6)
bra.s loc_60009510
; ---------------------------------------------------------------------------
loc_60009508: ; CODE XREF: DisableEDiskIfNotEnoughRAM+BCâ†j
; DisableEDiskIfNotEnoughRAM+C4â†j
move.l $C(a3),d0
add.l d0,var_E(a6)
loc_60009510: ; CODE XREF: DisableEDiskIfNotEnoughRAM+CCâ†j
move.l a4,-(sp)
dc.w $A9A3 ; _ReleaseResource
moveq #0,d0
movea.l d0,a4
move.l var_E(a6),d1
cmp.l var_A(a6),d1
ble.s loc_60009534
lea var_1(a6),a0
clr.b (a0)
move.l #$100AF,d0
dc.w $A052 ; _WriteXPRam
moveq #$7A,d0 ; 'z'
dc.w $A9C9 ; _SysError
loc_60009534: ; CODE XREF: DisableEDiskIfNotEnoughRAM+1Eâ†j
; DisableEDiskIfNotEnoughRAM+30â†j ...
movem.l var_1A(a6),d7/a3-a4
unlk a6
rts
; End of function DisableEDiskIfNotEnoughRAM
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000953E: ; CODE XREF: sub_600095D4+28↓p
var_8 set -8
arg_0 set 8
link a6,#0
movem.l d7/a4,-(sp)
moveq #0,d0
movea.l d0,a4
subq.l #2,sp
dc.w $A994 ; _CurResFile
move.w (sp)+,d7
moveq #1,d0
move.b d0,-(sp)
dc.w $A99B ; _SetResLoad
moveq #0,d0
move.w d0,-(sp)
dc.w $A998 ; _UseResFile
subq.l #4,sp
move.l #$6674736B,-(sp)
moveq #1,d0
move.w d0,-(sp)
dc.w $A81F ; _Get1Resource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_60009598
tst.l (a4)
beq.s loc_60009586
movea.l (a4),a0
moveq #1,d0
cmp.l (a0),d0
bne.s loc_60009586
moveq #0,d0
move.w $C(a0),d0
tst.l d0
bne.s loc_60009590
loc_60009586: ; CODE XREF: sub_6000953E+34â†j
; sub_6000953E+3Câ†j
move.l a4,-(sp)
dc.w $A9A3 ; _ReleaseResource
moveq #0,d0
movea.l d0,a4
bra.s loc_60009598
; ---------------------------------------------------------------------------
loc_60009590: ; CODE XREF: sub_6000953E+46â†j
move.l a4,-(sp)
dc.w $A992 ; _DetachResource
movea.l a4,a0
dc.w $A029 ; _HLock
loc_60009598: ; CODE XREF: sub_6000953E+30â†j
; sub_6000953E+50â†j
move.l a4,arg_0(a6)
movem.l var_8(a6),d7/a4
unlk a6
rts
; End of function sub_6000953E
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600095A6: ; CODE XREF: ROM:60001670â†p
var_8 set -8
arg_0 set 8
link a6,#0
movem.l a3-a4,-(sp)
movea.l arg_0(a6),a3
movea.l (a3),a4
move.l a4,d0
beq.s loc_600095C8
; ---------------------------------------------------------------------------
dc.b $B9
dc.b $FC
dc.b $FF
dc.b $FF
dc.b $FF
dc.b $FF
; ---------------------------------------------------------------------------
beq.s loc_600095C8
movea.l a4,a0
dc.w $A023 ; _DisposeHandle
moveq #0,d0
move.l d0,(a3)
loc_600095C8: ; CODE XREF: sub_600095A6+10â†j
; sub_600095A6+18â†j
movem.l var_8(a6),a3-a4
unlk a6
move.l (sp)+,(sp)
rts
; End of function sub_600095A6
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600095D4: ; CODE XREF: sub_60001A7A+82â†p
var_22 set -$22
var_6 set -6
var_2 set -2
arg_0 set 8
arg_4 set $C
arg_8 set $10
arg_C set $14
arg_E set $16
arg_12 set $1A
arg_16 set $1E
link a6,#-6
movem.l d3-d7/a3-a4,-(sp)
movea.l arg_0(a6),a3
move.l (a3),var_6(a6)
moveq #0,d0
movea.l d0,a4
clr.b d6
clr.b d7
tst.l var_6(a6)
beq.s loc_600095FA
moveq #$FFFFFFFF,d0
cmp.l var_6(a6),d0
bne.s loc_60009626
loc_600095FA: ; CODE XREF: sub_600095D4+1Câ†j
subq.l #4,sp
jsr sub_6000953E
move.l (sp)+,var_6(a6)
bne.s loc_60009610
move.b #1,arg_16(a6)
bra.w loc_600096FE
; ---------------------------------------------------------------------------
loc_60009610: ; CODE XREF: sub_600095D4+30â†j
movea.l var_6(a6),a0
tst.l (a0)
bne.s loc_60009622
move.b #1,arg_16(a6)
bra.w loc_600096FE
; ---------------------------------------------------------------------------
loc_60009622: ; CODE XREF: sub_600095D4+42â†j
move.l var_6(a6),(a3)
loc_60009626: ; CODE XREF: sub_600095D4+24â†j
movea.l var_6(a6),a0
movea.l (a0),a0
move.w $C(a0),var_2(a6)
moveq #0,d0
move.w var_2(a6),d0
tst.l d0
bne.s loc_60009646
move.b #1,arg_16(a6)
bra.w loc_600096FE
; ---------------------------------------------------------------------------
loc_60009646: ; CODE XREF: sub_600095D4+66â†j
clr.w d5
movea.l var_6(a6),a0
movea.l (a0),a0
lea $E(a0),a4
bra.w loc_600096E6
; ---------------------------------------------------------------------------
loc_60009656: ; CODE XREF: sub_600095D4+116↓j
tst.l (a4)
beq.s loc_60009676
move.l (a4),d0
cmp.l arg_12(a6),d0
bne.s loc_60009676
tst.l 4(a4)
beq.s loc_60009676
move.l 4(a4),d0
cmp.l arg_E(a6),d0
bne.s loc_60009676
moveq #1,d6
moveq #1,d7
loc_60009676: ; CODE XREF: sub_600095D4+84â†j
; sub_600095D4+8Câ†j ...
tst.b d6
beq.s loc_600096DA
tst.l $C(a4)
beq.s loc_600096DA
clr.b d7
moveq #0,d0
move.b d0,-(sp)
dc.w $A99B ; _SetResLoad
subq.l #2,sp
move.w arg_C(a6),-(sp)
move.l arg_8(a6),-(sp)
move.l arg_4(a6),-(sp)
moveq #1,d0
move.b d0,-(sp)
dc.w $A81A ; _HOpenResFile
move.w (sp)+,d4
moveq #1,d0
move.b d0,-(sp)
dc.w $A99B ; _SetResLoad
tst.w d4
ble.s loc_600096DA
subq.l #4,sp
move.l #$76657273,-(sp)
moveq #1,d0
move.w d0,-(sp)
dc.w $A81F ; _Get1Resource
movea.l (sp)+,a3
move.l a3,d0
beq.s loc_600096D6
tst.l (a3)
bne.s loc_600096C4
move.l a3,-(sp)
dc.w $A9A2 ; _LoadResource ; come-from patches = #1
loc_600096C4: ; CODE XREF: sub_600095D4+EAâ†j
tst.l (a3)
beq.s loc_600096D6
movea.l (a3),a0
move.l (a0),d0
cmp.l $C(a4),d0
sls d3
neg.b d3
move.b d3,d7
loc_600096D6: ; CODE XREF: sub_600095D4+E6â†j
; sub_600095D4+F2â†j
move.w d4,-(sp)
dc.w $A99A ; _CloseResFile
loc_600096DA: ; CODE XREF: sub_600095D4+A4â†j
; sub_600095D4+AAâ†j ...
tst.b d6
bne.s loc_600096EE
move.w d5,d0
addq.w #1,d5
lea $32(a4),a4
loc_600096E6: ; CODE XREF: sub_600095D4+7Eâ†j
cmp.w var_2(a6),d5
bcs.w loc_60009656
loc_600096EE: ; CODE XREF: sub_600095D4+108â†j
tst.b d7
beq.s loc_600096F8
clr.b arg_16(a6)
bra.s loc_600096FE
; ---------------------------------------------------------------------------
loc_600096F8: ; CODE XREF: sub_600095D4+11Câ†j
move.b #1,arg_16(a6)
loc_600096FE: ; CODE XREF: sub_600095D4+38â†j
; sub_600095D4+4Aâ†j ...
movem.l var_22(a6),d3-d7/a3-a4
unlk a6
movea.l (sp)+,a0
lea $16(sp),sp
jmp (a0)
; End of function sub_600095D4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
GetSysVersion: ; CODE XREF: ROM:60000992â†p
var_10 set -$10
var_8 set -8
var_4 set -4
arg_0 set 8
link a6,#-8
movem.l d7/a4,-(sp)
subq.l #4,sp
move.l #'vers',-(sp)
moveq #1,d0
move.w d0,-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a4
move.l a4,d0
bne.s loc_60009732
moveq #0,d0
move.l d0,arg_0(a6)
bra.s loc_60009786
; ---------------------------------------------------------------------------
loc_60009732: ; CODE XREF: GetSysVersion+1Aâ†j
movea.l (a4),a0
move.l (a0),var_8(a6)
move.l a4,-(sp)
dc.w $A9A3 ; _ReleaseResource
move.l #'bbox',d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
tst.w d0
bne.s loc_60009780
moveq #1,d0
and.l var_4(a6),d0
beq.s loc_60009780
move.w ($A5A).w,d7
move.w ($A58).w,($A5A).w
subq.l #4,sp
move.l #'vers',-(sp)
moveq #1,d0
move.w d0,-(sp)
dc.w $A81F ; _Get1Resource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_6000977C
movea.l (a4),a0
move.l (a0),var_8(a6)
loc_6000977C: ; CODE XREF: GetSysVersion+66â†j
move.w d7,($A5A).w
loc_60009780: ; CODE XREF: GetSysVersion+40â†j
; GetSysVersion+48â†j
move.l var_8(a6),arg_0(a6)
loc_60009786: ; CODE XREF: GetSysVersion+22â†j
movem.l var_10(a6),d7/a4
unlk a6
rts
; End of function GetSysVersion
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60009790: ; CODE XREF: ROM:600016D8â†p
var_C set -$C
var_4 set -4
link a6,#-4
movem.l a3-a4,-(sp)
move.l #$62626F78,d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
tst.w d0
bne.s loc_600097DA
moveq #1,d0
and.l var_4(a6),d0
beq.s loc_600097DA
subq.l #4,sp
move.l #$676E6874,-(sp)
move.w #$8FFF,-(sp)
dc.w $A81F ; _Get1Resource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_600097DA
subq.l #4,sp
move.l a4,-(sp)
moveq #1,d0
move.w d0,-(sp)
moveq #$12,d0
dc.w $A82A ; _ComponentDispatch
movea.l (sp)+,a3
move.l a4,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_600097DA: ; CODE XREF: sub_60009790+1Aâ†j
; sub_60009790+22â†j ...
movem.l var_C(a6),a3-a4
unlk a6
rts
; End of function sub_60009790
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_600097E4: ; CODE XREF: SetSplitOSGestalt+22↓p
var_C set -$C
arg_0 set 8
arg_4 set $C
link a6,#0
movem.l d7/a3-a4,-(sp)
movea.l arg_0(a6),a3
subq.l #4,sp
move.w #$BFE3,-(sp)
dc.w $A9BA ; _GetString
movea.l (sp)+,a4
moveq #0,d7
move.l a4,d0
beq.s loc_60009840
subq.l #2,sp
dc.w $A9AF ; _ResError
tst.w (sp)+
bne.s loc_60009840
move.l a4,d0
bne.s loc_60009810
move.l a4,-(sp)
dc.w $A9A2 ; _LoadResource ; come-from patches = #1
loc_60009810: ; CODE XREF: sub_600097E4+26â†j
subq.l #2,sp
dc.w $A9AF ; _ResError
tst.w (sp)+
bne.s loc_60009840
move.l a4,d0
beq.s loc_60009840
tst.l (a4)
beq.s loc_60009840
subq.l #2,sp
move.l a3,-(sp)
move.l (a4),-(sp)
jsr sub_60003394
tst.w (sp)+
beq.s loc_6000983E
subq.l #4,sp
move.l (a4),-(sp)
move.l a3,-(sp)
jsr sub_600033D2
move.l a4,-(sp)
dc.w $A9AA ; _ChangedResource
addq.w #4,sp
loc_6000983E: ; CODE XREF: sub_600097E4+48â†j
moveq #1,d7
loc_60009840: ; CODE XREF: sub_600097E4+1Aâ†j
; sub_600097E4+22â†j ...
move.l d7,arg_4(a6)
movem.l var_C(a6),d7/a3-a4
unlk a6
move.l (sp)+,(sp)
rts
; End of function sub_600097E4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60009850: ; CODE XREF: SetSplitOSGestalt+C↓p
var_17E set -$17E
var_16A set -$16A
var_166 set -$166
var_161 set -$161
var_160 set -$160
var_11C set -$11C
var_118 set -$118
var_18 set -$18
var_8 set -8
var_4 set -4
arg_0 set 8
link a6,#-$16A
movem.l d6-d7/a2-a4,-(sp)
movea.l arg_0(a6),a4
moveq #$FFFFFFFF,d6
move.l a4,d0
bne.s loc_60009868
moveq #$FFFFFFCE,d0
bra.w loc_6000998A
; ---------------------------------------------------------------------------
loc_60009868: ; CODE XREF: sub_60009850+10â†j
clr.b (a4)
move.l #$6E726567,d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
move.w d0,d6
bne.w loc_60009988
lea unk_600099AA,a0
lea var_160(a6),a1
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.b (a0),(a1)
lea aAaplMacosmachi,a3 ; "AAPL,MacOSMachineName"
moveq #0,d0
movea.l d0,a2
move.l #$63667267,d0
lea var_8(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
tst.w d0
bne.w loc_60009988
moveq #1,d0
and.l var_8(a6),d0
beq.w loc_60009988
subq.l #2,sp
pea var_160(a6)
move.l #$70777063,-(sp)
moveq #2,d0
move.l d0,-(sp)
move.l a2,-(sp)
pea var_11C(a6)
pea var_118(a6)
move.w #1,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d6
bne.w loc_60009988
moveq #$1F,d0
move.l d0,var_16A(a6)
clr.b var_161(a6)
pea var_18(a6)
moveq #0,d0
dc.w $ABE9
pea var_166(a6)
moveq #7,d0
dc.w $ABE9
move.w d0,d6
addq.w #8,sp
bne.s loc_6000992A
moveq #0,d0
move.l d0,-(sp)
move.l d0,-(sp)
move.l a3,-(sp)
pea var_161(a6)
pea var_18(a6)
moveq #5,d0
move.l d0,-(sp)
pea var_166(a6)
moveq #$B,d0
dc.w $ABE9
move.w d0,d6
pea var_166(a6)
moveq #8,d0
dc.w $ABE9
lea $20(sp),sp
loc_6000992A: ; CODE XREF: sub_60009850+AEâ†j
tst.b var_161(a6)
bne.s loc_6000997E
tst.w d6
bne.s loc_6000997E
pea var_16A(a6)
pea 1(a4)
move.l a3,-(sp)
pea var_18(a6)
moveq #$17,d0
dc.w $ABE9
move.w d0,d6
lea $10(sp),sp
bne.s loc_6000997E
tst.l var_16A(a6)
bls.s loc_6000997E
moveq #$1F,d0
cmp.l var_16A(a6),d0
bcc.s loc_60009962
moveq #$1F,d0
move.l d0,var_16A(a6)
loc_60009962: ; CODE XREF: sub_60009850+10Aâ†j
move.w var_16A+2(a6),d7
subq.w #1,d7
bra.s loc_6000996E
; ---------------------------------------------------------------------------
loc_6000996A: ; CODE XREF: sub_60009850+12A↓j
move.w d7,d0
subq.w #1,d7
loc_6000996E: ; CODE XREF: sub_60009850+118â†j
tst.w d7
ble.s loc_6000997C
moveq #0,d0
move.b (a4,d7.w),d0
tst.l d0
beq.s loc_6000996A
loc_6000997C: ; CODE XREF: sub_60009850+120â†j
move.b d7,(a4)
loc_6000997E: ; CODE XREF: sub_60009850+DEâ†j
; sub_60009850+E2â†j ...
pea var_18(a6)
moveq #3,d0
dc.w $ABE9
addq.w #4,sp
loc_60009988: ; CODE XREF: sub_60009850+2Câ†j
; sub_60009850+5Câ†j ...
move.w d6,d0
loc_6000998A: ; CODE XREF: sub_60009850+14â†j
movem.l var_17E(a6),d6-d7/a2-a4
unlk a6
rts
; End of function sub_60009850
; ---------------------------------------------------------------------------
aAaplMacosmachi:dc.b 'AAPL,MacOSMachineName',0
; DATA XREF: sub_60009850+42â†o
unk_600099AA: dc.b $F ; DATA XREF: sub_60009850+30â†o
dc.b $4E ; N
dc.b $61 ; a
dc.b $6D ; m
dc.b $65 ; e
dc.b $52 ; R
dc.b $65 ; e
dc.b $67 ; g
dc.b $69 ; i
dc.b $73 ; s
dc.b $74 ; t
dc.b $72 ; r
dc.b $79 ; y
dc.b $4C ; L
dc.b $69 ; i
dc.b $62 ; b
dc.b 0
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
SetSplitOSGestalt: ; CODE XREF: ROM:j_SetSplitOSGestaltâ†j
var_28 set -$28
var_24 set -$24
var_20 set -$20
link a6,#-$24
move.l a4,-(sp)
lea var_20(a6),a4
move.l a4,-(sp)
jsr sub_60009850
tst.w d0
addq.w #4,sp
bne.s loc_60009A30
moveq #0,d0
move.b (a4),d0
tst.l d0
bls.s loc_60009A30
subq.l #4,sp
move.l a4,-(sp)
jsr sub_600097E4
tst.l (sp)+
beq.s loc_60009A30
moveq #0,d0
move.l d0,var_24(a6)
move.l #'spos',d0
lea var_24(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
tst.w d0
beq.s loc_60009A14
subq.l #2,sp
move.l #'spos',-(sp)
move.l var_24(a6),-(sp)
move.w #$401,d0
dc.w $ABF1 ; _GestaltValueDispatch
addq.w #2,sp
loc_60009A14: ; CODE XREF: SetSplitOSGestalt+42â†j
ori.l #8,var_24(a6)
subq.l #2,sp
move.l #'spos',-(sp)
move.l var_24(a6),-(sp)
move.w #$402,d0
dc.w $ABF1 ; _GestaltValueDispatch
addq.w #2,sp
loc_60009A30: ; CODE XREF: SetSplitOSGestalt+14â†j
; SetSplitOSGestalt+1Câ†j ...
movea.l var_28(a6),a4
unlk a6
rts
; End of function SetSplitOSGestalt
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
_LoadMultitaskingNanoKernel: ; CODE XREF: ROM:j__LoadMultitaskingNanoKernelâ†j
var_3C set -$3C
arg_B0 set $B8
arg_D0 set $D8
arg_D8 set $E0
arg_E0 set $E8
arg_E8 set $F0
arg_F0 set $F8
link a6,#0
movem.l d0-d7/a0-a3,-(sp)
move.l #'bbox',d0
dc.w $A1AD ; _Gestalt
bne.w loc_60009A56
move.l a0,d0
btst #0,d0
bne.w loc_60009BB6
loc_60009A56: ; CODE XREF: _LoadMultitaskingNanoKernel+10â†j
subq.w #4,sp
move.l #'krnl',-(sp)
clr.w -(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a3
move.l a3,d0
beq.w loc_60009BB6
movea.l #$68FFE000,a0
move.w $FE4(a0),d0
movea.l (a3),a0
cmp.w 4(a0),d0
bge.w loc_60009BB2
movea.l a3,a0
dc.w $A025 ; _GetHandleSize
move.l d0,d7
addi.l #$FFF,d7
andi.l #$FFFFF000,d7
movea.l (a3),a0
move.w 6(a0),d6
ext.l d6
lsl.l #8,d6
lsl.l #4,d6
add.l d7,d6
move.w 8(a0),d5
cmpi.w #$4000,d5
blt.s loc_60009AAA
clr.w d5
loc_60009AAA: ; CODE XREF: _LoadMultitaskingNanoKernel+6Eâ†j
ext.l d5
move.l ($108).w,d0
lsr.l #8,d0
lsr.l #8,d0
lsr.l #4,d0
mulu.l d0,d5
add.l d5,d6
move.l a3,-(sp)
dc.w $A9A3 ; _ReleaseResource
move.l d6,d0
addi.l #$1000,d0
dc.w $A71E ; _NewPtrSysClear
move.l a0,d0
beq.w loc_60009BE2
addi.l #$FFF,d0
andi.l #$FFFFF000,d0
movea.l d0,a2
movea.l a2,a0
movea.l d6,a1
moveq #4,d0
; ---------------------------------------------------------------------------
dc.b $A0
dc.b $5C ; \
; ---------------------------------------------------------------------------
tst.w d0
bne.w loc_60009BD6
subq.w #4,sp
move.l #$6B726E6C,-(sp)
clr.w -(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a3
move.l a3,d0
beq.w loc_60009BDC
move.l d7,d0
movea.l (a3),a0
movea.l a2,a1
dc.w $A22E ; _BlockMoveData
movea.l a2,a0
move.l d7,d0
; ---------------------------------------------------------------------------
dc.b $FE
dc.b $C
; ---------------------------------------------------------------------------
nop
movea.l a2,a0
move.l d7,d0
; ---------------------------------------------------------------------------
dc.b $FE
dc.b $B
; ---------------------------------------------------------------------------
nop
movea.l sp,a0
move.l sp,d0
andi.w #$FC00,d0
movea.l d0,sp
move.w #$BF,d0
loc_60009B26: ; CODE XREF: _LoadMultitaskingNanoKernel+F0↓j
clr.l -(sp)
dbf d0,loc_60009B26
move.l a0,$44+var_3C(sp)
move.l a2,d0
move.l a2,$44+arg_B0(sp)
lsr.l #8,d0
lsr.l #4,d0
movea.l d0,a0
moveq #$A,d0
; ---------------------------------------------------------------------------
dc.b $FE
dc.b $A
; ---------------------------------------------------------------------------
lsl.l #8,d0
lsl.l #4,d0
move.l d0,$44+arg_D0(sp)
move.l a2,d0
add.l d7,d0
lsr.l #8,d0
lsr.l #4,d0
movea.l d0,a0
moveq #$A,d0
; ---------------------------------------------------------------------------
dc.b $FE
dc.b $A
; ---------------------------------------------------------------------------
lsl.l #8,d0
lsl.l #4,d0
move.l d0,$44+arg_D8(sp)
move.l a2,d0
add.l d6,d0
lsr.l #8,d0
lsr.l #4,d0
subq.l #1,d0
movea.l d0,a0
moveq #$A,d0
; ---------------------------------------------------------------------------
dc.b $FE
dc.b $A
; ---------------------------------------------------------------------------
lsl.l #8,d0
lsl.l #4,d0
move.l d0,$44+arg_E8(sp)
movea.l ($2AE).w,a0
moveq #0,d0
move.w $12(a0),d0
move.l d0,$44+arg_F0(sp)
move.l ($1D8).w,d0
move.l d0,$44+arg_E0(sp)
movem.l ($174).w,d0-d3
or.l d2,d0
or.l d3,d0
bne.s loc_60009BA0
cmpi.l #$800,d1
beq.s loc_60009BAE
loc_60009BA0: ; CODE XREF: _LoadMultitaskingNanoKernel+15Eâ†j
jsr loc_60009C28
bne.w loc_60009BAE
move.l sp,-(sp)
; ---------------------------------------------------------------------------
dc.b $FE
dc.b 3
; ---------------------------------------------------------------------------
addq.l #4,sp
loc_60009BAE: ; CODE XREF: _LoadMultitaskingNanoKernel+166â†j
; _LoadMultitaskingNanoKernel+16Câ†j
movea.l 8(sp),sp
loc_60009BB2: ; CODE XREF: _LoadMultitaskingNanoKernel+42â†j
move.l a3,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_60009BB6: ; CODE XREF: _LoadMultitaskingNanoKernel+1Aâ†j
; _LoadMultitaskingNanoKernel+2Eâ†j
movea.l #$68FFF000,a0
move.l $1D8(a0),d1
beq.s loc_60009BCE
clr.l $1D8(a0)
moveq #5,d0
; ---------------------------------------------------------------------------
dc.b $FE
dc.b 4
; ---------------------------------------------------------------------------
move.l d1,$D8(a0)
loc_60009BCE: ; CODE XREF: _LoadMultitaskingNanoKernel+188â†j
movem.l (sp)+,d0-d7/a0-a3
unlk a6
rts
; ---------------------------------------------------------------------------
loc_60009BD6: ; CODE XREF: _LoadMultitaskingNanoKernel+B0â†j
move.w #$29A,d0
dc.w $A9C9 ; _SysError
loc_60009BDC: ; CODE XREF: _LoadMultitaskingNanoKernel+C4â†j
move.w #$29B,d0
dc.w $A9C9 ; _SysError
loc_60009BE2: ; CODE XREF: _LoadMultitaskingNanoKernel+94â†j
move.w #$29C,d0
dc.w $A9C9 ; _SysError
; ---------------------------------------------------------------------------
dc.l $3C604761 ; lis r3, 'Ga' ; load the "skeleton key"
dc.l $60637279 ; ori r3, r3, 'ry'
dc.l $3C800505 ; lis r4, $0505
dc.l $60841956 ; ori r4, r4, $1956
dc.l $6005C000 ; ori r5, r0 $C000 ; disable MSR[EE] and MSR[PR]
dc.l $3CE068FF ; lis r7, $68FF ; load logical base of emu trap table
dc.l $60E7E648 ; ori r7, r7, $E648
dc.l $80E70000 ; lwz r7, 0(r7)
dc.l $38E70008 ; addi r7, r7, 8 ; will jump to ResetSystem trap, i.e. trap 2
dc.l $7CE803A6 ; mtlr r7
dc.l $38E00000 ; li r7, 0
dc.l $4E800021 ; blrl
dc.l $63C36084 ; ori r3, r30, $6084
dc.l $7C6903A6 ; mtctr r3
dc.l $4E800420 ; bctr
dc.l 0
; ---------------------------------------------------------------------------
loc_60009C28: ; CODE XREF: _LoadMultitaskingNanoKernel:loc_60009BA0â†p
; DATA XREF: ROM:60009C42↓o
move.l ($68FFF998).l,d0
; End of function _LoadMultitaskingNanoKernel
cmp.l ($68FFF994).l,d0
bne.s locret_60009CA0
movea.l sp,a2
move.l sp,d0
andi.l #$FFFFFFFC,d0
movea.l d0,sp
lea loc_60009C28,a0
move.w #$F,d0
loc_60009C4A: ; CODE XREF: ROM:60009C4C↓j
move.l -(a0),-(sp)
dbf d0,loc_60009C4A
movea.l sp,a0
moveq #$40,d0 ; '@'
; ---------------------------------------------------------------------------
dc.b $FE
dc.b $D
; ---------------------------------------------------------------------------
nop
move.l #'mach',d0
dc.w $A1AD ; _Gestalt
move.l a0,d0
cmpi.w #$29,d0 ; ')'
beq.w loc_60009C72
cmpi.w #$2A,d0 ; '*'
bne.w loc_60009C82
loc_60009C72: ; CODE XREF: ROM:60009C66â†j
movea.l ($2AE).w,a0
move.l #$100000,d0
loc_60009C7C: ; CODE XREF: ROM:60009C80↓j
move.l (a0)+,d1
subq.l #4,d0
bne.s loc_60009C7C
loc_60009C82: ; CODE XREF: ROM:60009C6Eâ†j
movea.l sp,a0
moveq #$40,d0 ; '@'
; ---------------------------------------------------------------------------
dc.b $FE
dc.b $B
; ---------------------------------------------------------------------------
nop
move.l sp,($68FFF994).l
; ---------------------------------------------------------------------------
dc.b $FC
dc.b $1E
; ---------------------------------------------------------------------------
move.l ($68FFF998).l,($68FFF994).l
movea.l a2,sp
cmp.l d0,d0
locret_60009CA0: ; CODE XREF: ROM:60009C34â†j
rts
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_60009CA2: ; CODE XREF: InstallPatches+2CEâ†p
bra.w sub_6000B1C0
; End of function sub_60009CA2
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_60009CA6: ; CODE XREF: InstallPatches+2B0â†p
bra.w sub_6000B50A
; End of function sub_60009CA6
; ---------------------------------------------------------------------------
loc_60009CAA: ; CODE XREF: sub_6000A0BE+12E↓p
link a6,#-$22
movem.l d7/a4,-(sp)
movea.l 8(a6),a4
subq.l #2,sp
moveq #1,d0
move.l d0,-(sp)
move.l a4,-(sp)
pea unk_60009EBE
pea -$21(a6)
pea -$20(a6)
pea -$1C(a6)
move.w #$FFF6,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.w loc_60009E18
subq.l #2,sp
moveq #1,d0
move.l d0,-(sp)
move.l a4,-(sp)
pea unk_60009EAE
pea -$21(a6)
pea -$20(a6)
pea -$18(a6)
move.w #$FFF6,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.w loc_60009E18
subq.l #2,sp
moveq #1,d0
move.l d0,-(sp)
move.l a4,-(sp)
pea unk_60009E9A
pea -$21(a6)
pea -$20(a6)
pea -$10(a6)
move.w #$FFF6,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.w loc_60009E18
subq.l #2,sp
moveq #1,d0
move.l d0,-(sp)
move.l a4,-(sp)
pea unk_60009E8A
pea -$21(a6)
pea -$20(a6)
pea -$C(a6)
move.w #$FFF6,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.w loc_60009E18
subq.l #2,sp
moveq #1,d0
move.l d0,-(sp)
move.l a4,-(sp)
pea unk_60009E6A
pea -$21(a6)
pea -$20(a6)
pea -8(a6)
move.w #$FFF6,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.w loc_60009E18
moveq #0,d0
move.l d0,-$14(a6)
subq.l #2,sp
moveq #1,d0
move.l d0,-(sp)
move.l a4,-(sp)
pea unk_60009E4E
pea -$21(a6)
pea -$20(a6)
pea -$14(a6)
move.w #$FFF6,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
beq.s loc_60009D98
moveq #0,d0
move.l d0,-$14(a6)
loc_60009D98: ; CODE XREF: ROM:60009D90â†j
movea.l -$1C(a6),a0
movea.l (a0),a0
moveq #1,d0
; ---------------------------------------------------------------------------
dc.b $FE
dc.b 5
dc.b $20
dc.b $6E ; n
dc.b $FF
dc.b $E4
dc.b $20
dc.b $68 ; h
dc.b 0
dc.b 4
dc.b $70 ; p
dc.b 2
dc.b $FE
dc.b 5
dc.b $20
dc.b $6E ; n
dc.b $FF
dc.b $E8
dc.b $20
dc.b $50 ; P
dc.b $70 ; p
dc.b $D
dc.b $FE
dc.b 5
dc.b $70 ; p
dc.b 3
dc.b $FE
dc.b 4
dc.b $22 ; "
dc.b $6E ; n
dc.b $FF
dc.b $F0
dc.b $22 ; "
dc.b $88
dc.b $70 ; p
dc.b 4
dc.b $FE
dc.b 4
dc.b $22 ; "
dc.b $6E ; n
dc.b $FF
dc.b $F4
dc.b $22 ; "
dc.b $88
dc.b $4A ; J
dc.b $AE
dc.b $FF
dc.b $EC
dc.b $67 ; g
dc.b $E
dc.b $70 ; p
dc.b $F
dc.b $FE
dc.b 4
dc.b $67 ; g
dc.b 2
dc.b $91
dc.b $C8
dc.b $22 ; "
dc.b $6E ; n
dc.b $FF
dc.b $EC
dc.b $22 ; "
dc.b $88
dc.b $20
dc.b $6E ; n
dc.b $FF
dc.b $F8
dc.b $30 ; 0
dc.b $3C ; <
dc.b $AA
dc.b $59 ; Y
dc.b $A6
dc.b $47 ; G
dc.b $55 ; U
dc.b $8F
dc.b $70 ; p
dc.b 1
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $C
dc.b $48 ; H
dc.b $7A ; z
dc.b 0
dc.b $30 ; 0
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $DF
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $E0
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $FC
dc.b $3F ; ?
dc.b $3C ; <
dc.b $FF
dc.b $F6
dc.b $AA
dc.b $5A ; Z
dc.b $3E ; >
dc.b $1F
dc.b $66 ; f
dc.b $C
dc.b $59 ; Y
dc.b $8F
dc.b $20
dc.b $6E ; n
dc.b $FF
dc.b $FC
dc.b $4E ; N
dc.b $90
dc.b $20
dc.b $1F
dc.b $3E ; >
dc.b 0
; ---------------------------------------------------------------------------
loc_60009E18: ; CODE XREF: ROM:60009CD6â†j
; ROM:60009CFAâ†j ...
move.w d7,d0
movem.l -$2A(a6),d7/a4
unlk a6
rts
; ---------------------------------------------------------------------------
dc.b $28 ; (
dc.b $67 ; g
dc.b $4D ; M
dc.b $69 ; i
dc.b $78 ; x
dc.b $65 ; e
dc.b $64 ; d
dc.b $4D ; M
dc.b $6F ; o
dc.b $64 ; d
dc.b $65 ; e
dc.b $53 ; S
dc.b $65 ; e
dc.b $63 ; c
dc.b $6F ; o
dc.b $6E ; n
dc.b $64 ; d
dc.b $61 ; a
dc.b $72 ; r
dc.b $79 ; y
dc.b $49 ; I
dc.b $6E ; n
dc.b $69 ; i
dc.b $74 ; t
dc.b $52 ; R
dc.b $6F ; o
dc.b $75 ; u
dc.b $74 ; t
dc.b $69 ; i
dc.b $6E ; n
dc.b $65 ; e
dc.b $44 ; D
dc.b $65 ; e
dc.b $73 ; s
dc.b $63 ; c
dc.b $72 ; r
dc.b $69 ; i
dc.b $70 ; p
dc.b $74 ; t
dc.b $6F ; o
dc.b $72 ; r
dc.b 0
unk_60009E4E: dc.b $19 ; DATA XREF: ROM:60009D78â†o
dc.b $4D ; M
dc.b $4D ; M
dc.b $46 ; F
dc.b $6C ; l
dc.b $75 ; u
dc.b $73 ; s
dc.b $68 ; h
dc.b $45 ; E
dc.b $6D ; m
dc.b $75 ; u
dc.b $6C ; l
dc.b $61 ; a
dc.b $74 ; t
dc.b $6F ; o
dc.b $72 ; r
dc.b $43 ; C
dc.b $61 ; a
dc.b $63 ; c
dc.b $68 ; h
dc.b $65 ; e
dc.b $52 ; R
dc.b $61 ; a
dc.b $6E ; n
dc.b $67 ; g
dc.b $65 ; e
dc.b 0
dc.b 0
unk_60009E6A: dc.b $1E ; DATA XREF: ROM:60009D4Eâ†o
dc.b $5F ; _
dc.b $4D ; M
dc.b $69 ; i
dc.b $78 ; x
dc.b $65 ; e
dc.b $64 ; d
dc.b $4D ; M
dc.b $6F ; o
dc.b $64 ; d
dc.b $65 ; e
dc.b $44 ; D
dc.b $69 ; i
dc.b $73 ; s
dc.b $70 ; p
dc.b $61 ; a
dc.b $74 ; t
dc.b $63 ; c
dc.b $68 ; h
dc.b $54 ; T
dc.b $72 ; r
dc.b $61 ; a
dc.b $70 ; p
dc.b $48 ; H
dc.b $61 ; a
dc.b $6E ; n
dc.b $64 ; d
dc.b $6C ; l
dc.b $65 ; e
dc.b $72 ; r
dc.b $5F ; _
dc.b 0
unk_60009E8A: dc.b $E ; DATA XREF: ROM:60009D2Aâ†o
dc.b $45 ; E
dc.b $6D ; m
dc.b $75 ; u
dc.b $6C ; l
dc.b $61 ; a
dc.b $74 ; t
dc.b $6F ; o
dc.b $72 ; r
dc.b $52 ; R
dc.b $65 ; e
dc.b $74 ; t
dc.b $75 ; u
dc.b $72 ; r
dc.b $6E ; n
dc.b 0
unk_60009E9A: dc.b $12 ; DATA XREF: ROM:60009D06â†o
dc.b $45 ; E
dc.b $6D ; m
dc.b $75 ; u
dc.b $6C ; l
dc.b $61 ; a
dc.b $74 ; t
dc.b $65 ; e
dc.b $64 ; d
dc.b $36 ; 6
dc.b $38 ; 8
dc.b $4B ; K
dc.b $43 ; C
dc.b $6F ; o
dc.b $6E ; n
dc.b $74 ; t
dc.b $65 ; e
dc.b $78 ; x
dc.b $74 ; t
dc.b 0
unk_60009EAE: dc.b $E ; DATA XREF: ROM:60009CE2â†o
dc.b $52 ; R
dc.b $65 ; e
dc.b $74 ; t
dc.b $75 ; u
dc.b $72 ; r
dc.b $6E ; n
dc.b $46 ; F
dc.b $72 ; r
dc.b $6F ; o
dc.b $6D ; m
dc.b $4D ; M
dc.b $36 ; 6
dc.b $38 ; 8
dc.b $6B ; k
dc.b 0
unk_60009EBE: dc.b $12 ; DATA XREF: ROM:60009CBEâ†o
dc.b $4D ; M
dc.b $36 ; 6
dc.b $38 ; 8
dc.b $6B ; k
dc.b $54 ; T
dc.b $6F ; o
dc.b $50 ; P
dc.b $6F ; o
dc.b $77 ; w
dc.b $65 ; e
dc.b $72 ; r
dc.b $50 ; P
dc.b $43 ; C
dc.b $45 ; E
dc.b $6E ; n
dc.b $74 ; t
dc.b $72 ; r
dc.b $79 ; y
dc.b 0
; ---------------------------------------------------------------------------
loc_60009ED2: ; CODE XREF: sub_6000A0BE+13C↓p
link a6,#-$E
movem.l d7/a3-a4,-(sp)
movea.l 8(a6),a3
moveq #5,d0
; ---------------------------------------------------------------------------
dc.b $FE
dc.b 4
dc.b $28 ; (
dc.b $48 ; H
dc.b $55 ; U
dc.b $8F
dc.b $70 ; p
dc.b 1
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $B
dc.b $48 ; H
dc.b $7A ; z
dc.b 0
dc.b $78 ; x
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $F3
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $F4
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $F8
dc.b $3F ; ?
dc.b $3C ; <
dc.b $FF
dc.b $F6
dc.b $AA
dc.b $5A ; Z
dc.b $3E ; >
dc.b $1F
dc.b $66 ; f
dc.b $38 ; 8
dc.b $55 ; U
dc.b $8F
dc.b $70 ; p
dc.b 1
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $B
dc.b $48 ; H
dc.b $7A ; z
dc.b 0
dc.b $3A ; :
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $F3
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $F4
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $FC
dc.b $3F ; ?
dc.b $3C ; <
dc.b $FF
dc.b $F6
dc.b $AA
dc.b $5A ; Z
dc.b $3E ; >
dc.b $1F
dc.b $66 ; f
dc.b $16
dc.b $20
dc.b $6E ; n
dc.b $FF
dc.b $F8
dc.b $29 ; )
dc.b $50 ; P
dc.b 0
dc.b $4C ; L
dc.b $29 ; )
dc.b $6E ; n
dc.b $FF
dc.b $FC
dc.b 0
dc.b $54 ; T
dc.b $29 ; )
dc.b $7C ; |
dc.b $7D ; }
dc.b $F2
dc.b $F7
dc.b 0
dc.b 0
dc.b 4
dc.b $30 ; 0
dc.b 7
dc.b $4C ; L
dc.b $EE
dc.b $18
dc.b $80
dc.b $FF
dc.b $E6
dc.b $4E ; N
dc.b $5E ; ^
dc.b $4E ; N
dc.b $75 ; u
dc.b $19
dc.b $53 ; S
dc.b $79 ; y
dc.b $73 ; s
dc.b $74 ; t
dc.b $65 ; e
dc.b $6D ; m
dc.b $45 ; E
dc.b $78 ; x
dc.b $63 ; c
dc.b $65 ; e
dc.b $70 ; p
dc.b $74 ; t
dc.b $69 ; i
dc.b $6F ; o
dc.b $6E ; n
dc.b $44 ; D
dc.b $69 ; i
dc.b $73 ; s
dc.b $70 ; p
dc.b $61 ; a
dc.b $74 ; t
dc.b $63 ; c
dc.b $68 ; h
dc.b $65 ; e
dc.b $72 ; r
dc.b 0
dc.b 0
dc.b $18
dc.b $4C ; L
dc.b $6F ; o
dc.b $77 ; w
dc.b $4C ; L
dc.b $65 ; e
dc.b $76 ; v
dc.b $65 ; e
dc.b $6C ; l
dc.b $45 ; E
dc.b $78 ; x
dc.b $63 ; c
dc.b $65 ; e
dc.b $70 ; p
dc.b $74 ; t
dc.b $69 ; i
dc.b $6F ; o
dc.b $6E ; n
dc.b $48 ; H
dc.b $61 ; a
dc.b $6E ; n
dc.b $64 ; d
dc.b $6C ; l
dc.b $65 ; e
dc.b $72 ; r
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60009F80: ; CODE XREF: sub_6000A0BE+17C↓p
var_12 set -$12
var_9 set -9
var_8 set -8
var_4 set -4
arg_0 set 8
link a6,#-$A
movem.l d7/a4,-(sp)
subq.l #2,sp
moveq #1,d0
move.l d0,-(sp)
move.l arg_0(a6),-(sp)
pea aDslInit ; "\bDSL_Init"
pea var_9(a6)
pea var_8(a6)
pea var_4(a6)
move.w #$FFF6,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.s loc_60009FCE
subq.l #4,sp
move.l var_4(a6),-(sp)
moveq #$21,d0 ; '!'
move.l d0,-(sp)
moveq #1,d1
move.b d1,-(sp)
moveq #0,d0
dc.w $AA59 ; _MixedModeDispatch
movea.l (sp)+,a4
move.l a4,d0
bne.s loc_60009FC8
moveq #$FFFFFF94,d7
bra.s loc_60009FCE
; ---------------------------------------------------------------------------
loc_60009FC8: ; CODE XREF: sub_60009F80+42â†j
movea.l a4,a0
jsr (a0)
move.w d0,d7
loc_60009FCE: ; CODE XREF: sub_60009F80+2Aâ†j
; sub_60009F80+46â†j
move.w d7,d0
movem.l var_12(a6),d7/a4
unlk a6
rts
; End of function sub_60009F80
; ---------------------------------------------------------------------------
aDslInit: dc.b 8,'DSL_Init',0 ; DATA XREF: sub_60009F80+12â†o
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60009FE4: ; CODE XREF: sub_6000A85E:loc_6000A8CA↓p
var_8 set -8
var_4 set -4
link a6,#-4
move.l d7,-(sp)
move.l #$63666D67,d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
move.w d0,d7
beq.s loc_6000A004
moveq #0,d0
move.l d0,var_4(a6)
loc_6000A004: ; CODE XREF: sub_60009FE4+18â†j
move.l var_4(a6),d0
move.l var_8(a6),d7
unlk a6
rts
; End of function sub_60009FE4
; ---------------------------------------------------------------------------
dc.b $4E ; N
dc.b $56 ; V
dc.b $FE
dc.b $F6
dc.b $48 ; H
dc.b $E7
dc.b 3
dc.b $18
dc.b $26 ; &
dc.b $6E ; n
dc.b 0
dc.b 8
dc.b $49 ; I
dc.b $EE
dc.b $FE
dc.b $F6
dc.b $55 ; U
dc.b $8F
dc.b $70 ; p
dc.b 1
dc.b $2F ; /
dc.b 0
dc.b $72 ; r
dc.b 0
dc.b $2F ; /
dc.b 1
dc.b $48 ; H
dc.b $6B ; k
dc.b 0
dc.b $A
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $3C ; <
dc.b $70 ; p
dc.b $77 ; w
dc.b $70 ; p
dc.b $63 ; c
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $F6
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $FA
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $FF
dc.b $2F ; /
dc.b $C
dc.b $3F ; ?
dc.b $3C ; <
dc.b $FF
dc.b $FE
dc.b $AA
dc.b $5A ; Z
dc.b $3E ; >
dc.b $1F
dc.b $67 ; g
dc.b 6
dc.b $41 ; A
dc.b $FA
dc.b 0
dc.b $38 ; 8
dc.b $60 ; `
dc.b $28 ; (
dc.b $40 ; @
dc.b $C0
dc.b 0
dc.b $7C ; |
dc.b 7
dc.b 0
dc.b $3C ; <
dc.b 0
dc.b $30 ; 0
dc.b $2B ; +
dc.b 0
dc.b 4
dc.b 4
dc.b $40 ; @
dc.b 0
dc.b $32 ; 2
dc.b $66 ; f
dc.b $12
dc.b $2F ; /
dc.b $2E ; .
dc.b $FF
dc.b $FA
dc.b $2F ; /
dc.b $2E ; .
dc.b $FF
dc.b $F6
dc.b $4E ; N
dc.b $BA
dc.b $C
dc.b $6A ; j
dc.b $3E ; >
dc.b 0
dc.b $50 ; P
dc.b $4F ; O
dc.b $4A ; J
dc.b $47 ; G
dc.b $3F ; ?
dc.b 6
dc.b $46 ; F
dc.b $DF
dc.b $30 ; 0
dc.b 7
dc.b $4C ; L
dc.b $EE
dc.b $18
dc.b $C0
dc.b $FE
dc.b $E6
dc.b $4E ; N
dc.b $5E ; ^
dc.b $4E ; N
dc.b $75 ; u
dc.b $C
dc.b $6E ; n
dc.b $63 ; c
dc.b $6F ; o
dc.b $64 ; d
dc.b $20
dc.b $6C ; l
dc.b $69 ; i
dc.b $62 ; b
dc.b $72 ; r
dc.b $61 ; a
dc.b $72 ; r
dc.b $79 ; y
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_6000A096: ; CODE XREF: DoSomethingWithTextEdit+76â†p
bra.w sub_6000D774
; End of function sub_6000A096
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_6000A09A: ; CODE XREF: DoSomethingWithTextEdit+5Aâ†p
bra.w sub_6000D738
; End of function sub_6000A09A
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_6000A09E: ; CODE XREF: DoSomethingWithTextEdit+4Eâ†p
bra.w sub_6000D71A
; End of function sub_6000A09E
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_6000A0A2: ; CODE XREF: DoSomethingWithTextEdit+4Aâ†p
bra.w sub_6000D756
; End of function sub_6000A0A2
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_6000A0A6: ; CODE XREF: DoSomethingWithTextEdit+32â†p
bra.w sub_6000D76A
; End of function sub_6000A0A6
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_6000A0AA: ; CODE XREF: DoSomethingWithTextEdit+2Eâ†p
bra.w sub_6000D760
; End of function sub_6000A0AA
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_6000A0AE: ; CODE XREF: DoSomethingWithTextEdit+2Aâ†p
bra.w sub_6000D742
; End of function sub_6000A0AE
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_6000A0B2: ; CODE XREF: DoSomethingWithTextEdit+26â†p
bra.w sub_6000D74C
; End of function sub_6000A0B2
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_6000A0B6: ; CODE XREF: DoSomethingWithTextEdit:loc_60002C44â†p
bra.w sub_6000D72E
; End of function sub_6000A0B6
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_6000A0BA: ; CODE XREF: sub_60002CE2:loc_60002D0Aâ†p
bra.w sub_6000D724
; End of function sub_6000A0BA
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000A0BE: ; CODE XREF: sub_6000B1C0+96↓p
var_12E set -$12E
var_112 set -$112
var_10E set -$10E
var_10A set -$10A
var_105 set -$105
var_100 set -$100
arg_0 set 8
arg_7 set $F
link a6,#-$112
movem.l d4-d7/a2-a4,-(sp)
move.b arg_7(a6),d4
lea var_100(a6),a3
movea.l arg_0(a6),a4
moveq #1,d5
subq.l #2,sp
moveq #1,d0
move.l d0,-(sp)
moveq #0,d1
move.l d1,-(sp)
pea $A(a4)
tst.b d4
beq.s loc_6000A0EA
moveq #2,d0
bra.s loc_6000A0EC
; ---------------------------------------------------------------------------
loc_6000A0EA: ; CODE XREF: sub_6000A0BE+26â†j
moveq #3,d0
loc_6000A0EC: ; CODE XREF: sub_6000A0BE+2Aâ†j
extb.l d0
move.l d0,-(sp)
move.l #$70777063,-(sp)
pea var_10E(a6)
pea var_10A(a6)
pea var_105(a6)
move.l a3,-(sp)
move.w #$FFFE,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
beq.s loc_6000A122
tst.b d4
beq.w loc_6000A246
cmpi.w #$F4FF,d7
bne.w loc_6000A246
clr.w d7
bra.w loc_6000A246
; ---------------------------------------------------------------------------
loc_6000A122: ; CODE XREF: sub_6000A0BE+4Eâ†j
cmpi.l #$73667672,(a4)
bne.s loc_6000A138
tst.w 4(a4)
bne.s loc_6000A138
tst.l var_10A(a6)
beq.w loc_6000A246
loc_6000A138: ; CODE XREF: sub_6000A0BE+6Aâ†j
; sub_6000A0BE+70â†j
lea $10A(a4),a2
tst.l (a2)
bne.s loc_6000A15A
movea.l 6(a4),a0
move.l (a0),4(a2)
subq.l #4,sp
move.l 6(a4),-(sp)
jsr sub_60003106
move.l (sp)+,8(a2)
clr.b $C(a2)
loc_6000A15A: ; CODE XREF: sub_6000A0BE+80â†j
subq.l #2,sp
moveq #1,d0
move.l d0,-(sp)
move.l a2,-(sp)
pea $A(a4)
move.l d0,-(sp)
move.l #$70777063,-(sp)
pea var_112(a6)
pea var_10A(a6)
pea var_105(a6)
move.l a3,-(sp)
move.w #$FFFE,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
beq.s loc_6000A18E
lea unk_6000A268,a0
bra.w loc_6000A246
; ---------------------------------------------------------------------------
loc_6000A18E: ; CODE XREF: sub_6000A0BE+C6â†j
cmpi.l #$73667672,(a4)
bne.s loc_6000A19C
tst.w 4(a4)
beq.s loc_6000A1A4
loc_6000A19C: ; CODE XREF: sub_6000A0BE+D6â†j
move sr,d0
ori #$700,sr
move.w d0,d6
loc_6000A1A4: ; CODE XREF: sub_6000A0BE+DCâ†j
cmpi.l #$73667672,(a4)
bne.s loc_6000A202
move.w 4(a4),d0
subi.w #$BFEF,d0
beq.s loc_6000A202
subi.w #$4011,d0
beq.s loc_6000A1C6
subq.w #1,d0
beq.s loc_6000A1E8
subq.w #7,d0
beq.s loc_6000A1F6
bra.s loc_6000A202
; ---------------------------------------------------------------------------
loc_6000A1C6: ; CODE XREF: sub_6000A0BE+FCâ†j
clr.b d5
move.l var_10A(a6),-(sp)
move.l var_112(a6),-(sp)
move.l var_10E(a6),-(sp)
jsr sub_6000A85E
move.w d0,d7
move sr,d0
ori #$700,sr
move.w d0,d6
lea $C(sp),sp
bra.s loc_6000A202
; ---------------------------------------------------------------------------
loc_6000A1E8: ; CODE XREF: sub_6000A0BE+100â†j
move.l var_112(a6),-(sp)
jsr loc_60009CAA
move.w d0,d7
addq.w #4,sp
bra.s loc_6000A202
; ---------------------------------------------------------------------------
loc_6000A1F6: ; CODE XREF: sub_6000A0BE+104â†j
move.l var_112(a6),-(sp)
jsr loc_60009ED2
move.w d0,d7
addq.w #4,sp
loc_6000A202: ; CODE XREF: sub_6000A0BE+ECâ†j
; sub_6000A0BE+F6â†j ...
tst.w d7
bne.s loc_6000A220
tst.b d5
beq.s loc_6000A220
subq.l #2,sp
moveq #1,d0
move.l d0,-(sp)
move.l var_10E(a6),-(sp)
move.l var_112(a6),-(sp)
move.w #$FFEF,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
loc_6000A220: ; CODE XREF: sub_6000A0BE+146â†j
; sub_6000A0BE+14Aâ†j
cmpi.l #$73667672,(a4)
bne.s loc_6000A242
tst.w d7
bne.s loc_6000A242
move.w 4(a4),d0
subi.w #$BFEF,d0
bne.s loc_6000A242
move.l var_112(a6),-(sp)
jsr sub_60009F80
tst.w d0
addq.w #4,sp
loc_6000A242: ; CODE XREF: sub_6000A0BE+168â†j
; sub_6000A0BE+16Câ†j ...
move.w d6,-(sp)
move (sp)+,sr
loc_6000A246: ; CODE XREF: sub_6000A0BE+52â†j
; sub_6000A0BE+5Aâ†j ...
tst.w d7
beq.s loc_6000A254
tst.l (a2)
bne.s loc_6000A254
movea.l 6(a4),a0
dc.w $A023 ; _DisposeHandle
loc_6000A254: ; CODE XREF: sub_6000A0BE+18Aâ†j
; sub_6000A0BE+18Eâ†j
cmpi.w #$F4FB,d7
bne.s loc_6000A25C
clr.w d7
loc_6000A25C: ; CODE XREF: sub_6000A0BE+19Aâ†j
move.w d7,d0
movem.l var_12E(a6),d4-d7/a2-a4
unlk a6
rts
; End of function sub_6000A0BE
; ---------------------------------------------------------------------------
unk_6000A268: dc.b $10 ; DATA XREF: sub_6000A0BE+C8â†o
dc.b $6F ; o
dc.b $76 ; v
dc.b $65 ; e
dc.b $72 ; r
dc.b $72 ; r
dc.b $69 ; i
dc.b $64 ; d
dc.b $65 ; e
dc.b $20
dc.b $6C ; l
dc.b $69 ; i
dc.b $62 ; b
dc.b $72 ; r
dc.b $61 ; a
dc.b $72 ; r
dc.b $79 ; y
dc.b 0
dc.b $4E ; N
dc.b $56 ; V
dc.b $FF
dc.b $F8
dc.b $48 ; H
dc.b $E7
dc.b $13
dc.b $18
dc.b $1C
dc.b $2E ; .
dc.b 0
dc.b $F
dc.b $26 ; &
dc.b $6E ; n
dc.b 0
dc.b 8
dc.b $59 ; Y
dc.b $8F
dc.b $3F ; ?
dc.b $2B ; +
dc.b 0
dc.b 2
dc.b $30 ; 0
dc.b $3C ; <
dc.b 8
dc.b 0
dc.b $C0
dc.b $6B ; k
dc.b 0
dc.b 2
dc.b $72 ; r
dc.b 0
dc.b $32 ; 2
dc.b 0
dc.b $C
dc.b $81
dc.b 0
dc.b 0
dc.b 8
dc.b 0
dc.b $57 ; W
dc.b $C3
dc.b $44 ; D
dc.b 3
dc.b $1F
dc.b 3
dc.b $4E ; N
dc.b $BA
dc.b $8E
dc.b $90
dc.b $2D ; -
dc.b $5F ; _
dc.b $FF
dc.b $F8
dc.b $20
dc.b $4B ; K
dc.b $58 ; X
dc.b $88
dc.b $2D ; -
dc.b $48 ; H
dc.b $FF
dc.b $FC
dc.b $7E ; ~
dc.b 0
dc.b $60 ; `
dc.b $58 ; X
dc.b $20
dc.b $6E ; n
dc.b $FF
dc.b $FC
dc.b $20
dc.b 7
dc.b $E5
dc.b $88
dc.b $22 ; "
dc.b 0
dc.b $E5
dc.b $88
dc.b $D0
dc.b $81
dc.b $49 ; I
dc.b $F0
dc.b 8
dc.b $C
dc.b $70 ; p
dc.b 0
dc.b $30 ; 0
dc.b $2C ; ,
dc.b 0
dc.b 6
dc.b $72 ; r
dc.b 4
dc.b $C2
dc.b $40 ; @
dc.b $70 ; p
dc.b 0
dc.b $30 ; 0
dc.b 1
dc.b $4A ; J
dc.b $80
dc.b $66 ; f
dc.b $30 ; 0
dc.b $4A ; J
dc.b $2C ; ,
dc.b 0
dc.b 5
dc.b $66 ; f
dc.b $C
dc.b $4A ; J
dc.b $AC
dc.b 0
dc.b 8
dc.b $66 ; f
dc.b 6
dc.b $29 ; )
dc.b $6E ; n
dc.b $FF
dc.b $F8
dc.b 0
dc.b 8
dc.b $4A ; J
dc.b 6
dc.b $67 ; g
dc.b $1A
dc.b $70 ; p
dc.b 0
dc.b $30 ; 0
dc.b $2C ; ,
dc.b 0
dc.b 6
dc.b $72 ; r
dc.b $40 ; @
dc.b $C2
dc.b $40 ; @
dc.b $67 ; g
dc.b $E
dc.b $70 ; p
dc.b 0
dc.b $30 ; 0
dc.b $2C ; ,
dc.b 0
dc.b 6
dc.b $72 ; r
dc.b 4
dc.b $82
dc.b $40 ; @
dc.b $39 ; 9
dc.b $41 ; A
dc.b 0
dc.b 6
dc.b $20
dc.b 7
dc.b $52 ; R
dc.b $87
dc.b $70 ; p
dc.b 0
dc.b $30 ; 0
dc.b $2B ; +
dc.b 0
dc.b $E
dc.b $B0
dc.b $87
dc.b $6C ; l
dc.b $9E
dc.b $4C ; L
dc.b $EE
dc.b $18
dc.b $C8
dc.b $FF
dc.b $E4
dc.b $4E ; N
dc.b $5E ; ^
dc.b $4E ; N
dc.b $75 ; u
dc.b $4E ; N
dc.b $56 ; V
dc.b $FF
dc.b $FC
dc.b $48 ; H
dc.b $E7
dc.b $17
dc.b $18
dc.b $1A
dc.b $2E ; .
dc.b 0
dc.b $F
dc.b $42 ; B
dc.b $47 ; G
dc.b $20
dc.b $6E ; n
dc.b 0
dc.b 8
dc.b $2D ; -
dc.b $48 ; H
dc.b $FF
dc.b $FC
dc.b $49 ; I
dc.b $E8
dc.b 0
dc.b $38 ; 8
dc.b $42 ; B
dc.b $46 ; F
dc.b $60 ; `
dc.b $66 ; f
dc.b $70 ; p
dc.b 0
dc.b $30 ; 0
dc.b $2C ; ,
dc.b 0
dc.b 4
dc.b $C
dc.b $80
dc.b 0
dc.b 0
dc.b $AA
dc.b $FE
dc.b $67 ; g
dc.b 4
dc.b $7E ; ~
dc.b $CE
dc.b $60 ; `
dc.b $60 ; `
dc.b $70 ; p
dc.b 0
dc.b $10
dc.b 5
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $C
dc.b $4E ; N
dc.b $BA
dc.b $FF
dc.b $18
dc.b $48 ; H
dc.b $6C ; l
dc.b 0
dc.b 4
dc.b $3F ; ?
dc.b $2C ; ,
dc.b 0
dc.b 2
dc.b $30 ; 0
dc.b $3C ; <
dc.b 8
dc.b 0
dc.b $C0
dc.b $6C ; l
dc.b 0
dc.b 2
dc.b $72 ; r
dc.b 0
dc.b $32 ; 2
dc.b 0
dc.b $C
dc.b $81
dc.b 0
dc.b 0
dc.b 8
dc.b 0
dc.b $57 ; W
dc.b $C3
dc.b $44 ; D
dc.b 3
dc.b $1F
dc.b 3
dc.b $4E ; N
dc.b $BA
dc.b $8D
dc.b $C8
dc.b $26 ; &
dc.b $4C ; L
dc.b $41 ; A
dc.b $F8
dc.b 0
dc.b $C
dc.b $58 ; X
dc.b $48 ; H
dc.b $70 ; p
dc.b 0
dc.b $30 ; 0
dc.b $2C ; ,
dc.b 0
dc.b $E
dc.b $52 ; R
dc.b $80
dc.b $E5
dc.b $88
dc.b $22 ; "
dc.b 0
dc.b $E5
dc.b $88
dc.b $D0
dc.b $81
dc.b $D0
dc.b $88
dc.b $D7
dc.b $C0
dc.b $28 ; (
dc.b $4B ; K
dc.b $50 ; P
dc.b $4F ; O
dc.b $30 ; 0
dc.b 6
dc.b $52 ; R
dc.b $46 ; F
dc.b $48 ; H
dc.b $C6
dc.b $20
dc.b $6E ; n
dc.b $FF
dc.b $FC
dc.b $BC
dc.b $A8
dc.b 0
dc.b $34 ; 4
dc.b $6D ; m
dc.b $8E
dc.b $30 ; 0
dc.b 7
dc.b $4C ; L
dc.b $EE
dc.b $18
dc.b $E8
dc.b $FF
dc.b $E4
dc.b $4E ; N
dc.b $5E ; ^
dc.b $4E ; N
dc.b $75 ; u
dc.b $4E ; N
dc.b $56 ; V
dc.b $FE
dc.b $E6
dc.b $48 ; H
dc.b $E7
dc.b 3
dc.b $18
dc.b $28 ; (
dc.b $6E ; n
dc.b 0
dc.b 8
dc.b $70 ; p
dc.b 0
dc.b $26 ; &
dc.b $40 ; @
dc.b $7C ; |
dc.b 1
dc.b $C
dc.b $6C ; l
dc.b 3
dc.b $E8
dc.b 0
dc.b 4
dc.b $6E ; n
dc.b $6E ; n
dc.b $70 ; p
dc.b 0
dc.b $2D ; -
dc.b $40 ; @
dc.b $FE
dc.b $E6
dc.b $20
dc.b $6C ; l
dc.b 0
dc.b 6
dc.b $2D ; -
dc.b $50 ; P
dc.b $FE
dc.b $EA
dc.b $59 ; Y
dc.b $8F
dc.b $2F ; /
dc.b $2C ; ,
dc.b 0
dc.b 6
dc.b $4E ; N
dc.b $BA
dc.b $8D
dc.b $12
dc.b $2D ; -
dc.b $5F ; _
dc.b $FE
dc.b $EE
dc.b $42 ; B
dc.b $2E ; .
dc.b $FE
dc.b $F2
dc.b $55 ; U
dc.b $8F
dc.b $70 ; p
dc.b 1
dc.b $2F ; /
dc.b 0
dc.b $48 ; H
dc.b $6E ; n
dc.b $FE
dc.b $E6
dc.b $48 ; H
dc.b $6C ; l
dc.b 0
dc.b $A
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $3C ; <
dc.b $70 ; p
dc.b $77 ; w
dc.b $70 ; p
dc.b $63 ; c
dc.b $48 ; H
dc.b $6E ; n
dc.b $FE
dc.b $F6
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $FC
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $FB
dc.b $48 ; H
dc.b $6E ; n
dc.b $FE
dc.b $FA
dc.b $3F ; ?
dc.b $3C ; <
dc.b $FF
dc.b $FE
dc.b $AA
dc.b $5A ; Z
dc.b $3E ; >
dc.b $1F
dc.b $66 ; f
dc.b 6
dc.b $4A ; J
dc.b $AE
dc.b $FF
dc.b $FC
dc.b $66 ; f
dc.b $10
dc.b $42 ; B
dc.b 6
dc.b $4A ; J
dc.b $47 ; G
dc.b $67 ; g
dc.b $A
dc.b $C
dc.b $47 ; G
dc.b $F4
dc.b $FB
dc.b $67 ; g
dc.b 4
dc.b $41 ; A
dc.b $FA
dc.b 0
dc.b $16
dc.b $4A ; J
dc.b 6
dc.b $67 ; g
dc.b 4
dc.b $26 ; &
dc.b $6E ; n
dc.b $FF
dc.b $FC
dc.b $20
dc.b $B
dc.b $4C ; L
dc.b $EE
dc.b $18
dc.b $C0
dc.b $FE
dc.b $D6
dc.b $4E ; N
dc.b $5E ; ^
dc.b $4E ; N
dc.b $75 ; u
dc.b $D
dc.b $6E ; n
dc.b $74 ; t
dc.b $72 ; r
dc.b $62 ; b
dc.b $20
dc.b $72 ; r
dc.b $65 ; e
dc.b $73 ; s
dc.b $6F ; o
dc.b $75 ; u
dc.b $72 ; r
dc.b $63 ; c
dc.b $65 ; e
dc.b 0
dc.b 0
dc.b $4E ; N
dc.b $56 ; V
dc.b $FF
dc.b $F0
dc.b $48 ; H
dc.b $E7
dc.b 1
dc.b 8
dc.b $28 ; (
dc.b $6E ; n
dc.b 0
dc.b 8
dc.b $70 ; p
dc.b 0
dc.b $2D ; -
dc.b $40 ; @
dc.b $FF
dc.b $F0
dc.b $20
dc.b $6C ; l
dc.b 0
dc.b 6
dc.b $2D ; -
dc.b $50 ; P
dc.b $FF
dc.b $F4
dc.b $59 ; Y
dc.b $8F
dc.b $2F ; /
dc.b $2C ; ,
dc.b 0
dc.b 6
dc.b $4E ; N
dc.b $BA
dc.b $8C
dc.b $7C ; |
dc.b $2D ; -
dc.b $5F ; _
dc.b $FF
dc.b $F8
dc.b $42 ; B
dc.b $2E ; .
dc.b $FF
dc.b $FC
dc.b $48 ; H
dc.b $6C ; l
dc.b 0
dc.b $A
dc.b $4E ; N
dc.b $BA
dc.b $E
dc.b $B4
dc.b $4A ; J
dc.b $2E ; .
dc.b 0
dc.b $F
dc.b $58 ; X
dc.b $4F ; O
dc.b $66 ; f
dc.b $C
dc.b $2F ; /
dc.b $C
dc.b $4E ; N
dc.b $BA
dc.b $F
dc.b $E
dc.b $3E ; >
dc.b 0
dc.b $58 ; X
dc.b $4F ; O
dc.b $60 ; `
dc.b 2
dc.b $42 ; B
dc.b $47 ; G
dc.b $4A ; J
dc.b $47 ; G
dc.b $66 ; f
dc.b $1A
dc.b $55 ; U
dc.b $8F
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $F0
dc.b $70 ; p
dc.b 0
dc.b $2F ; /
dc.b 0
dc.b $48 ; H
dc.b $6C ; l
dc.b 0
dc.b $A
dc.b $72 ; r
dc.b 0
dc.b $1F
dc.b 1
dc.b $3F ; ?
dc.b $3C ; <
dc.b $FF
dc.b $FC
dc.b $AA
dc.b $5A ; Z
dc.b $3E ; >
dc.b $1F
dc.b $30 ; 0
dc.b 7
dc.b $4C ; L
dc.b $EE
dc.b $10
dc.b $80
dc.b $FF
dc.b $E8
dc.b $4E ; N
dc.b $5E ; ^
dc.b $4E ; N
dc.b $75 ; u
dc.b $4E ; N
dc.b $56 ; V
dc.b $FF
dc.b $F0
dc.b $48 ; H
dc.b $E7
dc.b 1
dc.b 8
dc.b $28 ; (
dc.b $6E ; n
dc.b 0
dc.b 8
dc.b $70 ; p
dc.b 0
dc.b $2D ; -
dc.b $40 ; @
dc.b $FF
dc.b $F0
dc.b $20
dc.b $6C ; l
dc.b 0
dc.b 6
dc.b $2D ; -
dc.b $50 ; P
dc.b $FF
dc.b $F4
dc.b $59 ; Y
dc.b $8F
dc.b $2F ; /
dc.b $2C ; ,
dc.b 0
dc.b 6
dc.b $4E ; N
dc.b $BA
dc.b $8C
dc.b 8
dc.b $2D ; -
dc.b $5F ; _
dc.b $FF
dc.b $F8
dc.b $42 ; B
dc.b $2E ; .
dc.b $FF
dc.b $FC
dc.b $55 ; U
dc.b $8F
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $F0
dc.b $70 ; p
dc.b 0
dc.b $2F ; /
dc.b 0
dc.b $48 ; H
dc.b $6C ; l
dc.b 0
dc.b $A
dc.b $72 ; r
dc.b 0
dc.b $1F
dc.b 1
dc.b $3F ; ?
dc.b $3C ; <
dc.b $FF
dc.b $FC
dc.b $AA
dc.b $5A ; Z
dc.b $3E ; >
dc.b $1F
dc.b $67 ; g
dc.b $44 ; D
dc.b $70 ; p
dc.b $32 ; 2
dc.b $B0
dc.b $6C ; l
dc.b 0
dc.b 4
dc.b $66 ; f
dc.b $3C ; <
dc.b $C
dc.b $47 ; G
dc.b $F5
dc.b $B
dc.b $66 ; f
dc.b $36 ; 6
dc.b $55 ; U
dc.b $8F
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $F0
dc.b $70 ; p
dc.b 0
dc.b $2F ; /
dc.b 0
dc.b $48 ; H
dc.b $6C ; l
dc.b 0
dc.b $A
dc.b $72 ; r
dc.b 1
dc.b $1F
dc.b 1
dc.b $3F ; ?
dc.b $3C ; <
dc.b $FF
dc.b $FC
dc.b $AA
dc.b $5A ; Z
dc.b $3E ; >
dc.b $1F
dc.b $66 ; f
dc.b $1A
dc.b $55 ; U
dc.b $8F
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $F0
dc.b $70 ; p
dc.b 0
dc.b $2F ; /
dc.b 0
dc.b $48 ; H
dc.b $6C ; l
dc.b 0
dc.b $A
dc.b $72 ; r
dc.b 0
dc.b $1F
dc.b 1
dc.b $3F ; ?
dc.b $3C ; <
dc.b $FF
dc.b $FC
dc.b $AA
dc.b $5A ; Z
dc.b $3E ; >
dc.b $1F
dc.b $30 ; 0
dc.b 7
dc.b $4C ; L
dc.b $EE
dc.b $10
dc.b $80
dc.b $FF
dc.b $E8
dc.b $4E ; N
dc.b $5E ; ^
dc.b $4E ; N
dc.b $75 ; u
dc.b $4E ; N
dc.b $56 ; V
dc.b 0
dc.b 0
dc.b $48 ; H
dc.b $E7
dc.b 1
dc.b 8
dc.b $28 ; (
dc.b $6E ; n
dc.b 0
dc.b 8
dc.b $2F ; /
dc.b $C
dc.b $4E ; N
dc.b $BA
dc.b $FF
dc.b $58 ; X
dc.b $3E ; >
dc.b 0
dc.b $58 ; X
dc.b $4F ; O
dc.b $4A ; J
dc.b $47 ; G
dc.b $66 ; f
dc.b $C
dc.b $2F ; /
dc.b $C
dc.b $4E ; N
dc.b $BA
dc.b $FA
dc.b $7E ; ~
dc.b $3E ; >
dc.b 0
dc.b $58 ; X
dc.b $4F ; O
dc.b $4A ; J
dc.b $47 ; G
dc.b $30 ; 0
dc.b 7
dc.b $4C ; L
dc.b $EE
dc.b $10
dc.b $80
dc.b $FF
dc.b $F8
dc.b $4E ; N
dc.b $5E ; ^
dc.b $4E ; N
dc.b $75 ; u
dc.b $4E ; N
dc.b $56 ; V
dc.b 0
dc.b 0
dc.b $48 ; H
dc.b $E7
dc.b 7
dc.b 8
dc.b $2F ; /
dc.b $2E ; .
dc.b 0
dc.b 8
dc.b $4E ; N
dc.b $BA
dc.b $FE
dc.b $10
dc.b $28 ; (
dc.b $40 ; @
dc.b $20
dc.b $C
dc.b $58 ; X
dc.b $4F ; O
dc.b $66 ; f
dc.b 4
dc.b $70 ; p
dc.b 0
dc.b $60 ; `
dc.b $20
dc.b $42 ; B
dc.b 6
dc.b $40 ; @
dc.b $C0
dc.b 0
dc.b $7C ; |
dc.b 7
dc.b 0
dc.b $3E ; >
dc.b 0
dc.b $70 ; p
dc.b 0
dc.b $10
dc.b 6
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $C
dc.b $4E ; N
dc.b $BA
dc.b $FD
dc.b $52 ; R
dc.b $3A ; :
dc.b 0
dc.b $3F ; ?
dc.b 7
dc.b $46 ; F
dc.b $DF
dc.b $30 ; 0
dc.b 5
dc.b $50 ; P
dc.b $4F ; O
dc.b $4C ; L
dc.b $EE
dc.b $10
dc.b $E0
dc.b $FF
dc.b $F0
dc.b $4E ; N
dc.b $5E ; ^
dc.b $4E ; N
dc.b $75 ; u
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000A5EC: ; CODE XREF: sub_6000A740+7C↓p
var_16 set -$16
var_6 set -6
var_2 set -2
arg_0 set 8
arg_4 set $C
arg_A set $12
link a6,#-6
movem.l d6-d7/a3-a4,-(sp)
move.w arg_A(a6),d6
move.l arg_4(a6),d7
movea.l arg_0(a6),a4
subq.l #4,sp
move.l d7,-(sp)
move.w d6,-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a3
move.l a3,d0
beq.s loc_6000A650
move.l a3,-(sp)
pea var_2(a6)
pea var_6(a6)
pea $A(a4)
dc.w $A9A8 ; _GetResInfo
moveq #0,d0
move.b $A(a4),d0
cmpi.b #$3F,d0 ; '?'
bls.s loc_6000A630
move.b #$3F,$A(a4) ; '?'
loc_6000A630: ; CODE XREF: sub_6000A5EC+3Câ†j
movea.l a3,a0
dc.w $A064 ; _MoveHHi
movea.l a3,a0
dc.w $A029 ; _HLock
move.l a3,-(sp)
dc.w $A992 ; _DetachResource
move.l d7,(a4)
move.w d6,4(a4)
move.l a3,6(a4)
moveq #0,d0
move.l d0,$10A(a4)
moveq #0,d0
bra.s loc_6000A664
; ---------------------------------------------------------------------------
loc_6000A650: ; CODE XREF: sub_6000A5EC+20â†j
subq.l #2,sp
dc.w $A9AF ; _ResError
tst.w (sp)+
bne.s loc_6000A65E
move.w #$FF40,d0
bra.s loc_6000A664
; ---------------------------------------------------------------------------
loc_6000A65E: ; CODE XREF: sub_6000A5EC+6Aâ†j
subq.l #2,sp
dc.w $A9AF ; _ResError
move.w (sp)+,d0
loc_6000A664: ; CODE XREF: sub_6000A5EC+62â†j
; sub_6000A5EC+70â†j
movem.l var_16(a6),d6-d7/a3-a4
unlk a6
rts
; End of function sub_6000A5EC
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000A66E: ; CODE XREF: _InitLotsOfNativeManagers+366â†p
var_236 set -$236
var_222 set -$222
var_21E set -$21E
var_21A set -$21A
var_216 set -$216
var_20E set -$20E
var_20A set -$20A
var_206 set -$206
var_106 set -$106
var_6 set -6
var_4 set -4
arg_0 set 8
arg_2 set $A
arg_4 set $C
arg_8 set $10
link a6,#-$222
movem.l d6-d7/a2-a4,-(sp)
lea var_106(a6),a3
subq.l #4,sp
move.l arg_4(a6),-(sp)
move.w arg_2(a6),-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a4
move.l a4,d0
bne.s loc_6000A694
move.w #$FF40,d7
bra.w loc_6000A730
; ---------------------------------------------------------------------------
loc_6000A694: ; CODE XREF: sub_6000A66E+1Câ†j
dc.w $A11A ; _GetZone
movea.l a0,a2
subq.l #4,sp
move.l ($2A6).w,(sp)
movea.l (sp)+,a0
dc.w $A01B ; _SetZone
move.l a4,-(sp)
pea var_6(a6)
pea var_4(a6)
move.l a3,-(sp)
dc.w $A9A8 ; _GetResInfo
moveq #0,d0
move.b (a3),d0
cmpi.b #$3F,d0 ; '?'
bls.s loc_6000A6BE
move.b #$3F,(a3) ; '?'
loc_6000A6BE: ; CODE XREF: sub_6000A66E+4Aâ†j
move.l a4,-(sp)
dc.w $A992 ; _DetachResource
movea.l a4,a0
dc.w $A064 ; _MoveHHi
movea.l a4,a0
dc.w $A029 ; _HLock
subq.l #4,sp
move.l a4,-(sp)
jsr sub_60003106
move.l (sp)+,d6
subq.l #2,sp
move.l (a4),-(sp)
move.l d6,-(sp)
move.l a3,-(sp)
moveq #1,d0
move.l d0,-(sp)
pea var_20E(a6)
pea var_20A(a6)
pea var_206(a6)
move.w #3,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.s loc_6000A724
moveq #0,d0
move.l d0,var_222(a6)
move.l (a4),var_21E(a6)
move.l d6,var_21A(a6)
clr.b var_216(a6)
subq.l #2,sp
pea var_222(a6)
moveq #0,d0
move.l d0,-(sp)
move.l a3,-(sp)
moveq #0,d0
move.b d0,-(sp)
move.w #$FFFC,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.s loc_6000A72C
bra.s loc_6000A72C
; ---------------------------------------------------------------------------
loc_6000A724: ; CODE XREF: sub_6000A66E+86â†j
tst.b arg_0(a6)
movea.l a4,a0
dc.w $A023 ; _DisposeHandle
loc_6000A72C: ; CODE XREF: sub_6000A66E+B2â†j
; sub_6000A66E+B4â†j
movea.l a2,a0
dc.w $A01B ; _SetZone
loc_6000A730: ; CODE XREF: sub_6000A66E+22â†j
move.w d7,arg_8(a6)
movem.l var_236(a6),d6-d7/a2-a4
unlk a6
rtd #8
; End of function sub_6000A66E
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000A740: ; CODE XREF: InstallPatches+258â†p
; UpdateNameRegistryLib+4Câ†p ...
var_12A set -$12A
var_11A set -$11A
arg_0 set 8
arg_2 set $A
arg_4 set $C
arg_6 set $E
link a6,#-$11A
movem.l d4-d7,-(sp)
move.w arg_0(a6),d4
move.w arg_4(a6),d5
clr.w d7
cmpi.w #8,d5
blt.s loc_6000A75E
cmpi.w #$C,d5
ble.s loc_6000A768
loc_6000A75E: ; CODE XREF: sub_6000A740+16â†j
move.w #$FFCE,arg_6(a6)
bra.w loc_6000A852
; ---------------------------------------------------------------------------
loc_6000A768: ; CODE XREF: sub_6000A740+1Câ†j
move.w d5,d0
subq.w #8,d0
bmi.s loc_6000A7AE
cmpi.w #4,d0
bgt.s loc_6000A7AE
add.w d0,d0
move.w unk_6000A77E(pc,d0.w),d0
; ---------------------------------------------------------------------------
dc.b $4E
dc.b $FB
dc.b 0
dc.b 0
unk_6000A77E: dc.b 0
dc.b $C
dc.b 0
dc.b $14
dc.b 0
dc.b $1C
dc.b 0
dc.b $2C ; ,
dc.b 0
dc.b $24 ; $
dc.b $2C ; ,
dc.b $3C ; <
dc.b $73 ; s
dc.b $66 ; f
dc.b $76 ; v
dc.b $72 ; r
dc.b $60 ; `
dc.b $1E
dc.b $2C ; ,
dc.b $3C ; <
dc.b $66 ; f
dc.b $6F ; o
dc.b $76 ; v
dc.b $72 ; r
dc.b $60 ; `
dc.b $16
dc.b $2C ; ,
dc.b $3C ; <
dc.b $6E ; n
dc.b $6C ; l
dc.b $69 ; i
dc.b $62 ; b
dc.b $60 ; `
dc.b $E
dc.b $2C ; ,
dc.b $3C ; <
dc.b $6E ; n
dc.b $63 ; c
dc.b $6F ; o
dc.b $64 ; d
dc.b $60 ; `
dc.b 6
dc.b $2C ; ,
dc.b $3C ; <
dc.b $6E ; n
dc.b $74 ; t
dc.b $72 ; r
dc.b $62 ; b
; ---------------------------------------------------------------------------
loc_6000A7AE: ; CODE XREF: sub_6000A740+2Câ†j
; sub_6000A740+32â†j
move.w arg_2(a6),d0
ext.l d0
move.l d0,-(sp)
move.l d6,-(sp)
pea var_11A(a6)
jsr sub_6000A5EC
move.w d0,d7
lea $C(sp),sp
bne.w loc_6000A84E
move.w d5,d0
subq.w #8,d0
bmi.s loc_6000A84E
cmpi.w #4,d0
bgt.s loc_6000A84E
add.w d0,d0
move.w unk_6000A7E0(pc,d0.w),d0
; ---------------------------------------------------------------------------
dc.b $4E
dc.b $FB
dc.b 0
dc.b 0
unk_6000A7E0: dc.b 0
dc.b $C
dc.b 0
dc.b $1E
dc.b 0
dc.b $3A ; :
dc.b 0
dc.b $64 ; d
dc.b 0
dc.b $56 ; V
dc.b $70 ; p
dc.b 0
dc.b $2F ; /
dc.b 0
dc.b $48 ; H
dc.b $6E ; n
dc.b $FE
dc.b $E6
dc.b $4E ; N
dc.b $BA
dc.b $F8
dc.b $CA
dc.b $3E ; >
dc.b 0
dc.b $50 ; P
dc.b $4F ; O
dc.b $60 ; `
dc.b $52 ; R
dc.b $70 ; p
dc.b 0
dc.b $30 ; 0
dc.b 4
dc.b $72 ; r
dc.b 1
dc.b $C2
dc.b $40 ; @
dc.b $70 ; p
dc.b 0
dc.b $30 ; 0
dc.b 1
dc.b $2F ; /
dc.b 0
dc.b $48 ; H
dc.b $6E ; n
dc.b $FE
dc.b $E6
dc.b $4E ; N
dc.b $BA
dc.b $F8
dc.b $AE
dc.b $3E ; >
dc.b 0
dc.b $50 ; P
dc.b $4F ; O
dc.b $60 ; `
dc.b $36 ; 6
dc.b $70 ; p
dc.b 0
dc.b $30 ; 0
dc.b 4
dc.b $72 ; r
dc.b 1
dc.b $C2
dc.b $40 ; @
dc.b $70 ; p
dc.b 0
dc.b $30 ; 0
dc.b 1
dc.b $2F ; /
dc.b 0
dc.b $48 ; H
dc.b $6E ; n
dc.b $FE
dc.b $E6
dc.b $4E ; N
dc.b $BA
dc.b $FC
dc.b $3C ; <
dc.b $3E ; >
dc.b 0
dc.b $50 ; P
dc.b $4F ; O
dc.b $60 ; `
dc.b $1A
dc.b $48 ; H
dc.b $6E ; n
dc.b $FE
dc.b $E6
dc.b $4E ; N
dc.b $BA
dc.b $FD
dc.b $3A ; :
dc.b $3E ; >
dc.b 0
dc.b $58 ; X
dc.b $4F ; O
dc.b $60 ; `
dc.b $C
dc.b $48 ; H
dc.b $6E ; n
dc.b $FE
dc.b $E6
dc.b $4E ; N
dc.b $BA
dc.b $FD
dc.b $5E ; ^
dc.b $3E ; >
dc.b 0
dc.b $58 ; X
dc.b $4F ; O
; ---------------------------------------------------------------------------
loc_6000A84E: ; CODE XREF: sub_6000A740+86â†j
; sub_6000A740+8Eâ†j ...
move.w d7,arg_6(a6)
loc_6000A852: ; CODE XREF: sub_6000A740+24â†j
movem.l var_12A(a6),d4-d7
unlk a6
rtd #6
; End of function sub_6000A740
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000A85E: ; CODE XREF: sub_6000A0BE+116â†p
var_1E set -$1E
var_D set -$D
var_C set -$C
var_8 set -8
var_4 set -4
arg_0 set 8
arg_4 set $C
arg_8 set $10
link a6,#-$E
movem.l d7/a2-a4,-(sp)
movea.l arg_8(a6),a2
movea.l arg_4(a6),a3
movea.l arg_0(a6),a4
clr.w d7
moveq #0,d0
move.l d0,var_8(a6)
move.l d0,var_4(a6)
move.l a4,d0
bne.s loc_6000A888
moveq #$FFFFFFCE,d7
bra.w loc_6000A90E
; ---------------------------------------------------------------------------
loc_6000A888: ; CODE XREF: sub_6000A85E+22â†j
move.l a2,d0
bne.s loc_6000A8CA
subq.l #2,sp
moveq #1,d0
move.l d0,-(sp)
move.l a3,-(sp)
pea unk_6000A930
pea var_D(a6)
pea var_C(a6)
pea var_8(a6)
move.w #$FFF6,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.s loc_6000A90E
subq.l #4,sp
moveq #3,d0
move.b d0,-(sp)
move.b #$82,-(sp)
move.l a4,-(sp)
move.l a3,-(sp)
movea.l var_8(a6),a0
jsr (a0)
move.l (sp)+,d0
move.w d0,d7
bne.s loc_6000A90E
bra.s loc_6000A90E
; ---------------------------------------------------------------------------
loc_6000A8CA: ; CODE XREF: sub_6000A85E+2Câ†j
jsr sub_60009FE4
move.l d0,(a2)
subq.l #2,sp
moveq #1,d0
move.l d0,-(sp)
move.l a3,-(sp)
pea unk_6000A91A
pea var_D(a6)
pea var_C(a6)
pea var_4(a6)
move.w #$FFF6,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.s loc_6000A90E
movea.l var_4(a6),a0
move.w #$AA5A,d0
dc.w $A647 ; _SetToolTrapAddress
subq.l #2,sp
moveq #1,d0
move.l d0,-(sp)
move.l a4,-(sp)
move.l a3,-(sp)
move.w #$FFEF,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
loc_6000A90E: ; CODE XREF: sub_6000A85E+26â†j
; sub_6000A85E+4Eâ†j ...
move.w d7,d0
movem.l var_1E(a6),d7/a2-a4
unlk a6
rts
; End of function sub_6000A85E
; ---------------------------------------------------------------------------
unk_6000A91A: dc.b $13 ; DATA XREF: sub_6000A85E+7Aâ†o
dc.b $5F ; _
dc.b $43 ; C
dc.b $46 ; F
dc.b $4D ; M
dc.b $36 ; 6
dc.b $38 ; 8
dc.b $4B ; K
dc.b $54 ; T
dc.b $72 ; r
dc.b $61 ; a
dc.b $70 ; p
dc.b $48 ; H
dc.b $61 ; a
dc.b $6E ; n
dc.b $64 ; d
dc.b $6C ; l
dc.b $65 ; e
dc.b $72 ; r
dc.b $5F ; _
dc.b 0
dc.b 0
unk_6000A930: dc.b $18 ; DATA XREF: sub_6000A85E+36â†o
dc.b $43 ; C
dc.b $46 ; F
dc.b $72 ; r
dc.b $61 ; a
dc.b $67 ; g
dc.b $49 ; I
dc.b $6E ; n
dc.b $69 ; i
dc.b $74 ; t
dc.b $69 ; i
dc.b $61 ; a
dc.b $6C ; l
dc.b $69 ; i
dc.b $7A ; z
dc.b $61 ; a
dc.b $74 ; t
dc.b $69 ; i
dc.b $6F ; o
dc.b $6E ; n
dc.b $52 ; R
dc.b $44 ; D
dc.b $65 ; e
dc.b $73 ; s
dc.b $63 ; c
dc.b 0
dc.b $4E ; N
dc.b $56 ; V
dc.b $FF
dc.b $A4
dc.b $48 ; H
dc.b $E7
dc.b 3
dc.b $18
dc.b $26 ; &
dc.b $6E ; n
dc.b 0
dc.b 8
dc.b $55 ; U
dc.b $8F
dc.b $A9
dc.b $94
dc.b $3C ; <
dc.b $1F
dc.b $55 ; U
dc.b $8F
dc.b $3F ; ?
dc.b $3C ; <
dc.b $80
dc.b 0
dc.b $2F ; /
dc.b $3C ; <
dc.b $70 ; p
dc.b $72 ; r
dc.b $65 ; e
dc.b $66 ; f
dc.b $70 ; p
dc.b 0
dc.b $1F
dc.b 0
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $A6
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $AC
dc.b $70 ; p
dc.b 0
dc.b $A8
dc.b $23 ; #
dc.b $4A ; J
dc.b $5F ; _
dc.b $66 ; f
dc.b 0
dc.b 1
dc.b $4E ; N
dc.b $55 ; U
dc.b $8F
dc.b $3F ; ?
dc.b $2E ; .
dc.b $FF
dc.b $A6
dc.b $2F ; /
dc.b $2E ; .
dc.b $FF
dc.b $AC
dc.b $48 ; H
dc.b $7A ; z
dc.b 1
dc.b $66 ; f
dc.b $70 ; p
dc.b 3
dc.b $1F
dc.b 0
dc.b $A8
dc.b $1A
dc.b $3E ; >
dc.b $1F
dc.b $C
dc.b $47 ; G
dc.b $FF
dc.b $FF
dc.b $66 ; f
dc.b $38 ; 8
dc.b $55 ; U
dc.b $8F
dc.b $3F ; ?
dc.b $3C ; <
dc.b $80
dc.b 0
dc.b $2F ; /
dc.b $3C ; <
dc.b $6D ; m
dc.b $61 ; a
dc.b $63 ; c
dc.b $73 ; s
dc.b $70 ; p
dc.b 0
dc.b $1F
dc.b 0
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $A4
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $A8
dc.b $70 ; p
dc.b 0
dc.b $A8
dc.b $23 ; #
dc.b $4A ; J
dc.b $5F ; _
dc.b $66 ; f
dc.b 0
dc.b 1
dc.b $10
dc.b $55 ; U
dc.b $8F
dc.b $3F ; ?
dc.b $2E ; .
dc.b $FF
dc.b $A4
dc.b $2F ; /
dc.b $2E ; .
dc.b $FF
dc.b $A8
dc.b $48 ; H
dc.b $7A ; z
dc.b 1
dc.b $28 ; (
dc.b $70 ; p
dc.b 3
dc.b $1F
dc.b 0
dc.b $A8
dc.b $1A
dc.b $3E ; >
dc.b $1F
dc.b $C
dc.b $47 ; G
dc.b $FF
dc.b $FF
dc.b $66 ; f
dc.b 0
dc.b 0
dc.b $B6
dc.b $3F ; ?
dc.b $2E ; .
dc.b $FF
dc.b $A6
dc.b $2F ; /
dc.b $2E ; .
dc.b $FF
dc.b $AC
dc.b $48 ; H
dc.b $7A ; z
dc.b 1
dc.b $C
dc.b $A8
dc.b $1B
dc.b $55 ; U
dc.b $8F
dc.b $3F ; ?
dc.b $2E ; .
dc.b $FF
dc.b $A6
dc.b $2F ; /
dc.b $2E ; .
dc.b $FF
dc.b $AC
dc.b $48 ; H
dc.b $7A ; z
dc.b 0
dc.b $FC
dc.b $70 ; p
dc.b 3
dc.b $1F
dc.b 0
dc.b $A8
dc.b $1A
dc.b $3E ; >
dc.b $1F
dc.b $C
dc.b $47 ; G
dc.b $FF
dc.b $FF
dc.b $67 ; g
dc.b 0
dc.b 0
dc.b $C6
dc.b $41 ; A
dc.b $FA
dc.b 0
dc.b $E8
dc.b $2D ; -
dc.b $48 ; H
dc.b $FF
dc.b $C2
dc.b $3D ; =
dc.b $6E ; n
dc.b $FF
dc.b $A6
dc.b $FF
dc.b $C6
dc.b $42 ; B
dc.b $6E ; n
dc.b $FF
dc.b $CC
dc.b $2D ; -
dc.b $6E ; n
dc.b $FF
dc.b $AC
dc.b $FF
dc.b $E0
dc.b $41 ; A
dc.b $EE
dc.b $FF
dc.b $B0
dc.b $A2
dc.b $C
dc.b $4A ; J
dc.b $40 ; @
dc.b $66 ; f
dc.b $32 ; 2
dc.b $41 ; A
dc.b $FA
dc.b 0
dc.b $C6
dc.b $2D ; -
dc.b $48 ; H
dc.b $FF
dc.b $C2
dc.b $3D ; =
dc.b $6E ; n
dc.b $FF
dc.b $A6
dc.b $FF
dc.b $C6
dc.b $42 ; B
dc.b $6E ; n
dc.b $FF
dc.b $CC
dc.b $2D ; -
dc.b $6E ; n
dc.b $FF
dc.b $AC
dc.b $FF
dc.b $E0
dc.b $2D ; -
dc.b $7C ; |
dc.b $4E ; N
dc.b $55 ; U
dc.b $42 ; B
dc.b $43 ; C
dc.b $FF
dc.b $D0
dc.b $2D ; -
dc.b $7C ; |
dc.b $6E ; n
dc.b $75 ; u
dc.b $62 ; b
dc.b $63 ; c
dc.b $FF
dc.b $D4
dc.b $42 ; B
dc.b $6E ; n
dc.b $FF
dc.b $D8
dc.b $41 ; A
dc.b $EE
dc.b $FF
dc.b $B0
dc.b $A2
dc.b $D
dc.b $70 ; p
dc.b $10
dc.b $A1
dc.b $22 ; "
dc.b $28 ; (
dc.b $48 ; H
dc.b $20
dc.b $C
dc.b $66 ; f
dc.b $A
dc.b $3F ; ?
dc.b 7
dc.b $A9
dc.b $9A
dc.b $3F ; ?
dc.b 6
dc.b $A9
dc.b $98
dc.b $60 ; `
dc.b $5C ; \
dc.b $20
dc.b $54 ; T
dc.b $22 ; "
dc.b $4B ; K
dc.b $20
dc.b $D9
dc.b $20
dc.b $D9
dc.b $20
dc.b $D9
dc.b $20
dc.b $D9
dc.b $2F ; /
dc.b $C
dc.b $2F ; /
dc.b $3C ; <
dc.b $6E ; n
dc.b $62 ; b
dc.b $63 ; c
dc.b $66 ; f
dc.b $70 ; p
dc.b 1
dc.b $3F ; ?
dc.b 0
dc.b $48 ; H
dc.b $7A ; z
dc.b 0
dc.b $4C ; L
dc.b $A9
dc.b $AB
dc.b $60 ; `
dc.b $34 ; 4
dc.b $59 ; Y
dc.b $8F
dc.b $2F ; /
dc.b $3C ; <
dc.b $6E ; n
dc.b $62 ; b
dc.b $63 ; c
dc.b $66 ; f
dc.b $70 ; p
dc.b 1
dc.b $3F ; ?
dc.b 0
dc.b $A9
dc.b $A0
dc.b $28 ; (
dc.b $5F ; _
dc.b $4A ; J
dc.b $2E ; .
dc.b 0
dc.b $F
dc.b $67 ; g
dc.b $12
dc.b $20
dc.b $54 ; T
dc.b $22 ; "
dc.b $4B ; K
dc.b $20
dc.b $D9
dc.b $20
dc.b $D9
dc.b $20
dc.b $D9
dc.b $20
dc.b $D9
dc.b $2F ; /
dc.b $C
dc.b $A9
dc.b $AA
dc.b $60 ; `
dc.b $C
dc.b $20
dc.b $54 ; T
dc.b $22 ; "
dc.b $4B ; K
dc.b $22 ; "
dc.b $D8
dc.b $22 ; "
dc.b $D8
dc.b $22 ; "
dc.b $D8
dc.b $22 ; "
dc.b $D8
dc.b $3F ; ?
dc.b 7
dc.b $A9
dc.b $9A
dc.b $3F ; ?
dc.b 6
dc.b $A9
dc.b $98
dc.b $4C ; L
dc.b $EE
dc.b $18
dc.b $C0
dc.b $FF
dc.b $94
dc.b $4E ; N
dc.b $5E ; ^
dc.b $4E ; N
dc.b $75 ; u
dc.b $1A
dc.b $44 ; D
dc.b $65 ; e
dc.b $62 ; b
dc.b $75 ; u
dc.b $67 ; g
dc.b $67 ; g
dc.b $65 ; e
dc.b $72 ; r
dc.b $20
dc.b $4E ; N
dc.b $75 ; u
dc.b $62 ; b
dc.b $20
dc.b $43 ; C
dc.b $6F ; o
dc.b $6E ; n
dc.b $66 ; f
dc.b $69 ; i
dc.b $67 ; g
dc.b $75 ; u
dc.b $72 ; r
dc.b $61 ; a
dc.b $74 ; t
dc.b $69 ; i
dc.b $6F ; o
dc.b $6E ; n
dc.b 0
dc.b $18
dc.b $44 ; D
dc.b $65 ; e
dc.b $62 ; b
dc.b $75 ; u
dc.b $67 ; g
dc.b $67 ; g
dc.b $65 ; e
dc.b $72 ; r
dc.b $20
dc.b $4E ; N
dc.b $75 ; u
dc.b $62 ; b
dc.b $20
dc.b $50 ; P
dc.b $72 ; r
dc.b $65 ; e
dc.b $66 ; f
dc.b $65 ; e
dc.b $72 ; r
dc.b $65 ; e
dc.b $6E ; n
dc.b $63 ; c
dc.b $65 ; e
dc.b $73 ; s
dc.b 0
dc.b $4E ; N
dc.b $56 ; V
dc.b 0
dc.b 0
dc.b $2F ; /
dc.b $C
dc.b $28 ; (
dc.b $6E ; n
dc.b 0
dc.b $C
dc.b $42 ; B
dc.b $14
dc.b $70 ; p
dc.b 1
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $C
dc.b $4E ; N
dc.b $BA
dc.b $FE
dc.b $2C ; ,
dc.b $30 ; 0
dc.b $2E ; .
dc.b 0
dc.b $A
dc.b $28 ; (
dc.b $6E ; n
dc.b $FF
dc.b $FC
dc.b $4E ; N
dc.b $5E ; ^
dc.b $4E ; N
dc.b $75 ; u
dc.b $4E ; N
dc.b $56 ; V
dc.b $FF
dc.b $E2
dc.b $48 ; H
dc.b $E7
dc.b 1
dc.b $18
dc.b $2E ; .
dc.b $2E ; .
dc.b 0
dc.b 8
dc.b $47 ; G
dc.b $EE
dc.b $FF
dc.b $E6
dc.b $37 ; 7
dc.b $7C ; |
dc.b $4E ; N
dc.b $D0
dc.b 0
dc.b $18
dc.b $37 ; 7
dc.b $7C ; |
dc.b $50 ; P
dc.b $4F ; O
dc.b 0
dc.b $16
dc.b $37 ; 7
dc.b $7C ; |
dc.b $20
dc.b $5F ; _
dc.b 0
dc.b $14
dc.b $37 ; 7
dc.b $7C ; |
dc.b $4E ; N
dc.b $5E ; ^
dc.b 0
dc.b $12
dc.b $37 ; 7
dc.b $7C ; |
dc.b 0
dc.b $10
dc.b 0
dc.b $10
dc.b $37 ; 7
dc.b $7C ; |
dc.b $42 ; B
dc.b $6E ; n
dc.b 0
dc.b $E
dc.b $37 ; 7
dc.b $7C ; |
dc.b $FF
dc.b $FF
dc.b 0
dc.b $C
dc.b $37 ; 7
dc.b $7C ; |
dc.b $11
dc.b $11
dc.b 0
dc.b $A
dc.b $37 ; 7
dc.b $7C ; |
dc.b $20
dc.b $BC
dc.b 0
dc.b 8
dc.b $37 ; 7
dc.b $7C ; |
dc.b 0
dc.b 8
dc.b 0
dc.b 6
dc.b $37 ; 7
dc.b $7C ; |
dc.b $20
dc.b $6E ; n
dc.b 0
dc.b 4
dc.b $42 ; B
dc.b $6B ; k
dc.b 0
dc.b 2
dc.b $36 ; 6
dc.b $BC
dc.b $4E ; N
dc.b $56 ; V
dc.b $70 ; p
dc.b $1A
dc.b $A5
dc.b $1E
dc.b $28 ; (
dc.b $48 ; H
dc.b $20
dc.b $C
dc.b $66 ; f
dc.b 4
dc.b $70 ; p
dc.b $94
dc.b $60 ; `
dc.b $4A ; J
dc.b $70 ; p
dc.b $10
dc.b $22 ; "
dc.b 7
dc.b $E0
dc.b $A9
dc.b $37 ; 7
dc.b $41 ; A
dc.b 0
dc.b $A
dc.b $37 ; 7
dc.b $47 ; G
dc.b 0
dc.b $C
dc.b $20
dc.b $4B ; K
dc.b $22 ; "
dc.b $4C ; L
dc.b $70 ; p
dc.b $1A
dc.b $A0
dc.b $2E ; .
dc.b $20
dc.b $3C ; <
dc.b $63 ; c
dc.b $6E ; n
dc.b $66 ; f
dc.b $6E ; n
dc.b $20
dc.b $4C ; L
dc.b $43 ; C
dc.b $EE
dc.b $FF
dc.b $E2
dc.b $2F ; /
dc.b 9
dc.b $A5
dc.b $AD
dc.b $22 ; "
dc.b $5F ; _
dc.b $22 ; "
dc.b $88
dc.b $3E ; >
dc.b 0
dc.b $66 ; f
dc.b 8
dc.b $20
dc.b $6E ; n
dc.b $FF
dc.b $E2
dc.b $A0
dc.b $1F
dc.b $60 ; `
dc.b $12
dc.b $C
dc.b $47 ; G
dc.b $EA
dc.b $51 ; Q
dc.b $66 ; f
dc.b $C
dc.b $20
dc.b $3C ; <
dc.b $63 ; c
dc.b $6E ; n
dc.b $66 ; f
dc.b $6E ; n
dc.b $20
dc.b $4C ; L
dc.b $A3
dc.b $AD
dc.b $3E ; >
dc.b 0
dc.b $30 ; 0
dc.b 7
dc.b $4C ; L
dc.b $EE
dc.b $18
dc.b $80
dc.b $FF
dc.b $D6
dc.b $4E ; N
dc.b $5E ; ^
dc.b $4E ; N
dc.b $75 ; u
dc.b $4E ; N
dc.b $56 ; V
dc.b $FF
dc.b $E2
dc.b $48 ; H
dc.b $E7
dc.b 1
dc.b 8
dc.b $28 ; (
dc.b $6E ; n
dc.b 0
dc.b 8
dc.b $70 ; p
dc.b 0
dc.b $2D ; -
dc.b $40 ; @
dc.b $FF
dc.b $FC
dc.b $2D ; -
dc.b $40 ; @
dc.b $FF
dc.b $F8
dc.b $42 ; B
dc.b $6E ; n
dc.b $FF
dc.b $F6
dc.b $42 ; B
dc.b $6E ; n
dc.b $FF
dc.b $F4
dc.b $1D
dc.b $7C ; |
dc.b 0
dc.b 1
dc.b $FF
dc.b $F3
dc.b $42 ; B
dc.b $2E ; .
dc.b $FF
dc.b $F2
dc.b $42 ; B
dc.b $2E ; .
dc.b $FF
dc.b $F1
dc.b $1D
dc.b $7C ; |
dc.b 0
dc.b 1
dc.b $FF
dc.b $F0
dc.b $70 ; p
dc.b 0
dc.b $2F ; /
dc.b 0
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $F0
dc.b $4E ; N
dc.b $BA
dc.b $FD
dc.b $26 ; &
dc.b $55 ; U
dc.b $8F
dc.b $70 ; p
dc.b 1
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $C
dc.b $48 ; H
dc.b $7A ; z
dc.b 0
dc.b $96
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $E3
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $E4
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $E8
dc.b $3F ; ?
dc.b $3C ; <
dc.b $FF
dc.b $F6
dc.b $AA
dc.b $5A ; Z
dc.b $3E ; >
dc.b $1F
dc.b $50 ; P
dc.b $4F ; O
dc.b $66 ; f
dc.b $12
dc.b $20
dc.b $6E ; n
dc.b $FF
dc.b $E8
dc.b $43 ; C
dc.b $EE
dc.b $FF
dc.b $F0
dc.b $20
dc.b $D9
dc.b $20
dc.b $D9
dc.b $20
dc.b $D9
dc.b $20
dc.b $D9
dc.b $60 ; `
dc.b $10
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $F0
dc.b $48 ; H
dc.b $C7
dc.b $2F ; /
dc.b 7
dc.b $4E ; N
dc.b $BA
dc.b $FE
dc.b $A4
dc.b $50 ; P
dc.b $4F ; O
dc.b $60 ; `
dc.b $40 ; @
dc.b $55 ; U
dc.b $8F
dc.b $70 ; p
dc.b 1
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $C
dc.b $48 ; H
dc.b $7A ; z
dc.b 0
dc.b $40 ; @
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $E3
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $E4
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $EC
dc.b $3F ; ?
dc.b $3C ; <
dc.b $FF
dc.b $F6
dc.b $AA
dc.b $5A ; Z
dc.b $3E ; >
dc.b $1F
dc.b $66 ; f
dc.b $C
dc.b $2F ; /
dc.b $2E ; .
dc.b $FF
dc.b $EC
dc.b $4E ; N
dc.b $BA
dc.b $FE
dc.b $98
dc.b $58 ; X
dc.b $4F ; O
dc.b $60 ; `
dc.b $12
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $F0
dc.b $48 ; H
dc.b $C7
dc.b $2F ; /
dc.b 7
dc.b $4E ; N
dc.b $BA
dc.b $FE
dc.b $66 ; f
dc.b $50 ; P
dc.b $4F ; O
dc.b $60 ; `
dc.b 2
dc.b $30 ; 0
dc.b 7
dc.b $4C ; L
dc.b $EE
dc.b $10
dc.b $80
dc.b $FF
dc.b $DA
dc.b $4E ; N
dc.b $5E ; ^
dc.b $4E ; N
dc.b $75 ; u
dc.b $D
dc.b $6C ; l
dc.b $6C ; l
dc.b $4E ; N
dc.b $75 ; u
dc.b $62 ; b
dc.b $43 ; C
dc.b $6F ; o
dc.b $6E ; n
dc.b $66 ; f
dc.b $69 ; i
dc.b $67 ; g
dc.b $46 ; F
dc.b $6E ; n
dc.b 0
dc.b 0
dc.b $12
dc.b $6C ; l
dc.b $6C ; l
dc.b $4E ; N
dc.b $75 ; u
dc.b $62 ; b
dc.b $53 ; S
dc.b $74 ; t
dc.b $61 ; a
dc.b $72 ; r
dc.b $74 ; t
dc.b $75 ; u
dc.b $70 ; p
dc.b $43 ; C
dc.b $6F ; o
dc.b $6E ; n
dc.b $66 ; f
dc.b $69 ; i
dc.b $67 ; g
dc.b 0
dc.b $4E ; N
dc.b $56 ; V
dc.b $FF
dc.b $E2
dc.b $48 ; H
dc.b $E7
dc.b 7
dc.b $18
dc.b $26 ; &
dc.b $6E ; n
dc.b 0
dc.b 8
dc.b $70 ; p
dc.b 5
dc.b $FE
dc.b 4
dc.b $28 ; (
dc.b $48 ; H
dc.b $4A ; J
dc.b $AE
dc.b 0
dc.b $C
dc.b $66 ; f
dc.b 6
dc.b $70 ; p
dc.b $FF
dc.b $60 ; `
dc.b 0
dc.b 1
dc.b $26 ; &
dc.b $2A ; *
dc.b $2C ; ,
dc.b 0
dc.b $4C ; L
dc.b $29 ; )
dc.b $6E ; n
dc.b 0
dc.b $C
dc.b 0
dc.b $4C ; L
dc.b $55 ; U
dc.b $8F
dc.b $70 ; p
dc.b 1
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $B
dc.b $48 ; H
dc.b $7A ; z
dc.b 1
dc.b $62 ; b
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $E3
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $E4
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $E8
dc.b $3F ; ?
dc.b $3C ; <
dc.b $FF
dc.b $F6
dc.b $AA
dc.b $5A ; Z
dc.b $3E ; >
dc.b $1F
dc.b $66 ; f
dc.b $C
dc.b $2C ; ,
dc.b $2C ; ,
dc.b 0
dc.b $54 ; T
dc.b $29 ; )
dc.b $6E ; n
dc.b $FF
dc.b $E8
dc.b 0
dc.b $54 ; T
dc.b $60 ; `
dc.b $C
dc.b $70 ; p
dc.b 0
dc.b $29 ; )
dc.b $40 ; @
dc.b 0
dc.b $4C ; L
dc.b $30 ; 0
dc.b 7
dc.b $60 ; `
dc.b 0
dc.b 0
dc.b $E2
dc.b $55 ; U
dc.b $8F
dc.b $70 ; p
dc.b 1
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $B
dc.b $48 ; H
dc.b $7A ; z
dc.b 1
dc.b $10
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $E3
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $E4
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $F0
dc.b $3F ; ?
dc.b $3C ; <
dc.b $FF
dc.b $F6
dc.b $AA
dc.b $5A ; Z
dc.b $3E ; >
dc.b $1F
dc.b $66 ; f
dc.b 8
dc.b $20
dc.b $6E ; n
dc.b $FF
dc.b $F0
dc.b $20
dc.b $85
dc.b $60 ; `
dc.b 8
dc.b $20
dc.b $6E ; n
dc.b $FF
dc.b $F0
dc.b $70 ; p
dc.b 0
dc.b $20
dc.b $80
dc.b $55 ; U
dc.b $8F
dc.b $70 ; p
dc.b 1
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $B
dc.b $48 ; H
dc.b $7A ; z
dc.b 0
dc.b $C6
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $E3
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $E4
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $F4
dc.b $3F ; ?
dc.b $3C ; <
dc.b $FF
dc.b $F6
dc.b $AA
dc.b $5A ; Z
dc.b $3E ; >
dc.b $1F
dc.b $66 ; f
dc.b 8
dc.b $20
dc.b $6E ; n
dc.b $FF
dc.b $F4
dc.b $20
dc.b $86
dc.b $60 ; `
dc.b 8
dc.b $20
dc.b $6E ; n
dc.b $FF
dc.b $F4
dc.b $70 ; p
dc.b 0
dc.b $20
dc.b $80
dc.b $55 ; U
dc.b $8F
dc.b $70 ; p
dc.b 1
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $B
dc.b $48 ; H
dc.b $7A ; z
dc.b 0
dc.b $88
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $E3
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $E4
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $EC
dc.b $3F ; ?
dc.b $3C ; <
dc.b $FF
dc.b $F6
dc.b $AA
dc.b $5A ; Z
dc.b $3E ; >
dc.b $1F
dc.b $66 ; f
dc.b $A
dc.b $20
dc.b $6E ; n
dc.b $FF
dc.b $EC
dc.b $29 ; )
dc.b $50 ; P
dc.b 0
dc.b 4
dc.b $60 ; `
dc.b $A
dc.b $70 ; p
dc.b 0
dc.b $29 ; )
dc.b $40 ; @
dc.b 0
dc.b $4C ; L
dc.b $30 ; 0
dc.b 7
dc.b $60 ; `
dc.b $46 ; F
dc.b $20
dc.b $3C ; <
dc.b $63 ; c
dc.b $70 ; p
dc.b $75 ; u
dc.b $74 ; t
dc.b $41 ; A
dc.b $EE
dc.b $FF
dc.b $F8
dc.b $22 ; "
dc.b $48 ; H
dc.b $A1
dc.b $AD
dc.b $22 ; "
dc.b $88
dc.b $4A ; J
dc.b $40 ; @
dc.b $66 ; f
dc.b $2A ; *
dc.b $55 ; U
dc.b $8F
dc.b $70 ; p
dc.b 1
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $B
dc.b $48 ; H
dc.b $7A ; z
dc.b 0
dc.b $32 ; 2
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $E3
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $E4
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $FC
dc.b $3F ; ?
dc.b $3C ; <
dc.b $FF
dc.b $F6
dc.b $AA
dc.b $5A ; Z
dc.b $3E ; >
dc.b $1F
dc.b $66 ; f
dc.b 8
dc.b $20
dc.b $6E ; n
dc.b $FF
dc.b $FC
dc.b $20
dc.b $AE
dc.b $FF
dc.b $F8
dc.b $2F ; /
dc.b $B
dc.b $4E ; N
dc.b $BA
dc.b $FD
dc.b $D0
dc.b $58 ; X
dc.b $4F ; O
dc.b $4C ; L
dc.b $EE
dc.b $18
dc.b $E0
dc.b $FF
dc.b $CE
dc.b $4E ; N
dc.b $5E ; ^
dc.b $4E ; N
dc.b $75 ; u
dc.b $A
dc.b $6E ; n
dc.b $75 ; u
dc.b $62 ; b
dc.b $43 ; C
dc.b $50 ; P
dc.b $55 ; U
dc.b $54 ; T
dc.b $79 ; y
dc.b $70 ; p
dc.b $65 ; e
dc.b 0
dc.b $A
dc.b $6E ; n
dc.b $75 ; u
dc.b $62 ; b
dc.b $45 ; E
dc.b $6E ; n
dc.b $61 ; a
dc.b $62 ; b
dc.b $6C ; l
dc.b $65 ; e
dc.b $73 ; s
dc.b 0
dc.b $16
dc.b $70 ; p
dc.b $72 ; r
dc.b $6F ; o
dc.b $63 ; c
dc.b $65 ; e
dc.b $73 ; s
dc.b $73 ; s
dc.b $4D ; M
dc.b $67 ; g
dc.b $72 ; r
dc.b $48 ; H
dc.b $61 ; a
dc.b $6E ; n
dc.b $64 ; d
dc.b $6C ; l
dc.b $65 ; e
dc.b $72 ; r
dc.b $50 ; P
dc.b $61 ; a
dc.b $72 ; r
dc.b $61 ; a
dc.b $6D ; m
dc.b 0
dc.b $15
dc.b $70 ; p
dc.b $72 ; r
dc.b $6F ; o
dc.b $63 ; c
dc.b $65 ; e
dc.b $73 ; s
dc.b $73 ; s
dc.b $4D ; M
dc.b $67 ; g
dc.b $72 ; r
dc.b $48 ; H
dc.b $61 ; a
dc.b $6E ; n
dc.b $64 ; d
dc.b $6C ; l
dc.b $65 ; e
dc.b $72 ; r
dc.b $41 ; A
dc.b $64 ; d
dc.b $64 ; d
dc.b $72 ; r
dc.b 0
dc.b 0
dc.b 5
dc.b $6E ; n
dc.b $75 ; u
dc.b $62 ; b
dc.b $50 ; P
dc.b $42 ; B
dc.b 0
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000AE76: ; CODE XREF: _LoadGoNative+86↓p
var_18 set -$18
arg_0 set 8
arg_4 set $C
arg_8 set $10
link a6,#-4
movem.l d4-d5/a2-a4,-(sp)
movea.l arg_0(a6),a3
move.l arg_8(a6),d4
move.l arg_4(a6),d5
move.l a3,d0
beq.s loc_6000AE92
tst.l (a3)
bne.s loc_6000AE96
loc_6000AE92: ; CODE XREF: sub_6000AE76+16â†j
moveq #0,d0
bra.s loc_6000AEC4
; ---------------------------------------------------------------------------
loc_6000AE96: ; CODE XREF: sub_6000AE76+1Aâ†j
movea.l (a3),a2
move.l (a2),d2
lea 4(a2),a4
bra.s loc_6000AEBE
; ---------------------------------------------------------------------------
loc_6000AEA0: ; CODE XREF: sub_6000AE76+4A↓j
cmp.l (a4),d5
bne.s loc_6000AEB8
move.l 4(a4),d1
cmp.l d1,d4
beq.s loc_6000AEB4
cmpi.l #$3F3F3F3F,d1
bne.s loc_6000AEB8
loc_6000AEB4: ; CODE XREF: sub_6000AE76+34â†j
moveq #1,d0
bra.s loc_6000AEC4
; ---------------------------------------------------------------------------
loc_6000AEB8: ; CODE XREF: sub_6000AE76+2Câ†j
; sub_6000AE76+3Câ†j
move.l d2,d0
subq.l #1,d2
addq.w #8,a4
loc_6000AEBE: ; CODE XREF: sub_6000AE76+28â†j
tst.l d2
bhi.s loc_6000AEA0
moveq #0,d0
loc_6000AEC4: ; CODE XREF: sub_6000AE76+1Eâ†j
; sub_6000AE76+40â†j
movem.l var_18(a6),d4-d5/a2-a4
unlk a6
rts
; End of function sub_6000AE76
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000AECE: ; CODE XREF: _LoadGoNative+B8↓p
; _LoadGoNative+C4↓p ...
var_13A set -$13A
var_120 set -$120
var_11C set -$11C
var_11A set -$11A
var_116 set -$116
var_114 set -$114
var_110 set -$110
var_10 set -$10
arg_2 set $A
arg_6 set $E
link a6,#-$122
movem.l d3-d7/a4,-(sp)
move.w arg_6(a6),d4
clr.w d7
move.w d4,d0
subq.w #8,d0
bmi.s loc_6000AF34
cmpi.w #9,d0
bgt.s loc_6000AF34
add.w d0,d0
move.w unk_6000AEF2(pc,d0.w),d0
; ---------------------------------------------------------------------------
dc.b $4E
dc.b $FB
dc.b 0
dc.b 0
unk_6000AEF2: dc.b 0
dc.b $16
dc.b 0
dc.b $1E
dc.b 0
dc.b $26 ; &
dc.b 0
dc.b $3E ; >
dc.b 0
dc.b $36 ; 6
dc.b 0
dc.b $44 ; D
dc.b 0
dc.b $44 ; D
dc.b 0
dc.b $44 ; D
dc.b 0
dc.b $44 ; D
dc.b 0
dc.b $2E ; .
dc.b $2A ; *
dc.b $3C ; <
dc.b $73 ; s
dc.b $66 ; f
dc.b $76 ; v
dc.b $72 ; r
dc.b $60 ; `
dc.b $26 ; &
dc.b $2A ; *
dc.b $3C ; <
dc.b $66 ; f
dc.b $6F ; o
dc.b $76 ; v
dc.b $72 ; r
dc.b $60 ; `
dc.b $1E
dc.b $2A ; *
dc.b $3C ; <
dc.b $6E ; n
dc.b $6C ; l
dc.b $69 ; i
dc.b $62 ; b
dc.b $60 ; `
dc.b $16
dc.b $2A ; *
dc.b $3C ; <
dc.b $6F ; o
dc.b $6C ; l
dc.b $69 ; i
dc.b $62 ; b
dc.b $60 ; `
dc.b $E
dc.b $2A ; *
dc.b $3C ; <
dc.b $6E ; n
dc.b $63 ; c
dc.b $6F ; o
dc.b $64 ; d
dc.b $60 ; `
dc.b 6
dc.b $2A ; *
dc.b $3C ; <
dc.b $6E ; n
dc.b $74 ; t
dc.b $72 ; r
dc.b $62 ; b
; ---------------------------------------------------------------------------
loc_6000AF34: ; CODE XREF: sub_6000AECE+12â†j
; sub_6000AECE+18â†j
move.w arg_2(a6),-(sp)
dc.w $A998 ; _UseResFile
subq.l #2,sp
move.l d5,-(sp)
dc.w $A80D ; _Count1Resources
move.w (sp)+,d3
moveq #1,d6
bra.w loc_6000B02A
; ---------------------------------------------------------------------------
loc_6000AF48: ; CODE XREF: sub_6000AECE+15E↓j
subq.l #4,sp
move.l d5,-(sp)
move.w d6,-(sp)
dc.w $A80E ; _Get1IndResource
movea.l (sp)+,a4
move.l a4,d0
beq.w loc_6000B026
move.l a4,-(sp)
pea var_11C(a6)
pea var_120(a6)
pea var_110(a6)
dc.w $A9A8 ; _GetResInfo
moveq #0,d0
move.b var_110(a6),d0
cmpi.b #$3F,d0 ; '?'
bls.s loc_6000AF7A
move.b #$3F,var_110(a6) ; '?'
loc_6000AF7A: ; CODE XREF: sub_6000AECE+A4â†j
move.l d5,var_11A(a6)
move.w var_11C(a6),var_116(a6)
move.l a4,var_114(a6)
moveq #0,d0
move.l d0,var_10(a6)
movea.l a4,a0
dc.w $A029 ; _HLock
move.l a4,-(sp)
dc.w $A992 ; _DetachResource
move.w d4,d0
subq.w #8,d0
bmi.w loc_6000B026
cmpi.w #9,d0
bgt.w loc_6000B026
add.w d0,d0
move.w unk_6000AFB0(pc,d0.w),d0
; ---------------------------------------------------------------------------
dc.b $4E
dc.b $FB
dc.b 0
dc.b 0
unk_6000AFB0: dc.b 0
dc.b $16
dc.b 0
dc.b $28 ; (
dc.b 0
dc.b $3A ; :
dc.b 0
dc.b $6C ; l
dc.b 0
dc.b $5E ; ^
dc.b 0
dc.b $78 ; x
dc.b 0
dc.b $78 ; x
dc.b 0
dc.b $78 ; x
dc.b 0
dc.b $78 ; x
dc.b 0
dc.b $4C ; L
dc.b $70 ; p
dc.b 0
dc.b $2F ; /
dc.b 0
dc.b $48 ; H
dc.b $6E ; n
dc.b $FE
dc.b $E6
dc.b $4E ; N
dc.b $BA
dc.b $F0
dc.b $F0
dc.b $3E ; >
dc.b 0
dc.b $50 ; P
dc.b $4F ; O
dc.b $60 ; `
dc.b $50 ; P
dc.b $70 ; p
dc.b 0
dc.b $2F ; /
dc.b 0
dc.b $48 ; H
dc.b $6E ; n
dc.b $FE
dc.b $E6
dc.b $4E ; N
dc.b $BA
dc.b $F0
dc.b $DE
dc.b $3E ; >
dc.b 0
dc.b $50 ; P
dc.b $4F ; O
dc.b $60 ; `
dc.b $3E ; >
dc.b $70 ; p
dc.b 1
dc.b $2F ; /
dc.b 0
dc.b $48 ; H
dc.b $6E ; n
dc.b $FE
dc.b $E6
dc.b $4E ; N
dc.b $BA
dc.b $F4
dc.b $76 ; v
dc.b $3E ; >
dc.b 0
dc.b $50 ; P
dc.b $4F ; O
dc.b $60 ; `
dc.b $2C ; ,
dc.b $70 ; p
dc.b 0
dc.b $2F ; /
dc.b 0
dc.b $48 ; H
dc.b $6E ; n
dc.b $FE
dc.b $E6
dc.b $4E ; N
dc.b $BA
dc.b $F4
dc.b $64 ; d
dc.b $3E ; >
dc.b 0
dc.b $50 ; P
dc.b $4F ; O
dc.b $60 ; `
dc.b $1A
dc.b $48 ; H
dc.b $6E ; n
dc.b $FE
dc.b $E6
dc.b $4E ; N
dc.b $BA
dc.b $F5
dc.b $62 ; b
dc.b $3E ; >
dc.b 0
dc.b $58 ; X
dc.b $4F ; O
dc.b $60 ; `
dc.b $C
dc.b $48 ; H
dc.b $6E ; n
dc.b $FE
dc.b $E6
dc.b $4E ; N
dc.b $BA
dc.b $F5
dc.b $86
dc.b $3E ; >
dc.b 0
dc.b $58 ; X
dc.b $4F ; O
; ---------------------------------------------------------------------------
loc_6000B026: ; CODE XREF: sub_6000AECE+86â†j
; sub_6000AECE+CCâ†j ...
move.w d6,d0
addq.w #1,d6
loc_6000B02A: ; CODE XREF: sub_6000AECE+76â†j
cmp.w d6,d3
bge.w loc_6000AF48
move.w d7,d0
movem.l var_13A(a6),d3-d7/a4
unlk a6
rts
; End of function sub_6000AECE
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
_LoadGoNative: ; CODE XREF: ROM:j__LoadGoNativeâ†j
var_186 set -$186
var_172 set -$172
var_160 set -$160
var_15C set -$15C
var_156 set -$156
var_154 set -$154
var_152 set -$152
var_14E set -$14E
var_142 set -$142
var_106 set -$106
var_104 set -$104
var_100 set -$100
arg_0 set 8
link a6,#-$172
movem.l d5-d7/a3-a4,-(sp)
lea var_100(a6),a3
subq.l #2,sp
move.w #$8000,-(sp)
move.l #'extn',-(sp)
moveq #0,d0
move.b d0,-(sp)
pea var_106(a6)
pea var_104(a6)
moveq #0,d0
dc.w $A823 ; _AliasDispatch
move.w (sp)+,d6
bne.w loc_6000B158
subq.l #2,sp
dc.w $A994 ; _CurResFile
move.w (sp)+,d5
subq.l #4,sp
move.l #'gnxt',-(sp)
move.w #$C000,-(sp)
dc.w $A81F ; _Get1Resource
movea.l (sp)+,a4
move.l a3,var_160(a6)
move.w var_106(a6),var_15C(a6)
move.l var_104(a6),var_142(a6)
move.w #1,var_156(a6)
bra.w loc_6000B146
; ---------------------------------------------------------------------------
loc_6000B09A: ; CODE XREF: _LoadGoNative+10C↓j
lea var_172(a6),a0
moveq #9,d0
dc.w $A260 ; _HFSDispatch
move.w d0,d6
bne.w loc_6000B146
moveq #$10,d0
and.b var_154(a6),d0
moveq #0,d1
move.b d0,d1
tst.l d1
bne.w loc_6000B138
move.l var_14E(a6),-(sp)
move.l var_152(a6),-(sp)
move.l a4,-(sp)
jsr sub_6000AE76
tst.b d0
lea $C(sp),sp
beq.s loc_6000B138
subq.l #2,sp
move.w var_106(a6),-(sp)
move.l var_104(a6),-(sp)
move.l var_160(a6),-(sp)
moveq #1,d0
move.b d0,-(sp)
dc.w $A81A ; _HOpenResFile
move.w (sp)+,d7
subq.l #2,sp
dc.w $A9AF ; _ResError
tst.w (sp)+
bne.s loc_6000B138
moveq #8,d0
move.l d0,-(sp)
ext.l d7
move.l d7,-(sp)
jsr sub_6000AECE
moveq #9,d0
move.l d0,-(sp)
ext.l d7
move.l d7,-(sp)
jsr sub_6000AECE
moveq #$A,d0
move.l d0,-(sp)
ext.l d7
move.l d7,-(sp)
jsr sub_6000AECE
moveq #$11,d0
move.l d0,-(sp)
ext.l d7
move.l d7,-(sp)
jsr sub_6000AECE
moveq #$C,d0
move.l d0,-(sp)
ext.l d7
move.l d7,-(sp)
jsr sub_6000AECE
moveq #$B,d0
move.l d0,-(sp)
ext.l d7
move.l d7,-(sp)
jsr sub_6000AECE
lea $30(sp),sp
loc_6000B138: ; CODE XREF: _LoadGoNative+78â†j
; _LoadGoNative+90â†j ...
move.w var_156(a6),d0
addq.w #1,var_156(a6)
move.l var_104(a6),var_142(a6)
loc_6000B146: ; CODE XREF: _LoadGoNative+5Aâ†j
; _LoadGoNative+68â†j
tst.w d6
beq.w loc_6000B09A
move.l a4,d0
beq.s loc_6000B154
move.l a4,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_6000B154: ; CODE XREF: _LoadGoNative+112â†j
move.w d5,-(sp)
dc.w $A998 ; _UseResFile
loc_6000B158: ; CODE XREF: _LoadGoNative+2Aâ†j
move.w d6,arg_0(a6)
movem.l var_186(a6),d5-d7/a3-a4
unlk a6
rts
; End of function _LoadGoNative
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000B166: ; CODE XREF: sub_6000B1C0+2A↓p
; sub_6000B28A+2A↓p
var_46 set -$46
var_3E set -$3E
var_2C set -$2C
var_28 set -$28
var_26 set -$26
var_22 set -$22
var_A set -$A
var_4 set -4
arg_0 set 8
arg_4 set $C
link a6,#-$3E
movem.l d7/a4,-(sp)
movea.l arg_4(a6),a4
subq.l #2,sp
move.l arg_0(a6),-(sp)
dc.w $A9A4 ; _HomeResFile
move.w (sp)+,d7
bne.s loc_6000B182
moveq #2,d7
bra.s loc_6000B18C
; ---------------------------------------------------------------------------
loc_6000B182: ; CODE XREF: sub_6000B166+16â†j
cmpi.w #1,d7
bne.s loc_6000B18C
moveq #$FFFFFFCE,d0
bra.s loc_6000B1B6
; ---------------------------------------------------------------------------
loc_6000B18C: ; CODE XREF: sub_6000B166+1Aâ†j
; sub_6000B166+20â†j
movea.l a4,a0
addq.l #6,a0
move.l a0,var_2C(a6)
clr.w var_28(a6)
move.w d7,var_26(a6)
clr.w var_22(a6)
lea var_3E(a6),a0
moveq #8,d0
dc.w $A260 ; _HFSDispatch
move.w d0,d7
move.w var_A(a6),(a4)
move.l var_4(a6),2(a4)
move.w d7,d0
loc_6000B1B6: ; CODE XREF: sub_6000B166+24â†j
movem.l var_46(a6),d7/a4
unlk a6
rts
; End of function sub_6000B166
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000B1C0: ; CODE XREF: sub_60009CA2â†j
var_17C set -$17C
var_164 set -$164
var_11E set -$11E
var_114 set -$114
var_14 set -$14
arg_0 set 8
arg_2 set $A
link a6,#-$164
movem.l d5-d7/a2-a4,-(sp)
subq.l #4,sp
move.l #$63667267,-(sp)
move.w arg_0(a6),-(sp)
dc.w $A81F ; _Get1Resource
movea.l (sp)+,a2
move.l a2,d0
bne.s loc_6000B1E4
move.w #$FF40,d7
bra.w loc_6000B27A
; ---------------------------------------------------------------------------
loc_6000B1E4: ; CODE XREF: sub_6000B1C0+1Aâ†j
pea var_164(a6)
move.l a2,-(sp)
jsr sub_6000B166
move.w d0,d7
addq.w #8,sp
tst.w d7
bne.w loc_6000B27A
movea.l a2,a0
dc.w $A069 ; _HGetState
move.b d0,d5
movea.l a2,a0
dc.w $A029 ; _HLock
movea.l (a2),a0
moveq #0,d6
move.w $1E(a0),d6
tst.l d6
lea $20(a0),a4
bra.s loc_6000B270
; ---------------------------------------------------------------------------
loc_6000B212: ; CODE XREF: sub_6000B1C0+B2↓j
moveq #0,d0
move.b $17(a4),d0
cmpi.w #1,d0
bne.s loc_6000B262
lea var_14(a6),a3
moveq #1,d0
move.l d0,(a3)
lea var_164(a6),a0
move.l a0,4(a3)
move.l $18(a4),8(a3)
move.l $1C(a4),$C(a3)
lea $2A(a4),a0
lea var_114(a6),a1
moveq #0,d0
move.b $2A(a4),d0
addq.w #1,d0
ext.l d0
dc.w $A22E ; _BlockMoveData
moveq #0,d0
move.l d0,-(sp)
pea var_11E(a6)
jsr sub_6000A0BE
move.w d0,d7
addq.w #8,sp
tst.w d7
bne.s loc_6000B27A
loc_6000B262: ; CODE XREF: sub_6000B1C0+5Câ†j
move.l d6,d0
subq.l #1,d6
moveq #0,d0
move.w $28(a4),d0
add.l a4,d0
movea.l d0,a4
loc_6000B270: ; CODE XREF: sub_6000B1C0+50â†j
tst.l d6
bgt.s loc_6000B212
movea.l a2,a0
move.b d5,d0
dc.w $A06A ; _HSetState
loc_6000B27A: ; CODE XREF: sub_6000B1C0+20â†j
; sub_6000B1C0+34â†j ...
move.w d7,arg_2(a6)
movem.l var_17C(a6),d5-d7/a2-a4
unlk a6
rtd #2
; End of function sub_6000B1C0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000B28A: ; CODE XREF: sub_6000B50A+4C↓p
var_180 set -$180
var_160 set -$160
var_11A set -$11A
var_110 set -$110
var_10 set -$10
arg_2 set $A
link a6,#-$164
movem.l d4-d7/a2-a4,-(sp)
subq.l #4,sp
move.l #$63667267,-(sp)
move.w arg_2(a6),-(sp)
dc.w $A81F ; _Get1Resource
movea.l (sp)+,a2
move.l a2,d0
bne.s loc_6000B2AE
move.w #$FF40,d6
bra.w loc_6000B342
; ---------------------------------------------------------------------------
loc_6000B2AE: ; CODE XREF: sub_6000B28A+1Aâ†j
pea var_160(a6)
move.l a2,-(sp)
jsr sub_6000B166
move.w d0,d6
addq.w #8,sp
bne.w loc_6000B342
movea.l a2,a0
dc.w $A069 ; _HGetState
move.b d0,d4
movea.l a2,a0
dc.w $A029 ; _HLock
movea.l (a2),a0
moveq #0,d5
move.w $1E(a0),d5
tst.l d5
lea $20(a0),a4
bra.s loc_6000B338
; ---------------------------------------------------------------------------
loc_6000B2DA: ; CODE XREF: sub_6000B28A+B0↓j
moveq #0,d0
move.b $17(a4),d0
cmpi.w #1,d0
bne.s loc_6000B32A
lea var_10(a6),a3
moveq #1,d0
move.l d0,(a3)
lea var_160(a6),a0
move.l a0,4(a3)
move.l $18(a4),8(a3)
move.l $1C(a4),$C(a3)
lea $2A(a4),a0
lea var_110(a6),a1
moveq #0,d0
move.b $2A(a4),d0
addq.w #1,d0
ext.l d0
dc.w $A22E ; _BlockMoveData
pea var_11A(a6)
jsr sub_6000B3B6
move.w d0,d7
addq.w #4,sp
beq.s loc_6000B32A
tst.w d6
bne.s loc_6000B32A
move.w d7,d6
loc_6000B32A: ; CODE XREF: sub_6000B28A+5Aâ†j
; sub_6000B28A+98â†j ...
move.l d5,d0
subq.l #1,d5
moveq #0,d0
move.w $28(a4),d0
add.l a4,d0
movea.l d0,a4
loc_6000B338: ; CODE XREF: sub_6000B28A+4Eâ†j
tst.l d5
bgt.s loc_6000B2DA
movea.l a2,a0
move.b d4,d0
dc.w $A06A ; _HSetState
loc_6000B342: ; CODE XREF: sub_6000B28A+20â†j
; sub_6000B28A+32â†j
move.w d6,d0
movem.l var_180(a6),d4-d7/a2-a4
unlk a6
rts
; End of function sub_6000B28A
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000B34E: ; CODE XREF: sub_6000B494+42↓p
var_5C set -$5C
var_50 set -$50
var_10 set -$10
arg_0 set 8
link a6,#-$50
movem.l d6-d7/a4,-(sp)
movea.l arg_0(a6),a4
moveq #0,d6
bra.s loc_6000B398
; ---------------------------------------------------------------------------
loc_6000B35E: ; CODE XREF: sub_6000B34E+5A↓j
subq.l #2,sp
pea var_50(a6)
move.l a4,-(sp)
moveq #1,d0
move.b d0,-(sp)
move.b d0,-(sp)
jsr off_60003EA2+2
tst.w (sp)+
bne.s loc_6000B394
subq.l #2,sp
pea var_10(a6)
moveq #0,d0
move.l d0,-(sp)
pea var_50(a6)
moveq #1,d1
move.b d1,-(sp)
move.w #$FFFC,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
beq.s loc_6000B3AA
move.w d7,d0
bra.s loc_6000B3AC
; ---------------------------------------------------------------------------
loc_6000B394: ; CODE XREF: sub_6000B34E+24â†j
move.l d6,d0
addq.l #1,d6
loc_6000B398: ; CODE XREF: sub_6000B34E+Eâ†j
subq.l #2,sp
move.l d6,-(sp)
pea var_50(a6)
move.w #$FFF7,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
beq.s loc_6000B35E
loc_6000B3AA: ; CODE XREF: sub_6000B34E+40â†j
moveq #0,d0
loc_6000B3AC: ; CODE XREF: sub_6000B34E+44â†j
movem.l var_5C(a6),d6-d7/a4
unlk a6
rts
; End of function sub_6000B34E
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000B3B6: ; CODE XREF: sub_6000B28A+90â†p
var_11E set -$11E
var_10E set -$10E
var_10A set -$10A
var_106 set -$106
var_6 set -6
var_1 set -1
arg_0 set 8
link a6,#-$10E
movem.l d6-d7/a3-a4,-(sp)
movea.l arg_0(a6),a3
lea $10A(a3),a4
subq.l #2,sp
moveq #1,d0
move.l d0,-(sp)
moveq #0,d1
move.l d1,-(sp)
pea $A(a3)
moveq #2,d0
move.l d0,-(sp)
move.l #$70777063,-(sp)
pea var_10A(a6)
pea var_6(a6)
pea var_1(a6)
pea var_106(a6)
move.w #$FFFE,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
beq.s loc_6000B3FC
clr.w d7
bra.s loc_6000B47A
; ---------------------------------------------------------------------------
loc_6000B3FC: ; CODE XREF: sub_6000B3B6+40â†j
tst.l (a4)
bne.s loc_6000B41A
movea.l 6(a3),a0
move.l (a0),4(a4)
subq.l #4,sp
move.l 6(a3),-(sp)
jsr sub_60004B2A
move.l (sp)+,8(a4)
clr.b $C(a4)
loc_6000B41A: ; CODE XREF: sub_6000B3B6+48â†j
subq.l #2,sp
moveq #1,d0
move.l d0,-(sp)
move.l a4,-(sp)
pea $A(a3)
move.l d0,-(sp)
move.l #$70777063,-(sp)
pea var_10E(a6)
pea var_6(a6)
pea var_1(a6)
pea var_106(a6)
move.w #$FFFE,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
beq.s loc_6000B456
cmpi.w #$F50C,d7
beq.s loc_6000B47A
cmpi.w #$F4FB,d7
beq.s loc_6000B47A
bra.s loc_6000B47A
; ---------------------------------------------------------------------------
loc_6000B456: ; CODE XREF: sub_6000B3B6+90â†j
move sr,d0
ori #$700,sr
move.w d0,d6
subq.l #2,sp
moveq #1,d0
move.l d0,-(sp)
move.l var_10A(a6),-(sp)
move.l var_10E(a6),-(sp)
move.w #$FFEF,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
move.w d6,-(sp)
move (sp)+,sr
tst.w d7
loc_6000B47A: ; CODE XREF: sub_6000B3B6+44â†j
; sub_6000B3B6+96â†j ...
tst.w d7
beq.s loc_6000B488
tst.l (a4)
bne.s loc_6000B488
movea.l 6(a3),a0
dc.w $A023 ; _DisposeHandle
loc_6000B488: ; CODE XREF: sub_6000B3B6+C6â†j
; sub_6000B3B6+CAâ†j
move.w d7,d0
movem.l var_11E(a6),d6-d7/a3-a4
unlk a6
rts
; End of function sub_6000B3B6
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000B494: ; CODE XREF: sub_6000B50A+2A↓p
var_18 set -$18
arg_2 set $A
link a6,#0
movem.l d4-d7/a3-a4,-(sp)
clr.w d6
subq.l #4,sp
move.l #$63667267,-(sp)
move.w arg_2(a6),-(sp)
dc.w $A81F ; _Get1Resource
movea.l (sp)+,a3
move.l a3,d0
bne.s loc_6000B4B8
move.w #$FF40,d6
bra.s loc_6000B4FE
; ---------------------------------------------------------------------------
loc_6000B4B8: ; CODE XREF: sub_6000B494+1Câ†j
movea.l a3,a0
dc.w $A069 ; _HGetState
move.b d0,d4
loc_6000B4BE:
movea.l a3,a0
dc.w $A029 ; _HLock
movea.l (a3),a0
moveq #0,d5
move.w $1E(a0),d5
tst.l d5
lea $20(a0),a4
bra.s loc_6000B4F4
; ---------------------------------------------------------------------------
loc_6000B4D2: ; CODE XREF: sub_6000B494+62↓j
pea $2A(a4)
jsr sub_6000B34E
move.w d0,d7
addq.w #4,sp
beq.s loc_6000B4E6
tst.w d6
bne.s loc_6000B4E6
move.w d7,d6
loc_6000B4E6: ; CODE XREF: sub_6000B494+4Aâ†j
; sub_6000B494+4Eâ†j
move.l d5,d0
subq.l #1,d5
moveq #0,d0
move.w $28(a4),d0
add.l a4,d0
movea.l d0,a4
loc_6000B4F4: ; CODE XREF: sub_6000B494+3Câ†j
tst.l d5
bgt.s loc_6000B4D2
movea.l a3,a0
move.b d4,d0
dc.w $A06A ; _HSetState
loc_6000B4FE: ; CODE XREF: sub_6000B494+22â†j
move.w d6,d0
movem.l var_18(a6),d4-d7/a3-a4
unlk a6
rts
; End of function sub_6000B494
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000B50A: ; CODE XREF: sub_60009CA6â†j
var_90 set -$90
var_88 set -$88
var_84 set -$84
var_78 set -$78
var_72 set -$72
var_6C set -$6C
var_68 set -$68
var_50 set -$50
var_4A set -$4A
var_46 set -$46
var_44 set -$44
var_40 set -$40
arg_2 set $A
arg_4 set $C
arg_6 set $E
arg_8 set $10
link a6,#-$88
movem.l d6-d7,-(sp)
move.w arg_6(a6),d6
clr.w d7
move.w #$AA5A,d0
dc.w $A746 ; _GetToolTrapAddress
move.l a0,var_88(a6)
move.w #$A89F,d0
dc.w $A746 ; _GetToolTrapAddress
move.l var_88(a6),d0
cmpa.l d0,a0
beq.s loc_6000B5A2
ext.l d6
move.l d6,-(sp)
jsr sub_6000B494
move.w d0,d7
addq.w #4,sp
tst.w d7
bne.s loc_6000B5A2
moveq #0,d0
move.w arg_2(a6),d0
moveq #1,d1
and.w d0,d1
moveq #0,d0
move.w d1,d0
tst.l d0
bne.s loc_6000B55E
ext.l d6
move.l d6,-(sp)
jsr sub_6000B28A
move.w d0,d7
addq.w #4,sp
loc_6000B55E: ; CODE XREF: sub_6000B50A+46â†j
moveq #0,d0
move.l d0,var_78(a6)
clr.w var_68(a6)
move.w arg_4(a6),var_6C(a6)
lea var_40(a6),a0
move.l a0,var_72(a6)
lea var_84(a6),a0
moveq #8,d0
dc.w $A260 ; _HFSDispatch
move.w d0,d7
bne.s loc_6000B5A2
move.w var_50(a6),var_46(a6)
move.l var_4A(a6),var_44(a6)
subq.l #2,sp
pea var_46(a6)
move.w d6,-(sp)
moveq #0,d0
move.b d0,-(sp)
move.w #$FFEA,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
loc_6000B5A2: ; CODE XREF: sub_6000B50A+24â†j
; sub_6000B50A+34â†j ...
move.w d7,arg_8(a6)
movem.l var_90(a6),d6-d7
unlk a6
rtd #8
; End of function sub_6000B50A
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000B5B2: ; CODE XREF: ROM:6000105Câ†p
var_4E set -$4E
var_3A set -$3A
var_36 set -$36
var_32 set -$32
var_2E set -$2E
var_2A set -$2A
var_26 set -$26
var_6 set -6
var_4 set -4
link a6,#-$3A
movem.l d3/d6-d7/a3-a4,-(sp)
clr.w var_6(a6)
subq.l #2,sp
dc.w $A994 ; _CurResFile
move.w (sp)+,d6
jsr sub_6000B958
move.l d0,d7
moveq #$40,d0 ; '@'
and.l d7,d0
beq.w loc_6000B802
subq.l #4,sp
move.l #$64666120,-(sp)
move.w #$AE6A,-(sp)
dc.w $A9A0 ; _GetResource
move.l (sp)+,var_2E(a6)
dc.w $A8FE ; _InitFonts
dc.w $A912 ; _InitWindows
dc.w $A930 ; _InitMenus
dc.w $A9CC ; _TEInit
moveq #0,d0
move.l d0,-(sp)
dc.w $A97B ; _InitDialogs
dc.w $A850 ; _InitCursor
pea var_36(a6)
dc.w $A874 ; _GetPort
subq.l #4,sp
move.w #$AE6A,-(sp)
moveq #0,d0
move.l d0,-(sp)
moveq #$FFFFFFFF,d1
move.l d1,-(sp)
dc.w $A97C ; _GetNewDialog
movea.l (sp)+,a3
moveq #$12,d0
dc.w $A122 ; _NewHandle
movea.l a0,a4
move.l a3,d0
beq.w loc_6000B7D2
tst.l var_2E(a6)
beq.w loc_6000B7D2
move.l a4,d0
beq.w loc_6000B7D2
move.l var_2E(a6),-(sp)
dc.w $A992 ; _DetachResource
movea.l var_2E(a6),a0
dc.w $A029 ; _HLock
movea.l var_2E(a6),a0
move.l (a0),var_4(a6)
movea.l a4,a0
dc.w $A029 ; _HLock
move.l a3,-(sp)
move.l (a4),-(sp)
dc.w $A918 ; _SetWRefCon
move.l #$10000,d0
and.l d7,d0
sne d3
neg.b d3
movea.l (a4),a0
move.b d3,8(a0)
subq.l #2,sp
pea var_3A(a6)
jsr sub_6000B87E
movea.l (a4),a0
move.b (sp)+,$C(a0)
movea.l (a4),a0
move.l var_3A(a6),$E(a0)
moveq #2,d0
move.l d0,-(sp)
move.l a3,-(sp)
jsr sub_6000BA1E
move.l a3,-(sp)
dc.w $A873 ; _SetPort
move.l a3,-(sp)
dc.w $A91F ; _SelectWindow
subq.l #2,sp
move.l a3,-(sp)
move.w #$20D,d0
dc.w $AA68 ; _DialogDispatch
move.l a3,-(sp)
dc.w $A915 ; _ShowWindow
dc.w $A850 ; _InitCursor
move.l #$FFFFE842,-(sp)
jsr sub_6000BC04
movea.l (a4),a0
move.l d0,(a0)
move.l a3,-(sp)
move.l (a4),-(sp)
dc.w $A918 ; _SetWRefCon
moveq #1,d0
move.w d0,-(sp)
dc.w $A9C8 ; _SysBeep
moveq #1,d0
move.l d0,-(sp)
move.l a3,-(sp)
jsr sub_6000BAB0
move.l a3,-(sp)
move.l $18(a3),-(sp)
dc.w $A978 ; _UpdateDialog
subq.l #2,sp
moveq #$FFFFFFFF,d0
move.w d0,-(sp)
moveq #1,d1
move.b d1,-(sp)
moveq #1,d0
move.l d0,-(sp)
pea var_32(a6)
pea sub_6000BDE0
moveq #0,d0
move.l d0,-(sp)
move.l a3,-(sp)
movea.l var_4(a6),a0
jsr (a0)
move.w (sp)+,d7
subq.l #4,sp
dc.w $A975 ; _TickCount
movea.l (a4),a0
move.l (sp)+,4(a0)
move.w d7,d0
subi.w #$FAD2,d0
lea $16(sp),sp
beq.s loc_6000B728
subq.w #5,d0
beq.s loc_6000B750
subq.w #1,d0
beq.s loc_6000B74C
subq.w #1,d0
beq.s loc_6000B740
subq.w #1,d0
beq.s loc_6000B73C
subq.w #1,d0
beq.s loc_6000B738
subq.w #2,d0
beq.s loc_6000B734
subq.w #1,d0
beq.s loc_6000B730
subq.w #2,d0
beq.s loc_6000B72C
subi.w #$520,d0
bne.s loc_6000B754
movea.l (a4),a0
move.b #1,8(a0)
moveq #5,d7
bra.s loc_6000B756
; ---------------------------------------------------------------------------
loc_6000B728: ; CODE XREF: sub_6000B5B2+142â†j
moveq #9,d7
bra.s loc_6000B756
; ---------------------------------------------------------------------------
loc_6000B72C: ; CODE XREF: sub_6000B5B2+162â†j
moveq #$A,d7
bra.s loc_6000B756
; ---------------------------------------------------------------------------
loc_6000B730: ; CODE XREF: sub_6000B5B2+15Eâ†j
moveq #$B,d7
bra.s loc_6000B756
; ---------------------------------------------------------------------------
loc_6000B734: ; CODE XREF: sub_6000B5B2+15Aâ†j
moveq #$C,d7
bra.s loc_6000B756
; ---------------------------------------------------------------------------
loc_6000B738: ; CODE XREF: sub_6000B5B2+156â†j
moveq #$D,d7
bra.s loc_6000B756
; ---------------------------------------------------------------------------
loc_6000B73C: ; CODE XREF: sub_6000B5B2+152â†j
moveq #$E,d7
bra.s loc_6000B756
; ---------------------------------------------------------------------------
loc_6000B740: ; CODE XREF: sub_6000B5B2+14Eâ†j
movea.l (a4),a0
move.b #1,8(a0)
moveq #$F,d7
bra.s loc_6000B756
; ---------------------------------------------------------------------------
loc_6000B74C: ; CODE XREF: sub_6000B5B2+14Aâ†j
moveq #$10,d7
bra.s loc_6000B756
; ---------------------------------------------------------------------------
loc_6000B750: ; CODE XREF: sub_6000B5B2+146â†j
moveq #$11,d7
bra.s loc_6000B756
; ---------------------------------------------------------------------------
loc_6000B754: ; CODE XREF: sub_6000B5B2+168â†j
moveq #$12,d7
loc_6000B756: ; CODE XREF: sub_6000B5B2+174â†j
; sub_6000B5B2+178â†j ...
ext.l d7
move.l d7,-(sp)
move.l a3,-(sp)
jsr sub_6000BA1E
moveq #1,d0
move.l d0,-(sp)
move.l a3,-(sp)
jsr sub_6000B9FC
move.l d0,var_2A(a6)
pea var_26(a6)
move.w #$AE6A,-(sp)
moveq #8,d0
move.w d0,-(sp)
jsr sub_6000437C
move.l var_2A(a6),-(sp)
pea var_26(a6)
dc.w $A95F ; _SetControlTitle
subq.l #2,sp
move.l a3,-(sp)
moveq #1,d0
move.w d0,-(sp)
move.w #$304,d0
dc.w $AA68 ; _DialogDispatch
move.l a3,-(sp)
jsr sub_6000BAD8
dc.w $A850 ; _InitCursor
lea $16(sp),sp
loc_6000B7A2: ; CODE XREF: sub_6000B5B2+200↓j
pea sub_6000BAF8
pea var_6(a6)
dc.w $A991 ; _ModalDialog
moveq #1,d0
cmp.w var_6(a6),d0
bne.s loc_6000B7A2
movea.l (a4),a0
tst.l (a0)
beq.s loc_6000B7C2
move.l (a0),-(sp)
jsr sub_6000BC96
addq.w #4,sp
loc_6000B7C2: ; CODE XREF: sub_6000B5B2+206â†j
movea.l (a4),a0
tst.l $E(a0)
beq.s loc_6000B7D2
move.l $E(a0),-(sp)
moveq #1,d0
dc.w $AA59 ; _MixedModeDispatch
loc_6000B7D2: ; CODE XREF: sub_6000B5B2+62â†j
; sub_6000B5B2+6Aâ†j ...
move.l var_36(a6),-(sp)
dc.w $A873 ; _SetPort
move.l a3,d0
beq.s loc_6000B7E0
move.l a3,-(sp)
dc.w $A983 ; _DisposeDialog
loc_6000B7E0: ; CODE XREF: sub_6000B5B2+228â†j
tst.l var_2E(a6)
beq.s loc_6000B7F2
movea.l var_2E(a6),a0
dc.w $A02A ; _HUnlock
movea.l var_2E(a6),a0
dc.w $A023 ; _DisposeHandle
loc_6000B7F2: ; CODE XREF: sub_6000B5B2+232â†j
move.l a4,d0
beq.s loc_6000B7FE
movea.l a4,a0
dc.w $A02A ; _HUnlock
movea.l a4,a0
dc.w $A023 ; _DisposeHandle
loc_6000B7FE: ; CODE XREF: sub_6000B5B2+242â†j
move.w d6,-(sp)
dc.w $A998 ; _UseResFile
loc_6000B802: ; CODE XREF: sub_6000B5B2+1Câ†j
movem.l var_4E(a6),d3/d6-d7/a3-a4
unlk a6
rts
; End of function sub_6000B5B2
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000B80C: ; CODE XREF: ROM:6000101Câ†p
var_74 set -$74
var_6C set -$6C
var_26 set -$26
var_22 set -$22
var_20 set -$20
arg_0 set 8
link a6,#-$6C
movem.l d7/a4,-(sp)
lea var_20(a6),a4
subq.l #2,sp
move.w #$8000,-(sp)
move.l #'macs',-(sp)
moveq #0,d0
move.b d0,-(sp)
pea var_22(a6)
pea var_26(a6)
moveq #0,d0
dc.w $A823 ; _AliasDispatch
move.w (sp)+,d7
bne.s loc_6000B86E
moveq #2,d0
move.l d0,var_26(a6)
move.l a4,-(sp)
move.w #$AE6A,-(sp)
moveq #1,d0
move.w d0,-(sp)
jsr sub_6000437C
subq.l #2,sp
move.w var_22(a6),-(sp)
move.l var_26(a6),-(sp)
move.l a4,-(sp)
pea var_6C(a6)
moveq #1,d0
dc.w $AA52 ; _HighLevelFSDispatch
move.w (sp)+,d7
cmpi.w #$FFD5,d7
bne.s loc_6000B86E
clr.b arg_0(a6)
bra.s loc_6000B874
; ---------------------------------------------------------------------------
loc_6000B86E: ; CODE XREF: sub_6000B80C+2Aâ†j
; sub_6000B80C+5Aâ†j
move.b #1,arg_0(a6)
loc_6000B874: ; CODE XREF: sub_6000B80C+60â†j
movem.l var_74(a6),d7/a4
unlk a6
rts
; End of function sub_6000B80C
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000B87E: ; CODE XREF: sub_6000B5B2+AAâ†p
var_11E set -$11E
var_10E set -$10E
var_10A set -$10A
var_105 set -$105
var_104 set -$104
var_4 set -4
arg_0 set 8
arg_4 set $C
link a6,#-$10E
movem.l d6-d7/a3-a4,-(sp)
movea.l arg_0(a6),a4
clr.b d6
moveq #0,d0
move.l d0,(a4)
dc.w $A11A ; _GetZone
movea.l a0,a3
subq.l #4,sp
move.l ($2A6).w,(sp)
movea.l (sp)+,a0
dc.w $A01B ; _SetZone
move.l #$75736220,d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
tst.w d0
bne.s loc_6000B920
moveq #1,d0
and.l var_4(a6),d0
beq.s loc_6000B920
subq.l #2,sp
pea unk_6000B944
move.l #$70777063,-(sp)
moveq #1,d0
move.l d0,-(sp)
pea var_10E(a6)
pea var_10A(a6)
pea var_104(a6)
move.w #1,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.s loc_6000B920
subq.l #2,sp
move.l var_10E(a6),-(sp)
pea unk_6000B934
pea var_10A(a6)
pea var_105(a6)
move.w #5,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.s loc_6000B912
subq.l #4,sp
move.l var_10A(a6),-(sp)
moveq #0,d0
move.l d0,-(sp)
moveq #1,d1
move.b d1,-(sp)
moveq #0,d0
dc.w $AA59 ; _MixedModeDispatch
move.l (sp)+,(a4)
moveq #1,d6
loc_6000B912: ; CODE XREF: sub_6000B87E+7Câ†j
subq.l #2,sp
pea var_10E(a6)
move.w #4,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
addq.w #2,sp
loc_6000B920: ; CODE XREF: sub_6000B87E+32â†j
; sub_6000B87E+3Aâ†j ...
movea.l a3,a0
dc.w $A01B ; _SetZone
move.b d6,arg_4(a6)
movem.l var_11E(a6),d6-d7/a3-a4
unlk a6
move.l (sp)+,(sp)
rts
; End of function sub_6000B87E
; ---------------------------------------------------------------------------
unk_6000B934: dc.b $E ; DATA XREF: sub_6000B87E+68â†o
dc.b $45 ; E
dc.b $78 ; x
dc.b $70 ; p
dc.b $65 ; e
dc.b $72 ; r
dc.b $74 ; t
dc.b $49 ; I
dc.b $64 ; d
dc.b $6C ; l
dc.b $65 ; e
dc.b $54 ; T
dc.b $61 ; a
dc.b $73 ; s
dc.b $6B ; k
dc.b 0
unk_6000B944: dc.b $12 ; DATA XREF: sub_6000B87E+3Eâ†o
dc.b $55 ; U
dc.b $53 ; S
dc.b $42 ; B
dc.b $46 ; F
dc.b $61 ; a
dc.b $6D ; m
dc.b $69 ; i
dc.b $6C ; l
dc.b $79 ; y
dc.b $45 ; E
dc.b $78 ; x
dc.b $70 ; p
dc.b $65 ; e
dc.b $72 ; r
dc.b $74 ; t
dc.b $4C ; L
dc.b $69 ; i
dc.b $62 ; b
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000B958: ; CODE XREF: sub_6000B5B2+12â†p
var_3E set -$3E
var_26 set -$26
var_6 set -6
var_4 set -4
link a6,#-$26
movem.l d4-d7/a3-a4,-(sp)
lea var_26(a6),a3
moveq #0,d7
subq.l #2,sp
dc.w $A994 ; _CurResFile
move.w (sp)+,d5
subq.l #2,sp
move.w #$8000,-(sp)
move.l #$70726566,-(sp)
moveq #0,d0
move.b d0,-(sp)
pea var_6(a6)
pea var_4(a6)
moveq #0,d0
dc.w $A823 ; _AliasDispatch
move.w (sp)+,d6
bne.s loc_6000B9EC
move.l a3,-(sp)
move.w #$AE6A,-(sp)
moveq #$13,d0
move.w d0,-(sp)
jsr sub_6000437C
subq.l #2,sp
move.w var_6(a6),-(sp)
move.l var_4(a6),-(sp)
move.l a3,-(sp)
moveq #1,d0
move.b d0,-(sp)
dc.w $A81A ; _HOpenResFile
move.w (sp)+,d6
cmpi.w #$FFFF,d6
beq.s loc_6000B9EC
subq.l #2,sp
dc.w $A9AF ; _ResError
tst.w (sp)+
bne.s loc_6000B9EC
subq.l #4,sp
move.l #$536D7274,-(sp)
moveq #1,d0
move.w d0,-(sp)
dc.w $A80E ; _Get1IndResource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_6000B9E8
movea.l a4,a0
dc.w $A029 ; _HLock
movea.l (a4),a0
move.l (a0),d4
move.l #$10040,d7
and.l d4,d7
movea.l a4,a0
dc.w $A02A ; _HUnlock
move.l a4,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_6000B9E8: ; CODE XREF: sub_6000B958+76â†j
move.w d6,-(sp)
dc.w $A99A ; _CloseResFile
loc_6000B9EC: ; CODE XREF: sub_6000B958+32â†j
; sub_6000B958+5Aâ†j ...
move.w d5,-(sp)
dc.w $A998 ; _UseResFile
move.l d7,d0
movem.l var_3E(a6),d4-d7/a3-a4
unlk a6
rts
; End of function sub_6000B958
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000B9FC: ; CODE XREF: sub_6000B5B2+1B4â†p
; sub_6000BA1E+1A↓p ...
var_E set -$E
var_C set -$C
var_4 set -4
arg_0 set 8
arg_6 set $E
link a6,#-$E
move.l arg_0(a6),-(sp)
move.w arg_6(a6),-(sp)
pea var_E(a6)
pea var_4(a6)
pea var_C(a6)
dc.w $A98D ; _GetDialogItem
move.l var_4(a6),d0
unlk a6
rts
; End of function sub_6000B9FC
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000BA1E: ; CODE XREF: sub_6000B5B2+C2â†p
; sub_6000B5B2+1AAâ†p
var_134 set -$134
var_120 set -$120
var_20 set -$20
arg_0 set 8
arg_6 set $E
link a6,#-$124
movem.l d7/a2-a4,-(sp)
movea.l arg_0(a6),a3
lea var_120(a6),a4
move.w arg_6(a6),d7
moveq #2,d0
move.l d0,-(sp)
move.l a3,-(sp)
jsr sub_6000B9FC
movea.l d0,a2
move.l a4,-(sp)
move.w #$AE6A,-(sp)
move.w d7,-(sp)
jsr sub_6000437C
cmpi.w #2,d7
addq.w #8,sp
beq.s loc_6000BA58
cmpi.w #3,d7
bne.s loc_6000BA72
loc_6000BA58: ; CODE XREF: sub_6000BA1E+32â†j
pea var_20(a6)
moveq #$FFFFFFFF,d0
move.l d0,-(sp)
jsr sub_6000BA86
pea var_20(a6)
move.l a4,-(sp)
jsr sub_6000BD54
lea $10(sp),sp
loc_6000BA72: ; CODE XREF: sub_6000BA1E+38â†j
move.l a2,-(sp)
move.l a4,-(sp)
dc.w $A98F ; _SetDialogItemText
move.l a3,-(sp)
dc.w $A981 ; _DrawDialog
movem.l var_134(a6),d7/a2-a4
unlk a6
rts
; End of function sub_6000BA1E
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000BA86: ; CODE XREF: sub_6000BA1E+42â†p
var_7E set -$7E
var_7A set -$7A
var_68 set -$68
var_64 set -$64
var_5E set -$5E
arg_2 set $A
arg_4 set $C
link a6,#-$7A
move.l d7,-(sp)
move.w arg_2(a6),var_64(a6)
movea.l arg_4(a6),a0
move.l a0,var_68(a6)
clr.b (a0)
clr.w var_5E(a6)
lea var_7A(a6),a0
dc.w $A207 ; _PBHGetVInfoSync
move.w d0,d7
move.l var_7E(a6),d7
unlk a6
rts
; End of function sub_6000BA86
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000BAB0: ; CODE XREF: sub_6000B5B2+FEâ†p
; sub_6000BDE0+84↓p
var_4 set -4
arg_0 set 8
arg_6 set $E
link a6,#0
move.l a4,-(sp)
moveq #3,d0
move.l d0,-(sp)
move.l arg_0(a6),-(sp)
jsr sub_6000B9FC
movea.l d0,a4
move.l a4,-(sp)
dc.w $A957 ; _ShowControl
move.l a4,-(sp)
move.w arg_6(a6),-(sp)
dc.w $A963 ; _SetControlValue
movea.l var_4(a6),a4
unlk a6
rts
; End of function sub_6000BAB0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000BAD8: ; CODE XREF: sub_6000B5B2+1E6â†p
var_4 set -4
arg_0 set 8
link a6,#0
move.l a4,-(sp)
moveq #3,d0
move.l d0,-(sp)
move.l arg_0(a6),-(sp)
jsr sub_6000B9FC
movea.l d0,a4
move.l a4,-(sp)
dc.w $A958 ; _HideControl
movea.l var_4(a6),a4
unlk a6
rts
; End of function sub_6000BAD8
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000BAF8: ; DATA XREF: sub_6000B5B2:loc_6000B7A2â†o
var_18 set -$18
var_8 set -8
var_4 set -4
arg_0 set 8
arg_4 set $C
arg_8 set $10
arg_C set $14
link a6,#-8
movem.l d6-d7/a3-a4,-(sp)
movea.l arg_8(a6),a3
movea.l arg_0(a6),a4
moveq #1,d7
subq.l #4,sp
move.l a3,-(sp)
dc.w $A917 ; _GetWRefCon
move.l (sp)+,var_8(a6)
subq.l #4,sp
dc.w $A975 ; _TickCount
movea.l var_8(a6),a0
move.l (sp)+,d6
sub.l 4(a0),d6
movea.l var_8(a6),a0
tst.b $C(a0)
beq.s loc_6000BB36
movea.l $E(a0),a0
move.l a0,var_4(a6)
jsr (a0)
loc_6000BB36: ; CODE XREF: sub_6000BAF8+32â†j
clr.w (a4)
moveq #$F,d0
cmp.l d6,d0
bge.w loc_6000BBD4
movea.l var_8(a6),a0
moveq #0,d0
move.b 8(a0),d0
cmpi.w #1,d0
bne.s loc_6000BB6E
cmpi.l #$1C20,d6
ble.s loc_6000BB6E
move.w #1,(a4)
move.w (a4),d0
ext.l d0
move.l d0,-(sp)
move.l a3,-(sp)
jsr sub_6000BD06
move.b d0,d7
addq.w #8,sp
bra.s loc_6000BBD4
; ---------------------------------------------------------------------------
loc_6000BB6E: ; CODE XREF: sub_6000BAF8+56â†j
; sub_6000BAF8+5Eâ†j
movea.l arg_4(a6),a0
move.w (a0),d0
subq.w #1,d0
beq.s loc_6000BBD2
subq.w #2,d0
beq.s loc_6000BB82
subq.w #3,d0
beq.s loc_6000BBCE
bra.s loc_6000BBD4
; ---------------------------------------------------------------------------
loc_6000BB82: ; CODE XREF: sub_6000BAF8+82â†j
movea.l arg_4(a6),a0
move.l #$FF,d0
and.l 2(a0),d0
subi.l #$1B,d0
beq.s loc_6000BBB8
subi.l #$13,d0
bne.s loc_6000BBBC
movea.l arg_4(a6),a0
moveq #0,d0
move.w $E(a0),d0
move.w #$100,d1
and.w d0,d1
moveq #0,d0
move.w d1,d0
tst.l d0
beq.s loc_6000BBBC
loc_6000BBB8: ; CODE XREF: sub_6000BAF8+9Eâ†j
move.w #1,(a4)
loc_6000BBBC: ; CODE XREF: sub_6000BAF8+A6â†j
; sub_6000BAF8+BEâ†j
move.w (a4),d0
ext.l d0
move.l d0,-(sp)
move.l a3,-(sp)
jsr sub_6000BD06
move.b d0,d7
addq.w #8,sp
bra.s loc_6000BBD4
; ---------------------------------------------------------------------------
loc_6000BBCE: ; CODE XREF: sub_6000BAF8+86â†j
move.l a3,-(sp)
dc.w $A969 ; _DrawControls
loc_6000BBD2: ; CODE XREF: sub_6000BAF8+7Eâ†j
clr.b d7
loc_6000BBD4: ; CODE XREF: sub_6000BAF8+44â†j
; sub_6000BAF8+74â†j ...
tst.b d7
beq.s loc_6000BBDC
moveq #1,d0
bra.s loc_6000BBF0
; ---------------------------------------------------------------------------
loc_6000BBDC: ; CODE XREF: sub_6000BAF8+DEâ†j
subq.l #2,sp
move.l a3,-(sp)
move.l arg_4(a6),-(sp)
move.l a4,-(sp)
jsr sub_60004960
moveq #0,d0
move.b (sp)+,d0
tst.l d0
loc_6000BBF0: ; CODE XREF: sub_6000BAF8+E2â†j
move.b d0,arg_C(a6)
movem.l var_18(a6),d6-d7/a3-a4
unlk a6
movea.l (sp)+,a0
lea $C(sp),sp
jmp (a0)
; End of function sub_6000BAF8
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000BC04: ; CODE XREF: sub_6000B5B2+E4â†p
var_10 set -$10
arg_2 set $A
link a6,#0
movem.l d3/d6-d7/a4,-(sp)
subq.l #4,sp
move.l #$61637572,-(sp)
move.w arg_2(a6),-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_6000BC8A
movea.l (a4),a0
clr.w 2(a0)
clr.w d7
bra.s loc_6000BC80
; ---------------------------------------------------------------------------
loc_6000BC2A: ; CODE XREF: sub_6000BC04+84↓j
ext.l d7
movea.l (a4),a0
move.l d7,d0
asl.l #2,d0
move.l 4(a0,d0.l),d6
swap d6
ext.l d6
subq.l #4,sp
move.w d6,-(sp)
dc.w $A9B9 ; _GetCursor
ext.l d7
movea.l (a4),a0
move.l d7,d0
asl.l #2,d0
move.l (sp)+,4(a0,d0.l)
ext.l d7
movea.l (a4),a0
move.l d7,d0
asl.l #2,d0
tst.l 4(a0,d0.l)
bne.s loc_6000BC7C
bra.s loc_6000BC70
; ---------------------------------------------------------------------------
loc_6000BC5C: ; CODE XREF: sub_6000BC04+6E↓j
ext.l d7
move.l d7,d0
subq.l #1,d0
movea.l (a4),a0
asl.l #2,d0
move.l 4(a0,d0.l),-(sp)
dc.w $A9A3 ; _ReleaseResource
move.w d7,d0
subq.w #1,d7
loc_6000BC70: ; CODE XREF: sub_6000BC04+56â†j
tst.w d7
bgt.s loc_6000BC5C
move.l a4,-(sp)
dc.w $A9A3 ; _ReleaseResource
moveq #0,d0
movea.l d0,a4
loc_6000BC7C: ; CODE XREF: sub_6000BC04+54â†j
move.w d7,d0
addq.w #1,d7
loc_6000BC80: ; CODE XREF: sub_6000BC04+24â†j
movea.l (a4),a0
cmp.w (a0),d7
bge.s loc_6000BC8A
move.l a4,d0
bne.s loc_6000BC2A
loc_6000BC8A: ; CODE XREF: sub_6000BC04+1Aâ†j
; sub_6000BC04+80â†j
move.l a4,d0
movem.l var_10(a6),d3/d6-d7/a4
unlk a6
rts
; End of function sub_6000BC04
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000BC96: ; CODE XREF: sub_6000B5B2+20Aâ†p
var_8 set -8
arg_0 set 8
link a6,#0
movem.l d7/a4,-(sp)
movea.l arg_0(a6),a4
clr.w d7
bra.s loc_6000BCB8
; ---------------------------------------------------------------------------
loc_6000BCA6: ; CODE XREF: sub_6000BC96+26↓j
ext.l d7
movea.l (a4),a0
move.l d7,d0
asl.l #2,d0
move.l 4(a0,d0.l),-(sp)
dc.w $A9A3 ; _ReleaseResource
move.w d7,d0
addq.w #1,d7
loc_6000BCB8: ; CODE XREF: sub_6000BC96+Eâ†j
movea.l (a4),a0
cmp.w (a0),d7
blt.s loc_6000BCA6
move.l a4,-(sp)
dc.w $A9A3 ; _ReleaseResource
movem.l var_8(a6),d7/a4
unlk a6
rts
; End of function sub_6000BC96
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000BCCC: ; CODE XREF: sub_6000BDE0+9E↓p
var_4 set -4
arg_0 set 8
link a6,#0
move.l a4,-(sp)
movea.l arg_0(a6),a4
movea.l (a4),a0
move.w 2(a0),d0
addq.w #1,2(a0)
ext.l d0
movea.l (a4),a0
asl.l #2,d0
movea.l 4(a0,d0.l),a0
move.l (a0),-(sp)
dc.w $A851 ; _SetCursor
movea.l (a4),a0
movea.l a0,a1
move.w 2(a0),d0
cmp.w (a1),d0
bne.s loc_6000BCFE
clr.w 2(a0)
loc_6000BCFE: ; CODE XREF: sub_6000BCCC+2Câ†j
movea.l var_4(a6),a4
unlk a6
rts
; End of function sub_6000BCCC
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000BD06: ; CODE XREF: sub_6000BAF8+6Câ†p
; sub_6000BAF8+CCâ†p ...
var_C set -$C
var_4 set -4
arg_0 set 8
arg_6 set $E
link a6,#-4
movem.l d7/a4,-(sp)
move.w arg_6(a6),d7
cmpi.w #1,d7
bne.s loc_6000BD48
ext.l d7
move.l d7,-(sp)
move.l arg_0(a6),-(sp)
jsr sub_6000B9FC
movea.l d0,a4
move.l a4,-(sp)
moveq #1,d0
move.w d0,-(sp)
dc.w $A95D ; _HiliteControl
movea.w #$A,a0
lea var_4(a6),a1
dc.w $A03B ; _Delay
move.l d0,(a1)
move.l a4,-(sp)
moveq #0,d0
move.w d0,-(sp)
dc.w $A95D ; _HiliteControl
moveq #1,d0
addq.w #8,sp
bra.s loc_6000BD4A
; ---------------------------------------------------------------------------
loc_6000BD48: ; CODE XREF: sub_6000BD06+10â†j
moveq #0,d0
loc_6000BD4A: ; CODE XREF: sub_6000BD06+40â†j
movem.l var_C(a6),d7/a4
unlk a6
rts
; End of function sub_6000BD06
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000BD54: ; CODE XREF: sub_6000BA1E+4Câ†p
var_10 set -$10
arg_0 set 8
arg_4 set $C
link a6,#0
movem.l d6-d7/a3-a4,-(sp)
movea.l arg_4(a6),a3
movea.l arg_0(a6),a4
moveq #1,d7
bra.s loc_6000BD8A
; ---------------------------------------------------------------------------
loc_6000BD68: ; CODE XREF: sub_6000BD54+3C↓j
moveq #0,d0
move.b (a4,d7.w),d0
cmpi.w #$5E,d0 ; '^'
bne.s loc_6000BD86
ext.l d7
move.l d7,d0
addq.l #1,d0
moveq #0,d1
move.b (a4,d0.l),d1
cmpi.w #$31,d1 ; '1'
beq.s loc_6000BD92
loc_6000BD86: ; CODE XREF: sub_6000BD54+1Eâ†j
move.w d7,d0
addq.w #1,d7
loc_6000BD8A: ; CODE XREF: sub_6000BD54+12â†j
moveq #0,d0
move.b (a4),d0
cmp.w d7,d0
bgt.s loc_6000BD68
loc_6000BD92: ; CODE XREF: sub_6000BD54+30â†j
moveq #0,d0
move.b (a4),d0
cmp.w d7,d0
ble.s loc_6000BDD6
moveq #0,d0
move.b (a3),d0
move.w d0,d6
subq.w #2,d6
ext.l d7
move.l d7,d0
addq.l #2,d0
lea (a4,d0.l),a0
ext.l d7
move.l d7,d0
addq.l #2,d0
ext.l d6
add.l d6,d0
lea (a4,d0.l),a1
moveq #0,d0
move.b (a4),d0
ext.l d7
sub.l d7,d0
subq.l #1,d0
dc.w $A22E ; _BlockMoveData
movea.l a3,a0
addq.l #1,a0
lea (a4,d7.w),a1
moveq #0,d0
move.b (a3),d0
dc.w $A22E ; _BlockMoveData
add.b d6,(a4)
loc_6000BDD6: ; CODE XREF: sub_6000BD54+44â†j
movem.l var_10(a6),d6-d7/a3-a4
unlk a6
rts
; End of function sub_6000BD54
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000BDE0: ; DATA XREF: sub_6000B5B2+11Câ†o
var_14 set -$14
arg_0 set 8
arg_4 set $C
arg_6 set $E
arg_A set $12
arg_C set $14
; FUNCTION CHUNK AT 6000000A SIZE 000000F0 BYTES
link a6,#-4
movem.l d7/a2-a4,-(sp)
clr.w d7
movea.l arg_0(a6),a4
subq.l #4,sp
move.l a4,-(sp)
dc.w $A917 ; _GetWRefCon
movea.l (sp)+,a3
move.w arg_4(a6),d0
cmpi.w #3,d0
bhi.s def_BE06
add.w d0,d0
move.w jpt_BE06(pc,d0.w),d0
; ---------------------------------------------------------------------------
dc.b $4E
dc.b $FB
dc.b 0
dc.b 0
jpt_BE06: dc.w $4C
dc.w $A
dc.w $4C
dc.b 0
dc.b $14
dc.b $2F ; /
dc.b $C
dc.b $30 ; 0
dc.b $3C ; <
dc.b 0
dc.b $C
dc.b $AA
dc.b $73 ; s
dc.b $60 ; `
dc.b $5C ; \
dc.b $70 ; p
dc.b 3
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $C
dc.b $4E ; N
dc.b $BA
dc.b $FB
dc.b $FA
dc.b $70 ; p
dc.b 0
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $C
dc.b $4E ; N
dc.b $BA
dc.b 1
dc.b $32 ; 2
dc.b $70 ; p
dc.b $64 ; d
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $C
dc.b $4E ; N
dc.b $BA
dc.b $FC
dc.b $78 ; x
dc.b $70 ; p
dc.b 1
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $C
dc.b $4E ; N
dc.b $BA
dc.b $FB
dc.b $BA
dc.b $24 ; $
dc.b $40 ; @
dc.b $2F ; /
dc.b $A
dc.b $70 ; p
dc.b 0
dc.b $3F ; ?
dc.b 0
dc.b $A9
dc.b $63 ; c
dc.b $4F ; O
dc.b $EF
dc.b 0
dc.b $20
dc.b $60 ; `
dc.b $24 ; $
; ---------------------------------------------------------------------------
def_BE06: ; CODE XREF: sub_6000BDE0+1Eâ†j
tst.b arg_6(a6)
beq.s loc_6000BE6A
moveq #0,d0
move.w arg_A(a6),d0
move.l d0,-(sp)
move.l a4,-(sp)
jsr sub_6000BAB0
addq.w #8,sp
loc_6000BE6A: ; CODE XREF: sub_6000BDE0+78â†j
move.l a4,-(sp)
jsr sub_6000BE98
moveq #0,d7
move.b d0,d7
tst.l d7
addq.w #4,sp
tst.l (a3)
beq.s loc_6000BE84
move.l (a3),-(sp)
jsr sub_6000BCCC
addq.w #4,sp
loc_6000BE84: ; CODE XREF: sub_6000BDE0+9Aâ†j
move.b d7,arg_C(a6)
movem.l var_14(a6),d7/a2-a4
unlk a6
movea.l (sp)+,a0
lea $C(sp),sp
jmp (a0)
; End of function sub_6000BDE0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000BE98: ; CODE XREF: sub_6000BDE0+8Câ†p
var_30 set -$30
var_1C set -$1C
var_18 set -$18
var_14 set -$14
var_12 set -$12
var_A set -$A
var_6 set -6
arg_0 set 8
link a6,#-$1C
movem.l d6-d7/a2-a4,-(sp)
movea.l arg_0(a6),a4
clr.b d7
subq.l #4,sp
move.l a4,-(sp)
dc.w $A917 ; _GetWRefCon
movea.l (sp)+,a3
tst.b $C(a3)
beq.s loc_6000BEBA
movea.l $E(a3),a2
jsr (a2)
loc_6000BEBA: ; CODE XREF: sub_6000BE98+1Aâ†j
moveq #$A,d0
lea var_14(a6),a0
dc.w $A031 ; _GetOSEvent
addq.w #1,d0
tst.b d0
beq.w loc_6000BF54
move.w var_14(a6),d0
subq.w #1,d0
beq.s loc_6000BED8
subq.w #2,d0
beq.s loc_6000BF26
bra.s loc_6000BF54
; ---------------------------------------------------------------------------
loc_6000BED8: ; CODE XREF: sub_6000BE98+38â†j
moveq #0,d0
move.l d0,var_1C(a6)
move.l var_A(a6),var_18(a6)
pea var_18(a6)
dc.w $A871 ; _GlobalToLocal
subq.l #2,sp
move.l var_18(a6),-(sp)
move.l a4,-(sp)
pea var_1C(a6)
dc.w $A96C ; _FindControl
move.w (sp)+,d6
tst.l var_1C(a6)
beq.s loc_6000BF12
subq.l #2,sp
move.l var_1C(a6),-(sp)
move.l var_18(a6),-(sp)
moveq #0,d0
move.l d0,-(sp)
dc.w $A968 ; _TrackControl
move.w (sp)+,d6
loc_6000BF12: ; CODE XREF: sub_6000BE98+66â†j
tst.w d6
beq.s loc_6000BF54
moveq #1,d0
move.l d0,-(sp)
move.l a4,-(sp)
jsr sub_6000BD06
move.b d0,d7
addq.w #8,sp
bra.s loc_6000BF54
; ---------------------------------------------------------------------------
loc_6000BF26: ; CODE XREF: sub_6000BE98+3Câ†j
move.l #$FF,d6
and.l var_12(a6),d6
cmpi.b #$2E,d6 ; '.'
bne.s loc_6000BF40
move.w var_6(a6),d0
; ---------------------------------------------------------------------------
dc.b $C0
dc.b $7C ; |
dc.b 1
dc.b 0
; ---------------------------------------------------------------------------
bne.s loc_6000BF46
loc_6000BF40: ; CODE XREF: sub_6000BE98+9Câ†j
cmpi.b #$1B,d6
bne.s loc_6000BF54
loc_6000BF46: ; CODE XREF: sub_6000BE98+A6â†j
moveq #1,d0
move.l d0,-(sp)
move.l a4,-(sp)
jsr sub_6000BD06
move.b d0,d7
addq.w #8,sp
loc_6000BF54: ; CODE XREF: sub_6000BE98+2Eâ†j
; sub_6000BE98+3Eâ†j ...
move.b d7,d0
movem.l var_30(a6),d6-d7/a2-a4
unlk a6
rts
; End of function sub_6000BE98
; ---------------------------------------------------------------------------
dc.b $4E ; N
dc.b $56 ; V
dc.b $FF
dc.b $FE
dc.b $48 ; H
dc.b $E7
dc.b $11
dc.b 8
dc.b $70 ; p
dc.b 3
dc.b $2F ; /
dc.b 0
dc.b $2F ; /
dc.b $2E ; .
dc.b 0
dc.b 8
dc.b $4E ; N
dc.b $BA
dc.b $FA
dc.b $8A
dc.b $28 ; (
dc.b $40 ; @
dc.b $20
dc.b $C
dc.b $50 ; P
dc.b $4F ; O
dc.b $66 ; f
dc.b 4
dc.b $70 ; p
dc.b $CE
dc.b $60 ; `
dc.b $2C ; ,
dc.b $4A ; J
dc.b $2E ; .
dc.b 0
dc.b $F
dc.b $57 ; W
dc.b $C3
dc.b $44 ; D
dc.b 3
dc.b $1D
dc.b $43 ; C
dc.b $FF
dc.b $FF
dc.b $55 ; U
dc.b $8F
dc.b $2F ; /
dc.b $C
dc.b $70 ; p
dc.b 0
dc.b $3F ; ?
dc.b 0
dc.b $2F ; /
dc.b $3C ; <
dc.b $69 ; i
dc.b $6E ; n
dc.b $64 ; d
dc.b $65 ; e
dc.b $72 ; r
dc.b 1
dc.b $2F ; /
dc.b 1
dc.b $48 ; H
dc.b $6E ; n
dc.b $FF
dc.b $FF
dc.b $30 ; 0
dc.b $3C ; <
dc.b 0
dc.b $12
dc.b $AA
dc.b $73 ; s
dc.b $3E ; >
dc.b $1F
dc.b $30 ; 0
dc.b 7
dc.b $4C ; L
dc.b $EE
dc.b $10
dc.b $88
dc.b $FF
dc.b $F2
dc.b $4E ; N
dc.b $5E ; ^
dc.b $4E ; N
dc.b $75 ; u
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000BFB6: ; CODE XREF: sub_6000C57A+26↓p
; SpecialCaseOriginaliMac+3C↓p
var_4 set -4
arg_0 set 8
arg_6 set $E
link a6,#0
move.l a4,-(sp)
subq.l #4,sp
move.l arg_0(a6),-(sp)
move.w arg_6(a6),-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_6000BFDE
tst.l (a4)
bne.s loc_6000BFDE
subq.l #2,sp
dc.w $A9AF ; _ResError
tst.w (sp)+
bne.s loc_6000BFDE
move.l a4,-(sp)
dc.w $A9A2 ; _LoadResource ; come-from patches = #1
loc_6000BFDE: ; CODE XREF: sub_6000BFB6+16â†j
; sub_6000BFB6+1Aâ†j ...
move.l a4,d0
beq.s loc_6000C010
tst.l (a4)
beq.s loc_6000C010
subq.l #2,sp
dc.w $A9AF ; _ResError
tst.w (sp)+
bne.s loc_6000C010
subq.l #4,sp
move.l a4,-(sp)
jsr sub_60004B2A
lea ($C).w,a0
addq.w #2,a0
cmpa.l (sp)+,a0
bhi.s loc_6000C010
movea.l (a4),a0
moveq #1,d0
cmp.l (a0),d0
bne.s loc_6000C010
move.l a4,-(sp)
dc.w $A992 ; _DetachResource
move.l a4,d0
bra.s loc_6000C01A
; ---------------------------------------------------------------------------
loc_6000C010: ; CODE XREF: sub_6000BFB6+2Aâ†j
; sub_6000BFB6+2Eâ†j ...
move.l a4,d0
beq.s loc_6000C018
move.l a4,-(sp)
dc.w $A9A3 ; _ReleaseResource
loc_6000C018: ; CODE XREF: sub_6000BFB6+5Câ†j
moveq #0,d0
loc_6000C01A: ; CODE XREF: sub_6000BFB6+58â†j
movea.l var_4(a6),a4
unlk a6
rts
; End of function sub_6000BFB6
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000C022: ; CODE XREF: sub_6000C57A+4A↓p
; SpecialCaseOriginaliMac+D6↓p
var_4 set -4
arg_0 set 8
link a6,#0
move.l a4,-(sp)
movea.l arg_0(a6),a4
move.l a4,d0
beq.s loc_6000C034
movea.l a4,a0
dc.w $A023 ; _DisposeHandle
loc_6000C034: ; CODE XREF: sub_6000C022+Câ†j
movea.l var_4(a6),a4
unlk a6
rts
; End of function sub_6000C022
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000C03C: ; CODE XREF: sub_6000C57A+40↓p
; SpecialCaseOriginaliMac+72↓p
var_14 set -$14
arg_0 set 8
arg_4 set $C
arg_8 set $10
arg_C set $14
link a6,#0
movem.l d5-d7/a3-a4,-(sp)
clr.b d6
tst.l arg_8(a6)
beq.s loc_6000C052
movea.l arg_8(a6),a0
clr.b (a0)
loc_6000C052: ; CODE XREF: sub_6000C03C+Eâ†j
tst.l arg_0(a6)
beq.w loc_6000C11C
movea.l arg_0(a6),a0
tst.l (a0)
beq.w loc_6000C11C
movea.l (a0),a0
moveq #1,d0
cmp.l (a0),d0
bne.w loc_6000C11C
movea.l arg_4(a6),a0
moveq #0,d0
move.b (a0),d0
tst.l d0
bls.w loc_6000C11C
movea.l arg_0(a6),a0
dc.w $A069 ; _HGetState
ext.w d0
move.w d0,d5
movea.l arg_0(a6),a0
dc.w $A029 ; _HLock
movea.l arg_0(a6),a0
movea.l (a0),a0
lea $C(a0),a4
movea.l arg_0(a6),a0
movea.l (a0),a0
move.l 8(a0),d7
bra.s loc_6000C110
; ---------------------------------------------------------------------------
loc_6000C0A2: ; CODE XREF: sub_6000C03C+D6↓j
subq.l #2,sp
move.l arg_4(a6),-(sp)
move.l a4,-(sp)
moveq #0,d0
move.b d0,-(sp)
moveq #1,d1
move.b d1,-(sp)
jsr sub_60004CCA
tst.b (sp)+
beq.s loc_6000C0F4
moveq #0,d0
move.b (a4),d0
add.l a4,d0
movea.l d0,a3
addq.w #1,a3
tst.l arg_8(a6)
beq.s loc_6000C0D8
subq.l #4,sp
move.l arg_8(a6),-(sp)
move.l a3,-(sp)
jsr sub_60004CC6
addq.w #4,sp
loc_6000C0D8: ; CODE XREF: sub_6000C03C+8Câ†j
tst.l arg_C(a6)
beq.s loc_6000C0F0
moveq #0,d0
move.b (a3),d0
add.l a3,d0
addq.l #1,d0
movea.l d0,a0
movea.l arg_C(a6),a1
moveq #4,d0
dc.w $A22E ; _BlockMoveData
loc_6000C0F0: ; CODE XREF: sub_6000C03C+A0â†j
moveq #1,d6
bra.s loc_6000C114
; ---------------------------------------------------------------------------
loc_6000C0F4: ; CODE XREF: sub_6000C03C+7Câ†j
moveq #0,d0
move.b (a4),d0
add.l a4,d0
addq.l #1,d0
movea.l d0,a4
moveq #0,d0
move.b (a4),d0
add.l a4,d0
addq.l #1,d0
move.l d0,d0
addq.l #4,d0
movea.l d0,a4
move.l d7,d0
subq.l #1,d7
loc_6000C110: ; CODE XREF: sub_6000C03C+64â†j
tst.l d7
bhi.s loc_6000C0A2
loc_6000C114: ; CODE XREF: sub_6000C03C+B6â†j
movea.l arg_0(a6),a0
move.b d5,d0
dc.w $A06A ; _HSetState
loc_6000C11C: ; CODE XREF: sub_6000C03C+1Aâ†j
; sub_6000C03C+24â†j ...
move.b d6,d0
movem.l var_14(a6),d5-d7/a3-a4
unlk a6
rts
; End of function sub_6000C03C
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_6000C128: ; CODE XREF: sub_60004B60+8Aâ†p
bra.w sub_6000D7E4
; End of function sub_6000C128
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
GetCFMSymbolDescriptor: ; CODE XREF: RegistryCStrEntryLookup+14↓p
; RegistryPropertyGet+14↓p ...
var_A set -$A
var_5 set -5
var_4 set -4
arg_0 set 8
arg_4 set $C
arg_8 set $10
link a6,#-6
move.l d7,-(sp)
clr.w d7
subq.l #2,sp
move.l arg_0(a6),-(sp)
move.l arg_4(a6),-(sp)
pea var_4(a6)
pea var_5(a6)
move.w #5,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
beq.s loc_6000C154
moveq #0,d0
bra.s loc_6000C168
; ---------------------------------------------------------------------------
loc_6000C154: ; CODE XREF: GetCFMSymbolDescriptor+22â†j
subq.l #4,sp
move.l var_4(a6),-(sp)
move.l arg_8(a6),-(sp)
moveq #1,d0
move.b d0,-(sp)
moveq #0,d0
dc.w $AA59 ; _MixedModeDispatch
move.l (sp)+,d0
loc_6000C168: ; CODE XREF: GetCFMSymbolDescriptor+26â†j
move.l var_A(a6),d7
unlk a6
rts
; End of function GetCFMSymbolDescriptor
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
RegistryCStrEntryLookup: ; CODE XREF: GetRegistryPropertyByPath+98↓p
var_8 set -8
arg_0 set 8
arg_4 set $C
arg_8 set $10
arg_C set $14
link a6,#0
movem.l d7/a4,-(sp)
pea ($FF1).w
pea aRegistrycstren ; "RegistryCStrEntryLookup"
move.l arg_0(a6),-(sp)
jsr GetCFMSymbolDescriptor
movea.l d0,a4
move.l a4,d0
lea $C(sp),sp
bne.s loc_6000C196
moveq #$FFFFFF94,d0
bra.s loc_6000C1AC
; ---------------------------------------------------------------------------
loc_6000C196: ; CODE XREF: RegistryCStrEntryLookup+20â†j
move.l arg_C(a6),-(sp)
move.l arg_8(a6),-(sp)
move.l arg_4(a6),-(sp)
movea.l a4,a0
jsr (a0)
move.l d0,d7
lea $C(sp),sp
loc_6000C1AC: ; CODE XREF: RegistryCStrEntryLookup+24â†j
movem.l var_8(a6),d7/a4
unlk a6
rts
; End of function RegistryCStrEntryLookup
; ---------------------------------------------------------------------------
aRegistrycstren:dc.b 23,'RegistryCStrEntryLookup'
; DATA XREF: RegistryCStrEntryLookup+Câ†o
dc.b 0
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
RegistryPropertyGet: ; CODE XREF: GetRegistryPropertyByPath+EA↓p
var_8 set -8
arg_0 set 8
arg_4 set $C
arg_8 set $10
arg_C set $14
arg_10 set $18
link a6,#0
movem.l d7/a4,-(sp)
pea ($3FF1).w
pea aRegistryproper_0 ; "RegistryPropertyGet"
move.l arg_0(a6),-(sp)
jsr GetCFMSymbolDescriptor
movea.l d0,a4
move.l a4,d0
lea $C(sp),sp
bne.s loc_6000C1F6
moveq #$FFFFFF94,d0
bra.s loc_6000C210
; ---------------------------------------------------------------------------
loc_6000C1F6: ; CODE XREF: RegistryPropertyGet+20â†j
move.l arg_10(a6),-(sp)
move.l arg_C(a6),-(sp)
move.l arg_8(a6),-(sp)
move.l arg_4(a6),-(sp)
movea.l a4,a0
jsr (a0)
move.l d0,d7
lea $10(sp),sp
loc_6000C210: ; CODE XREF: RegistryPropertyGet+24â†j
movem.l var_8(a6),d7/a4
unlk a6
rts
; End of function RegistryPropertyGet
; ---------------------------------------------------------------------------
aRegistryproper_0:dc.b 19,'RegistryPropertyGet'
; DATA XREF: RegistryPropertyGet+Câ†o
dc.b 0
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
RegistryPropertyGetSize: ; CODE XREF: GetRegistryPropertyByPath+B8↓p
var_8 set -8
arg_0 set 8
arg_4 set $C
arg_8 set $10
arg_C set $14
link a6,#0
movem.l d7/a4,-(sp)
pea ($FF1).w
pea aRegistryproper ; "RegistryPropertyGetSize"
move.l arg_0(a6),-(sp)
jsr GetCFMSymbolDescriptor
movea.l d0,a4
move.l a4,d0
lea $C(sp),sp
bne.s loc_6000C256
moveq #$FFFFFF94,d0
bra.s loc_6000C26C
; ---------------------------------------------------------------------------
loc_6000C256: ; CODE XREF: RegistryPropertyGetSize+20â†j
move.l arg_C(a6),-(sp)
move.l arg_8(a6),-(sp)
move.l arg_4(a6),-(sp)
movea.l a4,a0
jsr (a0)
move.l d0,d7
lea $C(sp),sp
loc_6000C26C: ; CODE XREF: RegistryPropertyGetSize+24â†j
movem.l var_8(a6),d7/a4
unlk a6
rts
; End of function RegistryPropertyGetSize
; ---------------------------------------------------------------------------
aRegistryproper:dc.b 23,'RegistryPropertyGetSize'
; DATA XREF: RegistryPropertyGetSize+Câ†o
dc.b 0
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
RegistryEntryIDDispose: ; CODE XREF: GetRegistryPropertyByPath+FC↓p
var_8 set -8
arg_0 set 8
arg_4 set $C
link a6,#0
movem.l d7/a4,-(sp)
pea ($F1).w
pea aRegistryentryi ; "RegistryEntryIDDispose"
move.l arg_0(a6),-(sp)
jsr GetCFMSymbolDescriptor
movea.l d0,a4
move.l a4,d0
lea $C(sp),sp
bne.s loc_6000C2B6
moveq #$FFFFFF94,d0
bra.s loc_6000C2C2
; ---------------------------------------------------------------------------
loc_6000C2B6: ; CODE XREF: RegistryEntryIDDispose+20â†j
move.l arg_4(a6),-(sp)
movea.l a4,a0
jsr (a0)
move.l d0,d7
addq.w #4,sp
loc_6000C2C2: ; CODE XREF: RegistryEntryIDDispose+24â†j
movem.l var_8(a6),d7/a4
unlk a6
rts
; End of function RegistryEntryIDDispose
; ---------------------------------------------------------------------------
aRegistryentryi:dc.b 22,'RegistryEntryIDDispose'
; DATA XREF: RegistryEntryIDDispose+Câ†o
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
GetRegistryPropertyByPath: ; CODE XREF: sub_6000C4A8+26↓p
; SpecialCaseOriginaliMac+4C↓p
var_170 set -$170
var_164 set -$164
var_160 set -$160
var_15C set -$15C
var_158 set -$158
var_58 set -$58
var_18 set -$18
var_8 set -8
var_4 set -4
arg_0 set 8
arg_4 set $C
link a6,#-$164
movem.l d7/a3-a4,-(sp)
movea.l arg_4(a6),a3
moveq #$FFFFFFFF,d7
moveq #0,d0
movea.l d0,a4
move.l #'nreg',d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
move.w d0,d7
bne.w loc_6000C3F4
lea aNameregistryli,a0 ; "NameRegistryLib"
lea var_58(a6),a1
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.b (a0),(a1)
move.l #'cfrg',d0
lea var_8(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
tst.w d0
bne.w loc_6000C3F4
moveq #1,d0
and.l var_8(a6),d0
beq.w loc_6000C3F4
moveq #0,d0
move.l d0,var_160(a6)
subq.l #2,sp
pea var_58(a6)
move.l #'pwpc',-(sp)
moveq #2,d0
move.l d0,-(sp)
pea var_160(a6)
pea var_15C(a6)
pea var_158(a6)
move.w #1,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
move.w (sp)+,d7
bne.w loc_6000C3F4
pea var_18(a6)
move.l arg_0(a6),-(sp)
moveq #0,d0
move.l d0,-(sp)
move.l var_160(a6),-(sp)
jsr RegistryCStrEntryLookup
move.w d0,d7
lea $10(sp),sp
bne.s loc_6000C3E6
moveq #0,d0
move.l d0,var_164(a6)
pea var_164(a6)
move.l a3,-(sp)
pea var_18(a6)
move.l var_160(a6),-(sp)
jsr RegistryPropertyGetSize
move.w d0,d7
lea $10(sp),sp
bne.s loc_6000C3D8
move.l var_164(a6),d0
dc.w $A51E ; _NewPtrSys
movea.l a0,a4
move.l a4,d0
beq.s loc_6000C3D8
subq.l #2,sp
move.w ($220).w,(sp)
tst.w (sp)+
bne.s loc_6000C3D8
pea var_164(a6)
move.l a4,-(sp)
move.l a3,-(sp)
pea var_18(a6)
move.l var_160(a6),-(sp)
jsr RegistryPropertyGet
move.w d0,d7
lea $14(sp),sp
loc_6000C3D8: ; CODE XREF: GetRegistryPropertyByPath+C2â†j
; GetRegistryPropertyByPath+CEâ†j ...
pea var_18(a6)
move.l var_160(a6),-(sp)
jsr RegistryEntryIDDispose
addq.w #8,sp
loc_6000C3E6: ; CODE XREF: GetRegistryPropertyByPath+A2â†j
subq.l #2,sp
pea var_160(a6)
move.w #4,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
addq.w #2,sp
loc_6000C3F4: ; CODE XREF: GetRegistryPropertyByPath+24â†j
; GetRegistryPropertyByPath+4Câ†j ...
move.l a4,d0
movem.l var_170(a6),d7/a3-a4
unlk a6
rts
; End of function GetRegistryPropertyByPath
; ---------------------------------------------------------------------------
aNameregistryli:dc.b 15,'NameRegistryLib'
; DATA XREF: GetRegistryPropertyByPath+28â†o
dc.b 0
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000C412: ; CODE XREF: SpecialCaseOriginaliMac+C6↓p
var_14 set -$14
arg_0 set 8
arg_6 set $E
arg_8 set $10
link a6,#0
movem.l d3/d6-d7/a3-a4,-(sp)
move.w arg_6(a6),d6
movea.l arg_0(a6),a3
movea.l a3,a4
subq.l #4,sp
move.l a3,-(sp)
jsr sub_60004F12
move.l (sp)+,d7
bra.s loc_6000C44C
; ---------------------------------------------------------------------------
loc_6000C430: ; CODE XREF: sub_6000C412+32↓j
addq.w #1,a4
loc_6000C432: ; CODE XREF: sub_6000C412+48↓j
moveq #0,d0
move.w d6,d0
tst.l d0
bls.s loc_6000C446
move.l a4,d0
sub.l a3,d0
cmp.l d0,d7
bls.s loc_6000C446
tst.b (a4)
bne.s loc_6000C430
loc_6000C446: ; CODE XREF: sub_6000C412+26â†j
; sub_6000C412+2Eâ†j
addq.w #1,a4
move.w d6,d0
subq.w #1,d6
loc_6000C44C: ; CODE XREF: sub_6000C412+1Câ†j
moveq #0,d0
move.w d6,d0
tst.l d0
bls.s loc_6000C45C
move.l a4,d0
sub.l a3,d0
cmp.l d0,d7
bhi.s loc_6000C432
loc_6000C45C: ; CODE XREF: sub_6000C412+40â†j
movea.l arg_8(a6),a0
clr.b (a0)
bra.s loc_6000C478
; ---------------------------------------------------------------------------
loc_6000C464: ; CODE XREF: sub_6000C412+70↓j
movea.l arg_8(a6),a0
addq.b #1,(a0)
moveq #0,d0
move.b (a0),d0
movea.l arg_8(a6),a0
move.b (a4),(a0,d0.w)
addq.w #1,a4
loc_6000C478: ; CODE XREF: sub_6000C412+50â†j
move.l a4,d0
sub.l a3,d0
cmp.l d0,d7
bls.s loc_6000C484
tst.b (a4)
bne.s loc_6000C464
loc_6000C484: ; CODE XREF: sub_6000C412+6Câ†j
moveq #1,d3
movea.l arg_8(a6),a0
moveq #0,d0
move.b (a0),d0
tst.l d0
bhi.s loc_6000C49C
move.l a4,d0
sub.l a3,d0
cmp.l d0,d7
bhi.s loc_6000C49C
moveq #0,d3
loc_6000C49C: ; CODE XREF: sub_6000C412+7Eâ†j
; sub_6000C412+86â†j
move.b d3,d0
movem.l var_14(a6),d3/d6-d7/a3-a4
unlk a6
rts
; End of function sub_6000C412
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000C4A8: ; CODE XREF: SetUserVisibleMachineName+18↓p
var_18 set -$18
var_8 set -8
var_4 set -4
arg_0 set 8
link a6,#-8
movem.l d3/d7/a3-a4,-(sp)
movea.l arg_0(a6),a4
lea aDevicesDeviceT_1,a0 ; "Devices:device-tree"
move.l a0,var_8(a6)
lea aModel_0,a0 ; "model"
move.l a0,var_4(a6)
clr.b d7
move.l var_4(a6),-(sp)
move.l var_8(a6),-(sp)
jsr GetRegistryPropertyByPath
movea.l d0,a3
move.l a3,d0
addq.w #8,sp
beq.s loc_6000C51E
subq.l #4,sp
move.l a3,-(sp)
jsr sub_60004F12
move.l (sp)+,d0
move.b d0,(a4)
movea.l a3,a0
movea.l a4,a1
addq.l #1,a1
moveq #0,d0
move.b (a4),d0
tst.l d0
dc.w $A22E ; _BlockMoveData
bra.s loc_6000C4F8
; ---------------------------------------------------------------------------
loc_6000C4F6: ; CODE XREF: sub_6000C4A8+64↓j
subq.b #1,(a4)
loc_6000C4F8: ; CODE XREF: sub_6000C4A8+4Câ†j
moveq #0,d0
move.b (a4),d0
tst.l d0
bls.s loc_6000C50E
moveq #0,d0
move.b (a4),d0
moveq #0,d1
move.b (a4,d0.w),d1
tst.l d1
beq.s loc_6000C4F6
loc_6000C50E: ; CODE XREF: sub_6000C4A8+56â†j
movea.l a3,a0
dc.w $A01F ; _DisposePtr
moveq #0,d0
move.b (a4),d0
tst.l d0
shi d3
neg.b d3
move.b d3,d7
loc_6000C51E: ; CODE XREF: sub_6000C4A8+30â†j
move.b d7,d0
movem.l var_18(a6),d3/d7/a3-a4
unlk a6
rts
; End of function sub_6000C4A8
; ---------------------------------------------------------------------------
aModel_0: dc.b 'model',0 ; DATA XREF: sub_6000C4A8+14â†o
aDevicesDeviceT_1:dc.b 'Devices:device-tree',0
; DATA XREF: sub_6000C4A8+Câ†o
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000C544: ; CODE XREF: SetUserVisibleMachineName+26↓p
; SetUserVisibleMachineName+62↓p ...
var_8 set -8
arg_0 set 8
link a6,#0
movem.l a3-a4,-(sp)
movea.l arg_0(a6),a3
moveq #0,d0
move.b (a3),d0
addq.w #1,d0
ext.l d0
dc.w $A51E ; _NewPtrSys
movea.l a0,a4
move.l a4,d0
beq.s loc_6000C56E
movea.l a3,a0
movea.l a4,a1
moveq #0,d0
move.b (a3),d0
addq.w #1,d0
ext.l d0
dc.w $A22E ; _BlockMoveData
loc_6000C56E: ; CODE XREF: sub_6000C544+1Aâ†j
move.l a4,d0
movem.l var_8(a6),a3-a4
unlk a6
rts
; End of function sub_6000C544
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000C57A: ; CODE XREF: SetUserVisibleMachineName+4C↓p
var_108 set -$108
var_100 set -$100
arg_0 set 8
arg_4 set $C
arg_8 set $10
link a6,#-$100
movem.l a3-a4,-(sp)
movea.l arg_4(a6),a4
clr.b (a4)
subq.l #4,sp
pea var_100(a6)
move.l arg_0(a6),-(sp)
jsr sub_60004CC6
moveq #0,d0
move.l d0,-(sp)
move.l #$9674626C,-(sp)
jsr sub_6000BFB6
movea.l d0,a3
move.l a3,d0
lea $C(sp),sp
beq.s loc_6000C5C2
move.l arg_8(a6),-(sp)
move.l a4,-(sp)
pea var_100(a6)
move.l a3,-(sp)
jsr sub_6000C03C
lea $10(sp),sp
loc_6000C5C2: ; CODE XREF: sub_6000C57A+32â†j
move.l a3,-(sp)
jsr sub_6000C022
moveq #0,d0
move.b (a4),d0
tst.l d0
addq.w #4,sp
bne.s loc_6000C5E0
subq.l #4,sp
move.l a4,-(sp)
pea var_100(a6)
jsr sub_60004CC6
addq.w #4,sp
loc_6000C5E0: ; CODE XREF: sub_6000C57A+56â†j
movem.l var_108(a6),a3-a4
unlk a6
rts
; End of function sub_6000C57A
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
SetUserVisibleMachineName: ; CODE XREF: ROM:60000A90â†p
var_20C set -$20C
var_204 set -$204
var_104 set -$104
var_4 set -4
link a6,#-$204
movem.l a3-a4,-(sp)
movea.l ($2B6).w,a0
movea.l $2F6(a0),a4
move.l a4,d0
bne.s loc_6000C628
pea var_204(a6)
jsr sub_6000C4A8
tst.b d0
addq.w #4,sp
beq.s loc_6000C628
pea var_204(a6)
jsr sub_6000C544
movea.l d0,a4
lea var_204(a6),a0
move.l a0,d0
addq.w #4,sp
beq.s loc_6000C628
movea.l ($2B6).w,a0
move.l a4,$2F6(a0)
loc_6000C628: ; CODE XREF: SetUserVisibleMachineName+12â†j
; SetUserVisibleMachineName+20â†j ...
move.l a4,d0
beq.s loc_6000C67C
pea var_4(a6)
pea var_104(a6)
move.l a4,-(sp)
jsr sub_6000C57A
moveq #0,d0
move.b var_104(a6),d0
tst.l d0
lea $C(sp),sp
bls.s loc_6000C67C
pea var_104(a6)
jsr sub_6000C544
movea.l d0,a3
move.l a3,d0
addq.w #4,sp
beq.s loc_6000C67C
subq.l #2,sp
move.w ($220).w,(sp)
tst.w (sp)+
bne.s loc_6000C67C
movea.l ($2B6).w,a0
move.l a3,$2F2(a0)
subq.l #2,sp
move.l #'mnam',-(sp)
move.l a3,-(sp)
move.w #$401,d0
dc.w $ABF1 ; _GestaltValueDispatch
addq.w #2,sp
loc_6000C67C: ; CODE XREF: SetUserVisibleMachineName+40â†j
; SetUserVisibleMachineName+5Câ†j ...
movem.l var_20C(a6),a3-a4
unlk a6
rts
; End of function SetUserVisibleMachineName
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
SpecialCaseOriginaliMac: ; CODE XREF: ROM:j_SpecialCaseOriginaliMacâ†j
var_228 set -$228
var_214 set -$214
var_114 set -$114
var_110 set -$110
var_10C set -$10C
var_8 set -8
var_4 set -4
link a6,#-$214
movem.l d6-d7/a2-a4,-(sp)
lea var_10C(a6),a3
lea var_214(a6),a4
clr.b d6
lea aDevicesDeviceT_2,a0 ; "Devices:device-tree"
move.l a0,var_8(a6)
lea aCompatible,a0 ; "compatible"
move.l a0,var_4(a6)
subq.l #2,sp
jsr EmulatorIsOnDisk
tst.b (sp)+
beq.w loc_6000C7D2
moveq #0,d0
movea.l d0,a2
moveq #0,d0
move.l d0,-(sp)
move.l #'btbl',-(sp)
jsr sub_6000BFB6
move.l d0,var_110(a6)
move.l var_4(a6),-(sp)
move.l var_8(a6),-(sp)
jsr GetRegistryPropertyByPath
movea.l d0,a2
move.l a2,d0
lea $10(sp),sp
beq.s loc_6000C758
tst.l var_110(a6)
beq.s loc_6000C758
clr.w d7
bra.s loc_6000C73E
; ---------------------------------------------------------------------------
loc_6000C6EA: ; CODE XREF: SpecialCaseOriginaliMac+D0↓j
clr.b (a4)
pea var_114(a6)
move.l a4,-(sp)
move.l a3,-(sp)
move.l var_110(a6),-(sp)
jsr sub_6000C03C
tst.b d0
lea $10(sp),sp
beq.s loc_6000C73A
move.l var_114(a6),d0
btst #0,d0
beq.s loc_6000C710
moveq #1,d6
loc_6000C710: ; CODE XREF: SpecialCaseOriginaliMac+86â†j
moveq #0,d0
move.b (a4),d0
tst.l d0
bls.s loc_6000C72A
move.l a4,-(sp)
jsr sub_6000C544
movea.l ($2B6).w,a0
move.l d0,$2F6(a0)
addq.w #4,sp
bra.s loc_6000C73A
; ---------------------------------------------------------------------------
loc_6000C72A: ; CODE XREF: SpecialCaseOriginaliMac+90â†j
move.l a3,-(sp)
jsr sub_6000C544
movea.l ($2B6).w,a0
move.l d0,$2F6(a0)
addq.w #4,sp
loc_6000C73A: ; CODE XREF: SpecialCaseOriginaliMac+7Câ†j
; SpecialCaseOriginaliMac+A2â†j
move.w d7,d0
addq.w #1,d7
loc_6000C73E: ; CODE XREF: SpecialCaseOriginaliMac+62â†j
tst.b d6
bne.s loc_6000C758
move.l a3,-(sp)
moveq #0,d0
move.w d7,d0
move.l d0,-(sp)
move.l a2,-(sp)
jsr sub_6000C412
tst.b d0
lea $C(sp),sp
bne.s loc_6000C6EA
loc_6000C758: ; CODE XREF: SpecialCaseOriginaliMac+58â†j
; SpecialCaseOriginaliMac+5Eâ†j ...
move.l var_110(a6),-(sp)
jsr sub_6000C022
move.l a2,d0
addq.w #4,sp
beq.s loc_6000C76A
movea.l a2,a0
dc.w $A01F ; _DisposePtr
loc_6000C76A: ; CODE XREF: SpecialCaseOriginaliMac+DEâ†j
tst.b d6
bne.s loc_6000C790
movea.l ($2B6).w,a0
tst.l $2F6(a0)
beq.s loc_6000C790
subq.l #2,sp
movea.l ($2B6).w,a0
move.l $2F6(a0),-(sp)
pea aImac1 ; "iMac,1"
jsr sub_60005280
tst.w (sp)+
bne.s loc_6000C790
moveq #1,d6
loc_6000C790: ; CODE XREF: SpecialCaseOriginaliMac+E6â†j
; SpecialCaseOriginaliMac+F0â†j ...
tst.b d6
bne.s loc_6000C7D4
subq.l #4,sp
move.l #'vers',-(sp)
moveq #1,d0
move.w d0,-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a3
move.l a3,d0
beq.s loc_6000C7B0
tst.l (a3)
bne.s loc_6000C7B0
move.l a3,-(sp)
dc.w $A9A2 ; _LoadResource ; come-from patches = #1
loc_6000C7B0: ; CODE XREF: SpecialCaseOriginaliMac+120â†j
; SpecialCaseOriginaliMac+124â†j
move.l a3,d0
beq.s loc_6000C7D4
tst.l (a3)
beq.s loc_6000C7D4
subq.l #2,sp
dc.w $A9AF ; _ResError
tst.w (sp)+
bne.s loc_6000C7D4
movea.l (a3),a0
moveq #0,d0
move.b 2(a0),d0
cmpi.b #$40,d0 ; '@'
bhi.s loc_6000C7D4
moveq #1,d6
bra.s loc_6000C7D4
; ---------------------------------------------------------------------------
loc_6000C7D2: ; CODE XREF: SpecialCaseOriginaliMac+2Aâ†j
moveq #1,d6
loc_6000C7D4: ; CODE XREF: SpecialCaseOriginaliMac+10Câ†j
; SpecialCaseOriginaliMac+12Câ†j ...
tst.b d6
bne.s loc_6000C7DC
moveq #$66,d0 ; 'f'
dc.w $A9C9 ; _SysError
loc_6000C7DC: ; CODE XREF: SpecialCaseOriginaliMac+150â†j
movem.l var_228(a6),d6-d7/a2-a4
unlk a6
rts
; End of function SpecialCaseOriginaliMac
; ---------------------------------------------------------------------------
aImac1: dc.b 6,'iMac,1' ; DATA XREF: SpecialCaseOriginaliMac+FCâ†o
dc.b 0
aCompatible: dc.b 'compatible',0 ; DATA XREF: SpecialCaseOriginaliMac+1Aâ†o
dc.b 0
aDevicesDeviceT_2:dc.b 'Devices:device-tree',0
; DATA XREF: SpecialCaseOriginaliMac+12â†o
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
SetColorCodeGestalt: ; CODE XREF: ROM:j_SetColorCodeGestaltâ†j
var_46 set -$46
var_3A set -$3A
var_36 set -$36
var_34 set -$34
var_24 set -$24
var_20 set -$20
link a6,#-$3A
movem.l d6-d7/a4,-(sp)
lea var_20(a6),a4
clr.w d7
moveq #0,d0
move.l d0,var_3A(a6)
moveq #0,d6
clr.w var_36(a6)
move.l #$6E726567,d0
lea var_3A(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
move.w d0,d7
bne.w loc_6000C924
pea var_34(a6)
moveq #0,d0
dc.w $ABE9
move.w d0,d7
addq.w #4,sp
bne.w loc_6000C924
pea var_34(a6)
pea aDevicesDeviceT ; "Devices:device-tree"
moveq #0,d0
move.l d0,-(sp)
moveq #$C,d0
dc.w $ABE9
move.w d0,d7
lea $C(sp),sp
bne.w loc_6000C91A
moveq #$20,d0 ; ' '
move.l d0,var_24(a6)
pea var_24(a6)
move.l a4,-(sp)
pea aModel ; "model"
pea var_34(a6)
moveq #$17,d0
dc.w $ABE9
move.w d0,d7
lea $10(sp),sp
bne.w loc_6000C91A
pea aPowermac12 ; "PowerMac1,2"
move.l a4,-(sp)
jsr loc_60005502
tst.l d0
addq.w #8,sp
bne.s loc_6000C8A2
move.w #$FF06,var_36(a6)
bra.s loc_6000C8C4
; ---------------------------------------------------------------------------
loc_6000C8A2: ; CODE XREF: SetColorCodeGestalt+8Aâ†j
moveq #2,d0
move.l d0,var_24(a6)
pea var_24(a6)
pea var_36(a6)
pea aColorCode ; "color-code"
pea var_34(a6)
moveq #$17,d0
dc.w $ABE9
move.w d0,d7
lea $10(sp),sp
bne.s loc_6000C91A
loc_6000C8C4: ; CODE XREF: SetColorCodeGestalt+92â†j
subq.l #4,sp
move.w var_36(a6),-(sp)
jsr sub_6000C98A
move.l (sp)+,d6
beq.s loc_6000C91A
pea aPowerbook31 ; "PowerBook3,1"
move.l a4,-(sp)
jsr loc_60005502
tst.l d0
addq.w #8,sp
beq.s loc_6000C902
pea aPowerbook32 ; "PowerBook3,2"
move.l a4,-(sp)
jsr loc_60005502
tst.l d0
addq.w #8,sp
beq.s loc_6000C902
pea aPowerbook41 ; "PowerBook4,1"
move.l a4,-(sp)
jsr loc_60005502
tst.l d0
addq.w #8,sp
bne.s loc_6000C908
loc_6000C902: ; CODE XREF: SetColorCodeGestalt+D2â†j
; SetColorCodeGestalt+E2â†j
ori.l #$10000,d6
loc_6000C908: ; CODE XREF: SetColorCodeGestalt+F2â†j
subq.l #2,sp
move.l #'yum ',-(sp)
move.l d6,-(sp)
move.w #$401,d0
dc.w $ABF1 ; _GestaltValueDispatch
addq.w #2,sp
loc_6000C91A: ; CODE XREF: SetColorCodeGestalt+56â†j
; SetColorCodeGestalt+78â†j ...
pea var_34(a6)
moveq #3,d0
dc.w $ABE9
addq.w #4,sp
loc_6000C924: ; CODE XREF: SetColorCodeGestalt+2Câ†j
; SetColorCodeGestalt+3Câ†j
movem.l var_46(a6),d6-d7/a4
unlk a6
rts
; End of function SetColorCodeGestalt
; ---------------------------------------------------------------------------
aPowerbook41: dc.b 'PowerBook4,1',0 ; DATA XREF: SetColorCodeGestalt+E4â†o
dc.b 0
aPowerbook32: dc.b 'PowerBook3,2',0 ; DATA XREF: SetColorCodeGestalt+D4â†o
dc.b 0
aPowerbook31: dc.b 'PowerBook3,1',0 ; DATA XREF: SetColorCodeGestalt+C4â†o
dc.b 0
aColorCode: dc.b 'color-code',0 ; DATA XREF: SetColorCodeGestalt+A2â†o
dc.b 0
aPowermac12: dc.b 'PowerMac1,2',0 ; DATA XREF: SetColorCodeGestalt+7Câ†o
aModel: dc.b 'model',0 ; DATA XREF: SetColorCodeGestalt+66â†o
aDevicesDeviceT:dc.b 'Devices:device-tree',0
; DATA XREF: SetColorCodeGestalt+44â†o
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000C98A: ; CODE XREF: SetColorCodeGestalt+BCâ†p
arg_0 set 8
arg_2 set $A
link a6,#0
moveq #0,d1
move.w arg_0(a6),d0
subi.w #$FF00,d0
bcs.w def_C9AA
cmpi.w #$12,d0
bhi.w def_C9AA
add.w d0,d0
move.w jpt_C9AA(pc,d0.w),d0
; ---------------------------------------------------------------------------
dc.b $4E
dc.b $FB
dc.b 0
dc.b 0
jpt_C9AA: dc.b 0
dc.b $28 ; (
dc.b 0
dc.b $28 ; (
dc.b 0
dc.b $30 ; 0
dc.b 0
dc.b $38 ; 8
dc.b 0
dc.b $40 ; @
dc.b 0
dc.b $48 ; H
dc.b 0
dc.b $50 ; P
dc.b 0
dc.b $50 ; P
dc.b 0
dc.b $50 ; P
dc.b 0
dc.b $58 ; X
dc.b 0
dc.b $60 ; `
dc.b 0
dc.b $68 ; h
dc.b 0
dc.b $70 ; p
dc.b 0
dc.b $78 ; x
dc.b 0
dc.b $80
dc.b 0
dc.b $88
dc.b 0
dc.b $90
dc.b 0
dc.b $78 ; x
dc.b 0
dc.b $50 ; P
dc.b $22 ; "
dc.b $3C ; <
dc.b 0
dc.b 0
dc.b 8
dc.b $35 ; 5
dc.b $60 ; `
dc.b $66 ; f
dc.b $22 ; "
dc.b $3C ; <
dc.b 0
dc.b 0
dc.b 8
dc.b $3B ; ;
dc.b $60 ; `
dc.b $5E ; ^
dc.b $22 ; "
dc.b $3C ; <
dc.b 0
dc.b 0
dc.b 8
dc.b $37 ; 7
dc.b $60 ; `
dc.b $56 ; V
dc.b $22 ; "
dc.b $3C ; <
dc.b 0
dc.b 0
dc.b 8
dc.b $38 ; 8
dc.b $60 ; `
dc.b $4E ; N
dc.b $22 ; "
dc.b $3C ; <
dc.b 0
dc.b 0
dc.b 8
dc.b $3C ; <
dc.b $60 ; `
dc.b $46 ; F
dc.b $22 ; "
dc.b $3C ; <
dc.b 0
dc.b 0
dc.b 8
dc.b $3E ; >
dc.b $60 ; `
dc.b $3E ; >
dc.b $22 ; "
dc.b $3C ; <
dc.b 0
dc.b 0
dc.b 8
dc.b $3F ; ?
dc.b $60 ; `
dc.b $36 ; 6
dc.b $22 ; "
dc.b $3C ; <
dc.b 0
dc.b 0
dc.b 8
dc.b $41 ; A
dc.b $60 ; `
dc.b $2E ; .
dc.b $22 ; "
dc.b $3C ; <
dc.b 0
dc.b 0
dc.b 8
dc.b $40 ; @
dc.b $60 ; `
dc.b $26 ; &
dc.b $22 ; "
dc.b $3C ; <
dc.b 0
dc.b 0
dc.b 8
dc.b $42 ; B
dc.b $60 ; `
dc.b $1E
dc.b $22 ; "
dc.b $3C ; <
dc.b 0
dc.b 0
dc.b 8
dc.b $47 ; G
dc.b $60 ; `
dc.b $16
dc.b $22 ; "
dc.b $3C ; <
dc.b 0
dc.b 0
dc.b 8
dc.b $48 ; H
dc.b $60 ; `
dc.b $E
dc.b $22 ; "
dc.b $3C ; <
dc.b 0
dc.b 0
dc.b 8
dc.b $49 ; I
dc.b $60 ; `
dc.b 6
dc.b $22 ; "
dc.b $3C ; <
dc.b 0
dc.b 0
dc.b 8
dc.b $4A ; J
; ---------------------------------------------------------------------------
def_C9AA: ; CODE XREF: sub_6000C98A+Eâ†j
; sub_6000C98A+16â†j
move.l d1,arg_2(a6)
unlk a6
movea.l (sp)+,a0
addq.w #2,sp
jmp (a0)
; End of function sub_6000C98A
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000CA4E: ; CODE XREF: sub_6000CC4E+6↓p
var_4 set -4
link a6,#0
move.l d6,-(sp)
move.b ($1FB).w,d6
moveq #0,d0
move.b d6,d0
moveq #$F,d2
and.b d0,d2
moveq #0,d0
move.b d2,d0
cmpi.w #$F,d0
beq.s loc_6000CA72
moveq #0,d0
move.b d2,d0
tst.l d0
bne.s loc_6000CA88
loc_6000CA72: ; CODE XREF: sub_6000CA4E+1Aâ†j
moveq #0,d0
move.b d6,d0
move.w #$F0,d1
and.b d0,d1
moveq #0,d0
move.b d1,d0
moveq #1,d1
or.b d0,d1
move.b d1,($1FB).w
loc_6000CA88: ; CODE XREF: sub_6000CA4E+22â†j
move.l var_4(a6),d6
unlk a6
rts
; End of function sub_6000CA4E
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000CA90: ; CODE XREF: sub_6000CAC2+16↓p
var_C set -$C
arg_0 set 8
link a6,#0
movem.l d7/a3-a4,-(sp)
movea.l arg_0(a6),a3
move.l a3,d7
movea.l d7,a0
move.w 8(a0),d0
ext.l d0
add.l d7,d0
movea.l d0,a4
subq.w #2,a4
move.w (a4),d0
ext.l d0
add.l d7,d0
movea.l d0,a4
move.l a4,($B18).w
movem.l var_C(a6),d7/a3-a4
unlk a6
rts
; End of function sub_6000CA90
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000CAC2: ; CODE XREF: sub_6000CC4E+40↓p
var_C set -$C
arg_0 set 8
link a6,#0
movem.l d6-d7/a4,-(sp)
movea.l arg_0(a6),a4
move.w ($A5A).w,d6
move.l a4,-(sp)
dc.w $A992 ; _DetachResource
move.l (a4),-(sp)
jsr sub_6000CA90
moveq #0,d0
move.l d0,-(sp)
moveq #1,d1
move.l d1,-(sp)
jsr sub_6000CCD8
move.w d0,d7
lea $C(sp),sp
bne.s loc_6000CAF6
jsr sub_6000CD14
move.w d0,d7
loc_6000CAF6: ; CODE XREF: sub_6000CAC2+2Câ†j
move.w d6,($A5A).w
move.w d7,d0
movem.l var_C(a6),d6-d7/a4
unlk a6
rts
; End of function sub_6000CAC2
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000CB06: ; CODE XREF: sub_6000CBBC+26↓p
; sub_6000CBBC+6E↓p
var_114 set -$114
var_FC set -$FC
var_B6 set -$B6
var_A4 set -$A4
var_A0 set -$A0
var_9A set -$9A
var_96 set -$96
var_92 set -$92
var_86 set -$86
var_4A set -$4A
var_6 set -6
var_4 set -4
arg_3 set $B
arg_4 set $C
link a6,#-$FC
movem.l d3-d7/a4,-(sp)
move.l arg_4(a6),d5
move.b arg_3(a6),d6
lea var_4A(a6),a4
clr.w d4
subq.l #2,sp
move.w #$8000,-(sp)
move.l #$6578746E,-(sp)
moveq #0,d0
move.b d0,-(sp)
pea var_6(a6)
pea var_4(a6)
moveq #0,d0
dc.w $A823 ; _AliasDispatch
move.w (sp)+,d7
bne.s loc_6000CBB0
moveq #0,d3
move.w var_6(a6),var_A0(a6)
loc_6000CB44: ; CODE XREF: sub_6000CB06+62↓j
; sub_6000CB06+6C↓j ...
clr.b (a4)
move.l a4,var_A4(a6)
addq.l #1,d3
move.w d3,var_9A(a6)
move.l var_4(a6),var_86(a6)
lea var_B6(a6),a0
dc.w $A20C ; _PBHGetFInfoSync
move.w d0,d7
bne.s loc_6000CBB0
tst.b d6
beq.s loc_6000CB6A
cmp.l var_92(a6),d5
bne.s loc_6000CB44
loc_6000CB6A: ; CODE XREF: sub_6000CB06+5Câ†j
tst.b d6
bne.s loc_6000CB74
cmp.l var_92(a6),d5
beq.s loc_6000CB44
loc_6000CB74: ; CODE XREF: sub_6000CB06+66â†j
cmpi.l #$6F74736C,var_96(a6)
bne.s loc_6000CB44
subq.l #2,sp
move.w var_6(a6),-(sp)
move.l var_4(a6),-(sp)
move.l a4,-(sp)
pea var_FC(a6)
moveq #1,d0
dc.w $AA52 ; _HighLevelFSDispatch
tst.w (sp)+
bne.s loc_6000CB44
subq.l #2,sp
pea var_FC(a6)
moveq #0,d0
move.b d0,-(sp)
move.w #$FFEC,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
tst.w (sp)+
bne.s loc_6000CB44
move.w d4,d0
addq.w #1,d4
bra.s loc_6000CB44
; ---------------------------------------------------------------------------
loc_6000CBB0: ; CODE XREF: sub_6000CB06+34â†j
; sub_6000CB06+58â†j
move.w d4,d0
movem.l var_114(a6),d3-d7/a4
unlk a6
rts
; End of function sub_6000CB06
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000CBBC: ; CODE XREF: sub_6000CC4E+A↓p
var_110 set -$110
var_108 set -$108
var_104 set -$104
var_100 set -$100
link a6,#-$108
movem.l d7/a4,-(sp)
lea var_100(a6),a4
clr.b d7
moveq #$20,d0 ; ' '
and.b ($B20).w,d0
moveq #0,d1
move.b d0,d1
tst.l d1
beq.s loc_6000CC36
move.l #$6F74616E,-(sp)
moveq #1,d0
move.l d0,-(sp)
jsr sub_6000CB06
moveq #0,d1
move.w d0,d1
tst.l d1
addq.w #8,sp
bls.s loc_6000CC36
move.w #$AFEC,-(sp)
moveq #1,d0
move.b d0,-(sp)
jsr sub_6000CDA2
subq.l #2,sp
pea aOtbootlib ; "\tOTBootLib"
move.l #$70777063,-(sp)
moveq #1,d0
move.l d0,-(sp)
pea var_108(a6)
pea var_104(a6)
move.l a4,-(sp)
move.w #1,-(sp)
dc.w $AA5A ; _CodeFragmentDispatch
tst.w (sp)+
bne.s loc_6000CC32
move.l #$6F74616E,-(sp)
moveq #0,d0
move.l d0,-(sp)
jsr sub_6000CB06
moveq #1,d7
addq.w #8,sp
loc_6000CC32: ; CODE XREF: sub_6000CBBC+62â†j
jsr j_NudgeProgressBar
loc_6000CC36: ; CODE XREF: sub_6000CBBC+1Aâ†j
; sub_6000CBBC+32â†j
move.b d7,d0
movem.l var_110(a6),d7/a4
unlk a6
rts
; End of function sub_6000CBBC
; ---------------------------------------------------------------------------
aOtbootlib: dc.b 9,'OTBootLib',0 ; DATA XREF: sub_6000CBBC+42â†o
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000CC4E: ; CODE XREF: ROM:loc_600013F0â†p
var_8 set -8
var_4 set -4
link a6,#-4
move.l a4,-(sp)
jsr sub_6000CA4E
jsr sub_6000CBBC
tst.b d0
bne.s loc_6000CC9A
subq.l #4,sp
move.l #'otlm',-(sp)
moveq #9,d0
move.w d0,-(sp)
dc.w $A9A0 ; _GetResource
movea.l (sp)+,a4
move.l a4,d0
beq.s loc_6000CC7C
tst.l (a4)
bne.s loc_6000CC7C
move.l a4,-(sp)
dc.w $A9A2 ; _LoadResource ; come-from patches = #1
loc_6000CC7C: ; CODE XREF: sub_6000CC4E+24â†j
; sub_6000CC4E+28â†j
move.l a4,d0
beq.s loc_6000CC96
tst.l (a4)
beq.s loc_6000CC96
subq.l #2,sp
dc.w $A9AF ; _ResError
tst.w (sp)+
bne.s loc_6000CC96
move.l a4,-(sp)
jsr sub_6000CAC2
addq.w #4,sp
bra.s loc_6000CC9A
; ---------------------------------------------------------------------------
loc_6000CC96: ; CODE XREF: sub_6000CC4E+30â†j
; sub_6000CC4E+34â†j ...
moveq #$F,d0
dc.w $A9C9 ; _SysError
loc_6000CC9A: ; CODE XREF: sub_6000CC4E+10â†j
; sub_6000CC4E+46â†j
move.l #'bbox',d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
tst.w d0
bne.s loc_6000CCD0
moveq #4,d0
and.l var_4(a6),d0
beq.s loc_6000CCD0
moveq #0,d0
move.l d0,-(sp)
moveq #1,d1
move.l d1,-(sp)
move.l #'rdad',-(sp)
move.l #$3162D,d0
; ---------------------------------------------------------------------------
dc.b $FE
dc.b $22 ; "
; ---------------------------------------------------------------------------
lea $C(sp),sp
loc_6000CCD0: ; CODE XREF: sub_6000CC4E+5Eâ†j
; sub_6000CC4E+66â†j
movea.l var_8(a6),a4
unlk a6
rts
; End of function sub_6000CC4E
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000CCD8: ; CODE XREF: sub_6000CAC2+22â†p
arg_4 set $C
link a6,#0
movem.l a2-a3,-(sp)
moveq #$10,d0
moveq #$20,d2 ; ' '
mulu.w d2,d0
addi.w #$28A,d0
dc.w $A71E ; _NewPtrSysClear
bne.s loc_6000CD0A
move.w d2,(a0)
movea.l ($2B6).w,a1
lea $74(a1),a1
move.l arg_4(a6),$1EE(a0)
move.l a0,(a1)
movea.l ($B18).w,a3
moveq #$10,d0
jsr 2(a3)
loc_6000CD0A: ; CODE XREF: sub_6000CCD8+14â†j
ext.l d0
movem.l (sp)+,a2-a3
unlk a6
rts
; End of function sub_6000CCD8
; =============== S U B R O U T I N E =======================================
sub_6000CD14: ; CODE XREF: sub_6000CAC2+2Eâ†p
moveq #0,d0
movea.l ($D1C).w,a0
cmpa.w #$FFFF,a0
bne.s loc_6000CD30
moveq #$1C,d0
dc.w $A440 ; _ReserveMemSys
moveq #$1C,d0
dc.w $A722 ; _NewHandleSysClear
bne.s loc_6000CD9E
move.l a0,($D1C).w
bra.s loc_6000CD5C
; ---------------------------------------------------------------------------
loc_6000CD30: ; CODE XREF: sub_6000CD14+Aâ†j
dc.w $A02A ; _HUnlock
moveq #$1C,d0
dc.w $A440 ; _ReserveMemSys
bne.s loc_6000CD9E
moveq #$1C,d0
dc.w $A722 ; _NewHandleSysClear
bne.s loc_6000CD9E
move.l a0,d1
movea.l (a0),a1
movea.l ($D1C).w,a0
move.l (a0),d0
movea.l d0,a0
moveq #$10,d0
dc.w $A22E ; _BlockMoveData
movea.l ($D1C).w,a0
move.l d1,($D1C).w
bra.s loc_6000CD5A
; ---------------------------------------------------------------------------
dc.b $20
dc.b $41 ; A
; ---------------------------------------------------------------------------
loc_6000CD5A: ; CODE XREF: sub_6000CD14+42â†j
dc.w $A023 ; _DisposeHandle
loc_6000CD5C: ; CODE XREF: sub_6000CD14+1Aâ†j
movea.l ($D1C).w,a0
dc.w $A029 ; _HLock
moveq #0,d0
movea.l ($2B6).w,a0
dc.w $A021 ; _GetPtrSize
cmpi.l #$1EA,d0
bge.s loc_6000CD96
movea.l a0,a1
move.l d0,d1
move.l #$1EA,d0
dc.w $A11E ; _NewPtr
bne.s loc_6000CD9E
move sr,-(sp)
ori #$2600,sr
exg a0,a1
move.l d1,d0
dc.w $A22E ; _BlockMoveData
move.l a1,($2B6).w
move (sp)+,sr
dc.w $A01F ; _DisposePtr
movea.l a1,a0
loc_6000CD96: ; CODE XREF: sub_6000CD14+5Câ†j
clr.w $1E8(a0)
moveq #0,d0
rts
; ---------------------------------------------------------------------------
loc_6000CD9E: ; CODE XREF: sub_6000CD14+14â†j
; sub_6000CD14+22â†j ...
moveq #$FFFFFF94,d0
rts
; End of function sub_6000CD14
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000CDA2: ; CODE XREF: sub_6000CBBC+3Câ†p
var_1A0 set -$1A0
var_194 set -$194
var_190 set -$190
var_F4 set -$F4
var_80 set -$80
var_7C set -$7C
var_78 set -$78
var_C set -$C
var_4 set -4
arg_0 set 8
arg_2 set $A
link a6,#-$194
movem.l d5-d7,-(sp)
move.w arg_2(a6),d6
move.l #$73797376,d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
tst.w d0
bne.w loc_6000CEAA
cmpi.l #$700,var_4(a6)
blt.w loc_6000CEAA
clr.b d7
lea var_7C(a6),a0
move.l a0,d0
exg d0,a5
move.l d0,d5
pea var_80(a6)
dc.w $A86E ; _InitGraf
pea var_F4(a6)
pea var_C(a6)
jsr sub_6000CF0E
pea var_78(a6)
dc.w $AA00 ; _OpenCPort
move.l #$69636F6E,d0
lea var_4(a6),a0
movea.l a0,a1
dc.w $A1AD ; _Gestalt
move.l a0,(a1)
tst.w d0
addq.w #8,sp
bne.s loc_6000CE74
moveq #4,d0
and.l var_4(a6),d0
beq.s loc_6000CE74
pea var_190(a6)
jsr sub_6000CFF2
tst.w d0
addq.w #4,sp
bne.s loc_6000CE74
subq.l #2,sp
move.l #$73686F77,-(sp)
move.l #$696E6974,-(sp)
pea var_190(a6)
move.w d6,-(sp)
pea var_194(a6)
moveq #$23,d0 ; '#'
dc.w $AA75 ; _IconServicesDispatch
tst.w (sp)+
bne.s loc_6000CE74
subq.l #2,sp
pea var_C(a6)
moveq #5,d0
move.w d0,-(sp)
moveq #0,d1
move.w d1,-(sp)
moveq #0,d0
move.l d0,-(sp)
move.l var_194(a6),-(sp)
moveq #$E,d0
dc.w $AA75 ; _IconServicesDispatch
tst.w (sp)+
bne.s loc_6000CE60
moveq #1,d7
loc_6000CE60: ; CODE XREF: sub_6000CDA2+BAâ†j
subq.l #2,sp
move.l #$73686F77,-(sp)
move.l #$696E6974,-(sp)
moveq #8,d0
dc.w $AA75 ; _IconServicesDispatch
addq.w #2,sp
loc_6000CE74: ; CODE XREF: sub_6000CDA2+66â†j
; sub_6000CDA2+6Eâ†j ...
tst.b d7
bne.s loc_6000CE92
subq.l #2,sp
pea var_C(a6)
moveq #0,d0
move.w d0,-(sp)
move.w d0,-(sp)
move.w d6,-(sp)
move.w #$500,d0
dc.w $ABC9 ; _IconDispatch
tst.w (sp)+
bne.s loc_6000CE92
moveq #1,d7
loc_6000CE92: ; CODE XREF: sub_6000CDA2+D4â†j
; sub_6000CDA2+ECâ†j
pea var_78(a6)
dc.w $AA02 ; _CloseCPort
tst.b d7
beq.s loc_6000CEA6
tst.b arg_0(a6)
beq.s loc_6000CEA6
jsr sub_6000CFC6
loc_6000CEA6: ; CODE XREF: sub_6000CDA2+F8â†j
; sub_6000CDA2+FEâ†j
move.l d5,d0
exg d0,a5
loc_6000CEAA: ; CODE XREF: sub_6000CDA2+1Eâ†j
; sub_6000CDA2+2Aâ†j
movem.l var_1A0(a6),d5-d7
unlk a6
move.l (sp)+,(sp)
rts
; End of function sub_6000CDA2
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000CEB6: ; CODE XREF: ResetDMNotifyProc+88â†p
link a6,#0
; ---------------------------------------------------------------------------
dc.b $20
dc.b $7C ; |
dc.b 0
dc.b 0
dc.b 9
dc.b $2C ; ,
; ---------------------------------------------------------------------------
move.w #$FFFF,(a0)
; ---------------------------------------------------------------------------
dc.b $20
dc.b $7C ; |
dc.b 0
dc.b 0
dc.b 9
dc.b $2C ; ,
; ---------------------------------------------------------------------------
move.w #$FFFF,2(a0)
unlk a6
rts
; End of function sub_6000CEB6
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000CED4: ; CODE XREF: sub_6000CF0E+32↓p
; sub_6000CFC6+1A↓p
arg_2 set $A
link a6,#0
move.w arg_2(a6),d2
moveq #0,d0
move.w d2,d0
move.w #$8000,d1
and.w d0,d1
beq.s loc_6000CEFC
moveq #0,d0
move.w d2,d0
lsl.l #1,d0
move.l #$1021,d1
eor.l d1,d0
moveq #1,d1
eor.l d1,d0
bra.s loc_6000CF0A
; ---------------------------------------------------------------------------
loc_6000CEFC: ; CODE XREF: sub_6000CED4+12â†j
moveq #0,d0
move.w d2,d0
lsl.l #1,d0
move.l #$1021,d1
eor.l d1,d0
loc_6000CF0A: ; CODE XREF: sub_6000CED4+26â†j
unlk a6
rts
; End of function sub_6000CED4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000CF0E: ; CODE XREF: sub_6000CDA2+48â†p
var_C set -$C
arg_0 set 8
arg_4 set $C
link a6,#0
movem.l d7/a3-a4,-(sp)
movea.l arg_4(a6),a3
movea.l arg_0(a6),a4
move.w 6(a3),d7
sub.w 2(a3),d7
move.w d7,d0
ext.l d0
divs.w #$28,d0 ; '('
swap d0
ext.w d0
sub.w d0,d7
; ---------------------------------------------------------------------------
dc.b $20
dc.b $7C ; |
dc.b 0
dc.b 0
dc.b 9
dc.b $2C ; ,
; ---------------------------------------------------------------------------
moveq #0,d0
move.w (a0),d0
move.l d0,-(sp)
jsr sub_6000CED4
ext.l d0
; ---------------------------------------------------------------------------
dc.b $20
dc.b $7C ; |
dc.b 0
dc.b 0
dc.b 9
dc.b $2C ; ,
; ---------------------------------------------------------------------------
moveq #0,d1
move.w 2(a0),d1
cmp.l d0,d1
addq.w #4,sp
beq.s byte_6000CF62
; ---------------------------------------------------------------------------
dc.b $20
dc.b $7C ; |
dc.b 0
dc.b 0
dc.b 9
dc.b $2C ; ,
; ---------------------------------------------------------------------------
move.w #8,(a0)
; ---------------------------------------------------------------------------
byte_6000CF62: dc.b $20 ; CODE XREF: sub_6000CF0E+48â†j
dc.b $7C ; |
dc.b 0
dc.b 0
dc.b 9
dc.b $2C ; ,
; ---------------------------------------------------------------------------
moveq #0,d0
move.w (a0),d0
ext.l d7
move.l d7,d1
jsr sub_6000D7E4
move.w d0,2(a4)
; ---------------------------------------------------------------------------
dc.b $20
dc.b $7C ; |
dc.b 0
dc.b 0
dc.b 9
dc.b $2C ; ,
; ---------------------------------------------------------------------------
moveq #0,d0
move.w (a0),d0
ext.l d7
move.l d7,d1
jsr sub_6000D7B6
addq.l #1,d0
move.l d0,d1
mulu.w #$28,d0 ; '('
swap d1
mulu.w #$28,d1 ; '('
swap d1
clr.w d1
add.l d1,d0
move.w 4(a3),d1
sub.w d0,d1
move.w d1,(a4)
move.w 2(a4),d0
; ---------------------------------------------------------------------------
dc.b $D0
dc.b $7C ; |
dc.b 0
dc.b $20
; ---------------------------------------------------------------------------
move.w d0,6(a4)
move.w (a4),d0
; ---------------------------------------------------------------------------
dc.b $D0
dc.b $7C ; |
dc.b 0
dc.b $20
; ---------------------------------------------------------------------------
move.w d0,4(a4)
movem.l var_C(a6),d7/a3-a4
unlk a6
rts
; End of function sub_6000CF0E
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000CFC6: ; CODE XREF: sub_6000CDA2+100â†p
link a6,#0
; ---------------------------------------------------------------------------
dc.b $20
dc.b $7C ; |
dc.b 0
dc.b 0
dc.b 9
dc.b $2C ; ,
; ---------------------------------------------------------------------------
addi.w #$28,(a0) ; '('
; ---------------------------------------------------------------------------
dc.b $20
dc.b $7C ; |
dc.b 0
dc.b 0
dc.b 9
dc.b $2C ; ,
; ---------------------------------------------------------------------------
moveq #0,d0
move.w (a0),d0
move.l d0,-(sp)
jsr sub_6000CED4
; ---------------------------------------------------------------------------
dc.b $20
dc.b $7C ; |
dc.b 0
dc.b 0
dc.b 9
dc.b $2C ; ,
; ---------------------------------------------------------------------------
move.w d0,2(a0)
unlk a6
rts
; End of function sub_6000CFC6
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000CFF2: ; CODE XREF: sub_6000CDA2+74â†p
var_146 set -$146
var_13E set -$13E
var_3E set -$3E
var_2C set -$2C
var_28 set -$28
var_26 set -$26
var_22 set -$22
var_4 set -4
arg_0 set 8
link a6,#-$13E
movem.l d7/a4,-(sp)
lea var_13E(a6),a4
move.l a4,var_2C(a6)
clr.w var_28(a6)
subq.l #2,sp
dc.w $A994 ; _CurResFile
move.w (sp)+,var_26(a6)
clr.w var_22(a6)
lea var_3E(a6),a0
moveq #8,d0
dc.w $A260 ; _HFSDispatch
move.w d0,d7
bne.s loc_6000D034
subq.l #2,sp
move.w var_28(a6),-(sp)
move.l var_4(a6),-(sp)
move.l a4,-(sp)
move.l arg_0(a6),-(sp)
moveq #1,d0
dc.w $AA52 ; _HighLevelFSDispatch
move.w (sp)+,d7
loc_6000D034: ; CODE XREF: sub_6000CFF2+2Aâ†j
move.w d7,d0
movem.l var_146(a6),d7/a4
unlk a6
rts
; End of function sub_6000CFF2
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000D040: ; DATA XREF: sub_6000D2D6+1E↓o
var_8 set -8
arg_0 set 8
arg_8 set $10
link a6,#0
movem.l a3-a4,-(sp)
movea.l arg_8(a6),a3
movea.l arg_0(a6),a4
moveq #0,d0
move.l d0,(a3)
move.l a4,d1
beq.s loc_6000D074
tst.l (a4)
beq.s loc_6000D074
movea.l (a4),a0
movea.l (a0),a0
tst.w (a0)
bne.s loc_6000D072
subq.l #2,sp
move.l (a4),-(sp)
moveq #$E,d0
move.w d0,-(sp)
dc.w $AA2C ; _TestDeviceAttribute
tst.b (sp)+
bne.s loc_6000D074
loc_6000D072: ; CODE XREF: sub_6000D040+22â†j
move.l (a4),(a3)
loc_6000D074: ; CODE XREF: sub_6000D040+16â†j
; sub_6000D040+1Aâ†j ...
movem.l var_8(a6),a3-a4
unlk a6
movea.l (sp)+,a0
lea $C(sp),sp
jmp (a0)
; End of function sub_6000D040
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000D084: ; DATA XREF: sub_6000D2D6+AC↓o
arg_4 set $C
link a6,#0
moveq #2,d0
cmp.w arg_4(a6),d0
bne.s loc_6000D09A
moveq #0,d0
move.l d0,-(sp)
jsr sub_6000D2D6
addq.w #4,sp
loc_6000D09A: ; CODE XREF: sub_6000D084+Aâ†j
unlk a6
movea.l (sp)+,a0
lea $A(sp),sp
jmp (a0)
; End of function sub_6000D084
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000D0A4: ; CODE XREF: sub_6000D122+10↓p
var_20 set -$20
var_4 set -4
arg_2 set $A
link a6,#-8
movem.l d5-d7/a2-a4,-(sp)
move.w arg_2(a6),d5
moveq #0,d0
move.l d0,var_4(a6)
moveq #1,d0
move.l d0,-(sp)
jsr sub_6000D2D6
movea.l d0,a4
move.l a4,d0
addq.w #4,sp
beq.s loc_6000D0D2
movea.l ($2B6).w,a2
movea.l $332(a2),a3
move.l $336(a2),d6
loc_6000D0D2: ; CODE XREF: sub_6000D0A4+20â†j
move.l a4,d0
beq.s loc_6000D114
move.l a3,d0
beq.s loc_6000D114
moveq #0,d7
bra.s loc_6000D110
; ---------------------------------------------------------------------------
loc_6000D0DE: ; CODE XREF: sub_6000D0A4+6E↓j
subq.l #2,sp
move.l a3,-(sp)
move.l d7,-(sp)
moveq #0,d0
move.l d0,-(sp)
move.l a4,-(sp)
pea var_4(a6)
move.w #$AD5,d0
dc.w $ABEB ; _DisplayDispatch
tst.l var_4(a6)
addq.w #2,sp
beq.s loc_6000D106
movea.l var_4(a6),a0
movea.l (a0),a0
cmp.w (a0),d5
beq.s loc_6000D114
loc_6000D106: ; CODE XREF: sub_6000D0A4+56â†j
moveq #0,d0
move.l d0,var_4(a6)
move.l d7,d0
addq.l #1,d7
loc_6000D110: ; CODE XREF: sub_6000D0A4+38â†j
cmp.l d7,d6
bhi.s loc_6000D0DE
loc_6000D114: ; CODE XREF: sub_6000D0A4+30â†j
; sub_6000D0A4+34â†j ...
move.l var_4(a6),d0
movem.l var_20(a6),d5-d7/a2-a4
unlk a6
rts
; End of function sub_6000D0A4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000D122: ; CODE XREF: sub_6000D3BC+34↓p
var_10 set -$10
var_8 set -8
var_4 set -4
arg_2 set $A
link a6,#-8
movem.l d7/a4,-(sp)
move.w arg_2(a6),d0
ext.l d0
move.l d0,-(sp)
jsr sub_6000D0A4
movea.l d0,a4
clr.b d7
move.l a4,d0
addq.w #4,sp
beq.s loc_6000D18C
moveq #0,d0
move.l d0,var_8(a6)
move.l d0,var_4(a6)
subq.l #2,sp
move.l a4,-(sp)
pea var_8(a6)
moveq #0,d0
move.b d0,-(sp)
move.w #$51F,d0
dc.w $ABEB ; _DisplayDispatch
tst.w (sp)+
bne.s loc_6000D18C
subq.l #2,sp
move.l var_8(a6),-(sp)
move.l #$636F6D6D,-(sp)
pea var_4(a6)
move.w #$6D3,d0
dc.w $ABEB ; _DisplayDispatch
tst.w (sp)+
bne.s loc_6000D18C
moveq #1,d0
and.l var_4(a6),d0
bne.s loc_6000D18C
moveq #2,d0
and.l var_4(a6),d0
beq.s loc_6000D18C
moveq #1,d7
loc_6000D18C: ; CODE XREF: sub_6000D122+1Câ†j
; sub_6000D122+3Câ†j ...
move.b d7,d0
movem.l var_10(a6),d7/a4
unlk a6
rts
; End of function sub_6000D122
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000D198: ; CODE XREF: sub_6000D3BC+24↓p
var_72 set -$72
var_62 set -$62
var_5E set -$5E
var_5A set -$5A
var_56 set -$56
var_52 set -$52
var_50 set -$50
var_4C set -$4C
var_48 set -$48
var_44 set -$44
var_40 set -$40
var_3C set -$3C
var_38 set -$38
var_34 set -$34
var_30 set -$30
var_2C set -$2C
var_28 set -$28
var_24 set -$24
var_20 set -$20
var_1C set -$1C
var_18 set -$18
var_14 set -$14
var_10 set -$10
var_C set -$C
var_8 set -8
var_4 set -4
arg_2 set $A
arg_4 set $C
link a6,#-$62
movem.l d3/d6-d7/a4,-(sp)
movea.l arg_4(a6),a4
clr.b d6
moveq #0,d7
clr.l var_34(a6)
clr.l var_38(a6)
clr.l var_3C(a6)
clr.l var_40(a6)
clr.l var_44(a6)
clr.l var_48(a6)
clr.l var_4C(a6)
moveq #0,d0
move.l d0,var_50(a6)
clr.w var_52(a6)
move.l d0,var_56(a6)
move.l d0,var_5A(a6)
clr.l var_5E(a6)
move.l d0,var_62(a6)
move.l d0,var_4(a6)
move.l d0,var_8(a6)
move.l d0,var_C(a6)
move.l d0,var_10(a6)
move.l d0,var_14(a6)
move.l d0,var_18(a6)
move.l d0,var_1C(a6)
move.l d0,var_20(a6)
move.l d0,var_24(a6)
move.l d0,var_28(a6)
move.l d0,var_2C(a6)
move.l d0,var_30(a6)
move.w arg_2(a6),var_4C+2(a6)
move.w #$20,var_48(a6) ; ' '
lea var_30(a6),a0
move.l a0,var_48+2(a6)
lea var_62(a6),a0
dc.w $A005 ; _Status
tst.w d0
bne.s loc_6000D240
moveq #7,d0
and.l var_20(a6),d0
moveq #7,d1
cmp.l d0,d1
seq d3
neg.b d3
move.b d3,d6
move.l var_1C(a6),d7
loc_6000D240: ; CODE XREF: sub_6000D198+92â†j
move.l a4,d0
beq.s loc_6000D246
move.l d7,(a4)
loc_6000D246: ; CODE XREF: sub_6000D198+AAâ†j
move.b d6,d0
movem.l var_72(a6),d3/d6-d7/a4
unlk a6
rts
; End of function sub_6000D198
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000D252: ; DATA XREF: sub_6000D69C+8↓o
var_C set -$C
arg_0 set 8
arg_4 set $C
arg_8 set $10
link a6,#0
movem.l d6-d7/a4,-(sp)
movea.l arg_0(a6),a4
move.l a4,d0
beq.s loc_6000D2C6
tst.l (a4)
beq.s loc_6000D2C6
movea.l (a4),a0
movea.l (a0),a0
move.w (a0),d7
bne.s loc_6000D27C
subq.l #2,sp
move.l (a4),-(sp)
moveq #$E,d0
move.w d0,-(sp)
dc.w $AA2C ; _TestDeviceAttribute
tst.b (sp)+
bne.s loc_6000D2C6
loc_6000D27C: ; CODE XREF: sub_6000D252+1Aâ†j
movea.l arg_8(a6),a0
move.b (a0),d6
ext.l d7
move.l d7,-(sp)
tst.b d6
beq.s loc_6000D28E
moveq #1,d0
bra.s loc_6000D290
; ---------------------------------------------------------------------------
loc_6000D28E: ; CODE XREF: sub_6000D252+36â†j
moveq #0,d0
loc_6000D290: ; CODE XREF: sub_6000D252+3Aâ†j
move.l d0,-(sp)
jsr sub_6000D3BC
tst.b d0
addq.w #8,sp
beq.s loc_6000D2C6
tst.b d6
beq.s loc_6000D2C6
movea.l ($2B6).w,a0
tst.b $39(a0)
beq.s loc_6000D2C6
movea.l ($2B6).w,a0
moveq #0,d0
move.b $3F(a0),d0
move.l arg_4(a6),d1
moveq #1,d2
lsl.l d1,d2
or.l d0,d2
movea.l ($2B6).w,a0
move.b d2,$3F(a0)
loc_6000D2C6: ; CODE XREF: sub_6000D252+Eâ†j
; sub_6000D252+12â†j ...
movem.l var_C(a6),d6-d7/a4
unlk a6
movea.l (sp)+,a0
lea $C(sp),sp
jmp (a0)
; End of function sub_6000D252
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000D2D6: ; CODE XREF: sub_6000D084+10â†p
; sub_6000D0A4+16â†p ...
var_20 set -$20
var_C set -$C
var_8 set -8
arg_3 set $B
link a6,#-$C
movem.l d6-d7/a2-a4,-(sp)
move.b arg_3(a6),d7
moveq #0,d0
movea.l d0,a4
dc.w $A11A ; _GetZone
movea.l a0,a2
subq.l #4,sp
move.l ($2A6).w,(sp)
movea.l (sp)+,a0
dc.w $A01B ; _SetZone
lea sub_6000D040,a4
movea.l ($2B6).w,a0
move.l $332(a0),var_8(a6)
beq.s loc_6000D332
moveq #0,d0
move.b d7,d0
tst.l d0
bne.s loc_6000D332
subq.l #2,sp
move.l var_8(a6),-(sp)
move.w #$22C,d0
dc.w $ABEB ; _DisplayDispatch
tst.w (sp)+
bne.s loc_6000D332
movea.l ($2B6).w,a0
moveq #0,d0
move.l d0,$332(a0)
movea.l ($2B6).w,a0
move.l d0,$336(a0)
move.l d0,var_8(a6)
loc_6000D332: ; CODE XREF: sub_6000D2D6+2Câ†j
; sub_6000D2D6+34â†j ...
tst.l var_8(a6)
bne.s loc_6000D36A
moveq #$17,d6
subq.l #2,sp
move.l d6,-(sp)
moveq #0,d0
move.l d0,-(sp)
move.l d0,-(sp)
pea var_C(a6)
pea var_8(a6)
move.w #$AD6,d0
dc.w $ABEB ; _DisplayDispatch
tst.w (sp)+
bne.s loc_6000D36A
movea.l ($2B6).w,a0
move.l var_8(a6),$332(a0)
movea.l ($2B6).w,a0
move.l var_C(a6),$336(a0)
loc_6000D36A: ; CODE XREF: sub_6000D2D6+60â†j
; sub_6000D2D6+7Eâ†j
moveq #0,d0
move.b d7,d0
cmpi.w #2,d0
bne.s loc_6000D3AC
movea.l ($2B6).w,a0
moveq #0,d0
move.b $33A(a0),d0
tst.l d0
bne.s loc_6000D3AC
lea sub_6000D084,a3
move.l a3,d0
beq.s loc_6000D3AC
subq.l #2,sp
move.l a3,-(sp)
moveq #0,d0
move.l d0,-(sp)
moveq #0,d0
move.w d0,-(sp)
moveq #0,d0
move.l d0,-(sp)
move.w #$7EF,d0
dc.w $ABEB ; _DisplayDispatch
movea.l ($2B6).w,a0
move.b #1,$33A(a0)
addq.w #2,sp
loc_6000D3AC: ; CODE XREF: sub_6000D2D6+9Câ†j
; sub_6000D2D6+AAâ†j ...
movea.l a2,a0
dc.w $A01B ; _SetZone
move.l a4,d0
movem.l var_20(a6),d6-d7/a2-a4
unlk a6
rts
; End of function sub_6000D2D6
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000D3BC: ; CODE XREF: sub_6000D252+40â†p
var_DA set -$DA
var_BE set -$BE
var_BA set -$BA
var_B6 set -$B6
var_B2 set -$B2
var_AE set -$AE
var_AC set -$AC
var_A8 set -$A8
var_A4 set -$A4
var_A0 set -$A0
var_9C set -$9C
var_98 set -$98
var_94 set -$94
var_90 set -$90
var_8C set -$8C
var_88 set -$88
var_84 set -$84
var_80 set -$80
var_7C set -$7C
var_78 set -$78
var_74 set -$74
var_70 set -$70
var_6C set -$6C
var_68 set -$68
var_64 set -$64
var_60 set -$60
var_5C set -$5C
var_58 set -$58
var_54 set -$54
var_50 set -$50
var_4C set -$4C
var_44 set -$44
var_4 set -4
arg_3 set $B
arg_6 set $E
link a6,#-$BE
movem.l d3-d7/a3-a4,-(sp)
move.w arg_6(a6),d7
lea var_44(a6),a3
lea var_4C(a6),a4
moveq #0,d0
move.l d0,var_4(a6)
clr.b d6
pea var_4(a6)
ext.l d7
move.l d7,-(sp)
jsr sub_6000D198
tst.b d0
addq.w #8,sp
beq.w loc_6000D650
ext.l d7
move.l d7,-(sp)
jsr sub_6000D122
tst.b d0
addq.w #4,sp
beq.w loc_6000D650
clr.l var_90(a6)
clr.l var_94(a6)
clr.l var_98(a6)
clr.l var_9C(a6)
clr.l var_A0(a6)
clr.l var_A4(a6)
clr.l var_A8(a6)
moveq #0,d0
move.l d0,var_AC(a6)
clr.w var_AE(a6)
move.l d0,var_B2(a6)
move.l d0,var_B6(a6)
clr.l var_BA(a6)
move.l d0,var_BE(a6)
move.l d0,var_50(a6)
move.l d0,var_54(a6)
move.l d0,var_58(a6)
move.l d0,var_5C(a6)
move.l d0,var_60(a6)
move.l d0,var_64(a6)
move.l d0,var_68(a6)
move.l d0,var_6C(a6)
move.l d0,var_70(a6)
move.l d0,var_74(a6)
move.l d0,var_78(a6)
move.l d0,var_7C(a6)
move.l d0,var_80(a6)
move.l d0,var_84(a6)
move.l d0,var_88(a6)
move.l d0,var_8C(a6)
lea unk_6000D65C,a0
lea 1(a3),a1
moveq #$3E,d1 ; '>'
loc_6000D47C: ; CODE XREF: sub_6000D3BC+C2↓j
move.b (a0)+,(a1)+
dbf d1,loc_6000D47C
clr.b (a3)
moveq #1,d5
move.b #$51,(a4) ; 'Q'
move.b #$82,1(a4)
move.b #1,2(a4)
move.b #$D6,3(a4)
move.b (a4),d1
moveq #$6E,d2 ; 'n'
eor.b d1,d2
move.b 1(a4),d1
eor.b d1,d2
move.b 2(a4),d1
eor.b d1,d2
move.b 3(a4),d1
eor.b d1,d2
move.b d2,4(a4)
move.l d0,var_8C(a6)
moveq #1,d1
move.l d1,var_78(a6)
moveq #$6E,d0 ; 'n'
move.l d0,var_7C(a6)
move.l a4,var_74(a6)
moveq #7,d0
move.l d0,var_70(a6)
moveq #2,d0
move.l d0,var_68(a6)
moveq #$6F,d0 ; 'o'
move.l d0,var_6C(a6)
move.l a3,var_64(a6)
moveq #$40,d0 ; '@'
move.l d0,var_60(a6)
move.l var_4(a6),d2
btst #0,d2
beq.s loc_6000D502
ori.l #1,var_88(a6)
move.l #$C350,var_84(a6)
loc_6000D502: ; CODE XREF: sub_6000D3BC+134â†j
move.w d7,var_A8+2(a6)
move.w #$21,var_A4(a6) ; '!'
lea var_8C(a6),a0
move.l a0,var_A4+2(a6)
lea var_BE(a6),a0
dc.w $A004 ; _Control
tst.w d0
bne.s loc_6000D590
moveq #0,d0
move.b (a3),d0
cmpi.w #$6E,d0 ; 'n'
bne.s loc_6000D590
moveq #0,d0
move.b 1(a3),d0
cmpi.w #$88,d0
bne.s loc_6000D590
moveq #0,d0
move.b 2(a3),d0
cmpi.w #2,d0
bne.s loc_6000D590
move.b (a3),d0
moveq #$50,d1 ; 'P'
eor.b d0,d1
move.b 1(a3),d0
eor.b d0,d1
move.b 2(a3),d0
eor.b d0,d1
move.b 3(a3),d0
eor.b d0,d1
move.b 4(a3),d0
eor.b d0,d1
move.b 5(a3),d0
eor.b d0,d1
move.b 6(a3),d0
eor.b d0,d1
move.b 7(a3),d0
eor.b d0,d1
move.b 8(a3),d0
eor.b d0,d1
move.b 9(a3),d0
eor.b d0,d1
move.b d1,d4
cmp.b $A(a3),d4
bne.s loc_6000D590
moveq #0,d0
move.b 3(a3),d0
tst.l d0
beq.s loc_6000D590
clr.b d5
loc_6000D590: ; CODE XREF: sub_6000D3BC+160â†j
; sub_6000D3BC+16Aâ†j ...
tst.b d5
beq.w loc_6000D650
move.b #$51,(a4) ; 'Q'
move.b #$84,1(a4)
move.b #3,2(a4)
move.b #$D6,3(a4)
clr.b 4(a4)
tst.b arg_3(a6)
beq.s loc_6000D5BA
moveq #1,d0
bra.s loc_6000D5BC
; ---------------------------------------------------------------------------
loc_6000D5BA: ; CODE XREF: sub_6000D3BC+1F8â†j
moveq #4,d0
loc_6000D5BC: ; CODE XREF: sub_6000D3BC+1FCâ†j
move.b d0,5(a4)
move.b (a4),d0
moveq #$6E,d1 ; 'n'
eor.b d0,d1
move.b 1(a4),d0
eor.b d0,d1
move.b 2(a4),d0
eor.b d0,d1
move.b 3(a4),d0
eor.b d0,d1
move.b 4(a4),d0
eor.b d0,d1
move.b 5(a4),d0
eor.b d0,d1
move.b d1,6(a4)
moveq #0,d0
move.l d0,var_8C(a6)
moveq #$6E,d1 ; 'n'
move.l d1,var_7C(a6)
moveq #1,d0
move.l d0,var_78(a6)
move.l a4,var_74(a6)
moveq #7,d0
move.l d0,var_70(a6)
moveq #0,d0
move.l d0,var_68(a6)
move.l d0,var_6C(a6)
move.l d0,var_64(a6)
move.l d0,var_60(a6)
move.l var_4(a6),d2
btst #0,d2
beq.s loc_6000D630
ori.l #1,var_88(a6)
move.l #$C350,var_84(a6)
loc_6000D630: ; CODE XREF: sub_6000D3BC+262â†j
move.w d7,var_A8+2(a6)
move.w #$21,var_A4(a6) ; '!'
lea var_8C(a6),a0
move.l a0,var_A4+2(a6)
lea var_BE(a6),a0
dc.w $A004 ; _Control
tst.w d0
seq d3
neg.b d3
move.b d3,d6
loc_6000D650: ; CODE XREF: sub_6000D3BC+2Câ†j
; sub_6000D3BC+3Câ†j ...
move.b d6,d0
movem.l var_DA(a6),d3-d7/a3-a4
unlk a6
rts
; End of function sub_6000D3BC
; ---------------------------------------------------------------------------
unk_6000D65C: dc.b 0 ; DATA XREF: sub_6000D3BC+B6â†o
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
dc.b 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_6000D69C: ; CODE XREF: sub_600063C6+24â†p
var_10 set -$10
var_8 set -8
var_4 set -4
arg_0 set 8
link a6,#-8
movem.l d7/a4,-(sp)
lea sub_6000D252,a4
moveq #$17,d7
moveq #0,d0
move.l d0,-(sp)
jsr sub_6000D2D6
move.l a4,d0
addq.w #4,sp
beq.s loc_6000D70A
subq.l #2,sp
move.l d7,-(sp)
moveq #0,d0
move.l d0,-(sp)
move.l d0,-(sp)
pea var_4(a6)
pea var_8(a6)
move.w #$AD6,d0
dc.w $ABEB ; _DisplayDispatch
tst.w (sp)+
bne.s loc_6000D70A
moveq #0,d7
bra.s loc_6000D6F6
; ---------------------------------------------------------------------------
loc_6000D6D8: ; CODE XREF: sub_6000D69C+5E↓j
subq.l #2,sp
move.l var_8(a6),-(sp)
move.l d7,-(sp)
moveq #0,d0
move.l d0,-(sp)
move.l a4,-(sp)
pea arg_0(a6)
move.w #$AD5,d0
dc.w $ABEB ; _DisplayDispatch
addq.w #2,sp
move.l d7,d0
addq.l #1,d7
loc_6000D6F6: ; CODE XREF: sub_6000D69C+3Aâ†j
cmp.l var_4(a6),d7
bcs.s loc_6000D6D8
subq.l #2,sp
move.l var_8(a6),-(sp)
move.w #$22C,d0
dc.w $ABEB ; _DisplayDispatch
addq.w #2,sp
loc_6000D70A: ; CODE XREF: sub_6000D69C+1Aâ†j
; sub_6000D69C+36â†j
move.l a4,d0
movem.l var_10(a6),d7/a4
unlk a6
movea.l (sp)+,a0
addq.w #2,sp
jmp (a0)
; End of function sub_6000D69C
; =============== S U B R O U T I N E =======================================
sub_6000D71A: ; CODE XREF: sub_6000A09Eâ†j
move.l ([$2010],4),-(sp)
rts
; End of function sub_6000D71A
; =============== S U B R O U T I N E =======================================
sub_6000D724: ; CODE XREF: sub_6000A0BAâ†j
move.l ([$2010],$30),-(sp)
rts
; End of function sub_6000D724
; =============== S U B R O U T I N E =======================================
sub_6000D72E: ; CODE XREF: sub_6000A0B6â†j
move.l ([$2010],$6C),-(sp)
rts
; End of function sub_6000D72E
; =============== S U B R O U T I N E =======================================
sub_6000D738: ; CODE XREF: sub_6000A09Aâ†j
move.l ([$2010],$B0),-(sp)
rts
; End of function sub_6000D738
; =============== S U B R O U T I N E =======================================
sub_6000D742: ; CODE XREF: sub_6000A0AEâ†j
move.l ([$2024],8),-(sp)
rts
; End of function sub_6000D742
; =============== S U B R O U T I N E =======================================
sub_6000D74C: ; CODE XREF: sub_6000A0B2â†j
move.l ([$2028],$6C),-(sp)
rts
; End of function sub_6000D74C
; =============== S U B R O U T I N E =======================================
sub_6000D756: ; CODE XREF: sub_6000A0A2â†j
move.l ([$202C],$180),-(sp)
rts
; End of function sub_6000D756
; =============== S U B R O U T I N E =======================================
sub_6000D760: ; CODE XREF: sub_6000A0AAâ†j
move.l ([$2044],$40),-(sp)
rts
; End of function sub_6000D760
; =============== S U B R O U T I N E =======================================
sub_6000D76A: ; CODE XREF: sub_6000A0A6â†j
move.l ([$2044],$70),-(sp)
rts
; End of function sub_6000D76A
; =============== S U B R O U T I N E =======================================
sub_6000D774: ; CODE XREF: sub_6000A096â†j
move.l ([$205C],$1D4),-(sp)
rts
; End of function sub_6000D774
; ---------------------------------------------------------------------------
dc.b $20
dc.b $2F ; /
dc.b 0
dc.b 4
dc.b $22 ; "
dc.b $2F ; /
dc.b 0
dc.b 8
; =============== S U B R O U T I N E =======================================
sub_6000D786: ; CODE XREF: DisableEDiskIfNotEnoughRAM+4Câ†p
move.l d0,-(sp)
mulu.w d1,d0
movea.l d0,a0
move.l d1,d0
mulu.w (sp)+,d1
clr.w d0
swap d0
beq.s loc_6000D798
mulu.w (sp),d0
loc_6000D798: ; CODE XREF: sub_6000D786+Eâ†j
addq.l #2,sp
add.w d1,d0
swap d0
clr.w d0
add.l a0,d0
rts
; End of function sub_6000D786
; ---------------------------------------------------------------------------
dc.b $86
dc.b 6
dc.b $55 ; U
dc.b $4C ; L
dc.b $4D ; M
dc.b $55 ; U
dc.b $4C ; L
dc.b $54 ; T
dc.b 0
dc.b 0
dc.b $22 ; "
dc.b $2F ; /
dc.b 0
dc.b 4
dc.b $20
dc.b $2F ; /
dc.b 0
dc.b 8
; =============== S U B R O U T I N E =======================================
sub_6000D7B6: ; CODE XREF: sub_6000CF0E+78â†p
lea sub_6000D7C2,a0
movea.w #2,a1
jmp -2(a0,a1.w*2)
; End of function sub_6000D7B6
; =============== S U B R O U T I N E =======================================
sub_6000D7C2: ; DATA XREF: sub_6000D7B6â†o
bra.s loc_6000D7CA
; ---------------------------------------------------------------------------
dc.b $4C ; L
dc.b $41 ; A
dc.b 8
dc.b 1
dc.b $4E ; N
dc.b $75 ; u
; ---------------------------------------------------------------------------
loc_6000D7CA: ; CODE XREF: sub_6000D7C2â†j
jsr loc_6000D7FA
move.l d1,d0
rts
; End of function sub_6000D7C2
; ---------------------------------------------------------------------------
dc.b $85
dc.b 5
dc.b $4C ; L
dc.b $44 ; D
dc.b $49 ; I
dc.b $56 ; V
dc.b $54 ; T
dc.b 0
dc.b 0
dc.b 0
dc.b $22 ; "
dc.b $2F ; /
dc.b 0
dc.b 4
dc.b $20
dc.b $2F ; /
dc.b 0
dc.b 8
; =============== S U B R O U T I N E =======================================
sub_6000D7E4: ; CODE XREF: sub_6000C128â†j
; sub_6000CF0E+62â†p
lea sub_6000D7F0,a0
movea.w #2,a1
jmp -2(a0,a1.w*2)
; End of function sub_6000D7E4
; =============== S U B R O U T I N E =======================================
sub_6000D7F0: ; DATA XREF: sub_6000D7E4â†o
bra.s loc_6000D7FA
; ---------------------------------------------------------------------------
dc.b $4C ; L
dc.b $41 ; A
dc.b 8
dc.b 1
dc.b $C3
dc.b $40 ; @
dc.b $4E ; N
dc.b $75 ; u
; ---------------------------------------------------------------------------
loc_6000D7FA: ; CODE XREF: sub_6000D7C2:loc_6000D7CAâ†p
; sub_6000D7F0â†j
tst.l d0
bmi.s loc_6000D812
tst.l d1
bmi.s loc_6000D808
jsr sub_6000D854
rts
; ---------------------------------------------------------------------------
loc_6000D808: ; CODE XREF: sub_6000D7F0+10â†j
neg.l d1
jsr sub_6000D854
neg.l d1
rts
; ---------------------------------------------------------------------------
loc_6000D812: ; CODE XREF: sub_6000D7F0+Câ†j
neg.l d0
tst.l d1
bmi.s loc_6000D822
jsr sub_6000D854
neg.l d0
neg.l d1
rts
; ---------------------------------------------------------------------------
loc_6000D822: ; CODE XREF: sub_6000D7F0+26â†j
neg.l d1
jsr sub_6000D854
neg.l d0
rts
; End of function sub_6000D7F0
; ---------------------------------------------------------------------------
dc.b $85
dc.b 5
dc.b $4C ; L
dc.b $4D ; M
dc.b $4F ; O
dc.b $44 ; D
dc.b $54 ; T
dc.b 0
dc.b 0
dc.b 0
dc.b $22 ; "
dc.b $2F ; /
dc.b 0
dc.b 4
dc.b $20
dc.b $2F ; /
dc.b 0
dc.b 8
dc.b $41 ; A
dc.b $FA
dc.b 0
dc.b $A
dc.b $32 ; 2
dc.b $7C ; |
dc.b 0
dc.b 2
dc.b $4E ; N
dc.b $F0
dc.b $92
dc.b $FE
dc.b $60 ; `
dc.b 8
dc.b $4C ; L
dc.b $41 ; A
dc.b 0
dc.b 1
dc.b $C3
dc.b $40 ; @
dc.b $4E ; N
dc.b $75 ; u
; =============== S U B R O U T I N E =======================================
sub_6000D854: ; CODE XREF: sub_6000D7F0+12â†p
; sub_6000D7F0+1Aâ†p ...
move.w d1,-(sp)
swap d1
tst.w d1
bne.s loc_6000D878
move.l d0,d1
clr.w d1
swap d1
beq.s loc_6000D86E
divu.w (sp),d1
swap d1
swap d0
move.w d1,d0
swap d0
loc_6000D86E: ; CODE XREF: sub_6000D854+Eâ†j
divu.w (sp)+,d0
move.w d0,d1
clr.w d0
swap d0
rts
; ---------------------------------------------------------------------------
loc_6000D878: ; CODE XREF: sub_6000D854+6â†j
swap d1
move.w d2,(sp)
move.l d3,-(sp)
move.w d0,d2
move.l d1,d3
moveq #1,d1
clr.w d0
swap d0
bne.s loc_6000D896
swap d0
move.w d2,d0
moveq #0,d1
bra.s loc_6000D8A8
; ---------------------------------------------------------------------------
loc_6000D892: ; CODE XREF: sub_6000D854+48↓j
add.w d1,d1
bcs.s loc_6000D8A8
loc_6000D896: ; CODE XREF: sub_6000D854+34â†j
; sub_6000D854+52↓j
add.w d2,d2
addx.l d0,d0
cmp.l d3,d0
bcs.s loc_6000D892
sub.l d3,d0
add.w d1,d1
bset #0,d1
bcc.s loc_6000D896
loc_6000D8A8: ; CODE XREF: sub_6000D854+3Câ†j
; sub_6000D854+40â†j
move.l (sp)+,d3
move.w (sp)+,d2
rts
; End of function sub_6000D854
; ---------------------------------------------------------------------------
dc.b $86
dc.b 6
dc.b $55 ; U
dc.b $4C ; L
dc.b $4D ; M
dc.b $4F ; O
dc.b $44 ; D
dc.b $54 ; T
dc.b 0
dc.b 0
; end of 'ROM'
END