                                XPORT Binary I/O Test            4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 1
                                                                19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

    0	      1 MODULE XTESTB ( IDENT = 'X00.08',		%TITLE 'XPORT Binary I/O Test'
    0	      2 		MAIN = TEST_BINARY			! 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) 1979 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 binary 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 !--

XTESTB                          XPORT Binary I/O Test            4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 2
X00.08                                                          19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

    1	     40 !
    1	     41 ! TABLE OF CONTENTS:
    1	     42 !
    1	     43 
    1	     44 FORWARD ROUTINE
    1	     45     TEST_BINARY;					! Principal testing routine
    1	     46 
    1	     47 !
    1	     48 ! INCLUDE FILES:
    1	     49 !
    1	     50 LIBRARY  '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 !

XTESTB                          XPORT Binary I/O Test            4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 3
X00.08                                                          19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

    1	     85 GLOBAL ROUTINE TEST_BINARY =
    1	     86 
    1	     87 !++
    1	     88 !
    1	     89 ! FUNCTIONAL DESCRIPTION:
    1	     90 !
    1	     91 !	This module explicitly tests the following XPORT binary 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 !
U   2	    135 ! Initialize the IOB's
U   2	    136 !
U   2	    137 
U   2	    138     $XPO_IOB_INIT( IOB = tty_input );
U   2	    139     $XPO_IOB_INIT( IOB = tty_output );
U   2	    140     $XPO_IOB_INIT( IOB = input_file );
U   2	    141     $XPO_IOB_INIT( IOB = output_file );

XTESTB                          XPORT Binary I/O Test            4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 4
X00.08                                                          19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

U   2	    142 
U   2	    143 %FI
    2	    144 
    2	    145 !
    2	    146 ! Open the user's terminal for output and send the user a greeting message.
    2	    147 !
    2	    148 
    2	    149     $XPO_OPEN( IOB = tty_output,			! Open the user's terminal:
P   2	    150 		FILE_SPEC = $XPO_OUTPUT,		!    standard output file
P   2	    151 		OPTIONS = OUTPUT );			!    open for output
    2	    152 
    2	    153     $XPO_PUT( IOB = tty_output,				! Send the user a greeting message.
P   2	    154 	STRING = skip('XPORT Binary I/O Test') );
    2	    155 
    2	    156 !
    2	    157 ! Open the user's terminal for input.
    2	    158 !
    2	    159 
    2	    160     $XPO_OPEN( IOB = tty_input,				! Open the user's terminal:
P   2	    161 		FILE_SPEC = $XPO_INPUT,			!    standard input file
P   2	    162 		OPTIONS = INPUT );			!    open for input
    2	    163 
    2	    164 !
    2	    165 ! Request the name of the file to be copied and open that file.
    2	    166 !
    2	    167 
    2	    168     WHILE 1 DO						! Keep asking until an input file can be opened.
    2	    169 	BEGIN
    3	    170 	IF NOT $XPO_GET( IOB = tty_input,		! Read a file name from the terminal.
P   3	    171 	    PROMPT = skip('Input file name? ') )
    4	    172 	THEN						! If terminal end-of-file (^Z) is reached,
    3	    173 	    RETURN XPO$_NORMAL;				! terminate program execution.
    3	    174 
    3	    175 	status = $XPO_OPEN( IOB = input_file,		! Open the specified input file:
P   3	    176 			FILE_SPEC =			!    input file-spec descriptor
P   3	    177 			    tty_input[IOB$T_STRING],	!
P   3	    178 			OPTIONS = (BINARY,INPUT),	!    open for binary input I/O
P   3	    179 			FAILURE = XPO$IO_FAILURE );	!    non-terminating I/O failure action routine
    3	    180 
    3	    181 	IF .status THEN EXITLOOP;			! If the input file was successfully opened,
    3	    182 							! exit the file open loop.
    3	    183 	END;
    2	    184 
    2	    185 !
    2	    186 ! Request the name of the output file and open that file.
    2	    187 !
    2	    188 
    2	    189     WHILE 1 DO						! Keep asking until an output file can be opened.
    2	    190 	BEGIN
    3	    191 	IF NOT $XPO_GET( IOB = tty_input,		! Read a file name from the terminal.
P   3	    192 	    PROMPT = skip('Output file name? ') )
    4	    193 	THEN						! If terminal end-of-file (^Z) is reached,
    3	    194 	    RETURN XPO$_NORMAL;				! terminate program execution.
    3	    195 
    3	    196 	status = $XPO_OPEN( IOB = output_file,		! Open the specified output file:
P   3	    197 			FILE_SPEC =			!    output file-spec descriptor
P   3	    198 			    tty_input[IOB$T_STRING],	!

XTESTB                          XPORT Binary I/O Test            4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 5
X00.08                                                          19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

P   3	    199 			OPTIONS = (BINARY,OUTPUT),	!    open for binary output I/O
P   3	    200 			FAILURE = XPO$IO_FAILURE );	!    non-terminating I/O failure action routine
    3	    201 
    3	    202 	IF .status THEN EXITLOOP;			! If the output file was successfully opened,
    3	    203 							! exit the file open loop.
    3	    204 	END;
    2	    205 
    2	    206 !
    2	    207 ! Copy the input file to the output file 50 fullwords at a time.
    2	    208 !
    2	    209 
    2	    210     WHILE $XPO_GET( IOB = input_file,			! Read binary data until end-of-file is reached.
P   2	    211 		    FULLWORDS = 50 )  DO
    2	    212 
    2	    213 	$XPO_PUT( IOB = output_file,			! Write the binary data into the output file:
P   2	    214 		BINARY_DATA = input_file[IOB$T_DATA] );	!    input binary data descriptor
    2	    215 
    2	    216 !
    2	    217 ! Close the input and output files.
    2	    218 !
    2	    219 
    2	    220     $XPO_CLOSE( IOB = input_file );			! Close the input file.
    2	    221 
    2	    222     $XPO_CLOSE( IOB = output_file );			! Close the output file.
    2	    223 
    2	    224 !
    2	    225 ! Send the user a completion message.
    2	    226 !
    2	    227 
    2	    228     $XPO_PUT( IOB = tty_output,				! Send the user a blank line followed by a message.
P   2	    229 	STRING = skip('XPORT Binary I/O Test Complete') );
    2	    230 
    2	    231 !
    2	    232 ! Close the terminal input and output files.
    2	    233 !
    2	    234 
    2	    235     $XPO_CLOSE( IOB = tty_input );			! Close the terminal input file.
    2	    236 
    2	    237     $XPO_CLOSE( IOB = tty_output );			! Close the terminal output file.
    2	    238 
    2	    239 !
    2	    240 ! Terminate XPORT I/O testing.
    2	    241 !
    2	    242 
    2	    243     RETURN XPO$_NORMAL;					! Exit with a normal completion code.
    2	    244     END;
    1	    245 END
    1	    246 ELUDOM

