Failure Message Builder 4-FEB-2004 11:02:01 BLISS-32I T1.1-053 Page 1 19-MAR-2002 10:11:43 [LASTOVICA.XPORT.VMSGEN]SMSG.BLI;1 0 1 MODULE SMSG ( IDENT = 'X00.05' %TITLE 'Failure Message Builder' 0 2 %BLISS32( ,ADDRESSING_MODE( EXTERNAL=LONG_RELATIVE ) ) 0 3 %BLISS36( ,ENTRY( XST$INIT_MSG, XST$STRING, XST$QUOTED ),OTS='' ) 0 4 ) = 0 5 BEGIN 1 6 1 7 ! 1 8 ! COPYRIGHT (c) 1980 BY 1 9 ! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. 1 10 ! 1 11 ! THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED 1 12 ! ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE 1 13 ! INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER 1 14 ! COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY 1 15 ! OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY 1 16 ! TRANSFERRED. 1 17 ! 1 18 ! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE 1 19 ! AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT 1 20 ! CORPORATION. 1 21 ! 1 22 ! DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS 1 23 ! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. 1 24 ! 1 25 1 26 !++ 1 27 ! 1 28 ! FACILITY: BLISS Library 1 29 ! 1 30 ! ABSTRACT: 1 31 ! 1 32 ! This module is the Failure Action Routine Message Builder. It was 1 33 ! created to eliminate a significant amount of redundant code in the 1 34 ! XPORT default failure action routines. 1 35 ! 1 36 ! ENVIRONMENT: User mode - multiple host operating/file systems 1 37 ! 1 38 ! AUTHOR: Ward Clark, CREATION DATE: 28 February 1980 1 39 ! 1 40 !-- SMSG Failure Message Builder 4-FEB-2004 11:02:01 BLISS-32I T1.1-053 Page 2 X00.05 19-MAR-2002 10:11:43 [LASTOVICA.XPORT.VMSGEN]SMSG.BLI;1 1 42 ! 1 43 ! TABLE OF CONTENTS: 1 44 ! 1 45 1 46 %IF NOT %BLISS(BLISS16) %THEN 1 47 FORWARD ROUTINE 1 48 XST$INIT_MSG : NOVALUE, ! Message initialization routine 1 49 XST$STRING : NOVALUE, ! Append string to message routine 1 50 XST$QUOTED : NOVALUE; ! Append quoted string to message 1 51 %FI 1 52 1 53 ! 1 54 ! INCLUDE FILES: 1 55 ! 1 56 1 57 LIBRARY 'XPORT' ; ! Public XPORT control block and macro definitions 1 59 LIBRARY 'XPOSYS' ; ! Internal XPORT macro definitions 1 61 1 62 $XPO_SYS_TEST( $ALL ) ; %PRINT: This module was compiled for any VAX-11 system ; %PRINT: XPORT V1.3-51 XPOSYS V1.3-16 XPO$K_VERSION = 1 XPO$K_LEVEL = 3 1 63 1 64 ! 1 65 ! MACROS: 1 66 ! 1 67 1 68 ! 1 69 ! EQUATED SYMBOLS: 1 70 ! 1 71 1 72 ! 1 73 ! PSECT DECLARATIONS: 1 74 ! 1 75 1 76 $XPO_PSECTS ! Declare XPORT PSECT names and attributes 1 77 1 78 ! 1 79 ! OWN STORAGE: 1 80 ! 1 81 1 82 ! See individual routines 1 83 1 84 ! 1 85 ! EXTERNAL REFERENCES: 1 86 ! SMSG XST$INIT_MSG - Initialize failu 4-FEB-2004 11:02:01 BLISS-32I T1.1-053 Page 3 X00.05 19-MAR-2002 10:11:43 [LASTOVICA.XPORT.VMSGEN]SMSG.BLI;1 1 88 %TITLE 'XST$INIT_MSG - Initialize failure message' 1 89 1 90 GLOBAL ROUTINE XST$INIT_MSG( string ) : NOVALUE = 1 91 1 92 !++ 1 93 ! 1 94 ! FUNCTIONAL DESCRIPTION: 1 95 ! 1 96 ! This routine initializes the failure message buffer. 1 97 ! 1 98 ! FORMAL PARAMETERS: 1 99 ! 1 100 ! string - address of string descriptor 1 101 ! 1 102 ! IMPLICIT INPUTS: 1 103 ! 1 104 ! None 1 105 ! 1 106 ! IMPLICIT OUTPUTS: 1 107 ! 1 108 ! None 1 109 ! 1 110 ! ROUTINE VALUE: 1 111 ! 1 112 ! None 1 113 ! 1 114 ! SIDE EFFECTS: 1 115 ! 1 116 ! None 1 117 ! 1 118 !-- 1 119 1 120 BEGIN 2 121 2 122 EXTERNAL 2 123 XST$MESSAGE : $STR_DESCRIPTOR(); ! Message buffer descriptor 2 124 2 125 ! 2 126 ! Initialize the message buffer with the caller's string. 2 127 ! 2 128 2 129 $STR_COPY( STRING = .string, P 2 130 TARGET = XST$MESSAGE, P 2 131 OPTION = TRUNCATE, P 2 132 FAILURE = 0 ); 2 133 2 134 ! 2 135 ! Return to the caller. 2 136 ! 2 137 2 138 RETURN 2 139 2 140 END; 1 141 1 142 $XPO_MODULE( SMSG1 ) SMSG XST$STRING - Add String to Fail 4-FEB-2004 11:02:01 BLISS-32I T1.1-053 Page 4 X00.05 19-MAR-2002 10:11:43 [LASTOVICA.XPORT.VMSGEN]SMSG.BLI;1 1 144 %TITLE 'XST$STRING - Add String to Failure Message' 1 145 1 146 GLOBAL ROUTINE XST$STRING( string ) : NOVALUE = 1 147 1 148 !++ 1 149 ! 1 150 ! FUNCTIONAL DESCRIPTION: 1 151 ! 1 152 ! This routine appends a string to the current failure message. 1 153 ! 1 154 ! FORMAL PARAMETERS: 1 155 ! 1 156 ! string - address of a string descriptor 1 157 ! 1 158 ! IMPLICIT INPUTS: 1 159 ! 1 160 ! None 1 161 ! 1 162 ! IMPLICIT OUTPUTS: 1 163 ! 1 164 ! None 1 165 ! 1 166 ! ROUTINE VALUE: 1 167 ! 1 168 ! None 1 169 ! 1 170 ! SIDE EFFECTS: 1 171 ! 1 172 ! None 1 173 ! 1 174 !-- 1 175 1 176 BEGIN 2 177 2 178 EXTERNAL 2 179 XST$MESSAGE : $STR_DESCRIPTOR(); ! Message buffer descriptor 2 180 2 181 ! 2 182 ! Add the caller's string to the end of the current failure message. 2 183 ! 2 184 2 185 $STR_APPEND( STRING = .string, P 2 186 TARGET = XST$MESSAGE, P 2 187 OPTION = TRUNCATE, P 2 188 FAILURE = 0 ); 2 189 2 190 ! 2 191 ! Return to the caller. 2 192 ! 2 193 2 194 RETURN 2 195 2 196 END; 1 197 1 198 $XPO_MODULE( SMSG2 ) SMSG XST$QUOTED - Add Quoted String 4-FEB-2004 11:02:01 BLISS-32I T1.1-053 Page 5 X00.05 19-MAR-2002 10:11:43 [LASTOVICA.XPORT.VMSGEN]SMSG.BLI;1 1 200 %TITLE 'XST$QUOTED - Add Quoted String to Failure Message' 1 201 1 202 GLOBAL ROUTINE XST$QUOTED( string ) : NOVALUE = 1 203 1 204 !++ 1 205 ! 1 206 ! FUNCTIONAL DESCRIPTION: 1 207 ! 1 208 ! This routine adds a quoted version of the caller's string 1 209 ! to the current failure message. If the caller's string is 1 210 ! invalid, error text is substituted for the string. 1 211 ! 1 212 ! FORMAL PARAMETERS: 1 213 ! 1 214 ! string - address of string descriptor 1 215 ! 1 216 ! IMPLICIT INPUTS: 1 217 ! 1 218 ! None 1 219 ! 1 220 ! IMPLICIT OUTPUTS: 1 221 ! 1 222 ! None 1 223 ! 1 224 ! ROUTINE VALUE: 1 225 ! 1 226 ! None 1 227 ! 1 228 ! SIDE EFFECTS: 1 229 ! 1 230 ! None 1 231 ! 1 232 !-- 1 233 1 234 BEGIN 2 235 2 236 MAP 2 237 string : REF $STR_DESCRIPTOR(); 2 238 2 239 OWN 2 240 apostrophe : $STR_DESCRIPTOR( STRING = '''' ), 2 241 2 242 invalid_string : $STR_DESCRIPTOR( STRING = '[invalid string]' ); 2 243 2 244 EXTERNAL 2 245 XST$MESSAGE : $STR_DESCRIPTOR(); ! Message buffer descriptor 2 246 2 247 2 248 ! 2 249 ! If the caller's string is valid, add it to the current message. 2 250 ! 2 251 2 252 IF $STR_VALIDATE( .string ) ! See if the string is valid. 3 253 THEN 2 254 BEGIN 3 255 $STR_APPEND( STRING = apostrophe, TARGET = XST$MESSAGE, OPTION = TRUNCATE, FAILURE = 0 ); 3 256 $STR_APPEND( STRING = .string, TARGET = XST$MESSAGE, OPTION = TRUNCATE, FAILURE = 0 ); SMSG XST$QUOTED - Add Quoted String 4-FEB-2004 11:02:01 BLISS-32I T1.1-053 Page 6 X00.05 19-MAR-2002 10:11:43 [LASTOVICA.XPORT.VMSGEN]SMSG.BLI;1 3 257 $STR_APPEND( STRING = apostrophe, TARGET = XST$MESSAGE, OPTION = TRUNCATE, FAILURE = 0 ); 3 258 END 3 259 3 260 ! 3 261 ! Add error text to the message if the caller's string is invalid. 3 262 ! 3 263 3 264 ELSE 2 265 $STR_APPEND( STRING = invalid_string, TARGET = XST$MESSAGE, OPTION = TRUNCATE, FAILURE = 0 ); 2 266 2 267 ! 2 268 ! Return to the caller. 2 269 ! 2 270 2 271 RETURN 2 272 2 273 END; 1 274 END 1 275 ELUDOM SMSG Machine Code Listing 4-FEB-2004 11:02:01 BLISS-32I T1.1-053 Page 7 X00.05 19-MAR-2002 10:11:43 [LASTOVICA.XPORT.VMSGEN]SMSG.BLI;1 .psect _XPO$CODE, CON, LCL, SHR, EXE, NOWRT, NOVEC .proc XST$INIT_MSG .align 32 .global XST$INIT_MSG XST$INIT_MSG: // 000090 { .mii 002C00412880 0000 alloc r34 = rspfs, 1, 3, 5, 0 000188000840 0001 mov r33 = br0 0000B2000940 0002 sxt4 r37 = STRING // r37 = r32 // 000132 } { .mmi 0108001008C0 0010 mov r35 = r1 // 000090 012000100800 0011 add r32 = @ltoff(XST$MESSAGE), r1 // 000132 01200000A640 0012 mov r25 = 5 } { .mii 012600000900 0020 addl r36 = 24576, r0 0000B0000A00 0021 sxt4 r40 = r0 0000B00009C0 0022 sxt4 r39 = r0 ;; } { .mmi 0080C2000800 0030 ld8 r32 = XST$MESSAGE ;; // r32 = [r32] 000008000000 0031 nop.m 0 0000B2000980 0032 sxt4 r38 = r32 } { .mfb 000008000000 0040 nop.m 0 000008000000 0041 nop.f 0 00A000001000 0042 br.call.sptk.many br0 = XST$COPY ;; } { .mii 010802300040 0050 mov r1 = r35 000154044000 0051 mov.i rspfs = r34 // 000138 000E00142000 0052 mov br0 = r33 ;; } { .mfb 000008000000 0060 nop.m 0 000008000000 0061 nop.f 0 000108001100 0062 br.ret.sptk.many br0 ;; } .endp XST$INIT_MSG Routine Size: 112 bytes, Routine Base: _XPO$CODE + 0000 .proc XST$STRING .align 32 .global XST$STRING XST$STRING: // 000146 { .mii 002C00412880 0070 alloc r34 = rspfs, 1, 3, 5, 0 000188000840 0071 mov r33 = br0 0000B2000940 0072 sxt4 r37 = STRING // r37 = r32 // 000188 } { .mmi 0108001008C0 0080 mov r35 = r1 // 000146 012000100800 0081 add r32 = @ltoff(XST$MESSAGE), r1 // 000188 01200000A640 0082 mov r25 = 5 SMSG Machine Code Listing 4-FEB-2004 11:02:01 BLISS-32I T1.1-053 Page 8 X00.05 XST$STRING 19-MAR-2002 10:11:43 [LASTOVICA.XPORT.VMSGEN]SMSG.BLI;1 } { .mii 012600000900 0090 addl r36 = 24576, r0 0000B0000A00 0091 sxt4 r40 = r0 0000B00009C0 0092 sxt4 r39 = r0 ;; } { .mmi 0080C2000800 00A0 ld8 r32 = XST$MESSAGE ;; // r32 = [r32] 000008000000 00A1 nop.m 0 0000B2000980 00A2 sxt4 r38 = r32 } { .mfb 000008000000 00B0 nop.m 0 000008000000 00B1 nop.f 0 00A000001000 00B2 br.call.sptk.many br0 = XST$APPEND ;; } { .mii 010802300040 00C0 mov r1 = r35 000154044000 00C1 mov.i rspfs = r34 // 000194 000E00142000 00C2 mov br0 = r33 ;; } { .mfb 000008000000 00D0 nop.m 0 000008000000 00D1 nop.f 0 000108001100 00D2 br.ret.sptk.many br0 ;; } .endp XST$STRING Routine Size: 112 bytes, Routine Base: _XPO$CODE + 0070 .proc XST$QUOTED .align 32 .global XST$QUOTED XST$QUOTED: // 000202 { .mii 002C00E26B00 00E0 alloc r44 = rspfs, 1, 13, 5, 0 000188000AC0 00E1 mov r43 = br0 010800100B40 00E2 mov r45 = r1 } { .mib 012000002640 00F0 mov r25 = 1 // 000252 0000B2000B80 00F1 sxt4 r46 = STRING // r46 = r32 004000000000 00F2 nop.b 0 ;; } { .mfb 000008000000 0100 nop.m 0 000008000000 0101 nop.f 0 00A000001000 0102 br.call.sptk.many br0 = XST$VALIDATE } { .mib 010802D00040 0110 mov r1 = r45 00A0308001C0 0111 tbit.z pr7, pr6 = r8, 0 00860001E007 0112 (pr7) br.cond.dpnt.few L$3 ;; } { .mii 012000100A40 0120 add r41 = @ltoff(APOSTROPHE), r1 // 000255 012000100A00 0121 add r40 = @ltoff(XST$MESSAGE), r1 SMSG Machine Code Listing 4-FEB-2004 11:02:01 BLISS-32I T1.1-053 Page 9 X00.05 XST$QUOTED 19-MAR-2002 10:11:43 [LASTOVICA.XPORT.VMSGEN]SMSG.BLI;1 01200000A640 0122 mov r25 = 5 } { .mii 012600000B80 0130 addl r46 = 24576, r0 0000B0000C80 0131 sxt4 r50 = r0 0000B0000C40 0132 sxt4 r49 = r0 ;; } { .mmi 0080C2900A40 0140 ld8 r41 = APOSTROPHE // r41 = [r41] 0080C2800A00 0141 ld8 r40 = XST$MESSAGE // r40 = [r40] 000008000000 0142 nop.i 0 ;; } { .mii 000008000000 0150 nop.m 0 0000B2900BC0 0151 sxt4 r47 = r41 0000B2800C00 0152 sxt4 r48 = r40 } { .mfb 000008000000 0160 nop.m 0 000008000000 0161 nop.f 0 00A000001000 0162 br.call.sptk.many br0 = XST$APPEND ;; } { .mii 01200000A640 0170 mov r25 = 5 // 000256 0000B0000C80 0171 sxt4 r50 = r0 0000B0000C40 0172 sxt4 r49 = r0 } { .mii 012600000B80 0180 addl r46 = 24576, r0 0000B2800C00 0181 sxt4 r48 = r40 0000B2000BC0 0182 sxt4 r47 = STRING // r47 = r32 } { .mfb 010802D00040 0190 mov r1 = r45 // 000255 000008000000 0191 nop.f 0 004000000000 0192 nop.b 0 ;; } { .mfb 000008000000 01A0 nop.m 0 000008000000 01A1 nop.f 0 00A000001000 01A2 br.call.sptk.many br0 = XST$APPEND // 000256 } { .mii 01200000A640 01B0 mov r25 = 5 // 000257 0000B0000C80 01B1 sxt4 r50 = r0 0000B0000C40 01B2 sxt4 r49 = r0 } { .mii 012600000B80 01C0 addl r46 = 24576, r0 0000B2800C00 01C1 sxt4 r48 = r40 0000B2900BC0 01C2 sxt4 r47 = r41 } { .mfb 010802D00040 01D0 mov r1 = r45 // 000256 000008000000 01D1 nop.f 0 004000000000 01D2 nop.b 0 ;; } SMSG Machine Code Listing 4-FEB-2004 11:02:01 BLISS-32I T1.1-053 Page 10 X00.05 XST$QUOTED 19-MAR-2002 10:11:43 [LASTOVICA.XPORT.VMSGEN]SMSG.BLI;1 { .mfb 000008000000 01E0 nop.m 0 000008000000 01E1 nop.f 0 00A000001000 01E2 br.call.sptk.many br0 = XST$APPEND // 000257 } { .mfb 000008000000 01F0 nop.m 0 000008000000 01F1 nop.f 0 00800000C000 01F2 br.sptk.few L$7 ;; } 0200 L$3: // 000265 { .mii 012000100A80 0200 add r42 = @ltoff(INVALID_STRING), r1 01200000A640 0201 mov r25 = 5 0000B0000C80 0202 sxt4 r50 = r0 } { .mib 012600000B80 0210 addl r46 = 24576, r0 0000B0000C40 0211 sxt4 r49 = r0 004000000000 0212 nop.b 0 ;; } { .mmi 0080C2A00A80 0220 ld8 r42 = INVALID_STRING ;; // r42 = [r42] 000008000000 0221 nop.m 0 0000B2A00BC0 0222 sxt4 r47 = r42 } { .mmi 012000100A80 0230 add r42 = @ltoff(XST$MESSAGE), r1 ;; 0080C2A00A80 0231 ld8 r42 = XST$MESSAGE // r42 = [r42] 000008000000 0232 nop.i 0 ;; } { .mib 000008000000 0240 nop.m 0 0000B2A00C00 0241 sxt4 r48 = r42 00A000001000 0242 br.call.sptk.many br0 = XST$APPEND ;; } 0250 L$7: { .mii 010802D00040 0250 mov r1 = r45 000154058000 0251 mov.i rspfs = r44 // 000271 000E00156000 0252 mov br0 = r43 ;; } { .mfb 000008000000 0260 nop.m 0 000008000000 0261 nop.f 0 000108001100 0262 br.ret.sptk.many br0 ;; } .endp XST$QUOTED Routine Size: 400 bytes, Routine Base: _XPO$CODE + 00E0 .psect _XPO$DATA, CON, LCL, NOSHR, NOEXE, WRT, NOVEC .lcomm $STR$STRING, 8, 8 .lcomm $STR$STRING, 8, 8 .lcomm P.AAA, 1, 1 .lcomm fill$$1, 3, 4 .lcomm P.AAB, 16, 16 SMSG Machine Code Listing 4-FEB-2004 11:02:01 BLISS-32I T1.1-053 Page 11 X00.05 XST$QUOTED 19-MAR-2002 10:11:43 [LASTOVICA.XPORT.VMSGEN]SMSG.BLI;1 .psect _XPO$DATA, CON, LCL, NOSHR, NOEXE, WRT, NOVEC APOSTROPHE: 0001 0000 data2 0x1 // data2 1 0E 0002 data1 0xE // data1 14 01 0003 data1 0x1 // data1 1 00000000 0004 data4 P.AAA INVALID_STRING: 0010 0008 data2 0x10 // data2 16 0E 000A data1 0xE // data1 14 01 000B data1 0x1 // data1 1 00000000 000C data4 P.AAB .psect _XPO$PLIT, CON, LCL, NOSHR, NOEXE, NOWRT, NOVEC P.AAA: 27 0000 data1 0x27 // data1 39 P.AAB: 766E695B 0004 string "[invalid string]" 64696C61 0008 72747320 000C 5D676E69 0010 .global XST$MESSAGE .section .data .type XST$COPY, @function .global XST$COPY .global XST$MESSAGE .section .data .type XST$APPEND, @function .global XST$APPEND .section .data .type XST$VALIDATE, @function .global XST$VALIDATE .global XST$MESSAGE .section .data .type XST$APPEND, @function .global XST$APPEND .section .data .type XST$APPEND, @function .global XST$APPEND .section .data .type XST$APPEND, @function .global XST$APPEND .section .data .type XST$APPEND, @function .global XST$APPEND ; Library Statistics ; ; -------- Symbols -------- Pages ; File Total Loaded Percent Mapped ; ; DISK$NORMS_OWN:[LASTOVICA.XPORT.VMSGEN]XPORT.L32;14 ; 590 27 4 270 ; DISK$NORMS_OWN:[LASTOVICA.XPORT.VMSGEN]XPOSYS.L32;14 ; 91 14 15 27 Source Listing 4-FEB-2004 11:02:01 BLISS-32I T1.1-053 Page 12 Source Listing 19-MAR-2002 10:11:43 [LASTOVICA.XPORT.VMSGEN]SMSG.BLI;1 Source Listing 4-FEB-2004 11:02:01 BLISS-32I T1.1-053 Page 13 Source Listing 19-MAR-2002 10:11:43 [LASTOVICA.XPORT.VMSGEN]SMSG.BLI;1 COMMAND LINE: BLISSSMSG/LIST/DEBUG