CRASH           - CRASH RESTART ROUTINES                         22-AUG-1978 00:03:52   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (2)      99  BUG CHECK ROUTINES

   (3)     195  CONVERT LONGWORD TO HEX AND OUTPUT DIGITS

   (4)     221  OUTPUT BLANK CHARACTER

   (5)     241  OUTPUT CHARACTER

   (6)     296  OUTPUT CARRIAGE RETURN/LINE FEED PAIR

   (7)     319  OUTPUT COUNTED AND ZERO TERMINATED STRINGS

CRASH           - CRASH RESTART ROUTINES                         22-AUG-1978 00:03:52   VAX-11 MACRO X0.3-11               Page   1

01                                                                                                                               (1)



                                     0000     1 	.TITLE	CRASH - CRASH RESTART ROUTINES

                                     0000     2 	.IDENT	/01/

                                     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 ; D. N. CUTLER 12-AUG-76

                                     0000    24 ;

                                     0000    25 ; CRASH RESTART ROUTINES

                                     0000    26 ;

                                     0000    27 ; MACRO LIBRARY CALLS

                                     0000    28 ;

                                     0000    29  

                                     0000    30 	$CADEF				;DEFINE CONDITIONAL ASSEMBLY PARAMETERS

                                     0000    31 	$PRDEF				;DEFINE PROCESSOR REGISTERS

                                     0000    32 	$PSLDEF				;DEFINE PROCESSOR STATUS BITS

                                     0000    33 	$UCBDEF				;DEFINE UCB OFFSETS

                                     0000    34  

                                     0000    35 ;

                                     0000    36 ; LOCAL SYMBOLS

                                     0000    37 ;

                                     0000    38 ; CHARACTER DEFINITIONS

                                     0000    39 ;

                                     0000    40  

                           00000020  0000    41 BLANK=32				;BLANK

                           0000000D  0000    42 CR=13					;CARRIAGE RETURN

                           0000000A  0000    43 LF=10					;LINE FEED

                           00000037  0000    44 SEVEN=55				;DIGIT 7

                           00000030  0000    45 ZERO=48					;DIGIT 0

                                     0000    46  

                                     0000    47 ;

                                     0000    48 ; TERMINAL REGISTER DEFINITIONS

                                     0000    49 ;

                                     0000    50  

                           FFFFFFFC  0000    51 RCSR=-4					;OFFSET RECEIVER CSR

                           FFFFFFFE  0000    52 RDBR=-2					;OFFSET RECEIVER DBR

                           00000000  0000    53 TCSR=0					;OFFSET TRANSMITTER CSR

                           00000002  0000    54 TDBR=2					;OFFSET TRANSMITTER DBR

                           FFFFFF74  0000    55 TPSP=^X0FFFFFF74			;PHYSICAL ADDRESS OF TERMINAL CSR

                                     0000    56  

                                     0000    57 ;

CRASH           - CRASH RESTART ROUTINES                         22-AUG-1978 00:03:52   VAX-11 MACRO X0.3-11               Page   2

01                                                                                                                               (1)



                                     0000    58 ; LOCAL DATA

                                     0000    59 ;

                                     0000    60 ; HEX CONVERSION TABLE

                                     0000    61 ;

                                     0000    62  

                                 00000000    63 	.PSECT	$AEXENONPAGED

                                     0000    64 EXE$AB_HEXTAB::				;HEXDECIMAL CONVERSION TABLE

                                 30  0000    65 	.ASCII	/0/			;0 DIGIT

                                 31  0001    66 	.ASCII	/1/			;1 DIGIT

                                 32  0002    67 	.ASCII	/2/			;2 DIGIT

                                 33  0003    68 	.ASCII	/3/			;3 DIGIT

                                 34  0004    69 	.ASCII	/4/			;4 DIGIT

                                 35  0005    70 	.ASCII	/5/			;5 DIGIT

                                 36  0006    71 	.ASCII	/6/			;6 DIGIT

                                 37  0007    72 	.ASCII	/7/			;7 DIGIT

                                 38  0008    73 	.ASCII	/8/			;8 DIGIT

                                 39  0009    74 	.ASCII	/9/			;9 DIGIT

                                 41  000A    75 	.ASCII	/A/			;10 DIGIT

                                 42  000B    76 	.ASCII	/B/			;11 DIGIT

                                 43  000C    77 	.ASCII	/C/			;12 DIGIT

                                 44  000D    78 	.ASCII	/D/			;13 DIGIT

                                 45  000E    79 	.ASCII	/E/			;14 DIGIT

                                 46  000F    80 	.ASCII	/F/			;15 DIGIT

                                     0010    81  

                                     0010    82 ;

                                     0010    83 ; OUTPUT MESSAGES

                                     0010    84 ;

                                     0010    85  

                                     0010    86 FATPREFIX:				;FATAL BUG CHECK PREFIX MESSAGE

20 4C 41 54 41 46 20 2A 2A 2A 0A 0D  0010    87 	.ASCIZ	<CR><LF>/*** FATAL AT PC / ;

               00 20 43 50 20 54 41  001C       

                                     0023    88 DISKERR:				;DISK ERROR MESSAGE

45 20 50 4D 55 44 20 2A 2A 2A 0A 0D  0023    89 	.ASCIZ	<CR><LF>/*** DUMP ERROR CONTINUE TO RETRY ***/<CR><LF> ;

55 4E 49 54 4E 4F 43 20 52 4F 52 52  002F       

