DXPDRIVER       - STAR CONSOLE FLOPPY DISK DRIVER                21-AUG-1978 20:52:27   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)     112  START I/O OPERATION

DXPDRIVER       - STAR CONSOLE FLOPPY DISK DRIVER                21-AUG-1978 20:52:27   VAX-11 MACRO X0.3-11               Page   1

00.1                                                                                                                             (1)



                                     0000     1 	.TITLE	DXPDRIVER - STAR CONSOLE FLOPPY DISK DRIVER

                                     0000     2 	.IDENT	/00.1/

                                     0000     3  

                                     0000     4 ;

                                     0000     5 ; COPYRIGHT (C) 1977

                                     0000     6 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

                                     0000     7 ;

                                     0000     8 ; THIS SOFTWARE IS FURNISHED UNDER  A LICENSE FOR USE ONLY  ON  A

                                     0000     9 ; SINGLE COMPUTER SYSTEM AND MAY BE  COPIED ONLY WITH  THE INCLU-

                                     0000    10 ; SION OF  THE  ABOVE  COPYRIGHT NOTICE.  THIS SOFTWARE,  OR  ANY

                                     0000    11 ; OTHER COPIES THEREOF, MAY NOT BE  PROVIDED  OR  OTHERWISE  MADE

                                     0000    12 ; AVAILABLE TO ANY OTHER PERSON EXCEPT  FOR  USE  ON  SUCH SYSTEM

                                     0000    13 ; AND TO  ONE WHO AGREES  TO  THESE LICENSE  TERMS.  TITLE TO AND

                                     0000    14 ; OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.

                                     0000    15 ;

                                     0000    16 ; THE INFORMATION IN THIS SOFTWARE  IS  SUBJECT TO CHANGE WITHOUT

                                     0000    17 ; NOTICE AND SHOULD NOT BE CONSTRUED  AS  A COMMITMENT BY DIGITAL

                                     0000    18 ; EQUIPMENT CORPORATION.

                                     0000    19 ;

                                     0000    20 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS

                                     0000    21 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

                                     0000    22 ;

                                     0000    23 ; C. A. MONIA 13-JUL-77

                                     0000    24 ;

                                     0000    25 ; STAR CONSOLE FLOPPY DISK DRIVER

                                     0000    26 ;

                                     0000    27 ; MACRO LIBRARY CALLS

                                     0000    28 ;

                                     0000    29  

                                     0000    30 	$ADPDEF				;DEFINE ADP OFFSETS

                                     0000    31 	$CRBDEF				;DEFINE CRB OFFSETS

                                     0000    32 	$DDBDEF				;DEFINE DDB OFFSETS

                                     0000    33 	$DPTDEF				;DEFINE DPT OFFSETS

                                     0000    34 	$EMBDEF				;DEFINE EMB OFFSETS

                                     0000    35 	$IDBDEF				;DEFINE IDB OFFSETS

                                     0000    36 	$IODEF				;DEFINE I/O FUNCTION CODES

                                     0000    37 	$IRPDEF				;DEFINE IRP OFFSETS

                                     0000    38 	$UBADEF				;DEFINE UBA REGISTER OFFSETS

                                     0000    39 	$UCBDEF				;DEFINE UCB OFFSETS

                                     0000    40 	$VECDEF				;DEFINE INTERRUPT DISPATCH VECTOR OFFSETS

                                     0000    41  

                                     0000    42 ;

                                     0000    43 ; LOCAL SYMBOLS

                                     0000    44 ;

                                     0000    45 ; CONSOLE FLOPPY STATUS BIT DEFINITIONS

                                     0000    46 ;

                                     0000    47  

                                     0000    48 	_VIELD	DXP_RXDB,0,<-		;RECEIVER DATA BUFFER FIELD DEFINITIONS

                                     0000    49 	<CRC,,M>,-			;CRC ERROR

                                     0000    50 	<PAR,,M>,-			;PARITY

                                     0000    51 	<INI,,M>-			;INIT. COMPLETE

                                     0000    52 >					;

                                     0000    53 	_VIELD	DXP_RXDB,6,<-		;

                                     0000    54 	<DEL,,M>,-			;DELETED DATA MARK READ

                                     0000    55 	<ERR,,M>-			;ERROR DETECTED

                                     0000    56 >					;

                                     0000    57  

DXPDRIVER       - STAR CONSOLE FLOPPY DISK DRIVER                21-AUG-1978 20:52:27   VAX-11 MACRO X0.3-11               Page   2

00.1                                                                                                                             (1)



                                     0000    58 ;

                                     0000    59 ; CONSOLE COMMAND FIELD DEFINITION

                                     0000    60 ;

                                     0000    61  

                           00000800  0000    62 DXP_M_CMD = 8@8				;COMMAND BIT

                                     0000    63  

                                     0000    64 ;

                                     0000    65 ; CONSOLE DATA BUFFER VALUES

                                     0000    66 ;

                                     0000    67  

                           00000900  0000    68 DXP_RXDB_K_CMD = 9@8			;INITIATE FLOPPY FUNCTION

                           00000200  0000    69 DXP_RXDB_K_FCMP = 2@8			;FLOPPY FUNCTION COMPLETE

                           00000005  0000    70 DXP_RXDB_K_PRTC = 5			;PROTOCOL ERROR STATUS

                                     0000    71  

                                     0000    72 ;

                                     0000    73 ; HARDWARE FUNCTION CODES

                                     0000    74 ;

                                     0000    75  

                           00000800  0000    76 F_READSECTOR=8@8!0			;READ SECTOR

                           00000801  0000    77 F_WRITESECTOR=8@8!1			;WRITE SECTOR

                           00000802  0000    78 F_READSTATUS=8@8!2			;READ STATUS

                           00000803  0000    79 F_WRITEDELDATA=8@8!3			;WRITE DELETED DATA SECTOR

                           00000804  0000    80 F_CANCEL=8@8!4				;CANCEL FLOPPY FUNCTION

                                     0000    81  

                                     0000    82 ;

                                     0000    83 ; LOCAL DATA

                                     0000    84 ;

                                     0000    85 ; DRIVER PROLOGUE TABLE

                                     0000    86 ;

                                     0000    87  

                                 00000000    88 	.PSECT	$$$105_PROLOGUE

                                     0000    89 DXP$DPT::				;

                                     0000    90 	DPTAB	-			;DEFINE DRIVER PROLOGUE TABLE

                                     0000    91 		END=DXP_END,-		;END OF DRIVER

                                     0000    92 		ADAPTER=UBA,-		;ADAPTER TYPE

                                     0000    93 		UCBSIZE=296,-		;UCB SIZE

                                     0000    94 		NAME=DXDRIVER		;DRIVER NAME

                                     001F    95 	DPT_STORE INIT			;CONTROL BLOCK INIT VALUES

                                     001F    96 	DPT_STORE REINIT		;CONTROL BLOCK RE-INIT VALUES

                                     001F    97 	DPT_STORE END			;

                                     0000    98  

                                     0000    99 ;

                                     0000   100 ; DRIVER DISPATCH TABLE

                                     0000   101 ;

                                     0000   102  

                                     0000   103 	DDTAB	DXP,-			;DRIVER DISPATCH TABLE

                                     0000   104 		STARTIO,-		;INITIATE I/O OPERATION

                                     0000   105 		UNSOLNT,-		;UNSOLICITED INTERRUPT

                                     0000   106 		+DX$FUNCTABLE,-		;FUNCTION DECISION TABLE

                                     0000   107 		UNSOLNT,-		;DEASSIGN PROCESSING ROUTINE

                                     0000   108 		REGDUMP,-		;REGISTER DUMP ROUTINE

                                     0000   109 		<<6>*4+<3>*4>,-		;SIZE OF DIAGNOSTIC BUFFER

                                     0000   110 		0			;SIZE OF ERROR BUFFER (0=NONE)

DXPDRIVER       - STAR CONSOLE FLOPPY DISK DRIVER                21-AUG-1978 20:52:27   VAX-11 MACRO X0.3-11               Page   3

