; ****************************************************************************
;
;	PDP-11 FORTRAN-77 V4.1 STANDARD OTS ODL FILE FOR RSX-11M/M-PLUS
;
; ****************************************************************************
;	VERSION:	7
;+
;	THIS FILE IS USED TO BUILD AN OVERLAID FORTRAN OTS THAT USES
;	FCS-11 FOR I/O SUPPORT
;
;	THIS FILE IS USED ON RSX-11M/M-PLUS
;
;	THIS FILE BUILDS A 6000 WORD OVERLAY STRUCTURE USING THE FOLLOWING:
;	    * NO FCS-11 RESIDENT LIBRARY (SEE STEP 7)
;	    * LONG ERROR MESSAGE TEXT (SEE STEP 3.1)
;	    * NO ANSI MAGTAPE SUPPORT
;	THIS SIZE DOES NOT INCLUDE THE OTS OR FCS IMPURE STORAGE OR I/O BUFFERS.
;
;	THIS FILE USES THE LONG ERROR MESSAGE TEXT MODULE; USING THE NULL TEXT MODULE
;	REDUCES THE SIZE BY APPROXIMATELY 1100 WORDS (SEE STEP 3.1).
;
;	THIS FILE ASSUMES THAT THE PDP-11 FORTRAN-77 OTS IS CONTAINED IN:
;	    LB:[1,1]SYSLIB.OLB
;
;	SAMPLE USE OF THIS FILE IS AS FOLLOWS:
;	1.  CREATE THE OVERLAY DESCRIPTION FILE FOR YOUR PROGRAM.
;	2.  ADD THE TWO REQUIRED OTS REFERENCES:
;		"OTSROT" TO THE ROOT,
;		"OTSALL" AS A CO-TREE
;	3.  EDIT THIS FILE AS NECESSARY TO REMOVE UNNEEDED OTS MODULES, OR
;	    TO USE THE FCS-11 RESIDENT LIBRARY.
;	4.  REFERENCE THIS FILE IN YOUR ODL AS AN INDIRECT FILE.
;
;	EXAMPLE USER ODL FOR A SIMPLE PROGRAM CONTAINING A MAIN PROGRAM
;	AND THREE OVERLAYS, PRE, PROC, POST:
;	
;		.ROOT	MAIN-OTSROT-*(A,B,C),OTSALL
;	A:	.FCTR	PRE
;	B:	.FCTR	PROC
;	C:	.FCTR	POST
;	@LB:[1,1]FCS11M
;		.END
;
;	TO CUSTOMIZE THIS STANDARD ODL FILE, DELETE THOSE MODULES THAT
;	SUPPORT FUNCTIONS THAT ARE NOT REQUIRED.   THIS IS DONE BY
;	DELETING LIBRARY EXTRACT REFERENCES TO THE MODULE:
;	FOR EXAMPLE:
;	    TO DELETE SUPPORT FOR THE OPEN STATEMENT, MODULE $OPNSTM IS
;	    ELIMINATED FROM THE FACTOR OTSOP1:
;		OTSOP1:	.FCTR	LB:[1,1]F4POTS/LB:$OPEN:$OPNSTM
;	    BECOMES
;		OTSOP1:	.FCTR	LB:[1,1]F4POTS/LB:$OPEN
;
;	IF ANY FACTOR IS COMPLETELY ELIMINATED, THEN THE REFERENCING FACTOR
;	MUST BE EDITED TO ELIMINATE THE REFERENCE OR UNDEFINED MODULE
;	ERRORS WILL BE GENERATED BY THE TASK BUILDER.
;
;	ANY MODULE NAME THAT IS NOT LISTED AS AN OPTION MUST BE INCLUDED.
;
;	WITHIN THIS ODL FILE, FACTORS MAY BE COMBINED.
;
;-
;
; ****************************************************************************
; STEP 1	OTSROT
; ********************
;	THE FACTOR "OTSROT"
;	MUST BE INCLUDED IN THE ROOT SEGMENT OF YOUR PROGRAM ODL
; ****************************************************************************
;
OTSROT:	.FCTR	LB:[1,1]SYSLIB/LB:$OTV

