EXCEPTMSG       - EXCEPTION MESSAGE FORMAT AND PRINT ROUTINE     22-AUG-1978 00:11:13   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      72  EXCEPTION MESSAGE FORMAT AND PRINT ROUTINE

EXCEPTMSG       - EXCEPTION MESSAGE FORMAT AND PRINT ROUTINE     22-AUG-1978 00:11:13   VAX-11 MACRO X0.3-11               Page   1

00                                                                                                                               (1)



                                     0000     1 	.TITLE	EXCEPTMSG - EXCEPTION MESSAGE FORMAT AND PRINT ROUTINE

                                     0000     2 	.IDENT	/00/

                                     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 9-NOV-77

                                     0000    24 ;

                                     0000    25 ; MODIFICATIONS:

                                     0000    26 ;

                                     0000    27 ;	C. A. MONIA - 7-MAR-78

                                     0000    28 ;

                                     0000    29 ;		MODIFIED FOR STAND-ALONE SYSTEM

                                     0000    30 ;

                                     0000    31 ;

                                     0000    32 ;

                                     0000    33 ; EXCEPTION MESSAGE FORMAT AND PRINT ROUTINE

                                     0000    34 ;

                                     0000    35 ; MACRO LIBRARY CALLS

                                     0000    36 ;

                                     0000    37  

                                     0000    38 	$CHFDEF				;DEFINE CONDITION HANDLING ARGLST OFFSETS

                                     0000    39  

                                     0000    40 ;

                                     0000    41 ; LOCAL SYMBOLS

                                     0000    42 ;

                                     0000    43 ; ARGUMENT LIST OFFSET DEFINITIONS

                                     0000    44 ;

                                     0000    45  

                           00000004  0000    46 MESSAGE=4				;ADDRESS OF ASCIZ STRING

                           00000008  0000    47 SIGNAL=8				;ADDRESS OF SIGNAL ARGUMENT LIST

                                     0000    48  

                                     0000    49 ;

                                     0000    50 ; OUTPUT FORMAT BUFFER SIZE

                                     0000    51 ;

                                     0000    52  

                           00000050  0000    53 BUFSIZ=80				;

                                     0000    54  

                                     0000    55 ;

                                     0000    56 ; LOCAL DATA

                                     0000    57 ;

EXCEPTMSG       - EXCEPTION MESSAGE FORMAT AND PRINT ROUTINE     22-AUG-1978 00:11:13   VAX-11 MACRO X0.3-11               Page   2

00                                                                                                                               (1)



                                     0000    58  

                                 00000000    59 	.PSECT	YEXEPAGED,BYTE

79 6C 72 65 70 6F 72 70 6D 49 20 20  0000    60 HEADNG:	.ASCIZ	/  Improperly handled condition, / ;

6E 6F 63 20 64 65 6C 64 6E 61 68 20  000C       

         00 20 2C 6E 6F 69 74 69 64  0018       

72 65 74 73 69 67 65 52 20 20 20 20  0021    61 REGMSG:	.ASCIZ	/    Register dump/	;

                  00 70 6D 75 64 20  002D       

20 31 52 20 20 00 20 3D 20 30 52 09  0033    62 REGDMP:	.ASCII	/	R0 = /<0>/  R1 = /<0>/  R2 = /<0>/  R3 = /<0><128> ;

20 00 20 3D 20 32 52 20 20 00 20 3D  003F       

            80 00 20 3D 20 33 52 20  004B       

20 35 52 20 20 00 20 3D 20 34 52 09  0053    63 	.ASCII	/	R4 = /<0>/  R5 = /<0>/  R6 = /<0>/  R7 = /<0><128> ;

20 00 20 3D 20 36 52 20 20 00 20 3D  005F       

            80 00 20 3D 20 37 52 20  006B       

20 39 52 20 20 00 20 3D 20 38 52 09  0073    64 	.ASCII	/	R8 = /<0>/  R9 = /<0>/  R10= /<0>/  R11= /<0><128> ;

20 00 20 3D 30 31 52 20 20 00 20 3D  007F       

            80 00 20 3D 31 31 52 20  008B       

20 50 46 20 20 00 20 3D 20 50 41 09  0093    65 	.ASCII	/	AP = /<0>/  FP = /<0>/  SP = /<0>/  PC = /<0><128> ;