00.1            START I/O OPERATION                                                                                              (1)



                                     0018   112 	.SBTTL	START I/O OPERATION

                                     0018   113  

                                     0018   114 ;+

                                     0018   115 ; STARTIO - START I/O OPERATION ON DEVICE UNIT

                                     0018   116 ;

                                     0018   117 ; THIS ENTRY POINT IS ENTERED TO START AN I/O OPERATION ON THE CONSOLE

                                     0018   118 ; FLOPPY. CONTROL ALTERNATES BETWEEN THE FLOPPY DRIVER AND THE FLOPPY

                                     0018   119 ; UTILITY ROUTINES IN DXUTILITY THAT ARE SHARED BY ALL FLOPPY DEVICES.

                                     0018   120 ; THE DRIVER PERFORMS ALL DEVICE-DEPENDANT PROCESSING WHILE THE UTILI-

                                     0018   121 ; TY ROUTINES HANDLE THE INTERFACE BETWEEN THE DRIVE AND THE SYSTEM OR

                                     0018   122 ; USER. THE PROTOCOL FOR EACH DATA TRANSFER IS AS FOLLOWS:

                                     0018   123 ;

                                     0018   124 ;	1. THE SYSTEM DETERMINES THE LEGALITY OF A FUNCTION AND ANY PRE-

                                     0018   125 ;	   PROCESSING TO BE PERFORMED BY SCANNING THE COMMON FUNCTION DE-

                                     0018   126 ;	   CISION TABLE.

                                     0018   127 ;

                                     0018   128 ;	2. A REQUEST IS DEQUEUED AND THE DRIVER IS ENTERED AT ITS START-I/O

                                     0018   129 ;	   ENTRY POINT.

                                     0018   130 ;

                                     0018   131 ;	3. A SUBROUTINE CALL TO COMMON CODE IS EXECUTED TO COMPUTE THE INI-

                                     0018   132 ;	   TIAL MEDIA ADDRESS AND SETUP THE I/O DATA BASE FOR THE TRANSFER.

                                     0018   133 ;

                                     0018   134 ;	4. A CO-ROUTINE CALL TO THE DRIVER IS EXECUTED TO POSITION THE MEDIA

                                     0018   135 ;

                                     0018   136 ;	5. A CO-ROUTINE CALL TO THE DRIVER IS PERFORMED TO TRANSFER ONE BYTE

                                     0018   137 ;	   OF DATA

                                     0018   138 ;

                                     0018   139 ;	6. A CO-ROUTINE CALL TO THE COMMON PROCESSOR IS PERFORMED TO UPDATE

                                     0018   140 ;	   THE ADDRESS AND BYTE COUNT AND CHECK FOR ENDPOINT CONDITIONS

                                     0018   141 ;

                                     0018   142 ; STEPS 4 - 6 ARE EXECUTED AT HARDWARE IPL LEVEL. A TRANSFER TO FORK LEVEL

                                     0018   143 ; MUST BE EXECUTED WHENEVER:

                                     0018   144 ;

                                     0018   145 ;	. ONE SECTOR OF DATA HAS BEEN TRANSFERRED

                                     0018   146 ;

                                     0018   147 ;	. AN ERROR CONDITION IS DETECTED.

                                     0018   148 ;

                                     0018   149 ; ON OCCURANCE OF AN ERROR, THE DRIVER PERFORMS ANY HARDWARE DEPENDANT

                                     0018   150 ; FUNCTIONS THEN TRANSFERS CONTROL TO THE COMMON EXCEPTION ENTRY POINT

                                     0018   151 ; TO RESET MEDIA AND USER ADDRESSES AND REISSUE THE REQUEST.

                                     0018   152 ;

                                     0018   153 ; THE FLAGS DESCRIBED BELOW ARE USED TO SIGNAL EXCEPTION CONDITIONS:

                                     0018   154 ;

                                     0018   155 ;	FLAGS SET BY DRIVER:

                                     0018   156 ;

                                     0018   157 ;		WHEN EXCEPTION RETURN IS TAKEN:

                                     0018   158 ;

                                     0018   159 ;			R3 LBS = RETRIABLE HARDWARE ERROR

                                     0018   160 ;			R3 LBC = FATAL HARDWARE ERROR

                                     0018   161 ;

                                     0018   162 ;			R0 CONTAINS THE STATUS CODE REFLECTING THE TYPE OF ERROR

                                     0018   163 ;			DETECTED.

                                     0018   164 ;

                                     0018   165 ;	FLAGS SET BY UTILITY:

                                     0018   166 ;

                                     0018   167 ;		R3 LBC = TRANSFER OF ONE SECTOR COMPLETED

                                     0018   168 ;

DXPDRIVER       - STAR CONSOLE FLOPPY DISK DRIVER                21-AUG-1978 20:52:27   VAX-11 MACRO X0.3-11               Page   4

00.1            START I/O OPERATION                                                                                              (1)



                                     0018   169 ;		R3 LBS = PERFORM NORMAL DRIVER FUNCTION

                                     0018   170 ;

                                     0018   171 ;

                                     0018   172 ; INPUTS:

                                     0018   173 ;

                                     0018   174 ;	R3 = ADDRESS OF I/O PACKET.

                                     0018   175 ;	R5 = ADDRESS OF DEVICE UNIT CONTROL BLOCK

                                     0018   176 ;

                                     0018   177 ; OUTPUTS:

                                     0018   178 ;

                                     0018   179 ;	********OUTPUTS********

                                     0018   180 ;-

                                     0018   181  

                                     0018   182 	.ENABL	LSB

                                     0018   183  

                                     0018   184 STARTIO:				;

                 00000000'EF     16  0018   185 	JSB	DX$STARTIO		;CALL UTILITY ROUTINE TO SETUP PHYSICAL ADDRESS

                                     001E   186 RESTART:				;

            53       0800 8F     3C  001E   187 	MOVZWL	#F_READSECTOR,R3	;ASSUME READ PHYSICAL SECTOR

         5A A5            03     E1  0023   188 	BBC	#UCB$V_DX_WRITE,UCB$W_DEVSTS(R5),20$ ;BRANCH IF READ

                          03         0027       

            53            01     80  0028   189 	ADDB2	#<F_WRITESECTOR-F_READSECTOR>,R3 ;CONVERT FUNCTION CODE TO WRITE SECTOR

                                     002B   190 20$:					;

                          64     10  002B   191 	BSBB	DXPOUT			;SEND COMMAND TO FLOPPY

            53       008C C5     9A  002D   192 	MOVZBL	UCB$L_MEDIA(R5),R3	;GET SECTOR NUMBER

                          5D     10  0032   193 	BSBB	DXPOUT			;OUTPUT SECTOR

            53       008E C5     9A  0034   194 	MOVZBL	UCB$L_MEDIA+2(R5),R3	;GET CYLINDER NUMBER

                          56     10  0039   195 	BSBB	DXPOUT			;SEND CYLINDER NUMBER

         5A A5            03     E0  003B   196 	BBS	#UCB$V_DX_WRITE,UCB$W_DEVSTS(R5),DXPWRITE ;BRANCH IF WRITE

                          10         003F       

                          29     10  0040   197 	BSBB	DXPINP			;WAIT FOR FLOPPY TO FINISH

                                     0042   198 30$:					;

                          27     10  0042   199 	BSBB	DXPINP			;WAIT FOR INPUT DATA

       009C D5            53     90  0044   200 	MOVB	R3,@UCB$L_DX_BFPNT(R5)	;STORE BYTE

                          9E     16  0049   201 	JSB	@(SP)+			;RETURN TO CALLER

            F4            53     E8  004B   202 	BLBS	R3,30$			;IF LBS CONTINUE TRANSFER

                          0E     11  004E   203 	BRB	40$			;NO MORE DATA

                                     0050   204  

                                     0050   205 ;+

                                     0050   206 ; DXPWRITE - OUTPUT TO CONSOLE FLOPPY

                                     0050   207 ;

                                     0050   208 ; THIS ROUTINE IS ENTERED TO WRITE ONE BYTE OF DATA ON THE CONSOLE FLOPPY.

                                     0050   209 ; IF AN ERROR OCCURS, A COROUTINE CALL IS MADE TO THE EXCEPTION ENTRY POINT

                                     0050   210 ; SPECIFIED BY CALLER'S CALLER. THE STACK CONTAINS THE RETURN TO IN-LINE DRIVER

                                     0050   211 ; CODE. IN THIS CASE, R3 INDICATES ERROR SEVERITY AS FOLLOWS:

                                     0050   212 ;

                                     0050   213 ;	R3 LBS = RETRIABLE ERROR

                                     0050   214 ;	R3 LBC = FATAL ERROR

                                     0050   215 ;

                                     0050   216 ; THE ERROR CODE IS IN R0.

                                     0050   217 ;

                                     0050   218 ; IF NO ERROR OCCURS, A RETURN TO THE DRIVER IS EXECUTED.

                                     0050   219 ;

                                     0050   220 ; INPUTS:

                                     0050   221 ;

                                     0050   222 ;	R3 LBS = REQUEST TO WRITE ONE BYTE OF DATA

                                     0050   223 ;	R5 = ADDRESS OF UCB