; ****************************************************************************
; STEP 2	OTSALL
; ********************
;	THE FACTOR "OTSALL"
;	MUST BE INCLUDED AS A CO-TREE IN YOUR PROGRAM ODL
; ****************************************************************************
;
	.NAME	OTS
OTSALL:	.FCTR	OTS-OTSCM0,OTSFRT

; ****************************************************************************
; STEP 3	OTSCOM
; ********************
;	THE FACTOR "OTSCOM" DECLARES MODULES WHICH MUST BE ALWAYS RESIDENT.
;
; ****************************************************************************
;
	.NAME	OTSCOM
OTSCM0:	.FCTR	OTSCOM-OTSCM1-OTSCM2-OTSCM3-*(OTSIO0,OTSMS0,OTSMT0)
OTSCM1:	.FCTR	LB:[1,1]SYSLIB/LB:$ERRPT:$ERRLO:$ERRMO:$FPERR:$R50:$FPPUTI
OTSCM2:	.FCTR	LB:[1,1]SYSLIB/LB:$NAM:$SAVRG:$CHASN

; ****************************************************************************
; STEP 3.1	SELECT ERROR MESSAGE TEXT
; **************
;	IF THE LONG MESSAGE TEXT IS DESIRED, INCLUDE THE FIRST LINE.
;	IF THE NULL MESSAGE TEXT IS DESIRED, INCLUDE THE SECOND LINE.
;
;OTSCM3:	.FCTR	LB:[1,1]SYSLIB/LB:$ERTXT
OTSCM3:	.FCTR	LB:[1,1]SYSLIB/LB:$SHORT

; ****************************************************************************
; STEP 4	SELECT I/O STATEMENT SUPPORT
; **************
;
	.NAME	OTSIO
OTSIO0:	.FCTR	OTSIO-OTSIO1-OTSIO2-OTSIO3-*(OTSOP0,OTSRW0)
OTSIO1:	.FCTR	LB:[1,1]SYSLIB/LB:$FCHNL:$INITIO

; ****************************************************************************
; STEP 4-1	SEQUENTIAL I/O STATEMENTS
; **************
;
;	SELECT FROM THE FOLLOWING FACTOR THOSE SEQUENTIAL I/O STATEMENTS
;	THAT ARE REQUIRED:
;		$ISF	- SEQUENTIAL FORMATTED INPUT
;		$ISU	- SEQUENTIAL UNFORMATTED INPUT
;		$ISL	- SEQUENTIAL LIST-DIRECTED INPUT
;		$OSF	- SEQUENTIAL FORMATTED OUTPUT
;		$OSU	- SEQUENTIAL UNFORMATTED OUTPUT
;		$OSL	- SEQUENTIAL LIST-DIRECTED OUTPUT
;		$ENDF	- ENDFILE STATEMENT
;		$ENCDEC	- ENCODE/DECODE AND INTERNAL FILE STATEMENTS
;
OTSIO2:	.FCTR	LB:[1,1]SYSLIB/LB:$ISF:$OSF:$ENDF:$ENCDEC

; ****************************************************************************
; STEP 4-2	DIRECT I/O STATEMENTS
; **************
;
;	SELECT FROM THE FOLLOWING FACTOR THOSE DIRECT I/O STATEMENTS
;	THAT ARE REQUIRED:
;		$IRF	- DIRECT FORMATTED INPUT
;		$IRU	- DIRECT UNFORMATTED INPUT
;		$ORF	- DIRECT FORMATTED OUTPUT
;		$ORU	- DIRECT UNFORMATTED OUTPUT
OTSIO3:	.FCTR	LB:[1,1]SYSLIB/LB:$IRU:$ORU

