                                XST$ASCII - Binary to ASCII Con  4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 1
                                                                19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

    0	      1 MODULE SASCII (	IDENT = 'X00.09'	%TITLE 'XST$ASCII - Binary to ASCII Conversion'
    0	      2 		%BLISS32( ,ADDRESSING_MODE( EXTERNAL=LONG_RELATIVE ) )
    0	      3 		%BLISS36( ,ENTRY( XST$ASCII ),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 implements the XPORT $STR_ASCII string pseudo-function.
    1	     33 !
    1	     34 ! ENVIRONMENT:  User mode - multiple host operating/file systems
    1	     35 !
    1	     36 ! AUTHOR:  Ward Clark,	CREATION DATE:  25 February 1980
    1	     37 !
    1	     38 !--

SASCII                          XST$ASCII - Binary to ASCII Con  4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 2
X00.09                                                          19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

    1	     40 !
    1	     41 ! TABLE OF CONTENTS:
    1	     42 !
    1	     43 
    1	     44 FORWARD ROUTINE
    1	     45     XST$ASCII,						! Binary to ASCII formatting routine
    1	     46     BINARY_TO_ASCII,					! Actual binary to ASCII conversion routine
    1	     47     UNSIGNED_DIVIDE;					! Unsigned integer divide routine
    1	     48 
    1	     49 !
    1	     50 ! INCLUDE FILES:
    1	     51 !
    1	     52 
    1	     53 LIBRARY  'XPORT' ;					! Public XPORT control block and macro definitions
    1	     55 LIBRARY  'XPOSYS' ;					! Internal XPORT macro definitions
    1	     57 
    1	     58     $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	     59 
    1	     60 !
    1	     61 ! MACROS:
    1	     62 !
    1	     63 
    1	     64 !
    1	     65 ! EQUATED SYMBOLS:
    1	     66 !
    1	     67 
    1	     68 LITERAL
    1	     69     yes = 1,						! Used to turn an indicator on
    1	     70     no = 0;						! Used to turn an indicator off
    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 !
    1	     83 ! EXTERNAL REFERENCES:
    1	     84 !

SASCII                          XST$ASCII - Binary to ASCII Con  4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 3
X00.09                                                          19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

    1	     86 GLOBAL ROUTINE XST$ASCII( options, value, length ) =
    1	     87 
    1	     88 !++
    1	     89 !
    1	     90 ! FUNCTIONAL DESCRIPTION:
    1	     91 !
    1	     92 !	This routine implements the $STR_ASCII string pseudo-function.
    1	     93 !
    1	     94 ! FORMAL PARAMETERS:
    1	     95 !
    1	     96 !	options - string options and function code
    1	     97 !	value - function-specific binary value
    1	     98 !	length - requested resulting string length
    1	     99 !
    1	    100 ! IMPLICIT INPUTS:
    1	    101 !
    1	    102 !	None
    1	    103 !
    1	    104 ! IMPLICIT OUTPUTS:
    1	    105 !
    1	    106 !	None
    1	    107 !
    1	    108 ! ROUTINE VALUE:
    1	    109 !
    1	    110 !	address of an XPORT temporary string descriptor
    1	    111 !
    1	    112 ! SIDE EFFECTS:
    1	    113 !
    1	    114 !	None
    1	    115 !
    1	    116 !--
    1	    117 
    1	    118     BEGIN
    2	    119 
    2	    120     MAP
    2	    121 	options :  $STR_OPTIONS;
    2	    122 
    2	    123     LOCAL
    2	    124 	ascii_length,
    2	    125 	temporary :  REF $STR_DESCRIPTOR( CLASS = DYNAMIC );
    2	    126 
    2	    127 !
    2	    128 ! Initialization
    2	    129 !
    2	    130 
    2	    131     $STR_MAIN_BEGIN( PSEUDO )				! Beginning of MAIN_BLOCK code block
    3	    132 
    3	    133     $STR_ALLOC_TEMP( temporary );			! Setup an XPORT temporary string descriptor.
    3	    134 
    3	    135 !
    3	    136 ! Select appropriate conversion processing based on the requested conversion function.
    3	    137 !
    3	    138 
    3	    139     CASE .options[STR$V_FUNCTION] FROM 1 TO STR$K_DAY OF
    3	    140 	SET

SASCII                          XST$ASCII - Integer Conversion   4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 4
X00.09                                                          19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

    3	    142 %TITLE 'XST$ASCII - Integer Conversion'
    3	    143 
    3	    144 !+
    3	    145 !
    3	    146 !	Integer Conversion
    3	    147 !
    3	    148 !-
    3	    149 
    3	    150     [ STR$K_BASE2, STR$K_BASE8, STR$K_BASE10, STR$K_BASE16 ] :
    3	    151 
    3	    152 	BEGIN
    4	    153 	LOCAL
    4	    154 	    number,					! Positive value to be converted
    4	    155 	    negative,					! Negative value indicator
    4	    156 	    base,					! Integer conversion base
    4	    157 	    string_buffer :				! Temporary string construction buffer
    4	    158 		    VECTOR[ CH$ALLOCATION(%BPVAL) ],
    4	    159 	    fill_character,				! Leading fill character (zero or blank)
    4	    160 	    signif_digits;				! Number of significant digits in resulting string
    4	    161 
    4	    162 !
    4	    163 ! Prepare for binary to ASCII conversion.
    4	    164 !
    4	    165 
    4	    166 	IF .options[STR$V_SIGNED] AND .value LSS 0	! If a negative number was specified,
    4	    167 	THEN						!
    4	    168 	    BEGIN					!
    5	    169 	    number = -.value;				! convert it to a positive number
    5	    170 	    negative = yes;				! and indicate a minus sign will be needed.
    5	    171 	    END
    5	    172 	ELSE
    4	    173 	    BEGIN
    5	    174 	    number = .value;				! Otherwise, simply copy the number
    5	    175 	    negative = no;				! and indicate no sign is needed.
    5	    176 	    END;
    4	    177 
    4	    178 	base = ( CASE .options[STR$V_FUNCTION]		! Calculate a base value.
    5	    179 		    FROM STR$K_BASE2 TO STR$K_BASE16 OF
    5	    180 			SET
    5	    181 			[ STR$K_BASE2 ] :  2;
    5	    182 			[ STR$K_BASE8 ] :  8;
    5	    183 			[ STR$K_BASE10 ] :  10;
    5	    184 			[ STR$K_BASE16 ] :  16;
    5	    185 			TES );
    4	    186 
    4	    187 !
    4	    188 ! Convert the absolute value of the number to ASCII.
    4	    189 !
    4	    190 
    4	    191 	signif_digits = BINARY_TO_ASCII( .number, .base, %BPVAL, CH$PTR( string_buffer ) );
    4	    192 
    4	    193 !
    4	    194 ! Calculate the resulting string length.
    4	    195 !
    4	    196 
    4	    197 	IF .length NEQ 0				! LENGTH=non-zero value:
    4	    198 	THEN						!

SASCII                          XST$ASCII - Integer Conversion   4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 5
X00.09                                                          19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

    4	    199 	    ascii_length = .length			!    specified length
    4	    200 	ELSE
    4	    201 	    IF .options[STR$V_LEADING_B]		! LEADING_BLANKS:
    4	    202 	    THEN					!
    4	    203 		ascii_length =				!    significant digits + possible minus sign
    4	    204 			.signif_digits + .negative
    4	    205 	    ELSE					! LEADING_ZERO:
    4	    206 		ascii_length =				!    maximum length integer + possible minus sign
    4	    207 		    ( CASE .options[STR$V_FUNCTION]
    5	    208 			FROM STR$K_BASE2 TO STR$K_BASE16 OF
    5	    209 			    SET
    5	    210 			    [ STR$K_BASE2 ] :  %BPVAL;
    5	    211 			    [ STR$K_BASE8 ] :  ( %BPVAL + 2 ) / 3;
    5	    212 			    [ STR$K_BASE10 ] :  %BLISS16( 5 )  %BLISS32( 10 )  %BLISS36( 11 );
    5	    213 			    [ STR$K_BASE16 ] :  %BPVAL / 4;
    5	    214 			    TES ) + .negative;
    4	    215 
    4	    216 !
    4	    217 ! Allocate a resulting string in dynamic memory.
    4	    218 !
    4	    219 
    4	    220 	IF .signif_digits + .negative GTR		! If the caller requested a resulting string length
    4	    221 		.ascii_length				! that is too small for the converted value,
    4	    222 	THEN						!
    4	    223 	    fill_character = %C'*'			! fill the resulting string with asterisks rather than
    4	    224 							! a truncated number.
    4	    225 	ELSE
    4	    226 	    IF .options[STR$V_LEADING_B]		! Otherwise, determine the appropriate fill character.
    4	    227 	    THEN
    4	    228 		fill_character = %C' '
    4	    229 	    ELSE
    4	    230 		fill_character = %C'0';
    4	    231 
    4	    232 	$XPO_IF_NOT( $XPO_GET_MEM(			! Allocate the string and fill it.
P   4	    233 			    CHARACTERS = .ascii_length,
P   4	    234 			    DESCRIPTOR = .temporary,
P   4	    235 			    FILL = .fill_character,
P   4	    236 			    FAILURE = 0 ) )
    6	    237 	THEN
    5	    238 	    $STR_QUIT( (.$XPO_STATUS) );
    4	    239 
    4	    240 !
    4	    241 ! Put the converted integer string into the resulting area.
    4	    242 !
    4	    243 
    4	    244 	IF .fill_character EQL %C'*'			! If the resulting string is too small,
    4	    245 	THEN						!
    4	    246 	    $STR_QUIT( NORMAL );			! return the string of asterisks to the caller.
    4	    247 
    4	    248 	IF .negative					! Put a minus sign in the string if the number is negative.
    4	    249 	THEN
    4	    250 	    IF .options[STR$V_LEADING_Z]		!    LEADING_ZERO :  1st character of the string
    4	    251 	    THEN
    4	    252 		CH$WCHAR( %C'-', .temporary[STR$A_POINTER] )
    4	    253 	    ELSE
    4	    254 		CH$WCHAR( %C'-',			!    LEADING_BLANK :  before 1st significant digit
    4	    255 		    CH$PLUS( .temporary[STR$A_POINTER],

SASCII                          XST$ASCII - Integer Conversion   4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 6
X00.09                                                          19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

    4	    256 				.temporary[STR$H_LENGTH] - .signif_digits - 1 ) );
    4	    257 
    4	    258 	CH$MOVE( .signif_digits,			! Move the converted number into the resulting string.
    4	    259 		CH$PLUS( CH$PTR( string_buffer ), %BPVAL - .signif_digits ),
    4	    260 		CH$PLUS( .temporary[STR$A_POINTER], .temporary[STR$H_LENGTH] - .signif_digits ) );
    4	    261 
    4	    262 	$STR_QUIT( NORMAL );				! Indicate successful integer conversion.
    4	    263 	END;

SASCII                          XST$ASCII - Date/Time/Day Conve  4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 7
X00.09                                                          19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

    3	    265 %TITLE 'XST$ASCII - Date/Time/Day Conversion'
    3	    266 
    3	    267 !+
    3	    268 !
    3	    269 !	Date / Time / Day  Conversion
    3	    270 !
    3	    271 !-
    3	    272 
    3	    273     [ STR$K_DATE, STR$K_TIME, STR$K_DAY ] :
    3	    274 
    3	    275 	$STR_QUIT( NO_SUPPORT );
    3	    276 
    3	    277     TES;

SASCII                          XST$ASCII - Common Routine Term  4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 8
X00.09                                                          19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

    3	    279 %TITLE 'XST$ASCII - Common Routine Termination'
    3	    280 
    3	    281 !+
    3	    282 !
    3	    283 !	Common Routine Termination
    3	    284 !
    3	    285 !-
    3	    286 
    3	    287     $STR_MAIN_END;					! End of MAIN_BLOCK code block
    2	    288 
    2	    289 !
    2	    290 ! Modify the temporary string descriptor in the event of an error.
    2	    291 !
    2	    292 
    2	    293     IF NOT .primary_code				! If the conversion failed,
    2	    294     THEN						!
    2	    295 	BEGIN						! modify the temporary string descriptor:
    3	    296 	temporary[STR$B_DTYPE] = STR$K_DTYPE_XXX;	!    indicate an erroneous temporary string
    3	    297 	temporary[STR$A_POINTER] = .primary_code;	!    save the error code for $STR_VALIDATE
    3	    298 	END;
    2	    299 
    2	    300 !
    2	    301 ! Return the address of the temporary string descriptor.
    2	    302 !
    2	    303 
    2	    304     RETURN .temporary
    2	    305 
    2	    306     END;

SASCII                          BINARY_TO_ASCII - Binary to ASC  4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 9
X00.09                                                          19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

    1	    308 %TITLE 'BINARY_TO_ASCII - Binary to ASCII Conversion'
    1	    309 
    1	    310 ROUTINE BINARY_TO_ASCII( value, base, string_length, string_pointer ) =
    1	    311 
    1	    312 !++
    1	    313 !
    1	    314 ! FUNCTIONAL DESCRIPTION:
    1	    315 !
    1	    316 !	This routine creates an ASCII representation of a positive binary value.
    1	    317 !
    1	    318 ! FORMAL PARAMETERS:
    1	    319 !
    1	    320 !	value - binary value to be converted
    1	    321 !	base - conversion base
    1	    322 !	string_length - length of the caller's ASCII string buffer
    1	    323 !	string_pointer - pointer to the caller's ASCII string buffer
    1	    324 !
    1	    325 ! IMPLICIT INPUTS:
    1	    326 !
    1	    327 !	None
    1	    328 !
    1	    329 ! IMPLICIT OUTPUTS:
    1	    330 !
    1	    331 !	None
    1	    332 !
    1	    333 ! ROUTINE VALUE:
    1	    334 !
    1	    335 !	number of significant digits in the resulting string
    1	    336 !
    1	    337 ! SIDE EFFECTS:
    1	    338 !
    1	    339 !	None
    1	    340 !
    1	    341 !--
    1	    342 
    1	    343     BEGIN
    2	    344 
    2	    345     LOCAL
    2	    346 	integer,					! Local value to be converted
    2	    347 	pointer;					! Pointer into the caller's string buffer
    2	    348 
    2	    349 !
    2	    350 ! Initialization
    2	    351 !
    2	    352 
    2	    353     integer = .value;					! Copy the value to be converted.
    2	    354 
    2	    355     pointer = CH$PLUS( .string_pointer,			! Point to the last character of the string buffer.
    2	    356 			.string_length - 1 );
    2	    357 
    2	    358 !
    2	    359 ! Convert one digit at a time.
    2	    360 !
    2	    361 
    2	    362     DECR counter FROM .string_length TO 1 DO		! Loop backwards thru the string buffer.
    2	    363 	BEGIN
    3	    364 	LOCAL

SASCII                          BINARY_TO_ASCII - Binary to ASC  4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 10
X00.09                                                          19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

    3	    365 	    remainder;					! Current remainder
    3	    366 
    3	    367 	integer = unsigned_divide( .integer,		! Remove the low order power of "base" from the value.
    3	    368 				    .base,
    3	    369 				    remainder );
    3	    370 
    3	    371 	CH$MOVE( 1, CH$PTR( UPLIT('0123456789ABCDEF'), .remainder ), .pointer );
    3	    372 
    3	    373 	IF .integer EQL 0				! When all significant "digits" have been produced,
    3	    374 	THEN						!
    3	    375 	    EXITLOOP;					! exit the conversion loop.
    3	    376 
    3	    377 	pointer = CH$PLUS( .pointer, -1 );		! Point to the previous character.
    3	    378 	END;
    2	    379 
    2	    380 !
    2	    381 ! Return the number of significant "digits" produced.
    2	    382 !
    2	    383 
    2	    384     RETURN  CH$DIFF( CH$PLUS( .string_pointer, .string_length ), .pointer )
    2	    385 
    2	    386     END;

SASCII                          UNSIGNED_DIVIDE - Unsigned Inte  4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 11
X00.09                                                          19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

    1	    388 %TITLE 'UNSIGNED_DIVIDE - Unsigned Integer Divide'
    1	    389 
    1	    390 ROUTINE unsigned_divide( dividend, divisor, addr_remainder ) =
    1	    391 
    1	    392 !++
    1	    393 !
    1	    394 ! FUNCTIONAL DESCRIPTION:
    1	    395 !
    1	    396 !	This routine performs a integer division operation where both the
    1	    397 !	divisor and dividend are assumed to unsigned (positive) numbers.
    1	    398 !
    1	    399 ! FORMAL PARAMETERS:
    1	    400 !
    1	    401 !	dividend - dividend value
    1	    402 !	divisor - divisor value
    1	    403 !	addr_remainder - address of fullword to receive remainder
    1	    404 !
    1	    405 ! IMPLICIT INPUTS:
    1	    406 !
    1	    407 !	None
    1	    408 !
    1	    409 ! IMPLICIT OUTPUTS:
    1	    410 !
    1	    411 !	None
    1	    412 !
    1	    413 ! ROUTINE VALUE:
    1	    414 !
    1	    415 !	quotient value
    1	    416 !
    1	    417 ! SIDE EFFECTS:
    1	    418 !
    1	    419 !	None
    1	    420 !
    1	    421 !--
    1	    422 
    1	    423     BEGIN
    2	    424 
    2	    425     LOCAL
    2	    426 	quotient;					! Quotient result of division
    2	    427 
    2	    428 %IF %BLISS(BLISS36) %THEN
U   2	    429     BUILTIN
U   2	    430 	LSH;						! BLISS-36 logical shift function
U   2	    431 %FI
    2	    432 
    2	    433 !
    2	    434 ! Calculate the quotient.
    2	    435 !
    2	    436 
    2	    437     quotient = .dividend ^ -1				! Shift dividend right one bit (propagating the sign)
    2	    438 		    AND %BLISS16( %X'7FFF' )		! and force the sign bit to 0.
    2	    439 			%BLISS32( %X'7FFFFFFF' )

SASCII                          UNSIGNED_DIVIDE - Unsigned Inte  4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 12
X00.09                                                          19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

    2	    440 			%BLISS36( %X'7FFFFFFFF' );
		....................................1              
%BLS32-I-TEXT, (1) Numeric literal overflow

    2	    441 
    2	    442     IF .divisor NEQ 2					! Unless the caller's divisor is 2,
    2	    443     THEN						! divide the quotient by half the divisor.
    2	    444 	quotient = .quotient / unsigned_divide( .divisor, 2, 0 );
    2	    445 
    2	    446 !
    2	    447 ! Return the remainder to the caller.
    2	    448 !
    2	    449 
    2	    450     IF .addr_remainder NEQ 0				! Make sure the caller wants the remainder value.
    2	    451     THEN
    2	    452 %IF %BLISS(BLISS36) %THEN
U   2	    453 	.addr_remainder = .dividend - LSH( (.divisor/2) * .quotient, 1 );
U   2	    454 %ELSE
    2	    455 	.addr_remainder = .dividend - ( .divisor * .quotient );
    2	    456 %FI
    2	    457 
    2	    458 !
    2	    459 ! Return the quotient to the caller.
    2	    460 !
    2	    461 
    2	    462     RETURN .quotient
    2	    463 
    2	    464     END;
    1	    465 END
    1	    466 ELUDOM

SASCII                          Machine Code Listing             4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 13
X00.09                                                          19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

				      .psect _XPO$CODE, CON, LCL, SHR, EXE, NOWRT, NOVEC
				      .proc   XST$ASCII
				      .align 32
				      .global  XST$ASCII
			XST$ASCII:											   // 000086
			   { .mii 
0119F8CA0300     0000		      adds    r12 = -48, r12
01200000C640     0001		      mov     r25 = 6									   // 000133
000008000000     0002		      nop.i   0
			   }
			   { .mlx 
000008000000     0010		      nop.m   0
800000000008     0011		      movl    r3 = 33685504 ;;
0180010001
			   }
			   { .mii 
010800C60200     0020		      adds    r8 = 48, r12
010800C68240     0021		      adds    r9 = 52, r12
010800C60280     0022		      adds    r10 = 48, r12 ;;
			   }
			   { .mmi 
002C03F8B700     0030		      alloc   r92 = rspfs, 3, 60, 6, 0							   // 000086
008C80806000     0031		      st4     [r8] = r3									   // 000133
010800101780     0032		      mov     r94 = r1									   // 000086
			   }
			   { .mii 
0119F80FF840     0040		      adds    r97 = -1, r0								   // 000133
0001880016C0     0041		      mov     r91 = br0									   // 000086
0000B0001900     0042		      sxt4    r100 = r0									   // 000133
			   }
			   { .mii 
0120000117C0     0050		      mov     r95 = 8
0000B00018C0     0051		      sxt4    r99 = r0
0000B0001880     0052		      sxt4    r98 = r0
			   }
			   { .mib 
008C80900000     0060		      st4     [r9] = r0
0000B0A01800     0061		      sxt4    r96 = r10
004000000000     0062		      nop.b   0 ;;
			   }
			   { .mib 
000008000000     0070		      nop.m   0
000198001740     0071		      mov     r93 = pr									   // 000086
00A000001000     0072		      br.call.sptk.many br0 = XPO$ALLOC_MEM						   // 000133
			   }
			   { .mii 
010800C68A00     0080		      adds    r40 = 52, r12
00A0308001C0     0081		      tbit.z  pr7, pr6 = r8, 0
010805E00040     0082		      mov     r1 = r94 ;;
			   }
			   { .mii 
008082800A00     0090		      ld4     r40 = [r40]
01C000001206     0091	       (pr6)  cmp.eq.unc pr8, pr0 = r0, r0 ;;
010802800A48     0092	       (pr8)  mov     TEMPORARY = r40			// r41 = r40
			   }
			   { .mfb 
000008000000     00A0		      nop.m   0

SASCII                          Machine Code Listing             4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 14
X00.09                          XST$ASCII                       19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

000008000000     00A1		      nop.f   0
008600006008     00A2	       (pr8)  br.cond.dpnt.few L$18
			   }
			   { .mmi 
012000100A80     00B0		      add     r42 = @ltoff(XST$NO_MEMORY), r1 ;;
0080C2A00200     00B1		      ld8     r8 = XST$NO_MEMORY		// r8 = [r42]
000008000000     00B2		      nop.i   0
			   }
			   { .mfb 
000008000000     00C0		      nop.m   0
000008000000     00C1		      nop.f   0
008000068000     00C2		      br.sptk.few L$20 ;;
			   }
	         00D0	L$18:
			   { .mii 
01200807AC40     00D0		      mov     r49 = 189
0000B2900B00     00D1		      sxt4    r44 = TEMPORARY			// r44 = r41
01200001CBC0     00D2		      mov     r47 = 14 ;;
			   }
			   { .mib 
000008000000     00E0		      nop.m   0
00A43A000AC0     00E1		      extr.u  r43 = OPTIONS, 0, 8		// r43 = r32, 0, 8			   // 000139
004000000000     00E2		      nop.b   0 ;;
			   }
			   { .mii 
00AC42C00100     00F0		      st2     [r44] = r0, 4								   // 000133
0119FABF6B40     00F1		      adds    r45 = -5, r43 ;;								   // 000139
01AC52D042C0     00F2		      cmp4.ltu pr11, pr10 = 2, r45
			   }
			   { .mmi 
00BC8AC01FC0     0100		      st4     [r44] = r0, -1 ;;								   // 000133
00BC0AC63FC0     0101		      st1     [r44] = r49, -1
000008000000     0102		      nop.i   0 ;;
			   }
			   { .mfb 
00BC0AC5FF80     0110		      st1     [r44] = r47, -2
000008000000     0111		      nop.f   0
00860005400A     0112	       (pr10) br.cond.dpnt.few L$23								   // 000139
			   }
			   { .mii 
018468042000     0120		      cmp4.lt pr0, pr13 = VALUE, r0		// pr0, pr13 = r33, r0			   // 000166
00A402020D00     0121		      extr.u  r52 = OPTIONS, 8, 1 ;;		// r52 = r32, 8, 1
00A0734003C0     0122		      tbit.z  pr15, pr14 = r52, 0 ;;
			   }
			   { .mbb 
01C2700003CD     0130	       (pr13) cmp.eq.or.andcm pr15, pr14 = r0, r0
00860000200E     0131	       (pr14) br.cond.dpnt.few L$25
00860000400F     0132	       (pr15) br.cond.dpnt.few L$26
			   }
	         0140	L$25:
			   { .mib 
012000002D80     0140		      mov     NEGATIVE = 1			// r54 = 1				   // 000170
01002A100D40     0141		      sub     NUMBER = r0, VALUE		// r53 = r0, r33			   // 000169
008000004000     0142		      br.sptk.few L$27 ;;								   // 000166
			   }
	         0150	L$26:
			   { .mii 

SASCII                          Machine Code Listing             4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 15
X00.09                          XST$ASCII                       19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

010800000D80     0150		      mov     NEGATIVE = r0			// r54 = r0				   // 000175
010802100D40     0151		      mov     NUMBER = VALUE			// r53 = r33				   // 000174
000008000000     0152		      nop.i   0
			   }
	         0160	L$27:												   // 000166
			   { .mmi 
01CC32B08000     0160		      cmp4.eq pr0, pr6 = 4, r43								   // 000178
01CC4AB06000     0161		      cmp4.eq pr0, pr9 = 3, r43
012000020E40     0162		      mov     r57 = 16 ;;
			   }
			   { .mii 
012000004E00     0170		      mov     r56 = 2
01C000001086     0171	       (pr6)  cmp.eq.unc pr2, pr0 = r0, r0
01CC62B04000     0172		      cmp4.eq pr0, pr12 = 2, r43 ;;
			   }
			   { .mii 
012000014EC0     0180		      mov     r59 = 10
01C0000010C9     0181	       (pr9)  cmp.eq.unc pr3, pr0 = r0, r0
010803800E42     0182	       (pr2)  mov     r57 = r56
			   }
			   { .mmi 
012000011000     0190		      mov     r64 = 8									   // 000207
012000040FC0     0191		      mov     r63 = 32
012000011840     0192		      mov     r97 = 8 ;;								   // 000178
			   }
			   { .mii 
01C00000110C     01A0	       (pr12) cmp.eq.unc pr4, pr0 = r0, r0
010803900EC3     01A1	       (pr3)  mov     r59 = r57
012000015040     01A2		      mov     r65 = 10 ;;								   // 000207
			   }
			   { .mii 
010803F01002     01B0	       (pr2)  mov     r64 = r63
010803B01844     01B1	       (pr4)  mov     r97 = r59									   // 000178
010800C20F40     01B2		      adds    r61 = 16, r12 ;;								   // 000191
			   }
			   { .mii 
012000017100     01C0		      mov     r68 = 11									   // 000207
00A40202D080     01C1		      extr.u  r66 = OPTIONS, 11, 1		// r66 = r32, 11, 1			   // 000201
010804001043     01C2	       (pr3)  mov     r65 = r64									   // 000207
			   }
			   { .mii 
012000061240     01D0		      mov     r73 = 48									   // 000228
0000B6101800     01D1		      sxt4    r96 = r97									   // 000191
0000B3D01880     01D2		      sxt4    r98 = r61 ;;
			   }
			   { .mii 
012000041840     01E0		      mov     r97 = 32
010804101104     01E1	       (pr4)  mov     r68 = r65									   // 000207
0000B35017C0     01E2		      sxt4    r95 = NUMBER ;;			// r95 = r53				   // 000191
			   }
			   { .mib 
010003689180     01F0		      add     r70 = r68, NEGATIVE		// r70 = r68, r54			   // 000214
012000041200     01F1		      mov     r72 = 32									   // 000228
00A000001000     01F2		      br.call.sptk.many br0 = BINARY_TO_ASCII						   // 000191
			   }
			   { .mii 
010003611140     0200		      add     r69 = r8, NEGATIVE		// r69 = r8, r54			   // 000204

SASCII                          Machine Code Listing             4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 16
X00.09                          XST$ASCII                       19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

00A0342001C0     0201		      tbit.z  pr7, pr6 = r66, 0								   // 000201
01C452200000     0202		      cmp4.eq pr0, pr10 = r0, LENGTH		// pr0, pr10 = r0, r34			   // 000197
			   }
			   { .mmi 
012000055880     0210		      mov     r98 = 42									   // 000223
01200000C640     0211		      mov     r25 = 6									   // 000236
012000003840     0212		      mov     r97 = 1 ;;
			   }
			   { .mii 
01C000001206     0220	       (pr6)  cmp.eq.unc pr8, pr0 = r0, r0							   // 000226
0000B0001900     0221		      sxt4    r100 = r0									   // 000236
010800800F80     0222		      mov     SIGNIF_DIGITS = r8 ;;		// r62 = r8				   // 000191
			   }
			   { .mii 
010804501188     0230	       (pr8)  mov     r70 = r69									   // 000206
010804801248     0231	       (pr8)  mov     r73 = r72									   // 000228
0000B00018C0     0232		      sxt4    r99 = r0 ;;								   // 000236
			   }
			   { .mii 
0108046017C0     0240		      mov     r95 = r70									   // 000206
0000B2901800     0241		      sxt4    r96 = TEMPORARY ;;		// r96 = r41				   // 000236
0108022017CA     0242	       (pr10) mov     r95 = LENGTH ;;			// r95 = r34				   // 000206
			   }
			   { .mii 
01845C5BE000     0250		      cmp4.lt pr0, pr11 = r95, r69							   // 000220
0000B5F017C0     0251		      sxt4    r95 = r95 ;;								   // 000236
01080490188B     0252	       (pr11) mov     r98 = r73 ;;								   // 000223
			   }
			   { .mib 
010806201300     0260		      mov     FILL_CHARACTER = r98		// r76 = r98
0000B6201880     0261		      sxt4    r98 = r98									   // 000236
00A000001000     0262		      br.call.sptk.many br0 = XPO$ALLOC_MEM
			   }
			   { .mib 
010805E00040     0270		      mov     r1 = r94
00A0108000C0     0271		      tbit.z  pr3, pr2 = $XPO$STATUS, 0		// pr3, pr2 = r8, 0
008600004002     0272	       (pr2)  br.cond.dpnt.few L$28
			   }
			   { .mfb 
010800801340     0280		      mov     PRIMARY_CODE = $XPO$STATUS	// r77 = r8				   // 000238
000008000000     0281		      nop.f   0
008000028000     0282		      br.sptk.few L$30 ;;
			   }
	         0290	L$28:												   // 000236
			   { .mfb 
01CC24C54000     0290		      cmp4.eq pr0, pr4 = 42, FILL_CHARACTER	// pr0, pr4 = 42, r76			   // 000244
000008000000     0291		      nop.f   0
008600004004     0292	       (pr4)  br.cond.dpnt.few L$33
			   }
			   { .mfb 
012000003340     02A0		      mov     PRIMARY_CODE = 1			// r77 = 1				   // 000246
000008000000     02A1		      nop.f   0
008000024000     02A2		      br.sptk.few L$30 ;;
			   }
	         02B0	L$33:												   // 000244
			   { .mib 
000008000000     02B0		      nop.m   0

SASCII                          Machine Code Listing             4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 17
X00.09                          XST$ASCII                       19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

00A03B600200     02B1		      tbit.z  pr8, pr7 = NEGATIVE, 0		// pr8, pr7 = r54, 0			   // 000248
008600014008     02B2	       (pr8)  br.cond.dpnt.few L$36
			   }
			   { .mii 
000008000000     02C0		      nop.m   0
00A402028800     02C1		      extr.u  r32 = OPTIONS, 10, 1 ;;		// r32 = r32, 10, 1			   // 000250
00A04A000280     02C2		      tbit.z  pr10, pr9 = r32, 0
			   }
			   { .mfb 
000008000000     02D0		      nop.m   0
000008000000     02D1		      nop.f   0
00860000800A     02D2	       (pr10) br.cond.dpnt.few L$38
			   }
			   { .mii 
010802C08B00     02E0		      adds    r44 = 4, r44								   // 000252
01200005B3C0     02E1		      mov     r79 = 45
000008000000     02E2		      nop.i   0 ;;
			   }
			   { .mmi 
00B08ACF9380     02F0		      ld4     r78 = [r44], -4 ;;
000008000000     02F1		      nop.m   0
0000B4E01380     02F2		      sxt4    r78 = r78 ;;
			   }
			   { .mfb 
008C04E9E000     0300		      st1     [r78] = r79
000008000000     0301		      nop.f   0
00800000A000     0302		      br.sptk.few L$36 ;;								   // 000250
			   }
	         0310	L$38:
			   { .mii 
010802C08B00     0310		      adds    r44 = 4, r44								   // 000255
01200005B4C0     0311		      mov     r83 = 45									   // 000256
000008000000     0312		      nop.i   0 ;;
			   }
			   { .mmi 
00B08ACF9440     0320		      ld4     r81 = [r44], -4 ;;							   // 000255
008042C01480     0321		      ld2     r82 = [r44]								   // 000256
0000B5101440     0322		      sxt4    r81 = r81 ;;								   // 000255
			   }
			   { .mmi 
010023EA5480     0330		      sub     r82 = r82, SIGNIF_DIGITS, 1 ;;	// r82 = r82, r62, 1			   // 000256
000008000000     0331		      nop.m   0
0000B5201480     0332		      sxt4    r82 = r82 ;;
			   }
			   { .mmi 
0100052A3440     0340		      add     r81 = r81, r82 ;;
008C051A6000     0341		      st1     [r81] = r83
000008000000     0342		      nop.i   0
			   }
	         0350	L$36:												   // 000248
			   { .mii 
00A042C09580     0350		      ld2     r86 = [r44], 4								   // 000260
01012BE415C0     0351		      sub     r87 = 32, SIGNIF_DIGITS		// r87 = 32, r62			   // 000259
0000B3E01800     0352		      sxt4    r96 = SIGNIF_DIGITS ;;		// r96 = r62				   // 000258
			   }
			   { .mii 
00B08ACF9540     0360		      ld4     r85 = [r44], -4								   // 000260

SASCII                          Machine Code Listing             4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 18
X00.09                          XST$ASCII                       19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

0000B57015C0     0361		      sxt4    r87 = r87									   // 000259
01002BEAD580     0362		      sub     r86 = r86, SIGNIF_DIGITS ;;	// r86 = r86, r62			   // 000260
			   }
			   { .mii 
01000577B840     0370		      add     r97 = r61, r87								   // 000259
012000003340     0371		      mov     PRIMARY_CODE = 1			// r77 = 1				   // 000262
0000B5601580     0372		      sxt4    r86 = r86									   // 000260
			   }
			   { .mii 
000008000000     0380		      nop.m   0
0000B5501540     0381		      sxt4    r85 = r85 ;;
0100056AB7C0     0382		      add     r95 = r85, r86
			   }
			   { .mfb 
000008000000     0390		      nop.m   0
000008000000     0391		      nop.f   0
00A000001000     0392		      br.call.sptk.many br0 = OTS$MOVE							   // 000258
			   }
			   { .mfb 
010805E00040     03A0		      mov     r1 = r94
000008000000     03A1		      nop.f   0
008000004000     03A2		      br.sptk.few L$30 ;;								   // 000262
			   }
	         03B0	L$23:												   // 000139
			   { .mlx 
000008000000     03B0		      nop.m   0
800000000000     03B1		      movl    PRIMARY_CODE = 2402434 ;;		// r77 = 2402434			   // 000275
01951240A6
			   }
	         03C0	L$30:												   // 000131
			   { .mib 
000008000000     03C0		      nop.m   0
00A014D000C0     03C1		      tbit.z  pr3, pr2 = PRIMARY_CODE, 0	// pr3, pr2 = r77, 0			   // 000293
008600006002     03C2	       (pr2)  br.cond.dpnt.few L$41
			   }
			   { .mmi 
010802C08B00     03D0		      adds    r44 = 4, r44 ;;								   // 000297
00BC8AC9BF80     03D1		      st4     [r44] = PRIMARY_CODE, -2		// [r44] = r77, -2
000008000000     03D2		      nop.i   0 ;;
			   }
			   { .mfi 
008C02C00000     03E0		      st1     [r44] = r0								   // 000296
000008000000     03E1		      nop.f   0
000008000000     03E2		      nop.i   0
			   }
	         03F0	L$41:												   // 000293
			   { .mib 
000008000000     03F0		      nop.m   0
0000B2900200     03F1		      sxt4    r8 = TEMPORARY			// r8 = r41				   // 000304
004000000000     03F2		      nop.b   0
			   }
	         0400	L$20:
			   { .mii 
000008000000     0400		      nop.m   0
0016000BA7C0     0401		      mov     pr = r93, -65474
0001540B8000     0402		      mov.i   rspfs = r92 ;;
			   }

SASCII                          Machine Code Listing             4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 19
X00.09                          XST$ASCII                       19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

			   { .mib 
010800C60300     0410		      adds    r12 = 48, r12
000E001B6000     0411		      mov     br0 = r91
000108001100     0412		      br.ret.sptk.many br0 ;;
			   }
				      .endp   XST$ASCII

Routine Size: 1056 bytes,    Routine Base: _XPO$CODE + 0000

				      .proc   BINARY_TO_ASCII
				      .align 32
			BINARY_TO_ASCII:										   // 000310
			   { .mii 
002C00C1EAC0     0420		      alloc   r43 = rspfs, 4, 8, 3, 0
0119F8CE0300     0421		      adds    r12 = -16, r12
000188000A80     0422		      mov     r42 = br0
			   }
			   { .mmi 
0100022468C0     0430		      add     r35 = STRING_POINTER, 		// r35 = r35, r34			   // 000356
					      STRING_LENGTH
0108020000C0     0431		      mov     VALUE = r32			// r3 = r32				   // 000310
018C32200000     0432		      cmp4.lt pr0, pr6 = 0, STRING_LENGTH	// pr0, pr6 = 0, r34			   // 000362
			   }
			   { .mmi 
010802200A00     0440		      mov     COUNTER = STRING_LENGTH ;;	// r40 = r34
0119FA3FE800     0441		      adds    POINTER = -1, r35			// r32 = -1, r35			   // 000356
000008000000     0442		      nop.i   0
			   }
			   { .mfb 
000008000000     0450		      nop.m   0
000008000000     0451		      nop.f   0
008600016006     0452	       (pr6)  br.cond.dpnt.few L$11								   // 000362
			   }
			   { .mmi 
012000100A40     0460		      add     r41 = @ltoff(P.AAA), r1 ;;						   // 000371
0080C2900A40     0461		      ld8     r41 = P.AAA			// r41 = [r41]
000008000000     0462		      nop.i   0 ;;
			   }
	         0470	L$13:												   // 000364
			   { .mii 
010800C20880     0470		      adds    r34 = 16, r12								   // 000367
0000B2100B40     0471		      sxt4    r45 = BASE			// r45 = r33
0000B0300B00     0472		      sxt4    r44 = INTEGER			// r44 = r3
			   }
			   { .mmi 
0119FA8FEA00     0480		      adds    r40 = -1, r40 ;;								   // 000364
000008000000     0481		      nop.m   0
0000B2200B80     0482		      sxt4    r46 = r34									   // 000367
			   }
			   { .mfb 
000008000000     0490		      nop.m   0
000008000000     0491		      nop.f   0
00A000001000     0492		      br.call.sptk.many br0 = UNSIGNED_DIVIDE
			   }
			   { .mii 
010800C20880     04A0		      adds    r34 = 16, r12								   // 000371
0000B2000240     04A1		      sxt4    r9 = POINTER			// r9 = r32

SASCII                          Machine Code Listing             4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 20
X00.09                          BINARY_TO_ASCII                 19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

01C4008001C0     04A2		      cmp4.eq pr7, pr0 = r0, r8								   // 000373
			   }
			   { .mmi 
0108008000C0     04B0		      mov     INTEGER = r8 ;;			// r3 = r8				   // 000367
008082200880     04B1		      ld4     r34 = [r34]								   // 000371
000008000000     04B2		      nop.i   0 ;;
			   }
			   { .mii 
000008000000     04C0		      nop.m   0
0000B2200880     04C1		      sxt4    r34 = r34 ;;
010002252880     04C2		      add     r34 = r41, r34 ;;
			   }
			   { .mmi 
008002200880     04D0		      ld1     r34 = [r34] ;;
008C00944000     04D1		      st1     [r9] = r34
000008000000     04D2		      nop.i   0
			   }
			   { .mfb 
000008000000     04E0		      nop.m   0
000008000000     04E1		      nop.f   0
008600004007     04E2	       (pr7)  br.cond.dpnt.few L$11								   // 000373
			   }
			   { .mib 
0119FA0FE800     04F0		      adds    r32 = -1, r32
018C02800240     04F1		      cmp4.lt pr9, pr0 = 0, COUNTER		// pr9, pr0 = 0, r40			   // 000362
0095FFFF0009     04F2	       (pr9)  br.cond.dptk.few L$13 ;;
			   }
	         0500	L$11:
			   { .mmi 
01002A046200     0500		      sub     r8 = r35, POINTER ;;		// r8 = r35, r32			   // 000384
000008000000     0501		      nop.m   0
0000B0800200     0502		      sxt4    r8 = r8
			   }
			   { .mii 
000008000000     0510		      nop.m   0
000154056000     0511		      mov.i   rspfs = r43
010800C20300     0512		      adds    r12 = 16, r12 ;;
			   }
			   { .mib 
000008000000     0520		      nop.m   0
000E00154000     0521		      mov     br0 = r42
000108001100     0522		      br.ret.sptk.many br0 ;;
			   }
				      .endp   BINARY_TO_ASCII

Routine Size: 272 bytes,    Routine Base: _XPO$CODE + 0420

				      .proc   UNSIGNED_DIVIDE
				      .align 32
			UNSIGNED_DIVIDE:										   // 000390
			   { .mib 
002C00C1EAC0     0530		      alloc   r43 = rspfs, 3, 9, 3, 0
0000B20000C0     0531		      sxt4    r3 = DIVIDEND			// r3 = r32				   // 000437
004000000000     0532		      nop.b   0
			   }
			   { .mlx 
01CC021041C0     0540		      cmp4.eq pr7, pr0 = 2, DIVISOR		// pr7, pr0 = 2, r33			   // 000442

SASCII                          Machine Code Listing             4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 21
X00.09                          UNSIGNED_DIVIDE                 19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

0000000001FF     0541		      movl    r8 = 2147483647 ;;							   // 000438
019FFFDFC4
			   }
			   { .mii 
000008000000     0550		      nop.m   0
00A5F03060C0     0551		      shr     r3 = r3, 1								   // 000437
000188000A80     0552		      mov     r42 = br0 ;;								   // 000390
			   }
			   { .mfb 
010060806A00     0560		      and     QUOTIENT = r3, r8			// r40 = r3, r8				   // 000438
000008000000     0561		      nop.f   0
008600030007     0562	       (pr7)  br.cond.dpnt.few L$5								   // 000442
			   }
			   { .mii 
012000006640     0570		      mov     r25 = 3									   // 000444
0000B0000B80     0571		      sxt4    r46 = r0
012000004B40     0572		      mov     r45 = 2 ;;
			   }
			   { .mii 
000008000000     0580		      nop.m   0
0000B2100B00     0581		      sxt4    r44 = DIVISOR			// r44 = r33
0000B2800A40     0582		      sxt4    r41 = QUOTIENT			// r41 = r40
			   }
			   { .mfb 
000008000000     0590		      nop.m   0
000008000000     0591		      nop.f   0
00A000001000     0592		      br.call.sptk.many br0 = UNSIGNED_DIVIDE
			   }
			   { .mii 
0119F80FC440     05A0		      adds    r17 = -2, r0
0000B08000C0     05A1		      sxt4    r3 = r8 ;;
01C000300180     05A2		      cmp.eq  pr6, pr0 = r0, r3 ;;
			   }
			   { .mmi 
001000000046     05B0	       (pr6)  break.m 1048577
00C7080061C0     05B1		      setf.sig f7 = r3
000008000000     05B2		      nop.i   0 ;;
			   }
			   { .mfi 
00C708052180     05C0		      setf.sig f6 = r41
0000E000E240     05C1		      fcvt.xf f9 = f7
000008000000     05C2		      nop.i   0 ;;
			   }
			   { .mfi 
000008000000     05D0		      nop.m   0
0000E000C200     05D1		      fcvt.xf f8 = f6
000008000000     05D2		      nop.i   0 ;;
			   }
			   { .mfi 
000008000000     05E0		      nop.m   0
000630910280     05E1		      frcpa.s1 f10, pr6 = f8, f9
000008000000     05E2		      nop.i   0 ;;
			   }
			   { .mfi 
000008000000     05F0		      nop.m   0
018448A021C6     05F1	       (pr6)  fnma.s1 f7 = f10, f9, f1
000008000000     05F2		      nop.i   0 ;;

SASCII                          Machine Code Listing             4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 22
X00.09                          UNSIGNED_DIVIDE                 19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

			   }
			   { .mfi 
000008000000     0600		      nop.m   0
010438A142C6     0601	       (pr6)  fma.s1  f11 = f10, f7, f10
000008000000     0602		      nop.i   0
			   }
			   { .mfi 
000008000000     0610		      nop.m   0
010438700186     0611	       (pr6)  fma.s1  f6 = f7, f7, f0
000008000000     0612		      nop.i   0 ;;
			   }
			   { .mfi 
000008000000     0620		      nop.m   0
0104508001C6     0621	       (pr6)  fma.s1  f7 = f8, f10, f0
000008000000     0622		      nop.i   0 ;;
			   }
			   { .mfi 
000008000000     0630		      nop.m   0
010430B16286     0631	       (pr6)  fma.s1  f10 = f11, f6, f11
000008000000     0632		      nop.i   0 ;;
			   }
			   { .mfi 
000008000000     0640		      nop.m   0
0184389102C6     0641	       (pr6)  fnma.s1 f11 = f9, f7, f8
000008000000     0642		      nop.i   0
			   }
			   { .mfi 
000008000000     0650		      nop.m   0
018448A02186     0651	       (pr6)  fnma.s1 f6 = f10, f9, f1
000008000000     0652		      nop.i   0 ;;
			   }
			   { .mfi 
000008000000     0660		      nop.m   0
010430A14286     0661	       (pr6)  fma.s1  f10 = f10, f6, f10
000008000000     0662		      nop.i   0 ;;
			   }
			   { .mfi 
000008000000     0670		      nop.m   0
010450B0E1C6     0671	       (pr6)  fma.s1  f7 = f11, f10, f7
000008000000     0672		      nop.i   0
			   }
			   { .mfi 
000008000000     0680		      nop.m   0
018450902186     0681	       (pr6)  fnma.s1 f6 = f9, f10, f1
000008000000     0682		      nop.i   0 ;;
			   }
			   { .mfi 
000008000000     0690		      nop.m   0
010430A142C6     0691	       (pr6)  fma.s1  f11 = f10, f6, f10
000008000000     0692		      nop.i   0
			   }
			   { .mfi 
000008000000     06A0		      nop.m   0
018438910186     06A1	       (pr6)  fnma.s1 f6 = f9, f7, f8
000008000000     06A2		      nop.i   0 ;;
			   }
			   { .mfi 

SASCII                          Machine Code Listing             4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 23
X00.09                          UNSIGNED_DIVIDE                 19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

000008000000     06B0		      nop.m   0
010430B0E286     06B1	       (pr6)  fma.s1  f10 = f11, f6, f7
000008000000     06B2		      nop.i   0 ;;
			   }
			   { .mfi 
000008000000     06C0		      nop.m   0
0004D00141C0     06C1		      fcvt.fx.trunc.s1 f7 = f10
000008000000     06C2		      nop.i   0 ;;
			   }
			   { .mfi 
00870800EA00     06D0		      getf.sig QUOTIENT = f7			// r40 = f7
000008000000     06D1		      nop.f   0
000008000000     06D2		      nop.i   0
			   }
	         06E0	L$5:												   // 000442
			   { .mfb 
01C402200200     06E0		      cmp4.eq pr8, pr0 = r0, ADDR_REMAINDER	// pr8, pr0 = r0, r34			   // 000450
000008000000     06E1		      nop.f   0
00860000C008     06E2	       (pr8)  br.cond.dpnt.few L$7 ;;
			   }
			   { .mib 
00C708042340     06F0		      setf.sig f13 = DIVISOR			// f13 = r33				   // 000455
0000B2200880     06F1		      sxt4    r34 = ADDR_REMAINDER		// r34 = r34
004000000000     06F2		      nop.b   0
			   }
			   { .mfi 
00C708050380     0700		      setf.sig f14 = QUOTIENT			// f14 = r40
000008000000     0701		      nop.f   0
000008000000     0702		      nop.i   0 ;;
			   }
			   { .mfi 
000008000000     0710		      nop.m   0
01D070D00300     0711		      xma.l   f12 = f13, f14, f0
000008000000     0712		      nop.i   0 ;;
			   }
			   { .mmi 
008708018840     0720		      getf.sig r33 = f12 ;;
01002A140800     0721		      sub     r32 = DIVIDEND, r33		// r32 = r32, r33
000008000000     0722		      nop.i   0 ;;
			   }
			   { .mfi 
008C82240000     0730		      st4     [r34] = r32
000008000000     0731		      nop.f   0
000008000000     0732		      nop.i   0
			   }
	         0740	L$7:												   // 000450
			   { .mii 
000008000000     0740		      nop.m   0
0000B2800200     0741		      sxt4    r8 = QUOTIENT			// r8 = r40				   // 000462
000154056000     0742		      mov.i   rspfs = r43 ;;
			   }
			   { .mib 
000008000000     0750		      nop.m   0
000E00154000     0751		      mov     br0 = r42
000108001100     0752		      br.ret.sptk.many br0 ;;
			   }
				      .endp   UNSIGNED_DIVIDE

SASCII                          Machine Code Listing             4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 24
X00.09                          UNSIGNED_DIVIDE                 19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1


Routine Size: 560 bytes,    Routine Base: _XPO$CODE + 0530

				       .psect _XPO$PLIT, CON, LCL, NOSHR, NOEXE, NOWRT, NOVEC
				      .lcomm  P.AAA, 16, 16
				      .psect _XPO$PLIT, CON, LCL, NOSHR, NOEXE, NOWRT, NOVEC
			P.AAA:
33323130         0000		      string  "0123456789ABCDEF"
37363534         0004
42413938         0008
46454443         000C

				      .section .data
				      .type   XPO$ALLOC_MEM, @function 
				      .global  XPO$ALLOC_MEM
				      .global XST$NO_MEMORY
				      .section .data
				      .type   XPO$ALLOC_MEM, @function 
				      .global  XPO$ALLOC_MEM
				      .section .data
				      .type   OTS$MOVE, @function 
				      .global  OTS$MOVE


;				Library Statistics
;
;					     -------- Symbols --------	    Pages
;	File				     Total    Loaded   Percent      Mapped
;
;  DISK$NORMS_OWN:[LASTOVICA.XPORT.VMSGEN]XPORT.L32;14
;					       590        72        12       270
;  DISK$NORMS_OWN:[LASTOVICA.XPORT.VMSGEN]XPOSYS.L32;14
;					        91        18        19        27




                                Source Listing                   4-FEB-2004 11:01:59  BLISS-32I T1.1-053                Page 25
                                Source Listing                  19-MAR-2002 10:11:34  [LASTOVICA.XPORT.VMSGEN]SASCII.BLI;1

COMMAND LINE:

BLISSSASCII/LIST/DEBUG
