mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2024-06-14 02:29:29 +00:00
4325cdcc78
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.
417 lines
15 KiB
OpenEdge ABL
417 lines
15 KiB
OpenEdge ABL
|
|
{
|
|
Created: Wednesday, July 24, 1991 at 3:40 PM
|
|
PPCToolBox.p
|
|
Pascal Interface to the Macintosh Libraries
|
|
|
|
Copyright Apple Computer, Inc. 1989-1992
|
|
All rights reserved
|
|
|
|
Change History (most recent first):
|
|
|
|
<28> 6/26/92 DCL Miner Formatting Changes. Digging deep for things to do.
|
|
<27> 4/17/92 JSM Take out StoreAndForward revisions, those changes are not
|
|
supported by PPC for CubeE.
|
|
<26> 7/24/91 JL Fixed the build. PPCOpenPBRec's field noAuthRequired was
|
|
resFlag.
|
|
<25> 7/24/91 JL Updated Copyright. Restored comments. Roll in StoreAndForward
|
|
Revisions
|
|
<24> 1/30/91 JL Checked in database generated file from dsg.
|
|
<23> 11/8/90 EMT <stb>Move error constants to Errors.p
|
|
<22> 10/24/90 EMT Fix Interface errors, Str32's should be used where Str255's are
|
|
in some places
|
|
<21> 10/18/90 JL OOps checking in the file again.
|
|
<20> 10/17/90 JL Puting constants back in order for ease of use.
|
|
<19> 10/10/90 JL Fixing Inlines for Sync and Async calls.
|
|
<18> 10/3/90 JAL Added Sync and Async calls and added inline for PPCInit. Cleaned up things
|
|
<17> 9/18/90 EMT Change noUserNameErr to the more appropriate noMachineNameErr
|
|
nomenclature.
|
|
<16> 9/15/90 ngk Change to new, way-cool constants and field names
|
|
#### warning this was a major change ####
|
|
|
|
<15> 4/7/90 ngk Changed Size to LONGINT, since Memory.p is not auto-included.
|
|
<14> 3/20/90 S Add requestType parameter to PPCInform call and Add reservedFlag
|
|
fields to few calls.
|
|
<13> 3/19/90 JSM PPCBrowser now returns PortInfo instead of PortName.
|
|
<12> 2/27/90 S Remove authRequest parameter from PPCOpen Call & include
|
|
guestNotAllowedErr.
|
|
<11> 2/19/90 EMT Fixed syntax error in PPCBrowser interface.
|
|
<10> 2/19/90 JSM Add PPCBrowser interface.
|
|
<7> 1/30/90 S Added Some Error Codes.
|
|
<6> 1/10/90 S Include Definition For StartSecureSession Function.
|
|
<5> 1/9/90 S Fixed Missing Colons.
|
|
<4> 1/9/90 S Changes in Parameter Blocks.
|
|
<4> 1/9/90 S Some Minor Fixes and Change in ParameteBlocks.
|
|
<1.1> 11/3/89 ngk Fixed bug in error codes.
|
|
<1.0> 11/2/89 ngk initial submission to EASE
|
|
|
|
}
|
|
|
|
|
|
{$IFC UNDEFINED UsingIncludes}
|
|
{$SETC UsingIncludes := 0}
|
|
{$ENDC}
|
|
|
|
{$IFC NOT UsingIncludes}
|
|
UNIT PPCToolBox;
|
|
INTERFACE
|
|
{$ENDC}
|
|
|
|
{$IFC UNDEFINED UsingPPCToolBox}
|
|
{$SETC UsingPPCToolBox := 1}
|
|
|
|
{$I+}
|
|
{$SETC PPCToolBoxIncludes := UsingIncludes}
|
|
{$SETC UsingIncludes := 1}
|
|
{$IFC UNDEFINED UsingAppleTalk}
|
|
{$I $$Shell(PInterfaces)AppleTalk.p}
|
|
{$ENDC}
|
|
{$IFC UNDEFINED UsingMemory}
|
|
{$I $$Shell(PInterfaces)Memory.p}
|
|
{$ENDC}
|
|
{$IFC UNDEFINED UsingTypes}
|
|
{$I $$Shell(PInterfaces)Types.p}
|
|
{$ENDC}
|
|
{$SETC UsingIncludes := PPCToolBoxIncludes}
|
|
|
|
TYPE
|
|
PPCServiceType = SignedByte;
|
|
|
|
CONST
|
|
ppcServiceRealTime = 1;
|
|
|
|
TYPE
|
|
PPCLocationKind = INTEGER;
|
|
|
|
CONST
|
|
ppcNoLocation = 0; { There is no PPCLocName }
|
|
ppcNBPLocation = 1; { Use AppleTalk NBP }
|
|
ppcNBPTypeLocation = 2; { Used for specifying a location name type during PPCOpen only }
|
|
|
|
TYPE
|
|
PPCPortKinds = INTEGER;
|
|
|
|
CONST
|
|
ppcByCreatorAndType = 1; { Port type is specified as colloquial Mac creator and type }
|
|
ppcByString = 2; { Port type is in pascal string format }
|
|
|
|
TYPE
|
|
PPCSessionOrigin = SignedByte; { Values returned for request field in PPCInform call }
|
|
|
|
CONST
|
|
|
|
{ Values returned for requestType field in PPCInform call }
|
|
ppcLocalOrigin = 1; { session originated from this machine }
|
|
ppcRemoteOrigin = 2; { session originated from remote machine }
|
|
|
|
TYPE
|
|
PPCPortRefNum = INTEGER;
|
|
PPCSessRefNum = LONGINT;
|
|
|
|
PPCPortPtr = ^PPCPortRec;
|
|
PPCPortRec = RECORD
|
|
nameScript: ScriptCode; { script of name }
|
|
name: Str32; { name of port as seen in browser }
|
|
portKindSelector: PPCPortKinds; { which variant }
|
|
CASE PPCPortKinds OF
|
|
ppcByString:
|
|
(portTypeStr: Str32);
|
|
ppcByCreatorAndType:
|
|
(portCreator: OSType;
|
|
portType: OSType);
|
|
END;
|
|
|
|
LocationNamePtr = ^LocationNameRec;
|
|
LocationNameRec = RECORD
|
|
locationKindSelector: PPCLocationKind; { which variant }
|
|
CASE PPCLocationKind OF
|
|
ppcNBPLocation:
|
|
(nbpEntity: EntityName); { NBP name entity }
|
|
ppcNBPTypeLocation:
|
|
(nbpType: Str32); { just the NBP type string, for PPCOpen }
|
|
END;
|
|
|
|
PortInfoPtr = ^PortInfoRec;
|
|
PortInfoRec = RECORD
|
|
filler1: SignedByte;
|
|
authRequired: BOOLEAN;
|
|
name: PPCPortRec;
|
|
END;
|
|
|
|
|
|
PortInfoArrayPtr = ^PortInfoArray;
|
|
PortInfoArray = ARRAY [0..0] OF PortInfoRec;
|
|
{ Procedures you will need to write }
|
|
PPCFilterProcPtr = ProcPtr; { FUNCTION MyPortFilter(locationName: LocationNameRec; thePortInfo: PortInfoRec): BOOLEAN; }
|
|
PPCCompProcPtr = ProcPtr; { PROCEDURE MyCompletionRoutine(pb: PPCParamBlockPtr); }
|
|
|
|
PPCOpenPBPtr = ^PPCOpenPBRec;
|
|
PPCOpenPBRec = RECORD
|
|
qLink: Ptr; { reserved }
|
|
csCode: INTEGER; { reserved }
|
|
intUse: INTEGER; { reserved }
|
|
intUsePtr: Ptr; { reserved }
|
|
ioCompletion: PPCCompProcPtr;
|
|
ioResult: OSErr;
|
|
reserved: ARRAY [1..5] OF LONGINT; { reserved }
|
|
portRefNum: PPCPortRefNum; { 38 <-- Port Reference }
|
|
filler1: LONGINT;
|
|
serviceType: PPCServiceType; { 44 --> Bit field describing the requested port service }
|
|
resFlag: SignedByte; { 45 --> Must be set to 0 }
|
|
portName: PPCPortPtr; { 46 --> PortName for PPC }
|
|
locationName: LocationNamePtr; { 50 --> If NBP Registration is required }
|
|
networkVisible: BOOLEAN; { 54 --> make this network visible on network }
|
|
nbpRegistered: BOOLEAN; { 55 <-- The given location name was registered on the network }
|
|
END;
|
|
|
|
PPCInformPBPtr = ^PPCInformPBRec;
|
|
PPCInformPBRec = RECORD
|
|
qLink: Ptr; { reserved }
|
|
csCode: INTEGER; { reserved }
|
|
intUse: INTEGER; { reserved }
|
|
intUsePtr: Ptr; { reserved }
|
|
ioCompletion: PPCCompProcPtr;
|
|
ioResult: OSErr;
|
|
reserved: ARRAY [1..5] OF LONGINT; { reserved }
|
|
portRefNum: PPCPortRefNum; { 38 --> Port Identifier }
|
|
sessRefNum: PPCSessRefNum; { 40 <-- Session Reference }
|
|
serviceType: PPCServiceType; { 44 <-- Status Flags for type of session, local, remote }
|
|
autoAccept: BOOLEAN; { 45 --> if true session will be accepted automatically }
|
|
portName: PPCPortPtr; { 46 --> Buffer for Source PPCPortRec }
|
|
locationName: LocationNamePtr; { 50 --> Buffer for Source LocationNameRec }
|
|
userName: StringPtr; { 54 --> Buffer for Soure user's name trying to link. }
|
|
userData: LONGINT; { 58 <-- value included in PPCStart's userData }
|
|
requestType: PPCSessionOrigin; { 62 <-- Local or Network }
|
|
END;
|
|
|
|
PPCStartPBPtr = ^PPCStartPBRec;
|
|
PPCStartPBRec = RECORD
|
|
qLink: Ptr; { reserved }
|
|
csCode: INTEGER; { reserved }
|
|
intUse: INTEGER; { reserved }
|
|
intUsePtr: Ptr; { reserved }
|
|
ioCompletion: PPCCompProcPtr;
|
|
ioResult: OSErr;
|
|
reserved: ARRAY [1..5] OF LONGINT; { reserved }
|
|
portRefNum: PPCPortRefNum; { 38 --> Port Identifier }
|
|
sessRefNum: PPCSessRefNum; { 40 <-- Session Reference }
|
|
serviceType: PPCServiceType; { 44 <-- Actual service method (realTime) }
|
|
resFlag: SignedByte; { 45 --> Must be set to 0 }
|
|
portName: PPCPortPtr; { 46 --> Destination portName }
|
|
locationName: LocationNamePtr; { 50 --> NBP or NAS style service location name }
|
|
rejectInfo: LONGINT; { 54 <-- reason for rejecting the session request }
|
|
userData: LONGINT; { 58 --> Copied to destination PPCInform parameter block }
|
|
userRefNum: LONGINT; { 62 --> userRefNum (obtained during login process) }
|
|
END;
|
|
|
|
PPCAcceptPBPtr = ^PPCAcceptPBRec;
|
|
PPCAcceptPBRec = RECORD
|
|
qLink: Ptr; { reserved }
|
|
csCode: INTEGER; { reserved }
|
|
intUse: INTEGER; { reserved }
|
|
intUsePtr: Ptr; { reserved }
|
|
ioCompletion: PPCCompProcPtr;
|
|
ioResult: OSErr;
|
|
reserved: ARRAY [1..5] OF LONGINT; { reserved }
|
|
filler1: INTEGER;
|
|
sessRefNum: PPCSessRefNum; { 40 --> Session Reference }
|
|
END;
|
|
|
|
PPCRejectPBPtr = ^PPCRejectPBRec;
|
|
PPCRejectPBRec = RECORD
|
|
qLink: Ptr; { reserved }
|
|
csCode: INTEGER; { reserved }
|
|
intUse: INTEGER; { reserved }
|
|
intUsePtr: Ptr; { reserved }
|
|
ioCompletion: PPCCompProcPtr;
|
|
ioResult: OSErr;
|
|
reserved: ARRAY [1..5] OF LONGINT; { reserved }
|
|
filler1: INTEGER;
|
|
sessRefNum: PPCSessRefNum; { 40 --> Session Reference }
|
|
filler2: INTEGER;
|
|
filler3: LONGINT;
|
|
filler4: LONGINT;
|
|
rejectInfo: LONGINT; { 54 --> reason for rejecting the session request }
|
|
END;
|
|
|
|
PPCWritePBPtr = ^PPCWritePBRec;
|
|
PPCWritePBRec = RECORD
|
|
qLink: Ptr; { reserved }
|
|
csCode: INTEGER; { reserved }
|
|
intUse: INTEGER; { reserved }
|
|
intUsePtr: Ptr; { reserved }
|
|
ioCompletion: PPCCompProcPtr;
|
|
ioResult: OSErr;
|
|
reserved: ARRAY [1..5] OF LONGINT; { reserved }
|
|
filler1: INTEGER;
|
|
sessRefNum: PPCSessRefNum; { 40 --> Session Reference }
|
|
bufferLength: Size; { 44 --> Length of the message buffer }
|
|
actualLength: Size; { 48 <-- Actual Length Written }
|
|
bufferPtr: Ptr; { 52 --> Pointer to message buffer }
|
|
more: BOOLEAN; { 56 --> if more data in this block will be written }
|
|
filler2: SignedByte;
|
|
userData: LONGINT; { 58 --> Message block userData Uninterpreted by PPC }
|
|
blockCreator: OSType; { 62 --> Message block creator Uninterpreted by PPC }
|
|
blockType: OSType; { 66 --> Message block type Uninterpreted by PPC }
|
|
END;
|
|
|
|
PPCReadPBPtr = ^PPCReadPBRec;
|
|
PPCReadPBRec = RECORD
|
|
qLink: Ptr; { reserved }
|
|
csCode: INTEGER; { reserved }
|
|
intUse: INTEGER; { reserved }
|
|
intUsePtr: Ptr; { reserved }
|
|
ioCompletion: PPCCompProcPtr;
|
|
ioResult: OSErr;
|
|
reserved: ARRAY [1..5] OF LONGINT; { reserved }
|
|
filler1: INTEGER;
|
|
sessRefNum: PPCSessRefNum; { 40 --> Session Reference }
|
|
bufferLength: Size; { 44 --> Length of the message buffer }
|
|
actualLength: Size; { 48 <-- Actual length read }
|
|
bufferPtr: Ptr; { 52 --> Pointer to message buffer }
|
|
more: BOOLEAN; { 56 <-- if true more data in this block to be read }
|
|
filler2: SignedByte;
|
|
userData: LONGINT; { 58 <-- Message block userData Uninterpreted by PPC }
|
|
blockCreator: OSType; { 62 <-- Message block creator Uninterpreted by PPC }
|
|
blockType: OSType; { 66 <-- Message block type Uninterpreted by PPC }
|
|
END;
|
|
|
|
PPCEndPBPtr = ^PPCEndPBRec;
|
|
PPCEndPBRec = RECORD
|
|
qLink: Ptr; { reserved }
|
|
csCode: INTEGER; { reserved }
|
|
intUse: INTEGER; { reserved }
|
|
intUsePtr: Ptr; { reserved }
|
|
ioCompletion: PPCCompProcPtr;
|
|
ioResult: OSErr;
|
|
reserved: ARRAY [1..5] OF LONGINT; { reserved }
|
|
filler1: INTEGER;
|
|
sessRefNum: PPCSessRefNum; { 40 --> Session Reference }
|
|
END;
|
|
|
|
PPCClosePBPtr = ^PPCClosePBRec;
|
|
PPCClosePBRec = RECORD
|
|
qLink: Ptr; { reserved }
|
|
csCode: INTEGER; { reserved }
|
|
intUse: INTEGER; { reserved }
|
|
intUsePtr: Ptr; { reserved }
|
|
ioCompletion: PPCCompProcPtr;
|
|
ioResult: OSErr;
|
|
reserved: ARRAY [1..5] OF LONGINT; { reserved }
|
|
portRefNum: PPCPortRefNum; { 38 --> Port Identifier }
|
|
END;
|
|
|
|
IPCListPortsPBPtr = ^IPCListPortsPBRec;
|
|
IPCListPortsPBRec = RECORD
|
|
qLink: Ptr; { reserved }
|
|
csCode: INTEGER; { reserved }
|
|
intUse: INTEGER; { reserved }
|
|
intUsePtr: Ptr; { reserved }
|
|
ioCompletion: PPCCompProcPtr;
|
|
ioResult: OSErr;
|
|
reserved: ARRAY [1..5] OF LONGINT; { reserved }
|
|
filler1: INTEGER;
|
|
startIndex: INTEGER; { 40 --> Start Index }
|
|
requestCount: INTEGER; { 42 --> Number of entries to be returned }
|
|
actualCount: INTEGER; { 44 <-- Actual Number of entries to be returned }
|
|
portName: PPCPortPtr; { 46 --> PortName Match }
|
|
locationName: LocationNamePtr; { 50 --> NBP or NAS type name to locate the Port Location }
|
|
bufferPtr: PortInfoArrayPtr; { 54 --> Pointer to a buffer requestCount*sizeof(PortInfo) bytes big }
|
|
END;
|
|
|
|
PPCParamBlockPtr = ^PPCParamBlockRec;
|
|
PPCParamBlockRec = RECORD
|
|
CASE Integer OF
|
|
0: (openParam: PPCOpenPBRec);
|
|
1: (informParam: PPCInformPBRec);
|
|
2: (startParam: PPCStartPBRec);
|
|
3: (acceptParam: PPCAcceptPBRec);
|
|
4: (rejectParam: PPCRejectPBRec);
|
|
5: (writeParam: PPCWritePBRec);
|
|
6: (readParam: PPCReadPBRec);
|
|
7: (endParam: PPCEndPBRec);
|
|
8: (closeParam: PPCClosePBRec);
|
|
9: (listPortsParam: IPCListPortsPBRec);
|
|
END;
|
|
|
|
|
|
|
|
{ PPC Calling Conventions }
|
|
FUNCTION PPCInit: OSErr;
|
|
INLINE $7000,$A0DD,$3E80;
|
|
FUNCTION PPCOpen(pb: PPCOpenPBPtr;async: BOOLEAN): OSErr;
|
|
FUNCTION PPCOpenSync(pb: PPCOpenPBPtr): OSErr;
|
|
INLINE $205F,$7001,$A0DD,$3E80;
|
|
FUNCTION PPCOpenAsync(pb: PPCOpenPBPtr): OSErr;
|
|
INLINE $205F,$7001,$A4DD,$3E80;
|
|
FUNCTION PPCInform(pb: PPCInformPBPtr;async: BOOLEAN): OSErr;
|
|
FUNCTION PPCInformSync(pb: PPCInformPBPtr): OSErr;
|
|
INLINE $205F,$7003,$A0DD,$3E80;
|
|
FUNCTION PPCInformAsync(pb: PPCInformPBPtr): OSErr;
|
|
INLINE $205F,$7003,$A4DD,$3E80;
|
|
FUNCTION PPCStart(pb: PPCStartPBPtr;async: BOOLEAN): OSErr;
|
|
FUNCTION PPCStartSync(pb: PPCStartPBPtr): OSErr;
|
|
INLINE $205F,$7002,$A0DD,$3E80;
|
|
FUNCTION PPCStartAsync(pb: PPCStartPBPtr): OSErr;
|
|
INLINE $205F,$7002,$A4DD,$3E80;
|
|
FUNCTION PPCAccept(pb: PPCAcceptPBPtr;async: BOOLEAN): OSErr;
|
|
FUNCTION PPCAcceptSync(pb: PPCAcceptPBPtr): OSErr;
|
|
INLINE $205F,$7004,$A0DD,$3E80;
|
|
FUNCTION PPCAcceptAsync(pb: PPCAcceptPBPtr): OSErr;
|
|
INLINE $205F,$7004,$A4DD,$3E80;
|
|
FUNCTION PPCReject(pb: PPCRejectPBPtr;async: BOOLEAN): OSErr;
|
|
FUNCTION PPCRejectSync(pb: PPCRejectPBPtr): OSErr;
|
|
INLINE $205F,$7005,$A0DD,$3E80;
|
|
FUNCTION PPCRejectAsync(pb: PPCRejectPBPtr): OSErr;
|
|
INLINE $205F,$7005,$A4DD,$3E80;
|
|
FUNCTION PPCWrite(pb: PPCWritePBPtr;async: BOOLEAN): OSErr;
|
|
FUNCTION PPCWriteSync(pb: PPCWritePBPtr): OSErr;
|
|
INLINE $205F,$7006,$A0DD,$3E80;
|
|
FUNCTION PPCWriteAsync(pb: PPCWritePBPtr): OSErr;
|
|
INLINE $205F,$7006,$A4DD,$3E80;
|
|
FUNCTION PPCRead(pb: PPCReadPBPtr;async: BOOLEAN): OSErr;
|
|
FUNCTION PPCReadSync(pb: PPCReadPBPtr): OSErr;
|
|
INLINE $205F,$7007,$A0DD,$3E80;
|
|
FUNCTION PPCReadAsync(pb: PPCReadPBPtr): OSErr;
|
|
INLINE $205F,$7007,$A4DD,$3E80;
|
|
FUNCTION PPCEnd(pb: PPCEndPBPtr;async: BOOLEAN): OSErr;
|
|
FUNCTION PPCEndSync(pb: PPCEndPBPtr): OSErr;
|
|
INLINE $205F,$7008,$A0DD,$3E80;
|
|
FUNCTION PPCEndAsync(pb: PPCEndPBPtr): OSErr;
|
|
INLINE $205F,$7008,$A4DD,$3E80;
|
|
FUNCTION PPCClose(pb: PPCClosePBPtr;async: BOOLEAN): OSErr;
|
|
FUNCTION PPCCloseSync(pb: PPCClosePBPtr): OSErr;
|
|
INLINE $205F,$7009,$A0DD,$3E80;
|
|
FUNCTION PPCCloseAsync(pb: PPCClosePBPtr): OSErr;
|
|
INLINE $205F,$7009,$A4DD,$3E80;
|
|
FUNCTION IPCListPorts(pb: IPCListPortsPBPtr;async: BOOLEAN): OSErr;
|
|
FUNCTION IPCListPortsSync(pb: IPCListPortsPBPtr): OSErr;
|
|
INLINE $205F,$700A,$A0DD,$3E80;
|
|
FUNCTION IPCListPortsAsync(pb: IPCListPortsPBPtr): OSErr;
|
|
INLINE $205F,$700A,$A4DD,$3E80;
|
|
FUNCTION DeleteUserIdentity(userRef: LONGINT): OSErr;
|
|
FUNCTION GetDefaultUser(VAR userRef: LONGINT;
|
|
VAR userName: Str32): OSErr;
|
|
FUNCTION StartSecureSession(pb: PPCStartPBPtr;
|
|
VAR userName: Str32;
|
|
useDefault: BOOLEAN;
|
|
allowGuest: BOOLEAN;
|
|
VAR guestSelected: BOOLEAN;
|
|
prompt: Str255): OSErr;
|
|
FUNCTION PPCBrowser(prompt: Str255;
|
|
applListLabel: Str255;
|
|
defaultSpecified: BOOLEAN;
|
|
VAR theLocation: LocationNameRec;
|
|
VAR thePortInfo: PortInfoRec;
|
|
portFilter: PPCFilterProcPtr;
|
|
theLocNBPType: Str32): OSErr;
|
|
INLINE $303C,$0D00,$A82B;
|
|
|
|
|
|
{$ENDC} { UsingPPCToolBox }
|
|
|
|
{$IFC NOT UsingIncludes}
|
|
END.
|
|
{$ENDC}
|
|
|