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]