; ****************************************************************************
; STEP 4-3	SELECT FILE OPEN/CLOSE SUPPORT
; **************
;
;	SELECT FILE MAINPULATION SUPPORT:
;		$OPNSTM - OPEN STATEMENT
;		$CLSSTM - CLOSE STATEMENT
;		$ASSIGN - CALL ASSIGN SUBROUTINE
;		$CLSCAL - CALL CLOSE SUBROUTINE
;		$FDBSET - CALL FDBSET SUBROUTINE
;		$DEFF	- DEFINEFILE AND FIND STATEMENTS
;
; ****************************************************************************
;
	.NAME	OTSOPN
OTSOP0:	.FCTR	OTSOPN-OTSOP1-*(OTSOP2,OTSOP3)
OTSOP1:	.FCTR	LB:[1,1]SYSLIB/LB:$OPEN:$OPNSTM
OTSOP2:	.FCTR	LB:[1,1]SYSLIB/LB:$FNBST:$ASSIGN
OTSOP3:	.FCTR	LB:[1,1]SYSLIB/LB:$CLOSE:$CLSSTM:$CLSCAL:$DEFF

; ****************************************************************************
; STEP 4-4	SELECT READ/WRITE STATEMENT SUPPORT
; **************
;
;	SELECT ALL MODULES THAT ARE REQUIRED:
;
;	SELECT FORMAT CONVERSION ROUTINES:
;		$CONVR	- D,E,F,G FORMAT CONVERSIONS
;		$CONVI	- I FORMAT CONVERSION
;		$CONVL	- L FORMAT CONVERSIONS
;		$CONVZ	- O,Z FORMAT CONVERSIONS
;
;	SELECT FORMAT PROCESSING ROUTINES:
;		$FIO	- FORMATTED I/O PROCESSING
;		$LSTI	- LIST-DIRECTED INPUT PROCESSING
;		$LSTO	- LIST-DIRECTED OUTPUT PROCESSING
;
;	SELECT I/O PROCESSING SUPPORT:
;		$GETS	- SEQUENTIAL INPUT
;		$PUTS	- SEQUENTIAL OUTPUT
;		$GETR	- DIRECT INPUT
;		$PUTR	- DIRECT OUTPUT
;		$CKRCN	- DIRECT INPUT OR OUTPUT
;
;	SELECT OPTIONAL I/O SUPPORT MODULES:
;		$IOARY	- TRANSMIT ENTIRE ARRAY IN I/O LIST
;		$IOVARY	- TRANSMIT ENTIRE VIRTUAL ARRAY IN I/O LIST
;		$FMTCV	- RUN-TIME FORMAT CONVERSIONS
;		$REWIND	- REWIND STATEMENT
;		$BACKSP	- BACKSPACE STATEMENT
;
; ****************************************************************************
;
	.NAME	OTSRW
	.PSECT	$$FIOC,GBL,RO,I,CON
	.PSECT	$$FIOD,GBL,RO,D,CON

OTSRW0:	.FCTR	OTSRW-LB:[1,1]SYSLIB/LB:$IOARY:$IOELEM:$IOVARY-OTSRW1
OTSRW1:	.FCTR	OTSCNV-OTSGP-*(OTSFIO,OTSMIO)
OTSFIO:	.FCTR	LB:[1,1]SYSLIB/LB:$FIO-$$FIOC-$$FIOD
OTSMIO:	.FCTR	LB:[1,1]SYSLIB/LB:$FMTCV:$FCSRMS:$REWIND:$BACKSP
OTSCNV:	.FCTR	LB:[1,1]SYSLIB/LB:$CONVR:$CONVI:$CONVL:$CONVZ
OTSGP:	.FCTR	LB:[1,1]SYSLIB/LB:$GETS:$PUTS:$GETR:$PUTR:$CKRCN