2A 20 59 52 54 45 52 20 4F 54 20 45  003B       

                     00 0A 0D 2A 2A  0047       

                                     004C    90 DUMPCOM:				;DISK DUMP COMPLETE

43 20 50 4D 55 44 20 2A 2A 2A 0A 0D  004C    91 	.ASCIZ	<CR><LF>/*** DUMP COMPLETE ***/<CR><LF> ;

0D 2A 2A 2A 20 45 54 45 4C 50 4D 4F  0058       

                              00 0A  0064       

                                     0066    92 REGISTER:				;REGISTER OUTPUT MESSAGE

44 20 52 45 54 53 49 47 45 52 0A 0D  0066    93 	.ASCIZ	<CR><LF>/REGISTER DUMP - R0 THRU PC AND PSL/<CR><LF><LF> ;

52 48 54 20 30 52 20 2D 20 50 4D 55  0072       

4C 53 50 20 44 4E 41 20 43 50 20 55  007E       

                        00 0A 0A 0D  008A       

                                     008E    94 STACK:					;STACK OUTPUT MESSAGE

50 4D 55 44 20 4B 43 41 54 53 0A 0D  008E    95 	.ASCIZ	<CR><LF>/STACK DUMP/<CR><LF><LF> ;

                        00 0A 0A 0D  009A       

                                     009E    96 SUFFIX:					;BUG CHECK SUFFIX MESSAGE

               00 0A 0D 2A 2A 2A 20  009E    97 	.ASCIZ	/ ***/<CR><LF>		;

CRASH           - CRASH RESTART ROUTINES                         22-AUG-1978 00:03:52   VAX-11 MACRO X0.3-11               Page   3

01              BUG CHECK ROUTINES                                                                                               (2)



                                     00A5    99 	.SBTTL	BUG CHECK ROUTINES

                                     00A5   100 ;+

                                     00A5   101 ; EXE$BUGCHKFATAL - FATAL BUG CHECK

                                     00A5   102 ;

                                     00A5   103 ; THIS ROUTINE IS CALLED VIA A JSB INSTRUCTION WHEN A SOFTWARE ERROR

                                     00A5   104 ; IS DETECTED BY THE OPERATING SYSTEM ITSELF. TYPICAL BUG CHECK ERRORS

                                     00A5   105 ; ARE DATA INCONSISTENCIES AND INVALID INTERNAL SUBROUTINE CALL ARGUMENTS.

                                     00A5   106 ; FATAL BUG CHECKS ALWAYS CRASH THE SYSTEM AFTER HAVING RECORDED THE REASON

                                     00A5   107 ; FOR THE BUG CHECK. CONTINUABLE BUG CHECKS MAY BE CONTINUED DEPENDING ON

                                     00A5   108 ; AN EXTERNALLY SETTABLE SWITCH.

                                     00A5   109 ;

                                     00A5   110 ; INPUTS:

                                     00A5   111 ;

                                     00A5   112 ;	********TEMP*******

                                     00A5   113 ;

                                     00A5   114 ;	00(SP) = ADDRESS OF ASCIZ STRING OF ERROR MESSAGE

                                     00A5   115 ;

                                     00A5   116 ; OUTPUTS:

                                     00A5   117 ;

                                     00A5   118 ;	********TEMP********

                                     00A5   119 ;

                                     00A5   120 ;	ALL PERTAINENT SYSTEM STATE IS SAVED AND THE FATAL OR CONTINUABLE

                                     00A5   121 ;	MESSAGE IS DISPLAYED ON THE CONSOLE TERMINAL. A HALT IS THEN

                                     00A5   122 ;	EXECUTED. IF SYSTEM OPERATION IS CONTINUED VIA A CONSOLE COMMAND,

                                     00A5   123 ;	THEN THE ACTION TAKEN DEPENDS ON WHETHER THE BUG CHECK WAS FATAL

                                     00A5   124 ;	OR NOT. A CONTINUABLE BUG CHECK RETURNS TO THE CALLER JUST PAST

                                     00A5   125 ;	THE ERROR MESSAGE. A FATAL BUG CHECK CAUSES A DUMP TO RK05 UNIT

                                     00A5   126 ;	ZERO STARTING AT BLOCK 2400. ALL OF PHYSICAL MEMORY IS DUMPED.

                                     00A5   127 ;	THE RESULTANT DUMP IMAGE CAN BE LISTED ON THE MIAS 11/70 SYSTEM

                                     00A5   128 ;	VIA THE DMP UTILITY.

                                     00A5   129 ;-

                                     00A5   130  

                                     00A5   131 	.ENABL	LSB

                                     00A5   132 EXE$BUGCHKFATAL::			;FATAL BUG CHECK

                 00000000'EF     DC  00A5   133 	MOVPSL	BUG$GL_PSL		;SAVE CURRENT PSL

                                     00AB   134 	SETIPL	#31			;DISABLE ALL INTERRUPTS

                 00000000'EF   8ED0  00AE   135 	POPL	BUG$GL_RETURN		;SAVE RETURN ADDRESS

   00000000'EF            5E     D0  00B5   136 	MOVL	SP,BUG$GL_STACK		;SAVE CURRENT STACK POINTER

            5E   00000000'EF     DE  00BC   137 	MOVAL	BUG$GL_STACK,SP		;SET BUG CHECK STACK POINTER

                     3FFF 8F     BB  00C3   138 	PUSHR	#^M<R0,R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,AP,FP> ;SAVE ALL REGS

                          5B     D4  00C7   139 	CLRL	R11			;INDICATE CONSOLE TERMINAL

            51       FF43 CF     DE  00C9   140 	MOVAL	W^FATPREFIX,R1		;GET ADDRESS OF FATAL PREFIX

                          0116   30  00CE   141 	BSBW	EXE$OUTZSTRING		;OUTPUT PREFIX MESSAGE

            51   00000000'EF     D0  00D1   142 	MOVL	BUG$GL_RETURN,R1	;GET PC OF BUG CHECK

                          008B   30  00D8   143 	BSBW	EXE$OUTHEX		;OUTPUT HEX LONGWORD

                          00A0   30  00DB   144 	BSBW	EXE$OUTBLANK		;OUTPUT A BLANK

            51   00000000'EF     D0  00DE   145 	MOVL	BUG$GL_RETURN,R1	;GET ADDRESS OF ERROR IDENTIFICATION

                          00FF   30  00E5   146 	BSBW	EXE$OUTZSTRING		;OUTPUT ERROR IDENTIFICATION

            51       FFB2 CF     DE  00E8   147 	MOVAL	W^SUFFIX,R1		;GET ADDRESS OF SUFFIX

                          00F7   30  00ED   148 	BSBW	EXE$OUTZSTRING		;OUTPUT SUFFIX MESSAGE

            51       FF72 CF     DE  00F0   149 	MOVAL	W^REGISTER,R1		;GET ADDRESS OF REGISTER MESSAGE

                          00EF   30  00F5   150 	BSBW	EXE$OUTZSTRING		;OUTPUT REGISTER MESSAGE

            5A            11     D0  00F8   151 	MOVL	#17,R10			;SET LOOP COUNT

            59   00000000'EF     DE  00FB   152 	MOVAL	BUG$AL_SAVR0,R9		;GET ADDRESS OF REGISTER ARRAY

            51            89     D0  0102   153 40$:	MOVL	(R9)+,R1		;GET CONTENTS OF NEXT REGISTER

                          005E   30  0105   154 	BSBW	EXE$OUTHEX		;CONVERT AND OUTPUT HEX VALUE

                          00CD   30  0108   155 	BSBW	EXE$OUTCRLF		;OUTPUT CARRIAGE RETURN/LINE FEED

