mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2024-09-06 18:54:30 +00:00
Resource forks are included only for .rsrc files. These are DeRezzed into their data fork. 'ckid' resources, from the Projector VCS, are not included. The Tools directory, containing mostly junk, is also excluded.
181 lines
3.4 KiB
OpenEdge ABL
181 lines
3.4 KiB
OpenEdge ABL
{
|
|
File: CommResourceMgrStartup.p
|
|
|
|
Contains: xxx put contents here xxx
|
|
|
|
Written by: xxx put writers here xxx
|
|
|
|
Copyright: © 1990 by Apple Computer, Inc., all rights reserved.
|
|
|
|
Change History (most recent first):
|
|
|
|
<3> 10/2/90 kaz Changing reserved to appList for Sys 7 in SetupBlock(). <jng>
|
|
<2> 3/16/90 BBH made it compile
|
|
<1> 3/14/90 BBH first checked in
|
|
|
|
To Do:
|
|
}
|
|
|
|
UNIT CRMInit;
|
|
{
|
|
Communications Resource Manager INIT
|
|
|
|
allocates the memory off of our low memory location ($BB4)
|
|
|
|
Copyright © 1988-1990 by Apple Computer, Inc. All rights reserved.
|
|
|
|
Byron Han, esquire. 6 September 1988.
|
|
|
|
First version ready for rolling: 19 September 1988
|
|
Thanks to The Art of Noise.
|
|
|
|
MODIFICATION HISTORY:
|
|
7/18/89 JNG Moved check of CTBtrap to before the calls to InitCRM & InitCTBUtils
|
|
}
|
|
|
|
INTERFACE
|
|
USES
|
|
MemTypes, QuickDraw, OSIntf, ToolIntf, PackIntf,
|
|
Traps, SysEqu,
|
|
CTBUtilities,
|
|
CommToolboxPriv,
|
|
CommResources;
|
|
|
|
PROCEDURE CRMInitEntry;
|
|
|
|
IMPLEMENTATION
|
|
|
|
FUNCTION Installed : BOOLEAN; FORWARD;
|
|
FUNCTION Allocated : BOOLEAN; FORWARD;
|
|
FUNCTION ObsoleteVersion : BOOLEAN; FORWARD;
|
|
PROCEDURE AllocateBlock; FORWARD;
|
|
PROCEDURE SetupBlock; FORWARD;
|
|
PROCEDURE DoFiles; FORWARD;
|
|
|
|
PROCEDURE CRMInitEntry;
|
|
VAR
|
|
theHandle : Handle;
|
|
|
|
masterPtr : CTBBlockPtr;
|
|
err: CRMErr;
|
|
|
|
BEGIN
|
|
theHandle := RecoverHandle(@CRMInitEntry);
|
|
HLock(theHandle);
|
|
|
|
IF NOT Installed THEN {Is this call necessary??? Well, it doesn't do any harm}
|
|
Exit(CRMInitEntry);
|
|
|
|
err := InitCTBUtilities;
|
|
err := InitCRM;
|
|
|
|
IF NOT Allocated THEN
|
|
BEGIN
|
|
AllocateBlock;
|
|
SetupBlock;
|
|
IF NOT Allocated THEN
|
|
Exit(CRMInitEntry);
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
IF ObsoleteVersion THEN
|
|
BEGIN
|
|
BlockMove(Ptr(CommToolboxGlobals), Ptr(@masterPtr), SIZEOF(Ptr));
|
|
DisposPtr(Ptr(masterPtr));
|
|
|
|
AllocateBlock;
|
|
SetupBlock;
|
|
END;
|
|
END;
|
|
|
|
DoFiles;
|
|
END;
|
|
|
|
PROCEDURE DoFiles;
|
|
VAR
|
|
err: OSErr;
|
|
vRefNum: INTEGER;
|
|
dirID: LONGINT;
|
|
|
|
BEGIN
|
|
err := CRMFindCommunications(vRefNum, dirID);
|
|
IF err <> noErr THEN
|
|
err := CRMCreateCommunications(vRefNum, dirID);
|
|
END;
|
|
|
|
FUNCTION Allocated : BOOLEAN;
|
|
TYPE
|
|
LongPtr = ^LONGINT;
|
|
|
|
VAR
|
|
thePtr : LONGINT;
|
|
|
|
BEGIN
|
|
thePtr := LongPtr(CommToolboxGlobals)^;
|
|
Allocated := (thePtr <> -1);
|
|
END;
|
|
|
|
FUNCTION ObsoleteVersion : BOOLEAN;
|
|
VAR
|
|
thePtr : CTBBlockPtr;
|
|
|
|
BEGIN
|
|
thePtr := CTBGlobalPtr(CommToolboxGlobals)^;
|
|
WITH thePtr^ DO
|
|
BEGIN
|
|
ObsoleteVersion := (version < CTBBlockVersion);
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE AllocateBlock;
|
|
VAR
|
|
thePtr : CTBBlockPtr;
|
|
|
|
BEGIN
|
|
thePtr := CTBBlockPtr(NewPtrSys(SIZEOF(CTBBlock)));
|
|
WITH thePtr^ DO
|
|
BEGIN
|
|
version := CTBBlockVersion;
|
|
END; {block}
|
|
BlockMove(Ptr(@thePtr), Ptr(CommToolboxGlobals), SIZEOF(Ptr));
|
|
END;
|
|
|
|
PROCEDURE SetupBlock; { this sets up the global block for the commtoolbox }
|
|
VAR
|
|
thePtr : CTBBlockPtr;
|
|
theQueueHeader : QHdrPtr;
|
|
|
|
BEGIN
|
|
thePtr := CTBGlobalPtr(CommToolboxGlobals)^;
|
|
WITH thePtr^ DO
|
|
BEGIN
|
|
version := CTBBlockVersion;
|
|
CRMQueue := QHdrPtr(NewPtrSys(SIZEOF(QHdr)));
|
|
resList := 0;
|
|
WITH CRMQueue^ DO BEGIN
|
|
QFlags := 0;
|
|
QHead := NIL;
|
|
QTail := NIL;
|
|
END;
|
|
|
|
private := 0;
|
|
{$IFC PRE70}
|
|
reserved := 0;
|
|
{$ELSEC}
|
|
appList := NIL;
|
|
{$ENDC}
|
|
resFiles := NIL;
|
|
toolResChain := NIL;
|
|
END; {block}
|
|
END;
|
|
|
|
FUNCTION Installed : BOOLEAN;
|
|
CONST
|
|
UnimplementedTrapNumber = $9F;
|
|
|
|
BEGIN
|
|
Installed := (NGetTrapAddress(UnimplementedTrapNumber, OSTrap) <> NGetTrapAddress(_CommToolboxDispatch, OSTrap));
|
|
END;
|
|
|
|
END.
|