; ****************************************************************************
; STEP 5	SELECT MATH LIBRARY AND COMPILED-CODE SUPPORT ROUTINES
; **************
;
;	SELECT THOSE FUNCTIONS WHICH ARE REQUIRED.
;	NOTE THAT THE FUNCTIONS IN SEGMENT OTSMTH ARE CALLED FROM
;	MANY OF THE OTHER FUNCTIONS IN THE OTHER SEGMENTS
;
;	MATH FUNCTIONS MARKED: (INLINE) ARE NORMALLY PERFORMED
;	INLINE AND NO EXTERNAL REFERENCE IS REQUIRED.
;
;	SOME MATH FUNCTIONS CONTAIN BOTH THE SINGLE AND DOUBLE
;	PRECISION VERSIONS IN A SINGLE MODULE (EG. $EXP).
;	THESE ARE LISTED UNDER THE SINGLE PRECISION FUNCTIONS.
;
; **************
; CHARACTER COMPILED CODE SUPPORT ROUTINES:
;	$CHCMP	- CHARACTER COMPARISON
;	$LGE	- LEXICAL GREATER THAN OR EQUAL TO (INLINE)
;	$LGT	- LEXICAL GREATER THAN (INLINE)
;	$LLE	- LEXICAL LESS THAN OR EQUAL TO (INLINE)
;	$LLT	- LEXICAL LESS THAN (INLINE)
;
; **************
; INTEGER*2 FUNCTIONS:
;	$IABS	- INTEGER*2 ABSOLUTE VALUE (INLINE)
;	$ICHAR	- CONVERT A SINGLE CHARACTER INTO AN INTEGER (INLINE)
;	$INDEX	- FIND THE OFFSET INTO A STRING OF A SUBSTRING
;	$LEN	- LENGTH OF A CHARACTER ELEMENT (INLINE)
;	$IFIX	- REAL/DOUBLE TO INTEGER*2 CONVERSION (INLINE)
;	$MAX0	- INTEGER*2 MAX OF INTEGER*2 (INLINE)
;	$MIN0	- INTEGER*2 MIN OF INTEGER*2 (INLINE)
;	$NINT	- NEAREST INTEGER OF REAL/DOUBLE
;	$MOD	- INTEGER*2 MOD (INLINE)
;	$ISIGN	- INTEGER*2 SIGN TRANSFER
;	$IDIM	- INTEGER*2 DIM
;	$IAND	- INTEGER*2 AND (INLINE)
;	$IOR	- INTEGER*2 OR (INLINE)
;	$IEOR	- INTEGER*2 EXCLUSIVE OR (INLINE)
;	$INOT	- INTEGER*2 NOT (INLINE)
;	$ISHFT	- INTEGER*2 SHIFT
;	$PWII	- INTEGER*2 EXPONENTIATION
;
; **************
; INTEGER*4 FUNCTIONS:
;	$JABS	- INTEGER*4 ABSOLUTE VALUE (INLINE)
;	$I4FIX	- REAL/DOUBLE TO INTEGER*4 CONVERSION (INLINE)
;	$JMIX	- REAL/INTEGER*4 MAX/MIN OF INTEGER*4
;	$RJMIX	- INTEGER*4 MAX/MIN OF REAL (INLINE)
;	$JMOD	- INTEGER*4 MOD
;	$JSIGN	- INTEGER*4 SIGN TRANSFER
;	$JDIM	- INTEGER*4 DIM
;	$JAND	- INTEGER*4 AND (INLINE)
;	$JOR	- INTEGER*4 OR (INLINE)
;	$JEOR	- INTEGER*4 EXCLUSIVE OR (INLINE)
;	$JNOT	- INTEGER*4 NOT (INLINE)
;	$JSHFT	- INTEGER*4 SHIFT
;	$MLJ	- INTEGER*4 MULTIPLICATION
;	$DVJ	- INTEGER*4 DIVISION
;	$PWJJ	- INTEGER*4 EXPONENTIATION
;
; **************
; REAL*4 FUNCTIONS:
;	$ABS	- REAL ABSOLUTE VALUE (INLINE)
;	$EXP	- REAL/DOUBLE EXPONENTIAL
;	$ALOG	- REAL NATURAL/COMMON LOGARITHM
;	$SIN	- REAL SINE/COSINE
;	$SQRT	- REAL/DOUBLE SQUARE ROOT
;	$TAN	- REAL TANGENT
;	$ACOS	- REAL ARC COSINE
;	$ASIN	- REAL ARC SINE
;	$ATAN	- REAL ARC TANGENT
;	$COSH	- REAL HYPERBOLIC COSINE
;	$SINH	- REAL HYPERBOLIC SINE
;	$TANH	- REAL HYPERBOLIC TANGENT
;	$AMIX0	- REAL MAX/MIN OF INTEGER*2 (INLINE)
;	$AMIX1	- REAL/INTEGER*2 MAX/MIN OF REAL (INLINE)
;	$ANINT	- REAL/DOUBLE NEAREST INTEGER OF REAL/DOUBLE
;	$AINT	- REAL TO REAL TRUNCATION
;	$AMOD	- REAL MOD
;	$DIM	- REAL DIM
;	$SNGL	- DOUBLE TO REAL CONVERSION (INLINE)
;	$SIGN	- REAL SIGN TRANSFER
;	$FLOAT	- INTEGER*2 TO REAL CONVERSION (INLINE)
;	$FLOTJ	- INTEGER TO REAL/DOUBLE CONVERSION (INLINE)
;	$PWRI	- REAL/DOUBLE ** INTEGER
;	$PWRR	- REAL ** REAL
;
; **************
; REAL*8 FUNCTIONS:
;	$DABS	- DOUBLE ABSOLUTE VALUE (INLINE)
;	$DLOG	- DOUBLE NATURAL/COMMON LOGARITHM
;	$DSIN	- DOUBLE SINE/COSINE
;	$DTAN	- DOUBLE TANGENT
;	$DACOS	- DOUBLE ARC COSINE
;	$DASIN	- DOUBLE ARC SINE
;	$DATAN	- DOUBLE ARC TANGENT
;	$DCOSH	- DOUBLE HYPERBOLIC COSINE
;	$DSINH	- DOUBLE HYPERBOLIC SINE
;	$DTANH	- DOUBLE HYPERBOLIC TANGENT
;	$DMIX1	- DOUBLE MAX/MIN OF DOUBLE (INLINE)
;	$DINT	- DOUBLE TO DOUBLE TRUNCATION
;	$DMOD	- DOUBLE MOD
;	$DDIM	- DOUBLE DIM
;	$DBLE	- REAL TO DOUBLE CONVERSION (INLINE)
;	$DSIGN	- DOUBLE SIGN TRANSFER
;	$DPROD	- DOUBLE PRODUCT OF 2 REALS
;	$PWDD	- REAL/DOUBLE ** REAL/DOUBLE
;
; **************
; COMPLEX FUNCTIONS:
;	$CABS	- COMPLEX ABSOLUTE VALUE
;	$CEXP	- COMPLEX EXPONENTIAL
;	$CLOG	- COMPLEX LOGARITHM
;	$CSIN	- COMPLEX SINE/COSINE
;	$CSQRT	- COMPLEX SQUARE ROOT
;	$REAL	- COMPLEX TO REAL CONVERSION (INLINE)
;	$AIMAG	- COMPLEX IMAGINARY TO REAL CONVERSION
;	$CMPLX	- REAL TO COMPLEX CONVERSION
;	$CONJG	- COMPLEX CONJUGATE
;	$ADC	- COMPLEX ADD/SUBTRACT
;	$MLC	- COMPLEX MULTIPLICATION
;	$DVC	- COMPLEX DIVISION
;	$CMC	- COMPLEX COMPARE
;	$TSC	- COMPLEX TEST FOR ZERO
;	$NGC	- COMPLEX NEGATE
;	$PWCI	- COMPLEX ** INTEGER
;	$PWCC	- COMPLEX ** COMPLEX
;
; ****************************************************************************
;
	.NAME	OTSMTH
