There is 1 other file named forots.doc in the archive. Click here to see a list.
FOROTS-10 -- Changes from V5A(721) to V6(2033)
COPYRIGHT (C) 1981 BY
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
FOROTS.DOC - FOROTS-10 version 6 Page 2
FOROTS-10 -- Changes from V5A(721) to V6(2033)
FOROTS is the object time system that provides runtime support for
FORTRAN programs, including monitor interface functions for I/O, core
management and error handling. FORLIB is the FORTRAN library
containing the mathematical intrinsic functions and various external
This release is a complete rewrite of FOROTS. It provides all OPEN,
READ, and WRITE statement keywords and format descriptors required by
FORTRAN-77. The accuracy of the mathematical library functions is
improved. There are several additional library routines to improve
The object time system is now in the file FOROT6.EXE. This is to allow
you to keep a version 5A FOROTS.EXE on your system as well as the new
This version fully replaces version 5A.
FOROTS is documented in the FORTRAN-10/20 Programmer's Reference
This release of FOROTS will run with TOPS-10 7.01.
1.3 Related System Software
The following system software must be used with the FOROTS system:
FOROTS.DOC - FOROTS-10 version 6 Page 3
FOROTS.DOC - FOROTS-10 version 6 Page 4
2.0 EXTERNAL CHANGES
The calling sequence generated by the compiler for I/O statements is
new. It is keyword based, like the calling sequence for OPEN,
permitting easy addition of future keywords. It is not compatible with
FOROTS 5A; that is, FOROTS 5A cannot be used with programs compiled by
FORTRAN version 6. FOROTS 6 can be used with programs compiled by
For a description of the new FOROTS calling sequences, see Appendix D
of the FORTRAN Reference manual.
There is no support in version 6 for KA10s or for F40-generated code.
The monitor must support VM; that is, the PAGE. UUO must work. (All
7-series monitors have VM.) Also, support for the FOROTS version 1
calling sequence has been removed. The functions DFIX and IDFIX have
been replaced by the equivalent IDINT.
DIALOG input may be terminated by a carriage return. Altmode still
works, but no other break character (^G, ^Z, ^L, etc.) may be used. If
it is necessary to type extremely long dialog responses, either type
over the line boundary without hitting carriage return, or use -
(hyphen) at the end of the line as a continuation character.
The mathematical intrinsic functions (SIN, EXP, and the like) have been
rewritten to improve their accuracy. The results of these routines are
somewhat different from the version 5A routines. These differences can
propagate through a calculation and produce larger differences in final
It is no longer valid to mix ASCII and BINARY records in the same file.
When a file is opened, it is for either formatted I/O or unformatted
I/O, and trying to mix modes is a fatal error.
In version 6, WRITE statements to random files do not output the data
to disk immediately. The data is written when the file is closed (by a
CLOSE statement) or when the program exits, or when the page containing
the data is replaced by a new page. The monitor .CLOSE command does
not close partially written random files. To close partially written
random files in a version 6 program, use
Do you want to close all files? (Y or N):Y
When a READ takes the ERR= branch, the file will be positioned after
the erroneous record. (That is, the next READ will get the record
after the one with the error.) This is different than version 5A, which
leaves the file positioned before the erroneous record. If it is
FOROTS.DOC - FOROTS-10 version 6 Page 5
desired to reread the erroneous record and specify an ERR= branch, you
can now use REREAD with an ERR= branch.
The BLOCKSIZE parameter of the OPEN statement specifies tape block size
in bytes. In version 5A, the block size is specified in words.
If RECORDSIZE is specified when opening a file, and the file contains
records that are not of the specified size, behavior will differ
between version 5A and version 6. In formatted mode 5A reads until it
finds a CRLF, 6 reads until the specified number of characters have
been read. In unformatted mode 5A reads until the I/O list is
satisfied (and no farther), 6 reads until the specified number of words
have been read. Reading BINARY-mode files with the wrong record size
is fatal with both versions.
When reading list-directed I/O (* format), 5A reads '4* 5' as
'5,5,5,5'. 6 reads it as ',,,,5' (4 null items followed by a 5).
Files written with 5A can contain repeat counts followed by spaces, and
so will be interpreted incorrectly by 6. Files written by 6 can be
read by 5A.
There are many more minor differences. For a list of the known ones,
FOROTS.DOC - FOROTS-10 version 6 Page 6
3.0 KNOWN BUGS AND DEFICIENCIES
All output spool limits are set to 200 by QUASAR.
TRACE as routine to call on library errors fails because the error
message typer does not handle recursive calls.
4.0 INSTALLATION INSTRUCTIONS
See the file FORTRA.INS for information regarding installation.
FOROTS.DOC - FOROTS-10 version 6 Page 7
5.0 INTERNAL CHANGES
FOROTS is completely rewritten.
Note that this affects any user-supplied MACRO subroutine which knows
details about the internal organization of FOROTS's data. Any program
which searches FORPRM should be carefully examined for validity when
working with version 6.
Note particularly that P4 no longer points to the FOROTS data segment,
so any references to this segment will need to be rewritten. The way
DEC-supplied routines reference FOROTS data is with the FOROP.
routine. Negative FOROP functions are reserved for customer
FOROTS.DOC - FOROTS-10 version 6 Page 8
APPENDIX A - COMPLETE FOROTS V6 REVISION HISTORY
***** Begin Revision History *****
1100 CKS 12-MAR-79
1101 CKS 20-Mar-80
Only give truncated-record warning once per unit
1102 CKS 20-Mar-80
1103 CKS 26-Mar-80
Change FUNCT% to %FUNCT and add DBMS%% so DBMS 5A will work
1104 CKS 29-Mar-80
Can OPEN file every time IO is done when it is accessed
through multiple units (TTY: for instance). DDB address
only gets stored for one unit, so IO on any synonymous unit
thinks file needs opening. Fix to store DDB address for all
1105 CKS 29-Mar-80
Move labels DLP, XLP so record size does not get decremented
twice when record crosses file window boundary
1106 CKS 29-Mar-80
Remove MODE:EBCDIC, add $UNIT
1107 CKS 01-Apr-80
Make rewind call generic NXTW so it works for unformatted IO; add
special code to handle case when LSCW is last word in window
1110 CKS 12-Apr-80
Put in error numbers for IOSTAT and ERRSNS to return
1111 CKS 17-Apr-80
Replace JSHALT calls in FOROTS.MAC with ERCAL ERRIJE to sidestep
1112 CKS 17-Apr-80
Correct off-by-1 bug in filename move, results in an extra char used
1113 CKS 15-May-80 Q1210
Make X format act as 1X, not 0X
1114 CKS 27-May-80
Fix pre-error-message CRLF routine
1115 CKS 5-Jun-80 Q1212
More of 1111, missed a JSHALT
1116 CKS 5-Jun-80 Q1211
FOROTS.DOC - FOROTS-10 version 6 Page 9
fix [Enter correct file specs] message
1117 CKS 9-Jul-80 Q1223
Image mode never takes END= branch, or notices EOF at all
1120 JLC 13-Jul-80
Fix so (I5$) format parses as (I5,$)
1121 CKS 15-Jul-80
Add FT20UUO so fools can try doing (simple) UUOs with native FOROTS
1122 CKS 17-Jul-80 Q1234
Add SFMOD so control chars are not translated on terminal output
1123 CKS 4-Aug-80 Q1240
Make REWIND an input operation if file is doing input
1124 CKS 11-Aug-80
Clear F when entering FORERR from library routine to prevent random
1125 CKS 12-Aug-80
Prevent premature EOF in binary IO
1126 CKS 12-Aug-80
Need device designator of TTY to check for interaction between
error messages and file IO. A mere STDEV of TTY: gets confused
by logical names. Get designator of physical TTY.
1127 CKS 12-Aug-80
Compiler doesn't set up L for FIN. so don't trust it in %SAVE
1130 CKS 13-Aug-80
OPEN with DIALOG always takes ERR= branch, with error message
"[Enter correct file specs]". Don't take ERR= on  messages.
1131 CKS 13-Aug-80
Fix ERRSNS again: remove extra indirect bit, fix so jsys
error number is the one that caused the IO statement to fail,
not the most recent error at the time of the error message
1132 CKS 14-Aug-80
Unformatted output sets associate variable off by 1; fix.
1133 CKS 18-Aug-80
Hack to allow UUOs on -20 fails if low seg is larger than 128K.
Hack the hack.
1134 CKS 21-Aug-80 Q4500
Use FO.CHN instead of 777B17 to load channel number
1135 CKS 22-Aug-80 Q4510
OPEN (UNIT=1,DIALOG) doesn't go into dialog if batch; it should.
FOROTS.DOC - FOROTS-10 version 6 Page 10
1136 CKS 22-Aug-80 Q4514
Binary IO doesn't take END=
1137 CKS 23-Aug-80 Q4504
EOF from TTY is permanent; CLOSE the channel at EOF to clear it
1140 CKS 29-Aug-80 Q4559
Put FRSXXX prefix on TOPS-10 error messages
1141 CKS 29-Aug-80 Q4567
ALCHN doesn't store T0 in U.ACS so it doesn't get returned to user
1142 CKS 29-Aug-80
Don't rely on IOSUB being set up on REWIND
1143 CKS 26-Sep-80 Q4698
Don't fall into CLOSE from CLOSE%
1144 CKS 26-Sep-80 Q4689
Remove .+n constructs
1145 CKS 26-Sep-80 [Abbott]
FORPLT bug: routine NUMBER calls SYMBOL with L set up wrong. Change
MOVE to MOVEI
1146 CKS 26-Sep-80
More of 1137
1147 CKS 29-Sep-80 Q4648
Add VFOROTS to FORPRM so MACRO routines can include version-dependent
1150 CKS 29-Sep-80 Q4653
Remove debugging code from DUMP and PDUMP
1151 CKS 1-Oct-80
Prevent junk F from causing spurious ERR= branches in FORERR
1152 CKS 2-Oct-80 Q4734
1153 JLC 18-Sep-80
Alpha I/O speedup
1154 JLC 26-Sep-80
Fixed integer overflow in INTI
1155 JLC 29-Sep-80
FLOUT fix - turn off sign bit in word 2 for dp values
1156 JLC 3-Oct-80
Fix NAMELIST to demand $ in col 2 after skipping data
1157 CKS 3-Oct-80
Do not suppress carriage control of first line if it isn't LF
FOROTS.DOC - FOROTS-10 version 6 Page 11
1160 CKS 16-Oct-80 Q1260
Correct / format in ENCODE to not pad record with spaces first
1161 CKS 16-Oct-80 Q4747
OPEN(5,ACCESS=SEQIN) prevents TYPE statements from working.
"Cure": make all opens of controlling TTY for input and output both
1162 CKS 22-Oct-80 Q4693
Prevent -10 disk files from being one word too long
1163 JLC 23-OCT-80
A whole lot of bug fixes to magtape ops for TOPS-10.
Fixed byte/count synch in %IREC
1164 CKS 24-Oct-80
Make OPEN (DEVICE='DEV:') work
1165 CKS 24-Nov-80 Q4572
Change some statement labels
1166 CKS 1-Dec-80 Q5048
Use SAVE4 not SAVE2 in xIREC
1167 CKS 1-Dec-80 Q5049
Add missing GETTAB T1, in FORINI
1170 CKS 1-Dec-80 Q5047
Add .TFSET to tapop set functions
1171 CKS 1-Dec-80 Q5054
Call %SAVE in EXIT. so that the ACs are set up for the CLOSEs that
1172 JLC 2-Dec-80 Q1318
Clear DPFLG in ALPHI/ALPHO
1173 EDS 8-Dec-80
Replace SEARCH JOBDAT in FORPRM with EXTERNs.
1174 CKS 10-Dec-80 Q5052
Remove "Too many args" error. If program sends more arguments
than will fit in the static block, dynamically allocate a block.
1175 JLC 12-Dec-80
Fixed LSNGET again
1176 CKS 13-Dec-80
Remove confusion about ERR= and END= and IOSTAT= addresses sticking
around and applying to the following statement
1177 CKS 13-Dec-80
Fix ERRSNS returning JSYS error number
1200 CKS 13-Dec-80
FOROTS.DOC - FOROTS-10 version 6 Page 12
Make CLOSE of non-open file a nop
1201 CKS 13-Dec-80
Precede and follow all terminal input with SFCOCs to get the terminal
modes right. .TTATE doesn't quite make it.
1202 CKS 15-Dec-80
Remove TLO of IFIW in arg copier; won't work with 30-bit addresses and
is not necessary without 30-bit addresses.
1203 JLC 17-Dec-80
Finally fix TOPS-10 read followed by write.
1204 CKS 18-Dec-80 Q1330
-20 TIME routine can return negative time if HOURS .LT. GMT_CORRECTION.
Add 24 if it goes negative.
1205 CKS 18-Dec-80 Q1332
Move copying of ERR=, END=, IOSTAT= to where it will happen for
1206 CKS 18-Dec-80 Q1333
Don't set REREAD unit on WRITE statements
1207 CKS 18-Dec-80 Q1336
-20 tape code handles nulls by jumping off to the middle of the disk
IO loop. Jump instead to the middle of the tape loop, it works better.
1210 CKS 18-Dec-80 Q5114
In TRACE's PC finder, check for JSP 1,.OVRLAY by looking at the RH of
the instruction, not the LH.
1211 JLC 19-Dec-80
In %%GETIO make sure not to substitute for complex for list-directed
1212 JLC 22-Dec-80
Another SEQINOUT fix (TOPS-10). If we reach EOF, there is
no truncation to do. Additionally, we must not turn off the
EOF bit, as that's the only way to tell. Otherwise buffers
are left out of synch (ENDXFR now only turns off D%END).
1213 CKS 29-Dec-80 Q5203
DIRECTORY=array doesn't work; change a SKIPE to SKIPN
1214 JLC 05-Jan-81
Fix DISPOSE='DELETE' and 'RENAME' by inserting a
test for JFN open in IOCHK, calls address in IOSUB if
not open yet.
1215 JLC 06-Jan-81
Inserted a POPJ at end of SFDEL in FORFMT, was dropping off
the end and dropping into dollar format.
1216 JLC 08-Jan-81
FOROTS.DOC - FOROTS-10 version 6 Page 13
New code for DECODE for 'next record'; moves pointer/count
to next word of string, as in V5.
1217 JLC 09-Jan-81
Fix integer divide check in FORTRP to "patch" the answer.
1220 CKS 9-Jan-81
Rework OSWTCH to fix TOPS-20 read to EOF followed by write
1221 JLC 15-Jan-81
Force input check (call of subr in left half of IOSUB) for
all magtape operations.
1222 JLC 16-Jan-81
FILOPs in OSWTCH were allocating buffers spuriously. Clear
the buffer count word.
1223 JLC 16-Jan-81
Add increment of BLKN(D) to -10 SMAPW, as it was not getting
bumped for unformatted I/O.
1224 CKS 18-Jan-81
More of 1220
1225 JLC 19-Jan-81
Make %DDBTAB full-word table, affects FOROPN, FORIO, and
1227 JLC 20-Jan-81 Q4829
Added code to only allocate buffer space needed instead
of always assuming both input and output.
1230 JLC 20-Jan-81
Changed format repeat count size from 9 to 12 bits,
allowing new maximum of 4095A1.
1231 JLC 20-Jan-81
Changed FCNT to a word in preparation for a merger
of FCNT and IBCNT on the -10.
1232 JLC 21-Jan-81
Fixed random I/O on -10 - buffers were not being allocated.
1233 JLC 21-Jan-81
Partial merger of FCNT and IBCNT/OBCNT - FCNT is now
a full-word indirect on the -10, pointing to IBCNT or
1234 CKS 22-Jan-81
Fix OPEN/CLOSE with no intervening IO to not complain when the
file does not exist
1235 CKS 22-Jan-81
Add initial value for .JBHRN to fake highseg JOBDAT.
FOROTS.DOC - FOROTS-10 version 6 Page 14
1236 JLC 23-Jan-81
Restore pntr/count setup in ISW and OSW, removed by accident.
1237 JLC 23-Jan-81
Fix to decode eof condition, was leaving negative record size
if record previously used up.
1240 JLC 23-Jan-81
FOROPN - binary/image kluge in OSWTCH: number of words to write
is one less than specified by buffer pointer.
1241 JLC 23-Jan-81
Remove setup of FCNT at end of DOOPEN for -10, as FCNT is now
automatically set up.
1242 JLC 23-Jan-81
Fix to exit code in FOROPN for full-word DDBTAB.
1243 JLC 26-Jan-81
Another DECODE fix; RPTR was being reset to beginning of
1244 JLC 26-Jan-81
Move ISWTCH/OSWTCH recall code to inside IF10.
1245 JLC 26-Jan-81
Recode ISWTCH for -10 to not set to EOF, as it would
not work properly for BACKSPACE.
1246 JLC 26-Jan-81
DF was not being renewed in ISWTCH or OSWTCH. Changes in
FOROPN and FORIO.
1247 JLC 27-Jan-81
Fix REWIND yet again, did not have code for the 20-type
binary buffer pointer.
1250 DAW 27-Jan-81
Put IFIW's in front of some indirect addresses.
1251 CKS 28-Jan-81
MOVE => MOVEI in GETIO to make complex non-*-fmt work
1252 CKS 28-Jan-81
Fix SKIP RECORD after SEQINOUT OPEN, add code for unformatted
1253 JLC 29-Jan-81
Patch to prevent OPEN from truncating files in ISWTCH, plus
preventing 2nd truncation in OSWTCH.
1254 JLC 29-Jan-81
Yet another minor patch in OSWTCH, wasn't correcting for
binary/image kluge correctly.
FOROTS.DOC - FOROTS-10 version 6 Page 15
1255 CKS 5-Feb-81
If -10 open error occurs, mark file as not open before trying
to proceed with dialog. Avoids infinite CLOSE loop when trying
to close un-opened file on error exit.
1256 DAW 5-Feb-81
New calling sequence for FOROP. (Affects FORMSC, FORDDT, FOROP).
1257 JLC 6-Feb-81
Major modification to byte pointer and mapping routines, now
point to last used word instead of next available, to make
-10 and -20 code more similar.
1260 DAW 6-Feb-81
LSNGET smashed ACs 2 and 3.
1261 JLC 9-Feb-81
Unformatted skip record dropped into formatted I/O on the -10.
1262 DAW 9-Feb-81
Allow FORINI to run in non-zero sections.
1263 JLC 9-Feb-81 QAR 10-05487
Fix -10 backspace code, SOJLE should be SOJGE.
1264 EDS 10-Feb-81 QAR 10-04519
Fix FORPRM to not allow a KI-20 version to be generated.
1265 CKS 10-Feb-81
Fix FORERR to allow calls of FORER. from within user-supplied error
1266 DAW 11-Feb-81
Changes to FORMSC to allow extended addressing. In particular,
lots of changes to DUMP and PDUMP (also bugs fixed), TIME, and
DATE routines. (More FORMSC changes to come..).
1267 EGM 15-Feb-81 Q10-04519
Clean up FORPRM, add checks for feature test conflicts, replace
DDB byte pointer definitions in FOROTS with call to macro defined
1270 CKS 17-Feb-81
Arrays more than 128K output by a single SLIST don't work because
of a HRREM. Make it a HRRZM.
1271 EGM 18-FEB-81 --------
Allow lower case (d) to generate optimal code and use the previously
defined DDB byte pointer, and fix the position field for all cases that
do not index using (D) or (d).
1272 DAW 19-FEB-81
Certain low-risk extended-addressing changes to FOROPN & FORIO
1273 EDS 19-Feb-81 Q10-04732
FOROTS.DOC - FOROTS-10 version 6 Page 16
Add /RECL to dialog keyword table in FOROPN
1274 EDS 19-Feb-81 Q10-04574
Add TM.ANS to FORPRM for ANSI-ASCII tapes and
add ANSI-ASCII keyword to TAPEMODE table.
1275 DAW 20-Feb-81
Make FORMEM function %GETBK return a whole 30-bit address.
1276 DAW 20-Feb-81
Add MACRO definitions for fields and masks to FORPRM.
Taken from MACSYM: FLD, POINTR.
1277 JLC 23-Feb-81
Added code for 1st performance improvements: precalculated
record size for %IREC.
1300 DAW 24-Feb-81
Get FIN. calls and IOLISTS correct again in DUMP & PDUMP.
1301 JLC 24-Feb-81
Added line sequence number word to DDB.
1302 JLC 24-Feb-81
Added channel arg to LSNGET and FOROP call.
1303 JLC 25-Feb-81
Folded -10 and -20 code for DIREC together, store line
sequence number in DDB.
1304 CKS 25-Feb-81
Update DDB when -20 dialog GTJFN changes device or filename
1305 JLC 26-Feb-81
More on RSIZE, fix RECSIZ
1306 DAW 26-Feb-81
Change %SAVE arg list outputs, affects FOROTS, FORIO, FOROPN, FORFMT.
1307 EDS 26-Feb-81
Put ACCESS back in valid switches for DIALOG.
1310 DAW 26-Feb-81
Full words in DDB for ERR=, END=, IOST=, AVAR= addresses.
1311 CKS 27-Feb-81
Random formatted IO can output more than one record per WRITE statement.
Fix file length setter to know about last record written.
1312 EDS 27-Feb-81
Remove edit 1307 as it causes generation number skew on TOPS-20
with certain combinations of ACCESS in DIALOG different from
the ACCESS that was specified in the OPEN.
1313 JLC 3-Mar-81
FOROTS.DOC - FOROTS-10 version 6 Page 17
Added code to FOROPN for handling magtape op's better.
1314 EDS 4-Mar-81 Q20-01392
Add feature test switch FTNLC1 to allow skipping of column 1 of
NAMELIST input data. Add $END to NAMELIST output.
1315 DAW 5-Mar-81
Set IFIW bit in LTYPE word so "LDB T1,@LTYPE" works in
a non-zero section. (This is really more of 1306).
1316 JLC 5-Mar-81
Major changes to FOROPN and FORIO for handling TOPS-10 magtapes
and direction switching properly.
1317 DAW 6-Mar-81
Add flag "EXTADD" - INIT% sets to -1 if FOROTS is
running in a non-zero section, for easy testing.
1320 DAW 6-Mar-81
Define feature test switches for type of byte pointer to
use when indexed byte pointers won't do.
1321 DAW 6-Mar-81
Some changes to FORFMT to allow it to run in non-zero section.
1322 JLC 8-Mar-81
More mta fixes
1323 CKS 9-Mar-81
Yet more (-20) MTA fixes
1324 EDS 9-MAR-81 Q20-01396
Fix FORFMT to allow DOLLAR ($) and COLON (:) to work correctly.
1325 JLC 9-Mar-81
Yet more fixes for -10 magtapes
1326 CKS 9-Mar-81
Remove fencepost bug caused by 1257
1327 JLC 10-Mar-81
Minor bug fix in OPEN for -10.
1330 CKS 11-Mar-81
Check for JRST-type entry vector when calling DBMSF
1331 CKS 11-Mar-81
Remove FTGAL2. On -10, try QUEUE. uuo. If that fails, send a
version 2 packet to QUASAR. Requires that FOROTS-10 be
assembled with QSRMAC from Galaxy release 2.
1332 JLC 11-Mar-81
Install dump mode I/O into FORIO.
1333 JLC 11-Mar-81
FOROTS.DOC - FOROTS-10 version 6 Page 18
Magtape fixes (mostly typos) for the -10.
1334 DAW 12-Mar-81
Add macros for dealing with the different types of byte pointers
without seeing a lot of feature test switches in the code.
The macro names are $BLDBP, $LODBP, $STRBP.
1335 EDS 12-Mar-81 Q10-05759
Make TIME use the arguments correctly for -10 and -20. Use
symbols when testing ODCNV% output.
1336 JLC 12-Mar-81
Fix some bugs in binary I/O for the -10. Pointer/count
was not getting updated on the way into the FILOP. Remove
some extraneous saves of the pntr/count. Fix more typos
in the magtape direction switching code for the -10.
1337 JLC 12-Mar-81
Moved MAXARG (number of I/O list elements max) from
FOROTS.MAC to FORPRM.MAC and increased it to 128.
1340 DAW 12-Mar-81
Make FUNCT macro use XMOVEI instead of MOVEI for arg-list ptr.
1341 JLC 13-Mar-81
Make some magtape ops work without a file being open on
1342 EDS 13-Mar-81 Q10-05075
Make FORMSC routines TRACEable, use HELLO macro. Fix
TWOSEG and RELOC problems and fix TITLEs.
1343 DAW 16-Mar-81
Some FORIO extended addressing changes.
1344 CKS 16-Mar-81
Make REWIND to a nonopen tape not be a nop. REWIND of any other unit
that is not open is still a nop.
1345 EDS 16-Mar-81 Q10-04806
Fix ASIN and ACOS library error message.
1346 JLC 16-Mar-81
Modify code for skip file, back file, and clear eof for rewind
1347 DAW 16-Mar-81
To allow list-directed I/O and FLIRT. to run in extended addressing.
1350 EDS 16-Mar-81 Q10-04761
Fix TWOSEGs and RELOCs in random number routines. (FORSNG)
1351 EDS 16-Mar-81 Q10-04786
Fix TWOSEGs and RELOCs in FORDBL, FORCPX, FORMSC and FORPL2.
1352 DAW 17-Mar-81
FOROTS.DOC - FOROTS-10 version 6 Page 19
Recent bug in %ISAVE that caused V5 rel files to stop working with
1353 JLC 18-Mar-81
More magtape op patches for the -10. Empty buffer was confusing
OSWTCH. Installed new code to back over EOF if program reads
to EOF, then writes.
1354 JLC 18-Mar-81
Fix to -10 OSWTCH. Must truncate file to previous block to
prevent monitor from rounding up word count.
1355 CKS 18-Mar-81
Opening a file without a MODE= specification, then doing binary IO,
doesn't work well. Fix more things in UNFSW: the /MODE field in the
DDB, the monitor byte size (20) or data mode (10), and the byte sizes
in the buffer pointers.
1356 JLC 18-Mar-81
Add dump mode write to OSWTCH.
1357 JLC 19-Mar-81
Fix some more bugs in magtape (BAKEOF) for the -10.
Install code to prevent creation of null file for
just a rewind, unload, backfile, or skipfile without
1360 EDS 19-Mar-81 Q10-05866
Add UNIT number range checking to FORIO.
1361 JLC 20-Mar-81
Put -20 null file creation code in IF20. Fix typos in
1362 JLC 23-Mar-81
More magtape fixes, FCNT/FPTR becomes IPTR/ICNT and OPTR/OCNT.
1363 JLC 24-Mar-81
Commented out common tty ddb code in FOROPN. Minor seqinout
fix (missing global). FORIO fixes to error typeout, magtape
1364 CKS 24-Mar-81
In error cleanup, don't RLJFN the JFN if we haven't succeeded in
getting a JFN on the file yet.
1365 JLC 25-Mar-81
Typos in FORPRM and FORIO. Move code in FOROPN to get
device type up slightly so magtape ops will know about it.
1366 JLC 26-Mar-81
Yet more typos in FORIO. Binary I/O was going in wrong direction.
BAKEOF returned garbage in T1, used in backspace. MOPEND did
simulate reading the EOF record.
FOROTS.DOC - FOROTS-10 version 6 Page 20
1367 EGM 26-Mar-81 --------
Update FORSRT to search FORPRM and use FORTRAN feature test switchs.
1370 EDS 26-Mar-81 Q10-04566
Make IMAGE and BINARY mode I/O illegal on TTY device. Fixed
typos in FOROPN.
1371 JLC 27-Mar-81
Make zero-trip do loops work in list-directed I/O
1372 EGM 30-Mar-81 --------
Make OVERFL compatible with verison 5A, and eliminate JSYS conflict
in TIME prologue.
1373 CKS 31-Mar-81
Fix more 20 tape bugs. Write and back over a record when necessary
to convince monitor to write tape marks. Fix unformatted backspace.
Backspace doesn't work at all if file is open for output, so reopen
the file when necessary. Replace SIN/SOUT with SINR/SOUTR so spacing
operations stay in sync with the monitor's buffers.
1374 JLC 31-Mar-81
Replace code to turn off D%END for terminals, was smashing T1,
which contained valuable data.
1375 EDS 31-Mar-81 Q10-05002
Fix FILOP. programming error for CLOSE DISPOSE='RENAME'.
1376 JLC 31-Mar-81
Stop clearing use-bits in backspace to avoid cache-sweep
bugs. Fix OSWTCH-10 bugs regarding null files.
1377 JLC 01-Apr-81
Changed load/store of FLGS to move/movem of FLAGS, since
FLGS was defined to be a full word. Minor edits to UNFO,
to check for empty window at beginning of loop instead
of end. Minor edit to -10 backspace, no need to specify
FILOP read address if we turn on virgin buffer bit.
1400 JLC 02-Apr-81
Typo in FOROPN.MAC, PUSHJ with no "P,".
1401 JLC 03-Apr-81
Put code to clear use bits back, was not causing bugs,
merely masked another problem.
1402 JLC 06-Apr-81
Don't do dump-mode update code for magtape on -10 in
OSWTCH. Move code to suppress next CRLF from OSWTCH to
1403 DAW 06-Apr-81
Get rid of magic number in FORERR that prevents users
from loading FOROTS at places other than 400000.
FOROTS.DOC - FOROTS-10 version 6 Page 21
1404 EGM 6-Apr-81 --------
Seperate CDX and CGX routines, add FTGFL feature test, move
GFLOAT double precision checks into CDX routines under FTGFL.
1405 DAW 6-Apr-81
Modify all math library routines to be able to run in extended
1406 JLC 06-Apr-81
Typo in FOROPN, left in reference to OSW for -10. Minor
bug in FORIO, backspacing beyond block 1 would not work.
1407 JLC 07-Apr-81 QAR 10-05241
Move device-dependent code so that BLOCKSIZE is set up
before buffers are allocated. Requires using device
name rather than channel.
1410 JLC 07-Apr-81
Moved record buffer allocation to FORIO in preparation
for separation of input & output record buffers.
1411 DAW 08-Apr-81
Separate JFN field into IJFN and OJFN. Make ACCEPT
use .PRIIN, TYPE use .PRIOU. OPEN of "TTY:" will also
use the primary input and output JFNs, but if the user has
a logical name definition for TTY:, use the JFN obtained
by the GTJFN on TTY:. When the file is not a TTY file,
IJFN and OJFN will always be the same.
The whole reason for this is so input and output can continue at
your new terminal if you DETACH and re-attach somewhere else.
1412 JLC 09-Apr-81
FORIO - minor fix in DIREC to ignore characters after
the record's size. Fix backspace bug in -20 code,
did not handle fixed-length records correctly.
FOROPN - uncommented the commented-out code to tie
all TTY I/O to the same DDB.
1413 DAW 10-Apr-81
Get rid of flag D%MTOP. FOROTS doesn't need to check
whether or not its doing a magtape operation on every IO
1414 DAW 10-Apr-81
MTOP operations were ignoring ERR=.
1415 DAW 10-Apr-81
Extended addressing fix: Allow args to be in acs.
1416 JLC 10-Apr-81
Dectape rewind and unload. Separation of input and output
1417 DAW 10-Apr-81
Type traceback info for OPEN errors before dialog mode.
FOROTS.DOC - FOROTS-10 version 6 Page 22
1420 JLC 10-Apr-81
Deallocation of separate record buffers.
1421 JLC 10-Apr-81
Typo in edit 1407. DF was not set up when DSKSET was
called, causing RANDOM I/O not to work.
1422 JLC 13-Apr-81
Fixup of separation of record buffers, typos in FORIO.
1423 DAW 13-Apr-81
Put %SETD in FORIO.
1424 JLC 14-Apr-81
Typo in %IRINI made DECODE nonexistent.
1425 BL 14-Apr-81 Q10-05076
Make OVERFL functionality include 'logical function'.
Returns T0=-1 if OVERFLOW=YES, T0=0 if OVERFLOW=NO.
Original functionality unchanged.
1426 JLC 14-Apr-81
Change error reporting in OSWTCH to fatal open errors.
Restore .JBFF in DOOPEN if FILOP fails, caused SORT
1427 JLC 15-Apr-81
Changed RSIZ to be a word in the DDB, so we don't
need flag D%RSIZ, can use SKIPN instead.
1430 JLC 15-Apr-81
Typo in -20 backspace broke it.
1431 BL 16-Apr-81 Q10-05949
Change misleading 'RIB error' message to 'checksum error'
or 'data error'; increase lookup block to include .RBSTS
1432 JLC 16-Apr-81
Routine IALIGN in FORIO to correct fixed-length problem
was trashing a returned AC (T3).
1433 DAW 16-Apr-81
Show possible switches user can type when he gets to
DIALOG mode on the -20 and types a question mark.
1434 DAW 16-Apr-81
Check for READONLY specified and if so, change ACCESS=
'RANDOM' to 'RANDIN', 'SEQINOUT' to 'SEQIN'.
1435 CKS 16-Apr-81
More backspace changes, more of 1412 and 1430
1436 JLC 16-Apr-81
More of edit 1432. Return decremented rec count in IRCNT.
FOROTS.DOC - FOROTS-10 version 6 Page 23
1437 DAW 17-Apr-81
Change FILOP error message 12 from "No such device" to
"Can't OPEN device" -- Open of LPT could cause this.
1440 DAW 17-Apr-81
Some extended addressing support in FORCNV.
1441 JLC 17-Apr-81
Changed all references to D%RSIZ to SKIPN/SKIPE RSIZE(D).
Put back @ in RMAP, removed by mistake.
1442 DAW 17-Apr-81
Remove /LABELS:, /TAPEMODE: from possible DIALOG options
(comment them out).
1443 JLC 17-Apr-81
Stabilize EOFN(D) to be fixed number of bytes in file.
EOF detected by comparing BYTN with EOFN.
1444 JLC 21-Apr-81
Fix bug caused by edit 1443; it was smashing T1.
1445 DAW 21-Apr-81
Rework code around UNFSW to make it more understandable.
1446 DAW 22-Apr-81
Rework NMLST code to not smash P4 in a lower-level routine.
This fixed a bug caused by edit 1440.
1447 CKS 22-Apr-81
Fix various things: Don't destroy critical AC in IALGN, use
legal byte pointer (point to bit 34, not 35) when backing past
the beginning of a word, use correct flag AC in revised UNFSW
1450 JLC 22-Apr-81
Fix DECODE new record code.
1451 JLC 23-Apr-81
Fix dump mode. Must do special things for dump mode files
for mtops, ISWTCH, and OSWTCH.
1452 CKS 23-Apr-81
Set EOFN correctly on 20 on BACKSPACE, REWIND, and CLOSE.
Don't set EOFN after WRITE/REWIND/CLOSE sequence.
1453 JLC 24-Apr-81
Move -10 code to set up bytes/word so that BLOCKSIZE setup
will work. Make dump mode backspace and skiprecord work for
magtape (record = 1 block). Insert if20 end after EOFN setup.
1454 JLC 24-Apr-81 QAR 20-01364
Change EOFN if we switch from formatted to unformatted.
1455 JLC 27-Apr-81
FOROTS.DOC - FOROTS-10 version 6 Page 24
Fix bug in edit 1452, must not set D%LIN/D%LOUT on the way
out of magtape operations.
Remove extra angle brackets from POINTR macro in
FORPRM, was causing MACRO to create Polish string in pass
2 after pooling literals in pass 1; caused hiseg break
to be inaccurate.
1457 CKS 27-Apr-81
Prevent ENDFILE statement from always taking END= branch.
Prevent WRITE/REWIND/CLOSE from writing zero-length file.
1460 JLC 28-Apr-81
Fix bug in edit 1453, made non-dump mode files be dump mode.
1461 JLC 29-Apr-81
Fix return from magtape ops again.
1462 CKS 4-May-81
Fix RENAME to not fail on output-only files
1463 JLC 7-May-81
Change EOFN to be updated on the fly. Removed most code
from ISWTCH. Removed IOSUB hack on the -20. Fix disk
backspace. Speed up %GETIO & DOIO. Remove rewind hack
for both -10 and -20.
1464 DAW 12-May-81
Change error macros ERR, LERR, IOERR; replace "ERRJ" with "$ECALL";
put all error messages (except LERR's) into FORERR.MAC.
Also get rid of $2HAK (won't be needed any longer).
1465 JLC 15-May-81
Major changes to -20 magtape ops and magtape i/o.
Other major changes to ISWTCH/OSWTCH for the -20. Minor
bug fixes for the -10 (mostly from the tape 5 beware file).
1466 CKS 18-May-81
Add TOPS-20 PSI interface
1467 CKS 18-May-81
Replace EXTADD with I.EXT to avoid non-dotted global symbols
1470 CKS 20-May-81 Q20-1360
In floating output, fix incrementing doubleword integer
to propagate carry into high word if necessary
1471 CKS 21-May-81 Q10-5010
Add defensive checks to FORHAK
1472 CKS 21-May-81 Q10-5875
Add PC to ENCODE/DECODE message
FOROTS.DOC - FOROTS-10 version 6 Page 25
1473 CKS 21-May-81 Qvarious
Add flags to IOERR macro, I%REC to print current input record with
arrow under current position, I%FMT to do same for current format.
Add I%REC and I%FMT to appropriate messages.
1474 JLC 22-May-81
Fix a bug in %PTOF, was assuming WSIZ(D) contained words, now
contains bytes. Fix bug in new -20 open code, can't look at
DF before it's set up.
1475 JLC 22-May-81
Another bug in new -20 open code, %GTBLK has no error return.
1476 JLC 26-May-81
More bugs in new I/O code, was looking at EOFN for non-disk
files in unformatted I/O.
1477 JLC 27-May-81
Bug in OSWTCH-10, was not clearing BLKN if writing after EOF.
1500 DAW 27-May-81
Fix edit 1464 - got E error in FORMSC.
1501 JLC 27-May-81
Bugs in random I/O caused by changed calling sequence
1502 JLC 28-May-81
Install defensive WAIT operations in all -20 magtape code.
1503 JLC 28-May-81
Round default magtape blocksize to word boundary, since
that's what the monitor does anyway.
1504 BL 1-JUN-81 Q10-06141
Prevent TRACEBACK default call from displaying itself
1505 JLC 1-Jun-81
Don't do extra backspace in MTAISW. Lots of other backspace
fixes in FORIO.
1506 CKS 2-Jun-81
Add F-77 ELIST and SLIST entries, for now equated to F-66 equivalents
1507 BAH 4-Jun-81
Fix up FORRTF, TOPS10 real time library routine, to work with version 6
1510 BL 4-Jun-81 Q10-06197
Fix IllMemRef bug due to all pages being initialized as existing.
1511 JLC 5-Jun-81
More edits in magtape code for BACKFILE and SKIPFILE.
1512 BL 5-Jun-81 Q10-05829
FOROTS.DOC - FOROTS-10 version 6 Page 26
Fix <crlf> omission when output assigned from DSK to TTY.
1513 BL 8-Jun-81 Q10-06193
Fix no error message writing small file to write-locked yape.
1514 JLC 8-Jun-81 Q20-01392
Fix several NAMELIST bugs (subscript out of range, etc.).
Added some new features, fixed column 1 skip code.
1515 BL 9-Jun-81
Change JRST to CLSERR in EDIT 1513 to PUSHJ.
1516 JLC 10-Jun-81
Another bug in backspace. Also fix end-of-record handling
for unformatted I/O.
1517 BL 18-Jun-81 Q10-05075
Use HELLO macro at CLRDIV (FORMSC)
1520 BL 19-Jun-81 Q10-05485
eliminate CORE UUO which wipes out VMDDT
1521 JLC 26-Jun-81
Fix formatted EOF processing: stop processing the I/O list when
about to get an EOF.
1522 JLC 01-Jul-81
Fix R format output to match R format input for width
larger than 5.
1523 JLC 03-Jul-81
1022 interface in FORMEM, FOROP.
1524 DAW 06-Jul-81
Fix POWER function error message to be shorter so it is not truncated.
In FORSNG EXP3. function.
1525 JLC 07-Jul-81
Fix PAUSE so it types the *, etc.
1526 BL 09-Jul-81
Fixes to FORERR,FORTRP,FOROPN,FORHAK to work on TOPS10.
1527 JLC 09-Jul-81
Fixes to FORMEM.
1530 JLC 10-Jul-81
Change name of FOROTS.EXE to FOROT6.EXE in FORINI. Remove
old EXE file compatibility (V5 is now left FOROTS.EXE).
Changed CTL files and CCL files.
1531 JLC 10-Jul-81
More fixes to FORMEM.
1532 DAW 14-Jul-81
FOROTS.DOC - FOROTS-10 version 6 Page 27
OPEN rewrite base level 1.
1533 DAW 14-Jul-81
Errors that were supposed to print the input record didn't.
Also those errors messed up the message text saved for ERRSNS.
1534 DAW 14-Jul-81
Infinite loop if illegal characters in DIALOG='string'.
Also add code for TOPS-20 "STATUS='SCRATCH'".
1535 JLC 14-Jul-81
Add code for proper EOF handling and IOSTAT.
1536 JLC 15-Jul-81
Minor edits. Changed FORFMT and LDIO/NMLST to call
%ORECS instead of %OREC to setup record buffer.
1537 DAW 16-Jul-81
Finish SCRATCH file handling for TOPS-20. Get CLOSE working
again for TOPS-20.
1540 DAW 17-Jul-81
Delete IS from DDB, use IOSTAT variable directly.
Set IOSTAT variable to zero at the start of each IO statement.
Set D%ERR if "?" error in IOERR.
1541 DAW 17-Jul-81
Get rid of D%LIN and D%LOUT
1542 JLC 17-Jul-81
Change EOF and ERR returning, so that we stop I/O processing
when the EOF or error happens.
1543 DAW 17-Jul-81
Allow SCRATCH files to be on devices besides DSK:
1544 DAW 20-Jul-81
/CARRAIGECONTROL not working right; invent a routine "FIXU"
like FIXDEF that solves the problem.
1545 DAW 20-Jul-81
Remove call to %OCRLF at CLOSE time.
1546 JLC 20-Jul-81
TIREC for -20 did not have an input buffer. DECINI was not
being called in DEC%.
1547 DAW 20-Jul-81
Re-work FORIO routines "CLSOPN" and "CLREOF" which used to
1550 JLC 20-Jul-81
Make truly sure there is a buffer before calling the INI
routines. Fix DECODE. Fix X format.
FOROTS.DOC - FOROTS-10 version 6 Page 28
1551 DAW 20-Jul-81
Fix LOAD, STORE macros to give a "Q" error if you try to
"MOVE" or "MOVEM" a quantity that's not defined to be
a full word.
1552 DMN 21-Jul-81
Performance work on FORFMT.
1553 JLC 22-Jul-81
Fixes to ENCODE, DECODE, and TIREC. Remove ENCINX, was
not used any more.
1554 DAW 22-Jul-81
CLOSE keywords separate from OPEN; work on /DISPOSE actions.
1555 BL 22-Jul-81
Install DMN code for non-zero FORSRT.
1556 DAW 22-Jul-81
CLOSE from EXIT no longer worked.
1557 JLC 24-Jul-81
FLOUT uses double precision for everything. Therefore
print same maximum of significant digits for both.
1560 DAW 28-Jul-81
OPEN rewrite base level 2.
1561 DAW 28-Jul-81
LSNGET always returned -1
1562 DMN 28-Jul-81
Improve performance of FORFMT.
1563 DAW 29-Jul-81
DIALOG='string' lost track of its arg type.
1564 DAW 29-Jul-81
Check conflicts in CLOSE switches; use STATUS value if DISPOSE
1565 DAW 29-Jul-81
Do BLANK= defaulting correctly.
1566 JLC 29-Jul-81
Fix error handling in FORFMT.
1567 JLC 30-Jul-81
More fixes to FORIO.
1570 DAW 30-Jul-81
Add flag F%NION so %IONAM doesn't get cleared in OPEN.
1571 DAW 31-Jul-81
Set F to initial value if program goes to %ABORT.
FOROTS.DOC - FOROTS-10 version 6 Page 29
1572 JLC 31-Jul-81
Set F to initial value in FORTRP before printing error.
Initialize ENCODE more completely.
1573 DAW 31-Jul-81
Do RENAME errors better; eliminate typing random CRLF's when
ERR= branch taken.
1574 BL 3-Aug-81
Missing IF20 in FORIO.
1575 JLC 5-Aug-81
Fix record zeroing again. Fix bug implanted by dir=arr patch.
Fix bad illegal repeat count msg from FORFMT.
Implement separate access bit setting mechanisms for DOOPEN
for the -20, eliminating MTACRK.
1576 DAW 11-Aug-81
OSWTCH for disk.
1577 DAW 11-Aug-81
Fix bug caused by dropping a null at EOR when the
record buffer happens to be full.
1600 DAW 11-Aug-81
In a FORMAT, allow "X" to mean "1X" (as it used to!)
1601 DAW 12-Aug-81
ENDFILE trying to open disk file for input on the -20.
1602 JLC 12-Aug-81
Reinserted suppression of initial CRLF for terminals only.
1603 DAW 12-Aug-81
Don't type statement name more than once when
multiple IOERR's are done.
1604 DAW 12-Aug-81
Yet another problem similar to 1601 (DIVERT this time).
1605 JLC 12-Aug-81
FORFMT was not complaining about (A419X) as ambiguous.
1606 DAW 13-Aug-81
Fix right-justified output for single-word items.
1607 DAW 13-Aug-81
Bug in FIND code (Aaaargh!)
1610 DAW 17-Aug-81
CLOSE/RENAME on the -10 failed
1611 DAW 17-Aug-81
"%integer overflow" bombed out program instead of continuing.
FOROTS.DOC - FOROTS-10 version 6 Page 30
1612 BL 18-Aug-81 Q20-01642
SORT put itself into non-zero section prematurely
1613 JLC 19-Aug-81 Q10-6390
Bug in backspace: used word count for ASCII files.
1614 JLC 19-Aug-81
Remove END= processing for end of last record which has no
CRLF. Thus EOF becomes a valid record terminator.
1615 DAW 19-Aug-81
Get rid of code and assembly option for 2-word byte pointers
1616 DAW 19-Aug-81
Infinite loop if non-disk TOPS-10 OPEN error.
1617 DAW 19-Aug-81 Q10-5204
Problem with DISPOSE='SUBMIT'
1620 DAW 20-Aug-81
Fix generation skew problem in dialog mode on the -20.
1621 DAW 20-Aug-81
CLOSE/ RENAME/ DELETE failed on the -10.
1622 JLC 21-Aug-81
Fix record positioning functions, so that T, X format
really work correctly. Rewrite ENCODE/DECODE again.
1623 DAW 21-Aug-81
Alternate entry point RESET$ to test extended addressing
1624 DAW 21-Aug-81
"?Illegal record number" error got record # from wrong ac.
1625 DAW 21-Aug-81
Get rid of accumulator "DF". No more DDB flag synchronization
problems caused by DDB flags in more than one place!
1626 DAW 24-Aug-81
AC changes in FLIRT and FLOUT so they don't define "D".
1627 JLC/DAW 24-Aug-81
On TOPS-20, REWIND and UNLOAD no longer need a filename
1630 JLC 24-Aug-81
Illegal magtape operations are now fatal.
1631 DAW 24-Aug-81
Set D%MOD in UNFO
1632 JLC 24-Aug-81
Fixed X and T format to pad with spaces, not random trash.
FOROTS.DOC - FOROTS-10 version 6 Page 31
1633 JLC 25-Aug-81
Typo in DECINI, added nofile functionality to ENDFILE,
SKIPFILE, and BACKFILE. Fixed some comments in FORFMT.
1634 JLC 25-Aug-81
Fix FIXREC, did not clear ORVIR, so extra blanks got output.
1635 JLC 25-Aug-81
Remove edit 1633 for ENDFILE, can't work that way.
1636 DAW 25-Aug-81
"Ambiguous repeat count" error instead of "Illegal repeat count"
for FORMAT (A4X).
1637 JLC 26-Aug-81
Decode bug. IRPTR was not getting setup properly.
1640 DAW 26-Aug-81
1641 DAW 26-Aug-81
OPEN with ACCESS='SEQINOUT', STATUS='NEW' didn't get correct
file on TOPS-20.
1642 JLC 27-Aug-81
Remove %FILOP calls from all of FOROTS, since we don't
1643 JLC 27-Aug-81
Made IRBUF & ORBUF full word byte pntrs.
1644 JLC 27-Aug-81
Fix free-format A to stop on comma. Change R*<space>C to
to be read as R*C, at least for version 6 and maybe beyond.
1645 DAW 28-Aug-81
Get TOPS-10 and DIVERT'ed file to column 1 before errors.
(See also 1651).
1646 DAW 28-Aug-81
DTA REWIND and UNLOAD used wrong channel #.
1647 DAW 28-Aug-81
DTA REWIND and UNLOAD to not require an existing file.
1650 BL 31-Aug-81
Fix RECORDSIZE applied to NAMELIST & LIST directed output
1651 DAW 31-Aug-81
Wait for TTY output to finish before doing TRMOP. ".TOHPS".
(Fixes a bug in 1645).
1652 DAW 1-Sep-81
Fix DUMP mode I/O on TOPS-10; make "IOE" a "?" error.
FOROTS.DOC - FOROTS-10 version 6 Page 32
1653 JLC 1-Sep-81
Return -1 (illegal LSN) for non-LINED files and LINED
files with no LSN.
1654 BL 1-Sep-81
Typo in EDIT 1650.
1655 DAW 1-Sep-81
Clear .RBALC after successful OPEN FILOP.
1656 DAW 2-Sep-81
Get rid of some magic 8's and 9's.
1657 DAW 2-Sep-81
Delete 7.01 definitions from FORPRM.
1660 DAW 3-Sep-81
Use low channels if all the extended ones are taken.
1661 BL 4-Sep-81
Fix incorrect info coming from TRACE; & illegal instruction return.
1662 DAW 4-Sep-81
Invent routine %CALU to make error processing easier.
1663 JLC 8-Sep-81
Output bufferful to magtape to make sure tape mark gets out.
Fix page-not-there error for RANDIN.
1664 DAW 8-Sep-81
Don't call DOOPEN twice if DDB's get consolidated at OPENX.
1665 DAW 8-Sep-81
Replace the antiquated U.TTY hack with a brand new D.TTY hack.
1666 DAW 8-Sep-81
/MODE:IMAGE implies /FORM:UNF. /FORM:F is a conflict.
1667 JLC 8-Sep-81
One-word patch to FORMEM, makes lowseg core request work.
1670 DAW 9-Sep-81
Fix two disk 'append' files open at once.
1671 JLC 9-Sep-81 Q10-6480
Installed patch to create data pages on disk if they won't
fit in core, as per request by SIT.
1672 DAW 9-Sep-81
Missing a check for conflict of RANDOM and no RECORDSIZE.
1673 CDM 9-Sep-81
Added routines to FORSNG, FORDBL, FORGDB, FORCPX.
FOROTS.DOC - FOROTS-10 version 6 Page 33
1674 DAW 9-Sep-81
OPEN of LPT: on the -10 got incorrect "?conflict".
1675 DAW 9-Sep-81
Added checks for device conflicts with modes.
1676 DAW 9-Sep-81
Fix %OCRLF so it always outputs a CRLF and doesn't use "U".
1677 JLC 10-Sep-81
Fixed unmapping of unused pages, missing label in MAKDP.
Use seed and multiplier from version 5A for RAN.
1700 BL 10-Sep-81
1701 JLC 10-Sep-81
Setup was wrong for unmapping unused pages.
1702 JLC 10-Sep-81
Added still more code to handle ref to hole in file.
Added code to prevent expansion of random file on -10
by touching file past EOF.
1703 DAW 11-Sep-81
Fix typing too many CRLF's on an error when TTY file is open.
1704 JLC 11-Sep-81
Fix T-format bug, was padding with one blank if current pos
was desired pos. Typo in -10 RDW routine.
1705 JLC 11-Sep-81
Fix more serious T-format bug, send next char position to
%SPOS instead of decremented one.
1706 DAW 11-Sep-81
Change errors around to make them more compatible with V5A,
more consistant, easier to find in FORERR, easier to create
documentation from the code, and more informative to the user.
1707 JLC 14-Sep-81
Edit 1705 broke %IBACK.
1710 JLC 14-Sep-81
Fix LDIO delimiter bugs.
1711 DAW 15-Sep-81
Set D%ERR if fatal IOERR even if message not typed.
1712 JLC 15-Sep-81
Fixed more problems with T-format. Added IRVIR to FORPRM.
1713 BL 15-Sep-81
Added 'DFL.3' to FORDBL.
FOROTS.DOC - FOROTS-10 version 6 Page 34
1714 JLC 15-Sep-81
Remove check for open unit in DIVERT, since a SEQUENTIAL
file isn't open until you write to it.
1715 DAW 15-Sep-81
If user specified FORM='FORMATTED' and didn't specify a
MODE, he got an ?Internal FOROTS error.
1716 JLC 16-Sep-81
Changed some data and subroutine names in FORIO to avoid
confusion. Fixed typo caused by the confusing names.
1717 DAW 16-Sep-81
1720 JLC 16-Sep-81
Undid edit 1714. It was correct as it stood. Added check to
make sure file is open for formatted I/O.
1721 CDM 16-Sept-81
Corrected DDIM and GDIM to prevent overflow for call -INF,+INF
1722 JLC 16-Sep-81
Code for IRPOS had to be much more complicated than originally
1723 DAW 17-Sep-81
Fix problem with sticky ERR= from OPEN.
1724 BL 17-Sep-81
Clean up IMSL error messages.
1725 DAW 17-Sep-81
Better DIALOG parsing error reporting and recovery on TOPS-10.
1726 JLC 17-Sep-81
Can't use P until there's memory for the stack. Use JSP to
call routine to make data pages.
1727 JLC 18-Sep-81
Fix for low-core memory manager. Free list was one word off.
1730 JLC 18-Sep-81
More fixes to T-format. Speed up format encoding.
1731 DAW 21-Sep-81
Overflows not filling in the right stuff.
1732 DAW 22-Sep-81
OPEN (STATUS='NEW') broken on the -20 (again!).
1733 BL 22-Sep-81
Problem finding beginning of NAMELIST.
FOROTS.DOC - FOROTS-10 version 6 Page 35
1734 DAW 22-Sep-81
OPEN (STATUS='SCRATCH', ACCESS='RANDOM') on the -20.
1735 DAW 22-Sep-81
Make TOPS-20 APPEND disk file get EOF if WRITE followed by READ.
1736 JLC 23-Sep-81
Fix to edit 1733 in namelist.
1737 DAW 23-Sep-81
Fix error processing for "?REREAD not preceeded by READ" error.
1740 DAW 23-Sep-81
More REREAD code.
1741 JLC 23-Sep-81
Give illegal char in data if numerics immediately followed
by alpha (or other trash) for list-directed and namelist I/O.
Fixed low segment memory manager.
1742 JLC 23-Sep-81
Modified OSWTCH to back up the record count for disk, as the
ENDFILE record is now counted as a real record. For magtape,
set it to 1, as we are writing a new file.
1743 DAW 24-Sep-81
Obscure bug in DIALOG scanning caused ?Illegal source/destination"
when you misspelled a switch and then retyped it correctly.
1744 DAW 24-Sep-81
Allow user to OPEN negative units. Note: not documented.
1745 JLC 24-Sep-81
Removed IRPOS again, wasn't necessary after conceptual change
to RIPOS/SIPOS. Fixed code in namelist/ldio for reading "3*,".
Made the input and output record buffer lengths full words, as
well as the input record length. Removed the silly % from the
1746 CDM 25-Sep-81
Simple change to DDIM in FORDBL.
1747 DAW 28-Sep-81
Got rid of FORPRM dependency in DIVERT. Changed FOROP. function
FO$DIV to do all the work, also added FO$GDV (get diverted unit).
Added the recent FOROP. function codes to FORPRM.
1750 DAW 28-Sep-81
Stop after reading in 5 SFDs from DIRECTORY=array.
1751 JLC 28-Sep-81
Fix unformatted backspace again.
1752 DAW 29-Sep-81
FOROTS.DOC - FOROTS-10 version 6 Page 36
Minor fixes to DIALOG processing.
1753 DAW 29-Sep-81
IOERR's and LERR's to type out PC.
1754 DAW 29-Sep-81
Allow negative generation numbers on TOPS-20.
(for example, -1 means "next generation of new file").
1755 DAW 1-Oct-81
Allow user to specify protections <111> in TOPS-10 dialog mode,
as per V5A. (i.e. they can be before or after the Path).
1756 JLC 1-Oct-81
Change memory manager again; TRYHRD now starts at STARTP+1,
minus number of pages desired.
1757 DAW 2-Oct-81
Conflict with /READONLY caused "?Ill mem ref".
1760 JLC 5-Oct-81
Changed elapsed time calc to use system uptime rather
than time-of-day to prevent operator causing negative
elapsed time. Changed FORERR to print 2 decimal places.
1761 JLC 5-Oct-81
Fixed ENDFILE on disk, was not opening file for output,
so EOFN could not get updated, also fell over if UNFSW
1762 DAW 6-Oct-81 Q10-06581
Fix printing of FORMAT with arrow pointing to wrong place.
1763 DAW 7-Oct-81
Fatal error if user tries to WRITE into a LINED file.
It is not supported yet. (in V6).
1764 DAW 7-Oct-81
TOPS-10 MTASET got %Integer divide check, TAPOP. error 3.
1765 DAW 7-Oct-81
Make OPEN error display show the non-typing character that
1766 DAW 7-Oct-81
Don't type error PC flags as part of the PC.
1767 DAW 8-Oct-81
Explain with comments the "magic" number 8 in OVERFL.
1770 DAW 8-Oct-81
If TOPS-10 GALAXY V2 is running, progs that used DISPOSE='PRINT'
would hang in EW state.
1771 DAW 8-Oct-81
FOROTS.DOC - FOROTS-10 version 6 Page 37
Missing /LIMIT code for TOPS-10 GALAXY V2 packet.
1772 DAW 8-Oct-81
TOPS-10 DISPOSE='DELETE' did not release channel.
1773 DAW 8-Oct-81
Change error name "CMU" to "IEM" - internal error in mem. management
1774 DAW 8-Oct-81
Instead of getting "?Unexpected TAPOP. error" for typical
errors, either avoid the error in the first place or
give a better error message.
1775 JLC 9-Oct-81
Fix control-Z. Fix tapop being done when it doesn't need to be.
Fix LSNGET to always return -1 for non-open units.
1776 DAW 9-Oct-81
Allow modes BINARY,IMAGE,DUMP to be used with TOPS-10 NUL:.
1777 DAW 9-Oct-81
Don't do FILOP. "releases" without first doing FILOP. "Closes"
if the file is possibly open.
2000 DAW 9-Oct-81
1. Fix typo that caused PLOT to fail since unit -7 couldn't be
2. Get rid of extraneous, unreachable TOPS-10 code.
2001 JLC 13-Oct-81
At INIHLT, the check to see if the page exists in core
was wrong, was TXNE, should have been CAIN.
2002 DAW 13-Oct-81
OPEN 'TTY' with ACCESS='SEQIN' followed by "TYPE" didn't work.
2003 BL 14-Oct-81 Q10-06574
Change data type "0" from "U" to "I".
2004 DAW 14-Oct-81
Make sure MODE is identical before consolidating DDB's.
2005 JLC 15-Oct-81
Reenter code added. Asks the users whether all files are
to be closed, then goes to user-specified reenter address
or exits to monitor if none. Fixed random file bugs.
On -10: update .RBSIZ so that we don't substitute
a block of zeroes for real data. On -20, keep a record of
the highest referenced page and unmap unused pages.
2006 JLC 15-Oct-81
Control-Z change broke DECODE by meddling with IRCNT, which
should be inviolate before the "device-dependent" call.
2007 JLC 16-Oct-81
FOROTS.DOC - FOROTS-10 version 6 Page 38
Fixed runtime and elapsed time calcs. Make "temp stack"
big enough to survive catastrophies.
2010 JLC 19-Oct-81
Made EOFN and BYTN live on the -10 so we can give QUASAR
an accurate block count.
2011 DAW 19-Oct-81
DOOPEN to store EOFN from the .RBSIZ information. Also
get rid of "FSTAT". Compute number of blocks for QUASAR from
EOFN and BPW.
2012 JLC 19-Oct-81
Changed elapsed time calcs yet again.
2013 DAW 19-Oct-81
Fix TRACE to store "..." at end of string, not into a literal.
2014 AHM/JLC 19-Oct-81
Fix NAMELIST block description and code for extended addressing.
Fix NAMELIST check for illegal subscripts.
Fix unmapping of unused pages not to unmap holes.
Remove useless referencing of all of core in initialization.
Changed FORHAK to refer to Z.ERR instead of F.DATA for 1022.
2015 DAW 20-Oct-81
AC smashed in FORMEM caused problems trying to create .GT. 1
pages when it had to go virtual.
2016 JLC 20-Oct-81
SLIST and ELIST fix to differentiate between -66 and -77
2017 JLC 21-Oct-81
Fix 1022 patch in FORHAK, modify F20OTS.CCL and F10OTS.CCL
to create new PSECT, used only by FORHAK to know the end
of the F.ERR PSECT.
2020 DAW 21-Oct-81
Make DATE return the last character as SPACE instead of NULL,
so it will match a literal generated by the compiler.
2021 JLC 22-Oct-81
Change A format so that if no field width is specified,
it uses 5 or 10 for input as well as output to conform
with the ANSI standard.
2022 DAW 22-Oct-81
Make TOPS-20 error message better when JFNs run out.
2023 DAW 23-Oct-81
GALAXY R2 code didn't delete file if DISPOSE='LIST' used.
2024 DAW 26-Oct-81
ILC is now a fatal error, make it go to "%ABORT" if done.
FOROTS.DOC - FOROTS-10 version 6 Page 39
2025 JLC 26-Oct-81
Fix elapsed time calcs for the -10 yet again. Fixed FORMEM
for 1022 folks.
2026 JLC 27-Oct-81
Fixed RSIZW for LINED files, so they will backspace correctly.
2027 DAW 27-Oct-81
Rework the GALAXY V2 code to use symbolic names, this allows
users in the field who have modified QSRMAC to just reassemble
FOROTS to make /DISPOSE:<queue> work.
2030 JLC 27-Oct-81
Fix SLISTs and ELISTs to use 1 for a count if the count
provided is negative or zero.
2031 DAW 27-Oct-81
Fix smashing AC in FORERR if no symbols loaded.
2032 JLC 29-Oct-81
Fix KI code for DPMUL.
2033 DAW/JLC 15-Nov-81
Make R format pad with spaces instead of nulls as in V5A.
Make fatal error "ILS" go to %ABORT if no ERR= branch.
Give error if random I/O attempted without an OPEN statement
(to specify a RECORDSIZE).
Fix A free format.
Make "Data in Io list but not in format" go to %ABORT.
Change names of some global symbols that didn't have "%" in them.
Make ERR= work with ENCODE/DECODE (again).
Fix call to %MVBLK in FORMEM to use correct calling sequence.
Reset "F" in FOROP call to close all files.
Allow leading spaces in some OPEN args (such as FILE= ).
Fix incorrect call to mem manager in FOROPN.
Don't do XSIR% JSYS unless FOROTS is running in a non-zero section;
otherwise the Release 4 EXEC can get confused.
Fix problems in REENTER code.
Fix dollar format to make T and X have some effect at
the end of a record.
***** End Revision History *****
[End of FOROTS.DOC]