XTESTB                          Machine Code Listing             4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 6
X00.08                                                          19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

				      .psect $CODE$, CON, LCL, SHR, EXE, NOWRT, NOVEC
				      .proc   TEST_BINARY
				      .align 32
				      .global  TEST_BINARY
			TEST_BINARY:											   // 000085
			   { .mii 
002C059B9DC0     0000		      alloc   r119 = rspfs, 0, 89, 3, 0
012000100A00     0001		      add     r40 = @ltoff(TTY_OUTPUT), r1						   // 000151
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
000188001D80     0022		      mov     r118 = br0								   // 000085
			   }
			   { .mmi 
0080C2800A00     0030		      ld8     r40 = TTY_OUTPUT			// r40 = [r40]				   // 000151
0080C2B00AC0     0031		      ld8     r43 = $IOB$FILE_SPEC		// r43 = [r43]
010800101E00     0032		      mov     r120 = r1 ;;								   // 000085
			   }
			   { .mii 
01200000EB40     0040		      mov     r45 = 7									   // 000154
0000B0B01EC0     0041		      sxt4    r123 = r11								   // 000151
0000B0001E80     0042		      sxt4    r122 = r0
			   }
			   { .mmi 
012000400C80     0050		      addl    r50 = 65536, r0								   // 000162
01200000CF80     0051		      mov     r62 = 6									   // 000171
010802858A00     0052		      adds    r40 = 44, r40 ;;								   // 000151
			   }
			   { .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								   // 000154
010802B20CC0     0082		      adds    r51 = 16, r43 ;;								   // 000162
			   }
			   { .mib 
000008000000     0090		      nop.m   0
0000B2801E40     0091		      sxt4    r121 = r40								   // 000151
00A000001000     0092		      br.call.sptk.many br0 = XPO$OPEN
			   }
			   { .mii 

XTESTB                          Machine Code Listing             4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 7
X00.08                          TEST_BINARY                     19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

010807800040     00A0		      mov     r1 = r120
010802858A00     00A1		      adds    r40 = 44, r40								   // 000154
012000006640     00A2		      mov     r25 = 3 ;;
			   }
			   { .mib 
012000100C00     00B0		      add     r48 = @ltoff(@fptr(XPO$FAILURE)), 
					      r1
0000B0001E80     00B1		      sxt4    r122 = 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
0000B3001EC0     00D1		      sxt4    r123 = r48 ;;
0000B2801E40     00D2		      sxt4    r121 = r40
			   }
			   { .mib 
0119F2870C40     00E0		      adds    r49 = -200, r40								   // 000162
0119F2870D40     00E1		      adds    r53 = -200, r40
00A000001000     00E2		      br.call.sptk.many br0 = XPO$PUT ;;						   // 000154
			   }
			   { .mmi 
010807800040     00F0		      mov     r1 = r120
008083100C40     00F1		      ld4     r49 = [r49]								   // 000162
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
0000B0001E80     0112		      sxt4    r122 = r0 ;;
			   }
			   { .mii 
0080C3800E00     0120		      ld8     r56 = XPO$FAILURE			// r56 = [r56]
0000B3401E40     0121		      sxt4    r121 = r52
0119F2880E40     0122		      adds    r57 = -192, r40 ;;							   // 000179
			   }
			   { .mmi 
008C83562000     0130		      st4     [r53] = r49								   // 000162
008C03654000     0131		      st1     [r54] = r42
0000B3801EC0     0132		      sxt4    r123 = r56
			   }
			   { .mfb 
008C83766000     0140		      st4     [r55] = r51
000008000000     0141		      nop.f   0
00A000001000     0142		      br.call.sptk.many br0 = XPO$OPEN
			   }
			   { .mmi 

XTESTB                          Machine Code Listing             4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 8
X00.08                          TEST_BINARY                     19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

010807800040     0150		      mov     r1 = r120 ;;
012000100F00     0151		      add     r60 = @ltoff(@fptr(XPO$FAILURE)), 					   // 000171
					      r1
012000100E80     0152		      add     r58 = @ltoff(@fptr(XPO$IO_FAILURE)), 					   // 000179
					      r1 ;;
			   }
			   { .mmi 
0080C3C00F40     0160		      ld8     r61 = XPO$FAILURE			// r61 = [r60]				   // 000171
0080C3A00EC0     0161		      ld8     r59 = XPO$IO_FAILURE		// r59 = [r58]				   // 000179
000008000000     0162		      nop.i   0 ;;
			   }
	         0170	L$2:												   // 000171
			   { .mmi 
0119F2860FC0     0170		      adds    r63 = -208, r40 ;;
008083F01000     0171		      ld4     r64 = [r63]
000008000000     0172		      nop.i   0 ;;
			   }
			   { .mfb 
01C4040001C0     0180		      cmp4.eq pr7, pr0 = r0, r64
000008000000     0181		      nop.f   0
008600006007     0182	       (pr7)  br.cond.dpnt.few L$4
			   }
			   { .mib 
012000002640     0190		      mov     r25 = 1
0000B4001E40     0191		      sxt4    r121 = r64
00A000001000     0192		      br.call.sptk.many br0 = XST$FREE_TEMP
			   }
			   { .mfi 
010807800040     01A0		      mov     r1 = r120
000008000000     01A1		      nop.f   0
000008000000     01A2		      nop.i   0
			   }
	         01B0	L$4:
			   { .mii 
0119F2871080     01B0		      adds    r66 = -200, r40
0119F28610C0     01B1		      adds    r67 = -208, r40
0119F2818D00     01B2		      adds    r52 = -244, r40 ;;
			   }
			   { .mii 
008C0427C000     01C0		      st1     [r66] = r62
010802B31040     01C1		      adds    r65 = 24, r43
012000006640     01C2		      mov     r25 = 3 ;;
			   }
			   { .mii 
008C84382000     01D0		      st4     [r67] = r65
0000B3D01EC0     01D1		      sxt4    r123 = r61
0000B0001E80     01D2		      sxt4    r122 = r0
			   }
			   { .mib 
000008000000     01E0		      nop.m   0
0000B3401E40     01E1		      sxt4    r121 = r52
00A000001000     01E2		      br.call.sptk.many br0 = XPO$GET
			   }
			   { .mib 
010807800040     01F0		      mov     r1 = r120
00A0308001C0     01F1		      tbit.z  pr7, pr6 = r8, 0
008600092007     01F2	       (pr7)  br.cond.dpnt.few L$6								   // 000170

XTESTB                          Machine Code Listing             4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 9
X00.08                          TEST_BINARY                     19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

			   }
			   { .mii 
010812841100     0200		      adds    r68 = 288, r40								   // 000179
010812849140     0201		      adds    r69 = 292, r40
0108128411C0     0202		      adds    r71 = 288, r40
			   }
			   { .mmi 
010812841200     0210		      adds    r72 = 288, r40
01080A8F1240     0211		      adds    r73 = 248, r40
010812849280     0212		      adds    r74 = 292, r40 ;;
			   }
			   { .mii 
008084401100     0220		      ld4     r68 = [r68]
01080A8E9180     0221		      adds    r70 = 244, r40
012000006640     0222		      mov     r25 = 3 ;;
			   }
			   { .mii 
008084501140     0230		      ld4     r69 = [r69]
0000B3B01EC0     0231		      sxt4    r123 = r59
010073289100     0232		      or      r68 = r68, r50 ;;
			   }
			   { .mii 
000008000000     0240		      nop.m   0
0000B0001E80     0241		      sxt4    r122 = r0
010174503140     0242		      or      r69 = 1, r69
			   }
			   { .mmi 
008C84788000     0250		      st4     [r71] = r68
008C04854000     0251		      st1     [r72] = r42
0000B4601E40     0252		      sxt4    r121 = r70 ;;
			   }
			   { .mmb 
008C84972000     0260		      st4     [r73] = r57
008C84A8A000     0261		      st4     [r74] = r69
00A000001000     0262		      br.call.sptk.many br0 = XPO$OPEN
			   }
			   { .mib 
010807800040     0270		      mov     r1 = r120
00A0308001C0     0271		      tbit.z  pr7, pr6 = r8, 0								   // 000181
0095FFFE0007     0272	       (pr7)  br.cond.dptk.few L$2 ;;
			   }
			   { .mii 
012000101340     0280		      add     r77 = @ltoff(@fptr(XPO$FAILURE)), 					   // 000192
					      r1
0120001012C0     0281		      add     r75 = @ltoff(@fptr(XPO$IO_FAILURE)), 					   // 000200
					      r1
000008000000     0282		      nop.i   0 ;;
			   }
			   { .mmi 
0080C4D01380     0290		      ld8     r78 = XPO$FAILURE			// r78 = [r77]				   // 000192
0080C4B01300     0291		      ld8     r76 = XPO$IO_FAILURE		// r76 = [r75]				   // 000200
000008000000     0292		      nop.i   0 ;;
			   }
	         02A0	L$9:												   // 000192
			   { .mmi 
0119F28613C0     02A0		      adds    r79 = -208, r40 ;;
008084F01400     02A1		      ld4     r80 = [r79]

XTESTB                          Machine Code Listing             4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 10
X00.08                          TEST_BINARY                     19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

000008000000     02A2		      nop.i   0 ;;
			   }
			   { .mfb 
01C405000240     02B0		      cmp4.eq pr9, pr0 = r0, r80
000008000000     02B1		      nop.f   0
008600006009     02B2	       (pr9)  br.cond.dpnt.few L$11
			   }
			   { .mib 
012000002640     02C0		      mov     r25 = 1
0000B5001E40     02C1		      sxt4    r121 = r80
00A000001000     02C2		      br.call.sptk.many br0 = XST$FREE_TEMP
			   }
			   { .mfi 
010807800040     02D0		      mov     r1 = r120
000008000000     02D1		      nop.f   0
000008000000     02D2		      nop.i   0
			   }
	         02E0	L$11:
			   { .mii 
0119F2871480     02E0		      adds    r82 = -200, r40
0119F28614C0     02E1		      adds    r83 = -208, r40
0119F2818D00     02E2		      adds    r52 = -244, r40 ;;
			   }
			   { .mii 
008C0527C000     02F0		      st1     [r82] = r62
010802B41440     02F1		      adds    r81 = 32, r43
012000006640     02F2		      mov     r25 = 3 ;;
			   }
			   { .mii 
008C853A2000     0300		      st4     [r83] = r81
0000B4E01EC0     0301		      sxt4    r123 = r78
0000B0001E80     0302		      sxt4    r122 = r0
			   }
			   { .mib 
000008000000     0310		      nop.m   0
0000B3401E40     0311		      sxt4    r121 = r52
00A000001000     0312		      br.call.sptk.many br0 = XPO$GET
			   }
			   { .mib 
010807800040     0320		      mov     r1 = r120
00A0308001C0     0321		      tbit.z  pr7, pr6 = r8, 0
00860006C007     0322	       (pr7)  br.cond.dpnt.few L$6								   // 000191
			   }
			   { .mii 
0119F2B71500     0330		      adds    r84 = -200, r43								   // 000200
0119F2B79540     0331		      adds    r85 = -196, r43
0119F2B715C0     0332		      adds    r87 = -200, r43
			   }
			   { .mmi 
0119F2B71600     0340		      adds    r88 = -200, r43
0119F2B21640     0341		      adds    r89 = -240, r43
0119F2B79680     0342		      adds    r90 = -196, r43 ;;
			   }
			   { .mii 
008085401500     0350		      ld4     r84 = [r84]
0119F2B19580     0351		      adds    r86 = -244, r43
012000006640     0352		      mov     r25 = 3 ;;

XTESTB                          Machine Code Listing             4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 11
X00.08                          TEST_BINARY                     19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

			   }
			   { .mii 
008085501540     0360		      ld4     r85 = [r85]
0000B4C01EC0     0361		      sxt4    r123 = r76
0100729A9500     0362		      or      r84 = r84, r41 ;;
			   }
			   { .mii 
000008000000     0370		      nop.m   0
0000B0001E80     0371		      sxt4    r122 = r0
010175503540     0372		      or      r85 = 1, r85
			   }
			   { .mmi 
008C857A8000     0380		      st4     [r87] = r84
008C05854000     0381		      st1     [r88] = r42
0000B5601E40     0382		      sxt4    r121 = r86 ;;
			   }
			   { .mmb 
008C85972000     0390		      st4     [r89] = r57
008C85AAA000     0391		      st4     [r90] = r85
00A000001000     0392		      br.call.sptk.many br0 = XPO$OPEN
			   }
			   { .mib 
010807800040     03A0		      mov     r1 = r120
00A0308001C0     03A1		      tbit.z  pr7, pr6 = r8, 0								   // 000202
0095FFFE0007     03A2	       (pr7)  br.cond.dptk.few L$9
			   }
			   { .mii 
0108128516C0     03B0		      adds    r91 = 296, r40								   // 000211
010812841780     03B1		      adds    r94 = 288, r40
000008000000     03B2		      nop.i   0
			   }
			   { .mlx 
0108128517C0     03C0		      adds    r95 = 296, r40
01FFFFFFFFFC     03C1		      movl    r92 = -16777216 ;;
01A000002E
			   }
			   { .mii 
008085B016C0     03D0		      ld4     r91 = [r91]
01080A8E9180     03D1		      adds    r70 = 244, r40
012000006640     03D2		      mov     r25 = 3 ;;
			   }
			   { .mii 
008C05E7C000     03E0		      st1     [r94] = r62
0000B0001E80     03E1		      sxt4    r122 = r0
0000B4601E40     03E2		      sxt4    r121 = r70
			   }
			   { .mmi 
010065CB6080     03F0		      and     r2 = r91, r92 ;;
012008A91740     03F1		      addl    r93 = 131272, r2
000008000000     03F2		      nop.i   0 ;;
			   }
			   { .mii 
008C85FBA000     0400		      st4     [r95] = r93
012000101740     0401		      add     r93 = @ltoff(@fptr(XPO$FAILURE)), 
					      r1
000008000000     0402		      nop.i   0 ;;
			   }

