

; Bliss-32 10.1-416	Monday 21-AUG-1978 19:28:33	DBB3:[RTL.SRC]FUDFRU.B32;6					Page 1

;

;00100  0001	MODULE FOR$$UDF_RU (	! FORTRAN Read unformatted UDF

;00200  0002		IDENT = '0-08'	! File: FUDFRU.B32

;00300  0003			) =

;00400  0004	BEGIN

;00500  0005	

;00600  0006	!

;00700  0007	! COPYRIGHT (C) 1977

;00800  0008	! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

;00900  0009	!

;01000  0010	! THIS SOFTWARE IS FURNISHED  UNDER A LICENSE FOR USE ONLY ON A SINGLE

;01100  0011	! COMPUTER  SYSTEM AND  MAY BE  COPIED ONLY WITH  THE INCLUSION OF THE

;01200  0012	! ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE, OR ANY OTHER COPIES THEREOF,

;01300  0013	! MAY NOT BE PROVIDED OR  OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON

;01400  0014	! EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE

;01500  0015	! TERMS.  TITLE TO AND  OWNERSHIP OF THE  SOFTWARE  SHALL AT ALL TIMES

;01600  0016	! REMAIN IN DEC.

;01700  0017	!

;01800  0018	! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE

;01900  0019	! AND SHOULD  NOT BE CONSTRUED  AS A COMMITMENT  BY DIGITAL  EQUIPMENT

;02000  0020	! CORPORATION.

;02100  0021	!

;02200  0022	! DEC ASSUMES  NO  RESPONSIBILITY  FOR  THE USE OR  RELIABILITY OF ITS

;02300  0023	! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

;02400  0024	

;02500  0025	!++

;02600  0026	! FACILITY:  FORTRAN Support Library - not user callable

;02700  0027	!

;02800  0028	! ABSTRACT:

;02900  0029	!

;03000  0030	!	This module implements FORTRAN Read unformatted I/O

