Google
 

Trailing-Edge - PDP-10 Archives - BB-L014A-BM - autopatch/t20404.d01
There are 2 other files named t20404.d01 in the archive. Click here to see a list.
                 EDIT DESCRIPTIONS FOR TOPS-20-2040-V4                          
  
  
                             EDIT 561    FOR EXEC
  
  
  
  
[SYMPTOM]
  
     The DSIMOUNT  command  can  accept  an  indefinite  number  of
keywords without any error.  For example;
  
        @DISMOUNT TAPE TAPE TAPE STRUCTURE TAPE STRUCTURE ...
  
  
[DIAGNOSIS]
  
     After the keyword is parsed, P3  is  assumed  to  contain  the
dispatch address suitable for a CALL.  This is not the case and the
subsequent call is nearly a random jump.  Since P3, at  this  point
in  the  code  will  always  contain  the  address  of the DISMOUNT
command, the keyword is simply parsed again.
  
[CURE]
  
     Set up P3 with the proper dispatch address  using  the  GETKEY
subroutine  so that the code can go on.  The following patch can be
installed in V4 of the EXEC.  V4.1 of the EXEC has  corrected  this
problem.
********************************************************************************
  
  
                             EDIT 562    FOR EXEC
  
  
  
  
[SYMPTOM]
  
     Doing the INFORMATION  (ABOUT)  MEMORY-USAGE  command  when  a
restricted  JFN has been obtained and mapped into the program space
causes an internal illegal instruction trap in the EXEC.
  
[DIAGNOSIS]
  
     The JFNS% JSYS that accomplishes the usual typing out of  file
names  in  this display attempts to update what might possibly be a
string pointer even though the  failure  makes  such  an  operation
irrelevant.
  
[CURE]
  
     If the failure of the JFNS% JSYS occurs, don't bother updating
the  output  designator  as is the usual case.  The following patch
can be installed in V4 of the EXEC and is in V4.1.
********************************************************************************
  
  
                             EDIT 563    FOR EXEC
  
  
  
  
[SYMPTOM]
  
     The CRAM subcommand to any of the DIRECTORY commands does  not
wait for confirmation.
  
[DIAGNOSIS]
  
     The code is not asking for any confirmation.
  
[CURE]
  
     Add a call to the subroutine that does  the  confirm  function
via COMND%.  The following patch can be installed in V4 of the EXEC
and has been added to V4.1.
********************************************************************************
  
  
                             EDIT 564    FOR EXEC
  
  
  
  
[SYMPTOM]
  
     When using the copy command to copy from a terminal device  to
an  unassigned  PTY,  the  EXEC  dies  with  an illegal instruction
interrupt.
  
[DIAGNOSIS]
  
     New code in V4 of the EXEC did not attempt to  catch  possible
errors  while using the SOUT% or SOUTR% JSYSs used in this specific
kind of COPY.
  
[CURE]
  
     Include an ERJMP after  the  XCT  instruction  which  will  be
executing  one of these two JSYSs to catch any possible I/O errors.
The following patch can be installed in V4 of the EXEC and has been
written into V4.1.
********************************************************************************
  
  
                             EDIT 565    FOR EXEC
  
  
  
  
[SYMPTOM]
  
     INFORMATION  (ABOUT)  STRUCTURE,  when  specifying   a   valid
non-disk  device,  the  error  message  gets  lost  and  the device
designator gets lost.  This causes an illegal instruction  trap  in
the EXEC.
  
[DIAGNOSIS]
  
     Some places in EXECIN confuse T1 with A,  assuming  they  both
refer  to  AC1.  However, from the GALAXY definitions, T1 is really
AC3.
  
[CURE]
  
     Take out the references to T1 and replace them  with  A.   The
following  patch  can  be  installed in V4 of the EXEC and has been
installed in V4.1.
********************************************************************************
  
  
                             EDIT 566    FOR EXEC
  
[SYMPTOM]
  
When copying a file that is  exactly some multiple of 512  pages,
the COPY command "hangs".
  
[DIAGNOSIS]
  
EXEC depends upon a BLT instruction failing to determine  whether
the COPY is complete.  A previous PMAP that  fails midway in  the
mapping process, however, causes  the BLT to  never fail as  EXEC
doesn't bother to check for this possibility.
  
[CURE]
  
Include extra code to do end of file testing more intelligently.
********************************************************************************
  
  
                             EDIT 567    FOR EXEC
  
  
  
  
[SYMPTOM]
  
     The EXEC command SET DEFAULT PLOT<return> blows up.
  
[DIAGNOSIS]
  
     Somebody forgot the PLOT entry for a table.
  
[CURE]
  
     Add in the entry.
********************************************************************************
  
  
                             EDIT 570    FOR EXEC
  
  
  
  
[SYMPTON]
  
  
     Control/C during an  EXEC  level  command  will  cause  the  TYPE
command to flag embedded nulls.
  
  
[DIAGNOSIS]
  
  
     Routine CCPSI in EXECSU neglects to reset the  CCOC  word  if  an
EXEC level command was interrupted.
  
  
[CURE]
  
  
     See enclosed patch.
  
********************************************************************************
  
  
                             EDIT 571    FOR EXEC
  
  
  
  
[SYMPTOM]
  
     Confusion over edit 570.
  
[DIAGNOSIS]
  
     Edit 570 is not in standard form.
  
[CURE]
  
     Put edit 570 in standard form;  no code changes involved.
********************************************************************************
  
  
                             EDIT 572    FOR EXEC
  
  
  
  
[SYMPTON]
  
  
     A command file containing load class commands  that  is  executed
using the "@FILENAME.CMD" command, sometimes results in missing files,
even if all files exist.
  
[DIAGNOSIS]
  
  
     The command is not terminated by a null when it is read  in  from
the file.  The EXEC expects a null, and will therefore get confused if
a longer command was read into the buffer previous to this one.
  
[CURE]
  
  
     Deposit a null into the buffer following the command string after
the carriage return has been seen to terminate the command.
  
********************************************************************************
  
  
                             EDIT 573    FOR EXEC
  
  
  
  
[SYMPTOM]
  
     When the EXEC COPY command is used on an ANSI labelled ANSI-ASCII
tape  to  copy a file to disk, the resultant disk file is not an ASCII
file and is illegible.  When exeamined with FILDDT, the file shows one
7-bit  ASCII  byte per 36-bit word, right justified;  the remainder of
the word is nulls.
  
  
[DIAGNOSIS]
  
     The COPY command uses a  36-bit  byte  pointer  for  all  magtape
source  operations  at  the bytesize default routine, COPDEF.  This is
invalid, since ANSI-ASCII consists of 7-bit bytes.
  
  
[CURE]
  
     Make COPDEF check to  see  if  the  COPY  source  is  a  labelled
ANSI-ASCII tape.  If it is, then make the bytesize be 7 bits.
  
