VAX/VMS-specific XPORT Routines 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 1 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 0 1 MODULE XVMS ( IDENT = 'V1.3-08', %TITLE 'VAX/VMS-specific XPORT Routines' 0 2 ADDRESSING_MODE( EXTERNAL=LONG_RELATIVE ) 0 3 ) = 0 4 BEGIN 1 5 1 6 ! 1 7 ! COPYRIGHT (c) 1980, 1984 BY 1 8 ! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. 1 9 ! 1 10 ! THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED 1 11 ! ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE 1 12 ! INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER 1 13 ! COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY 1 14 ! OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY 1 15 ! TRANSFERRED. 1 16 ! 1 17 ! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE 1 18 ! AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT 1 19 ! CORPORATION. 1 20 ! 1 21 ! DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS 1 22 ! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. 1 23 ! 1 24 1 25 !++ 1 26 ! 1 27 ! FACILITY: BLISS Library 1 28 ! 1 29 ! ABSTRACT: 1 30 ! 1 31 ! This module contains all VAX/VMS-specific routines. 1 32 ! 1 33 ! ENVIRONMENT: User mode - multiple host operating/file systems 1 34 ! 1 35 ! AUTHOR: Ward Clark, CREATION DATE: 13 March 1979 1 36 ! 1 37 ! REVISION HISTORY: 1 38 ! 1 39 ! 2-Apr-1984 LYS In XPO$RMS_CLEANUP the macro FREE_BLOCK 1 40 ! always calls $XPO_FREE_MEM with BINARY_DATA. 1 41 ! This means that LIB$FREE_VM is always called 1 42 ! to free descriptors even if they had been 1 43 ! allocated with LIB$SGET1_DD! Changed FREE_BLOCK 1 44 ! to accept BINARY_DATA or STRING as a parameter, 1 45 ! and modified the uses of FREE_BLOCK accordingly. 1 46 ! 1 47 !-- XVMS VAX/VMS-specific XPORT Routines 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 2 V1.3-08 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 1 49 ! 1 50 ! TABLE OF CONTENTS: 1 51 ! 1 52 1 53 FORWARD ROUTINE 1 54 XPO$RMS_ERROR : NOVALUE, ! RMS error handing routine 1 55 XPO$RMS_PARSE, ! RMS file-spec resolution routine 1 56 XPO$XLATE_LOGICAL, ! Fully-translate logical name routine 1 57 XPO$RMS_CLEANUP; ! RMS control block cleanup routine 1 58 1 59 ! 1 60 ! INCLUDE FILES: 1 61 ! 1 62 1 63 LIBRARY 'XPORT' ; ! Public XPORT control block and macro definitions 1 65 LIBRARY 'XPOSYS' ; ! Internal XPORT macro definitions 1 67 1 68 $XPO_SYS_TEST( $VMS ) ; %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 69 1 70 REQUIRE 'XVMS' ; ! XPORT-specific VAX/VMS interface definitions 1 100 1 101 ! 1 102 ! MACROS: 1 103 ! 1 104 1 105 MACRO 1 106 code_table[] = M 1 107 VECTOR[ (3 * %LENGTH) + 1 ] M 1 108 INITIAL( 3*%LENGTH, code_entry(%REMAINING) ) %, 1 109 1 110 code_entry[ code_set ] = M 1 111 decode_entry( %REMOVE(code_set) ) %, 1 112 1 113 decode_entry( rms_code, xport_code, secondary ) = M 1 114 rms_code, xport_code, M 1 115 %IF %NULL(secondary) M 1 116 %THEN 0 M 1 117 %ELSE secondary M 1 118 %FI %; 1 119 1 120 ! 1 121 ! EQUATED SYMBOLS: 1 122 ! 1 123 1 124 LITERAL 1 125 yes = 1, ! Used to turn an indicator on 1 126 no = 0, ! Used to turn an indicator off 1 127 1 128 max_file_spec = 255, ! Maximum length of a file specification 1 129 1 130 use_stv = XPO$_NORMAL; ! RMS$L_STV usage indicator 1 131 1 132 ! 1 133 ! PSECT DECLARATIONS: 1 134 ! XVMS VAX/VMS-specific XPORT Routines 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 3 V1.3-08 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 1 135 1 136 $XPO_PSECTS ! Declare XPORT PSECT names and attributes 1 137 ! 1 138 ! OWN STORAGE: 1 139 ! 1 140 1 141 ! XPORT Functions (Open,Close,Delete,Rename,Get,Put) 1 142 OWN ! | 1 143 rms_to_xport : PSECT(_XPO$DATA) code_table( ! V Meaning of RMS completion codes: P 1 144 ( RMS$_ACC, XPO$_NO_ACCESS, use_stv ), ! O file cannot be accessed P 1 145 ( RMS$_ACT, XPO$_IN_USE ), ! O file activity precludes operation P 1 146 ( RMS$_ANI, XPO$_BAD_RECORD ), ! G mag tape records not ANSI D format P 1 147 ( RMS$_ATR, XPO$_IO_ERROR, use_stv ), ! OCDRGP read error on file header P 1 148 ( RMS$_ATW, XPO$_IO_ERROR, use_stv ), ! OCDRGP write error on file header P 1 149 ( RMS$_CHN, XPO$_CHANNEL, use_stv ), ! O DR channel assignment failure P 1 150 ( RMS$_CRE, XPO$_NO_CREATE, use_stv ), ! O file create error P 1 151 ( RMS$_DEV, XPO$_BAD_DEVICE ), ! O DR bad device or inappropriate device type P 1 152 ( RMS$_DIR, XPO$_BAD_SPEC, XPO$_BAD_DIRECT ), ! O DR error in directory name P 1 153 ( RMS$_DME, XPO$_NO_MEMORY ), ! OCDRGP dynamic memory exhausted P 1 154 ( RMS$_DNA, XPO$_BAD_DFLT ), ! O DR invalid default file specification string address P 1 155 ( RMS$_DNF, XPO$_NO_DIRECT ), ! O DR directory not found P 1 156 ( RMS$_DNR, XPO$_NOT_ONLINE ), ! OCDRGP device not ready P 1 157 ( RMS$_ENT, XPO$_BAD_DIRECT, use_stv ), ! R error entering file name in directory P 1 158 ( RMS$_ENV, XPO$_NO_SUPPORT ), ! O environment error P 1 159 ( RMS$_EXP, XPO$_NOT_EXPIRE ), ! OC file expiration date not yet reached P 1 160 ( RMS$_EXT, XPO$_NO_SPACE ), ! P file extend error P 1 161 ( RMS$_FEX, XPO$_EXISTS ), ! O file already exists P 1 162 ( RMS$_FLK, XPO$_FILE_LOCK ), ! O file is locked P 1 163 ( RMS$_FNA, XPO$_BAD_SPEC ), ! O DR invalid file specification string address P 1 164 ( RMS$_FNF, XPO$_NO_FILE ), ! O DR file not found P 1 165 ( RMS$_FNM, XPO$_BAD_SPEC, XPO$_BAD_NAME ), ! O DR syntax error in file name P 1 166 ( RMS$_FUL, XPO$_NO_SPACE ), ! O P device full P 1 167 ( RMS$_IFA, XPO$_CORRUPTED, use_stv ), ! O illegal file attributes, file header corrupted P 1 168 ( RMS$_IOP, XPO$_BAD_REQ ), ! D GP illegal operation attempted P 1 169 ( RMS$_IRC, XPO$_BAD_RECORD ), ! O illegal record encountered in file P 1 170 ( RMS$_LNE, XPO$_BAD_SPEC ), ! O DR logical name error P 1 171 ( RMS$_MKD, XPO$_NO_DELETE ), ! D could not mark file for deletion P 1 172 ( RMS$_NET, XPO$_NETWORK, use_stv ), ! OCD GP network operation failed P 1 173 ( RMS$_NOD, XPO$_BAD_SPEC, XPO$_BAD_NODE ), ! O DR node name error P 1 174 ( RMS$_ORG, XPO$_BAD_ORG ), ! O illegal file organization P 1 175 ( RMS$_PLG, XPO$_CORRUPTED ), ! O P error in file prologue P 1 176 ( RMS$_PRV, XPO$_NO_ACCESS, XPO$_PRIVILEGED ), ! OCDR P privilege violation; access denied P 1 177 ( RMS$_QUO, XPO$_BAD_DELIM ), ! O DR error in quoted string P 1 178 ( RMS$_RBF, XPO$_BAD_REQ, XPO$_BAD_ADDR ), ! P invalid record address P 1 179 ( RMS$_RER, XPO$_IO_ERROR, use_stv ), ! GP file read error P 1 180 ( RMS$_RFM, XPO$_BAD_FORMAT ), ! O illegal record format P 1 181 ( RMS$_RLF, XPO$_BAD_RLTD ), ! O DR invalid related file P 1 182 ( RMS$_RLK, XPO$_REC_LOCK ), ! GP record locked by another task P 1 183 ( RMS$_RMV, XPO$_NO_RENAME, use_stv ), ! R remove function failed P 1 184 ( RMS$_RPL, XPO$_IO_ERROR, use_stv ), ! O P error reading prologue P 1 185 ( RMS$_RSZ, XPO$_BAD_RECORD, XPO$_BAD_LENGTH ), ! P illegal record size P 1 186 ( RMS$_RTB, XPO$_BAD_RECORD, XPO$_BAD_LENGTH ), ! G record too big for user buffer P 1 187 ( RMS$_SUP, XPO$_NO_SUPPORT, use_stv ), ! OCDRGP operation not supported P 1 188 ( RMS$_SYN, XPO$_BAD_SPEC ), ! O DR syntax error in file specification P 1 189 ( RMS$_SYS, XPO$_IO_ERROR, use_stv ), ! OCDRGP error in system QIO directive P 1 190 ( RMS$_TYP, XPO$_BAD_SPEC, XPO$_BAD_TYPE ), ! O DR error in file type P 1 191 ( RMS$_VER, XPO$_BAD_SPEC, XPO$_BAD_VER ), ! O DR error in version number XVMS VAX/VMS-specific XPORT Routines 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 4 V1.3-08 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 P 1 192 ( RMS$_WBE, XPO$_IO_ERROR, use_stv ), ! C GP error writing behind P 1 193 ( RMS$_WER, XPO$_IO_ERROR, use_stv ), ! C GP file write error P 1 194 ( RMS$_WLD, XPO$_BAD_REQ, XPO$_WILDCARD ), ! O DR wildcard error P 1 195 ( RMS$_WLK, XPO$_NO_WRITE ), ! OCDRGP device is write-locked P 1 196 ( RMS$_WPL, XPO$_IO_ERROR, use_stv ) ); ! O P error writing prologue 1 197 1 198 ! 1 199 ! EXTERNAL REFERENCES: 1 200 ! XVMS XPO$RMS_ERROR - RMS-to-XPORT Co 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 5 V1.3-08 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 1 202 %TITLE 'XPO$RMS_ERROR - RMS-to-XPORT Code Conversion' 1 203 1 204 GLOBAL ROUTINE XPO$RMS_ERROR( iob, rms_sts, rms_stv ) : NOVALUE = 1 205 1 206 !++ 1 207 ! 1 208 ! FUNCTIONAL DESCRIPTION: 1 209 ! 1 210 ! This routine converts an RMS failure completion code into an 1 211 ! equivalent XPORT completion code. 1 212 ! 1 213 ! FORMAL PARAMETERS: 1 214 ! 1 215 ! iob - address of an IOB 1 216 ! rms_sts - primary RMS completion code (FAB$L_STS or RAB$L_STS) 1 217 ! rms_stv - secondary RMS completion code (FAB$L_STV or RAB$L_STV) 1 218 ! 1 219 ! IMPLICIT INPUTS: 1 220 ! 1 221 ! None 1 222 ! 1 223 ! IMPLICIT OUTPUTS: 1 224 ! 1 225 ! iob[IOB$G_COMP_CODE] = XPORT completion code 1 226 ! iob[IOB$G_2ND_CODE] = RMS completion code (in some cases) 1 227 ! 1 228 ! COMPLETION CODES: 1 229 ! 1 230 ! None 1 231 ! 1 232 ! SIDE EFFECTS: 1 233 ! 1 234 ! None 1 235 ! 1 236 !-- 1 237 1 238 BEGIN 2 239 2 240 MAP 2 241 iob : REF $XPO_IOB(); ! Redefine the IOB parameter 2 242 2 243 ! 2 244 ! Convert the RMS primary completion code into equivalent XPORT completion codes. 2 245 ! 2 246 2 247 INCR index FROM 1 TO .rms_to_xport[0] BY 3 DO ! Loop through the conversion table. 2 248 2 249 IF .rms_sts EQL .rms_to_xport[.index] ! If the RMS code is found, 2 250 THEN ! 2 251 BEGIN ! 3 252 iob[IOB$G_COMP_CODE] = ! use the equivalent XPORT completion code 3 253 .rms_to_xport[.index+1]; ! as the primary IOB completion code 3 254 IF .rms_to_xport[.index+2] EQL use_stv ! and set the IOB secondary code to be 3 255 THEN ! 3 256 iob[IOB$G_2ND_CODE] = .rms_stv ! the RMS secondary completion code 3 257 ELSE ! 3 258 iob[IOB$G_2ND_CODE] = ! or an XPORT completion code. XVMS XPO$RMS_ERROR - RMS-to-XPORT Co 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 6 V1.3-08 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 3 259 .rms_to_xport[.index+2]; 3 260 RETURN ! Return to the caller after code translation. 3 261 END; 2 262 2 263 ! 2 264 ! Return a logic error completion code if an unexpected RMS error occurs. 2 265 ! 2 266 2 267 iob[IOB$G_COMP_CODE] = XPO$_SYS_ERROR; ! Indicate an XPORT logic error 2 268 iob[IOB$G_2ND_CODE] = .rms_sts; ! and save the primary RMS completion code. 2 269 2 270 RETURN ! Return to the caller. 2 271 2 272 END; XVMS XPO$RMS_PARSE - RMS File-spec R 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 7 V1.3-08 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 1 274 %TITLE 'XPO$RMS_PARSE - RMS File-spec Resolution' 1 275 1 276 GLOBAL ROUTINE XPO$RMS_PARSE( iob ) = 1 277 1 278 !++ 1 279 ! 1 280 ! FUNCTIONAL DESCRIPTION: 1 281 ! 1 282 ! This routine performs RMS file specification resolution. 1 283 ! 1 284 ! FORMAL PARAMETERS: 1 285 ! 1 286 ! iob - address of an IOB 1 287 ! 1 288 ! IMPLICIT INPUTS: 1 289 ! 1 290 ! iob[IOB$A_RMS_FAB] points to an initialized RMS FAB 1 291 ! 1 292 ! IMPLICIT OUTPUTS: 1 293 ! 1 294 ! iob[IOB$G_COMP_CODE] = XPORT completion code 1 295 ! iob[IOB$G_2ND_CODE] = secondary completion code (see below) 1 296 ! 1 297 ! COMPLETION CODES: 1 298 ! 1 299 ! XPO$_NORMAL - file-spec resolution was successful 1 300 ! 1 301 ! XPO$_BAD_DFLT - invalid default file-spec 1 302 ! (IOB$G_2ND_CODE = $STR_COPY completion code) 1 303 ! XPO$_BAD_RLTD - invalid related file-spec 1 304 ! (IOB$G_2ND_CODE = $STR_COPY completion code) 1 305 ! XPO$_BAD_RSLT - invalid resultant file-spec 1 306 ! (IOB$G_2ND_CODE = $STR_COPY completion code) 1 307 ! XPO$_BAD_SPEC - invalid primary file-spec 1 308 ! (IOB$G_2ND_CODE = $STR_COPY completion code) 1 309 ! failure completion code from $XPO_GET_MEM 1 310 ! failure completion codes from XPO$RMS_ERROR 1 311 ! 1 312 ! SIDE EFFECTS: 1 313 ! 1 314 ! None 1 315 ! 1 316 !-- 1 317 1 318 BEGIN 2 319 2 320 MAP 2 321 iob : REF $XPO_IOB(); ! Redefine the IOB parameter. 2 322 2 323 BIND 2 324 fab = .iob[IOB$A_RMS_FAB] : $FAB_DECL, ! Define the caller's FAB. 2 325 2 326 file_spec = iob[IOB$A_FILE_SPEC] : REF $STR_DESCRIPTOR(), 2 327 default = iob[IOB$A_DEFAULT] : REF $STR_DESCRIPTOR(), 2 328 related = iob[IOB$A_RELATED] : REF $STR_DESCRIPTOR(), 2 329 resultant = iob[IOB$T_RESULTANT] : $STR_DESCRIPTOR(); 2 330 XVMS XPO$RMS_PARSE - RMS File-spec R 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 8 V1.3-08 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 2 331 LOCAL ! Dynamic file-spec descriptors: 2 332 dyna_file_spec : $STR_DESCRIPTOR( CLASS=DYNAMIC ), 2 333 dyna_default : $STR_DESCRIPTOR( CLASS=DYNAMIC ), 2 334 dyna_related : $STR_DESCRIPTOR( CLASS=DYNAMIC ), 2 335 2 336 name_block : REF $NAM_DECL, ! Address of dynamic RMS Name Block 2 337 related_block : REF $NAM_DECL, ! Address of dummy RMS Name Block 2 338 expanded_spec : ! Expanded file-spec buffer 2 339 VECTOR[ CH$ALLOCATION(max_file_spec) ]; 2 340 2 341 ! 2 342 ! Initialization. 2 343 ! 2 344 2 345 $XPO_MAIN_BEGIN( IO ) ! Define the MAIN_BLOCK code block. 3 346 3 347 $STR_DESC_INIT( DESCRIPTOR = dyna_file_spec, ! Initialize the local file-spec descriptors. P 3 348 CLASS = DYNAMIC ); 3 349 3 350 $STR_DESC_INIT( DESCRIPTOR = dyna_default, P 3 351 CLASS = DYNAMIC ); 3 352 3 353 $STR_DESC_INIT( DESCRIPTOR = dyna_related, P 3 354 CLASS = DYNAMIC ); 3 355 3 356 name_block = 0; ! Indicate that no RMS Name Block has been allocated. 3 357 3 358 ! 3 359 ! Setup the primary and default file-spec information in the FAB. 3 360 ! 3 361 3 362 IF .resultant[STR$H_LENGTH] NEQ 0 ! If a resultant file-spec already exists, 3 363 THEN ! 3 364 BEGIN ! 4 365 $XPO_IF_NOT( $STR_COPY( ! move it into dynamic memory. P 4 366 STRING = resultant, P 4 367 TARGET = dyna_file_spec, P 4 368 FAILURE = 0 ) ) 6 369 THEN 5 370 $XPO_QUIT( BAD_RSLT, (.$XPO_STATUS) ); 4 371 END 4 372 ELSE 3 373 IF $STR_EQL( STRING1 = .file_spec, ! If FILE_SPEC=$XPO_TEMPORARY was specified, P 3 374 STRING2 = $XPO_TEMPORARY, ! P 3 375 FAILURE = 0 ) ! 4 376 THEN ! 3 377 BEGIN ! 4 378 iob[IOB$V_TEMPORARY] = yes; ! indicate a temporary file 4 379 $XPO_IF_NOT( $STR_COPY( ! and move a temporary file-spec into dynamic memory. P 4 380 STRING = 'XPORT.TMP', P 4 381 TARGET = dyna_file_spec, P 4 382 FAILURE = 0 ) ) 6 383 THEN 5 384 $XPO_QUIT( BAD_RSLT, (.$XPO_STATUS) ); 4 385 END 4 386 ELSE 3 387 BEGIN XVMS XPO$RMS_PARSE - RMS File-spec R 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 9 V1.3-08 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 4 388 $XPO_IF_NOT( $STR_COPY( ! Otherwise, move uppercase versions of the primary and P 4 389 STRING = .file_spec, ! default file specifications into dynamic memory. P 4 390 TARGET = dyna_file_spec, P 4 391 OPTION = UP_CASE, P 4 392 FAILURE = 0 ) ) 6 393 THEN 5 394 $XPO_QUIT( BAD_SPEC, (.$XPO_STATUS) ); 4 395 4 396 $XPO_IF_NOT( $STR_COPY( P 4 397 STRING = .default, P 4 398 TARGET = dyna_default, P 4 399 OPTION = UP_CASE, P 4 400 FAILURE = 0 ) ) 6 401 THEN 5 402 $XPO_QUIT( BAD_DFLT, (.$XPO_STATUS) ); 4 403 4 404 fab[FAB$L_DNA] = ! Setup the default file-spec fields in the FAB. 4 405 .dyna_default[STR$A_POINTER]; 4 406 fab[FAB$B_DNS] = .dyna_default[STR$H_LENGTH]; 4 407 END; 3 408 3 409 fab[FAB$L_FNA] = .dyna_file_spec[STR$A_POINTER]; ! Then setup the primary file-spec fields in the FAB. 3 410 fab[FAB$B_FNS] = .dyna_file_spec[STR$H_LENGTH]; 3 411 3 412 ! 3 413 ! Build a standard RMS Name Block. 3 414 ! 3 415 3 416 $XPO_IF_NOT( $XPO_GET_MEM( UNITS = NAM$C_BLN, ! Get dynamic memory for a Name Block. P 3 417 RESULT = name_block, P 3 418 FAILURE = 0 ) ) 5 419 THEN 4 420 $XPO_QUIT( (.$XPO_STATUS) ); 3 421 3 422 fab[FAB$L_NAM] = .name_block; ! Save the address of the Name Block. 3 423 3 424 $NAM_INIT( NAM = .name_block, ! Initialize the Name Block: P 3 425 ESA = expanded_spec, ! pointer to expanded file-spec buffer P 3 426 ESS = max_file_spec ); ! length of expanded file-spec buffer 3 427 3 428 ! 3 429 ! Build a dummy related file RMS Name Block. 3 430 ! 3 431 3 432 IF .related[STR$H_LENGTH] NEQ 0 AND ! If a related file-spec was specified 3 433 .resultant[STR$H_LENGTH] EQL 0 ! and a resultant file-spec was not specified, 3 434 THEN ! a dummy related file Name Block must be built. 3 435 BEGIN 4 436 $XPO_IF_NOT( $STR_COPY( ! First, move an uppercase version of the related P 4 437 STRING = .related, ! file-spec into dynamic memory. P 4 438 TARGET = dyna_related, P 4 439 OPTION = UP_CASE, P 4 440 FAILURE = 0 ) ) 6 441 THEN 5 442 $XPO_QUIT( BAD_RLTD, (.$XPO_STATUS) ); 4 443 4 444 $XPO_IF_NOT( $XPO_GET_MEM( UNITS = NAM$C_BLN, ! Then get dynamic memory for a Name Block. XVMS XPO$RMS_PARSE - RMS File-spec R 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 10 V1.3-08 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 P 4 445 RESULT = related_block, P 4 446 FAILURE = 0 ) ) 6 447 THEN 5 448 $XPO_QUIT( (.$XPO_STATUS) ); 4 449 4 450 name_block[NAM$L_RLF] = .related_block; ! Save the address of the Name Block. 4 451 4 452 $NAM_INIT( NAM = .related_block, ! Initialize the Name Block: P 4 453 RSA = .dyna_related[STR$A_POINTER] ); ! pointer to related file-spec 4 454 related_block[NAM$B_RSL] = ! length of related file-spec 4 455 .dyna_related[STR$H_LENGTH]; 4 456 END; 3 457 3 458 ! 3 459 ! Use RMS PARSE to build an expanded file specification. 3 460 ! 3 461 3 462 $RMS_PARSE( FAB = fab ); 3 463 3 464 ! 3 465 ! Save the expanded file specification. 3 466 ! 3 467 3 468 $XPO_IF_NOT( $STR_COPY( STRING = (.name_block[NAM$B_ESL], .name_block[NAM$L_ESA]), P 3 469 TARGET = resultant, P 3 470 FAILURE = 0 ) ) 5 471 THEN 4 472 $XPO_QUIT( BAD_RSLT, (.$XPO_STATUS) ); 3 473 3 474 ! 3 475 ! Interpret the RMS PARSE completion code. 3 476 ! 3 477 3 478 IF NOT .fab[FAB$L_STS] ! If the PARSE was unsuccessful, 3 479 THEN ! 3 480 BEGIN ! 4 481 XPO$RMS_ERROR( .iob, ! convert the RMS completion codes into 4 482 .fab[FAB$L_STS], ! equivalent XPORT completion codes. 4 483 .fab[FAB$L_STV] ); ! 4 484 $XPO_QUIT(); ! and then jump to return to the caller. 4 485 END; 3 486 3 487 ! 3 488 ! Setup for an "open by file ID" after a successful PARSE. 3 489 ! 3 490 3 491 fab[FAB$V_NAM] = yes; ! Indicate that the Name Block has already been set up. 3 492 3 493 ! 3 494 ! Test whether the device is a terminal. 3 495 ! 3 496 3 497 BEGIN 4 498 LOCAL 4 499 spec_parse : $XPO_SPEC_BLOCK, 4 500 device_name : $STR_DESCRIPTOR( CLASS = DYNAMIC ), 4 501 device_info : BLOCK[ DIB$K_LENGTH, BYTE ], XVMS XPO$RMS_PARSE - RMS File-spec R 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 11 V1.3-08 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 4 502 info_desc : $STR_DESCRIPTOR(); 4 503 4 504 $STR_DESC_INIT( DESCRIPTOR = device_name, CLASS = dynamic ); 4 505 $STR_DESC_INIT( DESCRIPTOR = info_desc, STRING = ( DIB$K_LENGTH, device_info ) ); 4 506 4 507 $XPO_PARSE_SPEC( FILE_SPEC = resultant, SPEC_BLOCK = spec_parse, FAILURE = 0 ); 4 508 4 509 IF .spec_parse[XPO$H_NODE] EQL 0 4 510 THEN 4 511 BEGIN 5 512 spec_parse[XPO$H_DEVICE] = .spec_parse[XPO$H_DEVICE] - 1; 5 513 5 514 xpo$xlate_logical( spec_parse[XPO$T_DEVICE], device_name ); 5 515 5 516 IF $GETDEV( DEVNAM = device_name, PRIBUF = info_desc ) EQL SS$_NORMAL 5 517 THEN 5 518 IF (.device_info[DIB$L_DEVCHAR] AND DEV$M_TRM) NEQ 0 5 519 THEN 5 520 BEGIN 6 521 iob[IOB$V_TERMINAL] = yes; 6 522 6 523 ! Use the actual terminal device name since RMS won't allow a 6 524 ! "user file open" on a process permanent file (e.g., SYS$INPUT). 6 525 6 526 $XPO_IF_NOT( $STR_COPY( STRING = device_name, TARGET = dyna_file_spec, FAILURE = 0 ) ) 8 527 THEN 7 528 $XPO_QUIT( BAD_RSLT, (.$XPO_STATUS) ); 6 529 IF CH$RCHAR( .dyna_file_spec[STR$A_POINTER] + .dyna_file_spec[STR$H_LENGTH] - 1 ) NEQ %C':' 6 530 THEN 6 531 $XPO_IF_NOT( $STR_APPEND( STRING = ':', TARGET = dyna_file_spec, FAILURE = 0 ) ) 8 532 THEN 7 533 $XPO_QUIT( BAD_RSLT, (.$XPO_STATUS) ); 6 534 6 535 $XPO_IF_NOT( $STR_COPY( STRING = dyna_file_spec, TARGET = resultant, FAILURE = 0 ) ) 8 536 THEN 7 537 $XPO_QUIT( BAD_RSLT, (.$XPO_STATUS) ); 6 538 6 539 ! Update the FAB and Name Block to force a regular open (i.e., not "open by file name block"). 6 540 6 541 fab[FAB$V_NAM] = no; 6 542 fab[FAB$B_FNS] = .dyna_file_spec[STR$H_LENGTH]; 6 543 fab[FAB$L_FNA] = .dyna_file_spec[STR$A_POINTER]; 6 544 6 545 name_block[NAM$B_ESS] = 0; 6 546 name_block[NAM$B_ESL] = 0; 6 547 name_block[NAM$L_ESA] = 0; 6 548 END; 5 549 5 550 $XPO_FREE_MEM( STRING = device_name, FAILURE = 0 ); 5 551 END; 4 552 END; 3 553 3 554 $XPO_QUIT( NORMAL ); ! Return a success code to the caller. 3 555 3 556 ! 3 557 ! Update the expanded string fields in the Name Block. 3 558 ! XVMS XPO$RMS_PARSE - RMS File-spec R 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 12 V1.3-08 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 3 559 3 560 $XPO_MAIN_END; ! Terminate the MAIN_BLOCK code block. 2 561 2 562 IF .fab[FAB$V_NAM] ! If "open by file name block" will follow, 2 563 THEN ! 2 564 BEGIN ! update the expanded file-spec fields. 3 565 name_block[NAM$B_ESS] = .resultant[STR$H_LENGTH]; 3 566 name_block[NAM$B_ESL] = .resultant[STR$H_LENGTH]; 3 567 name_block[NAM$L_ESA] = .resultant[STR$A_POINTER]; 3 568 END; 2 569 2 570 ! 2 571 ! Return the final XPORT completion code to the caller. 2 572 ! 2 573 2 574 RETURN .iob[IOB$G_COMP_CODE] ! Return the final completion code to the caller. 2 575 2 576 END; XVMS XPO$XLATE_LOGICAL - Fully Trans 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 13 V1.3-08 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 1 578 %TITLE 'XPO$XLATE_LOGICAL - Fully Translate Logical Name' 1 579 1 580 GLOBAL ROUTINE xpo$xlate_logical( logical_name, result_name ) = 1 581 1 582 !++ 1 583 ! 1 584 ! FUNCTIONAL DESCRIPTION: 1 585 ! 1 586 ! This routine translates a logical name to its equivalence name, 1 587 ! repeating this translation until the logical name is fully resolved. 1 588 ! 1 589 ! FORMAL PARAMETERS: 1 590 ! 1 591 ! logical_name - address of a logical name string descriptor 1 592 ! result_name - address of an initialized result string descriptor 1 593 ! 1 594 ! IMPLICIT INPUTS: 1 595 ! 1 596 ! None 1 597 ! 1 598 ! IMPLICIT OUTPUTS: 1 599 ! 1 600 ! None 1 601 ! 1 602 ! COMPLETION CODES: 1 603 ! 1 604 ! completion code from $STR_COPY 1 605 ! or 1 606 ! failure completion code from $TRNLOG 1 607 ! 1 608 ! SIDE EFFECTS: 1 609 ! 1 610 ! None 1 611 ! 1 612 !-- 1 613 1 614 BEGIN 2 615 2 616 MAP 2 617 logical_name : REF $STR_DESCRIPTOR(), 2 618 result_name : REF $STR_DESCRIPTOR(); 2 619 2 620 LITERAL 2 621 max_equiv_name = 63; ! Maximum length of an equivalence name 2 622 2 623 LOCAL 2 624 current_name : $STR_DESCRIPTOR(), ! Descriptor of name to be translated 2 625 equiv_buffer : VECTOR[ max_equiv_name, BYTE ], ! Equivalence name buffer 2 626 equiv_name : $STR_DESCRIPTOR(), ! Equivalence buffer descriptor 2 627 status; ! Temporary completion code 2 628 2 629 ! Initialize the local string descriptors. 2 630 2 631 $STR_DESC_INIT( DESCRIPTOR = current_name, STRING = logical_name[$BASE] ); 2 632 $STR_DESC_INIT( DESCRIPTOR = equiv_name, STRING = ( max_equiv_name, equiv_buffer ) ); 2 633 2 634 ! Translate the current name as many times as necessary. XVMS XPO$XLATE_LOGICAL - Fully Trans 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 14 V1.3-08 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 2 635 2 636 WHILE 1 DO 2 637 BEGIN 3 638 3 639 ! Remove the first 4 characters from an equivalence name which 3 640 ! begins with an escape character (i.e., process-permanent file-spec). 3 641 3 642 IF CH$RCHAR( .current_name[STR$A_POINTER] ) EQL esc AND 3 643 .current_name[STR$H_LENGTH] GTRU 4 3 644 THEN 3 645 BEGIN 4 646 current_name[STR$H_LENGTH] = .current_name[STR$H_LENGTH] - 4; 4 647 current_name[STR$A_POINTER] = .current_name[STR$A_POINTER] + 4; 4 648 END; 3 649 3 650 ! A logical name which begins with an underscore should not be translated. 3 651 3 652 IF CH$RCHAR( .current_name[STR$A_POINTER] ) EQL %C'_' 3 653 THEN 3 654 EXITLOOP; 3 655 3 656 ! Attempt to translate the current name. 3 657 3 658 status = $TRNLOG( LOGNAM = current_name[$BASE], P 3 659 RSLBUF = equiv_name[$BASE], P 3 660 RSLLEN = current_name[STR$H_LENGTH] ); 3 661 3 662 ! Exit the translation loop if translation is complete. 3 663 3 664 IF .status EQL SS$_NOTRAN OR .status EQL SS$_IVLOGNAM 3 665 THEN 3 666 EXITLOOP; 3 667 3 668 ! Return to the caller on other translation failures. 3 669 3 670 IF NOT .status THEN RETURN .status; 3 671 3 672 ! Make the translated name the current name and loop back. 3 673 3 674 current_name[STR$A_POINTER] = equiv_buffer; 3 675 END; 2 676 2 677 ! Return the fully translated name to the caller. 2 678 2 679 RETURN $STR_COPY( STRING = current_name[$BASE], TARGET = result_name[$BASE] ); 2 680 END; XVMS XPO$RMS_CLEANUP - RMS Control B 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 15 V1.3-08 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 1 682 %TITLE 'XPO$RMS_CLEANUP - RMS Control Block Cleanup' 1 683 1 684 GLOBAL ROUTINE XPO$RMS_CLEANUP( iob ) = 1 685 1 686 !++ 1 687 ! 1 688 ! FUNCTIONAL DESCRIPTION: 1 689 ! 1 690 ! This routine closes an IOB's FAB (if it is open) and then frees 1 691 ! all of the RMS control blocks which relate to the IOB. 1 692 ! 1 693 ! FORMAL PARAMETERS: 1 694 ! 1 695 ! iob - address of an IOB 1 696 ! 1 697 ! IMPLICIT INPUTS: 1 698 ! 1 699 ! iob[IOB$A_RMS_FAB] points to an initialized RMS FAB 1 700 ! 1 701 ! IMPLICIT OUTPUTS: 1 702 ! 1 703 ! None 1 704 ! 1 705 ! COMPLETION CODES: 1 706 ! 1 707 ! XPO$_NORMAL - RMS cleanup was successful 1 708 ! 1 709 ! failure completion code from $XPO_FREE_MEM 1 710 ! 1 711 ! SIDE EFFECTS: 1 712 ! 1 713 ! None 1 714 ! 1 715 !-- 1 716 1 717 BEGIN 2 718 2 719 MAP 2 720 iob : REF $XPO_IOB(); ! Redefine the IOB parameter. 2 721 2 722 BIND 2 723 fab = .iob[IOB$A_RMS_FAB] : $FAB_DECL, ! Define the IOB's FAB 2 724 rab = .iob[IOB$A_RMS_RAB] : $RAB_DECL; ! and RAB. 2 725 2 726 MACRO 2 727 free_block( bytes, address ) = M 2 728 M 2 729 ! bytes = Length in number of bytes M 2 730 ! address = Address of the descriptor M 2 731 M 2 732 BEGIN M 2 733 LOCAL status; M 2 734 M 2 735 status = $XPO_FREE_MEM( BINARY_DATA=(bytes,address,UNITS), M 2 736 FAILURE = 0 ); M 2 737 M 2 738 IF NOT .status XVMS XPO$RMS_CLEANUP - RMS Control B 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 16 V1.3-08 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 M 2 739 THEN M 2 740 RETURN .status M 2 741 END %, 2 742 2 743 free_string ( bytes, address ) = M 2 744 M 2 745 ! bytes = Length in number of bytes M 2 746 ! address = Address of the descriptor M 2 747 M 2 748 BEGIN M 2 749 LOCAL status; M 2 750 M 2 751 status = $XPO_FREE_MEM( STRING=(bytes,address), M 2 752 FAILURE = 0 ); M 2 753 M 2 754 IF NOT .status M 2 755 THEN M 2 756 RETURN .status M 2 757 END %; 2 758 2 759 ! 2 760 ! Close the FAB if it is open. 2 761 ! 2 762 2 763 IF fab EQL 0 ! If no FAB exists, 2 764 THEN ! 2 765 RETURN XPO$_NORMAL; ! return a success code to the caller. 2 766 2 767 $RMS_CLOSE( FAB = fab ); ! Close the FAB in case it is open. 2 768 2 769 free_string( .fab[FAB$B_FNS], .fab[FAB$L_FNA] ); ! Free the upper-case versions of the primary 2 770 free_string( .fab[FAB$B_DNS], .fab[FAB$L_DNA] ); ! and default file specifications. 2 771 2 772 ! 2 773 ! Free any RMS Name Blocks. 2 774 ! 2 775 2 776 IF .fab[FAB$L_NAM] NEQ 0 ! If a Name Block exists, 2 777 THEN ! it and the related Name Block must be freed. 2 778 BEGIN 3 779 BIND 3 780 name_block = .fab[FAB$L_NAM] : $NAM_DECL, 3 781 related_block = .name_block[NAM$L_RLF] : 3 782 $NAM_DECL; 3 783 3 784 IF related_block NEQ 0 ! If a related Name Block exists, 3 785 THEN ! 3 786 BEGIN ! 4 787 free_string( .related_block[NAM$B_RSL], ! free the upper-case version of the P 4 788 .related_block[NAM$L_RSA] ); ! related file specification 4 789 free_block( NAM$C_BLN, related_block );! and then free the dummy Name Block. 4 790 END; 3 791 3 792 free_block( NAM$C_BLN, name_block ); ! Then free the standard Name Block. 3 793 END; 2 794 2 795 ! XVMS XPO$RMS_CLEANUP - RMS Control B 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 17 V1.3-08 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 2 796 ! Free the FAB. 2 797 ! 2 798 2 799 free_block( FAB$C_BLN, fab ); ! Free the IOB's FAB. 2 800 2 801 iob[IOB$A_RMS_FAB] = 0; ! Indicate that the FAB no longer exists. 2 802 2 803 ! 2 804 ! Free the RAB and its associated I/O buffer. 2 805 ! 2 806 2 807 IF rab NEQ 0 ! If a RAB exists, 2 808 THEN ! the RAB and its I/O buffer must be freed. 2 809 BEGIN 3 810 free_block( .rab[RAB$W_USZ], .rab[RAB$L_UBF] ); ! Free the I/O buffer (if any). 3 811 3 812 free_block( RAB$C_BLN, rab ); ! Free the RAB. 3 813 3 814 iob[IOB$A_RMS_RAB] = 0; ! Indicate that the RAB no longer exists. 3 815 END; 2 816 2 817 ! 2 818 ! Return to the caller. 2 819 ! 2 820 2 821 RETURN XPO$_NORMAL ! Return a success code to the caller. 2 822 2 823 END; 1 824 END 1 825 ELUDOM XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 18 V1.3-08 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 .psect _XPO$CODE, CON, LCL, SHR, EXE, NOWRT, NOVEC .proc XPO$RMS_ERROR .align 32 .global XPO$RMS_ERROR XPO$RMS_ERROR: // 000204 { .mii 0120001000C0 0000 add r3 = @ltoff(RMS_TO_XPORT), r1 // 000247 012000002240 0001 mov INDEX = 1 // r9 = 1 000008000000 0002 nop.i 0 ;; } { .mmi 0080C03000C0 0010 ld8 r3 = RMS_TO_XPORT ;; // r3 = [r3] 002C004088C0 0011 alloc r35 = rspfs, 3, 1, 0, 0 // 000204 000008000000 0012 nop.i 0 } { .mmi 008080300200 0020 ld4 r8 = [r3] ;; // 000247 018C30800000 0021 cmp4.lt pr0, pr6 = 0, r8 000008000000 0022 nop.i 0 } { .mfb 000008000000 0030 nop.m 0 000008000000 0031 nop.f 0 00860004E006 0032 (pr6) br.cond.dpnt.few L$40 } { .mii 0119F88E8280 0040 adds r10 = -12, r8 0120000182C0 0041 mov r11 = 12 ;; // 000254 018448A00000 0042 cmp4.lt pr0, pr9 = r0, r10 // 000247 } { .mmi 018430A101C0 0050 cmp4.lt pr7, pr6 = r8, r10 ;; 01C2300001C9 0051 (pr9) cmp.eq.or.andcm pr7, pr6 = r0, r0 000008000000 0052 nop.i 0 } { .bbb 008600002006 0060 (pr6) br.cond.dpnt.few L$44 004000000000 0061 nop.b 0 008600028007 0062 (pr7) br.cond.dpnt.few L$52 ;; } 0070 L$44: { .mmi 0119F8BF0440 0070 adds r17 = -8, r11 ;; // 000249 000008000000 0071 nop.m 0 0000B1100440 0072 sxt4 r17 = r17 ;; } { .mmi 010001106440 0080 add r17 = r3, r17 ;; 008081100440 0081 ld4 r17 = [r17] 000008000000 0082 nop.i 0 ;; } { .mfb 01C401142240 0090 cmp4.eq pr9, pr0 = RMS_STS, r17 // pr9, pr0 = r33, r17 000008000000 0091 nop.f 0 00860002C009 0092 (pr9) br.cond.dpnt.few L$46 } { .mii XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 19 V1.3-08 XPO$RMS_ERROR 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 010800B08440 00A0 adds r17 = 4, r11 010800906240 00A1 adds r9 = 3, r9 ;; 0000B1100440 00A2 sxt4 r17 = r17 ;; } { .mmi 010001106440 00B0 add r17 = r3, r17 ;; 008081100440 00B1 ld4 r17 = [r17] 000008000000 00B2 nop.i 0 ;; } { .mfb 01C4011421C0 00C0 cmp4.eq pr7, pr0 = RMS_STS, r17 // pr7, pr0 = r33, r17 000008000000 00C1 nop.f 0 008600026007 00C2 (pr7) br.cond.dpnt.few L$46 } { .mii 010800B20440 00D0 adds r17 = 16, r11 010800906240 00D1 adds r9 = 3, r9 ;; 0000B1100440 00D2 sxt4 r17 = r17 ;; } { .mmi 010001106440 00E0 add r17 = r3, r17 ;; 008081100440 00E1 ld4 r17 = [r17] 000008000000 00E2 nop.i 0 ;; } { .mfb 01C401142240 00F0 cmp4.eq pr9, pr0 = RMS_STS, r17 // pr9, pr0 = r33, r17 000008000000 00F1 nop.f 0 008600020009 00F2 (pr9) br.cond.dpnt.few L$46 } { .mii 010800B38440 0100 adds r17 = 28, r11 010800906240 0101 adds r9 = 3, r9 ;; 0000B1100440 0102 sxt4 r17 = r17 ;; } { .mmi 010001106440 0110 add r17 = r3, r17 ;; 008081100440 0111 ld4 r17 = [r17] 000008000000 0112 nop.i 0 ;; } { .mfb 01C4011421C0 0120 cmp4.eq pr7, pr0 = RMS_STS, r17 // pr7, pr0 = r33, r17 000008000000 0121 nop.f 0 00860001A007 0122 (pr7) br.cond.dpnt.few L$46 } { .mii 010800B50440 0130 adds r17 = 40, r11 010800906240 0131 adds r9 = 3, r9 010800B782C0 0132 adds r11 = 60, r11 ;; } { .mii 000008000000 0140 nop.m 0 0000B1100440 0141 sxt4 r17 = r17 ;; 010001106440 0142 add r17 = r3, r17 ;; } { .mmi 008081100440 0150 ld4 r17 = [r17] ;; 01C401142240 0151 cmp4.eq pr9, pr0 = RMS_STS, r17 // pr9, pr0 = r33, r17 XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 20 V1.3-08 XPO$RMS_ERROR 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 000008000000 0152 nop.i 0 } { .mfb 000008000000 0160 nop.m 0 000008000000 0161 nop.f 0 008600012009 0162 (pr9) br.cond.dpnt.few L$46 } { .mmi 010800906240 0170 adds r9 = 3, r9 ;; 018430914000 0171 cmp4.lt pr0, pr6 = r10, INDEX // pr0, pr6 = r10, r9 // 000247 000008000000 0172 nop.i 0 } { .mfb 000008000000 0180 nop.m 0 000008000000 0181 nop.f 0 0095FFFDE006 0182 (pr6) br.cond.dptk.few L$44 } { .mfb 018400910240 0190 cmp4.lt pr9, pr0 = r8, INDEX // pr9, pr0 = r8, r9 000008000000 0191 nop.f 0 008600022009 0192 (pr9) br.cond.dpnt.few L$40 ;; } 01A0 L$52: { .mii 0119F8BF0440 01A0 adds r17 = -8, r11 // 000249 010800B182C0 01A1 adds r11 = 12, r11 ;; 0000B1100440 01A2 sxt4 r17 = r17 ;; } { .mmi 010001106440 01B0 add r17 = r3, r17 ;; 008081100440 01B1 ld4 r17 = [r17] 000008000000 01B2 nop.i 0 ;; } { .mfb 01C4011421C0 01C0 cmp4.eq pr7, pr0 = RMS_STS, r17 // pr7, pr0 = r33, r17 000008000000 01C1 nop.f 0 008600006007 01C2 (pr7) br.cond.dpnt.few L$46 } { .mmi 010800906240 01D0 adds r9 = 3, r9 ;; 018440910000 01D1 cmp4.lt pr0, pr8 = r8, INDEX // pr0, pr8 = r8, r9 // 000247 000008000000 01D2 nop.i 0 } { .bbb 0095FFFF8008 01E0 (pr8) br.cond.dptk.few L$52 004000000000 01E1 nop.b 0 008000018000 01E2 br.sptk.few L$40 ;; } 01F0 L$46: // 000249 { .mib 010088012240 01F0 shladd r9 = INDEX, 2, r0 // r9 = r9, 2, r0 // 000253 0000B2000800 01F1 sxt4 r32 = IOB // r32 = r32 // 000252 004000000000 01F2 nop.b 0 } { .mlx 000008000000 0200 nop.m 0 800000000000 0201 movl r17 = 2129921 ;; // 000254 XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 21 V1.3-08 XPO$RMS_ERROR 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 0190004048 } { .mii 010800910280 0210 adds r10 = 8, r9 010800908240 0211 adds r9 = 4, r9 01080A0B0200 0212 adds r8 = 216, r32 ;; // 000252 } { .mii 000008000000 0220 nop.m 0 0000B0A00280 0221 sxt4 r10 = r10 // 000254 0000B0900240 0222 sxt4 r9 = r9 ;; // 000253 } { .mii 010000A06280 0230 add r10 = r3, r10 // 000254 0100009060C0 0231 add r3 = r3, r9 // 000253 000008000000 0232 nop.i 0 ;; } { .mmi 008080A00280 0240 ld4 r10 = [r10] // 000254 0080803000C0 0241 ld4 r3 = [r3] // 000253 000008000000 0242 nop.i 0 ;; } { .mmb 01C431114000 0250 cmp4.eq pr0, pr6 = r10, r17 // 000254 008C80806000 0251 st4 [r8] = r3 // 000252 008600006006 0252 (pr6) br.cond.dpnt.few L$54 // 000254 } { .mmi 01080A0B82C0 0260 adds r11 = 220, r32 ;; // 000256 008C80B44000 0261 st4 [r11] = RMS_STV // [r11] = r34 000008000000 0262 nop.i 0 } { .mfb 000008000000 0270 nop.m 0 000008000000 0271 nop.f 0 00800000E000 0272 br.sptk.few L$57 ;; // 000254 } 0280 L$54: { .mmi 01080A0B8800 0280 adds r32 = 220, r32 ;; // 000258 008C82014000 0281 st4 [r32] = r10 000008000000 0282 nop.i 0 } { .mfb 000008000000 0290 nop.m 0 000008000000 0291 nop.f 0 00800000A000 0292 br.sptk.few L$57 ;; // 000260 } 02A0 L$40: // 000247 { .mib 000008000000 02A0 nop.m 0 0000B2000800 02A1 sxt4 r32 = IOB // r32 = r32 // 000267 004000000000 02A2 nop.b 0 } { .mlx 000008000000 02B0 nop.m 0 800000000000 02B1 movl r9 = 2138794 ;; XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 22 V1.3-08 XPO$RMS_ERROR 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 0194504A84 } { .mii 01080A0B0440 02C0 adds r17 = 216, r32 01080A0B8800 02C1 adds r32 = 220, r32 // 000268 000008000000 02C2 nop.i 0 ;; } { .mmi 008C81112000 02D0 st4 [r17] = r9 // 000267 008C82042000 02D1 st4 [r32] = RMS_STS // [r32] = r33 // 000268 000008000000 02D2 nop.i 0 } 02E0 L$57: // 000270 { .mib 000008000000 02E0 nop.m 0 000154046000 02E1 mov.i rspfs = r35 004000000000 02E2 nop.b 0 ;; } { .mfb 000008000000 02F0 nop.m 0 000008000000 02F1 nop.f 0 000108001100 02F2 br.ret.sptk.many br0 ;; } .endp XPO$RMS_ERROR Routine Size: 768 bytes, Routine Base: _XPO$CODE + 0000 .proc XPO$RMS_PARSE .align 32 .global XPO$RMS_PARSE XPO$RMS_PARSE: // 000276 { .mii 002C05AC1E00 0300 alloc r120 = rspfs, 1, 89, 6, 0 0000B20000C0 0301 sxt4 r3 = IOB // r3 = r32 // 000324 012000038480 0302 mov r18 = 28 // 000329 } { .mmi 012000018A40 0310 mov r41 = 12 // 000328 0120000102C0 0311 mov r11 = 8 // 000327 012000008280 0312 mov r10 = 4 ;; // 000326 } { .mii 010800300A00 0320 mov r40 = r3 // 000324 0108083D0200 0321 adds r8 = 232, r3 000188001DC0 0322 mov r119 = br0 // 000276 } { .mmi 008040300240 0330 ld2 r9 = [r3] // 000345 0119E0C00300 0331 adds r12 = -512, r12 // 000276 010800101E40 0332 mov r121 = r1 ;; } { .mii 008080800200 0340 ld4 r8 = [r8] // 000324 010001206A80 0341 add r42 = r3, r18 // 000329 010002906AC0 0342 add r43 = r3, r41 // 000328 } { .mmi XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 23 V1.3-08 XPO$RMS_PARSE 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 010000B06B00 0350 add r44 = r3, r11 // 000327 01CC0097A1C0 0351 cmp4.eq pr7, pr0 = 61, r9 // 000345 010000A06B40 0352 add r45 = r3, r10 ;; // 000326 } { .mib 000008000000 0360 nop.m 0 0000B0800B80 0361 sxt4 r46 = r8 // 000324 00860000A007 0362 (pr7) br.cond.dpnt.few L$62 // 000345 } { .mii 0108083B0500 0370 adds r20 = 216, r3 0108083B8580 0371 adds r22 = 220, r3 000008000000 0372 nop.i 0 } { .mlx 000008000000 0380 nop.m 0 800000000000 0381 movl r19 = 2146308 ;; 0198004109 } { .mlx 008C81426000 0390 st4 [r20] = r19 800000000000 0391 movl r21 = 2138210 ;; 019400588A } { .mfb 008C8162A000 03A0 st4 [r22] = r21 000008000000 03A1 nop.f 0 008000178000 03A2 br.sptk.few L$63 ;; } 03B0 L$62: { .mii 01080A8B85C0 03B0 adds r23 = 220, r40 010800C70700 03B1 adds r28 = 56, r12 // 000354 000008000000 03B2 nop.i 0 } { .mlx 010800C88640 03C0 adds r25 = 68, r12 // 000351 800000000008 03C1 movl r47 = 34471936 ;; // 000348 0180070017 } { .mii 010800C98600 03D0 adds r24 = 76, r12 010800C78740 03D1 adds r29 = 60, r12 // 000354 010800C806C0 03D2 adds r27 = 64, r12 // 000351 } { .mmi 010800C90680 03E0 adds r26 = 72, r12 // 000348 008C81700000 03E1 st4 [r23] = r0 // 000345 010800000C00 03E2 mov NAME_BLOCK = r0 ;; // r48 = r0 // 000356 } { .mmi 008C81C5E000 03F0 st4 [r28] = r47 // 000354 008C81900000 03F1 st4 [r25] = r0 // 000351 000008000000 03F2 nop.i 0 } { .mmi 008C81800000 0400 st4 [r24] = r0 // 000348 XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 24 V1.3-08 XPO$RMS_PARSE 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 008C81D00000 0401 st4 [r29] = r0 // 000354 000008000000 0402 nop.i 0 } { .mmi 008C81B5E000 0410 st4 [r27] = r47 // 000351 008C81A5E000 0411 st4 [r26] = r47 // 000348 000008000000 0412 nop.i 0 } { .mmi 008042A00740 0420 ld2 r29 = [r42] ;; // 000362 01C401D00240 0421 cmp4.eq pr9, pr0 = r0, r29 000008000000 0422 nop.i 0 } { .mfb 000008000000 0430 nop.m 0 000008000000 0431 nop.f 0 008600010009 0432 (pr9) br.cond.dpnt.few L$65 } { .mii 010800C90780 0440 adds r30 = 72, r12 // 000368 01200000A640 0441 mov r25 = 5 0000B0001F80 0442 sxt4 r126 = r0 } { .mii 012400001E80 0450 addl r122 = 16384, r0 0000B0001F40 0451 sxt4 r125 = r0 0000B2A01EC0 0452 sxt4 r123 = r42 ;; } { .mib 000008000000 0460 nop.m 0 0000B1E01F00 0461 sxt4 r124 = r30 00A000001000 0462 br.call.sptk.many br0 = XST$COPY } { .mib 010807900040 0470 mov r1 = r121 00A0308001C0 0471 tbit.z pr7, pr6 = $XPO$STATUS, 0 // pr7, pr6 = r8, 0 008600050006 0472 (pr6) br.cond.dpnt.few L$66 } { .mii 01080A8B0C80 0480 adds r50 = 216, r40 // 000370 01080A8B8CC0 0481 adds r51 = 220, r40 000008000000 0482 nop.i 0 } { .mlx 000008000000 0490 nop.m 0 800000000000 0491 movl r49 = 2138282 ;; 0194104A98 } { .mmb 008C83262000 04A0 st4 [r50] = r49 008C83310000 04A1 st4 [r51] = $XPO$STATUS // [r51] = r8 008000158000 04A2 br.sptk.few L$63 ;; } 04B0 L$65: // 000375 { .mmi 012000100D00 04B0 add r52 = @ltoff($STR$STRING2), r1 008082D01EC0 04B1 ld4 r123 = [r45] XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 25 V1.3-08 XPO$RMS_PARSE 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 01200000C640 04B2 mov r25 = 6 ;; } { .mii 0080C3400D00 04C0 ld8 r52 = $STR$STRING2 // r52 = [r52] 0000B0001FC0 04C1 sxt4 r127 = r0 0000B0001F80 04C2 sxt4 r126 = r0 } { .mii 0119F80FFF40 04D0 adds r125 = -1, r0 0000B7B01EC0 04D1 sxt4 r123 = r123 012400001E80 04D2 addl r122 = 16384, r0 ;; } { .mii 000008000000 04E0 nop.m 0 0000B3401F00 04E1 sxt4 r124 = r52 010803410D00 04E2 adds r52 = 8, r52 } { .mfb 000008000000 04F0 nop.m 0 000008000000 04F1 nop.f 0 00A000001000 04F2 br.call.sptk.many br0 = XST$EQL } { .mib 010807900040 0500 mov r1 = r121 00A0308001C0 0501 tbit.z pr7, pr6 = r8, 0 008600016007 0502 (pr7) br.cond.dpnt.few L$69 ;; // 000373 } { .mib 010802860A00 0510 adds r40 = 48, r40 // 000378 0000B3401EC0 0511 sxt4 r123 = r52 // 000382 004000000000 0512 nop.b 0 } { .mlx 010800C90D00 0520 adds r52 = 72, r12 000000000000 0521 movl r54 = 2097152 ;; // 000378 018000401B } { .mii 008082800D40 0530 ld4 r53 = [r40] 01200000A640 0531 mov r25 = 5 // 000382 0000B0001F80 0532 sxt4 r126 = r0 } { .mii 012400001E80 0540 addl r122 = 16384, r0 0000B0001F40 0541 sxt4 r125 = r0 0000B3401F00 0542 sxt4 r124 = r52 ;; } { .mmi 01007366AD40 0550 or r53 = r53, r54 ;; // 000378 00BC8A86B400 0551 st4 [r40] = r53, -48 000008000000 0552 nop.i 0 } { .mfb 000008000000 0560 nop.m 0 000008000000 0561 nop.f 0 00A000001000 0562 br.call.sptk.many br0 = XST$COPY // 000382 } XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 26 V1.3-08 XPO$RMS_PARSE 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 { .mib 010807900040 0570 mov r1 = r121 00A0308001C0 0571 tbit.z pr7, pr6 = $XPO$STATUS, 0 // pr7, pr6 = r8, 0 008600030006 0572 (pr6) br.cond.dpnt.few L$66 ;; } { .mii 01080A8B0E40 0580 adds r57 = 216, r40 // 000384 01080A8B8E80 0581 adds r58 = 220, r40 000008000000 0582 nop.i 0 } { .mlx 000008000000 0590 nop.m 0 000000000000 0591 movl r56 = 2138282 ;; 0194104A9C } { .mmb 008C83970000 05A0 st4 [r57] = r56 008C83A10000 05A1 st4 [r58] = $XPO$STATUS // [r58] = r8 008000138000 05A2 br.sptk.few L$63 ;; } 05B0 L$69: // 000392 { .mii 008082D01EC0 05B0 ld4 r123 = [r45] 010800C90B40 05B1 adds r45 = 72, r12 01200000A640 05B2 mov r25 = 5 } { .mii 012500001E80 05C0 addl r122 = 20480, r0 0000B0001F80 05C1 sxt4 r126 = r0 0000B0001F40 05C2 sxt4 r125 = r0 ;; } { .mii 000008000000 05D0 nop.m 0 0000B2D01F00 05D1 sxt4 r124 = r45 0000B7B01EC0 05D2 sxt4 r123 = r123 } { .mfb 000008000000 05E0 nop.m 0 000008000000 05E1 nop.f 0 00A000001000 05E2 br.call.sptk.many br0 = XST$COPY } { .mib 010807900040 05F0 mov r1 = r121 00A0308001C0 05F1 tbit.z pr7, pr6 = $XPO$STATUS, 0 // pr7, pr6 = r8, 0 008600008006 05F2 (pr6) br.cond.dpnt.few L$71 } { .mii 01080A8B0F00 0600 adds r60 = 216, r40 // 000394 01080A8B8F40 0601 adds r61 = 220, r40 000008000000 0602 nop.i 0 } { .mlx 000008000000 0610 nop.m 0 800000000000 0611 movl r59 = 2138290 ;; 0194104C9D } { .mmb XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 27 V1.3-08 XPO$RMS_PARSE 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 008C83C76000 0620 st4 [r60] = r59 008C83D10000 0621 st4 [r61] = $XPO$STATUS // [r61] = r8 008000128000 0622 br.sptk.few L$63 ;; } 0630 L$71: // 000400 { .mii 008082C01EC0 0630 ld4 r123 = [r44] 010800C80B00 0631 adds r44 = 64, r12 01200000A640 0632 mov r25 = 5 } { .mii 012500001E80 0640 addl r122 = 20480, r0 0000B0001F80 0641 sxt4 r126 = r0 0000B0001F40 0642 sxt4 r125 = r0 ;; } { .mii 000008000000 0650 nop.m 0 0000B2C01F00 0651 sxt4 r124 = r44 0000B7B01EC0 0652 sxt4 r123 = r123 } { .mfb 000008000000 0660 nop.m 0 000008000000 0661 nop.f 0 00A000001000 0662 br.call.sptk.many br0 = XST$COPY } { .mib 010807900040 0670 mov r1 = r121 00A0308001C0 0671 tbit.z pr7, pr6 = $XPO$STATUS, 0 // pr7, pr6 = r8, 0 008600008006 0672 (pr6) br.cond.dpnt.few L$73 } { .mii 01080A8B0FC0 0680 adds r63 = 216, r40 // 000402 01080A8B9000 0681 adds r64 = 220, r40 000008000000 0682 nop.i 0 } { .mlx 000008000000 0690 nop.m 0 000000000000 0691 movl r62 = 2138170 ;; 0194004E9F } { .mmb 008C83F7C000 06A0 st4 [r63] = r62 008C84010000 06A1 st4 [r64] = $XPO$STATUS // [r64] = r8 008000118000 06A2 br.sptk.few L$63 ;; } 06B0 L$73: // 000400 { .mii 010800C89040 06B0 adds r65 = 68, r12 // 000405 010800C810C0 06B1 adds r67 = 64, r12 // 000406 000008000000 06B2 nop.i 0 ;; } { .mii 008084101040 06C0 ld4 r65 = [r65] // 000405 010802E60B80 06C1 adds r46 = 48, r46 // 000404 000008000000 06C2 nop.i 0 ;; } { .mmi XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 28 V1.3-08 XPO$RMS_PARSE 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 00AC82E82140 06D0 st4 [r46] = r65, 5 0080443010C0 06D1 ld2 r67 = [r67] // 000406 000008000000 06D2 nop.i 0 ;; } { .mmi 00BC0AE872C0 06E0 st1 [r46] = r67, -53 ;; 000008000000 06E1 nop.m 0 000008000000 06E2 nop.i 0 } 06F0 L$66: // 000362 { .mii 010800C99140 06F0 adds r69 = 76, r12 // 000409 010800C911C0 06F1 adds r71 = 72, r12 // 000410 010800C61280 06F2 adds r74 = 48, r12 ;; // 000418 } { .mlx 008084501140 0700 ld4 r69 = [r69] // 000409 800000000008 0701 movl r73 = 33685504 // 000418 0180010024 } { .mii 010800C692C0 0710 adds r75 = 52, r12 010800C61300 0711 adds r76 = 48, r12 01200000C640 0712 mov r25 = 6 } { .mmi 0119F80FFF00 0720 adds r124 = -1, r0 010802E58B80 0721 adds r46 = 44, r46 // 000409 0000B0001FC0 0722 sxt4 r127 = r0 // 000418 } { .mii 0120000C1E80 0730 mov r122 = 96 0000B0001F80 0731 sxt4 r126 = r0 0000B0001F40 0732 sxt4 r125 = r0 ;; } { .mib 010800001380 0740 mov r78 = r0 0000B4C01EC0 0741 sxt4 r123 = r76 004000000000 0742 nop.b 0 } { .mmi 00AC82E8A200 0750 st4 [r46] = r69, 8 // 000409 0080447011C0 0751 ld2 r71 = [r71] // 000410 000008000000 0752 nop.i 0 ;; } { .mmi 00BC0AE8F300 0760 st1 [r46] = r71, -52 008C84A92000 0761 st4 [r74] = r73 // 000418 000008000000 0762 nop.i 0 } { .mfb 008C84B00000 0770 st4 [r75] = r0 000008000000 0771 nop.f 0 00A000001000 0772 br.call.sptk.many br0 = XPO$ALLOC_MEM } { .mii 010800C69340 0780 adds r77 = 52, r12 XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 29 V1.3-08 XPO$RMS_PARSE 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 00A0308001C0 0781 tbit.z pr7, pr6 = $XPO$STATUS, 0 // pr7, pr6 = r8, 0 010807900040 0782 mov r1 = r121 ;; } { .mii 008084D01340 0790 ld4 r77 = [r77] 01C000001206 0791 (pr6) cmp.eq.unc pr8, pr0 = r0, r0 ;; 010804D01388 0792 (pr8) mov r78 = r77 ;; } { .mfb 010804E00C00 07A0 mov NAME_BLOCK = r78 // r48 = r78 000008000000 07A1 nop.f 0 008600006008 07A2 (pr8) br.cond.dpnt.few L$75 } { .mmi 01080A8B13C0 07B0 adds r79 = 216, r40 ;; // 000420 008C84F10000 07B1 st4 [r79] = $XPO$STATUS // [r79] = r8 000008000000 07B2 nop.i 0 } { .mfb 000008000000 07C0 nop.m 0 000008000000 07C1 nop.f 0 0080000F4000 07C2 br.sptk.few L$63 ;; } 07D0 L$75: // 000418 { .mii 012000005480 07D0 mov r82 = 2 // 000426 0120000C1500 07D1 mov r84 = 96 0120080FF580 07D2 mov r86 = 255 } { .mii 010802E50B80 07E0 adds r46 = 40, r46 // 000422 0000B3001400 07E1 sxt4 r80 = NAME_BLOCK // r80 = r48 // 000426 010800001F00 07E2 mov r124 = r0 ;; } { .mmi 0120000C1EC0 07F0 mov r123 = 96 00BC8AE61600 07F1 st4 [r46] = NAME_BLOCK, -40 // [r46] = r48, -40 // 000422 010805001E80 07F2 mov r122 = r80 // 000426 } { .mfb 000008000000 0800 nop.m 0 000008000000 0801 nop.f 0 00A000001000 0802 br.call.sptk.many br0 = OTS$FILL } { .mii 00AC050A4040 0810 st1 [r80] = r82, 1 010807900040 0811 mov r1 = r121 ;; 000008000000 0812 nop.i 0 } { .mmi 00AC050A8240 0820 st1 [r80] = r84, 9 ;; 00AC050AC080 0821 st1 [r80] = r86, 2 010810C21580 0822 adds r86 = 272, r12 ;; } { .mmi 00BC8D0ADD00 0830 st4 [r80] = r86, -12 008082B01640 0831 ld4 r89 = [r43] // 000432 XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 30 V1.3-08 XPO$RMS_PARSE 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 000008000000 0832 nop.i 0 ;; } { .mib 000008000000 0840 nop.m 0 0000B5901680 0841 sxt4 r90 = r89 004000000000 0842 nop.b 0 ;; } { .mmi 008045A01680 0850 ld2 r90 = [r90] ;; 01C405A00180 0851 cmp4.eq pr6, pr0 = r0, r90 000008000000 0852 nop.i 0 } { .mfb 000008000000 0860 nop.m 0 000008000000 0861 nop.f 0 008600036006 0862 (pr6) br.cond.dpnt.few L$85 } { .mmi 008042A016C0 0870 ld2 r91 = [r42] ;; // 000433 01CC45B00000 0871 cmp4.eq pr0, pr8 = 0, r91 000008000000 0872 nop.i 0 } { .mfb 000008000000 0880 nop.m 0 000008000000 0881 nop.f 0 008600032008 0882 (pr8) br.cond.dpnt.few L$85 } { .mii 01200000A640 0890 mov r25 = 5 // 000440 0000B5901EC0 0891 sxt4 r123 = r89 010800C71640 0892 adds r89 = 56, r12 } { .mii 012500001E80 08A0 addl r122 = 20480, r0 0000B0001F80 08A1 sxt4 r126 = r0 0000B0001F40 08A2 sxt4 r125 = r0 ;; } { .mib 000008000000 08B0 nop.m 0 0000B5901F00 08B1 sxt4 r124 = r89 00A000001000 08B2 br.call.sptk.many br0 = XST$COPY } { .mib 010807900040 08C0 mov r1 = r121 00A0308001C0 08C1 tbit.z pr7, pr6 = $XPO$STATUS, 0 // pr7, pr6 = r8, 0 008600008006 08C2 (pr6) br.cond.dpnt.few L$86 } { .mii 01080A8B1740 08D0 adds r93 = 216, r40 // 000442 01080A8B9780 08D1 adds r94 = 220, r40 000008000000 08D2 nop.i 0 } { .mlx 000008000000 08E0 nop.m 0 000000000000 08E1 movl r92 = 2138274 ;; 01941048AE } XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 31 V1.3-08 XPO$RMS_PARSE 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 { .mmb 008C85DB8000 08F0 st4 [r93] = r92 008C85E10000 08F1 st4 [r94] = $XPO$STATUS // [r94] = r8 0080000CE000 08F2 br.sptk.few L$63 ;; } 0900 L$86: // 000446 { .mii 010800C517C0 0900 adds r95 = 40, r12 010800C59800 0901 adds r96 = 44, r12 010800C51840 0902 adds r97 = 40, r12 } { .mii 01200000C640 0910 mov r25 = 6 0000B0001FC0 0911 sxt4 r127 = r0 0000B0001F80 0912 sxt4 r126 = r0 ;; } { .mii 008C85F92000 0920 st4 [r95] = r73 0119F80FFF00 0921 adds r124 = -1, r0 0000B0001F40 0922 sxt4 r125 = r0 } { .mib 0120000C1E80 0930 mov r122 = 96 0000B6101EC0 0931 sxt4 r123 = r97 004000000000 0932 nop.b 0 } { .mfb 008C86000000 0940 st4 [r96] = r0 000008000000 0941 nop.f 0 00A000001000 0942 br.call.sptk.many br0 = XPO$ALLOC_MEM } { .mii 010800C59880 0950 adds r98 = 44, r12 00A0308001C0 0951 tbit.z pr7, pr6 = $XPO$STATUS, 0 // pr7, pr6 = r8, 0 010807900040 0952 mov r1 = r121 ;; } { .mii 008086201880 0960 ld4 r98 = [r98] 01C000001206 0961 (pr6) cmp.eq.unc pr8, pr0 = r0, r0 ;; 0108062018C8 0962 (pr8) mov RELATED_BLOCK = r98 // r99 = r98 } { .mfb 000008000000 0970 nop.m 0 000008000000 0971 nop.f 0 008600006008 0972 (pr8) br.cond.dpnt.few L$88 } { .mmi 01080A8B1900 0980 adds r100 = 216, r40 ;; // 000448 008C86410000 0981 st4 [r100] = $XPO$STATUS // [r100] = r8 000008000000 0982 nop.i 0 } { .mfb 000008000000 0990 nop.m 0 000008000000 0991 nop.f 0 0080000BA000 0992 br.sptk.few L$63 ;; } 09A0 L$88: // 000446 XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 32 V1.3-08 XPO$RMS_PARSE 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 { .mii 010800C79A40 09A0 adds r105 = 60, r12 // 000453 0000B6301940 09A1 sxt4 r101 = RELATED_BLOCK // r101 = r99 010800001F00 09A2 mov r124 = r0 } { .mmi 010805021400 09B0 adds r80 = 16, r80 // 000450 0120000C1EC0 09B1 mov r123 = 96 // 000453 010800C71AC0 09B2 adds r107 = 56, r12 ;; // 000455 } { .mmb 010806501E80 09C0 mov r122 = r101 // 000453 00BC8D0C7C00 09C1 st4 [r80] = RELATED_BLOCK, -16 // [r80] = r99, -16 // 000450 00A000001000 09C2 br.call.sptk.many br0 = OTS$FILL // 000453 } { .mii 00AC065A4040 09D0 st1 [r101] = r82, 1 010807900040 09D1 mov r1 = r121 ;; 000008000000 09D2 nop.i 0 } { .mmi 00AC065A80C0 09E0 st1 [r101] = r84, 3 008086901A40 09E1 ld4 r105 = [r105] 000008000000 09E2 nop.i 0 ;; } { .mmi 00BC8E5D3FC0 09F0 st4 [r101] = r105, -1 008046B01AC0 09F1 ld2 r107 = [r107] // 000455 000008000000 09F2 nop.i 0 ;; } { .mfi 008C065D6000 0A00 st1 [r101] = r107 // 000454 000008000000 0A01 nop.f 0 000008000000 0A02 nop.i 0 } 0A10 L$85: // 000462 { .mib 012000002640 0A10 mov r25 = 1 0000B2E01E80 0A11 sxt4 r122 = r46 00A000001000 0A12 br.call.sptk.many br0 = SYS$PARSE } { .mii 010805017400 0A20 adds r80 = 11, r80 // 000470 010800C41B80 0A21 adds r110 = 32, r12 010800C45C00 0A22 adds r112 = 34, r12 } { .mmi 01201001DBC0 0A30 mov r111 = 270 010800C49C40 0A31 adds r113 = 36, r12 010800C41C80 0A32 adds r114 = 32, r12 ;; } { .mii 00A005003B40 0A40 ld1 r109 = [r80], 1 01200000A640 0A41 mov r25 = 5 0000B0001F80 0A42 sxt4 r126 = r0 ;; } { .mii XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 33 V1.3-08 XPO$RMS_PARSE 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 012400001E80 0A50 addl r122 = 16384, r0 0000B0001F40 0A51 sxt4 r125 = r0 0000B2A01F00 0A52 sxt4 r124 = r42 } { .mmi 008C46EDA000 0A60 st2 [r110] = r109 008C470DE000 0A61 st2 [r112] = r111 0000B7201EC0 0A62 sxt4 r123 = r114 } { .mib 00B08D0E9BC0 0A70 ld4 r111 = [r80], -12 010807900040 0A71 mov r1 = r121 // 000462 004000000000 0A72 nop.b 0 ;; } { .mfb 008C871DE000 0A80 st4 [r113] = r111 // 000470 000008000000 0A81 nop.f 0 00A000001000 0A82 br.call.sptk.many br0 = XST$COPY } { .mib 010807900040 0A90 mov r1 = r121 00A0308001C0 0A91 tbit.z pr7, pr6 = $XPO$STATUS, 0 // pr7, pr6 = r8, 0 008600008006 0A92 (pr6) br.cond.dpnt.few L$92 } { .mii 01080A8B1D00 0AA0 adds r116 = 216, r40 // 000472 01080A8B9D40 0AA1 adds r117 = 220, r40 000008000000 0AA2 nop.i 0 } { .mlx 000008000000 0AB0 nop.m 0 800000000000 0AB1 movl r115 = 2138282 ;; 0194104AB9 } { .mmb 008C874E6000 0AC0 st4 [r116] = r115 008C87510000 0AC1 st4 [r117] = $XPO$STATUS // [r117] = r8 008000094000 0AC2 br.sptk.few L$63 ;; } 0AD0 L$92: // 000470 { .mmi 010802E10B80 0AD0 adds r46 = 8, r46 ;; // 000478 00B08AEF0C40 0AD1 ld4 r49 = [r46], -8 000008000000 0AD2 nop.i 0 ;; } { .mib 000008000000 0AE0 nop.m 0 00A043100240 0AE1 tbit.z pr9, pr8 = r49, 0 00860000A008 0AE2 (pr8) br.cond.dpnt.few L$94 } { .mii 010802E18B80 0AF0 adds r46 = 12, r46 // 000481 0000B3101EC0 0AF1 sxt4 r123 = r49 0000B2001E80 0AF2 sxt4 r122 = IOB ;; // r122 = r32 } { .mmi 00B08AEE9F00 0B00 ld4 r124 = [r46], -12 ;; XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 34 V1.3-08 XPO$RMS_PARSE 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 000008000000 0B01 nop.m 0 0000B7C01F00 0B02 sxt4 r124 = r124 } { .mfb 000008000000 0B10 nop.m 0 000008000000 0B11 nop.f 0 00A000001000 0B12 br.call.sptk.many br0 = XPO$RMS_ERROR } { .mfb 000008000000 0B20 nop.m 0 000008000000 0B21 nop.f 0 008000088000 0B22 br.sptk.few L$63 ;; // 000484 } 0B30 L$94: // 000478 { .mii 0080C2E00C80 0B30 ld8 r50 = [r46] // 000491 010800C20E00 0B31 adds r56 = 16, r12 // 000505 000008000000 0B32 nop.i 0 } { .mlx 010800C30D40 0B40 adds r53 = 24, r12 // 000504 800400000000 0B41 movl r51 = 72057594037927936 // 000491 0180000019 } { .mii 010800C28E40 0B50 adds r57 = 20, r12 // 000505 010800C38DC0 0B51 adds r55 = 28, r12 // 000504 000008000000 0B52 nop.i 0 } { .mlx 010800CA0E80 0B60 adds r58 = 80, r12 // 000507 000000000004 0B61 movl r52 = 17694836 ;; // 000505 0180071D1A } { .mii 010073364C80 0B70 or r50 = r50, r51 // 000491 01200000A640 0B71 mov r25 = 5 // 000507 0000B0001F80 0B72 sxt4 r126 = r0 } { .mii 0119F80FDF00 0B80 adds r124 = -2, r0 0000B0001F40 0B81 sxt4 r125 = r0 0000B3A01EC0 0B82 sxt4 r123 = r58 ;; } { .mmi 008CC2E64000 0B90 st8 [r46] = r50 // 000491 008C83868000 0B91 st4 [r56] = r52 // 000505 010808C30D00 0B92 adds r52 = 152, r12 ;; } { .mib 008C8355E000 0BA0 st4 [r53] = r47 // 000504 0000B2A01E80 0BA1 sxt4 r122 = r42 // 000507 004000000000 0BA2 nop.b 0 } { .mmb 008C83968000 0BB0 st4 [r57] = r52 // 000505 008C83700000 0BB1 st4 [r55] = r0 // 000504 XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 35 V1.3-08 XPO$RMS_PARSE 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 00A000001000 0BB2 br.call.sptk.many br0 = XPO$PARSE_SPEC // 000507 } { .mii 010800CA8B40 0BC0 adds r45 = 84, r12 // 000509 010807900040 0BC1 mov r1 = r121 // 000507 000008000000 0BC2 nop.i 0 ;; } { .mmi 008042D00B40 0BD0 ld2 r45 = [r45] ;; // 000509 01C432D00000 0BD1 cmp4.eq pr0, pr6 = r0, r45 000008000000 0BD2 nop.i 0 } { .mfb 000008000000 0BE0 nop.m 0 000008000000 0BE1 nop.f 0 00860006C006 0BE2 (pr6) br.cond.dpnt.few L$96 } { .mii 010800CA0F00 0BF0 adds r60 = 80, r12 // 000514 010800CB8EC0 0BF1 adds r59 = 92, r12 // 000512 010800CB8F40 0BF2 adds r61 = 92, r12 ;; } { .mmi 010002978A40 0C00 add r41 = r60, r41 // 000514 008043B00EC0 0C01 ld2 r59 = [r59] // 000512 000008000000 0C02 nop.i 0 ;; } { .mii 0119FBBFEEC0 0C10 adds r59 = -1, r59 0000B2901E80 0C11 sxt4 r122 = r41 // 000514 010800C30A40 0C12 adds r41 = 24, r12 ;; } { .mib 008C43D76000 0C20 st2 [r61] = r59 // 000512 0000B2901EC0 0C21 sxt4 r123 = r41 // 000514 00A000001000 0C22 br.call.sptk.many br0 = XPO$XLATE_LOGICAL } { .mii 010800C20F80 0C30 adds r62 = 16, r12 // 000516 01200000A640 0C31 mov r25 = 5 0000B0001F80 0C32 sxt4 r126 = r0 ;; } { .mii 000008000000 0C40 nop.m 0 0000B0001F40 0C41 sxt4 r125 = r0 0000B3E01F00 0C42 sxt4 r124 = r62 } { .mii 000008000000 0C50 nop.m 0 0000B0001EC0 0C51 sxt4 r123 = r0 0000B2901E80 0C52 sxt4 r122 = r41 } { .mfb 000008000000 0C60 nop.m 0 000008000000 0C61 nop.f 0 00A000001000 0C62 br.call.sptk.many br0 = SYS$GETDEV } XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 36 V1.3-08 XPO$RMS_PARSE 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 { .mii 010808C30FC0 0C70 adds r63 = 152, r12 // 000518 01CC38802180 0C71 cmp4.eq pr6, pr7 = 1, r8 // 000516 010807900040 0C72 mov r1 = r121 ;; } { .mmi 008083F00FC0 0C80 ld4 r63 = [r63] ;; // 000518 010163F08FC0 0C81 and r63 = 4, r63 000008000000 0C82 nop.i 0 ;; } { .mmi 01C403F00240 0C90 cmp4.eq pr9, pr0 = r0, r63 ;; 01C2300001C9 0C91 (pr9) cmp.eq.or.andcm pr7, pr6 = r0, r0 000008000000 0C92 nop.i 0 } { .bbb 008600002006 0CA0 (pr6) br.cond.dpnt.few L$98 004000000000 0CA1 nop.b 0 00860004C007 0CA2 (pr7) br.cond.dpnt.few L$99 } 0CB0 L$98: { .mii 010802860A00 0CB0 adds r40 = 48, r40 // 000521 012004001040 0CB1 addl r65 = 1048576, r0 010800C91100 0CB2 adds r68 = 72, r12 // 000526 } { .mii 01200000A640 0CC0 mov r25 = 5 0000B0001F80 0CC1 sxt4 r126 = r0 0000B0001F40 0CC2 sxt4 r125 = r0 ;; } { .mii 008082801000 0CD0 ld4 r64 = [r40] // 000521 012400001E80 0CD1 addl r122 = 16384, r0 // 000526 0000B4401F00 0CD2 sxt4 r124 = r68 ;; } { .mii 000008000000 0CE0 nop.m 0 0000B2901EC0 0CE1 sxt4 r123 = r41 010074181000 0CE2 or r64 = r64, r65 ;; // 000521 } { .mfb 00BC8A881400 0CF0 st4 [r40] = r64, -48 000008000000 0CF1 nop.f 0 00A000001000 0CF2 br.call.sptk.many br0 = XST$COPY // 000526 } { .mib 010807900040 0D00 mov r1 = r121 00A0308001C0 0D01 tbit.z pr7, pr6 = $XPO$STATUS, 0 // pr7, pr6 = r8, 0 008600008006 0D02 (pr6) br.cond.dpnt.few L$100 ;; } { .mii 01080A8B1180 0D10 adds r70 = 216, r40 // 000528 01080A8B91C0 0D11 adds r71 = 220, r40 000008000000 0D12 nop.i 0 } { .mlx XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 37 V1.3-08 XPO$RMS_PARSE 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 000008000000 0D20 nop.m 0 800000000000 0D21 movl r69 = 2138282 ;; 0194104AA2 } { .mmb 008C8468A000 0D30 st4 [r70] = r69 008C84710000 0D31 st4 [r71] = $XPO$STATUS // [r71] = r8 008000046000 0D32 br.sptk.few L$63 ;; } 0D40 L$100: // 000526 { .mii 010800C91280 0D40 adds r74 = 72, r12 // 000529 010800C99200 0D41 adds r72 = 76, r12 000008000000 0D42 nop.i 0 ;; } { .mmi 008044A01280 0D50 ld2 r74 = [r74] 008084801200 0D51 ld4 r72 = [r72] 000008000000 0D52 nop.i 0 ;; } { .mii 000008000000 0D60 nop.m 0 0000B4A01280 0D61 sxt4 r74 = r74 0000B4801200 0D62 sxt4 r72 = r72 ;; } { .mmi 010004A91200 0D70 add r72 = r72, r74 ;; 0119FC8FF200 0D71 adds r72 = -1, r72 000008000000 0D72 nop.i 0 ;; } { .mmi 008004801200 0D80 ld1 r72 = [r72] ;; 01CC04874240 0D81 cmp4.eq pr9, pr0 = 58, r72 000008000000 0D82 nop.i 0 } { .mfb 000008000000 0D90 nop.m 0 000008000000 0D91 nop.f 0 008600012009 0D92 (pr9) br.cond.dpnt.few L$105 } { .mii 0120001012C0 0DA0 add r75 = @ltoff($STR$STRING), r1 // 000531 01200000A640 0DA1 mov r25 = 5 0000B0001F80 0DA2 sxt4 r126 = r0 } { .mii 012400001E80 0DB0 addl r122 = 16384, r0 0000B0001F40 0DB1 sxt4 r125 = r0 0000B4401F00 0DB2 sxt4 r124 = r68 ;; } { .mmi 0080C4B012C0 0DC0 ld8 r75 = $STR$STRING ;; // r75 = [r75] 000008000000 0DC1 nop.m 0 0000B4B01EC0 0DC2 sxt4 r123 = r75 } { .mfb 000008000000 0DD0 nop.m 0 XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 38 V1.3-08 XPO$RMS_PARSE 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 000008000000 0DD1 nop.f 0 00A000001000 0DD2 br.call.sptk.many br0 = XST$APPEND } { .mib 010807900040 0DE0 mov r1 = r121 00A0308001C0 0DE1 tbit.z pr7, pr6 = $XPO$STATUS, 0 // pr7, pr6 = r8, 0 008600008006 0DE2 (pr6) br.cond.dpnt.few L$105 } { .mii 01080A8B1340 0DF0 adds r77 = 216, r40 // 000533 01080A8B9380 0DF1 adds r78 = 220, r40 000008000000 0DF2 nop.i 0 } { .mlx 000008000000 0E00 nop.m 0 000000000000 0E01 movl r76 = 2138282 ;; 0194104AA6 } { .mmb 008C84D98000 0E10 st4 [r77] = r76 008C84E10000 0E11 st4 [r78] = $XPO$STATUS // [r78] = r8 00800002A000 0E12 br.sptk.few L$63 ;; } 0E20 L$105: // 000535 { .mii 010800C913C0 0E20 adds r79 = 72, r12 01200000A640 0E21 mov r25 = 5 0000B0001F80 0E22 sxt4 r126 = r0 } { .mii 012400001E80 0E30 addl r122 = 16384, r0 0000B0001F40 0E31 sxt4 r125 = r0 0000B2A01F00 0E32 sxt4 r124 = r42 ;; } { .mib 000008000000 0E40 nop.m 0 0000B4F01EC0 0E41 sxt4 r123 = r79 00A000001000 0E42 br.call.sptk.many br0 = XST$COPY } { .mib 010807900040 0E50 mov r1 = r121 00A0308001C0 0E51 tbit.z pr7, pr6 = $XPO$STATUS, 0 // pr7, pr6 = r8, 0 008600008006 0E52 (pr6) br.cond.dpnt.few L$107 } { .mii 01080A8B14C0 0E60 adds r83 = 216, r40 // 000537 01080A8B9540 0E61 adds r85 = 220, r40 000008000000 0E62 nop.i 0 } { .mlx 000008000000 0E70 nop.m 0 800000000000 0E71 movl r81 = 2138282 ;; 0194104AA8 } { .mmb 008C853A2000 0E80 st4 [r83] = r81 008C85510000 0E81 st4 [r85] = $XPO$STATUS // [r85] = r8 XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 39 V1.3-08 XPO$RMS_PARSE 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 00800001C000 0E82 br.sptk.few L$63 ;; } 0E90 L$107: // 000535 { .mii 0080C2E015C0 0E90 ld8 r87 = [r46] // 000541 010800C90AC0 0E91 adds r43 = 72, r12 // 000542 000008000000 0E92 nop.i 0 } { .mlx 010800C996C0 0EA0 adds r91 = 76, r12 // 000543 01FBFFFFFFFF 0EA1 movl r86 = -72057594037927937 ;; // 000541 01BFFFDFEB } { .mmi 0100656AF580 0EB0 and r86 = r87, r86 ;; 00ACC2EACD00 0EB1 st8 [r46] = r86, 52 000008000000 0EB2 nop.i 0 } { .mmi 008042B00AC0 0EC0 ld2 r43 = [r43] ;; // 000542 00BC0AE57E00 0EC1 st1 [r46] = r43, -8 000008000000 0EC2 nop.i 0 } { .mmi 008085B016C0 0ED0 ld4 r91 = [r91] ;; // 000543 00BC8AEB7500 0ED1 st4 [r46] = r91, -44 010805019400 0ED2 adds r80 = 12, r80 ;; // 000547 } { .mmi 00BC8D001FC0 0EE0 st4 [r80] = r0, -1 ;; 00BC0D001FC0 0EE1 st1 [r80] = r0, -1 // 000546 000008000000 0EE2 nop.i 0 ;; } { .mfi 008C05000000 0EF0 st1 [r80] = r0 // 000545 000008000000 0EF1 nop.f 0 000008000000 0EF2 nop.i 0 } 0F00 L$99: // 000550 { .mii 010800C31780 0F00 adds r94 = 24, r12 01200000A640 0F01 mov r25 = 5 0000B0001F80 0F02 sxt4 r126 = r0 } { .mii 0119F80FDEC0 0F10 adds r123 = -2, r0 0000B0001F40 0F11 sxt4 r125 = r0 0000B0001F00 0F12 sxt4 r124 = r0 ;; } { .mib 000008000000 0F20 nop.m 0 0000B5E01E80 0F21 sxt4 r122 = r94 00A000001000 0F22 br.call.sptk.many br0 = XPO$FREE_MEM } { .mfi 010807900040 0F30 mov r1 = r121 000008000000 0F31 nop.f 0 XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 40 V1.3-08 XPO$RMS_PARSE 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 000008000000 0F32 nop.i 0 } 0F40 L$96: // 000498 { .mlx 01080A8B17C0 0F40 adds r95 = 216, r40 // 000554 800000000000 0F41 movl r73 = 2129921 ;; 0190004064 } { .mfi 008C85F92000 0F50 st4 [r95] = r73 000008000000 0F51 nop.f 0 000008000000 0F52 nop.i 0 } 0F60 L$63: // 000345 { .mmi 0080C2E00B80 0F60 ld8 r46 = [r46] ;; // 000562 000008000000 0F61 nop.m 0 00A402EE0B80 0F62 extr.u r46 = r46, 56, 1 ;; } { .mib 000008000000 0F70 nop.m 0 00A032E001C0 0F71 tbit.z pr7, pr6 = r46, 0 00860000A007 0F72 (pr7) br.cond.dpnt.few L$110 } { .mii 008042A01800 0F80 ld2 r96 = [r42] // 000565 0000B3000C00 0F81 sxt4 r48 = NAME_BLOCK ;; // r48 = r48 010803014C00 0F82 adds r48 = 10, r48 ;; } { .mmi 00AC030C0040 0F90 st1 [r48] = r96, 1 00A042A09800 0F91 ld2 r96 = [r42], 4 // 000566 000008000000 0F92 nop.i 0 ;; } { .mmi 00AC030C0040 0FA0 st1 [r48] = r96, 1 008082A00A80 0FA1 ld4 r42 = [r42] // 000567 000008000000 0FA2 nop.i 0 ;; } { .mfi 008C83054000 0FB0 st4 [r48] = r42 000008000000 0FB1 nop.f 0 000008000000 0FB2 nop.i 0 } 0FC0 L$110: // 000562 { .mmi 01080A8B0A00 0FC0 adds r40 = 216, r40 ;; // 000574 008082800200 0FC1 ld4 r8 = [r40] 000008000000 0FC2 nop.i 0 ;; } { .mib 000008000000 0FD0 nop.m 0 0000B0800200 0FD1 sxt4 r8 = r8 004000000000 0FD2 nop.b 0 } { .mii 000008000000 0FE0 nop.m 0 XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 41 V1.3-08 XPO$RMS_PARSE 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 0001540F0000 0FE1 mov.i rspfs = r120 010820C00300 0FE2 adds r12 = 512, r12 ;; } { .mib 000008000000 0FF0 nop.m 0 000E001EE000 0FF1 mov br0 = r119 000108001100 0FF2 br.ret.sptk.many br0 ;; } .endp XPO$RMS_PARSE Routine Size: 3328 bytes, Routine Base: _XPO$CODE + 0300 .proc XPO$XLATE_LOGICAL .align 32 .global XPO$XLATE_LOGICAL XPO$XLATE_LOGICAL: // 000580 { .mii 002C005168C0 1000 alloc r35 = rspfs, 2, 3, 6, 0 000188000880 1001 mov r34 = br0 0119F8C60300 1002 adds r12 = -80, r12 } { .mii 010800100900 1010 mov r36 = r1 0000B2000800 1011 sxt4 r32 = LOGICAL_NAME // r32 = r32 // 000631 012000002240 1012 mov r9 = 1 ;; } { .mii 010800CB0200 1020 adds r8 = 88, r12 010800CB4280 1021 adds r10 = 90, r12 000008000000 1022 nop.i 0 } { .mmi 00A0420040C0 1030 ld2 r3 = [r32], 2 ;; 008C40806000 1031 st2 [r8] = r3 010800CB6200 1032 adds r8 = 91, r12 ;; } { .mmi 00A0020040C0 1040 ld1 r3 = [r32], 2 008C00812000 1041 st1 [r8] = r9 010800C20240 1042 adds r9 = 16, r12 ;; // 000632 } { .mlx 008C00A06000 1050 st1 [r10] = r3 // 000631 000000000004 1051 movl r8 = 17694783 // 000632 0180070FC4 } { .mii 0080820000C0 1060 ld4 r3 = [r32] // 000631 010800C28280 1061 adds r10 = 20, r12 // 000632 010800C30800 1062 adds r32 = 24, r12 ;; } { .mii 008C80910000 1070 st4 [r9] = r8 010800CB8240 1071 adds r9 = 92, r12 // 000631 000008000000 1072 nop.i 0 ;; } { .mmi XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 42 V1.3-08 XPO$XLATE_LOGICAL 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 008C80A40000 1080 st4 [r10] = r32 // 000632 008C80906000 1081 st4 [r9] = r3 // 000631 000008000000 1082 nop.i 0 ;; } 1090 L$26: // 000636 { .mib 010800CB0280 1090 adds r10 = 88, r12 // 000643 0000B0300200 1091 sxt4 r8 = r3 // 000642 004000000000 1092 nop.b 0 ;; } { .mmi 008040A00280 10A0 ld2 r10 = [r10] // 000643 008000800200 10A1 ld1 r8 = [r8] // 000642 000008000000 10A2 nop.i 0 ;; } { .mii 01AC38A08000 10B0 cmp4.ltu pr0, pr7 = 4, r10 // 000643 01CC48836200 10B1 cmp4.eq pr8, pr9 = 27, r8 ;; // 000642 01C240000247 10B2 (pr7) cmp.eq.or.andcm pr9, pr8 = r0, r0 } { .bbb 008600002008 10C0 (pr8) br.cond.dpnt.few L$27 004000000000 10C1 nop.b 0 008600008009 10C2 (pr9) br.cond.dpnt.few L$28 } 10D0 L$27: { .mii 010800CB0240 10D0 adds r9 = 88, r12 // 000646 010800CB8200 10D1 adds r8 = 92, r12 // 000647 0119F8AF8280 10D2 adds r10 = -4, r10 // 000642 } { .mmi 0108003080C0 10E0 adds r3 = 4, r3 ;; 008C40914000 10E1 st2 [r9] = r10 // 000646 000008000000 10E2 nop.i 0 } { .mfi 008C80806000 10F0 st4 [r8] = r3 // 000647 000008000000 10F1 nop.f 0 000008000000 10F2 nop.i 0 } 1100 L$28: // 000642 { .mmi 010800CB82C0 1100 adds r11 = 92, r12 ;; // 000652 008080B002C0 1101 ld4 r11 = [r11] 000008000000 1102 nop.i 0 ;; } { .mib 000008000000 1110 nop.m 0 0000B0B002C0 1111 sxt4 r11 = r11 004000000000 1112 nop.b 0 ;; } { .mmi 008000B002C0 1120 ld1 r11 = [r11] ;; 01CC00BBE1C0 1121 cmp4.eq pr7, pr0 = 95, r11 000008000000 1122 nop.i 0 } XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 43 V1.3-08 XPO$XLATE_LOGICAL 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 { .mfb 000008000000 1130 nop.m 0 000008000000 1131 nop.f 0 008600016007 1132 (pr7) br.cond.dpnt.few L$32 } { .mii 010800CB0240 1140 adds r9 = 88, r12 // 000660 01200000C640 1141 mov r25 = 6 0000B0000A80 1142 sxt4 r42 = r0 ;; } { .mii 000008000000 1150 nop.m 0 0000B0900980 1151 sxt4 r38 = r9 0000B0900940 1152 sxt4 r37 = r9 } { .mii 010800C20240 1160 adds r9 = 16, r12 0000B0000A40 1161 sxt4 r41 = r0 0000B0000A00 1162 sxt4 r40 = r0 ;; } { .mib 000008000000 1170 nop.m 0 0000B09009C0 1171 sxt4 r39 = r9 00A000001000 1172 br.call.sptk.many br0 = SYS$TRNLOG } { .mii 0120100A8240 1180 mov r9 = 340 // 000664 0120600520C0 1181 mov r3 = 1577 010802400040 1182 mov r1 = r36 ;; // 000660 } { .mii 01C400910200 1190 cmp4.eq pr8, pr0 = STATUS, r9 // pr8, pr0 = r8, r9 // 000664 01C438310180 1191 cmp4.eq pr6, pr7 = STATUS, r3 ;; // pr6, pr7 = r8, r3 01C200000188 1192 (pr8) cmp.eq.or.andcm pr6, pr0 = r0, r0 } { .mfb 000008000000 11A0 nop.m 0 000008000000 11A1 nop.f 0 008600008006 11A2 (pr6) br.cond.dpnt.few L$32 } { .mib 000008000000 11B0 nop.m 0 00A0508002C0 11B1 tbit.z pr11, pr10 = STATUS, 0 // pr11, pr10 = r8, 0 // 000670 00860001000B 11B2 (pr11) br.cond.dpnt.few L$35 } { .mii 010800CB8800 11C0 adds r32 = 92, r12 // 000674 010800C300C0 11C1 adds r3 = 24, r12 000008000000 11C2 nop.i 0 ;; } { .mfb 008C82006000 11D0 st4 [r32] = r3 000008000000 11D1 nop.f 0 0091FFFD8000 11D2 br.sptk.few L$26 ;; // 000636 } 11E0 L$32: // 000679 { .mii XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 44 V1.3-08 XPO$XLATE_LOGICAL 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 012000100440 11E0 add r17 = @ltoff(@fptr(STR$FAILURE)), r1 010800CB02C0 11E1 adds r11 = 88, r12 01200000A640 11E2 mov r25 = 5 } { .mii 012400000940 11F0 addl r37 = 16384, r0 0000B0000A00 11F1 sxt4 r40 = r0 0000B21009C0 11F2 sxt4 r39 = RESULT_NAME ;; // r39 = r33 } { .mii 0080C1100440 1200 ld8 r17 = STR$FAILURE // r17 = [r17] 0000B0B00980 1201 sxt4 r38 = r11 ;; 0000B1100A40 1202 sxt4 r41 = r17 } { .mfb 000008000000 1210 nop.m 0 000008000000 1211 nop.f 0 00A000001000 1212 br.call.sptk.many br0 = XST$COPY ;; } { .mfi 010802400040 1220 mov r1 = r36 000008000000 1221 nop.f 0 000008000000 1222 nop.i 0 } 1230 L$35: // 000670 { .mii 000008000000 1230 nop.m 0 0000B0800200 1231 sxt4 r8 = r8 // 000679 000154046000 1232 mov.i rspfs = r35 ;; } { .mib 010800CA0300 1240 adds r12 = 80, r12 000E00144000 1241 mov br0 = r34 000108001100 1242 br.ret.sptk.many br0 ;; } .endp XPO$XLATE_LOGICAL Routine Size: 592 bytes, Routine Base: _XPO$CODE + 1000 .proc XPO$RMS_CLEANUP .align 32 .global XPO$RMS_CLEANUP XPO$RMS_CLEANUP: // 000684 { .mii 002C03677500 1250 alloc r84 = rspfs, 1, 53, 5, 0 0001880014C0 1251 mov r83 = br0 0119F8C80300 1252 adds r12 = -64, r12 } { .mii 010800101540 1260 mov r85 = r1 0000B2000800 1261 sxt4 r32 = IOB ;; // r32 = r32 // 000723 01080A0D00C0 1262 adds r3 = 232, r32 } { .mmi 01080A0D8200 1270 adds r8 = 236, r32 ;; // 000724 008080800200 1271 ld4 r8 = [r8] XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 45 V1.3-08 XPO$RMS_CLEANUP 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 000008000000 1272 nop.i 0 ;; } { .mii 0080803000C0 1280 ld4 r3 = [r3] // 000723 0000B0800A40 1281 sxt4 r41 = r8 ;; // 000724 0000B0300A00 1282 sxt4 r40 = r3 ;; // 000723 } { .mbb 01C432800000 1290 cmp4.eq pr0, pr6 = r0, r40 // 000763 008600002006 1291 (pr6) br.cond.dpnt.few L$2 008000096000 1292 br.sptk.few L$20 ;; } 12A0 L$2: // 000767 { .mii 012000002640 12A0 mov r25 = 1 0000B2801580 12A1 sxt4 r86 = r40 01202001CB00 12A2 mov r44 = 526 // 000769 } { .mfb 000008000000 12B0 nop.m 0 000008000000 12B1 nop.f 0 00A000001000 12B2 br.call.sptk.many br0 = SYS$CLOSE ;; // 000767 } { .mii 010802868A00 12C0 adds r40 = 52, r40 // 000769 010800C90AC0 12C1 adds r43 = 72, r12 010800C94B40 12C2 adds r45 = 74, r12 } { .mmi 010800C98B80 12D0 adds r46 = 76, r12 010800C90BC0 12D1 adds r47 = 72, r12 01200000A640 12D2 mov r25 = 5 ;; } { .mii 00B00A8F0A80 12E0 ld1 r42 = [r40], -8 0000B0001680 12E1 sxt4 r90 = r0 0000B0001640 12E2 sxt4 r89 = r0 ;; } { .mii 0119F80FD5C0 12F0 adds r87 = -2, r0 0000B0001600 12F1 sxt4 r88 = r0 0000B2F01580 12F2 sxt4 r86 = r47 } { .mmi 008C42B54000 1300 st2 [r43] = r42 008C42D58000 1301 st2 [r45] = r44 010805500040 1302 mov r1 = r85 // 000767 } { .mmi 00B08A8A8B40 1310 ld4 r45 = [r40], -44 ;; // 000769 008C82E5A000 1311 st4 [r46] = r45 000008000000 1312 nop.i 0 } { .mfb 000008000000 1320 nop.m 0 000008000000 1321 nop.f 0 00A000001000 1322 br.call.sptk.many br0 = XPO$FREE_MEM XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 46 V1.3-08 XPO$RMS_CLEANUP 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 } { .mib 010805500040 1330 mov r1 = r85 00A0308001C0 1331 tbit.z pr7, pr6 = STATUS, 0 // pr7, pr6 = r8, 0 008600004006 1332 (pr6) br.cond.dpnt.few L$5 } { .mib 000008000000 1340 nop.m 0 0000B0800200 1341 sxt4 r8 = r8 008000082000 1342 br.sptk.few L$4 ;; } 1350 L$5: // 000770 { .mii 01080286AA00 1350 adds r40 = 53, r40 010800C80C40 1351 adds r49 = 64, r12 010800C84C80 1352 adds r50 = 66, r12 } { .mmi 010800C88CC0 1360 adds r51 = 68, r12 010800C80D00 1361 adds r52 = 64, r12 01200000A640 1362 mov r25 = 5 ;; } { .mii 00B00A8F6C00 1370 ld1 r48 = [r40], -5 0000B0001680 1371 sxt4 r90 = r0 0000B0001640 1372 sxt4 r89 = r0 ;; } { .mii 0119F80FD5C0 1380 adds r87 = -2, r0 0000B0001600 1381 sxt4 r88 = r0 0000B3401580 1382 sxt4 r86 = r52 } { .mmb 008C43160000 1390 st2 [r49] = r48 008C43258000 1391 st2 [r50] = r44 004000000000 1392 nop.b 0 } { .mmi 00B08A8A0C80 13A0 ld4 r50 = [r40], -48 ;; 008C83364000 13A1 st4 [r51] = r50 000008000000 13A2 nop.i 0 } { .mfb 000008000000 13B0 nop.m 0 000008000000 13B1 nop.f 0 00A000001000 13B2 br.call.sptk.many br0 = XPO$FREE_MEM } { .mib 010805500040 13C0 mov r1 = r85 00A0308001C0 13C1 tbit.z pr7, pr6 = STATUS, 0 // pr7, pr6 = r8, 0 008600004006 13C2 (pr6) br.cond.dpnt.few L$7 } { .mib 000008000000 13D0 nop.m 0 0000B0800200 13D1 sxt4 r8 = r8 008000070000 13D2 br.sptk.few L$4 ;; } XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 47 V1.3-08 XPO$RMS_CLEANUP 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 13E0 L$7: { .mmi 010802850A00 13E0 adds r40 = 40, r40 ;; // 000776 00B08A8B0D40 13E1 ld4 r53 = [r40], -40 000008000000 13E2 nop.i 0 ;; } { .mfb 01C403500240 13F0 cmp4.eq pr9, pr0 = r0, r53 000008000000 13F1 nop.f 0 008600036009 13F2 (pr9) br.cond.dpnt.few L$10 } { .mii 000008000000 1400 nop.m 0 0000B3500D40 1401 sxt4 r53 = r53 ;; // 000780 010803520D40 1402 adds r53 = 16, r53 ;; // 000781 } { .mmi 00B08B5E0D80 1410 ld4 r54 = [r53], -16 ;; 000008000000 1411 nop.m 0 0000B3600D80 1412 sxt4 r54 = r54 ;; } { .mfb 01C4036002C0 1420 cmp4.eq pr11, pr0 = r0, r54 // 000784 000008000000 1421 nop.f 0 00860002200B 1422 (pr11) br.cond.dpnt.few L$12 } { .mii 010803606D80 1430 adds r54 = 3, r54 // 000788 010800C70E00 1431 adds r56 = 56, r12 010800C74E40 1432 adds r57 = 58, r12 } { .mmi 010800C78E80 1440 adds r58 = 60, r12 010800C70EC0 1441 adds r59 = 56, r12 01200000A640 1442 mov r25 = 5 ;; } { .mii 00A003602DC0 1450 ld1 r55 = [r54], 1 0000B0001680 1451 sxt4 r90 = r0 0000B0001640 1452 sxt4 r89 = r0 ;; } { .mii 0119F80FD5C0 1460 adds r87 = -2, r0 0000B0001600 1461 sxt4 r88 = r0 0000B3B01580 1462 sxt4 r86 = r59 } { .mmb 008C4386E000 1470 st2 [r56] = r55 008C43958000 1471 st2 [r57] = r44 004000000000 1472 nop.b 0 } { .mmi 00B08B6F8B00 1480 ld4 r44 = [r54], -4 ;; 008C83A58000 1481 st4 [r58] = r44 000008000000 1482 nop.i 0 } { .mfb XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 48 V1.3-08 XPO$RMS_CLEANUP 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 000008000000 1490 nop.m 0 000008000000 1491 nop.f 0 00A000001000 1492 br.call.sptk.many br0 = XPO$FREE_MEM } { .mib 010805500040 14A0 mov r1 = r85 00A0308001C0 14A1 tbit.z pr7, pr6 = STATUS, 0 // pr7, pr6 = r8, 0 008600004006 14A2 (pr6) br.cond.dpnt.few L$13 } { .mib 000008000000 14B0 nop.m 0 0000B0800200 14B1 sxt4 r8 = r8 008000054000 14B2 br.sptk.few L$4 ;; } 14C0 L$13: // 000789 { .mii 010800C60F40 14C0 adds r61 = 48, r12 010800C68F80 14C1 adds r62 = 52, r12 000008000000 14C2 nop.i 0 } { .mlx 010800C60FC0 14D0 adds r63 = 48, r12 000000000008 14D1 movl r60 = 33685600 ;; 018001181E } { .mii 008C83D78000 14E0 st4 [r61] = r60 01200000A640 14E1 mov r25 = 5 0000B0001680 14E2 sxt4 r90 = r0 } { .mii 0119F80FD5C0 14F0 adds r87 = -2, r0 0000B0001640 14F1 sxt4 r89 = r0 0000B0001600 14F2 sxt4 r88 = r0 } { .mib 008C83E6C000 1500 st4 [r62] = r54 0000B3F01580 1501 sxt4 r86 = r63 00A000001000 1502 br.call.sptk.many br0 = XPO$FREE_MEM } { .mib 010805500040 1510 mov r1 = r85 00A0308001C0 1511 tbit.z pr7, pr6 = STATUS, 0 // pr7, pr6 = r8, 0 008600004006 1512 (pr6) br.cond.dpnt.few L$12 } { .mib 000008000000 1520 nop.m 0 0000B0800200 1521 sxt4 r8 = r8 008000046000 1522 br.sptk.few L$4 ;; } 1530 L$12: // 000792 { .mii 010800C51040 1530 adds r65 = 40, r12 010800C59080 1531 adds r66 = 44, r12 000008000000 1532 nop.i 0 } { .mlx XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 49 V1.3-08 XPO$RMS_CLEANUP 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 010800C510C0 1540 adds r67 = 40, r12 000000000008 1541 movl r64 = 33685600 ;; 0180011820 } { .mii 008C84180000 1550 st4 [r65] = r64 01200000A640 1551 mov r25 = 5 0000B0001680 1552 sxt4 r90 = r0 } { .mii 0119F80FD5C0 1560 adds r87 = -2, r0 0000B0001640 1561 sxt4 r89 = r0 0000B0001600 1562 sxt4 r88 = r0 } { .mib 008C8426A000 1570 st4 [r66] = r53 0000B4301580 1571 sxt4 r86 = r67 00A000001000 1572 br.call.sptk.many br0 = XPO$FREE_MEM } { .mib 010805500040 1580 mov r1 = r85 00A0308001C0 1581 tbit.z pr7, pr6 = STATUS, 0 // pr7, pr6 = r8, 0 008600004006 1582 (pr6) br.cond.dpnt.few L$10 } { .mib 000008000000 1590 nop.m 0 0000B0800200 1591 sxt4 r8 = r8 008000038000 1592 br.sptk.few L$4 ;; } 15A0 L$10: // 000799 { .mii 010800C41140 15A0 adds r69 = 32, r12 010800C49180 15A1 adds r70 = 36, r12 000008000000 15A2 nop.i 0 } { .mlx 010800C411C0 15B0 adds r71 = 32, r12 000000000008 15B1 movl r68 = 33685584 ;; 0180011422 } { .mii 008C84588000 15C0 st4 [r69] = r68 01200000A640 15C1 mov r25 = 5 0000B0001680 15C2 sxt4 r90 = r0 } { .mii 0119F80FD5C0 15D0 adds r87 = -2, r0 0000B0001640 15D1 sxt4 r89 = r0 0000B0001600 15D2 sxt4 r88 = r0 } { .mib 008C84650000 15E0 st4 [r70] = r40 0000B4701580 15E1 sxt4 r86 = r71 00A000001000 15E2 br.call.sptk.many br0 = XPO$FREE_MEM } { .mib 010805500040 15F0 mov r1 = r85 XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 50 V1.3-08 XPO$RMS_CLEANUP 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 00A0308001C0 15F1 tbit.z pr7, pr6 = STATUS, 0 // pr7, pr6 = r8, 0 008600004006 15F2 (pr6) br.cond.dpnt.few L$17 } { .mib 000008000000 1600 nop.m 0 0000B0800200 1601 sxt4 r8 = r8 00800002A000 1602 br.sptk.few L$4 ;; } 1610 L$17: { .mii 01080A0D1200 1610 adds r72 = 232, r32 // 000801 01C402900240 1611 cmp4.eq pr9, pr0 = r0, r41 // 000807 000008000000 1612 nop.i 0 ;; } { .mfb 008C84800000 1620 st4 [r72] = r0 // 000801 000008000000 1621 nop.f 0 008600024009 1622 (pr9) br.cond.dpnt.few L$20 // 000807 } { .mii 010802940A40 1630 adds r41 = 32, r41 // 000810 010800C31280 1631 adds r74 = 24, r12 010800C35300 1632 adds r76 = 26, r12 } { .mmi 0120200052C0 1640 mov r75 = 514 010800C39340 1641 adds r77 = 28, r12 010800C31380 1642 adds r78 = 24, r12 ;; } { .mii 00A042909240 1650 ld2 r73 = [r41], 4 01200000A640 1651 mov r25 = 5 0000B0001680 1652 sxt4 r90 = r0 ;; } { .mii 0119F80FD5C0 1660 adds r87 = -2, r0 0000B0001640 1661 sxt4 r89 = r0 0000B0001600 1662 sxt4 r88 = r0 } { .mmi 008C44A92000 1670 st2 [r74] = r73 008C44C96000 1671 st2 [r76] = r75 0000B4E01580 1672 sxt4 r86 = r78 } { .mmi 00B08A9B92C0 1680 ld4 r75 = [r41], -36 ;; 008C84D96000 1681 st4 [r77] = r75 000008000000 1682 nop.i 0 } { .mfb 000008000000 1690 nop.m 0 000008000000 1691 nop.f 0 00A000001000 1692 br.call.sptk.many br0 = XPO$FREE_MEM } { .mib 010805500040 16A0 mov r1 = r85 00A0308001C0 16A1 tbit.z pr7, pr6 = STATUS, 0 // pr7, pr6 = r8, 0 XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 51 V1.3-08 XPO$RMS_CLEANUP 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 008600004006 16A2 (pr6) br.cond.dpnt.few L$21 } { .mib 000008000000 16B0 nop.m 0 0000B0800200 16B1 sxt4 r8 = r8 008000014000 16B2 br.sptk.few L$4 ;; } 16C0 L$21: // 000812 { .mii 010800C21400 16C0 adds r80 = 16, r12 010800C29440 16C1 adds r81 = 20, r12 000008000000 16C2 nop.i 0 } { .mlx 010800C21480 16D0 adds r82 = 16, r12 800000000008 16D1 movl r79 = 33685572 ;; 0180011127 } { .mii 008C8509E000 16E0 st4 [r80] = r79 01200000A640 16E1 mov r25 = 5 0000B0001680 16E2 sxt4 r90 = r0 } { .mii 0119F80FD5C0 16F0 adds r87 = -2, r0 0000B0001640 16F1 sxt4 r89 = r0 0000B0001600 16F2 sxt4 r88 = r0 } { .mib 008C85152000 1700 st4 [r81] = r41 0000B5201580 1701 sxt4 r86 = r82 00A000001000 1702 br.call.sptk.many br0 = XPO$FREE_MEM } { .mib 010805500040 1710 mov r1 = r85 00A0308001C0 1711 tbit.z pr7, pr6 = STATUS, 0 // pr7, pr6 = r8, 0 008600004006 1712 (pr6) br.cond.dpnt.few L$23 } { .mib 000008000000 1720 nop.m 0 0000B0800200 1721 sxt4 r8 = r8 008000006000 1722 br.sptk.few L$4 ;; } 1730 L$23: { .mmi 01080A0D8800 1730 adds r32 = 236, r32 ;; // 000814 008C82000000 1731 st4 [r32] = r0 000008000000 1732 nop.i 0 } 1740 L$20: // 000807 { .mlx 000008000000 1740 nop.m 0 000000000000 1741 movl r8 = 2129921 // 000821 0190004044 } 1750 L$4: { .mii XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 52 V1.3-08 XPO$RMS_CLEANUP 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 000008000000 1750 nop.m 0 0001540A8000 1751 mov.i rspfs = r84 010800C80300 1752 adds r12 = 64, r12 ;; } { .mib 000008000000 1760 nop.m 0 000E001A6000 1761 mov br0 = r83 000108001100 1762 br.ret.sptk.many br0 ;; } .endp XPO$RMS_CLEANUP Routine Size: 1312 bytes, Routine Base: _XPO$CODE + 1250 .psect _XPO$DATA, CON, LCL, NOSHR, NOEXE, WRT, NOVEC .lcomm RMS_TO_XPORT, 640, 16 .lcomm $STR$STRING2, 8, 8 .lcomm $STR$STRING, 8, 8 .lcomm $STR$STRING, 8, 8 .lcomm P.AAA, 22, 16 .lcomm fill$$1, 2, 2 .lcomm P.AAB, 9, 16 .lcomm fill$$2, 3, 4 .lcomm P.AAC, 1, 1 .psect _XPO$DATA, CON, LCL, NOSHR, NOEXE, WRT, NOVEC RMS_TO_XPORT: 0000009F 0000 data4 0x9F // data4 159 0001C002 0004 data4 0x1C002 // data4 114690 0020A132 0008 data4 0x20A132 // data4 2138418 00208001 000C data4 0x208001 // data4 2129921 0001825A 0010 data4 0x1825A // data4 98906 0020A10A 0014 data4 0x20A10A // data4 2138378 00000000 0018 data4 0x0 // data4 0 0001840C 001C data4 0x1840C // data4 99340 0020A092 0020 data4 0x20A092 // data4 2138258 00000000 0024 data4 0x0 // data4 0 0001C0CC 0028 data4 0x1C0CC // data4 114892 0020A11A 002C data4 0x20A11A // data4 2138394 00208001 0030 data4 0x208001 // data4 2129921 0001C0D4 0034 data4 0x1C0D4 // data4 114900 0020A11A 0038 data4 0x20A11A // data4 2138394 00208001 003C data4 0x208001 // data4 2129921 0001C0EC 0040 data4 0x1C0EC // data4 114924 0020A0CA 0044 data4 0x20A0CA // data4 2138314 00208001 0048 data4 0x208001 // data4 2129921 0001C00A 004C data4 0x1C00A // data4 114698 0020A15A 0050 data4 0x20A15A // data4 2138458 00208001 0054 data4 0x208001 // data4 2129921 000184C4 0058 data4 0x184C4 // data4 99524 0020A032 005C data4 0x20A032 // data4 2138162 00000000 0060 data4 0x0 // data4 0 000184CC 0064 data4 0x184CC // data4 99532 0020A0B2 0068 data4 0x20A0B2 // data4 2138290 0020A042 006C data4 0x20A042 // data4 2138178 000184D4 0070 data4 0x184D4 // data4 99540 0020A17A 0074 data4 0x20A17A // data4 2138490 00000000 0078 data4 0x0 // data4 0 000184DC 007C data4 0x184DC // data4 99548 XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 53 V1.3-08 XPO$RMS_CLEANUP 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 0020A03A 0080 data4 0x20A03A // data4 2138170 00000000 0084 data4 0x0 // data4 0 0001C04A 0088 data4 0x1C04A // data4 114762 0020A16A 008C data4 0x20A16A // data4 2138474 00000000 0090 data4 0x0 // data4 0 00018272 0094 data4 0x18272 // data4 98930 0020A1D2 0098 data4 0x20A1D2 // data4 2138578 00000000 009C data4 0x0 // data4 0 0001C01A 00A0 data4 0x1C01A // data4 114714 0020A042 00A4 data4 0x20A042 // data4 2138178 00208001 00A8 data4 0x208001 // data4 2129921 00018724 00AC data4 0x18724 // data4 100132 0020A1AA 00B0 data4 0x20A1AA // data4 2138538 00000000 00B4 data4 0x0 // data4 0 000182C2 00B8 data4 0x182C2 // data4 99010 0020A1C2 00BC data4 0x20A1C2 // data4 2138562 00000000 00C0 data4 0x0 // data4 0 0001C022 00C4 data4 0x1C022 // data4 114722 0020A19A 00C8 data4 0x20A19A // data4 2138522 00000000 00CC data4 0x0 // data4 0 00018282 00D0 data4 0x18282 // data4 98946 0020A0EA 00D4 data4 0x20A0EA // data4 2138346 00000000 00D8 data4 0x0 // data4 0 0001828A 00DC data4 0x1828A // data4 98954 0020A0F2 00E0 data4 0x20A0F2 // data4 2138354 00000000 00E4 data4 0x0 // data4 0 00018524 00E8 data4 0x18524 // data4 99620 0020A0B2 00EC data4 0x20A0B2 // data4 2138290 00000000 00F0 data4 0x0 // data4 0 00018292 00F4 data4 0x18292 // data4 98962 0020A172 00F8 data4 0x20A172 // data4 2138482 00000000 00FC data4 0x0 // data4 0 0001852C 0100 data4 0x1852C // data4 99628 0020A0B2 0104 data4 0x20A0B2 // data4 2138290 0020A06A 0108 data4 0x20A06A // data4 2138218 00018544 010C data4 0x18544 // data4 99652 0020A19A 0110 data4 0x20A19A // data4 2138522 00000000 0114 data4 0x0 // data4 0 0001C124 0118 data4 0x1C124 // data4 114980 0020A0E2 011C data4 0x20A0E2 // data4 2138338 00208001 0120 data4 0x208001 // data4 2129921 00018574 0124 data4 0x18574 // data4 99700 0020A09A 0128 data4 0x20A09A // data4 2138266 00000000 012C data4 0x0 // data4 0 0001857C 0130 data4 0x1857C // data4 99708 0020A092 0134 data4 0x20A092 // data4 2138258 00000000 0138 data4 0x0 // data4 0 000185BC 013C data4 0x185BC // data4 99772 0020A0B2 0140 data4 0x20A0B2 // data4 2138290 00000000 0144 data4 0x0 // data4 0 0001C032 0148 data4 0x1C032 // data4 114738 0020A162 014C data4 0x20A162 // data4 2138466 00000000 0150 data4 0x0 // data4 0 0001874C 0154 data4 0x1874C // data4 100172 0020A12A 0158 data4 0x20A12A // data4 2138410 00208001 015C data4 0x208001 // data4 2129921 000185F4 0160 data4 0x185F4 // data4 99828 XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 54 V1.3-08 XPO$RMS_CLEANUP 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 0020A0B2 0164 data4 0x20A0B2 // data4 2138290 0020A07A 0168 data4 0x20A07A // data4 2138234 0001860C 016C data4 0x1860C // data4 99852 0020A082 0170 data4 0x20A082 // data4 2138242 00000000 0174 data4 0x0 // data4 0 0001861C 0178 data4 0x1861C // data4 99868 0020A0E2 017C data4 0x20A0E2 // data4 2138338 00000000 0180 data4 0x0 // data4 0 0001829A 0184 data4 0x1829A // data4 98970 0020A132 0188 data4 0x20A132 // data4 2138418 0020A1FA 018C data4 0x20A1FA // data4 2138618 00018634 0190 data4 0x18634 // data4 99892 0020A022 0194 data4 0x20A022 // data4 2138146 00000000 0198 data4 0x0 // data4 0 00018654 019C data4 0x18654 // data4 99924 0020A09A 01A0 data4 0x20A09A // data4 2138266 0020A002 01A4 data4 0x20A002 // data4 2138114 0001C0F4 01A8 data4 0x1C0F4 // data4 114932 0020A11A 01AC data4 0x20A11A // data4 2138394 00208001 01B0 data4 0x208001 // data4 2129921 00018664 01B4 data4 0x18664 // data4 99940 0020A052 01B8 data4 0x20A052 // data4 2138194 00000000 01BC data4 0x0 // data4 0 00018674 01C0 data4 0x18674 // data4 99956 0020A0A2 01C4 data4 0x20A0A2 // data4 2138274 00000000 01C8 data4 0x0 // data4 0 000182AA 01CC data4 0x182AA // data4 98986 0020A212 01D0 data4 0x20A212 // data4 2138642 00000000 01D4 data4 0x0 // data4 0 0001C0FC 01D8 data4 0x1C0FC // data4 114940 0020A192 01DC data4 0x20A192 // data4 2138514 00208001 01E0 data4 0x208001 // data4 2129921 0001C104 01E4 data4 0x1C104 // data4 114948 0020A11A 01E8 data4 0x20A11A // data4 2138394 00208001 01EC data4 0x208001 // data4 2129921 000186A4 01F0 data4 0x186A4 // data4 100004 0020A092 01F4 data4 0x20A092 // data4 2138258 0020A062 01F8 data4 0x20A062 // data4 2138210 000181A8 01FC data4 0x181A8 // data4 98728 0020A092 0200 data4 0x20A092 // data4 2138258 0020A062 0204 data4 0x20A062 // data4 2138210 000182D2 0208 data4 0x182D2 // data4 99026 0020A1AA 020C data4 0x20A1AA // data4 2138538 00208001 0210 data4 0x208001 // data4 2129921 000186D4 0214 data4 0x186D4 // data4 100052 0020A0B2 0218 data4 0x20A0B2 // data4 2138290 00000000 021C data4 0x0 // data4 0 0001C10C 0220 data4 0x1C10C // data4 114956 0020A11A 0224 data4 0x20A11A // data4 2138394 00208001 0228 data4 0x208001 // data4 2129921 000186E4 022C data4 0x186E4 // data4 100068 0020A0B2 0230 data4 0x20A0B2 // data4 2138290 0020A0BA 0234 data4 0x20A0BA // data4 2138298 000186FC 0238 data4 0x186FC // data4 100092 0020A0B2 023C data4 0x20A0B2 // data4 2138290 0020A0C2 0240 data4 0x20A0C2 // data4 2138306 0001C12C 0244 data4 0x1C12C // data4 114988 XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 55 V1.3-08 XPO$RMS_CLEANUP 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 0020A11A 0248 data4 0x20A11A // data4 2138394 00208001 024C data4 0x208001 // data4 2129921 0001C114 0250 data4 0x1C114 // data4 114964 0020A11A 0254 data4 0x20A11A // data4 2138394 00208001 0258 data4 0x208001 // data4 2129921 00018744 025C data4 0x18744 // data4 100164 0020A09A 0260 data4 0x20A09A // data4 2138266 0020A232 0264 data4 0x20A232 // data4 2138674 000182BA 0268 data4 0x182BA // data4 99002 0020A1B2 026C data4 0x20A1B2 // data4 2138546 00000000 0270 data4 0x0 // data4 0 0001C11C 0274 data4 0x1C11C // data4 114972 0020A11A 0278 data4 0x20A11A // data4 2138394 00208001 027C data4 0x208001 // data4 2129921 $STR$STRING2: 0016 0280 data2 0x16 // data2 22 0E 0282 data1 0xE // data1 14 01 0283 data1 0x1 // data1 1 00000000 0284 data4 P.AAA $STR$STRING: 0009 0288 data2 0x9 // data2 9 0E 028A data1 0xE // data1 14 01 028B data1 0x1 // data1 1 00000000 028C data4 P.AAB $STR$STRING: 0001 0290 data2 0x1 // data2 1 0E 0292 data1 0xE // data1 14 01 0293 data1 0x1 // data1 1 00000000 0294 data4 P.AAC .psect _XPO$PLIT, CON, LCL, NOSHR, NOEXE, NOWRT, NOVEC P.AAA: 4F50585B 0000 string "[XPORT Temporary File]" 54205452 0004 6F706D65 0008 79726172 000C 6C694620 0010 5D65 0014 P.AAB: 524F5058 0018 string "XPORT.TMP" 4D542E54 001C 50 0020 P.AAC: 3A 0024 data1 0x3A // data1 58 .section .data .type XST$COPY, @function .global XST$COPY .section .data .type XST$EQL, @function .global XST$EQL .section .data .type XST$COPY, @function .global XST$COPY .section .data .type XST$COPY, @function .global XST$COPY XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 56 V1.3-08 XPO$RMS_CLEANUP 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 .section .data .type XST$COPY, @function .global XST$COPY .section .data .type XPO$ALLOC_MEM, @function .global XPO$ALLOC_MEM .section .data .type OTS$FILL, @function .global OTS$FILL .section .data .type XST$COPY, @function .global XST$COPY .section .data .type XPO$ALLOC_MEM, @function .global XPO$ALLOC_MEM .section .data .type SYS$PARSE, @function .global SYS$PARSE .section .data .type XST$COPY, @function .global XST$COPY .section .data .type XPO$PARSE_SPEC, @function .global XPO$PARSE_SPEC .section .data .type SYS$GETDEV, @function .global SYS$GETDEV .section .data .type XST$COPY, @function .global XST$COPY .section .data .type XST$APPEND, @function .global XST$APPEND .section .data .type XST$COPY, @function .global XST$COPY .section .data .type XPO$FREE_MEM, @function .global XPO$FREE_MEM .section .data .type SYS$TRNLOG, @function .global SYS$TRNLOG .section .data .type STR$FAILURE, @function .global STR$FAILURE .section .data .type XST$COPY, @function .global XST$COPY .section .data .type SYS$CLOSE, @function .global SYS$CLOSE .section .data .type XPO$FREE_MEM, @function .global XPO$FREE_MEM .section .data .type XPO$FREE_MEM, @function .global XPO$FREE_MEM XVMS Machine Code Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 57 V1.3-08 XPO$RMS_CLEANUP 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 .section .data .type XPO$FREE_MEM, @function .global XPO$FREE_MEM .section .data .type XPO$FREE_MEM, @function .global XPO$FREE_MEM .section .data .type XPO$FREE_MEM, @function .global XPO$FREE_MEM .section .data .type XPO$FREE_MEM, @function .global XPO$FREE_MEM .section .data .type XPO$FREE_MEM, @function .global XPO$FREE_MEM .section .data .type XPO$FREE_MEM, @function .global XPO$FREE_MEM ; Library Statistics ; ; -------- Symbols -------- Pages ; File Total Loaded Percent Mapped ; ; DISK$NORMS_OWN:[LASTOVICA.XPORT.VMSGEN]XPORT.L32;14 ; 590 236 40 270 ; DISK$NORMS_OWN:[LASTOVICA.XPORT.VMSGEN]XPOSYS.L32;14 ; 91 14 15 27 ; SYS$COMMON:[SYSLIB]STARLET.L32;1 28352 97 0 2178 Source Listing 4-FEB-2004 11:01:42 BLISS-32I T1.1-053 Page 58 Source Listing 19-MAR-2002 10:25:48 [LASTOVICA.XPORT.VMSGEN]XVMS.B32;2 COMMAND LINE: BLISSXVMS/VARIANT=3/LIST/DEBUG