OTSMT0:	.FCTR	OTSMTC-*(OTSMA,OTSMB,OTSMC,OTSMD)
OTSMTC:	.FCTR	OTSMTH-LB:[1,1]SYSLIB/LB:$EXP:$SQRT:$ALOG:$ATAN:$SIN:$SWPXY

; ********************
; STEP 5-1	OTSMRI	INTEGER*2, REAL*4 AND CHARACTER SUPPORT FUNCTIONS
; ********************
;
	.NAME	OTSMRI
OTSMA:	.FCTR	OTSMRI-OTSM1A-OTSM1B-OTSM1C-OTSM1D-OTSM1E-OTSM1F
OTSM1A:	.FCTR	LB:[1,1]SYSLIB/LB:$ABS:$ACOS:$AINT:$AMOD:$AMIX0:$AMIX1
OTSM1B:	.FCTR	LB:[1,1]SYSLIB/LB:$ASIN:$ANINT:$FLOAT:$FLOTJ:$TAN:$PWRI:$PWRR
OTSM1C:	.FCTR	LB:[1,1]SYSLIB/LB:$SINH:$TANH:$COSH:$SIGN:$SNGL:$DIM
OTSM1D:	.FCTR	LB:[1,1]SYSLIB/LB:$IABS:$IAND:$IEOR:$IOR:$INOT:$MAX0:$MIN0:$MOD
OTSM1E:	.FCTR	LB:[1,1]SYSLIB/LB:$ISHFT:$ISIGN:$IFIX:$NINT:$IDIM:$PWII
OTSM1F:	.FCTR	LB:[1,1]SYSLIB/LB:$INDEX:$CHCMP