********************************************************************************
  
  
                             EDIT 574    FOR EXEC
  
[SYMPTOM]
  
BATCON will  confuse the  exec  prompts with  OPERATOR  mode
characters.
  
[DIAGNOSIS]
  
ALL EXEC prompts should be preceeded by a space when running
in a Batch job.
  
[CURE]
  
Preceede all EXEC  prompts with a  space when running  under
batch.
********************************************************************************
  
  
                             EDIT 575    FOR EXEC
  
  
  
  
[SYMPTOM]
  
     If you control-c out of DUMPER, EXEC says:
  
     @JFN n ASSIGNED @%CLOSE JFN?
  
     If you say "yes", it comes back with:
  
     @%CLOSE JFN?
  
     It will do this forever.
  
  
     [D]
  
     The KEYWD routine no longer preserves temporary ACs, and the  JFN
to be released gets zapped.
  
  
     [C]
  
     Put a "MOVE A,Q1" at CJDYES:  to get back the JFN to be released.
  
********************************************************************************
  
  
                             EDIT 576    FOR EXEC
  
  
  
  
[SYMPTON]
  
  
     If specifying a file with a null extension to the COPY or  RENAME
command  and  the  destination directory has a file with the same name
but different extension, EXEC will default  to  the  already  existent
extension, rather than null.
  
[DIAGNOSIS]
  
  
     Routine LFJFNS returns a zero if no extension was typed, and this
gets stored in the GTJFN block as the default extension.  Tops-20 then
interprets this to mean that there is no default extension, when there
really is one - a null extension.
  
[CURE]
  
  
     Let routine LFJFNS return a pointer to a null string, which  will
cause the subsequent GTJFN to default to a null extension.
  
********************************************************************************
  
  
                             EDIT 577    FOR EXEC
  
  
  
  
[SYMPTOM]
  
     EXEC COPY command does not copy the user-settable word  into  the
new file's FDB.
  
  
[DIAGNOSIS]
  
     Code was omitted.
  
  
[CURE]
  
     Add code to COPY routine which does CHFDB% to put .FBUSW into the
new file's FDB.
  
********************************************************************************
  
  
                             EDIT 578    FOR EXEC
  
  
  
  
[SYMPTOM]
  
     If a PRINT command is given for a file with a .DAT extension with
a  global  /DELETE  or  /PRESERVE  switch,  the  file  is  printed  as
/FILE:ASCII.
  
  
[DIAGNOSIS]
  
     When the /DELETE or /PRESERVE switch is used, the file is checked
for a .DAT extension before the extension is retrieved by the JFNS.
  
  
[CURE]
  
     Move the test for /DELETE and /PRESERVE to after the JFNS.
  
********************************************************************************
  
  
                             EDIT 579    FOR EXEC
  
  
  
  
[SYMPTOM]
  
     EXEC edit numbers are in octal;  DEC standard says they should be
in decimal.
  
  
[DIAGNOSIS]
  
     After edit 577, edit numbers should be  in  decimal.   The  first
edit  after  edit  577 was made as edit 384 (O577 converted to decimal
and incremented by one).  This will cause  a  problem  when  the  edit
level  once  again reaches 577, as there will be two different sets of
edits with the same number.
  
  
[CURE]
  
     Begin new edits at D578.  Replace all references to edit 384 with
578.  This will leave a gap in the octal version information.
  
********************************************************************************
  
  
                             EDIT 1718   FOR MONITO
  
[SYMPTOM]
  
BUGHLTs SECGT1  on Version  3A and  ILMREF on  Version 4  of
TOPS-20 when byte size for  the pointer to the logical  name
definition string in AC3 for the CRLNM JSYS is greater  than
7 bits.
  
[DIAGNOSIS]
  
The MONITOR made no  check as to  the  validity of the  byte
size before using  each byte  as an  index into  a table  of
character types.   This could  cause the  index register  to
contain  big  numbers  and  thus  cause  SECGT1  and  ILMREF
BUGHLTs.
  
[CURE]
  
At CRLNM0 (after the byte pointers have been checked for the
default byte  size  and  position,  ie.  -1,,ADR)  have  the
MONITOR check the byte size.  If greater than 7 bits, return
the error
  
                ARGX09 - 'Invalid Byte Size'
  
to the calling routine.
********************************************************************************
  
  
                             EDIT 1719   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     PHYCH3 BUGINFs.
  
[DIAGNOSIS]
  
     Test of unit active on HOME block check is wrong.
  
[CURE]
  
     Do the test correctly.
********************************************************************************
  
  
                             EDIT 1720   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     COBOL programs receive errors such as "Read an EOF instead  of  a
label" or record sequence errors while reading magtapes.
  
[DIAGNOSIS]
  
     Tape read-ahead is handled incorrectly, allowing a race condition
in  the  tape  status code concerning a bit used both at program level
and at PHYSIO interrupt level.
  
[CURE]
  
     Prevent the race by doing a call to the routine used  to  achieve
proper  status  synchronization.   Separate  patches  for 3A and 4 are
given.
********************************************************************************
  
  
                             EDIT 1721   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     MSFRK blows the WHEEL or OPERATOR capability security check.
  
[DIAGNOSIS]
  
     Typographical error in test.
  
[CURE]
  
     Correct test instruction.
********************************************************************************
  
  
                             EDIT 1722   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     Problems when clearing volid valid for a tape.
  
[DIAGNOSIS]
  
     AOBJN loop in MTCLVL routine should be using T3 in loop,  but  is
using AC U instead.
  
[CURE]
  
     Use the right AC to AOBJN on.
********************************************************************************
  
  
                             EDIT 1723   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     Volume Valid is not  cleared  for  labeled  tapes  under  restart
conditions, leading the system to believe false information.
  
[DIAGNOSIS]
  
     The bits start clear, which handles  the  initial  startup  case;
the AC field is missing in the AOBJN loop to clear the bits.
  
[CURE]
  
     Fill in the proper AC in the AOBJN.
********************************************************************************
  
  
                             EDIT 1724   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     Disk usage for  <SYSTEM>  becomes  garbaged  values;   INFO  DISK
command  may  give  negative  numbers  and  over  quota by +INF pages;
changing directory parameters is made difficult by quota problems.
  
[DIAGNOSIS]
  
     Some code is  still  using  the  wrong  representation  for  disk
storage  "infinity"  and  word  overflow  is occurring, for example on
deleting of files.
  
[CURE]
  
     Fix the quota representation.
********************************************************************************
  
  
                             EDIT 1725   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     Occasional  P2RAEx  and  TM2CCI  BUGCHKs  sometimes  followed  by
keep-alive failures on systems using TU77 tape drives.
  
[DIAGNOSIS]
  
     In PHYM2, routine FTLERR calls WTREG3 under conditions where  the
ACs might not be set up properly.  In particular, WTREG3 needs to have
Q2 set up, and it isn't.  It  should  be  calling  WTREG  which  would
handle the case correctly, using the unit number in the UDB.
  
