sys7.1-doc-wip/Interfaces/AIncludes/AppleTalk.a

662 lines
25 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.

;
; Hacks to match MacOS (most recent first):
;
; <Sys7.1> 8/3/92 Reverted <SM2>
; 9/2/94 SuperMario ROM source dump (header preserved below)
;
;
; File: AppleTalk.a
;
; Created: Friday, October 20, 1989 at 9:11:59 PM
; Version: 2.9
;
; Copyright: © 1990-1992 by Apple Computer, Inc., all rights reserved.
;
; Change History (most recent first):
;
; <SM2> 1/29/93 RB Change the SCCLockout value to 600 instead of 2600, because the
; other bits in the status register should remain unchanged for
; NewKernel.
; <11> 7/1/92 DCL Obsoleted ATalkEqu.a which now includes this file.
; <10> 6/14/91 JL Equated clientName and xppSubCode to $1C insteead of csCode
; because csCode is in SysEqu.a which would have to be included.
; Also substitued $1C for csParam which is also in SysEqu.a.
; <9> 1/30/91 gbm sab, #38: Change the already including this file variable to
; all uppercase
; <8> 1/19/91 mbs (jg) Remove lots of private stuff that should not be released
; with MPW. Update for Inside Mac Volume 6.
; <7> 1/4/91 JDR (dba) Put CancelAtalkClosePrep, AddCSCode, and AddCSAddr in to a
; private file.
; <6> 10/1/90 JAL Checked in new AppleTalk Phase II equates.
; 1.0 11/ 9/88 CCH Adding to EASE.
; •1.1 9/14/88 CCH Updated EASE with the current rev of this file.
;--------------------------------------------------------------------
IF &TYPE('__INCLUDINGAPPLETALK__') = 'UNDEFINED' THEN
__INCLUDINGAPPLETALK__ SET 1
IF &TYPE('__INCLUDINGSYSEQU__') = 'UNDEFINED' THEN
INCLUDE 'SysEqu.a'
ENDIF
;
; AppleTalk unit numbers.
;
mppUnitNum EQU 9 ; MPP unit number
atpUnitNum EQU 10 ; ATP unit number
xppUnitNum EQU 40 ; XPP unit number
;
atpLoadedBit EQU 4 ; ATP loaded bit number in PortBUse
xppLoadedBit EQU atpLoadedBit+1 ; XPP loaded bit number in PortBUse
;
;+ Name Binding Protocol (NBP)
;
nbp EQU $02 ; DDP protocol type code for NBP
;
nbpControl EQU 0 ; Control code
nbpTCount EQU 0 ; Tuple count
nbpID EQU 1 ; NBP ID
nbpTuple EQU 2 ; Start of the first tuple
;
;NBP tuple header offsets:
;
tupleNet EQU 0 ; Offset to network no. [word]
tupleNode EQU 2 ; Offset to node ID [byte]
tupleSkt EQU 3 ; Offset to socket number [byte]
tupleEnum EQU 4 ; Offset to enumerator [byte]
tupleName EQU 5 ; Offset to name part of tuple [byte]
tupleAddrSz EQU 5 ; tuple address field size
;
; NBP control codes - the following define the different types of NBP packets:
;
brRq EQU 1 ; Broadcast request
lkUp EQU 2 ; Lookup request
lkUpReply EQU 3 ; Lookup reply
;
; NBP miscellaneous
;
nis EQU 2 ; Names Information Socket (NIS) number
tupleMax EQU 15 ; Most tuples in a lookup reply
equals EQU '=' ; Wildcard symbol
star EQU '*' ; "This zone" symbol
;
;
;+ Routing Table Maintenance Protocol (RTMP)
;
rtmp EQU $01 ; DDP protocol type code for RTMP
;
; RTMP header offsets
;
rtmpNet EQU 0 ; Offset to network number [word]
rtmpIDLen EQU 2 ; Offset to ID length [byte]
rtmpID EQU 3 ; Offset to start of ID field
;
; RTMP packets are received at the well-known RTMP listening socket:
;
rtmpSkt EQU 1 ; Number of the RTMP socket
;
;
;;+ Datagram Delivery Protocol (DDP)
ddpHopCnt EQU 0 ; Hop count (only used in long header) [byte]
ddpLength EQU 0 ; Packet length (from this word onwards) [word]
ddpChecksum EQU 2 ; Checksum [word]
ddpDstNet EQU 4 ; Destination network no. [word]
ddpSrcNet EQU 6 ; Network of origin [word]
ddpDstNode EQU 8 ; Destination node address [byte]
ddpSrcNode EQU 9 ; Node of origin [byte]
ddpDstSkt EQU 10 ; Destination socket number [byte]
ddpSrcSkt EQU 11 ; Source socket number [byte]
ddpType EQU 12 ; DDP type field [byte]
;
sddpDstSkt EQU 2 ; Destination socket number (short header) [byte]
sddpSrcSkt EQU 3 ; Source socket number (short header) [byte]
sddpType EQU 4 ; DDP type field (short header) [byte]
;
ddphSzLong EQU 13 ; Size of extended DDP header
ddphSzShort EQU 5 ; Size of short DDP header
;
shortDDP EQU $01 ; LAP type code for DDP (short header)
longDDP EQU $02 ; LAP type code for DDP (long header)
;
; DDP miscellaneous
;
ddpMaxWKS EQU $7F ; The highest valid well-known socket
ddpMaxData EQU 586 ; Maximum DDP data size
ddpLenMask EQU $03FF ; Mask for DDP length
;
;
;+ AppleBus Link Access Protocol (ABLAP)
;
lapDstAdr EQU 0 ; Destination node address [byte]
lapSrcAdr EQU 1 ; Source node address [byte]
lapType EQU 2 ; LAP type field [byte]
lapHdSz EQU 3 ; Size of LAP header
;
; zs returned by ReadPacket and ReadRest routines
;
overrunErr EQU -1
crcErr EQU -2
underrunErr EQU -3
lengthErr EQU -4
;
; SCC interrupt priority Should NEVER MOVE.W this value, just ORI.W <SM2> rb
;
sccLockout EQU $2600 ; This value works on both Mac and Lisa <SM2> rb <Sys7.1>
;
;
;+ MPP (control calls to NBP, DDP and ABLAP)
;
lookupReply EQU 242 ; This command queued to ourself
writeLAP EQU 243 ; Write out LAP packet
detachPH EQU 244 ; Detach LAP protocol handler
attachPH EQU 245 ; Attach LAP protocol handler
writeDDP EQU 246 ; Write out DDP packet
closeSkt EQU 247 ; Close DDP socket
openSkt EQU 248 ; Open DDP socket
loadNBP EQU 249 ; Load NBP command-executing code
lastResident EQU 249 ; Last resident command
confirmName EQU 250 ; Confirm name
lookupName EQU 251 ; Look up name on internet
removeName EQU 252 ; Remove name from Names Table
registerName EQU 253 ; Register name in Names Table
killNBP EQU 254 ; Kill outstanding NBP request
unloadNBP EQU 255 ; Unload NBP command code
setSelfSend EQU 256 ; MPP: Set to allow writes to self
SetMyZone EQU 257 ; Set my zone name
GetATalkInfo EQU 258 ; get AppleTalk information
ATalkClosePrep EQU 259 ; AppleTalk close query
;
;
; MPP queue element standard structure: arguments passed in the CSParam area
;
socket EQU $1C ; Offset to socket number (DDP) [byte]
checkSumFlag EQU $1D ; Offset to checksum flag (DDP) [byte]
listener EQU $1E ; Offset to socket listener (DDP) [word]
argBlkSz EQU $10 ; Size of argument block to WriteDDP
wdsPointer EQU $1E ; Offset to WDS pointer (DDP & ABLAP) [word]
;
protType EQU $1C ; Offset to protocol type code (ABLAP) [byte]
handler EQU $1E ; Offset to protocol handler (ABLAP) [word]
;
interval EQU $1C ; Retry interval (NBP) [byte]
count EQU $1D ; Retry count (NBP) [byte]
entityPtr EQU $1E ; Entity pointer (NBP)
ntQElPtr EQU $1E ; NT queue element ptr (NBP - Register)
confirmAddr EQU $22 ; Address to confirm at (NBP - Confirm)
newSocket EQU $26 ; Socket no. if different (NBP - Confirm) [byte]
;
verifyFlag EQU $22 ; Verify name flag (NBP - Register) [byte]
;
retBuffPtr EQU $22 ; Return buffer pointer (NBP - Lookup)
retBuffSize EQU $26 ; Return buffer size (NBP - Lookup) [word]
maxToGet EQU $28 ; Max no. responses to get (NBP - Lookup) [word]
numGotten EQU $2A ; Number actually gotten (NBP - Lookup) [word]
;
newSelfFlag EQU $1C ; Offset: New value for self-send flag
oldSelfFlag EQU $1D ; Old value of self-send flag
nKillQEl EQU $1C ; Pointer to queue element to abort (KillNBP)
clientName EQU $1C ; (csCode+2) AtalkClosePrep call parm
;
; Names Table Queue element - the MPP registered names (and associated sockets)
;
ntLink EQU 0 ; Link to next element
ntTuple EQU 4 ; Start of tuple for replies
ntSocket EQU 7 ; Socket number of entity [byte]
ntEntity EQU 9 ; Start of entity name within tuple
;
; Well-known offsets within MPP local variables (as pointed to by AbusVars)
;
sysLAPAddr EQU 0 ; This node's LAP address
toRHA EQU 1 ; Top of RHA
sysABridge EQU $19 ; Node address of a bridge [byte]
sysNetNum EQU $1A ; This node's network number [word]
vSCCEnable EQU $1C ; SR value to re-enable SCC interrupts [word]
atpVars EQU $1E ; ATP variable pointer (high byte is flag)
;
; MPP miscellaneous
;
p2Version EQU 53 ; First version with Phase 2 calls
rhaSize EQU $18 ; Size of read header area
wdsEntrySz EQU 6 ; Size of a WDS entry
NBPWildCard EQU '≈' ; NBP wildcard delim char
NBPMaxTupleSize EQU 32 ; max size for a tuple name
DDPHopsMask EQU $3C00 ; Mask Hop Count bits from field in DDP header
;
; Bits in ioMix field on open (passed in)
;
SrvAdrBit EQU 31 ; = 1 iff nodeID in server range ($80 - $FD) desired
RouterBit EQU 30 ; = 1 iff this is a router port
NoZoneNotify EQU 29 ; = 1 to supress Notification Mgr messages at .MPP open
;
; Bits in ioMix field on open (returned)
;
BadZoneHintBit EQU 7 ; = 1 iff zone hint was found invalid at .MPP open
OneZoneBit EQU 6 ; = 1 iff there was only one zone on cable
BadNetHintBit EQU 5 ; = 1 iff our net not within RTMP cable range
InStartupBit EQU 4 ; = 1 iff our net is in the startup range
;
;
;
; AppleTalk Transaction Protocol (ATP)
;
atp EQU $3 ; ATP type code (in DDP header)
;
; ATP header
;
atpControl EQU 0 ; Control field [byte]
atpBitmap EQU 1 ; Bitmap (requests only) [byte]
atpRespNo EQU 1 ; Response number (responses only) [byte]
atpTransID EQU 2 ; Transaction ID [word]
atpUserData EQU 4 ; Start of user data [long]
atpHdSz EQU 8 ; Size of ATP header
;
; ATP control field
;
atpReqCode EQU $40 ; Request code after masking
atpRspCode EQU $80 ; Response code after masking
atpRelCode EQU $C0 ; Release code after masking
atpXOBit EQU 5 ; Bit number of exactly-once bit
atpEOMBit EQU 4 ; Bit number of End-Of-Message bit
atpSTSBit EQU 3 ; Send Transmission Status bit no.
flagMask EQU $3F ; Mask for just flags
controlMask EQU $F8 ; Mask for good control bits
;
; ATP limits
;
atpMaxNum EQU 8 ; Max no. of responses per request
atpMaxData EQU $242 ; Maximum data size in ATP packet
;
; ATP contol calls
;
nSendRequest EQU 248 ; NSendRequest code
relRspCB EQU 249 ; Release RspCB
closeATPSkt EQU 250 ; Close ATP socket
addResponse EQU 251 ; Add response code | Require open skt |
sendResponse EQU 252 ; Send response code
getRequest EQU 253 ; Get request code
openATPSkt EQU 254 ; Open ATP socket
sendRequest EQU 255 ; Send request code
relTCB EQU 256 ; Release TCB
killGetReq EQU 257 ; Kill GetRequest
killSendReq EQU 258 ; Kill SendRequest
killAllGetReq EQU 259 ; Kill all getRequests for a skt
;
;
;
; ATP queue element standard structure: arguments passed in the CSParam area
;
atpSocket EQU $1C ; Socket number is first parameter [byte]
atpFlags EQU $1D ; Flag [byte]
addrBlock EQU $1E ; Start of address block
reqLength EQU $22 ; Size of request buffer [word]
reqPointer EQU $24 ; Pointer to request buffer or data
bdsPointer EQU $28 ; Pointer to Buffer Data Structure (BDS)
guArea EQU $2C ; Start of general-use area
userData EQU $12 ; User bytes
;
; ATP bits
;
sendCHK EQU 0 ; Bit no. of send-checksum bit in flags
tidValid EQU 1 ; Bit set when TID valid in SendRequest
;
; SendRequest call interface
;
numOfBuffs EQU $2C ; No. of response buffers passed in BDS [byte]
timeoutVal EQU $2D ; Timeout length in seconds [byte]
numOfResps EQU $2E ; Number of responses received [byte]
retryCount EQU $2F ; Maximum number of retries [byte]
;
reqTID EQU $16 ; Request's TID returned here (for RelTCB)
currBitmap EQU $1C ; Bitmap of responses not yet received [byte]
;
; GetRequest call interface
;
bitmap EQU $2C ; Offset where bitmap is returned [byte]
transID EQU $2E ; Transaction ID returned here [word]
;
; SendResponse call interface
;
bdsSize EQU $2D
;
; AddResponse call interface
;
rspNum EQU $2C ; No. of this response with transaction [byte]
;
aKillQEl EQU $2C ; Offset: Pointer to queue element to abort
;
; ATP general
;
maxReqs EQU 6 ; Maximum number of concurrent requests
maxRsps EQU 8 ; Max number of concurrent XO responses
maxATPSkts EQU 6 ; Max number of concurrent responding-sockets
releaseTime EQU 30 ; Release timer value in seconds
;
; Info for TRel timer in SendRequest and NSendRequest
;
atpTRTOmask EQU 7 ; mask to TRel timeout factor
atpXcall EQU 2 ; bit to indicate extended atp call parms
TRelTime EQU 50 ; TRel timeout bits offset
;
; ATP Buffer Descriptor Structure (BDS)
;
bdsBuffSz EQU 0 ; Send: data length Receive: buffer length
bdsBuffAdr EQU 2 ; Send: data address Receive: buffer address
bdsDataSz EQU 6 ; Send: used internally Receive: data length
bdsUserData EQU 8 ; Send: 4 user bytes Receive: 4 user bytes
bdsEntrySz EQU 12 ; Size of a BDS entry
;
;
;+ Zone Information Protocol (ZIP)
;
ZIP EQU 6 ; ZIP type code (in DDP header)
ZIS EQU 6 ; Zone Information Socket number
;
;
; ZIP header
;
zipCommand EQU 0 ; Offset to ZIP command in packet
zipFlags EQU 1 ; Offset to flags (see below)
zipFirstNet EQU 2 ; Network 1 in ZIP query, reply
zipNetLo EQU zipFirstNet ; Offset to low network number in range
zipNetHi EQU 4 ; Offset to high network number in range
zipXHdSz EQU 6 ; Size of ZIP header (for extended ZIP)
;
; ZIP limits
;
MaxZoneLen EQU 33 ; max size (in bytes) of zone name
ZIPNetMax EQU 3 ; Our max networks in a ZIP packet
;
; ZIP Command field
;
ZQuery EQU 1 ; Command code for query
ZReply EQU 2 ; Command code for reply
ZTakedown EQU 3 ; ZIP takedown
ZBringUp EQU 4 ; ZIP bring up
ZGetInfo EQU 5 ; GNI request
ZInfoReply EQU 6 ; GNI reply
ZNotify EQU 7 ; ZIP notify
ZIPExtReply EQU 8 ; Command code for ZIPExtReply
;
; ZIP commands used in ATP calls
;
ZATPCommand EQU 0 ; ZIP command offset in ATP user bytes (request)
ZGZLStart EQU 2 ; User byte offset for StartIndex (GetZoneList)
ZLastFlag EQU 0 ; User byte offset for LastFlag (GZL response)
ZGZLCount EQU 2 ; User byte offset for Count (GZL response)
ZGetMyZone EQU 7 ; Code for GetMyZone command
ZGetZoneList EQU 8 ; Code for GetZoneList command
ZGetLocalZones EQU 9 ; Code for GetLocalZones command
;
;
; ZIP Flags field
;
; (GetNetInfo Request)
;
BcastReply EQU 7 ; Send reply to broadcast address
;
; (GetNetInfo Reply)
;
ZoneInvalid EQU 7 ; zone is invalid
UseBroadcast EQU 6 ; use broadcast for NBP lookups
OneZone EQU 5 ; only one zone is present
;
; RTMP+ definitions
;
;
rtmpPlus EQU 5 ; DDP type for RTMP+ packet
getNetInfo EQU 1 ; RTMP+ command type for GetNetInfo
;
EJECT
;
; ASP definitions
;
;
; Offsets in user bytes
;
aspCmdCode EQU 0 ; Offset to command field
aspWSSNum EQU 1 ; WSS number in OpenSessions
aspVersNum EQU 2 ; ASP version number in OpenSessions
;
aspSSSNum EQU 0 ; SSS number in OpenSessReplies
aspSessID EQU 1 ; Session ID (requests & OpenSessReply)
aspOpenErr EQU 2 ; OpenSessReply error code
;
aspSeqNum EQU 2 ; Sequence number in requests
aspAttnCode EQU 2 ; Attention bytes in attentions
;
; Offsets in ATP data part
;
aspWrBSize EQU 0 ; Offset to write buffer size (WriteData)
aspWrHdrSz EQU 2 ; Size of data part
;
; ASP command codes - the following define the different types of ASP requests:
;
aspCloseSess EQU 1 ; Close session
aspCommand EQU 2 ; User-command
aspGetStat EQU 3 ; Get status
aspOpenSess EQU 4 ; Open session
aspTickle EQU 5 ; Tickle
aspWrite EQU 6 ; Write
aspDataWrite EQU 7 ; WriteData (from server)
aspAttention EQU 8 ; Attention (from server)
;
; ASP miscellaneous
;
aspVersion EQU $0100 ; ASP version number
maxCmdSize EQU atpMaxData ; Maximum command block size
quantumSize EQU atpMaxData*atpMaxNum ; Maximum reply size
tickleInt EQU 30 ; Tickle interval (secs)
tickleTime EQU tickleInt*60*4 ; Tickle timeout (ticks)
;
;+ Control codes. NOTE: high byte of CSCode used internally
;
openSess EQU 255 ; Open session
closeSess EQU 254 ; Close session
userCommand EQU 253 ; User command
userWrite EQU 252 ; User write
getStatus EQU 251 ; Get status
afpCall EQU 250 ; AFP command (buffer has command code)
getParms EQU 249 ; Get parameters
abortOS EQU 248 ; Abort open session request
closeAll EQU 247 ; Close all open sessions
xCall EQU 246 ; .XPP extended calls
;
;
; ASP queue element standard structure: arguments passed in the CSParam area
;
sessRefnum EQU $1C ; Offset to session refnum [word]
aspTimeout EQU $1E ; Timeout for ATP [byte]
aspRetry EQU $1F ; Retry count for ATP [byte]
serverAddr EQU $20 ; Server address block [longword]
scbPointer EQU $24 ; SCB pointer [longword]
attnRoutine EQU $28 ; Attention routine pointer [long]
;
cbSize EQU $20 ; Command block size [word]
cbPtr EQU $22 ; Command block pointer [long]
rbSize EQU $26 ; Reply buffer size [word]
rbPtr EQU $28 ; Reply buffer pointer [long]
wdSize EQU $2C ; Write data size [word]
wdPtr EQU $2E ; Write data pointer [long]
ccbStart EQU $32 ; Start of memory for CCB
;
aspMaxCmdSize EQU $1C ; For SPGetParms [word]
aspQuantumSize EQU $1E ; For SPGetParms [word]
numSesss EQU $20 ; For SPGetParms [word]
;
abortSCBPtr EQU $1C ; SCB pointer for AbortOS [long]
;
cmdResult EQU $12 ; Command result (ATP user bytes) [long]
;
afpAddrBlock EQU $2C ; Address block in AFP login [long]
afpSCBPtr EQU $30 ; SCB pointer in AFP login [long]
afpAttnRoutine EQU $34 ; Attn routine pointer in AFP login
;
scbMemSize EQU $C0 ; Size of memory for SCB
EJECT
;______________________________________________________________
;
; .XPP xCall information
;______________________________________________________________
;
; xCall subCode definitions (subCodes 0 thru 4 are reserved for internal use)
;
xAddCall EQU 0
xDelCall EQU 1
zipGetLocalZones EQU 5 ; xCall subcodes
zipGetZoneList EQU 6
zipGetMyZone EQU 7
xMinCall EQU zipGetLocalZones ; first xCall that can be added
xMaxCall EQU 31 ; highest legal xCall
;
; xCall queue element offsets
;
xppSubCode EQU $1C ; (csCode+2) offset to extended call subcode
AddCSCode EQU xppSubCode+2 ; csCode of added call
AddCSAddr EQU AddCSCode+2 ; addr of added call's routine
;
; SetMyZone queue element offsets (MPP)
;
zoneBuffPtr EQU 30
zoneBuffSize EQU 34
numOfZones EQU 36
xppTimeout EQU 30
xppRetry EQU 31
zipBuffPtr EQU 34
zipNumZones EQU 38
zipLastFlag EQU 40
zipInfoField EQU 42
;______________________________________________________________
;
; AFP Command command codes
;______________________________________________________________
;
afpByteRangeLock EQU 1
afpVolClose EQU 2
afpDirClose EQU 3
afpForkClose EQU 4
afpCopyFile EQU 5
afpDirCreate EQU 6
afpFileCreate EQU 7
afpDelete EQU 8
afpEnumerate EQU 9
afpFlush EQU 10
afpForkFlush EQU 11
afpGetDirParms EQU 12
afpGetFileParms EQU 13
afpGetForkParms EQU 14
afpGetSInfo EQU 15
afpGetSParms EQU 16
afpGetVolParms EQU 17
afpLogin EQU 18
afpContLogin EQU 19
afpLogout EQU 20
afpMapID EQU 21
afpMapName EQU 22
afpMove EQU 23
afpOpenVol EQU 24
afpOpenDir EQU 25
afpOpenFork EQU 26
afpRead EQU 27
afpRename EQU 28
afpSetDirParms EQU 29
afpSetFileParms EQU 30
afpSetForkParms EQU 31
afpSetVolParms EQU 32
afpWrite EQU 33
afpGetFlDrParms EQU 34
afpSetFlDrParms EQU 35
;
afpDTOpen EQU 48
afpDTClose EQU 49
afpGetIcon EQU 51
afpGtIcnInfo EQU 52
afpAddAPPL EQU 53
afpRmvAPPL EQU 54
afpGetAPPL EQU 55
afpAddCmt EQU 56
afpRmvCmt EQU 57
afpGetCmt EQU 58
;
afpAddIcon EQU 192 ; Special code for ASP Write commands
;
;____________________________________
;
; Offsets for certain parameters in AFP Read/Write calls
;____________________________________
;
startEndFlag EQU $1 ; Write only; offset relative to start or end
rwOffset EQU $4 ; Offset at which to start read or write
reqCount EQU $8 ; Count of bytes to read or write
newLineFlag EQU $C ; Read only; newline character flag
newLineChar EQU $D ; Read only; newline character
;
lastWritten EQU $0 ; Write only; last written (returned)
;
;____________________________________
;
; Miscellaneous
;____________________________________
;
afpUseWrite EQU $C0 ; first call in range that maps to an ASPWrite
MaxNodeIds EQU 254 ; maximum node ids (1-254)
MaxNetIds EQU $FFFE ; maximum net ids (1-65534)
reservedNode EQU $FE ; special SysABridge token says we've heard from router
reservedNet EQU $FF00 ; first network number in reserved range
; GetAppleTalkInfo
GAIVersion EQU 1 ; highest version for GAI params
GAI RECORD $1C ; (csParam) GetAppleTalkInfo params
Version DS.W 1 ; --> params version desired
VarsPtr DS.L 1 ; <-- MPP vars for this PortID
DCEPtr DS.L 1 ; <-- DCE ptr for the PortID
PortID DS.W 1 ; <-- port number [0..7]
Configuration DS.L 1 ; <-- 32-bit config word
SelfSend DS.W 1 ; <-- ≠ zero if SelfSend is enabled
NetLo DS.W 1 ; <-- low-value of network range
NetHI DS.W 1 ; <-- high-value of network range
OurAddr DS.L 1 ; <-- our 24-bit AppleTalk address
RouterAddr DS.L 1 ; <-- 24-bit address of last router
NumOfPHs DS.W 1 ; <-- max. number of protocol handlers
NumOfSkts DS.W 1 ; <-- max. number of static sockets
NumNBPEs DS.W 1 ; <-- max. number of concurrent NBP requests
NTQueue DS.L 1 ; <-- ptr to registered names queue
LALength DS.W 1 ; <-> length of data link address in bytes
LinkAddr DS.L 1 ; <-> ptr to buffer to store data link address
ZoneName DS.L 1 ; <-> ptr to buffer to store zone name
GAISz DS.B 0
ENDR
RTMPHdr RECORD 0
SenderNet DS.W 1 ; sender's network number
IDlength DS.B 1 ; id length (always 8)
SenderID DS.B 1 ; sender's node id
NullNet DS.W 1 ; null word for non-extended net
Version1 DS.B 1 ; version for non-extended net
NonExtSize DS.B 0 ; minimum size for non-extended
ORG NullNet
StartNetHi DS.B 1 ; extended high range, high byte
StartNetLo DS.B 1 ; extended high range, low byte
Distance DS.B 1 ; extended range distance
EndNetHi DS.B 1 ; extended low range, high byte
EndNetLo DS.B 1 ; extended low range, low byte
Version2 DS.B 1 ; extended version
ExtSize DS.B 0 ; mininum size for extended net
ENDR
ENDIF ; ...already included