                                XST$FORMAT - ASCII to ASCII Con  4-FEB-2004 11:02:01  BLISS-32I T1.1-053                Page 1
                                                                19-MAR-2002 10:11:41  [LASTOVICA.XPORT.VMSGEN]SFORM.BLI;1

    0	      1 MODULE SFORM (	IDENT = 'X00.04'	%TITLE 'XST$FORMAT - ASCII to ASCII Conversion'
    0	      2 		%BLISS32( ,ADDRESSING_MODE( EXTERNAL=LONG_RELATIVE ) )
    0	      3 		%BLISS36( ,ENTRY( XST$FORMAT ),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_FORMAT 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 !--

SFORM                           XST$FORMAT - ASCII to ASCII Con  4-FEB-2004 11:02:01  BLISS-32I T1.1-053                Page 2
X00.04                                                          19-MAR-2002 10:11:41  [LASTOVICA.XPORT.VMSGEN]SFORM.BLI;1

    1	     40 !
    1	     41 ! TABLE OF CONTENTS:
    1	     42 !
    1	     43 
    1	     44 FORWARD ROUTINE
    1	     45     XST$FORMAT;						! ASCII to ASCII formatting routine
    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( $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	     57 
    1	     58 !
    1	     59 ! MACROS:
    1	     60 !
    1	     61 
    1	     62 !
    1	     63 ! EQUATED SYMBOLS:
    1	     64 !
    1	     65 
    1	     66 !
    1	     67 ! PSECT DECLARATIONS:
    1	     68 !
    1	     69 
    1	     70     $XPO_PSECTS						! Declare XPORT PSECT names and attributes
    1	     71 
    1	     72 !
    1	     73 ! OWN STORAGE:
    1	     74 !
    1	     75 
    1	     76 !
    1	     77 ! EXTERNAL REFERENCES:
    1	     78 !

SFORM                           XST$FORMAT - ASCII to ASCII Con  4-FEB-2004 11:02:01  BLISS-32I T1.1-053                Page 3
X00.04                                                          19-MAR-2002 10:11:41  [LASTOVICA.XPORT.VMSGEN]SFORM.BLI;1

    1	     80 GLOBAL ROUTINE XST$FORMAT( options, string, length ) =
    1	     81 
    1	     82 !++
    1	     83 !
    1	     84 ! FUNCTIONAL DESCRIPTION:
    1	     85 !
    1	     86 !	This routine implements the $STR_FORMAT string pseudo-function.
    1	     87 !
    1	     88 ! FORMAL PARAMETERS:
    1	     89 !
    1	     90 !	options - string options and function code
    1	     91 !	string - address of the source string descriptor
    1	     92 !	length - requested resulting string length
    1	     93 !
    1	     94 ! IMPLICIT INPUTS:
    1	     95 !
    1	     96 !	None
    1	     97 !
    1	     98 ! IMPLICIT OUTPUTS:
    1	     99 !
    1	    100 !	None
    1	    101 !
    1	    102 ! ROUTINE VALUE:
    1	    103 !
    1	    104 !	address of an XPORT temporary string descriptor
    1	    105 !
    1	    106 ! SIDE EFFECTS:
    1	    107 !
    1	    108 !	None
    1	    109 !
    1	    110 !--
    1	    111 
    1	    112     BEGIN
    2	    113 
    2	    114     MAP
    2	    115 	options :  $STR_OPTIONS,
    2	    116 	string :  REF $STR_DESCRIPTOR();
    2	    117 
    2	    118     LOCAL
    2	    119 	format_length,
    2	    120 	temporary :  REF $STR_DESCRIPTOR( CLASS = DYNAMIC ),
    2	    121 	prefix_length;
    2	    122 
    2	    123 !
    2	    124 ! Initialization
    2	    125 !
    2	    126 
    2	    127     $STR_MAIN_BEGIN( PSEUDO )				! Beginning of MAIN_BLOCK code block
    3	    128 
    3	    129     $STR_ALLOC_TEMP( temporary );			! Setup an XPORT temporary string descriptor.
    3	    130 
    3	    131     $STR_VALIDATE( .string, BAD_SOURCE );		! Validate the source string descriptor.
    3	    132 
    3	    133 !
    3	    134 ! Calculate the resulting string length.
    3	    135 !
    3	    136 

SFORM                           XST$FORMAT - ASCII to ASCII Con  4-FEB-2004 11:02:01  BLISS-32I T1.1-053                Page 4
X00.04                                                          19-MAR-2002 10:11:41  [LASTOVICA.XPORT.VMSGEN]SFORM.BLI;1

    3	    137     IF .length NEQ 0					! If the caller specified a resulting string length,
    3	    138     THEN						!
    3	    139 	format_length = .length				! use that length.
    3	    140     ELSE
    3	    141 	format_length = .string[STR$H_LENGTH];		! Otherwise, use the length of the source string.
    3	    142 
    3	    143 !
    3	    144 ! Allocate a resulting string in dynamic memory.
    3	    145 !
    3	    146 
    3	    147     IF .string[STR$H_LENGTH] LEQ .format_length		! If the caller requested a resulting string length
    3	    148 							! that is large enuf for the source string,
    3	    149     THEN						!
    3	    150 	BEGIN						!
    4	    151 	$XPO_IF_NOT( $XPO_GET_MEM(			! allocate the string and fill it with blanks.
P   4	    152 			    CHARACTERS = .format_length,
P   4	    153 			    DESCRIPTOR = .temporary,
P   4	    154 			    FILL = %C' ',
P   4	    155 			    FAILURE = 0 ) )
    6	    156 	THEN
    5	    157 	    $STR_QUIT( (.$XPO_STATUS) );
    4	    158 	END
    4	    159     ELSE
    3	    160 	BEGIN
    4	    161 	$XPO_IF_NOT( $XPO_GET_MEM(			! Otherwise, allocate the string and fill it with asterisks.
P   4	    162 			    CHARACTERS = .format_length,
P   4	    163 			    DESCRIPTOR = .temporary,
P   4	    164 			    FILL = %C'*',
P   4	    165 			    FAILURE = 0 ) )
    6	    166 	THEN
    5	    167 	    $STR_QUIT( (.$XPO_STATUS) );
    4	    168 
    4	    169 	$STR_QUIT( NORMAL );				! Return the asterisks to the caller.
    4	    170 	END;
    3	    171 
    3	    172 !
    3	    173 ! Calculate the length of the string prefix in the resulting string.
    3	    174 !
    3	    175 
    3	    176     IF .options[STR$V_RIGHT_JUS]
    3	    177     THEN
    3	    178         prefix_length = .temporary[STR$H_LENGTH] -	! RIGHT_JUSTIFY :  all of extra space
    3	    179 			.string[STR$H_LENGTH]
    3	    180     ELSE
    3	    181         IF .options[STR$V_CENTER]
    3	    182     	THEN
    3	    183 	    prefix_length =				! CENTER :  half of extra space, rounded down
    3	    184 		( .temporary[STR$H_LENGTH] -
    4	    185 			.string[STR$H_LENGTH] ) / 2
    3	    186         ELSE
    3	    187     	    prefix_length = 0;				! LEFT_JUSTIFY :  no prefix
    3	    188 
    3	    189 !
    3	    190 ! Copy the source string into the resulting area.
    3	    191 !
    3	    192 
    3	    193     CH$MOVE( .string[STR$H_LENGTH], .string[STR$A_POINTER],

SFORM                           XST$FORMAT - ASCII to ASCII Con  4-FEB-2004 11:02:01  BLISS-32I T1.1-053                Page 5
X00.04                                                          19-MAR-2002 10:11:41  [LASTOVICA.XPORT.VMSGEN]SFORM.BLI;1

    3	    194 		CH$PLUS( .temporary[STR$A_POINTER], .prefix_length ) );
    3	    195 
    3	    196 !
    3	    197 ! Convert the appended string to upper case if requested.
    3	    198 !
    3	    199 
    3	    200     IF .options[STR$V_UP_CASE]
    3	    201     THEN
    3	    202 	BEGIN
    4	    203 	LOCAL
    4	    204 	    character,					! A single ASCII character
    4	    205 	    pointer;					! Pointer into target string
    4	    206 
    4	    207 	pointer = CH$PLUS( .temporary[STR$A_POINTER],	! Point to the character preceding the copied string.
    4	    208 				.prefix_length - 1 );
    4	    209 
    4	    210 	INCR index FROM 1 TO .string[STR$H_LENGTH] DO	! Loop through the copied string.
    4	    211 	    BEGIN
    5	    212 	    character = CH$A_RCHAR( pointer );		! Pickup a single ASCII character.
    5	    213 
    5	    214 	    IF .character GEQ %C'a' AND			! If it is a lower-case character,
    5	    215 			.character LEQ %C'z'		!
    5	    216 	    THEN					!
    5	    217 		CH$WCHAR( .character - %C' ',		! convert it to upper-case.
    5	    218 					.pointer );
    5	    219 	    END;
    4	    220 	END;
    3	    221 
    3	    222     $STR_QUIT( NORMAL );
    3	    223 
    3	    224     $STR_MAIN_END;					! End of MAIN_BLOCK code block
    2	    225 
    2	    226 !
    2	    227 ! Free an XPORT temporary string input to this formatting function.
    2	    228 !
    2	    229 
    2	    230     IF NOT .options[STR$V_NO_FREE_T]			! Unless this is an internal XPORT call,
    2	    231     THEN						!
    2	    232 	$STR_FREE_TEMP( .string );			! free the source string if it is a temporary string.
    2	    233 
    2	    234 !
    2	    235 ! Modify the temporary string descriptor in the event of an error.
    2	    236 !
    2	    237 
    2	    238     IF NOT .primary_code				! If the conversion failed,
    2	    239     THEN						!
    2	    240 	BEGIN						! modify the temporary string descriptor:
    3	    241 	temporary[STR$B_DTYPE] = STR$K_DTYPE_XXX;	!    indicate an erroneous temporary string
    3	    242 	temporary[STR$A_POINTER] = .primary_code;	!    save the error code for $STR_VALIDATE
    3	    243 	END;
    2	    244 
    2	    245 !
    2	    246 ! Return the address of the temporary string descriptor.
    2	    247 !
    2	    248 
    2	    249     RETURN .temporary
    2	    250 

SFORM                           XST$FORMAT - ASCII to ASCII Con  4-FEB-2004 11:02:01  BLISS-32I T1.1-053                Page 6
X00.04                                                          19-MAR-2002 10:11:41  [LASTOVICA.XPORT.VMSGEN]SFORM.BLI;1

    2	    251     END;
    1	    252 END
    1	    253 ELUDOM

SFORM                           Machine Code Listing             4-FEB-2004 11:02:01  BLISS-32I T1.1-053                Page 7
X00.04                                                          19-MAR-2002 10:11:41  [LASTOVICA.XPORT.VMSGEN]SFORM.BLI;1

				      .psect _XPO$CODE, CON, LCL, SHR, EXE, NOWRT, NOVEC
				      .proc   XST$FORMAT
				      .align 32
				      .global  XST$FORMAT
			XST$FORMAT:											   // 000080
			   { .mii 
0119F8CE0300     0000		      adds    r12 = -16, r12
01200000C640     0001		      mov     r25 = 6									   // 000129
000008000000     0002		      nop.i   0
			   }
			   { .mlx 
000008000000     0010		      nop.m   0
800000000008     0011		      movl    r3 = 33685504 ;;
0180010001
			   }
			   { .mii 
010800C20200     0020		      adds    r8 = 16, r12
010800C28240     0021		      adds    r9 = 20, r12
010800C20280     0022		      adds    r10 = 16, r12 ;;
			   }
			   { .mmi 
002C02E692C0     0030		      alloc   r75 = rspfs, 3, 43, 6, 0							   // 000080
008C80806000     0031		      st4     [r8] = r3									   // 000129
010800101340     0032		      mov     r77 = r1									   // 000080
			   }
			   { .mii 
0119F80FF400     0040		      adds    r80 = -1, r0								   // 000129
000188001280     0041		      mov     r74 = br0									   // 000080
0000B00014C0     0042		      sxt4    r83 = r0									   // 000129
			   }
			   { .mii 
012000011380     0050		      mov     r78 = 8
0000B0001480     0051		      sxt4    r82 = r0
0000B0001440     0052		      sxt4    r81 = r0
			   }
			   { .mib 
008C80900000     0060		      st4     [r9] = r0
0000B0A013C0     0061		      sxt4    r79 = r10
004000000000     0062		      nop.b   0 ;;
			   }
			   { .mib 
000008000000     0070		      nop.m   0
000198001300     0071		      mov     r76 = pr									   // 000080
00A000001000     0072		      br.call.sptk.many br0 = XPO$ALLOC_MEM						   // 000129
			   }
			   { .mii 
010800C28A00     0080		      adds    r40 = 20, r12
00A0308001C0     0081		      tbit.z  pr7, pr6 = r8, 0
010804D00040     0082		      mov     r1 = r77 ;;
			   }
			   { .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

SFORM                           Machine Code Listing             4-FEB-2004 11:02:01  BLISS-32I T1.1-053                Page 8
X00.04                          XST$FORMAT                      19-MAR-2002 10:11:41  [LASTOVICA.XPORT.VMSGEN]SFORM.BLI;1

000008000000     00A1		      nop.f   0
008600006008     00A2	       (pr8)  br.cond.dpnt.few L$2
			   }
			   { .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
008000076000     00C2		      br.sptk.few L$4 ;;
			   }
	         00D0	L$2:
			   { .mii 
01200807ABC0     00D0		      mov     r47 = 189
0000B2900AC0     00D1		      sxt4    r43 = TEMPORARY			// r43 = r41
01200001CB40     00D2		      mov     r45 = 14
			   }
			   { .mib 
012000002640     00E0		      mov     r25 = 1									   // 000131
0000B2101380     00E1		      sxt4    r78 = STRING			// r78 = r33
004000000000     00E2		      nop.b   0 ;;
			   }
			   { .mmi 
00AC42B00100     00F0		      st2     [r43] = r0, 4 ;;								   // 000129
00BC8AB01FC0     00F1		      st4     [r43] = r0, -1
000008000000     00F2		      nop.i   0 ;;
			   }
			   { .mmi 
00BC0AB5FFC0     0100		      st1     [r43] = r47, -1 ;;
00BC0AB5BF80     0101		      st1     [r43] = r45, -2
000008000000     0102		      nop.i   0
			   }
			   { .mfb 
000008000000     0110		      nop.m   0
000008000000     0111		      nop.f   0
00A000001000     0112		      br.call.sptk.many br0 = XST$VALIDATE						   // 000131
			   }
			   { .mib 
010804D00040     0120		      mov     r1 = r77
00A0308001C0     0121		      tbit.z  pr7, pr6 = r8, 0
008600006006     0122	       (pr6)  br.cond.dpnt.few L$5
			   }
			   { .mlx 
000008000000     0130		      nop.m   0
000000000000     0131		      movl    PRIMARY_CODE = 2402378		// r50 = 2402378
0195025299
			   }
			   { .mfb 
000008000000     0140		      nop.m   0
000008000000     0141		      nop.f   0
008000056000     0142		      br.sptk.few L$7 ;;
			   }
	         0150	L$5:
			   { .mib 
01C442200000     0150		      cmp4.eq pr0, pr8 = r0, LENGTH		// pr0, pr8 = r0, r34			   // 000137

SFORM                           Machine Code Listing             4-FEB-2004 11:02:01  BLISS-32I T1.1-053                Page 9
X00.04                          XST$FORMAT                      19-MAR-2002 10:11:41  [LASTOVICA.XPORT.VMSGEN]SFORM.BLI;1

0000B2100CC0     0151		      sxt4    r51 = STRING			// r51 = r33				   // 000141
004000000000     0152		      nop.b   0 ;;
			   }
			   { .mmi 
008043300D00     0160		      ld2     r52 = [r51] ;;
010803401380     0161		      mov     r78 = r52
000008000000     0162		      nop.i   0 ;;
			   }
			   { .mmi 
010802201388     0170	       (pr8)  mov     r78 = LENGTH ;;			// r78 = r34
01840349C280     0171		      cmp4.lt pr10, pr0 = r78, r52							   // 000147
010804E00D40     0172		      mov     FORMAT_LENGTH = r78		// r53 = r78				   // 000141
			   }
			   { .mfb 
000008000000     0180		      nop.m   0
000008000000     0181		      nop.f   0
00860004400A     0182	       (pr10) br.cond.dpnt.few L$9								   // 000147
			   }
			   { .mii 
01200000C640     0190		      mov     r25 = 6									   // 000155
0000B00014C0     0191		      sxt4    r83 = r0
0000B0001480     0192		      sxt4    r82 = r0
			   }
			   { .mmi 
012000041440     01A0		      mov     r81 = 32
012000003400     01A1		      mov     r80 = 1
0000B29013C0     01A2		      sxt4    r79 = TEMPORARY			// r79 = r41
			   }
			   { .mib 
000008000000     01B0		      nop.m   0
0000B4E01380     01B1		      sxt4    r78 = r78
00A000001000     01B2		      br.call.sptk.many br0 = XPO$ALLOC_MEM
			   }
			   { .mib 
010804D00040     01C0		      mov     r1 = r77
00A0308001C0     01C1		      tbit.z  pr7, pr6 = $XPO$STATUS, 0		// pr7, pr6 = r8, 0
008600004006     01C2	       (pr6)  br.cond.dpnt.few L$10
			   }
			   { .mfb 
010800800C80     01D0		      mov     PRIMARY_CODE = $XPO$STATUS	// r50 = r8				   // 000157
000008000000     01D1		      nop.f   0
008000044000     01D2		      br.sptk.few L$7 ;;
			   }
	         01E0	L$10:												   // 000147
			   { .mii 
0080433013C0     01E0		      ld2     r79 = [r51]								   // 000179
00A402004D80     01E1		      extr.u  r54 = OPTIONS, 1, 1 ;;		// r54 = r32, 1, 1			   // 000176
00A043600240     01E2		      tbit.z  pr9, pr8 = r54, 0
			   }
			   { .mfb 
000008000000     01F0		      nop.m   0
000008000000     01F1		      nop.f   0
008600006009     01F2	       (pr9)  br.cond.dpnt.few L$13
			   }
			   { .mmi 
008042B00E00     0200		      ld2     r56 = [r43] ;;								   // 000178
01002CF70E00     0201		      sub     PREFIX_LENGTH = r56, r79		// r56 = r56, r79

SFORM                           Machine Code Listing             4-FEB-2004 11:02:01  BLISS-32I T1.1-053                Page 10
X00.04                          XST$FORMAT                      19-MAR-2002 10:11:41  [LASTOVICA.XPORT.VMSGEN]SFORM.BLI;1

000008000000     0202		      nop.i   0
			   }
			   { .mfb 
000008000000     0210		      nop.m   0
000008000000     0211		      nop.f   0
008000010000     0212		      br.sptk.few L$14 ;;								   // 000176
			   }
	         0220	L$13:
			   { .mii 
000008000000     0220		      nop.m   0
00A402008E40     0221		      extr.u  r57 = OPTIONS, 2, 1 ;;		// r57 = r32, 2, 1			   // 000181
00A0539002C0     0222		      tbit.z  pr11, pr10 = r57, 0
			   }
			   { .mfb 
000008000000     0230		      nop.m   0
000008000000     0231		      nop.f   0
00860000A00B     0232	       (pr11) br.cond.dpnt.few L$16
			   }
			   { .mii 
008042B00E80     0240		      ld2     r58 = [r43]								   // 000184
010800000EC0     0241		      mov     r59 = r0 ;;								   // 000185
01002CF74E80     0242		      sub     r58 = r58, r79 ;;								   // 000184
			   }
			   { .mmi 
018400074300     0250		      cmp4.lt pr12, pr0 = r58, r0 ;;							   // 000185
010800002ECC     0251	       (pr12) adds    r59 = 1, r0
000008000000     0252		      nop.i   0 ;;
			   }
			   { .mmi 
010003B74E80     0260		      add     r58 = r58, r59 ;;
000008000000     0261		      nop.m   0
0000B3A00E80     0262		      sxt4    r58 = r58 ;;
			   }
			   { .mib 
000008000000     0270		      nop.m   0
00A5F3A06E00     0271		      shr     PREFIX_LENGTH = r58, 1		// r56 = r58, 1
008000004000     0272		      br.sptk.few L$14 ;;								   // 000181
			   }
	         0280	L$16:
			   { .mfi 
010800000E00     0280		      mov     PREFIX_LENGTH = r0		// r56 = r0				   // 000187
000008000000     0281		      nop.f   0
000008000000     0282		      nop.i   0
			   }
	         0290	L$14:												   // 000176
			   { .mii 
010802B08AC0     0290		      adds    r43 = 4, r43								   // 000194
00A402030F80     0291		      extr.u  r62 = OPTIONS, 12, 1		// r62 = r32, 12, 1			   // 000200
0000B4F013C0     0292		      sxt4    r79 = r79 ;;								   // 000193
			   }
			   { .mii 
00B08ABF8F00     02A0		      ld4     r60 = [r43], -4								   // 000194
010803308CC0     02A1		      adds    r51 = 4, r51								   // 000193
0000B3800FC0     02A2		      sxt4    r63 = PREFIX_LENGTH ;;		// r63 = r56				   // 000194
			   }
			   { .mii 
000008000000     02B0		      nop.m   0

SFORM                           Machine Code Listing             4-FEB-2004 11:02:01  BLISS-32I T1.1-053                Page 11
X00.04                          XST$FORMAT                      19-MAR-2002 10:11:41  [LASTOVICA.XPORT.VMSGEN]SFORM.BLI;1

00A013E000C0     02B1		      tbit.z  pr3, pr2 = r62, 0								   // 000200
0000B3C00F00     02B2		      sxt4    r60 = r60 ;;								   // 000194
			   }
			   { .mii 
00B08B3F8F40     02C0		      ld4     r61 = [r51], -4								   // 000193
010003F79380     02C1		      add     r78 = r60, r63 ;;								   // 000194
0000B3D01400     02C2		      sxt4    r80 = r61									   // 000193
			   }
			   { .mfb 
000008000000     02D0		      nop.m   0
000008000000     02D1		      nop.f   0
00A000001000     02D2		      br.call.sptk.many br0 = OTS$MOVE
			   }
			   { .mfb 
010804D00040     02E0		      mov     r1 = r77
000008000000     02E1		      nop.f   0
008600016003     02E2	       (pr3)  br.cond.dpnt.few L$20								   // 000200
			   }
			   { .mii 
010802B08AC0     02F0		      adds    r43 = 4, r43								   // 000207
012000003040     02F1		      mov     INDEX = 1				// r65 = 1				   // 000210
000008000000     02F2		      nop.i   0 ;;
			   }
			   { .mmi 
00B08ABF9000     0300		      ld4     r64 = [r43], -4								   // 000207
008043300CC0     0301		      ld2     r51 = [r51]								   // 000210
000008000000     0302		      nop.i   0 ;;
			   }
			   { .mib 
018C33300000     0310		      cmp4.lt pr0, pr6 = 0, r51
010003880E00     0311		      add     r56 = r64, PREFIX_LENGTH		// r56 = r64, r56			   // 000208
008600010006     0312	       (pr6)  br.cond.dpnt.few L$20 ;;								   // 000210
			   }
			   { .mfi 
0119FB8FEE00     0320		      adds    r56 = -1, r56								   // 000208
000008000000     0321		      nop.f   0
000008000000     0322		      nop.i   0 ;;
			   }
	         0330	L$24:												   // 000210
			   { .mmi 
010803802E00     0330		      adds    r56 = 1, r56 ;;
000008000000     0331		      nop.m   0
0000B3801080     0332		      sxt4    r66 = POINTER ;;			// r66 = r56				   // 000212
			   }
			   { .mmi 
0080042010C0     0340		      ld1     CHARACTER = [r66] ;;		// r67 = [r66]
0119FC33F100     0341		      adds    r68 = -97, CHARACTER		// r68 = -97, r67			   // 000214
0119FC3C10C0     0342		      adds    r67 = -32, r67 ;;
			   }
			   { .mfb 
01AC04432240     0350		      cmp4.ltu pr9, pr0 = 25, r68
000008000000     0351		      nop.f   0
008600004009     0352	       (pr9)  br.cond.dpnt.few L$28
			   }
			   { .mfi 
008C04286000     0360		      st1     [r66] = r67								   // 000218
000008000000     0361		      nop.f   0

SFORM                           Machine Code Listing             4-FEB-2004 11:02:01  BLISS-32I T1.1-053                Page 12
X00.04                          XST$FORMAT                      19-MAR-2002 10:11:41  [LASTOVICA.XPORT.VMSGEN]SFORM.BLI;1

000008000000     0362		      nop.i   0
			   }
	         0370	L$28:												   // 000214
			   { .mmi 
010804103040     0370		      adds    r65 = 1, r65 ;;
018454166000     0371		      cmp4.lt pr0, pr10 = r51, INDEX		// pr0, pr10 = r51, r65			   // 000210
000008000000     0372		      nop.i   0
			   }
			   { .mfb 
000008000000     0380		      nop.m   0
000008000000     0381		      nop.f   0
0095FFFF600A     0382	       (pr10) br.cond.dptk.few L$24
			   }
	         0390	L$20:												   // 000200
			   { .mfb 
012000002C80     0390		      mov     PRIMARY_CODE = 1			// r50 = 1				   // 000222
000008000000     0391		      nop.f   0
00800000C000     0392		      br.sptk.few L$7 ;;
			   }
	         03A0	L$9:												   // 000165
			   { .mii 
01200000C640     03A0		      mov     r25 = 6
0000B00014C0     03A1		      sxt4    r83 = r0
0000B0001480     03A2		      sxt4    r82 = r0
			   }
			   { .mmi 
012000055440     03B0		      mov     r81 = 42
012000003400     03B1		      mov     r80 = 1
0000B29013C0     03B2		      sxt4    r79 = TEMPORARY			// r79 = r41
			   }
			   { .mib 
012000003180     03C0		      mov     r70 = 1									   // 000169
0000B3501380     03C1		      sxt4    r78 = FORMAT_LENGTH		// r78 = r53				   // 000165
00A000001000     03C2		      br.call.sptk.many br0 = XPO$ALLOC_MEM
			   }
			   { .mii 
010804D00040     03D0		      mov     r1 = r77
00A0108000C0     03D1		      tbit.z  pr3, pr2 = $XPO$STATUS, 0 ;;	// pr3, pr2 = r8, 0
0108046011C2     03D2	       (pr2)  mov     r71 = r70 ;;								   // 000169
			   }
			   { .mmi 
0108008011C3     03E0	       (pr3)  mov     r71 = $XPO$STATUS ;;		// r71 = r8
010804700C80     03E1		      mov     PRIMARY_CODE = r71		// r50 = r71
000008000000     03E2		      nop.i   0
			   }
	         03F0	L$7:												   // 000127
			   { .mii 
000008000000     03F0		      nop.m   0
00A402038800     03F1		      extr.u  r32 = OPTIONS, 14, 1 ;;		// r32 = r32, 14, 1			   // 000230
00A0320001C0     03F2		      tbit.z  pr7, pr6 = r32, 0
			   }
			   { .mfb 
000008000000     0400		      nop.m   0
000008000000     0401		      nop.f   0
008600006006     0402	       (pr6)  br.cond.dpnt.few L$29
			   }
			   { .mib 

SFORM                           Machine Code Listing             4-FEB-2004 11:02:01  BLISS-32I T1.1-053                Page 13
X00.04                          XST$FORMAT                      19-MAR-2002 10:11:41  [LASTOVICA.XPORT.VMSGEN]SFORM.BLI;1

012000002640     0410		      mov     r25 = 1									   // 000232
0000B2101380     0411		      sxt4    r78 = STRING			// r78 = r33
00A000001000     0412		      br.call.sptk.many br0 = XST$FREE_TEMP
			   }
			   { .mfi 
010804D00040     0420		      mov     r1 = r77
000008000000     0421		      nop.f   0
000008000000     0422		      nop.i   0
			   }
	         0430	L$29:												   // 000230
			   { .mib 
000008000000     0430		      nop.m   0
00A0132000C0     0431		      tbit.z  pr3, pr2 = PRIMARY_CODE, 0	// pr3, pr2 = r50, 0			   // 000238
008600006002     0432	       (pr2)  br.cond.dpnt.few L$31
			   }
			   { .mmi 
010802B08AC0     0440		      adds    r43 = 4, r43 ;;								   // 000242
00BC8AB65F80     0441		      st4     [r43] = PRIMARY_CODE, -2		// [r43] = r50, -2
000008000000     0442		      nop.i   0 ;;
			   }
			   { .mfi 
008C02B00000     0450		      st1     [r43] = r0								   // 000241
000008000000     0451		      nop.f   0
000008000000     0452		      nop.i   0
			   }
	         0460	L$31:												   // 000238
			   { .mib 
000008000000     0460		      nop.m   0
0000B2900200     0461		      sxt4    r8 = TEMPORARY			// r8 = r41				   // 000249
004000000000     0462		      nop.b   0
			   }
	         0470	L$4:
			   { .mii 
000008000000     0470		      nop.m   0
0016000987C0     0471		      mov     pr = r76, -65474
000154096000     0472		      mov.i   rspfs = r75 ;;
			   }
			   { .mib 
010800C20300     0480		      adds    r12 = 16, r12
000E00194000     0481		      mov     br0 = r74
000108001100     0482		      br.ret.sptk.many br0 ;;
			   }
				      .endp   XST$FORMAT

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

				      .section .data
				      .type   XPO$ALLOC_MEM, @function 
				      .global  XPO$ALLOC_MEM
				      .global XST$NO_MEMORY
				      .section .data
				      .type   XST$VALIDATE, @function 
				      .global  XST$VALIDATE
				      .section .data
				      .type   XPO$ALLOC_MEM, @function 
				      .global  XPO$ALLOC_MEM
				      .section .data

SFORM                           Machine Code Listing             4-FEB-2004 11:02:01  BLISS-32I T1.1-053                Page 14
X00.04                          XST$FORMAT                      19-MAR-2002 10:11:41  [LASTOVICA.XPORT.VMSGEN]SFORM.BLI;1

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


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




                                Source Listing                   4-FEB-2004 11:02:01  BLISS-32I T1.1-053                Page 15
                                Source Listing                  19-MAR-2002 10:11:41  [LASTOVICA.XPORT.VMSGEN]SFORM.BLI;1

COMMAND LINE:

BLISSSFORM/LIST/DEBUG