20 00 20 3D 20 50 53 20 20 00 20 3D  009F       

            80 00'20 3D 20 43 50 20  00AB       

            80 00 20 3D 4C 53 50 09  00B3    66 	.ASCII	/	PSL= /<0><128>	;

                        00 20 09 09  00BB    67 SIGCTL:	.ASCIZ	/		 /	;

61 20 6C 61 6E 67 69 53 20 20 20 20  00BF    68 SIGMSG:	.ASCIZ	/    Signal arguments/	;

         00 73 74 6E 65 6D 75 67 72  00CB       

   00 20 3D 20 20 20 65 6D 61 4E 09  00D4    69 SIGNAM:	.ASCIZ	/	Name   = /	;SIGNAL NAME

   00 20 3D 20 72 65 62 6D 75 4E 09  00DF    70 SIGNUM:	.ASCIZ	/	Number = /	;SIGNAL ARGUMENTS NUMBER

EXCEPTMSG       - EXCEPTION MESSAGE FORMAT AND PRINT ROUTINE     22-AUG-1978 00:11:13   VAX-11 MACRO X0.3-11               Page   3

00              EXCEPTION MESSAGE FORMAT AND PRINT ROUTINE                                                                       (1)



                                     00EA    72 	.SBTTL	EXCEPTION MESSAGE FORMAT AND PRINT ROUTINE

                                     00EA    73 ;+

                                     00EA    74 ; EXE$EXCMSG - EXCEPTION MESSAGE FORMAT AND PRINT ROUTINE

                                     00EA    75 ;

                                     00EA    76 ; THIS ROUTINE IS CALLED WHEN NO EXCEPTION HANDLER CAN BE FOUND OR ALL HANDLERS

                                     00EA    77 ; RESIGNAL. ITS FUNCTION IS TO PRINT A SUMMARY OF THE CURRENT PROCESS STATE AND

                                     00EA    78 ; WHY THE PROCESS RECEIVED THE EXCEPTION.

                                     00EA    79 ;

                                     00EA    80 ; INPUTS:

                                     00EA    81 ;

                                     00EA    82 ;	MESSAGE(AP) = ADDRESS OF MESSAGE SUFFIX STRING.

                                     00EA    83 ;	SIGNAL(AP) = ADDRESS OF SIGNAL ARGUMENT LIST.

                                     00EA    84 ;

                                     00EA    85 ; OUTPUTS:

                                     00EA    86 ;

                                     00EA    87 ;	THE HEADING MESSAGE IS FORMATTED BY ADDING THE SPECIFIED SUFFIX AND

                                     00EA    88 ;	IS THEN WRITTEN TO 'SYS$ERROR'. THIS INFORMATION IS FOLLOWED BY A DUMP

                                     00EA    89 ;	OF THE SIGNAL ARGUMENTS AND GENERAL REGISTERS. WHILE THE OUTPUT IS

                                     00EA    90 ;	BEING WRITTEN TO 'SYS$ERROR' IT IS ALSO WRITTEN TO 'SYS$OUTPUT' IF

                                     00EA    91 ;	THEY ARE DIFFERENT FILES.

                                     00EA    92 ;-

                                     00EA    93  

                               0FFC' 00EA    94 	.ENTRY	EXE$EXCMSG,^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,R11>

                                 04  00EC    95 	RET				; NO-OP FOR NOW

            5E         B0 AE     9E  00ED    96 	MOVAB	-BUFSIZ(SP),SP		;ALLOCATE SPACE FOR OUTPUT BUFFER

            57            5E     D0  00F1    97 	MOVL	SP,R7			;SAVE ADDRESS OF OUTPUT BUFFER

            5E         BC AE     9E  00F4    98 	MOVAB	-17*4(SP),SP		;ALLOCATE REGISTER SAVE AREA

            56         08 AC     D0  00F8    99 	MOVL	SIGNAL(AP),R6		;GET ADDRESS OF SIGNAL ARGUMENTS

            50            5E     D0  00FC   100 	MOVL	SP,R0			;SET ADDRESS OF REGISTER SAVE AREA

            51         08 A6     D0  00FF   101 	MOVL	CHF$L_MCHARGLST(R6),R1	;GET ADDRESS OF MECHANISM ARRAY

            80         0C A1     7D  0103   102 	MOVQ	CHF$L_MCH_SAVR0(R1),(R0)+ ;INSERT ORIGINAL R0 AND R1

            51         14 AD     9E  0107   103 	MOVAB	20(FP),R1		;GET ADDRESS OF SAVED REGISTERS

            52            0A     D0  010B   104 	MOVL	#10,R2			;SET REGISTER COUNT

            80            81     D0  010E   105 10$:	MOVL	(R1)+,(R0)+		;INSERT ORIGINAL REGISTERS

            FA            52     F5  0111   106 	SOBGTR	R2,10$			;ANY MORE REGISTERS TO SAVE?

            80         08 AD     7D  0114   107 	MOVQ	8(FP),(R0)+		;INSERT ARGUMENT AND FRAME POINTERS

            56         04 A6     D0  0118   108 	MOVL	CHF$L_SIGARGLST(R6),R6	;GET ADDRESS OF SIGNAL ARRAY

            55            66     D0  011C   109 	MOVL	(R6),R5			;GET NUMBER OF SIGNAL ARGUMENTS

            80         04 A645   DE  011F   110 	MOVAL	4(R6)[R5],(R0)+		;INSERT STACK POINTER ADDRESS

            80         FC A645   D0  0124   111 	MOVL	-4(R6)[R5],(R0)+	;INSERT SAVED PROGRAM COUNTER

            60            6645   D0  0129   112 	MOVL	(R6)[R5],(R0)		;INSERT SAVED PROCESSOR STATUS

                                     012D   113 ;	MOVAB	(R7),RAB$L_RBF(R10)	;SET ADDRESS OF RECORD BUFFER

                                     012D   114 ;	MOVAB	(R7),RAB$L_RBF(R11)	;SET ADDRESS OF RECORD BUFFER

                          73     10  012D   115 	BSBB	PUT			;OUTPUT RECORD

            51       FECD CF     9E  012F   116 	MOVAB	HEADNG,R1		;GET ADDRESS OF INITIAL HEADING

                          57     10  0134   117 	BSBB	INSERT			;INSERT HEADING IN OUTPUT BUFFER

            51         04 AC     D0  0136   118 	MOVL	MESSAGE(AP),R1		;GET ADDRESS OF MESSAGE SUFFIX

                          62     10  013A   119 	BSBB	PUTI			;INSERT SUFFIX IN OUTPUT BUFFER AND PRINT

            51         80 AF     9E  013C   120 	MOVAB	SIGMSG,R1		;GET ADDRESS OF SIGNAL ARGUMENT MESSAGE

                          5C     10  0140   121 	BSBB	PUTI			;INSERT MESSAGE IN OUTPUT BUFFER AND PRINT

            51         9A AF     9E  0142   122 	MOVAB	SIGNUM,R1		;GET ADDRESS OF ARGUMENT NUMBER PREFIX

                          45     10  0146   123 	BSBB	INSERT			;INSERT PREFIX IN OUTPUT BUFFER

            66            01     C3  0148   124 	SUBL3	#1,(R6),R5		;CALCULATE NUMBER OF SIGNAL ARGUMENTS - 1

                          55         014B       

                          4C     10  014C   125 	BSBB	PUTC			;CONVERT NUMBER AND OUTPUT RECORD

            51         83 AF     9E  014E   126 	MOVAB	SIGNAM,R1		;GET ADDRESS OF SIGNAL NAME PREFIX

                          39     10  0152   127 	BSBB	INSERT			;INSERT PREFIX IN OUTPUT BUFFER

