Google
 

Trailing-Edge - PDP-10 Archives - BB-F493Z-DD_1986 - 10,7/703mon/mscpar.mac
There are 25 other files named mscpar.mac in the archive. Click here to see a list.
;DSKT:MSCPAR.MAC[30,5653,CPYRIT] 6-Sep-1985:20:26:26, Edit by SPIDER
;Update copyright notice.
; UPD ID= 2124, SNARK:<6.1.MONITOR>MSCPAR.MAC.19,   5-Jun-85 09:58:38 by MCCOLLUM
;TCO 6.1.1406  - Update copyright notice.
; UPD ID= 1479, SNARK:<6.1.MONITOR>MSCPAR.MAC.18,   5-Feb-85 14:49:43 by TBOYLE
;Add some comments before messages and end messages.
; UPD ID= 5049, SNARK:<6.MONITOR>MSCPAR.MAC.17,  31-Oct-84 17:54:33 by MOSER
;ONCE MORE FIX SERVER UNIT NUMBER
; UPD ID= 4953, SNARK:<6.MONITOR>MSCPAR.MAC.16,  18-Oct-84 14:39:21 by MOSER
;CHANGE SERVER UNIT NUMBER CALCULATION CONSTANTS
; UPD ID= 4816, SNARK:<6.MONITOR>MSCPAR.MAC.15,  17-Sep-84 10:14:02 by PURRETTA
;Update copyright notice
; UPD ID= 4187, SNARK:<6.MONITOR>MSCPAR.MAC.14,   8-May-84 16:40:14 by MCLEAN
;ADD EF% DEFINITIONS
; UPD ID= 4157, SNARK:<6.MONITOR>MSCPAR.MAC.13,  30-Apr-84 21:21:47 by MCLEAN
;ADD ST.EOT
; UPD ID= 4099, SNARK:<6.MONITOR>MSCPAR.MAC.12,  18-Apr-84 19:35:32 by MCLEAN
;OPCODE FOR OP.WTM WAS WRONG AND ADD SOME MD.'S THAT WERE MISSING
; UPD ID= 3967, SNARK:<6.MONITOR>MSCPAR.MAC.11,  23-Mar-84 22:05:35 by MCLEAN
;ADD OP%AVL
; UPD ID= 3460, SNARK:<6.MONITOR>MSCPAR.MAC.10,  16-Jan-84 11:12:38 by MOSER
;ADD UNIT NUMBER STUFF
; UPD ID= 3337, SNARK:<6.MONITOR>MSCPAR.MAC.9,  16-Dec-83 20:57:18 by MCLEAN
;MOVE CODE BACK TO PHYMSC WHERE IT BELONGS
; UPD ID= 3174, SNARK:<6.MONITOR>MSCPAR.MAC.8,  16-Nov-83 19:35:59 by MCLEAN
;FIX DEFINITION OF SB%NVM
; UPD ID= 3157, SNARK:<6.MONITOR>MSCPAR.MAC.7,  15-Nov-83 14:51:55 by MOSER
;TCO 6.1562 - MSCP SERVER MERGE
; UPD ID= 3073, SNARK:<6.MONITOR>MSCPAR.MAC.6,  25-Oct-83 13:04:51 by GRANT
;Move CHCNT and CHADR to PHYPAR
; UPD ID= 2636, SNARK:<6.MONITOR>MSCPAR.MAC.5,  26-Jun-83 10:35:34 by MCLEAN
;TCO 6.1706 ADD DEFINITIONS NECESSARY FOR BAT BLOCK LOGIC.
; UPD ID= 2616, SNARK:<6.MONITOR>MSCPAR.MAC.4,  21-Jun-83 15:00:19 by MCLEAN
;STILL WORKING ON POINTER ADDRESSES
; UPD ID= 2589, SNARK:<6.MONITOR>MSCPAR.MAC.3,  18-Jun-83 23:00:38 by MCLEAN
;ADD OP%SCC
; UPD ID= 2588, SNARK:<6.MONITOR>MSCPAR.MAC.2,  18-Jun-83 09:35:36 by MCLEAN
;TCO 6.1690 CHANGE THE BYTE POINTER FOR THE CORRECT END PACKET STATUS POSITION


;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  1976, 1986.
;ALL RIGHTS RESERVED.


	UNIVERSAL MSCPAR - UNIVERSAL FOR MSCP DRIVERS AND SERVERS
	SUBTTL T.MOSER 10-SEP-85
	SEARCH SCAPRM,MACSYM
	SALL

	SUBTTL	MSCP MESSAGE FORMATS