CRASH           - CRASH RESTART ROUTINES                         22-AUG-1978 00:03:52   VAX-11 MACRO X0.3-11               Page   4

01              BUG CHECK ROUTINES                                                                                               (2)



            F4            5A     F5  010B   156 	SOBGTR	R10,40$			;ANY MORE REGISTERS TO PROCESS?

            51       FF7C CF     DE  010E   157 	MOVAL	W^STACK,R1		;GET ADDRESS OF STACK MESSAGE

                          00D1   30  0113   158 	BSBW	EXE$OUTZSTRING		;OUTPUT STACK MESSAGE

            5A   00000040 8F     D0  0116   159 	MOVL	#64,R10			;SET LOOP COUNT

            59   00000000'EF     D0  011D   160 	MOVL	BUG$GL_STACK,R9		;GET ADRRESS OF TOP OF STACK

                                     0124   161 45$:	IFNORD	#4,(R9),47$		;CAN TOP LONGWORD OF STACK BE READ?

   00000000'8F            59     D1  012A   162 	CMPL	R9,#SYS$ISPINI		;ASSUME ISP

                          1D     1E  0131   163 	BGEQU	47$			;PAST END OF STACK

   00000000'EF            1A     E0  0133   164 	BBS	#PSL$V_IS,BUG$GL_PSL,46$ ;IF SET, INTERRUPT STACK

                          09         013A       

   00000000'9F            59     D1  013B   165 	CMPL	R9,@#CTL$AL_STACK	;STILL WITHIN KERNEL STACK?

                          0C     1E  0142   166 	BGEQU	47$			;IF GEQU NO

            51            89     D0  0144   167 46$:	MOVL	(R9)+,R1		;GET NEXT LONGWORD FROM STACK

                          001C   30  0147   168 	BSBW	EXE$OUTHEX		;CONVERT AND OUTPUT HEX VALUE

                          008B   30  014A   169 	BSBW	EXE$OUTCRLF		;OUTPUT CARRIAGE RETURN/LINE FEED

            D4            5A     F5  014D   170 	SOBGTR	R10,45$			;ANY MORE STACK LONGWORDS TO PROCESS?

                          0085   30  0150   171 47$:	BSBW	EXE$OUTCRLF		;OUTPUT CARRIAGE RETURN/LINE FEED

                 00000000'EF     16  0153   172 	JSB	INI$BRK			;BREAK AND WAIT FOR CONTINUATION

                          09     11  0159   173 	BRB	70$			;

                                     015B   174  

                                     015B   175 ;

                                     015B   176 ; DISK DUMP ERROR

                                     015B   177 ;

                                     015B   178 ; TO RETRY DUMP SIMPLY CONTINUE

                                     015B   179 ;

                                     015B   180  

            51       FEC4 CF     DE  015B   181 60$:	MOVAL	W^DISKERR,R1		;GET ADDRESS OF ERROR MESSAGE

                          0084   30  0160   182 	BSBW	EXE$OUTZSTRING		;OUTPUT DISK ERROR MESSAGE

                                 00  0163   183 	HALT				;WAIT FOR CONTINUE

                                     0164   184  

                                     0164   185 ;

                                     0164   186 ; FATAL BUG CHECK

                                     0164   187 ;

                                     0164   188 ; DUMP PHYSICAL MEMORY STARTING AT LOCATION 0 AND CONTINUING FOR ALL OF

                                     0164   189 ; MEMORY TO SPECIFIED DISK ADDRESS ON SYSTEM BOOT DEVICE

                                     0164   190 ;

                                     0164   191  

                          F5     11  0164   192 70$:	BRB	60$			;

                                     0166   193 	.DSABL	LSB

