492 lines
16 KiB
C
492 lines
16 KiB
C
/*
|
|
Hacks to match MacOS (most recent first):
|
|
|
|
<Sys7.1> 8/3/92 Decompiled from scratch
|
|
*/
|
|
|
|
#ifndef __TYPES__
|
|
#include <Types.h>
|
|
#endif
|
|
|
|
#ifndef __FILES__
|
|
#include <Files.h>
|
|
#endif
|
|
|
|
#ifndef __MEMORY__
|
|
#include <Memory.h>
|
|
#endif
|
|
|
|
#ifndef __ERRORS__
|
|
#include <Errors.h>
|
|
#endif
|
|
|
|
#ifndef __RESOURCES__
|
|
#include <Resources.h>
|
|
#endif
|
|
|
|
#ifndef __TOOLUTILS__
|
|
#include <ToolUtils.h>
|
|
#endif
|
|
|
|
#ifndef __OSUTILS__
|
|
#include <OSUtils.h>
|
|
#endif
|
|
|
|
#ifndef __DEVICES__
|
|
#include <Devices.h>
|
|
#endif
|
|
|
|
#ifndef __POWER__
|
|
#include <Power.h>
|
|
#endif
|
|
|
|
#include <BTEqu.h>
|
|
#include "UserGroup.h"
|
|
|
|
#ifndef __APPLETALK__
|
|
#include <AppleTalk.h>
|
|
#endif
|
|
|
|
#ifndef __ADSP__
|
|
#include "ADSP.h"
|
|
#endif
|
|
|
|
#ifndef __PPCTOOLBOX__
|
|
#include <PPCToolBox.h>
|
|
#endif
|
|
|
|
#ifndef __STDDEF__
|
|
#include <StdDef.h>
|
|
#endif
|
|
|
|
#include "PPCCommon.h"
|
|
|
|
|
|
OSErr OpenADSPDriver(short *refNum) //26cc4
|
|
{
|
|
// ROM:00126CC4 link a6,#0
|
|
// ROM:00126CC8 subq.l #2,sp
|
|
// ROM:00126CCA pea unk_126CDC
|
|
// ROM:00126CCE move.l 8(a6),-(sp)
|
|
// ROM:00126CD2 ori.b #$D7,d0
|
|
// ROM:00126CD6 move.w (sp)+,d0
|
|
// ROM:00126CD8 unlk a6
|
|
// ROM:00126CDA rts
|
|
return OpenDriver("\p.DSP", refNum);
|
|
}
|
|
|
|
OSErr CreateConnectionListener(Ptr ccbPtr, //8
|
|
DSPParamBlock *dsp, //c
|
|
unsigned short dspDrvrRef, //10
|
|
unsigned char socket, //12
|
|
Boolean async, //14
|
|
ProcPtr compRoutine) //16 //26ce2
|
|
{
|
|
// ROM:00126CE2
|
|
// ROM:00126CE2 link a6,#0
|
|
// ROM:00126CE6 movem.l a3-a4,-(sp)
|
|
// ROM:00126CEA movea.l $C(a6),a3
|
|
// ROM:00126CEE lea $22(a3),a4
|
|
// ROM:00126CF2 move.w $12(a6),$18(a3)
|
|
// ROM:00126CF8 move.w #$FB,$1A(a3)
|
|
// ROM:00126CFE move.l $1C(a6),$C(a3)
|
|
// ROM:00126D04 move.l 8(a6),(a4)
|
|
// ROM:00126D08 moveq #0,d0
|
|
// ROM:00126D0A move.l d0,4(a4)
|
|
// ROM:00126D0E clr.w 8(a4)
|
|
// ROM:00126D12 clr.w $E(a4)
|
|
// ROM:00126D16 move.l d0,$A(a4)
|
|
// ROM:00126D1A move.l d0,$10(a4)
|
|
// ROM:00126D1E move.l d0,$14(a4)
|
|
// ROM:00126D22 move.b $17(a6),$18(a4)
|
|
// ROM:00126D28 move.l a3,-(sp)
|
|
// ROM:00126D2A subq.l #2,sp
|
|
// ROM:00126D2C move.l a3,-(sp)
|
|
// ROM:00126D2E move.b $1B(a6),-(sp)
|
|
// ROM:00126D32 ori.b #$DF,d5
|
|
// ROM:00126D36 move.w (sp)+,d0
|
|
// ROM:00126D38 ext.l d0
|
|
// ROM:00126D3A move.l d0,-(sp)
|
|
// ROM:00126D3C ori.b #$20,d0 ; jsr DMFix
|
|
// ROM:00126D40 movem.l -8(a6),a3-a4
|
|
// ROM:00126D46 unlk a6
|
|
// ROM:00126D48 rts
|
|
struct TRinitParams *params = &(dsp->u.initParams);
|
|
|
|
dsp->ioCRefNum = dspDrvrRef;
|
|
dsp->csCode = dspCLInit;
|
|
dsp->ioCompletion = compRoutine;
|
|
|
|
params->ccbPtr = ccbPtr;
|
|
params->userRoutine = NULL;
|
|
params->sendQSize = 0;
|
|
params->recvQSize = 0;
|
|
params->sendQueue = NULL;
|
|
params->recvQueue = NULL;
|
|
params->attnPtr = NULL;
|
|
params->localSocket = socket;
|
|
|
|
return DMFix(PBControl(dsp, async), dsp);
|
|
}
|
|
|
|
OSErr ListenConnectionRequest(DSPParamBlock *dsp,
|
|
Boolean async,
|
|
ProcPtr compRoutine) //26d4a
|
|
{
|
|
// ROM:00126D4A link a6,#0
|
|
// ROM:00126D4E movem.l a3-a4,-(sp)
|
|
// ROM:00126D52 movea.l 8(a6),a4
|
|
// ROM:00126D56 lea $22(a4),a3
|
|
// ROM:00126D5A move.w #$F9,$1A(a4)
|
|
// ROM:00126D60 move.l $10(a6),$C(a4)
|
|
// ROM:00126D66 clr.b $A(a3)
|
|
// ROM:00126D6A clr.w 8(a3)
|
|
// ROM:00126D6E clr.b $B(a3)
|
|
// ROM:00126D72 move.l a4,-(sp)
|
|
// ROM:00126D74 subq.l #2,sp
|
|
// ROM:00126D76 move.l a4,-(sp)
|
|
// ROM:00126D78 move.b $F(a6),-(sp)
|
|
// ROM:00126D7C ori.b #$DF,d5
|
|
// ROM:00126D80 move.w (sp)+,d0
|
|
// ROM:00126D82 ext.l d0
|
|
// ROM:00126D84 move.l d0,-(sp)
|
|
// ROM:00126D86 ori.b #$20,d0
|
|
// ROM:00126D8A movem.l -8(a6),a3-a4
|
|
// ROM:00126D90 unlk a6
|
|
// ROM:00126D92 rts
|
|
struct TRopenParams *params = &(dsp->u.openParams);
|
|
|
|
dsp->csCode = dspCLListen;
|
|
dsp->ioCompletion = compRoutine;
|
|
|
|
params->filterAddress.aNode = 0;
|
|
params->filterAddress.aNet = 0;
|
|
params->filterAddress.aSocket = 0;
|
|
|
|
return DMFix(PBControl(dsp, async), dsp);
|
|
}
|
|
|
|
|
|
void RejectConnectionRequest(DSPParamBlock *dsp, Boolean async, ProcPtr compRoutine) //26d94
|
|
{
|
|
// ROM:00126D94 link a6,#0
|
|
// ROM:00126D98 move.l a4,-(sp)
|
|
// ROM:00126D9A movea.l 8(a6),a4
|
|
// ROM:00126D9E move.l $10(a6),$C(a4)
|
|
// ROM:00126DA4 move.w #$F8,$1A(a4)
|
|
// ROM:00126DAA move.l a4,-(sp)
|
|
// ROM:00126DAC subq.l #2,sp
|
|
// ROM:00126DAE move.l a4,-(sp)
|
|
// ROM:00126DB0 move.b $F(a6),-(sp)
|
|
// ROM:00126DB4 ori.b #$DF,d5
|
|
// ROM:00126DB8 move.w (sp)+,d0
|
|
// ROM:00126DBA ext.l d0
|
|
// ROM:00126DBC move.l d0,-(sp)
|
|
// ROM:00126DBE ori.b #$20,d0
|
|
// ROM:00126DC2 movea.l -4(a6),a4
|
|
// ROM:00126DC6 unlk a6
|
|
// ROM:00126DC8 rts
|
|
dsp->ioCompletion = compRoutine;
|
|
dsp->csCode = dspCLDeny;
|
|
|
|
DMFix(PBControl(dsp, async), dsp);
|
|
}
|
|
|
|
OSErr RemoveConnectionListener(unsigned char abortFlag,
|
|
Boolean async,
|
|
ProcPtr compRoutine,
|
|
DSPParamBlock *dsp) //26dca
|
|
{
|
|
// ROM:00126DCA link a6,#0
|
|
// ROM:00126DCE movem.l a3-a4,-(sp)
|
|
// ROM:00126DD2 movea.l $14(a6),a4
|
|
// ROM:00126DD6 lea $22(a4),a3
|
|
// ROM:00126DDA move.w #$FA,$1A(a4)
|
|
// ROM:00126DE0 move.l $10(a6),$C(a4)
|
|
// ROM:00126DE6 move.b $B(a6),(a3)
|
|
// ROM:00126DEA move.l a4,-(sp)
|
|
// ROM:00126DEC subq.l #2,sp
|
|
// ROM:00126DEE move.l a4,-(sp)
|
|
// ROM:00126DF0 move.b $F(a6),-(sp)
|
|
// ROM:00126DF4 ori.b #$DF,d5
|
|
// ROM:00126DF8 move.w (sp)+,d0
|
|
// ROM:00126DFA ext.l d0
|
|
// ROM:00126DFC move.l d0,-(sp)
|
|
// ROM:00126DFE ori.b #$20,d0
|
|
// ROM:00126E02 movem.l -8(a6),a3-a4
|
|
// ROM:00126E08 unlk a6
|
|
// ROM:00126E0A rts
|
|
struct TRcloseParams *params = &(dsp->u.closeParams);
|
|
|
|
dsp->csCode = dspCLRemove;
|
|
dsp->ioCompletion = compRoutine;
|
|
|
|
params->abort = abortFlag;
|
|
|
|
return DMFix(PBControl(dsp, async), dsp);
|
|
}
|
|
|
|
OSErr CreateConnectionEnd(TRCCB *ccbPtr,
|
|
ProcPtr userRoutine,
|
|
unsigned short sendQSize,
|
|
unsigned char *sendQ,
|
|
unsigned short recvQSize,
|
|
unsigned char *recvQ,
|
|
unsigned char *attnPtr,
|
|
unsigned char socket,
|
|
short drvrRef,
|
|
Boolean async,
|
|
ProcPtr compRoutine,
|
|
DSPParamBlock *dsp) //26e0c
|
|
{
|
|
// ROM:00126E0C link a6,#0
|
|
// ROM:00126E10 movem.l a3-a4,-(sp)
|
|
// ROM:00126E14 movea.l $34(a6),a3
|
|
// ROM:00126E18 lea $22(a3),a4
|
|
// ROM:00126E1C move.w $2A(a6),$18(a3)
|
|
// ROM:00126E22 move.w #$FF,$1A(a3)
|
|
// ROM:00126E28 move.l $30(a6),$C(a3)
|
|
// ROM:00126E2E move.l 8(a6),(a4)
|
|
// ROM:00126E32 move.l $C(a6),4(a4)
|
|
// ROM:00126E38 move.w $12(a6),8(a4)
|
|
// ROM:00126E3E move.w $1A(a6),$E(a4)
|
|
// ROM:00126E44 move.l $14(a6),$A(a4)
|
|
// ROM:00126E4A move.l $1C(a6),$10(a4)
|
|
// ROM:00126E50 move.l $20(a6),$14(a4)
|
|
// ROM:00126E56 move.b $27(a6),$18(a4)
|
|
// ROM:00126E5C move.l a3,-(sp)
|
|
// ROM:00126E5E subq.l #2,sp
|
|
// ROM:00126E60 move.l a3,-(sp)
|
|
// ROM:00126E62 move.b $2F(a6),-(sp)
|
|
// ROM:00126E66 ori.b #$DF,d5
|
|
// ROM:00126E6A move.w (sp)+,d0
|
|
// ROM:00126E6C ext.l d0
|
|
// ROM:00126E6E move.l d0,-(sp)
|
|
// ROM:00126E70 ori.b #$20,d0
|
|
// ROM:00126E74 movem.l -8(a6),a3-a4
|
|
// ROM:00126E7A unlk a6
|
|
// ROM:00126E7C rts
|
|
struct TRinitParams *params = &(dsp->u.initParams);
|
|
|
|
dsp->ioCRefNum = drvrRef;
|
|
dsp->csCode = dspInit;
|
|
dsp->ioCompletion = compRoutine;
|
|
|
|
params->ccbPtr = ccbPtr;
|
|
params->userRoutine = userRoutine;
|
|
params->sendQSize = sendQSize;
|
|
params->recvQSize = recvQSize;
|
|
params->sendQueue = sendQ;
|
|
params->recvQueue = recvQ;
|
|
params->attnPtr = attnPtr;
|
|
params->localSocket = socket;
|
|
|
|
return DMFix(PBControl(dsp, async), dsp);
|
|
}
|
|
|
|
OSErr OpenConnectionEnd(unsigned short remoteCid,
|
|
AddrBlock *remoteAddr,
|
|
AddrBlock *filterAddr,
|
|
unsigned long sendSeq,
|
|
unsigned short sendWindow,
|
|
unsigned long attnSendSeq,
|
|
unsigned char ocMode,
|
|
Boolean async,
|
|
ProcPtr compRoutine,
|
|
DSPParamBlock *dsp) //26e7e
|
|
{
|
|
PPCGlobalParamsPtr ppcglobPtr = getGlobal();
|
|
struct PPCConfigInfo *myptr = &(ppcglobPtr->configData);
|
|
|
|
struct TRopenParams *params = &(dsp->u.openParams);
|
|
|
|
dsp->csCode = dspOpen;
|
|
dsp->ioCompletion = compRoutine;
|
|
|
|
params->remoteAddress.aNet = remoteAddr->aNet;
|
|
params->remoteAddress.aNode = remoteAddr->aNode;
|
|
params->remoteAddress.aSocket = remoteAddr->aSocket;
|
|
params->filterAddress.aNet = filterAddr->aNet;
|
|
params->filterAddress.aNode = filterAddr->aNode;
|
|
params->filterAddress.aSocket = filterAddr->aSocket;
|
|
params->ocMode = ocMode;
|
|
params->sendSeq = sendSeq;
|
|
params->sendWindow = sendWindow;
|
|
params->attnSendSeq = attnSendSeq;
|
|
params->remoteCID = remoteCid;
|
|
params->ocInterval = myptr->adspTimeout;
|
|
params->ocMaximum = myptr->adspRetries;
|
|
|
|
return DMFix(PBControl(dsp, async), dsp);
|
|
|
|
// ROM:00126E7E link a6,#-4
|
|
// ROM:00126E82 movem.l a3-a4,-(sp)
|
|
// ROM:00126E86 movea.l $2C(a6),a3
|
|
// ROM:00126E8A ori.w #$9406,a1 // getGlobal
|
|
// ROM:00126E8E movea.l d0,a4
|
|
// ROM:00126E90 lea $CC(a4),a0
|
|
// ROM:00126E94 move.l a0,-4(a6)
|
|
// ROM:00126E98 lea $22(a3),a4
|
|
|
|
// ROM:00126E9C move.w #$FD,$1A(a3)
|
|
// ROM:00126EA2 move.l $28(a6),$C(a3)
|
|
|
|
// ROM:00126EA8 movea.l $C(a6),a0
|
|
// ROM:00126EAC move.w (a0),4(a4)
|
|
// ROM:00126EB0 movea.l $C(a6),a0
|
|
// ROM:00126EB4 move.b 2(a0),6(a4)
|
|
// ROM:00126EBA movea.l $C(a6),a0
|
|
// ROM:00126EBE move.b 3(a0),7(a4)
|
|
|
|
// ROM:00126EC4 movea.l $10(a6),a0
|
|
// ROM:00126EC8 move.w (a0),8(a4)
|
|
// ROM:00126ECC movea.l $10(a6),a0
|
|
// ROM:00126ED0 move.b 2(a0),$A(a4)
|
|
// ROM:00126ED6 movea.l $10(a6),a0
|
|
// ROM:00126EDA move.b 3(a0),$B(a4)
|
|
|
|
// ROM:00126EE0 move.b $23(a6),$1E(a4)
|
|
// ROM:00126EE6 move.l $14(a6),$C(a4)
|
|
// ROM:00126EEC move.w $1A(a6),$10(a4)
|
|
// ROM:00126EF2 move.l $1C(a6),$16(a4)
|
|
// ROM:00126EF8 move.w $A(a6),2(a4)
|
|
|
|
// ROM:00126EFE movea.l -4(a6),a0
|
|
// ROM:00126F02 move.b 8(a0),$1F(a4) adspTimeout
|
|
// ROM:00126F08 movea.l -4(a6),a0
|
|
// ROM:00126F0C move.b 9(a0),$20(a4) adspRetries
|
|
|
|
// ROM:00126F12 move.l a3,-(sp)
|
|
// ROM:00126F14 subq.l #2,sp
|
|
// ROM:00126F16 move.l a3,-(sp)
|
|
// ROM:00126F18 move.b $27(a6),-(sp)
|
|
// ROM:00126F1C ori.b #$DF,d5
|
|
// ROM:00126F20 move.w (sp)+,d0
|
|
// ROM:00126F22 ext.l d0
|
|
// ROM:00126F24 move.l d0,-(sp)
|
|
// ROM:00126F26 ori.b #$20,d0
|
|
// ROM:00126F2A movem.l -$C(a6),a3-a4
|
|
// ROM:00126F30 unlk a6
|
|
// ROM:00126F32 rts
|
|
}
|
|
|
|
OSErr RemoveConnectionEnd(unsigned char abortFlag,
|
|
Boolean async,
|
|
ProcPtr compRoutine,
|
|
DSPParamBlock *dsp) //26f34
|
|
{
|
|
struct TRcloseParams *params = &(dsp->u.closeParams);
|
|
|
|
dsp->csCode = dspRemove;
|
|
dsp->ioCompletion = compRoutine;
|
|
|
|
params->abort = abortFlag;
|
|
|
|
return DMFix(PBControl(dsp, async), dsp);
|
|
// ROM:00126F34 link a6,#0
|
|
// ROM:00126F38 movem.l a3-a4,-(sp)
|
|
// ROM:00126F3C movea.l $14(a6),a4
|
|
// ROM:00126F40 lea $22(a4),a3
|
|
// ROM:00126F44 move.w #$FE,$1A(a4) dspRemove
|
|
// ROM:00126F4A move.l $10(a6),$C(a4)
|
|
// ROM:00126F50 move.b $B(a6),(a3)
|
|
// ROM:00126F54 move.l a4,-(sp)
|
|
// ROM:00126F56 subq.l #2,sp
|
|
// ROM:00126F58 move.l a4,-(sp)
|
|
// ROM:00126F5A move.b $F(a6),-(sp)
|
|
// ROM:00126F5E ori.b #$DF,d5
|
|
// ROM:00126F62 move.w (sp)+,d0
|
|
// ROM:00126F64 ext.l d0
|
|
// ROM:00126F66 move.l d0,-(sp)
|
|
// ROM:00126F68 ori.b #$20,d0
|
|
// ROM:00126F6C movem.l -8(a6),a3-a4
|
|
// ROM:00126F72 unlk a6
|
|
// ROM:00126F74 rts
|
|
}
|
|
|
|
|
|
OSErr WriteToConnection(unsigned short reqCount,
|
|
unsigned char *dataPtr,
|
|
unsigned char eom,
|
|
unsigned char flush,
|
|
Boolean async,
|
|
ProcPtr compRoutine,
|
|
DSPParamBlock *dsp) //26f76
|
|
{
|
|
struct TRioParams *params = &(dsp->u.ioParams);
|
|
|
|
dsp->csCode = dspWrite;
|
|
dsp->ioCompletion = compRoutine;
|
|
|
|
params->reqCount = reqCount;
|
|
params->dataPtr = dataPtr;
|
|
params->eom = eom;
|
|
params->flush = flush;
|
|
|
|
return DMFix(PBControl(dsp, async), dsp);
|
|
// ROM:00126F76 link a6,#0
|
|
// ROM:00126F7A movem.l a3-a4,-(sp)
|
|
// ROM:00126F7E movea.l $20(a6),a4
|
|
// ROM:00126F82 lea $22(a4),a3
|
|
// ROM:00126F86 move.w #$F5,$1A(a4)
|
|
// ROM:00126F8C move.l $1C(a6),$C(a4)
|
|
|
|
// ROM:00126F92 move.w $A(a6),(a3)
|
|
// ROM:00126F96 move.l $C(a6),4(a3)
|
|
// ROM:00126F9C move.b $13(a6),8(a3)
|
|
// ROM:00126FA2 move.b $17(a6),9(a3)
|
|
|
|
// ROM:00126FA8 move.l a4,-(sp)
|
|
// ROM:00126FAA subq.l #2,sp
|
|
// ROM:00126FAC move.l a4,-(sp)
|
|
// ROM:00126FAE move.b $1B(a6),-(sp)
|
|
// ROM:00126FB2 ori.b #$DF,d5
|
|
// ROM:00126FB6 move.w (sp)+,d0
|
|
// ROM:00126FB8 ext.l d0
|
|
// ROM:00126FBA move.l d0,-(sp)
|
|
// ROM:00126FBC ori.b #$20,d0
|
|
// ROM:00126FC0 movem.l -8(a6),a3-a4
|
|
// ROM:00126FC6 unlk a6
|
|
// ROM:00126FC8 rts
|
|
}
|
|
|
|
OSErr ReadFromConnection(unsigned short reqCount,
|
|
unsigned char *dataPtr,
|
|
Boolean async,
|
|
ProcPtr compRoutine,
|
|
DSPParamBlock *dsp) //26fca
|
|
{
|
|
struct TRioParams *params = &(dsp->u.ioParams);
|
|
|
|
dsp->csCode = dspRead;
|
|
dsp->ioCompletion = compRoutine;
|
|
|
|
params->reqCount = reqCount;
|
|
params->dataPtr = dataPtr;
|
|
|
|
return DMFix(PBControl(dsp, async), dsp);
|
|
// ROM:00126FCA link a6,#0
|
|
// ROM:00126FCE movem.l a3-a4,-(sp)
|
|
// ROM:00126FD2 movea.l $18(a6),a4
|
|
// ROM:00126FD6 lea $22(a4),a3
|
|
|
|
// ROM:00126FDA move.w #$F6,$1A(a4)
|
|
// ROM:00126FE0 move.l $14(a6),$C(a4)
|
|
|
|
// ROM:00126FE6 move.w $A(a6),(a3)
|
|
// ROM:00126FEA move.l $C(a6),4(a3)
|
|
|
|
// ROM:00126FF0 move.l a4,-(sp)
|
|
// ROM:00126FF2 subq.l #2,sp
|
|
// ROM:00126FF4 move.l a4,-(sp)
|
|
// ROM:00126FF6 move.b $13(a6),-(sp)
|
|
// ROM:00126FFA ori.b #$DF,d5
|
|
// ROM:00126FFE move.w (sp)+,d0
|
|
// ROM:00127000 ext.l d0
|
|
// ROM:00127002 move.l d0,-(sp)
|
|
// ROM:00127004 ori.b #$20,d0
|
|
// ROM:00127008 movem.l -8(a6),a3-a4
|
|
// ROM:0012700E unlk a6
|
|
// ROM:00127010 rts
|
|
}
|