REPEAT 0,<
GENERIC  CONTROL MESSAGE
                   +-------------------------------+
                   |   COMMAND REFERENCE NUMBER    |
                   +---------------+---------------+
                   |   RESERVED    |  UNIT NUMBER  |
                   +---------------+-------+-------+
                   |   MODIFIERS   | RSVD  | OPCODE|
                   +---------------+-------+-------+
                   |                               |
                   /          PARAMETERS           /
                   /                               /
                   |                               |
                   +-------------------------------+


GENERIC TRANSFER COMMAND
                    +-------------------------------+
                    |   COMMAND REFERENCE NUMBER    |
                    +---------------+---------------+
                    |   RESERVED    |  UNIT NUMBER  |
                    +---------------+-------+-------+
                    |   MODIFIERS   | RSVD  | OPCODE|
                    +---------------+-------+-------+
                    |          BYTE COUNT           |
                    +-------------------------------+
                    |                               |
                    +---         BUFFER          ---+
                    |                               |
                    +---       DESCRIPTOR        ---+
                    |                               |
                    +-------------------------------+
                    |      LOGICAL BLOCK NUMBER     |
                    +-------------------------------+
GENERIC DISK END MESSAGE PACKET
                    +-------------------------------+
                    |   COMMAND REFERENCE NUMBER    |
                    +---------------+---------------+
                    |   RESERVED    |  UNIT NUMBER  |
                    +---------------+-------+-------+
                    |    STATUS     | FLAGS |ENDCODE|
                    +---------------+-------+-------+
                    |          BYTE COUNT           |
                    +-------------------------------+
                    |                               |
                    +---                         ---+
                    |           UNDEFINED           |
                    +---                         ---+
                    |                               |
                    +-------------------------------+
                    |        FIRST BAD BLOCK        |
                    +-------------------------------+

 GENERIC TAPE END PACKET

                   +-------------------------------+
                   |   COMMAND REFERENCE NUMBER    |
                   +---------------+---------------+
                   |   RESERVED    |  UNIT NUMBER  |
                   +---------------+-------+-------+
                   |   STATUS      | FLAGS |ENDCODE|
                   +---------------+-------+-------+
                   |   BYTE COUNT (HOST TRANSFER)  |
                   +-------------------------------+
                   |                               |
                   +----                       ----+
                   |            RESERVED           |
                   +----                       ----+
                   |                               |
                   +-------------------------------+
                   |    POSITION  (OBJECT COUNT)   |
                   +-------------------------------+
                   |    BYTE COUNT (TAPE RECORD)   |
                   +-------------------------------+
GENERIC ERROR LOG PACKET
                   +-------------------------------+
                   |   COMMAND REFERENCE NUMBER    |
                   +---------------+---------------+
                   |SEQUENCE NUMBER|  UNIT NUMBER  |
                   +---------------+-------+-------+
                   |  EVENT CODE   | FLAGS | FORMAT|
                   +---------------+-------+-------+
                   |                               |
                   +---  CONTROLLER IDENTIFIER  ---+
                   |                               |
                   +---------------+-------+-------+
                   |MULTI-UNIT CODE|CHVRSN | CSVRSN|
                   +---------------+-------+-------+
                   |                               |
                   +---     UNIT IDENTIFIER     ---+
                   |                               |
                   +---------------+-------+-------+
                   | FMT DEPENDENT |UHVRSN | USVRSN|
                   +---------------+-------+-------+
                   |      VOLUME SERIAL NUMBER     |
                   +-------------------------------+
                   |                               |
                   /        FORMAT DEPENDENT       /
                   /           INFORMATION         /
                   |                               |
                   +-------------------------------+

SET CONTROLLER CHARACTERISTICS
                    +-------------------------------+
                    |   COMMAND REFERENCE NUMBER    |
                    +---------------+---------------+
                    |   RESERVED    |    RESERVED   |
                    +---------------+-------+-------+
                    |   MODIFIERS   | RSVD  | OPCODE|
                    +---------------+-------+-------+
                    | CNTRLR. FLAGS |  MSCP VERSION |
                    +---------------+---------------+
                    |   RESERVED    |  HOST TIMEOUT |
                    +---------------+---------------+
                    |           QUAD-WORD           |
                    +---                         ---+
                    |         TIME AND DATE         |
                    +-------------------------------+
                    |CONTROLLER DEPENDENT PARAMETERS|
                    +-------------------------------+

SET CONTROLLER CHARACTERISTICS END PACKET
                    +-------------------------------+
                    |   COMMAND REFERENCE NUMBER    |
                    +---------------+---------------+
                    |   RESERVED    |    RESERVED   |
                    +---------------+-------+-------+
                    |    STATUS     | FLAGS |ENDCODE|
                    +---------------+-------+-------+
                    | CNTRLR. FLAGS |  MSCP VERSION |
                    +---------------+---------------+
                    |   RESERVED    |CNTRLR. TIMEOUT|
                    +---------------+---------------+
                    |                               |
                    +---  CONTROLLER IDENTIFIER  ---+
                    |                               |
                    +---------------+---------------+