[CURE]
  
     Change the calls to WTREG3 to WTREG in two places.
********************************************************************************
  
  
                             EDIT 1726   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     1.  Typos in the TU77 patch tape for 2020s.
  
     2.  Persistent TU77 problems  (TM2CCI)  after  applying  previous
patches.
  
[DIAGNOSIS]
  
     Typos and unexplained habit of TU77 to have DS.SLA and DS.SSC  be
up in unexpected combinations.
  
[CURE]
  
     Fix typos and make a more inclusive check on DS.SLA and DS.SSC in
POLLP.
********************************************************************************
  
  
                             EDIT 1727   FOR MONITO
  
[SYMPTOM]
  
     Under certain conditions, attempting to rename a file  can  cause
the BUGCHKS DIRNL, ULKSTZ and IDFOD2.
  
  
[DIAGNOSIS]
  
     If a user gets a JFN on a file  he  wishes  to  rename  and  then
another  user  deletes and expunges that file before the RNAMF JSYS is
called, the above BUGCHKS occur.  The RNAMF code attempts  to  get  an
FDB  on  the  source  file  which will fail because it was deleted and
expunged.  When the GETFDB call  fails,  the  error  return  is  taken
leaving  the  directory  unlocked.  The code handling the error return
however, goes to  a  common  routine  which  attempts  to  unlock  the
directory resulting in the BUGCHKS.
  
     This problem was partially fixed by the answer to  SPR   20-12542
on  11-APR-79  and in V4.  If the timing is right however, the problem
can  still  occur.   Additionally,  the  fix   did   not   take   into
consideration  that  an OFN was assigned and should be released on the
error return.
  
  
[CURE]
  
     This patch supercedes the patch for SPR  20-12542.  Do the GETFDB
immediately  before  using  the  source  file.  If the error return is
taken simply release the OFN for the destination.
********************************************************************************
  
  
                             EDIT 1728   FOR MONITO
  
[S] Disappearance of files after executing the  RENAME  command  under
V3A.There  can also be a large number of lost pages reported by CHECKD
when this happens.  Under V4, and under  the  same  circumstances,  an
incorrect error message is returned.
  
  
[D] If a new file is created and not closed, and  if  the  destination
name  specified  in  the RENAME command happens to be the name of this
newly created file, the Renamed file disappears after the new file  is
closed.   The  rename  code checks if there is an existing FDB address
for the destination file.  If one is found and the FILNB(new)  bit  is
on  it  incorrectly  assumed  that  the  FDB is invalid, wipes out the
address and assigns a new FDB.  When the new file is closed,  the  FDB
is changed to reflect this new file, resulting in the disappearance of
the original file.
  
  
[C] Check to see if the FILNB bit is on.  If it is, check  to  see  if
the  file is actually busy and return an error if so else assign a new
FDB.  This fixes the problem in V3A.
  
In V4, return the correct error message.
********************************************************************************
  
  
                             EDIT 1729   FOR MONITO
  
[SYMPTOM]
  
     Doing the RNAMF JSYS on a file  when  the  destination  file  was
previously opened causes a SHROFD BUGHLT.
  
  
[DIAGNOSIS]
  
     Status of file not restored correctly.
  
  
[CURE]
  
     Ensure that the file status is restored correctly in all cases.
  
This patch is applicable for both V3A and V4.
********************************************************************************
  
  
                             EDIT 1730   FOR MONITO
  
This edit was removed by edit 1734.
********************************************************************************
  
  
                             EDIT 1731   FOR MONITO
  
[SYMPTOM]
  
When installing TOPS20 on a 2020 with  a three or four pack RM03  PS:,
the MONITOR will let you define the structure but when it attempts  to
mount it it will fail.
  
The messages look something like
  
	[STRUCTURE PS: SUCCESSFULLY DEFINED]
  
	[PS: NOT FOUND, WHAT IS THE NAME OF THE PUBLIC STRUCTURE]
  
[DIAGNOSIS]
  
The calculation  for  the size  of  the bit  table  for  the
structure is done correctly  during the mount procedure  but
incorrectly during the definition procedure.
  
The current  calculation during  structure definition  is to  multiply
number of cylinders  per unit by  the number of  units per  structure,
thus getting cylinders per  structure.  It then  compares this to  the
number of words available in the  bit table.  The bit table  comprises
more than one word per cylinder in the structure, in fact it  contains
a number of words equal to (1+bit words per cylinder) times the number
of cylinders per structure.
  
[CURE]
  
Have the calculation at FSIDI2+52 multiply the number of cylinders  in
the structure  by 1+BTWCYL  to generate  the actual  size of  the  bit
table.
********************************************************************************
  
  
                             EDIT 1732   FOR MONITO
  
[S}
  
Upon initializing  a structure,  if there  are multiple  BAT
blocks not in  the swapping  area, the  system would  ILMREF
BUGHLT before assigning the second BAT block in the BTB  for
the structure.
  
[DIAGNOSIS]
  
While assigning the first BAT block address, the SDB address
for the structure  (which was  in AC4) gets  trashed and  to
restore the  SDB address  in AC4  after assigning  each  BAT
block was overlooked.
  
[CURE]
  
In the routine TOPASG in DSKALC, restore the SDB address  in
AC4 after assigning each BAT block address in the BTB.
********************************************************************************
  
  
                             EDIT 1733   FOR MONITO
  
[SYMPTOM]
  
If the system time and date are not set and a call is made
to the TIMER JSYS which does not require the time and date
to be set, an error return is given anyway.
  
[DIAGNOSIS]
  
The MONITOR doesn't care what the function code is if the
system time and date is not set.  Rather, it will indiscriminately
return the error.
  
[CURE]
  
Have the MONITOR make the disctinction that certain function do
not require system time and date to be set.
********************************************************************************
  
  
                             EDIT 1734   FOR MONITO
  
[SYMPTOM]
  
     Edit 1730 installed an unsupported informational change that did
not belong in the sources.
  
[DIAGNOSIS]
  
     As above.
  
[CURE]
  
     Remove the edit.
********************************************************************************
  
  
                             EDIT 1735   FOR MONITO
  
  
[SYMPTOM]
  
     Edits 1727, 1728, 1729 are not in standard form.
  
[DIAGNOSIS]
  
     As above.
  
[CURE]
  
     Edit the comments to put the edits in standard form.
********************************************************************************
  
  
                             EDIT 1736   FOR MONITO
  
[SYMPTOM]
  
ILCNSP BUGHLT
  
[DIAGNOSIS]
  
When only one element  is on a  unit's Position Wait  Queue,
the requested cylinder is the same as the current  cylinder,
the fairness count is exhausted and their are no elements on
the unit's Transfer  Wait Queue,  an ILCNSP  BUGHLT will  be
generated.
  
