; ; Hacks to match MacOS (most recent first): ; ; 8/3/92 Removed code to preflight the system heap with ResrvMem ; 9/2/94 SuperMario ROM source dump (header preserved below) ; ; ; File: ProcessManagerSegmentTweaks.a ; ; Contains: Code to do smarter loading of Process Manager segments to reduce ; system heap fragmentation. Based on Greg’s 7 Up code. ; ; Written by: Dean Yu ; ; Copyright: © 1991 by Apple Computer, Inc., all rights reserved. ; ; Change History (most recent first): ; ; <1> 12/16/91 DTY first checked in ; ; To do: Take decompression slop into account (this doesn’t happen yet, but it might) ; load 'StandardEqu.d' include 'LinkedPatchMacros.a' ; ; Loading these segments lower in the system heap helps reduce fragmentation of the ; system heap. Preloading resources from the System file doesn’t work because they ; come in before the decompression hooks are installed. For each Process Manager ; segment in our list, find out it’s size, reserve enough space for it, and load ; it low in the heap. ; kProcessManagerSegmentType equ 'scod' ; Process Manager segment resource type LoadProcessManagerSegmentsLowerInSysHeap InstallProc (Plus,SE,II,IIci,Portable) subq #2,sp _CurResFile ; Remember the current resource file clr.w -(sp) _UseResFile ; Work on the System file lea ProcessManagerSegmentTable,a4 ; Table of Process Manager segments to load low @loadLoop move.w (a4)+,d7 ; Get the segment number bz.s @doneWithSegments ; Did ’em all ; Don't preflight with Get1Resource/SizeRsrc/ResrvMem subq #4,sp move.l #kProcessManagerSegmentType,-(sp) move.w d7,-(sp) _Get1Resource ; Load it in addq #4,sp ; We don’t really care about the resource bra.s @loadLoop @doneWithSegments _UseResFile ; The current resource file is on the stack rts ProcessManagerSegmentTable dc.w $BFAC ; MiscSeg dc.w $BFB0 ; KernelSeg dc.w $BFB2 ; EPPCSeg dc.w 0 ; End of table EndProc End