sys7.1-doc-wip/Interfaces/AIncludes/PPCToolbox.a
2019-07-27 22:37:48 +08:00

421 lines
13 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;
; File: PPCToolbox.a
;
; Contains: Interface to the PPCToolbox from Assembly language.
;
; Written by: Eric M. Trehus
;
; Copyright: © 1990-1992 by Apple Computer, Inc., all rights reserved.
;
; Change History (most recent first):
;
; <14> 4/17/92 JSM Undo last revision, those changes are not supported by PPC for
; CubeE.
; <13> 9/6/91 MH add: ppcServiceStoreAndForward EQU 2, and PPCKill trap macro and
; selector.
; <12> 8/15/91 MH change formatting of comments, move conditional assembly
; declaration immediately after copyright notice
; <11> 1/30/91 gbm sab, #38: Change the already including this file variable to
; all uppercase (for security reasons)
; <10> 12/13/90 EMT <JSM> Change interface to support new calling conventions,
; basically rewrote interface.
;
; Version: 1.00
; Created: Friday, October 20, 1989 at 9:35:53 PM
;
; PPCToolbox.a
; Assembler Interface to the Macintosh Libraries
;
; Copyright Apple Computer, Inc. 1989-90
; All rights reserved
;
; 1.3 JAL 10/10/1990 Changed cmdCode to ppcCmdCode because of duplicate definitions.
; 1.2 CVC 11/28/1989 Added the StartSecureSession call.
; 1.1 CVC 11/08/1989 Put the offset to PB here.
; 1.0 CVC 11/02/1989 First time add the file to the AIncludes folder
; END EASE MODIFICATION HISTORY
; 1.1 CVC 11/02/1989 Added PPC command codes (moved from PPCEqu.a)
; 1.0 CVC 09/18/1989 Adding PPC toolbox for the first time.
IF &TYPE('__INCLUDINGPPCTOOLBOX__') = 'UNDEFINED' THEN
__INCLUDINGPPCTOOLBOX__ SET 1
; PPCCommand Values
; Trap Selector D0 Must be set to one of the following, csCode will contain this value
; when the call completes.
ppcInitCmd EQU 0
ppcOpenCmd EQU 1
ppcStartCmd EQU 2
ppcInformCmd EQU 3
ppcAcceptCmd EQU 4
ppcRejectCmd EQU 5
ppcWriteCmd EQU 6
ppcReadCmd EQU 7
ppcEndCmd EQU 8
ppcCloseCmd EQU 9
IPCListPortsCmd EQU 10
DeleteUserCmd EQU 12
GetDefaultUserCmd EQU 13
StartSecureCmd EQU 14
; Valid PPCServiceTypes
ppcServiceRealTime EQU 1
; Valid PPCLocationKinds = Integer;
ppcNoLocation EQU 0 ; There is no PPCLocName
ppcNBPLocation EQU 1 ; Use AppleTalk NBP
ppcNBPTypeLocation EQU 2 ; Use just the NBP type, fill in rest with default
; Valid PPCPortKinds = Integer;
ppcByCreatorAndType EQU 1 ; Port type is specified as colloquial Mac creator and type
ppcByString EQU 2 ; Port type is in pascal string format
; Valid PPCSessionOrigins = SignedByte; { requestType returned in PPCInform }
ppcLocalOrigin EQU 1 ; session originated from this machine
ppcRemoteOrigin EQU 2 ; session originated from remote machine
PPCPortRec RECORD 0 ; TYPE Comment
nameScript DS.W 1 ; ScriptCode; script of name
name DS.B 34 ; Str32; name of port as seen in browser
portKindSelector DS.W 1 ; PPCPortKinds; which variant
portTypeStr DS.B 34 ; Str32;
ORG portTypeStr
portCreator DS.L 1 ; OSType;
portType DS.L 1 ; OSType;
ENDR
LocationNameRec RECORD 0 ;
locationKindSelector DS.W 1 ; PPCLocationKind; which variant
nbpEntity DS.B 100 ; NBP name entity
ORG nbpEntity ;
nbpType DS.B 34 ; Str32; just the NBP type string, for PPCOpen
ENDR
PortInfoRec RECORD 0 ;
filler1 DS.B 1 ; SignedByte;
authRequired DS.B 1 ; Boolean;
name DS PPCPortRec ;
ENDR
PPCOpenPBRec RECORD 0 ; TYPE Comment
qLink DS.L 1 ; Ptr reserved
csCode DS.W 1 ; INTEGER reserved
intUse DS.W 1 ; INTEGER reserved
intUsePtr DS.L 1 ; Ptr reserved
ioCompletion DS.L 1 ; PPCComProcPtr Completion routine.
ioResult DS.W 1 ; OSErr Result of operation.
reserved DS.L 5 ; LONGINT reserved
portRefNum DS.W 1 ; PPCPortRefNum Port Reference
filler1 DS.L 1 ; LONGINT ignored
serviceType DS.B 1 ; PPCServiceType Bit field describing the requested port service
resFlag DS.B 1 ; BYTE Must be set to 0
portName DS.L 1 ; PPCPortPtr PortName for PPC
locationName DS.L 1 ; LocationNamePtr If NBP Registration is required
networkVisible DS.B 1 ; BOOLEAN make this network visible on network
nbpRegistered DS.B 1 ; BOOLEAN The given location name was registered on the network
ENDR
PPCInformPBRec RECORD 0 ; TYPE Comment
qLink DS.L 1 ; Ptr reserved
csCode DS.W 1 ; INTEGER reserved
intUse DS.W 1 ; INTEGER reserved
intUsePtr DS.L 1 ; Ptr reserved
ioCompletion DS.L 1 ; PPCComProcPtr Completion routine.
ioResult DS.W 1 ; OSErr Result of operation.
reserved DS.L 5 ; LONGINT reserved
portRefNum DS.W 1 ; PPCPortRefNum Port Identifier
sessRefNum DS.L 1 ; PPCSessRefNum Session Reference
serviceType DS.B 1 ; PPCServiceType Status Flags for type of session, local, remote
autoAccept DS.B 1 ; Boolean if true session will be accepted automatically
portName DS.L 1 ; PPCPortPtr Buffer for Source PPCPortRec
locationName DS.L 1 ; LocationNamePtr Buffer for Source LocationNameRec
userName DS.L 1 ; StringPtr Buffer for Soure user's name trying to link.
userData DS.L 1 ; LongInt value included in PPCStart's userData
requestType DS.B 1 ; PPCSessionOrigin Local or Network
ENDR
PPCStartPBRec RECORD 0 ; TYPE Comment
qLink DS.L 1 ; Ptr reserved
csCode DS.W 1 ; INTEGER reserved
intUse DS.W 1 ; INTEGER reserved
intUsePtr DS.L 1 ; Ptr reserved
ioCompletion DS.L 1 ; PPCComProcPtr Completion routine.
ioResult DS.W 1 ; OSErr Result of operation.
reserved DS.L 5 ; LONGINT reserved
portRefNum: DS.W 1 ; PPCPortRefNum; Port Identifier
sessRefNum: DS.L 1 ; PPCSessRefNum; Session Reference
serviceType: DS.B 1 ; PPCServiceType Actual service method (realTime)
resFlag: DS.B 1 ; SignedByte Must be set to 0
portName: DS.L 1 ; PPCPortPtr Destination portName
locationName: DS.L 1 ; LocationNamePtr NBP or NAS style service location name
rejectInfo: DS.L 1 ; LongInt reason for rejecting the session request
userData: DS.L 1 ; LongInt Copied to destination PPCInform parameter block
userRefNum: DS.L 1 ; LongInt userRefNum (obtained during login process)
ENDR
PPCAcceptPBRec RECORD 0 ; TYPE Comment
qLink DS.L 1 ; Ptr reserved
csCode DS.W 1 ; INTEGER reserved
intUse DS.W 1 ; INTEGER reserved
intUsePtr DS.L 1 ; Ptr reserved
ioCompletion DS.L 1 ; PPCComProcPtr Completion routine.
ioResult DS.W 1 ; OSErr Result of operation.
reserved DS.L 5 ; LONGINT reserved
filler1 DS.W 1 ; Integer
sessRefNum DS.L 1 ; PPCSessRefNum Session Reference
ENDR
PPCRejectPBRec RECORD 0 ; TYPE Comment
qLink DS.L 1 ; Ptr reserved
csCode DS.W 1 ; INTEGER reserved
intUse DS.W 1 ; INTEGER reserved
intUsePtr DS.L 1 ; Ptr reserved
ioCompletion DS.L 1 ; PPCComProcPtr Completion routine.
ioResult DS.W 1 ; OSErr Result of operation.
reserved DS.L 5 ; LONGINT reserved
filler1 DS.W 1 ; Integer
sessRefNum DS.L 1 ; PPCSessRefNum Session Reference
filler2 DS.W 1 ; Integer
filler3 DS.L 1 ; LongInt
filler4 DS.L 1 ; LongInt
rejectInfo DS.L 1 ; LongInt reason for rejecting the session request
ENDR
PPCWritePBRec RECORD 0 ; TYPE Comment
qLink DS.L 1 ; Ptr reserved
csCode DS.W 1 ; INTEGER reserved
intUse DS.W 1 ; INTEGER reserved
intUsePtr DS.L 1 ; Ptr reserved
ioCompletion DS.L 1 ; PPCComProcPtr Completion routine.
ioResult DS.W 1 ; OSErr Result of operation.
reserved DS.L 5 ; LONGINT reserved
filler1 DS.W 1 ; Integer
sessRefNum DS.L 1 ; PPCSessRefNum Session Reference
bufferLength DS.L 1 ; Size Length of the message buffer
actualLength DS.L 1 ; Size Actual Length Written
bufferPtr DS.L 1 ; Ptr Pointer to message buffer
more DS.B 1 ; Boolean if more data in this block will be written
filler2 DS.B 1 ; SignedByte;
userData DS.L 1 ; LongInt Message block userData Uninterpreted by PPC
blockCreator DS.L 1 ; OSType Message block creator Uninterpreted by PPC
blockType DS.L 1 ; OSType Message block type Uninterpreted by PPC
ENDR
PPCReadPBRec RECORD 0 ; TYPE Comment
qLink DS.L 1 ; Ptr reserved
csCode DS.W 1 ; INTEGER reserved
intUse DS.W 1 ; INTEGER reserved
intUsePtr DS.L 1 ; Ptr reserved
ioCompletion DS.L 1 ; PPCComProcPtr Completion routine.
ioResult DS.W 1 ; OSErr Result of operation.
reserved DS.L 5 ; LONGINT reserved
filler1 DS.W 1 ; Integer
sessRefNum DS.L 1 ; PPCSessRefNum Session Reference
bufferLength DS.L 1 ; Size Length of the message buffer
actualLength DS.L 1 ; Size Actual length read
bufferPtr DS.L 1 ; Ptr Pointer to message buffer
more DS.B 1 ; Boolean if true more data in this block to be read
filler2 DS.B 1 ; SignedByte
userData DS.L 1 ; LongInt Message block userData Uninterpreted by PPC
blockCreator DS.L 1 ; OSType Message block creator Uninterpreted by PPC
blockType DS.L 1 ; OSType Message block type Uninterpreted by PPC
ENDR
PPCEndPBRec RECORD 0 ; TYPE Comment
qLink DS.L 1 ; Ptr reserved
csCode DS.W 1 ; INTEGER reserved
intUse DS.W 1 ; INTEGER reserved
intUsePtr DS.L 1 ; Ptr reserved
ioCompletion DS.L 1 ; PPCComProcPtr Completion routine.
ioResult DS.W 1 ; OSErr Result of operation.
reserved DS.L 5 ; LONGINT reserved
filler1 DS.W 1 ; Integer
sessRefNum DS.L 1 ; PPCSessRefNum Session Reference
ENDR
PPCClosePBRec RECORD 0 ; TYPE Comment
qLink DS.L 1 ; Ptr reserved
csCode DS.W 1 ; INTEGER reserved
intUse DS.W 1 ; INTEGER reserved
intUsePtr DS.L 1 ; Ptr reserved
ioCompletion DS.L 1 ; PPCComProcPtr Completion routine.
ioResult DS.W 1 ; OSErr Result of operation.
reserved DS.L 5 ; LONGINT reserved
portRefNum DS.W 1 ; PPCPortRefNum Port Identifier
ENDR
IPCListPortsPBRec RECORD 0 ; TYPE Comment
qLink DS.L 1 ; Ptr reserved
csCode DS.W 1 ; INTEGER reserved
intUse DS.W 1 ; INTEGER reserved
intUsePtr DS.L 1 ; Ptr reserved
ioCompletion DS.L 1 ; PPCComProcPtr Completion routine.
ioResult DS.W 1 ; OSErr Result of operation.
reserved DS.L 5 ; LONGINT reserved
filler1 DS.W 1 ; Integer
startIndex DS.W 1 ; Integer Start Index
requestCount DS.W 1 ; Integer Number of entries to be returned
actualCount DS.W 1 ; Integer Actual Number of entries to be returned
portName DS.L 1 ; PPCPortPtr PortName Match
locationName DS.L 1 ; LocationNamePtr NBP or NAS type name to locate the Port Location
bufferPtr DS.L 1 ; PortInfoArrayPtr Pointer to a buffer requestCount*sizeof(PortInfo) bytes big
ENDR
DeleteUserParams RECORD 0 ;
userRefNum DS.L 1 ; LONGINT
ENDR
StartSecureParams RECORD 0 ; TYPE
prompt DS.L 1 ; StringPtr
guestSelected DS.L 1 ; pointer to a Boolean
allowGuest DS.B 1 ; Boolean
reserved1 DS.B 1 ; Byte
useDefault DS.B 1 ; Boolean
reserved2 DS.B 1 ; Byte
userName DS.L 1 ; StringPtr
startPb DS.L 1 ; PPCStartPBPtr
ENDR
GetDefaultUserParams RECORD 0 ;
userName DS.L 1 ; Pointer to Str32.
userRef DS.L 1 ; Pointer to LONGINT.
ENDR
PPCParamBlockRec RECORD 0 ;
openParam DS PPCOpenPBRec
ORG 0
informParam DS PPCInformPBRec
ORG 0
startParam DS PPCStartPBRec
ORG 0
acceptParam DS PPCAcceptPBRec
ORG 0
rejectParam DS PPCRejectPBRec
ORG 0
writeParam DS PPCWritePBRec
ORG 0
readParam DS PPCReadPBRec
ORG 0
endParam DS PPCEndPBRec
ORG 0
closeParam DS PPCClosePBRec
ORG 0
listPortsParam DS IPCListPortsPBRec
ENDR
Macro
_PPCInit
MOVEQ #ppcInitCmd,D0
DC.W $A0DD
Endm
Macro
_DoPPCTrap
IF &SYSLIST[1] = 'SYNC' THEN
DC.W $A0DD
ELSE
DC.W $A4DD
ENDIF
Endm
Macro
_PPCMacro
MOVEQ &SYSLIST[1],D0
_DoPPCTrap &SYSLIST[2]
Endm
Macro
_PPCOpen
_PPCMacro #ppcOpenCmd,&SYSLIST[2]
Endm
Macro
_PPCInform
_PPCMacro #ppcInformCmd,&SYSLIST[2]
Endm
Macro
_PPCStart
_PPCMacro #ppcStartCmd,&SYSLIST[2]
Endm
Macro
_PPCAccept
_PPCMacro #ppcAcceptCmd,&SYSLIST[2]
Endm
Macro
_PPCReject
_PPCMacro #ppcRejectCmd,&SYSLIST[2]
Endm
Macro
_PPCWrite
_PPCMacro #ppcWriteCmd,&SYSLIST[2]
Endm
Macro
_PPCRead
_PPCMacro #ppcReadCmd,&SYSLIST[2]
Endm
Macro
_PPCClose
_PPCMacro #ppcCloseCmd,&SYSLIST[2]
Endm
Macro
_PPCEnd
_PPCMacro #ppcEndCmd,&SYSLIST[2]
Endm
Macro
_IPCListPorts
_PPCMacro #IPCListPortsCmd,&SYSLIST[2]
Endm
Macro
_DeleteUserIdentity
Moveq #DeleteUserCmd,D0
DC.W $A0DD
Endm
Macro
_GetDefaultUser
Moveq #GetDefaultUserCmd,D0
DC.W $A0DD
Endm
Macro
_StartSecureSession
Moveq #StartSecureCmd,D0
DC.W $A0DD
Endm
Macro
_PPCBrowser
MOVE.W #$0D00,D0
_Pack9
Endm
ENDIF ;...already included