GET UNIT STATUS COMMAND
                      +-------------------------------+
                      |   COMMAND REFERENCE NUMBER    |
                      +---------------+---------------+
                      |   RESERVED    |  UNIT NUMBER  |
                      +---------------+-------+-------+
                      |   MODIFIERS   | RSVD  | OPCODE|
                      +-------------------------------+

GET UNIT STATUS END PACKET
                      +-------------------------------+
                      |   COMMAND REFERENCE NUMBER    |
                      +---------------+---------------+
                      |   RESERVED    |  UNIT NUMBER  |
                      +---------------+-------+-------+
                      |    STATUS     | FLAGS |ENDCODE|
                      +---------------+-------+-------+
                      |  UNIT FLAGS   |MULTI-UNIT CODE|
                      +---------------+---------------+
                      |           RESERVED            |
                      +-------------------------------+
                      |                               |
                      +---     UNIT IDENTIFIER     ---+
                      |                               |
                      +-------------------------------+
                      |     MEDIA TYPE IDENTIFIER     |
                      +---------------+---------------+
                      | SHADOW STATUS |  SHADOW UNIT  |
                      +---------------+---------------+
                      |  GROUP SIZE   |   TRACK SIZE  |
                      +-------+-------+---------------+
                      |UHVRSN | USVRSN| CYLINDER SIZE |
                      +-------+-------+---------------+
                      |COPIES | RBNS  |    RCT SIZE   |
                      +-------+-------+---------------+
ONLINE COMMAND
                    +-------------------------------+
                    |   COMMAND REFERENCE NUMBER    |
                    +---------------+---------------+
                    |   RESERVED    |  UNIT NUMBER  |
                    +---------------+-------+-------+
                    |   MODIFIERS   | RSVD  | OPCODE|
                    +---------------+-------+-------+
                    |  UNIT FLAGS   |    RESERVED   |
                    +---------------+---------------+
                    |           RESERVED            |
                    +-------------------------------+
                    |                               |
                    +---        RESERVED         ---+
                    |                               |
                    +-------------------------------+
                    |  DEVICE  DEPENDENT PARAMETERS |
                    +---------------+---------------+
                    |  COPY SPEED   |  SHADOW UNIT  |
                    +---------------+---------------+

ONLINE COMMAND END PACKET
                    +-------------------------------+
                    |   COMMAND REFERENCE NUMBER    |
                    +---------------+---------------+
                    |   RESERVED    |  UNIT NUMBER  |
                    +---------------+-------+-------+
                    |    STATUS     | FLAGS |ENDCODE|
                    +---------------+-------+-------+
                    |  UNIT FLAGS   |MULTI-UNIT CODE|
                    +---------------+---------------+
                    |           RESERVED            |
                    +-------------------------------+
                    |                               |
                    +---     UNIT IDENTIFIER     ---+
                    |                               |
                    +-------------------------------+
                    |     MEDIA TYPE IDENTIFIER     |
                    +---------------+---------------+
                    | SHADOW STATUS |  SHADOW UNIT  |
                    +---------------+---------------+
                    |           UNIT SIZE           |
                    +-------------------------------+
                    |      VOLUME SERIAL NUMBER     |
                    +-------------------------------+

>
	SUBTTL	MSCP BYTE POINTERS


DEFSTR	PKYEST,P.STS,PKPEST,PKSEST	;END-PACKET STATUS
DEFSTR	PKYQSB,P.STS,PKPESB,PKSESB	;END-PACKET STATUS SUB-CODE
DEFSTR	PKYECD,P.STS,PKPECD,PKSECD	;END-CODE
	SUBTTL	COMMAND MESSAGE OFFSETS
; (COMMENT) * => NOT RIGHT ADJUSTED
; (COMMENT) # => MULTI-BYTE NUMBER. HAVE TO READ/STORE BACKWARDS FOR HSC-50
; "." IS A SYMBOL WHICH IS POSITIONED IN THE FULL WORD OR AN OFFSET IN -10 WORDS
; "%" IS THE SAME SYMBOL RIGHT ADJUSTED OR A LENGTH IN 8-BIT BYTES


; GENERIC CONTROL MESSAGE
P.CRF==.MHUDA+<0>/4		;COMMAND REFERENCE NUMBER (4 BYTES)
P.UNIT==.MHUDA+<4>/4		;#UNIT NUMBER (2 BYTES)
P.OPCD==.MHUDA+<10>/4		;OPCODE (1 BYTE)
P%OPCD==10+4			;LENGTH, INCLUDING OPCODE