CRASH           - CRASH RESTART ROUTINES                         22-AUG-1978 00:03:52   VAX-11 MACRO X0.3-11               Page   5

01              CONVERT LONGWORD TO HEX AND OUTPUT DIGITS                                                                        (3)



                                     0166   195 	.SBTTL	CONVERT LONGWORD TO HEX AND OUTPUT DIGITS

                                     0166   196 ;+

                                     0166   197 ; EXE$OUTHEX - CONVERT LONGWORD TO HEX AND OUTPUT DIGITS

                                     0166   198 ;

                                     0166   199 ; THIS ROUTINE IS CALLED VIA A JSB TO CONVERT A LONGWORD TO HEX AND

                                     0166   200 ; OUTPUT THE RESULTANT DIGITS TO A SPECIFIED DEVICE IN NONINTERRUPT

                                     0166   201 ; MODE.

                                     0166   202 ;

                                     0166   203 ; INPUTS:

                                     0166   204 ;

                                     0166   205 ;	R1 = VALUE TO BE CONVERTED.

                                     0166   206 ;	R11 = OUTPUT DEVICE CSR ADDRESS.

                                     0166   207 ;

                                     0166   208 ; OUTPUTS:

                                     0166   209 ;

                                     0166   210 ;	THE SPECIFED VALUE IS CONVERTED TO HEX AND OUTPUT.

                                     0166   211 ;-

                                     0166   212  

                                     0166   213 EXE$OUTHEX::				;CONVERT AND OUTPUT HEX LONGWORD

            52            1C     D0  0166   214 	MOVL	#28,R2			;SET POSITION OF FIRST FOUR BIT FIELD

            04            52     EF  0169   215 10$:	EXTZV	R2,#4,R1,R0		;GET NEXT FOUR BITS OF VALUE

            50            51         016C       

            50       FE8D CF40   9A  016E   216 	MOVZBL	EXE$AB_HEXTAB[R0],R0	;GET ASCII CHARACTER

                          0D     10  0174   217 	BSBB	EXE$OUTCHAR		;OUTPUT DIGIT

         FC 8F            00     9D  0176   218 	ACBB	#0,#-4,R2,10$		;ANY MORE DIGITS TO CONVERT?

            FFEC          52         017A       

                                 05  017D   219 	RSB				;

CRASH           - CRASH RESTART ROUTINES                         22-AUG-1978 00:03:52   VAX-11 MACRO X0.3-11               Page   6

01              OUTPUT BLANK CHARACTER                                                                                           (4)



                                     017E   221 	.SBTTL	OUTPUT BLANK CHARACTER

                                     017E   222 ;+

                                     017E   223 ; EXE$OUTBLANK - OUTPUT BLANK CHARACTER

                                     017E   224 ;

                                     017E   225 ; THIS ROUTINE IS CALLED VIA A JSB TO OUTPUT A BLANK CHARACTER TO A

                                     017E   226 ; SPECIFIED DEVICE.

                                     017E   227 ;

                                     017E   228 ; INPUTS:

                                     017E   229 ;

                                     017E   230 ;	R11 = OUTPUT DEVICE CSR ADDRESS.

                                     017E   231 ;

                                     017E   232 ; OUTPUTS:

                                     017E   233 ;

                                     017E   234 ;	BLANK CHARACTER IS OUTPUT TO SPECIFIED DEVICE.

                                     017E   235 ;-

                                     017E   236  

                                     017E   237 EXE$OUTBLANK::				;OUTPUT BLANK CHARACTER

            50            20     9A  017E   238 	MOVZBL	#BLANK,R0		;SET BLANK CHARACTER

                          00     11  0181   239 	BRB	EXE$OUTCHAR		;

CRASH           - CRASH RESTART ROUTINES                         22-AUG-1978 00:03:52   VAX-11 MACRO X0.3-11               Page   7