DXPDRIVER       - STAR CONSOLE FLOPPY DISK DRIVER                21-AUG-1978 20:52:27   VAX-11 MACRO X0.3-11               Page   5

00.1            START I/O OPERATION                                                                                              (1)



                                     0050   224 ;	(SP) = RETURN ADDRESS

                                     0050   225 ;

                                     0050   226 ;	R3 LBC = SECTOR TRANSFER COMPLETE

                                     0050   227 ;

                                     0050   228 ; OUTPUTS:

                                     0050   229 ;

                                     0050   230 ;	A RETURN TO INLINE CODE IS EXECUTED FOR A SUCCESFUL TRANSFER.

                                     0050   231 ;	IF SECTOR TRANSFER IS COMPLETE, A FORK IS EXECUTED BEFORE CALLING

                                     0050   232 ;	THE CALLER.

                                     0050   233 ;

                                     0050   234 ;	A RETURN TO THE EXCEPTION ENTRY POINT IS TAKEN IF AN ERROR OCCURS.

                                     0050   235 ;	IN THIS CASE, R3 INDICATES THE SEVERITY AND R0 CONTAINS THE ERROR

                                     0050   236 ;	CODE.

                                     0050   237 ;

                                     0050   238 ;-

                                     0050   239  

                                     0050   240 DXPWRITE:				;

            53       009C D5     9A  0050   241 	MOVZBL	@UCB$L_DX_BFPNT(R5),R3	;GET OUTPUT DATA

                          3A     10  0055   242 	BSBB	DXPOUT			;SEND TO DEVICE

                          9E     16  0057   243 	JSB	@(SP)+			;CALL THE CALLER

            F4            53     E8  0059   244 	BLBS	R3,DXPWRITE		;IF LBS WRITE ANOTHER BYTE

                          0D     10  005C   245 	BSBB	DXPINP			;WAIT FOR FLOPPY FUNCTION COMPLETE

                                     005E   246 40$:					;

            54            8E     D0  005E   247 	MOVL	(SP)+,R4		;RETRIEVE RETURN ADDRESS

                                     0061   248 	IOFORK				;DROP TO FORK LEVEL

                          64     16  0067   249 	JSB	(R4)			;CALL THE CALLER

                          B3     11  0069   250 	BRB	RESTART			;GO AGAIN

                                     006B   251  

                                     006B   252 	.DSABL	LSB

                                     006B   253  

                                     006B   254 ;+

                                     006B   255 ; DXPINP - WAIT FOR FLOPPY INPUT INTERRUPT

                                     006B   256 ;

                                     006B   257 ; THIS ROUTINE IS ENTERED VIA A BSB TO WAIT FOR AN INPUT INTERRUPT.

                                     006B   258 ; IT ENTERS COMMON CODE TO EXECUTE A WAIT FOR INTERRUPT. ON RECEIPT

                                     006B   259 ; OF THE INTERRUPT A RETURN TO THE CALLER IS EXECUTED AT ISR LEVEL.

                                     006B   260 ;

                                     006B   261 ; INPUTS:

                                     006B   262 ;

                                     006B   263 ;	(SP) = RETURN TO CALLER

                                     006B   264 ;	4(SP) = RETURN TO CALLERS CALLER (DXUTILITY CO-ROUTINE)

                                     006B   265 ;	8(SP) = RETURN TO EXECUTIVE

                                     006B   266 ;

                                     006B   267 ; OUTPUTS:

                                     006B   268 ;

                                     006B   269 ;	R3 = INPUT DATA

                                     006B   270 ;	R5 = UCB ADDRESS

                                     006B   271 ;

                                     006B   272 ;	(SP) = RETURN TO CO-ROUTINE IN DXUTILITY

                                     006B   273 ;

                                     006B   274 ;-

                                     006B   275  

                                     006B   276 	.ENABL	LSB

                                     006B   277  

                                     006B   278 DXPINP:					;

                                     006B   279 	DSBINT	#31			;DISABLE ALL INTERRUPTS

         58 A5            05     E0  0071   280 	BBS	#UCB$V_POWER,UCB$W_STS(R5),5$ ;BRANCH IF POWER FAILURE

DXPDRIVER       - STAR CONSOLE FLOPPY DISK DRIVER                21-AUG-1978 20:52:27   VAX-11 MACRO X0.3-11               Page   6

00.1            START I/O OPERATION                                                                                              (1)



                          26         0075       

                          1C     BA  0076   281 	POPR	#^M<R2,R3,R4>		;GET IPL IN R2, RETURNS IN R3, R4

                          52     DD  0078   282 	PUSHL	R2			;RESTORE IPL TO TOP OF STACK

                                     007A   283 	WFIKPCH	40$,#10			;WAIT FOR INTERRUPT

         58 A5            07     E4  0084   284 	BBSC	#UCB$V_INTTYPE,UCB$W_STS(R5),25$ ;IF SET, RECEIVED INPUT INT.

                          36         0088       

         58 A5            01     E3  0089   285 	BBCS	#UCB$V_INT,UCB$W_STS(R5),2$	;ENABLE INTERRUPTS, DISMISS INTERRUPT

                          00         008D       

                                     008E   286 2$:						;

                          00B5   31  008E   287 	BRW	UNSOLNT				;

                                     0091   288  

                                     0091   289 ;+

                                     0091   290 ; DXPOUT - PERFORM OUTPUT TO THE CONSOLE FLOPPY DISK

                                     0091   291 ;

                                     0091   292 ; THIS ROUTINE IS ENTERED VIA A BSB TO SEND DATA TO THE CONSOLE FLOPPY.

                                     0091   293 ; IT ENTERS THE COMMON CONSOLE INTERRUPT HANDLER TO TRANSFER THE DATA.

                                     0091   294 ;

                                     0091   295 ; INPUTS:

                                     0091   296 ;

                                     0091   297 ;	R3 = FLOPPY DATA (BIT 11 MUST BE SET FOR A FLOPPY CONSOLE COMMAND).

                                     0091   298 ;	R5 = ADDRESS OF UCB

                                     0091   299 ;	(SP) = RETURN TO CALLER

                                     0091   300 ;	4(SP) = RETURN TO CALLERS CALLER (DXUTILITY CO-ROUTINE)

                                     0091   301 ;	8(SP) = RETURN TO EXECUTIVE

                                     0091   302 ;

                                     0091   303 ; OUTPUTS:

                                     0091   304 ;

                                     0091   305 ;	R5 = UCB ADDRESS

                                     0091   306 ;

                                     0091   307 ;	(SP) = RETURN TO CO-ROUTINE IN DXUTILITY

                                     0091   308 ;

                                     0091   309 ;-

                                     0091   310  

                                     0091   311 DXPOUT:					;

                                     0091   312 	DSBINT	#31			;DISABLE ALL DEVICE INTERRUPTS

         58 A5            05     E1  0097   313 	BBC	#UCB$V_POWER,UCB$W_STS(R5),10$ ;BRANCH IF NO POWER FAILURE

                          0A         009B       

                                     009C   314 5$:					;

                                     009C   315 	ENBINT				;ENABLE INTERRUPTS

                          18     BA  009F   316 	POPR	#^M<R3,R4>		;REMOVE RETURNS FROM STACK

                          53     D4  00A1   317 	CLRL	R3			;SET TO FLAG NONFATAL ERROR

                          0088   31  00A3   318 	BRW	50$			;

                                     00A6   319 10$:					;

                 00000000'GF     16  00A6   320 	JSB	G^CON$STARTIO		;STARTUP THE DEVICE

                                     00AC   321 20$:					;

                          1C     BA  00AC   322 	POPR	#^M<R2,R3,R4>		;GET IPL IN R2, RETURNS IN R3, R4

                          52     DD  00AE   323 	PUSHL	R2			;RESTORE IPL TO TOP OF STACK

                                     00B0   324 	WFIKPCH	40$,#10			;WAIT FOR INTERRUPT, KEEP CHANNEL

         58 A5            07     E5  00BA   325 	BBCC	#UCB$V_INTTYPE,UCB$W_STS(R5),30$ ;IF CLEAR, RECEIVED OUTPUT INTERRUPT

                          15         00BE       

                                     00BF   326 25$:					;

       00A0 C5            53     D0  00BF   327 	MOVL	R3,UCB$L_DX_RXDB(R5)	;SAVE CONTENTS OF RXDB

            04            08     EF  00C4   328 	EXTZV	#8,#4,R3,-(SP)		;EXTRACT COMMAND FIELD

            7E            53         00C7       

            02            8E     D1  00C9   329 	CMPL	(SP)+,#<DXP_RXDB_K_FCMP@-8>;TEST COMPLETION CODE

                          06     19  00CC   330 	BLSS	30$			;IF LSS PROCESS NEXT CHARACTER

                          26     12  00CE   331 	BNEQ	DXPERR			;IF NEQ, ERROR