XTESTB                          Machine Code Listing             4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 12
X00.08                          TEST_BINARY                     19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

			   { .mmi 
0080C5D01800     0410		      ld8     r96 = XPO$FAILURE ;;		// r96 = [r93]
000008000000     0411		      nop.m   0
0000B6001EC0     0412		      sxt4    r123 = r96
			   }
			   { .mfb 
000008000000     0420		      nop.m   0
000008000000     0421		      nop.f   0
00A000001000     0422		      br.call.sptk.many br0 = XPO$GET
			   }
			   { .mib 
010807800040     0430		      mov     r1 = r120
00A0308001C0     0431		      tbit.z  pr7, pr6 = r8, 0
00860001A007     0432	       (pr7)  br.cond.dpnt.few L$16 ;;								   // 000210
			   }
			   { .mii 
012000101880     0440		      add     r98 = @ltoff(@fptr(XPO$FAILURE)), 					   // 000214
					      r1
010812851840     0441		      adds    r97 = 296, r40
000008000000     0442		      nop.i   0 ;;
			   }
			   { .mfi 
0080C62018C0     0450		      ld8     r99 = XPO$FAILURE			// r99 = [r98]
000008000000     0451		      nop.f   0
000008000000     0452		      nop.i   0 ;;
			   }
	         0460	L$17:
			   { .mii 
0119F2B71900     0460		      adds    r100 = -200, r43
0119F2BA1940     0461		      adds    r101 = -176, r43
010812851980     0462		      adds    r102 = 296, r40								   // 000211
			   }
			   { .mmi 
0119F2B19580     0470		      adds    r86 = -244, r43								   // 000214
012000006640     0471		      mov     r25 = 3
0000B6301EC0     0472		      sxt4    r123 = r99 ;;
			   }
			   { .mii 
008C0645A000     0480		      st1     [r100] = r45
0000B0001E80     0481		      sxt4    r122 = r0
0000B5601E40     0482		      sxt4    r121 = r86
			   }
			   { .mib 
008C865C2000     0490		      st4     [r101] = r97
010812841A00     0491		      adds    r104 = 288, r40								   // 000211
00A000001000     0492		      br.call.sptk.many br0 = XPO$PUT ;;						   // 000214
			   }
			   { .mii 
008086601980     04A0		      ld4     r102 = [r102]								   // 000211
010812851A40     04A1		      adds    r105 = 296, r40
01080A8E9180     04A2		      adds    r70 = 244, r40
			   }
			   { .mmi 
008C0687C000     04B0		      st1     [r104] = r62
012000006640     04B1		      mov     r25 = 3
0000B6001EC0     04B2		      sxt4    r123 = r96 ;;
			   }