This is because when the SCHSEK routine notices a request on
the  PWQ  is  for  the  same  cylinder  that  the  drive  is
positioned to and that the  fairness count is exhausted,  it
will ignore that element.  If there are no other elements on
the PWQ  which  are requests  to  other cylinders,  than  no
element will be picked as  either 'Minimum Cylinder So  Far'
or 'Best Cylinder  So Far'.  SCHSEK  does not consider  this
case and when the call is made to CONSPW, it assumes it  has
picked one.  Since no element  has been decided upon  CONSPW
will blow up with ILCNSP.
  
[CURE]
  
When the requested cylinder is for the same cylinder as  the
current and the fairness count is exhausted, check to see if
a minimum  has been  found.  If  not, make  the element  the
'Minimum Found So Far'.  This way, if no other minimums  are
found then the transfer will be to the current cylinder.
********************************************************************************
  
  
                             EDIT 1737   FOR MONITO
  
[SYMPTOM]
  
Lower case E, 'e', is not a valid exponent designator for
the MFLIN JSYS.
  
[DIAGNOSIS]
  
When checking for exponent designator, no attempt is made
to check for lower case E.
  
[CURE]
  
Check for lower case E also.
********************************************************************************
  
  
                             EDIT 1738   FOR MONITO
  
[SYMPTOM]
  
After inputting  a  <CR> in  binary  mode, if  the  mode  is
changed to a non-binary mode,  the next character read  will
be a <LF>.
  
[DIAGNOSIS]
  
The MONITOR does not check what  mode the <CR> was input  in
before deciding whether a <LF> should be returned
  
[CURE]
  
After inputting a  character, store  the data  mode of  that
character in the TTY dynamic data block.  When checking  for
whether  a  <LF>  should  be  returned  when  requesting   a
character from the TTY  buffer, only return  it if the  last
character input was a  <CR> and it  was input in  non-binary
mode
********************************************************************************
  
  
                             EDIT 1739   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     BOOT JSYS as used on KL-processors to load or dump  a  DN20  will
sometimes return a zero error code.
  
[DIAGNOSIS]
  
     A routine is returning with error flags  in  T1  instead  of  the
error code.  Some callers expect flags, some expect the code.
  
[CURE]
  
     Create an envelope routine RMGRNC to  the  RMGRNK  routine  which
converts  the  error  flags into an error code, and change the callers
who hope for an error code returned to call RMGRNC instead of RMGRNK.
********************************************************************************
  
  
                             EDIT 1740   FOR MONITO
  
[SYMPTOM]
SEBISS BUGCHKS which, themselves generate SEBISS BUGCHKS.
  
[DIAGNOSIS]
The free string area of the BUGHLT/CHK/INF error block is
not long enough to hold the maximum size of the system
name and the maximum size of a bug message.  It is short
by seven words.
  
[CURE]
When allocating the SYSERR block for a BUG entry, get a block
which is seven words longer.
********************************************************************************
  
  
                             EDIT 1741   FOR MONITO
  
[SYMPTOM]
  
The SWJFN JSYS does not interchange the directory name field
when swapping two JFNs.
  
[DIAGNOSIS]
  
The SWJFN JSYS specifically did not copy three words of  the
JFN blocks  in  the  JSB,  FILAC  (pointer  to  the  account
string), FILLCK (file lock word), and FILDNM (pointer to the
directory name string and pointer to the attribute list).
  
[CURE]
  
There is  no  reason  why  the JSYS  should  decide  not  to
interchange the above three words.  The solution is to allow
the JSYS to interchange all words of the JFN block.
  
  
********************************************************************************
  
  
                             EDIT 1742   FOR MONITO
  
[SYMPTOM]
When the SIN JSYS is used on  a file of two, three, or  four
bytes, the bit  OF%PLN was  not set  in the  OPENF JSYS  and
there are <NUL> bytes as either the second, third, or fourth
byte in the file, then the  null bytes will not be  returned
to the calling routine.
  
[DIAGNOSIS]
The MONITOR, when reading a byte  from a file which has  had
I/O, uses a  byte input  routine (SIORX)  which expects  the
decision about whether  the file does  in fact contain  line
sequence numbers to have been made previously.  The  routine
to make that decision (BYTINA), decides that if the file  is
less than five bytes  long, then there must  be no LSNs  but
does not set the bit which informs the rest of the world.
  
[CURE]
Remove the check which treats a file of less than five bytes
as special and  in so doing,  allow the bit  <PASLSN> to  be
set.
********************************************************************************
  
  
                             EDIT 1743   FOR MONITO
  
[SYMPTOM]
  
Cobol programs that write multi-reel EBCDIC tape files  will
not write tape marks on the  end of any of the reels  except
the last one.
  
[DIAGNOSIS]
  
This  is  because,  when  the   physical  end  of  tape   is
encountered, PA1050 resets the data mode and then closes the
tape file.  Reseting the data mode causes all buffers to  be
written to  tape and  the buffers  are then  released.   The
CLOSF JSYS decides  whether to write  tape marks on  whether
there are  buffers allocated  for that  Magnetic Tape  Unit.
The JSYS assumes that if there are no buffers allocated then
no  output  could   have  been  performed   on  that   unit.
Therefore, there is no need  to write the tape marks.   This
is a false assumption.
  
[CURE]
  
Remove the test  at MTACLZ+12 which  checks whether  buffers
are allocated and replace it with a SKIPA.
********************************************************************************
  
  
                             EDIT 1744   FOR MONITO
  
[SYMPTOM]
  
When outputing to a labeled tape in fixed record format, the error
IOX14 - "Invalid Segment Size" would be returned
  
[DIAGNOSIS]
  
At MTRCOF where it is decided whether padding with circumflexes should
occur, a check for whether the buffer was the same size as the record
size was made.  If the buffer was not the same size, the error IOX14
was returned.
  
[CURE]
  
The check should be for whether the buffer is less than or equal to the
record size.  In this way, the padding with circumflexes would occur so
at MTRCOF+3 the compare should be a CAMLE rather than a CAME.
********************************************************************************
  
  
                             EDIT 1745   FOR MONITO
  
[SYMPTOM]
  
The  Default  file  offline  expiration  date  field  of   a
directory is always set to the value of .STDFE regardless of
what the value of the Tape-Recycle period is.
  
[DIAGNOSIS]
  
That's the way the code is written
  
[CURE]
  
If the tape recycle period has been set, use it rather  than
.STDFE for the default file offline expiration time.
********************************************************************************
  
  
                             EDIT 1746   FOR MONITO
  
[SYMPTOM]
  
	Control  C  randomly  appears  at  various  terminals  for  no
appearent reasons.
  
[DIAGNOSIS]
  
	The problem  occurs when  a fork  gets  a JFN  on a  PTY  then
another fork within the same job enables interrupts for that PTY. When
the second fork gets done,  the PTY status for  that PTY is not  being
cleared. Should another fork be started  with the same fork number  as
the second fork,  then that  fork will  inadvertently get  interrupted
when the PTY becomes hungry.
  