DXPDRIVER       - STAR CONSOLE FLOPPY DISK DRIVER                21-AUG-1978 20:52:27   VAX-11 MACRO X0.3-11               Page   7

00.1            START I/O OPERATION                                                                                              (1)



                          53     95  00D0   332 	TSTB	R3			;TEST STATUS

                          22     12  00D2   333 	BNEQ	DXPERR			;IF NEQ, EXCEPTION CONDITION

                                     00D4   334 30$:					;

                          54     DD  00D4   335 	PUSHL	R4			;SET RETURN TO CALLER

                       10 B5     17  00D6   336 	JMP	@UCB$L_FR3(R5)		;RETURN TO CALLER

                                     00D9   337 40$:					;

                                     00D9   338 	DSBINT	#31			;LOCKOUT ALL INTERRUPTS

         58 A5            05     E0  00DF   339 	BBS	#UCB$V_POWER,UCB$W_STS(R5),43$ ;DO NOT REINITIALIZE ON POWER FAIL

                          06         00E3       

                 00000000'GF     16  00E4   340 	JSB	G^CON$INITIAL		;INITIALIZE DEVICE AND OUTPUT QUEUE

                                     00EA   341 43$:					;

                                     00EA   342 	ENBINT				;ENABLE INTERRUPTS

                          53     D4  00ED   343 	CLRL	R3			;SET TO FLAG FATAL ERROR

            50       0000'8F     3C  00EF   344 	MOVZWL	#SS$_TIMEOUT,R0		;GET FINAL STATUS

                          3A     11  00F4   345 	BRB	60$			;

                                     00F6   346  

                                     00F6   347 ;+

                                     00F6   348 ; DXPERR - HARDWARE DEPENDANT ERROR PROCESSING

                                     00F6   349 ;

                                     00F6   350 ; THIS ROUTINE IS ENTERED WHENEVER AN ERROR INDICATION IS RECEIVED FROM

                                     00F6   351 ; THE FLOPPY INTERFACE. IF THE PROBLEM WAS NOT CAUSED BY DEVICE TIMEOUT

                                     00F6   352 ; OR POWER FAIL THEN THE DEVICE REGISTERS ARE SAVED AND A FORK IS EXE-

                                     00F6   353 ; CUTED TO PERFORM ERROR ANALYSES.

                                     00F6   354 ;

                                     00F6   355 ; IF THE ERROR IS CAUSED BY HARDWARE, THE SEVERITY (FATAL OR NON-FATAL)

                                     00F6   356 ; AND STANDARD ERROR CODE ARE SETUP.

                                     00F6   357 ;

                                     00F6   358 ; INPUTS:

                                     00F6   359 ;

                                     00F6   360 ;	R3 = CONTENTS OF RXDB (IF ENTRY IS FROM CONSOLE INTERRUPT DISPATCHER)

                                     00F6   361 ;	R4 = CO-ROUTINE ENTRY POINT

                                     00F6   362 ;	R5 = ADDRESS OF UCB

                                     00F6   363 ;

                                     00F6   364 ; OUTPUTS:

                                     00F6   365 ;

                                     00F6   366 ;	R0 CONTAINS ERROR CODE

                                     00F6   367 ;	R3 LSB = 1, RETRIABLE ERROR

                                     00F6   368 ;	R3 LSB = 0, FATAL ERROR

                                     00F6   369 ;

                                     00F6   370 ;-

                                     00F6   371  

                                     00F6   372 DXPERR:					;

                                     00F6   373 	IOFORK				;FORK

            50       0000'8F     3C  00FC   374 	MOVZWL	#SS$_CTRLERR,R0		;ASSUME CONTROLLER ERROR

            51            53     D0  0101   375 	MOVL	R3,R1			;COPY RXDB CONTENTS

                          53     D4  0104   376 	CLRL	R3			;ASSUME ERROR IS FATAL

            04            08     EF  0106   377 	EXTZV	#8,#4,R1,R2		;EXTRACT COMMAND FIELD

            52            51         0109       

            02            52     91  010B   378 	CMPB	R2,#<DXP_RXDB_K_FCMP@-8> ;FUNCTION COMPLETE?

                          0C     13  010E   379 	BEQL	45$			;IF EQL YES, CHECK ERRORS

            09            52     91  0110   380 	CMPB	R2,#<DXP_RXDB_K_CMD@-8>	;PROTOCOL ERROR?

                          1B     12  0113   381 	BNEQ	60$			;IF NEQ GARBAGE IN SELECT FIELD

            05            51     91  0115   382 	CMPB	R1,#DXP_RXDB_K_PRTC	;CHECK DATA BYTE

                          14     13  0118   383 	BEQL	50$			;IF EQL, PROTOCOL ERROR

                          14     11  011A   384 	BRB	60$			;ELSE GARBAGE IN DATA BYTE

                                     011C   385 45$:					;

            50       0000'8F     3C  011C   386 	MOVZWL	#SS$_PARITY,R0		;ASSUME DATA ERROR

DXPDRIVER       - STAR CONSOLE FLOPPY DISK DRIVER                21-AUG-1978 20:52:27   VAX-11 MACRO X0.3-11               Page   8

00.1            START I/O OPERATION                                                                                              (1)



                          51     95  0121   387 	TSTB	R1			;TEST FOR DATA ERROR

                          09     19  0123   388 	BLSS	50$			;IF LSS DATA ERROR

            50       0000'8F     3C  0125   389 	MOVZWL	#SS$_FORMAT,R0		;ASSUME READ DELETED DATA

            51            06     E0  012A   390 	BBS	#DXP_RXDB_V_DEL,R1,60$	;IF BIT SET, FATAL FORMAT ERROR

                          02         012D       

                                     012E   391 50$:					;

                          53     D6  012E   392 	INCL	R3			;NONFATAL ERROR

                                     0130   393 60$:					;

                 00000000'EF     16  0130   394 	JSB	DX$ERR			;CALL COMMON EXCEPTION CODE

                          FEE5   31  0136   395 	BRW	RESTART			;RESTART TRANSFER

                                     0139   396  

                                     0139   397 	.DSABL	LSB

                                     0139   398  

                                     0139   399 ;+

                                     0139   400 ; REGDUMP - CONSOLE FLOPPY REGISTER DUMP ROUTINE

                                     0139   401 ;

                                     0139   402 ; THIS ROUTINE IS ENTERED TO COPY THE CONSOLE FLOPPY STATUS REGISTER

                                     0139   403 ; CONTENTS (RXDB) TO THE SPECIFIED BUFFER. IT IS CALLED FROM THE DE-

                                     0139   404 ; VICE ERROR LOGGING ROUTINE AND FROM THE DIAGNOSTIC BUFFER FILL ROU-

                                     0139   405 ; TINE.

                                     0139   406 ;

                                     0139   407 ; INPUTS:

                                     0139   408 ;

                                     0139   409 ;	R0 = ADDRESS OF REGISTER SAVE BUFFER

                                     0139   410 ;	R5 = ADDRESS OF UCB

                                     0139   411 ;

                                     0139   412 ; OUTPUTS:

                                     0139   413 ;

                                     0139   414 ;	THE COPY OF RXDB RECORDED IN THE UCB IS SAVED IN THE SPECIFIED BUFFER.

                                     0139   415 ;

                                     0139   416 ;-

                                     0139   417  

                                     0139   418 REGDUMP:				;

            80            02     D0  0139   419 	MOVL	#2,(R0)+		;SET NUMBER OF DEVICE REGISTERS

            80       00A0 C5     D0  013C   420 	MOVL	UCB$L_DX_RXDB(R5),(R0)+	;COPY DEVICE REGISTER

            60       008C C5     D0  0141   421 	MOVL	UCB$L_MEDIA(R5),(R0)	;COPY LAST DISK ADDRESS

                                     0146   422 UNSOLNT:				;

                                 05  0146   423 	RSB				;

                                     0147   424 DXP_END:				;

                                     0147   425  

                                     0147   426 	.END