EXCEPTMSG       - EXCEPTION MESSAGE FORMAT AND PRINT ROUTINE     22-AUG-1978 00:11:13   VAX-11 MACRO X0.3-11               Page   4

00              EXCEPTION MESSAGE FORMAT AND PRINT ROUTINE                                                                       (1)



                          44     10  0154   128 	BSBB	PUTC			;CONVERT NAME AND OUTPUT RECORD

            51       FF61 CF     9E  0156   129 20$:	MOVAB	SIGCTL,R1		;GET ADDRESS OF INDENT MESSAGE

                          30     10  015B   130 	BSBB	INSERT			;INSERT INDENT PREFIX IN OUTPUT BUFFER

                          3B     10  015D   131 	BSBB	PUTC			;CONVERT NUMBER AND OUTPUT RECORD

            F4            55     F5  015F   132 	SOBGTR	R5,20$			;ANY MORE TO CONVERT?

                          3E     10  0162   133 	BSBB	PUT			;OUTPUT BLANK LINE

            51       FEB9 CF     9E  0164   134 	MOVAB	REGMSG,R1		;GET ADDRESS OF REGISTER DUMP MESSAGE

                          33     10  0169   135 	BSBB	PUTI			;INSERT MESSAGE IN OUTPUT BUFFER AND PRINT

            54            05     D0  016B   136 	MOVL	#5,R4			;SET NUMBER OF LINES TO PRINT

            55       FEC1 CF     9E  016E   137 	MOVAB	REGDMP,R5		;SET ADDRESS OF REGISTER DUMP CONTROL STRING

            56            5E     D0  0173   138 	MOVL	SP,R6			;SET ADDRESS OF REGISTER SAVE AREA

            50            85     98  0176   139 30$:	CVTBL	(R5)+,R0		;GET NEXT BYTE FROM CONTROL STRING

                          04     15  0179   140 	BLEQ	40$			;IF LEQ CONTROL BYTE

                          19     10  017B   141 	BSBB	PUTB			;PUT BYTE IN OUTPUT BUFFER

                          F7     11  017D   142 	BRB	30$			;

                          04     19  017F   143 40$:	BLSS	50$			;IF LSS END OF LINE

                          22     10  0181   144 	BSBB	CONVERT			;CONVERT NEXT REGISTER VALUE

                          F1     11  0183   145 	BRB	30$			;

                          1B     10  0185   146 50$:	BSBB	PUT			;OUTPUT RECORD

            EC            54     F5  0187   147 	SOBGTR	R4,30$			;ANY MORE LINES TO PRINT?

                          16     10  018A   148 	BSBB	PUT			;OUTPUT RECORD

                                 04  018C   149 	RET				;

                                     018D   150  

                                     018D   151 ;

                                     018D   152 ; INSERT TEXT IN OUTPUT BUFFER

                                     018D   153 ;

                                     018D   154  

                                     018D   155 	.ENABL	LSB

            50            81     9A  018D   156 INSERT:	MOVZBL	(R1)+,R0		;GET NEXT BYTE FROM TEXT STRING

                          07     13  0190   157 	BEQL	10$			;IF EQL END OF TEXT STRING

                          02     10  0192   158 	BSBB	PUTB			;PUT BYTE IN OUTPUT BUFFER

                          F7     11  0194   159 	BRB	INSERT			;

                                     0196   160  

                                     0196   161 ;

                                     0196   162 ; PUT BYTE IN OUTPUT BUFFER

                                     0196   163 ;

                                     0196   164  

                                     0196   165 PUTB:					;

                                     0196   166 ;	TSTW	RAB$W_RSZ(R10)		;ANY ROOM LEFT IN BUFFER

                                     0196   167 ;	BEQL	10$			;IF EQL NO

                                     0196   168 ;	DECW	RAB$W_RSZ(R10)		;DECREMENT NUMBER OF BYTES REMAINING

            87            50     90  0196   169 	MOVB	R0,(R7)+		;INSERT BYTE IN OUTPUT BUFFER

                                 05  0199   170 10$:	RSB				;

                                     019A   171 	.DSABL	LSB

                                     019A   172  

                                     019A   173 ;

                                     019A   174 ; CONVERT HEXDECIMAL VALUE AND OUTPUT RECORD

                                     019A   175 ;

                                     019A   176  

                          09     10  019A   177 PUTC:	BSBB	CONVERT			;CONVERT HEXDECIMAL VALUE

                          04     11  019C   178 	BRB	PUT			;OUTPUT RECORD

                                     019E   179  

                                     019E   180 ;

                                     019E   181 ; INSERT TEXT IN OUTPUT BUFFER AND OUTPUT RECORD AND BLANK RECORD

                                     019E   182 ;

                                     019E   183  

                          ED     10  019E   184 PUTI:	BSBB	INSERT			;INSERT TEXT IN BUFFER

