supermario/base/SuperMarioProj.1994-02-09/Libs/InterfaceSrcs/PPCGlue.a
2019-06-29 23:17:50 +08:00

152 lines
4.6 KiB
Plaintext

;
; File: PPCGlue.a
;
; Contains: PPC Toolbox Glue Library
;
; Written by: Victor Chang, Sangam, and Eric M. Trehus
;
; Copyright: © 1989-1992 by Apple Computer, Inc. All rights reserved.
;
; This file is used in these builds: BigBang
;
; Change History (most recent first):
;
; <SM2> 10/28/92 SWC Changed INCLUDEs to a LOAD of StandardEqu.d.
; <8> 12/13/90 EMT <JSM> Change glue to support the standard calling conventions.
; Removed glue for PromptForUser.
; <7> 10/2/90 JAL Removed debugger symbols, changed adda.l to LEA.
; <6> 9/18/90 gbm Add an END statement to this file, to avoid warnings... also
; terrorized it a little
; <5> 9/15/90 JSM Should be adding instead of subtracting when cleaning up
; parameters after non-PB calls, remove glue for internal
; routines.
; <4> 9/14/90 VC DeleteUserIdentity now takes a parameter of unsigned long, so we
; need to remove 4 bytes from the stack before returning.
; <3> 8/10/90 S Fix glue for CloseAcceptedsessions and CountAcceptedSessions.
; <3> 8/10/90 S Fix glue for closeacceptednetworksessions.
; <2> 5/31/90 EMT Added glue code for new internal calls
; PPCCountAcceptedNetworkSessions and PPCCloseUserSessions
; <1.2> 11/28/89 CVC Added the StartSecureSession call.
; <1.1> 11/2/89 CVC Added access control calls.
; <1.0> 9/18/89 CVC Adding PPC toolbox for the first time.
;
BLANKS ON
STRING ASIS
PRINT OFF
LOAD 'StandardEqu.d'
INCLUDE 'PPCToolBox.a'
INCLUDE 'PPCPriv.a'
PRINT ON
EJECT
MACRO
PPCCall
MOVEQ &SYSLIST[1],D0 ;set the cmd code.
Move.L (SP)+,A1 ;get return address
Move.B (SP)+,D1 ;Get ASync flag.
Move.L (SP)+,A0 ;get param pointer.
BNE.S @1 ;do it the other way
DC.W $A0DD ;tell OS to do it Synchronously
BRA.S @2 ;skip around async call
@1 DC.W $A4DD ;Tell OS to do it Asynchronously
@2 Move.W D0,(SP) ;save result
Jmp (A1) ;return to caller
ENDM
;
; FUNCTION PPCInit (): OsErr;
; FUNCTION PPCOpen (ppcPb: PPCParamBlkPtr, aSync: BOOLEAN): OsErr;
; Function PPCInform(ppcPb: PPCParamBlkPtr, aSync: BOOLEAN): OsErr;
; FUNCTION PPCStart (ppcPb: PPCParamBlkPtr, aSync: BOOLEAN): OsErr;
; FUNCTION PPCAccept (ppcPb: PPCParamBlkPtr, aSync: BOOLEAN): OsErr;
; FUNCTION PPCReject (ppcPb: PPCParamBlkPtr, aSync: BOOLEAN): OsErr;
; FUNCTION PPCWrite (ppcPb: PPCParamBlkPtr, aSync: BOOLEAN): OsErr;
; FUNCTION PPCRead (ppcPb: PPCParamBlkPtr, aSync: BOOLEAN): OsErr;
; FUNCTION PPCEnd (ppcPb: PPCParamBlkPtr, aSync: BOOLEAN): OsErr;
; FUNCTION PPCClose (ppcPb: PPCParamBlkPtr, aSync: BOOLEAN): OsErr;
; FUNCTION IPCListPorts (ppcPb: PPCParamBlkPtr, aSync: BOOLEAN): OsErr;
;
PPCOpen PROC EXPORT
PPCCall #ppcOpenCmd
PPCStart PROC EXPORT
PPCCall #ppcStartCmd
PPCInform PROC EXPORT
PPCCall #ppcInformCmd
PPCAccept PROC EXPORT
PPCCall #ppcAcceptCmd
PPCReject PROC EXPORT
PPCCall #ppcRejectCmd
PPCWrite PROC EXPORT
PPCCall #ppcWriteCmd
PPCRead PROC EXPORT
PPCCall #ppcReadCmd
PPCEnd PROC EXPORT
PPCCall #ppcEndCmd
PPCClose PROC EXPORT
PPCCall #ppcCloseCmd
IPCListPorts PROC EXPORT
PPCCall #IPCListPortsCmd
;
; pascal OSErr PromptForUserIdentity ( UserRefNum *userRef,
; Name *userName,
; Boolean *guestSelected,
; Boolean allowGuest,
; Str255 prompt);
;
; pascal OSErr DeleteUserIdentity ( UserRefNum userRef);
;
; pascal OSErr GetDefaultUser ( UserRefNum *userRef,
; Name *userName);
;pascal OSErr StartSecureSession ( PPCStartParam startPb,
; StringPtr userName,
; Boolean useDefault,
; Boolean allowGuest,
; Boolean *guestSelected,
; StringPtr prompt);
;
DeleteUserIdentity PROC EXPORT
Move.L (SP)+,A1 ;get return address
Move.L SP,A0 ;A0 points to parameters on the stack
Moveq #DeleteUserCmd,D0
DC.W $A0DD
Addq.L #4,SP
Move.W D0,(SP)
Jmp (A1)
;
GetDefaultUser PROC EXPORT
Move.L (SP)+,A1 ;get return address
Move.L SP,A0 ;A0 points to parameters on the stack
Moveq #GetDefaultUserCmd,D0
DC.W $A0DD
Addq.L #8,SP
Move.W D0,(SP)
Jmp (A1)
;
StartSecureSession PROC EXPORT
Move.L (SP)+,A1 ;get return address
Move.L SP,A0 ;A0 points to parameters on the stack
Moveq #StartSecureCmd,D0
DC.W $A0DD
LEA 20(SP),SP
Move.W D0,(SP)
Jmp (A1)
END