[CURE]
  
	Ensure that the fork  enabling the PTY  for interrupts is  the
fork which owns the JFN.
  
  
  
  
  
  
  
********************************************************************************
  
  
                             EDIT 1747   FOR MONITO
  
[SYMPTOM]
 The CHFDB JSYS will not allow users with owner access to a file to change
fields in the FDB without opening the file for write access.
  
[DIAGNOSIS]
 CHFDB calls ACCCHK with the access mask in AC4, but ACCCHK does not save
AC4 before using it.  This results in the code in CHFDB1 using a junk value
in AC4 for a mask.
  
[CURE]
 Reload AC4 at CHFDB1+1 with the appropriate mask.
********************************************************************************
  
  
                             EDIT 1748   FOR MONITO
  
[SYMPTOM]
 ILMNRF, as well as other random write to memory type errors.
  
[DIAGNOSIS]
 Using -1 in CTRLTT is not always handled right, in this case to call
STADYN in MEXEC.
  
[CURE]
 At LDTAC2+11, check to see if CTRLTT is -1, if so don't call STADYN, but
UNLOCK DEVLCK, OKINT, and RETurn.
********************************************************************************
  
  
                             EDIT 1749   FOR MONITO
  
  
[SYMPTOM]
  
 CRDIR JSYS allows a directory to be deleted when it is in use.
  
[DIAGNOSIS]
  
 Code does not check to see if any job has connected to the directory to be
deleted, or is logged-in to that directory.
  
[CURE]
  
 Map the index table for the structure of the directory in question, set the
index table entry for the directory to be invalid (using the INVIDX routine),
then scan all jobs in the system to see if anyone is logged-in or connected
to that directory.  If the scan is successful, reset the index table entry
to be valid, and return the CRDIX6, "directory is still mapped" error.
  
  
********************************************************************************
  
  
                             EDIT 1750   FOR MONITO
  
[SYMPTOM]
  
Hung Jobs with JSSTLK locked
  
[DIAGNOSIS]
  
Two possible reasons
1) When returning with an error from GTSTOJ and GTSTOF in
   the routines MSTDMC and MSTDCF respectively,  the JSSTLK
   would not be unlocked.
  
2) The routine SETDEV would lock the JSSTLK lock but would
   be OKINT.  This would allow a user to interrupt a fork while
   it had the lock and thus the lock would never be freed.
  
[CURE]
  
Change the error returns from GTSTOJ and GTSTOF to also unlock
the JSSTLK lock.
  
Go NOINT before locking JSSTLK in SETDEV and go OKINT after the
call to CHKMNT and after the lock has been freed.
********************************************************************************
  
  
                             EDIT 1751   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     Memory to memory SIN JSYS when given a byte  count  in  AC3  will
still  deposit  a  null following the last byte for the case where the
exact number of bytes was transferred.
  
[DIAGNOSIS]
  
     Code checks the user's AC3 after it has updated it for the number
of bytes transferred.
  
[CURE]
  
     Create a new TRVAR variable at SINR1 to store the  initial  sense
of the user AC3, and test that flag at the end, not the user AC.
********************************************************************************
  
  
                             EDIT 1752   FOR MONITO
  
[SYMPTOM]
  
	Attempting to assign channel 23 gives an ATIX1 error even though
this channel is user assignable.
  
[DIAGNOSIS]
  
	The code that does the range checking is incorrect.
  
[CURE]
  
	Change the code to check for the proper valid channels.
  
! 
!Patch to allow channel 23 to be user assignable
!For V3A and V4
! 
  
@ena
$GET SYSTEM:MONITR
$ST 140
DDT
  
ATX2E+5/    CAIL T3,CRSTD1+1      CAIL T3,27
^Z
$SAV SYSTEM:MONITR
 MONITR.EXE.2 Saved
********************************************************************************
  
  
                             EDIT 1753   FOR MONITO
  
[SYMPTOM]
  
Mstr would not compile
  
[DIAGNOSIS]
  
Emacs can rip one off.  It would write a ^= to the file
but would print a ] when in the editor.
  
[CURE]
  
Replace the ']' in question with another ']' and hope
Emacs doesn't rip us off again.
********************************************************************************
  
  
                             EDIT 1754   FOR MONITO
  
[SYMPTOM]
  
Long form GTJFN causes SEGT37. Also SECGT1 when the byte size in monitor
AC3 in LOGNAM is bad.
  
[DIAGNOSIS]
  
The monitor never validates that the octal representation of the character
it is retrieving is valid. Hence the byte pointer from CPTAB and the dispatch
location for CCTAB could either or both be invalid with the resultant BUGHLTs.
  
[CURE]
  
Ensure that the character being retrieved is a valid ASCII character. The byte
pointer and dispatch location will then both be correct. Also combine two
********************************************************************************
  
  
                             EDIT 1755   FOR MONITO
  
[SYMPTOM]
  
Edit 1754 makes edit 1718 redundant
  
[DIAGNOSIS]
  
Edit 1718 checked byte pointer of CRLNM JSYS argument for pointing
to 7 bit bytes.  Edit 1754 checks bytes for being ASCII.  Therefore,
edit 1718 is unnecessary.
  
[CURE]
  
remove edit 1718.
********************************************************************************
  
  
                             EDIT 1756   FOR MONITO
  
[SYMPTOM]
  
     Bug in edit 1749.
  
[DIAGNOSIS]
  
     Directory not unlocked on CRDI19 error.
  
[CURE]
  
     Do it.
********************************************************************************
  
  
                             EDIT 1757   FOR MONITO
  
[SYMPTOM]
  
Edit 1744 Should not have padded records with circumflexes
if the record is less than the tape record size.  Circumflexes
should only pad an entire record in a tape block to so that a
full block is written, not pad words in a record so that a full
record is written.
  
[DIAGNOSIS]
  
Edit is wrong.
  
[CURE]
  
Remove it.
********************************************************************************
  
  
                             EDIT 1758   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     Garbage BUGHLT name types out on system  crash.   Examination  of
the  dump shows that APRNX1 was the BUGHLT, but garbage name was typed
and used for SYSERR entry.
  
[DIAGNOSIS]
  
     Code in APRSRV does an XCT of  the  APRNX1  BUGHLT  XCT.   BUGHLT
handler does not want nested XCT's.
  
[CURE]
  
     Do not do the nested XCT.
********************************************************************************
  
  
                             EDIT 1759   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     TEXTI JSYS sometimes returns a garbage error code.
  
[DIAGNOSIS]
  
     Typographical error in the code just past RDTOPM uses an  address
label name instead of the correct error code mnemonic.
  
[CURE]
  
     Fix the typo by using the correct error mnemonic.
********************************************************************************
  
  
                             EDIT 1761   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     Values returned for .MOIRD, .MOIWT, .MOIRF, .MOIWF entries in  of
