mirror of
https://github.com/PDP-10/stacken.git
synced 2026-02-16 20:51:02 +00:00
748 lines
23 KiB
Plaintext
748 lines
23 KiB
Plaintext
UNIVERSAL ETHPRM - ETHERNET SERVICE DEFINITIONS V20
|
||
SUBTTL WILLIAM C. DAVENPORT/WXD 10-OCT-85
|
||
|
||
|
||
SEARCH F,S,MACSYM
|
||
SALL
|
||
|
||
;THIS FILE CONTAINS ALL DEFINITIONS RELATED TO ETHERNET SERVICE
|
||
|
||
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED
|
||
; OR COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
|
||
;
|
||
;COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1985,1986,1988.
|
||
;ALL RIGHTS RESERVED.
|
||
|
||
.CPYRT<1985,1988>
|
||
|
||
|
||
XP VETHPR,20 ;ETHPRM VERSION NUMBER
|
||
SUBTTL TABLE OF CONTENTS
|
||
|
||
|
||
; TABLE OF CONTENTS FOR ETHPRM
|
||
;
|
||
;
|
||
; SECTION PAGE
|
||
; 1. TABLE OF CONTENTS......................................... 2
|
||
; 2. ETHERNET INTERFACE DEFINITIONS
|
||
; 2.1 FUNCTION CODES.................................... 3
|
||
; 2.2 ERROR CODES....................................... 4
|
||
; 2.3 UN BLOCK.......................................... 5
|
||
; 2.4 MSD BLOCK......................................... 6
|
||
; 2.5 CHANNEL INFORMATION BLOCK......................... 7
|
||
; 2.6 CHANNEL COUNTERS BLOCK............................ 8
|
||
; 2.7 PORTAL INFORMATION BLOCK.......................... 9
|
||
; 2.8 PORTAL COUNTERS BLOCK............................. 10
|
||
; 2.9 KONTROLLER INFORMATION BLOCK...................... 11
|
||
; 2.10 KONTROLLER COUNTERS BLOCK......................... 12
|
||
; 3. ETHERNET INTERNAL DEFINITIONS
|
||
; 3.1 MACROS............................................ 13
|
||
; 3.2 PROTOCOL TYPES.................................... 14
|
||
; 3.3 ETHERNET CHANNEL BLOCK............................ 15
|
||
; 3.4 ETHERNET PORTAL BLOCK............................. 16
|
||
; 3.5 MULTI-CAST ADDRESS BLOCK.......................... 18
|
||
; 3.6 KONTROLLER BLOCK.................................. 19
|
||
; 4. ETHERNET KONTROLLER INTERFACE
|
||
; 4.1 FUNCTION CODES.................................... 20
|
||
; 4.2 EA BLOCK.......................................... 21
|
||
; 5. ETHNT. UUO DEFINITIONS
|
||
; 5.1 FUNCTION CODES.................................... 23
|
||
; 5.2 ERROR CODES....................................... 24
|
||
; 5.3 USER ARGUMENT BLOCK............................... 25
|
||
; 5.4 USER BUFFER DESCRIPTOR BLOCK...................... 27
|
||
; 6. THE END................................................... 28
|
||
SUBTTL ETHERNET INTERFACE DEFINITIONS -- FUNCTION CODES
|
||
|
||
|
||
;THESE FUNCTION CODES ARE USED TO COMMUNICATE WITH ETHSER. FUNCTIONS
|
||
;MARKED WITH ASTERISK ARE USED BY ETHSER ON FUNCTION COMPLETION CALLBACK.
|
||
|
||
NU.OPN==1 ;OPEN PORTAL
|
||
NU.CLO==2 ;CLOSE PORTAL (*)
|
||
NU.RCV==3 ;RECEIVE DATAGRAM (*)
|
||
NU.XMT==4 ;TRANSMIT DATAGRAM (*)
|
||
NU.EMA==5 ;ENABLE MULTI-CAST ADDRESS
|
||
NU.DMA==6 ;DISABLE MULTI-CAST ADDRESS
|
||
|
||
NU.RCL==7 ;READ CHANNEL LIST
|
||
NU.RCI==10 ;READ CHANNEL INFORMATION
|
||
NU.RCC==11 ;READ CHANNEL COUNTERS (*)
|
||
NU.SCA==12 ;SET CHANNEL ADDRESS (*)
|
||
|
||
NU.RPL==13 ;READ PORTAL LIST
|
||
NU.RPI==14 ;READ PORTAL INFORMATION
|
||
NU.RPC==15 ;READ PORTAL COUNTERS (*)
|
||
|
||
NU.RKL==16 ;READ KONTROLLER LIST
|
||
NU.RKI==17 ;READ KONTROLLER INFORMATION
|
||
NU.RKC==20 ;READ KONTROLLER COUNTERS (*)
|
||
|
||
NU.MIN==NU.OPN ;MINIMUM DEFINED FUNCTION CODE
|
||
NU.MAX==NU.RKC ;MAXIMUM DEFINED FUNCTION CODE
|
||
SUBTTL ETHERNET INTERFACE DEFINITIONS -- ERROR CODES
|
||
|
||
|
||
UNIFC%==1 ;ILLEGAL FUNCTION CODE
|
||
UNRES%==2 ;NO RESOUCES
|
||
UNNSC%==3 ;NO SUCH CHANNEL
|
||
UNICR%==4 ;ILLEGAL CALLBACK ROUTINE
|
||
UNIVP%==5 ;ILLEGAL PROTOCOL TYPE
|
||
UNPIU%==6 ;PROTOCOL TYPE IN USE
|
||
UNPRA%==7 ;PROMISCUOUS RECEIVER ACTIVE
|
||
UNICL%==10 ;ILLEGAL FUNCTION AT CALLBACK LEVEL
|
||
UNNSP%==11 ;NO SUCH PORTAL
|
||
UNIFB%==12 ;IMPROPERLY FORMATTED BUFFER
|
||
UNIBS%==13 ;ILLEGAL BUFFER SIZE
|
||
UNRDL%==14 ;RECEIVED DATAGRAM TOO LONG
|
||
UNRAB%==15 ;RECEIVE ABORTED
|
||
UNLER%==16 ;LENGTH ERROR
|
||
UNNPE%==17 ;NO PROTOCOL TYPE ENABLED FOR THIS PORTAL
|
||
UNIBP%==20 ;ILLEGAL BYTE POINTER
|
||
UNEXC%==21 ;EXCESSIVE COLLISIONS
|
||
UNDNS%==22 ;DATAGRAM NOT SENT
|
||
UNNRE%==23 ;NO ROOM FOR ENTRY
|
||
UNANE%==24 ;ADDRESS NOT ENABLED
|
||
UNIMA%==25 ;ILLEGAL MULTICAST ADDRESS
|
||
UNICA%==26 ;ILLEGAL CHANNEL ADDRESS
|
||
UNPWS%==27 ;PORTAL IN WRONG STATE
|
||
UNIUA%==30 ;ILLEGAL UN BLOCK ADDRESS
|
||
UNCCF%==31 ;CARRIER CHECK FAILED
|
||
UNSHT%==32 ;SHORT CIRCUIT
|
||
UNOPN%==33 ;OPEN CIRCUIT
|
||
UNRFD%==34 ;REMOTE FAILURE TO DEFER
|
||
UNICS%==35 ;ILLEGAL CHANNEL STATE
|
||
UNCAB%==36 ;COMMAND ABORT
|
||
UNNSK%==37 ;NO SUCH KONTROLLER
|
||
|
||
UNMAX%==UNNSK% ;MAXIMUM ERROR CODE
|
||
SUBTTL ETHERNET INTERFACE DEFINITIONS -- UN BLOCK
|
||
|
||
|
||
;A UN BLOCK IS USED TO PASS ARGUMENTS FROM ETHERNET USERS TO ETHSER.
|
||
;IT CONTAINS ALL INFORMATION NEEDED FOR ALL SUPPORTED FUNCTIONS.
|
||
|
||
BEGSTR UN
|
||
|
||
WORD PID ;PORTAL ID ASSIGNED BY ETHSER
|
||
WORD SID ;SECONDARY ID (NU.RPI, NU.RPC, NU.RKI, NU.RKC)
|
||
WORD RID ;REQUEST ID FOR THIS FUNCTION
|
||
|
||
WORD STA,0 ;STATUS AND FLAGS WORD
|
||
FIELD RUN,1 ;PORTAL IS IN RUN STATE
|
||
FIELD ZRO,1 ;ZERO COUNTERS AFTER READING
|
||
FILLER 1 ;BYTE ALIGN NEXT FIELD
|
||
FIELD ADS,2 ;ADDRESS SPACE OF DATAGRAM BUFFER
|
||
UNA.EV==0 ;EXEC VIRTUAL
|
||
UNA.UV==1 ;USER VIRTUAL
|
||
UNA.PH==2 ;PHYSICAL
|
||
HWORD TDR ;TIME DOMAIN REFLECTOMETRY VALUE
|
||
|
||
WORD JCH ;JCH OF PORTAL OWNER
|
||
WORD UID ;USER ID FOR THIS PORTAL
|
||
WORD CBA ;USER CALLBACK ADDRESS
|
||
|
||
WORD PTY,0 ;PROTOCOL IDENTIFICATION WORD
|
||
FIELD PAD,1 ;PROTOCOL USES PADDING
|
||
FILLER 2 ;BYTE ALIGN NEXT FIELD
|
||
FIELD CHN,3 ;ETHERNET CHANNEL NUMBER
|
||
HWORD PRO ;PROTOCOL TYPE CODE
|
||
|
||
WORD DAD,2 ;DESTINATION ETHERNET ADDRESS
|
||
WORD SAD,2 ;SOURCE ETHERNET ADDRESS
|
||
WORD BSZ ;DATAGRAM BUFFER SIZE
|
||
WORD BFA,2 ;DATAGRAM BUFFER DESCRIPTOR
|
||
|
||
WORD CAR,2 ;CURRENT ETHERNET ADDRESS
|
||
WORD HAD,2 ;HARDWARE ETHERNET ADDRESS
|
||
|
||
ENDSTR
|
||
SUBTTL ETHERNET INTERFACE DEFINITIONS -- MSD BLOCK
|
||
|
||
|
||
;A CHAIN OF MSDS IS USED TO DESCRIBE RECEIVE AND TRANSMIT DATAGRAM
|
||
;BUFFERS.
|
||
|
||
BEGSTR MD
|
||
|
||
WORD NXT ;(RCV) MUST BE ZERO
|
||
;(XMT) POINTER TO NEXT MSD IN CHAIN
|
||
WORD PTR ;BYTE POINTER INTO DATA BUFFER
|
||
WORD AUX ;(RCV) NOT USED
|
||
;(XMT) BYTE POINTER TO START OF DATA BUFFER
|
||
WORD BYT ;(RCV) BYTES LEFT IN DATA BUFFER
|
||
;(XMT) BYTES WRITTEN IN DATA BUFFER
|
||
FIELD VMC,3 ;VIRTUAL MAP CONTEXT
|
||
VMC.XC==0 ;EXEC CONTEXT
|
||
VMC.US==1 ;USER CONTEXT
|
||
VMC.NO==2 ;PHYSICAL
|
||
HWORD ALL ;DATA BUFFER ALLOCATED LENGTH IN BYTES
|
||
WORD ALA ;DATA BUFFER ALLOCATED ADDRESS
|
||
|
||
ENDSTR
|
||
SUBTTL ETHERNET INTERFACE DEFINITIONS -- CHANNEL INFORMATION BLOCK
|
||
|
||
|
||
;ETHERNET CHANNEL INFORMATION IS RETURNED BY A NU.RCI FUNCTION.
|
||
|
||
BEGSTR CI
|
||
|
||
WORD CNM ;CHANNEL NUMBER
|
||
WORD EAD,2 ;ETHERNET ADDRESS
|
||
|
||
ENDSTR
|
||
SUBTTL ETHERNET INTERFACE DEFINITIONS -- CHANNEL COUNTERS BLOCK
|
||
|
||
|
||
;ETHERNET CHANNEL COUNTERS ARE RETURNED BY A NU.RCC FUNCTION.
|
||
|
||
BEGSTR CC
|
||
|
||
WORD SLZ ;SECONDS SINCE COUNTERS LAST ZEROED
|
||
WORD BYR ;BYTES RECEIVED
|
||
WORD BYX ;BYTES TRANSMITTED
|
||
WORD DGR ;DATAGRAMS RECEIVED
|
||
WORD DGX ;DATAGRAMS TRANSMITTED
|
||
WORD MBR ;MULTI-CAST BYTES RECEIVED
|
||
WORD MDR ;MULTI-CAST DATAGRAMS RECEIVED
|
||
WORD DXD ;DATAGRAMS TRANSMITTED, INITIALLY DEFERRED
|
||
WORD DX1 ;DATAGRAMS TRANSMITTED, SINGLE COLLISION
|
||
WORD DXM ;DATAGRAMS TRANSMITTED, MULTIPLE COLLISIONS
|
||
WORD XMF ;TRANSMIT FAILURES
|
||
WORD XFM,0 ;TRANSMIT FAILURE BIT MASK
|
||
FIELD XCL,1,28 ;CARRIER LOST
|
||
FIELD XBP,1,29 ;TRANSMIT BUFFER PARITY ERROR
|
||
FIELD XFD,1,30 ;REMOTE FAILURE TO DEFER
|
||
FIELD XFL,1,31 ;FRAME TOO LONG
|
||
FIELD XOC,1,32 ;OPEN CIRCUIT
|
||
FIELD XSC,1,33 ;SHORT CIRCUIT
|
||
FIELD XCC,1,34 ;CARRIER CHECK FAILED
|
||
FIELD XEC,1,35 ;EXCESSIVE COLLISIONS
|
||
WORD RCF ;RECEIVE FAILURES
|
||
WORD RFM,0 ;RECEIVE FAILURE BIT MASK
|
||
FIELD RFP,1,31 ;FREE LIST PARITY ERROR
|
||
FIELD RNB,1,32 ;NO FREE BUFFERS
|
||
FIELD RFL,1,33 ;FRAME TOO LONG
|
||
FIELD RFE,1,34 ;FRAMING ERROR
|
||
FIELD RBC,1,35 ;BLOCK CHECK ERROR
|
||
WORD UFD ;UNRECOGNIZED FRAME DESTINATION
|
||
WORD DOV ;DATA OVERRUN
|
||
WORD SBU ;SYSTEM BUFFER UNAVAILABLE
|
||
WORD UBU ;USER DATAGRAM BUFFER UNAVAILABLE
|
||
|
||
ENDSTR
|
||
|
||
;EQUIVALENT TOPS-20 DEFINITIONS
|
||
|
||
MSKSTR CCBYS,CC.BYX,CCBYX ;BYTES TRANSMITTED
|
||
MSKSTR CCDGS,CC.DGX,CCDGX ;DATAGRAMS TRANSMITTED
|
||
MSKSTR CCDSD,CC.DXD,CCDXD ;DATAGRAMS TRANSMITTED, INITIALLY DEFERRED
|
||
MSKSTR CCDS1,CC.DX1,CCDX1 ;DATAGRAMS TRANSMITTED, SINGLE COLLISION
|
||
MSKSTR CCDSM,CC.DXM,CCDXM ;DATAGRAMS TRANSMITTED, MULTIPLE COLLISIONS
|
||
MSKSTR CCSF,CC.XMF,CCXMF ;TRANSMIT FAILURES
|
||
MSKSTR CCSFM,CC.XFM,CCXFM ;TRANSMIT FAILURE BIT MASK
|
||
MSKSTR CCRF,CC.RCF,CCRCF ;RECEIVE FAILURES
|
||
SUBTTL ETHERNET INTERFACE DEFINITIONS -- PORTAL INFORMATION BLOCK
|
||
|
||
|
||
;ETHERNET PORTAL INFORMATION IS RETURNED BY A NU.RPI FUNCTION.
|
||
|
||
BEGSTR PI
|
||
|
||
WORD JCH ;JCH OF PORTAL OWNER
|
||
WORD PIW ;PROTOCOL IDENTIFICATION WORD
|
||
WORD CSW ;CHANNEL STATUS WORD
|
||
WORD KSW ;KONTROLLER STATUS WORD
|
||
|
||
ENDSTR
|
||
SUBTTL ETHERNET INTERFACE DEFINITIONS -- PORTAL COUNTERS BLOCK
|
||
|
||
|
||
;ETHERNET PORTAL COUNTERS ARE RETURNED BY A NU.RPC FUNCTION.
|
||
|
||
BEGSTR PC
|
||
|
||
WORD SLZ ;SECONDS SINCE COUNTERS LAST ZEROED
|
||
WORD BYR ;BYTES RECEIVED
|
||
WORD DGR ;DATAGRAMS RECEIVED
|
||
WORD BYX ;BYTES TRANSMITTED
|
||
WORD DGX ;DATAGRAMS TRANSMITTED
|
||
WORD UBU ;USER DATAGRAM BUFFER UNAVAILABLE
|
||
|
||
ENDSTR
|
||
|
||
;EQUIVALENT TOPS-20 DEFINITIONS
|
||
|
||
MSKSTR PCBYS,PC.BYX,PCBYX ;BYTES TRANSMITTED
|
||
MSKSTR PCDGS,PC.DGX,PCDGX ;DATAGRAMS TRANSMITTED
|
||
SUBTTL ETHERNET INTERFACE DEFINITIONS -- KONTROLLER INFORMATION BLOCK
|
||
|
||
|
||
;KONTROLLER INFORMATION IS RETURNED BY A NU.RKI FUNCTION.
|
||
|
||
BEGSTR KI
|
||
|
||
WORD CSW ;CHANNEL STATUS WORD
|
||
WORD CPU ;CPU NUMBER OF KONTROLLER
|
||
WORD TYP ;KONTROLLER TYPE
|
||
WORD KNO ;KONTROLLER NUMBER
|
||
WORD HEA,2 ;HARDWARE ETHERNET ADDRESS
|
||
|
||
ENDSTR
|
||
SUBTTL ETHERNET INTERFACE DEFINITIONS -- KONTROLLER COUNTERS BLOCK
|
||
|
||
|
||
;ETHERNET KONTROLLER COUNTERS ARE RETURNED BY A NU.RKC FUNCTION.
|
||
;THE FORMAT OF THESE COUNTERS IS IDENTICAL TO THE CHANNEL COUNTERS.
|
||
|
||
BEGSTR KC
|
||
|
||
WORD SLZ ;SECONDS SINCE COUNTERS LAST ZEROED
|
||
WORD BYR ;BYTES RECEIVED
|
||
WORD BYX ;BYTES TRANSMITTED
|
||
WORD DGR ;DATAGRAMS RECEIVED
|
||
WORD DGX ;DATAGRAMS TRANSMITTED
|
||
WORD MBR ;MULTI-CAST BYTES RECEIVED
|
||
WORD MDR ;MULTI-CAST DATAGRAMS RECEIVED
|
||
WORD DXD ;DATAGRAMS TRANSMITTED, INITIALLY DEFERRED
|
||
WORD DX1 ;DATAGRAMS TRANSMITTED, SINGLE COLLISION
|
||
WORD DXM ;DATAGRAMS TRANSMITTED, MULTIPLE COLLISIONS
|
||
WORD XMF ;TRANSMIT FAILURES
|
||
WORD XFM,0 ;TRANSMIT FAILURE BIT MASK
|
||
FIELD XCL,1,28 ;CARRIER LOST
|
||
FIELD XBP,1,29 ;TRANSMIT BUFFER PARITY ERROR
|
||
FIELD XFD,1,30 ;REMOTE FAILURE TO DEFER
|
||
FIELD XFL,1,31 ;FRAME TOO LONG
|
||
FIELD XOC,1,32 ;OPEN CIRCUIT
|
||
FIELD XSC,1,33 ;SHORT CIRCUIT
|
||
FIELD XCC,1,34 ;CARRIER CHECK FAILED
|
||
FIELD XEC,1,35 ;EXCESSIVE COLLISIONS
|
||
WORD RCF ;RECEIVE FAILURES
|
||
WORD RFM,0 ;RECEIVE FAILURE BIT MASK
|
||
FIELD RFP,1,31 ;FREE LIST PARITY ERROR
|
||
FIELD RNB,1,32 ;NO FREE BUFFERS
|
||
FIELD RFL,1,33 ;FRAME TOO LONG
|
||
FIELD RFE,1,34 ;FRAMING ERROR
|
||
FIELD RBC,1,35 ;BLOCK CHECK ERROR
|
||
WORD UFD ;UNRECOGNIZED FRAME DESTINATION
|
||
WORD DOV ;DATA OVERRUN
|
||
WORD SBU ;SYSTEM BUFFER UNAVAILABLE
|
||
WORD UBU ;USER DATAGRAM BUFFER UNAVAILABLE
|
||
|
||
ENDSTR
|
||
SUBTTL ETHERNET INTERNAL DEFINITIONS -- MACROS
|
||
|
||
|
||
;MACRO TO RETURN CPOPJ WITH AN ERROR CODE IN T1
|
||
|
||
DEFINE ERRRET(CODE,CONT),<
|
||
PJRST [MOVX T1,CODE
|
||
IFB <CONT>,<POPJ P,>
|
||
IFNB <CONT>,<PJRST CONT>]
|
||
>; END DEFINE ERRRET
|
||
SUBTTL ETHERNET INTERNAL DEFINITIONS -- PROTOCOL TYPES
|
||
|
||
|
||
;PORTAL ID FIELD DEFINITIONS
|
||
|
||
PI.ECI==000700,,000000 ;ETHERNET CHANNEL ID
|
||
PI.EPB==000077,,777777 ;ETHERNET PORTAL BLOCK ADDRESS
|
||
|
||
|
||
;PROTOCOL TYPE RESTRICTIONS
|
||
|
||
XP MINPTY,-3 ;MINIMUM ALLOWABLE PROTOCOL TYPE
|
||
XP MAXPTY,177777 ;MAXIMUM ALLOWABLE PROTOCOL TYPE
|
||
|
||
|
||
;PSEUDO PROTOCOL TYPES
|
||
|
||
PT%INF==-1 ;INFORMATION PROTOCOL TYPE
|
||
PT%PRM==-2 ;PROMISCUOUS RECEIVER PROTOCOL TYPE
|
||
PT%UNK==-3 ;UNKNOWN PROTOCOL RECEIVER PROTOCOL TYPE
|
||
SUBTTL ETHERNET INTERNAL DEFINITIONS -- ETHERNET CHANNEL BLOCK
|
||
|
||
|
||
;ONE ETHERNET CHANNEL BLOCK EXISTS FOR EACH ETHERNET TO WHICH A
|
||
;SYSTEM IS CONNECTED. IT CONTAINS INFORMATION NEEDED BY ETHSER
|
||
;TO MANAGE THAT ETHERNET FOR MULTIPLE PROTOCOLS. ADDITIONALLY,
|
||
;IT IS RESPONSIBILE FOR MANAGING MULTIPLE DEVICES CONNECTED TO
|
||
;THAT ETHERNET.
|
||
|
||
PHASE 0 ;THESE ARE OFFSETS
|
||
|
||
ECBSYS:! BLOCK 1 ;ADDRESS OF NEXT ETHERNET CHANNEL BLOCK
|
||
|
||
ECBCID:! BLOCK 1 ;ETHERNET CHANNEL ID
|
||
ECBSTS:! BLOCK 1 ;ETHERNET CHANNEL STATUS
|
||
ECSONL==400000,,000000 ;CHANNEL IS ONLINE
|
||
|
||
ECBEAD:! BLOCK 2 ;ETHERNET ADDRESS OF THIS CHANNEL
|
||
|
||
ECBEPB:! BLOCK 1 ;ADDRESS OF FIRST ETHERNET PORTAL BLOCK
|
||
; BELONGING TO THIS CHANNEL
|
||
|
||
ECBEKB:! BLOCK 1 ;ADDRESS OF FIRST ETHERNET KONTROLLER BLOCK
|
||
; BELONGING TO THIS CHANNEL
|
||
|
||
ECBCTR:! BLOCK CC.LEN ;CHANNEL COUNTERS AREA
|
||
|
||
ECBLEN:! ;LENGTH OF ETHERNET CHANNEL BLOCK
|
||
|
||
DEPHASE
|
||
SUBTTL ETHERNET INTERNAL DEFINITIONS -- ETHERNET PORTAL BLOCK
|
||
|
||
|
||
;AN ETHERNET PORTAL BLOCK IS CREATED FOR EACH PROTOCOL BEING
|
||
;USED ON AN ETHERNET CHANNEL. IT CONTAINS INFORMATION NEEDED
|
||
;TO MANAGE THAT PROTOCOL'S SHARING OF THE ETHERNET CHANNEL.
|
||
|
||
PHASE 0 ;THESE ARE OFFSETS
|
||
|
||
EPBNXT:! BLOCK 1 ;ADDRESS OF NEXT ETHERNET PORTAL BLOCK
|
||
; ON THIS ETHERNET CHANNEL
|
||
|
||
EPBEKB:! BLOCK 1 ;ADDRESS OF ETHERNET KONTROLLER BLOCK
|
||
; BEING USED BY THIS PORTAL
|
||
|
||
EPBPTY:! BLOCK 1 ;PROTOCOL TYPE
|
||
EPBJCH:! BLOCK 1 ;JCH OF PORTAL OWNER
|
||
EPBKPB:! BLOCK 1 ;ADDRESS OF KONTROLLER'S PROTOCOL BLOCK
|
||
|
||
EPBPID:! BLOCK 1 ;PORTAL ID
|
||
EPBSTS:! BLOCK 1 ;ETHERNET PORTAL STATUS
|
||
EPSOPN==400000,,000000 ;PORTAL IS OPEN
|
||
EPSPAD==200000,,000000 ;PROTOCOL USES PADDING
|
||
EPSINF==100000,,000000 ;INFORMATION ONLY PORTAL
|
||
EPSSTS==070000,,000000 ;CURRENT PROTOCOL STATE
|
||
.PSDIS==0 ;DISABLED
|
||
.PSDWE==1 ;DISABLED, WANT TO ENABLE
|
||
.PSEIP==2 ;ENABLE IN PROGRESS
|
||
.PSEPD==3 ;ENABLE IN PROGRESS, WANT TO DISABLE
|
||
.PSENA==4 ;ENABLED
|
||
.PSEWD==5 ;ENABLED, WANT TO DISABLE
|
||
.PSDIP==6 ;DISABLE IN PROGRESS
|
||
.PSMAX==.PSDIP ;MAXIMUM ASSIGNED STATE
|
||
EPSPST==007000,,000000 ;PREVIOUS PROTOCOL STATE
|
||
|
||
EPBEMB:! BLOCK 1 ;ADDRESS OF FIRST MULTI-CAST ADDRESS BLOCK
|
||
; BELONGING TO THIS PORTAL
|
||
|
||
;CONTINUED ON NEXT PAGE
|
||
;CONTINUED FROM PREVIOUS PAGE
|
||
|
||
EPBCBI:! BLOCK 1 ;USER'S CALLBACK ID
|
||
EPBCBA:! BLOCK 1 ;USER'S CALLBACK ROUTINE ADDRESS
|
||
EPBCBU:! BLOCK UN.LEN ;CALLBACK UN BLOCK
|
||
|
||
EPBBSZ:! BLOCK 1 ;RECEIVE BUFFER SIZE
|
||
EPBXBC:! BLOCK 1 ;CURRENT TRANSMIT BUFFER COUNT
|
||
EPBRBC:! BLOCK 1 ;CURRENT RECEIVE BUFFER COUNT
|
||
|
||
EPBCTR:! BLOCK PC.LEN ;PORTAL COUNTERS AREA
|
||
|
||
EPBLEN:! ;LENGTH OF ETHERNET PORTAL BLOCK
|
||
|
||
DEPHASE
|
||
SUBTTL ETHERNET INTERNAL DEFINITIONS -- MULTI-CAST ADDRESS BLOCK
|
||
|
||
|
||
;AN ETHERNET MULTI-CAST ADDRESS BLOCK IS CREATED FOR EACH UNIQUE
|
||
;MULTI-CAST ADDRESS ENABLED ON AN ETHERNET PORTAL.
|
||
|
||
PHASE 0 ;THESE ARE OFFSETS
|
||
|
||
EMBNXT:! BLOCK 1 ;ADDRESS OF NEXT MULTI-CAST ADDRESS BLOCK
|
||
|
||
EMBMCA:! BLOCK 2 ;MULTI-CAST ADDRESS
|
||
|
||
EMBLEN:! ;LENGTH OF MULTI-CAST ADDRESS BLOCK
|
||
|
||
DEPHASE
|
||
SUBTTL ETHERNET INTERNAL DEFINITIONS -- KONTROLLER BLOCK
|
||
|
||
|
||
;AN ETHERNET KONTROLLER BLOCK IS CREATED FOR EACH PHYSICAL DEVICE
|
||
;CONNECTED TO AN ETHERNET. IT CONTAINS INFORMATION NEEDED TO
|
||
;MANAGE THE PHYSICAL HARDWARE DEVICE.
|
||
|
||
PHASE 0 ;THESE ARE OFFSETS
|
||
|
||
EKBSYS:! BLOCK 1 ;ADDRESS OF NEXT ETHERNET KONTROLLER BLOCK
|
||
|
||
EKBECB:! BLOCK 1 ;ADDRESS OF ETHERNET CHANNEL BLOCK
|
||
; TO WHICH THIS KONTROLLER BELONGS
|
||
|
||
EKBNXT:! BLOCK 1 ;ADDRESS OF NEXT ETHERNET KONTROLLER BLOCK
|
||
; ON THIS ETHERNET CHANNEL
|
||
|
||
EKBKTY:! BLOCK 1 ;KONTROLLER TYPE WORD
|
||
EKYCPU==700000,,000000 ;CPU NUMBER OF KONTROLLER
|
||
EKYKTY==070000,,000000 ;KONTROLLER TYPE
|
||
.KTKNI==1 ;KLNI
|
||
.KTUNA==2 ;DEUNA
|
||
EKYKNO==007000,,000000 ;KONTROLLER NUMBER
|
||
|
||
EKBKID:! BLOCK 1 ;ETHERNET KONTROLLER ID
|
||
EKBSTS:! BLOCK 1 ;ETHERNET KONTROLLER STATUS
|
||
EKSONL==400000,,000000 ;KONTROLLER IS ONLINE
|
||
EKSSEA==000000,,400000 ;NEED TO SET ETHERNET ADDRESS
|
||
EKSSTS==070000,,000000 ;CURRENT KONTROLLER STATE
|
||
.KSDIS==0 ;DISABLED
|
||
.KSDWE==1 ;DISABLED, WANT TO ENABLE
|
||
.KSEIP==2 ;ENABLE IN PROGRESS
|
||
.KSEPD==3 ;ENABLE IN PROGRESS, WANT TO DISABLE
|
||
.KSENA==4 ;ENABLED
|
||
.KSEWD==5 ;ENABLED, WANT TO DISABLE
|
||
.KSDIP==6 ;DISABLE IN PROGRESS
|
||
.KSMAX==.KSDIP ;MAXIMUM ASSIGNED STATE
|
||
EKSPST==007000,,000000 ;PREVIOUS KONTROLLER STATE
|
||
|
||
EKBKKB:! BLOCK 1 ;ADDRESS OF KONTROLLER'S KONTROLLER BLOCK
|
||
EKBKDA:! BLOCK 1 ;ADDRESS OF KONTROLLER'S DISPATCH ROUTINE
|
||
|
||
EKBHEA:! BLOCK 2 ;HARDWARE ETHERNET ADDRESS OF THIS KONTROLLER
|
||
|
||
EKBCTR:! BLOCK KC.LEN ;KONTROLLER COUNTERS AREA
|
||
|
||
EKBLEN:! ;LENGTH OF ETHERNET KONTROLLER BLOCK
|
||
|
||
DEPHASE
|
||
SUBTTL ETHERNET KONTROLLER INTERFACE -- FUNCTION CODES
|
||
|
||
|
||
;THESE ARE THE FUNCTION CODES USED BETWEEN ETHSER AND AN ETHERNET KONTROLLER
|
||
|
||
EK.SEA==1 ;SET KONTROLLER ETHERNET ADDRESS
|
||
EK.RKC==2 ;READ AND CLEAR KONTROLLER COUNTERS
|
||
EK.RPC==3 ;READ AND CLEAR PROTOCOL COUNTERS
|
||
EK.EPT==4 ;ENABLE PROTOCOL TYPE
|
||
EK.DPT==5 ;DISABLE PROTOCOL TYPE
|
||
EK.EMA==6 ;ENABLE MULTI-CAST ADDRESS
|
||
EK.DMA==7 ;DISABLE MULTI-CAST ADDRESS
|
||
EK.RDG==10 ;RECEIVE DATAGRAM
|
||
EK.XDG==11 ;TRANSMIT DATAGRAM
|
||
|
||
EK.MAX==EK.XDG ;MAXIMUM ASSIGNED FUNCTION CODE
|
||
SUBTTL ETHERNET KONTROLLER INTERFACE -- EA BLOCK
|
||
|
||
|
||
;THESE BLOCKS ARE USED TO PASS ARGUMENTS TO/FROM THE ETHERNET
|
||
;KONTROLLER AND THE ETHSER MODULE.
|
||
|
||
PHASE 0 ;THESE ARE OFFSETS
|
||
|
||
.EAFCN:! BLOCK 1 ;FUNCTION CODE
|
||
.EAFCA:! BLOCK 1 ;FUNCTION COMPLETION ROUTINE ADDRESS
|
||
.EAFCD:! BLOCK 3 ;FUNCTION COMPLETION DATA
|
||
.EAFCP:! BLOCK 1 ;FUNCTION COMPLETION ETHERNET PORTAL BLOCK
|
||
|
||
.EAHLN:! ;LENGTH OF ARGUMENT BLOCK HEADER
|
||
.EALNX==. ;COMPUTE MAXIMUM LENGTH OF ARGUMENT BLOCK
|
||
|
||
DEPHASE
|
||
|
||
|
||
;ARGUMENT BLOCK FOR SET KONTROLLER ETHERNET ADDRESS FUNCTION
|
||
|
||
PHASE .EAHLN ;START AFTER HEADER
|
||
|
||
.EAEAD:! BLOCK 2 ;ETHERNET ADDRESS
|
||
|
||
DEPHASE
|
||
|
||
|
||
;ARGUMENT BLOCK FOR UPDATE KONTROLLER/PROTOCOL COUNTERS
|
||
|
||
PHASE .EAHLN ;START AFTER HEADER
|
||
|
||
.EACBS:! BLOCK 1 ;COUNTERS BUFFER SIZE
|
||
.EACBA:! BLOCK 1 ;COUNTERS BUFFER ADDRESS
|
||
|
||
IFG <.-.EALNX>,<.EALNX==.> ;COMPUTE MAXIMUM ARGUMENT BLOCK LENGTH
|
||
|
||
DEPHASE
|
||
|
||
|
||
;ARGUMENT BLOCK FOR ENABLE/DISABLE PROTOCOL FUNCTION
|
||
|
||
PHASE .EAHLN ;START AFTER HEADER
|
||
|
||
.EAPTY:! BLOCK 1 ;PROTOCOL TYPE
|
||
.EAPAD:! BLOCK 1 ;PROTOCOL PADDING FLAG
|
||
.EAPPB:! BLOCK 1 ;ADDRESS OF CALLER'S PROTOCOL BLOCK
|
||
|
||
IFG <.-.EALNX>,<.EALNX==.> ;COMPUTE MAXIMUM ARGUMENT BLOCK LENGTH
|
||
|
||
DEPHASE
|
||
;ARGUMENT BLOCK FOR ENABLE/DISABLE MULTI-CAST ADDRESS FUNCTIONS
|
||
|
||
PHASE .EAHLN ;START AFTER HEADER
|
||
|
||
.EAMCA:! BLOCK 2 ;MULTI-CAST ADDRESS
|
||
|
||
IFG <.-.EALNX>,<.EALNX==.> ;COMPUTE MAXIMUM ARGUMENT BLOCK LENGTH
|
||
|
||
DEPHASE
|
||
|
||
|
||
;ARGUMENT BLOCK FOR RECEIVE/TRANSMIT DATAGRAM FUNCTIONS
|
||
|
||
PHASE .EAHLN ;START AFTER HEADER
|
||
|
||
.EADPT:! BLOCK 1 ;PROTOCOL TYPE
|
||
.EADST:! BLOCK 1 ;DATAGRAM STATUS
|
||
|
||
.EADDA:! BLOCK 2 ;DESTINATION ETHERNET ADDRESS
|
||
.EADSA:! BLOCK 2 ;SOURCE ETHERNET ADDRESS
|
||
|
||
.EADSZ:! BLOCK 1 ;DATAGRAM SIZE IN BYTES
|
||
.EAMSD:! BLOCK MD.LEN ;START OF MSD CHAIN
|
||
|
||
IFG <.-.EALNX>,<.EALNX==.> ;COMPUTE MAXIMUM ARGUMENT BLOCK LENGTH
|
||
|
||
DEPHASE
|
||
|
||
|
||
;DEFINE ARGUMENT BLOCK LENGTH AS LENGTH OF LONGEST BLOCK
|
||
|
||
PHASE .EALNX
|
||
|
||
.EALEN:!
|
||
|
||
DEPHASE
|
||
SUBTTL ETHNT. UUO DEFINITIONS -- FUNCTION CODES
|
||
|
||
|
||
;ETHNT. UUO FUNCTION CODES
|
||
|
||
.ETOPN==1 ;OPEN USER PORTAL
|
||
.ETCLS==2 ;CLOSE USER PORTAL
|
||
.ETQRB==3 ;QUEUE RECEIVE DATAGRAM BUFFER
|
||
.ETRRQ==4 ;READ RECEIVE QUEUE
|
||
.ETQXB==5 ;QUEUE TRANSMIT DATAGRAM BUFFER
|
||
.ETRXQ==6 ;READ TRANSMIT QUEUE
|
||
.ETEMA==7 ;ENABLE MULTI-CAST ADDRESS
|
||
.ETDMA==10 ;DISABLE MULTI-CAST ADDRESS
|
||
|
||
.ETRCL==11 ;READ CHANNEL LIST
|
||
.ETRCI==12 ;READ CHANNEL INFORMATION
|
||
.ETRCC==13 ;READ CHANNEL COUNTERS
|
||
.ETSCA==14 ;SET CHANNEL ADDRESS
|
||
|
||
.ETRPL==15 ;READ PORTAL LIST
|
||
.ETRPI==16 ;READ PORTAL INFORMATION
|
||
.ETRPC==17 ;READ PORTAL COUNTERS
|
||
|
||
.ETRKL==20 ;READ KONTROLLER LIST
|
||
.ETRKI==21 ;READ KONTROLLER INFORMATION
|
||
.ETRKC==22 ;READ KONTROLLER COUNTERS
|
||
SUBTTL ETHNT. UUO DEFINITIONS -- ERROR CODES
|
||
|
||
|
||
;ETHNT. UUO ERROR CODES
|
||
|
||
ETPRV%==1 ;INSUFFICIENT PRIVILEGES
|
||
ETADC%==2 ;ARGUMENT BLOCK ADDRESS CHECK
|
||
ETIAL%==3 ;INVALID ARGUMENT LIST LENGTH
|
||
ETILF%==4 ;INVALID FUNCTION CODE
|
||
ETUEE%==5 ;UNEXPECTED ETHERNET ERROR
|
||
ETRES%==6 ;INSUFFICIENT RESOURCES
|
||
ETIPI%==7 ;INVALID PORTAL ID
|
||
ETICI%==10 ;INVALID CHANNEL ID
|
||
ETIPT%==11 ;INVALID PROTOCOL TYPE
|
||
ETPIU%==12 ;PROTOCOL TYPE IN USE
|
||
ETPRA%==13 ;PROMISCUOUS RECEIVER ACTIVE
|
||
ETBAC%==14 ;BUFFER ADDRESS CHECK
|
||
ETIBS%==15 ;INVALID BUFFER SIZE
|
||
ETIBP%==16 ;INVALID BYTE POINTER
|
||
ETIEA%==17 ;INVALID ETHERNET ADDRESS
|
||
ETPQE%==20 ;PORTAL QUOTA EXCEEDED
|
||
ETBQE%==21 ;BUFFER QUOTA EXCEEDED
|
||
ETPWS%==22 ;PROTOCOL IN WRONG STATE
|
||
ETIKI%==23 ;INVALID KONTROLLER ID
|
||
SUBTTL ETHNT. UUO DEFINITIONS -- USER ARGUMENT BLOCK
|
||
|
||
|
||
;ETHNT. UUO ARGUMENT BLOCK
|
||
|
||
.ETFCN==0 ;FUNCTION CODE WORD
|
||
ET.FFL==777000,,000000 ;FUNCTION SPECIFIC FLAGS
|
||
ET.FZC==200000,,000000 ;ZERO COUNTERS
|
||
ET.FFN==000777,,000000 ;FUNCTION CODE
|
||
ET.FLN==000000,,777777 ;ARGUMENT BLOCK LENGTH
|
||
|
||
.ETPSW==1 ;PORTAL STATUS WORD
|
||
; (.ETOPN, .ETCLS, .ETQRB, .ETRRQ, .ETQXB,
|
||
; .ETRXQ, .ETEMA, .ETDMA, .ETRPI, .ETRPC)
|
||
ET.PST==777000,,000000 ;PORTAL STATUS
|
||
ET.PON==400000,,000000 ;PORTAL IS ONLINE
|
||
ET.PXB==200000,,000000 ;TRANSMIT BUFFERS AVAILABLE
|
||
ET.PRB==100000,,000000 ;RECEIVE BUFFERS AVAILABLE
|
||
ET.IPS==007000,,000000 ;INTERNAL PORTAL STATE
|
||
ET.PID==000777,,777777 ;PORTAL ID
|
||
|
||
.ETCSW==1 ;CHANNEL STATUS WORD
|
||
; (.ETRCI, .ETRCC, .ETSCA, .ETRPL)
|
||
ET.CST==777000,,000000 ;CHANNEL STATUS
|
||
ET.CON==400000,,000000 ;CHANNEL IS ONLINE
|
||
ET.ICS==007000,,000000 ;INTERNAL CHANNEL STATE
|
||
ET.CID==000777,,777777 ;CHANNEL ID
|
||
|
||
.ETKSW==1 ;KONTROLLER STATUS WORD
|
||
; (.ETRKI, .ETRKC)
|
||
ET.KST==777000,,000000 ;KONTROLLER STATUS
|
||
ET.KON==400000,,000000 ;KONTROLLER IS ONLINE
|
||
ET.IKS==007000,,000000 ;INTERNAL KONTROLLER STATE
|
||
ET.KID==000777,,777777 ;KONTROLLER ID
|
||
|
||
.ETAR1==2 ;FUNCTION SPECIFIC ARGUMENT 1
|
||
.ETAR2==3 ;FUNCTION SPECIFIC ARGUMENT 2
|
||
;FOR FUNCTION .ETOPN
|
||
|
||
.ETCIW==.ETAR1 ;CHANNEL IDENTIFICATION WORD
|
||
.ETPIW==.ETAR2 ;PROTOCOL IDENTIFICATION WORD
|
||
ET.PAD==400000,,000000 ;PADDING FLAG
|
||
ET.PTY==000000,,777777 ;PROTOCOL TYPE CODE
|
||
|
||
|
||
;FOR FUNCTIONS .ETQRB, .ETRRQ, .ETQXB, .ETRXQ
|
||
|
||
.ETUBL==.ETAR1 ;ADDRESS OF USER BUFFER DESCRIPTOR LIST
|
||
|
||
|
||
;FOR FUNCTIONS .ETEMA, .ETDMA
|
||
|
||
.ETMCA==.ETAR1 ;MULTI-CAST ADDRESS (2 WORDS)
|
||
|
||
|
||
;FOR FUNCTION .ETSCA
|
||
|
||
.ETEAD==.ETAR1 ;ETHERNET ADDRESS (2 WORDS)
|
||
|
||
|
||
;FOR FUNCTIONS .ETRCL, .ETRCI, .ETRCC, .ETRPL, .ETRPI, .ETRCC
|
||
|
||
.ETBFL==.ETAR1 ;BUFFER LENGTH IN WORDS
|
||
.ETBFA==.ETAR2 ;BUFFER ADDRESS
|
||
SUBTTL ETHNT. UUO DEFINITIONS -- USER BUFFER DESCRIPTOR BLOCK
|
||
|
||
|
||
;ETHNT. UUO BUFFER DESCRIPTOR BLOCK
|
||
|
||
.UBNXT==0 ;ADDRESS OF NEXT USER BUFFER DESCRIPTOR
|
||
.UBBID==1 ;USER BUFFER ID
|
||
.UBSTS==2 ;USER BUFFER STATUS
|
||
UB.ERR==400000,,000000 ;BUFFER HAS ERROR
|
||
UB.ECD==000000,,777777 ;ERROR CODE
|
||
.UBBSZ==3 ;LENGTH OF DATAGRAM IN BYTES
|
||
.UBBFA==4 ;BYTE POINTER TO DATAGRAM (2 WORDS)
|
||
.UBPTY==6 ;PROTOCOL TYPE
|
||
.UBDEA==7 ;DESTINATION ETHERNET ADDRESS (2 WORDS)
|
||
.UBSEA==11 ;SOURCE ETHERNET ADDRESS (2 WORDS)
|
||
.UBLEN==13 ;LENGTH OF USER BUFFER DESCRIPTOR BLOCK
|
||
SUBTTL THE END
|
||
|
||
|
||
END
|