; ********************
; STEP 5-2	OTSMDP	REAL*8 FUNCTIONS
; ********************
;
	.NAME	OTSMDP
OTSMB:	.FCTR	OTSMDP-OTSM2A-OTSM2B-OTSM2C
OTSM2A:	.FCTR	LB:[1,1]SYSLIB/LB:$DABS:$DACOS:$DASIN:$DATAN:$DSIN:$DMOD:$DMIX1
OTSM2B:	.FCTR	LB:[1,1]SYSLIB/LB:$DDIM:$DSINH:$DCOSH:$DTANH:$DPROD:$DSIGN
OTSM2C:	.FCTR	LB:[1,1]SYSLIB/LB:$DINT:$DBLE:$DTAN:$DLOG:$PWDD

; ********************
; STEP 5-3	OTSMI4	INTEGER*4 FUNCTIONS
; ********************
;
	.NAME	OTSMI4
OTSMC:	.FCTR	OTSMI4-OTSM3A-OTSM3B
OTSM3A:	.FCTR	LB:[1,1]SYSLIB/LB:$JABS:$JAND:$JEOR:$JOR:$JNOT:$JMIX:$JMOD:$PWJJ
OTSM3B:	.FCTR	LB:[1,1]SYSLIB/LB:$JSHFT:$JSIGN:$I4FIX:$JDIM:$RJMIX:$MLJ:$DVJ

; ********************
; STEP 5-4	OTSMCX	COMPLEX FUNCTIONS
; ********************
;
	.NAME	OTSMCX
OTSMD:	.FCTR	OTSMCX-OTSM4A-OTSM4B-OTSM4C
OTSM4A:	.FCTR	LB:[1,1]SYSLIB/LB:$AIMAG:$REAL:$CMPLX:$CONJG:$CABS
OTSM4B:	.FCTR	LB:[1,1]SYSLIB/LB:$FCALL:$CSIN:$CSQRT:$CEXP:$CLOG:$PWCJ:$PWCC
OTSM4C:	.FCTR	LB:[1,1]SYSLIB/LB:$ADC:$MLC:$DVC:$TSC:$CMC:$NGC

; ****************************************************************************
; STEP 6	SELECT MISCELLANEOUS SUPPORT FUNCTIONS AND SYSTEM SUBROUTINES
; **************
;
;	SELECT EACH SEGMENT AS REQUIRED,
;	OTHERWISE DELETE ENTIRE LIBRARY REFERENCE FROM FACTOR
;
;	$ARYCK	- ARRAY SUBSCRIPT CHECKING (/CK COMPILER SWITCH)
;	$MADB1	- ONE-DIMENSION ADJUSTABLE ARRAYS
;	$MADB2	- TWO-DIMENSION ADJUSTABLE ARRAYS
;	$MADBN	- MULTI-DIMENSION ADJUSTABLE ARRAYS
;	$STPPAU	- STOP/PAUSE STATEMENTS
;	$CGO	- COMPUTED GOTO STATEMENT
;	$AGO	- ASSIGNED GOTO STATEMENT
;	$EXIT	- CALL EXIT SUBROUTINE
;
; ****************************************************************************
;
OTSMS0:	.FCTR	*(OTSMS1,OTSMS2,OTSMS3,OTSMS4,OTSMS5,OTSMS6)