DXPDRIVER       - STAR CONSOLE FLOPPY DISK DRIVER                21-AUG-1978 20:52:27   VAX-11 MACRO X0.3-11               Page   9

SYMBOL TABLE                                                                                                                     (1)



ADP$B_NUMBER     0000000B            DPT$INITAB       0000001F R     03   EMB$C_DT       = 00000060            

ADP$B_TYPE       0000000A            DPT$K_LENGTH     00000022            EMB$C_HE       = 00000008            

ADP$C_MBAADPLEN  00000014            DPT$L_BLINK      00000004            EMB$C_LENGTH     00000004            

ADP$C_NUMDATAP = 00000010            DPT$L_FLINK      00000000            EMB$C_MC       = 00000002            

ADP$C_UBAADPLEN  00000070            DPT$M_NOUNLOAD = 00000004            EMB$C_NF       = 00000023            

ADP$K_MBAADPLEN  00000014            DPT$M_SUBCNTRL = 00000001            EMB$C_NM       = 0000002A            

ADP$K_UBAADPLEN  00000070            DPT$M_SVP      = 00000002            EMB$C_OM       = 00000029            

ADP$L_CRB        00000010            DPT$REINITAB     0000001F R     03   EMB$C_SA       = 00000005            

ADP$L_CSR        00000000            DPT$TAB          00000000 R     03   EMB$C_SBC      = 00000028            

ADP$L_DPQBL      00000018            DPT$T_NAME       00000016            EMB$C_SE       = 00000006            

ADP$L_DPQFL      00000014            DPT$V_NOUNLOAD = 00000002            EMB$C_SS       = 00000027            

ADP$L_INTD       00000064            DPT$V_SUBCNTRL = 00000000            EMB$C_TS       = 00000026            

ADP$L_LINK       00000004            DPT$V_SVP      = 00000001            EMB$C_TS_LENGTH  00000010            

ADP$L_MRQBL      00000020            DPT$W_INITTAB    00000010            EMB$C_UBC      = 00000070            

ADP$L_MRQFL      0000001C            DPT$W_REINITTAB  00000012            EMB$C_UI       = 00000061            

ADP$L_VECTOR     00000010            DPT$W_SIZE       00000008            EMB$C_VD       = 00000041            

ADP$W_ADPTYPE    0000000E            DPT$W_UCBSIZE    0000000E            EMB$C_VM       = 00000040            

ADP$W_DPBITMAP   00000024            DPT$W_UNLOAD     00000014            EMB$C_WS       = 00000024            

ADP$W_MRBITMAP   00000026            DX$ERR           ********   X   04   EMB$K_AW       = 00000007            

ADP$W_SIZE       00000008            DX$FUNCTABLE     ********   X   04   EMB$K_BE       = 00000004            

ADP$W_TR         0000000C            DX$STARTIO       ********   X   04   EMB$K_CR       = 00000025            

AT$_UBA          ********   X   03   DXP$DDT          00000000 RG    04   EMB$K_CS       = 00000020            

BIT...         = 00000008            DXP$DPT          00000000 RG    03   EMB$K_DE       = 00000001            

CON$INITIAL      ********   X   04   DXPERR           000000F6 R     04   EMB$K_DT       = 00000060            

CON$STARTIO      ********   X   04   DXPINP           0000006B R     04   EMB$K_HE       = 00000008            

CRB$B_MASK       0000000E            DXPOUT           00000091 R     04   EMB$K_LENGTH     00000004            

CRB$B_TT_ATTN    00000004            DXPWRITE         00000050 R     04   EMB$K_MC       = 00000002            

CRB$B_TT_EXPEC   00000005            DXP_END          00000147 R     04   EMB$K_NF       = 00000023            

CRB$B_TYPE       0000000A            DXP_M_CMD      = 00000800            EMB$K_NM       = 0000002A            

CRB$C_LENGTH     00000038            DXP_RXDB_K_CMD = 00000900            EMB$K_OM       = 00000029            

CRB$K_LENGTH     00000038            DXP_RXDB_K_FCMP= 00000200            EMB$K_SA       = 00000005            

CRB$L_INTD       00000014            DXP_RXDB_K_PRTC= 00000005            EMB$K_SBC      = 00000028            

CRB$L_INTD2      00000038            DXP_RXDB_M_CRC = 00000001            EMB$K_SE       = 00000006            

CRB$L_LINK       00000010            DXP_RXDB_M_DEL = 00000040            EMB$K_SS       = 00000027            

CRB$L_TT_DIAL    00000000            DXP_RXDB_M_ERR = 00000080            EMB$K_TS       = 00000026            

CRB$L_WQBL       00000004            DXP_RXDB_M_INI = 00000004            EMB$K_TS_LENGTH  00000010            

CRB$L_WQFL       00000000            DXP_RXDB_M_PAR = 00000002            EMB$K_UBC      = 00000070            

CRB$M_BSY      = 00000001            DXP_RXDB_V_CRC = 00000000            EMB$K_UI       = 00000061            

CRB$V_BSY      = 00000000            DXP_RXDB_V_DEL = 00000006            EMB$K_VD       = 00000041            

CRB$W_REFC       0000000C            DXP_RXDB_V_ERR = 00000007            EMB$K_VM       = 00000040            

CRB$W_SIZE       00000008            DXP_RXDB_V_INI = 00000002            EMB$K_WS       = 00000024            

DDB$B_ACPCLASS   00000013            DXP_RXDB_V_PAR = 00000001            EMB$L_DV_CHAR    00000036            

DDB$B_TYPE       0000000A            DYN$C_DPT        ********   X   03   EMB$L_DV_MEDIA   00000026            

DDB$C_LENGTH     00000034            EMB$B_BUFIND     00000002            EMB$L_DV_OPCNT   0000002E            

DDB$K_LENGTH     00000034            EMB$B_DEVCLS     00000005            EMB$L_DV_OWNUIC  00000032            

DDB$L_ACPD       00000010            EMB$B_DEVTYP     00000004            EMB$L_DV_REGSAV  0000004E            

DDB$L_DDT        0000000C            EMB$B_DV_CLASS   0000001C            EMB$L_DV_RQPID   0000001E            

DDB$L_LINK       00000000            EMB$B_DV_ERTCNT  00000010            EMB$Q_DV_IOSB    00000012            

DDB$L_UCB        00000004            EMB$B_DV_ERTMAX  00000011            EMB$Q_DV_TIME    00000006            

DDB$T_DRVNAME    00000024            EMB$B_DV_SLAVE   0000003A            EMB$Q_HD_TIME    00000006            

DDB$T_NAME       00000014            EMB$B_DV_TYPE    0000001D            EMB$Q_TS_TIME    00000006            

DDB$W_SIZE       00000008            EMB$B_VALID      00000003            EMB$T_DV_NAME    0000003E            

DPT$B_ADPTYPE    0000000C            EMB$C_AW       = 00000007            EMB$W_DV_BCNT    00000024            

DPT$B_FLAGS      0000000D            EMB$C_BE       = 00000004            EMB$W_DV_BOFF    00000022            

DPT$B_REFC       0000000B            EMB$C_CR       = 00000025            EMB$W_DV_DEVSTS  0000001A            