01              OUTPUT CHARACTER                                                                                                 (5)



                                     0183   241 	.SBTTL	OUTPUT CHARACTER

                                     0183   242 ;+

                                     0183   243 ; EXE$OUTCHAR - OUTPUT CHARACTER

                                     0183   244 ;

                                     0183   245 ; THIS ROUTINE IS CALLED VIA A JSB TO OUTPUT A CHARACTER TO A SPECIFIED

                                     0183   246 ; DEVICE.

                                     0183   247 ;

                                     0183   248 ; INPUTS:

                                     0183   249 ;

                                     0183   250 ;	R0 = CHARACTER TO OUTPUT.

                                     0183   251 ;	R11 = OUTPUT DEVICE CSR ADDRESS (ZERO IMPLIES CONSOLE TERMINAL).

                                     0183   252 ;

                                     0183   253 ; OUTPUTS:

                                     0183   254 ;

                                     0183   255 ;	CHARACTER IS OUTPUT TO THE SPECIFIED DEVICE. IF THE CHARACTER

                                     0183   256 ;	IS A CARRIAGE RETURN AND THE OUTPUT DEVICE IS THE CONSOLE TERMINAL,

                                     0183   257 ;	THEN A SUFFICIENT NUMBER OF FILL CHARACTERS ARE ALSO OUTPUT.

                                     0183   258 ;-

                                     0183   259  

                                     0183   260 EXE$OUTCHAR::				;OUTPUT CHARACTER

                          5B     D5  0183   261 	TSTL	R11			;CONSOLE TERMINAL?

                          31     12  0185   262 	BNEQ	20$			;IF NEQ NO

                                     0187   263  

                           00000001  0187   264 	.IF NE	CA$_SIMULATOR

                                     0187   265  

       0000'CF            00'    E1  0187   266 	BBC	S^#EXE$V_SIMULATOR,W^EXE$GL_FLAGS,10$ ;IF CLR, NOT SIMULATOR

                          1A         018C       

            5B   FFFFFF74 9F     DE  018D   267 	MOVAL	@#TPSP,R11		;GET PHYSICAL ADDRESS OF TRANSMITTER CSR

            7E            38     DB  0194   268 	MFPR	#PR$_MAPEN,-(SP)	;READ MAP ENABLE

            07            8E     E9  0197   269 	BLBC	(SP)+,5$		;IF LBC RUNNING UNMAPPED

            5B   00000174'9F     DE  019A   270 	MOVAL	@#SYS$IOBASE+^X174,R11	;GET VIRTUAL ADDRESS OF TRANSMITTER CSR

                          15     10  01A1   271 5$:	BSBB	20$			;OUTPUT CHARACTER

                          5B     D4  01A3   272 	CLRL	R11			;INDICATE CONSOLE TERMINAL

                          1C     11  01A5   273 	BRB	30$			;

                                     01A7   274  

                                     01A7   275 	.ENDC

                                     01A7   276  

            7E            22     DB  01A7   277 10$:	MFPR	#PR$_TXCS,-(SP)		;READ TRANSMIT CONTROL REGISTER

            8E   00000080 8F     D3  01AA   278 	BITL	#^X80,(SP)+		;TERMINAL READY?

                          F4     13  01B1   279 	BEQL	10$			;IF EQL NO

            23            50     DA  01B3   280 	MTPR	R0,#PR$_TXDB		;OUTPUT CHARACTER

                          0B     11  01B6   281 	BRB	30$			;

            6B       0080 8F     B3  01B8   282 20$:	BITW	#^X080,TCSR(R11)	;DEVICE READY?

                          F9     13  01BD   283 	BEQL	20$			;IF EQL NO

         02 AB            50     90  01BF   284 	MOVB	R0,TDBR(R11)		;OUTPUT CHARACTER

            50            0D     91  01C3   285 30$:	CMPB	#CR,R0			;CARRIAGE RETURN?

                          0F     12  01C6   286 	BNEQ	60$			;IF NEQ NO

                          5B     D5  01C8   287 	TSTL	R11			;CONSOLE TERMINAL?

                          0B     12  01CA   288 	BNEQ	60$			;IF NEQ NO

                          50     D4  01CC   289 40$:	CLRL	R0			;SET FILL CHARACTER

                          02     DD  01CE   290 	PUSHL	#2			;SET FILL COUNT

                          B1     10  01D0   291 50$:	BSBB	EXE$OUTCHAR		;OUTPUT A FILL CHARACTER

            FB            6E     F5  01D2   292 	SOBGTR	(SP),50$		;ANY MORE FILLS TO OUTPUT?

                          8E     D5  01D5   293 	TSTL	(SP)+			;CLEAN STACK

                                 05  01D7   294 60$:	RSB				;

CRASH           - CRASH RESTART ROUTINES                         22-AUG-1978 00:03:52   VAX-11 MACRO X0.3-11               Page   8

01              OUTPUT CARRIAGE RETURN/LINE FEED PAIR                                                                            (6)



                                     01D8   296 	.SBTTL	OUTPUT CARRIAGE RETURN/LINE FEED PAIR

                                     01D8   297 ;+

                                     01D8   298 ; EXE$OUTCRLF - OUTPUT CARRIAGE RETURN/LINE FEED PAIR

                                     01D8   299 ;

                                     01D8   300 ; THIS ROUTINE IS CALLED TO OUTPUT A CARRIAGE RETURN/LINE FEED PAIR TO A

                                     01D8   301 ; SPECIFIED DEVICE.

                                     01D8   302 ;

                                     01D8   303 ; INPUTS:

                                     01D8   304 ;

                                     01D8   305 ;	R11 = OUTPUT DEVICE CSR ADDRESS.

                                     01D8   306 ;

                                     01D8   307 ; OUTPUTS:

                                     01D8   308 ;

                                     01D8   309 ;	A CARRIAGE RETURN FOLLOWED BY A LINE FEED IS OUTPUT TO THE SPECIFIED

                                     01D8   310 ;	DEVICE.

                                     01D8   311 ;-

                                     01D8   312  

                                     01D8   313 EXE$OUTCRLF::				;OUTPUT CARRIAGE RETURN/LINE FEED PAIR

            50            0D     9A  01D8   314 	MOVZBL	#CR,R0			;SET CARRIAGE RETURN CHARACTER

                          A6     10  01DB   315 	BSBB	EXE$OUTCHAR		;OUTPUT CARRIAGE RETURN

            50            0A     9A  01DD   316 	MOVZBL	#LF,R0			;SET LINE FEED CHARACTER

                          A1     11  01E0   317 	BRB	EXE$OUTCHAR		;OUTPUT LINE FEED CHARACTER