the .MOINF function of the MTOPR JSYS are wrong.
  
[DIAGNOSIS]
  
     Frame count and operation count entries are reversed.
  
[CURE]
  
     Change the MTINFT XCT table to do things correctly.
********************************************************************************
  
  
                             EDIT 1762   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     On Release 3A ILLUUO BUGCHKs;  on Release 4 ILLUUO BUGHLTs.
  
[DIAGNOSIS]
  
     Performing a FLOUT or DFOUT  JSYS  with  arguments  such  that  a
FLOTX3  error  should  be generated for the second field may cause the
problem.  This is due to a routine transferring to another  which  one
which does stack adjustment and believes it is at another stack level,
eventually causing a return to a garbage address.
  
[CURE]
  
     Adjust the stack to the proper level before entering  the  TOOSML
routine from ROUND.
********************************************************************************
  
  
                             EDIT 1763   FOR MONITO
  
[SYMPTOM]
  
NIN JSYS will not terminate on a CR if it is not followed by
a LF.  This causes the JSYS to incorrectly terminate on  the
byte following a CR.
  
[DIAGNOSIS]
  
The NIN JSYS  calls the internal  routine BIN1 which  simply
ignores all carriage returns.
  
[CURE]
  
Rewrite the BIN1 routine  to call a  new routine which  will
always return the next character, regardless of what it  is.
The new BIN1 routine can then  decide if the character is  a
CR and if so, look for the next byte.  If the byte is a  LF,
everything is  okay  and return  the  LF.  If  the  byte  is
something other than a LF, put the LF back in the buffer and
return the CR to the calling routine.
********************************************************************************
  
  
                             EDIT 1764   FOR MONITO
  
[SYMPTOM]
  
EBCDIC colon (:) gets translated into a ^Z.
  
[DIAGNOSIS]
  
The EBCDIC value for  colon was incorrectly entered into the dispatch
table. Hence the wrong ASCII character was being retrieved.
  
[CURE]
  
Fix the table so that a colon has the proper EDCBIC value.
********************************************************************************
  
  
                             EDIT 1765   FOR MONITO
  
[SYMPTOM]
  
CTRL X is not echoed on input as part of file name for gtjfn.
  
[DIAGNOSIS]
  
The CCOC word is not set properly.
  
[CURE]
  
********************************************************************************
  
  
                             EDIT 1766   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     System crashes such as ILMNRF.
  
[DIAGNOSIS]
  
     RMAP JSYS forgets to lock fork structure of job, so a  PSB  might
disappear out from under any of its references, causing the crash.
  
[CURE]
  
     Make sure the fork lock is locked.
********************************************************************************
  
  
                             EDIT 1767   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     File access returns error ARGX26 - file is offline.  But file  is
not offline.
  
[DIAGNOSIS]
  
     Error should have been ARGX27 - offline expiration  date  expired
instead of ARGX27.
  
[CURE]
  
     Correct the error code returned to be ARGX27.
********************************************************************************
  
  
                             EDIT 1768   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     The "file shows data errors" bit, FB%BAT  is  propagated  to  new
file generations.
  
[DIAGNOSIS]
  
     Bit is not turned off for a new generation.
  
[CURE]
  
     Zero FB%BAT for the new FDB in VRLK6A.
********************************************************************************
  
  
                             EDIT 1769   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     Connected directory sometimes fails to get expunged on logout, or
login directory expunged twice.
  
[DIAGNOSIS]
  
     In SJLGO4, a compare is made against the wrong AC, so  the  wrong
decision might be made.
  
[CURE]
  
     Correct the compare.
********************************************************************************
  
  
                             EDIT 1770   FOR MONITO
  
[SYMPTOM]
  
Various BUGs  and system crashes.
  
[DIAGNOSIS]
  
Setup for transfers between sections were not done correctly.
  
[CURE]
  
Correct these errors
********************************************************************************
  
  
                             EDIT 1771   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     None directly observed, but code is wrong;  an OFN  greater  than
NOFN  might  be  assigned,  trashing  data past the end of OFN-indexed
tables.
  
[DIAGNOSIS]
  
     AOBJN counter is setup incorrectly in ASOF6.  -NOFN-1  should  be
-<NOFN-1> instead.
  
[CURE]
  
     Correct the count.
********************************************************************************
  
  
                             EDIT 1772   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     Confusion over several edits;  FILCOMs  do  not  localize  edits,
etc.
  
[DIAGNOSIS]
  
     Edits 1732, 1736, 1737, 1745, 1747, 1748, 1749, 1753, 1756, 1764,
1765 are not in standard edit form.
  
[CURE]
  
     Put edits 1732, 1736, 1737, 1745, 1747, 1748, 1749,  1753,  1756,
1764, 1765 into standard edit form.  No code changes needed.
********************************************************************************
  
  
                             EDIT 1773   FOR MONITO
  
No test has been generated for this problem, partly because the words
are currently documented as reserved and unimplemented.
********************************************************************************
  
  
                             EDIT 1774   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     Possible BUGHLTs due to scanning off the end of  a  page  of  the
account validation database searching for an account.
  
[DIAGNOSIS]
  
     MOVE of ACTPG should be a MOVEI.  Use of the  contents  of  ACTPG
could result in addressing errors.
  
[CURE]
  
     Change the MOVE to a MOVEI in two places.
********************************************************************************
  
  
                             EDIT 1775   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     Monitor is too big and too slow.
  
[DIAGNOSIS]
  
     Unneeded instruction MOVE T1,FORKX at JOBCF1+2.
  
[CURE]
  
     Remove offending instruction.
********************************************************************************
  
  
                             EDIT 1776   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     Files with OF%DUD set might get unintended bad pages PMAPed to  a
file on a Control-C, RESET.
  
[DIAGNOSIS]
  
     KSELF does a vanilla PMAP to unmap a process' pages.
  
[CURE]
  
     Add the PM%ABT bit to the PMAP in the KSELF code.
********************************************************************************
  
  
                             EDIT 1777   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     If a directory has a very long filespec,  some  things  may  fail
that shouldn't, such as a DELETE command.  They fail with:
?GTJFN source failure on ... - Byte count too small
  
[DIAGNOSIS]
  
     The GJFX51 error code results from  the  RDTXT  parameter  DEFINP
being too small for GTJFN.
  
[CURE]
  
     Make DEFINP equal to MAXINP.
********************************************************************************
  
  
                             EDIT 1778   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     Trying to use a network node name more than  6  characters  gives
error DCNX1 - "Invalid network filename".  A better choice is COMX19 -
"Too many characters in node name".
  
[DIAGNOSIS]
  
     As above.
  
[CURE]
  
     Change the error code.
********************************************************************************
  
  
                             EDIT 1779   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     System crashes  such  as  ILMNRF  on  Model  B  processors,  wild
addressing  causing  ILMNRF or possibly memory modification on Model A
processors.
  