XTESTB                          Machine Code Listing             4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 13
X00.08                          TEST_BINARY                     19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

			   { .mii 
010807800040     04C0		      mov     r1 = r120									   // 000214
0000B0001E80     04C1		      sxt4    r122 = r0									   // 000211
010065CCC080     04C2		      and     r2 = r102, r92 ;;
			   }
			   { .mii 
000008000000     04D0		      nop.m   0
0000B4601E40     04D1		      sxt4    r121 = r70
012008A919C0     04D2		      addl    r103 = 131272, r2 ;;
			   }
			   { .mfb 
008C869CE000     04E0		      st4     [r105] = r103
000008000000     04E1		      nop.f   0
00A000001000     04E2		      br.call.sptk.many br0 = XPO$GET
			   }
			   { .mib 
010807800040     04F0		      mov     r1 = r120
00A0308001C0     04F1		      tbit.z  pr7, pr6 = r8, 0
0095FFFEE006     04F2	       (pr6)  br.cond.dptk.few L$17 ;;								   // 000210
			   }
	         0500	L$16:												   // 000220
			   { .mii 
012000101B00     0500		      add     r108 = @ltoff(@fptr(XPO$FAILURE)), 
					      r1
010812841AC0     0501		      adds    r107 = 288, r40
012000005A80     0502		      mov     r106 = 2
			   }
			   { .mmi 
01080A8E9180     0510		      adds    r70 = 244, r40
012000006640     0511		      mov     r25 = 3
0000B0001E80     0512		      sxt4    r122 = r0 ;;
			   }
			   { .mii 
0080C6C01B00     0520		      ld8     r108 = XPO$FAILURE		// r108 = [r108]
0000B4601E40     0521		      sxt4    r121 = r70
0119F2B71B40     0522		      adds    r109 = -200, r43								   // 000222
			   }
			   { .mmi 
008C06BD4000     0530		      st1     [r107] = r106								   // 000220
0119F2B19580     0531		      adds    r86 = -244, r43								   // 000222
010802B50AC0     0532		      adds    r43 = 40, r43 ;;
			   }
			   { .mib 
000008000000     0540		      nop.m   0
0000B6C01EC0     0541		      sxt4    r123 = r108								   // 000220
00A000001000     0542		      br.call.sptk.many br0 = XPO$CLOSE
			   }
			   { .mii 
010807800040     0550		      mov     r1 = r120
012000006640     0551		      mov     r25 = 3									   // 000222
0000B0001E80     0552		      sxt4    r122 = r0
			   }
			   { .mii 
008C06DD4000     0560		      st1     [r109] = r106
0000B5601E40     0561		      sxt4    r121 = r86 ;;
012000101B80     0562		      add     r110 = @ltoff(@fptr(XPO$FAILURE)), 
					      r1 ;;

XTESTB                          Machine Code Listing             4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 14
X00.08                          TEST_BINARY                     19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

			   }
			   { .mmi 
0080C6E01B80     0570		      ld8     r110 = XPO$FAILURE ;;		// r110 = [r110]
000008000000     0571		      nop.m   0
0000B6E01EC0     0572		      sxt4    r123 = r110
			   }
			   { .mfb 
000008000000     0580		      nop.m   0
000008000000     0581		      nop.f   0
00A000001000     0582		      br.call.sptk.many br0 = XPO$CLOSE
			   }
			   { .mii 
010807800040     0590		      mov     r1 = r120
010802858A00     0591		      adds    r40 = 44, r40								   // 000229
012000006640     0592		      mov     r25 = 3 ;;
			   }
			   { .mib 
012000101C40     05A0		      add     r113 = @ltoff(@fptr(XPO$FAILURE)), 
					      r1
0000B0001E80     05A1		      sxt4    r122 = r0
004000000000     05A2		      nop.b   0 ;;
			   }
			   { .mmi 
00AC0285A600     05B0		      st1     [r40] = r45, 24
0080C7101C40     05B1		      ld8     r113 = XPO$FAILURE		// r113 = [r113]
000008000000     05B2		      nop.i   0 ;;
			   }
			   { .mii 
00BC8A856F00     05C0		      st4     [r40] = r43, -68
0000B7101EC0     05C1		      sxt4    r123 = r113 ;;
0000B2801E40     05C2		      sxt4    r121 = r40
			   }
			   { .mib 
0119F2871C80     05D0		      adds    r114 = -200, r40								   // 000235
0119F2818D00     05D1		      adds    r52 = -244, r40
00A000001000     05D2		      br.call.sptk.many br0 = XPO$PUT ;;						   // 000229
			   }
			   { .mii 
010807800040     05E0		      mov     r1 = r120
012000006640     05E1		      mov     r25 = 3									   // 000235
0000B0001E80     05E2		      sxt4    r122 = r0
			   }
			   { .mii 
008C072D4000     05F0		      st1     [r114] = r106
0000B3401E40     05F1		      sxt4    r121 = r52 ;;
012000101CC0     05F2		      add     r115 = @ltoff(@fptr(XPO$FAILURE)), 
					      r1 ;;
			   }
			   { .mmi 
0080C7301CC0     0600		      ld8     r115 = XPO$FAILURE ;;		// r115 = [r115]
000008000000     0601		      nop.m   0
0000B7301EC0     0602		      sxt4    r123 = r115
			   }
			   { .mfb 
000008000000     0610		      nop.m   0
000008000000     0611		      nop.f   0
00A000001000     0612		      br.call.sptk.many br0 = XPO$CLOSE

XTESTB                          Machine Code Listing             4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 15
X00.08                          TEST_BINARY                     19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

			   }
			   { .mii 
010807800040     0620		      mov     r1 = r120
010802858A00     0621		      adds    r40 = 44, r40								   // 000237
012000006640     0622		      mov     r25 = 3 ;;
			   }
			   { .mib 
012000101D40     0630		      add     r117 = @ltoff(@fptr(XPO$FAILURE)), 
					      r1
0000B0001E80     0631		      sxt4    r122 = r0
004000000000     0632		      nop.b   0 ;;
			   }
			   { .mmi 
00BC0A8D5500     0640		      st1     [r40] = r106, -44
0080C7501D40     0641		      ld8     r117 = XPO$FAILURE		// r117 = [r117]
000008000000     0642		      nop.i   0 ;;
			   }
			   { .mii 
000008000000     0650		      nop.m   0
0000B2801E40     0651		      sxt4    r121 = r40
0000B7501EC0     0652		      sxt4    r123 = r117
			   }
			   { .mfb 
000008000000     0660		      nop.m   0
000008000000     0661		      nop.f   0
00A000001000     0662		      br.call.sptk.many br0 = XPO$CLOSE
			   }
			   { .mfi 
010807800040     0670		      mov     r1 = r120
000008000000     0671		      nop.f   0
000008000000     0672		      nop.i   0
			   }
	         0680	L$6:												   // 000170
			   { .mlx 
000008000000     0680		      nop.m   0
000000000000     0681		      movl    r8 = 2129921 ;;								   // 000243
0190004044
			   }
			   { .mii 
000008000000     0690		      nop.m   0
0001540EE000     0691		      mov.i   rspfs = r119
000E001EC000     0692		      mov     br0 = r118 ;;
			   }
			   { .mfb 
000008000000     06A0		      nop.m   0
000008000000     06A1		      nop.f   0
000108001100     06A2		      br.ret.sptk.many br0 ;;
			   }
				      .endp   TEST_BINARY