CRASH           - CRASH RESTART ROUTINES                         22-AUG-1978 00:03:52   VAX-11 MACRO X0.3-11               Page   9

01              OUTPUT COUNTED AND ZERO TERMINATED STRINGS                                                                       (7)



                                     01E2   319 	.SBTTL	OUTPUT COUNTED AND ZERO TERMINATED STRINGS

                                     01E2   320 ;+

                                     01E2   321 ; EXE$OUTCSTRING - OUTPUT COUNTED STRING

                                     01E2   322 ;

                                     01E2   323 ; THIS ROUTINE IS CALLED VIA A JSB TO OUTPUT A STRING WHOSE FIRST CHARACTER

                                     01E2   324 ; IS THE NUMBER OF CHARACTERS TO BE OUTPUT.

                                     01E2   325 ;

                                     01E2   326 ; INPUTS:

                                     01E2   327 ;

                                     01E2   328 ;	R1 = ADDRESS OF COUNTED STRING.

                                     01E2   329 ;	R11 = OUTPUT DEVICE CSR ADDRESS.

                                     01E2   330 ;

                                     01E2   331 ; OUTPUTS:

                                     01E2   332 ;

                                     01E2   333 ;	THE NUMBER OF CHARACTERS SPECIFIED BY THE FIRST BYTE OF THE STRING

                                     01E2   334 ;	ARE OUTPUT TO THE SPECIFIED DEVICE. OUTPUT IS ALSO TERMINATED IF

                                     01E2   335 ;	A ZERO BYTE IS ENCOUNTERED BEFORE THE COUNT IS EXHAUSTED.

                                     01E2   336 ;-

                                     01E2   337  

                                     01E2   338 	.ENABL	LSB

                                     01E2   339 EXE$OUTCSTRING::			;OUTPUT COUNTED STRING

            52            81     9A  01E2   340 	MOVZBL	(R1)+,R2		;SET COUNT OF CHARACTERS TO OUTPUT

                          04     11  01E5   341 	BRB	10$			;

                                     01E7   342  

                                     01E7   343 ;+

                                     01E7   344 ; EZE$OUTZSTRING - OUTPUT ZERO TERMINATED STRING

                                     01E7   345 ;

                                     01E7   346 ; THIS ROUTINE IS CALLED VIA A JSB TO OUTPUT A STRING THAT IS TERMINATED BY

                                     01E7   347 ; A ZERO BYTE.

                                     01E7   348 ;

                                     01E7   349 ; INPUTS:

                                     01E7   350 ;

                                     01E7   351 ;	R1 = ADDRESS OF ZERO TERMINATED STRING.

                                     01E7   352 ;	R11 = OUTPUT DEVICE CSR ADDRESS.

                                     01E7   353 ;

                                     01E7   354 ; OUTPUTS:

                                     01E7   355 ;

                                     01E7   356 ;	CHARACTERS FROM THE SPECIFIED STRING ARE OUTPUT UNTIL A ZERO BYTE

                                     01E7   357 ;	IS ENCOUNTERED.

                                     01E7   358 ;-

                                     01E7   359  

                                     01E7   360 EXE$OUTZSTRING::			;OUTPUT ZERO TERMINATED STRING

            52         FF 8F     9A  01E7   361 	MOVZBL	#255,R2			;SET MAXIMUM ALLOWABLE STRING LENGTH

            50            81     9A  01EB   362 10$:	MOVZBL	(R1)+,R0		;GET NEXT CHARACTER FROM INPUT STRING

                          05     13  01EE   363 	BEQL	20$			;IF EQL END OF STRING

                          91     10  01F0   364 	BSBB	EXE$OUTCHAR		;OUTPUT CHARACTER

            F6            52     F5  01F2   365 	SOBGTR	R2,10$			;ANY MORE CHARACTERS TO OUTPUT?

                                 05  01F5   366 20$:	RSB				;

                                     01F6   367 	.DSABL	LSB

                                     01F6   368  

                                     01F6   369 	.END

CRASH           - CRASH RESTART ROUTINES                         22-AUG-1978 00:03:52   VAX-11 MACRO X0.3-11               Page  10

SYMBOL TABLE                                                                                                                     (7)



BIT...         = 00000000            PR$_SLR        = 0000000D            UCB$B_DIPL       00000052            

BLANK          = 00000020            PR$_SSP        = 00000002            UCB$B_DX_SCTCNT  FFFFFFFE            

BUG$AL_SAVR0     ********   X   03   PR$_TBIA       = 00000039            UCB$B_DX_SPARE   FFFFFFFF            

BUG$GL_PSL       ********   X   03   PR$_TBIS       = 0000003A            UCB$B_ERTCNT     00000070            

BUG$GL_RETURN    ********   X   03   PR$_TODR       = 0000001B            UCB$B_ERTMAX     00000071            

BUG$GL_STACK     ********   X   03   PR$_TXCS       = 00000022            UCB$B_ESCAPE     0000004B            

CA$_MEASURE    = 00000002            PR$_TXDB       = 00000023            UCB$B_FEX        00000076            

CA$_MEASURE_IOT= 00000004            PR$_USP        = 00000003            UCB$B_FIPL       0000000B            

CA$_SIMULATOR  = 00000001            PR$_WCSA       = 0000002C            UCB$B_LOCSRV     0000003C            

CR             = 0000000D            PR$_WCSD       = 0000002D            UCB$B_OFFNDX     00000090            