[DIAGNOSIS]
  
     Garbage passed to RPACS JSYS may be used as  a  JFN  without  any
validity checking, causing wild references.
  
[CURE]
  
     Range check JFN value  to  make  sure  it  is  reasonable  before
attempting first reference to JFN blocks.
********************************************************************************
  
  
                             EDIT 1780   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     J0NRUN BUGHLTs.
  
[DIAGNOSIS]
  
     Fork zero blocks trying vainly to assign a node.
  
[CURE]
  
     Do not block if fork zero.
********************************************************************************
  
  
                             EDIT 1781   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     Millisecond representations of high precision scheduler variables
become  invalid  at  the  same time the high precision words overflow,
around 95 hours.
  
[DIAGNOSIS]
  
     Millisecond values are calculated directly from single word  high
precision values without regard to overflow.
  
[CURE]
  
     Create double-word variables to keep the high  precision  values,
and  calculate  the  millisecond  values  from  the  double-word  high
precision values.  This will extend the validity  of  the  millisecond
values  beyond  the  current  95  hours.   The  affected variables are
SKDIDL, SKDOVH, and SKDSWP.
********************************************************************************
  
  
                             EDIT 1782   FOR MONITO
  
  
  
  
[SYMPTOM]
  
Accounting is being done on non-regulated structures.
  
  
[DIAGNOSIS]
  
Edit 67 to MOUNTR corrected part of the problem by testing the correct
bit.   The  monitor  did  not  set up the status bits correctly before
sending a message to MOUNTR.
  
  
[CURE]
  
At SNDUSG+24 move status bits from left half of T4 into the right half
of MSTIPC+2.  Edit 67 in answer to SPR 20-14215 is also required.
  
********************************************************************************
  
  
                             EDIT 1783   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     SCTTY resumes frozen forks.
  
[DIAGNOSIS]
  
     Use of FFORK1/RFORK1  cause  resumption  of  fork  regardless  of
former state.
  
[CURE]
  
     Use indirect freeze routines FFORK3/RFORK3  instead  to  preserve
any former explicit frozen state.
********************************************************************************
  
  
                             EDIT 1784   FOR MONITO
  
[SYMPTOM]
 Using the original patch for SPR 20-13542 will cause DELBDD BUFINF's
when deleting a directory on a non-public structure.
  
[DIAGNOSIS]
 In the CRDONE routine, the call to SETIDX is inadvertantly using the
structure-number,,superior-directory-number for the superior directory.
  
[CURE]
 Use only the superior-directory-number so SETIDX will recognise the
directory, and unlock the "invalid" bit in the index table.
********************************************************************************
  
  
                             EDIT 1785   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     Attempts to use labeled tape return garbage error number.
  
[DIAGNOSIS]
  
     Code not written.
  
[CURE]
  
     Adjust labeled tape filename size checking code to return  a  new
error  code to indicate that tape label filename specification exceeds
17 characters;  and add the error code and description to  the  MONSYM
file.
********************************************************************************
  
  
                             EDIT 1786   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     Attempts to use labeled tape return garbage error number.
  
[DIAGNOSIS]
  
     Code not written.
  
[CURE]
  
     Adjust labeled tape filename size checking code to return  a  new
error  code to indicate that tape label filename specification exceeds
17 characters;  and add the error code and description to  the  MONSYM
file.
********************************************************************************
  
  
                             EDIT 1787   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     The USAGE JSYS .USRAS function does not work.
  
[DIAGNOSIS]
  
     Code makes test in wrong direction.
  
[CURE]
  
     Fix test on count in UFNRAS.
********************************************************************************
  
  
                             EDIT 1788   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     Accounting session connect times are  garbaged.   The  accounting
shift change feature is in use.
  
[DIAGNOSIS]
  
     Checkpoint code uses the wrong value for calculation;   an  index
register is missing.
  
[CURE]
  
     Correct the code to include the index register in CPGCON.
********************************************************************************
  
  
                             EDIT 1789   FOR MONITO
  
[SYMPTOM]
  
Error Message IOX22 'Invalid HDR1  Sequence Number' when setting  data
mode or attempting to read from some EBCDIC labeled tapes.
  
[DIAGNOSIS]
  
When TOPS-20 checks  the Form Control  Byte in the  HDR2 Label in  the
routine GETFC0, it enforces that the Form Control Byte (CP 37) conform
to DEC standard (A, M, X, or space).  ANSI standard X3.27-1969 clearly
states that CP 16-50 of the  HDR2 Label are system defined and  should
be ignored in interchange mode.  TOPS-20 does not ignore this byte and
as a result may disagree with the contents of this character  position
and return the IOX22 error message.
  
[CURE]
  
At the check in the GETFC0  routine for an EBCDIC labled tape,  return
the code  for  an undefined  form  control rather  than  checking  for
consistency of this byte with DEC standard.
********************************************************************************
  
  
                             EDIT 1790   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     Monitor is too big and too slow.
  
[DIAGNOSIS]
  
     There is code in IO unused since before Release 2, both  resident
and swappable.
  
[CURE]
  
     Remove the unused code  at  DUMPC:   and  the  symbol  references
DMPDON and DUMPC, and remove the DMPRLF BUGCHK.
********************************************************************************
  
  
                             EDIT 1791   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     SCTLW and NSCDRQ are defined in both STG and  SCHED.   NSCDRQ  is
multiply  defined,  and smaller in SCHED than in STG, wasting resident
memory, and increasing the chance of queue overflow.
  
[DIAGNOSIS]
  
     As above.
  
[CURE]
  
     Remove the definitions from SCHED.
********************************************************************************
  
  
                             EDIT 1792   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     ILPPT3 BUGHLTs on Model B machines.
  
[DIAGNOSIS]
  
     GTJFN may under some circumstances try to use  resources  implied
by  GJ%XTN  while  doing a short-form GTJFN.  GJ%XTN is supposed to be
ignored on short-form GTJFNs.
  
[CURE]
  
     Make sure that internal flag JFNRD is cleared in two places if  a
short form GTJFN is being done.
********************************************************************************
  
  
                             EDIT 1793   FOR MONITO
  
  
  
  
[SYMPTON]
  
  
     The COMPILE command will not detect a logical name loop,  causing
it to loop.
  
[DIAGNOSIS]
  
  
     Both routine DEVLUK and SETDEV, called by GTJFN, check if it is a
parse-only JFN before checking for the logical name loop.
  
[CURE]
  
  
     The parse-only bit should only be checked  in  one  place,  after
checking for logical name loop.
  
********************************************************************************
  
  
                             EDIT 1794   FOR MONITO
  
[SYMPTOM]
  
Keywords will not be parsed if an alternate function for the
COMND JSYS is a .CMTXT function.
  
[DIAGNOSIS]
  