EXCEPTMSG       - EXCEPTION MESSAGE FORMAT AND PRINT ROUTINE     22-AUG-1978 00:11:13   VAX-11 MACRO X0.3-11               Page   5

00              EXCEPTION MESSAGE FORMAT AND PRINT ROUTINE                                                                       (1)



                          00     10  01A0   185 	BSBB	PUT			;OUTPUT RECORD

                                     01A2   186  

                                     01A2   187 ;

                                     01A2   188 ; OUTPUT CURRENT RECORD AND RESET RECORD PARAMETERS

                                     01A2   189 ;

                                     01A2   190  

                                     01A2   191 PUT:					;

                                     01A2   192 ;	SUBL3	RAB$L_RBF(R10),R7,R0	;CALCULATE LENGTH OF OUTPUT RECORD

                                     01A2   193 ;	MOVW	R0,RAB$W_RSZ(R10)	;SET LENGTH OF OUTPUT RECORD

                                     01A2   194 ;	MOVW	R0,RAB$W_RSZ(R11)	;SET LENGTH OF OUTPUT RECORD

                                     01A2   195 ;	$PUT	RAB=(R10)		;OUTPUT RECORD

                                     01A2   196 ;	MOVL	RAB$L_RBF(R10),R7	;RESET OUTPUT RECORD POINTER

                                     01A2   197 ;	MOVZBW	#BUFSIZ,RAB$W_RSZ(R10)	;RESET OUTPUT RECORD BUFFER SIZE

                                     01A2   198 ;	CMPW	RAB$W_ISI(R10),RAB$W_ISI(R11) ;ERROR AND OUTPUT FILES EQUIVALENCT?

                          00     13  01A2   199 	BEQL	10$			;IF EQL YES

                                     01A4   200 ;	$PUT	RAB=(R11)		;OUTPUT RECORD

                                 05  01A4   201 10$:	RSB				;

                                     01A5   202  

                                     01A5   203 ;

                                     01A5   204 ; CONVERT NUMBER BASE 16

                                     01A5   205 ;

                                     01A5   206  

                                     01A5   207 CONVERT:				;

            52            1C     D0  01A5   208 	MOVL	#28,R2			;SET STARTING BIT NUMBER

            51            86     D0  01A8   209 	MOVL	(R6)+,R1		;GET NUMBER TO BE CONVERTED

            04            52     EF  01AB   210 10$:	EXTZV	R2,#4,R1,R0		;GET NEXT HEXDECIMAL DIGIT

            50            51         01AE       

            50   00000000'EF40   9A  01B0   211 	MOVZBL	EXE$AB_HEXTAB[R0],R0	;CONVERT HEXDIGIT TO ASCII

                          DC     10  01B8   212 	BSBB	PUTB			;PUT BYTE IN OUTPUT BUFFER

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

            FFEA          52         01BE       

                                 05  01C1   214 	RSB				;

                                     01C2   215  

                                     01C2   216 	.END

