XPO$MESSAGE - XPORT Message Rou 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 1 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 0 1 MODULE XPMSG ( IDENT = 'X00.24' %TITLE 'XPO$MESSAGE - XPORT Message Router' 0 2 %BLISS32( ,ADDRESSING_MODE( EXTERNAL=LONG_RELATIVE ) ) 0 3 %BLISS36( ,ENTRY( XPO$MESSAGE ),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 XPORT message router. 1 33 ! 1 34 ! ENVIRONMENT: User Mode 1 35 ! 1 36 ! AUTHOR: Ward Clark, CREATION DATE: 12 December 1978 1 37 ! 1 38 !-- XPMSG XPO$MESSAGE - XPORT Message Rou 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 2 X00.24 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 1 40 ! 1 41 ! TABLE OF CONTENTS: 1 42 ! 1 43 1 44 FORWARD ROUTINE 1 45 XPO$MESSAGE : FORTRAN_FUNC; ! XPORT message router 1 46 1 47 ! 1 48 ! INCLUDE FILES: 1 49 ! 1 50 1 51 LIBRARY 'XPORT' ; ! Public XPORT control block and macro definitions 1 53 LIBRARY 'XPOSYS' ; ! Internal XPORT macro definitions 1 55 1 56 $XPO_SYS_TEST( $TOPS10, $TOPS20, $VMS, $11M, $IAS, $RSTS, $RT11 ) ; %PRINT: This module was compiled for VAX/VMS ; %PRINT: XPORT V1.3-51 XPOSYS V1.3-16 XPO$K_VERSION = 1 XPO$K_LEVEL = 3 1 57 1 58 %IF $VMS %THEN 1 59 REQUIRE 'XVMS' ; ! XPORT-specific VAX/VMS interface definitions 1 89 %FI 1 90 1 91 %IF $11M %THEN U 1 92 REQUIRE 'XRSX' ; ! XPORT-specific RSX-11 and FCS-11 interface definitions U 1 93 %FI 1 94 1 95 %IF $RSTS %THEN U 1 96 REQUIRE 'XRSTS' ; ! RSTS/E system interface definitions U 1 97 %FI 1 98 1 99 %IF $RT11 %THEN U 1 100 REQUIRE 'XRT11' ; ! RT-11 system interface definitions U 1 101 %FI 1 102 1 103 ! 1 104 ! MACROS: 1 105 ! 1 106 1 107 ! 1 108 ! EQUATED SYMBOLS: 1 109 ! 1 110 1 111 ! 1 112 ! PSECT DECLARATIONS: 1 113 ! 1 114 1 115 $XPO_PSECTS ! Declare XPORT PSECT names and attributes 1 116 1 117 ! 1 118 ! OWN STORAGE: 1 119 ! 1 120 1 121 ! 1 122 ! EXTERNAL REFERENCES: 1 123 ! 1 124 1 125 %IF $TOPS10 OR $TOPS20 %THEN XPMSG XPO$MESSAGE - XPORT Message Rou 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 3 X00.24 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 U 1 126 EXTERNAL U 1 127 XPO$ERROR_IOB : $XPO_IOB(); ! IOB for standard error message output U 1 128 %FI 1 129 1 130 %IF $VMS %THEN 1 131 UNDECLARE XPO$_BAD_LOGIC; 1 132 EXTERNAL LITERAL 1 133 XPO$_BAD_LOGIC; ! Force autocall of XMSGPTR.OBJ during link. 1 134 EXTERNAL ROUTINE 1 135 LIB$SIGNAL : ADDRESSING_MODE(GENERAL); ! VAX/VMS library SIGNAL routine 1 136 %ELSE U 1 137 EXTERNAL ROUTINE U 1 138 XPO$XMSG; ! XPORT message retrieval routine U 1 139 %FI 1 140 1 141 %IF $11M %THEN U 1 142 EXTERNAL U 1 143 XRSX$TI0_LUN, ! LUN for user's terminal U 1 144 XRSX$EVENT_FLAG; ! XPORT event flag number U 1 145 %FI XPMSG XPO$MESSAGE - XPORT Message Rou 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 4 X00.24 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 1 147 GLOBAL ROUTINE XPO$MESSAGE( expl_severity, success_action, failure_action ) : FORTRAN_FUNC = 1 148 1 149 !++ 1 150 ! 1 151 ! FUNCTIONAL DESCRIPTION: 1 152 ! 1 153 ! This routine sends a single-line or multiple-line message to 1 154 ! the standard XPORT output and error device(s). 1 155 ! 1 156 ! FORMAL PARAMETERS: 1 157 ! 1 158 ! expl_severity - explicit message severity code 1 159 ! success_action - address of success action routine 1 160 ! failure_action - address of failure action routine 1 161 ! 1 162 ! pair(s) of message arguments (code, value) 1 163 ! 1 164 ! IMPLICIT INPUTS: 1 165 ! 1 166 ! None 1 167 ! 1 168 ! IMPLICIT OUTPUTS: 1 169 ! 1 170 ! None 1 171 ! 1 172 ! COMPLETION CODES: 1 173 ! 1 174 ! XPO$_NORMAL - message(s) successfully sent 1 175 ! 1 176 ! XPO$_BAD_ARGS - invalid argument list 1 177 ! STR$_BAD_SOURCE - invalid message string descriptor 1 178 ! ( secondary = failure completion code from $STR_VALIDATE ) 1 179 ! failure completion code from $XPO_PUT (except VAX/VMS) 1 180 ! failure completion code from $XPO_GET_MEM (VMS) 1 181 ! 1 182 ! SIDE EFFECTS: 1 183 ! 1 184 ! None 1 185 ! 1 186 !-- 1 187 1 188 BEGIN 2 189 2 190 BUILTIN ! Declare necessary builtin functions: 2 191 ACTUALCOUNT, ! number of arguments 2 192 ACTUALPARAMETER; ! single parameter value fetch 2 193 2 194 LITERAL 2 195 fixed_numb_args = 3, ! Number of fixed arguments (see above) 2 196 max_message = 132; ! Maximum length of a message. 2 197 2 198 LOCAL 2 199 actual_severity; ! message sequence severity code 2 200 2 201 %IF $VMS %THEN 2 202 LOCAL 2 203 signal_arg_desc : ! SIGNAL argument list descriptor XPMSG XPO$MESSAGE - XPORT Message Rou 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 5 X00.24 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 2 204 $XPO_DESCRIPTOR( CLASS = DYNAMIC ); 2 205 %FI 2 206 2 207 ! 2 208 ! XPORT routine initialization. 2 209 ! 2 210 2 211 $XPO_MAIN_BEGIN( PUT_MSG ) ! Define the MAIN_BLOCK code block. 3 212 3 213 actual_severity = .expl_severity; ! Assume that the caller provided an explicit severity code. 3 214 3 215 ! 3 216 ! Validate the routine argument list. 3 217 ! 3 218 3 219 ! The argument list is invalid if one or more 3 220 ! of the following conditions exist: 3 221 IF ACTUALCOUNT() LSS fixed_numb_args+2 OR ! less than minimum number of arguments 3 222 NOT ACTUALCOUNT() OR ! there are an even number of arguments 3 223 .expl_severity GTR XPO$_FATAL ! the severity value is too large 3 224 THEN 3 225 $XPO_QUIT( BAD_ARGS ); ! Return an error code if the argument list is bad. 3 226 3 227 !+ 3 228 ! 3 229 ! System-specific message processing follows. 3 230 ! 3 231 !- XPMSG VAX/VMS Message Processing 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 6 X00.24 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 3 233 %TITLE 'VAX/VMS Message Processing' 3 234 %IF $VMS %THEN 3 235 3 236 !+ 3 237 ! 3 238 ! VAX/VMS Message Processing 3 239 ! 3 240 !- 3 241 3 242 BEGIN 4 243 4 244 LITERAL 4 245 args_per_line = 3, ! Maximum number of SIGNAL arguments per single message 4 246 xpo$_text = SHR$_TEXT + XPO$K_VMS_CODE^16; ! ASCII string message code 4 247 4 248 BUILTIN 4 249 CALLG; ! CALLG needed for out-of-line argument list 4 250 4 251 ! 4 252 ! Allocate and initialize a SIGNAL argument list (vector) in dynamic memory. 4 253 ! 4 254 4 255 $STR_DESC_INIT( DESCRIPTOR = signal_arg_desc, ! Initialize the argument list descriptor. P 4 256 CLASS = DYNAMIC ); 4 257 4 258 $XPO_IF_NOT( $XPO_GET_MEM( ! Allocate and initialize dynamic memory for the argument li 4 258 st. P 4 259 FULLWORDS = 1 + args_per_line * ( ( ACTUALCOUNT()-3 ) / 2 ), P 4 260 DESCRIPTOR = signal_arg_desc, P 4 261 FILL = 0, P 4 262 FAILURE = 0 ) ) 6 263 THEN 5 264 $XPO_QUIT( (.$XPO_STATUS) ); 4 265 4 266 BEGIN 5 267 BIND signal_argument = ! Declare the allocated argument list 5 268 .signal_arg_desc[XPO$A_ADDRESS] : VECTOR; 5 269 5 270 ! 5 271 ! Process the messages one at a time. 5 272 ! 5 273 5 274 INCR argument_index ! Loop until all message arguments have been processed. 5 275 FROM fixed_numb_args+1 TO ACTUALCOUNT() BY 2 DO 5 276 BEGIN 6 277 6 278 ! 6 279 ! Select appropriate argument processing. 6 280 ! 6 281 6 282 CASE ACTUALPARAMETER(.argument_index) ! Use the argument code to select appropriate setup. 6 283 FROM XPO$K_PUT_COD 6 284 TO XPO$K_PUT_STR OF 6 285 SET 6 286 6 287 [ XPO$K_PUT_STR ] : ! STRING= argument setup 6 288 BEGIN XPMSG VAX/VMS Message Processing 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 7 X00.24 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 7 289 IF .actual_severity EQL XPO$_NO_SEV 7 290 THEN 7 291 actual_severity = XPO$_ERROR; 7 292 7 293 $STR_VALIDATE( ! Validate the caller's string descriptor. P 7 294 ACTUALPARAMETER( .argument_index + 1 ), P 7 295 BAD_SOURCE ); 7 296 7 297 ! Add arguments to the end of the argument list: 7 298 signal_argument[ .signal_argument[0] + 1 ] = ! XPORT general message code 7 299 xpo$_text + .actual_severity; ! 7 300 signal_argument[ .signal_argument[0] + 2 ] = 1; ! number of FAO arguments 7 301 signal_argument[ .signal_argument[0] + 3 ] = ! address of caller's string descriptor 7 302 ACTUALPARAMETER( .argument_index + 1 ); 7 303 7 304 signal_argument[0] = ! Increment the argument list length. 7 305 .signal_argument[0] + 3; 7 306 END; 6 307 6 308 [ XPO$K_PUT_COD ] : ! CODE= argument setup 6 309 BEGIN 7 310 LOCAL message_code; 7 311 message_code = ACTUALPARAMETER(.argument_index+1); 7 312 7 313 IF .message_code NEQ 0 7 314 THEN 7 315 BEGIN 8 316 IF .signal_argument[0] EQL 0 ! Setup severity of initial message. 8 317 THEN 8 318 IF .actual_severity EQL XPO$_NO_SEV 8 319 THEN 8 320 actual_severity = .message_code<0,3> 8 321 ELSE 8 322 message_code<0,3> = .actual_severity; 8 323 8 324 ! Add arguments to the end of the argument list: 8 325 signal_argument[.signal_argument[0]+1] = ! caller's message code 8 326 .message_code; ! followed by a zero FAO count 8 327 8 328 signal_argument[0] = ! Increment the argument list length. 8 329 .signal_argument[0] + 2; 8 330 END; 7 331 END; 6 332 6 333 [ OUTRANGE ] : ! Invalid argument code 6 334 $XPO_QUIT( BAD_ARGS ); 6 335 6 336 TES; 6 337 6 338 END; ! End of argument processing loop 5 339 5 340 ! 5 341 ! Use VAX/VMS SIGNAL to send the final message sequence to the user. 5 342 ! 5 343 5 344 CALLG( signal_argument, LIB$SIGNAL ); 5 345 XPMSG VAX/VMS Message Processing 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 8 X00.24 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 5 346 primary_code = XPO$_NORMAL; ! Signalling always succeeds. 5 347 5 348 END; ! End of "BIND" code block 4 349 END; ! End of VAX/VMS code block 3 350 3 351 ! 3 352 ! Free the dynamic memory used by the signal argument list. 3 353 ! 3 354 3 355 $XPO_MAIN_END; ! Terminate MAIN_BLOCK. 2 356 2 357 $XPO_FREE_MEM( BINARY_DATA = signal_arg_desc, P 2 358 FAILURE = 0 ); 2 359 2 360 !+ 2 361 ! 2 362 ! End of VAX/VMS Message Processing 2 363 ! 2 364 !- 2 365 2 366 %FI XPMSG Non-VMS Message Processing 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 9 X00.24 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 2 368 %TITLE 'Non-VMS Message Processing' 2 369 %IF NOT $VMS %THEN U 2 370 U 2 371 !+ U 2 372 ! U 2 373 ! Non-VMS Message Processing U 2 374 ! U 2 375 !- U 2 376 U 2 377 BEGIN U 2 378 U 2 379 %IF $RSTS %THEN U 2 380 LITERAL U 2 381 numb_of_chars = 2; ! number of characters to be appended to the end of the buff U 2 381 er U 2 382 %FI U 2 383 U 2 384 %IF $RT11 %THEN U 2 385 LITERAL U 2 386 numb_of_chars = 1; ! number of characters to be appended to the end of the buff U 2 386 er U 2 387 %FI U 2 388 U 2 389 LOCAL U 2 390 message_buffer : ! message buffer U 2 391 VECTOR[CH$ALLOCATION(max_message)], U 2 392 message_text : REF $STR_DESCRIPTOR(), ! address of message text descriptor U 2 393 xport_text : $STR_DESCRIPTOR(), ! space for XPO$XMSG to build a string descriptor U 2 394 total_message : ! total message descriptor U 2 395 $STR_DESCRIPTOR( CLASS = BOUNDED ); U 2 396 U 2 397 $STR_DESC_INIT( DESCRIPTOR = total_message, ! Initialize the total message descriptor. U 2 398 CLASS = BOUNDED, U 2 399 STRING = ( max_message, CH$PTR(message_buffer) ) ); U 2 400 U 2 401 ! U 2 402 ! Open the user message file IOB if this is the first message. U 2 403 ! U 2 404 U 2 405 %IF $TOPS10 OR $TOPS20 %THEN U 2 406 IF NOT .XPO$ERROR_IOB[IOB$V_OPEN] ! If the error message IOB has not been opened, U 2 407 THEN ! U 2 408 IF NOT $XPO_OPEN( IOB = XPO$ERROR_IOB, ! open the error message file for output. U 2 409 FILE_SPEC = $XPO_ERROR, U 2 410 OPTIONS = OUTPUT, U 2 411 FAILURE = 0 ) U 2 412 THEN U 2 413 $XPO_QUIT( (.XPO$ERROR_IOB[IOB$G_COMP_CODE]) ); U 2 414 %FI U 2 415 U 2 416 %IF $11M %THEN U 2 417 ALUN$S( .XRSX$TI0_LUN, ! Assign the user terminal LUN. U 2 418 %EXACTSTRING( 2, 0, $XPO_INPUT ), U 2 419 0 ); U 2 420 %FI U 2 421 U 2 422 ! XPMSG Non-VMS Message Processing 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 10 X00.24 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 U 2 423 ! Process the messages one at a time. U 2 424 ! U 2 425 U 2 426 INCR argument_index ! Loop until all messages have been sent. U 2 427 FROM fixed_numb_args+1 TO ACTUALCOUNT() BY 2 DO U 2 428 BEGIN U 2 429 U 2 430 ! U 2 431 ! Select appropriate argument processing. U 2 432 ! U 2 433 U 2 434 CASE ACTUALPARAMETER(.argument_index) ! Use the argument code to select appropriate setup. U 2 435 FROM XPO$K_PUT_COD U 2 436 TO XPO$K_PUT_STR OF U 2 437 SET U 2 438 U 2 439 [ XPO$K_PUT_STR ] : ! STRING= argument setup U 2 440 BEGIN U 2 441 IF .actual_severity EQL XPO$_NO_SEV U 2 442 THEN U 2 443 actual_severity = XPO$_ERROR; U 2 444 U 2 445 $STR_VALIDATE( ! Validate the caller's string descriptor. U 2 446 ACTUALPARAMETER( .argument_index + 1 ), U 2 447 BAD_SOURCE ); U 2 448 U 2 449 message_text = ACTUALPARAMETER( .argument_index + 1 ); U 2 450 END; U 2 451 U 2 452 [ XPO$K_PUT_COD ] : ! CODE= argument setup U 2 453 IF ACTUALPARAMETER(.argument_index+1) EQL 0 U 2 454 THEN U 2 455 message_text = 0 U 2 456 ELSE U 2 457 BEGIN U 2 458 IF .actual_severity EQL XPO$_NO_SEV U 2 459 THEN U 2 460 actual_severity = ACTUALPARAMETER(.argument_index+1) AND 7; U 2 461 U 2 462 XPO$XMSG( ACTUALPARAMETER(.argument_index+1), xport_text ); U 2 463 message_text = xport_text; U 2 464 END; U 2 465 U 2 466 [ OUTRANGE ] : ! Invalid argument code U 2 467 $XPO_QUIT( BAD_ARGS ); U 2 468 U 2 469 TES; U 2 470 U 2 471 ! U 2 472 ! Setup the message prefix. U 2 473 ! U 2 474 U 2 475 IF .message_text NEQ 0 ! Bypass CODE=0 message argument. U 2 476 THEN U 2 477 BEGIN U 2 478 IF .argument_index EQL 4 ! If this is the first message of a sequence, U 2 479 THEN ! select an appropriate message prefix XPMSG Non-VMS Message Processing 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 11 X00.24 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 U 2 480 IF .actual_severity GEQ XPO$_ERROR ! based on the severity of the 1st message. U 2 481 THEN U 2 482 $STR_COPY( STRING = '? ', TARGET = total_message, FAILURE = 0 ) U 2 483 ELSE U 2 484 $STR_COPY( STRING = '% ', TARGET = total_message, FAILURE = 0 ) U 2 485 U 2 486 ELSE ! Otherwise, use a hyphen and spaces. U 2 487 $STR_COPY( STRING = '- ', TARGET = total_message, FAILURE = 0 ); U 2 488 U 2 489 %IF $RSTS OR $RT11 %THEN U 2 490 ! U 2 491 ! Specific control characters must appear at the end of the buffer. U 2 492 ! U 2 493 U 2 494 IF .total_message[STR$H_MAXLEN] - ! If there is no room in the buffer for the control U 2 494 characters, U 2 495 .total_message[STR$H_LENGTH] LSS ! U 2 496 .message_text[STR$H_LENGTH] + numb_of_chars ! U 2 497 THEN ! U 2 498 message_text[STR$H_LENGTH]= ! change the length of the message to allow for thes U 2 498 e characters. U 2 499 .total_message[STR$H_MAXLEN] - U 2 500 .total_message[STR$H_LENGTH] - numb_of_chars; U 2 501 %FI U 2 502 U 2 503 ! U 2 504 ! Add the actual message text to the buffer. U 2 505 ! U 2 506 U 2 507 $STR_APPEND( STRING = .message_text, TARGET = total_message, OPTION = TRUNCATE, FAILURE = 0 ); U 2 508 U 2 509 ! U 2 510 ! Send a single message to the user. U 2 511 ! U 2 512 U 2 513 %IF $TOPS10 OR $TOPS20 %THEN U 2 514 primary_code = ! Send a single message to the user. U 2 515 $XPO_PUT( IOB = XPO$ERROR_IOB, U 2 516 STRING = total_message, U 2 517 FAILURE = 0 ); U 2 518 %FI U 2 519 U 2 520 %IF $11M %THEN U 2 521 BEGIN U 2 522 LOCAL status : $QIO_STATUS; U 2 523 U 2 524 QIOW$S( IO$WVB, .XRSX$TI0_LUN, ! Send the message to the user's terminal. U 2 525 .XRSX$EVENT_FLAG,, U 2 526 status,, U 2 527 < .total_message[STR$A_POINTER], U 2 528 .total_message[STR$H_LENGTH], U 2 529 %O'040' > ); U 2 530 U 2 531 primary_code = XPO$_NORMAL; U 2 532 END; U 2 533 %FI U 2 534 XPMSG Non-VMS Message Processing 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 12 X00.24 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 U 2 535 %IF $RSTS %THEN U 2 536 $STR_APPEND( STRING = %STRING( %CHAR(cr), %CHAR(lf) ), U 2 537 TARGET = total_message, FAILURE = 0 ); U 2 538 U 2 539 $XRSTS_INI_FIRQB; ! Initialize the FIRQB. U 2 540 $XRSTS_INI_XRB; ! Initialize the XRB. U 2 541 ! Setup the XRB: U 2 542 $XRSTS_XRB[XRLEN] = ! length of output buffer U 2 543 .total_message[STR$H_LENGTH]; ! U 2 544 $XRSTS_XRB[XRBC] = ! number of bytes to be written U 2 545 .total_message[STR$H_LENGTH]; ! U 2 546 $XRSTS_XRB[XRLOC] = ! starting address of buffer U 2 547 .total_message[STR$A_POINTER]; ! U 2 548 $XRSTS_XRB[XRCI] = 0; ! channel number times 2 (user's terminal is always 0) U 2 549 U 2 550 $WRITE; ! Output the message to the user's terminal. U 2 551 U 2 552 primary_code = XPO$_NORMAL; U 2 553 %FI U 2 554 U 2 555 %IF $RT11 %THEN U 2 556 $STR_APPEND( STRING = %CHAR(null), ! Append a null to the message to automatically get a crlf. U 2 557 TARGET = total_message, FAILURE = 0 ); U 2 558 U 2 559 $PRINT( .total_message[STR$A_POINTER] ); ! Send the message to the user's terminal. U 2 560 U 2 561 primary_code = XPO$_NORMAL; U 2 562 %FI U 2 563 U 2 564 END; U 2 565 U 2 566 END; ! End of message processing loop U 2 567 END; ! End of Non-VMS code block U 2 568 U 2 569 $XPO_MAIN_END; ! Terminate MAIN_BLOCK. U 2 570 U 2 571 !+ U 2 572 ! U 2 573 ! End of Non-VMS message processing U 2 574 ! U 2 575 !- U 2 576 U 2 577 %FI XPMSG XPO$MESSAGE Routine Termination 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 13 X00.24 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 2 579 %TITLE 'XPO$MESSAGE Routine Termination' 2 580 2 581 !+ 2 582 ! 2 583 ! XPO$MESSAGE Routine Termination 2 584 ! 2 585 !- 2 586 2 587 ! 2 588 ! Call an appropriate action routine. 2 589 ! 2 590 2 591 $XPO_ACTION_RTN( actual_severity ); ! Call a success or failure action routine. 2 592 2 593 ! 2 594 ! Terminate program execution on fatal errors. 2 595 ! 2 596 2 597 IF .actual_severity EQL XPO$_FATAL ! If the message severity is FATAL, 2 598 THEN ! 2 599 $XPO_TERMINATE(); ! terminate program execution. 2 600 2 601 ! 2 602 ! Return the final completion code to the caller. 2 603 ! 2 604 2 605 RETURN .primary_code ! Return to the caller. 2 606 2 607 END; 1 608 END 1 609 ELUDOM XPMSG Machine Code Listing 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 14 X00.24 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 .psect _XPO$CODE, CON, LCL, SHR, EXE, NOWRT, NOVEC .proc XPO$MESSAGE .align 32 .global XPO$MESSAGE XPO$MESSAGE: // 000147 { .mmi 0119F8C40300 0000 adds r12 = -96, r12 ;; 010800C50480 0001 adds r18 = 40, r12 000194000440 0002 mov.i r17 = rspfs } { .mmi 0120001003C0 0010 add r15 = @ltoff(@fptr(OTS$HOME_ARGS)), r1 ;; 0080C0F003C0 0011 ld8 r15 = OTS$HOME_ARGS // r15 = [r15] 000008000000 0012 nop.i 0 ;; } { .mmi 0080C0F00400 0020 ld8 r16 = [r15] ;; 000008000000 0021 nop.m 0 000E00120180 0022 mov br6 = r16 } { .mfb 000008000000 0030 nop.m 0 000008000000 0031 nop.f 0 00210000C1C0 0032 br.call.sptk.few br7 = br6 ;; } { .mii 000008000000 0040 nop.m 0 000154022000 0041 mov.i rspfs = r17 01200000A0C0 0042 mov r3 = 5 // 000221 } { .mii 010800C30200 0050 adds r8 = 24, r12 // 000213 00A0319001C0 0051 tbit.z pr7, pr6 = r25, 0 ;; // 000222 018448332200 0052 cmp4.lt pr8, pr9 = r25, r3 ;; // 000221 } { .mmi 01C248000207 0060 (pr7) cmp.eq.or.andcm pr8, pr9 = r0, r0 ;; 002C02A61200 0061 alloc r72 = rspfs, 8, 34, 6, 0 // 000147 018C02008280 0062 cmp4.lt pr10, pr0 = 4, EXPL_SEVERITY // pr10, pr0 = 4, r32 // 000223 } { .mii 010800000A40 0070 mov SECONDARY_CODE = r0 // r41 = r0 // 000211 010801900A00 0071 mov r40 = r25 // 000147 0001880011C0 0072 mov r71 = br0 ;; } { .mii 008C80840000 0080 st4 [r8] = EXPL_SEVERITY // [r8] = r32 // 000213 01C24800020A 0081 (pr10) cmp.eq.or.andcm pr8, pr9 = r0, r0 // 000222 010800101240 0082 mov r73 = r1 // 000147 } { .bbb 008600002008 0090 (pr8) br.cond.dpnt.few L$2 // 000221 008600006009 0091 (pr9) br.cond.dpnt.few L$3 004000000000 0092 nop.b 0 } 00A0 L$2: XPMSG Machine Code Listing 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 15 X00.24 XPO$MESSAGE 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 { .mlx 000008000000 00A0 nop.m 0 000000000000 00A1 movl PRIMARY_CODE = 2138130 // r42 = 2138130 // 000225 0194004495 } { .mfb 000008000000 00B0 nop.m 0 000008000000 00B1 nop.f 0 00800008A000 00B2 br.sptk.few L$4 ;; } 00C0 L$3: // 000256 { .mii 0119FA8FA240 00C0 adds r9 = -3, r40 // 000262 010800000280 00C1 mov r10 = r0 010800C20480 00C2 adds r18 = 16, r12 // 000256 } { .mmi 010800C284C0 00D0 adds r19 = 20, r12 01200000C640 00D1 mov r25 = 6 // 000262 0000B00013C0 00D2 sxt4 r79 = r0 ;; } { .mlx 018400012300 00E0 cmp4.lt pr12, pr0 = r9, r0 800000000008 00E1 movl r17 = 34471936 ;; // 000256 0180070008 } { .mmi 01080000228C 00F0 (pr12) adds r10 = 1, r0 // 000262 008C81222000 00F1 st4 [r18] = r17 // 000256 0000B0001380 00F2 sxt4 r78 = r0 ;; // 000262 } { .mii 010000A12240 0100 add r9 = r9, r10 0000B0001340 0101 sxt4 r77 = r0 0000B0001300 0102 sxt4 r76 = r0 } { .mmi 008C81300000 0110 st4 [r19] = r0 ;; // 000256 000008000000 0111 nop.m 0 0000B0900240 0112 sxt4 r9 = r9 ;; // 000262 } { .mii 000008000000 0120 nop.m 0 00A5F0906240 0121 shr r9 = r9, 1 ;; 0100880122C0 0122 shladd r11 = r9, 2, r0 ;; } { .mmi 010028916240 0130 sub r9 = r11, r9 ;; 010088012240 0131 shladd r9 = r9, 2, r0 000008000000 0132 nop.i 0 ;; } { .mmi 010800908240 0140 adds r9 = 4, r9 ;; 000008000000 0141 nop.m 0 0000B0901280 0142 sxt4 r74 = r9 } { .mmi XPMSG Machine Code Listing 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 16 X00.24 XPO$MESSAGE 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 010800C20240 0150 adds r9 = 16, r12 ;; 000008000000 0151 nop.m 0 0000B09012C0 0152 sxt4 r75 = r9 } { .mfb 000008000000 0160 nop.m 0 000008000000 0161 nop.f 0 00A000001000 0162 br.call.sptk.many br0 = XPO$ALLOC_MEM } { .mib 010804900040 0170 mov r1 = r73 00A0308001C0 0171 tbit.z pr7, pr6 = $XPO$STATUS, 0 // pr7, pr6 = r8, 0 008600004006 0172 (pr6) br.cond.dpnt.few L$5 } { .mfb 010800800A80 0180 mov PRIMARY_CODE = $XPO$STATUS // r42 = r8 // 000264 000008000000 0181 nop.f 0 008000070000 0182 br.sptk.few L$4 ;; } 0190 L$5: // 000267 { .mii 010800C28AC0 0190 adds r43 = 20, r12 // 000268 012000008B00 0191 mov r44 = 4 // 000274 012000008B40 0192 mov ARGUMENT_INDEX = 4 ;; // r45 = 4 } { .mii 008082B00AC0 01A0 ld4 r43 = [r43] // 000268 018402C50200 01A1 cmp4.lt pr8, pr0 = r40, r44 ;; // 000274 0000B2B00B80 01A2 sxt4 r46 = r43 // 000268 } { .mfb 000008000000 01B0 nop.m 0 000008000000 01B1 nop.f 0 008600060008 01B2 (pr8) br.cond.dpnt.few L$7 // 000274 } { .mii 010800C50C00 01C0 adds r48 = 40, r12 // 000282 012000050BC0 01C1 mov r47 = 40 // 000295 000008000000 01C2 nop.i 0 } { .mlx 000008000000 01D0 nop.m 0 800000000000 01D1 movl r49 = 2101552 ;; // 000299 0182204C18 } 01E0 L$9: // 000274 { .mii 000008000000 01E0 nop.m 0 0000B2D00C80 01E1 sxt4 r50 = ARGUMENT_INDEX ;; // r50 = r45 // 000282 010093064C80 01E2 shladd r50 = r50, 3, r48 ;; } { .mmi 008083200C80 01F0 ld4 r50 = [r50] ;; 01CC032022C0 01F1 cmp4.eq pr11, pr0 = 1, r50 000008000000 01F2 nop.i 0 } { .mfb XPMSG Machine Code Listing 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 17 X00.24 XPO$MESSAGE 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 000008000000 0200 nop.m 0 000008000000 0201 nop.f 0 00860002C00B 0202 (pr11) br.cond.dpnt.few L$13 } { .mib 01CC63204000 0210 cmp4.eq pr0, pr12 = 2, r50 010802D04B40 0211 adds r45 = 2, r45 00860004C00C 0212 (pr12) br.cond.dpnt.few L$16 } { .mii 010800C30CC0 0220 adds r51 = 24, r12 // 000289 012000004D40 0221 mov r53 = 2 // 000291 0000B2F00D80 0222 sxt4 r54 = r47 // 000295 } { .mmi 010800C30DC0 0230 adds r55 = 24, r12 // 000291 012000002640 0231 mov r25 = 1 // 000295 010802F20BC0 0232 adds r47 = 16, r47 ;; } { .mii 008083300CC0 0240 ld4 r51 = [r51] // 000289 010003660D80 0241 add r54 = r48, r54 ;; // 000295 01DC733FE000 0242 cmp4.eq pr0, pr14 = -1, r51 ;; // 000289 } { .mmi 010803300D4E 0250 (pr14) mov r53 = r51 ;; // 000291 008C8376A000 0251 st4 [r55] = r53 000008000000 0252 nop.i 0 } { .mmi 008083601280 0260 ld4 r74 = [r54] ;; // 000295 000008000000 0261 nop.m 0 0000B4A01280 0262 sxt4 r74 = r74 } { .mfb 000008000000 0270 nop.m 0 000008000000 0271 nop.f 0 00A000001000 0272 br.call.sptk.many br0 = XST$VALIDATE } { .mib 010804900040 0280 mov r1 = r73 00A0308001C0 0281 tbit.z pr7, pr6 = $STR$STATUS, 0 // pr7, pr6 = r8, 0 008600042007 0282 (pr7) br.cond.dpnt.few L$19 } { .mii 008082E00E00 0290 ld4 r56 = [r46] // 000298 01000316AD40 0291 add r53 = r53, r49 // 000299 012000002E40 0292 mov r57 = 1 // 000300 } { .mmi 018472D50000 02A0 cmp4.lt pr0, pr14 = r40, ARGUMENT_INDEX ;; // pr0, pr14 = r40, r45 // 000274 010088070E00 02A1 shladd r56 = r56, 2, r0 // 000298 000008000000 02A2 nop.i 0 ;; } { .mmi 010803808E00 02B0 adds r56 = 4, r56 ;; 000008000000 02B1 nop.m 0 XPMSG Machine Code Listing 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 18 X00.24 XPO$MESSAGE 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 0000B3800E00 02B2 sxt4 r56 = r56 ;; } { .mmi 01000385CE00 02C0 add r56 = r46, r56 ;; 008C8386A000 02C1 st4 [r56] = r53 000008000000 02C2 nop.i 0 } { .mmi 008082E00D40 02D0 ld4 r53 = [r46] ;; // 000300 01008806AD40 02D1 shladd r53 = r53, 2, r0 000008000000 02D2 nop.i 0 ;; } { .mmi 010803510D40 02E0 adds r53 = 8, r53 ;; 000008000000 02E1 nop.m 0 0000B3500D40 02E2 sxt4 r53 = r53 ;; } { .mmi 01000355CD40 02F0 add r53 = r46, r53 ;; 008C83572000 02F1 st4 [r53] = r57 000008000000 02F2 nop.i 0 } { .mmi 008082E00D40 0300 ld4 r53 = [r46] // 000301 008083600D80 0301 ld4 r54 = [r54] // 000302 000008000000 0302 nop.i 0 ;; } { .mmi 01008806AD40 0310 shladd r53 = r53, 2, r0 ;; // 000301 010803518D40 0311 adds r53 = 12, r53 000008000000 0312 nop.i 0 ;; } { .mii 000008000000 0320 nop.m 0 0000B3500D40 0321 sxt4 r53 = r53 ;; 01000355CD40 0322 add r53 = r46, r53 ;; } { .mmi 008C8356C000 0330 st4 [r53] = r54 008082E00D40 0331 ld4 r53 = [r46] // 000305 000008000000 0332 nop.i 0 ;; } { .mmi 010803506D40 0340 adds r53 = 3, r53 ;; 008C82E6A000 0341 st4 [r46] = r53 // 000304 000008000000 0342 nop.i 0 } { .bbb 0095FFFD200E 0350 (pr14) br.cond.dptk.few L$9 // 000274 004000000000 0351 nop.b 0 00800002C000 0352 br.sptk.few L$7 ;; } 0360 L$13: // 000310 { .mii 000008000000 0360 nop.m 0 0000B2F00EC0 0361 sxt4 r59 = r47 ;; // 000311 010003B60EC0 0362 add r59 = r48, r59 ;; XPMSG Machine Code Listing 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 19 X00.24 XPO$MESSAGE 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 } { .mmi 008083B00EC0 0370 ld4 MESSAGE_CODE = [r59] ;; // r59 = [r59] 01C403B00240 0371 cmp4.eq pr9, pr0 = r0, MESSAGE_CODE // pr9, pr0 = r0, r59 // 000313 000008000000 0372 nop.i 0 } { .mfb 000008000000 0380 nop.m 0 000008000000 0381 nop.f 0 00860001A009 0382 (pr9) br.cond.dpnt.few L$20 } { .mmi 008082E00F00 0390 ld4 r60 = [r46] ;; // 000316 01C453C00000 0391 cmp4.eq pr0, pr10 = r0, r60 000008000000 0392 nop.i 0 } { .mfb 000008000000 03A0 nop.m 0 000008000000 03A1 nop.f 0 00860000C00A 03A2 (pr10) br.cond.dpnt.few L$22 } { .mmi 010800C30F40 03B0 adds r61 = 24, r12 ;; // 000318 008083D00F40 03B1 ld4 r61 = [r61] 000008000000 03B2 nop.i 0 ;; } { .mfb 01DC63DFE000 03C0 cmp4.eq pr0, pr12 = -1, r61 000008000000 03C1 nop.f 0 00860000600C 03C2 (pr12) br.cond.dpnt.few L$26 } { .mib 010800C30FC0 03D0 adds r63 = 24, r12 // 000320 00A413B00F80 03D1 extr.u r62 = MESSAGE_CODE, 0, 3 // r62 = r59, 0, 3 004000000000 03D2 nop.b 0 ;; } { .mfb 008C83F7C000 03E0 st4 [r63] = r62 000008000000 03E1 nop.f 0 008000004000 03E2 br.sptk.few L$22 ;; // 000318 } 03F0 L$26: { .mii 000008000000 03F0 nop.m 0 009F93B7AEC0 03F1 dep MESSAGE_CODE = r61, MESSAGE_CODE, // r59 = r61, r59, 0, 3 // 000322 0, 3 ;; 0000B3B00EC0 03F2 sxt4 MESSAGE_CODE = MESSAGE_CODE // r59 = r59 } 0400 L$22: // 000316 { .mmi 008082E01000 0400 ld4 r64 = [r46] ;; // 000325 010088081000 0401 shladd r64 = r64, 2, r0 000008000000 0402 nop.i 0 ;; } { .mmi 010804009000 0410 adds r64 = 4, r64 ;; 000008000000 0411 nop.m 0 XPMSG Machine Code Listing 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 20 X00.24 XPO$MESSAGE 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 0000B4001000 0412 sxt4 r64 = r64 ;; } { .mmi 01000405D000 0420 add r64 = r46, r64 ;; 008C84076000 0421 st4 [r64] = MESSAGE_CODE // [r64] = r59 000008000000 0422 nop.i 0 } { .mmi 008082E00EC0 0430 ld4 r59 = [r46] ;; // 000329 010803B04EC0 0431 adds r59 = 2, r59 000008000000 0432 nop.i 0 ;; } { .mfi 008C82E76000 0440 st4 [r46] = r59 // 000328 000008000000 0441 nop.f 0 000008000000 0442 nop.i 0 } 0450 L$20: // 000282 { .mii 010802D04B40 0450 adds r45 = 2, r45 010802F20BC0 0451 adds r47 = 16, r47 ;; 018472D50000 0452 cmp4.lt pr0, pr14 = r40, ARGUMENT_INDEX // pr0, pr14 = r40, r45 // 000274 } { .bbb 0095FFFB000E 0460 (pr14) br.cond.dptk.few L$9 004000000000 0461 nop.b 0 00800000A000 0462 br.sptk.few L$7 ;; } 0470 L$16: // 000282 { .mlx 000008000000 0470 nop.m 0 000000000000 0471 movl PRIMARY_CODE = 2138130 // r42 = 2138130 // 000334 0194004495 } { .mfb 000008000000 0480 nop.m 0 000008000000 0481 nop.f 0 008000010000 0482 br.sptk.few L$4 ;; } 0490 L$19: // 000295 { .mlx 010800800A40 0490 mov SECONDARY_CODE = $STR$STATUS // r41 = r8 000000000000 0491 movl PRIMARY_CODE = 2402378 // r42 = 2402378 0195025295 } { .mfb 000008000000 04A0 nop.m 0 000008000000 04A1 nop.f 0 00800000C000 04A2 br.sptk.few L$4 ;; } 04B0 L$7: // 000274 { .mii 012000004640 04B0 mov r25 = 2 // 000344 0000B2E01280 04B1 sxt4 r74 = r46 012000100B80 04B2 add r46 = @ltoff(@fptr(LIB$SIGNAL)), r1 } XPMSG Machine Code Listing 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 21 X00.24 XPO$MESSAGE 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 { .mlx 000008000000 04C0 nop.m 0 000000000000 04C1 movl PRIMARY_CODE = 2129921 ;; // r42 = 2129921 // 000346 0190004055 } { .mmi 0080C2E00B80 04D0 ld8 r46 = LIB$SIGNAL ;; // r46 = [r46] // 000344 000008000000 04D1 nop.m 0 0000B2E012C0 04D2 sxt4 r75 = r46 } { .mfb 000008000000 04E0 nop.m 0 000008000000 04E1 nop.f 0 00A000001000 04E2 br.call.sptk.many br0 = BLI$CALLG } { .mfi 010804900040 04F0 mov r1 = r73 000008000000 04F1 nop.f 0 000008000000 04F2 nop.i 0 } 0500 L$4: // 000358 { .mii 010800C21080 0500 adds r66 = 16, r12 01200000A640 0501 mov r25 = 5 0000B0001380 0502 sxt4 r78 = r0 ;; } { .mii 0119F80FD2C0 0510 adds r75 = -2, r0 0000B0001340 0511 sxt4 r77 = r0 0000B0001300 0512 sxt4 r76 = r0 } { .mib 0108022010C0 0520 mov r67 = FAILURE_ACTION // r67 = r34 // 000591 0000B4201280 0521 sxt4 r74 = r66 // 000358 00A000001000 0522 br.call.sptk.many br0 = XPO$FREE_MEM } { .mii 010804900040 0530 mov r1 = r73 00A032A00000 0531 tbit.z pr0, pr6 = PRIMARY_CODE, 0 ;; // pr0, pr6 = r42, 0 // 000591 0108021010C6 0532 (pr6) mov r67 = SUCCESS_ACTION ;; // r67 = r33 } { .mfb 01C404300200 0540 cmp4.eq pr8, pr0 = r0, $XPO$ACTION // pr8, pr0 = r0, r67 000008000000 0541 nop.f 0 00860000E008 0542 (pr8) br.cond.dpnt.few L$29 } { .mii 012000008640 0550 mov r25 = 4 0000B43010C0 0551 sxt4 r67 = $XPO$ACTION // r67 = r67 0000B2901300 0552 sxt4 r76 = SECONDARY_CODE // r76 = r41 } { .mii 010800C30A40 0560 adds r41 = 24, r12 0000B2A012C0 0561 sxt4 r75 = PRIMARY_CODE // r75 = r42 01200000B280 0562 mov r74 = 5 ;; } { .mib XPMSG Machine Code Listing 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 22 X00.24 XPO$MESSAGE 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 0108043110C0 0570 adds r67 = 8, r67 0000B2901340 0571 sxt4 r77 = r41 004000000000 0572 nop.b 0 ;; } { .mmi 00B0CC3F0040 0580 ld8 r1 = [r67], -8 ;; 0080C43010C0 0581 ld8 r67 = [r67] 000008000000 0582 nop.i 0 ;; } { .mib 000008000000 0590 nop.m 0 000E00186180 0591 mov br6 = r67 00210000C000 0592 br.call.sptk.few br0 = br6 } { .mii 010800800A80 05A0 mov PRIMARY_CODE = r8 // r42 = r8 010804900040 05A1 mov r1 = r73 000008000000 05A2 nop.i 0 } 05B0 L$29: { .mmi 010800C31180 05B0 adds r70 = 24, r12 ;; // 000597 008084601180 05B1 ld4 r70 = [r70] 000008000000 05B2 nop.i 0 ;; } { .mfb 01CC34608000 05C0 cmp4.eq pr0, pr6 = 4, r70 000008000000 05C1 nop.f 0 008600008006 05C2 (pr6) br.cond.dpnt.few L$32 } { .mlx 012000002640 05D0 mov r25 = 1 // 000599 000000000000 05D1 movl r74 = 2146324 0198004525 } { .mfb 000008000000 05E0 nop.m 0 000008000000 05E1 nop.f 0 00A000001000 05E2 br.call.sptk.many br0 = XPO$TERMINATE } { .mib 010800000200 05F0 mov r8 = r0 010804900040 05F1 mov r1 = r73 008000004000 05F2 br.sptk.few L$35 ;; } 0600 L$32: // 000597 { .mfi 010802A00200 0600 mov r8 = PRIMARY_CODE // r8 = r42 // 000605 000008000000 0601 nop.f 0 000008000000 0602 nop.i 0 ;; } 0610 L$35: { .mib 000008000000 0610 nop.m 0 0000B0800200 0611 sxt4 r8 = r8 004000000000 0612 nop.b 0 } XPMSG Machine Code Listing 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 23 X00.24 XPO$MESSAGE 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 { .mii 000008000000 0620 nop.m 0 000154090000 0621 mov.i rspfs = r72 010800CC0300 0622 adds r12 = 96, r12 ;; } { .mib 000008000000 0630 nop.m 0 000E0018E000 0631 mov br0 = r71 000108001100 0632 br.ret.sptk.many br0 ;; } .endp XPO$MESSAGE Routine Size: 1600 bytes, Routine Base: _XPO$CODE + 0000 .section .data .type OTS$HOME_ARGS, @function .global OTS$HOME_ARGS .section .data .type XPO$ALLOC_MEM, @function .global XPO$ALLOC_MEM .section .data .type XST$VALIDATE, @function .global XST$VALIDATE .section .data .type LIB$SIGNAL, @function .global LIB$SIGNAL .section .data .type BLI$CALLG, @function .global BLI$CALLG .section .data .type XPO$FREE_MEM, @function .global XPO$FREE_MEM .section .data .type XPO$TERMINATE, @function .global XPO$TERMINATE ; Library Statistics ; ; -------- Symbols -------- Pages ; File Total Loaded Percent Mapped ; ; DISK$NORMS_OWN:[LASTOVICA.XPORT.VMSGEN]XPORT.L32;14 ; 590 68 11 270 ; DISK$NORMS_OWN:[LASTOVICA.XPORT.VMSGEN]XPOSYS.L32;14 ; 91 20 21 27 ; SYS$COMMON:[SYSLIB]STARLET.L32;1 28352 3 0 2178 Source Listing 4-FEB-2004 11:01:40 BLISS-32I T1.1-053 Page 24 Source Listing 19-MAR-2002 10:12:17 [LASTOVICA.XPORT.VMSGEN]XPMSG.BLI;1 COMMAND LINE: BLISSXPMSG/VARIANT=3/LIST/DEBUG