COMND will  only parse  the function  whose break  set  will
allow the most  number of characters.   This works for  most
fields but  not  when  a function  is  .CMTXT.   The  .CMTXT
function will always  parse more characters  than any  other
field so if  it is used  anywhere in a  FDB chain, no  other
function will get parsed.
  
[CURE]
  
Create a new bit for the command functions special  argument
block which  says that  a  first pass  for reading  a  field
should not be performed for this field.  The functions which
should  have  this  new  characteristic  should  be  .CMNOI,
.CMCFM, .CMCMA, .CMINI, .CMTXT, .CMTAD, .CMQST, .CMUQS,  and
.CMTOK.
  
Along with this added structure, check whether a first  pass
should be performed for the specific function at XCOM7+2.
********************************************************************************
  
  
                             EDIT 1796   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     FLKTIM or  other  BUGCHK,  job  "hung"  not  interruptible  while
waiting for non-controlling terminal to close.
  
[DIAGNOSIS]
  
     TTYCLZ code does a DOBE which may  block  while  NOINT  with  the
device table lock, DEVLCK, locked.
  
[CURE]
  
     Replace the DOBE with the proper code to achieve the same results
via the monitor's blocking return mechanism.
********************************************************************************
  
  
                             EDIT 1797   FOR MONITO
  
  
  
  
[SYMPTOM]
  
     Jobs hung waiting for structure lock.
  
[DIAGNOSIS]
  
     If access-control job refuses  a  structure  mount  request,  the
normal cleanup, including unlocking the structure lock is not done.
  
[CURE]
  
     Have the refusal code call a cleanup routine before  causing  the
instruction trap.
********************************************************************************
  
  
                             EDIT 1798   FOR MONITO
  
[SYMPTOM]
 Edit 1798 is a clerical error only, and as such has no patch associated
with it, and no symptom.
********************************************************************************
  
  
                             EDIT 1799   FOR MONITO
  
[SYMPTOM]
 ILMNRF BUGHLT'S caused by doing a SAVE JSYS with a non-existent file
page mapped in user memory.  A missing page in the PRIMARY-MASTER-QUEUE-FILE.
QUASAR will commonly cause this bug.
  
[DIAGNOSIS]
 SAVE JSYS does not check for the existence of every page before referencing
it.
  
[CURE]
 At SAVE3A-1, do a SKIP FPG0A, and ERJMP to SAVE3B to avoid the problem.
********************************************************************************
  
  
                             EDIT 1802   FOR MONITO
  
  
  
  
[SYMPTOM]
  
  
     When switching volumes on labelled tape the record size is  reset
to job defaults.
  
  
[DIAGNOSIS]
  
  
     The volume switch code does not check record size after a  volume
switch.
  
  
[CURE]
  
  
     Check record size during volume switch.
  
     WARNING:  This patch may cause problems since  tapes  written  by
the  unpatched monitor will have different record sizes on all but the
first volume if a non-default record size was specified for the  first
volume.    If   this  patch  is  not  installed  the  problem  can  be
circumvented by using the SETJB JSYS or  the  EXEC  command  SET  TAPE
RECORD-LENGTH (TO) to set the job default record size.
  
********************************************************************************
  
  
                             EDIT 1803   FOR MONITO
  
  
  
  
[SYMPTON]
  
  
     The COMPILE command will not detect a logical name loop,  causing
it to loop.
  
[DIAGNOSIS]
  
  
     When GTJFN can not parse a name, it will step the  logical  name,
if possible, and restart the parse.
  
[CURE]
  
  
     If a logical name has been stepped, check for  Parse-only  before
returning to GTJFST to restart parse.
  
********************************************************************************
  
  
                             EDIT 1804   FOR MONITO
  
[SYMPTOM]
  
'Unknown data in file. Continuing...' messages from CHKPNT.
  
[DIAGNOSIS]
  
When the  MONITOR copies  CHECKPOINT.BIN to  SYSTEM-DATA.BIN
during system start up, it would use the right half of  word
one in a checkpoint record as  the length of the record  and
would deposit  a trailer  label in  this word.   When a  new
CHECKPOINT.BIN is created,  word one of  each record is  the
maximum number of  jobs on  the system.   This would  change
when the job  became active,  but until  then, whenever  the
system is reloaded, whichever word  is an offset NJOBS  away
from the start  of the checkpoint  record will get  trashed.
If NJOBS is an even multiple of 100 then the flag word which
specifies whether a job is  active or not will get  trashed.
This will fool the MONITOR into believing that the entry  is
active and will then write this record into SYSTEM-DATA.BIN.
This is an erroneous record  and will thus cause the  CHKPNT
error message.
  
[CURE]
  
Before depositing the trailer label in a checkpoint  record,
check to  see if  the job  is  active.  If  the job  is  not
active, do not deposit the  trailer label.  Also, check  the
size of the record before  depositing the trailer label  and
generate a CKPLEN BUGCHK if the length of the record is  out
of range.  This is to cure ILMREF BUGHLTs which can occur if
the checkpoint file has been trashed.
  
********************************************************************************
  
  
                             EDIT 1805   FOR MONITO
  
  
  
  
[SYMPTON]
  
  
     If an invisible file is superceded by a file with the  same  name
and  extension  but  a higher generation, and the generation retention
count is one (or has been exhausted) the invisible file will  be  lost
to the user.  It can be neither SET VISIBLE nor UNDELETED.
  
[DIAGNOSIS]
  
  
     When CLOSFing the new file, the file's directory will be  scanned
for  file's  of  the  same name and extension that should be marked as
deleted.   Currently,  only  archived,  non-existent,  temporary,   or
already deleted files will be skipped.
  
[CURE]
  
  
     Make the CLOSF code check for invisible  files  and  ignore  them
also.
  
********************************************************************************
  
  
                             EDIT 1806   FOR MONITO
  
  
  
  
[SYMPTON]
  
  
     Edits 1803 and 1805 in incorrect form.
  
[DIAGNOSIS]
  
  
     Maintainer error.
  
[CURE]
  
  
     Put edits in proper format.
  
********************************************************************************
  
  
                             EDIT 1807   FOR MONITO
  
  
  
  
[SYMPTON]
  
  
     If status reporting has been turned on (via SYSERR or  using  the
SMON Jsys) any BUGxxx, CPU error or channel error will hang the system
with no apparent symptoms or BUG messages.
  
[DIAGNOSIS]
  
  
     Status reporting causes routine GENBLK to be called under all  of
the  above  circumstances.   This routine then does both a SAVEP and a
SAVET, which clobber 12 locations on the stack.   The  stack  that  is
handed to these routines is only 12 words long so PDL overflow occurs.
In the case of the BUGHLT calling this  we  have  a  bughlt  within  a
bughlt so the system just dies.
  
     [CURE]
  
  
     Get rid of the SAVET since  the  Tx  accumulators  are  clobbered
shortly after returning from GENBLK.
  
********************************************************************************
  
  
  
END OF  TOPS-20-2040-V4