EXCEPTMSG       - EXCEPTION MESSAGE FORMAT AND PRINT ROUTINE     22-AUG-1978 00:11:13   VAX-11 MACRO X0.3-11               Page   6

SYMBOL TABLE                                                                                                                     (1)



BUFSIZ         = 00000050            

CHF$L_MCHARGLST  00000008            

CHF$L_MCH_ARGS   00000000            

CHF$L_MCH_DEPTH  00000008            

CHF$L_MCH_FRAME  00000004            

CHF$L_MCH_SAVR0  0000000C            

CHF$L_MCH_SAVR1  00000010            

CHF$L_SIGARGLST  00000004            

CHF$L_SIG_ARG1   00000008            

CHF$L_SIG_ARGS   00000000            

CHF$L_SIG_NAME   00000004            

CONVERT          000001A5 R     03   

EXE$AB_HEXTAB    ********   X   03   

EXE$EXCMSG       000000EA RG    03   

GBL...         = 00000000            

HEADNG           00000000 R     03   

INSERT           0000018D R     03   

MESSAGE        = 00000004            

PUT              000001A2 R     03   

PUTB             00000196 R     03   

PUTC             0000019A R     03   

PUTI             0000019E R     03   

REGDMP           00000033 R     03   

REGMSG           00000021 R     03   

SIGCTL           000000BB R     03   

SIGMSG           000000BF R     03   

SIGNAL         = 00000008            

SIGNAM           000000D4 R     03   

SIGNUM           000000DF R     03   





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

YEXEPAGED        000001C2      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

27192. BYTES LEFT IN FREE MEMORY POOL.

32. BYTES OF RECLAIMED MEMORY.

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

2 MLB DIR RDS - 59 GETS TO DEFINE 5 MACROS. 5 INTER. FILE WRITES. 