DPT$B_TYPE       0000000A            EMB$C_CS       = 00000020            EMB$W_DV_ENTRY   00000004            

DPT$C_LENGTH     00000022            EMB$C_DE       = 00000001            EMB$W_DV_ERRCNT  0000002C            

DXPDRIVER       - STAR CONSOLE FLOPPY DISK DRIVER                21-AUG-1978 20:52:27   VAX-11 MACRO X0.3-11               Page  10

SYMBOL TABLE                                                                                                                     (1)



EMB$W_DV_ERRSEQ  0000000E            IO$M_SHUTDOWN  = 00000080            IO$_NOP        = 00000000            

EMB$W_DV_FUNC    0000003C            IO$M_STARTUP   = 00000040            IO$_OFFSET     = 00000006            

EMB$W_DV_UNIT    0000002A            IO$M_SYNCH     = 00000200            IO$_PACKACK    = 00000008            

EMB$W_HD_ENTRY   00000004            IO$M_TIMED     = 00000080            IO$_PHYSICAL   = 0000001F            

EMB$W_HD_ERRSEQ  0000000E            IO$M_TRMNOECHO = 00001000            IO$_READHEAD   = 0000000E            

EMB$W_SIZE       00000000            IO$M_WRTATTN   = 00000100            IO$_READLBLK   = 00000021            

EMB$W_TS_ENTRY   00000004            IO$S_FCODE     = 00000006            IO$_READPBLK   = 0000000C            

EMB$W_TS_ERRSEQ  0000000E            IO$V_ABORT     = 00000008            IO$_READPRESET = 00000019            

EXE$IOFORK       ********   X   04   IO$V_ACCESS    = 00000006            IO$_READPROMPT = 00000037            

F_CANCEL       = 00000804            IO$V_ATTNAST   = 00000008            IO$_READTRACKD = 00000010            

F_READSECTOR   = 00000800            IO$V_BINARY    = 00000006            IO$_READVBLK   = 00000031            

F_READSTATUS   = 00000802            IO$V_CANCTRLO  = 00000006            IO$_RECAL      = 00000003            

F_WRITEDELDATA = 00000803            IO$V_COMMOD    = 00000006            IO$_RELEASE    = 00000005            

F_WRITESECTOR  = 00000801            IO$V_CREATE    = 00000007            IO$_RETCENTER  = 00000007            

GBL...         = 00000000            IO$V_CTRLCAST  = 00000008            IO$_REWIND     = 00000024            

IDB$B_TYPE       0000000A            IO$V_CTRLYAST  = 00000007            IO$_REWINDOFF  = 00000022            

IDB$B_UNITS      0000000B            IO$V_CVTLOW    = 00000008            IO$_SEARCH     = 00000009            

IDB$C_LENGTH     00000030            IO$V_DATACHECK = 0000000E            IO$_SEEK       = 00000002            

IDB$K_LENGTH     00000030            IO$V_DELETE    = 00000008            IO$_SENSECHAR  = 0000001B            

IDB$L_ADP        0000000C            IO$V_DMOUNT    = 0000000A            IO$_SENSEMODE  = 00000027            

IDB$L_CSR        00000000            IO$V_DSABLMBX  = 0000000A            IO$_SETCHAR    = 0000001A            

IDB$L_OWNER      00000004            IO$V_ENABLMBX  = 00000007            IO$_SETMODE    = 00000023            

IDB$L_UCBLST     00000010            IO$V_FCODE     = 00000000            IO$_SKIPFILE   = 00000025            

IDB$W_SIZE       00000008            IO$V_HANGUP    = 00000009            IO$_SKIPRECORD = 00000026            

IO$M_ABORT     = 00000100            IO$V_INHERLOG  = 0000000B            IO$_SPACEFILE  = 00000002            

IO$M_ACCESS    = 00000040            IO$V_INHEXTGAP = 0000000C            IO$_SPACERECORD= 00000009            

IO$M_ATTNAST   = 00000100            IO$V_INHRETRY  = 0000000F            IO$_STARTSPNDL = 00000019            

IO$M_BINARY    = 00000040            IO$V_INHSEEK   = 0000000C            IO$_UNLOAD     = 00000001            

IO$M_CANCTRLO  = 00000040            IO$V_INTERRUPT = 00000006            IO$_VIRTUAL    = 0000003F            

IO$M_COMMOD    = 00000040            IO$V_INTSKIP   = 00000008            IO$_WRITECHECK = 0000000A            

IO$M_CREATE    = 00000080            IO$V_MOUNT     = 00000009            IO$_WRITECHECKH= 00000018            

IO$M_CTRLCAST  = 00000100            IO$V_NOECHO    = 00000006            IO$_WRITEHEAD  = 0000000D            

IO$M_CTRLYAST  = 00000080            IO$V_NOFILTR   = 00000009            IO$_WRITELBLK  = 00000020            

IO$M_CVTLOW    = 00000100            IO$V_NOFORMAT  = 00000008            IO$_WRITEMARK  = 0000001C            

IO$M_DATACHECK = 00004000            IO$V_NOW       = 00000006            IO$_WRITEOF    = 00000028            

IO$M_DELETE    = 00000100            IO$V_NOWAIT    = 00000007            IO$_WRITEPBLK  = 0000000B            

IO$M_DMOUNT    = 00000400            IO$V_PACKED    = 00000007            IO$_WRITETRACKD= 0000000F            

IO$M_DSABLMBX  = 00000400            IO$V_PURGE     = 0000000B            IO$_WRITEVBLK  = 00000030            

IO$M_ENABLMBX  = 00000080            IO$V_READATTN  = 00000007            IOC$WFIKPCH      ********   X   04   

IO$M_FCODE     = 0000003F            IO$V_REVERSE   = 00000006            IRP$B_CARCON     00000038            

IO$M_HANGUP    = 00000200            IO$V_SHUTDOWN  = 00000007            IRP$B_EFN        00000022            

IO$M_INHERLOG  = 00000800            IO$V_STARTUP   = 00000006            IRP$B_PRI        00000023            

IO$M_INHEXTGAP = 00001000            IO$V_SYNCH     = 00000009            IRP$B_RMOD       0000000B            

IO$M_INHRETRY  = 00008000            IO$V_TIMED     = 00000007            IRP$B_TYPE       0000000A            

IO$M_INHSEEK   = 00001000            IO$V_TRMNOECHO = 0000000C            IRP$C_LENGTH     0000004C            

IO$M_INTERRUPT = 00000040            IO$V_WRTATTN   = 00000008            IRP$K_LENGTH     0000004C            

IO$M_INTSKIP   = 00000100            IO$_ACCESS     = 00000032            IRP$L_AST        00000010            

IO$M_MOUNT     = 00000200            IO$_ACPCONTROL = 00000038            IRP$L_ASTPRM     00000014            

IO$M_NOECHO    = 00000040            IO$_CREATE     = 00000033            IRP$L_DIAGBUF    00000044            

IO$M_NOFILTR   = 00000200            IO$_DEACCESS   = 00000034            IRP$L_IOQBL      00000004            

IO$M_NOFORMAT  = 00000100            IO$_DELETE     = 00000035            IRP$L_IOQFL      00000000            

IO$M_NOW       = 00000040            IO$_DIAGNOSE   = 0000001D            IRP$L_IOSB       00000024            

IO$M_NOWAIT    = 00000080            IO$_DRVCLR     = 00000004            IRP$L_IOST1      00000034            

IO$M_PACKED    = 00000080            IO$_ERASETAPE  = 00000006            IRP$L_IOST2      00000038            

IO$M_PURGE     = 00000800            IO$_LOGICAL    = 0000002F            IRP$L_MEDIA      00000034            

IO$M_READATTN  = 00000080            IO$_MODIFY     = 00000036            IRP$L_PID        0000000C            

IO$M_REVERSE   = 00000040            IO$_MOUNT      = 00000039            IRP$L_SEGVBN     00000040            

DXPDRIVER       - STAR CONSOLE FLOPPY DISK DRIVER                21-AUG-1978 20:52:27   VAX-11 MACRO X0.3-11               Page  11

SYMBOL TABLE                                                                                                                     (1)



IRP$L_SEQNUM     00000048            UBA$L_FMER       00000010            UBA$V_BRRVR_IVA= 00000000            

