<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">                                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&lt;0,3&gt;
    8	    321 			ELSE
    8	    322 			    message_code&lt;0,3&gt; = .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 			&lt; .total_message[STR$A_POINTER],
U   2	    528 			    .total_message[STR$H_LENGTH],
U   2	    529 			    %O'040' &gt; );
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
</pre></body></html>