; GENERIC TRANSFER COMMAND
P.MOD==.MHUDA+<12>/4		;*MODIFIERS (2 BYTES)
P.BCNT==.MHUDA+<14>/4		;#BYTE COUNT (4 BYTES)
P.BUFF==.MHUDA+<20>/4		;BUFFER DESCRIPTOR (12 BYTES)
P.LBN==.MHUDA+<34>/4		;#LOGICAL BLOCK NUMBER (4 BYTES)
P%LBN==34+4

; GET COMMAND STATUS OFFSET
P.OTRF==.MHUDA+<14>/4		;OUTSTANDING REFERENCE NUMBER (4 BYTES)
 P%OTRF==20
P.CMST==.MHUDA+<20>/4		;COMMAND STATUS
P%CMST==24

; ONLINE COMMAND MESSAGE OFFSETS
P.UNFL==.MHUDA+<16>/4		;*UNIT FLAGS (2 BYTES)
P.DVPM==.MHUDA+<34>/4		;DEVICE DEPENDENT PARAMETERS (4 BYTES)
P.ELGF==.MHUDA+<34>/4		;ERROR LOG FLAGS (4 BYTES)
P.SHUN==.MHUDA+<40>/4		;SHADOW UNIT (2 BYTES)
P%SHUN==44

; SET UNIT CHARACTERISTICS COMMAND MESSAGE
P.FORM==.MHUDA+<40>/4		;FORMAT (2 BYTES)
P.CPSP==.MHUDA+<42>/4		;*COPY SPEED (2 BYTES)
P.SPED==.MHUDA+<42>/4		;*SPEED (2 BYTES)
P.MXWR==.MHUDA+<44>/4		;MAXIMUM WRITE RECORD SIZE
P.NREC==.MHUDA+<50>/4		;NOISE RECORD
P%NREC==44			;THIS SIZE IS WRONG*****  BUT HSC WILL CRASH IF IT GETS LARGER***

; GET UNIT STATUS COMMAND OFFSETS
P.FMEN==.MHUDA+<44>/4		;FORMAT MENU (2 BYTES)

; REPLACE COMMAND MESSAGE OFFSET
P.RBN==.MHUDA+<14>/4		;#REPLACEMENT BLOCK NUMBER (4 BYTES)

; REPOSITION COMMAND OFFSETS
P.TMGC==.MHUDA+<14>/4		;RECORD/OBJECT COUNT (4 BYTES)
P.RECC==.MHUDA+<20>/4		;TAPE MARK COUNT (4 BYTES)

; SET CONTROLLER CHARACTERISTICS COMMAND OFFSETS
P.VRSN==.MHUDA+<14>/4		;MSCP VERSION (2 BYTES)
P.CNTF==.MHUDA+<16>/4		;*CONTROLLER FLAGS (2 BYTES)
P.HTMO==.MHUDA+<20>/4		;#HOST TIMEOUT (2 BYTES)
P.TIME==.MHUDA+<24>/4		;#QUAD-WORD TIME AND DATE (8 BYTES)
P.CDPR==.MHUDA+<34>/4
P%CDPR==40			;LENGTH
				;END, ATTENTION MESSAGE OFFSETS
