[CDG5] Process Manager
Elliot Nunn
elliotnunn at fastmail.com
Mon Dec 31 13:51:31 AWST 2018
To build the ProcessMgrINIT, check out the 'system' branch of the CubeE
repo. With BuildCubeE:
:Build:Make System -src Src: Src:BuildResults:System:ProcessMgrINIT
I tested the INIT on System 7.5 (in empw under Mini vMac). I know it
works because if I slip a ShutDwnPower() into c_exittoshell(), the
emulator shuts down whenever an app quits. But under SheepShaver the
machine crashes after the splash screen, which is quite reasonable
considering that I ripped out the embryonic 'PsychicTV' code in order to
match System 7.1. The 68k 'scod' Process Manager is present at least as
late as Mac OS 8.6, indicating that it was not a high priority for the
8.5-vintage PowerPC rewrites.
Time for me to focus on other things for a bit, but (cough Daniel) I'd
love to hear about any testing or tinkering done.
All right -- I will quiet down about the Process Manager now.
Happy new year everyone!
> On 31 Dec 2018, at 11:16 am, Elliot Nunn <elliotnunn at fastmail.com> wrote:
>
> Sorry about the spam...
>
> It could be useful to write something to produce file x segment
> cross-references like this one I did by hand.
>
> . .M....... Error.a
> . .M....... OSDispatch.a
> . IM...K... ProcessMgrMisc.a
> . .....K... Switch.a
> . .M....... ZoomRect.a
> . IM...K.E. Startup.c
> . .....K... AppleEventExtensions.c
> G ......... Data.c
> . .....K..D Debugger.c
> . .M....... DeskMgrPatches.c
> G .......E. Eppc.c
> . IM......D Error.c
> G .M....... EventMgrPatches.c
> G IM....... FileSystem.c
> . .....K... HList.c
> G .....K... LayerMgrPatches.c
> . .M....... Memory.c
> G IMZ...... MemoryMgrPatches.c
> . .....K... MemoryMgr24Patches.c
> . ...3..... MemoryMgr32Patches.c
> G IM...K... MenuMgrPatches.c
> G .....K... OSDispatch.c
> . .M....... PackageMgrPatches.c
> G IM....... Patches.c
> G .....K... Processes.c
> G IM....... Puppet.c
> G .M....... Queue.c
> . .M....... ResourceMgrPatches.c
> . .....K... Schedule.c
> . .M...K... ScrapCoercion.c
> . IM...K... SegmentLoaderPatches.c
> . .M....... Sleep.c
> . IM...K... Switch.c
> . .....K... Utilities.c
> . .M....... WindowMgrPatches.c
> . .M....... Interface.o
> . ......... Runtime.o
> | |||||||||
> . ......... Debugger
> . ........ eppc_segment
> . ....... %A5Init
> . ...... kernel_segment
> . ..... zone24_tools
> . .... zone32_tools
> . ... zone_tools
> . .. Main
> . . INIT
> . global
>
>> On 31 Dec 2018, at 11:03 am, Elliot Nunn <elliotnunn at fastmail.com> wrote:
>>
>> Got it!
>>
>> Things that didn't change the layout of jump table entries:
>>
>> - order of EntryPoint records in .o files
>> - order of references made to EntryPoints
>> - linker version
>> - swearing
>>
>> In the end I just trawled through the manpage for Link and tried
>> everything (thanks Jason). The -map option (I was using the -l option
>> for my link maps) apparently has a subtle side effect, and fixed my jump
>> table. Unfortunately there is very little segmented code for which we
>> have any source, so this is not exactly a transferrable skill.
>>
>> Getting a perfect binary output isn't *entirely* self-indulgence on my
>> part. It allows us to start and patches or mods from a known-good
>> version of our source.
>>
>> Daniel, there is actually code here to build a ProcessMgrINIT. I'll get
>> that working and try it out.
>>
>>> On 31 Dec 2018, at 1:26 am, Daniel B-J <danielbj314 at verizon.net> wrote:
>>>
>>> Maybe when it isn't like midnight for you (your dedication is impressive), you should write a tool for working with System Files. Maybe take a known good System File, overwrite some parts of it (isn't that what an enabler does? Could do something clever there), and stick the result in a image for miniVMac to try.
>>
>> _______________________________________________
>> cdg5 mailing list
>> cdg5 at ucc.asn.au
>> https://lists.ucc.gu.uwa.edu.au/mailman/listinfo/cdg5
>
> _______________________________________________
> cdg5 mailing list
> cdg5 at ucc.asn.au
> https://lists.ucc.gu.uwa.edu.au/mailman/listinfo/cdg5
More information about the cdg5
mailing list