; ********************
; STEP 6-1	OTSINI	OTS INITIALIZATION ROUTINES
; ********************
;
	.NAME	OTSINI
OTSMS1:	.FCTR	OTSINI-OTSIN1-OTSIN2
OTSIN1:	.FCTR	LB:[1,1]SYSLIB/LB:$OTI:$VINIT:$STPPAU:$EXIT
OTSIN2:	.FCTR	LB:[1,1]SYSLIB/LB:$MADB1:$MADB2:$MADBN:$AGO:$CGO:$ARYCK

; ********************
; STEP 6-2	OTSVRT	VIRTUAL ARRAY SUPPORT
; ********************
;
	.NAME	OTSVRT
OTSMS2:	.FCTR	OTSVRT-LB:[1,1]SYSLIB/LB:$VIRT:$MADBV

; ********************
; STEP 6-3	OTSR50  RADIX-50 CONVERSIONS
; ********************
;
	.NAME	OTSR50
OTSMS3:	.FCTR	OTSR50-LB:[1,1]SYSLIB/LB:$R50WD:$R50ASC:$IRAD50:$RAD50

; ********************
; STEP 6-4	OTSERR  ERROR CONTROL SUBROUTINES
; ********************
;
	.NAME	OTSERR
OTSMS4:	.FCTR	OTSERR-LB:[1,1]SYSLIB/LB:$ERRSET:$ERRSNS:$ERRTST:$USEREX

; ********************
; STEP 6-5	OTSTIM	DATE/TIME ROUTINES
; ********************
;
	.NAME	OTSTIM
OTSMS5:	.FCTR	OTSTIM-LB:[1,1]SYSLIB/LB:$DATE:$TIME:$SECNDS:$IDATE

; ********************
; STEP 6-6	OTSRAN	RANDOM NUMBER GENERATOR
; ********************
;
	.NAME	OTSRAN
OTSMS6:	.FCTR	OTSRAN-LB:[1,1]SYSLIB/LB:$RAN:$RANDU:$RANDOM

; ****************************************************************************
; STEP 7	SELECT FCS MODULES
; **************
;
;	IF AN FCS RESIDENT LIBRARY IS IN USE, SELECT THE FIRST FACTOR
;	IF AN FCS RESIDENT LIBRARY IN NOT AVAILABLE, SELECT THE SECOND FACTOR
;
; ****************************************************************************
;
;OTSFRT:	.FCTR	OTSFCS
OTSFRT:	.FCTR	OTSFCS-*(OTSFOP,OTSFSQ,OTSFDA)

	.NAME	OTSFCS
OTSFCM:	.FCTR	LB:[1,1]SYSLIB/LB:SAVR1
OTSFOP:	.FCTR	OTSFO1,OTSFO2,OTSFO3,OTSFO4
OTSFO1:	.FCTR	LB:[1,1]SYSLIB/LB:.CSI1:.CSI2
OTSFO2:	.FCTR	LB:[1,1]SYSLIB/LB:PARSE
OTSFO3:	.FCTR	LB:[1,1]SYSLIB/LB:OPFNB:FINIT
OTSFO4:	.FCTR	LB:[1,1]SYSLIB/LB:CLOSE:DLFNB:$PRINT:GETDID:MRKDL
OTSFSQ:	.FCTR	LB:[1,1]SYSLIB/LB:GETSQ:PUTSQ:PNTMRK
OTSFDA:	.FCTR	LB:[1,1]SYSLIB/LB:GET:PUT:POSREC

; ****************************************************************************