Routine Size: 1712 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

XTESTB                          Machine Code Listing             4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 16
X00.08                          TEST_BINARY                     19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

				      .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$PROMPT, 8, 8
				      .lcomm  $IOB$OUTPUT, 8, 8
				      .lcomm  P.AAA, 10, 16
				      .lcomm  fill$$1, 2, 2
				      .lcomm  P.AAB, 22, 16
				      .lcomm  fill$$2, 2, 2
				      .lcomm  P.AAC, 9, 16
				      .lcomm  fill$$3, 3, 4
				      .lcomm  P.AAD, 18, 16
				      .lcomm  fill$$4, 2, 2
				      .lcomm  P.AAE, 19, 16
				      .lcomm  fill$$5, 1, 1
				      .lcomm  P.AAF, 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:
    0016         03D8		      data2   0x16 // data2 22
      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$PROMPT:
    0013         03F0		      data2   0x13 // data2 19
      0E         03F2		      data1   0xE // data1 14
      01         03F3		      data1   0x1 // data1 1
00000000         03F4		      data4   P.AAE
			$IOB$OUTPUT:
    001F         03F8		      data2   0x1F // data2 31
      0E         03FA		      data1   0xE // data1 14
      01         03FB		      data1   0x1 // data1 1
00000000         03FC		      data4   P.AAF
				      .psect $PLIT$, CON, LCL, NOSHR, NOEXE, NOWRT, NOVEC
			P.AAA:
