mirror of
https://github.com/elliotnunn/sys7.1-doc-wip.git
synced 2024-12-12 20:29:12 +00:00
421 lines
13 KiB
Plaintext
421 lines
13 KiB
Plaintext
|
||
;
|
||
; 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 |