CTL$AL_STACK     ********   X   03   PSL$C_EXEC     = 00000001            UCB$B_OFFRTC     00000091            

DISKERR          00000023 R     03   PSL$C_KERNEL   = 00000000            UCB$B_REMSRV     0000003D            

DUMPCOM          0000004C R     03   PSL$C_SUPER    = 00000002            UCB$B_SECTORS    0000003C            

EXE$AB_HEXTAB    00000000 RG    03   PSL$C_USER     = 00000003            UCB$B_SLAVE      00000074            

EXE$BUGCHKFATAL  000000A5 RG    03   PSL$M_CM       = 80000000            UCB$B_SPR        00000075            

EXE$GL_FLAGS     ********   X   03   PSL$M_CURMOD   = 03000000            UCB$B_STATE      00000052            

EXE$OUTBLANK     0000017E RG    03   PSL$M_DV       = 00000080            UCB$B_TRACKS     0000003D            

EXE$OUTCHAR      00000183 RG    03   PSL$M_FPD      = 08000000            UCB$B_TYPE       0000000A            

EXE$OUTCRLF      000001D8 RG    03   PSL$M_FU       = 00000040            UCB$B_VERTSZ     0000003F            

EXE$OUTCSTRING   000001E2 RG    03   PSL$M_IPL      = 001F0000            UCB$C_LENGTH     00000074            

EXE$OUTHEX       00000166 RG    03   PSL$M_IS       = 04000000            UCB$C_LOGLNK   = 00000001            

EXE$OUTZSTRING   000001E7 RG    03   PSL$M_IV       = 00000020            UCB$K_LENGTH     00000074            

EXE$V_SIMULATOR  ********   X   03   PSL$M_PRVMOD   = 00C00000            UCB$L_AMB        00000054            

FATPREFIX        00000010 R     03   PSL$M_SAFBITS  = 000037FF            UCB$L_ASTQBL     00000010            

GBL...         = 00000000            PSL$M_TBIT     = 00000010            UCB$L_ASTQFL     0000000C            

INI$BRK          ********   X   03   PSL$M_TP       = 40000000            UCB$L_CPID       0000005C            

LF             = 0000000A            PSL$S_CURMOD   = 00000002            UCB$L_CRB        00000020            

PR$_ACCR       = 00000029            PSL$S_IPL      = 00000005            UCB$L_DDB        00000024            

PR$_ACCS       = 00000028            PSL$S_PRVMOD   = 00000002            UCB$L_DEVCHAR    00000034            

PR$_ASTLVL     = 00000013            PSL$V_CM       = 0000001F            UCB$L_DEVDEPEND  0000003C            

PR$_ESP        = 00000001            PSL$V_CURMOD   = 00000018            UCB$L_DPC        0000007C            

PR$_ICCS       = 00000018            PSL$V_DV       = 00000007            UCB$L_DUETIM     0000005C            

PR$_ICR        = 0000001A            PSL$V_FPD      = 0000001B            UCB$L_DX_BFPNT   FFFFFFF4            

PR$_IPL        = 00000012            PSL$V_FU       = 00000006            UCB$L_DX_BUF     FFFFFFF0            

PR$_ISP        = 00000004            PSL$V_IPL      = 00000010            UCB$L_DX_RXDB    FFFFFFF8            

PR$_KSP        = 00000000            PSL$V_IS       = 0000001A            UCB$L_EMB        00000078            

PR$_MAPEN      = 00000038            PSL$V_IV       = 00000005            UCB$L_FIRST      00000014            

PR$_NICR       = 00000019            PSL$V_PRVMOD   = 00000016            UCB$L_FPC        0000000C            

PR$_P0BR       = 00000008            PSL$V_TBIT     = 00000004            UCB$L_FQBL       00000004            

PR$_P0LR       = 00000009            PSL$V_TP       = 0000001E            UCB$L_FQFL       00000000            

PR$_P1BR       = 0000000A            RCSR           = FFFFFFFC            UCB$L_FR3        00000010            

PR$_P1LR       = 0000000B            RDBR           = FFFFFFFE            UCB$L_FR4        00000014            

PR$_PCBB       = 00000010            REGISTER         00000066 R     03   UCB$L_IOQBL      00000044            

PR$_RXCS       = 00000020            SEVEN          = 00000037            UCB$L_IOQFL      00000040            

PR$_RXDB       = 00000021            STACK            0000008E R     03   UCB$L_IRP        0000004C            

PR$_SBIER      = 00000034            SUFFIX           0000009E R     03   UCB$L_LINK       0000002C            

PR$_SBIFS      = 00000030            SYS$IOBASE       ********   X   03   UCB$L_LOGADR     00000064            

PR$_SBIMT      = 00000033            SYS$ISPINI       ********   X   03   UCB$L_MAXBLOCK   00000080            

PR$_SBIQC      = 00000036            TCSR           = 00000000            UCB$L_MEDIA      00000088            

PR$_SBIS       = 00000031            TDBR           = 00000002            UCB$L_NT_DATSSB  00000074            

PR$_SBISC      = 00000032            TPSP           = FFFFFF74            UCB$L_NT_INTSSB  00000078            

PR$_SBITA      = 00000035            UCB$B_AMOD       00000053            UCB$L_OPCNT      00000060            

PR$_SBR        = 0000000C            UCB$B_CEX        00000077            UCB$L_OWNUIC     0000001C            

PR$_SCBB       = 00000011            UCB$B_CM1        0000004A            UCB$L_PID        00000028            