24535953         0000		      string  "SYS$OUTPUT"
5054554F         0004
    5455         0008

			P.AAB:

XTESTB                          Machine Code Listing             4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 17
X00.08                          TEST_BINARY                     19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

4F50580A         000C		      string  "\X0AXPORT Binary I/O Test"
42205452         0010
72616E69         0014
2F492079         0018
6554204F         001C
    7473         0020

			P.AAC:
24535953         0024		      string  "SYS$INPUT"
55504E49         0028
      54         002C

			P.AAD:
706E490A         0030		      string  "\X0AInput file name? "
66207475         0034
20656C69         0038
656D616E         003C
    203F         0040

			P.AAE:
74754F0A         0044		      string  "\X0AOutput file name? "
20747570         0048
656C6966         004C
6D616E20         0050
  203F65         0054

			P.AAF:
4F50580A         0058		      string  "\X0AXPORT Binary I/O Test Complete"
42205452         005C
72616E69         0060
2F492079         0064
6554204F         0068
43207473         006C
6C706D6F         0070
  657465         0074

				      .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$FAILURE, @function 
				      .global  XPO$FAILURE

XTESTB                          Machine Code Listing             4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 18
X00.08                          TEST_BINARY                     19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

				      .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$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 
				      .global  XPO$CLOSE
				      .section .data
				      .type   XPO$FAILURE, @function 
				      .global  XPO$FAILURE
				      .section .data
				      .type   XPO$PUT, @function 
				      .global  XPO$PUT

XTESTB                          Machine Code Listing             4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 19
X00.08                          TEST_BINARY                     19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

				      .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


    0	    247 
    0	    248 


                                Source Listing                   4-FEB-2004 11:02:12  BLISS-32I T1.1-053                Page 20
                                Source Listing                  19-MAR-2002 10:12:31  [LASTOVICA.XPORT.VMSGEN]XTESTB.BLI;1

COMMAND LINE:

BLISSXTESTB/LIST/DEBUG