IRP$L_SVAPTE     0000002C            UBA$L_FUBAR      00000014            UBA$V_CR_ARLVL = 00000007            

IRP$L_TT_TERM    00000038            UBA$L_MAP        00000800            UBA$V_CR_BRIE  = 00000005            

IRP$L_UCB        0000001C            UBA$L_SR         00000008            UBA$V_CR_CNFIE = 00000002            

IRP$L_WIND       00000018            UBA$M_BRRVR_AIR= 80000000            UBA$V_CR_IFSIE = 00000006            

IRP$M_BUFIO    = 00000001            UBA$M_CR_ARLVL = 00000180            UBA$V_CR_INIT  = 00000000            

IRP$M_CHAINED  = 00000020            UBA$M_CR_BRIE  = 00000020            UBA$V_CR_MRDSB = 0000001A            

IRP$M_COMPLX   = 00000008            UBA$M_CR_CNFIE = 00000004            UBA$V_CR_SUEFIE= 00000003            

IRP$M_DIAGBUF  = 00000080            UBA$M_CR_IFSIE = 00000040            UBA$V_CR_UBPF  = 00000001            

IRP$M_FUNC     = 00000002            UBA$M_CR_INIT  = 00000001            UBA$V_CR_USEFIE= 00000004            

IRP$M_MBXIO    = 00000400            UBA$M_CR_SUEFIE= 00000008            UBA$V_CSR_ADCOD= 00000000            

IRP$M_PAGIO    = 00000004            UBA$M_CR_UBPF  = 00000002            UBA$V_CSR_IS   = 0000001C            

IRP$M_PHYSIO   = 00000100            UBA$M_CR_USEFIE= 00000010            UBA$V_CSR_MT   = 0000001B            

IRP$M_PRIVIO   = 00000200            UBA$M_CSR_IS   = 10000000            UBA$V_CSR_OT   = 00000015            

IRP$M_SWAPIO   = 00000040            UBA$M_CSR_MT   = 08000000            UBA$V_CSR_PD   = 00000017            

IRP$M_VIRTUAL  = 00000010            UBA$M_CSR_OT   = 00200000            UBA$V_CSR_PE   = 0000001F            

IRP$Q_NT_PRVMSK  0000003C            UBA$M_CSR_PD   = 00800000            UBA$V_CSR_PU   = 00000016            

IRP$S_FCODE    = 00000006            UBA$M_CSR_PE   = 80000000            UBA$V_CSR_UBIC = 00000010            

IRP$S_FMOD     = 0000000A            UBA$M_CSR_PU   = 00400000            UBA$V_CSR_UBIIP= 00000012            

IRP$S_MODE     = 00000002            UBA$M_CSR_UBIC = 00010000            UBA$V_CSR_UBPDN= 00000011            

IRP$V_BUFIO    = 00000000            UBA$M_CSR_UBIIP= 00040000            UBA$V_CSR_URD  = 0000001D            

IRP$V_CHAINED  = 00000005            UBA$M_CSR_UBPDN= 00020000            UBA$V_CSR_WS   = 0000001E            

IRP$V_COMPLX   = 00000003            UBA$M_CSR_URD  = 20000000            UBA$V_CSR_XMFLT= 0000001A            

IRP$V_DIAGBUF  = 00000007            UBA$M_CSR_WS   = 40000000            UBA$V_DPR_ADDR = 00000000            

IRP$V_FCODE    = 00000000            UBA$M_CSR_XMFLT= 04000000            UBA$V_DPR_BNE  = 0000001F            

IRP$V_FMOD     = 00000006            UBA$M_DPR_BNE  = 80000000            UBA$V_DPR_DPF  = 0000001D            

IRP$V_FUNC     = 00000001            UBA$M_DPR_DPF  = 20000000            UBA$V_DPR_STATE= 00000010            

IRP$V_MBXIO    = 0000000A            UBA$M_DPR_XMTER= 40000000            UBA$V_DPR_XMTER= 0000001E            

IRP$V_MODE     = 00000000            UBA$M_MAP_BO   = 02000000            UBA$V_FMER_MRN = 00000000            

IRP$V_PAGIO    = 00000002            UBA$M_MAP_VALID= 80000000            UBA$V_FUBAR_ADR= 00000000            

IRP$V_PHYSIO   = 00000008            UBA$M_SR_BRID  = 00000800            UBA$V_MAP_ADDR = 00000000            

IRP$V_PRIVIO   = 00000009            UBA$M_SR_BRSVF = 10000000            UBA$V_MAP_BO   = 00000019            

IRP$V_SWAPIO   = 00000006            UBA$M_SR_CRD   = 00000100            UBA$V_MAP_DPD  = 00000015            

IRP$V_VIRTUAL  = 00000004            UBA$M_SR_CXTER = 00000080            UBA$V_MAP_VALID= 0000001F            

IRP$W_ABCNT      0000003C            UBA$M_SR_CXTMO = 00000040            UBA$V_SR_BRID  = 0000000B            

IRP$W_BCNT       00000032            UBA$M_SR_DPPE  = 00000020            UBA$V_SR_BRRVF = 00000018            

IRP$W_BOFF       00000030            UBA$M_SR_IVMR  = 00000010            UBA$V_SR_BRSVF = 0000001C            

IRP$W_CHAN       00000028            UBA$M_SR_LER   = 00000004            UBA$V_SR_CRD   = 00000008            

IRP$W_FUNC       00000020            UBA$M_SR_MRPE  = 00000008            UBA$V_SR_CXTER = 00000007            

IRP$W_OBCNT      0000003E            UBA$M_SR_RDS   = 00000200            UBA$V_SR_CXTMO = 00000006            

IRP$W_SIZE       00000008            UBA$M_SR_RDTO  = 00000400            UBA$V_SR_DPPE  = 00000005            

IRP$W_STS        0000002A            UBA$M_SR_RIE   = 20000000            UBA$V_SR_IVMR  = 00000004            

IRP$W_TT_PRMPT   0000003C            UBA$M_SR_SSYNC = 00000001            UBA$V_SR_LER   = 00000002            

PR$_IPL          ********   X   04   UBA$M_SR_UBIFS = 40000000            UBA$V_SR_MRPE  = 00000003            

REGDUMP          00000139 R     04   UBA$M_SR_UBSTO = 00000002            UBA$V_SR_RDS   = 00000009            

RESTART          0000001E R     04   UBA$S_BRRVR_IVA= 00000010            UBA$V_SR_RDTO  = 0000000A            

SS$_CTRLERR      ********   X   04   UBA$S_CR_ARLVL = 00000002            UBA$V_SR_RIE   = 0000001D            

SS$_FORMAT       ********   X   04   UBA$S_CR_MRDSB = 00000005            UBA$V_SR_SSYNC = 00000000            

SS$_PARITY       ********   X   04   UBA$S_CSR_ADCOD= 00000008            UBA$V_SR_UBIFS = 0000001E            

SS$_TIMEOUT      ********   X   04   UBA$S_DPR_ADDR = 00000010            UBA$V_SR_UBSTO = 00000001            

STARTIO          00000018 R     04   UBA$S_DPR_STATE= 00000008            UCB$B_AMOD       00000053            

UBA$L_BRRVR      00000030            UBA$S_FMER_MRN = 00000009            UCB$B_CEX        00000077            

UBA$L_BRSVR      00000020            UBA$S_FUBAR_ADR= 00000012            UCB$B_CM1        0000004A            

UBA$L_CR         00000004            UBA$S_MAP_ADDR = 00000015            UCB$B_CM2        0000004B            

UBA$L_CSR        00000000            UBA$S_MAP_DPD  = 00000004            UCB$B_DEVCLASS   00000038            

UBA$L_DCR        0000000C            UBA$S_SR_BRRVF = 00000004            UCB$B_DEVTYPE    00000039            

UBA$L_DPR        00000040            UBA$V_BRRVR_AIR= 0000001F            UCB$B_DIPL       00000052            

DXPDRIVER       - STAR CONSOLE FLOPPY DISK DRIVER                21-AUG-1978 20:52:27   VAX-11 MACRO X0.3-11               Page  12

SYMBOL TABLE                                                                                                                     (1)