;03100  0031	!	statements (sequential access - S, direct access - D,

;03200  0032	!	at the User data Formatter level of

;03300  0033	!	abstraction (UDF level is 2nd level). This module

;03400  0034	!	calls the appropriate Read record

;03500  0035	!	routine at the record handling level of abstraction (REC

;03600  0036	!	level is 3rd level) to Read a record.

;03700  0037	!

;03800  0038	! ENVIRONMENT:  User access mode; reentrant AST level or not.

;03900  0039	!

;04000  0040	! AUTHOR:  Thomas N. Hastings;	 CREATION DATE: 31-Aug-77

;04100  0041	!

;04200  0042	! MODIFIED BY:

;04300  0043	!	Thomas N. Hastings, 31-Aug-77: Version 01

;04400  0044	! 01	-  original

;04500  0045	! 0-3	- Removed parameters to record level routines JMT 17-OCT-77

;04600  0046	! 0-5	- Global register CCB.  JMT 8-Apr-78

;04700  0047	! 0-06	- Change REQUIRE files for VAX system build.  DGP 28-Apr-78

;04710  0048	! 0-07	- Use JSB linkages.  TNH 22-May-78

;04720  0049	! 0-08	- PIC dispatch tables.  TNH 7-June-78

;04800  0050	!--



; Bliss-32 10.1-416	Monday 21-AUG-1978 19:28:33	DBB3:[RTL.SRC]FUDFRU.B32;6					Page 2

;

;00100  0051	!

;00200  0052	! LINKAGES:

;00300  0053	!

;00500  0054	REQUIRE 'RTLIN:FLNK';		! Define all linkages

; %PRINT:	File: FLNK.B32; Version 1, edit 12, TNH 2-Aug-78

;00600  0276	

;00700  0277	!

;00800  0278	! TABLE OF CONTENTS:

;00900  0279	!

;01000  0280	

;01100  0281	FORWARD ROUTINE

;01200  0282		FOR$$UDF_RU0: JSB_UDF0 NOVALUE,	! initialization

;01300  0283		FOR$$UDF_RU1: CALL_CCB NOVALUE,	! format one user I/O list element

;01400  0284		FOR$$UDF_RU9: JSB_UDF9 NOVALUE;	! end of user I/O list - finish

;01500  0285	

;01600  0286	!

;01700  0287	! INCLUDE FILES:

;01800  0288	!

;01900  0289		REQUIRE 'RTLML:FISB';		! I/O statement block (ISB) offsets 

; %PRINT:	File: FISB.MDL which produces FISB.B32! Version 1, EDIT 16, DGP 02-Jun-78

;02000  0498		REQUIRE 'RTLIN:FMAC';		! Macros

; %PRINT:	Filename: FMAC.B32; Version 1, edit 29, TNH, 7-JUN-78

; %PRINT:	 REQUIRE FILE: LPSECT.B32, VERSION 01-5, TNH, 27-Jun-78

;02100  0678					! type codes

;02200  0679		REQUIRE 'RTLIN:ODBG';		! OTS debugging macros

; %PRINT:	Filename: NODBG.B32; Version 0, edit 20, JMT, 17-Jan-78

;02300  0755	

;02400  0756	!

;02500  0757	! MACROS:

;02600  0758	!

;02700  0759	

;02800  0760	

;02900  0761	!

;03000  0762	! EQUATED SYMBOLS:

;03100  0763	!

;03200  0764	

;03300  0765	!

;03400  0766	! PSECT DECLARATIONS:

;03500  0767	!

;03600  0768	

;03700  0769		DECLARE_PSECTS (FOR);	! declare PSECTs for FOR$ facility

;03800  0770	

;03900  0771	!

;04000  0772	! OWN STORAGE:

;04100  0773	!

;04200  0774	!	None

;04300  0775	!

;04400  0776	! EXTERNAL REFERENCES:

;04500  0777	!

;04600  0778	

;04700  0779	EXTERNAL 

;04800  0780		FOR$$AA_REC_PR0:ADR_VECTOR,	! PIC array of record processor

;04900  0781						! procedure-initializations in REC

;05000  0782						! level of abstraction. Indexed by

;05100  0783						! I/O statement type (ISB$B_STTM_TYPE)



; Bliss-32 10.1-416	Monday 21-AUG-1978 19:28:33	DBB3:[RTL.SRC]FUDFRU.B32;6					Page 2-1

;

;05200  0784		FOR$$AA_REC_PR1:ADR_VECTOR,	! PIC array of record processor procedures

;05300  0785						! Read a record in REC level of

;05400  0786						! abstraction. Indexed by I/O statement

;05500  0787						! type (ISB$B_STTM_TYPE)

;05600  0788		FOR$$AA_REC_PR9:ADR_VECTOR;	! PIC array of record processor procedures

;05700  0789						! Read last record in REC level of

;05800  0790						! abstraction. Indexed by I/O

;05900  0791						! statement type (ISB$B_STTM_TYPE)



; Bliss-32 10.1-416	Monday 21-AUG-1978 19:28:33	DBB3:[RTL.SRC]FUDFRU.B32;6					Page 3

;

;00100  0792	GLOBAL ROUTINE FOR$$UDF_RU0 	! Read unformatted UDF initialization

;00200  0793		: JSB_UDF0 NOVALUE =

;00300  0794	

;00400  0795	!++

;00500  0796	! FUNCTIONAL DESCRIPTION:

;00600  0797	!

;00700  0798	! Initialize Read unformatted User data formatter (UDF)

;00800  0799	!

;00810  0800	! CALLING SEQUENCE:

;00820  0801	!

;00830  0802	!	JSB FOR$$UDF_RU0 ()

;00840  0803	!

;00900  0804	! FORMAL PARAMETERS:

;01000  0805	!

;01100  0806	!	None.

;01200  0807	!

;01300  0808	! IMPLICIT INPUTS:

;01400  0809	!

;01500  0810	!	CCB			Pointer to current logical unit block

;02000  0811	!	ISB$B_STTM_TYPE		I/O statement type code - set by

;02100  0812	!				each I/O statement initialization

;02200  0813	!

;02300  0814	! IMPLICIT OUTPUTS:

;02400  0815	!

;02500  0816	!	ISB$A_BUF_PTR		Adr. of next byte of input

;02600  0817	!	ISB$A_BUG_END		Adr. of end+1 byte of input buffer

;02700  0818	!				data buffer

;02800  0819	!

;02900  0820	! ROUTINE VALUE:

;03000  0821	! COMPLETION CODES:

;03100  0822	!

;03200  0823	!	NONE

;03300  0824	!

;03400  0825	! SIDE EFFECTS:

;03500  0826	!

;03600  0827	!	NONE

;03700  0828	!

;03800  0829	!--



; Bliss-32 10.1-416	Monday 21-AUG-1978 19:28:33	DBB3:[RTL.SRC]FUDFRU.B32;6					Page 4

;

;00100  0830	    BEGIN

;00200  0831	

;00300  0832	    EXTERNAL REGISTER

;00400  0833		CCB: REF BLOCK[, BYTE];

;00500  0834	

;00600  0835	    !+

;00700  0836	    ! Print input formals and implicit inputs if debugging

;00800  0837	    !-

;00900  0838	

;01000  0839	    INPUT_FORMALS (FOR$$UDF_RU0);

;01100  0840	    IMPLICIT_INPUTS (FOR$$UDF_RU0, 'OTS$$A_CUR_LUB', .OTS$$A_CUR_LUB, '.CCB[ISB$B_STTM_TYPE]', .CCB[ISB$B_STTM_TYPE]

;01200  0841	

;01300  0842	    !+

;01400  0843	    ! Initialize Record processing level of abstraction.

;01500  0844	    ! Set pointer to current (ISB$A_BUF_PTR)  and last+1

;01600  0845	    ! (ISB$A_BUF_END) character position for user data in

;01700  0846	    ! input buffer

;01800  0847	    !-

;01900  0848	

;02000  0849	    JSB_REC0 (FOR$$AA_REC_PR0 + .FOR$$AA_REC_PR0[.CCB[ISB$B_STTM_TYPE]]);

;02100  0850	

;02200  0851	    !+

;02300  0852	    ! Print function value, output formals, and implicit outputs, if debugging

;02400  0853	    !-

;02500  0854	

;02600  0855	    FUNCTION_VALUE (FOR$$UDF_RU0);

;02700  0856	    OUTPUT_FORMALS (FOR$$UDF_RU0);

;02800  0857	    IMPLICIT_OUTPUT  (FOR$$UDF_RU0,

;02900P 0858		'.CCB[ISB$A_BUF_PTR]', .CCB[ISB$A_BUF_PTR],

;03000P 0859		'.CCB[ISB$A_BUF_END]', .CCB[ISB$A_BUF_END]);

;03100  0860	    RETURN;

;03200  0861	    END;		! End of FOR$$UDF_RU0 routine





							    .TITLE  FOR$$UDF_RU

							    .IDENT  \0-08\



							    .EXTRN  FOR$$AA_REC_PR0, FOR$$AA_REC_PR1, FOR$$AA_REC_PR9



							    .PSECT  FOR$CODE,NOWRT,  SHR,  PIC,2



		         50 	  A5   AB  9A 00000 FOR$$UDF_RU0::

							    MOVZBL  -91(CCB), R0					      ; 0849

		         50 	0000GCF40  32 00004 	    CVTWL   FOR$$AA_REC_PR0[R0], R0				      ;

				0000GCF40  16 0000A 	    JSB     FOR$$AA_REC_PR0[R0]					      ;

					   05 0000F 	    RSB     							      ; 0792



; Routine Size:  16 bytes







; Bliss-32 10.1-416	Monday 21-AUG-1978 19:28:33	DBB3:[RTL.SRC]FUDFRU.B32;6					Page 5

;

;00100  0862	GLOBAL ROUTINE FOR$$UDF_RU1 (	! Copy one user input element

;00200  0863		ELEM_TYPE,		! Type code of user I/O list element

;00300  0864		ELEM_SIZE,		! No. of addressable units in element

;00400  0865		ELEM_ADR)		! Adr. of element

;00500  0866		: CALL_CCB NOVALUE =

;00600  0867	

;00700  0868	!++

;00800  0869	! FUNCTIONAL DESCRIPTION:

;00900  0870	!

;01000  0871	!	FOR$$UDF_RU1 copies from current input buffer to a single user I/O list element

;01100  0872	!	If the entire user element exceeds the remainder of the input buffer,

;01200  0873	!	only part is copied and a new buffer is input by calling

;01300  0874	!	the proper record level (3rd level of abstraction).

;01400  0875	!	FOR$$UDF_RU is the same for sequential and direct.

;01500  0876	!	Only the record level of abstraction is different for sequential

;01600  0877	!	and direct.  In fact direct can not input more than one record.

;01700  0878	!

;01710  0879	! CALLING SEQUENCE:

;01720  0880	!

;01730  0881	!	CALL FOR$$UDF_RU1 (elem_type.rlu.v, elem_size.rlu.v, elem_adr.rx.r)

;01740  0882	!

;01800  0883	! FORMAL PARAMETERS:

;01900  0884	!

;02000  0885	!	ELEM_TYPE.rlu.v		Type code of user I/O list

;02100  0886	!				element. Form: ELEM_TYPE_x

;02200  0887	!				x = B,W,L,RU,LU,F,D,FC or T.

;02300  0888	!	ELEM_SIZE.rlu.v		Size of user I/O list element

;02400  0889	!				in addressable machine units

;02500  0890	!	ELEM_ADR.rx.r		Adr. of user I/O list element

;02600  0891	!				x = b, w, l, RU, lu, f, d, fc or t.

;02700  0892	!

;02800  0893	! IMPLICIT INPUTS:

;02900  0894	!

;03000  0895	!	OTS$$A_CUR_LUB		Pointer to current logical unit block

;03100  0896	!				(LUB). Used to setup base pointer ISB

;03200  0897	!				to current I/O statement block

;03300  0898	!	ISB$B_STTM_TYPE		I/O statement type code - set by each

;03400  0899	!				I/O statement initialization

;03500  0900	!

;03600  0901	! The following ISB locations are set only by previous calls to

;03700  0902	! FOR$$UDF_RU{0,1}, i.e., are effectively OWN.

;03800  0903	!

;03900  0904	!	ISB$A_BUF_PTR		Pointer to next char. position

;04000  0905	!				in user data part of input buffer

;04100  0906	!	ISB$A_BUF_END		Adr. of last+1 char position of input buffer.

;04200  0907	!

;04300  0908	! IMPLICIT OUTPUTS:

;04400  0909	!

;04500  0910	!

;04600  0911	! The following ISB locations are set only by previous calls

;04700  0912	! to FOR$$UDF_RU{0,1}, i.e., are effectively OWN.

;04800  0913	!

;04900  0914	!	ISB$A_BUF_PTR		Pointer to next char. position

;05000  0915	!				in user data part of input buffer

;05100  0916	!



; Bliss-32 10.1-416	Monday 21-AUG-1978 19:28:33	DBB3:[RTL.SRC]FUDFRU.B32;6					Page 5-1

;

;05200  0917	! FUNCTIONAL VALUE:

;05300  0918	!

;05400  0919	!	NONE

;05500  0920	!

;05600  0921	! SIDE EFFECTS:

;05700  0922	!

;05800  0923	!	If direct access, may SIGNAL_STOP FOR$_RECTOOBIG (66='RECORD TOO BIG')

;05900  0924	!--

;06000  0925	

;06100  0926	    BEGIN

;06200  0927	

;06300  0928	    EXTERNAL REGISTER

;06400  0929		CCB: REF BLOCK[, BYTE];

;06500  0930	

;06600  0931	    LOCAL

;06700  0932		TMP_ELEM_SIZE,		! temp no. ob bytes left in user element to copy

;06800  0933		TMP_ELEM_ADR,		! temp adr. of rest of user element to copy

;06900  0934		TMP_DIFF;		! temp no. of bytes left to move to user element

;07000  0935	

;07100  0936	    !+

;07200  0937	    ! Print input formals, implicits inputs, if debugging

;07300  0938	    !-

;07400  0939	

;07500  0940	    INPUT_FORMALS (FOR$$UDF_RU1, '.ELEM_TYPE', .ELEM_TYPE, '.ELEM_SIZE', .ELEM_SIZE, '.ELEM_ADR', .ELEM_ADR,

;07600P 0941		'.ELEM_ADR[0] (ref)', (IF .ELEM_ADR NEQ 0 THEN .ELEM_ADR[0] ELSE 0));

;07700  0942	    IMPLICIT_INPUTS ( FOR$$UDF_RU1, '.OTS$$A_CUR_LUB', .OTS$$A_CUR_LUB,

;07800P 0943		'.CCB[ISB$B_STTM_TYPE]', .CCB[ISB$B_STTM_TYPE],

;07900P 0944		'.CCB[ISB$A_BUF_PTR]', .CCB[ISB$A_BUF_PTR],

;08000P 0945		'.CCB[ISB$A_BUF_END]', .CCB[ISB$A_BUF_END]);

;08100  0946	

;08200  0947	    !+

;08300  0948	    ! Copy as much of input buffer as will fit into user element.  If need more than buffer has

;08400  0949	    ! (sequential only since it will be an error for direct) call the

;08500  0950	    ! record level and input the record and continue copying to user element.

;08600  0951	    !-

;08700  0952	

;08800  0953	    TMP_ELEM_SIZE = .ELEM_SIZE;

;08900  0954	    TMP_ELEM_ADR = .ELEM_ADR;

;09000  0955	    WHILE .CCB[ISB$A_BUF_PTR] + .TMP_ELEM_SIZE GTRA .CCB[ISB$A_BUF_END] DO

;09100  0956		BEGIN

;09200  0957		TMP_DIFF = .CCB[ISB$A_BUF_END] - .CCB[ISB$A_BUF_PTR];

;09300  0958		TMP_ELEM_ADR = CH$MOVE (.TMP_DIFF, .CCB[ISB$A_BUF_PTR], .TMP_ELEM_ADR);

;09400  0959		TMP_ELEM_SIZE = .TMP_ELEM_SIZE - .TMP_DIFF;

;09500  0960		CCB[ISB$A_BUF_PTR] = .CCB[ISB$A_BUF_PTR] + .TMP_DIFF;

;09600  0961		JSB_REC1 (FOR$$AA_REC_PR1 + .FOR$$AA_REC_PR1[.CCB[ISB$B_STTM_TYPE]]);

;09700  0962		END;

;09800  0963	

;09900  0964	    !+

;10000  0965	    ! Copy from input buffer to the remainder of the user element.

;10100  0966	    ! Update buffer pointer (ISB$A_BUF_PTR) to point to last byte+1 moved.

;10200  0967	    !-

;10300  0968	

;10400  0969	    CH$MOVE (.TMP_ELEM_SIZE, .CCB[ISB$A_BUF_PTR], .TMP_ELEM_ADR);

;10500  0970	    CCB[ISB$A_BUF_PTR] = .CCB[ISB$A_BUF_PTR] + .TMP_ELEM_SIZE;

;10600  0971	



; Bliss-32 10.1-416	Monday 21-AUG-1978 19:28:33	DBB3:[RTL.SRC]FUDFRU.B32;6					Page 5-2

;

;10700  0972	    !-

;10800  0973	

;10900  0974	    FUNCTION_VALUE (FOR$$UDF_WF1);

;11000  0975	    OUTPUT_FORMALS (FOR$$UDF_WF1);

;11100  0976	    IMPLICIT_OUTPUT (FOR$$UDF_WF1, '.CCB[ISB$A_PTR_END]', .CCB[ISB$A_PTR_END],

;11200P 0977		'.CCB[ISB$A_BUF_PTR]', .CCB[ISB$A_BUF_PTR]);

;11300  0978	    RETURN;		! Return from FOR$$UDF_WF1 routine

;11400  0979	    END;		!	End of FOR$$UDF_RU1











					 01FC 00010 	    .ENTRY  FOR$$UDF_RU1, Save R2,R3,R4,R5,R6,R7,R8		      ; 0862

		         56 	  08   AC  7D 00012 	    MOVQ    ELEM_SIZE, TMP_ELEM_SIZE				      ; 0953

	   50 	         56 	  B8   AB  C1 00016 1$:     ADDL3   -72(CCB), TMP_ELEM_SIZE, R0				      ; 0955

		    BC   AB	       50  D1 0001B 	    CMPL    R0, -68(CCB)					      ;

				       26  1B 0001F 	    BLEQU   2$							      ;

	   58 	    BC   AB	  B8   AB  C3 00021 	    SUBL3   -72(CCB), -68(CCB), TMP_DIFF			      ; 0957

	   67 	    B8   BB	       58  28 00027 	    MOVC3   TMP_DIFF, @-72(CCB), (TMP_ELEM_ADR)			      ; 0958

		         57 	       53  D0 0002C 	    MOVL    R3, TMP_ELEM_ADR					      ;

		         56 	       58  C2 0002F 	    SUBL2   TMP_DIFF, TMP_ELEM_SIZE				      ; 0959

		    B8   AB	       58  C0 00032 	    ADDL2   TMP_DIFF, -72(CCB)					      ; 0960

		         50 	  A5   AB  9A 00036 	    MOVZBL  -91(CCB), R0					      ; 0961

		         50 	0000GCF40  32 0003A 	    CVTWL   FOR$$AA_REC_PR1[R0], R0				      ;

				0000GCF40  16 00040 	    JSB     FOR$$AA_REC_PR1[R0]					      ;

				       CF  11 00045 	    BRB     1$							      ; 0955

	   67 	    B8   BB	       56  28 00047 2$:     MOVC3   TMP_ELEM_SIZE, @-72(CCB), (TMP_ELEM_ADR)		      ; 0969

		    B8   AB	       56  C0 0004C 	    ADDL2   TMP_ELEM_SIZE, -72(CCB)				      ; 0970

					   04 00050 	    RET     							      ; 0862



; Routine Size:  65 bytes







; Bliss-32 10.1-416	Monday 21-AUG-1978 19:28:33	DBB3:[RTL.SRC]FUDFRU.B32;6					Page 6

;

;00100  0980	GLOBAL ROUTINE FOR$$UDF_RU9  ! unformatted input - end of I/O list call

;00200  0981		: JSB_UDF9 NOVALUE =

;00300  0982	

;00400  0983	

;00500  0984	!++

;00600  0985	! FUNCTIONAL DESCRIPTION:

;00700  0986	!

;00800  0987	!	FOR$$UDF_RU9 performs end of I/O list input formatting.

;00900  0988	!

;00910  0989	! CALLING SEQUENCE:

;00920  0990	!

;00930  0991	!	JSB FOR$$UDF_RU9 ()

;00940  0992	!

;01000  0993	! FORMAL PARAMETERS:

;01100  0994	!

;01200  0995	!	NONE

;01300  0996	!

;01400  0997	! IMPLICIT INPUTS:

;01500  0998	!

;01600  0999	!	See FOR$$UDF_RU1

;01700  1000	!

;01800  1001	!

;01900  1002	! IMPLICIT OUTPUTS:

;02000  1003	!

;02100  1004	!	See FOR$$UDF_RU1

;02200  1005	!

;02300  1006	! FUNCTION VALUE:

;02400  1007	!

;02500  1008	!	NONE

;02600  1009	!

;02700  1010	! SIDE EFFECTS:

;02800  1011	!

;02900  1012	!	See FOR$$UDF_RU1

;03000  1013	!--

;03100  1014	

;03200  1015	    BEGIN

;03300  1016	

;03400  1017	    EXTERNAL REGISTER

;03500  1018		CCB: REF BLOCK[, BYTE];

;03600  1019	

;03700  1020	    !+

;03800  1021	    ! Call record level of abstraction to input buffer from beginning up to but not including ISB$A_BUF_PTR

;03900  1022	    !-

;04000  1023	

;04100  1024	    JSB_REC9 (FOR$$AA_REC_PR9 + .FOR$$AA_REC_PR9[.CCB[ISB$B_STTM_TYPE]]);

;04200  1025	    RETURN;

;04300  1026	    END;	! End of FOR$$UDF_RU9 Routine











		         50 	  A5   AB  9A 00051 FOR$$UDF_RU9::

							    MOVZBL  -91(CCB), R0					      ; 1024

		         50 	0000GCF40  32 00055 	    CVTWL   FOR$$AA_REC_PR9[R0], R0				      ;



; Bliss-32 10.1-416	Monday 21-AUG-1978 19:28:33	DBB3:[RTL.SRC]FUDFRU.B32;6					Page 6-1

;

				0000GCF40  16 0005B 	    JSB     FOR$$AA_REC_PR9[R0]					      ;

					   05 00060 	    RSB     							      ; 0980



; Routine Size:  16 bytes





;04400  1027	

;04500  1028	

;04600  1029	END		! End of FOR$$UDF_RU Module

;04700  1030	ELUDOM













;				       PSECT SUMMARY

;

;	Name		 Bytes			       Attributes

;

;  FOR$CODE       	    97  NOWRT,  RD ,  EXE,  SHR,  LCL,  REL,  CON,  PIC,ALIGN(2)











; Size:		97 code + 0 data bytes

; Run Time:	00:07.2

; Elapsed Time:	00:34.3

; Memory Used:	51 pages

; Compilation Complete