; GENERIC DISK END MESSAGE
P.CRF==.MHUDA+<0>/4		;COMMAND REFERENCE NUMBER (4 BYTES)
P.UNIT==.MHUDA+<4>/4		;#UNIT NUMBER (2 BYTES)
P.OPCD==.MHUDA+<10>/4		;OPCODE (ALSO CALLED ENDCODE (1 BYTE)
P.FLGS==.MHUDA+<11>/4		;*END MESSAGE FLAGS (1 BYTE)
	PKSFCD==^D8		;END MESSAGE FLAGS SIZE
	PKPFCD==^D23		;END MESSAGE FLAGS POSITION
P.STS==.MHUDA+<12>/4		;*STATUS (2 BYTES)
	PKSEST==5
	PKPEST==^D15
	PKSESB==^D11
	PKPESB==^D10		;STATUS SUB-CODE
	PKSECD==^D8
	PKPECD==^D31		;END CODE
P%STS==16			;LENGTH
P.BCNT==.MHUDA+<14>/4		;#BYTE COUNT (4 BYTES)
P.FBBK==.MHUDA+<34>/4		;#FIRST BAD BLOCK (4 BYTES)
P%FBBK==40

; GET COMMAND STATUS END MESSAGE
P.OTRF==.MHUDA+<14>/4		;OUTSTANDING REFERENCE NUMBER (4 BYTES)
P.CMST==.MHUDA+<20>/4		;COMMAND STATUS (2 BYTES)

; GET UNIT STATUS END MESSAGE
P.MLUN==.MHUDA+<14>/4		;MULTI-UNIT CODE (2 BYTES)
P.UNFL==.MHUDA+<16>/4		;*UNIT FLAGS (2 BYTES)
P.UNTI==.MHUDA+<24>/4		;UNIT IDENTIFER (8 BYTES)
P.MEDI==.MHUDA+<34>/4		;MEDIA TYPE IDENTIFIER (4 BYTES)
P.SHUN==.MHUDA+<40>/4		;SHADOW UNIT (2 BYTES)
P.SHST==.MHUDA+<42>/4		;*SHADOW STATUS (2 BYTES)
P.TRCK==.MHUDA+<44>/4		;#TRACK SIZE (2 BYTES)
P.GRP==.MHUDA+<46>/4		;#*GROUP SIZE (2 BYTES)
P.CYL==.MHUDA+<50>/4		;#CYLINDER SIZE (2 BYTES)
P.RCTS==.MHUDA+<54>/4		;#RCT TABLE SIZE (2 BYTES)
P.RBNS==.MHUDA+<56>/4		;*RBNS / TRACK (1 BYTE)
P.RCTC==.MHUDA+<57>/4		;*RCT COPIES (1 BYTE)
P%RCTC==60

; ONLINE COMMAND END MESSAGE
P.MLUN==.MHUDA+<14>/4		;MULTI-UNIT CODE (2 BYTES)
P.UNFL==.MHUDA+<16>/4		;*UNIT FLAGS (2 BYTES)
P.UNTI==.MHUDA+<24>/4		;UNIT IDENTIFER (8 BYTES)
P.MEDI==.MHUDA+<34>/4		;MEDIA TYPE IDENTIFIER (4 BYTES)
P.SHUN==.MHUDA+<40>/4		;SHADOW UNIT (2 BYTES)
P.SHST==.MHUDA+<42>/4		;*SHADOW STATUS (2 BYTES)
P.UNSZ==.MHUDA+<44>/4		;#UNIT SIZE (4 BYTES)
P.VSER==.MHUDA+<50>/4		;VOLUME SERIAL NUMBER (4 BYTES)
P%VSER==60

; SET CONTROLLER CHARACTERISTICS COMMAND END MESSAGE
P.VRSN==.MHUDA+<14>/4		;MSCP VERSION (2 BYTES)
P.CNTF==.MHUDA+<16>/4		;*CONTROLLER FLAGS (2 BYTES)
P.CTMO==.MHUDA+<20>/4		;#CONTROLLER TIMEOUT (2 BYTES)
P.CNTI==.MHUDA+<24>/4		;CONTROLLER ID (8 BYTES)
P%CNTI==30

;READ END PACKET OFFSETS
P.POS==.MHUDA+<24>/4		;OBJECT COUNT
P.TRBC==.MHUDA+<20>/4		;TAPE RECORD BYTE COUNT

;REPOSITION END PACKET OFFSETS
P.RCSK==.MHUDA+<14>/4		;RECORDS SKIPPED
P.TMSK==.MHUDA+<20>/4		;TAPE MARKS SKIPPED
				;CONTROL MESSAGE OPCODES
OP.ABO==1B31			;ABORT COMMAND
 OP%ABO==1
OP.ACC==20B31			;ACCESS COMMAND
OP.AVL==10B31			;AVAILABLE COMMAND
 OP%AVL==10
OP.CCD==21B31			;COMPARE CONTROLLER DATA COMMAND
OP.CMP==40B31			;COMPARE HOST DATA COMMAND
OP.DAP==13B31			;DETERMINE ACCESS PATHS COMMAND
OP.ERG==26B31			;ERASE GAP COMMAND
OP.ERS==22B31			;ERASE COMMAND
OP.FLU==23B31			;FLUSH COMMAND
OP.GCS==2B31			;GET COMMAND STATUS COMMAND
 OP%GCS==2
OP.GUS==3B31			;GET UNIT STATUS COMMAND
 OP%GUS==3
OP.ONL==11B31			;ONLINE COMMAND
 OP%ONL==11
OP.RD==41B31			;READ COMMAND
OP.REP==45B31			;REPOSITION COMMAND
OP.RPL==24B31			;REPLACE COMMAND
OP.SCC==4B31			;SET CONTROLLER CHARACTERISTICS COMMAND
 OP%SCC==4
OP.SUC==12B31			;SET UNIT CHARACTERISTICS COMMAND
 OP%SUC==12
OP.WR==42B31			;WRITE COMMAND
OP.WTM==44B31			;WRITE TAPE MARK COMMAND
OP.END==200B31			;END MESSAGE FLAG
  OP%END==200
OP.SEX==7B31			;SERIOUS EXCEPTION END MSG
OP.AVA==100B31			;AVAILABLE ATTENTION MESSAGE
  OP%AVA==100
OP.DUP==101B31			;DUPLICATE UNIT NUMBER ATTENTION MESSAGE
OP.ACP==102B31			;ACCESS PATH ATTENTION MESSAGE
				;COMMAND MODIFIERS
MD.CSE==20000B15		;CLEAR SERIOUS EXCEPTION
MD.CMP==40000B15		;COMPARE
MD.EXP==100000B15		;EXPRESS REQUEST
MD.ERR==10000B15		;FORCE ERROR
MD.SCH==4000B15			;SUPPRESS CACHING (HIGH SPEED
MD.SCL==2000B15			;SUPPRESS CACHING (LOW SPEED
MD.SEC==1000B15			;SUPPRESS ERROR CORRECTION
MD.SER==400B15			;SUPPRESS ERROR RECOVERY
MD.SSH==200B15			;SUPPRESS SHADOWING
MD.DLE==200B15			;DETECT LEOT
MD.WBN==100B15			;WRITE-BACK (NON-VOLATILE
MD.IMM==100B15			;IMMEDIATE COMPLETION
MD.WBV==40B15			;WRITE-BACK (VOLATILE
MD.EXC==40B15			;EXCLUSIVE ACCESS
MD.SEQ==20B15			;WRITE SHADOW SET ONE UNIT AT A TIME
MD.ALL==2B15			;ALL CLASS DRIVERS
MD.SPD==1B15			;SPIN-DOWN
MD.FEU==1B15			;FLUSH ENTIRE UNIT
MD.VOL==2B15			;VOLATILE ONLY
MD.NXU==1B15			;NEXT UNIT
MD.RIP==1B15			;ALLOW SELF DESTRUCTION
MD.IMF==2B15			;IGNORE MEDIA FORMAT ERROR
MD.CWB==10B15			;CLEAR WRITE-BACK DATA LOST
MD.SWP==4B15			;ENABLE SET WRITE PROTECT
MD.SHD==20B15			;SHADOW UNIT SPECIFIED
MD.PRI==1B15			;PRIMARY REPLACEMENT BLOCK
MD.RWD==2B15			;REWIND
MD.OBJ==4B15			;OBJECT COUNT
MD.REV==10B15			;REVERSE
MD.UNL==20B15			;UNLOAD
				;END MESSAGE FLAGS
EF.BBR==200B7			;BAD BLOCK REPORTED
  EF%BBR==200		;BAD BLOCK REPORTED
EF.BBU==100B7			;BAD BLOCK UNREPORTED
  EF%BBU==100			;BAT BLOCK UNREPORTED
EF.LOG==40B7			;ERROR LOG GENERATED
  EF%LOG==40			;ERROR LOG REQUESTED
EF.SEX==20B7			;SERIOUS EXCEPTION
  EF%SEX==20			;SERIOUS EXCEPTION
EF.EOT==10B7			;END OF TAPE
  EF%EOT==10			;END OF TAPE

;STATUS AND EVENT CODES
ST.MSK==37B15			;STATUS / EVENT CODE MASK
  ST%MSK==37
ST.SUB==40B15			;SUB-CODE MULTIPLIER
ST.ONL==400B15			;ALREADY ONLINE
ST.EOT==2000B15			;END OF TAPE
  ST%EOT==40			;END OF TAPE
 ST%ONL==10
ST.SUC==0B15			;SUCCESS
ST.CMD==1B15			;INVALID COMMAND
  ST%CMD==1			;INVALID COMMAND
ST.ABO==2B15			;COMMAND ABORTED
ST.OFL==3B15			;UNIT-OFFLINE
  ST%OFL==3
ST.AVL==4B15			;UNIT-AVAILABLE
  ST%AVL==4
ST.MFE==5B15			;MEDIA FORMAT ERROR
  ST%MFE==5
ST.WPR==6B15			;WRITE PROTECTED
  ST%WPR==6
ST.CMP==7B15			;COMPARE ERROR
ST.DAT==10B15			;DATA ERROR
  ST%DAT==10
ST.HST==11B15			;HOST BUFFER ACCESS ERROR
ST.CNT==12B15			;CONTROLLER ERROR
ST.DRV==13B15			;DRIVE ERROR
ST.FMT==14B15			;FORMATTER ERROR
ST.BOT==15B15			;BOT ENCOUNTERED
  ST%BOT==15
ST.TM==16B15			;TAPE MARK ENCOUNTERED
  ST%TM==16
ST.RDT==20B15			;RECORD DATA TRUNCATED
  ST%RDT==20
ST.POL==21B15			;POSITION LOST
ST.DIA==37B15			;MESSAGE FROM AN INTERNAL DIAGNOSTIC
SB.NVM==20B10			;NO VOLUME MOUNTED
  SB%NVM==1

;CONTROLLER FLAGS
CF.ATN==200B15			;ENABLE ATTENTION MESSAGES
CF.MSC==100B15			;ENABLE MISCELLANEOUS ERROR LOG MESSAGES
CF.OTH==40B15			;ENABLE OTHER HOST'S ERROR LOG MESSAGES
CF.THS==20B15			;ENABLE THIS HOST'S ERROR LOG MESSAGES
CF.RPL==100000B15		;CONTROLLER INITIATED BAD BLOCK RPLCMNT
CF.MLH==4B15			;MULTI-HOST
CF.SHD==2B15			;SHADOWING
CF.576==1B15			;576 BYTE SECTORS
				;UNIT FLAGS
UF.CMR==1B15			;COMPARE READS
UF.CMW==2B15			;COMPARE WRITES
UF.SWP==4B15			;SOFTWARE WRITE PROTECT
UF.HWP==10B15			;HARDWARE WRITE PROTECT
UF.VSU==20B15			;VARIABLE SPEED UNIT
UF.VSS==40B15			;VARIABLE SPEED MODE SUPPRESS
UF.RPL==100000B15		;CONTROLLER INITIATED BAD BLOCK RPLCMNT
UF.INA==40000B15		;INACTIVE SHADOW SET UNIT
UF.RMV==200B15			;REMOVABLE MEDIA
UF.SCH==4000B15			;SUPPRESS CACHING (HIGH SPEED
UF.SCL==2000B15			;SUPPRESS CACHING (LOW SPEED
UF.WBN==100B15			;WRITE-BACK (NON-VOLATILE
UF.WPH==20000B15		;WRITE PROTECT (HARDWARE
UF.WPS==10000B15		;WRITE PROTECT (SOFTWARE OR VOLUME
UF.576==4B15			;576 BYTE SECTORS

;TAPE FORMATS
FM.800==1B31			;NRZI (800 BPI)
FM.PE==2B31			;PHASE ENCODED (1600 BPI)
FM.GCR==4B31			;GROUP CODED RECORDING (6250 BPI)
				;ERROR LOG MESSAGE OFFSETS
L.CRF==.MHUDA+<0>/4		;COMMAND REFERENCE NUMBER (4 BYTES)
L.UNIT==.MHUDA+<4>/4		;UNIT NUMBER (2 BYTES)
L.SEQ==.MHUDA+<6>/4		;*SEQUENCE NUMBER (2 BYTES)
L.FMT==.MHUDA+<10>/4		;FORMAT (1 BYTE)
L.FLGS==.MHUDA+<11>/4		;*ERROR LOG MESSAGE FLAGS (1 BYTE)
L.EVNT==.MHUDA+<12>/4		;*EVENT CODE (2 BYTES)
L.CNTI==.MHUDA+<14>/4		;CONTROLLER ID (8 BYTES)
L.CSVR==.MHUDA+<24>/4		;CONTROLLER SOFTWARE VERSION (1 BYTE)
L.CHVR==.MHUDA+<25>/4		;*CONTROLLER HARDWARE VERSION (1 BYTE)
L.MLUN==.MHUDA+<26>/4		;*MULTI-UNIT CODE (2 BYTES)
L.UNTI==.MHUDA+<30>/4		;UNIT ID (8 BYTES)
L.USVR==.MHUDA+<40>/4		;UNIT SOFTWARE VERSION (1 BYTE)
L.UHVR==.MHUDA+<41>/4		;*UNIT HARDWARE VERSION (1 BYTE)
L.VSER==.MHUDA+<44>/4		;VOLUME SERIAL NUMBER (4 BYTES)
L.BADR==.MHUDA+<30>/4		;BUS ADDRESS (4 BYTES)
L.GRP==.MHUDA+<42>/4		;*GROUP (2 BYTES)
L.VSER==.MHUDA+<44>/4		;VOLUME SERIAL NUMBER (4 BYTES)
L.CYL==.MHUDA+<50>/4		;CYLINDER (4 BYTES)
L.TRCK==.MHUDA+<54>/4		;TRACK (2 BYTES)
L.SCTR==.MHUDA+<56>/4		;*SECTOR (2 BYTES)
L.LBN==.MHUDA+<60>/4		;LOGICAL BLOCK NUMBER (4 BYTES)
L.LVL==.MHUDA+<64>/4		;LEVEL (1 BYTE)
L.RTRY==.MHUDA+<65>/4		;*RETRY (1 BYTE)
L.GRP==.MHUDA+<42>/4		;*GROUP (2 BYTES)
L.VSER==.MHUDA+<44>/4		;VOLUME SERIAL NUMBER (4 BYTES)
L.CYL==.MHUDA+<50>/4		;CYLINDER (4 BYTES)
L.SDI==.MHUDA+<54>/4		;SDI INFORMATION (12 BYTES)
L.SCYL==.MHUDA+<42>/4		;*CYLINDER (2 BYTES)
L.VSER==.MHUDA+<44>/4		;VOLUME SERIAL NUMBER (4 BYTES)

;ERROR LOG MESSAGE FORMAT CODES
FM.CNT==0			;CONTROLLER ERRORS
FM.BAD==1			;HOST MEMORY ACCESS ERRORS WITH BUS ADDR
FM.DSK==2			;DISK TRANSFER ERRORS
FM.SDI==3			;SDI ERRORS
FM.SDE==4			;SMALL DISK ERRORS

;ERROR LOG MESSAGE FLAGS
LF.SUC==200			;OPERATION SUCCESSFUL
LF.CON==100			;OPERATION CONTINUING
LF.SNR==1			;SEQUENCE NUMBER RESET
	SUBTTL	RECALL REASON CODES


;CODES FOR INDEXING INTO DRIVER DISPATCH TABLE TO DISPATCH TO
;THE RECALL ROUTINE AFTER CALLING A MSCCOM ROUTINE.

IFN FTOPS10,<			;TOPS-10 ONLY

	.RRSCC==1		;RETURN FROM SET CONTROLLER CHARACTERISTICS
	.RRGNU==2		;RETURN FROM GET NEXT UNIT
	.RRONL==3		;RETURN FROM ONLINE COMMAND
	.RROON==4		;RETURN FROM ONCE BIND ONLINE COMMAND
	.RRAON==5		;RETURN FROM UNSOLICITED UNIT AVAILABLE ONLINE
	.RRGCS==6		;RETURN FROM GET COMMAND STATUS
	.RRGUS==7		;RETURN FROM GET UNIT STATUS
	.RRAVA==10		;UNSOLICITED UNIT AVAILABLE
	.RRXFR==11		;TRANSFER COMPLETE
	.RRCUS==12		;RETURN FROM CHECK UNIT STATUS COMMAND
>; END IFN FTOPS10
	SUBTTL	BITS IN MSCFLG


;FLAGS ARE DEFINED HERE IN TOPS-10 AS MORE THAN ONE MODULE WANTS
;THE DEFINITIONS (MSCCOM, RAXKON, AND TCIKON TO BE EXACT).  THESE
;SHOULD STILL MATCH THOSE DEFINED IN PHYMSC.

IFN FTOPS10,<			;TOPS-10 ONLY

	DT.TAP==1B0		;CONTROLLER IS A TAPE DRIVER (MUST BE SIGN BIT)
	DT.GAW==1B1		;NODE HAS GONE AWAY (CONNECTION BROKEN)
	DT.GCS==1B2		;A GCS COMMAND IS OUTSTANDING
	DT.IDC==1B3		;WE'VE INITIATED A DISCONNECT
	DT.IRC==1B4		;WE'VE INITIATED A RECONNECT
	DT.DIS==1B5		;THEY INITIATED A DISCONNECT
	DT.DI1==1B6		;ALREADY TRIED DISCONNECT ONCE
	DT.NXU==1B7		;FIRST PASS NEXT UNIT TEST
	DT.KL==1B8		;REMOTE IS A KL
	DT.USE==1B9		;THIS CTI SLOT IS IN USE
	DT.KEP==DT.KL!DT.DI1!DT.USE ;BITS TO KEEP AROUND ON RESET
>; END IFN FTOPS10
	SUBTTL	MISCELLANEOUS

MAXUNT==20-1			;MAXIMUM MASSBUS UNIT NUMBER ALLOWED
MAXKNT==<20-1>+1		;MAXIMUM MASSBUS KONT NUMBER (RANGE -1:15)
MAXCNT==3			;MAXIMUM MASSBUS CHANNEL NUMBER IF CI (SERVER)
KONCOD==MAXUNT+1		;KONTROLLER ENCODER FOR MSCP UNIT NUMBER
CHNCOD==KONCOD*MAXKNT+MAXUNT+1	;CHANNEL ENCODER FOR MSCP UNIT NUMBER
MAXUNN==<CHNCOD*MAXCNT>+<KONCOD*MAXKNT>+MAXUNT+1 ;MAX UNIT NUMBER

	END