UCB$B_DX_SCTCNT  000000A6            UCB$L_VCB        00000030            UCB$V_TT_NOTIF = 00000002            

UCB$B_ERTCNT     00000070            UCB$M_BACKP    = 00000020            UCB$V_TT_TIMO  = 00000001            

UCB$B_ERTMAX     00000071            UCB$M_BSY      = 00000100            UCB$V_UNLOAD   = 0000000C            

UCB$B_ESCAPE     0000004B            UCB$M_CANCEL   = 00000008            UCB$V_VALID    = 0000000B            

UCB$B_FEX        00000076            UCB$M_DEADMO   = 00000400            UCB$W_BCNT       0000006E            

UCB$B_FIPL       0000000B            UCB$M_DELMBX   = 00000002            UCB$W_BCR        00000096            

UCB$B_LOCSRV     0000003C            UCB$M_DIAGBUF  = 00000002            UCB$W_BOFF       0000006C            

UCB$B_OFFNDX     00000094            UCB$M_DX_WRITE = 00000008            UCB$W_BUFQUO     00000018            

UCB$B_OFFRTC     00000095            UCB$M_ECC      = 00000001            UCB$W_BYTESTOGO  0000003E            

UCB$B_REMSRV     0000003D            UCB$M_ERLOGIP  = 00000004            UCB$W_CHARGE     0000004A            

UCB$B_SECTORS    0000003C            UCB$M_INT      = 00000002            UCB$W_CYLINDERS  0000003E            

UCB$B_SLAVE      00000074            UCB$M_INTTYPE  = 00000080            UCB$W_DA         0000008C            

UCB$B_SPR        00000075            UCB$M_JOB      = 00000001            UCB$W_DC         0000008E            

UCB$B_STATE      00000052            UCB$M_MOUNTING = 00000200            UCB$W_DEVBUFSIZ  0000003A            

UCB$B_TRACKS     0000003D            UCB$M_NOCNVRT  = 00000004            UCB$W_DEVSTS     0000005A            

UCB$B_TYPE       0000000A            UCB$M_NT_BFROVF= 00000004            UCB$W_DIRSEQ     00000088            

UCB$B_VERTSZ     0000003F            UCB$M_NT_BREAK = 00000020            UCB$W_DSTADDR    00000018            

UCB$C_LENGTH     00000074            UCB$M_NT_NAME  = 00000010            UCB$W_DX_BCR     000000A4            

UCB$C_LOGLNK   = 00000001            UCB$M_ONLINE   = 00000010            UCB$W_EC1        00000090            

UCB$K_LENGTH     00000074            UCB$M_POWER    = 00000020            UCB$W_EC2        00000092            

UCB$L_AMB        00000054            UCB$M_PRMMBX   = 00000001            UCB$W_ERRCNT     00000072            

UCB$L_ASTQBL     00000010            UCB$M_TIM      = 00000001            UCB$W_FUNC       0000007E            

UCB$L_ASTQFL     0000000C            UCB$M_TIMOUT   = 00000040            UCB$W_MB_SEED    FFFFFFFC            

UCB$L_CPID       0000005C            UCB$M_TT_NOTIF = 00000004            UCB$W_MSGCNT     00000016            

UCB$L_CRB        00000020            UCB$M_TT_TIMO  = 00000002            UCB$W_MSGMAX     00000014            

UCB$L_DDB        00000024            UCB$M_UNLOAD   = 00001000            UCB$W_NT_CHAN    0000007C            

UCB$L_DEVCHAR    00000034            UCB$M_VALID    = 00000800            UCB$W_OFFSET     0000008A            

UCB$L_DEVDEPEND  0000003C            UCB$S_LNKPRI   = 00000002            UCB$W_REFC       00000050            

UCB$L_DPC        00000080            UCB$S_LTYPE    = 00000002            UCB$W_SIZE       00000008            

UCB$L_DUETIM     0000005C            UCB$T_PARTNER    0000000C            UCB$W_SRCADDR    0000001A            

UCB$L_DX_BFPNT   0000009C            UCB$V_BACKP    = 00000005            UCB$W_STS        00000058            

UCB$L_DX_BUF     00000098            UCB$V_BSY      = 00000008            UCB$W_UNIT       00000048            

UCB$L_DX_RXDB    000000A0            UCB$V_CANCEL   = 00000003            UCB$W_VPROT      0000001A            

UCB$L_EMB        00000078            UCB$V_DEADMO   = 0000000A            UNSOLNT          00000146 R     04   

UCB$L_FIRST      00000014            UCB$V_DELMBX   = 00000001            VEC$B_DATAPATH   00000013            

UCB$L_FPC        0000000C            UCB$V_DIAGBUF  = 00000001            VEC$B_NUMREG     00000012            

UCB$L_FQBL       00000004            UCB$V_DX_WRITE = 00000003            VEC$C_LENGTH     00000024            

UCB$L_FQFL       00000000            UCB$V_ECC      = 00000000            VEC$K_LENGTH     00000024            

UCB$L_FR3        00000010            UCB$V_ERLOGIP  = 00000002            VEC$L_ADP        00000014            

UCB$L_FR4        00000014            UCB$V_INT      = 00000001            VEC$L_IDB        00000008            

UCB$L_IOQBL      00000044            UCB$V_INTTYPE  = 00000007            VEC$L_INITIAL    0000000C            

UCB$L_IOQFL      00000040            UCB$V_JOB      = 00000000            VEC$L_START      0000001C            

UCB$L_IRP        0000004C            UCB$V_LNKPRI   = 00000006            VEC$L_UNITDISC   00000020            

UCB$L_LINK       0000002C            UCB$V_LTYPE    = 00000000            VEC$L_UNITINIT   00000018            

UCB$L_LOGADR     00000064            UCB$V_MOUNTING = 00000009            VEC$M_MAPLOCK  = 00008000            

UCB$L_MAXBLOCK   00000084            UCB$V_MSGACK   = 00000004            VEC$M_PATHLOCK = 00000080            

UCB$L_MEDIA      0000008C            UCB$V_MSGFLO   = 00000003            VEC$Q_DISPATCH   00000000            

UCB$L_NT_DATSSB  00000074            UCB$V_NOCNVRT  = 00000002            VEC$S_DATAPATH = 00000007            

UCB$L_NT_INTSSB  00000078            UCB$V_NT_BFROVF= 00000002            VEC$S_MAPREG   = 0000000F            

UCB$L_OPCNT      00000060            UCB$V_NT_BREAK = 00000005            VEC$V_DATAPATH = 00000000            

UCB$L_OWNUIC     0000001C            UCB$V_NT_NAME  = 00000004            VEC$V_MAPLOCK  = 0000000F            

UCB$L_PID        00000028            UCB$V_ONLINE   = 00000004            VEC$V_MAPREG   = 00000000            

UCB$L_RQBL       00000004            UCB$V_POWER    = 00000005            VEC$V_PATHLOCK = 00000007            

UCB$L_RQFL       00000000            UCB$V_PRMMBX   = 00000000            VEC$W_MAPREG     00000010            

UCB$L_SVAPTE     00000068            UCB$V_SEGFLO   = 00000002            

UCB$L_SVPN       00000064            UCB$V_TIM      = 00000000            

UCB$L_TTCHAR     0000003C            UCB$V_TIMOUT   = 00000006            

DXPDRIVER       - STAR CONSOLE FLOPPY DISK DRIVER                21-AUG-1978 20:52:27   VAX-11 MACRO X0.3-11               Page  13

PROGRAM SECTION SYNOPSIS                                                                                                         (1)







PROGRAM SECTION SYNOPSIS



.  ABS  .        00000000      00     NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT BYTE  

. BLANK .        00000000      01     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

$ABS$            FFFFFFFE      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

$$$105_PROLOGUE  00000020      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

$$$115_DRIVER    00000147      04     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT LONG  





THERE WERE NO ERRORS OR WARNINGS.

6286. BYTES LEFT IN FREE MEMORY POOL.

2766. BYTES OF RECLAIMED MEMORY.

OBJ$:DXPDRIVER,LIS$:DXPDRIVER/-SP=EXECML$/ML,SRC$:DXPDRIVER

16 MLB DIR RDS - 1104 GETS TO DEFINE 33 MACROS. 77 INTER. FILE WRITES. 

