XPORT File Backup Test 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 1 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 0 1 MODULE XTESTQ ( IDENT = 'V1.0-7', %TITLE 'XPORT File Backup Test' 0 2 MAIN = TEST_BACKUP ! Entry point of main program 0 3 %BLISS32( ,ADDRESSING_MODE( EXTERNAL=LONG_RELATIVE ) ) 0 4 ) = 0 5 BEGIN 1 6 1 7 ! 1 8 ! COPYRIGHT (c) 1981 BY 1 9 ! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. 1 10 ! 1 11 ! THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED 1 12 ! ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE 1 13 ! INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER 1 14 ! COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY 1 15 ! OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY 1 16 ! TRANSFERRED. 1 17 ! 1 18 ! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE 1 19 ! AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT 1 20 ! CORPORATION. 1 21 ! 1 22 ! DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS 1 23 ! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. 1 24 ! 1 25 1 26 !++ 1 27 ! 1 28 ! FACILITY: BLISS Library 1 29 ! 1 30 ! ABSTRACT: 1 31 ! 1 32 ! This module tests the XPORT file backup facility. 1 33 ! 1 34 ! ENVIRONMENT: User Mode 1 35 ! 1 36 ! AUTHOR: Ward Clark, CREATION DATE: 26 February 1979 1 37 ! 1 38 !-- XTESTQ XPORT File Backup Test 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 2 V1.0-7 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 1 40 ! 1 41 ! TABLE OF CONTENTS: 1 42 ! 1 43 1 44 FORWARD ROUTINE 1 45 TEST_BACKUP; ! Principal testing routine 1 46 1 47 ! 1 48 ! INCLUDE FILES: 1 49 ! 1 50 LIBRARY 'BLI:XPORT' ; ! XPORT control block and macro definitions 1 52 1 53 ! 1 54 ! MACROS: 1 55 ! 1 56 1 57 MACRO 1 58 SKIP( literal_string ) = ! Prefix a literal string with a line-feed M 1 59 %STRING( %CHAR(lf), literal_string ) %; 1 60 1 61 ! 1 62 ! EQUATED SYMBOLS: 1 63 ! 1 64 1 65 LITERAL 1 66 lf = %O'12'; ! ASCII line feed character 1 67 1 68 ! 1 69 ! OWN STORAGE: 1 70 ! 1 71 1 72 OWN 1 73 tty_input : $XPO_IOB(), ! IOB for input from terminal 1 74 1 75 tty_output : $XPO_IOB(), ! IOB for output to terminal 1 76 1 77 input_file : $XPO_IOB(), ! IOB for input file 1 78 1 79 output_file : $XPO_IOB(); ! IOB for output file 1 80 1 81 ! 1 82 ! EXTERNAL REFERENCES: 1 83 ! XTESTQ XPORT File Backup Test 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 3 V1.0-7 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 1 85 GLOBAL ROUTINE TEST_BACKUP = 1 86 1 87 !++ 1 88 ! 1 89 ! FUNCTIONAL DESCRIPTION: 1 90 ! 1 91 ! This module tests the XPORT file backup facility. 1 92 ! 1 93 ! FORMAL PARAMETERS: 1 94 ! 1 95 ! None 1 96 ! 1 97 ! IMPLICIT INPUTS: 1 98 ! 1 99 ! None 1 100 ! 1 101 ! IMPLICIT OUTPUTS: 1 102 ! 1 103 ! None 1 104 ! 1 105 ! COMPLETION CODES: 1 106 ! 1 107 ! XPO$_NORMAL - successful completion 1 108 ! 1 109 ! SIDE EFFECTS: 1 110 ! 1 111 ! None 1 112 ! 1 113 !-- 1 114 1 115 BEGIN 2 116 2 117 LOCAL 2 118 status; ! XPORT I/O completion code 2 119 2 120 %IF %VARIANT NEQ 0 %THEN U 2 121 ! U 2 122 ! Initialize the IOB's. U 2 123 ! U 2 124 U 2 125 $XPO_IOB_INIT( IOB = tty_input ); U 2 126 $XPO_IOB_INIT( IOB = tty_output ); U 2 127 $XPO_IOB_INIT( IOB = input_file ); U 2 128 $XPO_IOB_INIT( IOB = output_file ); U 2 129 %FI 2 130 2 131 ! 2 132 ! Open the user's terminal for output and send the user a greeting message. 2 133 ! 2 134 2 135 $XPO_OPEN( IOB = tty_output, ! Open the user's terminal: P 2 136 FILE_SPEC = $XPO_OUTPUT, ! standard output file P 2 137 OPTIONS = OUTPUT ); ! open for output 2 138 2 139 $XPO_PUT( IOB = tty_output, ! Send the user a greeting message. P 2 140 STRING = skip('XPORT File Backup Test') ); 2 141 XTESTQ XPORT File Backup Test 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 4 V1.0-7 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 2 142 ! 2 143 ! Open the user's terminal for input. 2 144 ! 2 145 2 146 $XPO_OPEN( IOB = tty_input, ! Open the user's terminal: P 2 147 FILE_SPEC = $XPO_INPUT, ! standard input file P 2 148 OPTIONS = INPUT ); ! open for input 2 149 2 150 ! 2 151 ! Request the name of the file to be copied and open that file. 2 152 ! 2 153 2 154 WHILE 1 DO ! Keep asking until an input file can be opened. 2 155 BEGIN 3 156 IF NOT $XPO_GET( IOB = tty_input, ! Read a file name from the terminal. P 3 157 PROMPT = skip('Name of file to be copied and backed up? ') ) 4 158 THEN ! If terminal end-of-file (^Z) is reached, 3 159 RETURN XPO$_NORMAL; ! terminate program execution. 3 160 3 161 IF .tty_input[IOB$H_STRING] EQL 0 ! If no input file name was specified, 3 162 THEN ! 3 163 status = $XPO_OPEN( IOB = input_file, ! open the user's terminal as the input file: P 3 164 FILE_SPEC = $XPO_INPUT, ! standard input file P 3 165 OPTIONS = INPUT, ! open for input P 3 166 FAILURE = XPO$IO_FAILURE ) ! non-terminating I/O failure action routine 4 167 ELSE 3 168 status = $XPO_OPEN( IOB = input_file, ! Otherwise, open the specified input file: P 3 169 FILE_SPEC = ! input file-spec descriptor P 3 170 tty_input[IOB$T_STRING], ! P 3 171 OPTIONS = INPUT, ! open for input P 3 172 FAILURE = XPO$IO_FAILURE ); ! non-terminating I/O failure action routine 3 173 3 174 IF .status THEN EXITLOOP; ! If the input file was successfully opened, 3 175 ! exit the file open loop. 3 176 END; 2 177 2 178 ! 2 179 ! Open a temporary output file. 2 180 ! 2 181 2 182 output_file[IOB$V_SEQUENCED] = ! Make the output file sequenced 2 183 .input_file[IOB$V_SEQUENCED]; ! if the input file is sequenced. 2 184 2 185 $XPO_OPEN( IOB = output_file, ! Open a temporary output file: P 2 186 FILE_SPEC = $XPO_TEMPORARY, ! XPORT temporary file name P 2 187 OPTIONS = OUTPUT ); ! open for output 2 188 2 189 ! 2 190 ! Copy the input file to the output file one record at a time. 2 191 ! 2 192 2 193 WHILE $XPO_GET( IOB = input_file ) DO ! Read records until end-of-file is reached. 2 194 2 195 $XPO_PUT( IOB = output_file, ! Write a record into the output file: P 2 196 STRING = input_file[IOB$T_STRING], ! input record descriptor P 2 197 SEQUENCE_NUMBER = ! sequence number P 2 198 .input_file[IOB$G_SEQ_NUMB] ); XTESTQ XPORT File Backup Test 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 5 V1.0-7 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 2 199 2 200 ! 2 201 ! Close the input and output files. 2 202 ! 2 203 2 204 $XPO_CLOSE( IOB = input_file, ! Close the input file P 2 205 OPTIONS = REMEMBER ); ! but remember the file-spec for $XPO_BACKUP. 2 206 2 207 $XPO_CLOSE( IOB = output_file ); ! Close the output file. 2 208 2 209 ! 2 210 ! Backup the original file and rename the new file. 2 211 ! 2 212 2 213 $XPO_BACKUP( OLD_IOB = input_file, ! Backup the input file P 2 214 NEW_IOB = output_file ); ! and rename the output file. 2 215 2 216 ! 2 217 ! Send the user a completion message. 2 218 ! 2 219 2 220 $XPO_PUT( IOB = tty_output, ! Send the user a blank line followed by a message. P 2 221 STRING = skip('XPORT File Backup Test Complete') ); 2 222 2 223 ! 2 224 ! Close the terminal input and output files. 2 225 ! 2 226 2 227 $XPO_CLOSE( IOB = tty_input ); ! Close the terminal input file. 2 228 2 229 $XPO_CLOSE( IOB = tty_output ); ! Close the terminal output file. 2 230 2 231 ! 2 232 ! Terminate XPORT I/O testing. 2 233 ! 2 234 2 235 RETURN XPO$_NORMAL; ! Exit with a normal completion code. 2 236 END; 1 237 END 1 238 ELUDOM XTESTQ Machine Code Listing 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 6 V1.0-7 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 .psect $CODE$, CON, LCL, SHR, EXE, NOWRT, NOVEC .proc TEST_BACKUP .align 32 .global TEST_BACKUP TEST_BACKUP: // 000085 { .mii 002C05DC1EC0 0000 alloc r123 = rspfs, 0, 93, 3, 0 012000100A00 0001 add r40 = @ltoff(TTY_OUTPUT), r1 // 000137 012000100AC0 0002 add r43 = @ltoff($IOB$FILE_SPEC), r1 } { .mmi 0120001002C0 0010 add r11 = @ltoff(@fptr(XPO$FAILURE)), r1 012000800A40 0011 addl r41 = 131072, r0 012000002A80 0012 mov r42 = 1 ;; } { .mii 0080C0B002C0 0020 ld8 r11 = XPO$FAILURE // r11 = [r11] 012000006640 0021 mov r25 = 3 000188001E80 0022 mov r122 = br0 // 000085 } { .mmi 0080C2800A00 0030 ld8 r40 = TTY_OUTPUT // r40 = [r40] // 000137 0080C2B00AC0 0031 ld8 r43 = $IOB$FILE_SPEC // r43 = [r43] 010800101F00 0032 mov r124 = r1 ;; // 000085 } { .mii 01200000EB40 0040 mov r45 = 7 // 000140 0000B0B01FC0 0041 sxt4 r127 = r11 // 000137 0000B0001F80 0042 sxt4 r126 = r0 } { .mmi 012000400C80 0050 addl r50 = 65536, r0 // 000148 01200000D000 0051 mov r64 = 6 // 000157 010802858A00 0052 adds r40 = 44, r40 ;; // 000137 } { .mmi 0080828000C0 0060 ld4 r3 = [r40] ;; 0100729060C0 0061 or r3 = r3, r41 000008000000 0062 nop.i 0 ;; } { .mmi 008C82806000 0070 st4 [r40] = r3 ;; 00BC0A855600 0071 st1 [r40] = r42, -40 000008000000 0072 nop.i 0 ;; } { .mii 00BC8A857F00 0080 st4 [r40] = r43, -4 010802B10B00 0081 adds r44 = 8, r43 // 000140 010802B20CC0 0082 adds r51 = 16, r43 ;; // 000148 } { .mib 000008000000 0090 nop.m 0 0000B2801F40 0091 sxt4 r125 = r40 // 000137 00A000001000 0092 br.call.sptk.many br0 = XPO$OPEN } { .mii XTESTQ Machine Code Listing 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 7 V1.0-7 TEST_BACKUP 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 010807C00040 00A0 mov r1 = r124 010802858A00 00A1 adds r40 = 44, r40 // 000140 012000006640 00A2 mov r25 = 3 ;; } { .mib 012000100C00 00B0 add r48 = @ltoff(@fptr(XPO$FAILURE)), r1 0000B0001F80 00B1 sxt4 r126 = r0 004000000000 00B2 nop.b 0 ;; } { .mmi 00AC0285A600 00C0 st1 [r40] = r45, 24 0080C3000C00 00C1 ld8 r48 = XPO$FAILURE // r48 = [r48] 000008000000 00C2 nop.i 0 ;; } { .mii 00BC8A858F00 00D0 st4 [r40] = r44, -68 0000B3001FC0 00D1 sxt4 r127 = r48 ;; 0000B2801F40 00D2 sxt4 r125 = r40 } { .mib 0119F2870C40 00E0 adds r49 = -200, r40 // 000148 0119F2870D40 00E1 adds r53 = -200, r40 00A000001000 00E2 br.call.sptk.many br0 = XPO$PUT ;; // 000140 } { .mmi 010807C00040 00F0 mov r1 = r124 008083100C40 00F1 ld4 r49 = [r49] // 000148 0119F2870D80 00F2 adds r54 = -200, r40 ;; } { .mii 012000100E00 0100 add r56 = @ltoff(@fptr(XPO$FAILURE)), r1 0119F2820DC0 0101 adds r55 = -240, r40 0119F2818D00 0102 adds r52 = -244, r40 } { .mmi 012000006640 0110 mov r25 = 3 010073262C40 0111 or r49 = r49, r50 0000B0001F80 0112 sxt4 r126 = r0 ;; } { .mii 0080C3800E00 0120 ld8 r56 = XPO$FAILURE // r56 = [r56] 0000B3401F40 0121 sxt4 r125 = r52 0119F2880E40 0122 adds r57 = -192, r40 ;; // 000172 } { .mmi 008C83562000 0130 st4 [r53] = r49 // 000148 008C03654000 0131 st1 [r54] = r42 0000B3801FC0 0132 sxt4 r127 = r56 } { .mfb 008C83766000 0140 st4 [r55] = r51 000008000000 0141 nop.f 0 00A000001000 0142 br.call.sptk.many br0 = XPO$OPEN } { .mmi XTESTQ Machine Code Listing 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 8 V1.0-7 TEST_BACKUP 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 010807C00040 0150 mov r1 = r124 ;; 012000100F80 0151 add r62 = @ltoff(@fptr(XPO$FAILURE)), // 000157 r1 012000100F00 0152 add r60 = @ltoff(@fptr(XPO$IO_FAILURE)), // 000166 r1 } { .mmi 012000100E80 0160 add r58 = @ltoff(@fptr(XPO$IO_FAILURE)), // 000172 r1 ;; 0080C3A00EC0 0161 ld8 r59 = XPO$IO_FAILURE // r59 = [r58] 000008000000 0162 nop.i 0 } { .mmi 0080C3E00FC0 0170 ld8 r63 = XPO$FAILURE // r63 = [r62] // 000157 0080C3C00F40 0171 ld8 r61 = XPO$IO_FAILURE // r61 = [r60] // 000166 000008000000 0172 nop.i 0 ;; } 0180 L$2: // 000157 { .mmi 0119F2861040 0180 adds r65 = -208, r40 ;; 008084101080 0181 ld4 r66 = [r65] 000008000000 0182 nop.i 0 ;; } { .mfb 01C4042001C0 0190 cmp4.eq pr7, pr0 = r0, r66 000008000000 0191 nop.f 0 008600006007 0192 (pr7) br.cond.dpnt.few L$4 } { .mib 012000002640 01A0 mov r25 = 1 0000B4201F40 01A1 sxt4 r125 = r66 00A000001000 01A2 br.call.sptk.many br0 = XST$FREE_TEMP } { .mfi 010807C00040 01B0 mov r1 = r124 000008000000 01B1 nop.f 0 000008000000 01B2 nop.i 0 } 01C0 L$4: { .mii 0119F2871100 01C0 adds r68 = -200, r40 0119F2861140 01C1 adds r69 = -208, r40 0119F2818D00 01C2 adds r52 = -244, r40 ;; } { .mii 008C04480000 01D0 st1 [r68] = r64 010802B310C0 01D1 adds r67 = 24, r43 012000006640 01D2 mov r25 = 3 ;; } { .mii 008C84586000 01E0 st4 [r69] = r67 0000B3F01FC0 01E1 sxt4 r127 = r63 0000B0001F80 01E2 sxt4 r126 = r0 } { .mib 000008000000 01F0 nop.m 0 0000B3401F40 01F1 sxt4 r125 = r52 XTESTQ Machine Code Listing 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 9 V1.0-7 TEST_BACKUP 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 00A000001000 01F2 br.call.sptk.many br0 = XPO$GET } { .mib 010807C00040 0200 mov r1 = r124 00A0308001C0 0201 tbit.z pr7, pr6 = r8, 0 00860009A007 0202 (pr7) br.cond.dpnt.few L$6 // 000156 } { .mmi 0119F2881180 0210 adds r70 = -192, r40 ;; // 000161 008044601180 0211 ld2 r70 = [r70] 000008000000 0212 nop.i 0 ;; } { .mfb 01C444600000 0220 cmp4.eq pr0, pr8 = r0, r70 000008000000 0221 nop.f 0 008600012008 0222 (pr8) br.cond.dpnt.few L$7 } { .mii 0108128411C0 0230 adds r71 = 288, r40 // 000166 010812841280 0231 adds r74 = 288, r40 0108128412C0 0232 adds r75 = 288, r40 } { .mmi 01080A8F1300 0240 adds r76 = 248, r40 01080A8E9240 0241 adds r73 = 244, r40 010802B41200 0242 adds r72 = 32, r43 ;; } { .mii 0080847011C0 0250 ld4 r71 = [r71] 012000006640 0251 mov r25 = 3 0000B3D01FC0 0252 sxt4 r127 = r61 ;; } { .mii 000008000000 0260 nop.m 0 0000B0001F80 0261 sxt4 r126 = r0 01007328F1C0 0262 or r71 = r71, r50 ;; } { .mib 000008000000 0270 nop.m 0 0000B4901F40 0271 sxt4 r125 = r73 004000000000 0272 nop.b 0 } { .mmi 008C84A8E000 0280 st4 [r74] = r71 008C04B54000 0281 st1 [r75] = r42 000008000000 0282 nop.i 0 } { .mfb 008C84C90000 0290 st4 [r76] = r72 000008000000 0291 nop.f 0 00A000001000 0292 br.call.sptk.many br0 = XPO$OPEN } { .mfb 000008000000 02A0 nop.m 0 000008000000 02A1 nop.f 0 00800000E000 02A2 br.sptk.few L$15 ;; } XTESTQ Machine Code Listing 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 10 V1.0-7 TEST_BACKUP 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 02B0 L$7: // 000172 { .mii 010812841340 02B0 adds r77 = 288, r40 0108128413C0 02B1 adds r79 = 288, r40 010812841400 02B2 adds r80 = 288, r40 } { .mmi 01080A8F1440 02C0 adds r81 = 248, r40 01080A8E9380 02C1 adds r78 = 244, r40 012000006640 02C2 mov r25 = 3 ;; } { .mii 008084D01340 02D0 ld4 r77 = [r77] 0000B3B01FC0 02D1 sxt4 r127 = r59 0000B0001F80 02D2 sxt4 r126 = r0 ;; } { .mii 000008000000 02E0 nop.m 0 0000B4E01F40 02E1 sxt4 r125 = r78 01007329B340 02E2 or r77 = r77, r50 ;; } { .mmi 008C84F9A000 02F0 st4 [r79] = r77 008C05054000 02F1 st1 [r80] = r42 000008000000 02F2 nop.i 0 } { .mfb 008C85172000 0300 st4 [r81] = r57 000008000000 0301 nop.f 0 00A000001000 0302 br.call.sptk.many br0 = XPO$OPEN } 0310 L$15: { .mib 010807C00040 0310 mov r1 = r124 00A0308001C0 0311 tbit.z pr7, pr6 = STATUS, 0 // pr7, pr6 = r8, 0 // 000174 0095FFFCE007 0312 (pr7) br.cond.dptk.few L$2 ;; } { .mii 010812849480 0320 adds r82 = 292, r40 // 000183 0119F2B71500 0321 adds r84 = -200, r43 // 000187 0119F2B794C0 0322 adds r83 = -196, r43 // 000182 } { .mmi 0120001016C0 0330 add r91 = @ltoff(@fptr(XPO$FAILURE)), // 000187 r1 0119F2B715C0 0331 adds r87 = -200, r43 0119F2B71600 0332 adds r88 = -200, r43 ;; } { .mii 008085201480 0340 ld4 r82 = [r82] // 000183 0119F2B79640 0341 adds r89 = -196, r43 // 000182 0119F2B21680 0342 adds r90 = -240, r43 // 000187 } { .mmi 008085401500 0350 ld4 r84 = [r84] 0080853014C0 0351 ld4 r83 = [r83] // 000182 0119F2B19580 0352 adds r86 = -244, r43 ;; // 000187 XTESTQ Machine Code Listing 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 11 V1.0-7 TEST_BACKUP 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 } { .mii 0080C5B016C0 0360 ld8 r91 = XPO$FAILURE // r91 = [r91] 00A405211480 0361 extr.u r82 = r82, 4, 1 // 000183 010812841740 0362 adds r93 = 288, r40 // 000193 } { .mmi 010802B51540 0370 adds r85 = 40, r43 // 000187 0100729A8A40 0371 or r41 = r84, r41 012000006640 0372 mov r25 = 3 ;; } { .mii 01080A8E9700 0380 adds r92 = 244, r40 // 000193 0000B0001F80 0381 sxt4 r126 = r0 // 000187 009D853A5480 0382 dep r82 = r82, r83, 4, 1 // 000182 } { .mmi 008C85752000 0390 st4 [r87] = r41 // 000187 008C05854000 0391 st1 [r88] = r42 0000B5B01FC0 0392 sxt4 r127 = r91 ;; } { .mib 008C859A4000 03A0 st4 [r89] = r82 // 000182 0000B5601F40 03A1 sxt4 r125 = r86 // 000187 004000000000 03A2 nop.b 0 } { .mfb 008C85AAA000 03B0 st4 [r90] = r85 000008000000 03B1 nop.f 0 00A000001000 03B2 br.call.sptk.many br0 = XPO$OPEN } { .mmi 010807C00040 03C0 mov r1 = r124 008C05D80000 03C1 st1 [r93] = r64 // 000193 012000006640 03C2 mov r25 = 3 ;; } { .mii 012000101740 03D0 add r93 = @ltoff(@fptr(XPO$FAILURE)), r1 0000B0001F80 03D1 sxt4 r126 = r0 0000B5C01F40 03D2 sxt4 r125 = r92 ;; } { .mmi 0080C5D01780 03E0 ld8 r94 = XPO$FAILURE ;; // r94 = [r93] 000008000000 03E1 nop.m 0 0000B5E01FC0 03E2 sxt4 r127 = r94 } { .mfb 000008000000 03F0 nop.m 0 000008000000 03F1 nop.f 0 00A000001000 03F2 br.call.sptk.many br0 = XPO$GET } { .mib 010807C00040 0400 mov r1 = r124 00A0308001C0 0401 tbit.z pr7, pr6 = r8, 0 00860001A007 0402 (pr7) br.cond.dpnt.few L$13 ;; } XTESTQ Machine Code Listing 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 12 V1.0-7 TEST_BACKUP 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 { .mii 012000101800 0410 add r96 = @ltoff(@fptr(XPO$FAILURE)), // 000198 r1 0108128517C0 0411 adds r95 = 296, r40 000008000000 0412 nop.i 0 ;; } { .mfi 0080C6001840 0420 ld8 r97 = XPO$FAILURE // r97 = [r96] 000008000000 0421 nop.f 0 000008000000 0422 nop.i 0 ;; } 0430 L$14: { .mii 010812881880 0430 adds r98 = 320, r40 0119F2B718C0 0431 adds r99 = -200, r43 0119F2BA1900 0432 adds r100 = -176, r43 } { .mmi 0119F2BB1940 0440 adds r101 = -168, r43 010812841980 0441 adds r102 = 288, r40 // 000193 0119F2B19580 0442 adds r86 = -244, r43 ;; // 000198 } { .mii 008086201880 0450 ld4 r98 = [r98] 01080A8E9700 0451 adds r92 = 244, r40 // 000193 012000006640 0452 mov r25 = 3 // 000198 } { .mmi 008C0635A000 0460 st1 [r99] = r45 008C864BE000 0461 st4 [r100] = r95 0000B6101FC0 0462 sxt4 r127 = r97 ;; } { .mii 008C865C4000 0470 st4 [r101] = r98 0000B0001F80 0471 sxt4 r126 = r0 0000B5601F40 0472 sxt4 r125 = r86 } { .mfb 000008000000 0480 nop.m 0 000008000000 0481 nop.f 0 00A000001000 0482 br.call.sptk.many br0 = XPO$PUT ;; } { .mii 012000006640 0490 mov r25 = 3 // 000193 0000B5E01FC0 0491 sxt4 r127 = r94 0000B0001F80 0492 sxt4 r126 = r0 } { .mii 008C06680000 04A0 st1 [r102] = r64 0000B5C01F40 04A1 sxt4 r125 = r92 010807C00040 04A2 mov r1 = r124 ;; // 000198 } { .mfb 000008000000 04B0 nop.m 0 000008000000 04B1 nop.f 0 00A000001000 04B2 br.call.sptk.many br0 = XPO$GET // 000193 } XTESTQ Machine Code Listing 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 13 V1.0-7 TEST_BACKUP 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 { .mib 010807C00040 04C0 mov r1 = r124 00A0308001C0 04C1 tbit.z pr7, pr6 = r8, 0 0095FFFEE006 04C2 (pr6) br.cond.dptk.few L$14 ;; } 04D0 L$13: // 000205 { .mii 0108128419C0 04D0 adds r103 = 288, r40 012000101B00 04D1 add r108 = @ltoff(@fptr(XPO$FAILURE)), r1 012004001A00 04D2 addl r104 = 1048576, r0 } { .mmi 010812841A40 04E0 adds r105 = 288, r40 010812841AC0 04E1 adds r107 = 288, r40 012000005A80 04E2 mov r106 = 2 ;; } { .mii 0080867019C0 04F0 ld4 r103 = [r103] 01080A8E9700 04F1 adds r92 = 244, r40 012000006640 04F2 mov r25 = 3 ;; } { .mii 0080C6C01B00 0500 ld8 r108 = XPO$FAILURE // r108 = [r108] 0000B0001F80 0501 sxt4 r126 = r0 0100768CF9C0 0502 or r103 = r103, r104 ;; } { .mii 0119F2B71B40 0510 adds r109 = -200, r43 // 000207 0000B5C01F40 0511 sxt4 r125 = r92 // 000205 0000B6C01FC0 0512 sxt4 r127 = r108 } { .mmb 008C869CE000 0520 st4 [r105] = r103 008C06BD4000 0521 st1 [r107] = r106 00A000001000 0522 br.call.sptk.many br0 = XPO$CLOSE ;; } { .mii 010807C00040 0530 mov r1 = r124 0119F2B19580 0531 adds r86 = -244, r43 // 000207 012000006640 0532 mov r25 = 3 } { .mmi 008C06DD4000 0540 st1 [r109] = r106 010812841C40 0541 adds r113 = 288, r40 // 000214 01200000BC00 0542 mov r112 = 5 ;; } { .mii 012000101B80 0550 add r110 = @ltoff(@fptr(XPO$FAILURE)), // 000207 r1 0000B0001F80 0551 sxt4 r126 = r0 0000B5601F40 0552 sxt4 r125 = r86 ;; } { .mii 0080C6E01B80 0560 ld8 r110 = XPO$FAILURE // r110 = [r110] 010812871C80 0561 adds r114 = 312, r40 // 000214 010812839CC0 0562 adds r115 = 284, r40 ;; XTESTQ Machine Code Listing 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 14 V1.0-7 TEST_BACKUP 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 } { .mmi 0119F2B19580 0570 adds r86 = -244, r43 01080A8E9700 0571 adds r92 = 244, r40 010802B61BC0 0572 adds r111 = 48, r43 } { .mib 010802B70AC0 0580 adds r43 = 56, r43 0000B6E01FC0 0581 sxt4 r127 = r110 // 000207 00A000001000 0582 br.call.sptk.many br0 = XPO$CLOSE } { .mmi 010807C00040 0590 mov r1 = r124 008C071E0000 0591 st1 [r113] = r112 // 000214 012000006640 0592 mov r25 = 3 ;; } { .mmi 012000101D00 05A0 add r116 = @ltoff(@fptr(XPO$FAILURE)), r1 008C872DE000 05A1 st4 [r114] = r111 0000B0001F80 05A2 sxt4 r126 = r0 ;; } { .mib 0080C7401D00 05B0 ld8 r116 = XPO$FAILURE // r116 = [r116] 0000B5C01F40 05B1 sxt4 r125 = r92 004000000000 05B2 nop.b 0 } { .mmi 008C873AC000 05C0 st4 [r115] = r86 ;; 000008000000 05C1 nop.m 0 0000B7401FC0 05C2 sxt4 r127 = r116 } { .mfb 000008000000 05D0 nop.m 0 000008000000 05D1 nop.f 0 00A000001000 05D2 br.call.sptk.many br0 = XPO$BACKUP } { .mii 010807C00040 05E0 mov r1 = r124 010802858A00 05E1 adds r40 = 44, r40 // 000221 012000006640 05E2 mov r25 = 3 ;; } { .mib 012000101DC0 05F0 add r119 = @ltoff(@fptr(XPO$FAILURE)), r1 0000B0001F80 05F1 sxt4 r126 = r0 004000000000 05F2 nop.b 0 ;; } { .mmi 00AC0285A600 0600 st1 [r40] = r45, 24 0080C7701DC0 0601 ld8 r119 = XPO$FAILURE // r119 = [r119] 000008000000 0602 nop.i 0 ;; } { .mii 00BC8A856F00 0610 st4 [r40] = r43, -68 0000B7701FC0 0611 sxt4 r127 = r119 ;; 0000B2801F40 0612 sxt4 r125 = r40 XTESTQ Machine Code Listing 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 15 V1.0-7 TEST_BACKUP 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 } { .mib 0119F2871E00 0620 adds r120 = -200, r40 // 000227 0119F2818D00 0621 adds r52 = -244, r40 00A000001000 0622 br.call.sptk.many br0 = XPO$PUT ;; // 000221 } { .mii 010807C00040 0630 mov r1 = r124 012000006640 0631 mov r25 = 3 // 000227 0000B0001F80 0632 sxt4 r126 = r0 } { .mii 008C078D4000 0640 st1 [r120] = r106 0000B3401F40 0641 sxt4 r125 = r52 ;; 012000101E40 0642 add r121 = @ltoff(@fptr(XPO$FAILURE)), r1 ;; } { .mmi 0080C7901E40 0650 ld8 r121 = XPO$FAILURE ;; // r121 = [r121] 000008000000 0651 nop.m 0 0000B7901FC0 0652 sxt4 r127 = r121 } { .mfb 000008000000 0660 nop.m 0 000008000000 0661 nop.f 0 00A000001000 0662 br.call.sptk.many br0 = XPO$CLOSE } { .mii 010807C00040 0670 mov r1 = r124 010802858A00 0671 adds r40 = 44, r40 // 000229 012000006640 0672 mov r25 = 3 ;; } { .mib 012000100B00 0680 add r44 = @ltoff(@fptr(XPO$FAILURE)), r1 0000B0001F80 0681 sxt4 r126 = r0 004000000000 0682 nop.b 0 ;; } { .mmi 00BC0A8D5500 0690 st1 [r40] = r106, -44 0080C2C00B00 0691 ld8 r44 = XPO$FAILURE // r44 = [r44] 000008000000 0692 nop.i 0 ;; } { .mii 000008000000 06A0 nop.m 0 0000B2801F40 06A1 sxt4 r125 = r40 0000B2C01FC0 06A2 sxt4 r127 = r44 } { .mfb 000008000000 06B0 nop.m 0 000008000000 06B1 nop.f 0 00A000001000 06B2 br.call.sptk.many br0 = XPO$CLOSE } { .mfi 010807C00040 06C0 mov r1 = r124 000008000000 06C1 nop.f 0 000008000000 06C2 nop.i 0 XTESTQ Machine Code Listing 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 16 V1.0-7 TEST_BACKUP 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 } 06D0 L$6: // 000156 { .mlx 000008000000 06D0 nop.m 0 000000000000 06D1 movl r8 = 2129921 ;; // 000235 0190004044 } { .mii 000008000000 06E0 nop.m 0 0001540F6000 06E1 mov.i rspfs = r123 000E001F4000 06E2 mov br0 = r122 ;; } { .mfb 000008000000 06F0 nop.m 0 000008000000 06F1 nop.f 0 000108001100 06F2 br.ret.sptk.many br0 ;; } .endp TEST_BACKUP Routine Size: 1792 bytes, Routine Base: $CODE$ + 0000 .psect $OWN$, CON, LCL, NOSHR, NOEXE, WRT, NOVEC .lcomm IOB$, 244, 16 .lcomm $IOB$FILE_SPEC, 244, 16 .lcomm IOB$, 244, 16 .lcomm IOB$, 244, 16 .lcomm $IOB$OUTPUT, 244, 16 .lcomm IOB$, 244, 16 .lcomm $IOB$FILE_SPEC, 8, 8 .lcomm $IOB$OUTPUT, 8, 8 .lcomm $IOB$FILE_SPEC, 8, 8 .lcomm $IOB$PROMPT, 8, 8 .lcomm $IOB$FILE_SPEC, 8, 8 .lcomm $IOB$FILE_SPEC, 8, 8 .lcomm $IOB$BACK_TYPE, 8, 8 .lcomm $IOB$OUTPUT, 8, 8 .lcomm P.AAA, 10, 16 .lcomm fill$$1, 2, 2 .lcomm P.AAB, 23, 16 .lcomm fill$$2, 1, 1 .lcomm P.AAC, 9, 16 .lcomm fill$$3, 3, 4 .lcomm P.AAD, 42, 16 .lcomm fill$$4, 2, 2 .lcomm P.AAE, 9, 16 .lcomm fill$$5, 3, 4 .lcomm P.AAF, 22, 16 .lcomm fill$$6, 2, 2 .lcomm P.AAG, 4, 4 .lcomm P.AAH, 32, 16 .psect $OWN$, CON, LCL, NOSHR, NOEXE, WRT, NOVEC $IOB$FILE_SPEC: 000A 03D0 data2 0xA // data2 10 0E 03D2 data1 0xE // data1 14 01 03D3 data1 0x1 // data1 1 00000000 03D4 data4 P.AAA $IOB$OUTPUT: XTESTQ Machine Code Listing 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 17 V1.0-7 TEST_BACKUP 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 0017 03D8 data2 0x17 // data2 23 0E 03DA data1 0xE // data1 14 01 03DB data1 0x1 // data1 1 00000000 03DC data4 P.AAB $IOB$FILE_SPEC: 0009 03E0 data2 0x9 // data2 9 0E 03E2 data1 0xE // data1 14 01 03E3 data1 0x1 // data1 1 00000000 03E4 data4 P.AAC $IOB$PROMPT: 002A 03E8 data2 0x2A // data2 42 0E 03EA data1 0xE // data1 14 01 03EB data1 0x1 // data1 1 00000000 03EC data4 P.AAD $IOB$FILE_SPEC: 0009 03F0 data2 0x9 // data2 9 0E 03F2 data1 0xE // data1 14 01 03F3 data1 0x1 // data1 1 00000000 03F4 data4 P.AAE $IOB$FILE_SPEC: 0016 03F8 data2 0x16 // data2 22 0E 03FA data1 0xE // data1 14 01 03FB data1 0x1 // data1 1 00000000 03FC data4 P.AAF $IOB$BACK_TYPE: 0004 0400 data2 0x4 // data2 4 0E 0402 data1 0xE // data1 14 01 0403 data1 0x1 // data1 1 00000000 0404 data4 P.AAG $IOB$OUTPUT: 0020 0408 data2 0x20 // data2 32 0E 040A data1 0xE // data1 14 01 040B data1 0x1 // data1 1 00000000 040C data4 P.AAH .psect $PLIT$, CON, LCL, NOSHR, NOEXE, NOWRT, NOVEC P.AAA: 24535953 0000 string "SYS$OUTPUT" 5054554F 0004 5455 0008 P.AAB: 4F50580A 000C string "\X0AXPORT File Backup Test" 46205452 0010 20656C69 0014 6B636142 0018 54207075 001C 747365 0020 P.AAC: 24535953 0024 string "SYS$INPUT" 55504E49 0028 54 002C P.AAD: 6D614E0A 0030 string "\X0AName of file to be copied and backed up? " 666F2065 0034 6C696620 0038 XTESTQ Machine Code Listing 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 18 V1.0-7 TEST_BACKUP 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 6F742065 003C 20656220 0040 69706F63 0044 61206465 0048 6220646E 004C 656B6361 0050 70752064 0054 203F 0058 P.AAE: 24535953 005C string "SYS$INPUT" 55504E49 0060 54 0064 P.AAF: 4F50585B 0068 string "[XPORT Temporary File]" 54205452 006C 6F706D65 0070 79726172 0074 6C694620 0078 5D65 007C P.AAG: 4B41422E 0080 data4 0x4B41422E // data4 1262567982 P.AAH: 4F50580A 0084 string "\X0AXPORT File Backup Test Complete" 46205452 0088 20656C69 008C 6B636142 0090 54207075 0094 20747365 0098 706D6F43 009C 6574656C 00A0 .section .data .type XPO$FAILURE, @function .global XPO$FAILURE .section .data .type XPO$OPEN, @function .global XPO$OPEN .section .data .type XPO$FAILURE, @function .global XPO$FAILURE .section .data .type XPO$PUT, @function .global XPO$PUT .section .data .type XPO$FAILURE, @function .global XPO$FAILURE .section .data .type XPO$OPEN, @function .global XPO$OPEN .section .data .type XPO$IO_FAILURE, @function .global XPO$IO_FAILURE .section .data .type XPO$FAILURE, @function XTESTQ Machine Code Listing 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 19 V1.0-7 TEST_BACKUP 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 .global XPO$FAILURE .section .data .type XPO$IO_FAILURE, @function .global XPO$IO_FAILURE .section .data .type XST$FREE_TEMP, @function .global XST$FREE_TEMP .section .data .type XPO$GET, @function .global XPO$GET .section .data .type XPO$OPEN, @function .global XPO$OPEN .section .data .type XPO$OPEN, @function .global XPO$OPEN .section .data .type XPO$FAILURE, @function .global XPO$FAILURE .section .data .type XPO$OPEN, @function .global XPO$OPEN .section .data .type XPO$FAILURE, @function .global XPO$FAILURE .section .data .type XPO$GET, @function .global XPO$GET .section .data .type XPO$FAILURE, @function .global XPO$FAILURE .section .data .type XPO$PUT, @function .global XPO$PUT .section .data .type XPO$FAILURE, @function .global XPO$FAILURE .section .data .type XPO$CLOSE, @function .global XPO$CLOSE .section .data .type XPO$FAILURE, @function .global XPO$FAILURE .section .data .type XPO$CLOSE, @function .global XPO$CLOSE .section .data .type XPO$FAILURE, @function .global XPO$FAILURE .section .data .type XPO$BACKUP, @function .global XPO$BACKUP .section .data .type XPO$FAILURE, @function .global XPO$FAILURE .section .data .type XPO$PUT, @function XTESTQ Machine Code Listing 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 20 V1.0-7 TEST_BACKUP 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 .global XPO$PUT .section .data .type XPO$FAILURE, @function .global XPO$FAILURE .section .data .type XPO$CLOSE, @function .global XPO$CLOSE .section .data .type XPO$FAILURE, @function .global XPO$FAILURE .section .data .type XPO$CLOSE, @function .global XPO$CLOSE ; Library Statistics ; ; -------- Symbols -------- Pages ; File Total Loaded Percent Mapped ; ; DISK$NORMS_OWN:[LASTOVICA.XPORT.VMSGEN]XPORT.L32;14 ; 590 114 19 270 Source Listing 4-FEB-2004 11:02:14 BLISS-32I T1.1-053 Page 21 Source Listing 19-MAR-2002 10:12:36 [LASTOVICA.XPORT.VMSGEN]XTESTQ.BLI;1 COMMAND LINE: BLISSXTESTQ/LIST/DEBUG