PR$_SID        = 0000003E            UCB$B_CM2        0000004B            UCB$L_RQBL       00000004            

PR$_SIRR       = 00000014            UCB$B_DEVCLASS   00000038            UCB$L_RQFL       00000000            

PR$_SISR       = 00000015            UCB$B_DEVTYPE    00000039            UCB$L_SVAPTE     00000068            

CRASH           - CRASH RESTART ROUTINES                         22-AUG-1978 00:03:52   VAX-11 MACRO X0.3-11               Page  11

SYMBOL TABLE                                                                                                                     (7)



UCB$L_SVPN       00000064            UCB$V_PRMMBX   = 00000000            

UCB$L_TTCHAR     0000003C            UCB$V_SEGFLO   = 00000002            

UCB$L_VCB        00000030            UCB$V_TIM      = 00000000            

UCB$M_BSY      = 00000100            UCB$V_TIMOUT   = 00000006            

UCB$M_CANCEL   = 00000008            UCB$V_TT_NOTIF = 00000002            

UCB$M_DEADMO   = 00000400            UCB$V_TT_TIMO  = 00000001            

UCB$M_DELMBX   = 00000002            UCB$V_VALID    = 0000000B            

UCB$M_DIAGBUF  = 00000002            UCB$W_BCNT       0000006E            

UCB$M_DX_WRITE = 00000008            UCB$W_BCR        00000092            

UCB$M_ECC      = 00000001            UCB$W_BOFF       0000006C            

UCB$M_ERLOGIP  = 00000004            UCB$W_BUFQUO     00000018            

UCB$M_INT      = 00000002            UCB$W_BYTESTOGO  0000003E            

UCB$M_INTTYPE  = 00000080            UCB$W_CHARGE     0000004A            

UCB$M_JOB      = 00000001            UCB$W_CYLINDERS  0000003E            

UCB$M_MOUNTING = 00000200            UCB$W_DA         00000088            

UCB$M_NOCNVRT  = 00000004            UCB$W_DC         0000008A            

UCB$M_NT_BFROVF= 00000004            UCB$W_DEVBUFSIZ  0000003A            

UCB$M_NT_BREAK = 00000020            UCB$W_DEVSTS     0000005A            

UCB$M_NT_NAME  = 00000010            UCB$W_DSTADDR    00000018            

UCB$M_NT_NONTR = 00000040            UCB$W_DX_BCR     FFFFFFFC            

UCB$M_NT_SDP   = 00000008            UCB$W_EC1        0000008C            

UCB$M_ONLINE   = 00000010            UCB$W_EC2        0000008E            

UCB$M_POWER    = 00000020            UCB$W_ERRCNT     00000072            

UCB$M_PRMMBX   = 00000001            UCB$W_FUNC       00000084            

UCB$M_TIM      = 00000001            UCB$W_MB_SEED    FFFFFFFC            

UCB$M_TIMOUT   = 00000040            UCB$W_MSGCNT     00000016            

UCB$M_TT_NOTIF = 00000004            UCB$W_MSGMAX     00000014            

UCB$M_TT_TIMO  = 00000002            UCB$W_NT_CHAN    0000007C            

UCB$M_VALID    = 00000800            UCB$W_OFFSET     00000086            

UCB$S_LNKPRI   = 00000002            UCB$W_REFC       00000050            

UCB$S_LTYPE    = 00000002            UCB$W_SIZE       00000008            

UCB$T_PARTNER    0000000C            UCB$W_SRCADDR    0000001A            

UCB$V_BACKP    = 00000005            UCB$W_STS        00000058            

UCB$V_BSY      = 00000008            UCB$W_UNIT       00000048            

UCB$V_CANCEL   = 00000003            UCB$W_VPROT      0000001A            

UCB$V_DEADMO   = 0000000A            ZERO           = 00000030            

UCB$V_DELMBX   = 00000001            

UCB$V_DIAGBUF  = 00000001            

UCB$V_DX_WRITE = 00000003            

UCB$V_ECC      = 00000000            

UCB$V_ERLOGIP  = 00000002            

UCB$V_INT      = 00000001            

UCB$V_INTTYPE  = 00000007            

UCB$V_JOB      = 00000000            

UCB$V_LNKPRI   = 00000006            

UCB$V_LTYPE    = 00000000            

UCB$V_MOUNTING = 00000009            

UCB$V_MSGACK   = 00000004            

UCB$V_MSGFLO   = 00000003            

UCB$V_NOCNVRT  = 00000002            

UCB$V_NT_BFROVF= 00000002            

UCB$V_NT_BREAK = 00000005            

UCB$V_NT_NAME  = 00000004            

UCB$V_NT_NONTR = 00000006            

UCB$V_NT_SDP   = 00000003            

UCB$V_ONLINE   = 00000004            

UCB$V_POWER    = 00000005            

CRASH           - CRASH RESTART ROUTINES                         22-AUG-1978 00:03:52   VAX-11 MACRO X0.3-11               Page  12

PROGRAM SECTION SYNOPSIS                                                                                                         (7)







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$            FFFFFFFF      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

$AEXENONPAGED    000001F6      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

17904. BYTES LEFT IN FREE MEMORY POOL.

2924. BYTES OF RECLAIMED MEMORY.

OBJ$:CRASH,LIS$:CRASH/-SP=LIB$:LIB/ML,SRC$:CRASH

3 MLB DIR RDS - 415 GETS TO DEFINE 15 MACROS. 29 INTER. FILE WRITES. 

