mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-11-29 20:49:19 +00:00
198 lines
7.3 KiB
OpenEdge ABL
198 lines
7.3 KiB
OpenEdge ABL
|
|
{
|
|
Created: Tuesday, July 30, 1991 at 11:02 AM
|
|
ADSP.p
|
|
Pascal Interface to the Macintosh Libraries
|
|
|
|
Copyright Apple Computer, Inc. 1986-1991
|
|
All rights reserved
|
|
This file is used in these builds: Mac32 BigBang Sys606
|
|
|
|
|
|
Change History (most recent first):
|
|
|
|
<4> 7/30/91 JL Updated Copyright. Restored comments.
|
|
<3> 1/27/91 LN Checked in Database generate file from DSG.
|
|
<2> 10/10/90 JL Adding constants for consistency with C header.
|
|
|
|
To Do:
|
|
}
|
|
|
|
|
|
{$IFC UNDEFINED UsingIncludes}
|
|
{$SETC UsingIncludes := 0}
|
|
{$ENDC}
|
|
|
|
{$IFC NOT UsingIncludes}
|
|
UNIT ADSP;
|
|
INTERFACE
|
|
{$ENDC}
|
|
|
|
{$IFC UNDEFINED UsingADSP}
|
|
{$SETC UsingADSP := 1}
|
|
|
|
{$I+}
|
|
{$SETC ADSPIncludes := UsingIncludes}
|
|
{$SETC UsingIncludes := 1}
|
|
{$IFC UNDEFINED UsingAppleTalk}
|
|
{$I $$Shell(PInterfaces)AppleTalk.p}
|
|
{$ENDC}
|
|
{$SETC UsingIncludes := ADSPIncludes}
|
|
|
|
CONST
|
|
|
|
{ driver control ioResults }
|
|
errRefNum = -1280; { bad connection refNum }
|
|
errAborted = -1279; { control call was aborted }
|
|
errState = -1278; { bad connection state for this operation }
|
|
errOpening = -1277; { open connection request failed }
|
|
errAttention = -1276; { attention message too long }
|
|
errFwdReset = -1275; { read terminated by forward reset }
|
|
errDSPQueueSize = -1274; { DSP Read/Write Queue Too small }
|
|
errOpenDenied = -1273; { open connection request was denied }
|
|
|
|
{driver control csCodes}
|
|
dspInit = 255; { create a new connection end }
|
|
dspRemove = 254; { remove a connection end }
|
|
dspOpen = 253; { open a connection }
|
|
dspClose = 252; { close a connection }
|
|
dspCLInit = 251; { create a connection listener }
|
|
dspCLRemove = 250; { remove a connection listener }
|
|
dspCLListen = 249; { post a listener request }
|
|
dspCLDeny = 248; { deny an open connection request }
|
|
dspStatus = 247; { get status of connection end }
|
|
dspRead = 246; { read data from the connection }
|
|
dspWrite = 245; { write data on the connection }
|
|
dspAttention = 244; { send an attention message }
|
|
dspOptions = 243; { set connection end options }
|
|
dspReset = 242; { forward reset the connection }
|
|
dspNewCID = 241; { generate a cid for a connection end }
|
|
|
|
{ connection opening modes }
|
|
ocRequest = 1; { request a connection with remote }
|
|
ocPassive = 2; { wait for a connection request from remote }
|
|
ocAccept = 3; { accept request as delivered by listener }
|
|
ocEstablish = 4; { consider connection to be open }
|
|
|
|
{ connection end states }
|
|
sListening = 1; { for connection listeners }
|
|
sPassive = 2; { waiting for a connection request from remote }
|
|
sOpening = 3; { requesting a connection with remote }
|
|
sOpen = 4; { connection is open }
|
|
sClosing = 5; { connection is being torn down }
|
|
sClosed = 6; { connection end state is closed }
|
|
|
|
{ client event flags }
|
|
eClosed = $80; { received connection closed advice }
|
|
eTearDown = $40; { connection closed due to broken connection }
|
|
eAttention = $20; { received attention message }
|
|
eFwdReset = $10; { received forward reset advice }
|
|
|
|
{ miscellaneous constants }
|
|
attnBufSize = 570; { size of client attention buffer }
|
|
minDSPQueueSize = 100; { Minimum size of receive or send Queue }
|
|
|
|
TYPE
|
|
{ connection control block }
|
|
TPCCB = ^TRCCB;
|
|
TRCCB = PACKED RECORD
|
|
ccbLink: TPCCB; { link to next ccb }
|
|
refNum: INTEGER; { user reference number }
|
|
state: INTEGER; { state of the connection end }
|
|
userFlags: Byte; { flags for unsolicited connection events }
|
|
localSocket: Byte; { socket number of this connection end }
|
|
remoteAddress: AddrBlock; { internet address of remote end }
|
|
attnCode: INTEGER; { attention code received }
|
|
attnSize: INTEGER; { size of received attention data }
|
|
attnPtr: Ptr; { ptr to received attention data }
|
|
reserved: PACKED ARRAY [1..220] OF Byte; { adsp internal use }
|
|
END;
|
|
|
|
{ ADSP CntrlParam ioQElement , driver control call parameter block}
|
|
DSPPBPtr = ^DSPParamBlock;
|
|
DSPParamBlock = PACKED RECORD
|
|
qLink: QElemPtr;
|
|
qType: INTEGER;
|
|
ioTrap: INTEGER;
|
|
ioCmdAddr: Ptr;
|
|
ioCompletion: ProcPtr;
|
|
ioResult: OSErr;
|
|
ioNamePtr: StringPtr;
|
|
ioVRefNum: INTEGER;
|
|
ioCRefNum: INTEGER; { adsp driver refNum }
|
|
csCode: INTEGER; { adsp driver control code }
|
|
qStatus: LONGINT; { adsp internal use }
|
|
ccbRefNum: INTEGER; { refnum of ccb }
|
|
CASE INTEGER OF
|
|
dspInit,dspCLInit:
|
|
(ccbPtr: TPCCB; {pointer to connection control block}
|
|
userRoutine: ProcPtr; {client routine to call on event}
|
|
sendQSize: INTEGER; {size of send queue (0..64K bytes)}
|
|
sendQueue: Ptr; {client passed send queue buffer}
|
|
recvQSize: INTEGER; {size of receive queue (0..64K bytes)}
|
|
recvQueue: Ptr; {client passed receive queue buffer}
|
|
attnPtr: Ptr; {client passed receive attention buffer}
|
|
localSocket: Byte; {local socket number}
|
|
filler1: Byte; {filler for proper byte alignment}
|
|
);
|
|
dspOpen,dspCLListen,dspCLDeny:
|
|
(localCID: INTEGER; {local connection id}
|
|
remoteCID: INTEGER; {remote connection id}
|
|
remoteAddress: AddrBlock; {address of remote end}
|
|
filterAddress: AddrBlock; {address filter}
|
|
sendSeq: LONGINT; {local send sequence number}
|
|
sendWindow: INTEGER; {send window size}
|
|
recvSeq: LONGINT; {receive sequence number}
|
|
attnSendSeq: LONGINT; {attention send sequence number}
|
|
attnRecvSeq: LONGINT; {attention receive sequence number}
|
|
ocMode: Byte; {open connection mode}
|
|
ocInterval: Byte; {open connection request retry interval}
|
|
ocMaximum: Byte; {open connection request retry maximum}
|
|
filler2: Byte; {filler for proper byte alignment}
|
|
);
|
|
dspClose,dspRemove:
|
|
(abort: Byte; {abort connection immediately if non-zero}
|
|
filler3: Byte; {filler for proper byte alignment}
|
|
);
|
|
dspStatus:
|
|
(statusCCB: TPCCB; {pointer to ccb}
|
|
sendQPending: INTEGER; {pending bytes in send queue}
|
|
sendQFree: INTEGER; {available buffer space in send queue}
|
|
recvQPending: INTEGER; {pending bytes in receive queue}
|
|
recvQFree: INTEGER; {available buffer space in receive queue}
|
|
);
|
|
dspRead,dspWrite:
|
|
(reqCount: INTEGER; {requested number of bytes}
|
|
actCount: INTEGER; {actual number of bytes}
|
|
dataPtr: Ptr; {pointer to data buffer}
|
|
eom: Byte; {indicates logical end of message}
|
|
flush: Byte; {send data now}
|
|
);
|
|
dspAttention:
|
|
(attnCode: INTEGER; {client attention code}
|
|
attnSize: INTEGER; {size of attention data}
|
|
attnData: Ptr; {pointer to attention data}
|
|
attnInterval: Byte; {retransmit timer in 10-tick intervals}
|
|
filler4: Byte; {filler for proper byte alignment}
|
|
);
|
|
dspOptions:
|
|
(sendBlocking: INTEGER; {quantum for data packets}
|
|
sendTimer: Byte; {send timer in 10-tick intervals}
|
|
rtmtTimer: Byte; {retransmit timer in 10-tick intervals}
|
|
badSeqMax: Byte; {threshold for sending retransmit advice}
|
|
useCheckSum: Byte; {use ddp packet checksum}
|
|
);
|
|
dspNewCID:
|
|
(newCID: INTEGER; {new connection id returned}
|
|
);
|
|
END;
|
|
|
|
|
|
|
|
{$ENDC} { UsingADSP }
|
|
|
|
{$IFC NOT UsingIncludes}
|
|
END.
|
|
{$ENDC}
|
|
|