XPORT File Append Test 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 1 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 0 1 MODULE XTESTA ( IDENT = 'V1.0-8', %TITLE 'XPORT File Append Test' 0 2 MAIN = TEST_APPEND ! 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 demonstrates the use of XPORT record I/O functions. 1 33 ! 1 34 ! ENVIRONMENT: User Mode 1 35 ! 1 36 ! AUTHOR: Ward Clark, CREATION DATE: 10 January 1979 1 37 ! 1 38 !-- XTESTA XPORT File Append Test 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 2 V1.0-8 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 1 40 ! 1 41 ! TABLE OF CONTENTS: 1 42 ! 1 43 1 44 FORWARD ROUTINE 1 45 TEST_APPEND; ! 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 ! XTESTA XPORT File Append Test 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 3 V1.0-8 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 1 85 GLOBAL ROUTINE TEST_APPEND = 1 86 1 87 !++ 1 88 ! 1 89 ! FUNCTIONAL DESCRIPTION: 1 90 ! 1 91 ! This module explicitly tests the following XPORT record I/O functions: 1 92 ! 1 93 ! * open terminal/file for input and output 1 94 ! * get from terminal/file 1 95 ! * put to terminal/file 1 96 ! 1 97 ! These I/O functions indirectly test the following XPORT functions: 1 98 ! 1 99 ! * default failure action routine 1 100 ! * dynamic memory allocation ($XPO_GET_MEM) 1 101 ! * dynamic memory deallocation ($XPO_FREE_MEM) 1 102 ! * message routine ($XPO_PUT_MSG) 1 103 ! * BLISS transportable string package 1 104 ! 1 105 ! FORMAL PARAMETERS: 1 106 ! 1 107 ! None 1 108 ! 1 109 ! IMPLICIT INPUTS: 1 110 ! 1 111 ! None 1 112 ! 1 113 ! IMPLICIT OUTPUTS: 1 114 ! 1 115 ! None 1 116 ! 1 117 ! COMPLETION CODES: 1 118 ! 1 119 ! XPO$_NORMAL - successful completion 1 120 ! 1 121 ! SIDE EFFECTS: 1 122 ! 1 123 ! None 1 124 ! 1 125 !-- 1 126 1 127 BEGIN 2 128 2 129 LOCAL 2 130 status; ! XPORT I/O completion code 2 131 2 132 %IF %VARIANT NEQ 0 %THEN U 2 133 ! U 2 134 ! Initialize the IOB's U 2 135 ! U 2 136 U 2 137 $XPO_IOB_INIT( IOB = tty_input ); U 2 138 $XPO_IOB_INIT( IOB = tty_output ); U 2 139 $XPO_IOB_INIT( IOB = input_file ); U 2 140 $XPO_IOB_INIT( IOB = output_file ); U 2 141 %FI XTESTA XPORT File Append Test 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 4 V1.0-8 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 2 142 2 143 ! 2 144 ! Open the user's terminal for output and send the user a greeting message. 2 145 ! 2 146 2 147 $XPO_OPEN( IOB = tty_output, ! Open the user's terminal: P 2 148 FILE_SPEC = $XPO_OUTPUT, ! standard output file P 2 149 OPTIONS = OUTPUT ); ! open for output 2 150 2 151 $XPO_PUT( IOB = tty_output, ! Send the user a greeting message. P 2 152 STRING = skip('XPORT Append Record I/O Test') ); 2 153 2 154 ! 2 155 ! Open the user's terminal for input. 2 156 ! 2 157 2 158 $XPO_OPEN( IOB = tty_input, ! Open the user's terminal: P 2 159 FILE_SPEC = $XPO_INPUT, ! standard input file P 2 160 OPTIONS = INPUT ); ! open for input 2 161 2 162 ! 2 163 ! Request the name of the file to be copied and open that file. 2 164 ! 2 165 2 166 WHILE 1 DO ! Keep asking until an input file can be opened. 2 167 BEGIN 3 168 IF NOT $XPO_GET( IOB = tty_input, ! Read a file name from the terminal. P 3 169 PROMPT = skip('Input file name? ') ) 4 170 THEN ! If terminal end-of-file (^Z) is reached, 3 171 RETURN XPO$_NORMAL; ! terminate program execution. 3 172 3 173 IF .tty_input[IOB$H_STRING] EQL 0 ! If no input file name was specified, 3 174 THEN ! 3 175 status = $XPO_OPEN( IOB = input_file, ! open the user's terminal as the input file: P 3 176 FILE_SPEC = $XPO_INPUT, ! standard input file P 3 177 OPTIONS = INPUT, ! open for input P 3 178 FAILURE = XPO$IO_FAILURE ) ! non-terminating I/O failure action routine 4 179 ELSE 3 180 status = $XPO_OPEN( IOB = input_file, ! Otherwise, open the specified input file: P 3 181 FILE_SPEC = ! input file-spec descriptor P 3 182 tty_input[IOB$T_STRING], ! P 3 183 OPTIONS = INPUT, ! open for input P 3 184 FAILURE = XPO$IO_FAILURE ); ! non-terminating I/O failure action routine 3 185 3 186 IF .status THEN EXITLOOP; ! If the input file was successfully opened, 3 187 ! exit the file open loop. 3 188 END; 2 189 2 190 ! 2 191 ! Request the name of the output file and open that file. 2 192 ! 2 193 2 194 WHILE 1 DO ! Keep asking until an output file can be opened. 2 195 BEGIN 3 196 IF NOT $XPO_GET( IOB = tty_input, ! Read a file name from the terminal. P 3 197 PROMPT = skip('Output file name? ') ) 4 198 THEN ! If terminal end-of-file (^Z) is reached, XTESTA XPORT File Append Test 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 5 V1.0-8 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 3 199 RETURN XPO$_NORMAL; ! terminate program execution. 3 200 3 201 output_file[IOB$V_SEQUENCED] = ! Make the output file sequenced 3 202 .input_file[IOB$V_SEQUENCED]; ! if the input file is sequenced. 3 203 3 204 status = $XPO_OPEN( IOB = output_file, ! Then open the specified output file: P 3 205 FILE_SPEC = ! output file-spec descriptor P 3 206 tty_input[IOB$T_STRING], ! P 3 207 OPTIONS = (OUTPUT,APPEND), ! open for output P 3 208 FAILURE = XPO$IO_FAILURE ); ! non-terminating I/O failure action routine 3 209 3 210 IF .status THEN EXITLOOP; ! If the output file was successfully opened, 3 211 ! exit the file open loop. 3 212 END; 2 213 2 214 ! 2 215 ! Copy the input file to the output file one record at a time. 2 216 ! 2 217 2 218 WHILE $XPO_GET( IOB = input_file ) DO ! Read records until end-of-file is reached. 2 219 2 220 $XPO_PUT( IOB = output_file, ! Write a record into the output file: P 2 221 STRING = input_file[IOB$T_STRING], ! input record descriptor P 2 222 SEQUENCE_NUMBER = ! sequence number P 2 223 .input_file[IOB$G_SEQ_NUMB] ); 2 224 2 225 ! 2 226 ! Close the input and output files. 2 227 ! 2 228 2 229 $XPO_CLOSE( IOB = input_file ); ! Close the input file. 2 230 2 231 $XPO_CLOSE( IOB = output_file ); ! Close the output file. 2 232 2 233 ! 2 234 ! Send the user a completion message. 2 235 ! 2 236 2 237 $XPO_PUT( IOB = tty_output, ! Send the user a blank line followed by a message. P 2 238 STRING = skip('XPORT Record I/O Test Complete') ); 2 239 2 240 ! 2 241 ! Close the terminal input and output files. 2 242 ! 2 243 2 244 $XPO_CLOSE( IOB = tty_input ); ! Close the terminal input file. 2 245 2 246 $XPO_CLOSE( IOB = tty_output ); ! Close the terminal output file. 2 247 2 248 ! 2 249 ! Terminate XPORT I/O testing. 2 250 ! 2 251 2 252 RETURN XPO$_NORMAL; ! Exit with a normal completion code. 2 253 END; 1 254 END 1 255 ELUDOM XTESTA Machine Code Listing 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 6 V1.0-8 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 .psect $CODE$, CON, LCL, SHR, EXE, NOWRT, NOVEC .proc TEST_APPEND .align 32 .global TEST_APPEND TEST_APPEND: // 000085 { .mii 002C05DC1EC0 0000 alloc r123 = rspfs, 0, 93, 3, 0 012000100A00 0001 add r40 = @ltoff(TTY_OUTPUT), r1 // 000149 012000100A80 0002 add r42 = @ltoff($IOB$FILE_SPEC), r1 } { .mmi 012000100440 0010 add r17 = @ltoff(@fptr(XPO$FAILURE)), r1 012000800200 0011 addl r8 = 131072, r0 012000002A40 0012 mov r41 = 1 ;; } { .mii 0080C1100440 0020 ld8 r17 = XPO$FAILURE // r17 = [r17] 012000006640 0021 mov r25 = 3 000188001E80 0022 mov r122 = br0 // 000085 } { .mmi 0080C2800A00 0030 ld8 r40 = TTY_OUTPUT // r40 = [r40] // 000149 0080C2A00A80 0031 ld8 r42 = $IOB$FILE_SPEC // r42 = [r42] 010800101F00 0032 mov r124 = r1 ;; // 000085 } { .mii 01200000EB00 0040 mov r44 = 7 // 000152 0000B1101FC0 0041 sxt4 r127 = r17 // 000149 0000B0001F80 0042 sxt4 r126 = r0 } { .mmi 012000400C40 0050 addl r49 = 65536, r0 // 000160 01200000CFC0 0051 mov r63 = 6 // 000169 010802858A00 0052 adds r40 = 44, r40 ;; // 000149 } { .mmi 0080828000C0 0060 ld4 r3 = [r40] ;; 0100708060C0 0061 or r3 = r3, r8 000008000000 0062 nop.i 0 ;; } { .mmi 008C82806000 0070 st4 [r40] = r3 ;; 00BC0A853600 0071 st1 [r40] = r41, -40 000008000000 0072 nop.i 0 ;; } { .mii 00BC8A855F00 0080 st4 [r40] = r42, -4 010802A10AC0 0081 adds r43 = 8, r42 // 000152 010802A20C80 0082 adds r50 = 16, r42 ;; // 000160 } { .mib 000008000000 0090 nop.m 0 0000B2801F40 0091 sxt4 r125 = r40 // 000149 00A000001000 0092 br.call.sptk.many br0 = XPO$OPEN } { .mii XTESTA Machine Code Listing 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 7 V1.0-8 TEST_APPEND 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 010807C00040 00A0 mov r1 = r124 010802858A00 00A1 adds r40 = 44, r40 // 000152 012000006640 00A2 mov r25 = 3 ;; } { .mib 012000100BC0 00B0 add r47 = @ltoff(@fptr(XPO$FAILURE)), r1 0000B0001F80 00B1 sxt4 r126 = r0 004000000000 00B2 nop.b 0 ;; } { .mmi 00AC02858600 00C0 st1 [r40] = r44, 24 0080C2F00BC0 00C1 ld8 r47 = XPO$FAILURE // r47 = [r47] 000008000000 00C2 nop.i 0 ;; } { .mii 00BC8A856F00 00D0 st4 [r40] = r43, -68 0000B2F01FC0 00D1 sxt4 r127 = r47 ;; 0000B2801F40 00D2 sxt4 r125 = r40 } { .mib 0119F2870C00 00E0 adds r48 = -200, r40 // 000160 0119F2870D00 00E1 adds r52 = -200, r40 00A000001000 00E2 br.call.sptk.many br0 = XPO$PUT ;; // 000152 } { .mmi 010807C00040 00F0 mov r1 = r124 008083000C00 00F1 ld4 r48 = [r48] // 000160 0119F2870D40 00F2 adds r53 = -200, r40 ;; } { .mii 012000100DC0 0100 add r55 = @ltoff(@fptr(XPO$FAILURE)), r1 0119F2820D80 0101 adds r54 = -240, r40 0119F2818CC0 0102 adds r51 = -244, r40 } { .mmi 012000006640 0110 mov r25 = 3 010073160C00 0111 or r48 = r48, r49 0000B0001F80 0112 sxt4 r126 = r0 ;; } { .mii 0080C3700DC0 0120 ld8 r55 = XPO$FAILURE // r55 = [r55] 0000B3301F40 0121 sxt4 r125 = r51 0119F2880E00 0122 adds r56 = -192, r40 ;; // 000184 } { .mmi 008C83460000 0130 st4 [r52] = r48 // 000160 008C03552000 0131 st1 [r53] = r41 0000B3701FC0 0132 sxt4 r127 = r55 } { .mfb 008C83664000 0140 st4 [r54] = r50 000008000000 0141 nop.f 0 00A000001000 0142 br.call.sptk.many br0 = XPO$OPEN } { .mmi XTESTA Machine Code Listing 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 8 V1.0-8 TEST_APPEND 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 010807C00040 0150 mov r1 = r124 ;; 012000100F40 0151 add r61 = @ltoff(@fptr(XPO$FAILURE)), // 000169 r1 012000100EC0 0152 add r59 = @ltoff(@fptr(XPO$IO_FAILURE)), // 000178 r1 } { .mmi 012000100E40 0160 add r57 = @ltoff(@fptr(XPO$IO_FAILURE)), // 000184 r1 ;; 0080C3900E80 0161 ld8 r58 = XPO$IO_FAILURE // r58 = [r57] 000008000000 0162 nop.i 0 } { .mmi 0080C3D00F80 0170 ld8 r62 = XPO$FAILURE // r62 = [r61] // 000169 0080C3B00F00 0171 ld8 r60 = XPO$IO_FAILURE // r60 = [r59] // 000178 000008000000 0172 nop.i 0 ;; } 0180 L$2: // 000169 { .mmi 0119F2861000 0180 adds r64 = -208, r40 ;; 008084001040 0181 ld4 r65 = [r64] 000008000000 0182 nop.i 0 ;; } { .mfb 01C4041001C0 0190 cmp4.eq pr7, pr0 = r0, r65 000008000000 0191 nop.f 0 008600006007 0192 (pr7) br.cond.dpnt.few L$4 } { .mib 012000002640 01A0 mov r25 = 1 0000B4101F40 01A1 sxt4 r125 = r65 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 0119F28710C0 01C0 adds r67 = -200, r40 0119F2861100 01C1 adds r68 = -208, r40 0119F2818CC0 01C2 adds r51 = -244, r40 ;; } { .mii 008C0437E000 01D0 st1 [r67] = r63 010802A31080 01D1 adds r66 = 24, r42 012000006640 01D2 mov r25 = 3 ;; } { .mii 008C84484000 01E0 st4 [r68] = r66 0000B3E01FC0 01E1 sxt4 r127 = r62 0000B0001F80 01E2 sxt4 r126 = r0 } { .mib 000008000000 01F0 nop.m 0 0000B3301F40 01F1 sxt4 r125 = r51 XTESTA Machine Code Listing 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 9 V1.0-8 TEST_APPEND 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.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 0086000A0007 0202 (pr7) br.cond.dpnt.few L$6 // 000168 } { .mmi 0119F2881140 0210 adds r69 = -192, r40 ;; // 000173 008044501140 0211 ld2 r69 = [r69] 000008000000 0212 nop.i 0 ;; } { .mfb 01C444500000 0220 cmp4.eq pr0, pr8 = r0, r69 000008000000 0221 nop.f 0 008600012008 0222 (pr8) br.cond.dpnt.few L$7 } { .mii 010812841180 0230 adds r70 = 288, r40 // 000178 010812841240 0231 adds r73 = 288, r40 010812841280 0232 adds r74 = 288, r40 } { .mmi 01080A8F12C0 0240 adds r75 = 248, r40 01080A8E9200 0241 adds r72 = 244, r40 010802A411C0 0242 adds r71 = 32, r42 ;; } { .mii 008084601180 0250 ld4 r70 = [r70] 012000006640 0251 mov r25 = 3 0000B3C01FC0 0252 sxt4 r127 = r60 ;; } { .mii 000008000000 0260 nop.m 0 0000B0001F80 0261 sxt4 r126 = r0 01007318D180 0262 or r70 = r70, r49 ;; } { .mib 000008000000 0270 nop.m 0 0000B4801F40 0271 sxt4 r125 = r72 004000000000 0272 nop.b 0 } { .mmi 008C8498C000 0280 st4 [r73] = r70 008C04A52000 0281 st1 [r74] = r41 000008000000 0282 nop.i 0 } { .mfb 008C84B8E000 0290 st4 [r75] = r71 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$21 ;; } XTESTA Machine Code Listing 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 10 V1.0-8 TEST_APPEND 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 02B0 L$7: // 000184 { .mii 010812841300 02B0 adds r76 = 288, r40 010812841380 02B1 adds r78 = 288, r40 0108128413C0 02B2 adds r79 = 288, r40 } { .mmi 01080A8F1400 02C0 adds r80 = 248, r40 01080A8E9340 02C1 adds r77 = 244, r40 012000006640 02C2 mov r25 = 3 ;; } { .mii 008084C01300 02D0 ld4 r76 = [r76] 0000B3A01FC0 02D1 sxt4 r127 = r58 0000B0001F80 02D2 sxt4 r126 = r0 ;; } { .mii 000008000000 02E0 nop.m 0 0000B4D01F40 02E1 sxt4 r125 = r77 010073199300 02E2 or r76 = r76, r49 ;; } { .mmi 008C84E98000 02F0 st4 [r78] = r76 008C04F52000 02F1 st1 [r79] = r41 000008000000 02F2 nop.i 0 } { .mfb 008C85070000 0300 st4 [r80] = r56 000008000000 0301 nop.f 0 00A000001000 0302 br.call.sptk.many br0 = XPO$OPEN } 0310 L$21: { .mib 010807C00040 0310 mov r1 = r124 00A0308001C0 0311 tbit.z pr7, pr6 = STATUS, 0 // pr7, pr6 = r8, 0 // 000186 0095FFFCE007 0312 (pr7) br.cond.dptk.few L$2 ;; } { .mii 0120001014C0 0320 add r83 = @ltoff(@fptr(XPO$FAILURE)), // 000197 r1 012000101440 0321 add r81 = @ltoff(@fptr(XPO$IO_FAILURE)), // 000208 r1 000008000000 0322 nop.i 0 ;; } { .mmi 0080C5301500 0330 ld8 r84 = XPO$FAILURE // r84 = [r83] // 000197 0080C5101480 0331 ld8 r82 = XPO$IO_FAILURE // r82 = [r81] // 000208 000008000000 0332 nop.i 0 ;; } 0340 L$12: // 000197 { .mmi 0119F2861540 0340 adds r85 = -208, r40 ;; 008085501580 0341 ld4 r86 = [r85] 000008000000 0342 nop.i 0 ;; } { .mfb 01C405600240 0350 cmp4.eq pr9, pr0 = r0, r86 XTESTA Machine Code Listing 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 11 V1.0-8 TEST_APPEND 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 000008000000 0351 nop.f 0 008600006009 0352 (pr9) br.cond.dpnt.few L$14 } { .mib 012000002640 0360 mov r25 = 1 0000B5601F40 0361 sxt4 r125 = r86 00A000001000 0362 br.call.sptk.many br0 = XST$FREE_TEMP } { .mfi 010807C00040 0370 mov r1 = r124 000008000000 0371 nop.f 0 000008000000 0372 nop.i 0 } 0380 L$14: { .mii 0119F2871600 0380 adds r88 = -200, r40 0119F2861640 0381 adds r89 = -208, r40 0119F2818CC0 0382 adds r51 = -244, r40 ;; } { .mii 008C0587E000 0390 st1 [r88] = r63 010802A515C0 0391 adds r87 = 40, r42 012000006640 0392 mov r25 = 3 ;; } { .mii 008C859AE000 03A0 st4 [r89] = r87 0000B5401FC0 03A1 sxt4 r127 = r84 0000B0001F80 03A2 sxt4 r126 = r0 } { .mib 000008000000 03B0 nop.m 0 0000B3301F40 03B1 sxt4 r125 = r51 00A000001000 03B2 br.call.sptk.many br0 = XPO$GET } { .mib 010807C00040 03C0 mov r1 = r124 00A0308001C0 03C1 tbit.z pr7, pr6 = r8, 0 008600068007 03C2 (pr7) br.cond.dpnt.few L$6 // 000196 } { .mii 010812849680 03D0 adds r90 = 292, r40 // 000202 0119F2A71700 03D1 adds r92 = -200, r42 // 000208 0119F2A796C0 03D2 adds r91 = -196, r42 // 000201 } { .mmi 012002801740 03E0 addl r93 = 655360, r0 // 000208 0119F2A717C0 03E1 adds r95 = -200, r42 0119F2A71800 03E2 adds r96 = -200, r42 ;; } { .mii 008085A01680 03F0 ld4 r90 = [r90] // 000202 0119F2A79840 03F1 adds r97 = -196, r42 // 000201 0119F2A21880 03F2 adds r98 = -240, r42 // 000208 } { .mmi 008085C01700 0400 ld4 r92 = [r92] 008085B016C0 0401 ld4 r91 = [r91] // 000201 XTESTA Machine Code Listing 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 12 V1.0-8 TEST_APPEND 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 0119F2A19780 0402 adds r94 = -244, r42 ;; // 000208 } { .mii 012000006640 0410 mov r25 = 3 00A405A11680 0411 extr.u r90 = r90, 4, 1 // 000202 0000B5201FC0 0412 sxt4 r127 = r82 ;; // 000208 } { .mii 010075DB9700 0420 or r92 = r92, r93 009D85BB5680 0421 dep r90 = r90, r91, 4, 1 // 000201 0000B0001F80 0422 sxt4 r126 = r0 ;; // 000208 } { .mmi 008C85FB8000 0430 st4 [r95] = r92 008C06052000 0431 st1 [r96] = r41 0000B5E01F40 0432 sxt4 r125 = r94 } { .mmb 008C861B4000 0440 st4 [r97] = r90 // 000201 008C86270000 0441 st4 [r98] = r56 // 000208 00A000001000 0442 br.call.sptk.many br0 = XPO$OPEN } { .mib 010807C00040 0450 mov r1 = r124 00A0308001C0 0451 tbit.z pr7, pr6 = r8, 0 // 000210 0095FFFDE007 0452 (pr7) br.cond.dptk.few L$12 } { .mii 010812841900 0460 adds r100 = 288, r40 // 000218 01080A8E98C0 0461 adds r99 = 244, r40 012000006640 0462 mov r25 = 3 ;; } { .mii 008C0647E000 0470 st1 [r100] = r63 012000101900 0471 add r100 = @ltoff(@fptr(XPO$FAILURE)), r1 0000B0001F80 0472 sxt4 r126 = r0 ;; } { .mib 000008000000 0480 nop.m 0 0000B6301F40 0481 sxt4 r125 = r99 004000000000 0482 nop.b 0 } { .mmi 0080C6401940 0490 ld8 r101 = XPO$FAILURE ;; // r101 = [r100] 000008000000 0491 nop.m 0 0000B6501FC0 0492 sxt4 r127 = r101 } { .mfb 000008000000 04A0 nop.m 0 000008000000 04A1 nop.f 0 00A000001000 04A2 br.call.sptk.many br0 = XPO$GET } { .mib 010807C00040 04B0 mov r1 = r124 00A0308001C0 04B1 tbit.z pr7, pr6 = r8, 0 00860001A007 04B2 (pr7) br.cond.dpnt.few L$19 ;; XTESTA Machine Code Listing 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 13 V1.0-8 TEST_APPEND 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 } { .mii 0120001019C0 04C0 add r103 = @ltoff(@fptr(XPO$FAILURE)), // 000223 r1 010812851980 04C1 adds r102 = 296, r40 000008000000 04C2 nop.i 0 ;; } { .mfi 0080C6701A00 04D0 ld8 r104 = XPO$FAILURE // r104 = [r103] 000008000000 04D1 nop.f 0 000008000000 04D2 nop.i 0 ;; } 04E0 L$20: { .mii 010812881A40 04E0 adds r105 = 320, r40 0119F2A71A80 04E1 adds r106 = -200, r42 0119F2AA1AC0 04E2 adds r107 = -176, r42 } { .mmi 0119F2AB1B00 04F0 adds r108 = -168, r42 010812841B40 04F1 adds r109 = 288, r40 // 000218 0119F2A19780 04F2 adds r94 = -244, r42 ;; // 000223 } { .mii 008086901A40 0500 ld4 r105 = [r105] 01080A8E98C0 0501 adds r99 = 244, r40 // 000218 012000006640 0502 mov r25 = 3 // 000223 } { .mmi 008C06A58000 0510 st1 [r106] = r44 008C86BCC000 0511 st4 [r107] = r102 0000B6801FC0 0512 sxt4 r127 = r104 ;; } { .mii 008C86CD2000 0520 st4 [r108] = r105 0000B0001F80 0521 sxt4 r126 = r0 0000B5E01F40 0522 sxt4 r125 = r94 } { .mfb 000008000000 0530 nop.m 0 000008000000 0531 nop.f 0 00A000001000 0532 br.call.sptk.many br0 = XPO$PUT ;; } { .mii 012000006640 0540 mov r25 = 3 // 000218 0000B6501FC0 0541 sxt4 r127 = r101 0000B0001F80 0542 sxt4 r126 = r0 } { .mii 008C06D7E000 0550 st1 [r109] = r63 0000B6301F40 0551 sxt4 r125 = r99 010807C00040 0552 mov r1 = r124 ;; // 000223 } { .mfb 000008000000 0560 nop.m 0 000008000000 0561 nop.f 0 00A000001000 0562 br.call.sptk.many br0 = XPO$GET // 000218 XTESTA Machine Code Listing 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 14 V1.0-8 TEST_APPEND 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 } { .mib 010807C00040 0570 mov r1 = r124 00A0308001C0 0571 tbit.z pr7, pr6 = r8, 0 0095FFFEE006 0572 (pr6) br.cond.dptk.few L$20 ;; } 0580 L$19: // 000229 { .mii 012000101C00 0580 add r112 = @ltoff(@fptr(XPO$FAILURE)), r1 010812841BC0 0581 adds r111 = 288, r40 012000005B80 0582 mov r110 = 2 } { .mmi 01080A8E98C0 0590 adds r99 = 244, r40 012000006640 0591 mov r25 = 3 0000B0001F80 0592 sxt4 r126 = r0 ;; } { .mii 0080C7001C00 05A0 ld8 r112 = XPO$FAILURE // r112 = [r112] 0000B6301F40 05A1 sxt4 r125 = r99 0119F2A71C40 05A2 adds r113 = -200, r42 // 000231 } { .mmi 008C06FDC000 05B0 st1 [r111] = r110 // 000229 0119F2A19780 05B1 adds r94 = -244, r42 // 000231 010802A60A80 05B2 adds r42 = 48, r42 ;; } { .mib 000008000000 05C0 nop.m 0 0000B7001FC0 05C1 sxt4 r127 = r112 // 000229 00A000001000 05C2 br.call.sptk.many br0 = XPO$CLOSE } { .mii 010807C00040 05D0 mov r1 = r124 012000006640 05D1 mov r25 = 3 // 000231 0000B0001F80 05D2 sxt4 r126 = r0 } { .mii 008C071DC000 05E0 st1 [r113] = r110 0000B5E01F40 05E1 sxt4 r125 = r94 ;; 012000101C80 05E2 add r114 = @ltoff(@fptr(XPO$FAILURE)), r1 ;; } { .mmi 0080C7201C80 05F0 ld8 r114 = XPO$FAILURE ;; // r114 = [r114] 000008000000 05F1 nop.m 0 0000B7201FC0 05F2 sxt4 r127 = r114 } { .mfb 000008000000 0600 nop.m 0 000008000000 0601 nop.f 0 00A000001000 0602 br.call.sptk.many br0 = XPO$CLOSE } { .mii 010807C00040 0610 mov r1 = r124 010802858A00 0611 adds r40 = 44, r40 // 000238 XTESTA Machine Code Listing 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 15 V1.0-8 TEST_APPEND 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 012000006640 0612 mov r25 = 3 ;; } { .mib 012000101D40 0620 add r117 = @ltoff(@fptr(XPO$FAILURE)), r1 0000B0001F80 0621 sxt4 r126 = r0 004000000000 0622 nop.b 0 ;; } { .mmi 00AC02858600 0630 st1 [r40] = r44, 24 0080C7501D40 0631 ld8 r117 = XPO$FAILURE // r117 = [r117] 000008000000 0632 nop.i 0 ;; } { .mii 00BC8A854F00 0640 st4 [r40] = r42, -68 0000B7501FC0 0641 sxt4 r127 = r117 ;; 0000B2801F40 0642 sxt4 r125 = r40 } { .mib 0119F2871D80 0650 adds r118 = -200, r40 // 000244 0119F2818CC0 0651 adds r51 = -244, r40 00A000001000 0652 br.call.sptk.many br0 = XPO$PUT ;; // 000238 } { .mii 010807C00040 0660 mov r1 = r124 012000006640 0661 mov r25 = 3 // 000244 0000B0001F80 0662 sxt4 r126 = r0 } { .mii 008C076DC000 0670 st1 [r118] = r110 0000B3301F40 0671 sxt4 r125 = r51 ;; 012000101DC0 0672 add r119 = @ltoff(@fptr(XPO$FAILURE)), r1 ;; } { .mmi 0080C7701DC0 0680 ld8 r119 = XPO$FAILURE ;; // r119 = [r119] 000008000000 0681 nop.m 0 0000B7701FC0 0682 sxt4 r127 = r119 } { .mfb 000008000000 0690 nop.m 0 000008000000 0691 nop.f 0 00A000001000 0692 br.call.sptk.many br0 = XPO$CLOSE } { .mii 010807C00040 06A0 mov r1 = r124 010802858A00 06A1 adds r40 = 44, r40 // 000246 012000006640 06A2 mov r25 = 3 ;; } { .mib 012000101E40 06B0 add r121 = @ltoff(@fptr(XPO$FAILURE)), r1 0000B0001F80 06B1 sxt4 r126 = r0 004000000000 06B2 nop.b 0 ;; } { .mmi 00BC0A8DD500 06C0 st1 [r40] = r110, -44 XTESTA Machine Code Listing 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 16 V1.0-8 TEST_APPEND 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 0080C7901E40 06C1 ld8 r121 = XPO$FAILURE // r121 = [r121] 000008000000 06C2 nop.i 0 ;; } { .mii 000008000000 06D0 nop.m 0 0000B2801F40 06D1 sxt4 r125 = r40 0000B7901FC0 06D2 sxt4 r127 = r121 } { .mfb 000008000000 06E0 nop.m 0 000008000000 06E1 nop.f 0 00A000001000 06E2 br.call.sptk.many br0 = XPO$CLOSE } { .mfi 010807C00040 06F0 mov r1 = r124 000008000000 06F1 nop.f 0 000008000000 06F2 nop.i 0 } 0700 L$6: // 000168 { .mlx 000008000000 0700 nop.m 0 000000000000 0701 movl r8 = 2129921 ;; // 000252 0190004044 } { .mii 000008000000 0710 nop.m 0 0001540F6000 0711 mov.i rspfs = r123 000E001F4000 0712 mov br0 = r122 ;; } { .mfb 000008000000 0720 nop.m 0 000008000000 0721 nop.f 0 000108001100 0722 br.ret.sptk.many br0 ;; } .endp TEST_APPEND Routine Size: 1840 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$PROMPT, 8, 8 .lcomm $IOB$OUTPUT, 8, 8 .lcomm P.AAA, 10, 16 .lcomm fill$$1, 2, 2 .lcomm P.AAB, 29, 16 .lcomm fill$$2, 3, 4 .lcomm P.AAC, 9, 16 XTESTA Machine Code Listing 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 17 V1.0-8 TEST_APPEND 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 .lcomm fill$$3, 3, 4 .lcomm P.AAD, 18, 16 .lcomm fill$$4, 2, 2 .lcomm P.AAE, 9, 16 .lcomm fill$$5, 3, 4 .lcomm P.AAF, 19, 16 .lcomm fill$$6, 1, 1 .lcomm P.AAG, 31, 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: 001D 03D8 data2 0x1D // data2 29 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: 0012 03E8 data2 0x12 // data2 18 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$PROMPT: 0013 03F8 data2 0x13 // data2 19 0E 03FA data1 0xE // data1 14 01 03FB data1 0x1 // data1 1 00000000 03FC data4 P.AAF $IOB$OUTPUT: 001F 0400 data2 0x1F // data2 31 0E 0402 data1 0xE // data1 14 01 0403 data1 0x1 // data1 1 00000000 0404 data4 P.AAG .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 Append Record I/O Test" 41205452 0010 6E657070 0014 65522064 0018 64726F63 001C 4F2F4920 0020 XTESTA Machine Code Listing 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 18 V1.0-8 TEST_APPEND 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 73655420 0024 74 0028 P.AAC: 24535953 002C string "SYS$INPUT" 55504E49 0030 54 0034 P.AAD: 706E490A 0038 string "\X0AInput file name? " 66207475 003C 20656C69 0040 656D616E 0044 203F 0048 P.AAE: 24535953 004C string "SYS$INPUT" 55504E49 0050 54 0054 P.AAF: 74754F0A 0058 string "\X0AOutput file name? " 20747570 005C 656C6966 0060 6D616E20 0064 203F65 0068 P.AAG: 4F50580A 006C string "\X0AXPORT Record I/O Test Complete" 52205452 0070 726F6365 0074 2F492064 0078 6554204F 007C 43207473 0080 6C706D6F 0084 657465 0088 .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 XTESTA Machine Code Listing 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 19 V1.0-8 TEST_APPEND 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 .global XPO$IO_FAILURE .section .data .type XPO$FAILURE, @function .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$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$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 XTESTA Machine Code Listing 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 20 V1.0-8 TEST_APPEND 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 .global XPO$CLOSE .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 ; Library Statistics ; ; -------- Symbols -------- Pages ; File Total Loaded Percent Mapped ; ; DISK$NORMS_OWN:[LASTOVICA.XPORT.VMSGEN]XPORT.L32;14 ; 590 111 18 270 Source Listing 4-FEB-2004 11:02:12 BLISS-32I T1.1-053 Page 21 Source Listing 19-MAR-2002 10:12:30 [LASTOVICA.XPORT.VMSGEN]XTESTA.BLI;1 COMMAND LINE: BLISSXTESTA/LIST/DEBUG