Google
 

Trailing-Edge - PDP-10 Archives - AP-D480B-SB_1978 - frs5a.pco
There is 1 other file named frs5a.pco in the archive. Click here to see a list.
Digital Equipment Corporation       27-OCT-77    Page   1
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-242*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         4B(460), TESTED IN 5(617)

[Date Entered]          10-NOV-76

[Programmer]            HOUDE

[Routines]              FOROTS

[Key Words]             FORMAT      LOWER CASE  ILL CHAR

[Source Before Edit]    %5   (000617)

[Source After Edit]     %5   (000620)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-21396
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page   2
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
     Lower case letters do not work in object time formats.   They  do
work in compile-time FORMAT statements.

                        **********


[DIAGNOSIS]
 
     The FORTRAN compiler converts lower  case  characters  in  FORMAT
statements  into  upper  case characters at compile time, unless those
characters are part of a quoted string or Hollerith string.  FOROTS is
expecting   only   upper  case  letters  when  it  parses  the  format
descriptors,  so  lower  case  letters  are  either  ignored,  produce
unexpected results, or give an error message for "Illegal Character in
FORMAT".

                        **********


[CURE]
 
     When parsing format descriptors in  FOROTS,  convert  lower  case
alphabetic  characters  into  upper  case  characters before trying to
convert them to SIXBIT to index into the FMTDIR table.
 
Digital Equipment Corporation       27-OCT-77    Page   3
PCO Log Report


[FILCOM]
File 1)	DSK:FOROTS.MAC	created: 1114 09-NOV-1976
File 2)	DSK:FOROTS.620	created: 1013 10-NOV-1976
 
1)1		TITLE FOROTS %5.(617) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT	
	9-NOV-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5.(620) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT	
	10-NOV-76
2)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
**************
1)1	VEDIT==617		;MAJOR EDIT NUMBER
1)	VMINOR==00		;MINOR EDIT NUMBER
****
2)1	VEDIT==620		;MAJOR EDIT NUMBER
2)	VMINOR==00		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;620	21396	ALLOW LOWER CASE LETTERS IN FORMAT DESCRIPTORS.
2)	;**************** END OF REVISION HISTORY
**************
1)1		TRZ	T2,100		;CLEAR THE HIGH ORDER BIT OF THE
	 ASCII
****
2)1	;**; [620] INSERT @ FMTIN + 2 1/2	CLRH	10-NOV-76
2)		CAILE	T2,140		;[620] BELOW LOWER CASE A ?
2)		CAIL	T2,173		;[620] BELOW LOWER CASE Z ?
2)		SKIPA			;[620] NOT LOWER CASE, SO LEAVE
	ALONE
2)		SUBI	T2,40		;[620] OTHERWISE, CONVERT TO UPP
	ER CASE
2)		TRZ	T2,100		;CLEAR THE HIGH ORDER BIT OF THE
	 ASCII
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page   4
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-243*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         4B(460)+543, TESTED IN 5(620)

[Date Entered]          15-NOV-76

[Programmer]            HOUDE

[Routines]              FOROTS

[Key Words]             IMAGE       RECORDSIZE  RANDOM

[Source Before Edit]    %5   (000620)

[Source After Edit]     %5   (000621)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-21149
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page   5
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
     If a recordsize is given  for  an  image-mode  output  file,  the
recordsize  is  ignored  unless the file is random access.  For random
access files, all records will be of the specified length  except  the
last record.

                        **********


[DIAGNOSIS]
 
     There is no code to handle this case.  Random access  works  only
because of file positioning.  The recordsize is not used.

                        **********


[CURE]
 
     Set up the recordsize as is usual in other modes of I/O in  BINIO
if  a  recordsize  was specified.  If no recordsize was specified, use
-1, as is currently done.  Also, in FINNON, if there is  a  recordsize
specified, use it when padding at the end of a record.
 
Digital Equipment Corporation       27-OCT-77    Page   6
PCO Log Report


[FILCOM]
File 1)	DSK:FOROTS.MAC	created: 1013 10-NOV-1976
File 2)	DSK:FOROTS.621	created: 1427 15-NOV-1976
 
1)1		TITLE FOROTS %5.(620) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT	
	10-NOV-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5.(621) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT	
	11-NOV-76
2)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
**************
1)1	VEDIT==620		;MAJOR EDIT NUMBER
1)	VMINOR==00		;MINOR EDIT NUMBER
****
2)1	VEDIT==621		;MAJOR EDIT NUMBER
2)	VMINOR==00		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;621	21149	ENFORCE FIXED-LENGTH RECORDS IN IMAGE MODE.  THI
	S WILL
2)	;			ALSO FIX RANDOM ACCESS IN IMAGE MODE.
2)	;**************** END OF REVISION HISTORY
**************
1)1			MOVEI	G4,-1		;SET THE LARGEST RECORD
	SIZE
****
2)1	;**; [621] INSERT @ BINIO + 5 1/2L (IN LITERAL)	CLRH	11-NOV-7
	6
2)			HLRZ	G4,DD.LOG(P3)	;[621] GET FIXED RECORD
	LENGTH
2)			SKIPN	G4		;[621] IF ANY
2)			MOVEI	G4,-1		;SET THE LARGEST RECORD
	SIZE
**************
1)1	FINNON:				;NON-STANDARD FIN ROUTINE
****
2)1	;**; [621] INSERT BEFORE FINNON	CLRH	11-NOV-76
2)	FINNN1:	SKIPN	DD.LOG(P3)	;[621] FIXED-LENGTH RECORDS?
2)		JRST	FINXIT		;[621] NO, EXIT
2)		JUMPI	FINXIT		;[621] INPUT?
2)		SETZ	T0,		;[621] NO, SO CLEAR OUTPUT WORD
2)		MOVEI	P1,.+1		;[621] SET UP RETURN FROM OBYTE.
2)		TLNN	P3,IO.EOL	;[621] END OF LINE?
2)		JRST	OBYTE.		;[621] NO, OUTPUT A WORD
2)		TLZ	P3,IO.EOL	;[621] YES, CLEAR END OF LINE
Digital Equipment Corporation       27-OCT-77    Page   7
PCO Log Report


2)		JRST	FINXIT		;[621] AND EXIT
2)	FINNON:				;NON-STANDARD FIN ROUTINE
**************
1)1		JRST	FINXIT		;NO, EXIT
1)		JUMPI	.+2		;SKIP IF INPUT
****
2)1	;**; [621] CHANGE @ FINNON +2	CLRH	11-NOV-76
2)		JRST	FINNN1		;[621] NO, GO PROCESS
2)		JUMPI	.+2		;SKIP IF INPUT
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page   8
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-244*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         4B(460), TESTED IN 5(621)

[Date Entered]          17-NOV-76

[Programmer]            SUE GODSELL

[Routines]              FORCNV    FOROTS

[Key Words]             NAMELIST    ARRAY       INPUT

[Source Before Edit]    %5   (000621)

[Source After Edit]     %5   (000622)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-QAR873
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page   9
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
     If a NAMELIST contains an array, and the user inputs only part of
the array and then a dollar sign to end the NAMELIST input, the dollar
sign will not be seen unless it is preceded by a blank or  some  other
delimiter.

                        **********


[DIAGNOSIS]
 
     If a dollar sign is found in this case, scanning continues  after
the dollar sign.

                        **********


[CURE]
 
     If a dollar sign is found in this case, just return.
 
Digital Equipment Corporation       27-OCT-77    Page  10
PCO Log Report


[FILCOM]
File 1)	DSK:FOROTS.MAC	created: 1427 15-NOV-1976
File 2)	DSK:FOROTS.622	created: 1716 16-NOV-1976
 
1)1		TITLE FOROTS %5.(621) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT	
	11-NOV-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5.(622) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	15-NOV-76
2)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
**************
1)1	VEDIT==621		;MAJOR EDIT NUMBER
1)	VMINOR==00		;MINOR EDIT NUMBER
****
2)1	VEDIT==622		;MAJOR EDIT NUMBER
2)	VMINOR==00		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;622	QA873	NAMELIST PARTIAL ARRAYS AT END OF LIST
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page  11
PCO Log Report


[FILCOM]
File 1)	DSK:FORCNV.MAC	created: 1355 15-SEPT-1976
File 2)	DSK:FORCNV.622	created: 1716 16-NOV-1976
 
1)1		TITLE	FORCNV	%5(576)		CONVERSION ROUTINES
1)		SUBTTL	REVISION HISTORY
****
2)1		TITLE	FORCNV	%5(622)		CONVERSION ROUTINES
2)		SUBTTL	REVISION HISTORY
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;622	QA873	NAMELIST PARTIAL ARRAYS AT END OF LIST
2)	;**************** END OF REVISION HISTORY
**************
1)1		TITLE	NMLST%	%5.(575)	NAMELIST I/O
1)		SUBTTL	D. TODD /DRT/HPW/MD/JNG/CLRH	20-AUG-76
****
2)1		TITLE	NMLST%	%5.(622)	NAMELIST I/O
2)		SUBTTL	D. TODD /DRT/HPW/MD/JNG/CLRH	20-AUG-76
**************
1)3		JRST	NLIDL5		;[313] YES
1)		PUSH	P,P1		;[215] ADVANCE
****
2)3	;**; [622] CHANGE @ NLIDL4+4 SWG 15-NOV-76
2)		POPJ	P,		;[622] YES-GET OUT
2)		PUSH	P,P1		;[215] ADVANCE
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page  12
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-245*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         4B(460), TESTED IN 5(622)

[Date Entered]          19-NOV-76

[Programmer]            HOUDE

[Routines]              FORPLT    FOROTS

[Key Words]             F40LIB      FORPLT      FORSIN      EXP2.0

[Source Before Edit]    %5   (000622)

[Source After Edit]     %5   (000623)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-21441
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page  13
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
     The plot routines in the Fortran library will not load  correctly
if  the  module  FORSIN.MAC  was compiled with the compile-time switch
F40LIB turned off (which is a nonstandard switch setting).

                        **********


[DIAGNOSIS]
 
     With this switch turned off, EXP2.0 is not defined in FORSIN.MAC,
but the plot routines reference it.

                        **********


[CURE]
 
     Change all references to EXP2.0 to EXP2..,  which  has  the  same
value  but  is  always  defined  regardless of the compile-time switch
settings.
 
Digital Equipment Corporation       27-OCT-77    Page  14
PCO Log Report


[FILCOM]
File 1)	DSK:FOROTS.MAC	created: 1716 16-NOV-1976
File 2)	DSK:FOROTS.623	created: 1147 18-NOV-1976
 
1)1		TITLE FOROTS %5.(622) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	15-NOV-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5.(623) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	18-NOV-76
2)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
**************
1)1	VEDIT==622		;MAJOR EDIT NUMBER
1)	VMINOR==00		;MINOR EDIT NUMBER
****
2)1	VEDIT==623		;MAJOR EDIT NUMBER
2)	VMINOR==00		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;623	21441	USE EXP2.. INSTEAD OF EXP2.0 IN FORPLT SO THAT I
	T
2)	;			WILL LOAD IF FORSIN WAS COMPILED WITH
2)	;			F40LIB TURNED OFF
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page  15
PCO Log Report


[FILCOM]
File 1)	DSK:FORPLT.MAC	created: 1845 24-SEPT-1976
File 2)	DSK:FORPLT.623	created: 1650 18-NOV-1976
 
1)1		TITLE AXIS	%5.(601)
1)		SUBTTL D.TODD	/DRT/MD/CLRH/MEB		24-SEP-7
	6
1)		SEARCH	FORPRM
****
2)1		TITLE AXIS	%5.(623)
2)		SUBTTL D.TODD	/DRT/MD/CLRH/MEB		18-NOV-7
	6
2)		SEARCH	FORPRM
**************
1)1	;*************** END OF REVISION HISTORY *******************
****
2)1	;623	21441	USE EXP2.. RATHER THAN EXP2.0 SO THAT PLOT
2)	;			ROUTINES WILL LOAD IF FORSIN WAS COMPILE
	D
2)	;			WITH F40LIB TURNED OFF.
2)	;*************** END OF REVISION HISTORY *******************
**************
1)1	TITLE	SCALE	%4.(243) PLOT SUBPROGRAM
1)	SUBTTL	R CLEMENTS/DMN/HPW		14-DEC-73
1)	;***COPYRIGHT 1972,1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.*
	**
1)	SUBTTL	REVISION HISORTY
1)	;243	(12167)	CORRECT SCALE FOR NEGATIVE XMIN
1)		P=17	;SYSTEM PDL
****
2)1	TITLE	SCALE	%5.(623) PLOT SUBPROGRAM
2)	SUBTTL	R CLEMENTS/DMN/HPW/CLRH		18-NOV-76
2)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
2)	SUBTTL	REVISION HISORTY
2)	;EDIT	SPR	COMMENTS
2)	;----	---	--------
2)	;243	(12167)	CORRECT SCALE FOR NEGATIVE XMIN
2)	;623	21441	USE EXP2.. RATHER THAN EXP2.0 SO THAT PLOT ROUTI
	NES
2)	;			WILL LOAD IF FORSIN WAS COMPILED WITH F4
	0LIB
2)	;			TURNED OFF.
2)	;*** END OF REVISION HISTORY ***
2)		P=17	;SYSTEM PDL
**************
1)1		PUSHJ P,EXP2.0##
1)		MOVE 1,D
****
2)1	;**; [623] CHANGE @ L1+24(10)L IN SCALE	CLRH	18-NOV-76
2)		PUSHJ P,EXP2..##	;[623] DO NOT USE F40 CALL
Digital Equipment Corporation       27-OCT-77    Page  16
PCO Log Report


2)		MOVE 1,D
**************
1)1		PUSHJ P,EXP2.0##
1)		MOVEM 0,E1
****
2)1	;**; [623] CHANGE @ P1P+4L IN SCALE	CLRH	18-NOV-76
2)		PUSHJ P,EXP2..##	;[623] DO NOT USE F40 CALL
2)		MOVEM 0,E1
**************
1)1		TITLE	PLOT	%5.(601) PLOT SUBROUTINES
1)		SUBTTL	D. TODD /DRT/HPW/CLRH	24-SEP-76
****
2)1		TITLE	PLOT	%5.(623) PLOT SUBROUTINES
2)		SUBTTL	D. TODD /DRT/HPW/CLRH	24-SEP-76
**************
1)1		EXTERN IFIX.,FLOAT.,EXP2.0	; [516]
 
 
1)		ENTRY NUMBER
****
2)1	;**; [623] BEFORE NUMBER ENTRY POINT IN PLOT	CLRH	18-NOV-7
	6
2)		EXTERN IFIX.,FLOAT.,EXP2..	;[623] [516]
2)		ENTRY NUMBER
**************
1)1		PUSHJ P,EXP2.0##
1)		MOVEM 0,T2T
****
2)1	;**; [623] CHANGE @ NUMBER+21(10)L	CLRH	18-NOV-76
2)		PUSHJ P,EXP2..##	;[623] DO NOT USE F40 CALL
2)		MOVEM 0,T2T
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page  17
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-246*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         4B(460)

[Date Entered]          01-DEC-76

[Programmer]            SUE GODSELL

[Routines]              FORDBL    FORSIN    FOROTS

[Key Words]             EXPONENT    NEGATIVE    POWER       NONINTEGER

[Source Before Edit]    %5   (000623)

[Source After Edit]     %5   (000624)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   Y
                        SER/SPR Number:10-V5
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page  18
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
     Single and double precision negative numbers to noninteger powers
give results of different signs for the same values.

                        **********


[DIAGNOSIS]
 
     Inconsistent coding.

                        **********


[CURE]
 
     Rewrite routines to return the  expected  results  if  the  power
involved  is  an  integer.   If  it  is not an integer, give a warning
message and return the requested power of the absolute  value  of  the
base.
 
Digital Equipment Corporation       27-OCT-77    Page  19
PCO Log Report


[FILCOM]
File 1)	DSK:FOROTS.MAC	created: 1147 18-NOV-1976
File 2)	DSK:FOROTS.624	created: 1656 30-NOV-1976
 
1)1		TITLE FOROTS %5.(623) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	18-NOV-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5.(624) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	29-NOV-76
2)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
**************
1)1	VEDIT==623		;MAJOR EDIT NUMBER
1)	VMINOR==00		;MINOR EDIT NUMBER
****
2)1	VEDIT==624		;MAJOR EDIT NUMBER
2)	VMINOR==00		;MINOR EDIT NUMBER
**************
1)1	;		  BEFORE THE END-OF-LINE (IE, DELIMITER) WAS HIT
1)	;611	Q00846	RESET IN FORJAK MUST RESTORE T0 SO RESET. (INIT%
	) CAN
****
2)1	;		  BEFORE THE END-OF-LINE (IE, DELIMITER) WAS HIT
	)
2)	;611	Q00846	RESET IN FORJAK MUST RESTORE T0 SO RESET. (INIT%
	) CAN
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;624	19860		CHANGES TO DEXP.2,DEXP.3,EXP.3 FOR CONSI
	STENT
2)	;	20411		HANDLING OF NEGATIVE SINGLE AND DOUBLE
2)	;			PRECISION NOS TO NON-INTEGER POWERS. ALS
	O
2)	;			REARRANGED ORDER OF FORDBL.MAC BY REVERS
	ING
2)	;			POSITION OF DEXP.2 AND DEXP.3 TO FACILIT
	ATE
2)	;			CALL FROM DEXP.3 TO DEXP.2
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page  20
PCO Log Report


[FILCOM]
File 1)	DSK:FORSIN.MAC	created: 0902 02-AUG-1976
File 2)	DSK:FORSIN.624	created: 1656 30-NOV-1976
 
1)12	TITLE	EXP3	%5.(572)
1)	SUBTTL	D. TODD /DMN/DRT/HPW/CLRH		2-AUG-76
1)	VERWHO==0
****
2)1	TITLE	EXP3	%5.(624)
2)	SUBTTL	D. TODD /DMN/DRT/HPW/CLRH/SWG		29-NOV-76
2)	VERWHO==0
**************
1)12	VERPAT==572
1)	XP3VER=BYTE (3)VERWHO(9)VERVER(6)VERUPD(18)VERPAT
1)	PURGE	VERWHO,VERVER,VERUPD,VERPAT
1)	;***COPYRIGHT 1972,1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
	***
1)	;FROM	V.32(377)	LIB40
****
2)1	VERPAT==624
2)	XP3VER=BYTE (3)VERWHO(9)VERVER(6)VERUPD(18)VERPAT
2)	PURGE	VERWHO,VERVER,VERUPD,VERPAT
2)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS. ***
2)	;FROM	V.32(377)	LIB40
**************
1)12		MOVN	A,A		;YES, NEGATE RESULT
1)	EXPPOP:	POP	P,E		;RESTORE AC E.
****
2)1		;**; [624] DELETE AND INSERT @EXPPOP-1 SWG 29-NOV-76
2)		;[624] DELETE 	MOVN	A,A		;YES, NEGATE RES
	ULT
2)		ERROR	(LIB,1,2,[ASCIZ/Attempt to raise negative single
	 precision number to non-integer power/])		;[624]
2)	EXPPOP:	POP	P,E		;RESTORE AC E.
**************
 
Digital Equipment Corporation       27-OCT-77    Page  21
PCO Log Report


[FILCOM]
File 1)	DSK:FORDBL.MAC	created: 1108 30-SEPT-1976
File 2)	DSK:FORDBL.624	created: 1656 30-NOV-1976
 
1)7	TITLE	DEXP.2	%4.(120) PDP-10/10I DOUBLE PRECISION EXP2 FUNCTI
	ON
1)	SUBTTL	D. TODD /DRT	15-FEB-1973
1)	;***COPYRIGHT 1972,1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.*
	**
1)	;THIS ROUTINE CALCULATES A DOUBLE PRECISION NUMBER RAISED
1)	;TO A FIXED POINT POWER. THE CALCULATION IS A**N, WHERE N
1)	;IS AN INTEGER OF THE FORM
1)	;	N= Q(0) + Q(1)*2 + Q(2)*4 + ... WHERE Q(I) = 0 OR 1
1)	;THE ONLY RESTRICTION ON THE BASE OR EXPONENT IS THAT
1)	;AN EXPONENT OF 400000000000 IS NOT HANDLED CORRECTLY.
1)	;THE ROUTINE IS CALLED BY
1)	;	MOVEI	Q, POWER
1)	;	PUSHJ	P, DEXP2
1)	;WHERE POWER IS THE ADDRESS OF THE FIXED POINT POWER, AND
1)	;THE DOUBLE PRECISION BASE IS IN ACCUMULATORS A AND B. THE
1)	;RESULT IS RETURNED IN ACCUMULATORS A AND B.
1)		SEARCH FORPRM
1)	IFN F40LIB,<ENTRY	DEXP.2>
1)	IFN F10LIB,<ENTRY	DEXP2.>
1)		A=	0
1)		B=	1
1)		C=	2
1)		D=	3
1)		E=	4
1)		G=	6
1)		Q=	16
1)		P=	17
1)		X=	G	;HIGHEST AC TO SAVE
1)	IFN F10LIB,<
1)		SIXBIT	/DEXP2./
1)	DEXP2.:	DMOVE	T0,@(L)		;GET THE BASE
1)		MOVEI	L,@1(L)		;POINT TO THE POWER
1)	IFN F40LIB,<
1)		JRST	DEXP.2		;GO TO COMMON ROUTINE
1)	>>
1)	IFN F40LIB,<
1)		SIXBIT /DEXP.2/
1)	DEXP.2:>
1)		SKIPN	(Q)		;IS EXPONENT 0?
1)		JRST	[MOVSI A,(1.0)	;YES, A**0 GIVES 1
1)			MOVEI B,0
1)			POPJ P,]
1)		JUMPE	A,[SKIPL (Q)	;IS BASE 0 WITH POSITIVE EXPONEN
	T?
1)			POPJ P,		;YES, RETURN 0
1)			ERROR	(APR,5,1,.+1)	;BASE IS 0 WITH NEG. EXP
Digital Equipment Corporation       27-OCT-77    Page  22
PCO Log Report


	- OVERFLOW
1)			HRLOI A,377777	;RETURN LARGEST POSITIVE NUMBER
1)		IFE CPU-KA10,<HRLOI B,344777 >
1)		IFN CPU-KA10,<HRLOI B,377777 >
1)			POPJ P,]
1)		MOVEM X,XSAVE		;SAVE AC TO DO BLT
1)		MOVE X,XBLT		;SAVE OTHER AC'S
1)		BLT X,XSAVE-1		;...
1)		SKIPL G,(Q)		;GET EXPONENT. IS IT NEGATIVE?
1)		JRST	[DMOVE D,A	;NO, PUT ARG IN D,D+1
1)			JRST DEX2]	;START MAIN LOOP
1)		MOVMS G			;GET POSITIVE VALUE
1)		MOVSI D,(1.0)		;GET DOUB. PRECISION 1.0
 
 
1)		MOVEI E,0		;...
1)					;CALCULATE (1/X)**N, SINCE N .L.
	 0
1)	IFE CPU-KA10,<FDVL	3,0
1)		JFCL	1,OVER
1)		MOVN	5,3
1)		FMPR	5,1
1)		JFCL
1)		UFA	4,5
1)		FDVR	5,0
1)		JFCL
1)		FADL	3,5 >
1)	IFE CPU-KI10,<DFDV D,0
1)		JFCL 1,OVER >
1)	DEX2:	MOVSI A,(1.0)		;GET DOUB. PREC. 1.0
1)		MOVEI B,0		;...
1)		JRST DEX4		;START CALCULATING POWERS OF X (
	OR 1/X)
1)	DEX3:				;SQUARE X (OR 1/X) AGAIN
1)	IFE CPU-KA10,<DMOVEM D,TEMP
1)		MOVEM D,D+2
1)		FMPR D+2,TEMP+1
1)		JFCL
1)		FMPR D+1,TEMP
1)		JFCL
1)		UFA D+1,D+2
1)		JFCL
1)		FMPL D,TEMP
1)		JOV OVR
1)		UFA D+1,D+2
1)		FADL D,D+2
1)		JOV OVR >
1)	IFE CPU-KI10,<DFMP D,D
1)		JOV OVR >
1)		LSH G,-1		;LOOK AT NEXT BIT IN N
1)	DEX4:	TRZN G,1		;IS LO BIT IN N A 1?
Digital Equipment Corporation       27-OCT-77    Page  23
PCO Log Report


1)		JRST DEX5		;NO, DON'T MULTIPLY INTO ANSWER
1)					;MULTIPLY POWER OF X INTO ANSWER
1)	IFE CPU-KA10,<MOVEM A,A+2
1)		FMPR A+2,D+1
1)		JFCL
1)		FMPR A+1,D
1)		JFCL
1)		UFA A+1,A+2
1)		JFCL
1)		FMPL A,D
1)		JOV DEX6
1)		UFA A+1,A+2
1)		FADL A,A+2
1)		JOV DEX6 >
1)	IFE CPU-KI10,<DFMP A,D
1)		JOV DEX6 >
1)	DEX5:	JUMPN G,DEX3		;IF G .N. 0, GET MORE POWERS OF
	X (OR 1/X)
1)	DEX6:	MOVS X,XBLT		;RESTORE AC'S
1)		BLT X,X			;...
1)	CPOPJ:	POPJ P,
1)	OVR:				;ARITHMETIC FAULT, MOVE FIX UP T
	O A,B
1)		SKIPGE A		;SHOULD RESULT BE NEGATIVE?
 
 
1)		DFN D,E			;YES
1)	OVR2:
1)	DMOVE A,D
1)		JRST DEX6		;AND EXIT
1)	OVER:	JUMPGE D,OVR2		;IF THE ARG IS <0 AND THE EXPONE
	NT
1)		TRNN	G,1		;IS ODD, THEN
1)		DFN	D,E		;THE ANSWER
1)		JRST	OVR2		;IS < 0.
1)	XBLT:	XWD C,ACSAVE		;BLT POINTER TO RESTORE AC'S
1)	ACSAVE:	BLOCK X-C
1)	XSAVE:	BLOCK 1			;FOR AC X
1)	TEMP:	BLOCK 2
1)		PRGEND
1)8	TITLE	DEXP.3	%4.(120) PDP-10/10I DOUBLE PRECISION EXP.3 FUNCT
	ION
1)	SUBTTL	D. TODD /DRT	15-FEB-1973
1)	;***COPYRIGHT 1972,1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.*
	**
1)	;THIS PROGRAM CALCULATES A**B, WHERE A AND B ARE DOUBLE
****
2)1	TITLE	DEXP.3	%5.(624) PDP-10/10I DOUBLE PRECISION EXP.3 FUNCT
	ION
2)	SUBTTL	D. TODD /DRT/SWG	29-NOV-1976
2)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
Digital Equipment Corporation       27-OCT-77    Page  24
PCO Log Report


	MAYNARD, MASS.***
2)	;THIS PROGRAM CALCULATES A**B, WHERE A AND B ARE DOUBLE
**************
1)8	;THE CALLING SEQUENCE FOR THE ROUTINE IS AS FOLLOWS:
****
2)1	;[624]CHECKS TO SEE IF B IS AN INTEGER AND TREATS IT
2)	;[624] ACCORDINGLY BY CALLING DEXP.2.  GIVES LIBRARY ERROR FOR
2)	;[624]NEG NUM TO NON-INTEGER POWER.
2)	;THE CALLING SEQUENCE FOR THE ROUTINE IS AS FOLLOWS:
**************
1)8		SEARCH FORPRM
****
2)1		;** ; [624] INSERT BEFORE SEARCH -  SWG 29 NOV 1976
2)		EXTERN DEX2..		;[624]STANDARD DP TO INTEGER POW
	ER
2)		SEARCH FORPRM
**************
1)8		C=	2
****
2)1		E=	4		;[624]
2)		D=	3		;[624]
2)		C=	2
**************
1)8		SKIPG	A		;GET
1)		DFN	A,B		;/A/
1)		DMOVEM	A,ARGAX		;IN ARGAX.
1)		FUNCT	DLOG.,<ARGAX>	;CALC.
****
2)1		;**; [624] DEXP.3+6L DELETE 2 LINES AND INSERT SWG 29-NO
	V-76
2)		;[624] DELETE	SKIPG	A	;GET
2)		;[624] DELETE	DFN	A,B	;/A/
2)		PUSH	P,C		;[624]SAVE TEMPORARY REGISTERS
2)		PUSH	P,D		;[624]
2)		PUSH	P,E		;[624]
2)		DMOVEM	A,ARGAX		;[624]SAVE BASE
2)		DMOVE	A,(Q)		;[624]PULL IN EXPONENT
2)		MOVM	D,A		;[624]MAGNITUDE OF WORD 1 OF EXP
 
 
2)		MOVEI	C,0		;[624]CLEAR AC C
2)		LSHC	C,11		;[624]SHIFT 9 BITS
2)		CAILE	C,233		;[624]INTEGER MUST FIT IN 27 BIT
	S
2)		JRST	DEXPD		;[624]NOT AN INTEGER
2)		SUBI	C,200		;[624]200 COMPLEMENT ON EXP
2)		MOVM	E,B		;[624]WORD 2 OF EXP
2)	IFE CPU-KA10,<			;[624]
2)		HRLZI	B,777000	;[624]WANT TO LOOK AT FRACTION
2)		ANDCAM	B,E		;[624]CLEAR FIRST 9 BITS
2)	>				;[624]
Digital Equipment Corporation       27-OCT-77    Page  25
PCO Log Report


2)		JUMPN	E,DEXPD		;[624]IS WORD 2 ZERO?
2)		LSH	D,-1		;[624]COULD STILL BE INTEGER
2)		HRRZ	E,C		;[624]SET E AS INDEX REG
2)		MOVEI	C,0		;[624]CLEAR C
2)		ASHC	C,(E)		;[624]SHIFT LEFT BY CONTENT S OF
	 E
2)		JFCL	DEXPD		;[624]OVERFLOW
2)		JUMPN	D,DEXPD		;[624]IS IT INTEGER??
2)		MOVE	B,(Q)		;[624]YES-NEED SIGN OF EX
2)		SKIPGE	,B		;[624]NEGATIVE??
2)		MOVNS	C		;[624]YES-NEGATE INTEGER
2)		PUSH	P,(Q)		;[624]SAVE WHAT'S POINTED TO BY
	Q
2)		MOVEM	C,(Q)		;[624]SET ARG FOR DEXP.2
2)		DMOVE	A,ARGAX		;[624]RESTORE BASE
2)		PUSHJ	P,DEX2..	;[624]
2)		POP	P,(Q)		;[624]RESTORE ARG
2)		JRST	DRET		;[624]RESTORE REGS AND RETURN
2)	DEXPD:	DMOVE 	A,ARGAX		;[624]CHECK SIGN
2)		JUMPGE	A,DEXPD2	;[624]NEGATIVE??
2)		DFN	A,B		;[624]YES-GET ABS VALUE
2)		ERROR	(LIB,2,2,[ASCIZ/Attempt to raise negative double
	 precision number to non-integer power/])	;[624]
2)	DEXPD2:	DMOVEM	A,ARGAX		;[624-INSERT LABEL]SAVE BASE
2)		FUNCT	DLOG.,<ARGAX>	;CALC.
**************
1)8		POPJ	P,		;EXIT.
****
2)1	DRET:	POP	P,E		;[624]RESTORE REGS
2)		POP	P,D		;[624]
2)		POP	P,C		;[624]
2)		POPJ	P,		;EXIT.
**************
1)9	TITLE	DEXP	%4.(235) PDP-10/10I DOUBLE PRECISION EXPONENTIAL
	 FUNCTION
1)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
1)	;***COPYRIGHT 1973, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. ***
1)	SEARCH	FORPRM
1)	ENTRY	DEXP
1)	EXTERN	DEXP.
1)	DEXP=DEXP.
1)	PRGEND
1)	TITLE	DEXP.	%4.(356) PDP-10/10I DOUBLE PRECISION EXPONENTIAL
	 FUNCTION
1)	SUBTTL	D. TODD /DRT/HPW/MD		12-AUG-74
1)	;***COPYRIGHT 1972,1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.*
	**
1)	;ARGUMENT. AN ARGUMENT OF ZERO CAUSES AN IMMEDIATE EXIT WITH AN
1)	;ANSWER OF 1.0 . AN ARGUMENT WHOSE MAGNITUDE EXCEEDS 88.028
1)	;CAUSES THE ROUTINE TO EXIT WITH 0 IF THE ARGUMENT WAS NEGATIVE.
1)	;AND 377777777777 IF THE ARGUMENT WAS POSITIVE. THIS IS
Digital Equipment Corporation       27-OCT-77    Page  26
PCO Log Report


1)	;BECAUSE DIRECT CALCULATION OF EXP(X) FOR ABSF(X)>88.028 WOULD
 
 
1)	;CAUSE EXPONENT OVERFLOW OR UNDERFLOW.
1)	;THE ROUTINE USES THE FOLLOWING ALGORITHM:
1)	;EXP(X)	= 2**(X*LOG2(E))
1)	;	= 2**(M+F) WHERE M IS AN INTEGER AND 0<F<1
1)	;	= 2**(M+N+R) WHERE 0<R<1/8 AND M+N+R=X*LOG2(E)
1)	;	= 2**(M+N) * EXP(R*LOG(2))
1)	;2**M IS CALCULATED EASILY WITH THE FLOATING SCALE INSTRUCTION.
1)	;2**N IS CALCULATED BY DETERMINING THE CORRECT INTERVAL OF N AND
1)	;USING A TABLE OF POWERS OF TWO FROM 2**1/8 TO 2**7/8.
1)	;FINALLY, EXP(R*LOG(2)) IS CALCULATED BY A CONTINUED FRACTION
1)	;TAKEN FROM RALSTON AND WILF, "METHODS FOR DIGITAL COMPUTERS" :
1)	;EXP(R*LOG(2)) = 1+A4/((B4/R) -C4 + D4*R + H4/(R + B4/R))
1)	;THE FOLLOWING ERRORS HAVE BEEN OBSERVED WITH DEXP:
1)	;	1. WITH -10.0<X<10.0, ERRORS RANGED FROM 0 TO 48
1)	;	   UNITS IN THE 19TH SIGNIFICANT DIGIT. THE MEAN ERROR
1)	;	   FOR 20 READINGS WAS 5.4 UNITS IN THE 19TH DIGIT.
1)	;	2. WITH 10.0<X<40.0, ERRORS RANGED FROM 0 TO 41 UNITS
1)	;	   IN THE 19TH SIGNIFICANT DIGIT. THE MEAN ERROR FOR
1)	;	   7 READINGS WAS 16 UNITS IN THE 19TH SIGNIFICANT DIGIT
	.
1)	;	3. WITH 40.0<X<88.0, ERRORS RANGED FROM 5 TO 57 UNITS IN
1)	;	   THE 19TH SIGNIFICANT DIGIT. THE MEAN ERROR FOR 12
1)	;	   READINGS WAS 44.4 UNITS IN THE 19TH SIGNIFICANT DIGIT
	.
1)	;THE ERRORS REFERRED TO ABOVE ARE ABSOLUTE ERRORS. IT SHOULD
1)	;BE NOTED THAT ADDITIONAL ERRORS ARE INTRODUCED BY ERRORS IN
1)	;THE DOUBLE PRECISION INPUT AND OUTPUT ROUTINES.
1)		A=	0
****
2)1	TITLE	DEXP.2	%5.(624) PDP-10/10I DOUBLE PRECISION EXP2 FUNCTI
	ON
2)	SUBTTL	D. TODD /DRT/SWG	29-NOV-1976
2)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
2)	;THIS ROUTINE CALCULATES A DOUBLE PRECISION NUMBER RAISED
2)	;TO A FIXED POINT POWER. THE CALCULATION IS A**N, WHERE N
2)	;IS AN INTEGER OF THE FORM
2)	;	N= Q(0) + Q(1)*2 + Q(2)*4 + ... WHERE Q(I) = 0 OR 1
2)	;THE ONLY RESTRICTION ON THE BASE OR EXPONENT IS THAT
2)	;AN EXPONENT OF 400000000000 IS NOT HANDLED CORRECTLY.
2)	;THE ROUTINE IS CALLED BY
2)	;	MOVEI	Q, POWER
2)	;	PUSHJ	P, DEXP2
2)	;WHERE POWER IS THE ADDRESS OF THE FIXED POINT POWER, AND
2)	;THE DOUBLE PRECISION BASE IS IN ACCUMULATORS A AND B. THE
2)	;RESULT IS RETURNED IN ACCUMULATORS A AND B.
2)		;**;[624] INSERT BEFORE SEARCH SWG 29-NOV-1976
2)		ENTRY DEX2..		;[624]ENTRY FROM DEXP.3
Digital Equipment Corporation       27-OCT-77    Page  27
PCO Log Report


2)		SEARCH FORPRM
2)	IFN F40LIB,<ENTRY	DEXP.2>
2)	IFN F10LIB,<ENTRY	DEXP2.>
2)		A=	0
**************
1)9		F=	5
1)		G=	6
****
2)1		G=	6
**************
1)9		SEARCH FORPRM
1)	;CONSTANTS AND TEMPORARY LOCATIONS AND STUFF
 
 
1)	XBLT:	XWD	C,ACSAVE
1)	DCON1:	88.028
1)	DLOG2E:	DOUBLE	201561250731,112701376057	;LOG2(E) = 1.442
	69 50408 88963 40740
1)	TABLE:	0			;0
1)		040000000000		;1/8
1)		100000000000		;2/8
1)		140000000000		;3/8
1)		200000000000		;4/8
1)		240000000000		;5/8
1)		300000000000		;6/8
1)		340000000000		;7/8
1)	ONE:				;DOUBLE PRECISION 1.0
1)	POWERS:	DOUBLE 1.0,0			;2**0 = 1.0
1)		DOUBLE 201427127017,037250572672	;2**1/8 = 1.0905
	0 77326 65257 65919
1)		DOUBLE 201460337602,214333425134	;2**2/8 = 1.1892
	0 71150 02721 06671
1)		DOUBLE 201513773265,115425047073	;2**3/8 = 1.2968
	3 95546 51009 66590
1)		DOUBLE 201552023631,237635714441	;2**4/8 = 1.4142
	1 35623 73095 04878
1)		DOUBLE 201612634520,212520333270	;2**5/8 = 1.5422
	1 08254 07940 824
1)		DOUBLE 201656423746,126551655275	;2**6/8 = 1.6817
	9 28305 07429 086
1)		DOUBLE 201725403067,076722207113	;2**7/8 = 1.8340
	0 80864 09342 463
1)	A4:	DOUBLE 206744575555,062215755376	;A4 = 60.59319 1
	7173 36463 11080
1)	B4:	DOUBLE 207535527021,213670572221	;B4 = 87.41749 7
	2022 35527 474
1)	MC4:	DOUBLE 572033202222,715562022402	;MC4=-C4 = -30.2
	9659 58586 68231 555
1)	D4:	DOUBLE 201414631463,063146314632	;D4 = 1.05
1)	H4:	DOUBLE 210654261010,261565402456	;H4 = 214.17286
	81454 77042 3113
Digital Equipment Corporation       27-OCT-77    Page  28
PCO Log Report


1)	ACSAVE:	BLOCK	X-C+1
1)	B4F:	BLOCK 	2	;TEMP FOR B4*F
1)	FB4F:	BLOCK	2	;TEMP FOR F+B4*F
1)		HELLO	(DEXP,.)	;[235] ENTRY TO DEXP ROUTINE
1)		MOVE	0,XBLT		;SAVE ACCUMULATORS
1)		BLT	0,ACSAVE+X-C	;...
1)		DMOVE	A,@(Q)		;PICK UP ARGUMENT
1)		JUMPE	A,[MOVSI A,(1.0)	;RETURN 1.0 FOR ARG OF Z
	ERO
1)			JRST DEXEND]		;EXIT
1)		MOVM	C,A		;GET POS VALUE OF EXPONENT
1)		CAML	C,DCON1		;TOO BIG TO COMPUTE?
1)		JRST	[HRLOI A,377777	;YES, GET LARGEST POS NUM
1)			MOVE C,ACSAVE	;RESTORE AC C.
1)			SKIPGE @(Q)	;SUPPOSED TO BE SMALL ?
1)			MOVEI A,1	;YES, MAKE IT VERY SMALL
1)			FADL A,A	;CAUSE OVER/UNDERFLOW, RETURN FI
	X UPS
1)			JRST DEXEND]	;RETURN
1)	FLMUL A,DLOG2E
1)		HLRE	E,A		;EXTRACT EXPONENT
1)		ASH	E,-9		;...
1)		TSC	E,E		;TAKE 1'S COMPLEMENT IF NUM .L.
	0
1)	IFE CPU-KA10,<LSH	B, 8 >		;REMOVE LOW ORDER EXP.
1)		SKIPGE	A		;CHANGE  EXPONENT BITS TO SIGN B
	ITS
1)		TLOA	A,377000	;NUMBER NEGATIVE, SET BITS
1)		TLZ	A,377000	;NUMBER POSITIVE, CLEAR BITS
1)		ASHC	A, 8		;LEFT JUSTIFY ARG FRACTION BITS
1)					;GET ANOTHER COPY OF FRACTION
1)	DMOVE C,A
1)		ASHC	A, -243(E)	;SIMULATE THREE-WORD SHIFT WITH.
	..
1)					;TWO LONG SHIFTS. THIS LEAVES IN
	TEGER
1)					;IN A, FRAC IN B AND C.
 
 
1)		LSH	D,1		;SQUEEZE OUT SIGN BIT
1)		LSHC	C,43-200(E)	;THEN DO 2ND LONG SHIFT, (THE LS
	HC HERE
1)						;PREVENTS OVERFLOW GOING
	 LEFT)
1)		TLZ	B, (1B0)	;CLEAR SIGN BIT. IF FRAC WAS <0,
1)					;THIS GIVES 1-FRAC AND PROPER EX
	P.
1)		HRRM	A, SCALE	;SAVE EXPONENT FOR FUTURE SCALIN
	G
1)		MOVEI	G, 7		;GET INDEX REGISTER POINTER TO T
	ABLE
Digital Equipment Corporation       27-OCT-77    Page  29
PCO Log Report


1)	REDUCE:	CAMN	B, TABLE(G)	;DOES ARGUMENT MATCH TABLE ENTRY
	?
1)		JUMPE	C,[LSH G,1	;YES, IFF LO HALF=0. CHANGE INDE
	X TO POINTER
1)					;PICK UP DOUBLE WORD ANSWER
1)			DMOVE A,POWERS(G)
1)			JRST SCALE]	;SCALE RESULTS AND EXIT
1)		CAMGE	B, TABLE(G)	;IS ARGUMENT GREATER THAN ENTRY?
1)		SOJA	G, REDUCE	;NO, TRY NEXT LOWER ENTRY
1)		SUB	B, TABLE(G)	;YES, ALL DONE -REDUCE ARGUMENT
1)		LSH	G, 1		;SAVE INDEX AS A POINTER
1)		ASHC	B, -8		;MAKE ROOM FOR EXPONENT
1)	IFE CPU-KA10,<MOVE	A, B		;SET UP ARG. FOR NORMALI
	ZING
1)		ASH	C, -8		;MAKE ROOM FOR LOW ORDER EXP.
1)		FSC	A,200		;SET EXP TO 200
1)		FSC	C,200-^D27	;SET EXP 27 LOWER
1)		FADL	A,C >		;MAKE STANDARD NUMBER
1)	IFE CPU-KI10,<TLO	B,200000	;INSERT EXPONENT
1)		DFAD	B,[EXP 0,0]	;NORMALIZE RESULT
1)		DMOVE	A,B >		;PUT RESULT AN A,B
1)					;GET B4/F
1)	DMOVE D,B4
1)	FLDIV D,A
1)					;SAVE B4/F
1)	DMOVEM D,B4F
1)					;GET F+B4/F
1)	FLADD D,A
1)					;GET H4/(F+B4/F)
1)	DMOVEM D,FB4F
1)	DMOVE D,H4
1)	FLDIV D,FB4F
1)					;GET D4*F
1)	FLMUL A,D4
1)					;GET (B4/F)-C4+D4*F+(H4/(F+B4/F)
	)
1)	FLADD D,A
1)	FLADD D,MC4
1)	FLADD D,B4F
1)					;GET 1.0+A4/REST
1)	DMOVE A,A4
1)	FLDIV A,D
1)	FLADD A,ONE
1)		JUMPE	G,SCALE		;MULTIPLY BY POWER OF TWO?
1)	FLMUL A,POWERS(G)
1)	SCALE:	FSC	A,.-.		;SCALE RESULTS
1)	IFE CPU-KA10,<FSC	B,@SCALE
1)		JFCL			;SUPPRESS UNDERFLOW MSG. FROM LO
	W WORD.
1)		FADL	A,B >		;MAKE STANDARD NUMBER
1)	DEXEND:	MOVS	X, XBLT		;PICK UP THE BLT POINTER
Digital Equipment Corporation       27-OCT-77    Page  30
PCO Log Report


1)		BLT	X, X		;RESTORE THE ACCUMULATORS
1)		GOODBY	(1)		;EXIT
1)	LIT
 
 
1)		PRGEND
1)10	TITLE	DLOG	%4.(235) PDP-10/10I DOUBLE PRECISION LOGARITHM F
	UNCTION
1)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
****
2)1	IFN F10LIB,<
2)		SIXBIT	/DEXP2./
2)	DEXP2.:	DMOVE	T0,@(L)		;GET THE BASE
2)		MOVEI	L,@1(L)		;POINT TO THE POWER
2)	IFN F40LIB,<
2)		JRST	DEXP.2		;GO TO COMMON ROUTINE
2)	>>
2)	IFN F40LIB,<
2)		SIXBIT /DEXP.2/
2)	DEXP.2:>
2)		;**; [624] INSERT LABEL AT DEXP.2+1 SWG 29-NOV-1976
2)	DEX2..:	SKIPN	(Q)		;[624]IS EXPONENT 0?
2)		JRST	[MOVSI A,(1.0)	;YES, A**0 GIVES 1
2)			MOVEI B,0
2)			POPJ P,]
2)		JUMPE	A,[SKIPL (Q)	;IS BASE 0 WITH POSITIVE EXPONEN
	T?
2)			POPJ P,		;YES, RETURN 0
2)			ERROR	(APR,5,1,.+1)	;BASE IS 0 WITH NEG. EXP
	- OVERFLOW
2)			HRLOI A,377777	;RETURN LARGEST POSITIVE NUMBER
2)		IFE CPU-KA10,<HRLOI B,344777 >
2)		IFN CPU-KA10,<HRLOI B,377777 >
2)			POPJ P,]
2)		MOVEM X,XSAVE		;SAVE AC TO DO BLT
2)		MOVE X,XBLT		;SAVE OTHER AC'S
2)		BLT X,XSAVE-1		;...
2)		SKIPL G,(Q)		;GET EXPONENT. IS IT NEGATIVE?
2)		JRST	[DMOVE D,A	;NO, PUT ARG IN D,D+1
2)			JRST DEX2]	;START MAIN LOOP
2)		MOVMS G			;GET POSITIVE VALUE
2)		MOVSI D,(1.0)		;GET DOUB. PRECISION 1.0
2)		MOVEI E,0		;...
2)					;CALCULATE (1/X)**N, SINCE N .L.
	 0
2)	IFE CPU-KA10,<FDVL	3,0
2)		JFCL	1,OVER
2)		MOVN	5,3
2)		FMPR	5,1
2)		JFCL
2)		UFA	4,5
Digital Equipment Corporation       27-OCT-77    Page  31
PCO Log Report


2)		FDVR	5,0
2)		JFCL
2)		FADL	3,5 >
2)	IFE CPU-KI10,<DFDV D,0
2)		JFCL 1,OVER >
2)	DEX2:	MOVSI A,(1.0)		;GET DOUB. PREC. 1.0
2)		MOVEI B,0		;...
2)		JRST DEX4		;START CALCULATING POWERS OF X (
	OR 1/X)
2)	DEX3:				;SQUARE X (OR 1/X) AGAIN
2)	IFE CPU-KA10,<DMOVEM D,TEMP
2)		MOVEM D,D+2
2)		FMPR D+2,TEMP+1
2)		JFCL
2)		FMPR D+1,TEMP
 
 
2)		JFCL
2)		UFA D+1,D+2
2)		JFCL
2)		FMPL D,TEMP
2)		JOV OVR
2)		UFA D+1,D+2
2)		FADL D,D+2
2)		JOV OVR >
2)	IFE CPU-KI10,<DFMP D,D
2)		JOV OVR >
2)		LSH G,-1		;LOOK AT NEXT BIT IN N
2)	DEX4:	TRZN G,1		;IS LO BIT IN N A 1?
2)		JRST DEX5		;NO, DON'T MULTIPLY INTO ANSWER
2)					;MULTIPLY POWER OF X INTO ANSWER
2)	IFE CPU-KA10,<MOVEM A,A+2
2)		FMPR A+2,D+1
2)		JFCL
2)		FMPR A+1,D
2)		JFCL
2)		UFA A+1,A+2
2)		JFCL
2)		FMPL A,D
2)		JOV DEX6
2)		UFA A+1,A+2
2)		FADL A,A+2
2)		JOV DEX6 >
2)	IFE CPU-KI10,<DFMP A,D
2)		JOV DEX6 >
2)	DEX5:	JUMPN G,DEX3		;IF G .N. 0, GET MORE POWERS OF
	X (OR 1/X)
2)	DEX6:	MOVS X,XBLT		;RESTORE AC'S
2)		BLT X,X			;...
2)	CPOPJ:	POPJ P,
2)	OVR:				;ARITHMETIC FAULT, MOVE FIX UP T
Digital Equipment Corporation       27-OCT-77    Page  32
PCO Log Report


	O A,B
2)		SKIPGE A		;SHOULD RESULT BE NEGATIVE?
2)		DFN D,E			;YES
2)	OVR2:
2)	DMOVE A,D
2)		JRST DEX6		;AND EXIT
2)	OVER:	JUMPGE D,OVR2		;IF THE ARG IS <0 AND THE EXPONE
	NT
2)		TRNN	G,1		;IS ODD, THEN
2)		DFN	D,E		;THE ANSWER
2)		JRST	OVR2		;IS < 0.
2)	XBLT:	XWD C,ACSAVE		;BLT POINTER TO RESTORE AC'S
2)	ACSAVE:	BLOCK X-C
2)	XSAVE:	BLOCK 1			;FOR AC X
2)	TEMP:	BLOCK 2
2)		PRGEND
2)	TITLE	DEXP	%4.(235) PDP-10/10I DOUBLE PRECISION EXPONENTIAL
	 FUNCTION
2)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
**************
1)10	ENTRY	DLOG
1)	EXTERN	DLOG.
1)	DLOG=DLOG.
1)	PRGEND
1)	TITLE	DLOG10	%4.(235) PDP-10/10I DOUBLE PRECISION LOGARITHM F
	UNCTION
1)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
 
 
1)	;***COPYRIGHT 1973, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. ***
1)	ENTRY	DLOG10
1)	EXTERN	DLG10.
1)	DLOG10=DLG10.
1)	PRGEND
1)	TITLE	DLOG.	%4.(356) PDP-10/10I DOUBLE PRECISION LOGARITHM F
	UNCTION
1)	SUBTTL	D. TODD /DRT/HPW/MD		12-AUG-74
1)	;***COPYRIGHT 1972,1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.*
	**
1)	;THIS PROGRAM CALCULATES THE LOGARITHM OF A DOUBLE PRECISION
1)	;ARGUMENT. THE ALGORITHM USED IS DESCRIBED ON PAGES 29-30 OF
1)	;RALSTON AND WILF, "MATHEMATICAL METHODS FOR DIGITAL COMPUTERS".
1)	;THE ARGUMENT X IS WRITTEN AS
1)	;	X = (2**N)*F	WHERE 1/2 < F < 1
1)	;THEN LOG(X) = (N*LOGE(2)) + LOG(F)
1)	;F IS REDUCED BY FIXED POINT MULTIPLICATION BY NOT MORE THAN
1)	;THREE CONSTANTS. THIS YIELDS
1)	;	0 < T = A1*A2*A3*F - 1.0 < (2**-7)/5
1)	;NOTE THAT NOT ALL THE A1,A2,A3 NEED BE INCLUDED IN THE PRODUCT.
1)	;FINALLY,
1)	;	LOG(F) = LOG(1+T) - LOG(A1) - LOG(A2) - LOG(A3)
Digital Equipment Corporation       27-OCT-77    Page  33
PCO Log Report


1)	;LOG(1+T) IS CALCULATED AS A TAYLOR SERIES IN T.
1)	;THE ROUTINE IS CALLED IN THE FOLLOWING MANNER:
1)	;	JSA	Q, DLOG
1)	;	EXP	ARG
1)	;WHERE ARG IS THE ADDRESS OF THE HIGH ORDER PART OF THE DOUBLE
1)	;PRECISION ARGUMENT. THE RESULT IS LEFT IN ACCUMULATOR A AND B.
1)	;AVAILABLE TABLES FOR LOGARITHMS LIST 16 SIGNIFICANT DIGITS,
1)	;ALL OF WHICH AGREE WITH VALUES PRODUCED BY THIS PROGRAM. AN
1)	;ESTIMATE OF THE MAXIMUM THEORETICAL ERROR IS OBTAINED BY OB-
1)	;SERVING THAT, AFTER REDUCTION, THE ARGUMENT IS LESS THAN
1)	;(2**-7)/5 = .00625. HENCE, THE ERROR IN THE TAYLOR SERIES
1)	;IS LESS THAN
1)	;	(.00625**9)/9 = 1.4573*10**-20/9 = .1619*10**-20
1)		A=	0
****
2)1	ENTRY	DEXP
2)	EXTERN	DEXP.
2)	DEXP=DEXP.
2)	PRGEND
2)	TITLE	DEXP.	%4.(356) PDP-10/10I DOUBLE PRECISION EXPONENTIAL
	 FUNCTION
2)	SUBTTL	D. TODD /DRT/HPW/MD		12-AUG-74
2)	;***COPYRIGHT 1972,1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.*
	**
2)	;ARGUMENT. AN ARGUMENT OF ZERO CAUSES AN IMMEDIATE EXIT WITH AN
2)	;ANSWER OF 1.0 . AN ARGUMENT WHOSE MAGNITUDE EXCEEDS 88.028
2)	;CAUSES THE ROUTINE TO EXIT WITH 0 IF THE ARGUMENT WAS NEGATIVE.
2)	;AND 377777777777 IF THE ARGUMENT WAS POSITIVE. THIS IS
2)	;BECAUSE DIRECT CALCULATION OF EXP(X) FOR ABSF(X)>88.028 WOULD
2)	;CAUSE EXPONENT OVERFLOW OR UNDERFLOW.
2)	;THE ROUTINE USES THE FOLLOWING ALGORITHM:
2)	;EXP(X)	= 2**(X*LOG2(E))
2)	;	= 2**(M+F) WHERE M IS AN INTEGER AND 0<F<1
2)	;	= 2**(M+N+R) WHERE 0<R<1/8 AND M+N+R=X*LOG2(E)
2)	;	= 2**(M+N) * EXP(R*LOG(2))
2)	;2**M IS CALCULATED EASILY WITH THE FLOATING SCALE INSTRUCTION.
2)	;2**N IS CALCULATED BY DETERMINING THE CORRECT INTERVAL OF N AND
2)	;USING A TABLE OF POWERS OF TWO FROM 2**1/8 TO 2**7/8.
 
 
2)	;FINALLY, EXP(R*LOG(2)) IS CALCULATED BY A CONTINUED FRACTION
2)	;TAKEN FROM RALSTON AND WILF, "METHODS FOR DIGITAL COMPUTERS" :
2)	;EXP(R*LOG(2)) = 1+A4/((B4/R) -C4 + D4*R + H4/(R + B4/R))
2)	;THE FOLLOWING ERRORS HAVE BEEN OBSERVED WITH DEXP:
2)	;	1. WITH -10.0<X<10.0, ERRORS RANGED FROM 0 TO 48
2)	;	   UNITS IN THE 19TH SIGNIFICANT DIGIT. THE MEAN ERROR
2)	;	   FOR 20 READINGS WAS 5.4 UNITS IN THE 19TH DIGIT.
2)	;	2. WITH 10.0<X<40.0, ERRORS RANGED FROM 0 TO 41 UNITS
2)	;	   IN THE 19TH SIGNIFICANT DIGIT. THE MEAN ERROR FOR
2)	;	   7 READINGS WAS 16 UNITS IN THE 19TH SIGNIFICANT DIGIT
	.
Digital Equipment Corporation       27-OCT-77    Page  34
PCO Log Report


2)	;	3. WITH 40.0<X<88.0, ERRORS RANGED FROM 5 TO 57 UNITS IN
2)	;	   THE 19TH SIGNIFICANT DIGIT. THE MEAN ERROR FOR 12
2)	;	   READINGS WAS 44.4 UNITS IN THE 19TH SIGNIFICANT DIGIT
	.
2)	;THE ERRORS REFERRED TO ABOVE ARE ABSOLUTE ERRORS. IT SHOULD
2)	;BE NOTED THAT ADDITIONAL ERRORS ARE INTRODUCED BY ERRORS IN
2)	;THE DOUBLE PRECISION INPUT AND OUTPUT ROUTINES.
2)		A=	0
**************
1)10		X=	G		;HIGHEST AC TO SAVE
1)		SEARCH FORPRM
1)	;CONSTANTS AND TEMPORARY LOCATIONS AND STUFF
1)	LOGLST:	DOUBLE 200471174064,325425031470	;0.61180 15411 0
	5992 8976
1)		DOUBLE 200402252251,151350376610	;0.50455 60107 5
	2395 2859
1)		DOUBLE 177637144373,057714113734	;0.40546 51081 0
	8164 3810
1)		DOUBLE 177506061360,207057302360	;0.31845 37311 1
	8534 6147
1)		DOUBLE 176710776761,346515041520	;0.22314 35513 1
	4209 7553
1)		DOUBLE 176537746034,051711723600	;0.17185 02569 2
	6659 2214
1)		DOUBLE 175557032242,271265512760	;0.08961 21586 8
	9687 12374
1)		DOUBLE 173770123303,236031377700	;0.03077 16586 6
	6753 68689
1)	LIST:	354000000000		;1.11011 BINARY
1)		324000000000		;1.10101 BINARY
1)		300000000000		;1.10000 BINARY
1)		260000000000		;1.01100 BINARY
1)		240000000000		;1.01000 BINARY
1)		230000000000		;1.00110 BINARY
1)		214000000000		;1.00011 BINARY
1)		204000000000		;1.00001 BINARY
1)	DLOGE2:	DOUBLE 200542710277,276434757153	;0.69314 71805 5
	9945 30941 72321
1)	A9:	DOUBLE 175707070707,034343434344	;1/9
1)	A8:	DOUBLE 601400000000,0			;-1/8
1)	A7:	DOUBLE 176444444444,222222222222	;1/7
1)	A6:	DOUBLE 601252525252,652525252526	;-1/6
1)	A5:	DOUBLE 176631463146,146314631463	;1/5
1)	A4:	DOUBLE 600400000000,0			;-1/4
1)	A3:	DOUBLE 177525252525,125252525253	;1/3
1)	A2:	DOUBLE 577400000000,0			;-1/2
1)	ONE:
1)	A1:	201400000000
1)	DZERO:	000000000000
1)	IFE CPU-KI10,<0	>
1)	SUMSAV:	BLOCK 2		;STORAGE FOR PARTIAL ANSWER
Digital Equipment Corporation       27-OCT-77    Page  35
PCO Log Report


1)	XBLT:	XWD	C, ACSAVE
1)	ACSAVE:	BLOCK	X-C+1
1)	;DOUBLE PRECISION COMMON LOGARITHM FUNCTION
1)	;THE ROUTINE CALCULATES THE LOGARITHM, BASE 10, OF A DOUBLE
1)	;PRECISION ARGUMENT. THE ALGORITHM USED IS
 
 
1)	;	DLOG10(X) = DLOG(X)*LOG10(E)
1)	;THE CALLING SEQUENCE FOR THE ROUTINE IS THE FOLLOWING:
1)	;	JSA	Q, DLOG10
1)	;	EXP	ARG
1)	;THE DOUBLE PRECISION ANSWER IS RETURNED IN AC A AND B.
1)		HELLO	(DLG10.,DLOG10)	;[235] ENTRY TO DLOG10 ROUTINE
1)		MOVEI	B,@(Q)		;GET ADDRESS OF ARGUMENT
1)		SKIPN	B,(B)		;IF ARG = 0,
1)		JRST	ZERO		;THEN GO TO ZERO.
1)		PUSHJ	P,DLOG.		;CALCULATE LOG(ARG)
1)	IFE CPU-KA10,<MOVEM	C,ACSAVE >	;SAVE ACCUMULATOR C
1)	FLMUL A,LOG10D
1)	IFE CPU-KA10,<MOVE	C,ACSAVE >	;RESTORE C
1)		GOODBY	(1)		;EXIT
1)	LOG10D:	DOUBLE 177674557305,111562416145	;.43429448190325
	182765
1)		HELLO	(DLOG,.)	;[235] ENTRY TO DLOG ROUTINE
1)		MOVE	0,XBLT		;SAVE AC'S
1)		BLT	0,ACSAVE+X-C	;...
1)		DMOVE	A,@(Q)		;PICK UP ARGUMENT
1)		JUMPG	A,DLOGP		;ARGUMENT IS GREATER THAN 0
1)		JUMPE	A, ZERO		;CHECK FOR ZERO ARGUMENT
1)		ERROR	(LIB,12,2,[ASCIZ /Attempt to take DLOG of Negati
	ve Arg/])
1)		DMOVN	A,@(Q)		;GET ABSF(X)
1)	DLOGP:	CAMN	A,ONE		;X PRECISELY 1.0?
1)		JUMPE	B,[SETZB A,B
1)			JRST DLOG5]	;YES, RETURN ZERO
1)	DLOG1:	LDB	D,[POINT 8,A,8]	;NO,PICK UP EXPONENT FROM HI ORD
	ER
1)		SUBI	D, 200		;GET EXPONENT EXCESS 200
1)		FSC	D,233		;MAKE FLOATING POINT NUMBER
1)		MOVEI	E,0		;SET UP LO HALF
1)					;CALCULATE N*LOGE(2)
1)	FLMUL D,DLOGE2
1)	DMOVEM D,SUMSAV
1)	IFE CPU-KA10,<LSH	B,8 >		;GET RID OF LOW ORDER EX
	P.
1)		TLZ	A,777000	;MASK OUT EXPONENT
1)		ASHC	A,8		;NORMALIZE FRACTION TO BIT 1
1)		SETZB	D,E		;INITIALIZE REDUCTION CONSTANT T
	O 0
1)	DLOG2:	LDB	G,[POINT 3,A,4]	;GET HI 3 BITS BELOW 1/2
1)		MUL	B, LIST(G)	;FIXED POINT MULTIPLY FOR LO HAL
Digital Equipment Corporation       27-OCT-77    Page  36
PCO Log Report


	F
1)		MOVE	C,B		;SAVE HI HALF OF LO PRODUCT
1)					;(LO HALF IS ALL 0'S, THROW IT A
	WAY)
1)		MUL	A, LIST(G)	;MULTIPLY HI ORDER, TOO
1)		TLO	B,(1B0)		;SET BIT 0, TO AVOID OVERFLOW
1)		ADD	B,C		;COMBINE RESULTS OF MULTIPLY
1)		TLZN	B,(1B0)		;CLEAR BIT 0, WAS THERE OVERFLOW
	?
1)		ADDI	A,1		;YES, PROPOGATE CARRY
1)		ASH	G, 1		;TURN BITS INTO D.P. POINTER
1)	FLADD D,LOGLST(G)
1)		TLZE	A, 200000	;IS THE PRODUCT .GE. 1.0?
1)		JRST	DLOG3		;YES
1)		ASHC	A, 1		;NO, GET RID OF EXTRANEOUS ZERO
1)		JRST	DLOG2		;TRY ANOTHER MULTIPLICATION
1)	DLOG3:	ASHC	A, -7		;MAKE ROOM FOR THE EXPONENT
1)	IFE CPU-KA10,<FSC	A,200		;SET EXPONENT TO 200
1)		ASH	B,-8		;MAKE ROOM FOR LO EXPONENT
1)		FSC	B,200-^D27	;INSERT LO EXPONENT
 
 
1)		FADL	A,B >		;MAKE NORMAL DOUB, PRECISION NUM
	BER
1)	IFE CPU-KI10,<TLC	A,200000	;INSERT EXPONENT
1)		DFAD	A,DZERO >	;NORMALIZE
1)		DFN	D,E		;NEGATE LOG OF MAGIC NUMBERS
1)					;AND ADD INTO FINAL SUMMATION
1)	FLADD D,SUMSAV
1)	DMOVEM D,SUMSAV
1)					;PICK UP CONSTANT TO START
1)	DMOVE D,A9
1)		MOVEI	G,A8		;INIT TABLE POINTER AT A8
1)	DLOG4:				;MULTIPLY ACCUMULATED SUM BY X
1)	FLMUL D,A
1)					;ADD NEXT CONSTANT INTO PARTIAL
	SUM
1)	FLADD D,0(G)
1)		ADDI	G, 2		;UPDATE POINTER TO NEXT CONSTANT
1)		CAIG	G, A1		;ARE WE DONE YET?
1)		JRST	DLOG4		;NO, LOOP BACK FOR MORE TAYLOR S
	ERIES
1)					;YES, ONE LAST MULTIPLICATION
1)	FLMUL A,D
1)					;AND ADD SERIES SUM INTO FINAL A
	NSWER
1)	FLADD A,SUMSAV
1)	DLOG5:	MOVS	X, XBLT		;PICK UP BLT POINTER
1)		BLT	X,X		;RESTORE ACCUMULATORS
1)		GOODBY	(1)		;EXIT
1)	ZERO:	MOVSI	A,400000	;SET UP LARGE NEG. NUM.
Digital Equipment Corporation       27-OCT-77    Page  37
PCO Log Report


1)	IFE CPU-KA10,<FADL	A,A >		;CAUSE NEGATIVE OVERFLOW
1)	IFE CPU-KI10,<DFAD	A,A >
1)		GOODBY	(1)		;TRAP ROUTINE FIXED IT UP AND
1)					;PRINTED MESSAGE
1)		PRGEND
1)11	TITLE	DSQRT	%4.(235) DOUBLE PRECISION SQUARE ROOT
1)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
****
2)1		X=	G	;HIGHEST AC TO SAVE
2)		SEARCH FORPRM
2)	;CONSTANTS AND TEMPORARY LOCATIONS AND STUFF
2)	XBLT:	XWD	C,ACSAVE
2)	DCON1:	88.028
2)	DLOG2E:	DOUBLE	201561250731,112701376057	;LOG2(E) = 1.442
	69 50408 88963 40740
2)	TABLE:	0			;0
2)		040000000000		;1/8
2)		100000000000		;2/8
2)		140000000000		;3/8
2)		200000000000		;4/8
2)		240000000000		;5/8
2)		300000000000		;6/8
2)		340000000000		;7/8
2)	ONE:				;DOUBLE PRECISION 1.0
2)	POWERS:	DOUBLE 1.0,0			;2**0 = 1.0
2)		DOUBLE 201427127017,037250572672	;2**1/8 = 1.0905
	0 77326 65257 65919
2)		DOUBLE 201460337602,214333425134	;2**2/8 = 1.1892
	0 71150 02721 06671
2)		DOUBLE 201513773265,115425047073	;2**3/8 = 1.2968
	3 95546 51009 66590
2)		DOUBLE 201552023631,237635714441	;2**4/8 = 1.4142
	1 35623 73095 04878
2)		DOUBLE 201612634520,212520333270	;2**5/8 = 1.5422
	1 08254 07940 824
2)		DOUBLE 201656423746,126551655275	;2**6/8 = 1.6817
	9 28305 07429 086
2)		DOUBLE 201725403067,076722207113	;2**7/8 = 1.8340
	0 80864 09342 463
 
 
2)	A4:	DOUBLE 206744575555,062215755376	;A4 = 60.59319 1
	7173 36463 11080
2)	B4:	DOUBLE 207535527021,213670572221	;B4 = 87.41749 7
	2022 35527 474
2)	MC4:	DOUBLE 572033202222,715562022402	;MC4=-C4 = -30.2
	9659 58586 68231 555
2)	D4:	DOUBLE 201414631463,063146314632	;D4 = 1.05
2)	H4:	DOUBLE 210654261010,261565402456	;H4 = 214.17286
	81454 77042 3113
2)	ACSAVE:	BLOCK	X-C+1
Digital Equipment Corporation       27-OCT-77    Page  38
PCO Log Report


2)	B4F:	BLOCK 	2	;TEMP FOR B4*F
2)	FB4F:	BLOCK	2	;TEMP FOR F+B4*F
2)		HELLO	(DEXP,.)	;[235] ENTRY TO DEXP ROUTINE
2)		MOVE	0,XBLT		;SAVE ACCUMULATORS
2)		BLT	0,ACSAVE+X-C	;...
2)		DMOVE	A,@(Q)		;PICK UP ARGUMENT
2)		JUMPE	A,[MOVSI A,(1.0)	;RETURN 1.0 FOR ARG OF Z
	ERO
2)			JRST DEXEND]		;EXIT
2)		MOVM	C,A		;GET POS VALUE OF EXPONENT
2)		CAML	C,DCON1		;TOO BIG TO COMPUTE?
2)		JRST	[HRLOI A,377777	;YES, GET LARGEST POS NUM
2)			MOVE C,ACSAVE	;RESTORE AC C.
2)			SKIPGE @(Q)	;SUPPOSED TO BE SMALL ?
2)			MOVEI A,1	;YES, MAKE IT VERY SMALL
2)			FADL A,A	;CAUSE OVER/UNDERFLOW, RETURN FI
	X UPS
2)			JRST DEXEND]	;RETURN
2)	FLMUL A,DLOG2E
2)		HLRE	E,A		;EXTRACT EXPONENT
2)		ASH	E,-9		;...
2)		TSC	E,E		;TAKE 1'S COMPLEMENT IF NUM .L.
	0
2)	IFE CPU-KA10,<LSH	B, 8 >		;REMOVE LOW ORDER EXP.
2)		SKIPGE	A		;CHANGE  EXPONENT BITS TO SIGN B
	ITS
2)		TLOA	A,377000	;NUMBER NEGATIVE, SET BITS
2)		TLZ	A,377000	;NUMBER POSITIVE, CLEAR BITS
2)		ASHC	A, 8		;LEFT JUSTIFY ARG FRACTION BITS
2)					;GET ANOTHER COPY OF FRACTION
2)	DMOVE C,A
2)		ASHC	A, -243(E)	;SIMULATE THREE-WORD SHIFT WITH.
	..
2)					;TWO LONG SHIFTS. THIS LEAVES IN
	TEGER
2)					;IN A, FRAC IN B AND C.
2)		LSH	D,1		;SQUEEZE OUT SIGN BIT
2)		LSHC	C,43-200(E)	;THEN DO 2ND LONG SHIFT, (THE LS
	HC HERE
2)						;PREVENTS OVERFLOW GOING
	 LEFT)
2)		TLZ	B, (1B0)	;CLEAR SIGN BIT. IF FRAC WAS <0,
2)					;THIS GIVES 1-FRAC AND PROPER EX
	P.
2)		HRRM	A, SCALE	;SAVE EXPONENT FOR FUTURE SCALIN
	G
2)		MOVEI	G, 7		;GET INDEX REGISTER POINTER TO T
	ABLE
2)	REDUCE:	CAMN	B, TABLE(G)	;DOES ARGUMENT MATCH TABLE ENTRY
	?
2)		JUMPE	C,[LSH G,1	;YES, IFF LO HALF=0. CHANGE INDE
Digital Equipment Corporation       27-OCT-77    Page  39
PCO Log Report


	X TO POINTER
2)					;PICK UP DOUBLE WORD ANSWER
2)			DMOVE A,POWERS(G)
2)			JRST SCALE]	;SCALE RESULTS AND EXIT
2)		CAMGE	B, TABLE(G)	;IS ARGUMENT GREATER THAN ENTRY?
2)		SOJA	G, REDUCE	;NO, TRY NEXT LOWER ENTRY
2)		SUB	B, TABLE(G)	;YES, ALL DONE -REDUCE ARGUMENT
2)		LSH	G, 1		;SAVE INDEX AS A POINTER
2)		ASHC	B, -8		;MAKE ROOM FOR EXPONENT
2)	IFE CPU-KA10,<MOVE	A, B		;SET UP ARG. FOR NORMALI
	ZING
2)		ASH	C, -8		;MAKE ROOM FOR LOW ORDER EXP.
2)		FSC	A,200		;SET EXP TO 200
 
 
2)		FSC	C,200-^D27	;SET EXP 27 LOWER
2)		FADL	A,C >		;MAKE STANDARD NUMBER
2)	IFE CPU-KI10,<TLO	B,200000	;INSERT EXPONENT
2)		DFAD	B,[EXP 0,0]	;NORMALIZE RESULT
2)		DMOVE	A,B >		;PUT RESULT AN A,B
2)					;GET B4/F
2)	DMOVE D,B4
2)	FLDIV D,A
2)					;SAVE B4/F
2)	DMOVEM D,B4F
2)					;GET F+B4/F
2)	FLADD D,A
2)					;GET H4/(F+B4/F)
2)	DMOVEM D,FB4F
2)	DMOVE D,H4
2)	FLDIV D,FB4F
2)					;GET D4*F
2)	FLMUL A,D4
2)					;GET (B4/F)-C4+D4*F+(H4/(F+B4/F)
	)
2)	FLADD D,A
2)	FLADD D,MC4
2)	FLADD D,B4F
2)					;GET 1.0+A4/REST
2)	DMOVE A,A4
2)	FLDIV A,D
2)	FLADD A,ONE
2)		JUMPE	G,SCALE		;MULTIPLY BY POWER OF TWO?
2)	FLMUL A,POWERS(G)
2)	SCALE:	FSC	A,.-.		;SCALE RESULTS
2)	IFE CPU-KA10,<FSC	B,@SCALE
2)		JFCL			;SUPPRESS UNDERFLOW MSG. FROM LO
	W WORD.
2)		FADL	A,B >		;MAKE STANDARD NUMBER
2)	DEXEND:	MOVS	X, XBLT		;PICK UP THE BLT POINTER
2)		BLT	X, X		;RESTORE THE ACCUMULATORS
Digital Equipment Corporation       27-OCT-77    Page  40
PCO Log Report


2)		GOODBY	(1)		;EXIT
2)	LIT
2)		PRGEND
2)	TITLE	DLOG	%4.(235) PDP-10/10I DOUBLE PRECISION LOGARITHM F
	UNCTION
2)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
**************
1)11	ENTRY	DSQRT
1)	EXTERN	DSQRT.
1)	DSQRT=DSQRT.
1)	PRGEND
1)	TITLE	DSQRT.  %4.(356) DOUBLE PRECISION SQUARE ROOT
1)	SUBTTL	D. TODD /DRT/HPW/MD		12-AUG-74
1)	;***COPYRIGHT 1972,1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.*
	**
1)	;FROM	V.022	31-DEC-69
1)	;FROM V.020	5 MAY, 1969	/TWE
1)	;FROM V.005 2-MAR-67
1)	;DOUBLE PRECISION SQUARE ROOT FUNCTION
1)	;THIS ROUTINE CALCULATES THE SQUARE ROOT OF A DOUBLE PRECISION
1)	;ARGUMENT BY DOING A LINEAR SINGLE PRECISION APPROXIMATION ON
1)	;THE HIGH ORDER WORD, THEN TWO DOUBLE PRECISION ITERATIONS OF
1)	;NEWTONS METHOD. THIS SHOULD GENERATE A RESULT ACCURATE TO
1)	;20 DECIMAL SIGNIFICANT DIGITS. THE ALGORITHM IS AS FOLLOWS
 
 
1)	;X = (2**(2N))*F, WHERE 1/2 < F < 1
1)	;HENCE SQRT(X) = 2**N * SQRT(F)
1)	;THE LINEAR APPROXIMATION IS OF THE FORM
1)	;SQRT(F) = A2 - B2/(C2+F-D2/(E2+F))
1)	;WHERE THE CONSTANTS A2,B2,C2,D2, AND E2 HAVE THE FOLLOWING
1)	;VALUES
1)	;CONSTANT	VALUE WHEN 0.25<F<0.50	VALUE WHEN 0.50<F<1.0
1)	;A2		(5/14)*SQRT(70)		(5/7)*SQRT(35)
1)	;B2		(50/49)*SQRT(70)	(200/49)*SQRT(35)
1)	;C2		47/14			47/7
1)	;D2		4/49			16/49
1)	;E2		3/14			3/7
1)		A=	0
****
2)1	ENTRY	DLOG
2)	EXTERN	DLOG.
2)	DLOG=DLOG.
2)	PRGEND
2)	TITLE	DLOG10	%4.(235) PDP-10/10I DOUBLE PRECISION LOGARITHM F
	UNCTION
2)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
2)	;***COPYRIGHT 1973, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. ***
2)	ENTRY	DLOG10
2)	EXTERN	DLG10.
2)	DLOG10=DLG10.
Digital Equipment Corporation       27-OCT-77    Page  41
PCO Log Report


2)	PRGEND
2)	TITLE	DLOG.	%4.(356) PDP-10/10I DOUBLE PRECISION LOGARITHM F
	UNCTION
2)	SUBTTL	D. TODD /DRT/HPW/MD		12-AUG-74
2)	;***COPYRIGHT 1972,1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.*
	**
2)	;THIS PROGRAM CALCULATES THE LOGARITHM OF A DOUBLE PRECISION
2)	;ARGUMENT. THE ALGORITHM USED IS DESCRIBED ON PAGES 29-30 OF
2)	;RALSTON AND WILF, "MATHEMATICAL METHODS FOR DIGITAL COMPUTERS".
2)	;THE ARGUMENT X IS WRITTEN AS
2)	;	X = (2**N)*F	WHERE 1/2 < F < 1
2)	;THEN LOG(X) = (N*LOGE(2)) + LOG(F)
2)	;F IS REDUCED BY FIXED POINT MULTIPLICATION BY NOT MORE THAN
2)	;THREE CONSTANTS. THIS YIELDS
2)	;	0 < T = A1*A2*A3*F - 1.0 < (2**-7)/5
2)	;NOTE THAT NOT ALL THE A1,A2,A3 NEED BE INCLUDED IN THE PRODUCT.
2)	;FINALLY,
2)	;	LOG(F) = LOG(1+T) - LOG(A1) - LOG(A2) - LOG(A3)
2)	;LOG(1+T) IS CALCULATED AS A TAYLOR SERIES IN T.
2)	;THE ROUTINE IS CALLED IN THE FOLLOWING MANNER:
2)	;	JSA	Q, DLOG
2)	;	EXP	ARG
2)	;WHERE ARG IS THE ADDRESS OF THE HIGH ORDER PART OF THE DOUBLE
2)	;PRECISION ARGUMENT. THE RESULT IS LEFT IN ACCUMULATOR A AND B.
2)	;AVAILABLE TABLES FOR LOGARITHMS LIST 16 SIGNIFICANT DIGITS,
2)	;ALL OF WHICH AGREE WITH VALUES PRODUCED BY THIS PROGRAM. AN
2)	;ESTIMATE OF THE MAXIMUM THEORETICAL ERROR IS OBTAINED BY OB-
2)	;SERVING THAT, AFTER REDUCTION, THE ARGUMENT IS LESS THAN
2)	;(2**-7)/5 = .00625. HENCE, THE ERROR IN THE TAYLOR SERIES
2)	;IS LESS THAN
2)	;	(.00625**9)/9 = 1.4573*10**-20/9 = .1619*10**-20
2)		A=	0
**************
1)11		Q=	16
 
 
1)		P=	17
1)		X=	F		;HIGHEST AC SAVED
1)	SEARCH FORPRM
1)	;CONSTANTS AND TEMPORARY LOCATIONS AND STUFF
1)	A2:	202576362203		;2.98807152
1)		203416346045		;4.225771271
1)	B2:	204421143713		;8.537347194
1)		205602266310		;24.14726441
1)	C2:	202655555556		;3.357142857
1)		203655555556		;6.7142857143
1)	D2:	175516274052		;0.0816326531
1)		177516274052		;0.326530612
1)	E2:	176666666667		;0.2142857143
1)		177666666667		;0.4285714286
1)	XBLT:	XWD	C,ACSAVE
Digital Equipment Corporation       27-OCT-77    Page  42
PCO Log Report


1)	ACSAVE:	BLOCK	X-C+1
1)	N:	BLOCK 2		;STORAGE FOR ARGUMENT
1)		HELLO	(DSQRT,.)	;[235] ENTRY TO DSQRT ROUTINE
1)		MOVE	0, XBLT		;SET UP BLT POINTER
1)		BLT	0, ACSAVE+X-C	;SAVE SOME ACCUMULATORS
1)		DMOVE	A,@(Q)		;GET D.P. ARG
1)		JUMPG	A, DSQRTP	;ARGUMENT IS GREATER THAN 0
1)		JUMPE	A, DSQRT4	;ARGUMENT OF ZERO?
1)	;**; [554] CHANGE @ N + 7L IN DSQRT.	CLRH	11-JUN-76
1)		ERROR	(LIB,13,2,[ASCIZ /Attempt to take DSQRT of Negat
	ive Arg/])
1)		DMOVN	A,@(Q)		;GET ARGS AGAIN (ABSF)
1)	DSQRTP:	MOVE	F, A		;GET SPARE COPY OF HIGH ORDER
1)		LSH	F, -33		;GET RID OF FRACTION BITS
1)		SUBI	F, 201		;GET RID OF THE BASE 200 PART OF
1)					;EXPONENT. EXTRA 1 IS A FUDGE.
1)		ROT	F, -1		;CUT EXPONENT IN HALF, SAVE EXTR
	A
1)					;BIT FOR LATER USE AS INDEX REG.
1)		HRRM	F, DSQRT1	;SAVE REDUCED EXPONENT FOR SCALI
	NG
1)		LSH	F, -43		;BRING BIT BACK - IF 0, THEN
1)					;1/4<F<1/2,OTHERWISE 1/2<F<1.
1)		TLZ	A, 777000	;WIPE OUT EXPONENT BITS IN ARG.
1)		FSC	A, 177(F)	;RESET IT TO EITHER 177 OR 200
1)	IFE CPU-KA10,<TLZ	B,777000	;WIPE OUT EXP BITS IN LO
	W ARG
1)		FSC	B,177-^D27(F)	;SET IT TO 27 LESS THAN HI PART
1)		FADL	A,B >		;UNNORMALIZE LOW PART
1)		MOVE	D, A		;PICK UP ANOTHER COPY OF NEW FRA
	C.
1)		FADR	D, E2(F)	;FORM E2+F
1)		MOVN	C, D2(F)	;PICK UP -D2
1)		FDVR	C, D		;CALCULATE -D2/(E2+F)
1)		FADR	C, C2(F)	;GET C2-D2/(E2+F)
1)		FADR	C, A		;CALCULATE F+C2-D2/(E2+F)
1)		MOVN	D, B2(F)	;PICK UP -B2
1)		FDVR	D, C		;GET -B2/(F+C2-D2/(E2+F))
1)		FADR	D, A2(F)	;GET FINAL FIRST APPROXIMATION
1)		MOVEI	E,0		;LOW HALF OF 1ST APPROX. IS 0
1)		DMOVEM	A,N		;SAVE DSQRT ARGUMENT
1)					;GET N/X0
1)	FLDIV A,D
1)					;X0+N/X0
1)	FLADD D,A
1)		FSC	D,-1		;X1=.5*(X0+N/X0)
 
 
1)	IFE CPU-KA10,<FSC	E,-1		;...
1)		FADL	D,E >		;UNNORMALIZE LOW WORD
1)		DMOVE	A,N		;GET N BACK
Digital Equipment Corporation       27-OCT-77    Page  43
PCO Log Report


1)					;N/X1
1)	FLDIV A,D
1)					;X1+N/X1
1)	FLADD A,D
1)	DSQRT1:	FSC	A,.-.		;SCALE RESULTS FOR ANSWER
1)	IFE CPU-KA10,<FSC	B,@DSQRT1	;...
1)		FADL	A,B >		;UNNORMALIZE ANSWER
1)	DSQRT3:	MOVS	X, XBLT		;SET UP THE BLT POINTER
1)		BLT	X, X		;RESTORE THE ACCUMULATORS
1)	DSQRT4:	GOODBY	(1)		;EXIT
1)		PRGEND
1)12	TITLE	DSIN	%4.(235) DOUBLE PRECISION SIN AND COSINE ROUTINE
1)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
1)	;***COPYRIGHT 1973, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. ***
1)	SEARCH	FORPRM
1)	ENTRY	DSIN
1)	EXTERN	DSIN.
1)	DSIN=DSIN.
1)	PRGEND
1)	TITLE	DCOS	%4.(235) DOUBLE PRECISION SIN AND COSINE ROUTINE
1)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
1)	;***COPYRIGHT 1973, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. ***
1)	ENTRY	DCOS
1)	EXTERN	DCOS.
1)	DCOS=DCOS.
1)	PRGEND
1)	TITLE	DSIN.	%4.(356) DOUBLE PRECISION SIN AND COSINE ROUTINE
1)	SUBTTL	D. TODD /DRT/HPW/MD		12-AUG-74
1)	;***COPYRIGHT 1972,1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.*
	**
1)	;DOUBLE PRECISION SINE AND COSINE FUNCTION
1)	;THIS PROGRAM CALCULATES THE SINE AND COSINE OF A DOUBLE
1)	;PRECISION ARGUMENT.  FOR A DESCRIPTION OF THE ALGORITHM,
1)	;SEE THE SCIENCE LIBRARY AND FORTRAN UTILITY SUBPROGRAMS
1)	;MANUAL.
1)	;THE CALLING SEQUENCE FOR THE PROGRAM IS AS FOLLOWS:
1)	;	JSA	Q, DSIN
1)	;	EXP	ARG
1)	;WHERE ARG IS THE ADDRESS OF THE HIGH ORDER PORTION OF THE
1)	;ARGUMENT. THE DOUBLE PRECISION ANSWER IS LEFT IN ACCUMULATORS
1)	;A AND B.
1)		SEARCH	FORPRM
1)		A=	0
1)		B=	1
1)		C=	2
1)		D=	3
1)		E=	4
1)		F=	5
1)		G=	6
****
2)1		G=	6
Digital Equipment Corporation       27-OCT-77    Page  44
PCO Log Report


**************
1)12		X=G	;SAVE AC'S C THRU G
1)	;CONSTANTS AND TEMPORARY LOCATIONS AND STUFF
 
 
1)	C17:	DOUBLE 120625130734,014126512326	;1/17!=.28114572
	543455207632E-14
1)		DOUBLE 124656376371,314734037043	;1/16!=.47794773
	323873852974E-13
1)	C15:	DOUBLE 647121401406,463043740735	;-1/15!=-.764716
	37318198164759E-12
1)		DOUBLE 643154321325,717701542677	;-1/14! =-.11470
	745597729724714E-10
1)	C13:	DOUBLE 140541110604,352066411370	;1/13!=.16059043
	836821614599E-9
1)		DOUBLE 144436733073,376154227552	;1/12!=.20876756
	987868098979E-8
1)	C11:	DOUBLE 630121467246,402535434340	;-1/11!=-.250521
	08385441718775E-7
1)		DOUBLE 624330066022,441660243433	;-1/10!=-.275573
	19223985890653E-6
1)	C9:	DOUBLE 156561674351,125543463437	;1/9!=.275573192
	23985890653E-5
1)		DOUBLE 161640064006,200320032003	;1/8!=.248015873
	01587301587E-4
1)	C7:	DOUBLE 613137713771,577457745775	;-1/7!=-.1984126
	9841269841270E-3
1)		DOUBLE 610223722372,517511751175	;-1/6!=-.1388888
	888888888889E-2
1)	C5:	DOUBLE 172421042104,104210421042	;1/5!=.008333333
	33333333333333
1)		DOUBLE 174525252525,125252525253	;1/4!=.041666666
	666666666667
1)	C3:	DOUBLE 601252525252,652525252526	;-1/3!=-0.166666
	66666666666667
1)	C2:	577400000000	;-1/2!=-0.50000000000000000000
1)		000000000000
1)	PIOTLO=021026430215	;LOW HALF OF PI/2 FOR PDP-6/KI10
1)	ADDTBL:	DOUBLE 576155700452,-PIOTLO	;-PI/2
1)		DOUBLE 575155700452,-PIOTLO	;-PI
1)		574322320340	;-3*PI/2
1)		IFE CPU-KA10,<150146336134>
1)		IFN CPU-KA10,<463157055627>
1)		DOUBLE 574155700452,-PIOTLO	;-2*PI
1)	ONE:	1.0
1)		0
1)	XBLT:	XWD C, ACSAVE
1)	PIOT:	DOUBLE	201622077325,PIOTLO	;PI/2
1)	FLAG:	0		;NEGATE ANSWER IF (FLAG) IS MINUS
1)	COSFLG:	BLOCK 1	;2 FOR COSINE SERIES, 0 FOR SINE
1)	ACSAVE:	BLOCK X-C+1	;SAVE ROOM FOR STORING AC'S
Digital Equipment Corporation       27-OCT-77    Page  45
PCO Log Report


1)	ARGSAV:	BLOCK 2	;TEMP FOR X
1)		HELLO	(DCOS,.)	;[235] ENTRY TO COSINE ROUTINE
1)		MOVE	0,XBLT
1)		BLT	0,ACSAVE+X-C	;SAVE ACCUMULATORS
1)		DMOVE	A,@(Q)		;GET DOUBLE WORD ARGUMENT
1)		FLADD	A,PIOT		;COS(X)=SIN(PI/2+X), LEAVE RESUL
	T IN A
1)		JRST	DSIN0		;ENTER SINE ROUTINE
1)		HELLO	(DSIN,.)	;[235] ENTRY TO SINE ROUTINE
1)		MOVE	0,XBLT
1)		BLT	0,ACSAVE+X-C	;SAVE ACCUMULATORS
1)		DMOVE	A,@(Q)		;GET DOUBLE WORD ARGUMENT
1)	DSIN0:	JUMPE	A, DSIN4C	;ARGUMENT OF ZERO?
1)		SETZB	G, FLAG		;SET FLAG FOR POSITIVE ARGUMENT
1)		JUMPGE	A, DSIN1	;IS ARGUMENT POSITIVE?
1)		SETOM	FLAG		;NO, CHANGE FLAG
1)		DFN	A, B		;NEGATE THE ARGUMENT
1)	DSIN1:	DMOVEM	A,ARGSAV
1)				;CALCULATE X/(PI/2),LEAVE THE RESULTS IN
	 A,A+1
1)		FLDIV	A,PIOT
1)		CAML	A,[1.0]		;IS X .L. PI/4?
1)		JRST	REDUCE		;NO, REDUCE IT
1)		CAML	A,[0.5]		;IS X .GE. PI/4
1)		MOVEI	G,1		;YES, 2ND OCTANT
1)	DSIN1A:	DMOVE	A,ARGSAV
1)	DSIN2:	TRNE	G,4		;QUADRANTS 3 OR 4?
 
 
1)		SETCMM	FLAG		;YES, SINE IS NEGATIVE
1)		JUMPE	G,DSIN3		;IS X .L. PI/4
1)		TRNE	G,1		;NO,GET INDEX INTO QUADRANT TABL
	E
1)		ADDI	G,1		;...
1)					;MAKE: -PI/4 .GE. X .LE. +PI/4
1)		FLADD	A,ADDTBL-2(G)
1)		SKIPGE	A
1)		DFN	A,B		;TAKE ABSOLUTE VALUE
1)		DMOVEM	A,ARGSAV
1)	DSIN3:	TRZ	G,777775	;LEAVE ONLY OCTANT BIT
1)		HRRZM	G,COSFLG	;0 FOR SINE SERIES, 2 FOR COSINE
1)		CAMG	A,[XWD 147471,421605]	;IS X .L. SQRT(6)*2**-27
	?
1)		JRST	SMALL		;YES, THEN SIN(X)=X
1)					;CALCULATE X**2, AND LEAVE IN A,
	A+1
1)		FLMUL	A,ARGSAV
1)					;INITIALIZE PARTIAL SUM
1)		DMOVE	D,C17(G)
1)		MOVEI	G,C15(G)	;TURN OCTANT POINTER INTO TABLE
	ADR
Digital Equipment Corporation       27-OCT-77    Page  46
PCO Log Report


1)	DSIN3C:				;MULTIPLY PARTIAL SUM BY X**2
1)		FLMUL	D,A
1)					;ADD NEXT CONSTANT TO PARTIAL SU
	M
1)		FLADD	D,0(G)
1)		ADDI	G,4		;MOVE POINTER TO NEXT CONSTANT
1)		CAIG	G,C2		;DONE?
1)		JRST	DSIN3C		;NO, LOOP BACK FOR MORE OF SERIE
	S
1)					;YES, ONE MORE MULTIPLY
1)		FLMUL	A,D
1)					;ADD 1.0 INTO SUM
1)		FLADD	A,ONE
1)		SKIPE	COSFLG	;IS THIS COSINE SERIES?
1)		JRST	DSIN4A		;YES
1)					;NO, MULTIPLY BY X, THIS IS SIN
1)		FLMUL	A,ARGSAV
1)	DSIN4A:	SKIPE	FLAG		;NEGATE RESULT?
1)		DFN	A,B		;YES
1)	DSIN4C:	MOVS	X,XBLT		;SET UP BLT POINTER
1)		BLT	X,X		;RESTORE AC'S
1)		GOODBY	(1)		;EXIT
1)	SMALL:	JUMPE	G,DSIN4A	;CALCULATING COSINE?
1)		DMOVE	A,ONE		;YES, COS(X)=1.0
1)		JRST	DSIN4A
1)	REDUCE:	MOVE	D,A		;SAVE QUADRANT NUMBER
1)		LDB	G,[POINT 8,A,8]	;GET EXPONENT
1)	IFE CPU-KA10,<
1)		LSH	B,9>		;WIPE OUT LO EXPONENT
1)	IFN CPU-KA10,<
1)		LSH	B,1>		;REMOVE 1 BIT FOR KI10
1)		TLZ	A,777000	;DITTO HI EXPONENT
1)		LSHC	A,-202(G)	;MAKE ARGUMENT MODULO 2 PI
1)		LDB	G,[POINT 3,A,11]	;GET QUADRANT AND OCTANT
	 BITS
1)		CAMGE	D,[4.0]		;IS NON-REDUCED ARG OK?
1)		JRST	DSIN1A		;YES, SAVE THE DFMP INACCURICIES
1)		TLZ	A,777000	;MAKE WAY FOR EXPONENT
1)	IFE CPU-KA10,<
1)		FSC	A,202		;PUT EXP IN HI WORD
1)		LSH	B,-9		;MAKE WAY FOR LOW EXPONENT
 
 
1)		FSC	B,202-^D27	;PUT IN LO EXPONENT
1)		FADL	A,B>		;UNNORMALIZE LO WORD
1)	IFN CPU-KA10,<
1)		TLO	A,202000	;PUT EXP IN HI WORD, NO NORMALIZ
	E
1)		LSH	B,-1		;PUT LO FRACTION IN PLACE
1)		DFAD	A,[EXP 0,  0]>	;NORMALIZE
1)		FLMUL	A,PIOT		;CHANGE MAKE TO RADIANS (MOD 2 P
Digital Equipment Corporation       27-OCT-77    Page  47
PCO Log Report


	I)
1)		DMOVEM	A,ARGSAV
1)		JRST	DSIN2		;GO CHANGE ARGUMENT TO 1ST OCTAN
	T
1)	LIT
1)		PRGEND
1)13	TITLE	DATAN2	%4.(235) TWO ARGUMENT DOUBLE PRECISION ARC TANGE
	NT
1)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
****
2)1		X=	G		;HIGHEST AC TO SAVE
2)		SEARCH FORPRM
2)	;CONSTANTS AND TEMPORARY LOCATIONS AND STUFF
2)	LOGLST:	DOUBLE 200471174064,325425031470	;0.61180 15411 0
	5992 8976
2)		DOUBLE 200402252251,151350376610	;0.50455 60107 5
	2395 2859
2)		DOUBLE 177637144373,057714113734	;0.40546 51081 0
	8164 3810
2)		DOUBLE 177506061360,207057302360	;0.31845 37311 1
	8534 6147
2)		DOUBLE 176710776761,346515041520	;0.22314 35513 1
	4209 7553
2)		DOUBLE 176537746034,051711723600	;0.17185 02569 2
	6659 2214
2)		DOUBLE 175557032242,271265512760	;0.08961 21586 8
	9687 12374
2)		DOUBLE 173770123303,236031377700	;0.03077 16586 6
	6753 68689
2)	LIST:	354000000000		;1.11011 BINARY
2)		324000000000		;1.10101 BINARY
2)		300000000000		;1.10000 BINARY
2)		260000000000		;1.01100 BINARY
2)		240000000000		;1.01000 BINARY
2)		230000000000		;1.00110 BINARY
2)		214000000000		;1.00011 BINARY
2)		204000000000		;1.00001 BINARY
2)	DLOGE2:	DOUBLE 200542710277,276434757153	;0.69314 71805 5
	9945 30941 72321
2)	A9:	DOUBLE 175707070707,034343434344	;1/9
2)	A8:	DOUBLE 601400000000,0			;-1/8
2)	A7:	DOUBLE 176444444444,222222222222	;1/7
2)	A6:	DOUBLE 601252525252,652525252526	;-1/6
2)	A5:	DOUBLE 176631463146,146314631463	;1/5
2)	A4:	DOUBLE 600400000000,0			;-1/4
2)	A3:	DOUBLE 177525252525,125252525253	;1/3
2)	A2:	DOUBLE 577400000000,0			;-1/2
2)	ONE:
2)	A1:	201400000000
2)	DZERO:	000000000000
2)	IFE CPU-KI10,<0	>
Digital Equipment Corporation       27-OCT-77    Page  48
PCO Log Report


2)	SUMSAV:	BLOCK 2		;STORAGE FOR PARTIAL ANSWER
2)	XBLT:	XWD	C, ACSAVE
2)	ACSAVE:	BLOCK	X-C+1
2)	;DOUBLE PRECISION COMMON LOGARITHM FUNCTION
2)	;THE ROUTINE CALCULATES THE LOGARITHM, BASE 10, OF A DOUBLE
2)	;PRECISION ARGUMENT. THE ALGORITHM USED IS
2)	;	DLOG10(X) = DLOG(X)*LOG10(E)
2)	;THE CALLING SEQUENCE FOR THE ROUTINE IS THE FOLLOWING:
2)	;	JSA	Q, DLOG10
2)	;	EXP	ARG
 
 
2)	;THE DOUBLE PRECISION ANSWER IS RETURNED IN AC A AND B.
2)		HELLO	(DLG10.,DLOG10)	;[235] ENTRY TO DLOG10 ROUTINE
2)		MOVEI	B,@(Q)		;GET ADDRESS OF ARGUMENT
2)		SKIPN	B,(B)		;IF ARG = 0,
2)		JRST	ZERO		;THEN GO TO ZERO.
2)		PUSHJ	P,DLOG.		;CALCULATE LOG(ARG)
2)	IFE CPU-KA10,<MOVEM	C,ACSAVE >	;SAVE ACCUMULATOR C
2)	FLMUL A,LOG10D
2)	IFE CPU-KA10,<MOVE	C,ACSAVE >	;RESTORE C
2)		GOODBY	(1)		;EXIT
2)	LOG10D:	DOUBLE 177674557305,111562416145	;.43429448190325
	182765
2)		HELLO	(DLOG,.)	;[235] ENTRY TO DLOG ROUTINE
2)		MOVE	0,XBLT		;SAVE AC'S
2)		BLT	0,ACSAVE+X-C	;...
2)		DMOVE	A,@(Q)		;PICK UP ARGUMENT
2)		JUMPG	A,DLOGP		;ARGUMENT IS GREATER THAN 0
2)		JUMPE	A, ZERO		;CHECK FOR ZERO ARGUMENT
2)		ERROR	(LIB,12,2,[ASCIZ /Attempt to take DLOG of Negati
	ve Arg/])
2)		DMOVN	A,@(Q)		;GET ABSF(X)
2)	DLOGP:	CAMN	A,ONE		;X PRECISELY 1.0?
2)		JUMPE	B,[SETZB A,B
2)			JRST DLOG5]	;YES, RETURN ZERO
2)	DLOG1:	LDB	D,[POINT 8,A,8]	;NO,PICK UP EXPONENT FROM HI ORD
	ER
2)		SUBI	D, 200		;GET EXPONENT EXCESS 200
2)		FSC	D,233		;MAKE FLOATING POINT NUMBER
2)		MOVEI	E,0		;SET UP LO HALF
2)					;CALCULATE N*LOGE(2)
2)	FLMUL D,DLOGE2
2)	DMOVEM D,SUMSAV
2)	IFE CPU-KA10,<LSH	B,8 >		;GET RID OF LOW ORDER EX
	P.
2)		TLZ	A,777000	;MASK OUT EXPONENT
2)		ASHC	A,8		;NORMALIZE FRACTION TO BIT 1
2)		SETZB	D,E		;INITIALIZE REDUCTION CONSTANT T
	O 0
2)	DLOG2:	LDB	G,[POINT 3,A,4]	;GET HI 3 BITS BELOW 1/2
Digital Equipment Corporation       27-OCT-77    Page  49
PCO Log Report


2)		MUL	B, LIST(G)	;FIXED POINT MULTIPLY FOR LO HAL
	F
2)		MOVE	C,B		;SAVE HI HALF OF LO PRODUCT
2)					;(LO HALF IS ALL 0'S, THROW IT A
	WAY)
2)		MUL	A, LIST(G)	;MULTIPLY HI ORDER, TOO
2)		TLO	B,(1B0)		;SET BIT 0, TO AVOID OVERFLOW
2)		ADD	B,C		;COMBINE RESULTS OF MULTIPLY
2)		TLZN	B,(1B0)		;CLEAR BIT 0, WAS THERE OVERFLOW
	?
2)		ADDI	A,1		;YES, PROPOGATE CARRY
2)		ASH	G, 1		;TURN BITS INTO D.P. POINTER
2)	FLADD D,LOGLST(G)
2)		TLZE	A, 200000	;IS THE PRODUCT .GE. 1.0?
2)		JRST	DLOG3		;YES
2)		ASHC	A, 1		;NO, GET RID OF EXTRANEOUS ZERO
2)		JRST	DLOG2		;TRY ANOTHER MULTIPLICATION
2)	DLOG3:	ASHC	A, -7		;MAKE ROOM FOR THE EXPONENT
2)	IFE CPU-KA10,<FSC	A,200		;SET EXPONENT TO 200
2)		ASH	B,-8		;MAKE ROOM FOR LO EXPONENT
2)		FSC	B,200-^D27	;INSERT LO EXPONENT
2)		FADL	A,B >		;MAKE NORMAL DOUB, PRECISION NUM
	BER
2)	IFE CPU-KI10,<TLC	A,200000	;INSERT EXPONENT
2)		DFAD	A,DZERO >	;NORMALIZE
2)		DFN	D,E		;NEGATE LOG OF MAGIC NUMBERS
 
 
2)					;AND ADD INTO FINAL SUMMATION
2)	FLADD D,SUMSAV
2)	DMOVEM D,SUMSAV
2)					;PICK UP CONSTANT TO START
2)	DMOVE D,A9
2)		MOVEI	G,A8		;INIT TABLE POINTER AT A8
2)	DLOG4:				;MULTIPLY ACCUMULATED SUM BY X
2)	FLMUL D,A
2)					;ADD NEXT CONSTANT INTO PARTIAL
	SUM
2)	FLADD D,0(G)
2)		ADDI	G, 2		;UPDATE POINTER TO NEXT CONSTANT
2)		CAIG	G, A1		;ARE WE DONE YET?
2)		JRST	DLOG4		;NO, LOOP BACK FOR MORE TAYLOR S
	ERIES
2)					;YES, ONE LAST MULTIPLICATION
2)	FLMUL A,D
2)					;AND ADD SERIES SUM INTO FINAL A
	NSWER
2)	FLADD A,SUMSAV
2)	DLOG5:	MOVS	X, XBLT		;PICK UP BLT POINTER
2)		BLT	X,X		;RESTORE ACCUMULATORS
2)		GOODBY	(1)		;EXIT
Digital Equipment Corporation       27-OCT-77    Page  50
PCO Log Report


2)	ZERO:	MOVSI	A,400000	;SET UP LARGE NEG. NUM.
2)	IFE CPU-KA10,<FADL	A,A >		;CAUSE NEGATIVE OVERFLOW
2)	IFE CPU-KI10,<DFAD	A,A >
2)		GOODBY	(1)		;TRAP ROUTINE FIXED IT UP AND
2)					;PRINTED MESSAGE
2)		PRGEND
2)	TITLE	DSQRT	%4.(235) DOUBLE PRECISION SQUARE ROOT
2)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
**************
1)13	ENTRY	DATAN2
1)	EXTERN	DATN2.
1)	DATAN2=DATN2.
1)	PRGEND
1)	TITLE	DATN2.	%4.(356) TWO ARGUMENT DOUBLE PRECISION ARC TANGE
	NT
1)	SUBTTL	D. TODD /DRT/MD		12-AUG-74
1)	;***COPYRIGHT 1972,1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.*
	**
1)	;THIS ROUTINE CALCULATES THE ARCTANGENT OF A/B
1)	;IF ARGUMENT IS IN 2ND QUADRANT, DATAN2(A,B)=DATAN(A/B) + PI
1)	;IF ARGUMENT IS IN 3RD QUADRANT, DATAN2(A,B)=DATAN(A/B)-PI
1)	;IF ARGUMENT IS IN 1ST OR 4TH QUADRANT, DATAN2(A,B)=DATAN(A/B)
1)	;IF QUOTIENT A/B OVER OR UNDERFLOWS, RETURN AN ANGLE
1)	;ON A CO-ORDINATE AXIS
1)	;THE ROUTINE IS CALLED IN THE FOLLOWING MANNER:
1)	;	JSA	Q, DATAN2
1)	;	EXP	A
1)	;	EXP	B
1)	;DATAN(A/B) IS RETURNED AS A DOUBLE PRECISION ANSWER IN ACCUMULA
	TORS
1)	;A AND B.
1)		SEARCH	FORPRM
1)		A=	0
****
2)1	ENTRY	DSQRT
2)	EXTERN	DSQRT.
2)	DSQRT=DSQRT.
2)	PRGEND
2)	TITLE	DSQRT.  %4.(356) DOUBLE PRECISION SQUARE ROOT
 
 
2)	SUBTTL	D. TODD /DRT/HPW/MD		12-AUG-74
2)	;***COPYRIGHT 1972,1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.*
	**
2)	;FROM	V.022	31-DEC-69
2)	;FROM V.020	5 MAY, 1969	/TWE
2)	;FROM V.005 2-MAR-67
2)	;DOUBLE PRECISION SQUARE ROOT FUNCTION
2)	;THIS ROUTINE CALCULATES THE SQUARE ROOT OF A DOUBLE PRECISION
2)	;ARGUMENT BY DOING A LINEAR SINGLE PRECISION APPROXIMATION ON
2)	;THE HIGH ORDER WORD, THEN TWO DOUBLE PRECISION ITERATIONS OF
Digital Equipment Corporation       27-OCT-77    Page  51
PCO Log Report


2)	;NEWTONS METHOD. THIS SHOULD GENERATE A RESULT ACCURATE TO
2)	;20 DECIMAL SIGNIFICANT DIGITS. THE ALGORITHM IS AS FOLLOWS
2)	;X = (2**(2N))*F, WHERE 1/2 < F < 1
2)	;HENCE SQRT(X) = 2**N * SQRT(F)
2)	;THE LINEAR APPROXIMATION IS OF THE FORM
2)	;SQRT(F) = A2 - B2/(C2+F-D2/(E2+F))
2)	;WHERE THE CONSTANTS A2,B2,C2,D2, AND E2 HAVE THE FOLLOWING
2)	;VALUES
2)	;CONSTANT	VALUE WHEN 0.25<F<0.50	VALUE WHEN 0.50<F<1.0
2)	;A2		(5/14)*SQRT(70)		(5/7)*SQRT(35)
2)	;B2		(50/49)*SQRT(70)	(200/49)*SQRT(35)
2)	;C2		47/14			47/7
2)	;D2		4/49			16/49
2)	;E2		3/14			3/7
2)		A=	0
**************
1)13		Q=	16
1)		P=	17
1)	;CONSTANTS AND TEMPORARY LOCATIONS AND STUFF
1)	DARG:	BLOCK 2			;ARGUMENT FOR DATAN
1)	IFE CPU-KA10,<
1)	CSAVE:	BLOCK 1 >
1)	PIOT:	DOUBLE 201622077325,021026430215	;+PI/2
1)	PI.:	DOUBLE 202622077325,021026430215	;DEC=3.141592653
	58979323846
1)		HELLO	(DATN2.,DATAN2)	;[235] ENTRY TO DATAN2 ROUTINE
1)		DMOVE	A,@(Q)		;PICK UP 1ST ARG
1)	IFE CPU-KA10,<MOVEM	C,CSAVE		;SAVE AC C
1)		MOVEM	B,DARG		;SAVE LOW PART OF ARG.
1)		MOVEI	B,@1(Q)		;PICK UP
1)		MOVE	C,(B)		;THE
1)		MOVE	B,1(B)		;NEXT ARG.
1)		EXCH	B,DARG		;RESTORE LOW OF ONE ARG AND
1)		MOVEM	C,DARG+1		;COPY THE OTHER ARG.
1)		FDVL	A,C		;CALCULATE A/B
1)		JFCL	AXIS		;UNDER/OVER FLOW
1)		MOVN	C,A		;...
1)		FMPR	C,DARG		;...
1)		JFCL
1)		UFA	B,C
1)		FDVR	C,DARG+1
1)		JFCL
1)		FADL	A,C
1)		JFCL	AXIS >		;UNDER/OVER FLOW
1)	IFE CPU-KI10,<DFDV	A,@1(Q)		;CALCULATE A/B
1)		JFCL	AXIS >		;TRANSFER FOR OVER/UNDER FLOW
1)	DMOVEM	A,DARG			;STORE ARG FOR DATAN
1)		FUNCT	DATAN.,<DARG>	;CALCULATE DATAN(A/B)
 
 
1)	IFE CPU-KA10,<MOVE	C, CSAVE >	;RESTORE ACCUMULATOR C
Digital Equipment Corporation       27-OCT-77    Page  52
PCO Log Report


1)		SKIPL	@1(Q)		;WAS 2ND ARGUMENT POSITIVE?
1)		GOODBY	(2)		;YES, 1ST OR 4TH QUAD, EXIT
1)					;NO, 2ND OR 3RD
1)		SKIPGE	@(Q)		;2ND QUADRANT?
1)		DFN	A,B		;NO, 3RD. SUBTRACT PI
1)	FLADD A,PI.
1)	IFE CPU-KA10,<MOVE	C,CSAVE >	;RESTORE AC C.
1)		SKIPGE	@(Q)		;3RD OR 4TH QUADRANTS?
1)		DFN	A,B		;YES, NEGATE FINAL ANSWER
1)		GOODBY	(2)		;EXIT
1)	AXIS:
1)	IFE CPU-KA10,<MOVE	C,CSAVE >	;RESTORE AC C
1)		JUMPN	A,OVER		;GO TO OVER IF OVERFLOW.
1)		SKIPL	@1(Q)		;ANS UNDERFLOWS IF Y/X UNDERFLOW
	S
1)		JRST	UNDMSG		;AND IF X >= 0.
1)		DMOVE	A,PI.		;O'E, ANS = +-PI, SO
1)		JRST	SETSGN		;GO TO SET SIGN.
1)	OVER:	SKIPN	@(Q)		;WAS Y =0 ?
1)		FDVR	0,@(Q)		;YES, THIS IS 0/0 , FORCE A DIV
	CHK MSG.
1)		DMOVE	A,PIOT		;ANS = +-PI/2.
1)	SETSGN:	SKIPGE	@(Q)		;ANS > 0 IF Y > 0.
1)		DFN	A,B		;ANS < 0 IF Y > 0.
1)		GOODBY	(2)		;EXIT.
1)	UNDMSG:	ERROR	(APR,7,1,.+1)	;RETURN UNDERFLOW
1)		SETZB	0,1		;AND ANS = 0
1)		GOODBY	(2)		;EXIT.
1)		PRGEND
1)14	TITLE	DATAN	%4.(235) SINGLE ARGUMENT DOUBLE PRECISION ARC TA
	NGENT
1)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
****
2)1		E=	4
2)		F=	5
2)		Q=	16
2)		P=	17
2)		X=	F		;HIGHEST AC SAVED
2)	SEARCH FORPRM
2)	;CONSTANTS AND TEMPORARY LOCATIONS AND STUFF
2)	A2:	202576362203		;2.98807152
2)		203416346045		;4.225771271
2)	B2:	204421143713		;8.537347194
2)		205602266310		;24.14726441
2)	C2:	202655555556		;3.357142857
2)		203655555556		;6.7142857143
2)	D2:	175516274052		;0.0816326531
2)		177516274052		;0.326530612
2)	E2:	176666666667		;0.2142857143
2)		177666666667		;0.4285714286
2)	XBLT:	XWD	C,ACSAVE
Digital Equipment Corporation       27-OCT-77    Page  53
PCO Log Report


2)	ACSAVE:	BLOCK	X-C+1
2)	N:	BLOCK 2		;STORAGE FOR ARGUMENT
2)		HELLO	(DSQRT,.)	;[235] ENTRY TO DSQRT ROUTINE
2)		MOVE	0, XBLT		;SET UP BLT POINTER
2)		BLT	0, ACSAVE+X-C	;SAVE SOME ACCUMULATORS
2)		DMOVE	A,@(Q)		;GET D.P. ARG
2)		JUMPG	A, DSQRTP	;ARGUMENT IS GREATER THAN 0
 
 
2)		JUMPE	A, DSQRT4	;ARGUMENT OF ZERO?
2)	;**; [554] CHANGE @ N + 7L IN DSQRT.	CLRH	11-JUN-76
2)		ERROR	(LIB,13,2,[ASCIZ /Attempt to take DSQRT of Negat
	ive Arg/])
2)		DMOVN	A,@(Q)		;GET ARGS AGAIN (ABSF)
2)	DSQRTP:	MOVE	F, A		;GET SPARE COPY OF HIGH ORDER
2)		LSH	F, -33		;GET RID OF FRACTION BITS
2)		SUBI	F, 201		;GET RID OF THE BASE 200 PART OF
2)					;EXPONENT. EXTRA 1 IS A FUDGE.
2)		ROT	F, -1		;CUT EXPONENT IN HALF, SAVE EXTR
	A
2)					;BIT FOR LATER USE AS INDEX REG.
2)		HRRM	F, DSQRT1	;SAVE REDUCED EXPONENT FOR SCALI
	NG
2)		LSH	F, -43		;BRING BIT BACK - IF 0, THEN
2)					;1/4<F<1/2,OTHERWISE 1/2<F<1.
2)		TLZ	A, 777000	;WIPE OUT EXPONENT BITS IN ARG.
2)		FSC	A, 177(F)	;RESET IT TO EITHER 177 OR 200
2)	IFE CPU-KA10,<TLZ	B,777000	;WIPE OUT EXP BITS IN LO
	W ARG
2)		FSC	B,177-^D27(F)	;SET IT TO 27 LESS THAN HI PART
2)		FADL	A,B >		;UNNORMALIZE LOW PART
2)		MOVE	D, A		;PICK UP ANOTHER COPY OF NEW FRA
	C.
2)		FADR	D, E2(F)	;FORM E2+F
2)		MOVN	C, D2(F)	;PICK UP -D2
2)		FDVR	C, D		;CALCULATE -D2/(E2+F)
2)		FADR	C, C2(F)	;GET C2-D2/(E2+F)
2)		FADR	C, A		;CALCULATE F+C2-D2/(E2+F)
2)		MOVN	D, B2(F)	;PICK UP -B2
2)		FDVR	D, C		;GET -B2/(F+C2-D2/(E2+F))
2)		FADR	D, A2(F)	;GET FINAL FIRST APPROXIMATION
2)		MOVEI	E,0		;LOW HALF OF 1ST APPROX. IS 0
2)		DMOVEM	A,N		;SAVE DSQRT ARGUMENT
2)					;GET N/X0
2)	FLDIV A,D
2)					;X0+N/X0
2)	FLADD D,A
2)		FSC	D,-1		;X1=.5*(X0+N/X0)
2)	IFE CPU-KA10,<FSC	E,-1		;...
2)		FADL	D,E >		;UNNORMALIZE LOW WORD
2)		DMOVE	A,N		;GET N BACK
Digital Equipment Corporation       27-OCT-77    Page  54
PCO Log Report


2)					;N/X1
2)	FLDIV A,D
2)					;X1+N/X1
2)	FLADD A,D
2)	DSQRT1:	FSC	A,.-.		;SCALE RESULTS FOR ANSWER
2)	IFE CPU-KA10,<FSC	B,@DSQRT1	;...
2)		FADL	A,B >		;UNNORMALIZE ANSWER
2)	DSQRT3:	MOVS	X, XBLT		;SET UP THE BLT POINTER
2)		BLT	X, X		;RESTORE THE ACCUMULATORS
2)	DSQRT4:	GOODBY	(1)		;EXIT
2)		PRGEND
2)	TITLE	DSIN	%4.(235) DOUBLE PRECISION SIN AND COSINE ROUTINE
2)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
**************
1)14	ENTRY	DATAN
1)	EXTERN	DATAN.
1)	DATAN=DATAN.
1)	PRGEND
1)	TITLE	DATAN.	%4C.(513) SINGLE ARGUMENT DOUBLE PRECISION ARC T
	ANGENT
 
 
1)	SUBTTL	D. TODD /DRT/HPW/MD/JNG		15-DEC-75
1)	;***COPYRIGHT 1972,1973,1974,1975 DIGITAL EQUIPMENT CORP., MAYNA
	RD, MASS.***
1)	;THIS ROUTINE CALCULATES THE ACTANGENT OF A DOUBLE PRECISION
1)	;ARGUMENT ACCORDING TO THE ALGORITHM
1)	;DATAN(X) = LAMBDA*X/(Z+B0+A1/(Z+B1+A2/(Z+B2+A3/(Z+B3))))
1)	;FOR X>1.0, THE IDENTITY
1)	;			ATAN(X) = PI/2 - ATAN(1/X)
1)	;IS USED. FOR 0.236<X<1.0, THE IDENTITY
1)	;			ATAN(X) = ATAN(1/2) + ATAN(2X-1/X+2)
1)	;IS USED.
1)	;FOR X<SQRT(3)*2**-27, ATAN(X)=X IS USED
1)	;THE ROUTINE HAS THE FOLLOWING CALLING SEQUENCE
1)	;	JSA	Q, DATAN
1)	;	EXP	ARG
1)	;WHERE ARG IS THE ADDRESS OF THE HIGH ORDER PART OF THE DOUBLE
1)	;PRECISION WORD. THE ANSWER IS RETURNED IN ACCUMULATORS A AND B.
1)		SEARCH	FORPRM
1)	A=	0
1)	B=	1
1)	C=	2
1)	D=	3
1)	E=	4
1)	F=	5
1)	G=	6	;FLAG REGISTER
1)		;BIT35=1, ADD ATAN(1/2) TO ANSWER
1)		;BIT34=1, ADD 2*ATAN(1/2) TO ANSWER	;[513]
1)		;BIT17=1,ADD -PI/2 TO ANSWER		;[513]
1)		;BIT0=1, NEGATE FINAL ANSWER
Digital Equipment Corporation       27-OCT-77    Page  55
PCO Log Report


1)	H=	7		;LOOP POINTER
1)	Q=	16
1)	P=	17
1)	X=	H		;NUMBER OF ACCUMULATORS TO SAVE
1)	;REVISION HISTORY
1)	;EDIT	SPR	DESCRIPTION
1)	;----	---	-----------
1)	;513	15636	WHEN (5*SQRT(5)-2)/11 < ABS(X) < (5*SQRT(5)+2)/1
	1,
1)	;		THE DATAN(X) RETURNED CAN BE WRONG AFTER THE 13T
	H PLACE.
1)	;		THIS IS BECAUSE (2*X-1)/(X+2) > SQRT(5)-2 IN THI
	S RANGE.
1)	;CONSTANTS AND TEMPORARY LOCATIONS AND STUFF
1)	LAMBDA:	DOUBLE 204613772770,017027645561	;12.37469 38775
	51020 40816
1)	B0:	DOUBLE 205644272446,121335250615	;26.27277 52490
	26980 67155
1)	A1:	DOUBLE 570276502107,437176661671	;-80.34270 56102
	 16599 70467
1)	B1:	DOUBLE 203627237361,165414142742	;6.36424 16870 0
	4411 34492
1)	A2:	DOUBLE 576316772502,512470127251	;-1.19144 72238
	50426 48905
1)	B2:	DOUBLE 202415301602,015271031674	;2.10451 89515 4
	0978 95180
1)	A3:	DOUBLE 602277106546,717167531241	;-0.07833 54278
	56532 11777
1)	B3:	DOUBLE 201502125320,370207664057	;1.25846 41124 2
	7629 031727
1)	ATANH:	DOUBLE 177732614701,130335517321	;ATAN(1/2)
1)	MONE:	EXP -1.0,0
1)	TWO:	EXP +2.0,0
1)	MPIOT:	DOUBLE 576155700452,756751347563	;-PI/2
1)	SMALL:	XWD 146673,317272		;SQRT(3)*2**-27
1)	XBLT:	XWD	C, ACSAVE
1)	ACSAVE:	BLOCK	X-C+1
1)	DX:	BLOCK 2		;HOLDS X MOST OF THE TIME
1)	X2:	BLOCK 2		;HOLDS X**2
 
 
1)		HELLO	(DATAN,.)	;[235] ENTRY TO DATAN ROUTINE
1)		MOVE	0,XBLT		;SAVE ACCUMULATORS
1)		BLT	0,ACSAVE+X-C	;...
1)		DMOVE	A,@(Q)		;GET ARGUMENT
1)		JUMPE	A,DATAN6	;ARG .E. 0?
1)		HLLZ	G, A		;LH(G)=SGN(A), RH(G) = 0
1)	;**;[513] INSERT @ DATAN.+7L	JNG	15-DEC-75
1)		TLZ	G,377777	;[513] ZAP ALL BUT SIGN FOR FLAG
	S
1)		SKIPGE	A		;IS THE ARGUMENT POSITIVE?
Digital Equipment Corporation       27-OCT-77    Page  56
PCO Log Report


1)		DFN	A, B		;NO,NEGATE IT
1)		MOVSI	D, (1.0)	;GET DOUBLE PRECISION 1.0
1)		MOVEI	E,0		;0 LO PART
1)		CAMN	A,D		;IS HIGH ORDER EQUAL TO 1.0?
1)		SKIPE	B		;YES, IS LOW ORDER ZERO?
1)		CAMGE	A,D		;NO, IS ARG>1.0?
1)		JRST	DATAN0		;NO
1)		TLC	G,(1B0)		;COMPLEMENT FINAL SIGN BIT, GET
	1/X
1)	;**;[513] CHANGE @ DATAN.+17L	JNG	15-DEC-75
1)		TLO	G,1		;[513] ADD -PI/2 TO FINAL ANSWER
1)		FLDIV	D,A
1)		DMOVEM	D,A
1)	DATAN0:	DMOVEM	A,DX
1)		CAMGE	A,[0.236]	;IS ARG .GE. (SQRT(5)-2)?
1)		JRST	DATAN1		;NO, PROCEED WITH ALGORITHM
1)					;CALCULATE X+2
1)		FLADD	A,TWO
1)		EXCH	A,DX		;GET X, SAVE X+2
1)		EXCH	B,DX+1		;...
1)		FSC	A,1		;CALCULATE 2X
1)	IFE CPU-KA10,<FSC	B,1		;...
1)		FADL	A,B >		;...
1)					;CALCULATE 2X-1
1)		FLADD	A,MONE
1)					;(2X-1)/(X+2) WITH RESULTS IN A,
	B
1)		FLDIV	A,DX
1)	;**;[513] REPLACE @ DATAN0+14L	JNG	15-DEC-75
1)		AOJA	G,DATAN0	;[513] TRY AGAIN IN CASE STILL T
	OO BIG
1)	DATAN1:	MOVM	D,A		;GET MOD(X)
1)		CAMGE	D,SMALL		;CAN ATAN(X)=X?
1)		JRST	DATAN3		;YES
1)				;CALCULATE X**2
1)	FLMUL A,DX
1)	DMOVEM A,X2
1)					;INIT CONTINUED FRACTION COMP. W
	ITH B3
1)	DMOVE A,B3
1)		MOVEI	H,B3		;INIT POINTER TO NUMBER TABLE
1)		JRST	DAT2		;DIVE INTO LOOP
1)	DAT1:				;ADD B1
1)	FLADD A,0(H)
1)	DAT2:				;ADD X**2
1)	FLADD A,X2
1)					;GET A3 (OR A1)
1)	DMOVE D,-2(H)
1)	FLDIV D,A
1)					;ADD B2 (OR B0)
1)	FLADD D,-4(H)
Digital Equipment Corporation       27-OCT-77    Page  57
PCO Log Report


 
 
1)					;ADD X**2
1)	FLADD D,X2
1)					;GET A2 (OR LAMBDA)
1)	DMOVE A,-6(H)
1)	FLDIV A,D
1)		SUBI	H,8		;DECREMENT TABLE POINTER
1)		CAILE	H,LAMBDA	;FINISHED?
1)		JRST	DAT1		;NO, DO IT LAST TIME
1)					;MULTIPLY BY X
1)	FLMUL A,DX
1)	DATAN3:
1)	;**;[513] CHANGE @ DATAN3+1L	JNG	15-DEC-75
1)	IFE CPU-KA10,<TRNN	G,-1		;[513] ADD ATAN(1/2)?
1)		JRST	DATAN4		;[513] NO
1)	FLADD A,ATANH
1)		SOJA	G,DATAN3	;[513] TRY AGAIN IN CASE NEED TO
	 ADD
1)					;[513] ATAN(1/2) TWICE
1)	DATAN4:	TLNN	G,1		;[513] ADD -PI/2?
1)		JRST	DATAN5		;NO
1)	FLADD A,MPIOT
1)	>
1)	DATAN5:
1)	IFE CPU-KI10,<TRNN	G,-1		;[513] NEED TO ADD ATAN(
	1/2)?
1)		JRST	DATAN7			;[513] NO, PROCEED
1)		DFAD	A,ATANH
1)		SOJA	G,DATAN5		;[513] MAKE SURE ALL DON
	E
1)	DATAN7:	TLNE	G,1		;[513] NEED TO ADD -PI/2?
1)		DFAD	A,MPIOT >
1)		SKIPGE	G		;NEGATE RESULT?
1)		DFN	A,B		;YES
1)	DATAN6:	MOVS	X,XBLT		;RESTORE ACCUMULATORS
1)		BLT	X,X		;...
1)		GOODBY	(1)		;EXIT
1)		PRGEND
1)15	TITLE	DFLOAT  %4.(235) INTEGER TO DOUBLE PRECISION CONVERSION
1)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
****
2)1	ENTRY	DSIN
2)	EXTERN	DSIN.
2)	DSIN=DSIN.
2)	PRGEND
2)	TITLE	DCOS	%4.(235) DOUBLE PRECISION SIN AND COSINE ROUTINE
2)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
2)	;***COPYRIGHT 1973, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. ***
2)	ENTRY	DCOS
2)	EXTERN	DCOS.
Digital Equipment Corporation       27-OCT-77    Page  58
PCO Log Report


2)	DCOS=DCOS.
2)	PRGEND
2)	TITLE	DSIN.	%4.(356) DOUBLE PRECISION SIN AND COSINE ROUTINE
2)	SUBTTL	D. TODD /DRT/HPW/MD		12-AUG-74
2)	;***COPYRIGHT 1972,1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.*
	**
2)	;DOUBLE PRECISION SINE AND COSINE FUNCTION
2)	;THIS PROGRAM CALCULATES THE SINE AND COSINE OF A DOUBLE
2)	;PRECISION ARGUMENT.  FOR A DESCRIPTION OF THE ALGORITHM,
2)	;SEE THE SCIENCE LIBRARY AND FORTRAN UTILITY SUBPROGRAMS
2)	;MANUAL.
 
 
2)	;THE CALLING SEQUENCE FOR THE PROGRAM IS AS FOLLOWS:
2)	;	JSA	Q, DSIN
2)	;	EXP	ARG
2)	;WHERE ARG IS THE ADDRESS OF THE HIGH ORDER PORTION OF THE
2)	;ARGUMENT. THE DOUBLE PRECISION ANSWER IS LEFT IN ACCUMULATORS
2)	;A AND B.
2)		SEARCH	FORPRM
2)		A=	0
2)		B=	1
2)		C=	2
2)		D=	3
2)		E=	4
2)		F=	5
2)		G=	6
2)		Q=	16
2)		P=	17
2)		X=G	;SAVE AC'S C THRU G
2)	;CONSTANTS AND TEMPORARY LOCATIONS AND STUFF
2)	C17:	DOUBLE 120625130734,014126512326	;1/17!=.28114572
	543455207632E-14
2)		DOUBLE 124656376371,314734037043	;1/16!=.47794773
	323873852974E-13
2)	C15:	DOUBLE 647121401406,463043740735	;-1/15!=-.764716
	37318198164759E-12
2)		DOUBLE 643154321325,717701542677	;-1/14! =-.11470
	745597729724714E-10
2)	C13:	DOUBLE 140541110604,352066411370	;1/13!=.16059043
	836821614599E-9
2)		DOUBLE 144436733073,376154227552	;1/12!=.20876756
	987868098979E-8
2)	C11:	DOUBLE 630121467246,402535434340	;-1/11!=-.250521
	08385441718775E-7
2)		DOUBLE 624330066022,441660243433	;-1/10!=-.275573
	19223985890653E-6
2)	C9:	DOUBLE 156561674351,125543463437	;1/9!=.275573192
	23985890653E-5
2)		DOUBLE 161640064006,200320032003	;1/8!=.248015873
	01587301587E-4
Digital Equipment Corporation       27-OCT-77    Page  59
PCO Log Report


2)	C7:	DOUBLE 613137713771,577457745775	;-1/7!=-.1984126
	9841269841270E-3
2)		DOUBLE 610223722372,517511751175	;-1/6!=-.1388888
	888888888889E-2
2)	C5:	DOUBLE 172421042104,104210421042	;1/5!=.008333333
	33333333333333
2)		DOUBLE 174525252525,125252525253	;1/4!=.041666666
	666666666667
2)	C3:	DOUBLE 601252525252,652525252526	;-1/3!=-0.166666
	66666666666667
2)	C2:	577400000000	;-1/2!=-0.50000000000000000000
2)		000000000000
2)	PIOTLO=021026430215	;LOW HALF OF PI/2 FOR PDP-6/KI10
2)	ADDTBL:	DOUBLE 576155700452,-PIOTLO	;-PI/2
2)		DOUBLE 575155700452,-PIOTLO	;-PI
2)		574322320340	;-3*PI/2
2)		IFE CPU-KA10,<150146336134>
2)		IFN CPU-KA10,<463157055627>
2)		DOUBLE 574155700452,-PIOTLO	;-2*PI
2)	ONE:	1.0
2)		0
2)	XBLT:	XWD C, ACSAVE
2)	PIOT:	DOUBLE	201622077325,PIOTLO	;PI/2
2)	FLAG:	0		;NEGATE ANSWER IF (FLAG) IS MINUS
2)	COSFLG:	BLOCK 1	;2 FOR COSINE SERIES, 0 FOR SINE
2)	ACSAVE:	BLOCK X-C+1	;SAVE ROOM FOR STORING AC'S
2)	ARGSAV:	BLOCK 2	;TEMP FOR X
2)		HELLO	(DCOS,.)	;[235] ENTRY TO COSINE ROUTINE
2)		MOVE	0,XBLT
2)		BLT	0,ACSAVE+X-C	;SAVE ACCUMULATORS
2)		DMOVE	A,@(Q)		;GET DOUBLE WORD ARGUMENT
2)		FLADD	A,PIOT		;COS(X)=SIN(PI/2+X), LEAVE RESUL
	T IN A
2)		JRST	DSIN0		;ENTER SINE ROUTINE
 
 
2)		HELLO	(DSIN,.)	;[235] ENTRY TO SINE ROUTINE
2)		MOVE	0,XBLT
2)		BLT	0,ACSAVE+X-C	;SAVE ACCUMULATORS
2)		DMOVE	A,@(Q)		;GET DOUBLE WORD ARGUMENT
2)	DSIN0:	JUMPE	A, DSIN4C	;ARGUMENT OF ZERO?
2)		SETZB	G, FLAG		;SET FLAG FOR POSITIVE ARGUMENT
2)		JUMPGE	A, DSIN1	;IS ARGUMENT POSITIVE?
2)		SETOM	FLAG		;NO, CHANGE FLAG
2)		DFN	A, B		;NEGATE THE ARGUMENT
2)	DSIN1:	DMOVEM	A,ARGSAV
2)				;CALCULATE X/(PI/2),LEAVE THE RESULTS IN
	 A,A+1
2)		FLDIV	A,PIOT
2)		CAML	A,[1.0]		;IS X .L. PI/4?
2)		JRST	REDUCE		;NO, REDUCE IT
Digital Equipment Corporation       27-OCT-77    Page  60
PCO Log Report


2)		CAML	A,[0.5]		;IS X .GE. PI/4
2)		MOVEI	G,1		;YES, 2ND OCTANT
2)	DSIN1A:	DMOVE	A,ARGSAV
2)	DSIN2:	TRNE	G,4		;QUADRANTS 3 OR 4?
2)		SETCMM	FLAG		;YES, SINE IS NEGATIVE
2)		JUMPE	G,DSIN3		;IS X .L. PI/4
2)		TRNE	G,1		;NO,GET INDEX INTO QUADRANT TABL
	E
2)		ADDI	G,1		;...
2)					;MAKE: -PI/4 .GE. X .LE. +PI/4
2)		FLADD	A,ADDTBL-2(G)
2)		SKIPGE	A
2)		DFN	A,B		;TAKE ABSOLUTE VALUE
2)		DMOVEM	A,ARGSAV
2)	DSIN3:	TRZ	G,777775	;LEAVE ONLY OCTANT BIT
2)		HRRZM	G,COSFLG	;0 FOR SINE SERIES, 2 FOR COSINE
2)		CAMG	A,[XWD 147471,421605]	;IS X .L. SQRT(6)*2**-27
	?
2)		JRST	SMALL		;YES, THEN SIN(X)=X
2)					;CALCULATE X**2, AND LEAVE IN A,
	A+1
2)		FLMUL	A,ARGSAV
2)					;INITIALIZE PARTIAL SUM
2)		DMOVE	D,C17(G)
2)		MOVEI	G,C15(G)	;TURN OCTANT POINTER INTO TABLE
	ADR
2)	DSIN3C:				;MULTIPLY PARTIAL SUM BY X**2
2)		FLMUL	D,A
2)					;ADD NEXT CONSTANT TO PARTIAL SU
	M
2)		FLADD	D,0(G)
2)		ADDI	G,4		;MOVE POINTER TO NEXT CONSTANT
2)		CAIG	G,C2		;DONE?
2)		JRST	DSIN3C		;NO, LOOP BACK FOR MORE OF SERIE
	S
2)					;YES, ONE MORE MULTIPLY
2)		FLMUL	A,D
2)					;ADD 1.0 INTO SUM
2)		FLADD	A,ONE
2)		SKIPE	COSFLG	;IS THIS COSINE SERIES?
2)		JRST	DSIN4A		;YES
2)					;NO, MULTIPLY BY X, THIS IS SIN
2)		FLMUL	A,ARGSAV
2)	DSIN4A:	SKIPE	FLAG		;NEGATE RESULT?
2)		DFN	A,B		;YES
2)	DSIN4C:	MOVS	X,XBLT		;SET UP BLT POINTER
2)		BLT	X,X		;RESTORE AC'S
2)		GOODBY	(1)		;EXIT
 
 
2)	SMALL:	JUMPE	G,DSIN4A	;CALCULATING COSINE?
Digital Equipment Corporation       27-OCT-77    Page  61
PCO Log Report


2)		DMOVE	A,ONE		;YES, COS(X)=1.0
2)		JRST	DSIN4A
2)	REDUCE:	MOVE	D,A		;SAVE QUADRANT NUMBER
2)		LDB	G,[POINT 8,A,8]	;GET EXPONENT
2)	IFE CPU-KA10,<
2)		LSH	B,9>		;WIPE OUT LO EXPONENT
2)	IFN CPU-KA10,<
2)		LSH	B,1>		;REMOVE 1 BIT FOR KI10
2)		TLZ	A,777000	;DITTO HI EXPONENT
2)		LSHC	A,-202(G)	;MAKE ARGUMENT MODULO 2 PI
2)		LDB	G,[POINT 3,A,11]	;GET QUADRANT AND OCTANT
	 BITS
2)		CAMGE	D,[4.0]		;IS NON-REDUCED ARG OK?
2)		JRST	DSIN1A		;YES, SAVE THE DFMP INACCURICIES
2)		TLZ	A,777000	;MAKE WAY FOR EXPONENT
2)	IFE CPU-KA10,<
2)		FSC	A,202		;PUT EXP IN HI WORD
2)		LSH	B,-9		;MAKE WAY FOR LOW EXPONENT
2)		FSC	B,202-^D27	;PUT IN LO EXPONENT
2)		FADL	A,B>		;UNNORMALIZE LO WORD
2)	IFN CPU-KA10,<
2)		TLO	A,202000	;PUT EXP IN HI WORD, NO NORMALIZ
	E
2)		LSH	B,-1		;PUT LO FRACTION IN PLACE
2)		DFAD	A,[EXP 0,  0]>	;NORMALIZE
2)		FLMUL	A,PIOT		;CHANGE MAKE TO RADIANS (MOD 2 P
	I)
2)		DMOVEM	A,ARGSAV
2)		JRST	DSIN2		;GO CHANGE ARGUMENT TO 1ST OCTAN
	T
2)	LIT
2)		PRGEND
2)	TITLE	DATAN2	%4.(235) TWO ARGUMENT DOUBLE PRECISION ARC TANGE
	NT
2)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
**************
1)15	ENTRY	DFLOAT
1)	EXTERN	DFLOT.
1)	DFLOAT=DFLOT.
1)	PRGEND
1)	TITLE	DFLOT.  %4.(235) INTEGER TO DOUBLE PRECISION CONVERSION
1)	SUBTTL	ED YOURDON/KK/VAA/TWE/DMN
1)	SUBTTL	D. TODD /DRT/HPW		11-DEC-73
1)	;***COPYRIGHT 1972,1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.*
	**
1)	;36 BIT FLOAT FUNCTION
1)	;CONVERTS A SIGNED FIXED POINT INTEGER TO FLOATING POINT
1)	;BY BREAKING THE INTEGER INTO HIGH ORDER AND LOW ORDER
1)	;FRACTIONS, CALCULATING AN EXPONENT, THEN ADDING THE TWO
1)	;TOGETHER. DOUBLE PRECISION CONVERSION.
1)	;THE ROUTINE IS CALLED AS FOLLOWS:
Digital Equipment Corporation       27-OCT-77    Page  62
PCO Log Report


1)	;	JSA	Q,D FLOAT
1)	;	EXP	ARG
1)	;THE ANSWER IS RETURNED IN ACCUMULATORS A AND B
1)		SEARCH	FORPRM
****
2)1	ENTRY	DATAN2
2)	EXTERN	DATN2.
2)	DATAN2=DATN2.
2)	PRGEND
2)	TITLE	DATN2.	%4.(356) TWO ARGUMENT DOUBLE PRECISION ARC TANGE
	NT
 
 
2)	SUBTTL	D. TODD /DRT/MD		12-AUG-74
2)	;***COPYRIGHT 1972,1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.*
	**
2)	;THIS ROUTINE CALCULATES THE ARCTANGENT OF A/B
2)	;IF ARGUMENT IS IN 2ND QUADRANT, DATAN2(A,B)=DATAN(A/B) + PI
2)	;IF ARGUMENT IS IN 3RD QUADRANT, DATAN2(A,B)=DATAN(A/B)-PI
2)	;IF ARGUMENT IS IN 1ST OR 4TH QUADRANT, DATAN2(A,B)=DATAN(A/B)
2)	;IF QUOTIENT A/B OVER OR UNDERFLOWS, RETURN AN ANGLE
2)	;ON A CO-ORDINATE AXIS
2)	;THE ROUTINE IS CALLED IN THE FOLLOWING MANNER:
2)	;	JSA	Q, DATAN2
2)	;	EXP	A
2)	;	EXP	B
2)	;DATAN(A/B) IS RETURNED AS A DOUBLE PRECISION ANSWER IN ACCUMULA
	TORS
2)	;A AND B.
2)		SEARCH	FORPRM
**************
1)15		Q=	16
1)		HELLO	(DFLOT.,DFLOAT)	;[235] ENTRY TO DFLOAT ROUTINE
1)		MOVE	T0,@(L)		;PICK UP THE ARGUMENT
1)		PJRST	DFL.0##		;USE DFL.0 ROUTINE
1)		PRGEND
1)16	TITLE	IDINT	%4.(235) DOUBLE PRECISION TO INTEGER CONVERSION
1)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
****
2)1		C=	2
2)		D=	3
2)		Q=	16
2)		P=	17
2)	;CONSTANTS AND TEMPORARY LOCATIONS AND STUFF
2)	DARG:	BLOCK 2			;ARGUMENT FOR DATAN
2)	IFE CPU-KA10,<
2)	CSAVE:	BLOCK 1 >
2)	PIOT:	DOUBLE 201622077325,021026430215	;+PI/2
2)	PI.:	DOUBLE 202622077325,021026430215	;DEC=3.141592653
	58979323846
2)		HELLO	(DATN2.,DATAN2)	;[235] ENTRY TO DATAN2 ROUTINE
Digital Equipment Corporation       27-OCT-77    Page  63
PCO Log Report


2)		DMOVE	A,@(Q)		;PICK UP 1ST ARG
2)	IFE CPU-KA10,<MOVEM	C,CSAVE		;SAVE AC C
2)		MOVEM	B,DARG		;SAVE LOW PART OF ARG.
2)		MOVEI	B,@1(Q)		;PICK UP
2)		MOVE	C,(B)		;THE
2)		MOVE	B,1(B)		;NEXT ARG.
2)		EXCH	B,DARG		;RESTORE LOW OF ONE ARG AND
2)		MOVEM	C,DARG+1		;COPY THE OTHER ARG.
2)		FDVL	A,C		;CALCULATE A/B
2)		JFCL	AXIS		;UNDER/OVER FLOW
2)		MOVN	C,A		;...
2)		FMPR	C,DARG		;...
2)		JFCL
2)		UFA	B,C
2)		FDVR	C,DARG+1
2)		JFCL
2)		FADL	A,C
2)		JFCL	AXIS >		;UNDER/OVER FLOW
2)	IFE CPU-KI10,<DFDV	A,@1(Q)		;CALCULATE A/B
2)		JFCL	AXIS >		;TRANSFER FOR OVER/UNDER FLOW
2)	DMOVEM	A,DARG			;STORE ARG FOR DATAN
 
 
2)		FUNCT	DATAN.,<DARG>	;CALCULATE DATAN(A/B)
2)	IFE CPU-KA10,<MOVE	C, CSAVE >	;RESTORE ACCUMULATOR C
2)		SKIPL	@1(Q)		;WAS 2ND ARGUMENT POSITIVE?
2)		GOODBY	(2)		;YES, 1ST OR 4TH QUAD, EXIT
2)					;NO, 2ND OR 3RD
2)		SKIPGE	@(Q)		;2ND QUADRANT?
2)		DFN	A,B		;NO, 3RD. SUBTRACT PI
2)	FLADD A,PI.
2)	IFE CPU-KA10,<MOVE	C,CSAVE >	;RESTORE AC C.
2)		SKIPGE	@(Q)		;3RD OR 4TH QUADRANTS?
2)		DFN	A,B		;YES, NEGATE FINAL ANSWER
2)		GOODBY	(2)		;EXIT
2)	AXIS:
2)	IFE CPU-KA10,<MOVE	C,CSAVE >	;RESTORE AC C
2)		JUMPN	A,OVER		;GO TO OVER IF OVERFLOW.
2)		SKIPL	@1(Q)		;ANS UNDERFLOWS IF Y/X UNDERFLOW
	S
2)		JRST	UNDMSG		;AND IF X >= 0.
2)		DMOVE	A,PI.		;O'E, ANS = +-PI, SO
2)		JRST	SETSGN		;GO TO SET SIGN.
2)	OVER:	SKIPN	@(Q)		;WAS Y =0 ?
2)		FDVR	0,@(Q)		;YES, THIS IS 0/0 , FORCE A DIV
	CHK MSG.
2)		DMOVE	A,PIOT		;ANS = +-PI/2.
2)	SETSGN:	SKIPGE	@(Q)		;ANS > 0 IF Y > 0.
2)		DFN	A,B		;ANS < 0 IF Y > 0.
2)		GOODBY	(2)		;EXIT.
2)	UNDMSG:	ERROR	(APR,7,1,.+1)	;RETURN UNDERFLOW
Digital Equipment Corporation       27-OCT-77    Page  64
PCO Log Report


2)		SETZB	0,1		;AND ANS = 0
2)		GOODBY	(2)		;EXIT.
2)		PRGEND
2)	TITLE	DATAN	%4.(235) SINGLE ARGUMENT DOUBLE PRECISION ARC TA
	NGENT
2)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
**************
1)16	ENTRY	IDINT
1)	EXTERN	IDINT.
1)	IDINT=IDINT.
1)	PRGEND
1)	TITLE	DFIX	%4.(235) DOUBLE PRECISION TO INTEGER CONVERSION
1)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
****
2)1	ENTRY	DATAN
2)	EXTERN	DATAN.
2)	DATAN=DATAN.
2)	PRGEND
2)	TITLE	DATAN.	%4C.(513) SINGLE ARGUMENT DOUBLE PRECISION ARC T
	ANGENT
2)	SUBTTL	D. TODD /DRT/HPW/MD/JNG		15-DEC-75
2)	;***COPYRIGHT 1972,1973,1974,1975 DIGITAL EQUIPMENT CORP., MAYNA
	RD, MASS.***
2)	;THIS ROUTINE CALCULATES THE ACTANGENT OF A DOUBLE PRECISION
2)	;ARGUMENT ACCORDING TO THE ALGORITHM
2)	;DATAN(X) = LAMBDA*X/(Z+B0+A1/(Z+B1+A2/(Z+B2+A3/(Z+B3))))
2)	;FOR X>1.0, THE IDENTITY
2)	;			ATAN(X) = PI/2 - ATAN(1/X)
2)	;IS USED. FOR 0.236<X<1.0, THE IDENTITY
2)	;			ATAN(X) = ATAN(1/2) + ATAN(2X-1/X+2)
2)	;IS USED.
2)	;FOR X<SQRT(3)*2**-27, ATAN(X)=X IS USED
2)	;THE ROUTINE HAS THE FOLLOWING CALLING SEQUENCE
 
 
2)	;	JSA	Q, DATAN
2)	;	EXP	ARG
2)	;WHERE ARG IS THE ADDRESS OF THE HIGH ORDER PART OF THE DOUBLE
2)	;PRECISION WORD. THE ANSWER IS RETURNED IN ACCUMULATORS A AND B.
2)		SEARCH	FORPRM
2)	A=	0
2)	B=	1
2)	C=	2
2)	D=	3
2)	E=	4
2)	F=	5
2)	G=	6	;FLAG REGISTER
2)		;BIT35=1, ADD ATAN(1/2) TO ANSWER
2)		;BIT34=1, ADD 2*ATAN(1/2) TO ANSWER	;[513]
2)		;BIT17=1,ADD -PI/2 TO ANSWER		;[513]
2)		;BIT0=1, NEGATE FINAL ANSWER
Digital Equipment Corporation       27-OCT-77    Page  65
PCO Log Report


2)	H=	7		;LOOP POINTER
2)	Q=	16
2)	P=	17
2)	X=	H		;NUMBER OF ACCUMULATORS TO SAVE
2)	;REVISION HISTORY
2)	;EDIT	SPR	DESCRIPTION
2)	;----	---	-----------
2)	;513	15636	WHEN (5*SQRT(5)-2)/11 < ABS(X) < (5*SQRT(5)+2)/1
	1,
2)	;		THE DATAN(X) RETURNED CAN BE WRONG AFTER THE 13T
	H PLACE.
2)	;		THIS IS BECAUSE (2*X-1)/(X+2) > SQRT(5)-2 IN THI
	S RANGE.
2)	;CONSTANTS AND TEMPORARY LOCATIONS AND STUFF
2)	LAMBDA:	DOUBLE 204613772770,017027645561	;12.37469 38775
	51020 40816
2)	B0:	DOUBLE 205644272446,121335250615	;26.27277 52490
	26980 67155
2)	A1:	DOUBLE 570276502107,437176661671	;-80.34270 56102
	 16599 70467
2)	B1:	DOUBLE 203627237361,165414142742	;6.36424 16870 0
	4411 34492
2)	A2:	DOUBLE 576316772502,512470127251	;-1.19144 72238
	50426 48905
2)	B2:	DOUBLE 202415301602,015271031674	;2.10451 89515 4
	0978 95180
2)	A3:	DOUBLE 602277106546,717167531241	;-0.07833 54278
	56532 11777
2)	B3:	DOUBLE 201502125320,370207664057	;1.25846 41124 2
	7629 031727
2)	ATANH:	DOUBLE 177732614701,130335517321	;ATAN(1/2)
2)	MONE:	EXP -1.0,0
2)	TWO:	EXP +2.0,0
2)	MPIOT:	DOUBLE 576155700452,756751347563	;-PI/2
2)	SMALL:	XWD 146673,317272		;SQRT(3)*2**-27
2)	XBLT:	XWD	C, ACSAVE
2)	ACSAVE:	BLOCK	X-C+1
2)	DX:	BLOCK 2		;HOLDS X MOST OF THE TIME
2)	X2:	BLOCK 2		;HOLDS X**2
2)		HELLO	(DATAN,.)	;[235] ENTRY TO DATAN ROUTINE
2)		MOVE	0,XBLT		;SAVE ACCUMULATORS
2)		BLT	0,ACSAVE+X-C	;...
2)		DMOVE	A,@(Q)		;GET ARGUMENT
2)		JUMPE	A,DATAN6	;ARG .E. 0?
2)		HLLZ	G, A		;LH(G)=SGN(A), RH(G) = 0
2)	;**;[513] INSERT @ DATAN.+7L	JNG	15-DEC-75
2)		TLZ	G,377777	;[513] ZAP ALL BUT SIGN FOR FLAG
	S
2)		SKIPGE	A		;IS THE ARGUMENT POSITIVE?
2)		DFN	A, B		;NO,NEGATE IT
2)		MOVSI	D, (1.0)	;GET DOUBLE PRECISION 1.0
Digital Equipment Corporation       27-OCT-77    Page  66
PCO Log Report


2)		MOVEI	E,0		;0 LO PART
 
 
2)		CAMN	A,D		;IS HIGH ORDER EQUAL TO 1.0?
2)		SKIPE	B		;YES, IS LOW ORDER ZERO?
2)		CAMGE	A,D		;NO, IS ARG>1.0?
2)		JRST	DATAN0		;NO
2)		TLC	G,(1B0)		;COMPLEMENT FINAL SIGN BIT, GET
	1/X
2)	;**;[513] CHANGE @ DATAN.+17L	JNG	15-DEC-75
2)		TLO	G,1		;[513] ADD -PI/2 TO FINAL ANSWER
2)		FLDIV	D,A
2)		DMOVEM	D,A
2)	DATAN0:	DMOVEM	A,DX
2)		CAMGE	A,[0.236]	;IS ARG .GE. (SQRT(5)-2)?
2)		JRST	DATAN1		;NO, PROCEED WITH ALGORITHM
2)					;CALCULATE X+2
2)		FLADD	A,TWO
2)		EXCH	A,DX		;GET X, SAVE X+2
2)		EXCH	B,DX+1		;...
2)		FSC	A,1		;CALCULATE 2X
2)	IFE CPU-KA10,<FSC	B,1		;...
2)		FADL	A,B >		;...
2)					;CALCULATE 2X-1
2)		FLADD	A,MONE
2)					;(2X-1)/(X+2) WITH RESULTS IN A,
	B
2)		FLDIV	A,DX
2)	;**;[513] REPLACE @ DATAN0+14L	JNG	15-DEC-75
2)		AOJA	G,DATAN0	;[513] TRY AGAIN IN CASE STILL T
	OO BIG
2)	DATAN1:	MOVM	D,A		;GET MOD(X)
2)		CAMGE	D,SMALL		;CAN ATAN(X)=X?
2)		JRST	DATAN3		;YES
2)				;CALCULATE X**2
2)	FLMUL A,DX
2)	DMOVEM A,X2
2)					;INIT CONTINUED FRACTION COMP. W
	ITH B3
2)	DMOVE A,B3
2)		MOVEI	H,B3		;INIT POINTER TO NUMBER TABLE
2)		JRST	DAT2		;DIVE INTO LOOP
2)	DAT1:				;ADD B1
2)	FLADD A,0(H)
2)	DAT2:				;ADD X**2
2)	FLADD A,X2
2)					;GET A3 (OR A1)
2)	DMOVE D,-2(H)
2)	FLDIV D,A
2)					;ADD B2 (OR B0)
2)	FLADD D,-4(H)
Digital Equipment Corporation       27-OCT-77    Page  67
PCO Log Report


2)					;ADD X**2
2)	FLADD D,X2
2)					;GET A2 (OR LAMBDA)
2)	DMOVE A,-6(H)
2)	FLDIV A,D
2)		SUBI	H,8		;DECREMENT TABLE POINTER
2)		CAILE	H,LAMBDA	;FINISHED?
2)		JRST	DAT1		;NO, DO IT LAST TIME
2)					;MULTIPLY BY X
2)	FLMUL A,DX
2)	DATAN3:
2)	;**;[513] CHANGE @ DATAN3+1L	JNG	15-DEC-75
 
 
2)	IFE CPU-KA10,<TRNN	G,-1		;[513] ADD ATAN(1/2)?
2)		JRST	DATAN4		;[513] NO
2)	FLADD A,ATANH
2)		SOJA	G,DATAN3	;[513] TRY AGAIN IN CASE NEED TO
	 ADD
2)					;[513] ATAN(1/2) TWICE
2)	DATAN4:	TLNN	G,1		;[513] ADD -PI/2?
2)		JRST	DATAN5		;NO
2)	FLADD A,MPIOT
2)	>
2)	DATAN5:
2)	IFE CPU-KI10,<TRNN	G,-1		;[513] NEED TO ADD ATAN(
	1/2)?
2)		JRST	DATAN7			;[513] NO, PROCEED
2)		DFAD	A,ATANH
2)		SOJA	G,DATAN5		;[513] MAKE SURE ALL DON
	E
2)	DATAN7:	TLNE	G,1		;[513] NEED TO ADD -PI/2?
2)		DFAD	A,MPIOT >
2)		SKIPGE	G		;NEGATE RESULT?
2)		DFN	A,B		;YES
2)	DATAN6:	MOVS	X,XBLT		;RESTORE ACCUMULATORS
2)		BLT	X,X		;...
2)		GOODBY	(1)		;EXIT
2)		PRGEND
2)	TITLE	DFLOAT  %4.(235) INTEGER TO DOUBLE PRECISION CONVERSION
2)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
**************
1)16	ENTRY	DFIX
1)	EXTERN	DFIX.
1)	DFIX=DFIX.
1)	PRGEND
1)	TITLE	IDFIX	%4.(235) DOUBLE PRECISION TO INTEGER CONVERSION
1)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
****
2)1	ENTRY	DFLOAT
2)	EXTERN	DFLOT.
Digital Equipment Corporation       27-OCT-77    Page  68
PCO Log Report


2)	DFLOAT=DFLOT.
2)	PRGEND
2)	TITLE	DFLOT.  %4.(235) INTEGER TO DOUBLE PRECISION CONVERSION
2)	SUBTTL	ED YOURDON/KK/VAA/TWE/DMN
2)	SUBTTL	D. TODD /DRT/HPW		11-DEC-73
2)	;***COPYRIGHT 1972,1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.*
	**
2)	;36 BIT FLOAT FUNCTION
2)	;CONVERTS A SIGNED FIXED POINT INTEGER TO FLOATING POINT
2)	;BY BREAKING THE INTEGER INTO HIGH ORDER AND LOW ORDER
2)	;FRACTIONS, CALCULATING AN EXPONENT, THEN ADDING THE TWO
2)	;TOGETHER. DOUBLE PRECISION CONVERSION.
2)	;THE ROUTINE IS CALLED AS FOLLOWS:
2)	;	JSA	Q,D FLOAT
2)	;	EXP	ARG
2)	;THE ANSWER IS RETURNED IN ACCUMULATORS A AND B
2)		SEARCH	FORPRM
2)		A=	0
2)		B=	1
2)		Q=	16
2)		HELLO	(DFLOT.,DFLOAT)	;[235] ENTRY TO DFLOAT ROUTINE
2)		MOVE	T0,@(L)		;PICK UP THE ARGUMENT
2)		PJRST	DFL.0##		;USE DFL.0 ROUTINE
 
 
2)		PRGEND
2)	TITLE	IDINT	%4.(235) DOUBLE PRECISION TO INTEGER CONVERSION
2)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
**************
1)16	ENTRY	IDFIX
****
2)1	ENTRY	IDINT
2)	EXTERN	IDINT.
2)	IDINT=IDINT.
2)	PRGEND
2)	TITLE	DFIX	%4.(235) DOUBLE PRECISION TO INTEGER CONVERSION
2)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
2)	;***COPYRIGHT 1973, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. ***
2)	SEARCH	FORPRM
2)	ENTRY	DFIX
2)	EXTERN	DFIX.
2)	DFIX=DFIX.
2)	PRGEND
2)	TITLE	IDFIX	%4.(235) DOUBLE PRECISION TO INTEGER CONVERSION
2)	SUBTTL	H. P. WEISS/HPW		11-DEC-73
2)	;***COPYRIGHT 1973, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. ***
2)	SEARCH	FORPRM
2)	ENTRY	IDFIX
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page  69
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-247*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         4B(460)+531

[Date Entered]          02-DEC-76

[Programmer]            HOUDE

[Routines]              FORTRP    FOROTS

[Key Words]             ZERO DIVID  DBLE PREC   TRAP        EXP OVERFL

[Source Before Edit]    %5   (000624)

[Source After Edit]     %5   (000625)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page  70
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
     The  trapping  for  double  precision  zero  divide  and   double
precision  exponent  overflow returns results with the wrong sign, or,
worse, zero.  The sign of the result in both cases should be the  sign
of  the  proper  answer,  and  the  magnitude  should  be  the largest
representable double precision number.

                        **********


[DIAGNOSIS]
 
     The sign of the result was being checked incorrectly in the  code
at  ACDOUB, which checked the location rather than its contents.  This
was aggravated by edit 531.

                        **********


[CURE]
 
     Clean up edit 531 to construct a DMOVE with the  correct  address
field,  and check the contents of the dividend rather than its address
(always a register) to determine the correct sign of the result.
 
Digital Equipment Corporation       27-OCT-77    Page  71
PCO Log Report


[FILCOM]
File 1)	DSK:FOROTS.MAC	created: 1656 30-NOV-1976
File 2)	DSK:FOROTS.625	created: 1115 01-DEC-1976
 
1)1		TITLE FOROTS %5.(624) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	29-NOV-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5.(625) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	1-DEC-76
2)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
**************
1)1	VEDIT==624		;MAJOR EDIT NUMBER
1)	VMINOR==00		;MINOR EDIT NUMBER
****
2)1	VEDIT==625		;MAJOR EDIT NUMBER
2)	VMINOR==00		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;625	-----	FIXES TO FORTRP FOR DOUBLE PRECISION ZERO DIVIDE
	.
2)	;			IT SHOULD RETURN PLUS OR MINUS INFINITY,
2)	;			DEPENDING ON THE SIGN OF THE DIVIDEND. 4
	B(460)
2)	;			ALWAYS RETURNED POSITIVE INFINITY; AFTER
	 PATCH
2)	;			531, ZERO WAS RETURNED.
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page  72
PCO Log Report


[FILCOM]
File 1)	DSK:FORTRP.MAC	created: 0943 05-APR-1976
File 2)	DSK:FORTRP.625	created: 1133 01-DEC-1976
 
1)1	TITLE FORTRP %4C.(531) OVER/UNDERFLOW TRAP ROUTINE
1)		SUBTTL	D. TODD/T. EGGERS/DRT/TWE/DMN/JNG/CLRH	5-APR-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
****
2)1	TITLE FORTRP %5.(625) OVER/UNDERFLOW TRAP ROUTINE
2)		SUBTTL	D. TODD/T. EGGERS/DRT/TWE/DMN/JNG/CLRH	1-DEC-76
2)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
**************
1)1	;********* END OF REVISION HISTORY
****
2)1	;625	-----	FIX DOUBLE PRECISION ZERO DIVIDE--SHOULD RETURN
	PLUS
2)	;			OR MINUS INFINITY DEPENDING ON THE SIGN
	OF THE
2)	;			DIVIDEND. BEFORE 531, IT WAS ALWAYS POSI
	TIVE;
2)	;			AFTER 531 IT ALWAYS RETURNED ZERO.
2)	;********* END OF REVISION HISTORY
**************
1)5		SETO	T,		;[531] GET -1 TO MAKE INFINITIES
1)		MOVMM	T,TSAVE-N+1(P)	;[531] PUT TWO WORDS ON THE STAC
	K
1)		MOVMM	T,TSAVE-N+2(P)	;[531] FOR THE DMOVE TO USE
1)					;[531] THIS ASSUMES THAT ACDATA
	IS AT
****
2)5	;**; [625] CHANGE FIRST THREE LINES OF PATCH 531 AT ACDOUB+1L
2)	;**; [625]	CLRH	1-DEC-76
2)		HRLOI	T,377777	;[625] GET INFINITY
2)		MOVEM	T,TSAVE-N+1(P)	;[625] [531] PUT TWO WORDS ON TH
	E STACK
2)		MOVEM	T,TSAVE-N+2(P)	;[625] [531] FOR THE DMOVE TO US
	E
2)					;[531] THIS ASSUMES THAT ACDATA
	IS AT
**************
1)5		IOR	T,[DMOVE 0,TSAVE-N+1(P)] ;[531] SET UP DMOVE
1)		SKIPGE ACDATA-N(P)	;WAS OVERFLOW RESULT POSITIVE?
1)		TLC T,1000		;NO, CHANGE THE DMOVE TO DMOVN
****
2)5	;**; [625] CHANGE @ ACDOUB+5 IN PATCH 531	CLRH	1-DEC-76
2)		IOR	T,[DMOVE 0,TSAVE(P)] ;[625] [531] SET UP DMOVE
2)		SKIPGE @ACDATA-N(P)	;[625] WAS OVERFLOW RESULT POSIT
	IVE?
2)		TLC T,1000		;NO, CHANGE THE DMOVE TO DMOVN
Digital Equipment Corporation       27-OCT-77    Page  73
PCO Log Report


**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page  74
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-248*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         4B(460), TESTED IN 5(625)

[Date Entered]          02-DEC-76

[Programmer]            SUE GODSELL

[Routines]              FORERR    FOROTS

[Key Words]             NAMELIST    VARIABLE    INPUT

[Source Before Edit]    %5   (000625)

[Source After Edit]     %5   (000626)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   Y
                        SER/SPR Number:10-
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page  75
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
     The error message given when a variable cannot be  found  in  the
namelist  does not give either the name of the variable or the name of
the namelist.

                        **********


[DIAGNOSIS]
 
     No code to do so, although the information is readily available.

                        **********


[CURE]
 
     Add code to print both names.
 
Digital Equipment Corporation       27-OCT-77    Page  76
PCO Log Report


[FILCOM]
File 1)	DSK:FOROTS.MAC	created: 1115 01-DEC-1976
File 2)	DSK:FOROTS.626	created: 1129 02-DEC-1976
 
1)1		TITLE FOROTS %5.(625) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	1-DEC-76
****
2)1		TITLE FOROTS %5.(626) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	1-DEC-76
**************
1)1	VEDIT==625		;MAJOR EDIT NUMBER
1)	VMINOR==00		;MINOR EDIT NUMBER
****
2)1	VEDIT==626		;MAJOR EDIT NUMBER
2)	VMINOR==00		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;626	-----	CHANGE DATA ERROR 11 IN ER%DAT IN FORERR TO
2)	;		SPECIFY NAMELIST NAME AND INVALID VARIABLE NAME
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page  77
PCO Log Report


[FILCOM]
File 1)	DSK:FORERR.MAC	created: 1121 27-OCT-1976
File 2)	DSK:FORERR.626	created: 1129 02-DEC-1976
 
1)1		TITLE	FORERR	%5(612) ERROR PROCESSING MODULE FOR THE
	FOROTS SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW		
	26-OCT-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
****
2)1		TITLE	FORERR	%5(626) ERROR PROCESSING MODULE FOR THE
	FOROTS SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW/SWG	
		1-DEC-76
2)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
**************
1)1	;*** END OF REVISION HISTORY ******
****
2)1	;626	-----	CHANGE DATA ERROR 11 TO SPECIFY NAMELIST NAME
2)	;		AND INVALID VARIABLE NAME
2)	;*** END OF REVISION HISTORY ******
**************
1)1	VEDIT==612		;MAJOR EDIT NUMBER
1)	VMINOR==0		;MINOR EDIT NUMBER
****
2)1	VEDIT==626		;MAJOR EDIT NUMBER
2)	VMINOR==0		;MINOR EDIT NUMBER
**************
1)1	XWD ER.HDR!ER.DDB!ER.MSG,^_
1)	[FIVBIT (Variable cannot be found in NAMELIST block)]	;(11)
1)	XWD ER.HDR!ER.MSG,^_
****
2)1	;**;[626] CHANGE XWD AT DATTAB+15 SWG 1-DEC-1976
2)	XWD ER.HDR!ER.DDB,DAT11			;[626] (11)
2)	XWD ER.HDR!ER.MSG,^_
**************
1)1	DAT15:	TYPSTR	DAT15M		;[347] TYPE THE MESSAGE
****
2)1	;**; [626] INSERT AT DAT15-1 SWG 1-DEC-1976
2)	DAT11:	TYPSTR	DAT11A			;[626] PRINT 1ST PRT OF
	MESSAGE
2)		OUTSTR	[ASCII / /]		;[626] A SPACE
2)		MOVE	T1,-10(P)		;[626] OFFENDING NAME IS
	 10 FRAMES FROM TOP OF STACK
2)						;[626] *** BE CAREFUL OF
	 THIS REF OF R17
2)		PUSHJ	P,TY%SIX		;[626] TYPE IT OUT
2)		OUTSTR	[ASCII / /]		;[626] A SPACE
2)		TYPSTR	DAT11B			;[626] REST OF MESSAGE
Digital Equipment Corporation       27-OCT-77    Page  78
PCO Log Report


2)		OUTSTR	[ASCII / /]		;[626] SPACE BEFORE NAME
	LIST NAME
2)		MOVE	T1,@P2			;[626] P2 POINTS TO NAME
	LIST NAME
2)		PUSHJ	P,TY%SIX		;[626] PRINT IT OUT
2)		POPJ	P,			;[626] RETURN
2)	DAT11A:	FIVBIT	(Variable )		;[626]
2)	DAT11B:	FIVBIT	( cannot be found in NAMELIST block )	;[626] R
	EST OF MESSAGE
2)	DAT15:	TYPSTR	DAT15M		;[347] TYPE THE MESSAGE
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page  79
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-249*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         4B(460)+535+540, TESTED IN 5(626)

[Date Entered]          06-DEC-76

[Programmer]            HOUDE

[Routines]              FOROTS

[Key Words]             CONTROL-C   CLOSE       APPEND      DEV ADDR C

[Source Before Edit]    %5   (000626)

[Source After Edit]     %5   (000627)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-21476
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page  80
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
     If the user is attempting to append to a nonexistent or null file
and  control-C's  out  of his program before a complete block has been
added to his file and then gives the monitor command CLOSE,  a  device
address  check  will result.  This happens whether or not edit 535 has
been installed in FOROTS.

                        **********


[DIAGNOSIS]
 
     The dummy OUT added by edit 535 occurs after an explicit test  is
made for a null file and is not executed in that case.  If the file to
be appended to does not exist, a null file has been  created,  so  the
dummy OUT is also not executed in that case.

                        **********


[CURE]
 
     Move the test for a null file which requires no file positioning
to after the dummy OUT.
 
Digital Equipment Corporation       27-OCT-77    Page  81
PCO Log Report


[FILCOM]
File 1)	DSK:FOROTS.MAC	created: 1129 02-DEC-1976
File 2)	DSK:FOROTS.627	created: 1112 06-DEC-1976
 
1)1		TITLE FOROTS %5.(626) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	1-DEC-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5.(627) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	6-DEC-76
2)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
**************
1)1	VEDIT==626		;MAJOR EDIT NUMBER
1)	VMINOR==00		;MINOR EDIT NUMBER
****
2)1	VEDIT==627		;MAJOR EDIT NUMBER
2)	VMINOR==00		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;627	21476	ALLOW ^C AND .CLOSE WHEN APPENDING TO A NULL FIL
	E
2)	;**************** END OF REVISION HISTORY
**************
1)1		SKIPN	T4		;CHECK FOR A NULL FILE
1)		JUMPE	T5,OPEND0	;AND A NULL WORD COUNT
1)	;**; [535] INSERT @ OPEND8 + 9L	CLRH	26-APR-76
****
2)1	;**; [627] AT OPEND8+8L, MOVE NEXT TWO LINES TO BE AFTER EDIT 53
	5
2)	;**; [627]	CLRH	6-DEC-76
2)	;**; [535] INSERT @ OPEND8 + 9L	CLRH	26-APR-76
**************
1)1	;**; [540]	INSERT @ OPEND8 + 13 1/2 L	CLRH	4-MAY-76
****
2)1	;**; [627] INSERT TWO LINES MOVED FROM OPEND8+8L HERE
2)	;**; [627] OPEND8+14L AFTER 535 AND BEFORE 540	CLRH	6-DEC-76
2)		SKIPN	T4		;[627] CHECK FOR A NULL FILE
2)		JUMPE	T5,OPEND0	;[627] AND A NULL WORD COUNT
2)	;**; [540]	INSERT @ OPEND8 + 13 1/2 L	CLRH	4-MAY-76
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page  82
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-250*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         4B(460), TESTED IN 5(627)

[Date Entered]          06-DEC-76

[Programmer]            HOUDE

[Routines]              FOROTS

[Key Words]             DISPOSE     DELETE      RENAME      %FRSOPN

[Source Before Edit]    %5   (000627)

[Source After Edit]     %5   (000630)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-QAR951
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page  83
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
     If the RENAME UUO to delete a file for DISPOSE='DELETE' fails for
some  reason  other than not being able to find the file, you will get
IO TO UNASSIGNED CHANNEL.

                        **********


[DIAGNOSIS]
 
     The code in CLSDEL does not know that if the RENAME fails because
of  some reason other than file not found, OPENER gets called from the
error routine in FORERR and will do a skip return.  Thus, the PUSH  at
CLSDEL+3 does not always cause a branch to CLOS%R.  If OPENER caused a
skip return, control  will  fall  into  CLOS.Q  and  cause  an  IO  TO
UNASSIGNED  CHANNEL  at  the  first  LOOKUP, since OPENER releases the
channel.

                        **********


[CURE]
 
     Insert two copies of the PJRST CLOS%R in CLSDEL  to  account  for
the possibility of a skip return.
 
Digital Equipment Corporation       27-OCT-77    Page  84
PCO Log Report


[FILCOM]
File 1)	DSK:FOROTS.MAC	created: 1112 06-DEC-1976
File 2)	DSK:FOROTS.630	created: 1752 06-DEC-1976
 
1)1		TITLE FOROTS %5.(627) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	6-DEC-76
****
2)1		TITLE FOROTS %5.(630) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	6-DEC-76
**************
1)1	VEDIT==627		;MAJOR EDIT NUMBER
1)	VMINOR==00		;MINOR EDIT NUMBER
****
2)1	VEDIT==630		;MAJOR EDIT NUMBER
2)	VMINOR==00		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;630	QAR951	AVOID IO TO UNASSIGNED CHANNEL IF RENAME UUO TO
2)	;			DELETE A FILE WITH DISPOSE='DELETE' LOSE
	S
2)	;**************** END OF REVISION HISTORY
**************
1)1	IFN QUEUER,<
****
2)1	;**; [630] INSERT BEFORE CLOS.Q	CLRH	6-DEC-76
2)		PJRST	CLOS%R		;[630] IF THE RENAME LOST AND
2)					;[630] NOT BECAUSE FILE WAS NOT
	FOUND,
2)	;				;[630] OPENER WILL DO A SKIP RET
	URN
2)					;[630] SO THE PUSH ABOVE WILL CA
	USE US
2)					;[630] TO END UP IN CLOS.Q
2)	IFN QUEUER,<
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page  85
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-251*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         4B(460), TESTED IN 5(630)

[Date Entered]          16-DEC-76

[Programmer]            HOUDE

[Routines]              FORPLT    FOROTS

[Key Words]             SCALE       XMIN        ZERO DIVID  PLOT

[Source Before Edit]    %5   (000630)

[Source After Edit]     %5   (000631)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-21591
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page  86
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
     If the smallest value passed in a call to  the  SCALE  subroutine
divided  by  the  DX  value  calculated  is  zero when converted to an
integer, it will be set to the negative of the DX value.   If  all  of
the  values  to  be  scaled  are equal, SCALE will divide by zero when
scaling them.

                        **********


[DIAGNOSIS]
 
     The test for when to subtract one to simulate  a  floor  function
using  truncation  included  zero  as  well  as  negative  values.  No
provision was made to scale arrays whose values are all equal.

                        **********


[CURE]
 
     Correct the test for the  floor  function.   Add  code  to  scale
values  which  are  all  equal  to the middle of the range, unless the
values are all zero.  Scale zero values on a range  of  from  zero  to
twenty (this figure is arbitrary).
 
Digital Equipment Corporation       27-OCT-77    Page  87
PCO Log Report


[FILCOM]
File 1)	DSK:FOROTS.MAC	created: 1752 06-DEC-1976
File 2)	DSK:FOROTS.631	created: 1504 16-DEC-1976
 
1)1		TITLE FOROTS %5.(630) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	6-DEC-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5.(631) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	16-DEC-76
2)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
**************
1)1	VEDIT==630		;MAJOR EDIT NUMBER
1)	VMINOR==00		;MINOR EDIT NUMBER
****
2)1	VEDIT==631		;MAJOR EDIT NUMBER
2)	VMINOR==00		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;631	21591	FIX SCALE IN FORPLT SO XMIN GETS SET RIGHT IF
2)	;			INT(LOWEST VALUE/DX)=0, AND PREVENT ZERO
2)	;			DIVIDES WHEN ALL VALUES TO BE SCALED ARE
2)	;			EQUAL BY ARBITRARILY SETTING UP THE SCAL
	ING.
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page  88
PCO Log Report


[FILCOM]
File 1)	DSK:FORPLT.MAC	created: 1650 18-NOV-1976
File 2)	DSK:FORPLT.631	created: 1503 16-DEC-1976
 
1)1		TITLE AXIS	%5.(623)
1)		SUBTTL D.TODD	/DRT/MD/CLRH/MEB		18-NOV-7
	6
1)		SEARCH	FORPRM
****
2)1		TITLE AXIS	%5.(631)
2)		SUBTTL D.TODD	/DRT/MD/CLRH/MEB		16-DEC-7
	6
2)		SEARCH	FORPRM
**************
1)1	;*************** END OF REVISION HISTORY *******************
****
2)1	;631	21591	SET XMIN PROPERLY IF INT(LOWEST X/DX)=0, AND
2)	;			SET AN ARBITRARY XMIN AND A DX IF ALL
2)	;			THE VALUES TO BE SCALED ARE EQUAL
2)	;			(THIS AVOIDS DIVIDING BY ZERO).
2)	;*************** END OF REVISION HISTORY *******************
**************
1)1	TITLE	SCALE	%5.(623) PLOT SUBPROGRAM
1)	SUBTTL	R CLEMENTS/DMN/HPW/CLRH		18-NOV-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
****
2)1	TITLE	SCALE	%5.(631) PLOT SUBPROGRAM
2)	SUBTTL	R CLEMENTS/DMN/HPW/CLRH		16-DEC-76
2)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
**************
1)1	;*** END OF REVISION HISTORY ***
****
2)1	;631	21591	FIX XMIN WHEN INT(LOWEST X/DX)=0, AND AVOID DIVI
	DING
2)	;			BY ZERO WHEN ALL THE VALUES TO BE SCALED
2)	;			ARE THE SAME.
2)	;*** END OF REVISION HISTORY ***
**************
1)1		MOVE A,XMAX
****
2)1	;**; [631] INSERT @ L1+6 1/2	CLRH	16-DEC-76
2)		CAMN	XMIN,XMAX	;[631] ALL VALUES WERE THE SAME?
2)		JRST	[SKIPN	XMAX		;[631] YES, WERE THEY AL
	L ZERO?
2)			MOVE	XMAX,[10.0]	;[631] ARBITRARILY SET A
	 MAX.
2)			FMPR	XMAX,[2.0]	;[631] DOUBLE VALUE FOR
	MAX
2)			MOVEI	XMIN,0		;[631] AND ZERO FOR MIN
Digital Equipment Corporation       27-OCT-77    Page  89
PCO Log Report


2)			SKIPGE	XMAX		;[631] UNLESS VALUE WAS
	NEG.
2)			EXCH	XMIN,XMAX	;[631] SWITCH VALUES IF
	NEG.
2)			JRST	.+1	]	;[631] AND CONTINUE
2)		MOVE A,XMAX
**************
1)1		JUMPG	P3P		;[243] WAS XMIN/DX NEGATIVE
1)		CAME	XMAX		;[243] AND NON INTEGRAL
****
2)1	;**; [631] CHANGE @ P3P-3L	CLRH	16-DEC-76
2)		JUMPGE	P3P		;[631] [243] WAS XMIN/DX NEGATIV
	E
2)		CAME	XMAX		;[243] AND NON INTEGRAL
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page  90
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-252*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         4B(460)

[Date Entered]          22-DEC-76

[Programmer]            SUE GODSELL

[Routines]              FORPLT

[Key Words]             PLOTS       STPSIZ      STEPSIZE    INCH

[Source Before Edit]    %5   (000631)

[Source After Edit]     %5   (000632)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   Y
                        SER/SPR Number:10-
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page  91
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
     There is no way to specify to the plot routines that the  plotter
being  used  has  a stepsize which is different from one hundred steps
per inch.  Common plotters use one hundred steps per inch, two hundred
steps  per  inch,  and one hundred steps per centimeter (254 steps per
inch).

                        **********


[DIAGNOSIS]
 
     There is no code to do so.

                        **********


[CURE]
 
     Implement an optional second argument to  the  PLOTS  subroutine,
which  must  be  called  to  initialize  the plot routines anyway.  If
present, the second argument will be used  for  the  stepsize  of  the
plotter,  as a floating-point value indicating the number of steps per
inch.  If this value is not given, the default will remain one hundred
steps  per  inch  (this  default  may  be changed by patching location
STPSIZ in FORPLT).
 
Digital Equipment Corporation       27-OCT-77    Page  92
PCO Log Report


[FILCOM]
File 1)	DSKB:FOROTS.MAC[30,4574]	created: 1504 16-DEC-1976
File 2)	DSKB:FOROTS.632[30,4574]	created: 1701 20-DEC-1976
 
1)1		TITLE FOROTS %5.(631) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	16-DEC-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5.(632) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	17-DEC-76
2)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
**************
1)1	VEDIT==631		;MAJOR EDIT NUMBER
1)	VMINOR==00		;MINOR EDIT NUMBER
****
2)1	VEDIT==632		;MAJOR EDIT NUMBER
2)	VMINOR==00		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;632	-----	FIX PLOTS IN FORPLT TO ACCEPT OPTIONAL SECOND
2)	;			ARGUMENT WHICH IS STEP SIZE
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page  93
PCO Log Report


[FILCOM]
File 1)	DSKB:FORPLT.MAC[30,4574]	created: 1554 16-DEC-1976
File 2)	DSKB:FORPLT.632[30,4574]	created: 1427 22-DEC-1976
 
1)1	;*************** END OF REVISION HISTORY *******************
****
2)1	;632	-----	MODIFICATION TO PLOTS TO ALLOW FOR
2)	;			DIFFERENT STEP SIZE PLOTTER
2)	;*************** END OF REVISION HISTORY *******************
**************
1)1		TITLE	PLOT	%5.(623) PLOT SUBROUTINES
1)		SUBTTL	D. TODD /DRT/HPW/CLRH	24-SEP-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
****
2)1		TITLE	PLOT	%5.(632) PLOT SUBROUTINES
2)		SUBTTL	D. TODD /DRT/HPW/CLRH/SWG	17-DEC-76
2)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
**************
1)1	;**; [555] INSERT @ PLOTS + 21 1/2	CLRH	14-JUN-76
1)		MOVE	1,SV0+1		;[555]
1)		SETZM	@0(Q)		;MARK SUCCESS
1)		FUNCT	PLOT,<X,Y,[-3]>	;LIFT PEN
****
2)1		SETZM	@0(Q)		;MARK SUCCESS
2)	;**; [632] INSERT AT PLOTS +33	SWG	17-DEC-76
2)	IFN F40LIB <
2)		TLNN	Q,-1		;[632] F40 CALL?
2)		JRST	F10C		;[632] NO F10 CALL
2)		MOVE	T1,1(Q)		;[632] GET 2ND ARG ADDR
2)		TLC	T1,(<JUMP>)	;[632] IS THE OPCODE OF
2)		TLNN	T1,777000	;[632] 2ND ARG A JUMP?
2)		JRST	STPST		;[632] GO CHANGE STEPSIZE
2)		JRST	RONE		;[632] NO ONLY ONE ARG
2)	>				;[632]
2)	F10C:	HLRE	T1,-1(Q)	;[632] GET ARG COUNT
2)		MOVNS	T1		;[632] NEGATE IT
2)		CAIG	T1,1		;[632] MORE THAN ONE ARG?
2)		JRST	RONE		;[632] NO - CONTINUE AS USUAL
2)	STPST:	MOVE	T1,@1(Q)	;[632] GET SECOND ARG = STEPSIZE
2)		MOVEM	T1,STPSIZ	;[632] SET STEPSIZE
2)	RONE:	MOVE	1,SV0+1		;[632] RESTORE REG 1
2)		FUNCT	PLOT,<X,Y,[-3]>	;LIFT PEN
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page  94
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-253*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         4B(460), TESTED IN 5(634)

[Date Entered]          30-DEC-76

[Programmer]            SUE GODSELL

[Routines]              FOROTS

[Key Words]             DISPOSE     DELETE      OPEN        REWIND

[Source Before Edit]    %5   (000634)

[Source After Edit]     %5   (000635)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-QAR
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page  95
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
     DISPOSE parameters to the OPEN statement are ignored if the  file
is rewound as the last operation using that file before the end of the
program.

                        **********


[DIAGNOSIS]
 
     The REWIND statement makes  the  file  appear  to  be  closed  by
turning  off the IO.OPN bit in register P3.  The DISPOSE arguments are
not processed if the file appears to already be closed.

                        **********


[CURE]
 
     Test for P3 being zero to see whether or not the file is actually
closed.
 
Digital Equipment Corporation       27-OCT-77    Page  96
PCO Log Report


[FILCOM]
File 1)	DSKC:FOROTS.MAC[30,4574]	created: 1411 22-DEC-1976
File 2)	DSKC:FOROTS.635[30,4574]	created: 1446 30-DEC-1976
 
1)1		TITLE FOROTS %5.(634) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	22-DEC-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5.(635) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	30-DEC-76
2)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
**************
1)1	VEDIT==634		;MAJOR EDIT NUMBER
1)	VMINOR==00		;MINOR EDIT NUMBER
****
2)1	VEDIT==635		;MAJOR EDIT NUMBER
2)	VMINOR==00		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;635	QA870	FIX OPEN(DISPOSE=DELETE),REWIND,END SO
2)	;			THAT FILE WILL BE DELETED AT EXIT TIME
2)	;**************** END OF REVISION HISTORY
**************
1)1	RELE%%::TLNE	P3,IO.OPN	;[331] IS THE CHANNEL OPEN
1)		PJRST	CLOS%%		;[331] YES CLOSE AND RELEASE
****
2)1	;**;[635] CHANGE  AT RELE%%	SWG	30-DEC-76
2)	RELE%%::SKIPE	P3		;[635][331] IS THE CHANNEL OPEN
2)		PJRST	CLOS%%		;[331] YES CLOSE AND RELEASE
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page  97
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-254*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         4B(460)+502+510+520+530+545+564+610

[Date Entered]          10-JAN-77

[Programmer]            HOUDE

[Routines]              FORERR    FOROTS

[Key Words]             T FORMAT    ILL CHAR    ILL MEM RE  ERR=

[Source Before Edit]    %5   (000635)

[Source After Edit]     %5A  (000636)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-Q1037
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page  98
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
     If an illegal character is  found  during  ASCII  input  and  the
FORMAT  statement in control contains a T format descriptor, the error
handling routines in FORERR will ILL MEM REF or loop.

                        **********


[DIAGNOSIS]
 
     FORERR does not understand string buffers and attempts  to  treat
them like real buffers.

                        **********


[CURE]
 
     If the string buffer bit (IO.STR)  is  set  in  P3,  the  illegal
character was in a string buffer and must be handled as a special case
in DAT7.   Also,  the  string  must  be  gotten  rid  of  before  ERR=
processing is done at ERRBS in FOROTS.
 
Digital Equipment Corporation       27-OCT-77    Page  99
PCO Log Report


[FILCOM]
File 1)	DSKC:FOROTS.MAC[30,4574]	created: 1446 30-DEC-1976
File 2)	DSKB:FOROTS.636[30,4574]	created: 1012 10-JAN-1977
 
1)1		TITLE FOROTS %5.(635) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	30-DEC-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
1)		MLON
****
2)1		TITLE FOROTS %5A.(636) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	6-JAN-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
2)		MLON
**************
1)1	VEDIT==635		;MAJOR EDIT NUMBER
1)	VMINOR==00		;MINOR EDIT NUMBER
1)	VWHO==0			;WHO EDITED LAST
****
2)1	VEDIT==636		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
2)	VWHO==0			;WHO EDITED LAST
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;636	Q1037	FIX FORERR FOR ILLEGAL CHARACTER IN DATA WITH T
	FORMAT
2)	;**************** END OF REVISION HISTORY
**************
1)1	SETSTR:
****
2)1	;**; [636] INSERT BEFORE SETSTR	CLRH	7-JAN-77
2)		INTERNAL	DMPSTR	;[636] CALLED FROM FORERR (DAT7)
2)	SETSTR:
**************
1)1		PUSHJ	P,BSREAD	;[564] DO BACKSPACE
****
2)1	;**; [636] INSERT @ ERRBS+1 1/2 (IN EDIT 610) CLRH 10-JAN-77
2)		MOVE	G3,DD.STS(P3)	;[636] GET DEVCHR WORD
2)		TLNN	P3,IO.STR	;[636] STRING BUFFERS?
2)		JRST	.+3		;[636] NO, SKIP THIS
2)		TLZ	P3,IO.BSE	;[636] TURN OFF FLAG
2)		PUSHJ	P,DMPSTR	;[636] GET RID OF STRING
2)		PUSHJ	P,BSREAD	;[564] DO BACKSPACE
**************
 
Digital Equipment Corporation       27-OCT-77    Page 100
PCO Log Report


[FILCOM]
File 1)	DSKB:FORERR.MAC[30,4574]	created: 1129 02-DEC-1976
File 2)	DSKB:FORERR.636[30,4574]	created: 1405 07-JAN-1977
 
1)1		TITLE	FORERR	%5(626) ERROR PROCESSING MODULE FOR THE
	FOROTS SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW/SWG	
		1-DEC-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
1)		SUBTTL	REVISION HISTORY
****
2)1		TITLE	FORERR	%5(636) ERROR PROCESSING MODULE FOR THE
	FOROTS SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW/SWG	
		6-JAN-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
2)		SUBTTL	REVISION HISTORY
**************
1)1	;*** END OF REVISION HISTORY ******
****
2)1	;636	Q1037	FIX DAT7 TO UNDERSTAND ILLEGAL CHARACTER IN DATA
	 WITH
2)	;			T FORMAT
2)	;*** END OF REVISION HISTORY ******
**************
1)1		TLNE	P3,IO.EDC	;[277] IN CASE OF ENCODE/DECODE
****
2)1	;**; [636] INSERT @ DAT7G+1/2	CLRH	6-JAN-77
2)		TLNE	P3,IO.STR	;[636] ARE WE IN A STRING BUFFER
	?
2)		JRST	DAT7H		;[636] YES, HANDLE SEPARATELY
2)		TLNE	P3,IO.EDC	;[277] IN CASE OF ENCODE/DECODE
**************
1)1	;**; [626] INSERT AT DAT15-1 SWG 1-DEC-1976
****
2)1	;**; [636] INSERT AFTER DAT7A	CLRH	6-JAN-77
2)	DAT7H:	HLRZ	T1,T1		;[636] GET FIRST STRING BUFFER
2)		HLRZ	T3,0(T1)	;[636] GET WORD COUNT OF FIRST S
	TRING
2)		MOVE	T4,T1		;[636] SAVE LINK WORD TO NEXT ST
	RING
2)		SUBI	T3,3		;[636] SUBTRACT LENGTH OF REAL H
	EADER
2)		ADDI	T1,3		;[636] MOVE UP TO REAL BUFFER
2)		SETZ	T2,		;[636] CLEAR CHARACTER COUNT
2)	DAT7I:	HRRZI	T1,1(T1)	;[636] MOVE TO FIRST DATA WORD
2)		SUBI	T3,1		;[636] ACCOUNT FOR IT IN WORD CO
	UNT
2)		IMULI	T3,5		;[636] CONVERT TO ASCII BYTES
Digital Equipment Corporation       27-OCT-77    Page 101
PCO Log Report


2)		TLO	T1,440700	;[636] MAKE BYTE POINTER
2)	DAT7J:	ILDB	T0,T1		;[636] GET A CHARACTER
2)		OUTCHR	T0		;[636] OUTPUT IT
2)		CAMN	T1,DD.HRI+1(P3)	;[636] IS THIS THE CHARACTER?
2)		PUSH	P,T2		;[636] YES, SAVE POSITION
2)		AOS	T2		;[636] INCREMENT COLUMN COUNTER
2)		SOJG	T3,DAT7J	;[636] LOOP ON THIS STRING
2)		HRRZ	T4,0(T4)	;[636] GET NEXT STRING
2)		MOVE	T1,T4		;[636] SET UP NEW POINTER
2)		HLRZ	T3,0(T4)	;[636] GET LENGTH FIELD OF NEXT
	STRING
2)		SKIPE	T4		;[636] IF ANY
2)		JRST	DAT7I		;[636] LOOP UNTIL NO MORE STRING
	S
2)		POP	P,T2		;[636] RETRIEVE CHARACTER COUNT
2)		CAIE	T0,12		;[636] LINEFEED ALREADY?
2)		OUTSTR	[ASCIZ /
2)	/]				;[636] NO, OUTPUT ONE
2)		PUSHJ	P,MARKCH	;[636] MARK BAD CHARACTER
2)		PUSHJ	P,DMPSTR##	;[636] GET RID OF STRING
2)		JRST	SYSRET		;[636] TAKE SYSTEM RETURN
2)	;**; [626] INSERT AT DAT15-1 SWG 1-DEC-1976
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 102
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-255*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(636)

[Date Entered]          18-JAN-77

[Programmer]            SUE GODSELL

[Routines]              RAN

[Key Words]             RAN         A=0

[Source Before Edit]    %5A  (000636)

[Source After Edit]     %5A  (000637)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 103
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
Register 0  is  named  A  in  the  random  number  generator
function,  RAN.   A  HLRI  instruction on A,0 was translated
into HLRI A,A.   When  people  copy  the  code  and  put  in
different  register  names,  if  register  A  is  NOT 0, the
algorithm does not work.
 

                        **********


[DIAGNOSIS]
 
 The immediate value in the HLRI should be 0 not A.
 

                        **********


[CURE]
 
 Fix it.
 
Digital Equipment Corporation       27-OCT-77    Page 104
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 0759 13-JAN-1977
File 2)	DSKC:FOROTS.MAC[31,4775]	created: 0944 18-JAN-1977
 
1)1		TITLE FOROTS %5A(636) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	6-JAN-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(637) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	18-JAN-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==636		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==637		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;637	-----	CHANGE TO RANDOM NO GENERATOR - FIX SO THAT 'Y'
	PART OF
2)	;			HRLI INSTRUCTION IS 0 RATHER THAN MNEMON
	IC
2)	;			FOR REGISTER 0.
2)	;**************** END OF REVISION HISTORY
**************
 
1)1	TITLE	RAN	%4.(120) ;FROM LIB40 VERSION V.032(323)	GENERATE
	 RANDOM NUMBER FUNCTION
1)	SUBTTL  24-OCT-1971     BRUNO G. DUERR/KK/TWE
1)	;***COPYRIGHT 1972,1973,1976,1977 DIGITAL EQUIPMENT CORP., MAYNA
	RD, MASS. ***
****
2)1	TITLE	RAN	%5A.(637) ;FROM LIB40 VERSION V.032(323)	
	GENERATE RANDOM NUMBER FUNCTION
2)	SUBTTL  18-JAN-1977     BRUNO G. DUERR/KK/TWE/SWG
2)	;***COPYRIGHT 1972,1973,1976,1977 DIGITAL EQUIPMENT CORP., MAYNA
	RD, MASS. ***
**************
1)1		HRLI A,A	;BITS
1)		FSC A,174
****
2)1	;**;	[637] CHANGE AT K-4	SWG	18-JAN-77
2)		HRLI A,0	;[637] BITS
2)		FSC A,174
**************
Digital Equipment Corporation       27-OCT-77    Page 105
PCO Log Report



[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 106
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-256*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(637)

[Date Entered]          18-JAN-77

[Programmer]            SUE GODSELL

[Routines]              FORPRM    FORPLT

[Key Words]             PLOT        PLOTTER     STEP SIZE   STPSIZ

[Source Before Edit]    %5A  (000637)

[Source After Edit]     %5A  (000640)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 107
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
The step size for plotters on the -20 differs from  that  of
those  on  the  -10.  On the -20 the size is 254.0 steps per
inch, and on the -10 the number is 100.0.
 

                        **********


[DIAGNOSIS]
 
The initial value of the step size is set  in  the  variable
STPSIZ  in  the  PLOTS  routine.  It needs to be initialized
differently depending upon which system the routine is being
assembled for.
 

                        **********


[CURE]
 
Add an F20LIB switch to FORPRM and test it in PLOTS for  the
setting  of  STPSIZ.   For the -10, a value of 100.0 will be
assembled, and for the -20, a value of 254.0.
 
Digital Equipment Corporation       27-OCT-77    Page 108
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 0944 18-JAN-1977
File 2)	DSKC:FOROTS.MAC[31,4775]	created: 1301 18-JAN-1977
 
1)1		TITLE FOROTS %5A(637) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	18-JAN-77
****
2)1		TITLE FOROTS %5A(640) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	18-JAN-77
**************
1)1	VEDIT==637		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==640		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;640	-----	ADD F20LIB SWITCH TO FORPRM AND MODIFY
2)	;				PLOTS TO ASSEMBLE VALUE
2)	;				OF STPSIZE CONDITIONALLY UPON
2)	;				F20LIB SWITCH.
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page 109
PCO Log Report


[FILCOM]
File 1)	LIB:FORPRM.MAC[31,4650]	created: 0831 17-DEC-1976
File 2)	DSKC:FORPRM.MAC[31,4577]	created: 0828 19-JAN-1977
 
1)1		UNIVERSAL FORPRM %5(616) - FOROTS UNIVERSAL PARAMETER FI
	LE
1)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW	8-NOV-76
1)		PASS2		;SAVE PRINT OUT ON PASS 2
****
2)1		UNIVERSAL FORPRM %5A(640) - FOROTS UNIVERSAL PARAMETER F
	ILE
2)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW/SWG	
	18-JAN-77
2)		PASS2		;SAVE PRINT OUT ON PASS 2
**************
1)1	VEDIT==616		;EDIT NUMBER
1)	VMINOR==0		;MINOR VERSION NUMBER
1)	VWHO==0			;WHO EDITED LAST
****
2)1	VEDIT==640		;EDIT NUMBER
2)	VMINOR==1		;MINOR VERSION NUMBER
2)	VWHO==0			;WHO EDITED LAST
**************
1)1	;*** END OF REVISION HISTORY ******
****
2)1	;640	-----	ADD F20 SWITCH TO ALLOW FOR CONDITIONAL COMPILAT
	ION
2)	;			OF PLOTTER STEP SIZE IN FORPLT.
2)	;*** END OF REVISION HISTORY ******
**************
1)1		IFN F40LIB,<%V1==-1>		;VERSION 1 CODE REQUIRED
	 FOR F40 COMPILER
****
2)1	;**;	[640]	ADD ASSEMBLY OPTION PARAMETER FOR -20	SWG 18-J
	AN-77
2)		IFNDEF F20LIB,<F20LIB==0>	;[640]ASSEMBLE LIBRARY F
	OR F20
2)		IFN F40LIB,<%V1==-1>		;VERSION 1 CODE REQUIRED
	 FOR F40 COMPILER
**************
1)1		PAGE
****
2)1	;**;	[640]	ADD MESSAGE TO USER ASSEMBLNG LIB   SWG	18-JAN-7
	7
2)	IFN F20LIB,<PRINTX ASSEMBLING FORTRAN 20 LIBRARY>	;[640]
2)		PAGE
**************
 
Digital Equipment Corporation       27-OCT-77    Page 110
PCO Log Report


[FILCOM]
File 1)	LIB:FORPLT.MAC[31,4650]	created: 0803 13-JAN-1977
File 2)	DSKC:FORPLT.MAC[31,4775]	created: 1309 18-JAN-1977
 
1)1		TITLE	PLOT	%5.(632) PLOT SUBROUTINES
1)		SUBTTL	D. TODD /DRT/HPW/CLRH/SWG	17-DEC-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS. ***
****
2)1		TITLE	PLOT	%5.(640) PLOT SUBROUTINES
2)		SUBTTL	D. TODD /DRT/HPW/CLRH/SWG	18-JAN-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS. ***
**************
1)1	STPSIZ:	DEC 100.0	;STEPS PER INCH
1)		PRGEND
****
2)1	;**;[640] ADD AT STPSIZ-1 AND STPSIZ+1	SWG	18-JAN-77
2)	IFE F20LIB <		;[640] DEFAULT FOR -10 IS 100
2)	STPSIZ:	DEC 100.0	;STEPS PER INCH
2)	>			;[640]
2)	IFN F20LIB <		;[640] DEFAULT FOR -20 IS 254
2)	STPSIZ:	DEC 254.0	;[640] STEPS PER INCH
2)	>			;[640]
2)		PRGEND
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 111
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-257*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(640)

[Date Entered]          24-JAN-77

[Programmer]            SUE GODSELL

[Routines]              FORJAK

[Key Words]             FORSE.      ENTRY       INTERN

[Source Before Edit]    %5A  (000640)

[Source After Edit]     %5A  (000641)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-21699
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 112
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
For those poor sites still converting from FORSE to
FOROTS would you please consider changing the
definition of FORSE entry points defined in FORJAK
from INTERNs to ENTRYs.  Thank you.
 

                        **********


[DIAGNOSIS]
 
This seems like a reasonable thing to do.
 

                        **********


[CURE]
 
Fix it.
 
Digital Equipment Corporation       27-OCT-77    Page 113
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1301 18-JAN-1977
File 2)	DSKC:FOROTS.MAC[31,4775]	created: 1654 20-JAN-1977
 
1)1		TITLE FOROTS %5A(640) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	18-JAN-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(641) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	20-JAN-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==640		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==641		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;641	21699	CHANGE DEFINITIONS OF FORSE ENTRY POINTS IN
2)	;		FORJAK FROM INTERNS TO ENTRYS.
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page 114
PCO Log Report


[FILCOM]
File 1)	LIB:FORJAK.MAC[31,4650]	created: 0843 27-OCT-1976
File 2)	DSKC:FORJAK.MAC[31,4775]	created: 1659 20-JAN-1977
 
1)1		TITLE	FORJAK	%5.(611) INTERFACE MODULE BETWEEN OLD F4
	0 AND FOROTS
1)		SUBTTL	D. TODD/HPW/DMN/MD/SJW	26-OCT-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976, DIGITAL EQUIPMENT CORP.,
	 MAYNARD, MASS.***
1)		SUBTTL	REVISION HISTORY
****
2)1		TITLE	FORJAK	%5A(641) INTERFACE MODULE BETWEEN OLD F4
	0 AND FOROTS
2)		SUBTTL	D. TODD/HPW/DMN/MD/SJW/SWG	20-JAN-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS. ***
2)		SUBTTL	REVISION HISTORY
**************
1)1		PAGE
****
2)1	;641	SP21699	CHANGE DEFINITIONS OF FORSE. ENTRY POINTS FROM I
	NTERNS
2)	;		TO ENTRYS.
2)		PAGE
**************
1)1	VEDIT==611		;EDIT NUMBER
1)	VMINOR==0		;MINOR EDIT NUMBER
1)	VWHO==0		;WHO EDITED LAST
****
2)1	VEDIT==641		;EDIT NUMBER
2)	VMINOR==1		;MINOR EDIT NUMBER
2)	VWHO==0		;WHO EDITED LAST
**************
1)1		INTERN ERR.,END.,RECNO.,RANAC.,VADDR.
1)		INTERN MBSR.,NMLST.,MSPR.,TPFCN.,ALLIO.,BINWR.
1)		INTERN	DIRT.,DOUBT.,OCTO.,OCTI.,TFMT.
1)	DIRT.:DOUBT.:OCTO.:OCTI.:TFMT.:
1)		INTERN ALPHO.,ALPHI.,INTI.,INTO.,FLOUT.,DUMMY.,FLIRT.,LI
	NT.,LOUT.
1)	DUMMY.:MBSR.:NMLST.:MSPR.:TPFCN.:ALLIO.:BINWR.:
****
2)1		ENTRY ERR.,END.,RECNO.,RANAC.,VADDR.		;[641]
2)		ENTRY MBSR.,NMLST.,MSPR.,TPFCN.,ALLIO.,BINWR.	;[641]
2)		ENTRY	DIRT.,DOUBT.,OCTO.,OCTI.,TFMT.		;[641]
2)	DIRT.:DOUBT.:OCTO.:OCTI.:TFMT.:
2)		ENTRY ALPHO.,ALPHI.,INTI.,INTO.,FLOUT.,DUMMY.,FLIRT.,LIN
	T.,LOUT.	;[641]
2)	DUMMY.:MBSR.:NMLST.:MSPR.:TPFCN.:ALLIO.:BINWR.:
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 115
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-258*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(643)

[Date Entered]          24-FEB-77

[Programmer]            SUE GODSELL

[Routines]              FORDBL

[Key Words]             DBL EXP     KA

[Source Before Edit]    %5A  (000642)

[Source After Edit]     %5A  (000643)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 116
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
FORDBL gets an undefined variable when compiled for the KA.
 
 

                        **********


[DIAGNOSIS]
 
 
Definition of variable needs to come  before  its  reference
for use in KA double precision macros.
 
 

                        **********


[CURE]
 
 
Move definition of variable.
 
Digital Equipment Corporation       27-OCT-77    Page 117
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1728 21-JAN-1977
File 2)	DSKC:FOROTS.MAC[31,4775]	created: 1054 24-FEB-1977
 
1)1		TITLE FOROTS %5A(642) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	21-JAN-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(643) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	24-FEB-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==642		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==643		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;643	-----	FORDBL(DEXP.3) MOVE ARGAX FOR DMOVE MACRO UNDER
	KA
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page 118
PCO Log Report


[FILCOM]
File 1)	LIB:FORDBL.MAC[31,4650]	created: 1607 11-JAN-1977
File 2)	DSKC:FORDBL.MAC[31,4775]	created: 1053 24-FEB-1977
 
1)1	TITLE	DEXP.3	%5A(624) PDP-10/10I DOUBLE PRECISION EXP.3 FUNCT
	ION
1)	SUBTTL	D. TODD /DRT/SWG	29-NOV-1976
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS. ***
****
2)1	TITLE	DEXP.3	%5A(643) PDP-10/10I DOUBLE PRECISION EXP.3 FUNCT
	ION
2)	SUBTTL	D. TODD /DRT/SWG	24-FEB-1977
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS. ***
**************
1)1	IFN F10LIB,<
****
2)1		;**; [643] DEXP3.-2 INSERT DEF OF ARGAX	SWG	24-FEB-7
	7
2)		ARGAX:	BLOCK	2		;[643]
2)	IFN F10LIB,<
**************
1)1	ARGAX:	BLOCK 2
1)	CSAVE:	BLOCK	1		
****
2)1		 ;**;[643] CSAVE-1 MOVE DEF OF ARGAX ABOVE	SWG	
	24-FEB-77
2)	CSAVE:	BLOCK	1		
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 119
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-259*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(644)

[Date Entered]          03-MAR-77

[Programmer]            SUE GODSELL

[Routines]              FOROPN

[Key Words]             F40LIB      F10LIB

[Source Before Edit]    %5A  (000643)

[Source After Edit]     %5A  (000644)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 120
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
If a FOROTS, assembled with the F40LIB switch turned off, is
linked  with  a  program calling DEFINE FILE or RELEAS, LINK
gets an undefined global symbol for 'CEXIT.'.
 
 

                        **********


[DIAGNOSIS]
 
The error macro ERRF40 in the module FOROPN does a PUSHJ  to
'CEXIT.'.
 
 

                        **********


[CURE]
 
Put the two instructions which are peculiar to F40 inside  a
conditional as HELLO does.
 
Digital Equipment Corporation       27-OCT-77    Page 121
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1054 24-FEB-1977
File 2)	DSKC:FOROTS.MAC[31,4775]	created: 1113 03-MAR-1977
 
1)1		TITLE FOROTS %5A(643) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	24-FEB-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(644) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	3-MAR-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==643		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==644		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;644	-----	CHANGE ERR40 MACRO IN FOROPN TO ACCOMODATE USE W
	ITH
2)	;		F40 LIB SWITCH TURNED OFF.
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page 122
PCO Log Report


[FILCOM]
File 1)	LIB:FOROPN.MAC[31,4650]	created: 0831 17-DEC-1976
File 2)	DSKC:FOROPN.MAC[31,4775]	created: 1116 03-MAR-1977
 
1)1		TITLE FOROPN %5.(556) ROUTINES TO SIMULATE F40 SUBROUTIN
	E CALLS
1)		SUBTTL	D. TODD /DRT/JNG/CLRH	22-JUN-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS. ***
****
2)1		TITLE FOROPN %5A(644) ROUTINES TO SIMULATE F40 SUBROUTIN
	E CALLS
2)		SUBTTL	D. TODD /DRT/JNG/CLRH/SWG	3-MAR-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS. ***
**************
1)1	;********** END OF REVISION HISTORY ****************************
	*******
****
2)1	;644	-----	FIX ERRF40 MACRO TO WORK WHEN F40 LIB SWITCH OFF
2)	;********** END OF REVISION HISTORY ****************************
	*******
**************
1)1	C:	CAIA
1)		PUSH	P,CEXIT.##
1)		MOVEI	T1,.-3
****
2)1	C:
2)	;**;	[644]	INSERT @ C:	SWG	3-MAR-77
2)	IFN F40LIB,<			;[644] MAKE THIS LOOK LIKE HELLO
	 MACRO
2)		CAIA			;[644] BUT CANNOT USE HELLO BECA
	USE
2)		PUSH	P,CEXIT.##	;[644] BECAUSE OF MOVEI
2)	>				;[644]
2)		MOVEI	T1,.-3
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 123
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-260*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(644)

[Date Entered]          08-MAR-77

[Programmer]            SUE GODSELL

[Routines]              FORXIT

[Key Words]             F40LIB SWI  EXIT        NON-FORT P

[Source Before Edit]    %5A  (000644)

[Source After Edit]     %5A  (000645)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 124
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
An undefined global for EXIT.  occurs when  various  library
routines  are linked with a FOROTS and FORLIB assembled with
the F40LIB switch turned off, specifically  a  FORLIB  built
for  the  -20.   This  becomes  a  problem  for  non-FORTRAN
programs using the FORTRAN library.
 
 

                        **********


[DIAGNOSIS]
 
In FORXIT, the entry EXIT is  defined  as  EXIT.   when  the
module  is  assembled  with the F40lib switch off.  However,
EXIT.  is defined only when the F40lib switch is turned on.
 
 

                        **********


[CURE]
 
Change  the  module  so  that  EXIT.   is   always   defined
regardless of the condition of the F40lib switch.
 
Digital Equipment Corporation       27-OCT-77    Page 125
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 0835 04-MAR-1977
File 2)	DSKC:FOROTS.MAC[31,4775]	created: 0935 08-MAR-1977
 
1)1		TITLE FOROTS %5A(644) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	3-MAR-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(645) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	8-MAR-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==644		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==645		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;645	-----	IN FORXIT, TAKE DEFINITION OF EXIT. OUT FROM
2)	;		UNDER F40LIB SWITCH SO IT WILL ALWAYS BE DEFINED
	.
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page 126
PCO Log Report


[FILCOM]
File 1)	LIB:FORXIT.MAC[31,4650]	created: 0832 17-DEC-1976
File 2)	DSKC:FORXIT.MAC[31,4775]	created: 0938 08-MAR-1977
 
1)1		TITLE FORXIT %4.(100)
1)		SUBTTL	D. TODD /DRT/MD     04-SEP-1974
1)	;363	 ----- 	DEFINE CEXIT. FOR NON FORTRAN USE OF LIB ROUTINE
	S
1)	;
****
2)1		TITLE FORXIT %5A(645)
2)		SUBTTL	D. TODD /DRT/MD/SWG     8-MAR-77
2)	;363	 ----- 	DEFINE CEXIT. FOR NON FORTRAN USE OF LIB ROUTINE
	S
2)	;645	-----	TAKE DEFINITION OF EXIT. OUT FROM F40LIB SWITCH
2)	;
**************
1)1	IFN F40LIB,<			;[363]
1)		ENTRY	EXIT.		;[363]
1)	EXIT.:	EXIT			;[363] IF NO FOROTS EXIT.
1)	>				;[363]
1)		END			;[363]
****
2)1	;**; [645] DELETE 1 LINE AT EXIT.-2	SWG	8-MAR-77
2)		ENTRY	EXIT.		;[363]
2)	EXIT.:	EXIT			;[363] IF NO FOROTS EXIT.
2)	;**; [645] DELETE AT EXIT.+1 END OF IFN	SWG	8-MAR-77
2)		END			;[363]
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 127
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-261*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(645)

[Date Entered]          21-MAR-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    CLOS.Q

[Key Words]             QMANGR      PPN

[Source Before Edit]    %5A  (000645)

[Source After Edit]     %5A  (000646)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-22428
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 128
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
Closing a file with DISPOSE='PRINT' results in LPTSPL saying "can't find
file[0,0]".
 

                        **********


[DIAGNOSIS]
 
When FOROTS goes to queue the file for printing, it checks DD.PPN in the
device  data  block of the file to see if a ppn or a path was specified.
Edit 617 fixed the LOOKUP routine to NOT put the ppn in DD.PPN but leave
it  as  it  was  specified on the OPEN.  If no ppn was specified, DD.PPN
will be 0.  Passing a ppn of 0 to QMANGR as the file's  ppn  results  in
LPTSPL looking for the file on [0,0] and not finding it.
 

                        **********


[CURE]
 
The entire path for the file (not just the ppn)  must  be  specified  to
QMANGR to let LPTSPL print the file.  Therefore, put in a PATH.  uuo and
give QMANGR the entire path.
 
Digital Equipment Corporation       27-OCT-77    Page 129
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 0935 08-MAR-1977
File 2)	FTN:FOROTS.MAC[31,4577]	created: 1242 21-MAR-1977
 
1)1		TITLE FOROTS %5A(645) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	8-MAR-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(646) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	18-MAR-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==645		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==646		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;646	-----	FIX DISPOSE='PRINT!LIST!PUNCH' TO GET FILE'S PAT
	H TO PASS
2)	;		  TO QMANGR AS "ORIGINAL DIRECTORY".  AFTER EDIT
	 537
2)	;		  (DUE TO EDIT 617) DD.PPN CONTAINS 0 NOT PPN AF
	TER
2)	;		  LOOKUP
2)	;**************** END OF REVISION HISTORY
**************
1)1		MOVE	T1,DD.STR(P3)	;[240] GET THE FILE DEVICE NAME
1)		MOVEM	T1,Q.FSTR(P2)	;STORE
1)	;**; [537] CHANGE @ CLOS.Q + 43(8) L	CLRH	28-APR-76
1)		SKIPE	T1,DD.PPN(P3)	;[537] PPN OR PATH SPECIFIED ?
1)		TLNE	T1,-1		;[537] YES, WAS IT PATH ?
****
2)1	;**;[646] @ CLOS.Q+40(8)  SJW  18-MAR-77
2)		SKIPN	T1,DD.PPN(P3)	;[646][537] PPN OR PATH SPECIFIE
	D ?
2)		JRST	CLOSQ2		;[646] NO, GET FULL PATH
2)		TLNE	T1,-1		;[537] YES, WAS IT PATH ?
**************
1)1	CLOSQ1:	MOVE	T1,DD.NAM(P3)	;[537] GET THE FILE NAME
1)		MOVEM	T1,Q.FNAM(P2)	;STORE
****
2)1	;**; [646] INSERT @ CLOSQ1 (MOVED FROM CLOS.Q+40)  SJW  18-MAR-7
	7
2)	CLOSQ1:	MOVE	T1,DD.STR(P3)	;[646][240] GET THE FILE DEVICE
Digital Equipment Corporation       27-OCT-77    Page 130
PCO Log Report


	NAME
2)		MOVEM	T1,Q.FSTR(P2)	;[646]STORE
2)		MOVE	T1,DD.NAM(P3)	;[537] GET THE FILE NAME
2)		MOVEM	T1,Q.FNAM(P2)	;STORE
**************
1)1	QUE.TB:				;TABLE OF QUEUE CODES
****
2)1	;**;[646] INSERT BEFORE QUE.TB  SJW  18-MAR-77
2)	CLOSQ2:				;[646] GET PATH OF FILE
2)		LDB	T1,[POINT 4,DD.UNT(P3),12]	;[646] GET CHANN
	EL #
2)		MOVEM	T1,Q.PATH(P2)	;[646] JOB # = 0,,CHANNEL #
2)					;[646] REST OF Q BLOCK CLEARED B
	Y GMEM%%
2)		MOVEI	T1,Q.PATH(P2)	;[646] PATH. ARG POINTER
2)		HRLI	T1,^D8		;[646] PATH. LENGTH OF ARG BLOCK
2)		PATH.	T1,		;[646] GET THE PATH
2)		  POPJ	P,		;[646] ERROR: FORGET IT
2)		SETZM	Q.PATH(P2)	;[646] CLEAR Q.PATH = Q.ONOT+1
2)		JRST	CLOSQ1		;[646] FILL IN Q.FSTR = Q.PATH+1
2)	QUE.TB:				;TABLE OF QUEUE CODES
**************
1)1	Q.FF:!
****
2)1	;**;[646] INSERT AFTER Q.ONOT  SJW  18-MAR-77
2)	Q.PATH==Q.ONOT+1	;[646] PATH. ARG BLOCK
2)	Q.FF:!
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 131
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-262*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(646)

[Date Entered]          21-MAR-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    CLOS%0    CLOS.Q

[Key Words]             QMANGR      DISPOSE=PR  DEVICE=

[Source Before Edit]    %5A  (000646)

[Source After Edit]     %5A  (000647)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   Y
                        SER/SPR Number:10-22171
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 132
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
On non-Galaxy systems, there is no way  in  a  Fortran  program  to  get
immediate  printing  of  an  output  file  and  direct  it to a specific
printer.
 

                        **********


[DIAGNOSIS]
 
Using DISPOSE='PRINT', FOROTS calls  QMANGR  with  generic  LPT  in  the
argument block.  If there are multiple printers at the central site, the
LPTSPL that wakes up first gets the file for printing.  There is no  way
to  direct  the listing to a printer with particular characteristics, eg
lower case.
 

                        **********


[CURE]
 
Since FOROTS only allows DISPOSE='PRINT' for disk files, use the DEVICE=
parameter  on the CLOSE for the queue name.  This means that FOROTS must
figure out whether or not a DEVICE= argument was present on  the  CLOSE,
since FOROTS cannot know all valid queue names.
 
Note that FOROTS will use the DEVICE=  argument  without  error-checking
it.   A  bad  queue name passed to QMANGR will cause QMANGR to abort the
entire job with the message
 
?QSRUQS UNKNOWN QUEUE SPECIFIED
 
Notice also that the change  to  FORPRM  means  that  FORINI  should  be
recompiled (since the FOROTS low segment size changed).
 
Digital Equipment Corporation       27-OCT-77    Page 133
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1242 21-MAR-1977
File 2)	FTN:FOROTS.MAC[31,4577]	created: 1322 21-MAR-1977
 
1)1		TITLE FOROTS %5A(646) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	18-MAR-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(647) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	21-MAR-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==646		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==647		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;647	22171	USE DEVICE= AS QUEUE NAME FOR DISPOSE='PRINT' ON
	 CLOSE
2)	;**************** END OF REVISION HISTORY
**************
1)1	;**; [522] INSERT @ CLOS%0 + 1/2	CLRH	12-MAR-76
****
2)1	;**; [647] INSERT @ CLOS%0 + 1/2  SJW  21-MAR-77
2)		MOVE	T0,DD.DEV(P3)	;[647] SAVE DEVICE FROM OPEN TO
	SEE IF
2)		MOVEM	T0,DEV.SV(P4)	;[647] DEVICE= WAS SPECIFIED ON
	CLOSE
2)	;**; [522] INSERT @ CLOS%0 + 1/2	CLRH	12-MAR-76
**************
1)1		HLLZM	T1,Q.DEV(P2)	;STORE THE DEVICE NAME
1)		MOVE	T1,[BYTE (9)Q.FF-Q.ZER-1,Q.FLEN(18)1];GET THE QU
	E SIZE
****
2)1	;**; [647] INSERT @ CLOS.Q+10(8)  SJW  21-MAR-77
2)		MOVE	T2,DD.DEV(P3)	;[647] GET DEVICE
2)		MOVEM	T2,Q.DEV(P2)	;[647] STORE DEVICE AS QUEUE NAM
	E
2)		CAMN	T2,DEV.SV(P4)	;[647] WAS DEVICE= SPECIFIED ON
	CLOSE ?
2)		HLLZM	T1,Q.DEV(P2)	;[647] NO, USE DEFAULT Q NAME AS
	 DEVICE
2)		MOVE	T1,[BYTE (9)Q.FF-Q.ZER-1,Q.FLEN(18)1];GET THE QU
	E SIZE
Digital Equipment Corporation       27-OCT-77    Page 134
PCO Log Report


**************
 
Digital Equipment Corporation       27-OCT-77    Page 135
PCO Log Report


[FILCOM]
File 1)	LIB:FORPRM.MAC[31,4650]	created: 1443 26-JAN-1977
File 2)	FTN:FORPRM.MAC[31,4577]	created: 1044 21-MAR-1977
 
1)1		UNIVERSAL FORPRM %5A(640) - FOROTS UNIVERSAL PARAMETER F
	ILE
1)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW/SWG	
	18-JAN-77
1)		PASS2		;SAVE PRINT OUT ON PASS 2
****
2)1		UNIVERSAL FORPRM %5A(647) - FOROTS UNIVERSAL PARAMETER F
	ILE
2)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW/SWG	
	21-MAR-77
2)		PASS2		;SAVE PRINT OUT ON PASS 2
**************
1)1	VEDIT==640		;EDIT NUMBER
1)	VMINOR==1		;MINOR VERSION NUMBER
****
2)1	VEDIT==647		;EDIT NUMBER
2)	VMINOR==1		;MINOR VERSION NUMBER
**************
1)1	;*** END OF REVISION HISTORY ******
****
2)1	;647	22171	ADD STATIC WORD DEV.SV TO SAVE DEVICE BEFORE CLO
	SE TO
2)	;		  DETECT IF THE USER SPECIFIED DEVICE= (NECESSAR
	Y TO
2)	;		  IMPLEMENT DISPOSE='PRINT',DEVICE=<QUEUE NAME>)
2)	;*** END OF REVISION HISTORY ******
**************
1)1	LOW.SZ==ZZ.		;SIZE OF THE STATIC LOW SEGMENT
****
2)1	;**; [647] INSERT AT END OF STATIC AREA  SJW  21-MAR-77
2)	STATIC(DEV.SV,1)	;[647] SAVE DEVICE BEFORE PROCESSING CLO
	SE ARGS
2)	LOW.SZ==ZZ.		;SIZE OF THE STATIC LOW SEGMENT
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 136
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-263*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(650)

[Date Entered]          23-MAR-77

[Programmer]            SUE GODSELL

[Routines]              FOROTS    FORERR    FORFUN

[Key Words]             GLOBALS

[Source Before Edit]    %5A  (000647)

[Source After Edit]     %5A  (000650)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 137
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
A FORTRAN program  with  labels  'alcor1'  or  'dmpstr'  get
'multiply defined global ' errors from LINK when loaded with
FOROTS.
 
 

                        **********


[DIAGNOSIS]
 
These labels are declared as global  labels  in  FOROTS  and
they are valid labels in FORTRAN.
 
 

                        **********


[CURE]
 
Change the labels to contain characters  not  allowed  in  a
FORTRAN program.
 
Digital Equipment Corporation       27-OCT-77    Page 138
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1322 21-MAR-1977
File 2)	DSKC:FOROTS.MAC[31,4775]	created: 1616 21-MAR-1977
 
1)1		TITLE FOROTS %5A(647) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	21-MAR-77
****
2)1		TITLE FOROTS %5A(650) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	21-MAR-77
**************
1)1	VEDIT==647		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==650		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;650	-----	IN FOROTS,FORFUN, AND FORERR CHANGE THE NAMES OF
	 TWO
2)	;		EXTERNALS TO BE UNIQUE AND NOT VALID IN FORTRAN.
2)	;		THE EXTERNALS ARE 'DMPSTR' AND 'ALCOR' AND WILL
	BE
2)	;		'DMPST.' AND 'FMEM%%'
2)	;**************** END OF REVISION HISTORY
**************
1)1		PUSHJ	P,DMPSTR	;YES, DUMP THE STRING
1)		JUMPO	.+2		;CHECK IF OUTPUT
****
2)1	;**;[650]	CHANGE AT ENDLN.+3	SWG	21-MAR-77
2)		PUSHJ	P,DMPST.	;[650]YES, DUMP THE STRING
2)		JUMPO	.+2		;CHECK IF OUTPUT
**************
1)1		INTERNAL	DMPSTR	;[636] CALLED FROM FORERR (DAT7)
1)	SETSTR:
****
2)1	;**;[650]	CHANGE AT SETSTR-1	SWG	21-MAR-77
2)		INTERNAL	DMPST.	;[650][636] CALLED FROM FORERR (
	DAT7)
2)	SETSTR:
**************
1)1	DMPSTR:				;ROUTINE TO DUMP STRINGS TO THE
	OUTPUT DEV
1)		MOVEI	T4,DD.HRI(P3)	;GET THE INPUT RING HEADER
****
2)1	;**;[650]	CHANGE LABEL DMPSTR TO DMPST.	SWG	21-MAR-7
	7
2)	DMPST.:				;[650]ROUTINE TO DUMP STRINGS TO
	 THE OUTPUT DEV
Digital Equipment Corporation       27-OCT-77    Page 139
PCO Log Report


2)		MOVEI	T4,DD.HRI(P3)	;GET THE INPUT RING HEADER
**************
1)1		PUSHJ	P,DMPSTR	;[510] FIXUP RING HEADER FOR EOF
	 RETURN
1)	;	JRST	FSXNXT		;[510] IOLS%% WILL POPJ TO EOF R
	ETURN
****
2)1	;**;[650]	CHANGE AT FSXXEQ+15L	SWG	21-MAR-77
2)		PUSHJ	P,DMPST.	;[650][510] FIXUP RING HEADER FO
	R EOF RETURN
2)	;	JRST	FSXNXT		;[510] IOLS%% WILL POPJ TO EOF R
	ETURN
**************
1)1		PUSHJ	P,DMPSTR	;[530] YES -- GET RID OF STRING
1)		PUSHJ	P,UPDASC	;[330] GO UPDATE ASSOCIATE VARIA
	BLE
****
2)1	;**;[650] CHANGE AT FSXLRP+10	SWG	21-MAR-77
2)		PUSHJ	P,DMPST.	;[650][530] YES -- GET RID OF ST
	RING
2)		PUSHJ	P,UPDASC	;[330] GO UPDATE ASSOCIATE VARIA
	BLE
**************
1)1		PUSHJ	P,DMPSTR	;[636] GET RID OF STRING
 
 
1)		PUSHJ	P,BSREAD	;[564] DO BACKSPACE
****
2)1	;**; [650]	CHANGE AT SKPRET-2	SWG	21-MAR-77
2)		PUSHJ	P,DMPST.	;[650][636] GET RID OF STRING
2)		PUSHJ	P,BSREAD	;[564] DO BACKSPACE
**************
1)1	ALCOR1::PUSHJ	P,GMEM%%	;[351] GET THE CORE BLOCK
1)					;[351] SKIP RETURN IF FAILS
****
2)1	;**;[650]	CHANGE LABEL AT ALCOR1 TO FMEM%%  SWG  21-MAR-77
2)	FMEM%%::PUSHJ	P,GMEM%%	;[650][351] GET THE CORE BLOCK
2)					;[351] SKIP RETURN IF FAILS
**************
1)1		CAIE	T1,ALCOR1+1	;[351] IS IT USER CALL
1)		ERROR	(SYS,5,17)	;[351] NO
****
2)1	;**;[650]	CHANGE RECLA1+1	SWG	21-MAR-77
2)		CAIE	T1,FMEM%%+1	;[650][351] IS IT USER CALL
2)		ERROR	(SYS,5,17)	;[351] NO
**************
 
Digital Equipment Corporation       27-OCT-77    Page 140
PCO Log Report


[FILCOM]
File 1)	LIB:FORERR.MAC[31,4650]	created: 0755 13-JAN-1977
File 2)	DSKC:FORERR.MAC[31,4775]	created: 1701 21-MAR-1977
 
1)1		TITLE	FORERR	%5A(636) ERROR PROCESSING MODULE FOR THE
	 FOROTS SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW/SWG	
		6-JAN-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE	FORERR	%5A(650) ERROR PROCESSING MODULE FOR THE
	 FOROTS SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW/SWG	
		21-MAR-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	;*** END OF REVISION HISTORY ******
****
2)1	;650	-----	CHANGE REF TO EXTERNAL DMPSTR TO DMPST.
2)	;*** END OF REVISION HISTORY ******
**************
1)1	VEDIT==626		;MAJOR EDIT NUMBER
1)	VMINOR==0		;MINOR EDIT NUMBER
****
2)1	VEDIT==650		;MAJOR EDIT NUMBER
2)	VMINOR==0		;MINOR EDIT NUMBER
**************
1)1		PUSHJ	P,DMPSTR##	;[636] GET RID OF STRING
1)		JRST	SYSRET		;[636] TAKE SYSTEM RETURN
****
2)1	;**; [650] CHANGE @ DAT7J+15	SWG	21-MAR-77
2)		PUSHJ	P,DMPST.##	;[650][636] GET RID OF STRING
2)		JRST	SYSRET		;[636] TAKE SYSTEM RETURN
**************
 
Digital Equipment Corporation       27-OCT-77    Page 141
PCO Log Report


[FILCOM]
File 1)	LIB:FORFUN.MAC[31,4650]	created: 0830 17-DEC-1976
File 2)	DSKC:FORFUN.MAC[31,4775]	created: 1656 21-MAR-1977
 
1)1		TITLE	FORFUN	%5(571) - OVERLAY FUNCTION MODULE FOR FO
	ROTS
1)		SUBTTL	H. P. WEISS/HPW/DMN/MD/DPL/JNG/SJW	30-JUL-7
	6
1)	;***COPYRIGHT 1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS. ***
1)	VERWHO==0	;EDITOR
1)	VERVER==5	;MAJOR VERSION NUMBER
1)	VERUPD==0	;MINOR VERSION NUMBER
1)	VEREDT==571	;EDIT NUMBER
1)	VERFUN==BYTE (3)VERWHO(9)VERVER(6)VERUPD(18)VEREDT
****
2)1		TITLE	FORFUN	%5A(650) - OVERLAY FUNCTION MODULE FOR F
	OROTS
2)		SUBTTL	H. P. WEISS/HPW/DMN/MD/DPL/JNG/SJW/SWG	21-MAR-7
	7
2)	;***COPYRIGHT 1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS. ***
2)	VERWHO==0	;EDITOR
2)	VERVER==05	;MAJOR VERSION NUMBER
2)	VERUPD==0	;MINOR VERSION NUMBER
2)	VEREDT==650	;EDIT NUMBER
2)	VERFUN==BYTE (3)VERWHO(9)VERVER(6)VERUPD(18)VEREDT
**************
1)1		PAGE
****
2)1	;650	-----	CHANGE REFERENCE TO ALCOR1 IN FOROTS TO FMEM%%
2)	;****************	END OF REVISION HISTORY
2)		PAGE
**************
1)1		PUSHJ	P,ALCOR1##	;[514] CALL GMEM%%, T1=-1 IF ERR
	OR
1)		POP	P,ACC.SV+T0(P4)	;[514] RESTORE USER'S AC 0
****
2)1	;**; [650]	CHANGE AT FUNCOR+9L	SWG	21-MAR-77
2)		PUSHJ	P,FMEM%%##	;[650][514] CALL GMEM%%, T1=-1 I
	F ERROR
2)		POP	P,ACC.SV+T0(P4)	;[514] RESTORE USER'S AC 0
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 142
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-264*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         4B(460)+615, 5(617)

[Date Entered]          04-APR-77

[Programmer]            EKLUND

[Routines]              FOROTS    DENFIX

[Key Words]             CHANNEL     DENSITY     INTERCHANG

[Source Before Edit]    %5A  (000650)

[Source After Edit]     %5A  (000651)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-22415
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 143
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
     When setting up the new density for a mag tape, the  old  density
field  is not cleared properly, and the high order bits of the channel
number are cleared instead.
 

                        **********


[DIAGNOSIS]
 
 
     When attempting to clear the old density, the wrong  halfword  is
tested  (bits  cleared) so that the old density is not zeroed out, but
rather the high order bits of the channel number  are  cleared.   This
can  result  in  the  SETSTS  getting  done  on the wrong channel with
possibly incorrect density also.
 

                        **********


[CURE]
 
 
     Clear the density bits in the correct  location,  namely  in  the
right half of the SETSTS call.
 
Digital Equipment Corporation       27-OCT-77    Page 144
PCO Log Report


[FILCOM]
File 1)	FTN:FOROTS.MAC[31,4650]	created: 1616 21-MAR-1977
File 2)	FTN:FOROTS.651[30,4515]	created: 1141 04-APR-1977
 
1)1		TITLE FOROTS %5A(650) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	21-MAR-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(651) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	4-APR-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==650		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==651		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;651	22415	IN FOROTS, FIX EDIT 615 TO ZERO OUT DENSITY FIEL
	D CORRECTLY
2)	;**************** END OF REVISION HISTORY
**************
1)1		TLZ	T2,600		;[615] CLEAR OLD DENSITY (SHOULD
	 BE ZERO)
1)		OR	T2,T0		;[615] OR IN NEW DENSITY
****
2)1	;**; [651] CHANGE @DENFIX+10L, DCE, 4-APR-77
2)		TRZ	T2,600		;[651][615] CLEAR OLD DENSITY (S
	HOULD BE ZERO)
2)		OR	T2,T0		;[615] OR IN NEW DENSITY
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 145
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-265*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5(617), TESTED IN 5A(651)

[Date Entered]          13-APR-77

[Programmer]            EKLUND

[Routines]              FORCNV    FLIRT

[Key Words]             LOWER CASE  EXPONENT    D AND E

[Source Before Edit]    %5A  (000651)

[Source After Edit]     %5A  (000652)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-22508
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 146
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
     Input of floating point numbers with exponents which are preceded
with lower case letters "d" or "e" will result in error termination or
incomplete reading of the number.
 

                        **********


[DIAGNOSIS]
 
 
     Only the cases where the letters "d" and "e" are upper case  were
considered for specifying exponents.
 

                        **********


[CURE]
 
 
     Allow lower case "d" and "e" on input of exponents.
 
Digital Equipment Corporation       27-OCT-77    Page 147
PCO Log Report


[FILCOM]
File 1)	FTN:FOROTS.MAC[31,4650]	created: 1141 04-APR-1977
File 2)	FTN:FOROTS.652[30,4515]	created: 1650 12-APR-1977
 
1)1		TITLE FOROTS %5A(651) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	4-APR-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(652) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	12-APR-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==651		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==652		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;652	22508	IN FORCNV, ALLOW LOWER CASE D AND E IN INPUT EXP
	ONENTS
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page 148
PCO Log Report


[FILCOM]
File 1)	FTN:FORCNV.MAC[31,4650]	created: 1508 11-JAN-1977
File 2)	FTN:FORCNV.652[30,4515]	created: 1648 12-APR-1977
 
1)1		TITLE	FORCNV	%5A(622)		CONVERSION ROUTI
	NES
1)		SUBTTL	REVISION HISTORY
****
2)1		TITLE	FORCNV	%5A(652)		CONVERSION ROUTI
	NES
2)		SUBTTL	REVISION HISTORY
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;**************** BEGINNING OF VERSION 5A
2)	;652	22508	EXPONENT FIELDS SHOULD ACCEPT LOWER CASE D AND E
2)	;**************** END OF REVISION HISTORY
**************
1)1		TITLE	FLIRT%	%5.(563)	FLOATING POINT INPUT
1)		SUBTTL	DAVE NIXON AND TOM EGGERS
1)		SUBTTL	D.M.NIXON /DMN/DRT/HPW/MD/CLRH	14-JUL-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS. ***
****
2)1		TITLE	FLIRT%	%5A.(652)	FLOATING POINT INPUT
2)		SUBTTL	DAVE NIXON AND TOM EGGERS
2)		SUBTTL	D.M.NIXON /DMN/DRT/HPW/MD/CLRH/DCE	12-APR-7
	7
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS. ***
**************
1)1		TLNE	P3,IO.EOL	;56;END OF LINE SET
****
2)1	;**;[652], INSERT @CHRTYP+11 1/2, DCE,12-APR-77
2)		CAIE	T0,"d"		;[652] LOWER CASE D?
2)		CAIN	T0,"e"		;[652] LOWER CASE E?
2)		IORI	ST,EXPTYP	;[652] YES
2)		TLNE	P3,IO.EOL	;56;END OF LINE SET
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 149
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-266*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5(617), TESTED IN 5A(652)

[Date Entered]          26-APR-77

[Programmer]            EKLUND

[Routines]              FORCNV    LOGIC

[Key Words]             LOWER CASE  TRUE/FALSE  INPUT

[Source Before Edit]    %5A  (000652)

[Source After Edit]     %5A  (000653)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-22543
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 150
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
     FOROTS will not accept lower case letters "t" and "f" for logical
true  and  false.  An attempt to do so will result in the message that
there is an illegal character in the input string (t or f).
 

                        **********


[DIAGNOSIS]
 
 
     No code for this case.
 

                        **********


[CURE]
 
 
     Add the code to allow lower  case  letters  "t"  and  "f"  to  be
treated exactly like their upper case counterparts.
 
Digital Equipment Corporation       27-OCT-77    Page 151
PCO Log Report


[FILCOM]
File 1)	FTN:FOROTS.MAC[31,4650]	created: 1650 12-APR-1977
File 2)	FTN:FOROTS.653[30,4515]	created: 1430 26-APR-1977
 
1)1		TITLE FOROTS %5A(652) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	12-APR-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(653) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	26-APR-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==652		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==653		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;653	22543	IN FORCNV, ALLOW LOWER CASE T AND F FOR TRUE AND
	 FALSE
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page 152
PCO Log Report


[FILCOM]
File 1)	FTN:FORCNV.MAC[31,4650]	created: 1648 12-APR-1977
File 2)	FTN:FORCNV.653[30,4515]	created: 1359 26-APR-1977
 
1)1		TITLE	FORCNV	%5A(652)		CONVERSION ROUTI
	NES
1)		SUBTTL	REVISION HISTORY
****
2)1		TITLE	FORCNV	%5A(653)		CONVERSION ROUTI
	NES
2)		SUBTTL	REVISION HISTORY
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;653	22543	ACCEPT LOWER CASE T AND F FOR TRUE AND FALSE
2)	;**************** END OF REVISION HISTORY
**************
1)1		TITLE	LOGIC%	%4.(354)	LOGICAL INPUT/OUTPUT CON
	VERSION ROUTINES
1)		SUBTTL	D. TODD/HPW/MD	30-JUL-74
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS. ***
****
2)1		TITLE	LOGIC%	%5A.(653)	LOGICAL INPUT/OUTPUT CON
	VERSION ROUTINES
2)		SUBTTL	D. TODD/HPW/MD/DCE	26-APR-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS. ***
**************
1)1		CAIN	T0,"F"		;CKECK FOR FALSE
1)		JRST	LINT1		;YES, PROCESS THE FALSE CHARACTE
	R
1)		CAIE	T0,"T"		;CKECK, FOR TRUE
1)		JRST	LINT2		;NO, ILLEGAL CHARACTER
****
2)1		;**;[653], INSERT @ LINT0+2 1/2, DCE, 26-APR-77
2)		CAIE	T0,"f"		;[653] LOWER CASE F IS OK
2)		CAIN	T0,"F"		;CKECK FOR FALSE
2)		JRST	LINT1		;YES, PROCESS THE FALSE CHARACTE
	R
2)		;**;[653], CHANGE @ LINT0+5, DCE, 26-APR-77
2)		CAIE	T0,"t"		;[653] CKECK, FOR TRUE
2)		CAIN	T0,"T"		;[653] UPPER CASE TOO
2)		SKIPA			;[653] FOUND A TRUE
2)		JRST	LINT2		;NO, ILLEGAL CHARACTER
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 153
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-267*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(654)

[Date Entered]          28-APR-77

[Programmer]            SUE GODSELL

[Routines]              FORCNV

[Key Words]             NAME-LIST   LIST-DIREC  INTEGER     TYPE CODE

[Source Before Edit]    %5A  (000653)

[Source After Edit]     %5A  (000654)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-22691
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 154
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
NAMELIST  and  LIST-DIRECTED  input  integers  greater  than
(2**27)-1  incorrectly  when  the integers are input looking
like  integers  rather  than  floating  point  numbers.   In
addition,   NAMELIST   loses  digits  on  output  of  double
precision numbers.
 
 

                        **********


[DIAGNOSIS]
 
FLIRT, called by both NAMELIST and LIST-DIRECTED to do input
of  integers,  treats  integers  exactly  as  it does single
precision floating point numbers.  Since the mantissa  of  a
single  precision  number  can  only  be 27 bits wide and an
integer can be 35 bits, integer input loses  the  difference
in the process of setting up the exponent and normalizing.
 
Additionally, NAMELIST does not record the data type of  the
variable in the static area as LIST-DIRECTED does.
 
 

                        **********


[CURE]
 
Change FLIRT to recognize integer  data  type  and  use  the
double  precision  rounding code on integers rather than the
single precision in order not to lose the 8 bits.
 
Change NAME-LIST input and output to store the data type  of
the variable in static core.
 
Digital Equipment Corporation       27-OCT-77    Page 155
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1430 26-APR-1977
File 2)	DSKC:FOROTS.MAC[31,4775]	created: 1600 26-APR-1977
 
1)1		TITLE FOROTS %5A(653) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	26-APR-77
****
2)1		TITLE FOROTS %5A(654) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	26-APR-77
**************
1)1	VEDIT==653		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==654		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;654	-----	IN FORCNV, FIX FLIRT TO HANDLE INTEGERS CORRECTL
	Y AND
2)	;		NAMELIST TO RECORD DATA TYPE IN LOW CORE
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page 156
PCO Log Report


[FILCOM]
File 1)	LIB:FORCNV.MAC[31,4650]	created: 1359 26-APR-1977
File 2)	DSKC:FORCNV.MAC[31,4775]	created: 1605 26-APR-1977
 
1)1		TITLE	FORCNV	%5A(653)		CONVERSION ROUTI
	NES
1)		SUBTTL	REVISION HISTORY
****
2)1		TITLE	FORCNV	%5A(654)		CONVERSION ROUTI
	NES
2)		SUBTTL	REVISION HISTORY
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;654	-----	FIX FLIRT TO HANDLE ALL INTEGERS CORRECTLY AND
2)	;		FIX NAMELIST TO STORE DATA TYPE IN LOW CORE
2)	;**************** END OF REVISION HISTORY
**************
1)1		TITLE	FLIRT%	%5A.(652)	FLOATING POINT INPUT
1)		SUBTTL	DAVE NIXON AND TOM EGGERS
1)		SUBTTL	D.M.NIXON /DMN/DRT/HPW/MD/CLRH/DCE	12-APR-7
	7
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS. ***
****
2)1		TITLE	FLIRT%	%5A.(654)	FLOATING POINT INPUT
2)		SUBTTL	DAVE NIXON AND TOM EGGERS
2)		SUBTTL	D.M.NIXON /DMN/DRT/HPW/MD/CLRH/DCE	26-APR-7
	7
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS. ***
**************
1)1		CAIN	T2,TP%DOR	;[563] DOUBLE PRECISION ?
****
2)1	;**; [654] INSERT AT ENDF6+2	SWG	26-APR-77
2)		CAIE	T2,TP%INT	;[654] INTEGER? MUST NOT BE ROUN
	DED AS
2)					;[674] SINGLE PRECISION OR LOSES
	 8 BITS
2)		CAIN	T2,TP%DOR	;[563] DOUBLE PRECISION ?
**************
1)1		TITLE	NMLST%	%5A(622)	NAMELIST I/O
1)		SUBTTL	D. TODD /DRT/HPW/MD/JNG/CLRH/SWG	15-NOV-7
	6
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS. ***
****
2)1		TITLE	NMLST%	%5A(654)	NAMELIST I/O
2)		SUBTTL	D. TODD /DRT/HPW/MD/JNG/CLRH/SWG	26-APR-7
	7
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
Digital Equipment Corporation       27-OCT-77    Page 157
PCO Log Report


	RP., MAYNARD, MASS. ***
**************
1)1		HLRZ	T1,NMLTBL(T5)	;GET THE  OUTPUT DISPATCH ADDRES
	S
****
2)1	;**; [654] INSERT AT NLOVA1	SWG	26-APR-77
2)		MOVEM	T5,DAT.TP+2(P4)		;[654] REMEMBER DATA TYP
	E
2)		HLRZ	T1,NMLTBL(T5)	;GET THE  OUTPUT DISPATCH ADDRES
	S
**************
1)1		TLZ	P2,FT.PRC	;CLEAR DOUBLE PRECISION BITS
****
2)1	;**; [654] INSERT AT NLIAR5+1	SWG	26-APR-77
2)		MOVEM	T5,DAT.TP+2(P4)	;[654] REMEMBER DATA TYPE
2)		TLZ	P2,FT.PRC	;CLEAR DOUBLE PRECISION BITS
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 158
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-268*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(654)

[Date Entered]          05-MAY-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    BINRED

[Key Words]             EOF         SLIST       IMAGE       BINARY

[Source Before Edit]    %5A  (000654)

[Source After Edit]     %5A  (000655)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-22727
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 159
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
When an EOF occurs in the middle of processing an SLIST  iolist  element
in  BINARY or IMAGE mode, the rest of the elements in that SLIST are NOT
always zeroed out, as they should be.
 

                        **********


[DIAGNOSIS]
 
EOF in BINARY mode can only occur if the  END  LSCW  is  missing,  which
means  the  file  is  clobbered.   End-of-line  (EOL),  however,  is not
unusual, but will cause the same symptom reported above.  EOF  in  IMAGE
mode triggers EOL.
 
An SLIST with an increment of 1 is handled with a BLT.  If  EOL  occurs,
the  BLT  will  move as much of the line as exists and then try to clear
the remainder by looping through the rest of the array.   Unfortunately,
the SLIST bit is off at this point which means the looping code is never
executed.
 
The code to handle EOF for IMAGE mode does not test for an SLIST at all.
 

                        **********


[CURE]
 
On EOL in BINARY mode on a simple SLIST, use the code to clear the SLIST
with  a  BLT that is used on EOF in IMAGE mode.  On EOF in IMAGE mode on
other than a simple SLIST, use the looping code to clear the rest of the
iolist element.
 
Digital Equipment Corporation       27-OCT-77    Page 160
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1600 26-APR-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 1610 04-MAY-1977
 
1)1		TITLE FOROTS %5A(654) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	26-APR-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(655) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	4-MAY-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==654		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==655		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;655	-----	FIX EOF ON BINARY/IMAGE INPUT OF SLIST TO CLEAR
	REST
2)	;		  OF SLIST
2)	;**************** END OF REVISION HISTORY
**************
1)1		JRST	BINEO2		;[334] FILL WITH NULLS
1)		JRST	BINSLR		;CONTINUE THE ARRAY
****
2)1	;**;[655] REPLACE @ BINRDW-2  SJW  4-MAY-77
2)		JRST	BINEO1		;[655][334] FILL WITH NULLS USIN
	G BLT
2)		JRST	BINSLR		;CONTINUE THE ARRAY
**************
1)1		JRST	[SETZM	(G1)	;[301] CLEAR THE WORD
1)			 MOVSI	T1,(1B0);[334] SET A FLAG
1)			 TLNN	P3,IO.NON	;[334] IF FORMATTED BINA
	RY
1)			 HLLM	T1,ALT.PC(P4)	;[334] ILLEGAL EOF
1)			 JRST	BINEOF]	;[301] AND PROCESS EOF
1)		MOVEM	T0,(G1)		;STORE THE DATA IN MEMORY
****
2)1	;**;[655] DELETE @ BINRDW + 2  SJW  4-MAY-77
2)		JRST	[MOVSI	T1,(1B0)	;[655][334] SET A FLAG
2)			 TLNN	P3,IO.NON	;[334] IF FORMATTED BINA
	RY
2)			 HLLM	T1,ALT.PC(P4)	;[334] ILLEGAL EOF
2)			 JRST	BINEO3]		;[655][301] LOOP FILLING
Digital Equipment Corporation       27-OCT-77    Page 161
PCO Log Report


	 WITH NULLS
2)		MOVEM	T0,(G1)		;STORE THE DATA IN MEMORY
**************
1)1		JRST	BINEO2		;[334] FILL WITH NULLS
1)		JRST	BINRD2		;MAY BE A NULL SEGMENT
****
2)1	;**;[655] REPLACE @BINRD2 + 2  SJW  4-MAY-77
2)		JRST	BINEO3		;[655][334] LOOP FILLING WITH NU
	LLS
2)		JRST	BINRD2		;MAY BE A NULL SEGMENT
**************
1)1	BINEO2:	SETZM	(G1)		;[301] CLEAR ALWAYS 1ST WORD
1)		TLZN	P2,FT.SLT	;[301] LIST IN PROGRESS?
1)		JRST	BINEOF		;[301] NO
1)	BINEO3:	ADD	G1,G2		;[301] UPDATE ITEM ADDRESS
1)		JUMPGE	G1,BINEOF	;[301] END OF THIS LIST
1)		SETZM	(G1)		;[301] CLEAR THIS ONE
1)		JRST	BINEO3		;[301] SEE IF MORE
1)	BINEOF:	TLNN	P3,IO.NON	;[334] NON FORMATTED BINARY
****
2)1	BINEO2:	TLZ	P2,FT.SLT	;[655] CLEAR SLIST FLAG
2)	BINEO3:	SETZM	(G1)		;[655] CLEAR THIS ELEMENT
2)		ADD	G1,G2		;[301] UPDATE ITEM ADDRESS
2)		JUMPL	G1,BINEO3	;[655] END OF LIST?
2)	BINEOF:	TLNN	P3,IO.NON	;[334] NON FORMATTED BINARY
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 162
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-269*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(656)

[Date Entered]          05-MAY-77

[Programmer]            SUE GODSELL

[Routines]              FOROTS

[Key Words]             DUMPMODE

[Source Before Edit]    %5A  (000655)

[Source After Edit]     %5A  (000656)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-22726
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 163
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
When FOROTS tries to do dump mode i/o and needs more than 19
IOWDs  in its list for the monitor, it loses all those after
the 19th.
 
 

                        **********


[DIAGNOSIS]
 
When FOROTS tries to chain successive  blocks  of  IOWDs  to
previous  blocks,  it  does not setup the link properly.  It
stores the link word in the wrong place,  leaving  the  link
word  of  the  first block containing a zero which tells the
monitor that there is no more data.
 
 

                        **********


[CURE]
 
Change the instruction which stores the link word to in fact
store it in the last word of the previous chunk.
 
Digital Equipment Corporation       27-OCT-77    Page 164
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1610 04-MAY-1977
File 2)	DSKC:FOROTS.MAC[31,4775]	created: 1630 05-MAY-1977
 
1)1		TITLE FOROTS %5A(655) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	4-MAY-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(656) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	5-MAY-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==655		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==656		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;656	-----	FIX DUMP MODE I/O TO PROPERLY HANDLE CHAINING OF
2)	;		IOWD LIST BLOCKS.
2)	;**************** END OF REVISION HISTORY
**************
1)1		HRRZM	T1,DMPCNK-1(G4)	;STORE A JUMP WORD  IOWD 0,,ADR
1)		JRST	DMPIO1		;GO AGAIN
****
2)1	;**;	[656]	CHANGE @ DMPIO2+9	SWG	5-MAY-77
2)		HRRZM	T1,(G4)		;[656] STORE A JUMP WORD  IOWD 0
	,,ADR
2)		JRST	DMPIO1		;GO AGAIN
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 165
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-270*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(656)

[Date Entered]          23-MAY-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS

[Key Words]             ILLEGAL     LSCW        ERR=

[Source Before Edit]    %5A  (000656)

[Source After Edit]     %5A  (000657)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-21821
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 166
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
When reading a mag tape in binary mode, if FOROTS finds an illegal  LSCW
and  the  user  has  specified error handling via an ERR= branch, FOROTS
skips all logical records  until  it  finds  one  which  starts  at  the
beginning  of  a  physical block.  This is NOT very useful since records
seldom start on physical block boundaries.
 

                        **********


[DIAGNOSIS]
 
The errors that result in "ILLEGAL LSCW" are:
 
    1)  when the first non-zero word  at  the  beginning  of  a  logical
        record is NOT a type 1 LSCW, ie, of the form 001...,,......
 
    2)  when FOROTS does not find an expected type 2  (continuation)  or
        type 3 (end of record) LSCW
 
    3)  when BACKSPACing a logical record, FOROTS does not find a type 1
        LSCW where the beginning of record should be.
 

                        **********


[CURE]
 
In case three above, there seems to be no useful recovery.  As  for  the
other cases, the most useful thing to do is to space forward in the file
until a word which LOOKS LIKE a type 1 LSCW is found.   It  is  possible
that   the  data  in  the  file  contains  words  which  have  the  form
001...,,......, so this recovery is not guaranteed but it seems like the
most useful thing to do.
 
It is more difficult to pick  out  FORSE.   style  beginning  of  binary
record  marks  so  the  recovery  fails if FOROTS thinks it is reading a
FORSE.  binary file.
 
Digital Equipment Corporation       27-OCT-77    Page 167
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1630 05-MAY-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 1119 23-MAY-1977
 
1)1		TITLE FOROTS %5A(656) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	5-MAY-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(657) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	20-MAY-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==656		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==657		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;657	21821	RECOVER FROM ILLEGAL LSCW IN SEQ FILE BY SCANNIN
	G FORWARD
2)	;		  UNTIL FIND A WORD WHICH LOOKS LIKE AN LSCW (LH
	=001...)
2)	;		NO RECOVERY IF FORSE. BINARY RECORD !
2)	;**************** END OF REVISION HISTORY
**************
1)1		ERROR	(DAT,2,7,)	;NO, ILLEGAL DATA
1)	IFN FORSE,<
****
2)1	;**;[657] BINRD1 - 3  SJW  20-MAY-77
2)		JRST	LSCWNF		;[657] NO, ILLEGAL DATA = ERROR
	(DAT,2,7,)
2)	IFN FORSE,<
**************
1)1	LSCWNF:	ERROR	(DAT,2,7,)	;[201] NO, ERROR IN THE DATA REC
	ORD
1)	IFN CHKSUM,<
****
2)1	;**;[657] LSCWR3 + 2  SJW  20-MAY-77
2)		JRST	LSCWNF		;[657] NO, ERROR IN DATA = ERROR
	 (DAT,2,7,)
2)	IFN CHKSUM,<
**************
1)1		SUBTTL DUMPIO DUMP MODE I/O ROUTINES
****
2)1		SUBTTL LSCW ERROR AND RECOVERY
Digital Equipment Corporation       27-OCT-77    Page 168
PCO Log Report


2)	;**;[657] DMPIO. - 3L  SJW  20-MAY-77
2)	LSCWNF:	MOVEI	T0,LSCWER	;[657] CHANGE ERROR RECOVERY ROU
	TINE
2)		MOVEM	T0,ERR.RT(P4)	;[657]
2)		ERROR	(DAT,2,7,)	;[657] ILLEGAL LSCW
2)	;	ON LSCW ERROR: IF FORSE. BINARY, RECOVERY FAILS
2)	;		       IF RANDOM INPUT, DO NOTHING
2)	;		       ELSE SCAN FORWARD UNTIL FIND A WORD WHICH
2)	;			 LOOKS LIKE AN LSCW, IE, LH = 001...
2)	;	CALLED BY PUSHJ P, IN ERROR RECOVERY
2)	;	SKIP RETURN ON SUCCESS
2)	LSCWER:	
2)	IFN FORSE,<
2)		TLNE	P2,FT.FSE	;[657] FORSE. BINARY RECORD SEEN
	 ?
2)		  POPJ	P,		;[657] YES = RECOVERY FAILS = NO
	N-SKIP RETURN
2)	>
2)		TLNE	P3,IO.RAN	;[657] RANDOM IO?
2)		  JRST	LSCWE1		;[657] YES = DO NOTHING
2)		JSP	P1,IPEEK.	;[657] CHECK NEXT WORD
2)		TLNE	P3,IO.EOF	;[657] EOF SENSED ?
2)		  JRST	LSCWE1		;[657] YES = CAN DO NO MORE
2)		HLRZ	T1,T0		;[657] GET CONTROL BITS + CHKSUM
2)		LSH	T1,-^D9		;[657] POSITION THE CONTROL BITS
2)		CAIE	T1,1		;[657] IS IT BEGINNING OF RECORD
	 = TYPE 1 LSCW ?
2)		  SOJA	P1,IBYTE0	;[657] NO = EAT WORD & RETURN TO
	 IPEEK. CALL
2)	LSCWE1:	AOS	(P)		;[657] ALWAYS SUCCEED
2)		PJRST	FINXI0		;[657] DO FIN CLEANUP & RETURN
2)		PAGE
2)		SUBTTL DUMPIO DUMP MODE I/O ROUTINES
**************
1)1		ERROR	(DAT,2,7,)	;ILLEGAL LSCW
1)		JRST	FINXI0		;RETURN
****
2)1		ERROR	(DAT,2,7,)	;ILLEGAL LSCW: NO RECOVERY
2)		JRST	FINXI0		;RETURN
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 169
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-271*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(657)

[Date Entered]          26-MAY-77

[Programmer]            STAN WHITLOCK

[Routines]              FORCNV    FLOUT%

[Key Words]             SPMAX       ACCURACY    F OUTPUT

[Source Before Edit]    %5A  (000657)

[Source After Edit]     %5A  (000660)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 170
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
The single precision number 5.55 outputted in F20.17  format  prints  as
5.55000001000000000.
 

                        **********


[DIAGNOSIS]
 
The rounding algorithm in FLOUT% in FORCNV  goes  to  great  lengths  to
print   binary   floating  point  numbers  in  their  "correct"  decimal
representation.  For a single precision number like 5.55,  the  implicit
numerical  assumption  is that the value is 5.5500000 + or - 0.00000005,
since with a 27 bit mantissa, we can assure only 7 digits  of  accuracy.
There  are  some  numbers that can get 8 or even 9 digits out of 27 bits
but not all numbers can.  Given the output format F20.17, 17  digits  is
more  accuracy  that a single precision number holds and in rounding the
value, given the implicit assumption above, the answer is "correct".
 

                        **********


[CURE]
 
We should be able to do better on the rounding.  The FLOUT routine has a
constant,  SPMAX==9,  which  is the maximum number of mantissa digits to
print for a single precision number.  In general, 9 is  too  big  and  7
would  lose  too often, so set it to 8.  The more general solution would
be to check the value to be printed and see whether its  mantissa  gives
7,  8  or 9 digits of accuracy and then use the correct parameter.  This
is being studied.
 
Digital Equipment Corporation       27-OCT-77    Page 171
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1119 23-MAY-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 1033 26-MAY-1977
 
1)1		TITLE FOROTS %5A(657) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	20-MAY-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(660) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	26-MAY-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==657		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==660		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;660	-----	FIX FLOUT% IN FORCNV TO USE 8 NOT 9 AS MAX NUMBE
	R OF
2)	;		  MANTISSA DIGITS TO PRINT ON SINGLE PRECISION S
	O 5.55
2)	;		  IN F20.17 WON'T BE 5.55000001...
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page 172
PCO Log Report


[FILCOM]
File 1)	LIB:FORCNV.MAC[31,4650]	created: 1605 26-APR-1977
File 2)	DSKC:FORCNV.MAC[31,4577]	created: 0931 26-MAY-1977
 
1)1		TITLE	FORCNV	%5A(654)		CONVERSION ROUTI
	NES
1)		SUBTTL	REVISION HISTORY
****
2)1		TITLE	FORCNV	%5A(660)		CONVERSION ROUTI
	NES
2)		SUBTTL	REVISION HISTORY
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;660	-----	FIX FLOUT% TO USE 8 NOT 9 AS MAX NUMBER OF MANTI
	SSA
2)	;		  DIGITS TO PRINT ON SINGLE PRECISION SO 5.55 IN
	 F20.17
2)	;		  WON'T PRINT AS 5.55000001...
2)	;**************** END OF REVISION HISTORY
**************
1)1		TITLE	FLOUT%	%5.(566) 	FLOATING POINT OUTPUT
1)		SUBTTL	D. NIXON AND T. W. EGGERS
****
2)1		TITLE	FLOUT%	%5A(660) 	FLOATING POINT OUTPUT
2)		SUBTTL	D. NIXON AND T. W. EGGERS
**************
1)1		SPMAX==9	;MAXIMUM NO. OF DIGITS TO OUTPUT (SINGLE
	 PRECISION)
1)	IFE CPU-KA10,<DPMAX==^D16>	;DITTO. (DOUBLE PRECISION)
****
2)1	;**;[660] FLOUT%  SJW  26-MAY-77  BIND SPMAX TO 8 NOT 9
2)		SPMAX==8	;[660]MAXIMUM NO. OF DIGITS TO OUTPUT (S
	INGLE PRECISION)
2)	IFE CPU-KA10,<DPMAX==^D16>	;DITTO. (DOUBLE PRECISION)
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 173
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-272*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(661)

[Date Entered]          05-JUL-77

[Programmer]            SUE GODSELL

[Routines]              FOROTS

[Key Words]             RUBOUT      '$' AND '+  FORMATS

[Source Before Edit]    %5A  (000660)

[Source After Edit]     %5A  (000661)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   Y
                        SER/SPR Number:10-
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 174
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     On some terminals and line printers, use of '$'  and/or
'+' format cause output of the RUBOUT character.
 

                        **********


[DIAGNOSIS]
 
     The RUBOUT was chosen to be used for these  two  format
effectors  as it was thought to be a non-printing character.
As it  is  not,  some  reworking  of  the  carriage  control
handling must be done.
 

                        **********


[CURE]
 
     '$'  and  '+'  format  are  only  implemented  for  the
terminal  and  the  line  printer.  The patch will cause the
following functional changes:
 
     1.   No more RUBOUT's
 
     2.   READ followed by WRITE to the  TTY  will  have  an
         extra  LF  if  the carriage control on the WRITE is
         other than '+'.  This is because the  READ  results
         in  the user's typing a CRLF to terminate input and
         FOROTS does not know about it.
 
     3.   The carriage control character of the first  WRITE
         to  the  line printer will no longer be lost.  This
         may result in an unexpected leading line feed.
 
 
Digital Equipment Corporation       27-OCT-77    Page 175
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1033 26-MAY-1977
File 2)	DSKC:FOROTS.MAC[31,4775]	created: 1440 12-JULY-1977
 
1)1		TITLE FOROTS %5A(660) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	26-MAY-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(661) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	11-JUL-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==660		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==661		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;661	-----	GET RID OF RUBOUT ON '$' AND '+' FORMAT
2)	;		DESCRIPTORS I.E., FIX PATCHES 567 AND 577
2)	;**************** END OF REVISION HISTORY
**************
1)1	;**; [567] CHANGE @  NXTLNO+5	CLRH	23-JUL-76
1)	;**; [577] CHANGE IN EDIT 567 AT NXTLNO+5	CLRH	24-SEP-7
	6
1)		JRST	[MOVEI	T0,177		;[567][577] GET A RUBOUT
1)			JSP	P1,OBYTEC	;[567] OUTPUT IT
1)			JRST	NXTO1	]	;[567] RETURN
1)		JSP	P1,OBYTEC	;OUTPUT THE CARRAGE RETURN
****
2)1	;**; [661] DELETE + INSERT @ NXTLNO+5	SWG	11-JUL-77
2)		JRST	NXTO1			;[661] SKIP CR AND LF
2)		JSP	P1,OBYTEC	;OUTPUT THE CARRAGE RETURN
**************
1)1		SUBI	T0,"*"		;RELOCATE CONTROL CHARACTER FOR
	INDEXING
1)		JUMPL	T0,OUTCC2	;CHARACTER IS NOT IN RANGE
1)		CAILE	T0,"3"-"*"	;CHECK THE HIGH END
1)		JRST	OUTCC2		;NOT IN RANGE USE THE PREVIOUS C
	CC
1)		ADDI	T0,CCC.TB	;POINT TO THE TABLE
****
2)1	;**; [661] INSERT @ OUTCCC+5	SWG	11-JUL-77
2)		PUSH	P,T1		;[661] TO BE USED TO CHECK BEG O
	F BUFFER
Digital Equipment Corporation       27-OCT-77    Page 176
PCO Log Report


2)	; CHECK CHAR VALUE - INVALID CHAR TREATED AS BLANK
2)		SUBI	T0,"*"		;RELOCATE CONTROL CHARACTER FOR
	INDEXING
2)	;**; [661] CHANGE @ OUTCCC+6	SWG	11-JUL-77
2)		JUMPL	T0,OUTCC6	;[661] BLANK OR CHARACTER NOT IN
	 RANGE
2)		CAILE	T0,"3"-"*"	;CHECK THE HIGH END
2)	;**; [661] DEL & INSERT @ OUTCCC+8	SWG	11-JUL-77
2)	OUTCC6:	MOVEI	T0,12		;[661] BLANK OR OUTOF RANGE -TRE
	AT AS BLANK
2)		ADDI	T0,CCC.TB	;POINT TO THE TABLE
**************
1)1		TLNN	P3,IO.TTA	;IS THIS THE USER'S TTY
1)		JRST	OUTCC0		;NO,CONTINUE NORMAL
1)		SKIPN	T0		;+ CARRIAGE CONTROL
1)		MOVEI	T0,177		;YES, SEND A RUB OUT (NULL'S DON
	'T WORD)
1)		SKIPGE	DD.HRO+1(P3)	;IS THE TTY BUFFER EMPTY
1)		JSP	P1,OBYTEC	;YES, OUTPUT THIS NORMAL
1)	OUTCC0:	DPB	T0,DD.HRO+1(P3)	;OVER RIDE THE PRECIOUS CHARACTE
	R
****
 
2)1	; EMPTY BUFFER CHECK - DIFFERENT FOR TTY AND OTHER
2)		TLNN	P3,IO.TTA	;[661] USERS TELETYPE?
2)		JRST	OUTCC8		;[661] NO
2)		SKIPGE	DD.HRO+1(P3)	;[661] DIFFERENT TEST FOR EMPTY
2)		JRST	OUTCCB		;[661] TTY BUFFER EMPTY
2)		JRST	OUTCC5		;[661] NOT EMPTY - CHECK LAST CH
	AR
2)	OUTCC8:	HRRZ	T1,DD.HRO+1(P3)	;[661] PICK UP BYTE POINTER
2)		SUBI	T1,1		;[661] WANT TO CHECK AGAINST BUF
	FER PTR
2)					;[661] IF BYTE POINTER IS 1 GTR
2)					;[661] THEN BUFFER IS EMPTY
2)		CAIE	T1,@DD.HRO(P3)	;[661] EQUAL NOW?
2)		SKIPA			;[661] NO - LOOK AT LAST CHAR
2)		JRST	OUTCCB		;[661] YES - NOTHING TO OVERWRIT
	E
2)	; NON-EMPTY BUFFER -CHECK IF LAST CHARACTER OUPUT WAS A LINE FEE
	D
2)	OUTCC5:	LDB	T1,DD.HRO+1(P3)	;[661] LETS LOOK AT LAST CHAR
2)		CAIN	T1,12		;[661] IS IT LF?
2)		JRST	OUTCCA		;[661] YES
2)	;BUFFER IS EMPTY OR LAST CHAR NOT LINE FEED
2)	OUTCCB:	SKIPE	T0		;[661] '+'? (0 FROM TABLE ENTRY)
2)		JRST	OUTCC3		;[661] NO -DO OBYTE
2)		JRST	OUTCC2		;[661] YES - DO NOTHING
2)	;LAST CHAR WAS LINE FEED - DO NOTHING IF CC = BLANK
2)	OUTCCA:	CAIN	T0,12		;[661] ' '? (IF SO ROTATED WORD
2)					;[661] FROM TABLE WILL LOOK LIKE
Digital Equipment Corporation       27-OCT-77    Page 177
PCO Log Report


	 0,,12)
2)		JRST	OUTCC2		;[661] YES - DO NOTHING
2)		SKIPE	T0		;[661] +? (0 FROM TABLE ENTRY)
2)		JRST	OUTCC0		;[661] NO - OVERRIDE FROM TABLE
2)		IBP	DD.HRO+1(P3)	;[661] TO OVERWRITE LF WITH NEXT
	 CHAR
2)		IBP	DD.HRO+1(P3)	;[661] 4 BYTES FORWARD AND
2)		IBP	DD.HRO+1(P3)	;[661] 1 WORD BACK = 1 BYTE BACK
2)		IBP	DD.HRO+1(P3)	;[661]
2)		SOS	DD.HRO+1(P3)	;[661]
2)		AOS	DD.HRO+2(P3)	;[661] RESET ITEM COUNT
2)		JRST	OUTCC2		;[661] ALL DONE
2)	; OUTPUT CHAR
2)	OUTCC0:	DPB	T0,DD.HRO+1(P3)	;OVER RIDE THE PRECIOUS CHARACTE
	R
**************
1)1		JSP	P1,OBYTEC	;OUTPUT THE CHARACTER AND ADVANC
	E
1)		JRST	OUTCC1		;CHECK FOR MORE CHARACTER
1)	OUTCC2:	POP	P,T0		;RESTORE THE CHARACTER
1)		POP	P,P1		;RESTORE THE JSP POINTER
****
2)1	;**; [661] INSERT LABEL @ OUTCC1+3	SWG	11-JUL-77
2)	OUTCC3:	JSP	P1,OBYTEC	;OUTPUT THE CHARACTER AND ADVANC
	E
2)		JRST	OUTCC1		;CHECK FOR MORE CHARACTER
2)	;**; CHANGE @ OUTCC2	SWG	11-JUL-77
2)	OUTCC2:	POP	P,T1		;[661]
2)		POP	P,T0		;RESTORE THE CHARACTER
2)		POP	P,P1		;RESTORE THE JSP POINTER
**************
1)1		PAGE
****
2)1	;**; INSERT NEW ENTRY TO CCC.TB+12	SWG	11-JUL-77
2)		BYTE (5)012(13)000		;[661] BLANK OR UNKNOWN
2)		PAGE
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 178
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-273*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(662)

[Date Entered]          11-JUL-77

[Programmer]            SUE GODSELL

[Routines]              FORINI    FOROTS

[Key Words]             RESET       GETSEG      LOADING

[Source Before Edit]    %5A  (000661)

[Source After Edit]     %5A  (000662)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 179
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
After the  first  call  to  RESET.   which  does  a  GETSEG  of  FOROTS,
subsequent  calls  to  RESET.   also  cause  a  GETSEG,  contrary to the
documentation.  One GETSEG should be enough and RESET.  thinks  that  it
is  checking to see if FOROTS is already there, when in fact the test is
not working.
 

                        **********


[DIAGNOSIS]
 
FORINI does not reset the value at .JBOPS after it GETSEGs FOROTS.
 

                        **********


[CURE]
 
Change FORINI to zero the left half of  the  word  at  .JBOPS  after  it
GETSEGs FOROTS.
 
Digital Equipment Corporation       27-OCT-77    Page 180
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1547 11-JULY-1977
File 2)	DSKC:FOROTS.MAC[31,4775]	created: 1612 11-JULY-1977
 
1)1		TITLE FOROTS %5A(661) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	11-JUL-77
****
2)1		TITLE FOROTS %5A(662) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	11-JUL-77
**************
1)1	VEDIT==661		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==662		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;577	QAR	FIX EDIT 567 FOR BLANK CARRIAGE CONTROL AFTER DO
	LLAR
1)	;			SIGN FORMAT--USE RUBOUT, NOT NULL
****
2)1	;577	QARSW2	FIX EDIT 567 FOR BLANK CARRIAGE CONTROL AFTER DO
	LLAR
2)	;			SIGN FORMAT--USE RUBOUT, NOT NULL
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;662	-----	FIX FORINI TO RESET .JBOPS AFTER GETSEG
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page 181
PCO Log Report


[FILCOM]
File 1)	LIB:FORINI.MAC[31,4650]	created: 0830 17-DEC-1976
File 2)	DSKC:FORINI.MAC[31,4775]	created: 1559 11-JULY-1977
 
1)1		TITLE	FORINI	%4C.(475) - ROUTINE TO SELECT THE CURREN
	T FOROTS
1)		SUBTTL	D. TODD/DRT/HPW/DMN/MD/JNG	22-Nov-75
1)	;***COPYRIGHT 1972,1973,1974,1976,1977 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS. ***
****
2)1		TITLE	FORINI	%5A(662) - ROUTINE TO SELECT THE CURRENT
	 FOROTS
2)		SUBTTL	D. TODD/DRT/HPW/DMN/MD/JNG/SWG	11-JUL-77
2)	;***COPYRIGHT 1972,1973,1974,1976,1977 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS. ***
**************
1)1	;475	-----	IMPLEMENT DBMS% ENTRY POINT.
****
2)1	;662	-----	RESET .JBOPS AFTER GETSEG OF FOROTS
2)	;475	-----	IMPLEMENT DBMS% ENTRY POINT.
**************
1)1	VEDIT==320	;MAJOR EDIT NUMBER
1)	VMINOR==0	;MINOR VERSION NUMBER
****
2)1	VEDIT==662	;MAJOR EDIT NUMBER
2)	VMINOR==0	;MINOR VERSION NUMBER
**************
1)1	RESET2:	HRRZ	P4,.JBOPS
****
2)1	;**; [662] INSERT @ RESET2-1	SWG	11-JUL-77
2)		HRRZS	.JBOPS		;[662] RESET SO NEXT TIME WON'T
	GETSEG
2)	RESET2:	HRRZ	P4,.JBOPS
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 182
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-274*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A

[Date Entered]          22-JUL-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    ERRBS

[Key Words]             ERR=        REREAD      IO.BSE

[Source Before Edit]    %5A  (000662)

[Source After Edit]     %5A  (000663)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-22507
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 183
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
After taking an ERR= branch and processing the error record with a READ,
the  next REREAD does not reread the previous record, but instead, tries
to read the next record.
 

                        **********


[DIAGNOSIS]
 
Edit 610 defined the IO.BSE flag in permanent register P3  to  tell  the
BACKSPACE  routine  that error recovery was in progress which meant that
the backspace was only to the beginning of the current record and not to
the  beginning  of the previous record.  The IO.BSE flag was being reset
after the error recovery succeeded but the P3  register  was  not  being
updated into the channel table. Therefore, on the next call to BACKSPACE
(like from REREAD), the IO.BSE flag  was  still  set  so  the  backspace
stopped  at  the  front of the current record which is really the end of
the record just read. Therefore, the REREAD read the next record.
 

                        **********


[CURE]
 
After the error processing is done, reset IO.BSE  and  then  update  the
channel table to reflect its new value.
 
Digital Equipment Corporation       27-OCT-77    Page 184
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1612 11-JULY-1977
File 2)	FTN:FOROTS.MAC[31,4577]	created: 1047 19-JULY-1977
 
1)1		TITLE FOROTS %5A(662) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	11-JUL-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(663) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	19-JUL-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==662		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==663		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;663	22507	FIX EDIT 610 TO UPDATE CHANNEL TABLE SO IO.BSE
2)	;		  (ERRBS IN PROGRESS FOR BSREAD) WILL BE RESET
2)	;**************** END OF REVISION HISTORY
**************
1)1	SKPRET:	AOS	(P)		;[564] ALWAYS SUCCEEDS DIRECTLY
****
2)1	;**; [663] @SKPRET-1  SJW  19-JUL-77
2)		PUSHJ	P,UPDCHN	;[663] UPDATE CHANNEL TABLE SO I
	O.BSE RESET
2)	SKPRET:	AOS	(P)		;[564] ALWAYS SUCCEEDS DIRECTLY
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 185
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-275*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(663)

[Date Entered]          28-JUL-77

[Programmer]            SUE GODSELL

[Routines]              FOROTS

[Key Words]             '$'FORMAT   END-OF-LIN  CARRIAGE C

[Source Before Edit]    %5A  (000663)

[Source After Edit]     %5A  (000664)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-22708
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 186
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
Output is lost if '$' appears in the FORMAT  statement,  but
not at its end and the device is a non-carriage control one.
FOROTS appears to stop output when it hits the '$'.
 

                        **********


[DIAGNOSIS]
 
'$' format is implemented to work only to  carriage  control
devices.   However,  on non-carriage control devices, FOROTS
raises the end of line flag when  it  hits  the  '$'.   This
causes IBYTE to stop outputting characters.
 

                        **********


[CURE]
 
Change the processing  of  '$'  format  to  do  nothing  for
non-carriage control devices.
 
Digital Equipment Corporation       27-OCT-77    Page 187
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1047 19-JULY-1977
File 2)	DSKC:FOROTS.MAC[31,4775]	created: 1306 28-JULY-1977
 
1)1		TITLE FOROTS %5A(663) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	19-JUL-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(664) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	28-JUL-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==663		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==664		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;664	22708	FIX '$' FORMAT ON NON-CCC DEVICES NOT TO LOSE RE
	ST OF
2)	;		LINE AFTER '$'.  FIXES ERROR MADE BY PATCH 223,
	PAR-
2)	;		TIALLY REPAIRED BY 616.
2)	;**************** END OF REVISION HISTORY
**************
1)1		TLOA	P2,FT.DOL	;[223] YES, TTY DOINT OUTPUT
1)	FSXTC:	TLO	P3,IO.EOL	;[223] SET END OF STRING
1)	FSXDL1:	AOJA	P2,FSXNXT	;GET THE NEXT DESCRIPTOR
****
2)1	;**; [664] CHANGE @FSXDL1-2 AND DELETE FSXDL1-1	SWG	28-JUL-7
	7
2)		TLO	P2,FT.DOL	;[664] YES, TTY DOING OUTPUT
2)	FSXDL1:	AOJA	P2,FSXNXT	;GET THE NEXT DESCRIPTOR
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 188
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-276*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(664)

[Date Entered]          28-JUL-77

[Programmer]            SUE GODSELL

[Routines]              FORDBL

[Key Words]             DBL PREC    EXP         OVFL        UNFL

[Source Before Edit]    %5A  (000664)

[Source After Edit]     %5A  (000665)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-22886
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 189
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
If an overflow or underflow occurs  while  taking  a  double
precision number to a double precision power, the stack will
not be cleaned up properly.
 

                        **********


[DIAGNOSIS]
 
The three temporary registers saved early in DEXP.3 will not
be  popped  off  the  stack  if an overflow or an underflow
occurs.
 

                        **********


[CURE]
 
On entry to DEXP.3, save the three registers first thing and
make  all  exiting  from  the  routine go through DRET which
restores the three registers before returning.
 
Digital Equipment Corporation       27-OCT-77    Page 190
PCO Log Report


[FILCOM]
File 1)	DSKC:FOROTS.664[31,4775]	created: 1306 28-JULY-1977
File 2)	DSKC:FOROTS.MAC[31,4775]	created: 1333 28-JULY-1977
 
1)1		TITLE FOROTS %5A(664) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	28-JUL-77
****
2)1		TITLE FOROTS %5A(665) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	28-JUL-77
**************
1)1	VEDIT==664		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==665		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;665	22886	FIX EDIT 624 TO SAVE AND RESTORE TEMPORARY REGIS
	TERS
2)	;		PROPERLY IN ALL CASES. IN DEXP.3 IN FORDBL
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page 191
PCO Log Report


[FILCOM]
File 1)	LIB:FORDBL.MAC[31,4650]	created: 1053 24-FEB-1977
File 2)	DSKC:FORDBL.MAC[31,4775]	created: 1315 28-JULY-1977
 
1)1		SKIPN	(Q)		;IS EXPONENT ZERO?
****
2)1		;**;[665] INSERT @ DEXP.3+1L FROM BELOW	SWG	28-JUL-7
	7
2)		PUSH	P,C		;[665] SAVE TEMPORARY REGISTERS
2)		PUSH	P,D		;[665] AT ENTRY BEFORE DOING
2)		PUSH	P,E		;[665] ANYTHING FOR CLEAN EXIT
2)		SKIPN	(Q)		;IS EXPONENT ZERO?
**************
1)1			POPJ P,		;YES, RETURN 0
1)			JRST OV4]	;NO, BASE 0 AND NEG EXP- OVERFLO
	W
1)		;**; [624] DEXP.3+6L DELETE 2 LINES AND INSERT SWG 29-NO
	V-76
1)		;[624] DELETE	SKIPG	A	;GET
1)		;[624] DELETE	DFN	A,B	;/A/
1)		PUSH	P,C		;[624]SAVE TEMPORARY REGISTERS
1)		PUSH	P,D		;[624]
1)		PUSH	P,E		;[624]
1)		DMOVEM	A,ARGAX		;[624]SAVE BASE
****
2)1		;**; [665] CHANGE @ DEXP.3+4L	SWG	28-JUL-77
2)			JRST DRET	;[665]YES, RETURN 0
2)			JRST OV4]	;NO, BASE 0 AND NEG EXP- OVERFLO
	W
2)		;**; [665] MOVE @ DEXP.3+6L 3 LINES ABOVE  SWG  28-JUL 7
	7
2)		;**; [624] DEXP.3+6L DELETE 2 LINES AND INSERT SWG 29-NO
	V-76
2)		DMOVEM	A,ARGAX		;[624]SAVE BASE
**************
1)1		POPJ	P,		;EXIT.
1)	OVUNFL:	MOVE	C,CSAVE		;RESTORE AC 2.
****
2)1	;**; [665] CHANGE @ DEXPZ+2	SWG	28-JUL-77
2)		JRST	DRET		;[665]EXIT.
2)	OVUNFL:	MOVE	C,CSAVE		;RESTORE AC 2.
**************
1)1		POPJ	P,		;EXIT.
1)	OV6:	ERROR	(APR,7,1,.+1)	;UNDERFLOW. OUTPUT
1)		SETZB	A,B		;ANS = 0, AND
1)		POPJ	P,		;EXIT.
1)		 ;**;[643] CSAVE-1 MOVE DEF OF ARGAX ABOVE	SWG	
	24-FEB-77
****
2)1	;**; [665] CHANGE @ OV6-1	SWG	28-JUL-77
2)		JRST	DRET		;[665]EXIT.
Digital Equipment Corporation       27-OCT-77    Page 192
PCO Log Report


2)	OV6:	ERROR	(APR,7,1,.+1)	;UNDERFLOW. OUTPUT
2)		SETZB	A,B		;ANS = 0, AND
2)	;**; [665] CHANGE @ OV6+2	SWG	28-JUL-77
2)		JRST	DRET		;[665]EXIT.
2)		 ;**;[643] CSAVE-1 MOVE DEF OF ARGAX ABOVE	SWG	
	24-FEB-77
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 193
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-277*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A

[Date Entered]          02-AUG-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    FIN%%

[Key Words]             RAND READ   ERR=        FORMAT ARR  LOOPING

[Source Before Edit]    %5A  (000665)

[Source After Edit]     %5A  (000666)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-21877
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 194
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
Reading a RANDOM file with a  FORMAT  contained  in  an  array,  if  the
previous  READ  was  successful and the next READ takes the END= or ERR=
branch, FOROTS will loop.
 

                        **********


[DIAGNOSIS]
 
FOROTS loops in the core manager trying to return a chunk of  core  that
is already free.  The core is for the encoded FORMAT statement.  Because
the FORMAT is in an array, its encoding cannot be saved for  later  use,
since the contents of the array may change.  However, a low core pointer
(FST.DY) which points to the "current" FORMAT statement is  not  cleared
after  the  encoding  is  freed  after the successful READ.  On the next
READ, the exit branch is taken before more core is gotten to encode  the
new  FORMAT.   But  on  exit  from  FOROTS, the pointer to the "current"
FORMAT is set pointing to a FORMAT in an array so FOROTS tries  to  free
up  the  core  its  encoding  is  occupied.   Unfortunately, its core is
already free.
 

                        **********


[CURE]
 
Clear FST.DY on exit from FOROTS, since FOROTS does not expect it to  be
set on next entrance anyway.
 
Digital Equipment Corporation       27-OCT-77    Page 195
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1333 28-JULY-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 0739 02-AUG-1977
 
1)1		TITLE FOROTS %5A(665) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	28-JUL-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(666) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	2-AUG-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==665		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==666		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;666	21877	CLEAR FST.DY AT FIN% SO ON ERR= OF RANDOM READ,
	PREVIOUS
2)	;		  FORMAT ARRAY WHICH WAS FREED IS NOT FREED AGAI
	N (SINCE
2)	;		  THAT LOOPS PMEM%%)
2)	;**************** END OF REVISION HISTORY
**************
1)1	FINF0:	TLNE	P3,IO.EDC	;[471] ENCODE/DECODE REQUEST
****
2)1	;**;[666]  INSERT @ FINF0 -1/2  SJW  2-AUG-77
2)		SETZM	T1,FST.DY(P4)	;[666] CLEAR CURRENT FORMAT STAT
	EMENT
2)	FINF0:	TLNE	P3,IO.EDC	;[471] ENCODE/DECODE REQUEST
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 196
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-278*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5(536)

[Date Entered]          05-AUG-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    OPNPPN

[Key Words]             DIR=0       DEFAULT     PATH        LIB:

[Source Before Edit]    %5A  (000666)

[Source After Edit]     %5A  (000667)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-22601
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 197
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
When an array specified as the argument to the  DIRECTORY  parameter  in
the  OPEN  statement  contains only zeros, FOROTS does not find the file
being OPENed if the file is in a LIBrary area.
 

                        **********


[DIAGNOSIS]
 
Edit 536 allowed the user to leave either  the  project  number  or  the
programmer  number  zero  and  FOROTS  would  default them to the user's
logged-in project or programmer number.  Unfortunately if the user  left
BOTH  halves of the ppn zero (specifying the default path), FOROTS still
filled in the logged-in ppn.  Under 6.02 monitor, this was ok since  the
LIB:  area was searched even if a ppn was specified but not under 6.03.
 

                        **********


[CURE]
 
Explicitly check for the entire ppn (but not necessarily the SFD)  being
zero.   If it is, pass zero to the monitor so it will search the default
path.  Notice that in an array value for DIRECTORY, if the left half  of
the  first  word  is  zero,  FOROTS assumes it contains only the project
number and takes the second word as the programmer  number  which  means
the SFD (if any) starts in the third word or that the third word must be
zero to end the DIRECTORY specification.
 
This patch allows the  user  to  override  the  directory  specification
during  DIALOG  mode  with [0,0] to force the default ppn.  Also, [,] is
treated identically to [0,0].
 
Digital Equipment Corporation       27-OCT-77    Page 198
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 0739 02-AUG-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 0818 05-AUG-1977
 
1)1		TITLE FOROTS %5A(666) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	2-AUG-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(667) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	5-AUG-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==666		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==667		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;667	22601	IN OPEN/CLOSE, IF USER SPECIFIES DIRECTORY=0,0,
	DON'T
2)	;		  DEFAULT BOTH PROJ,PROG TO USER'S PPN (LIKE EDI
	T 536
2)	;		  SAYS).  JUST PASS 0 SO MONITOR CAN USE DEFAULT
	 PATH
2)	;**************** END OF REVISION HISTORY
**************
1)1	OPNPP4:	PUSH	P,T3		;[536] GET A REGISTER
1)		GETPPN	T3,		;[536] GET THE USER'S PPN
****
2)1	;**; [667] INSERT @OPNPP4  SJW  5-AUG-77
2)	OPNPP4:	SKIPN	G2		;[667] IS PPN = 0 ?
2)		JRST	OPNPP6		;[667] YES: LET MONITOR DEFAULT
	IT
2)		PUSH	P,T3		;[536] GET A REGISTER
2)		GETPPN	T3,		;[536] GET THE USER'S PPN
**************
1)1		SKIPN	T1,DD.PPN(P2)	;GET THE POINTER WORD
1)		HRLI	T1,-1		;CORE BLOCK NOT AVAILABLE
****
2)1	;**; [667] INSERT @OPNPP4+8L  SJW  5-AUG-77
2)	OPNPP6:	SKIPN	T1,DD.PPN(P2)	;GET THE POINTER WORD
2)		HRLI	T1,-1		;CORE BLOCK NOT AVAILABLE
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 199
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-279*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A

[Date Entered]          10-AUG-77

[Programmer]            JIM TOTTON

[Routines]              DENTAB

[Key Words]             6250 BPI

[Source Before Edit]    %5A  (000667)

[Source After Edit]     %5A  (000670)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-22686
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 200
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     FOROTS  doesn't  know  about  6250  drives,  thus   not
allowing 6250 as an argument to the DENSITY option (switch).
 

                        **********


[DIAGNOSIS]
 
     The table DENTAB in FOROTS doesn't have  an  entry  for
6250.
 

                        **********


[CURE]
 
     Add entry to the DENTAB table.  See filcom.
 
Digital Equipment Corporation       27-OCT-77    Page 201
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 0818 05-AUG-1977
File 2)	DSKC:FOROTS.MAC[35,4520,FOROTS]	created: 1320 10-AUG-1977
 
1)1		TITLE FOROTS %5A(667) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	5-AUG-77
****
2)1		TITLE FOROTS %5A(670) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	5-AUG-77
**************
1)1	VEDIT==667		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==670		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;670	22686	UNCOMMENT 6250 BPI ENTRY IN TAPOP. DENSITY TABLE
2)	;**************** END OF REVISION HISTORY
**************
1)1	;	SIXBIT	/6250/		;[615] 6250 BPI (SOME DAY)
1)	DENLEN==.-DENTAB		;[615] LENGTH OF DENSITY TABLE
****
2)1	;**; [670] Change @ DENTAB + 5, JMT, 10-Aug-77
2)		SIXBIT	/6250/		;[670] [615] 6250 BPI (SOME DAY)
2)	DENLEN==.-DENTAB		;[615] LENGTH OF DENSITY TABLE
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 202
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-280*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(601)

[Date Entered]          12-AUG-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    ELIST%    SLIST%

[Key Words]             ELIST       FT.INC      FT.ELT

[Source Before Edit]    %5A  (000670)

[Source After Edit]     %5A  (000671)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 203
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
Certain flavors of FORMATted READs with real array iolists with  implied
DO loops get an integer value put in the first array value read.
 

                        **********


[DIAGNOSIS]
 
FOROTS only worries about a simple list (a  block  of  an  array  to  be
filled)  or an extended list (elements from separate arrays to be filled
in alternately), that is,
 
        READ (-) (A(I), I=1,10)
 
as opposed to
 
        READ (-) (A(I), B(I), I=1,10)
 
The FORTRAN compiler has a tendency to generate a singleton  ELIST,  ie,
an ELIST with one increment, address pair, for the statement
 
        READ (-) (A(J,I),I=1,10)
 
Therefore the FT.ELT flag in permanent register P2 is  still  set  after
the  iolist  has  been  encoded  and  ready for processing.  The problem
arises when floating-point input is called (FLIRT%).  The flag FT.INC in
FLIRT%, which is used by NAMELIST and LIST-DIRECTED input of integers to
say that the numeric input should be converted back  to  integer  before
storing  the  value,  is  in the same place in register P2 as the FT.ELT
flag.  Therefore the first  time  through  FLIRT%,  a  real  value  gets
converted  to  integer.  Thereafter, the flag is reset so no other value
on this iolist is affected.
 

                        **********


[CURE]
 
Digital Equipment Corporation       27-OCT-77    Page 204
PCO Log Report


The FT.ELT flag is only used during encoding of the ELIST to  warn  that
the  argument  block contains increment, address pairs as opposed to one
increment and a list of addresses as in an SLIST.  For the  time  being,
we  will  time-share  the use of the FT.ELT/FT.INC bit in P2 by insuring
that the FT.ELT bit is off when the encoding of the iolist  argument  is
completed.   This  is  already  true  if  the  argument block creates an
extended list so fix it for the singleton ELIST case.
 
Digital Equipment Corporation       27-OCT-77    Page 205
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1320 10-AUG-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 0821 12-AUG-1977
 
1)1		TITLE FOROTS %5A(670) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	5-AUG-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(671) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	12-AUG-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==670		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==671		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;671	-----	HANDLE SINGLETON ELIST AS SLIST (BEWARE: FT.INC
2)	;		  IN FLIRT% = FT.ELT)
2)	;**************** END OF REVISION HISTORY
**************
1)1		JRST	DATA2		;[275] NO
1)	;**; [575] INSERT @ SLIST3+3 1/2	CLRH	20-AUG-76
1)		TLNE	P2,FT.LSD	;[575] LIST-DIRECTED ?
1)		JRST	DATA2		;[575] YES, DON'T NEED TO MAKE E
	LIST
1)		CAME	G2,[2,,2]	;[275] SLISTABLE
1)		JRST	SLIST1		;[275] NO - GENERATE ELIST
1)		CAIN	T5,TP%DOR	;[275] FORMATTED
1)		TLNN	P3,IO.FMT	;[275] DOUBLE PRECISION
1)		JRST	DATA4		;[275] NO - CHANGE INCR TO 1,,1
1)		JRST	DATA2		;[275] YES - LEAVE INCR AS 2,,2
****
2)1	;**; [671] @SLIST3+3 ETC  SJW  12-AUG-77
2)		JRST	SLIST4		;[671] NO
2)	;**; [575] INSERT @ SLIST3+3 1/2	CLRH	20-AUG-76
2)		TLNE	P2,FT.LSD	;[575] LIST-DIRECTED ?
2)		JRST	SLIST4		;[671] YES, DON'T NEED TO MAKE E
	LIST
2)		CAME	G2,[2,,2]	;[275] SLISTABLE
2)		JRST	SLIST1		;[275] NO - GENERATE ELIST
2)		TLZ	P2,FT.ELT	;[671] TURN OFF ELIST SINCE NOW
	AN SLIST
2)		CAIN	T5,TP%DOR	;[275] FORMATTED
Digital Equipment Corporation       27-OCT-77    Page 206
PCO Log Report


2)		TLNN	P3,IO.FMT	;[275] DOUBLE PRECISION
2)		JRST	DATA4		;[275] NO - CHANGE INCR TO 1,,1
2)	SLIST4:	TLZ	P2,FT.ELT	;[671] TURN OFF ELIST SINCE NOW
	AN SLIST
2)		JRST	DATA2		;[275] YES - LEAVE INCR AS 2,,2
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 207
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-281*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A

[Date Entered]          16-AUG-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    BINIO

[Key Words]             RECSIZE     IMAGE       RANDOM

[Source Before Edit]    %5A  (000671)

[Source After Edit]     %5A  (000672)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-QA2104
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 208
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
When reading a RANDOM access, IMAGE mode file with an iolist longer than
the record length, FOROTS gives an "ILLEGAL LSCW ..." error.
 

                        **********


[DIAGNOSIS]
 
Edit 621 tried to enforce record length on RANDOM  IMAGE  output,  since
the  FOROTS  model  of I/O forces truncation or padding of records which
are too long or not long enough.  This allows the user to build  a  file
which  will  always  be  readable  in  RANDOM access with a fixed record
length.  Unfortunately, edit 621 affects RANDOM IMAGE input.  On  input,
FOROTS allows the iolist to override the record length specification.
 

                        **********


[CURE]
 
Fix edit 621 to enforce record length ONLY on RANDOM  IMAGE  output  and
ignore the record length on RANDOM IMAGE input.
 
Digital Equipment Corporation       27-OCT-77    Page 209
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 0821 12-AUG-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 1652 15-AUG-1977
 
1)1		TITLE FOROTS %5A(671) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	12-AUG-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(672) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	15-AUG-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==671		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==672		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;672	QA2104	FIX EDIT 621 TO ENFORCE RECORD LENGTH ONLY ON OU
	TPUT IN
2)	;		  IMAGE MODE
2)	;**************** END OF REVISION HISTORY
**************
1)1			SKIPN	G4		;[621] IF ANY
****
2)1	;**;[672] INSERT @BINIO + 6 1/2 (INSIDE LITERAL INSIDE [621])  S
	JW  15-AUG-77
2)			TLNE	P3,IO.INO	;[672] IGNORE REC LENGTH
	 ON INPUT
2)			SKIPN	G4		;[621] IF ANY
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 210
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-282*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(673)

[Date Entered]          19-AUG-77

[Programmer]            SUE GODSELL

[Routines]              FORCNV

[Key Words]             DBL OCTAL   VBL FORMAT  I/O

[Source Before Edit]    %5A  (000672)

[Source After Edit]     %5A  (000673)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-22607
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 211
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
Would like to do double precision octal I/O  based  on  data
type  of  variable.   That  is,  check  the data type of the
variable and  do  a  two  word  transfer  if  it  is  double
precision.
 

                        **********


[DIAGNOSIS]
 
Check the data type of the variable to see if it  is  double
precision and transfer to/from two words.  On variable width
output, use a field width of 25.
 

                        **********


[CURE]
 
Make the change.
 
NOTE:  The FORTRAN definition of an octal constant  includes
a  sign.   However,  with  a  negative  number, the hardware
zeroes the high order bit of the low order word when  FOROTS
negates  the  number.   Therefore, FOROTS, like the compiler
will always turn this bit on if it has  a  negative  number.
This  means  that  a double octal constant is really 71 bits
wide including sign.
 
Digital Equipment Corporation       27-OCT-77    Page 212
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC	created: 1652 15-AUG-1977
File 2)	DSK:FOROTS.MAC	created: 0847 17-AUG-1977
 
1)1		TITLE FOROTS %5A(672) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	15-AUG-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(673) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	17-AUG-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==672		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==673		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;673	22607	IMPLEMENT DOUBLE PRECISION OCTAL I/O (FORCNV).
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page 213
PCO Log Report


[FILCOM]
File 1)	LIB:FORCNV.MAC[31,4650]	created: 0931 26-MAY-1977
File 2)	DSKC:FORCNV.MAC[31,4775]	created: 1408 18-AUG-1977
 
1)1		TITLE	FORCNV	%5A(660)		CONVERSION ROUTI
	NES
1)		SUBTTL	REVISION HISTORY
****
2)1		TITLE	FORCNV	%5A(673)		CONVERSION ROUTI
	NES
2)		SUBTTL	REVISION HISTORY
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;673	22607	IMPLEMENT DOUBLE PRECISION OCTAL I/O.
2)	;**************** END OF REVISION HISTORY
**************
1)1		TITLE	OCTAL%	%4.(433)	OCTAL INPUT/OUTPUT CONVE
	RSION ROUTINE
1)		SUBTTL	D. TODD/DRT/HPW/MD		7-APR-75
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS. ***
****
2)1		TITLE	OCTAL%	%5A(673)	OCTAL INPUT/OUTPUT CONVE
	RSION ROUTINE
2)		SUBTTL	D. TODD/DRT/HPW/MD/SWG		17-AUG-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS. ***
**************
1)1		LDB	T3,W.PNTR	;[265] GET THE FIELD WIDTH
****
2)1	;**; [673] INSERT @ OCTAL%+2L	SWG	17-AUG-77
2)		MOVE	T1,DAT.TP+2(P4)	;[673] GET VARIABLE TYPE
2)		CAIN	T1,TP%DOR	;[673] IF DOUBLE REAL
2)		MOVEI	T2,^D24		;[673] THEN ALLOW 24 DIGITS
2)		LDB	T3,W.PNTR	;[265] GET THE FIELD WIDTH
**************
1)1		LSH	T4,3		;POSITION OUTPUT WORD
1)		ADD	T4,T0		;ACCUMULATE THE OCTAL SUM
1)		SOJA	T3,OCTI1	;RETURN FOR NEXT CHARACTER
****
2)1	;**; [673] DELETE + INSERT @ OCTI1A+1	SWG	17-AUG-77
2)		LSHC	T4,3		;[673] POSITION OUTPUT WORD
2)		TDO	T5,T0		;[673] OR IN DIGIT
2)		SOJA	T3,OCTI1	;RETURN FOR NEXT CHARACTER
**************
1)1	OCTI5:	TLNE	T2,200000	;CHECK THE SIGN OF THE OUTPUT
1)		MOVNS	T4		;NEGATIVE (NEGATE THE RESULT)
1)		MOVEM	T4,(G1)		;PUT VALUE IN USER'S VARIABLE
1)		PJMPL	T3,SFDEL%	;[354] SAVE DELIMITER IF NECESSA
	RY
Digital Equipment Corporation       27-OCT-77    Page 214
PCO Log Report


****
2)1	;**; [673] CHANGE,DEL + INSERT @ OCTI5	SWG	17-AUG-77
2)	OCTI5:	TLNN	T2,200000	;[673] CHECK THE SIGN OF THE OUT
	PUT
2)		JRST	OCTI6		;[673] POSITIVE
2)		DMOVN	T4,T4		;[673] NEGATIVE (NEGATE THE RESU
	LT)
2)		TLO	T5,400000	;[673] DMOVN ZEROES SIGN BIT OF
	RIGHT
2)					;[673] WORD - VAL IS NEG SO TURN
	 IT ON ALWAYS
2)	OCTI6:	MOVEM	T5,(G1)		;[673] ASSUME SINGLE PREC - RETU
	RN LOW ORDER WORD
2)		MOVE	T1,DAT.TP+2(P4)	;[673] GET DATA TYPE
2)		CAIN	T1,TP%DOR	;[673] IF DOUBLE REAL
2)		DMOVEM	T4,(G1)		;[673] THEN RETURN BOTH HALVES
2)		PJMPL	T3,SFDEL%	;[354] SAVE DELIMITER IF NECESSA
	RY
**************
1)1	OCTO1:	SUB	T3,T2		;FIND THE EXCESS FIELD WIDTH
****
2)1	;**; [673] INSERT @ OCTO1	SWG	17-AUG-77
 
 
2)		CAIN	T1,TP%DOR	;[673] IF DOUBLE REAL
2)		MOVEI	T3,^D25		;[673] THEN ITS O25
2)	OCTO1:	SUB	T3,T2		;FIND THE EXCESS FIELD WIDTH
**************
1)1	OCTO3:	POPJ	P,		;YES, RETURN TO FOROTS
****
2)1	;**; [673] INSERT @ OCTO3	SWG	17-AUG-77
2)		TRNE	T5,1		;[673] IF ADDR IN BYTE POINTER N
	OT 0,
2)		JRST	OCTO3		;[673] HAVE DONE DOUBLE PRECISIO
	N OUTPUT
2)		MOVE	T1,DAT.TP+2(P4)	;[673] ELSE GET DATA TYPE
2)		CAIN	T1,TP%DOR	;[673] IF DOUBLE REAL
2)		JRST	OCTO2		;[673] THEN CONTINUE FOR SECOND
	WORD
2)	OCTO3:	POPJ	P,		;YES, RETURN TO FOROTS
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 215
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-283*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A

[Date Entered]          22-AUG-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    OPEN

[Key Words]             LOGICALNAM  EDIT 634    DV.ASP

[Source Before Edit]    %5A  (000673)

[Source After Edit]     %5A  (000674)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-23036
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 216
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
With two files with the same logical name as a DEVICE= argument  on  two
different  Fortran  unit  numbers,  one OPENed SEQIN and then one OPENed
SEQOUT, the first WRITE to the SEQOUT  file  gets  "ILLEGAL  ACCESS  FOR
DEVICE".
 
Also given numerous files with the same  logical  name  as  the  DEVICE=
argument,  all I/O goes to the file OPENed first, regardless of the unit
number specified.
 
This occurs after edit 634.
 

                        **********


[DIAGNOSIS]
 
Edit 634 left the DEVICE= argument as the logical name specified and did
not replace it with the physical device name.  A DEVCHR UUO on a logical
name returns the DV.ASP bit on after the  first  OPEN  to  that  logical
device even if the logical name specifies a disk device.  FOROTS assumes
that if the device is already assigned to the program (DV.ASP) then  the
device  can  only  handle  one  file (ie, is NOT a directory device) and
forces all subsequent OPENs on that device to the original channel.
 

                        **********


[CURE]
 
If the DV.ASP bit is on but the device is a disk  or  directory  device,
allocate a new channel anyway.
 
Digital Equipment Corporation       27-OCT-77    Page 217
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1419 18-AUG-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 1100 21-AUG-1977
 
1)1		TITLE FOROTS %5A(673) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	17-AUG-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(674) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	21-AUG-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==673		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==674		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;674	23036	OPEN NEW CHANNEL FOR DIRECTORY DEVICE EVEN IF DE
	VICE
2)	;		  ALREADY ASSIGNED TO PROGRAM
2)	;**************** END OF REVISION HISTORY
**************
1)1		MOVSI	T2,-20		;SET UP AN AOBJP T2,POINTER
****
2)1	;**;[674]  INSERT @OPENDB + 1 1/2  SJW  21-AUG-77
2)		TLNE	G3,DV.DSK!DV.DIR	;[674] IS DEVICE DSK OR
	DIRECTORY ?
2)		  JRST	OPEND2			;[674] YES: ALWAYS GET N
	EW CHANNEL
2)		MOVSI	T2,-20		;SET UP AN AOBJP T2,POINTER
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 218
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-284*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(675)

[Date Entered]          22-AUG-77

[Programmer]            SUE GODSELL

[Routines]              FOROTS

[Key Words]             EXIT        QUEUE       CLOSE FILE

[Source Before Edit]    %5A  (000674)

[Source After Edit]     %5A  (000675)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-23611
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 219
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
If a file with 'DISPOSE=PRINT!LIST!PUNCH' is  closed  before
other open files in the EXITing process, the remaining files
will not be closed.
 

                        **********


[DIAGNOSIS]
 
The queuing code clobbers the AOBJN pointer used by EXIT  to
loop through the channel table, causing EXIT to think it has
finished looking through the table before it really has.
 

                        **********


[CURE]
 
Before EXIT branches off to the CLOSE code, it  should  save
the  AOBJN  pointer  and  then  it  should  restore  when it
returns.
 
 
Digital Equipment Corporation       27-OCT-77    Page 220
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1100 21-AUG-1977
File 2)	DSKC:FOROTS.MAC[31,4775]	created: 1416 22-AUG-1977
 
1)1		TITLE FOROTS %5A(674) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	21-AUG-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(675) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	22-AUG-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==674		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==675		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;675	23611	SAVE + RESTORE AOBJN PTR IN EXIT CODE WHICH GETS
2)	;		CLOBBERED IF ANY QUEUING IS DONE.
2)	;**************** END OF REVISION HISTORY
**************
1)1		SKIPE	P3,(P2)		;IS THIS CHANNEL DEFINED
1)		PUSHJ	P,RELE%%	;YES, RELEASE THE CHANNEL
1)	EXIT.2:	AOBJN	P2,EXIT.1	;CONTINUE THRU ALL CHANNELS
****
2)1	;**; [675] CHANGE + INSERT @ EXIT.1 + 2	SWG	22-AUG-77
2)		SETCA	P3,		;[675] IS THIS CHANNEL
2)		JUMPE	P3,EXIT.2	;[675] DEFINED??
2)		PUSH	P,P2		;[675] SAVE AOBJN PTR IN CASE CL
	OS.Q IS CALED
2)		PUSHJ	P,RELE%%	;YES, RELEASE THE CHANNEL
2)	;**; [675] INSERT @ EXIT.2	SWG	22-AUG-77
2)		POP	P,P2		;[675] RESTORE P2
2)	EXIT.2:	AOBJN	P2,EXIT.1	;CONTINUE THRU ALL CHANNELS
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 221
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-285*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(676)

[Date Entered]          26-AUG-77

[Programmer]            SUE GODSELL

[Routines]              FORPRM    FOROTS

[Key Words]             QUEUE       DISPOSE=    DEVICE=     QUEUENAME

[Source Before Edit]    %5A  (000675)

[Source After Edit]     %5A  (000676)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-QA2111
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 222
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
When 'DISPOSE=LIST!PRINT!PUNCH' is specified on OPEN and the
file is closed at EXIT time, an invalid QUEUE name is passed
to QMANGR causing a fatal error.
 

                        **********


[DIAGNOSIS]
 
Edit 647 added the capability of supplying a QUEUE name when
one of these DISPOSE options was used by specifying a device
name on the call to CLOSE.  Therefore, if  the  DEVICE  name
were changed from the OPEN to the CLOSE, it would be assumed
to be the QUEUE name which the user wished passed to QMANGR.
However,  the code does not properly handle the situation in
which the DISPOSE option is specified on the  OPEN  and  the
file is closed at EXIT time rather than via an explicit call
to CLOSE.  This results  in  an  invalid  queue  name  being
passed to QMANGR.
 

                        **********


[CURE]
 
Modify edit 647 to handle the afore  mentioned  case.   This
involves  changing the functionality of the low segment data
based word DEV.SV which was added with edit 647.
 
 
Digital Equipment Corporation       27-OCT-77    Page 223
PCO Log Report


[FILCOM]
File 1)	LIB:FORPRM.MAC[31,4650]	created: 1044 21-MAR-1977
File 2)	DSKC:FORPRM.MAC[31,4775]	created: 0852 26-AUG-1977
 
1)1		UNIVERSAL FORPRM %5A(647) - FOROTS UNIVERSAL PARAMETER F
	ILE
1)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW/SWG	
	21-MAR-77
1)		PASS2		;SAVE PRINT OUT ON PASS 2
****
2)1		UNIVERSAL FORPRM %5A(676) - FOROTS UNIVERSAL PARAMETER F
	ILE
2)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW/SWG	
	23-AUG-77
2)		PASS2		;SAVE PRINT OUT ON PASS 2
**************
1)1	VEDIT==647		;EDIT NUMBER
1)	VMINOR==1		;MINOR VERSION NUMBER
****
2)1	VEDIT==676		;EDIT NUMBER
2)	VMINOR==1		;MINOR VERSION NUMBER
**************
1)1	;*** END OF REVISION HISTORY ******
****
2)1	;676	-----	DEFINE FLAGS FOR DEV.SV WORD OF EDIT 647
2)	;*** END OF REVISION HISTORY ******
**************
1)1		PAGE
****
2)1	;**; [676] INSERT AFTER FT.SCL DEFINITION	SWG	23-AUG-7
	7
2)	; ADD FLAG DEFINITION
2)	;FLAGS TO INDICATE CHANGE OF OPTIONS FROM OPEN TO CLOSE -
2)	;STORED IN LEFT HALF OF DEV.SV IN LOW SEG DATA BASE
2)	CH.DEV==700000	;[676] DEVICE= CHANGED
2)		PAGE
**************
 
Digital Equipment Corporation       27-OCT-77    Page 224
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1416 22-AUG-1977
File 2)	DSKC:FOROTS.MAC[31,4775]	created: 1023 26-AUG-1977
 
1)1		TITLE FOROTS %5A(675) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	22-AUG-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(676) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	23-AUG-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==675		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==676		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;676	-----	FIX 'DISPOSE=LIST!PRINT!PUNCH' TO GIVE VALID
2)	;		QUEUE NAME WHEN DISPOSE SPECIFIED AT OPEN AND
2)	;		IMPLICIT CALL TO CLOSE.  FIX TO 674.
2)	;**************** END OF REVISION HISTORY
**************
1)1		MOVE	G3,DD.STS(P3)	;GET THE DEV CHAR STATUS
1)		TLNN	G3,DV.DSK!DV.DTA;[204] DISK OR DECTAPE?
****
2)1	;**; [676] INSERT @ CLOS%0+11 1/2L	SWG	22-AUG-77
2)		MOVE	T0,DEV.SV(P4)	;[676] PICK UP OPEN DEV SAVED AB
	OVE
2)		SETZM	DEV.SV(P4)	;[676] CLEAR FOR USE AS FLAG WOR
	D
2)		CAMN	T0,DD.DEV(P3)	;[676] DID DEVICE CHANGE??
2)		JRST	CLOS01		;[676] NO; LEAVE FLAG WORD ZEROE
	D
2)		HRLZI	T0,CH.DEV	;[676] TURN ON BIT TO SAY DEV CH
	ANGED
2)		MOVEM	T0,DEV.SV(P4)	;[676] STORE IN FLAG WORD DEV.SV
2)	CLOS01:	MOVE	G3,DD.STS(P3)	;[676] GET THE DEV CHAR STATUS
2)		TLNN	G3,DV.DSK!DV.DTA;[204] DISK OR DECTAPE?
**************
1)1		CAMN	T2,DEV.SV(P4)	;[647] WAS DEVICE= SPECIFIED ON
	CLOSE ?
1)		HLLZM	T1,Q.DEV(P2)	;[647] NO, USE DEFAULT Q NAME AS
	 DEVICE
1)		MOVE	T1,[BYTE (9)Q.FF-Q.ZER-1,Q.FLEN(18)1];GET THE QU
Digital Equipment Corporation       27-OCT-77    Page 225
PCO Log Report


	E SIZE
****
2)1	;**; [676] INSERT + CHANGE @ CLOS.Q+12(8)	SWG	23-AUG-7
	7
2)		MOVE	T2,DEV.SV(P4)	;[676] PICK UP FLAG WORD FOR CHA
	NGES
2)		TLZN	T2,CH.DEV	;[676] WAS DEVICE= CHANGED ON CL
	OSE?
2)		HLLZM	T1,Q.DEV(P2)	;[647] NO, USE DEFAULT Q NAME AS
	 DEVICE
2)		MOVEM	T2,DEV.SV(P4)	;[676] RESET LOW CORE FLAG WORD
	FOR NEXT TIME
2)		MOVE	T1,[BYTE (9)Q.FF-Q.ZER-1,Q.FLEN(18)1];GET THE QU
	E SIZE
**************
1)1	CLOS%R:	SETZ	T0,		;[331] [204] CLEAR THE CHANNEL P
	OINTER
1)		DPB	T0,FLU.BP(P4)	;[204] IN THE FLU TABLE
****
2)1	;**; [676] CHANGE @ CLOS%R	SWG	23-AUG-77
2)	CLOS%R:	SETZB	T0,DEV.SV(P4)	;[676][331] [204] CLEAR THE CHAN
	NEL POINTER
2)					;[676] AND FLAG WORD FOR SAFETY
	SAKE
2)					;[676] SO WILL ALWAYS BE ZERO AT
	 BEG OF CLOSE
2)		DPB	T0,FLU.BP(P4)	;[204] IN THE FLU TABLE
**************
1)1		MOVEI	P2,CHN.TB+1(P4)	;GET THE CHANNEL TABLE ADDRESS
****
 
 
2)1	;**; [676] INSERT @ EXIT%%+1/2	SWG	23-AUG-77
2)		SETZM	DEV.SV(P4)	;[676] CLEAR FLAG WORD IN CASE L
	EFT OVER
2)		MOVEI	P2,CHN.TB+1(P4)	;GET THE CHANNEL TABLE ADDRESS
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 226
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-286*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(677)

[Date Entered]          30-AUG-77

[Programmer]            SUE GODSELL

[Routines]              FOROTS

[Key Words]             WRITE-LOCK  SHORT BLOC  TAPE ERR    WRITE-PROT

[Source Before Edit]    %5A  (000676)

[Source After Edit]     %5A  (000677)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-22964
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 227
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
Trying to write to a write-locked tape does not generate  an
error  if  the  total  amount  of  output  is  less than the
blocksize.
 

                        **********


[DIAGNOSIS]
 
There is no explicit OUT performed to write to the tape  and
the  CLOSE  which  causes an OUT for the last block does not
have an error return.
 

                        **********


[CURE]
 
After doing the CLOSE UUO, check the status on  the  channel
to see if any errors were encountered.
 
 
Digital Equipment Corporation       27-OCT-77    Page 228
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1023 26-AUG-1977
File 2)	DSKC:FOROTS.MAC[31,4775]	created: 1709 30-AUG-1977
 
1)1		TITLE FOROTS %5A(676) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	23-AUG-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(677) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	29-AUG-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==676		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==677		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;677	22964	FIX CLOSE TO CHECK STATUS AFTER CLOSE UUO TO
2)	;		CATCH ANY ERRORS DURING CLOSE.
2)	;**************** END OF REVISION HISTORY
**************
1)1		TLZ	P3,IO.OPN	;[204] CLEAR THE OPEN BIT
1)		SETZM	DD.HRI+2(P3)	;CLEAR THE ITEM COUNTS
****
2)1	;**; [677] INSERT @ CLOS..+6  SWG  29-AUG-77
2)		HLLZ	T1,DD.UNT(P3)	;[677] GET THE CHANNEL NUMBER
2)		TLO	T1,(GETSTS)	;[677] GET A STATUS UUO
2)		XCT	T1		;[677] GET THE DEVICE STATUS
2)		TRNE	T0,740000	;[677] ARE ANY ERROR BITS ON?
2)		JRST	[MOVEI	T1,CLSERR	;[677] YES - SET UP ERRO
	R RETURN
2)			MOVEM	T1,ERR.RT(P4)	;[677] IN CASE ERR= SUPP
	LIED
2)			ERROR	(DEV,0,5,CLOS.1)  ;[677] DO THE ERROR RE
	PORT
2)				]		;[677] END OF LITERAL
2)	CLOS.1:	TLZ	P3,IO.OPN	;[677][204] CLEAR THE OPEN BIT
2)		SETZM	DD.HRI+2(P3)	;CLEAR THE ITEM COUNTS
**************
1)1		PAGE
****
2)1	;	ON DEVICE ERROR ON CLOSE NEED TO MAKE SURE
2)	;	UNIT IS CLOSED SO WILL NOT GET ERRO
2)	;	ON EXITING.
Digital Equipment Corporation       27-OCT-77    Page 229
PCO Log Report


2)	;	CALLED BY PUSHJ,P
2)	;	SKIP RETURN VIA SKPRET ON SUCCESS
2)	;**; [677] INSERT @ UPDCHN+5  SWG  30-AUG-77
2)	CLSERR:	TLZ	P3,IO.OPN	;[677] CLOSE THE FILE
2)		SETZM	DD.HRI+2(P3)	;[677] CLEAR THE ITEM COUNTS
2)		SETZM	DD.HRO+2(P3)	;[677] ETC
2)		PUSHJ	P,UPDCHN	;[677] UPDATE CHANNEL TABLE
2)		PJRST	SKPRET		;[677] DO A SKIP RETURN
2)		PAGE
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 230
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-287*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(700)

[Date Entered]          31-AUG-77

[Programmer]            SUE GODSELL

[Routines]              FORDBL    FOROTS

[Key Words]             DEXP        DIVI CHECK  ZERO DIVID

[Source Before Edit]    %5A  (000677)

[Source After Edit]     %5A  (000700)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-23542
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 231
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
With some arguments to DEXP, a FLOATING DIVIDE CHECK occurs.
 

                        **********


[DIAGNOSIS]
 
In the table  searching  mechanism  of  the  algorithm,  the
2-word  fraction  is  shifted  right  to  make  room for the
exponent.  In some cases, the only significant bits are  the
ones being shifted out causing a divide by zero.
 

                        **********


[CURE]
 
Change the algorithm to return 1.0 if the  only  significant
bits are the low order 10 (octal) which will be sifted out.
 
Digital Equipment Corporation       27-OCT-77    Page 232
PCO Log Report


[FILCOM]
File 1)	DSKC:FOROTS.MAC[31,4775]	created: 1709 30-AUG-1977
File 2)	DSKC:FOROTS.700[31,4775]	created: 1726 30-AUG-1977
 
1)1		TITLE FOROTS %5A(677) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	29-AUG-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(700) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	30-AUG-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==677		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==700		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;700	23542	FIX DEXP. IN FORDBL NOT TO GIVE FLOATING DIVIDE
2)	;		CHECK.
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page 233
PCO Log Report


[FILCOM]
File 1)	LIB:FORDBL.MAC[31,4650]	created: 1315 28-JULY-1977
File 2)	DSKC:FORDBL.MAC[31,4775]	created: 1518 30-AUG-1977
 
1)1	TITLE	DEXP.	%4.(356) PDP-10/10I DOUBLE PRECISION EXPONENTIAL
	 FUNCTION
1)	SUBTTL	D. TODD /DRT/HPW/MD		12-AUG-74
****
2)1	TITLE	DEXP.	%5A(700) PDP-10/10I DOUBLE PRECISION EXPONENTIAL
	 FUNCTION
2)	SUBTTL	D. TODD /DRT/HPW/MD		12-AUG-74
**************
1)1		A=	0
****
2)1	;700	23542	FIX FLOATING DIVIDE CHECK WHEN LEFT WORD
2)	;		OF MANTISSA IS <377 (OCTAL)
2)	;****** END OF REVISION HISTORY
2)		A=	0
**************
1)1	REDUCE:	CAMN	B, TABLE(G)	;DOES ARGUMENT MATCH TABLE ENTRY
	?
1)		JUMPE	C,[LSH G,1	;YES, IFF LO HALF=0. CHANGE INDE
	X TO POINTER
1)					;PICK UP DOUBLE WORD ANSWER
****
2)1	;**; [700] CHANGE & INSERT @ REDUCE  SWG  30-AUG-77
2)	REDUCE:	CAME	B, TABLE(G)	;[700]DOES ARGUMENT MATCH TABLE
	ENTRY?
2)		JRST	REDUC2		;[700] NO - KEEP LOOKING
2)		JFFO	C,.+2		;[700] HOW MANY LEADING 0'S
2)		JRST	REDUC1		;[700] NONE - C CONTAINS 0
2)		CAIL	D,^D28		;[700] ARE ANY LEFT OF BIT 28 ON
	?
2)	REDUC1:	JRST	[LSH G,1	;[700] NO, IFF LO HALF=0!<377(OC
	T). CHANGE INDEX TO POINTER
2)					;PICK UP DOUBLE WORD ANSWER
**************
1)1		CAMGE	B, TABLE(G)	;IS ARGUMENT GREATER THAN ENTRY?
1)		SOJA	G, REDUCE	;NO, TRY NEXT LOWER ENTRY
****
2)1	;**; [700] ADD LABEL @ REDUCE+4L  SWG  30-AUG-77
2)	REDUC2:	CAMGE	B, TABLE(G)	;[700]IS ARGUMENT GREATER THAN E
	NTRY?
2)		SOJA	G, REDUCE	;NO, TRY NEXT LOWER ENTRY
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 234
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-288*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(700)

[Date Entered]          11-SEP-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    SCNSI1

[Key Words]             DIALOG      EOL         CRLF

[Source Before Edit]    %5A  (000700)

[Source After Edit]     %5A  (000701)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-23412
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 235
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
During the OPEN statement DIALOG processing, if the user ends  an  input
line  with  a  switch  that  takes  a  numeric  argument (eg, /VERSION:1
<crlf>), FOROTS treats the end-of-line as an  ALTMODE,  terminating  the
DIALOG.
 

                        **********


[DIAGNOSIS]
 
IBYTE.  returns a space at end-of-line and the DIALOG  numeric  argument
scanner  treats  a  space  like an ALTMODE, ie, both 1B'$' and 1B' ' are
octal 400000, the signal for end of DIALOG.
 

                        **********


[CURE]
 
Check for EOL (and EOF for completeness) after the call  to  IBYTE.   in
the DIALOG argument scanner.
 
Digital Equipment Corporation       27-OCT-77    Page 236
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1726 30-AUG-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 0819 11-SEPT-1977
 
1)1		TITLE FOROTS %5A(700) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	30-AUG-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(701) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	11-SEP-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==700		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==701		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;701	23412	HANDLE EOL IN DIALOG MODE CORRECTLY
2)	;**************** END OF REVISION HISTORY
**************
1)1		PUSHJ	P,NXTLNI	;YES, GET THE NEXT INPUT LINE
1)		JSP	P1,IBYTE.	;GET AN INPUT CHARACTER
1)		CAIE	T0,176		;CHECK FOR THE ALT MODES
1)		CAIN	T0,175		;AGAIN
1)		MOVEI	T0,33		;REPLACE WITH STANDARD ALT MODE
1)		CAIE	T0,33		;IS THIS AN ALTMODE
1)		JRST	SCNSI9		;NO CONTINUE
1)		TLNE	P3,IO.TTY!IO.TTA;TTY TYPE DEVICE
1)		OUTSTR	[ASCIZ /
****
2)1	;**[701] @SCNSI1 + 3 ETC  SJW  11-SEP-77
2)	SCNSIN:	PUSHJ	P,NXTLNI	;[701] YES, GET THE NEXT INPUT L
	INE
2)		JSP	P1,IBYTE.	;GET AN INPUT CHARACTER
2)		TLNE	P3,IO.EOF	;[701] IF EOF EVER GETS HERE
2)		  JRST	SCNDON		;[701]   TREAT EOF AS ALT
2)		TLNE	P3,IO.EOL	;[701] CRLF SEEN ?
2)		  JRST	SCNSIN		;[701]   YES: GET NEXT LINE
2)		CAIE	T0,176		;CHECK FOR THE ALT MODES
2)		CAIN	T0,175		;AGAIN
2)		MOVEI	T0,33		;REPLACE WITH STANDARD ALT MODE
2)		CAIE	T0,33		;IS THIS AN ALTMODE
2)		JRST	SCNSI9		;NO CONTINUE
2)	SCNDON:	TLNE	P3,IO.TTY!IO.TTA;[701] TTY TYPE DEVICE
Digital Equipment Corporation       27-OCT-77    Page 237
PCO Log Report


2)		OUTSTR	[ASCIZ /
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 238
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-289*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(701)

[Date Entered]          11-SEP-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    DMPIO.

[Key Words]             DUMPMODE    ERROR       MAGTAPE

[Source Before Edit]    %5A  (000701)

[Source After Edit]     %5A  (000702)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-22877
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 239
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
Reading mag tape in DUMP mode with an I/O list shorter than  the  record
on  the  tape  gets a "BLOCK TOO LARGE, QUOTA EXCEEDED OR FILE STRUCTURE
FULL" device error from FOROTS, signalled by the monitor.   If  an  ERR=
branch is present, FOROTS gets an ILL MEM REF.
 

                        **********


[DIAGNOSIS]
 
The FOROTS recovery routine for DUMP mode I/O errors is to BACKSPACE the
tape  to reposition the file for retry.  The BACKSPACE fails because the
monitor has left the tape in an indeterminate state.  It  is  impossible
to  accurately  BACKSPACE  a file which gets an error in DUMP mode since
the monitor returns to FOROTS no information about on which  IOWD  entry
the error occurred.
 

                        **********


[CURE]
 
Make the recovery routine for DUMP mode I/O errors  just  return.   This
means  that  the errors will be trappable but not recoverable.  The file
will be left in its indeterminate state.  This condition is signaled  to
the  user  in  the  second  argument  returned by ERRSNS after the error
branch is taken:  the second argument will be a decimal  number  in  the
1000's,  in  this  case,  1403.   The  1000  means that the recovery was
unsuccessful.
 
Digital Equipment Corporation       27-OCT-77    Page 240
PCO Log Report


[FILCOM]
File 1)	DSKC:FOROTS.701[31,4577]	created: 0819 11-SEPT-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 0849 11-SEPT-1977
 
1)1		TITLE FOROTS %5A(701) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	11-SEP-77
****
2)1		TITLE FOROTS %5A(702) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	11-SEP-77
**************
1)1	VEDIT==701		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==702		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;702	22877	MAKE DUMP MODE IO ERRORS UNRECOVERABLE BUT TRAPP
	ABLE
2)	;**************** END OF REVISION HISTORY
**************
1)1		TLO	P3,IO.RNG!IO.NON	;SET DUMP MODE AS NONSTA
	NDARD
****
2)1	;**[702] @DMPIO.  SJW  11-SEP-77
2)		MOVEI	T0,CPOPJ	;[702] NO RECOVERY ON DUMP MODE
	ERRORS
2)		MOVEM	T0,ERR.RT(P4)	;[702] BUT THEY ARE TRAPPABLE
2)		TLO	P3,IO.RNG!IO.NON	;SET DUMP MODE AS NONSTA
	NDARD
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 241
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-290*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(702)

[Date Entered]          13-SEP-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROPN    BAD

[Key Words]             BUFFER      F40LIB      MAGDEN      EOF1/C

[Source Before Edit]    %5A  (000702)

[Source After Edit]     %5A  (000703)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-22687
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 242
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
The F40 routines BUFFER, IBUFF, OBUFF, EOF1, EOFC and MAGDEN are present
in  FORLIB  but  issue  the  message "NOT IMPLEMENTED IN FOROTS".  These
entry  points  should  not  be  present  in  a  FORLIB  which  is  built
specifically to not support F40.
 

                        **********


[DIAGNOSIS]
 
The F40 routines DEFINEFILE, IFILE, OFILE and RELEAS  are  supported  in
FORLIB  and  should  remain  so  even  if  the  FORLIB  has  been  built
specifically to not support F40.
 

                        **********


[CURE]
 
Put the six unsupported routines under the F40LIB switch  so  that  they
will only be defined in a FORLIB built to support F40.
 
Digital Equipment Corporation       27-OCT-77    Page 243
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 0849 11-SEPT-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 0932 13-SEPT-1977
 
1)1		TITLE FOROTS %5A(702) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	11-SEP-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(703) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	13-SEP-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==702		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==703		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;703	22687	IN FOROPN PUT BUFFER, IBUFF, OBUFF, EOF1, EOFC A
	ND MAGDEN
2)	;		  UNDER IFN F40LIB
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page 244
PCO Log Report


[FILCOM]
File 1)	LIB:FOROPN.MAC[31,4650]	created: 1116 03-MAR-1977
File 2)	DSKC:FOROPN.MAC[31,4577]	created: 0917 13-SEPT-1977
 
1)1		TITLE FOROPN %5A(644) ROUTINES TO SIMULATE F40 SUBROUTIN
	E CALLS
1)		SUBTTL	D. TODD /DRT/JNG/CLRH/SWG	3-MAR-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS. ***
****
2)1		TITLE FOROPN %5A(703) ROUTINES TO SIMULATE F40 SUBROUTIN
	E CALLS
2)		SUBTTL	D. TODD /DRT/JNG/CLRH/SWG/SJW	13-SEP-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS. ***
**************
1)1	;644	-----	FIX ERRF40 MACRO TO WORK WHEN F40 LIB SWITCH OFF
1)	;********** END OF REVISION HISTORY ****************************
	*******
****
2)1	;****	BEGIN VERSION 5A	*****
2)	;644	-----	FIX ERRF40 MACRO TO WORK WHEN F40 LIB SWITCH OFF
2)	;703	22687	PUT BUFFER, IBUFF, OBUFF, EOF1, EOFC AND MAGDEN
	UNDER
2)	;		  IFN F40LIB
2)	;********** END OF REVISION HISTORY ****************************
	*******
**************
1)1		ERRF40	(BUFFER)		;[556]
****
2)1	;**; [703] @ OPENGO + 3  SJW  13-SEP-77
2)	IFN F40LIB,<
2)		ERRF40	(BUFFER)		;[556]
**************
1)1		END
****
2)1	>				;[703] END OF IFN F40LIB
2)		END
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 245
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-291*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(704)

[Date Entered]          15-SEP-77

[Programmer]            SUE GODSELL

[Routines]              FOROTS

[Key Words]             DENSITY     MAGTAPE     TAPOP       BPI

[Source Before Edit]    %5A  (000703)

[Source After Edit]     %5A  (000704)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-23073
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 246
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
If no DENSITY= argument is specified in  an  OPEN  statement
for  a  magnetic  tape  file, FOROTS sets the density to the
system-wide default, preventing the use of the  SET  DENSITY
command in conjunction with Fortran programs.
 

                        **********


[DIAGNOSIS]
 
The TAPOP which FOROTS uses to set  the  density  overwrites
the   density  field  set  by  the  'SET  DENSITY'  command.
Consequently, FOROTS' current action of  passing  a  density
code  of  zero  when  no  density  is  specified, causes the
density to revert back to the system default.
 

                        **********


[CURE]
 
If no density is specified, do not do the TAPOP.
 
It should be noted that certain tape drives  (TU70's)  allow
the  density  to  be  set  only when the tape is at its load
point.
 
 
Digital Equipment Corporation       27-OCT-77    Page 247
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 0932 13-SEPT-1977
File 2)	DSKC:FOROTS.MAC[31,4775]	created: 1245 15-SEPT-1977
 
1)1		TITLE FOROTS %5A(703) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	13-SEP-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(704) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	15-SEP-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==703		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==704		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;704	23073	CHANGE SETDEN TO DO NOTHING IF NO DENSITY WAS SP
	ECIFIED
2)	;		TO PREVENT OVERWRITING IF SET BY SET DENSITY
2)	;		FIX TO EDIT 615.
2)	;**************** END OF REVISION HISTORY
**************
1)1	SETDEN:	MOVEI	T0,.TFDEN	;[615] GET TAPOP. FUNCTION CODE
1)		MOVEM	T0,TAP.TB(P4)	;[615]  TO SET DENSITY
****
2)1	;**; [704] CHANGE @ SETDEN  SWG  15-SEP-77
2)	SETDEN:	SKIPN	T1,DD.DEN(P3)	;[704] PICK UP DEN CODE; IF 0
2)		JRST	DENRET		;[704] LEAVE UNIT DEFAULT SET
2)		MOVEI	T0,.TFDEN	;[615] GET TAPOP. FUNCTION CODE
2)		MOVEM	T0,TAP.TB(P4)	;[615]  TO SET DENSITY
**************
1)1		MOVE	T1,DD.DEN(P3)	;[615] GET REQUESTED DENSITY
1)		MOVEM	T1,TAP.TB+2(P4)	;[615] STORE DESIRED DENSITY COD
	E
****
2)1	;**; [704] DELETE SETDEN+4  SWG  15-SEP-77
2)		MOVEM	T1,TAP.TB+2(P4)	;[615] STORE DESIRED DENSITY COD
	E
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 248
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-292*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(704)

[Date Entered]          19-SEP-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    OPNPP6

[Key Words]             ILL DELIM   SFD         ERROR

[Source Before Edit]    %5A  (000704)

[Source After Edit]     %5A  (000705)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 249
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
After an unsuccessful OPEN of a disk  file  in  an  SFD,  and  the  user
specifies (during the error DIALOG) a ppn without an SFD, FOROTS reports
an input error on the ppn of "ILLEGAL DELIMITER []]", ie, on the ].
 

                        **********


[DIAGNOSIS]
 
The original file spec causes a path block for the SFD to be  allocated.
When  the  file  spec from the error DIALOG has only a ppn without SFDs,
FOROTS returns the path block to its free core pool.  The routine PMEM%%
clobbers   register  T2,  which  contains  the  scan  flags  for  DIALOG
processing.  T2 is therefore  non-zero  and  happens  not  to  have  the
correct  delimiter  flag  set  so  the DIALOG processor reports "INVALID
DELIMITER" on the current character, which is the ending ] from the ppn.
 

                        **********


[CURE]
 
Save and restore T2 around the call to PMEM%%.
 
Digital Equipment Corporation       27-OCT-77    Page 250
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1245 15-SEPT-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 0923 16-SEPT-1977
 
1)1		TITLE FOROTS %5A(704) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	15-SEP-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(705) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	16-SEP-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==704		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==705		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;705	-----	DON'T CLOBBER SCAN FLAGS REG WHEN RETURNING PATH
	 BLOCK
2)	;		  WHEN PROCESSING PPN
2)	;**************** END OF REVISION HISTORY
**************
1)1		TLNN	T1,-1		;PPN OR CORE POINTER
1)		PUSHJ	P,PMEM%%	;CORE POINTER DELETE CORE BLOCK
1)		MOVEM	G2,DD.PPN(P2)	;SAVE THE PPN
****
2)1	;**; [705] INSERT @OPNPP6 + 3 1/2  SJW  16-SEP-77
2)		PUSH	P,T2		;[705] SAVE SCAN FLAGS REG
2)		TLNN	T1,-1		;PPN OR CORE POINTER
2)		PUSHJ	P,PMEM%%	;CORE POINTER DELETE CORE BLOCK
2)		POP	P,T2		;[705] RESTORE T2 SINCE PMEM%% C
	LOBBERS IT
2)		MOVEM	G2,DD.PPN(P2)	;SAVE THE PPN
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page 251
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-293*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(705)

[Date Entered]          20-SEP-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    SCNSIX

[Key Words]             SFD         > 1

[Source Before Edit]    %5A  (000705)

[Source After Edit]     %5A  (000706)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page 252
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
A  DIRECTORY=array  where  the   array   contains   SFD   specifications
incorrectly  parses  all  SFDs after the first, eg, an SFD of "A,B,C" is
picked up as "A,BC".
 

                        **********


[DIAGNOSIS]
 
The SFD scanning routine calls SCNSIX to pick up  the  SFDs  and  return
them  in SIXBIT.  SCNSIX sets up the input characters per item only when
it sets up its original input byte pointer to the  in-core  data  to  be
scanned.   Therefore,  on  the  second call to pick up the next SFD, the
characters per item is 0 (which is used as a data  length  for  infinite
literals  which  contain delimiters) and the routine does not exit until
it hits the ending  word  of  null.   Any  data  it  picks  up  in  this
out-of-control scan is truncated to six characters and returned.
 

                        **********


[CURE]
 
Make SCNSIX set the characters per item  on  each  entry  when  scanning
in-core data.
 
Digital Equipment Corporation       27-OCT-77    Page 253
PCO Log Report


[FILCOM]
File 1)	DSKC:FOROTS.705[31,4577]	created: 0923 16-SEPT-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 1404 16-SEPT-1977
 
1)1		TITLE FOROTS %5A(705) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	16-SEP-77
****
2)1		TITLE FOROTS %5A(706) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	16-SEP-77
**************
1)1	VEDIT==705		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==706		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;706	-----	FIX SCNSIX TO ALWAYS SET CHARS/WORD WHEN SCANNIN
	G CORE
2)	;		  SO SFD'S DEEPER THAN 1 WORK
2)	;**************** END OF REVISION HISTORY
**************
1)1		TLNE	G1,-1		;[217] IS G1 ALREADY A BYTE POIN
	TER?
1)		JRST	SCNSI1		;[217] YES - CONTINUE SCAN
1)		HRLI	G1,(POINT 7)	;NO - MAKE G1 A BYTE POINTER
****
2)1	;**; [706] @SCNCON + 2  SJW  16-SEP-77
2)		TLNN	G1,-1		;[706][217] IS G1 ALREADY A BYTE
	 PTR?
2)		HRLI	G1,(POINT 7)	;NO - MAKE G1 A BYTE POINTER
**************

[End PCO Write-up]
Digital Equipment Corporation       28-OCT-77    Page   1
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-294*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(706)

[Date Entered]          20-SEP-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    OPNPP5

[Key Words]             SFD         MAX OF 5

[Source Before Edit]    %5A  (000706)

[Source After Edit]     %5A  (000707)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-OCT-77    Page   2
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
Given the chance, FOROTS will try to pick up a maximum of 8 SFDs.
 

                        **********


[DIAGNOSIS]
 
The code thinks that the maximum number of SFDs should be 8.
 

                        **********


[CURE]
 
Change the maximum number of SFDs (which is specified in  several  magic
constants) to be 5.
 
Digital Equipment Corporation       28-OCT-77    Page   3
PCO Log Report


[FILCOM]
File 1)	DSKC:FOROTS.706[31,4577]	created: 1404 16-SEPT-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 1414 16-SEPT-1977
 
1)1		TITLE FOROTS %5A(706) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	16-SEP-77
****
2)1		TITLE FOROTS %5A(707) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	16-SEP-77
**************
1)1	VEDIT==706		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==707		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;707	-----	FIX PPN SCANNING TO HANDLE MAX OF 5 SFD'S
2)	;**************** END OF REVISION HISTORY
**************
1)1	OPNPP5:	MOVEI	T0,^D11		;MAX SFD'S =8 + PPN'S
1)		PUSH	P,T5		;SAVE THE TYPE CODE
1)		TLNE	T1,-1		;CHECK FOR A CORE POINTER OF PPN
1)		PUSHJ	P,GMEM%%	; PPN, GET DYNAMIC CORE
1)		POP	P,T5		;RESTORE THE TYPE CODE
1)		HRRZM	T1,DD.PPN(P2)	;SAVE SFD POINTER
1)		MOVEM	G2,2(T1)	;SAVE PPN
1)		MOVEI	G2,3(T1)	;SET UP THE POINTER TO THE SFD L
	IST
1)		HRLI	G2,-^D8		;MAKE AN AOBJN POINTER
1)		PJRST	SCNSTR		;GET THE ID FIELD FORM SCNSTR
****
2)1	;**; [707] @OPNPP5  SJW  16-SEP-77
2)	OPNPP5:	MOVEI	T0,^D10		;[707] 2 HEADERS + PPN + 5 SFDS
	+ 2 NULLS (FOR SCNSTR)
2)		PUSH	P,T5		;SAVE THE TYPE CODE
2)		TLNE	T1,-1		;CHECK FOR A CORE POINTER OF PPN
2)		PUSHJ	P,GMEM%%	; PPN, GET DYNAMIC CORE
2)		POP	P,T5		;RESTORE THE TYPE CODE
2)		HRRZM	T1,DD.PPN(P2)	;SAVE SFD POINTER
2)		MOVEM	G2,2(T1)	;SAVE PPN
2)		MOVEI	G2,3(T1)	;SET UP THE POINTER TO THE SFD L
	IST
2)		HRLI	G2,-^D5		;[707] MAKE AN AOBJN PTR (5 SFDS
	 MAX)
2)		PJRST	SCNSTR		;GET THE ID FIELD FORM SCNSTR
**************
Digital Equipment Corporation       28-OCT-77    Page   4
PCO Log Report


[End PCO Write-up]
Digital Equipment Corporation       28-OCT-77    Page   5
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-295*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(707)

[Date Entered]          20-SEP-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    SCNSTR

[Key Words]             SFD         DIALOG      $

[Source Before Edit]    %5A  (000707)

[Source After Edit]     %5A  (000710)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-23046
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-OCT-77    Page   6
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
FOROTS goes into TI looking for a ] in a DIALOG specification of a  path
which ends with an $ (eg, [10,52,A$).
 

                        **********


[DIAGNOSIS]
 
The ending criteria in SCNSTR to stop the  filling  of  the  path  array
checks only for ].  Specifically the routine treats blanks as equivalent
to  comma  (ie,  as  a  delimiter).   This  is  necessary  to  end   the
DIRECTORY=array  scanning  which  ignores  blanks  but  stops each array
element scan (ie, when the characters  per  item  count  becomes  0)  by
returning the "blank seen" flag on.  Unfortunately the "blank seen" flag
is the same as "$ seen".
 

                        **********


[CURE]
 
Rewrite the stopping criteria to check for delimiters only if scanning a
literal  (which means DIALOG or DIALOG=) and to check for a null word if
scanning an array.
 
The reported problem also existed  for  /REELS:   but  the  reels  array
concept is currently not supported by FOROTS.  However, this patch fixes
/REELS:A,B$ also.
 
Note that embedded blanks and delimiters  stop  the  scanning  of  array
element data in SCNSIX so if
 
        A (3) = 'A,B'
        A (4) = 0
        OPEN (...  DIRECTORY = A ...)
 
the path specified would be [...,...,A,B].
 
Digital Equipment Corporation       28-OCT-77    Page   7
PCO Log Report


[FILCOM]
File 1)	DSKC:FOROTS.707[31,4577]	created: 1414 16-SEPT-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 0957 20-SEPT-1977
 
1)1		TITLE FOROTS %5A(707) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	16-SEP-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(710) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	20-SEP-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==707		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==710		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)	;**************** END OF REVISION HISTORY
****
2)	;710	23046	FIX SCNSTR TO STOP DIALOG SCAN ON $ AND MEMORY
2)	;		  SCAN ON NULL WORD
2)	;**************** END OF REVISION HISTORY
**************
1)1	SCNST1:	MOVEM	T1,(G2)		;SAVE THE  ID NAME
1)		SKIPL	P2		;CHECK FOR SCANNER MODE
1)		SKIPE	(G1)		;CHECK FOR A NULL TERMINATOR
1)		TLZN	T2,(1B','!1B' ');COMMA OR BLANK
1)		TRZA	T2,1B21		;RIGHT BRACKET ]
1)		AOBJN	G2,SCNSTR	;GET NEXT ID ARG
1)	SCNST2:	SETZM	1(G2)		;SET END OF ARRAY FLAG
1)		POPJ	P,		;RETURN
****
2)1	;**; [710] @SCNST1  SJW  20-SEP-77
2)		MOVEM	T1,(G2)		;[710] SAVE THE ID NAME
2)		CAIN	T5,TP%LIT	;[710] SCANNING LITERAL == DIALO
	G ?
2)		  JRST	SCNST1		;[710] YES: CHECK FOR DELIMITERS
2)		SKIPN	(G1)		;[710] NO: NULL WORD ?
2)		  JRST	SCNST3		;[710] YES: STOP SCAN
2)		JRST	SCNST2		;[710] NO: GET NEXT ID NAME
2)	SCNST1:	TLZN	T2,(1B',')	;[710] IS DELIMITER A , ?
2)		  TRZA	T2,1B21		;[710] NO: EAT ] IF PRESENT AND
	STOP
2)	SCNST2:	AOBJN	G2,SCNSTR	;[710] GET NEXT ID ARG
2)	SCNST3:	SETZM	1(G2)		;[710] SET END (OR +1) OF ARRAY
	FLAG
Digital Equipment Corporation       28-OCT-77    Page   8
PCO Log Report


2)		POPJ	P,		;RETURN
**************

[End PCO Write-up]
Digital Equipment Corporation       28-OCT-77    Page   9
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-296*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5(617), TESTED IN 5A(710)

[Date Entered]          23-SEP-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    EXIT%     FORERR    ER%DEV

[Key Words]             LOOPING     ERROR       EDIT 677

[Source Before Edit]    %5A  (000710)

[Source After Edit]     %5A  (000711)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-OCT-77    Page  10
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
FOROTS  will  loop  when  trying  to  process  a  hardware  error  on  a
non-directory device (eg, mag tape) after edit 677 is installed.
 

                        **********


[DIAGNOSIS]
 
When a non-directory device gets an error,  FORERR  closes  the  device.
Edit  677  checks  the  device  status  after  a  CLOSE to see if errors
occurred on the CLOSE.  The recursive call to FORERR is not trapped  and
FORERR tries to close the device again, resulting in a loop.
 

                        **********


[CURE]
 
Fix ER%DEV to save the current top of stack when calling FOROTS routines
which could trap to FORERR.  Fix ERR%V2 to cut the stack if it detects a
recursive error call.  This will mean that  the  first  error  signalled
will be processed and that subsequent errors during the error processing
will not be reported.  Also fix the EXIT% code to clear the ERR.V2 field
so  that  the system error 1 (which is used to signal end of job) is not
detected as a recursive error call.
 
Digital Equipment Corporation       28-OCT-77    Page  11
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 0957 20-SEPT-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 1039 23-SEPT-1977
 
1)1		TITLE FOROTS %5A(710) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	20-SEP-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(711) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	23-SEP-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==710		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==711		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;711	-----	STOP RECURSIVE ERRORS IN ER%DEV
2)	;		FIX EXIT% TO RESET ERR.V2 SINCE NO ERROR IS IN P
	ROGRESS
2)	;**************** END OF REVISION HISTORY
**************
1)1	EXIT%%:	SETZM	ERR.PC(P4)	;[606] CLEAR ERR=,,END= SO ER%SY
	S 1
1)					;[606] WON'T TRAP AN ERR=
****
2)1	;**; [711] @EXIT%%  SJW  23-SEP-77
2)	EXIT%%:	SETZM	ERR.V2(P4)	;[711] CLEAR OLD ERROR NUMBER SO
	 ER%SYS 1
2)					;[711]   WON'T FIND ERROR IN PRO
	GRESS
2)		SETZM	ERR.PC(P4)	;[606] CLEAR ERR=,,END= SO ER%SY
	S 1
2)					;[606] WON'T TRAP AN ERR=
**************
 
Digital Equipment Corporation       28-OCT-77    Page  12
PCO Log Report


[FILCOM]
File 1)	LIB:FORERR.MAC[31,4650]	created: 1701 21-MAR-1977
File 2)	DSKC:FORERR.MAC[31,4577]	created: 1115 23-SEPT-1977
 
1)1		TITLE	FORERR	%5A(650) ERROR PROCESSING MODULE FOR THE
	 FOROTS SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW/SWG	
		21-MAR-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE	FORERR	%5A(711) ERROR PROCESSING MODULE FOR THE
	 FOROTS SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW/SWG	
		23-SEP-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	;*** END OF REVISION HISTORY ******
****
2)1	;711	-----	STOP RECURSIVE ERROR CALLS IN ER%DEV
2)	;*** END OF REVISION HISTORY ******
**************
1)1	VEDIT==650		;MAJOR EDIT NUMBER
1)	VMINOR==0		;MINOR EDIT NUMBER
1)	VWHO==0			;WHO EDITED LAST
****
2)1	VEDIT==711		;MAJOR EDIT NUMBER
2)	VMINOR==1		;MINOR EDIT NUMBER
2)	VWHO==0			;WHO EDITED LAST
**************
1)1		TLNN	T1,DV.DSK!DV.DTA!DV.TTA	;DON'T CLOSE IF THESE DE
	VS
1)		PUSHJ	P,CLOSI.##	;DO INPUT CLOSE
1)		HRRZ	T1,ERR.PC(P4)	;END = ADDRESS SPECIFIED?
1)		JUMPE	T1,ERDEV2	;[564] NO => CHECK ERR=
****
2)1	;**; [711] @ERDEV1 + 14 (OCTAL)  SJW  23-SEP-77
2)		TLNE	T1,DV.DSK!DV.DTA!DV.TTA	;[711] ONE OF THESE DEVI
	CES ?
2)		  JRST	ERDEV3		;[711] NO: DON'T CLOSE
2)		MOVE	T1,P		;[711] SAVE STKPTR+1 SO ERROR IN
	 CLOSI.
2)		ADD	T1,[1,,1]	;[711]   WILL NOT RECURSE
2)		MOVEM	T1,ERR.SP(P4)	;[711]
2)		PUSHJ	P,CLOSI.##	;DO INPUT CLOSE
2)	ERDEV3:	HRRZ	T1,ERR.PC(P4)	;[711] END = ADDRESS SPECIFIED?
2)		JUMPE	T1,ERDEV2	;[564] NO => CHECK ERR=
**************
1)1		TLZE	P3,IO.OPN	;CLEAR THE OPEN BIT
1)		PUSHJ	P,RELE%%##	;RELEASE THE CHANNEL
Digital Equipment Corporation       28-OCT-77    Page  13
PCO Log Report


1)		POP	P,T5		;RESTORE T5
1)		PUSHJ	P,TY%HDR	;[262] TYPE THE HEADER
****
2)1	;**; [711] @ERDEV5 + 1  SJW  23-SEP-77
2)		TLZN	P3,IO.OPN	;[711] CLEAR THE OPEN BIT, OPEN
	?
2)		  JRST	ERDEV8		;[711] NO: NO RELEASE
2)		MOVE	T1,P		;[711] SAVE STKPTR+1 SO ERROR IN
	 RELE%%
2)		ADD	T1,[1,,1]	;[711]   WILL NOT RECURSE
2)		MOVEM	T1,ERR.SP(P4)	;[711]
2)		PUSHJ	P,RELE%%##	;RELEASE THE CHANNEL
2)	ERDEV8:	POP	P,T5		;[711] RESTORE T5
2)		PUSHJ	P,TY%HDR	;[262] TYPE THE HEADER
**************
1)1	ERR%ER:	MOVEI	T2,^D2000	;[564] ERROR DURING CLEANUP
1)		JRST	ERRADD		;[564]
****
2)1	;**;  [711] @ERR%ER  SJW  23-SEP-77
2)	ERR%ER:	MOVE	P,ERR.SP(P4)	;[711] CUT STACK TO ORIGINAL CAL
	LER
 
 
2)		MOVEI	T2,^D2000	;[564] ERROR DURING CLEANUP
2)		JRST	ERRADD		;[564]
**************

[End PCO Write-up]
Digital Equipment Corporation       28-OCT-77    Page  14
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-297*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5(617), TESTED IN 5A(711)

[Date Entered]          23-SEP-77

[Programmer]            STAN WHITLOCK

[Routines]              FORERR    ER%LIB

[Key Words]             TRACEBACK   LIB ERROR

[Source Before Edit]    %5A  (000711)

[Source After Edit]     %5A  (000712)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-OCT-77    Page  15
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
The traceback generated by FOROTS  when  a  LIBrary  error  occurs  (eg,
"attempt  to  raise  negative number to non-integer power") is sometimes
incorrect.  Specifically the routine named first, as being  the  routine
in  which  the  error  occurred,  is not correct.  It is the name of the
FOROTS routine which has been called most recently.
 

                        **********


[DIAGNOSIS]
 
The traceback uses as the top of stack,  to  begin  its  unwinding,  the
field  USR.PC  in  low core.  This field is set up by the SAVE.  code on
any entrance to FOROTS.  However, this field is not set up when  LIBrary
errors  are signalled since the signalling routine is not inside FOROTS,
ie, it has not been reached through a  FOROTS  ENTRY.   Instead,  it  is
still setup from the last call into FOROTS, which tells the traceback to
print out a spurious starting point.
 

                        **********


[CURE]
 
Set the USR.PC field in ER%LIB before the  call  to  TRAC%%  to  be  the
user's  PC  on entrance to FORERR.  To be safe, save and restore the old
USR.PC in a global register and not on the stack so TRAC%% won't see it.
 
Digital Equipment Corporation       28-OCT-77    Page  16
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1039 23-SEPT-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 1208 23-SEPT-1977
 
1)1		TITLE FOROTS %5A(711) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	23-SEP-77
****
2)1		TITLE FOROTS %5A(712) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	23-SEP-77
**************
1)1	VEDIT==711		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==712		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;712	-----	FIX TRACEBACK IN ER%LIB TO USE CORRECT TOP OF ST
	ACK
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       28-OCT-77    Page  17
PCO Log Report


[FILCOM]
File 1)	LIB:FORERR.MAC[31,4650]	created: 1115 23-SEPT-1977
File 2)	DSKC:FORERR.MAC[31,4577]	created: 1217 23-SEPT-1977
 
1)1		TITLE	FORERR	%5A(711) ERROR PROCESSING MODULE FOR THE
	 FOROTS SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW/SWG	
		23-SEP-77
****
2)1		TITLE	FORERR	%5A(712) ERROR PROCESSING MODULE FOR THE
	 FOROTS SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW/SWG	
		23-SEP-77
**************
1)1	;*** END OF REVISION HISTORY ******
****
2)1	;712	-----	FIX TRACEBACK IN ER%LIB TO USE CORRECT STARTING
	STKPTR
2)	;*** END OF REVISION HISTORY ******
**************
1)1	VEDIT==711		;MAJOR EDIT NUMBER
1)	VMINOR==1		;MINOR EDIT NUMBER
****
2)1	VEDIT==712		;MAJOR EDIT NUMBER
2)	VMINOR==1		;MINOR EDIT NUMBER
**************
1)1		PUSHJ	P,TRAC%%	;[200] TRACE THE ERROR
1)		JRST	USRRET		;[200] RETURN TO THE USER
****
2)1	;**; [712] @ER%LIB + 5  SJW  23-SEP-77
2)		MOVE	G1,USR.PC(P4)	;[712] SAVE OLD STKPTR ON FOROTS
	 ENTRY
2)					;[712] CAN'T SAVE ON STK OR TRAC
	E WILL FIND IT
2)		MOVE	T5,-<NN.+1>(P)	;[712] GET TOP OF STK ON FORERR
	ENTRY
2)		MOVEM	T5,USR.PC(P4)	;[712] USE IT TO START TRACEBACK
2)		PUSHJ	P,TRAC%%	;[200] TRACE THE ERROR
2)		MOVEM	G1,USR.PC(P4)	;[712] RESTORE OLD STKPTR
2)		JRST	USRRET		;[200] RETURN TO THE USER
**************

[End PCO Write-up]
Digital Equipment Corporation       28-OCT-77    Page  18
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-298*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5(617), TESTED IN 5A(712)

[Date Entered]          27-SEP-77

[Programmer]            STAN WHITLOCK

[Routines]              FORERR    GETCAZ

[Key Words]             TRACE       OVERLAYS    INCORRECT

[Source Before Edit]    %5A  (000712)

[Source After Edit]     %5A  (000713)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-OCT-77    Page  19
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
The TRACEback output by  FOROTS  when  an  error  occurs  or  the  TRACE
function/subroutine  is  called does not list the name of the routine if
the routine is in an overlay.
 

                        **********


[DIAGNOSIS]
 
The code generated for overlays is
 
     PUSHJ P,A      where the code at A:  is
 
     JSP 1,.OVRLA
     flags,,ADR     where ADR is the address of a  word  containing  the
                    address of the routine being called
 
Note that LINK puts .OVRLA in SIXBIT in the  word  before  the  location
.OVRLA specifically to model the FORTRAN entry point identification.
 

                        **********


[CURE]
 
Fix the code in TRACE% to check for the JSP 1, to detect an overlay call
and chase the correct address to find the routine entry.
 
Digital Equipment Corporation       28-OCT-77    Page  20
PCO Log Report


[FILCOM]
File 1)	DSKC:FOROTS.712[31,4577]	created: 1208 23-SEPT-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 1610 26-SEPT-1977
 
1)1		TITLE FOROTS %5A(712) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	23-SEP-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(713) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	26-SEP-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==712		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==713		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;713	-----	FIX TRACEBACK OVER OVERLAYS IN TRACE%
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       28-OCT-77    Page  21
PCO Log Report


[FILCOM]
File 1)	DSKC:FORERR.712[31,4577]	created: 1217 23-SEPT-1977
File 2)	DSKC:FORERR.MAC[31,4577]	created: 1648 26-SEPT-1977
 
1)1		TITLE	FORERR	%5A(712) ERROR PROCESSING MODULE FOR THE
	 FOROTS SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW/SWG	
		23-SEP-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE	FORERR	%5A(713) ERROR PROCESSING MODULE FOR THE
	 FOROTS SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW/SWG	
		26-SEP-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	;*** END OF REVISION HISTORY ******
****
2)1	;713	-----	FIX TRACEBACK OVER OVERLAYS IN TRACE%
2)	;*** END OF REVISION HISTORY ******
**************
1)1		CAIN	T1,(JRST 1,)	;CHECK FOR CONCEALED ENTRY
1)		HRR	T3,(T3)		;YES, GO TO THE TRUE ENTRY
****
2)1	;**;[713] INSERT @GETCAZ + 15L  SJW  26-SEP-77
2)		CAIE	T1,(JSP 1,)	;[713] IS IT OVERLAY CALL ?
2)		  JRST	GETCA1		;[713] NO
2)		HRRZ	T1,(T3)		;[713] GET WORD BEFORE ROUTINE
2)		MOVE	T1,-1(T1)	;[713]   JSP'ED TO
2)		CAME	T1,[SIXBIT '.OVRLA']	;[713] LINK SETS UP ROUT
	INE NAME
2)		  SOJA	T5,GETCAL	;[713] NOT AN OVERLAY CALL
2)		HRRZ	T3,@1(T3)	;[713] GET ADR OF ROUTINE ENTRY
2)		HLRZ	T1,(T3)		;[713] GET 1ST INSTRUCTION LH
2)	GETCA1:	CAIN	T1,(JRST 1,)	;[713] CHECK FOR CONCEALED ENTRY
2)		HRR	T3,(T3)		;YES, GO TO THE TRUE ENTRY
**************

[End PCO Write-up]
Digital Equipment Corporation       28-OCT-77    Page  22
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-299*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5(617), TESTED IN 5A(713)

[Date Entered]          28-SEP-77

[Programmer]            STAN WHITLOCK

[Routines]              FORERR    ERR%ER

[Key Words]             ERR=        CLOSE       RECOVERY

[Source Before Edit]    %5A  (000713)

[Source After Edit]     %5A  (000714)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-OCT-77    Page  23
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
A CLOSE with an ERR= will  not  always  trap  correctly  when  an  error
occurs.
 

                        **********


[DIAGNOSIS]
 
No error recovery routine is specified for the CLOSE%  routine  and  the
error  fixup  code  decides  that  if  a  cleanup  routine  has not been
specified, then don't process the ERR= branch even if present.  The user
should  really  be  allowed to trap such an error even if FOROTS was not
able to cleanup after the error.
 

                        **********


[CURE]
 
Fix the error recovery code at ERR%ER to return "recovery  failed"  (ie,
ERR.V2 + 2000) if there is no cleanup routine.  Also cut the stack (edit
711) only if there is a non-zero stack pointer saved.
 
Digital Equipment Corporation       28-OCT-77    Page  24
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1610 26-SEPT-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 1320 28-SEPT-1977
 
1)1		TITLE FOROTS %5A(713) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	26-SEP-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(714) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	28-SEP-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==713		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==714		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;714	-----	FIX ERROR RECOVERY IN FORERR AT ERR%ER TO RETURN
2)	;		  "RECOVERY FAILED" IF THERE IS AN ERR= BUT NO
2)	;		  RECOVERY ROUTINE SPECIFIED
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       28-OCT-77    Page  25
PCO Log Report


[FILCOM]
File 1)	DSKC:FORERR.713[31,4577]	created: 1648 26-SEPT-1977
File 2)	DSKC:FORERR.MAC[31,4577]	created: 1619 27-SEPT-1977
 
1)1		TITLE	FORERR	%5A(713) ERROR PROCESSING MODULE FOR THE
	 FOROTS SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW/SWG	
		26-SEP-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE	FORERR	%5A(714) ERROR PROCESSING MODULE FOR THE
	 FOROTS SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/SRM/MD/DPL/JNG/CLRH/SJW/SWG	
		27-SEP-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	;*** END OF REVISION HISTORY ******
****
2)1	;714	-----	FIX ERROR RECOVERY AT ERR%ER TO RETURN "RECOVERY
	 FAILED"
2)	;		  IF THERE IS AN ERR= BUT NO RECOVERY ROUTINE SP
	ECIFIED
2)	;*** END OF REVISION HISTORY ******
**************
1)1	VEDIT==713		;MAJOR EDIT NUMBER
1)	VMINOR==1		;MINOR EDIT NUMBER
****
2)1	VEDIT==714		;MAJOR EDIT NUMBER
2)	VMINOR==1		;MINOR EDIT NUMBER
**************
1)1		SKIPN	0,ERR.RT(P4)	;[564] CLEANUP ROUTINE ?
1)		  POPJ	P,		;[564] NO => EXIT
1)		MOVEM	T2,USR.PC(P4)	;[564] SET UP RETURN TO ERR=
1)		MOVEM	T2,ALT.PC(P4)	;[564]
1)		MOVE	P,ERR.SP(P4)	;[564] CUT THE STACK
****
2)1	;**;[714] DELETE @ERRSE3 + 6  SJW  27-SEP-77
2)		MOVEM	T2,USR.PC(P4)	;[564] SET UP RETURN TO ERR=
2)		MOVEM	T2,ALT.PC(P4)	;[564]
2)	;**;[714] @ERRER%ER-4  SJW  27-SEP-77
2)		SKIPN	0,ERR.RT(P4)	;[714][564] CLEAUP ROUTINE ?
2)		  JRST	ERR%ER		;[714] NO: REPORT FAILURE
2)		MOVE	P,ERR.SP(P4)	;[564] CUT THE STACK
**************
1)1	ERR%ER:	MOVE	P,ERR.SP(P4)	;[711] CUT STACK TO ORIGINAL CAL
	LER
1)		MOVEI	T2,^D2000	;[564] ERROR DURING CLEANUP
****
2)1	;**;[714] @ERR%ER  SJW  27-SEP-77
Digital Equipment Corporation       28-OCT-77    Page  26
PCO Log Report


2)	ERR%ER:	SKIPE	ERR.SP(P4)	;[714] IS THERE A STK PTR SAVED
	?
2)		  MOVE	P,ERR.SP(P4)	;[714][711] YES: CUT STACK TO OR
	IGINAL CALLER
2)		MOVEI	T2,^D2000	;[564] ERROR DURING CLEANUP
**************

[End PCO Write-up]
Digital Equipment Corporation       28-OCT-77    Page  27
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-300*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5(617), TESTED IN 5A(714)

[Date Entered]          28-SEP-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    SAVE.     CLOSE%

[Key Words]             CLOSE       ERR=        RECOVERY

[Source Before Edit]    %5A  (000714)

[Source After Edit]     %5A  (000715)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-QA2126
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-OCT-77    Page  28
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
Errors in CLOSE statements with ERR= branches are not trapped properly.
 

                        **********


[DIAGNOSIS]
 
There is no  error  recovery  initialization  for  the  CLOSE%  code  so
parameters  set  up  by previous calls to FOROTS are used incorrectly in
the error recovery process, which results in the error being incorrectly
handled.
 

                        **********


[CURE]
 
All  ENTRY  points  to  FOROTS  should  do  elementary  error   recovery
initialization, like is done for OPEN and the I/O routines.  The easiest
place to put this code is in SAVE.  which is always the first thing done
at ENTRY to FOROTS.  This moves some code from edit 564.
 
Digital Equipment Corporation       28-OCT-77    Page  29
PCO Log Report


[FILCOM]
File 1)	DSKC:FOROTS.714[31,4577]	created: 1320 28-SEPT-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 1414 28-SEPT-1977
 
1)1		TITLE FOROTS %5A(714) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	28-SEP-77
****
2)1		TITLE FOROTS %5A(715) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	28-SEP-77
**************
1)1	VEDIT==714		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==715		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;715	QA2126	INCLUDE ERR= SETUP IN CLOSE%.  ADJUST EDIT 564 S
	O ERR=
2)	;		  INITIALIZATION HAPPENS IN SAVE.
2)	;**************** END OF REVISION HISTORY
**************
1)1		PUSHJ	P,(T1)		;RETURN TO SAVE CALLER
****
2)1	;**; [715] INSERT @SAVE. + 10 1/2  SJW  28-SEP-77
2)		SETZM	ERR.V1(P4)	;[715] CLEAR ERROR VALUE WORDS
2)		SETZM	ERR.V2(P4)	;[715]   SO "NO ERROR IN PROGRES
	S"
2)		MOVE	T0,P		;[715] SAVE STK PTR AFTER PUSHJ
2)		ADD	T0,[1,,1]	;[715]
2)		MOVEM	T0,ERR.SP(P4)	;[715]   TO CUT STACK ON ERR=
2)		PUSHJ	P,(T1)		;RETURN TO SAVE CALLER
**************
1)1		SETZM	0,ERR.V1(P4)	;[564] CLEAR ERROR VALUES FOR OP
	EN
1)		SETZM	0,ERR.V2(P4)	;[564]
1)		MOVEM	P,ERR.SP(P4)	;[564] SAVE P TO CUT STACK ON RE
	COVERY
1)	OPEN%%:	MOVEI	T0,SKPRET	;[564] CLEANUP == SKIP RETURN
****
2)1	;**; [715] DELETE @OPEN% + 1  SJW  28-SEP-77 (CODE MOVES TO SAVE
	.)
2)	OPEN%%:	MOVEI	T0,SKPRET	;[564] CLEANUP == SKIP RETURN
**************
1)1		SETZM	0,ERR.V1(P4)	;[564] CLEAR ERROR VALUES FOR RE
	AD/WRITE
1)		SETZM	0,ERR.V2(P4)	;[564]
1)		MOVEM	P,ERR.SP(P4)	;[564] SAVE P TO CUT STACK ON RE
Digital Equipment Corporation       28-OCT-77    Page  30
PCO Log Report


	COVERY
1)		MOVEI	T0,SKPRET	;[564] CLEANUP == SKIP RETURN
****
2)1	;**; [715] DELETE @SETIO + 1  SJW  28-SEP-77 (CODE MOVES TO SAVE
	.)
2)		MOVEI	T0,SKPRET	;[564] CLEANUP == SKIP RETURN
**************
1)1		JSP	P1,SRCFLU	;IS THE UNIT DEFINED
****
2)1	;**; [715] INSERT @CLOSE% + 1/2  SJW  28-SEP-77
2)		MOVEI	T0,SKPRET	;[715] CLEANUP == SKIP RETURN
2)		MOVEM	T0,ERR.RT(P4)	;[715]
2)		JSP	P1,SRCFLU	;IS THE UNIT DEFINED
**************
 

[End PCO Write-up]
Digital Equipment Corporation       28-OCT-77    Page  31
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-301*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5(617), TESTED IN 5A(715)

[Date Entered]          14-OCT-77

[Programmer]            STAN WHITLOCK

[Routines]              FORPLT    PLOTS

[Key Words]             PLOTS       >1 PLOTTER  IO ERROR

[Source Before Edit]    %5A  (000715)

[Source After Edit]     %5A  (000716)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-23432
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-OCT-77    Page  32
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
If PLOTS is called more than once, multiple  plotters  are  initialized.
If  enough  physical  plotters  are  not  available and plotters are not
spooled, PLOT will die on an I/O TO UNASSIGNED CHANNEL.
 

                        **********


[DIAGNOSIS]
 
Edit 555 changed PLOTS to call ALCHN.  to get a channel instead of using
channel  17.   PLOTS  does not check to see if a plotter is already open
before it tries to open a channel.  This results  in  multiple  plotters
being  opened  but  only the most recently opened plotter is used by the
plot routines.
 

                        **********


[CURE]
 
If a plotter is already open, the variable  PCHN  contains  the  channel
number.   If PCNH is not zero, then a plotter is open so don't bother to
open another one, just use the one already open.  Note that  PLOTS  will
therefore  return  0,  meaning that the plotter is open.  Also note that
PCHN must be cleared if the PLOTS open fails and wants to return  -1  so
that subsequent calls to PLOTS won't think that a channel is open.
 
Digital Equipment Corporation       28-OCT-77    Page  33
PCO Log Report


[FILCOM]
File 1)	FTN:FOROTS.MAC[31,4735]	created: 2121 04-OCT-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 1525 14-OCT-1977
 
1)1		TITLE FOROTS %5A(715) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	28-SEP-77
1)	;COPYRIGHT (C) 1972,1977 BY
****
2)1		TITLE FOROTS %5A(716) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	14-OCT-77
2)	;COPYRIGHT (C) 1972,1977 BY
**************
1)1	VEDIT==715		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==716		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)	;716	23432	IN FORPLT AUGMENT EDIT 555 TO USE SAME OUTPUT CH
	ANNEL
2)	;		  FOR MULTIPLE CALLS TO PLOTS
2)	;**************** END OF REVISION HISTORY
**************
 
 
Digital Equipment Corporation       28-OCT-77    Page  34
PCO Log Report


[FILCOM]
File 1)	FTN:FORPLT.MAC[31,4735]	created: 1729 04-OCT-1977
File 2)	DSKC:FORPLT.MAC[31,4577]	created: 1550 14-OCT-1977
 
1)1		TITLE	PLOT	%5.(640) PLOT SUBROUTINES
1)		SUBTTL	D. TODD /DRT/HPW/CLRH/SWG	18-JAN-77
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1		TITLE	PLOT	%5A(716) PLOT SUBROUTINES
2)		SUBTTL	D. TODD /DRT/HPW/CLRH/SWG/SJW	14-OCT-77
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;END REVISION HISTORY
****
2)	;716	23432	AUGMENT EDIT 555 TO USE SAME OUTPUT CHANNEL FOR
2)	;		  MULTIPLE CALLS TO PLOTS
2)	;END REVISION HISTORY
**************
1)1		MOVEM	0,SV0		;[555] SAVE REGISTERS
1)		MOVEM	1,SV0+1		;[555]
1)		PUSH	P,Q		;[555]
****
2)1	;**; [716] @PLOTS + 3  SJW  14-OCT-77
2)		DMOVEM	0,SV0		;[716][555] SAVE REGISTERS
2)		SKIPE	PCHN		;[716] IS PLOTTER ALREADY OPEN ?
2)		  JRST	PLOTS4		;[716] YES: USE IT AND NOT ANOTH
	ER ONE
2)		PUSH	P,Q		;[555]
**************
1)1		MOVE	0,SV0		;RESTORE AC
1)		SETZM	@0(Q)		;MARK SUCCESS
****
2)1	;**; [716] @PLOTS + 32L  SJW  14-OCT-77
2)	PLOTS4:	MOVE	0,SV0		;[716] RESTORE AC
2)		SETZM	@0(Q)		;MARK SUCCESS
**************
1)1		MOVE	0,SV0		;[555] RESTORE REGISTERS
1)		MOVE	1,SV0+1		;[555]
1)		GOODBY	(1)		;RETURN
****
2)1	;**; [716] @FOOP + 1  SJW  14-OCT-77
2)		SETZM	PCHN		;[716] CLEAR CHANNEL NUMBER IF T
	HERE
2)		DMOVE	0,SV0		;[716][555] RESTORE REGISTERS
2)		GOODBY	(1)		;RETURN
**************

[End PCO Write-up]
Digital Equipment Corporation       28-OCT-77    Page  35
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-302*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(706), TESTED IN 5A(716)

[Date Entered]          21-OCT-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    SCNSIX

[Key Words]             FILE=DP     SWITCH ERR  EDIT 706

[Source Before Edit]    %5A  (000716)

[Source After Edit]     %5A  (000717)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-QA2174
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-OCT-77    Page  36
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
An OPEN statement with a FILE=variable parameter may get a SWITCH  ERROR
DURING  DIALOG  PROCESSING if the variable contains a dot (.) separating
the file name and the file type.
 

                        **********


[DIAGNOSIS]
 
Edit 706 adjusted the character count for scanning data  out  of  memory
(as  opposed to a literal) on each call to SCNSIX.  The only place where
a delimiter is expected when scanning memory is the dot in  a  filename.
In  that  case, the scan will resume in the middle of the FILE= argument
and SHOULD scan for the remainder of the length of the  argument.   Edit
706  reset the scan count to 5 or 10 characters so the scan has a chance
to find some other character it won't like.
 

                        **********


[CURE]
 
Reset the character count for the scan only if the length is zero.  This
will occur if the previous call to scan, scanning memory, exited because
it found a delimiter and did not exhaust the memory location.
 
Digital Equipment Corporation       28-OCT-77    Page  37
PCO Log Report


[FILCOM]
File 1)	LIB:FOROTS.MAC[31,4650]	created: 1525 14-OCT-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 1145 21-OCT-1977
 
1)1		TITLE FOROTS %5A(716) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	14-OCT-77
1)	;COPYRIGHT (C) 1972,1977 BY
****
2)1		TITLE FOROTS %5A(717) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	21-OCT-77
2)	;COPYRIGHT (C) 1972,1977 BY
**************
1)1	VEDIT==716		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==717		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)	;717	QA2174	FIX EDIT 706 TO HANDLE CHAR COUNT FOR FILE=DOUBL
	E PREC:
2)	;		    MOVE COUNT SETUP BACK TO SCNSTR
2)	;**************** END OF REVISION HISTORY
**************
1)1		PUSHJ	P,SCNSIX	;GET THE ID NAME
****
2)1	;**+[717] @SCNSTR  SJW  27-OCT-77
2)		JUMPL	P2,SCNST0	;[717] CHECK FOR DIALOG MODE
2)		MOVEI	G4,^D6		;[717] ASSUME SINGLE PRECISION
2)		CAIE	T5,TP%DOR	;[717] DOUBLE PRECISION?
2)		CAIN	T5,TP%COM	;[717] OR COMPLEX?
2)		  MOVEI	G4,^D11		;[717] YES: SCAN 2 WORDS
2)		CAIN	T5,TP%LIT	;[717] LITERAL?
2)	SCNST0:	  SETO	G4,		;[717] YES: INFINITE SCAN
2)		PUSHJ	P,SCNSIX	;GET THE ID NAME
**************
1)1		TLNN	G1,-1		;[706][217] IS G1 ALREADY A BYTE
	 PTR?
1)		HRLI	G1,(POINT 7)	;NO - MAKE G1 A BYTE POINTER
1)		MOVEI	G4,^D6		;[217] ASSUME SINGLE PRECISION (
	5 CHAR + NULL)
1)		CAIE	T5,TP%DOR	;CHECK FOR DOUBLE PRECISION
****
2)1	;**; [717] @ SCNCON + 2  SJW  27-OCT-77
2)		TLNE	G1,-1		;[717][706][217] IS G1 ALREADY A
	 BYTE PTR?
2)		  JRST	SCNSI1		;[717]
2)		HRLI	G1,(POINT 7)	;NO - MAKE G1 A BYTE POINTER
Digital Equipment Corporation       28-OCT-77    Page  38
PCO Log Report


2)		MOVEI	G4,^D6		;[217] ASSUME SINGLE PRECISION (
	5 CHAR+NULL)
2)		CAIE	T5,TP%DOR	;CHECK FOR DOUBLE PRECISION
**************

[End PCO Write-up]
Digital Equipment Corporation       28-OCT-77    Page  39
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-303*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(710), TESTED IN 5A(717)

[Date Entered]          21-OCT-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    SCNSTR

[Key Words]             SFD         DIALOG      EDIT 710

[Source Before Edit]    %5A  (000717)

[Source After Edit]     %5A  (000720)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-OCT-77    Page  40
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
After processing an SFD path in DIALOG mode, the next call to  OPEN  may
die on a MEMORY MANAGEMENT ERROR.
 

                        **********


[DIAGNOSIS]
 
Edit 710 fixed SFD scanning to correctly pick up the SFD names and  stop
the  scan  on the correct delimiter.  It assumed that scanning in DIALOG
mode set the type flag in T5  to  literal  type.   It  only  checks  for
literal type to see if delimiters and not a word count should be used as
the exit criteria.  Unfortunately DIALOG mode does NOT set the type flag
in T5.
 

                        **********


[CURE]
 
Fix SCNSTR to check  for  delimiters  either  in  DIALOG  mode  or  when
scanning a literal.
 
Digital Equipment Corporation       28-OCT-77    Page  41
PCO Log Report


[FILCOM]
File 1)	DSKC:FOROTS.717[31,4577]	created: 1145 21-OCT-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 1250 21-OCT-1977
 
1)1		TITLE FOROTS %5A(717) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	21-OCT-77
****
2)1		TITLE FOROTS %5A(720) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	21-OCT-77
**************
1)1	VEDIT==717		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==720		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;720	-----	FIX EDIT 710 TO TREAT DIALOG MODE == LITERAL SCA
	N FOR
2)	;		  STOPPING SFD SEARCH IN SCNSTR
2)	;**************** END OF REVISION HISTORY
**************
1)1		CAIN	T5,TP%LIT	;[710] SCANNING LITERAL == DIALO
	G ?
1)		  JRST	SCNST1		;[710] YES: CHECK FOR DELIMITERS
****
2)1	;**;[720] @SCNSTR + 1  SJW  21-OCT-77
2)		TLNN	P2,OP.OPN!OP.DIA	;[720] SCANNING DIALOG ?
2)		CAIN	T5,TP%LIT		;[720][710] SCANNING LIT
	ERAL ?
2)		  JRST	SCNST1		;[710] YES: CHECK FOR DELIMITERS
**************

[End PCO Write-up]
Digital Equipment Corporation       28-OCT-77    Page  42
PCO Log Report



                   *********************
                   *PCO #:10-FOROTS-304*
                   *********************


[Program Data]          System:   F10
                        Component:FOROTS

[Validity]         5A(714), TESTED IN 5A(720)

[Date Entered]          21-OCT-77

[Programmer]            STAN WHITLOCK

[Routines]              FOROTS    OPEN%

[Key Words]             ERROR       DIALOG      EDIT 714

[Source Before Edit]    %5A  (000720)

[Source After Edit]     %5A  (000721)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-OCT-77    Page  43
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
If an OPEN error occurs and  breaks  to  the  TTY:   to  solicit  DIALOG
information  from the user, an error in that DIALOG will stop the DIALOG
but not be reported.
 

                        **********


[DIAGNOSIS]
 
Edit 714 changed error processing so that errors were  reported  to  the
user  even  if  there  were no defined error fixup routine.  An error in
DIALOG mode after an error during  processing  is  considered  an  error
during error processing.  This stops the error processing and returns to
the user.
 

                        **********


[CURE]
 
Clear the ERR.V2 value when entering DIALOG mode after an error  so  all
errors during the DIALOG will get reported to the user.
 
Digital Equipment Corporation       28-OCT-77    Page  44
PCO Log Report


[FILCOM]
File 1)	DSKC:FOROTS.720[31,4577]	created: 1250 21-OCT-1977
File 2)	DSKC:FOROTS.MAC[31,4577]	created: 1303 21-OCT-1977
 
1)1		TITLE FOROTS %5A(720) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	21-OCT-77
****
2)1		TITLE FOROTS %5A(721) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG/DCE	21-OCT-77
**************
1)1	VEDIT==720		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==721		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;721	-----	FIX EDIT 714 SO ERRORS DURING DIALOG MODE PROCES
	SING
2)	;		  ARE REPORTED TO TTY:
2)	;**************** END OF REVISION HISTORY
**************
1)1		PUSHJ	P,OPNAR5	;FORCE ERROR DIALOG (MAY BE BATC
	H)
1)	;**; [526]	INSERT @ OPEN5 + 5 1/2	CLRH	23-MAR-76
****
2)1	;**; [721] @OPEN5 + 8  SJW  21-OCT-77
2)		SETZM	ERR.V2(P4)	;[721] CLEAR ERROR IN PROGRESS
2)		PUSHJ	P,OPNAR5	;FORCE ERROR DIALOG (MAY BE BATC
	H)
2)		SETZM	ERR.V2(P4)	;[721] CLEAR ERROR FROM DIALOG
2)	;**; [526]	INSERT @ OPEN5 + 5 1/2	CLRH	23-MAR-76
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page   1
PCO Log Report



                   *********************
                   *PCO #:20-FOROTS-003*
                   *********************


[Program Data]          System:   F20
                        Component:FOROTS

[Validity]         4B(460)+522+605

[Date Entered]          22-DEC-76

[Programmer]            HOUDE

[Routines]              FOROTS

[Key Words]             RENAME      %FRSOPN     PROTECTION  CLOSE

[Source Before Edit]    %5   (000632)

[Source After Edit]     %5   (000633)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:20-
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page   2
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
     After edit 605 is installed in FOROTS, spurious errors may result
if  the  protection to be assigned to a file is specified in the CLOSE
statement, even if  the  protection  specified  is  the  same  as  the
original protection of the file.

                        **********


[DIAGNOSIS]
 
     Edit 605, which prevents the protection code from being  included
when  a  RENAME  is done, was inserted before the code which processes
the arguments to the CLOSE statement.   Thus,  if  the  protection  is
given in the CLOSE statement, the code added by edit 522 always sees a
change in the protection code and may cause an unnecessary  RENAME  to
be attempted.

                        **********


[CURE]
 
     Modify edit 522 to flag which file attributes have changed  which
make  a  RENAME  necessary.   Then  move  edit  605 so that it is only
executed if the protection did not change.
 
Digital Equipment Corporation       27-OCT-77    Page   3
PCO Log Report


[FILCOM]
File 1)	DSKB:FOROTS.632[30,4574]	created: 1701 20-DEC-1976
File 2)	DSKC:FOROTS.633[30,4574]	created: 0926 22-DEC-1976
 
1)1		TITLE FOROTS %5.(632) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	17-DEC-76
1)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5.(633) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	22-DEC-76
2)	;***COPYRIGHT 1972,1973,1974,1975,1976 DIGITAL EQUIPMENT CORP.,
	MAYNARD, MASS.***
**************
1)1	VEDIT==632		;MAJOR EDIT NUMBER
1)	VMINOR==00		;MINOR EDIT NUMBER
****
2)1	VEDIT==633		;MAJOR EDIT NUMBER
2)	VMINOR==00		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;633	Q00923	MOVE EDIT 605 AND CHANGE EDIT 522 SO THAT IF IT
	IS
2)	;			NECESSARY TO RENAME A FILE WHEN IT IS
2)	;			CLOSED, THE REASON FOR THE RENAME IS KNO
	WN.
2)	;**************** END OF REVISION HISTORY
**************
1)1	;**; [605]	INSERT BEFORE CLOS%0	CLRH	15-OCT-76
1)		SETZM	DD.PRV(P3)	;[605] CLEAR PROTECTION CODE (AN
	D DATES)
1)		HLLZ	T0,DD.EXT(P3)	;[605] TO USE CURRENT PROTECTION
	 CODE
1)		HLLZM	T0,DD.EXT(P3)	;[605] UNLESS USER CHANGES IT
1)	CLOS%0:	MOVEI	P2,(P3)		;[336] GET THE DD.BLK POINT FOR
	AN ARG SCAN
****
2)1	;**; [633] MOVE EDIT 605; DELETE 3 LINES ADDED AT CLOS%0
2)	;**; [633]	CLRH	22-DEC-76
2)	;**; [605]	INSERT BEFORE CLOS%0	CLRH	15-OCT-76
2)	;[633] 	SETZM	DD.PRV(P3)	;[605] CLEAR PROTECTION CODE (AN
	D DATES)
2)	;[633]	HLLZ	T0,DD.EXT(P3)	;[605] TO USE CURRENT PROTECTION
	 CODE
2)	;[633]	HLLZM	T0,DD.EXT(P3)	;[605] UNLESS USER CHANGES IT
2)	CLOS%0:	MOVEI	P2,(P3)		;[336] GET THE DD.BLK POINT FOR
	AN ARG SCAN
**************
Digital Equipment Corporation       27-OCT-77    Page   4
PCO Log Report


1)1	CLOS%3:	MOVE	T4,0(T2)	; [522] GET CURRENT VALUE
1)		CAME	T4,0(T3)	; [522] AND COMPARE WITH VALUE A
	FTER LOOKUP
1)		SETO	T0,		; [522] DIFFERENT, SO SET RENAME
	 FLAG
1)		AOJ	T2,		; [522] INCREASE CURRENT POINTER
1)		AOJ	T3,		; [522] INCREASE OLD POINTER
1)		CAIG	T2,DD.VER(P3)	; [522] STOP WHEN ALL RELEVANT S
	TUFF CHECKED
****
2)1	;**; [633] INSERT IN EDIT 522 BEFORE CLOS%3	CLRH	22-DEC-7
	6
2)		MOVEI	T5,1		;[633] ARGUMENT CHANGED COUNTER
2)	CLOS%3:	MOVE	T4,0(T2)	; [522] GET CURRENT VALUE
2)		CAME	T4,0(T3)	; [522] AND COMPARE WITH VALUE A
	FTER LOOKUP
2)	;**; [633] CHANGE IN EDIT 522 @ CLO%3+2	CLRH	22-DEC-76
2)		TRO	T0,0(T5)	;[633] SET RENAME FLAG
2)		AOJ	T2,		; [522] INCREASE CURRENT POINTER
2)		AOJ	T3,		; [522] INCREASE OLD POINTER
2)	;**; [633] INSERT IN EDIT 522 @ CLOS%3+4 1/2	CLRH	22-DEC-7
	6
2)		AOJ	T5,		;[633] UPDATE COUNTER
2)		CAIG	T2,DD.VER(P3)	; [522] STOP WHEN ALL RELEVANT S
	TUFF CHECKED
**************
1)1		SKIPE	T0		; [522] DON'T RENAME IF NO NEED
****
 
 
2)1	;**; [633] MOVE EDIT 605 TO CLOS%%-4 1/2 (IN EDIT 522) CLRH 22-D
	EC-76
2)		TRNN	T0,DD.PRV-DD.PPN+1	;[633] PROTECTION CHANGE
	D?
2)		JRST	[SETZM	DD.PRV(P3)	;[633] CLEAR PROTECTION
	CODE
2)			HLLZ	T5,DD.EXT(P3)	;[633] AND DATES
2)			HLLZM	T5,DD.EXT(P3)	;[633] SO PROTECTION WON
	T CHANGE
2)			TRZ	T0,DD.PRV-DD.PPN+1 ;[633] TURN OFF FLAG
	BIT
2)			JRST	.+1	]	;[633] OUT
2)		SKIPE	T0		; [522] DON'T RENAME IF NO NEED
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page   5
PCO Log Report



                   *********************
                   *PCO #:20-FOROTS-004*
                   *********************


[Program Data]          System:   F20
                        Component:FOROTS

[Validity]         4B(460), TESTED IN 5(633)

[Date Entered]          22-DEC-76

[Programmer]            HOUDE

[Routines]              FOROTS

[Key Words]             LOGICAL NA  DEFINE      DIRECTORY

[Source Before Edit]    %5   (000633)

[Source After Edit]     %5   (000634)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:20-10201
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page   6
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
     Logical device names which include directories do not work.   The
directory  is  totally  ignored.  For example, if you define DEV1:  as
DSK:<DIR> and open  a  file  on  DEV1:,  FOROTS  will  use  DSK:,  not
DSK:<DIR>.

                        **********


[DIAGNOSIS]
 
     The routine GETDV., called during OPEN statement processing, does
a  DEVNAM UUO to get the real name of the logical device and uses this
instead of the logical name.

                        **********


[CURE]
 
     The DEVNAM UUO is not needed and should be  removed.   Note  that
this  does  not  allow  defining  DEV1:   as DSK:<DIR>FOO.BAR to work;
attempting to do so remains a restriction.
 
Digital Equipment Corporation       27-OCT-77    Page   7
PCO Log Report


[FILCOM]
File 1)	DSKC:FOROTS.MAC[30,4574]	created: 0926 22-DEC-1976
File 2)	DSKC:FOROTS.634[30,4574]	created: 1411 22-DEC-1976
 
1)1		TITLE FOROTS %5.(633) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	22-DEC-76
****
2)1		TITLE FOROTS %5.(634) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	22-DEC-76
**************
1)1	VEDIT==633		;MAJOR EDIT NUMBER
1)	VMINOR==00		;MINOR EDIT NUMBER
****
2)1	VEDIT==634		;MAJOR EDIT NUMBER
2)	VMINOR==00		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;634	10201	LOGICAL DEVICE NAMES IGNORE THE DIRECTORY IF A
2)	;			DIRECTORY WAS SPECIFIED
2)	;**************** END OF REVISION HISTORY
**************
1)1		DEVNAM	G2,		;GET THE PHYSICAL DEVICE NAME
1)		JFCL			;IGNORE THE ERROR RETURN
1)		POPJ	P,		;RETURN
****
2)1	;**; [634] DELETE TWO LINES AT GETDV3+1	CLRH	22-DEC-76
2)	;[634]	DEVNAM	G2,		;GET THE PHYSICAL DEVICE NAME
2)	;[634]	JFCL			;IGNORE THE ERROR RETURN
2)		POPJ	P,		;RETURN
**************

[End PCO Write-up]
Digital Equipment Corporation       27-OCT-77    Page   8
PCO Log Report



                   *********************
                   *PCO #:20-FOROTS-005*
                   *********************


[Program Data]          System:   F20
                        Component:FOROTS

[Validity]         4B(460),5(617), TESTED IN 5A(641)

[Date Entered]          24-JAN-77

[Programmer]            EKLUND

[Routines]              ALOG      ALOG10

[Key Words]             LOG         BAD PRECIS

[Source Before Edit]    %5A  (000641)

[Source After Edit]     %5A  (000642)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:20-10025
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       27-OCT-77    Page   9
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
     Relative errors  in  the  calculation  of  the  single  precision
logarithm  function  are  very  large for certain ranges of arguments.
More precisely, as the size of the argument approaches  one,  so  does
the accuracy (number of correct significant digits) approach zero.
 

                        **********


[DIAGNOSIS]
 
 
     An investigation of this  problem  revealed  that  the  algorithm
which  was  used  to  compute  the  library  functions ALOG and ALOG10
exhibits very poor accuracy for the range of arguments near one due to
the algorithm chosen.  It has been necessary to completely rewrite the
algorithm for ALOG so that it is much more  accurate  for  the  entire
range  of  possible  arguments  (all real positive numbers).  This new
algorithm has been extensively tested, and exhibits no more  than  two
bits  of inaccuracy as compared with the double precision routine over
all ranges of arguments.  The worst relative error is  .226E-07  which
occurs  at  the  points  where  the crossover between the two possible
setup portions of the algorithm are located, namely at  1/SQRT(2)  and
SQRT(2).   We  also  would  like  to  point out that the errors in the
accuracy near one which were reported have been completely cured -  no
more  than  a single bit of accuracy has been lost for all inputs near
one.  This patch will not appear in release 5 of the new FORTRAN,  but
has been incorporated into the mathematical library (FORLIB), and will
be included with the next release of the product.
 

                        **********


[CURE]
 
 
     Rewrite the entire ALOG routine to give better accuracy over  the
entire range of arguments, especially those near one.
 
Digital Equipment Corporation       27-OCT-77    Page  10
PCO Log Report


[FILCOM]
File 1)	DSKC:FOROTS.MAC[31,4775]	created: 1654 20-JAN-1977
File 2)	DSKC:FOROTS.642[31,4775]	created: 1728 21-JAN-1977
 
1)1		TITLE FOROTS %5A(641) - FORTRAN OBJECT TIME SYSTEM
1)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	20-JAN-77
1)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
****
2)1		TITLE FOROTS %5A(642) - FORTRAN OBJECT TIME SYSTEM
2)		SUBTTL	D. TODD/DRT/HPW/MD/NEA/DPL/JNG/CLRH/MEB/SJW/JMT/
	SWG	21-JAN-77
2)	;***COPYRIGHT 1972,1973,1974,1975,1976,1977 DIGITAL EQUIPMENT CO
	RP., MAYNARD, MASS.***
**************
1)1	VEDIT==641		;MAJOR EDIT NUMBER
1)	VMINOR==01		;MINOR EDIT NUMBER
****
2)1	VEDIT==642		;MAJOR EDIT NUMBER
2)	VMINOR==01		;MINOR EDIT NUMBER
**************
1)1	;**************** END OF REVISION HISTORY
****
2)1	;642	-----	REWRITE OF ALOG ROUTINE IN FORSIN.  SPECIAL CASE
2)	;		FOR VALUES OF X AROUND 1; MORE ACCURATE ALSO
2)	;**************** END OF REVISION HISTORY
**************
 
Digital Equipment Corporation       27-OCT-77    Page  11
PCO Log Report


[FILCOM]
File 1)	LIB:FORSIN.MAC[31,4650]	created: 0809 13-JAN-1977
File 2)	DSKC:FORSIN.MAC[31,4775]	created: 1039 24-JAN-1977
 
1)1	TITLE	ALOG.	%4.(235) LOG ROUTINES
1)	SUBTTL	D. TODD /KK/DMN/DRT/HPW	11-DEC-73
1)	;***COPYRIGHT 1972,1973,1976,1977 DIGITAL EQUIPMENT CORP., MAYNA
	RD, MASS. ***
1)	;FROM	V.022	18-DEC-69
****
2)1	TITLE	ALOG.	%5A(642) LOG ROUTINES
2)	SUBTTL	D. TODD /KK/DMN/DRT/HPW/MHP	6-JAN-77
2)	;***COPYRIGHT 1972,1973 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
	***
2)	;FROM	V.022	18-DEC-69
**************
1)1	;ALOG IS THE ENTRY POINT FOR LOGE(X), AND
1)	;ALOG10 IS THE ENTRY POINT FOR LOG10(X).
1)	;FOR LOGE(X), THE ALGORITHM IS:
1)	;	LOGE(X) = (I + LOG2(F))*LOGE(2)
1)	;	WHERE X = (F/2)*2^(I+1), AND LOG2(F) IS GIVEN BY
1)	;	LOG2(F) = C1*Z + C3*Z^3 + C5*Z^5 - 1/2
1)	;	AND Z = (F-SQRT(2))/(F+SQRT(2))
1)	;FOR LOG10(X), THE ALGORITHM IS:
****
2)1	;EDIT 642 TO ALOG IS A REWORKING OF THE ALGORITHM.  THE
2)	;ALGORITHM USED IS DESCRIBED BELOW.
2)	;ALOG IS THE ENTRY POINT FOR LOGE(X), AND
2)	;ALOG10 IS THE ENTRY POINT FOR LOG10(X).
2)	;FOR LOGE(X) THE ALGORITHM IS DESCRIBED BELOW.  THE
2)	;REFERENCE IS:
2)	;
2)	;'COMPUTER APPROXIMATIONS' BY HART ET. AL.
2)	;WILEY, 1968;	ALGORITHM # 2662
2)	;SEE PAGE 227 FOR THE COEFFICIENTS AND PAGE 111 FOR THE
2)	;RANGE OF VALIDITY.  IT HAS A PRECISION OF 12-13 DECIMAL
2)	; DIGITS.
2)	;THERE ARE TWO BRANCHES, ONE FOR VALUES OF X NEAR ONE
2)	;(I.E., (SQRT(2))>X>1/(SQRT(2))) AND THE OTHER FOR VALUES OF X
2)	;NOT NEAR ONE.
2)	;FOR X NOT NEAR ONE -
2)	;LOGE(X)=(K-1/2)*LOGE(2)+LOGE(F*SQRT(2))
2)	;WHERE X=2**K*F
2)	;LOGE(F*SQRT(2))=L3*Z**7+L4*Z**5+L5*Z**3+L6*Z
2)	;WHERE L3,L4,L5,AND L6 ARE CONSTANTS AND
2)	;Z=(F-(SQRT(2)/2))/(F+(SQRT(2)/2))
2)	;FOR X NEAR ONE -
2)	;LOGE(X)=L3*Z**7+L4*Z**5+L5*Z**3+L6*Z
2)	;WHERE Z=(X-1)/(X+1)
2)	;FOR LOG10(X), THE ALGORITHM IS:
**************
Digital Equipment Corporation       27-OCT-77    Page  12
PCO Log Report


1)1		FUNCT	ALOG.,<TEMP>		;CALC THE LOG TO THE
1)		FMPR	0,LOG10A	;MULTIPLY IT BY LOG10(E).
1)		GOODBY	(1)	;RETURN
1)	LOG10A:	177674557305
****
2)1		FUNCT	ALOG.,<TEMP>	;CALC THE BASE E LOG TO THE
2)		FMPR	0,LOG10A	;MULTIPLY IT BY LOG10(E).
2)		GOODBY	(1)		;RETURN
2)	LOG10A:	177674557305
**************
1)1		ERROR	(LIB,11,2,[ASCIZ /ATTEMPT TO TAKE LOG OF NEGATIV
	E ARG/])
 
 
1)		MOVM	A,@(Q)		;GET ABSF(X)
****
2)1		ERROR	(LIB,11,2,[ASCIZ /Attempt to take log of negativ
	e arg/])
2)		MOVM	A,@(Q)		;GET ABSF(X)
**************
1)1		ASHC	A, -33		;SEPARATE FRACTION FROM EXPONENT
1)		ADDI	A, 211000	;FLOAT THE EXPONENT AND MULT. BY
	 2
1)		MOVSM	A, LS		;NUMBER NOW IN CORRECT FL. FORMA
	T
1)		MOVSI	A, 567377	;SET UP -401.0 IN A
1)		FADM	A, LS		;SUBTRACT 401 FROM EXP.*2
1)		ASH	B, -10		;SHIFT FRACTION FOR FLOATING
****
2)1	;**;	[642]	INSERT AT ALOGOK+3	MHP	6-JAN-77
2)		CAML	A,HI		;[642]IS ARG > SQRT(2)?
2)		JRST	GEN		;[642]YES GOTO GENERAL CASE
2)		CAMG	A,LO		;[642]IS ARG < 1/SQRT(2)?
2)		JRST	GEN		;[642]YES GO TO GENERAL CASE
2)		SETZM	LS		;[642]IGNORE EXP FOR ARG NEAR 1
2)		MOVE	B,A		;[642]SERIES VARIABLE IS
2)		FAD	A,ONE		;[642](ARG-1)/(ARG+1) IF ARG NEA
	R 1
2)		FSB	B,ONE		;[642]
2)		JRST	MERGE		;[642]SKIP HANDLING OF EXP IN GE
	NL CASE
2)	;**;	[642]	ADD LABEL GEN: 	MHP	6-JAN-77
2)	GEN:	ASHC	A, -33		;SEPARATE FRACTION FROM EXPONENT
2)		ADDI	A, 211000	;FLOAT THE EXPONENT
2)		MOVS	A, A		;NUMBER NOW IN CORRECT FL. FORMA
	T
2)	;**;	[642]	CHANGE AT GEN+3	MHP	6-JAN-77
2)		FAD	A,BIAS		;[642]REMOVE BIAS + COMPENSATE F
	OR
2)					;[642]SQRT(2) FACTOR; A HAS EXP
	- 1/2
Digital Equipment Corporation       27-OCT-77    Page  13
PCO Log Report


2)		FMP	A,LN2		;[642]MULT BY LN2
2)		MOVEM	A,LS		;[642]STORE FOR FUTURE - LS=(K-1
	/2)*LN2
2)		ASH	B, -10		;SHIFT FRACTION FOR FLOATING
**************
1)1		FAD	A, L2		;A = A+SQRT(2.0)
1)		FDV	B, A		;B = B/A
1)		MOVEM	B, LZ		;STORE NEW VARIABLE IN LZ
****
2)1		FAD	A, L2		;A = A+SQRT(2.0) = B+(SQRT(2)/2)
2)	;**;	[642]	ADD LABEL MERGE: 	MHP	6-JAN-77
2)	MERGE:	FDV	B, A		;[642]B = B/A
2)		MOVEM	B, LZ		;STORE NEW VARIABLE IN LZ
**************
1)1		FMP	A, LZ		;MULTIPLY BY Z
1)		FAD	A, LS		;ADD IN EXPONENT TO FORM LOG2(X)
1)		FMP	A, L7		;MULTIPLY TO FORM LOGE(X)
1)		GOODBY	(1)	;RETURN
1)	LZERO:	ERROR	(APR,5,1,.+1)	;ERROR MESSAGE
1)		MOVE	A,MIFI		;PICK UP MINUS INFINITY
1)		GOODBY	(1)	;RETURN
1)	ZERANS:	MOVEI	A, 0		;MAKE ANSWER ZERO
1)		GOODBY	(1)	;RETURN
1)	;CONSTANTS
1)	ONE:	201400000000
1)	L1:	577225754146		;-0.707106781187
1)	L2:	201552023632		;1.414213562374
1)	L3:	200462532521		;0.5989786496
 
 
1)	L4:	200754213604		;0.9614706323
1)	L5:	202561251002		;2.8853912903
1)	L7:	200542710300		;0.69314718056
1)	MIFI:	400000000001		;LARGEST NEGATIVE FLOATING NUMBE
	R
1)	LS:	0
****
2)1	;**;	[642]	INSERT AT MERGE+8	MHP	6-JAN-77
2)		FMP	A,B		;MULTIPLY BY Z^2
2)		FAD	A,L6		;[642]ADD IN NEXT CONSTANT
2)		FMP	A, LZ		;MULTIPLY BY Z
2)	;**;[642]	CHANGE AT LZERO-1	MHP	6-JAN-77
2)		FADR	A, LS		;[642]ADD IN EXPONENT TO FORM LO
	G2(X)
2)		GOODBY	(1)			;RETURN
2)	LZERO:	ERROR	(APR,5,1,.+1)	;ERROR MESSAGE
2)		MOVE	A,MIFI		;PICK UP MINUS INFINITY
2)		GOODBY	(1)		;RETURN
2)	ZERANS:	MOVEI	A, 0		;MAKE ANSWER ZERO
2)		GOODBY	(1)		;RETURN
2)	;CONSTANTS
Digital Equipment Corporation       27-OCT-77    Page  14
PCO Log Report


2)	ONE:	201400000000
2)	L1:	577225754146		;-0.707106781187 = -(SQRT(2)/2)
2)	L2:	201552023632		;1.414213562374 = SQRT(2)
2)	L3:	177464164321		;[642] .301003281
2)	L4:	177631177674		;[642] .39965794919
2)	L5:	200525253320		;[642] .666669484507
2)	L6:	202400000000		;[642]  2.0
2)	LN2:	200542710300		;[642] 0.69314718056
2)	MIFI:	400000000001		;LARGEST NEGATIVE FLOATING NUMBE
	R
2)	HI:	201552023632		;[642] IF ARG IS BETWEEN HI AND
	LO
2)	LO:	200552023632		;[642] NO SCALING BY SQRT(2) NEE
	DED.
2)	BIAS:	567377000000		;[642] -(401)/2
2)	LS:	0
**************

[End PCO Write-up]