                                XPO$RENAME - XPORT File Rename   4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 1
                                                                19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

    0	      1 MODULE XRENAM (	IDENT = 'V1.1-29'		%TITLE 'XPO$RENAME - XPORT File Rename'
    0	      2 		%BLISS32( ,ADDRESSING_MODE( EXTERNAL=LONG_RELATIVE ) )
    0	      3 		%BLISS36( ,ENTRY( XPO$RENAME ),OTS='' )
    0	      4 		) =
    0	      5 BEGIN
    1	      6 
    1	      7 !
    1	      8 !			  COPYRIGHT (c) 1982 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 file rename module.
    1	     33 !
    1	     34 ! ENVIRONMENT:  User mode - multiple host operating/file systems
    1	     35 !
    1	     36 ! AUTHORS:  Ward Clark,			CREATION DATE:  19 February 1979
    1	     37 !	    Linda Duffell
    1	     38 !
    1	     39 !--

XRENAM                          XPO$RENAME - XPORT File Rename   4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 2
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

    1	     41 !
    1	     42 ! TABLE OF CONTENTS:
    1	     43 !
    1	     44 
    1	     45 FORWARD ROUTINE
    1	     46     XPO$RENAME;						! XPORT file rename routine
    1	     47 
    1	     48 !
    1	     49 ! INCLUDE FILES:
    1	     50 !
    1	     51 
    1	     52 LIBRARY  'XPORT' ;					! Public XPORT control block and macro definitions
    1	     54 LIBRARY  'XPOSYS' ;					! Internal XPORT macro definitions
    1	     56 
    1	     57     $XPO_SYS_TEST( $TOPS10, $TOPS20, $VMS, $11M, $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	     58 
    1	     59 %IF $TOPS10 %THEN
U   1	     60 REQUIRE  'XT10' ;					! TOPS-10 I/O interface macros
U   1	     61 %FI
    1	     62 
    1	     63 %IF $TOPS20 %THEN
U   1	     64 REQUIRE  'XT20';					! TOPS-20 I/O interface macros
U   1	     65 %FI
    1	     66 
    1	     67 %IF $VMS %THEN
    1	     68 REQUIRE  'XVMS' ;					! XPORT-specific VAX/VMS interface definitions
    1	     98 %FI
    1	     99 
    1	    100 %IF $11M %THEN
U   1	    101 REQUIRE  'XRSX' ;					! XPORT-specific RSX-11 and FCS interface definitions
U   1	    102 %FI
    1	    103 
    1	    104 %IF $RSTS %THEN
U   1	    105 REQUIRE  'XRSTS' ;					! RSTS/E system interface definitions
U   1	    106 %FI
    1	    107 
    1	    108 %IF $RT11 %THEN
U   1	    109 REQUIRE  'XRT11' ;					! RT-11 system interface definitions
U   1	    110 %FI
    1	    111 
    1	    112 !
    1	    113 ! MACROS:
    1	    114 !
    1	    115 
    1	    116 !
    1	    117 ! EQUATED SYMBOLS:
    1	    118 !
    1	    119 
    1	    120 LITERAL
    1	    121     yes = 1,						! Used to turn an indicator on
    1	    122     no = 0;						! Used to turn an indicator off
    1	    123 
    1	    124 %IF $VMS %THEN
    1	    125 LITERAL
    1	    126     max_file_spec = 255;				! Maximum length of a file specification

XRENAM                          XPO$RENAME - XPORT File Rename   4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 3
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

    1	    127 %FI
    1	    128 
    1	    129 !
    1	    130 ! PSECT DECLARATIONS:
    1	    131 !
    1	    132 
    1	    133     $XPO_PSECTS						! Declare XPORT PSECT names and attributes
    1	    134 
    1	    135 !
    1	    136 ! OWN STORAGE:
    1	    137 !
    1	    138 
    1	    139 !
    1	    140 ! EXTERNAL REFERENCES:
    1	    141 !
    1	    142 
    1	    143 %IF $TOPS10 %THEN
U   1	    144 EXTERNAL ROUTINE
U   1	    145     X10$CHAN_ASSIGN,					! Channel assignment routine
U   1	    146     X10$ASCII_6BIT,					! ASCII-to-sixbit conversion routine
U   1	    147     X10$ENTER_LOOKUP,					! Setup routine for the ENTER/LOOKUP block
U   1	    148     X10$LOOKUP_FINI,					! Completion routine for setting up the ENTER/LOOKUP block
U   1	    149     X10$CLEANUP;					! TOPS-10 control block cleanup routine
U   1	    150 %FI
    1	    151 
    1	    152 %IF $TOPS20 %THEN
U   1	    153 EXTERNAL ROUTINE
U   1	    154     X20$ERROR :  NOVALUE;				! TOPS-20 to XPORT completion code conversion routine
U   1	    155 %FI
    1	    156 
    1	    157 %IF $VMS %THEN
    1	    158 EXTERNAL ROUTINE
    1	    159     XPO$RMS_PARSE,					! RMS file specification resultion routine
    1	    160     XPO$RMS_ERROR :  NOVALUE,				! RMS-to-XPORT completion code conversion routine
    1	    161     XPO$RMS_CLEANUP;					! RMS control block cleanup routine
    1	    162 %FI
    1	    163 
    1	    164 %IF $11M %THEN
U   1	    165 EXTERNAL
U   1	    166     XRSX$EVENT_FLAG;					! XPORT QIO/FCS event flag number
U   1	    167 
U   1	    168 EXTERNAL ROUTINE
U   1	    169     XRSX$SPEC_SETUP,					! File-spec setup and LUN assignment routine
U   1	    170     XRSX$DSPT_SETUP :  NOVALUE,				! FCS DSPT setup routine
U   1	    171     XRSX$XOPEN,						! XPORT/FCS file open routine
U   1	    172     XRSX$RSLT_FIXUP,					! Resultant file-spec fixup routine
U   1	    173     XRSX$IO_ERROR :  NOVALUE,				! FCS-to-XPORT completion code conversion routine
U   1	    174     XRSX$CLEANUP;					! QIO/FCS cleanup routine
U   1	    175 %FI
    1	    176 
    1	    177 %IF $RSTS %THEN
U   1	    178 EXTERNAL ROUTINE
U   1	    179     XRST$SPEC_SETUP,					! File-spec setup routine
U   1	    180     XRST$ERROR :  NOVALUE;				! RSTS-to-XPORT completion code conversion routine
U   1	    181 %FI
    1	    182 
    1	    183 %IF $RT11 %THEN

XRENAM                          XPO$RENAME - XPORT File Rename   4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 4
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

U   1	    184 EXTERNAL
U   1	    185     XPO$CHANNELS :  BITVECTOR[];			! Channel assignment vector in XPO$OPEN
U   1	    186 
U   1	    187 EXTERNAL LITERAL
U   1	    188     XPO$K_MAX_CHAN;					! Maximum I/O channel number
U   1	    189 
U   1	    190 EXTERNAL ROUTINE
U   1	    191     XRT$ASCII_RAD50 :  NOVALUE,				! ASCII to RADIX-50 conversion routine
U   1	    192     XRT$CHK_BACKGRD,					! Background job verification
U   1	    193     XRT$FETCH;						! Fetch I/O handler routine
U   1	    194 %FI

XRENAM                          XPO$RENAME - XPORT File Rename   4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 5
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

    1	    196 GLOBAL ROUTINE XPO$RENAME ( iob, success_action, failure_action ) =
    1	    197 
    1	    198 !++
    1	    199 !
    1	    200 ! FUNCTIONAL DESCRIPTION:
    1	    201 !
    1	    202 !	This routine is the XPORT file rename routine.
    1	    203 !
    1	    204 ! FORMAL PARAMETERS:
    1	    205 !
    1	    206 !	iob - address of IOB
    1	    207 !	success_action - address of success action routine
    1	    208 !	failure_action - address of failure action routine
    1	    209 !
    1	    210 ! IMPLICIT INPUTS:
    1	    211 !
    1	    212 !	Information contained in or pointed to by the caller's IOB
    1	    213 !
    1	    214 ! IMPLICIT OUTPUTS:
    1	    215 !
    1	    216 !	Various fields in the caller's IOB are updated to reflect
    1	    217 !	the results of the file rename function
    1	    218 !
    1	    219 ! COMPLETION CODES:
    1	    220 !
    1	    221 !	XPO$_NORMAL - the file was successfully renamed
    1	    222 !
    1	    223 !	XPO$_BAD_DEVICE - invalid device specified
    1	    224 !	XPO$_BAD_IOB - the IOB is invalid
    1	    225 !		( IOB$G_2ND_CODE = XPO$_BAD_LENGTH - invalid IOB length )
    1	    226 !	XPO$_BAD_LOGIC - FAB and/or RAB exists (VMS)
    1	    227 !	XPO$_BAD_NEW - invalid new file specification
    1	    228 !		( IOB$G_2ND_CODE = XPO$_BAD_DEVICE - invalid device name or device name not allowed
    1	    229 !				or XPO$_NO_CONCAT - concatenated file-spec not allowed
    1	    230 !				or XPO$_NO_TEMP - temporary file-spec not allowed )
    1	    231 !	XPO$_BAD_RSLT - invalid resultant file specification
    1	    232 !		( IOB$G_2ND_CODE = completion code from $XPO_PARSE_SPEC
    1	    233 !				or completion code from $STR_COPY
    1	    234 !				or completion code from XRSX$RSLT_FIXUP (11M) )
    1	    235 !	XPO$_BAD_SPEC - invalid file specification
    1	    236 !		( IOB$G_2ND_CODE = XPO$_BAD_LENGTH - invalid length (TOPS-20)
    1	    237 !				or XPO$_NO_CONCAT - a concatenated old file was specified )
    1	    238 !	XPO$_EXISTS - the file already exists (RT-11)
    1	    239 !	XPO$_FOREGROUND - this is a foreground job (RT-11)
    1	    240 !	XPO$_FREE_MEM - resultant file-spec cannot be freed
    1	    241 !		( IOB$G_2ND_CODE = completion code from $XPO_FREE_MEM )
    1	    242 !	XPO$_GET_MEM - insufficient memory for RMS control blocks (VMS)
    1	    243 !		( IOB$G_2ND_CODE = completion code from $XPO_GET_MEM )
    1	    244 !	XPO$_IO_ERROR - I/O error (RT-11)
    1	    245 !	XPO$_NO_CHANNEL - no I/O channel is available
    1	    246 !	XPO$_NO_FILE - file not found (RT-11)
    1	    247 !	XPO$_OPEN - the file has already been opened
    1	    248 !	failure completion codes from $XPO_VALID_IOB
    1	    249 !	failure completion codes from $XPO_BUILD_SPEC (TOPS-10, TOPS-20, RT-11)
    1	    250 !	failure completion code from $T10_ERROR (TOPS-10)
    1	    251 !	failure completion codes from X20$ERROR (TOPS-20)
    1	    252 !	failure completion codes from XPO$RMS_PARSE (VMS)

XRENAM                          XPO$RENAME - XPORT File Rename   4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 6
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

    1	    253 !	failure completion codes from XPO$RMS_CLEANUP (VMS)
    1	    254 !	failure completion codes from XPO$RMS_ERROR (VMS)
    1	    255 !	failure completion codes from XRSX$SPEC_SETUP (11M)
    1	    256 !	failure completion codes from XRSX$IO_ERROR (11M)
    1	    257 !	failure completion codes from XRSX$CLEANUP (11M)
    1	    258 !	failure completion codes from XRST$SPEC_SETUP (RSTS)
    1	    259 !	failure completion codes from XRST$ERROR (RSTS)
    1	    260 !	failure completion codes from XRT$FETCH (RT-11)
    1	    261 !
    1	    262 ! SIDE EFFECTS:
    1	    263 !
    1	    264 !	None
    1	    265 !
    1	    266 !--
    1	    267 
    1	    268     BEGIN
    2	    269 
    2	    270     MAP
    2	    271 	iob :  REF $XPO_IOB();				! Redefine the IOB parameter
    2	    272 
    2	    273     BIND
    2	    274 	old_iob = .iob :  $XPO_IOB(),
    2	    275 	new_iob = .old_iob[IOB$A_ASSOC_IOB] :  $XPO_IOB();
    2	    276 
    2	    277 %IF $TOPS10 %THEN
U   2	    278     LOCAL
U   2	    279 	channel_open;					! Channel open indicator
U   2	    280 %FI
    2	    281 
    2	    282 %IF $TOPS20 %THEN
U   2	    283     LOCAL
U   2	    284 	new_jfn_assign,					! JFN assignment indicator for new file.
U   2	    285 	old_jfn_assign;					! JFN assignment indicator for old file.
U   2	    286 %FI
    2	    287 
    2	    288 %IF $RT11 %THEN
U   2	    289     LOCAL
U   2	    290 	channel_assign,					! Channel assignment indicator
U   2	    291         rename_block :  BLOCKVECTOR[ 2, LOOK$K_ARG_LEN ];
U   2	    292     BIND
U   2	    293 	rename_old = rename_block[ 0, $BASE ] :  $XRT_LOOK_ARGS,
U   2	    294 	rename_new = rename_block[ 1, $BASE ] :  $XRT_LOOK_ARGS;
U   2	    295 %FI
    2	    296 
    2	    297 !
    2	    298 ! XPORT routine initialization.
    2	    299 !
    2	    300 
    2	    301     $XPO_MAIN_BEGIN( IO, FIXUP_IOB )			! Define the MAIN_BLOCK code block
    3	    302 							! and validate the caller's IOB.
    3	    303 
    3	    304 %IF $TOPS10 %THEN
U   3	    305     channel_open = no;					! Indicate that no channel has been opened.
U   3	    306 %FI
    3	    307 
    3	    308 %IF $TOPS20 %THEN
U   3	    309     new_jfn_assign = no;				! Indicate that no JFN has been assigned to the new file.

XRENAM                          XPO$RENAME - XPORT File Rename   4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 7
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

U   3	    310     old_jfn_assign = no;				! Indicate that no JFN has been assigned to the old file.
U   3	    311 %FI
    3	    312 
    3	    313 %IF $RT11 %THEN
U   3	    314     channel_assign = no;				! Indicate that no channel has been assigned.
U   3	    315 %FI
    3	    316 
    3	    317 !
    3	    318 ! Establish IOB defaults.
    3	    319 !
    3	    320 
    3	    321     IF .new_iob[IOB$A_RELATED] EQL 0			! If no new related file-spec was specified,
    3	    322     THEN						!
    3	    323 	new_iob[IOB$A_RELATED] =			! use the current resultant file-spec.
    3	    324 			old_iob[IOB$T_RESULTANT];
    3	    325 
    3	    326     $XPO_VALID_IOB( old_iob );				! Validate or default caller's file-specs and prompt string.
    3	    327 
    3	    328     $XPO_VALID_IOB( new_iob, BAD_NEW );
    3	    329 
    3	    330 !
    3	    331 ! Check the IOB for invalid or conflicting information.
    3	    332 !
    3	    333 							! Return an error code if the IOB is invalid
    3	    334 							! for one of the following reasons:
    3	    335 
    3	    336     IF .old_iob[IOB$V_OPEN]				!    the file is already open
    3	    337     THEN
    3	    338 	$XPO_QUIT( OPEN );
    3	    339 
    3	    340     IF $STR_SCAN( STRING = .old_iob[IOB$A_FILE_SPEC],	!    a concatenated old file-spec was specified
P   3	    341 		    FIND = '+',
P   3	    342 		    FAILURE = 0 )
    4	    343     THEN
    3	    344 	$XPO_QUIT( BAD_SPEC, NO_CONCAT );
    3	    345 
    3	    346     IF $STR_SCAN( STRING = .new_iob[IOB$A_FILE_SPEC],	!    a concatenated new file-spec was specified
P   3	    347 		    FIND = '+',
P   3	    348 		    FAILURE = 0 )
    4	    349     THEN
    3	    350 	$XPO_QUIT( BAD_NEW, NO_CONCAT );
    3	    351 
    3	    352 !+
    3	    353 !
    3	    354 !	System-specific file rename processing follows.
    3	    355 !
    3	    356 !-

XRENAM                          TOPS-10 File Rename              4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 8
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

    3	    358 %TITLE 'TOPS-10 File Rename'
    3	    359 %IF $TOPS10 %THEN
U   3	    360 
U   3	    361 !+
U   3	    362 !
U   3	    363 !	TOPS-10 File Rename Processing
U   3	    364 !
U   3	    365 !	NOTE: The following code is very similar to the code in
U   3	    366 !	      XPO$DELETE since TOPS-10 file delete is a special
U   3	    367 !	      form of file rename.
U   3	    368 !
U   3	    369 !-
U   3	    370 
U   3	    371     BEGIN
U   3	    372 	LOCAL
U   3	    373 	old_parse :  $XPO_SPEC_BLOCK,			! Old resultant file-spec parse block
U   3	    374 	new_parse :  $XPO_SPEC_BLOCK,			! New resultant file-spec parse block
U   3	    375 	open_args :  $T10_OPEN_ARGS,			! TOPS-10 OPEN argument list
U   3	    376 	lookup_args :  $T10_LOOK_ARGS,			! TOPS-10 LOOKUP argument list
U   3	    377     	old_pgmr_numb,					! Storage area for the old programmer number
U   3	    378     	old_proj_numb;					! Storage area for the old project number
U   3	    379 
U   3	    380     BIND						! Redefine several spec-block fields.
U   3	    381 	old_device = old_parse[XPO$T_DEVICE] :  $STR_DESCRIPTOR(),
U   3	    382 	new_device = new_parse[XPO$T_DEVICE] :  $STR_DESCRIPTOR(),
U   3	    383 	new_name = new_parse[XPO$T_FILE_NAME] :  $STR_DESCRIPTOR(),
U   3	    384 	new_type = new_parse[XPO$T_FILE_TYPE] :  $STR_DESCRIPTOR();
U   3	    385 
U   3	    386 !
U   3	    387 ! Build a resultant file specifications from the specifications passed by the caller.
U   3	    388 !
U   3	    389 
U   3	    390     $XPO_BUILD_SPEC( old_iob );
U   3	    391 
U   3	    392     $XPO_BUILD_SPEC( new_iob, BAD_NEW );
U   3	    393 
U   3	    394 !
U   3	    395 ! Validate the old and new file specifications.
U   3	    396 !
U   3	    397 
U   3	    398     IF .old_iob[IOB$V_TERMINAL]				! If this is the user's terminal,
U   3	    399     THEN						!
U   3	    400 	$XPO_QUIT( BAD_DEVICE );			! return an error code to the caller.
U   3	    401 
U   3	    402     IF .new_iob[IOB$V_TERMINAL]				! If the new file is the user's terminal,
U   3	    403     THEN						!
U   3	    404 	$XPO_QUIT( BAD_NEW, BAD_DEVICE );		! return error codes to the caller.
U   3	    405 
U   3	    406     IF .new_iob[IOB$V_TEMPORARY]			! If the new file is a temporary file,
U   3	    407     THEN						!
U   3	    408 	$XPO_QUIT( BAD_NEW, NO_TEMP );			! return error codes to the caller.
U   3	    409 
U   3	    410 !
U   3	    411 ! Parse the old and new resultant file specifications into their individual components.
U   3	    412 !
U   3	    413 
U   3	    414     $XPO_IF_NOT( $XPO_PARSE_SPEC(

XRENAM                          TOPS-10 File Rename              4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 9
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

U   3	    415 	    FILE_SPEC = old_iob[IOB$T_RESULTANT],
U   3	    416 	    SPEC_BLOCK = old_parse, FAILURE = 0 ) )
U   3	    417     THEN
U   3	    418 	$XPO_QUIT( BAD_RSLT, (.$XPO_STATUS) );
U   3	    419 	
U   3	    420     $XPO_IF_NOT( $XPO_PARSE_SPEC(
U   3	    421 	    FILE_SPEC = new_iob[IOB$T_RESULTANT],
U   3	    422 	    SPEC_BLOCK = new_parse, FAILURE = 0 ) )
U   3	    423     THEN
U   3	    424 	$XPO_QUIT( BAD_RSLT, (.$XPO_STATUS) );
U   3	    425 
U   3	    426     IF .new_device[STR$H_LENGTH] NEQ 0 AND		! If the new file-spec includes a device name
U   3	    427 	NOT $STR_EQL(					! which is different from the old file-spec device name,
U   3	    428 		    STRING1 = old_parse[XPO$T_DEVICE],	!
U   3	    429 		    STRING2 = new_parse[XPO$T_DEVICE],	!
U   3	    430 		    FAILURE = 0 )			!
U   3	    431     THEN						!
U   3	    432 	$XPO_QUIT( BAD_NEW, BAD_DEVICE );		! return error codes to the caller.
U   3	    433 
U   3	    434 !
U   3	    435 ! Assign a TOPS-10 I/O channel to this file.
U   3	    436 !
U   3	    437 
U   3	    438     IF NOT X10$CHAN_ASSIGN( .old_iob )
U   3	    439     THEN
U   3	    440     	$XPO_QUIT();
U   3	    441 
U   3	    442 !
U   3	    443 ! Setup the OPEN argument list.
U   3	    444 !
U   3	    445 
U   3	    446     INCR index FROM 0 TO OPEN$K_ARG_LEN-1 DO		! Zero the open argument list.
U   3	    447 	open_args[.index,0,%BPVAL,0] = 0;
U   3	    448 
U   3	    449     open_args[OPEN$T_DEVICE] =				! Convert the device name to 6-bit and put it
U   3	    450 	    X10$ASCII_6BIT(				! in the argument list.
U   3	    451 		.old_device[STR$H_LENGTH] - 1,
U   3	    452 		.old_device[STR$A_POINTER] );
U   3	    453 
U   3	    454 !
U   3	    455 ! Open the assigned channel.
U   3	    456 !
U   3	    457 
U   3	    458     IF $T10_OPEN( .old_iob[IOB$H_CHANNEL], open_args )	! If the assigned channel can be opened,
U   3	    459     THEN						!
U   3	    460 	channel_open = yes				! indicate that a channel has been opened.
U   3	    461     ELSE
U   3	    462 	$XPO_QUIT( BAD_DEVICE );			! Otherwise, return an error code to the caller.
U   3	    463 
U   3	    464 !
U   3	    465 ! Setup the LOOKUP argument list.
U   3	    466 !
U   3	    467 
U   3	    468     IF NOT X10$ENTER_LOOKUP( .old_iob, old_parse, lookup_args )
U   3	    469     THEN
U   3	    470     	$XPO_QUIT();
U   3	    471 

XRENAM                          TOPS-10 File Rename              4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 10
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

U   3	    472 !
U   3	    473 ! Perform a LOOKUP monitor call.
U   3	    474 !
U   3	    475 
U   3	    476     IF NOT $T10_LOOKUP(					! Perform a TOPS-10 LOOKUP:
U   3	    477 		.old_iob[IOB$H_CHANNEL],		!    channel number
U   3	    478 		lookup_args )				!    address of argument list
U   3	    479 
U   3	    480     THEN						! If the LOOKUP fails,
U   3	    481 	$T10_ERROR( .lookup_args[LOOK$H_STATUS],	! return error codes to the caller.
U   3	    482 			NO_FILE );
U   3	    483 
U   3	    484 !
U   3	    485 ! Change the LOOKUP argument list into a RENAME argument list.
U   3	    486 !
U   3	    487 
U   3	    488     lookup_args[LOOK$H_PROJ] = 0;			! Initialize the project number.
U   3	    489     IF .old_parse[XPO$V_PPN]				! Default to the old file's PPN.
U   3	    490     THEN
U   3	    491 	lookup_args[LOOK$H_PGMR] = lookup_args[LOOK$Z_PATH]
U   3	    492     ELSE
U   3	    493         lookup_args[LOOK$H_PGMR] = 0;
U   3	    494 
U   3	    495 
U   3	    496     IF NOT X10$LOOKUP_FINI( .new_iob, new_parse, lookup_args )
U   3	    497     THEN
U   3	    498     	$XPO_QUIT();
U   3	    499 
U   3	    500 !
U   3	    501 ! Perform a RENAME monitor call.
U   3	    502 !
U   3	    503 
U   3	    504     IF NOT $T10_RENAME(					! Perform a TOPS-10 RENAME:
U   3	    505 		.old_iob[IOB$H_CHANNEL],		!    channel number
U   3	    506 		lookup_args )				!    address of argument list
U   3	    507 
U   3	    508     THEN						! If the RENAME fails,
U   3	    509 	$T10_ERROR( .lookup_args[LOOK$H_STATUS],	! return error codes to the caller.
U   3	    510 			NO_RENAME );
U   3	    511 
U   3	    512     $XPO_QUIT( NORMAL );				! Return a success code to the caller.
U   3	    513 
U   3	    514     END;						! End of TOPS-10 code block.
U   3	    515 
U   3	    516 !
U   3	    517 ! End of the MAIN_BLOCK code block.
U   3	    518 !
U   3	    519 
U   3	    520     $XPO_MAIN_END;
U   3	    521 
U   3	    522 !
U   3	    523 ! Close and release the assigned I/O channel.
U   3	    524 !
U   3	    525 
U   3	    526     IF .channel_open					! If a channel has been opened,
U   3	    527     THEN						!
U   3	    528 	BEGIN						!

XRENAM                          TOPS-10 File Rename              4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 11
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

U   3	    529 	$T10_CLOSE( .old_iob[IOB$H_CHANNEL] );		! close the assigned channel
U   3	    530 	$T10_RELEASE( .old_iob[IOB$H_CHANNEL] );	! and release the channel assignment.
U   3	    531 	END;
U   3	    532 
U   3	    533 !+
U   3	    534 !
U   3	    535 !	End of TOPS-10 File Rename Processing
U   3	    536 !
U   3	    537 !-
U   3	    538 
U   3	    539 %FI

XRENAM                          TOPS-20 RENAME                   4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 12
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

    3	    541 %TITLE 'TOPS-20 RENAME'
    3	    542 %IF $TOPS20 %THEN
U   3	    543 
U   3	    544 !+
U   3	    545 !
U   3	    546 !	TOPS-20 File Rename Processing
U   3	    547 !
U   3	    548 !
U   3	    549 !-
U   3	    550 
U   3	    551     BEGIN
U   3	    552 	LOCAL
U   3	    553 	jfn_or_error,					! Storage area for JFN or error code
U   3	    554 	old_parse :  $XPO_SPEC_BLOCK,			! Old file-spec parse block
U   3	    555 	new_parse :  $XPO_SPEC_BLOCK,			! New file-spec parse block
U   3	    556 	new_spec :  VECTOR[CH$ALLOCATION(X20$K_MAX_SPEC)],
U   3	    557     	old_spec :  VECTOR[CH$ALLOCATION(X20$K_MAX_SPEC)];
U   3	    558 
U   3	    559     BIND						! Redefine several spec-block fields.
U   3	    560 	old_device = old_parse[XPO$T_DEVICE] :  $STR_DESCRIPTOR(),
U   3	    561 	new_device = new_parse[XPO$T_DEVICE] :  $STR_DESCRIPTOR(),
U   3	    562 	new_resultant = new_iob[IOB$T_RESULTANT] :  $STR_DESCRIPTOR(),
U   3	    563 	old_resultant = old_iob[IOB$T_RESULTANT] :  $STR_DESCRIPTOR();
U   3	    564 
U   3	    565 !
U   3	    566 ! Build a resultant file specifications from the specifications passed by the caller.
U   3	    567 !
U   3	    568 
U   3	    569     $XPO_BUILD_SPEC( old_iob );
U   3	    570 
U   3	    571     $XPO_BUILD_SPEC( new_iob, BAD_NEW );
U   3	    572 
U   3	    573 !
U   3	    574 ! Validate the old and new file specifications.
U   3	    575 !
U   3	    576 
U   3	    577     IF .old_iob[IOB$V_TERMINAL]				! If this is the user's terminal,
U   3	    578     THEN						!
U   3	    579 	$XPO_QUIT( BAD_DEVICE );			! return an error code to the caller.
U   3	    580 
U   3	    581     IF .new_iob[IOB$V_TERMINAL]				! If the new file is the user's terminal,
U   3	    582     THEN						!
U   3	    583 	$XPO_QUIT( BAD_NEW, BAD_DEVICE );		! return error codes to the caller.
U   3	    584 
U   3	    585     IF .new_iob[IOB$V_TEMPORARY]			! If the new file is a temporary file,
U   3	    586     THEN						!
U   3	    587 	$XPO_QUIT( BAD_NEW, NO_TEMP );			! return error codes to the caller.
U   3	    588 
U   3	    589 !
U   3	    590 ! Parse the old and new resultant file specifications into their individual components.
U   3	    591 !
U   3	    592 
U   3	    593     $XPO_IF_NOT( $XPO_PARSE_SPEC(
U   3	    594 	    FILE_SPEC = old_iob[IOB$T_RESULTANT],
U   3	    595 	    SPEC_BLOCK = old_parse, FAILURE = 0 ) )
U   3	    596     THEN
U   3	    597 	$XPO_QUIT( BAD_RSLT, (.$XPO_STATUS) );

XRENAM                          TOPS-20 RENAME                   4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 13
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

U   3	    598 	
U   3	    599     $XPO_IF_NOT( $XPO_PARSE_SPEC(
U   3	    600 	    FILE_SPEC = new_iob[IOB$T_RESULTANT],
U   3	    601 	    SPEC_BLOCK = new_parse, FAILURE = 0 ) )
U   3	    602     THEN
U   3	    603 	$XPO_QUIT( BAD_RSLT, (.$XPO_STATUS) );
U   3	    604 
U   3	    605 !
U   3	    606 ! The TOPS-20 RENAME will fail if  the disk structures are different.
U   3	    607 ! The following code did not allow for logical names. Therefore we
U   3	    608 ! commented it out.
U   3	    609 !
U   3	    610 
U   3	    611 !    IF .new_device[STR$H_LENGTH] NEQ 0 AND		! If the new file-spec includes a device name
U   3	    612 !	NOT $STR_EQL(					! which is different from the old file-spec device name,
U   3	    613 !		    STRING1 = old_parse[XPO$T_DEVICE],	!
U   3	    614 !		    STRING2 = new_parse[XPO$T_DEVICE],	!
U   3	    615 !		    FAILURE = 0 )			!
U   3	    616 !    THEN						!
U   3	    617 !	$XPO_QUIT( BAD_NEW, BAD_DEVICE );		! return error codes to the caller.
U   3	    618 
U   3	    619 !
U   3	    620 ! Find out if we're renaming a file to itself.
U   3	    621 ! Comment the following code out. The user may wish a new version number.
U   3	    622 !
U   3	    623 
U   3	    624 !    IF $STR_EQL( STRING1 = old_resultant,		! If we're renaming a file to itself,
U   3	    625 !		   STRING2 = new_resultant,		!
U   3	    626 !		    FAILURE = 0 )			!
U   3	    627 !    THEN						!
U   3	    628 !	$XPO_QUIT( NORMAL );				! return a success code to the caller.
U   3	    629 
U   3	    630 !
U   3	    631 ! Make the resultant file-specs ASCIZ.
U   3	    632 !
U   3	    633 
U   3	    634     IF NOT $X20_ASCIZ( new_resultant, new_spec )	! Make the new file-spec ASCIZ.
U   3	    635     THEN
U   3	    636 	$XPO_QUIT( BAD_RSLT, BAD_LENGTH );		! If file-spec is too long return error code to the caller.
U   3	    637 
U   3	    638     IF NOT $X20_ASCIZ( old_resultant, old_spec )	! Make the old file-spec ASCIZ.
U   3	    639     THEN
U   3	    640 	BEGIN
U   3	    641 	new_iob[IOB$G_COMP_CODE] = XPO$_BAD_RSLT;
U   3	    642 	new_iob[IOB$G_2ND_CODE] = XPO$_BAD_LENGTH;
U   3	    643 	$XPO_QUIT( BAD_NEW );
U   3	    644 	END;
U   3	    645 
U   3	    646 !
U   3	    647 ! Associate the old file with a JFN.
U   3	    648 !
U   3	    649 
U   3	    650     IF NOT $T20_GTJFN(					! Get the JFN:
U   3	    651 			 GJ_SHT OR GJ_OLD,		!    Short form, file exists
U   3	    652 			 CH$PTR( old_spec),		!    Pointer to file_spec
U   3	    653     			jfn_or_error )			!    Storage area for JFN or error code
U   3	    654     THEN

XRENAM                          TOPS-20 RENAME                   4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 14
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

U   3	    655 	BEGIN						
U   3	    656 	X20$ERROR( old_iob, .jfn_or_error );		
U   3	    657 	$XPO_QUIT();					
U   3	    658 	END;
U   3	    659 
U   3	    660     old_iob[IOB$H_CHANNEL] = .jfn_or_error;		! Save the JFN. 
U   3	    661 
U   3	    662     old_jfn_assign = yes;				! Indicate the JFN has been assigned.
U   3	    663 
U   3	    664 !
U   3	    665 ! Associate the new file with a JFN.
U   3	    666 !
U   3	    667 
U   3	    668     IF NOT $T20_GTJFN(					! Get the JFN:
U   3	    669 			 GJ_SHT OR GJ_FOU,		!    Short form, new generation
U   3	    670 			 CH$PTR( new_spec),		!    Pointer to new file-spec
U   3	    671 			jfn_or_error )			!    Storage area for JFN or error code
U   3	    672     THEN
U   3	    673 	BEGIN						
U   3	    674 	X20$ERROR( old_iob, .jfn_or_error );		
U   3	    675 	$XPO_QUIT();					
U   3	    676 	END;
U   3	    677 
U   3	    678     new_iob[IOB$H_CHANNEL] = .jfn_or_error;		! Save the JFN. 
U   3	    679 
U   3	    680     new_jfn_assign = yes;				! Indicate the JFN has been assigned.
U   3	    681 
U   3	    682 !
U   3	    683 ! Perform a RENAME monitor call.
U   3	    684 !
U   3	    685 
U   3	    686     IF NOT $T20_RNAMF(					! Perform a TOPS-20 RENAME:
U   3	    687 		.old_iob[IOB$H_CHANNEL],		!    JFN of existing file    
U   3	    688 		.new_iob[IOB$H_CHANNEL], 		!    JFN of new file
U   3	    689 		jfn_or_error )				!    Storage area for possible error code
U   3	    690 
U   3	    691     THEN						
U   3	    692 	BEGIN						
U   3	    693 	X20$ERROR( old_iob, .jfn_or_error );		
U   3	    694 	$XPO_QUIT();					
U   3	    695 	END;
U   3	    696 
U   3	    697     $XPO_QUIT( NORMAL );				! Return a success code to the caller.
U   3	    698 
U   3	    699     END;						! End of TOPS-20 code block
U   3	    700 
U   3	    701 !
U   3	    702 ! End of the MAIN_BLOCK code block.
U   3	    703 !
U   3	    704 
U   3	    705     $XPO_MAIN_END;
U   3	    706 
U   3	    707 !
U   3	    708 ! Release the assigned JFN.
U   3	    709 !
U   3	    710 
U   3	    711     IF .old_jfn_assign					! If the JFN has been assigned to the existing file,

XRENAM                          TOPS-20 RENAME                   4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 15
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

U   3	    712     THEN						!
U   3	    713 	BEGIN						!
U   3	    714 	$T20_RLJFN( .old_iob[IOB$H_CHANNEL] );		! release the JFN,
U   3	    715 	old_iob[IOB$H_CHANNEL] = 0;			! and zero the IOB JFN field.
U   3	    716 	END;
U   3	    717 
U   3	    718     IF .new_jfn_assign					! If the JFN has been assigned to the existing file,
U   3	    719     THEN						!
U   3	    720 	BEGIN						!
U   3	    721 	$T20_RLJFN( .new_iob[IOB$H_CHANNEL] );		! release the JFN,
U   3	    722 	new_iob[IOB$H_CHANNEL] = 0;			! and  zero the IOB JFN field.
U   3	    723 	END;
U   3	    724 
U   3	    725 !+
U   3	    726 !
U   3	    727 !	End of TOPS-20 File Rename Processing
U   3	    728 !
U   3	    729 !-
U   3	    730 
U   3	    731 %FI

XRENAM                          VAX/VMS File Rename              4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 16
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

    3	    733 %TITLE 'VAX/VMS File Rename'
    3	    734 %IF $VMS %THEN
    3	    735 
    3	    736 !+
    3	    737 !
    3	    738 !	VAX/VMS File Rename Processing
    3	    739 !
    3	    740 !-
    3	    741 
    3	    742     BEGIN
    4	    743 
    4	    744     LOCAL
    4	    745 	old_fab :  REF $FAB_DECL,			! Address of RMS FAB for old file
    4	    746 	new_fab :  REF $FAB_DECL,			! Address of RMS FAB for new file
    4	    747 	old_name_block :  REF $NAM_DECL,		! Address of RMS Name Block
    4	    748 	new_name_block :  REF $NAM_DECL,		! Address of RMS Name Block
    4	    749 	old_result_spec :				! Space for the old file resultant file-spec
    4	    750 	    VECTOR[ CH$ALLOCATION(max_file_spec) ],
    4	    751 	new_result_spec :				! Space for the new file resultant file-spec
    4	    752 	    VECTOR[ CH$ALLOCATION(max_file_spec) ];
    4	    753 
    4	    754 !
    4	    755 ! Make sure that no FAB or RAB already exists.
    4	    756 !
    4	    757 
    4	    758     IF .old_iob[IOB$A_RMS_FAB] NEQ 0 OR			! If a FAB already exists
    4	    759 	.old_iob[IOB$A_RMS_RAB] NEQ 0			! or a RAB already exists,
    4	    760     THEN						!
    4	    761 	$XPO_QUIT( BAD_LOGIC );				! return an error code to the caller.
    4	    762 
    4	    763 !
    4	    764 ! Create RMS File Access Blocks (FAB) for the old and new file names.
    4	    765 !
    4	    766 
    4	    767     $XPO_IF_NOT( $XPO_GET_MEM( UNITS = FAB$C_BLN,	! Get dynamic memory for a FAB.
P   4	    768 			RESULT = old_fab,
P   4	    769 			FAILURE = 0 ) )
    6	    770     THEN
    5	    771 	$XPO_QUIT( GET_MEM, (.$XPO_STATUS) );
    4	    772 
    4	    773     old_iob[IOB$A_RMS_FAB] = .old_fab;			! Save the address of the old file FAB.
    4	    774 
    4	    775     $FAB_INIT( FAB = .old_fab );			! Initialize the old file FAB:
    4	    776     old_fab[FAB$V_MXV] = .old_iob[IOB$V_MAX_VERSI];	!    "maximize file version" indicator
    4	    777 
    4	    778     $XPO_IF_NOT( $XPO_GET_MEM( UNITS = FAB$C_BLN,	! Get dynamic memory for a FAB.
P   4	    779 			RESULT = new_fab,
P   4	    780 			FAILURE = 0 ) )
    6	    781     THEN
    5	    782 	$XPO_QUIT( GET_MEM, (.$XPO_STATUS) );
    4	    783 
    4	    784     new_iob[IOB$A_RMS_FAB] = .new_fab;			! Save the address of the new file FAB.
    4	    785 
    4	    786     $FAB_INIT( FAB = .new_fab,				! Initialize the new file FAB:
P   4	    787 		FOP = OFP );				!    "output file parse" indicator
    4	    788     new_fab[FAB$V_MXV] = .old_iob[IOB$V_MAX_VERSI];	!    "maximize file version" indicator
    4	    789 

XRENAM                          VAX/VMS File Rename              4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 17
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

    4	    790 !
    4	    791 ! Use RMS PARSE to perform file specification resolution for the old and new file-specs.
    4	    792 !
    4	    793 
    4	    794     IF NOT XPO$RMS_PARSE( old_iob )			! Resolve the old file-spec.
    4	    795     THEN
    4	    796 	$XPO_QUIT();
    4	    797 
    4	    798     old_name_block = .old_fab[FAB$L_NAM];		! Update the Name Block built by XPO$RMS_PARSE:
    4	    799     old_name_block[NAM$B_RSS] = max_file_spec;		!    length of resultant file-spec buffer
    4	    800     old_name_block[NAM$L_RSA] = old_result_spec;	!    pointer to the resultant file-spec buffer
    4	    801 
    4	    802     IF .new_iob[IOB$A_RELATED] EQL 0			! If no new related file-spec was specified,
    4	    803     THEN						!
    4	    804 	new_iob[IOB$A_RELATED] =			! use the current resultant file-spec.
    4	    805 			old_iob[IOB$T_RESULTANT];
    4	    806 
    4	    807     IF NOT XPO$RMS_PARSE( new_iob )			! Resolve the new file-spec.
    4	    808     THEN
    4	    809 	$XPO_QUIT( BAD_NEW );
    4	    810 
    4	    811     new_name_block = .new_fab[FAB$L_NAM];		! Update the Name Block built by XPO$RMS_PARSE:
    4	    812     new_name_block[NAM$B_RSS] = max_file_spec;		!    length of resultant file-spec buffer
    4	    813     new_name_block[NAM$L_RSA] = new_result_spec;	!    pointer to the resultant file-spec buffer
    4	    814 
    4	    815     IF .new_iob[IOB$V_TEMPORARY]			! If the new file is a temporary file,
    4	    816     THEN						!
    4	    817 	$XPO_QUIT( BAD_NEW, NO_TEMP );			! return error codes to the caller.
    4	    818 
    4	    819 !
    4	    820 ! Use RMS RENAME to rename the file.
    4	    821 !
    4	    822 
    4	    823     $RMS_RENAME( OLDFAB = .old_fab,			! Rename the file.
P   4	    824 			NEWFAB = .new_fab );
    4	    825 
    4	    826 !
    4	    827 ! Save the resultant file specifications.
    4	    828 !
    4	    829 
    4	    830     IF .old_name_block[NAM$B_RSL] NEQ 0			! If an old file resultant file-spec was created by RMS,
    4	    831     THEN						!
    4	    832 	BEGIN						!
    5	    833 	$XPO_IF_NOT( $STR_COPY(				! copy the file-spec into dynamic memory.
P   5	    834 		STRING = (.old_name_block[NAM$B_RSL],
P   5	    835 			    .old_name_block[NAM$L_RSA]),
P   5	    836 		TARGET = old_iob[IOB$T_RESULTANT],
P   5	    837 		FAILURE = 0 ) )
    7	    838 	THEN
    6	    839 	    $XPO_QUIT( BAD_RSLT, (.$XPO_STATUS) );
    5	    840 
    5	    841 	old_name_block[NAM$L_RSA] =			! Then have the Name Block point to the copied file-spec.
    5	    842 	    .old_iob[$SUB_FIELD(IOB$T_RESULTANT,STR$A_POINTER)];
    5	    843 	END;
    4	    844 
    4	    845     old_name_block[NAM$B_RSS] = 0;			! Zero the resultant buffer length for safety sake.
    4	    846 

XRENAM                          VAX/VMS File Rename              4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 18
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

    4	    847     IF .new_name_block[NAM$B_RSL] NEQ 0			! If an new file resultant file-spec was created by RMS,
    4	    848     THEN						!
    4	    849 	BEGIN						!
    5	    850 	$XPO_IF_NOT( $STR_COPY(				! copy the file-spec into dynamic memory.
P   5	    851 		STRING = (.new_name_block[NAM$B_RSL],
P   5	    852 			    .new_name_block[NAM$L_RSA]),
P   5	    853 		TARGET = new_iob[IOB$T_RESULTANT],
P   5	    854 		FAILURE = 0 ) )
    7	    855 	THEN
    6	    856 	    $XPO_QUIT( BAD_RSLT, (.$XPO_STATUS) );
    5	    857 
    5	    858 	new_name_block[NAM$L_RSA] =			! Then have the Name Block point to the copied file-spec.
    5	    859 	    .new_iob[$SUB_FIELD(IOB$T_RESULTANT,STR$A_POINTER)];
    5	    860 	END;
    4	    861 
    4	    862     new_name_block[NAM$B_RSS] = 0;			! Zero the resultant buffer length for safety sake.
    4	    863 
    4	    864 !
    4	    865 ! Check for a file rename failure.
    4	    866 !
    4	    867 
    4	    868     IF NOT .old_fab[FAB$L_STS]				! If file renaming failed,
    4	    869     THEN						!
    4	    870 	BEGIN						!
    5	    871 	XPO$RMS_ERROR( old_iob, .old_fab[FAB$L_STS],	! convert the RMS completion codes into
    5	    872 			.old_fab[FAB$L_STV] );		! equivalent XPORT completion codes
    5	    873 	$XPO_QUIT();					! and then jump to return to the caller.
    5	    874 	END;
    4	    875 
    4	    876     $XPO_QUIT( NORMAL );				! Return a success code to the caller.
    4	    877 
    4	    878     END;						! End of VMS code block.
    3	    879 
    3	    880 !
    3	    881 ! End of the MAIN_BLOCK code block.
    3	    882 !
    3	    883 
    3	    884     $XPO_MAIN_END;
    2	    885 
    2	    886 %FI

XRENAM                          RSX-11M File Rename              4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 19
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

    2	    888 %TITLE 'RSX-11M File Rename'
    2	    889 %IF $11M %THEN
U   2	    890 
U   2	    891 !+
U   2	    892 !
U   2	    893 !	RSX-11M File Rename Processing
U   2	    894 !
U   2	    895 !-
U   2	    896 
U   2	    897     BEGIN
U   2	    898     LOCAL
U   2	    899 	old_parse :  $XPO_SPEC_BLOCK,			! Old resultant file-spec parse block
U   2	    900 	new_parse :  $XPO_SPEC_BLOCK;			! New resultant file-spec parse block
U   2	    901 
U   2	    902 !
U   2	    903 ! Make sure that no QIO/FCS information already exists.
U   2	    904 !
U   2	    905 
U   2	    906     IF .old_iob[IOB$H_CHANNEL] NEQ 0 OR			! If a LUN has been assigned
U   2	    907 	.old_iob[IOB$A_FCS_FDB] NEQ 0			! or XPORT's FCS blocks have been allocated,
U   2	    908     THEN						!
U   2	    909 	$XPO_QUIT( BAD_LOGIC );				! return an error code to the caller.
U   2	    910 
U   2	    911 !
U   2	    912 ! Build resultant file specifications from the specifications passed by the caller
U   2	    913 ! and assign RSX-11M Logical Unit Numbers (LUN) to the old and new files.
U   2	    914 !
U   2	    915 
U   2	    916     IF NOT XRSX$SPEC_SETUP( old_iob, old_parse )	! Setup the old file-spec.
U   2	    917     THEN
U   2	    918 	$XPO_QUIT();
U   2	    919 
U   2	    920     IF .new_iob[IOB$A_RELATED] EQL 0			! If no new related file-spec was specified,
U   2	    921     THEN						!
U   2	    922 	new_iob[IOB$A_RELATED] =			! use the current resultant file-spec.
U   2	    923 			old_iob[IOB$T_RESULTANT];
U   2	    924 
U   2	    925     IF NOT XRSX$SPEC_SETUP( new_iob, new_parse )	! Setup the new file-spec.
U   2	    926     THEN
U   2	    927 	$XPO_QUIT( BAD_NEW );
U   2	    928 
U   2	    929 !
U   2	    930 ! Validate the old and new file specifications.
U   2	    931 !
U   2	    932 
U   2	    933     IF .old_iob[IOB$V_TERMINAL]				! If this is the user's terminal,
U   2	    934     THEN						!
U   2	    935 	$XPO_QUIT( BAD_DEVICE );			! return an error code to the caller.
U   2	    936 
U   2	    937     IF .new_iob[IOB$V_TERMINAL]				! If the new file is the user's terminal,
U   2	    938     THEN						!
U   2	    939 	$XPO_QUIT( BAD_NEW, BAD_DEVICE );		! return error codes to the caller.
U   2	    940 
U   2	    941     IF .new_iob[IOB$V_TEMPORARY]			! If the new file is a temporary file,
U   2	    942     THEN						!
U   2	    943 	$XPO_QUIT( BAD_NEW, NO_TEMP );			! return error codes to the caller.
U   2	    944 

XRENAM                          RSX-11M File Rename              4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 20
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

U   2	    945 !
U   2	    946 ! Allocate an XPORT set of FCS control blocks for each IOB.
U   2	    947 !
U   2	    948 
U   2	    949     $XPO_IF_NOT( $XPO_GET_MEM( FULLWORDS = FCS$K_BLK_LEN,
U   2	    950 			RESULT = old_iob[IOB$A_FCS_FDB],
U   2	    951 			FILL = 0,
U   2	    952 			FAILURE = 0 ) )
U   2	    953     THEN
U   2	    954 	$XPO_QUIT( GET_MEM, (.$XPO_STATUS) );
U   2	    955 
U   2	    956     $XPO_IF_NOT( $XPO_GET_MEM( FULLWORDS = FCS$K_BLK_LEN,
U   2	    957 			RESULT = new_iob[IOB$A_FCS_FDB],
U   2	    958 			FILL = 0,
U   2	    959 			FAILURE = 0 ) )
U   2	    960     THEN
U   2	    961 	$XPO_QUIT( GET_MEM, (.$XPO_STATUS) );
U   2	    962 
U   2	    963     BEGIN
U   2	    964     BIND
U   2	    965 	old_fcs_blocks = .old_iob[IOB$A_FCS_FDB] :  $FCS_BLOCKS,
U   2	    966 	old_fdb = old_fcs_blocks[FCS$Z_FDB] :  FDB$,
U   2	    967 	new_fcs_blocks = .new_iob[IOB$A_FCS_FDB] :  $FCS_BLOCKS,
U   2	    968 	new_fdb = new_fcs_blocks[FCS$Z_FDB] :  FDB$;
U   2	    969 
U   2	    970 !
U   2	    971 ! Setup the FCS File Descriptor Blocks (FDB).
U   2	    972 !
U   2	    973 
U   2	    974 							! Setup old FDB fields:
U   2	    975     old_fdb[F$LUN] = .old_iob[IOB$H_CHANNEL];		!    logical unit number (LUN)
U   2	    976     old_fdb[F$DSPT] = old_fcs_blocks[FCS$Z_DS_DESC];	!    address of FCS dataset descriptor
U   2	    977     old_fdb[F$EFN] = .XRSX$EVENT_FLAG;			!    event flag number
U   2	    978 
U   2	    979 							! Setup new FDB fields:
U   2	    980     new_fdb[F$LUN] = .new_iob[IOB$H_CHANNEL];		!    logical unit number (LUN)
U   2	    981     new_fdb[F$DSPT] = new_fcs_blocks[FCS$Z_DS_DESC];	!    address of FCS dataset descriptor
U   2	    982     new_fdb[F$EFN] = .XRSX$EVENT_FLAG;			!    event flag number
U   2	    983 
U   2	    984 !
U   2	    985 ! Setup the FCS Dataset Descriptors (DSPT).
U   2	    986 !
U   2	    987 
U   2	    988     XRSX$DSPT_SETUP( old_fcs_blocks[FCS$Z_DS_DESC], old_parse );
U   2	    989 
U   2	    990     XRSX$DSPT_SETUP( new_fcs_blocks[FCS$Z_DS_DESC], new_parse );
U   2	    991 
U   2	    992 !
U   2	    993 ! Open the file to be renamed.
U   2	    994 !
U   2	    995 
U   2	    996     IF NOT XRSX$XOPEN( old_iob )			! Open the specified file.
U   2	    997     THEN
U   2	    998         BEGIN
U   2	    999 	XRSX$RSLT_FIXUP( old_iob );
U   2	   1000         XRSX$IO_ERROR( old_iob, .old_fdb[F$ERR] );
U   2	   1001         $XPO_QUIT();

XRENAM                          RSX-11M File Rename              4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 21
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

U   2	   1002         END;
U   2	   1003 
U   2	   1004     $XPO_IF_NOT( XRSX$RSLT_FIXUP( old_iob ) )		! Fixup the old resultant file-spec.
U   2	   1005     THEN
U   2	   1006 	$XPO_QUIT( BAD_RSLT, (.$XPO_STATUS) );
U   2	   1007 
U   2	   1008 !
U   2	   1009 ! Rename the file.
U   2	   1010 !
U   2	   1011 
U   2	   1012     BEGIN
U   2	   1013     EXTERNAL ROUTINE %NAME( '.RENAM' );
U   2	   1014     BUILTIN
U   2	   1015 	R0,						! Points to old file FDB
U   2	   1016 	R1;						! Points to new file FDB
U   2	   1017 
U   2	   1018     R0 = old_fdb;					! Setup the FDB address registers.
U   2	   1019     R1 = new_fdb;
U   2	   1020 
U   2	   1021     %NAME( '.RENAM' )();				! Rename the file.
U   2	   1022 
U   2	   1023     IF .old_fdb[F$ERR] NEQ IS$SUC			! Check for a rename failure.
U   2	   1024     THEN
U   2	   1025         BEGIN
U   2	   1026 	XRSX$RSLT_FIXUP( new_iob );
U   2	   1027 
U   2	   1028 	IF .old_fdb[F$ERR] EQL IE$NSF			! "no such file" means "no such directory"
U   2	   1029 	THEN
U   2	   1030 	    $XPO_QUIT( BAD_NEW, NO_DIRECT );
U   2	   1031 
U   2	   1032         XRSX$IO_ERROR( old_iob, .old_fdb[F$ERR] );
U   2	   1033         $XPO_QUIT();
U   2	   1034         END;
U   2	   1035     END;
U   2	   1036 
U   2	   1037 !
U   2	   1038 ! Cleanup the IOBs after a successful file rename.
U   2	   1039 !
U   2	   1040 
U   2	   1041     IF .old_iob[IOB$V_REMEMBER]				! If the file will be reprocessed,
U   2	   1042     THEN						!
U   2	   1043 	BEGIN						!
U   2	   1044 	$XPO_IF_NOT( XRSX$RSLT_FIXUP( new_iob ) )	! fixup the new resultant file-spec.
U   2	   1045 	THEN
U   2	   1046 	    $XPO_QUIT( BAD_RSLT, (.$XPO_STATUS) );
U   2	   1047 	END;
U   2	   1048 
U   2	   1049     $XPO_QUIT( NORMAL );				! Return a success code to the caller.
U   2	   1050 
U   2	   1051     END;						! End of "FCB block BINDs" code block
U   2	   1052     END;						! End of RSX-11M code block
U   2	   1053 
U   2	   1054 !
U   2	   1055 ! End of the MAIN_BLOCK code block.
U   2	   1056 !
U   2	   1057 
U   2	   1058     $XPO_MAIN_END;					! Terminate MAIN_BLOCK.

XRENAM                          RSX-11M File Rename              4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 22
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

U   2	   1059 
U   2	   1060 !+
U   2	   1061 !
U   2	   1062 !	End of RSX-11M File Rename Processing
U   2	   1063 !
U   2	   1064 !-
U   2	   1065 
U   2	   1066 %FI

XRENAM                          RSTS/E File Rename               4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 23
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

    2	   1068 %TITLE 'RSTS/E File Rename'
    2	   1069 %IF $RSTS %THEN
U   2	   1070 
U   2	   1071 !+
U   2	   1072 !
U   2	   1073 !	RSTS/E File Rename Processing
U   2	   1074 !
U   2	   1075 !-
U   2	   1076 
U   2	   1077     BEGIN
U   2	   1078 
U   2	   1079 	LOCAL
U   2	   1080 	new_parse :  $XRST_REN_ARGS;			! New resultant file-spec rename parse block
U   2	   1081 
U   2	   1082 !
U   2	   1083 ! Build a resultant file specifications for the new file and save the information in the FIRQB.
U   2	   1084 !
U   2	   1085 
U   2	   1086     IF NOT XRST$SPEC_SETUP( new_iob )
U   2	   1087     THEN
U   2	   1088     	$XPO_QUIT();
U   2	   1089 
U   2	   1090 !
U   2	   1091 ! Validate the new file specifications.
U   2	   1092 !
U   2	   1093 
U   2	   1094     IF .new_iob[IOB$V_TERMINAL]				! If the new file is the user's terminal,
U   2	   1095     THEN						!
U   2	   1096 	$XPO_QUIT( BAD_NEW, BAD_DEVICE );		! return error codes to the caller.
U   2	   1097 
U   2	   1098     IF .new_iob[IOB$V_TEMPORARY]			! If the new file is a temporary file,
U   2	   1099     THEN						!
U   2	   1100 	$XPO_QUIT( BAD_NEW, NO_TEMP );			! return error codes to the caller.
U   2	   1101 
U   2	   1102 !
U   2	   1103 ! Save the file information in the rename block.
U   2	   1104 !
U   2	   1105 
U   2	   1106     INCR index FROM 0 TO FQBSIZ - 1 DO
U   2	   1107     	new_parse[ .index,0,%BPVAL,0 ] = .$XRSTS_FIRQB[ .index,0,%BPVAL,0 ];
U   2	   1108 
U   2	   1109 !
U   2	   1110 ! Build a resultant file specification for the old file and save the information in the FIRQB.
U   2	   1111 !
U   2	   1112 
U   2	   1113     IF NOT XRST$SPEC_SETUP( old_iob )
U   2	   1114     THEN
U   2	   1115     	$XPO_QUIT();
U   2	   1116 
U   2	   1117 !
U   2	   1118 ! Validate the old file specification.
U   2	   1119 !
U   2	   1120 
U   2	   1121     IF .old_iob[IOB$V_TERMINAL]				! If this is the user's terminal,
U   2	   1122     THEN						!
U   2	   1123 	$XPO_QUIT( BAD_DEVICE );			! return an error code to the caller.
U   2	   1124 

XRENAM                          RSTS/E File Rename               4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 24
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

U   2	   1125     IF .$XRSTS_FIRQB[FQDEV] NEQ .new_parse[FQDEV] OR	! Return an error completion code if we're
U   2	   1126        .$XRSTS_FIRQB[FQDEV2] NEQ .new_parse[FQDEV2]	! attempting to rename a file across different
U   2	   1127     THEN						! disk structures.
U   2	   1128     	$XPO_QUIT( BAD_NEW, BAD_DEVICE );
U   2	   1129 
U   2	   1130 !
U   2	   1131 ! Zero the unused fields and fill in the new file specifications in the FIRQB.
U   2	   1132 !
U   2	   1133 
U   2	   1134     $XRSTS_FIRQB[FQJOB]  = 0;
U   2	   1135     $XRSTS_FIRQB[FQSIZM] = 0;
U   2	   1136     $XRSTS_FIRQB[FQSIZ]  = 0;
U   2	   1137     $XRSTS_FIRQB[FQCLUS] = 0;
U   2	   1138     $XRSTS_FIRQB[FQNENT] = 0;
U   2	   1139 
U   2	   1140     $XRSTS_FIRQB[FQBUFL] = .new_parse[FQNAMA];
U   2	   1141     $XRSTS_FIRQB[FQMODE] = .new_parse[FQNAMB];
U   2	   1142     $XRSTS_FIRQB[FQFLAG] = .new_parse[FQEXT];   
U   2	   1143     $XRSTS_FIRQB[FQPFLG] = .new_parse[FQPFLG];
U   2	   1144     $XRSTS_FIRQB[FQPROT] = .new_parse[FQPROT];
U   2	   1145 
U   2	   1146     $XRSTS_FIRQB[FQFUN]  = RENFQ;
U   2	   1147 
U   2	   1148 !
U   2	   1149 ! Rename the file.
U   2	   1150 !
U   2	   1151 
U   2	   1152     $CALFIP;
U   2	   1153 
U   2	   1154     IF .$XRSTS_FIRQB[FQIOSTS] NEQ 0			! Report any errors.
U   2	   1155     THEN
U   2	   1156     	BEGIN
U   2	   1157     	XRST$ERROR( old_iob, .$XRSTS_FIRQB[FQIOSTS] );
U   2	   1158 	$XPO_QUIT();
U   2	   1159     	END;
U   2	   1160 
U   2	   1161     $XPO_QUIT( NORMAL );				! Return a success code to the caller.
U   2	   1162 
U   2	   1163     END;						! End of RSTS/E code block.
U   2	   1164 
U   2	   1165 !
U   2	   1166 ! End of the MAIN_BLOCK code block.
U   2	   1167 !
U   2	   1168 
U   2	   1169     $XPO_MAIN_END;
U   2	   1170 
U   2	   1171 !+
U   2	   1172 !
U   2	   1173 !	End of RSTS/E File Rename Processing
U   2	   1174 !
U   2	   1175 !-
U   2	   1176 
U   2	   1177 %FI

XRENAM                          RT-11 File Rename                4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 25
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

    2	   1179 %TITLE 'RT-11 File Rename'
    2	   1180 %IF $RT11 %THEN
U   2	   1181 
U   2	   1182 !+
U   2	   1183 !
U   2	   1184 !	RT-11 File Rename Processing
U   2	   1185 !
U   2	   1186 !	NOTE: The following code is very similar to the TOPS-10 code.
U   2	   1187 !
U   2	   1188 !-
U   2	   1189 
U   2	   1190     BEGIN
U   2	   1191 	LOCAL
U   2	   1192 	error_code,					! Error condition indicator
U   2	   1193     	old_parse :  $XPO_SPEC_BLOCK,			! Old resultant file-spec parse block
U   2	   1194 	new_parse :  $XPO_SPEC_BLOCK;			! New resultant file-spec parse block
U   2	   1195 
U   2	   1196     BIND						! Redefine several spec-block fields.
U   2	   1197 	old_device = old_parse[XPO$T_DEVICE] :  $STR_DESCRIPTOR(),
U   2	   1198 	old_name = old_parse[XPO$T_FILE_NAME] :  $STR_DESCRIPTOR(),
U   2	   1199 	old_type = old_parse[XPO$T_FILE_TYPE] :  $STR_DESCRIPTOR(),
U   2	   1200 	new_device = new_parse[XPO$T_DEVICE] :  $STR_DESCRIPTOR(),
U   2	   1201 	new_name = new_parse[XPO$T_FILE_NAME] :  $STR_DESCRIPTOR(),
U   2	   1202 	new_type = new_parse[XPO$T_FILE_TYPE] :  $STR_DESCRIPTOR();
U   2	   1203 
U   2	   1204 !
U   2	   1205 ! Verify that this is a background job.
U   2	   1206 !
U   2	   1207 
U   2	   1208     IF NOT XRT$CHK_BACKGRD()
U   2	   1209     THEN
U   2	   1210 	$XPO_QUIT( FOREGROUND );
U   2	   1211 
U   2	   1212 !
U   2	   1213 ! Initialize the error condition flag.
U   2	   1214 !
U   2	   1215 
U   2	   1216     error_code = no;
U   2	   1217 
U   2	   1218 !
U   2	   1219 ! Build a resultant file specifications from the specifications passed by the caller.
U   2	   1220 !
U   2	   1221 
U   2	   1222     $XPO_BUILD_SPEC( old_iob );
U   2	   1223 
U   2	   1224     $XPO_BUILD_SPEC( new_iob, BAD_NEW );
U   2	   1225 
U   2	   1226 !
U   2	   1227 ! Validate the old and new file specifications.
U   2	   1228 !
U   2	   1229 
U   2	   1230     IF .old_iob[IOB$V_TERMINAL]				! If this is the user's terminal,
U   2	   1231     THEN						!
U   2	   1232 	$XPO_QUIT( BAD_DEVICE );			! return an error code to the caller.
U   2	   1233 
U   2	   1234     IF .new_iob[IOB$V_TERMINAL]				! If the new file is the user's terminal,
U   2	   1235     THEN						!

XRENAM                          RT-11 File Rename                4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 26
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

U   2	   1236 	$XPO_QUIT( BAD_NEW, BAD_DEVICE );		! return error codes to the caller.
U   2	   1237 
U   2	   1238     IF .new_iob[IOB$V_TEMPORARY]			! If the new file is a temporary file,
U   2	   1239     THEN						!
U   2	   1240 	$XPO_QUIT( BAD_NEW, NO_TEMP );			! return error codes to the caller.
U   2	   1241 
U   2	   1242 !
U   2	   1243 ! Parse the old and new resultant file specifications into their individual components.
U   2	   1244 !
U   2	   1245 
U   2	   1246     $XPO_IF_NOT( $XPO_PARSE_SPEC(
U   2	   1247 	    FILE_SPEC = old_iob[IOB$T_RESULTANT],
U   2	   1248 	    SPEC_BLOCK = old_parse, FAILURE = 0 ) )
U   2	   1249     THEN
U   2	   1250 	$XPO_QUIT( BAD_RSLT, (.$XPO_STATUS) );
U   2	   1251 	
U   2	   1252     $XPO_IF_NOT( $XPO_PARSE_SPEC(
U   2	   1253 	    FILE_SPEC = new_iob[IOB$T_RESULTANT],
U   2	   1254 	    SPEC_BLOCK = new_parse, FAILURE = 0 ) )
U   2	   1255     THEN
U   2	   1256 	$XPO_QUIT( BAD_RSLT, (.$XPO_STATUS) );
U   2	   1257 
U   2	   1258     IF .new_device[STR$H_LENGTH] NEQ 0 AND		! If the new file-spec includes a device name
U   2	   1259 	NOT $STR_EQL(					! which is different from the old file-spec device name,
U   2	   1260 		    STRING1 = old_parse[XPO$T_DEVICE],	!
U   2	   1261 		    STRING2 = new_parse[XPO$T_DEVICE],	!
U   2	   1262 		    FAILURE = 0 )			!
U   2	   1263     THEN						!
U   2	   1264 	$XPO_QUIT( BAD_NEW, BAD_DEVICE );		! return error codes to the caller.
U   2	   1265 
U   2	   1266 !
U   2	   1267 ! Setup the RADIX-50 RENAME block for the old file.
U   2	   1268 !
U   2	   1269 
U   2	   1270      INCR index FROM 0 TO LOOK$K_ARG_LEN-1 DO		! Zero the old file argument list.
U   2	   1271 	rename_old[.index,0,%BPVAL,0] = 0;
U   2	   1272 
U   2	   1273 							! Fill in the argument list:
U   2	   1274      XRT$ASCII_RAD50(					!    device name (Radix-50)
U   2	   1275          .old_device[STR$A_POINTER],			!
U   2	   1276          .old_device[STR$H_LENGTH] - 1,			!
U   2	   1277          rename_old[LOOK$T_DEVICE],			!
U   2	   1278          1, 0 );					!
U   2	   1279 							!
U   2	   1280      XRT$ASCII_RAD50(					!    file name (Radix-50)
U   2	   1281          .old_name[STR$A_POINTER],			!
U   2	   1282          .old_name[STR$H_LENGTH],			!
U   2	   1283          rename_old[LOOK$T_NAME1],			!
U   2	   1284          2, 0 );					!
U   2	   1285 							!
U   2	   1286      XRT$ASCII_RAD50(					!    file type (Radix-50)
U   2	   1287          CH$PLUS(.old_type[STR$A_POINTER], 1),		!
U   2	   1288          .old_type[STR$H_LENGTH] - 1,			!
U   2	   1289          rename_old[LOOK$T_TYPE],			!
U   2	   1290          1, 0 );					!
U   2	   1291 !
U   2	   1292 ! Setup the RADIX-50 RENAME block for the new file.

XRENAM                          RT-11 File Rename                4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 27
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

U   2	   1293 !
U   2	   1294 
U   2	   1295      INCR index FROM 0 TO LOOK$K_ARG_LEN-1 DO		! Zero the new file argument list.
U   2	   1296 	rename_new[.index,0,%BPVAL,0] = 0;
U   2	   1297 
U   2	   1298 							! Fill in the argument list:
U   2	   1299      XRT$ASCII_RAD50(					!    device name (Radix-50)
U   2	   1300          .new_device[STR$A_POINTER],			!
U   2	   1301          .new_device[STR$H_LENGTH] - 1,			!
U   2	   1302          rename_new[LOOK$T_DEVICE],			!
U   2	   1303          1, 0 );					!
U   2	   1304 							!
U   2	   1305      XRT$ASCII_RAD50(					!    file name (Radix-50)
U   2	   1306          .new_name[STR$A_POINTER],			!
U   2	   1307          .new_name[STR$H_LENGTH],			!
U   2	   1308          rename_new[LOOK$T_NAME1],			!
U   2	   1309          2, 0 );					!
U   2	   1310 							!
U   2	   1311      XRT$ASCII_RAD50(					!    file type (Radix-50)
U   2	   1312          CH$PLUS(.new_type[STR$A_POINTER], 1),		!
U   2	   1313          .new_type[STR$H_LENGTH] - 1,			!
U   2	   1314          rename_new[LOOK$T_TYPE],			!
U   2	   1315          1, 0 );					!
U   2	   1316 
U   2	   1317 !
U   2	   1318 ! Fetch the I/O handler for the specified device.
U   2	   1319 !
U   2	   1320 
U   2	   1321      IF NOT XRT$FETCH( old_iob, rename_old[LOOK$T_DEVICE] )
U   2	   1322      THEN
U   2	   1323 	$XPO_QUIT();
U   2	   1324 
U   2	   1325 !
U   2	   1326 ! Assign an RT-11 I/O channel to this file.
U   2	   1327 !
U   2	   1328 
U   2	   1329      WHILE 1 DO						! Loop until we find a free channel.
U   2	   1330 
U   2	   1331          BEGIN
U   2	   1332          INCR channel FROM 0 TO xpo$k_max_chan+1 DO	! Search for an unused I/O channel.(i.e. unused by XPORT)
U   2	   1333             BEGIN
U   2	   1334 	    IF .channel GTR xpo$k_max_chan		! If all channels have been assigned,
U   2	   1335 	    THEN					!
U   2	   1336 	        $XPO_QUIT( NO_CHANNEL );		! return an error code to the caller.
U   2	   1337 
U   2	   1338 	    IF NOT .xpo$channels[.channel]		! If this channel is not assigned,
U   2	   1339 	    THEN					!
U   2	   1340 		BEGIN					!
U   2	   1341 		XPO$CHANNELS[.channel] = yes;		! indicate that this channel is in use,
U   2	   1342 		old_iob[IOB$H_CHANNEL] = .channel;	! save the channel number, and
U   2	   1343 		channel_assign = yes;			! indicate that the channel has been assigned.
U   2	   1344 	        EXITLOOP;				
U   2	   1345 		END;
U   2	   1346 	    END;
U   2	   1347 
U   2	   1348 !
U   2	   1349 ! Don't allow renames to files which already exist.

XRENAM                          RT-11 File Rename                4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 28
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

U   2	   1350 !
U   2	   1351 
U   2	   1352     $LOOKUP(						! Perform an RT-11 LOOKUP:
U   2	   1353 		.iob[IOB$H_CHANNEL],			!    channel number
U   2	   1354 		rename_new, 0,				!    address of argument list
U   2	   1355 		error_code = yes );			!    if an error occurs then set error code
U   2	   1356 
U   2	   1357     IF NOT .error_code					! If the file already exists
U   2	   1358     THEN						!
U   2	   1359 	$XPO_QUIT( EXISTS );				! return an error completion code to the caller.
U   2	   1360 
U   2	   1361     error_code = no;					! Otherwise, reinitialize the error condition flag.
U   2	   1362 
U   2	   1363 !
U   2	   1364 ! Rename the file.
U   2	   1365 !
U   2	   1366 
U   2	   1367 	    IF NOT $RENAME(				! Perform an RT-11 RENAME:
U   2	   1368 		.old_iob[IOB$H_CHANNEL],		!    channel number
U   2	   1369 		rename_block )				!    address of argument block
U   2	   1370 	    THEN					!
U   2	   1371 		BEGIN					! If an error occurred and
U   2	   1372 		IF .RT_ERR_EMT				! the error bit is set to 1 then
U   2	   1373 		THEN					!
U   2	   1374 		    $XPO_QUIT( NO_FILE );		! the file does not exist.
U   2	   1375 
U   2	   1376 		IF .RT_ERR_EMT  NEQ 0			! If the error bit is set to 2
U   2	   1377 		THEN					!
U   2	   1378 		    $XPO_QUIT( IO_ERROR );		! then an I/O error occurred.
U   2	   1379 							! Otherwise, the channel is in use.
U   2	   1380 		END
U   2	   1381 	    ELSE
U   2	   1382 	        EXITLOOP;				! Successful lookup - channel was not in use.
U   2	   1383 
U   2	   1384      END;						! End of channel loop
U   2	   1385 
U   2	   1386     $XPO_QUIT( NORMAL );				! Return a success code to the caller.
U   2	   1387 
U   2	   1388     END;						! End of RT11 code block.
U   2	   1389 
U   2	   1390 !
U   2	   1391 ! End of the MAIN_BLOCK code block.
U   2	   1392 !
U   2	   1393 
U   2	   1394     $XPO_MAIN_END;
U   2	   1395 
U   2	   1396 !
U   2	   1397 ! Release the assigned I/O channel.
U   2	   1398 !
U   2	   1399 
U   2	   1400     IF .channel_assign					! If a channel number has been assigned,
U   2	   1401     THEN						!
U   2	   1402 	BEGIN						!
U   2	   1403 	XPO$CHANNELS[.old_iob[IOB$H_CHANNEL]] = no;	! release the channel number and
U   2	   1404 	old_iob[IOB$H_CHANNEL] = 0;			! zero the IOB channel field.
U   2	   1405 	END;
U   2	   1406 

XRENAM                          RT-11 File Rename                4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 29
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

U   2	   1407 !+
U   2	   1408 !
U   2	   1409 !	End of RT-11 File Rename Processing
U   2	   1410 !
U   2	   1411 !-
U   2	   1412 
U   2	   1413 %FI

XRENAM                          XPO$RENAME Routine Termination   4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 30
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

    2	   1415 %TITLE 'XPO$RENAME Routine Termination'
    2	   1416 
    2	   1417 !+
    2	   1418 !
    2	   1419 !	Continuation of system-independent file rename processing
    2	   1420 !
    2	   1421 !-
    2	   1422 
    2	   1423 !
    2	   1424 ! Cleanup the IOBs after a successful file rename.
    2	   1425 !
    2	   1426 
    2	   1427     IF .iob[IOB$G_COMP_CODE]
    2	   1428     THEN
    2	   1429 	BEGIN
    3	   1430 	IF .old_iob[IOB$V_REMEMBER]			! REMEMBER processing:
    3	   1431 	THEN
    3	   1432 	    BEGIN
    4	   1433 	    $XPO_IF_NOT( $STR_COPY(			!    Save the new file-spec.
P   4	   1434 			STRING = new_iob[IOB$T_RESULTANT],
P   4	   1435 			TARGET = old_iob[IOB$T_RESULTANT],
P   4	   1436 			FAILURE = 0 ) )
    6	   1437 	    THEN
    5	   1438 		$XPO_QUIT( BAD_RSLT, (.$XPO_STATUS) );
    4	   1439 
    4	   1440 	    $XPO_LEAVE_IOB( old_iob );			!    Cleanup the old file IOB.
    4	   1441 
    4	   1442 	    old_iob[IOB$A_FILE_SPEC] =			!    Reset the primary file-spec.
    4	   1443 			old_iob[IOB$T_RESULTANT];
    4	   1444 	    END
    4	   1445 	ELSE						! Non-REMEMBER processing:
    3	   1446 	    $XPO_ZAP_IOB( old_iob );			!    Reinitialize the old file IOB.
    3	   1447 
    3	   1448 	$XPO_ZAP_IOB( new_iob );			! Reinitialize the new file IOB.
    3	   1449 	END;
    2	   1450 
    2	   1451 !
    2	   1452 ! Call an appropriate action routine.
    2	   1453 !
    2	   1454 
    2	   1455     $XPO_ACTION_RTN( old_iob );				! Call a success or failure action routine.
    2	   1456 
    2	   1457 !
    2	   1458 ! Cleanup the IOBs after a file rename failure.
    2	   1459 !
    2	   1460 
    2	   1461     IF NOT .old_iob[IOB$G_COMP_CODE]			! If the file rename failed,
    2	   1462     THEN						!
    2	   1463 	BEGIN						!
    3	   1464 	$XPO_ZAP_IOB( old_iob );			! cleanup the old file IOB
    3	   1465 	$XPO_ZAP_IOB( new_iob );			! and the new file IOB.
    3	   1466 	END;
    2	   1467 
    2	   1468 !
    2	   1469 ! Return to the caller.
    2	   1470 !
    2	   1471 

XRENAM                          XPO$RENAME Routine Termination   4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 31
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

    2	   1472     RETURN .old_iob[IOB$G_COMP_CODE]			! Return the IOB completion code to the caller.
    2	   1473 
    2	   1474     END;						! End of XPO$RENAME routine
    1	   1475 END
    1	   1476 ELUDOM

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 32
V1.1-29                                                         19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

				      .psect _XPO$CODE, CON, LCL, SHR, EXE, NOWRT, NOVEC
				      .proc   XPO$RENAME
				      .align 32
				      .global  XPO$RENAME
			XPO$RENAME:											   // 000196
			   { .mii 
002C059C1DC0     0000		      alloc   r119 = rspfs, 3, 86, 7, 0
000188001D80     0001		      mov     r118 = br0
0119D8CC0300     0002		      adds    r12 = -544, r12
			   }
			   { .mii 
010800101E00     0010		      mov     r120 = r1
0000B2000800     0011		      sxt4    r32 = IOB ;;			// r32 = r32				   // 000274
010802000800     0012		      adds    r32 = 0, r32 ;;								   // 000275
			   }
			   { .mmi 
00A082050200     0020		      ld4     r8 = [r32], 40 ;;								   // 000301
00B08A0B00C0     0021		      ld4     r3 = [r32], -40								   // 000275
01C438010000     0022		      cmp4.eq pr0, pr7 = r8, r0 ;;							   // 000301
			   }
			   { .mib 
000008000000     0030		      nop.m   0
0000B0300A00     0031		      sxt4    r40 = r3									   // 000275
00860000C007     0032	       (pr7)  br.cond.dpnt.few L$8								   // 000301
			   }
			   { .mmi 
01080A0B0240     0040		      adds    r9 = 216, r32 ;;
008080900240     0041		      ld4     r9 = [r9]
000008000000     0042		      nop.i   0 ;;
			   }
			   { .mfb 
01CC48900000     0050		      cmp4.eq pr0, pr9 = 0, r9
000008000000     0051		      nop.f   0
008600008009     0052	       (pr9)  br.cond.dpnt.few L$8
			   }
			   { .mii 
01200007A280     0060		      mov     r10 = 61
012000002440     0061		      mov     r17 = 1
0120000064C0     0062		      mov     r19 = 3 ;;
			   }
			   { .mmi 
00AC42014080     0070		      st2     [r32] = r10, 2 ;;
00AC02022040     0071		      st1     [r32] = r17, 1
000008000000     0072		      nop.i   0 ;;
			   }
			   { .mmi 
00BC0A027F40     0080		      st1     [r32] = r19, -3 ;;
000008000000     0081		      nop.m   0
000008000000     0082		      nop.i   0
			   }
	         0090	L$8:
			   { .mii 
01200001C580     0090		      mov     r22 = 14
012000004A40     0091		      mov     r41 = 2
000008000000     0092		      nop.i   0 ;;
			   }
			   { .mmi 

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 33
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

00A04203C540     00A0		      ld2     r21 = [r32], 30 ;;
00AC0202C040     00A1		      st1     [r32] = r22, 1
01CC0157A2C0     00A2		      cmp4.eq pr11, pr0 = 61, r21 ;;
			   }
			   { .mfb 
00BC0A053840     00B0		      st1     [r32] = r41, -31
000008000000     00B1		      nop.f   0
00860000A00B     00B2	       (pr11) br.cond.dpnt.few L$12 ;;
			   }
			   { .mii 
01080A0B0680     00C0		      adds    r26 = 216, r32
01080A0B8700     00C1		      adds    r28 = 220, r32
000008000000     00C2		      nop.i   0
			   }
			   { .mlx 
000008000000     00D0		      nop.m   0
800000000000     00D1		      movl    r25 = 2146308 ;;
019800410C
			   }
			   { .mlx 
008C81A32000     00E0		      st4     [r26] = r25
800000000000     00E1		      movl    r27 = 2138210 ;;
019400588D
			   }
			   { .mfb 
008C81C36000     00F0		      st4     [r28] = r27
000008000000     00F1		      nop.f   0
008000132000     00F2		      br.sptk.few L$13 ;;
			   }
	         0100	L$12:
			   { .mmi 
01080A0B8740     0100		      adds    r29 = 220, r32 ;;
008C81D00000     0101		      st4     [r29] = r0
010802818A00     0102		      adds    r40 = 12, r40 ;;								   // 000321
			   }
			   { .mmi 
00B08A8E8740     0110		      ld4     r29 = [r40], -12 ;;
01C461D00000     0111		      cmp4.eq pr0, pr12 = r0, r29
000008000000     0112		      nop.i   0
			   }
			   { .mfb 
000008000000     0120		      nop.m   0
000008000000     0121		      nop.f   0
00860000600C     0122	       (pr12) br.cond.dpnt.few L$14
			   }
			   { .mmi 
012000038780     0130		      mov     r30 = 28 ;;								   // 000324
010001E40780     0131		      add     r30 = r32, r30
010802818A00     0132		      adds    r40 = 12, r40 ;;								   // 000323
			   }
			   { .mmi 
00BC8A83DD00     0140		      st4     [r40] = r30, -12 ;;
000008000000     0141		      nop.m   0
000008000000     0142		      nop.i   0
			   }
	         0150	L$14:												   // 000326
			   { .mib 

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 34
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

012000002640     0150		      mov     r25 = 1
0000B2001E40     0151		      sxt4    r121 = r32
00A000001000     0152		      br.call.sptk.many br0 = XPO$VALID_IOB
			   }
			   { .mib 
010807800040     0160		      mov     r1 = r120
00A0308001C0     0161		      tbit.z  pr7, pr6 = r8, 0
008600124007     0162	       (pr7)  br.cond.dpnt.few L$13 ;;
			   }
			   { .mib 
012000002640     0170		      mov     r25 = 1									   // 000328
0000B2801E40     0171		      sxt4    r121 = r40
00A000001000     0172		      br.call.sptk.many br0 = XPO$VALID_IOB
			   }
			   { .mib 
010807800040     0180		      mov     r1 = r120
00A0308001C0     0181		      tbit.z  pr7, pr6 = r8, 0
008600006006     0182	       (pr6)  br.cond.dpnt.few L$17
			   }
			   { .mlx 
01080A0B0AC0     0190		      adds    r43 = 216, r32
000000000000     0191		      movl    r42 = 2138226 ;;
0194005C95
			   }
			   { .mfb 
008C82B54000     01A0		      st4     [r43] = r42
000008000000     01A1		      nop.f   0
00800011C000     01A2		      br.sptk.few L$13 ;;
			   }
	         01B0	L$17:
			   { .mmi 
010802060800     01B0		      adds    r32 = 48, r32 ;;								   // 000336
00B08A0A0B00     01B1		      ld4     r44 = [r32], -48
000008000000     01B2		      nop.i   0 ;;
			   }
			   { .mii 
000008000000     01C0		      nop.m   0
00A402C40B00     01C1		      extr.u  r44 = r44, 16, 1 ;;
00A042C00240     01C2		      tbit.z  pr9, pr8 = r44, 0
			   }
			   { .mfb 
000008000000     01D0		      nop.m   0
000008000000     01D1		      nop.f   0
008600006009     01D2	       (pr9)  br.cond.dpnt.few L$20
			   }
			   { .mlx 
01080A0B0B80     01E0		      adds    r46 = 216, r32								   // 000338
800000000000     01E1		      movl    r45 = 2138602 ;;
0194305A96
			   }
			   { .mfb 
008C82E5A000     01F0		      st4     [r46] = r45
000008000000     01F1		      nop.f   0
008000112000     01F2		      br.sptk.few L$13 ;;
			   }
	         0200	L$20:												   // 000342
			   { .mii 

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 35
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

012000100BC0     0200		      add     r47 = @ltoff($STR$PATTERN), r1
010802008800     0201		      adds    r32 = 4, r32
01200000E640     0202		      mov     r25 = 7
			   }
			   { .mii 
012400003E40     0210		      addl    r121 = 16385, r0
0000B0001FC0     0211		      sxt4    r127 = r0
0000B0001F80     0212		      sxt4    r126 = r0 ;;
			   }
			   { .mmi 
0080C2F00BC0     0220		      ld8     r47 = $STR$PATTERN		// r47 = [r47]
00B08A0F9E80     0221		      ld4     r122 = [r32], -4
0000B0001F40     0222		      sxt4    r125 = r0 ;;
			   }
			   { .mii 
000008000000     0230		      nop.m   0
0000B0001F00     0231		      sxt4    r124 = r0
0000B2F01EC0     0232		      sxt4    r123 = r47
			   }
			   { .mib 
000008000000     0240		      nop.m   0
0000B7A01E80     0241		      sxt4    r122 = r122
00A000001000     0242		      br.call.sptk.many br0 = XST$SCAN
			   }
			   { .mib 
010807800040     0250		      mov     r1 = r120
00A0308001C0     0251		      tbit.z  pr7, pr6 = r8, 0
00860000A007     0252	       (pr7)  br.cond.dpnt.few L$22								   // 000340
			   }
			   { .mii 
01080A0B0C40     0260		      adds    r49 = 216, r32								   // 000344
01080A0B8CC0     0261		      adds    r51 = 220, r32
000008000000     0262		      nop.i   0
			   }
			   { .mlx 
000008000000     0270		      nop.m   0
000000000000     0271		      movl    r48 = 2138290 ;;
0194104C98
			   }
			   { .mlx 
008C83160000     0280		      st4     [r49] = r48
000000000000     0281		      movl    r50 = 2138450 ;;
0194205499
			   }
			   { .mfb 
008C83364000     0290		      st4     [r51] = r50
000008000000     0291		      nop.f   0
0080000FE000     0292		      br.sptk.few L$13 ;;
			   }
	         02A0	L$22:												   // 000348
			   { .mii 
010802808A00     02A0		      adds    r40 = 4, r40
010802F10BC0     02A1		      adds    r47 = 8, r47
01200000E640     02A2		      mov     r25 = 7
			   }
			   { .mii 
012400003E40     02B0		      addl    r121 = 16385, r0

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 36
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

0000B0001FC0     02B1		      sxt4    r127 = r0
0000B0001F80     02B2		      sxt4    r126 = r0 ;;
			   }
			   { .mii 
00B08A8F9E80     02C0		      ld4     r122 = [r40], -4
0000B0001F40     02C1		      sxt4    r125 = r0
0000B0001F00     02C2		      sxt4    r124 = r0 ;;
			   }
			   { .mii 
000008000000     02D0		      nop.m   0
0000B2F01EC0     02D1		      sxt4    r123 = r47
0000B7A01E80     02D2		      sxt4    r122 = r122
			   }
			   { .mfb 
000008000000     02E0		      nop.m   0
000008000000     02E1		      nop.f   0
00A000001000     02E2		      br.call.sptk.many br0 = XST$SCAN
			   }
			   { .mib 
010807800040     02F0		      mov     r1 = r120
00A0308001C0     02F1		      tbit.z  pr7, pr6 = r8, 0
00860000A007     02F2	       (pr7)  br.cond.dpnt.few L$24								   // 000346
			   }
			   { .mii 
01080A0B0D40     0300		      adds    r53 = 216, r32								   // 000350
01080A0B8DC0     0301		      adds    r55 = 220, r32
000008000000     0302		      nop.i   0
			   }
			   { .mlx 
000008000000     0310		      nop.m   0
000000000000     0311		      movl    r52 = 2138226 ;;
0194005C9A
			   }
			   { .mlx 
008C83568000     0320		      st4     [r53] = r52
000000000000     0321		      movl    r54 = 2138450 ;;
019420549B
			   }
			   { .mfb 
008C8376C000     0330		      st4     [r55] = r54
000008000000     0331		      nop.f   0
0080000EA000     0332		      br.sptk.few L$13 ;;
			   }
	         0340	L$24:												   // 000744
			   { .mmi 
01080A0D0E00     0340		      adds    r56 = 232, r32 ;;								   // 000758
008083800E00     0341		      ld4     r56 = [r56]
000008000000     0342		      nop.i   0 ;;
			   }
			   { .mfb 
01C443800240     0350		      cmp4.eq pr9, pr8 = r0, r56
000008000000     0351		      nop.f   0
008600008008     0352	       (pr8)  br.cond.dpnt.few L$26
			   }
			   { .mmi 
01080A0D8E40     0360		      adds    r57 = 236, r32 ;;								   // 000759
008083900E40     0361		      ld4     r57 = [r57]

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 37
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

000008000000     0362		      nop.i   0 ;;
			   }
			   { .mmi 
01C4539002C0     0370		      cmp4.eq pr11, pr10 = r0, r57 ;;
01C00000124B     0371	       (pr11) cmp.eq.unc pr9, pr0 = r0, r0							   // 000758
01C00000120A     0372	       (pr10) cmp.eq.unc pr8, pr0 = r0, r0
			   }
			   { .bbb 
008600002008     0380	       (pr8)  br.cond.dpnt.few L$26
004000000000     0381		      nop.b   0
008600006009     0382	       (pr9)  br.cond.dpnt.few L$27
			   }
	         0390	L$26:
			   { .mlx 
01080A0B0EC0     0390		      adds    r59 = 216, r32								   // 000761
000000000000     0391		      movl    r58 = 2146316 ;;
019800431D
			   }
			   { .mfb 
008C83B74000     03A0		      st4     [r59] = r58
000008000000     03A1		      nop.f   0
0080000DC000     03A2		      br.sptk.few L$13 ;;
			   }
	         03B0	L$27:												   // 000769
			   { .mii 
010800C58F00     03B0		      adds    r60 = 44, r12
010800C50F80     03B1		      adds    r62 = 40, r12
000008000000     03B2		      nop.i   0
			   }
			   { .mlx 
010800C50FC0     03C0		      adds    r63 = 40, r12
800000000008     03C1		      movl    r61 = 33685504 ;;
018001001E
			   }
			   { .mii 
008C83C00000     03D0		      st4     [r60] = r0
01200000C640     03D1		      mov     r25 = 6
0000B0001F80     03D2		      sxt4    r126 = r0
			   }
			   { .mii 
0119F80FFEC0     03E0		      adds    r123 = -1, r0
0000B0001F40     03E1		      sxt4    r125 = r0
0000B0001F00     03E2		      sxt4    r124 = r0
			   }
			   { .mmi 
0120000A1E40     03F0		      mov     r121 = 80
008C83E7A000     03F1		      st4     [r62] = r61
0000B3F01E80     03F2		      sxt4    r122 = r63
			   }
			   { .mfb 
000008000000     0400		      nop.m   0
000008000000     0401		      nop.f   0
00A000001000     0402		      br.call.sptk.many br0 = XPO$ALLOC_MEM
			   }
			   { .mii 
010800C59000     0410		      adds    r64 = 44, r12
00A0308001C0     0411		      tbit.z  pr7, pr6 = $XPO$STATUS, 0		// pr7, pr6 = r8, 0

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 38
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

010807800040     0412		      mov     r1 = r120 ;;
			   }
			   { .mii 
008084001000     0420		      ld4     r64 = [r64]
01C000001206     0421	       (pr6)  cmp.eq.unc pr8, pr0 = r0, r0 ;;
010804001048     0422	       (pr8)  mov     OLD_FAB = r64			// r65 = r64
			   }
			   { .mfb 
000008000000     0430		      nop.m   0
000008000000     0431		      nop.f   0
008600008008     0432	       (pr8)  br.cond.dpnt.few L$28
			   }
			   { .mii 
01080A0B10C0     0440		      adds    r67 = 216, r32								   // 000771
01080A0B9100     0441		      adds    r68 = 220, r32
000008000000     0442		      nop.i   0
			   }
			   { .mlx 
000008000000     0450		      nop.m   0
000000000000     0451		      movl    r66 = 2138370 ;;
01942040A1
			   }
			   { .mmb 
008C84384000     0460		      st4     [r67] = r66
008C84410000     0461		      st4     [r68] = $XPO$STATUS		// [r68] = r8
0080000C4000     0462		      br.sptk.few L$13 ;;
			   }
	         0470	L$28:												   // 000769
			   { .mii 
01080A0D1180     0470		      adds    r70 = 232, r32								   // 000773
0120000071C0     0471		      mov     r71 = 3									   // 000775
0120000A1240     0472		      mov     r73 = 80
			   }
			   { .mii 
010800001EC0     0480		      mov     r123 = r0
0000B4101140     0481		      sxt4    r69 = OLD_FAB			// r69 = r65
0120000A1E80     0482		      mov     r122 = 80 ;;
			   }
			   { .mii 
008C84682000     0490		      st4     [r70] = OLD_FAB			// [r70] = r65				   // 000773
010800C413C0     0491		      adds    r79 = 32, r12								   // 000780
010804501E40     0492		      mov     r121 = r69								   // 000775
			   }
			   { .mib 
010800C49400     04A0		      adds    r80 = 36, r12								   // 000780
010800C41440     04A1		      adds    r81 = 32, r12
00A000001000     04A2		      br.call.sptk.many br0 = OTS$FILL							   // 000775
			   }
			   { .mii 
00AC0458E040     04B0		      st1     [r69] = r71, 1
01200000C640     04B1		      mov     r25 = 6									   // 000780
0000B0001F80     04B2		      sxt4    r126 = r0
			   }
			   { .mii 
0119F80FFEC0     04C0		      adds    r123 = -1, r0
0000B0001F40     04C1		      sxt4    r125 = r0
0000B0001F00     04C2		      sxt4    r124 = r0 ;;

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 39
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

			   }
			   { .mii 
00AC04592780     04D0		      st1     [r69] = r73, 30								   // 000775
0120000A1E40     04D1		      mov     r121 = 80									   // 000780
0000B5101E80     04D2		      sxt4    r122 = r81 ;;
			   }
			   { .mii 
00BC0C553DC0     04E0		      st1     [r69] = r41, -9								   // 000775
010807800040     04E1		      mov     r1 = r120 ;;
000008000000     04E2		      nop.i   0
			   }
			   { .mii 
00BC0C553A80     04F0		      st1     [r69] = r41, -22
010802058800     04F1		      adds    r32 = 44, r32								   // 000776
000008000000     04F2		      nop.i   0 ;;
			   }
			   { .mmi 
00B08A0A9300     0500		      ld4     r76 = [r32], -44
0080C4501340     0501		      ld8     r77 = [r69]
000008000000     0502		      nop.i   0 ;;
			   }
			   { .mii 
000008000000     0510		      nop.m   0
00A404C55300     0511		      extr.u  r76 = r76, 21, 1 ;;
008F04D99300     0512		      dep     r76 = r76, r77, 33, 1 ;;
			   }
			   { .mmi 
008CC4598000     0520		      st8     [r69] = r76
008C84F7A000     0521		      st4     [r79] = r61								   // 000780
000008000000     0522		      nop.i   0
			   }
			   { .mfb 
008C85000000     0530		      st4     [r80] = r0
000008000000     0531		      nop.f   0
00A000001000     0532		      br.call.sptk.many br0 = XPO$ALLOC_MEM
			   }
			   { .mii 
010800C49480     0540		      adds    r82 = 36, r12
00A0308001C0     0541		      tbit.z  pr7, pr6 = $XPO$STATUS, 0		// pr7, pr6 = r8, 0
010807800040     0542		      mov     r1 = r120 ;;
			   }
			   { .mii 
008085201480     0550		      ld4     r82 = [r82]
01C000001206     0551	       (pr6)  cmp.eq.unc pr8, pr0 = r0, r0 ;;
0108052014C8     0552	       (pr8)  mov     NEW_FAB = r82			// r83 = r82
			   }
			   { .mfb 
000008000000     0560		      nop.m   0
000008000000     0561		      nop.f   0
008600008008     0562	       (pr8)  br.cond.dpnt.few L$32
			   }
			   { .mii 
01080A0B1540     0570		      adds    r85 = 216, r32								   // 000782
01080A0B9580     0571		      adds    r86 = 220, r32
000008000000     0572		      nop.i   0
			   }
			   { .mlx 

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 40
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

000008000000     0580		      nop.m   0
000000000000     0581		      movl    r84 = 2138370 ;;
01942040AA
			   }
			   { .mmb 
008C855A8000     0590		      st4     [r85] = r84
008C85610000     0591		      st4     [r86] = $XPO$STATUS		// [r86] = r8
00800009E000     0592		      br.sptk.few L$13 ;;
			   }
	         05A0	L$32:												   // 000780
			   { .mib 
01080A8D1600     05A0		      adds    r88 = 232, r40								   // 000784
0000B53015C0     05A1		      sxt4    r87 = NEW_FAB			// r87 = r83				   // 000787
004000000000     05A2		      nop.b   0
			   }
			   { .mlx 
010800001EC0     05B0		      mov     r123 = r0
800000000080     05B1		      movl    r93 = 536870912 ;;
018000002E
			   }
			   { .mii 
0120000A1E80     05C0		      mov     r122 = 80
010805701E40     05C1		      mov     r121 = r87
000008000000     05C2		      nop.i   0
			   }
			   { .mfb 
008C858A6000     05D0		      st4     [r88] = NEW_FAB			// [r88] = r83				   // 000784
000008000000     05D1		      nop.f   0
00A000001000     05D2		      br.call.sptk.many br0 = OTS$FILL							   // 000787
			   }
			   { .mii 
00AC0578E040     05E0		      st1     [r87] = r71, 1
012000002640     05E1		      mov     r25 = 1									   // 000794
010807800040     05E2		      mov     r1 = r120 ;;								   // 000787
			   }
			   { .mmi 
00AC057920C0     05F0		      st1     [r87] = r73, 3 ;;
00AC857BA6C0     05F1		      st4     [r87] = r93, 27
000008000000     05F2		      nop.i   0 ;;
			   }
			   { .mmi 
00BC0D753DC0     0600		      st1     [r87] = r41, -9 ;;
00BC0D753A80     0601		      st1     [r87] = r41, -22
010802058800     0602		      adds    r32 = 44, r32 ;;								   // 000788
			   }
			   { .mmi 
0080C57017C0     0610		      ld8     r95 = [r87]
00B08A0A9740     0611		      ld4     r93 = [r32], -44
000008000000     0612		      nop.i   0 ;;
			   }
			   { .mii 
000008000000     0620		      nop.m   0
0000B2001E40     0621		      sxt4    r121 = r32								   // 000794
00A405D55740     0622		      extr.u  r93 = r93, 21, 1 ;;							   // 000788
			   }
			   { .mib 
000008000000     0630		      nop.m   0

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 41
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

008F05FBB740     0631		      dep     r93 = r93, r95, 33, 1
004000000000     0632		      nop.b   0 ;;
			   }
			   { .mfb 
008CC57BA000     0640		      st8     [r87] = r93
000008000000     0641		      nop.f   0
00A000001000     0642		      br.call.sptk.many br0 = XPO$RMS_PARSE						   // 000794
			   }
			   { .mib 
010807800040     0650		      mov     r1 = r120
00A0308001C0     0651		      tbit.z  pr7, pr6 = r8, 0
008600086007     0652	       (pr7)  br.cond.dpnt.few L$13
			   }
			   { .mii 
010804551140     0660		      adds    r69 = 40, r69								   // 000798
0120080FF880     0661		      mov     r98 = 255									   // 000799
010810C618C0     0662		      adds    r99 = 304, r12 ;;								   // 000800
			   }
			   { .mmi 
00B08C5B1840     0670		      ld4     r97 = [r69], -40 ;;							   // 000798
000008000000     0671		      nop.m   0
0000B6101840     0672		      sxt4    r97 = r97 ;;								   // 000799
			   }
			   { .mmi 
010806105840     0680		      adds    r97 = 2, r97 ;;
00AC061C4080     0681		      st1     [r97] = r98, 2
000008000000     0682		      nop.i   0 ;;
			   }
			   { .mii 
00BC8E1C7F00     0690		      st4     [r97] = r99, -4								   // 000800
010802818A00     0691		      adds    r40 = 12, r40								   // 000802
000008000000     0692		      nop.i   0 ;;
			   }
			   { .mmi 
00B08A8E98C0     06A0		      ld4     r99 = [r40], -12 ;;
01C446300000     06A1		      cmp4.eq pr0, pr8 = r0, r99
000008000000     06A2		      nop.i   0
			   }
			   { .mfb 
000008000000     06B0		      nop.m   0
000008000000     06B1		      nop.f   0
008600006008     06B2	       (pr8)  br.cond.dpnt.few L$37
			   }
			   { .mmi 
012000039940     06C0		      mov     r101 = 28 ;;								   // 000805
010006541940     06C1		      add     r101 = r32, r101
010802818A00     06C2		      adds    r40 = 12, r40 ;;								   // 000804
			   }
			   { .mmi 
00BC8A8CBD00     06D0		      st4     [r40] = r101, -12 ;;
000008000000     06D1		      nop.m   0
000008000000     06D2		      nop.i   0
			   }
	         06E0	L$37:												   // 000802
			   { .mib 
012000002640     06E0		      mov     r25 = 1									   // 000807
0000B2801E40     06E1		      sxt4    r121 = r40

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 42
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

00A000001000     06E2		      br.call.sptk.many br0 = XPO$RMS_PARSE
			   }
			   { .mib 
010807800040     06F0		      mov     r1 = r120
00A0308001C0     06F1		      tbit.z  pr7, pr6 = r8, 0
008600006006     06F2	       (pr6)  br.cond.dpnt.few L$39
			   }
			   { .mlx 
01080A0B1A00     0700		      adds    r104 = 216, r32								   // 000809
800000000000     0701		      movl    r103 = 2138226 ;;
0194005CB3
			   }
			   { .mfb 
008C868CE000     0710		      st4     [r104] = r103
000008000000     0711		      nop.f   0
00800006E000     0712		      br.sptk.few L$13 ;;
			   }
	         0720	L$39:												   // 000807
			   { .mmi 
0108057515C0     0720		      adds    r87 = 40, r87 ;;
0080857015C0     0721		      ld4     r87 = [r87]								   // 000811
000008000000     0722		      nop.i   0 ;;
			   }
			   { .mii 
000008000000     0730		      nop.m   0
0000B57015C0     0731		      sxt4    r87 = r87 ;;								   // 000812
0108057055C0     0732		      adds    r87 = 2, r87 ;;
			   }
			   { .mii 
00AC057C4080     0740		      st1     [r87] = r98, 2
010800C61880     0741		      adds    r98 = 48, r12								   // 000813
000008000000     0742		      nop.i   0 ;;
			   }
			   { .mii 
00BC8D7C5F00     0750		      st4     [r87] = r98, -4
010802860A00     0751		      adds    r40 = 48, r40								   // 000815
000008000000     0752		      nop.i   0 ;;
			   }
			   { .mmi 
00B08A8A1880     0760		      ld4     r98 = [r40], -48 ;;
000008000000     0761		      nop.m   0
00A406255880     0762		      extr.u  r98 = r98, 21, 1 ;;
			   }
			   { .mib 
000008000000     0770		      nop.m   0
00A046200240     0771		      tbit.z  pr9, pr8 = r98, 0
00860000A009     0772	       (pr9)  br.cond.dpnt.few L$42
			   }
			   { .mii 
01080A0B1B00     0780		      adds    r108 = 216, r32								   // 000817
01080A0B9B80     0781		      adds    r110 = 220, r32
000008000000     0782		      nop.i   0
			   }
			   { .mlx 
000008000000     0790		      nop.m   0
800000000000     0791		      movl    r107 = 2138226 ;;
0194005CB5

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 43
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

			   }
			   { .mlx 
008C86CD6000     07A0		      st4     [r108] = r107
800000000000     07A1		      movl    r109 = 2138810 ;;
0194504EB6
			   }
			   { .mfb 
008C86EDA000     07B0		      st4     [r110] = r109
000008000000     07B1		      nop.f   0
00800005A000     07B2		      br.sptk.few L$13 ;;
			   }
	         07C0	L$42:												   // 000824
			   { .mii 
012000008640     07C0		      mov     r25 = 4
0000B5301F00     07C1		      sxt4    r124 = NEW_FAB			// r124 = r83
0000B0001EC0     07C2		      sxt4    r123 = r0
			   }
			   { .mii 
000008000000     07D0		      nop.m   0
0000B0001E80     07D1		      sxt4    r122 = r0
0000B4101E40     07D2		      sxt4    r121 = OLD_FAB			// r121 = r65
			   }
			   { .mfb 
000008000000     07E0		      nop.m   0
000008000000     07E1		      nop.f   0
00A000001000     07E2		      br.call.sptk.many br0 = SYS$RENAME
			   }
			   { .mii 
010806107840     07F0		      adds    r97 = 3, r97								   // 000830
010807800040     07F1		      mov     r1 = r120									   // 000824
000008000000     07F2		      nop.i   0 ;;
			   }
			   { .mmi 
00B00E1FBBC0     0800		      ld1     r111 = [r97], -3 ;;							   // 000830
01C406F001C0     0801		      cmp4.eq pr7, pr0 = r0, r111
000008000000     0802		      nop.i   0
			   }
			   { .mfb 
000008000000     0810		      nop.m   0
000008000000     0811		      nop.f   0
00860001C007     0812	       (pr7)  br.cond.dpnt.few L$44
			   }
			   { .mii 
010800C31C00     0820		      adds    r112 = 24, r12								   // 000837
010800C35C80     0821		      adds    r114 = 26, r12
01201001DC40     0822		      mov     r113 = 270
			   }
			   { .mmi 
010800C39D00     0830		      adds    r116 = 28, r12
012000039CC0     0831		      mov     r115 = 28
010800C31D40     0832		      adds    r117 = 24, r12 ;;
			   }
			   { .mii 
008C470DE000     0840		      st2     [r112] = r111
01200000A640     0841		      mov     r25 = 5
010007341CC0     0842		      add     r115 = r32, r115
			   }

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 44
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

			   { .mmi 
008C472E2000     0850		      st2     [r114] = r113
010806109840     0851		      adds    r97 = 4, r97
0000B0001F40     0852		      sxt4    r125 = r0 ;;
			   }
			   { .mii 
012400001E40     0860		      addl    r121 = 16384, r0
0000B0001F00     0861		      sxt4    r124 = r0
0000B7301EC0     0862		      sxt4    r123 = r115
			   }
			   { .mib 
00B08E1F9C40     0870		      ld4     r113 = [r97], -4
0000B7501E80     0871		      sxt4    r122 = r117
004000000000     0872		      nop.b   0 ;;
			   }
			   { .mfb 
008C874E2000     0880		      st4     [r116] = r113
000008000000     0881		      nop.f   0
00A000001000     0882		      br.call.sptk.many br0 = XST$COPY
			   }
			   { .mib 
010807800040     0890		      mov     r1 = r120
00A0308001C0     0891		      tbit.z  pr7, pr6 = $XPO$STATUS, 0		// pr7, pr6 = r8, 0
008600008006     0892	       (pr6)  br.cond.dpnt.few L$45
			   }
			   { .mii 
01080A0B0AC0     08A0		      adds    r43 = 216, r32								   // 000839
01080A0B8B00     08A1		      adds    r44 = 220, r32
000008000000     08A2		      nop.i   0
			   }
			   { .mlx 
000008000000     08B0		      nop.m   0
000000000000     08B1		      movl    r42 = 2138282 ;;
0194104A95
			   }
			   { .mmb 
008C82B54000     08C0		      st4     [r43] = r42
008C82C10000     08C1		      st4     [r44] = $XPO$STATUS		// [r44] = r8
008000038000     08C2		      br.sptk.few L$13 ;;
			   }
	         08D0	L$45:												   // 000837
			   { .mmi 
010802040800     08D0		      adds    r32 = 32, r32 ;;								   // 000842
00B08A0C0B40     08D1		      ld4     r45 = [r32], -32
010806109840     08D2		      adds    r97 = 4, r97 ;;								   // 000841
			   }
			   { .mmi 
00BC8E15BF00     08E0		      st4     [r97] = r45, -4 ;;
000008000000     08E1		      nop.m   0
000008000000     08E2		      nop.i   0
			   }
	         08F0	L$44:												   // 000830
			   { .mmi 
010806105840     08F0		      adds    r97 = 2, r97 ;;								   // 000845
008C06100000     08F1		      st1     [r97] = r0
0108057075C0     08F2		      adds    r87 = 3, r87 ;;								   // 000847
			   }

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 45
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

			   { .mmi 
00B00D7FAC00     0900		      ld1     r48 = [r87], -3 ;;
01C403000240     0901		      cmp4.eq pr9, pr0 = r0, r48
000008000000     0902		      nop.i   0
			   }
			   { .mfb 
000008000000     0910		      nop.m   0
000008000000     0911		      nop.f   0
00860001C009     0912	       (pr9)  br.cond.dpnt.few L$48
			   }
			   { .mii 
010800C20C40     0920		      adds    r49 = 16, r12								   // 000854
010800C24CC0     0921		      adds    r51 = 18, r12
01201001CC80     0922		      mov     r50 = 270
			   }
			   { .mmi 
010800C28D00     0930		      adds    r52 = 20, r12
012000038BC0     0931		      mov     r47 = 28
010800C20D40     0932		      adds    r53 = 16, r12 ;;
			   }
			   { .mii 
008C43160000     0940		      st2     [r49] = r48
01200000A640     0941		      mov     r25 = 5
010002F50BC0     0942		      add     r47 = r40, r47
			   }
			   { .mmi 
008C43364000     0950		      st2     [r51] = r50
0108057095C0     0951		      adds    r87 = 4, r87
0000B0001F40     0952		      sxt4    r125 = r0 ;;
			   }
			   { .mii 
012400001E40     0960		      addl    r121 = 16384, r0
0000B0001F00     0961		      sxt4    r124 = r0
0000B2F01EC0     0962		      sxt4    r123 = r47
			   }
			   { .mib 
00B08D7F8C80     0970		      ld4     r50 = [r87], -4
0000B3501E80     0971		      sxt4    r122 = r53
004000000000     0972		      nop.b   0 ;;
			   }
			   { .mfb 
008C83464000     0980		      st4     [r52] = r50
000008000000     0981		      nop.f   0
00A000001000     0982		      br.call.sptk.many br0 = XST$COPY
			   }
			   { .mib 
010807800040     0990		      mov     r1 = r120
00A0308001C0     0991		      tbit.z  pr7, pr6 = $XPO$STATUS, 0		// pr7, pr6 = r8, 0
008600008006     0992	       (pr6)  br.cond.dpnt.few L$49
			   }
			   { .mii 
01080A0B0DC0     09A0		      adds    r55 = 216, r32								   // 000856
01080A0B8E00     09A1		      adds    r56 = 220, r32
000008000000     09A2		      nop.i   0
			   }
			   { .mlx 
000008000000     09B0		      nop.m   0

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 46
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

000000000000     09B1		      movl    r54 = 2138282 ;;
0194104A9B
			   }
			   { .mmb 
008C8376C000     09C0		      st4     [r55] = r54
008C83810000     09C1		      st4     [r56] = $XPO$STATUS		// [r56] = r8
008000018000     09C2		      br.sptk.few L$13 ;;
			   }
	         09D0	L$49:												   // 000854
			   { .mmi 
010802840A00     09D0		      adds    r40 = 32, r40 ;;								   // 000859
00B08A8C0E40     09D1		      ld4     r57 = [r40], -32
0108057095C0     09D2		      adds    r87 = 4, r87 ;;								   // 000858
			   }
			   { .mmi 
00BC8D773F00     09E0		      st4     [r87] = r57, -4 ;;
000008000000     09E1		      nop.m   0
000008000000     09E2		      nop.i   0
			   }
	         09F0	L$48:												   // 000847
			   { .mmi 
0108057055C0     09F0		      adds    r87 = 2, r87 ;;								   // 000862
008C05700000     09F1		      st1     [r87] = r0
010804511140     09F2		      adds    r69 = 8, r69 ;;								   // 000868
			   }
			   { .mmi 
00A084508F00     0A00		      ld4     r60 = [r69], 4 ;;
000008000000     0A01		      nop.m   0
00A043C00240     0A02		      tbit.z  pr9, pr8 = r60, 0
			   }
			   { .mfb 
000008000000     0A10		      nop.m   0
000008000000     0A11		      nop.f   0
00860000A008     0A12	       (pr8)  br.cond.dpnt.few L$51
			   }
			   { .mii 
008084501EC0     0A20		      ld4     r123 = [r69]								   // 000871
012000006640     0A21		      mov     r25 = 3
0000B3C01E80     0A22		      sxt4    r122 = r60 ;;
			   }
			   { .mii 
000008000000     0A30		      nop.m   0
0000B2001E40     0A31		      sxt4    r121 = r32
0000B7B01EC0     0A32		      sxt4    r123 = r123
			   }
			   { .mfb 
000008000000     0A40		      nop.m   0
000008000000     0A41		      nop.f   0
00A000001000     0A42		      br.call.sptk.many br0 = XPO$RMS_ERROR
			   }
			   { .mfb 
010807800040     0A50		      mov     r1 = r120
000008000000     0A51		      nop.f   0
008000006000     0A52		      br.sptk.few L$13 ;;								   // 000873
			   }
	         0A60	L$51:												   // 000868
			   { .mlx 

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 47
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

01080A0B0FC0     0A60		      adds    r63 = 216, r32								   // 000876
000000000000     0A61		      movl    r62 = 2129921 ;;
019000405F
			   }
			   { .mfi 
008C83F7C000     0A70		      st4     [r63] = r62
000008000000     0A71		      nop.f   0
000008000000     0A72		      nop.i   0
			   }
	         0A80	L$13:												   // 000301
			   { .mmi 
01080A0B1000     0A80		      adds    r64 = 216, r32 ;;								   // 001427
008084001000     0A81		      ld4     r64 = [r64]
000008000000     0A82		      nop.i   0 ;;
			   }
			   { .mib 
000008000000     0A90		      nop.m   0
00A0340001C0     0A91		      tbit.z  pr7, pr6 = r64, 0
008600030007     0A92	       (pr7)  br.cond.dpnt.few L$54
			   }
			   { .mmi 
010802058800     0AA0		      adds    r32 = 44, r32 ;;								   // 001430
00B08A0A9080     0AA1		      ld4     r66 = [r32], -44
000008000000     0AA2		      nop.i   0 ;;
			   }
			   { .mii 
000008000000     0AB0		      nop.m   0
00A404251080     0AB1		      extr.u  r66 = r66, 20, 1 ;;
00A044200240     0AB2		      tbit.z  pr9, pr8 = r66, 0
			   }
			   { .mfb 
000008000000     0AC0		      nop.m   0
000008000000     0AC1		      nop.f   0
008600020009     0AC2	       (pr9)  br.cond.dpnt.few L$56
			   }
			   { .mii 
0120000390C0     0AD0		      mov     r67 = 28									   // 001436
01200000A640     0AD1		      mov     r25 = 5
0000B0001F40     0AD2		      sxt4    r125 = r0
			   }
			   { .mii 
012400001E40     0AE0		      addl    r121 = 16384, r0
0000B0001F00     0AE1		      sxt4    r124 = r0 ;;
010004341180     0AE2		      add     r70 = r32, r67 ;;
			   }
			   { .mii 
010004351100     0AF0		      add     r68 = r40, r67
0000B4601EC0     0AF1		      sxt4    r123 = r70 ;;
0000B4401E80     0AF2		      sxt4    r122 = r68
			   }
			   { .mfb 
000008000000     0B00		      nop.m   0
000008000000     0B01		      nop.f   0
00A000001000     0B02		      br.call.sptk.many br0 = XST$COPY
			   }
			   { .mib 
010807800040     0B10		      mov     r1 = r120

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 48
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

00A0308001C0     0B11		      tbit.z  pr7, pr6 = $XPO$STATUS, 0		// pr7, pr6 = r8, 0
008600008006     0B12	       (pr6)  br.cond.dpnt.few L$57
			   }
			   { .mii 
01080A0B1280     0B20		      adds    r74 = 216, r32								   // 001438
01080A0B92C0     0B21		      adds    r75 = 220, r32
000008000000     0B22		      nop.i   0
			   }
			   { .mlx 
000008000000     0B30		      nop.m   0
000000000000     0B31		      movl    r72 = 2138282 ;;
0194104AA4
			   }
			   { .mmi 
008C84A90000     0B40		      st4     [r74] = r72
008C84B10000     0B41		      st4     [r75] = $XPO$STATUS		// [r75] = r8
000008000000     0B42		      nop.i   0
			   }
	         0B50	L$57:												   // 001440
			   { .mib 
012000002640     0B50		      mov     r25 = 1
0000B2001E40     0B51		      sxt4    r121 = r32
00A000001000     0B52		      br.call.sptk.many br0 = XPO$LEAVE_IOB
			   }
			   { .mib 
010807800040     0B60		      mov     r1 = r120
00A0308001C0     0B61		      tbit.z  pr7, pr6 = $XPO$STATUS, 0		// pr7, pr6 = r8, 0
008600008006     0B62	       (pr6)  br.cond.dpnt.few L$59
			   }
			   { .mii 
01080A0B1300     0B70		      adds    r76 = 216, r32
01080A0B9380     0B71		      adds    r78 = 220, r32
000008000000     0B72		      nop.i   0
			   }
			   { .mlx 
000008000000     0B80		      nop.m   0
800000000000     0B81		      movl    r77 = 2138362 ;;
0194105EA6
			   }
			   { .mmi 
008C84C9A000     0B90		      st4     [r76] = r77
008C84E10000     0B91		      st4     [r78] = $XPO$STATUS		// [r78] = r8
000008000000     0B92		      nop.i   0
			   }
	         0BA0	L$59:
			   { .mmi 
010802008800     0BA0		      adds    r32 = 4, r32 ;;								   // 001442
00BC8A08DF00     0BA1		      st4     [r32] = r70, -4
000008000000     0BA2		      nop.i   0
			   }
			   { .mfb 
000008000000     0BB0		      nop.m   0
000008000000     0BB1		      nop.f   0
008000006000     0BB2		      br.sptk.few L$61 ;;								   // 001430
			   }
	         0BC0	L$56:												   // 001446
			   { .mib 

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 49
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

012000002640     0BC0		      mov     r25 = 1
0000B2001E40     0BC1		      sxt4    r121 = r32
00A000001000     0BC2		      br.call.sptk.many br0 = XPO$ZAP_IOB ;;
			   }
			   { .mfi 
010807800040     0BD0		      mov     r1 = r120
000008000000     0BD1		      nop.f   0
000008000000     0BD2		      nop.i   0
			   }
	         0BE0	L$61:												   // 001448
			   { .mib 
012000002640     0BE0		      mov     r25 = 1
0000B2801E40     0BE1		      sxt4    r121 = r40
004000000000     0BE2		      nop.b   0 ;;
			   }
			   { .mfb 
000008000000     0BF0		      nop.m   0
000008000000     0BF1		      nop.f   0
00A000001000     0BF2		      br.call.sptk.many br0 = XPO$ZAP_IOB
			   }
			   { .mfi 
010807800040     0C00		      mov     r1 = r120
000008000000     0C01		      nop.f   0
000008000000     0C02		      nop.i   0
			   }
	         0C10	L$54:												   // 001455
			   { .mii 
01080A0B13C0     0C10		      adds    r79 = 216, r32
010802201440     0C11		      mov     r81 = FAILURE_ACTION		// r81 = r34
000008000000     0C12		      nop.i   0 ;;
			   }
			   { .mmi 
008084F01400     0C20		      ld4     r80 = [r79] ;;
000008000000     0C21		      nop.m   0
00A035000000     0C22		      tbit.z  pr0, pr6 = r80, 0 ;;
			   }
			   { .mmi 
010802101446     0C30	       (pr6)  mov     r81 = SUCCESS_ACTION ;;		// r81 = r33
01C405100200     0C31		      cmp4.eq pr8, pr0 = r0, $XPO$ACTION	// pr8, pr0 = r0, r81
000008000000     0C32		      nop.i   0
			   }
			   { .mfb 
000008000000     0C40		      nop.m   0
000008000000     0C41		      nop.f   0
008600010008     0C42	       (pr8)  br.cond.dpnt.few L$63
			   }
			   { .mii 
01080A0B9EC0     0C50		      adds    r123 = 220, r32
0000B5101440     0C51		      sxt4    r81 = $XPO$ACTION			// r81 = r81
0000B2001F00     0C52		      sxt4    r124 = r32
			   }
			   { .mmi 
01080A0B1540     0C60		      adds    r85 = 216, r32
012000008640     0C61		      mov     r25 = 4
0000B5001E80     0C62		      sxt4    r122 = r80 ;;
			   }
			   { .mii 

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 50
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

008087B01EC0     0C70		      ld4     r123 = [r123]
012000003E40     0C71		      mov     r121 = 1
010805111440     0C72		      adds    r81 = 8, r81 ;;
			   }
			   { .mib 
000008000000     0C80		      nop.m   0
0000B7B01EC0     0C81		      sxt4    r123 = r123
004000000000     0C82		      nop.b   0
			   }
			   { .mmi 
00B0CD1F0040     0C90		      ld8     r1 = [r81], -8 ;;
0080C5101440     0C91		      ld8     r81 = [r81]
000008000000     0C92		      nop.i   0 ;;
			   }
			   { .mib 
000008000000     0CA0		      nop.m   0
000E001A2180     0CA1		      mov     br6 = r81
00210000C000     0CA2		      br.call.sptk.few br0 = br6
			   }
			   { .mii 
008C85510000     0CB0		      st4     [r85] = r8
010807800040     0CB1		      mov     r1 = r120
000008000000     0CB2		      nop.i   0
			   }
	         0CC0	L$63:
			   { .mmi 
01080A0B1580     0CC0		      adds    r86 = 216, r32 ;;								   // 001461
008085601580     0CC1		      ld4     r86 = [r86]
000008000000     0CC2		      nop.i   0 ;;
			   }
			   { .mib 
000008000000     0CD0		      nop.m   0
00A0356001C0     0CD1		      tbit.z  pr7, pr6 = r86, 0
00860000C006     0CD2	       (pr6)  br.cond.dpnt.few L$64
			   }
			   { .mib 
012000002640     0CE0		      mov     r25 = 1									   // 001464
0000B2001E40     0CE1		      sxt4    r121 = r32
00A000001000     0CE2		      br.call.sptk.many br0 = XPO$ZAP_IOB ;;
			   }
			   { .mii 
012000002640     0CF0		      mov     r25 = 1									   // 001465
0000B2801E40     0CF1		      sxt4    r121 = r40
010807800040     0CF2		      mov     r1 = r120									   // 001464
			   }
			   { .mfb 
000008000000     0D00		      nop.m   0
000008000000     0D01		      nop.f   0
004000000000     0D02		      nop.b   0 ;;
			   }
			   { .mfb 
000008000000     0D10		      nop.m   0
000008000000     0D11		      nop.f   0
00A000001000     0D12		      br.call.sptk.many br0 = XPO$ZAP_IOB						   // 001465
			   }
			   { .mfi 
010807800040     0D20		      mov     r1 = r120

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 51
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

000008000000     0D21		      nop.f   0
000008000000     0D22		      nop.i   0
			   }
	         0D30	L$64:												   // 001461
			   { .mmi 
01080A0B0800     0D30		      adds    r32 = 216, r32 ;;								   // 001472
008082000200     0D31		      ld4     r8 = [r32]
000008000000     0D32		      nop.i   0 ;;
			   }
			   { .mib 
000008000000     0D40		      nop.m   0
0000B0800200     0D41		      sxt4    r8 = r8
004000000000     0D42		      nop.b   0
			   }
			   { .mii 
000008000000     0D50		      nop.m   0
0001540EE000     0D51		      mov.i   rspfs = r119
010820C40300     0D52		      adds    r12 = 544, r12 ;;
			   }
			   { .mib 
000008000000     0D60		      nop.m   0
000E001EC000     0D61		      mov     br0 = r118
000108001100     0D62		      br.ret.sptk.many br0 ;;
			   }
				      .endp   XPO$RENAME

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

				       .psect _XPO$DATA, CON, LCL, NOSHR, NOEXE, WRT, NOVEC
				      .lcomm  $STR$PATTERN, 8, 8
				      .lcomm  $STR$PATTERN, 8, 8
				      .lcomm  P.AAA, 1, 1
				      .lcomm  fill$$1, 3, 4
				      .lcomm  P.AAB, 1, 1
				      .psect _XPO$DATA, CON, LCL, NOSHR, NOEXE, WRT, NOVEC
			$STR$PATTERN:
    0001         0000		      data2   0x1 // data2 1
      0E         0002		      data1   0xE // data1 14
      01         0003		      data1   0x1 // data1 1
00000000         0004		      data4   P.AAA
			$STR$PATTERN:
    0001         0008		      data2   0x1 // data2 1
      0E         000A		      data1   0xE // data1 14
      01         000B		      data1   0x1 // data1 1
00000000         000C		      data4   P.AAB
				      .psect _XPO$PLIT, CON, LCL, NOSHR, NOEXE, NOWRT, NOVEC
			P.AAA:
      2B         0000		      data1   0x2B // data1 43
			P.AAB:
      2B         0004		      data1   0x2B // data1 43
				      .section .data
				      .type   XPO$VALID_IOB, @function 
				      .global  XPO$VALID_IOB
				      .section .data
				      .type   XPO$VALID_IOB, @function 
				      .global  XPO$VALID_IOB
				      .section .data

XRENAM                          Machine Code Listing             4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 52
V1.1-29                         XPO$RENAME                      19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

				      .type   XST$SCAN, @function 
				      .global  XST$SCAN
				      .section .data
				      .type   XST$SCAN, @function 
				      .global  XST$SCAN
				      .section .data
				      .type   XPO$ALLOC_MEM, @function 
				      .global  XPO$ALLOC_MEM
				      .section .data
				      .type   OTS$FILL, @function 
				      .global  OTS$FILL
				      .section .data
				      .type   XPO$ALLOC_MEM, @function 
				      .global  XPO$ALLOC_MEM
				      .section .data
				      .type   XPO$RMS_PARSE, @function 
				      .global  XPO$RMS_PARSE
				      .section .data
				      .type   SYS$RENAME, @function 
				      .global  SYS$RENAME
				      .section .data
				      .type   XST$COPY, @function 
				      .global  XST$COPY
				      .section .data
				      .type   XST$COPY, @function 
				      .global  XST$COPY
				      .section .data
				      .type   XPO$RMS_ERROR, @function 
				      .global  XPO$RMS_ERROR
				      .section .data
				      .type   XST$COPY, @function 
				      .global  XST$COPY
				      .section .data
				      .type   XPO$LEAVE_IOB, @function 
				      .global  XPO$LEAVE_IOB
				      .section .data
				      .type   XPO$ZAP_IOB, @function 
				      .global  XPO$ZAP_IOB
				      .section .data
				      .type   XPO$ZAP_IOB, @function 
				      .global  XPO$ZAP_IOB
				      .section .data
				      .type   XPO$ZAP_IOB, @function 
				      .global  XPO$ZAP_IOB
				      .section .data
				      .type   XPO$ZAP_IOB, @function 
				      .global  XPO$ZAP_IOB


;				Library Statistics
;
;					     -------- Symbols --------	    Pages
;	File				     Total    Loaded   Percent      Mapped
;
;  DISK$NORMS_OWN:[LASTOVICA.XPORT.VMSGEN]XPORT.L32;14
;					       590       152        25       270
;  DISK$NORMS_OWN:[LASTOVICA.XPORT.VMSGEN]XPOSYS.L32;14

                                Source Listing                   4-FEB-2004 11:01:41  BLISS-32I T1.1-053                Page 53
                                                                19-MAR-2002 10:12:25  [LASTOVICA.XPORT.VMSGEN]XRENAM.BLI;1

;					        91        20        21        27
;  SYS$COMMON:[SYSLIB]STARLET.L32;1	     28352        53         0      2178


    0	   1477 
    0	   1478 

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

COMMAND LINE:

BLISSXRENAM/VARIANT=3/LIST/DEBUG
